diff --git a/registry/regquery-ua.zip b/registry/regquery-ua.zip deleted file mode 100644 index eaf1252..0000000 Binary files a/registry/regquery-ua.zip and /dev/null differ diff --git a/ua/registry/HKCU/SOFTWARE/Classes/CLSID/{35578409-F9F5-43e8-A6BD-8B77199ED854} b/ua/registry/HKCU/SOFTWARE/Classes/CLSID/{35578409-F9F5-43e8-A6BD-8B77199ED854} new file mode 100644 index 0000000..e69de29 diff --git a/ua/registry/HKCU/SOFTWARE/Classes/Interface/{17DCFB07-18A9-4ffe-B34D-37B91D809C41} b/ua/registry/HKCU/SOFTWARE/Classes/Interface/{17DCFB07-18A9-4ffe-B34D-37B91D809C41} new file mode 100644 index 0000000..e69de29 diff --git a/ua/registry/HKCU/SOFTWARE/Classes/Interface/{6B15E61A-381F-41e7-8B65-BA386473FE8C} b/ua/registry/HKCU/SOFTWARE/Classes/Interface/{6B15E61A-381F-41e7-8B65-BA386473FE8C} new file mode 100644 index 0000000..e69de29 diff --git a/ua/registry/HKCU/SOFTWARE/Classes/QSRDevice.QSRDev b/ua/registry/HKCU/SOFTWARE/Classes/QSRDevice.QSRDev new file mode 100644 index 0000000..e69de29 diff --git a/ua/registry/HKCU/SOFTWARE/Classes/QSRDevice.QSRDev.1 b/ua/registry/HKCU/SOFTWARE/Classes/QSRDevice.QSRDev.1 new file mode 100644 index 0000000..e69de29 diff --git a/ua/registry/HKCU/SOFTWARE/Classes/TypeLib/{CD886C7B-B61C-49cf-B3B8-90DB303A502A} b/ua/registry/HKCU/SOFTWARE/Classes/TypeLib/{CD886C7B-B61C-49cf-B3B8-90DB303A502A} new file mode 100644 index 0000000..e69de29 diff --git a/ua/registry/UAGRDEV-REGISTER.REG b/ua/registry/UAGRDEV-REGISTER.REG new file mode 100644 index 0000000..4c9cb0f --- /dev/null +++ b/ua/registry/UAGRDEV-REGISTER.REG @@ -0,0 +1,78 @@ +Windows Registry Editor Version 5.00 + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3F52625C-F66C-43F5-B538-CDF7331E0B7D}] +@="QWDev Class" +"AppID"="{91D04D72-DCB6-11D3-957D-00409500D5AD}" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3F52625C-F66C-43F5-B538-CDF7331E0B7D}\LocalServer32] +@="Z:\\ULT\\USERS\\UA\\GATEREADER\\4.4.5393\\UAGRDEVU.EXE" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3F52625C-F66C-43F5-B538-CDF7331E0B7D}\ProgID] +@="QWDevice.QWDev.1" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3F52625C-F66C-43F5-B538-CDF7331E0B7D}\Programmable] + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3F52625C-F66C-43F5-B538-CDF7331E0B7D}\TypeLib] +@="{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3F52625C-F66C-43F5-B538-CDF7331E0B7D}\VersionIndependentProgID] +@="QWDevice.QWDev" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{D178FEAC-4969-45b4-92BF-4582EA5C6F47}] +@="IQWDev" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{D178FEAC-4969-45b4-92BF-4582EA5C6F47}\ProxyStubClsid] +@="{00020424-0000-0000-C000-000000000046}" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{D178FEAC-4969-45b4-92BF-4582EA5C6F47}\ProxyStubClsid32] +@="{00020424-0000-0000-C000-000000000046}" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{D178FEAC-4969-45b4-92BF-4582EA5C6F47}\TypeLib] +@="{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}" +"Version"="1.0" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}] +@="_IQWDevEvents" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}\ProxyStubClsid] +@="{00020420-0000-0000-C000-000000000046}" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}\ProxyStubClsid32] +@="{00020420-0000-0000-C000-000000000046}" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}\TypeLib] +@="{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}" +"Version"="1.0" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QWDevice.QWDev] +@="QWDev Class" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QWDevice.QWDev\CLSID] +@="{3F52625C-F66C-43F5-B538-CDF7331E0B7D}" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QWDevice.QWDev\CurVer] +@="QWDevice.QWDev.1" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QWDevice.QWDev.1] +@="QWDev Class" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QWDevice.QWDev.1\CLSID] +@="{3F52625C-F66C-43F5-B538-CDF7331E0B7D}" + + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}] + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0] +@="QWDevice 1.0 Type Library" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\0] + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\0\win32] +@="Z:\\ULT\\USERS\\UA\\GATEREADER\\4.4.5393\\UAGRDEVU.EXE" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\FLAGS] +@="0" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\HELPDIR] +@="Z:\\ULT\\USERS\\UA\\GATEREADER\\4.4.5393\\" + diff --git a/ua/registry/UASRDEV-REGISTER.REG b/ua/registry/UASRDEV-REGISTER.REG new file mode 100644 index 0000000..72714e2 --- /dev/null +++ b/ua/registry/UASRDEV-REGISTER.REG @@ -0,0 +1,78 @@ +Windows Registry Editor Version 5.00 + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{35578409-F9F5-43e8-A6BD-8B77199ED854}] +@="QSRDev Class" +"AppID"="{C123476B-ABB6-4bcc-B557-2FDC0CDCD6A8}" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{35578409-F9F5-43e8-A6BD-8B77199ED854}\LocalServer32] +@="M:\\users\\ua\\ua-suite\\1.6a\\UASRDEV\\2.4.0.1\\UASRDEVA.EXE" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{35578409-F9F5-43e8-A6BD-8B77199ED854}\ProgID] +@="QSRDevice.QSRDev.1" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{35578409-F9F5-43e8-A6BD-8B77199ED854}\Programmable] + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{35578409-F9F5-43e8-A6BD-8B77199ED854}\TypeLib] +@="{CD886C7B-B61C-49cf-B3B8-90DB303A502A}" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{35578409-F9F5-43e8-A6BD-8B77199ED854}\VersionIndependentProgID] +@="QSRDevice.QSRDev" +6B15E61A-381F-41e7-8B65-BA386473FE8C +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{6B15E61A-381F-41e7-8B65-BA386473FE8C}] +@="IQSRDev" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{6B15E61A-381F-41e7-8B65-BA386473FE8C}\ProxyStubClsid] +@="{00020424-0000-0000-C000-000000000046}" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{6B15E61A-381F-41e7-8B65-BA386473FE8C}\ProxyStubClsid32] +@="{00020424-0000-0000-C000-000000000046}" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{6B15E61A-381F-41e7-8B65-BA386473FE8C}\TypeLib] +@="{CD886C7B-B61C-49cf-B3B8-90DB303A502A}" +"Version"="1.0" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{17DCFB07-18A9-4ffe-B34D-37B91D809C41}] +@="_IQSRDevEvents" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{17DCFB07-18A9-4ffe-B34D-37B91D809C41}\ProxyStubClsid] +@="{00020420-0000-0000-C000-000000000046}" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{17DCFB07-18A9-4ffe-B34D-37B91D809C41}\ProxyStubClsid32] +@="{00020420-0000-0000-C000-000000000046}" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{17DCFB07-18A9-4ffe-B34D-37B91D809C41}\TypeLib] +@="{CD886C7B-B61C-49cf-B3B8-90DB303A502A}" +"Version"="1.0" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QSRDevice.QSRDev] +@="QSRDev Class" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QSRDevice.QSRDev\CLSID] +@="{35578409-F9F5-43e8-A6BD-8B77199ED854}" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QSRDevice.QSRDev\CurVer] +@="QSRDevice.QSRDev.1" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QSRDevice.QSRDev.1] +@="QSRDev Class" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QSRDevice.QSRDev.1\CLSID] +@="{35578409-F9F5-43e8-A6BD-8B77199ED854}" + + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{CD886C7B-B61C-49cf-B3B8-90DB303A502A}] + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{CD886C7B-B61C-49cf-B3B8-90DB303A502A}\1.0] +@="QSRDevice 1.0 Type Library" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{CD886C7B-B61C-49cf-B3B8-90DB303A502A}\1.0\0] + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{CD886C7B-B61C-49cf-B3B8-90DB303A502A}\1.0\0\win32] +@="M:\\users\\ua\\ua-suite\\1.6a\\UASRDEV\\2.4.0.1\\UASRDEVA.EXE" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{CD886C7B-B61C-49cf-B3B8-90DB303A502A}\1.0\FLAGS] +@="0" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{CD886C7B-B61C-49cf-B3B8-90DB303A502A}\1.0\HELPDIR] +@="M:\\users\\ua\\ua-suite\\1.6a\\UASRDEV\\2.4.0.1\\" + diff --git a/registry/a b/ua/registry/a similarity index 100% rename from registry/a rename to ua/registry/a diff --git a/ua/registry/after.reg b/ua/registry/after.reg new file mode 100644 index 0000000..5f7a111 Binary files /dev/null and b/ua/registry/after.reg differ diff --git a/registry/b b/ua/registry/b similarity index 100% rename from registry/b rename to ua/registry/b diff --git a/ua/registry/before.reg b/ua/registry/before.reg new file mode 100644 index 0000000..1d0100b Binary files /dev/null and b/ua/registry/before.reg differ diff --git a/registry/c b/ua/registry/c similarity index 100% rename from registry/c rename to ua/registry/c diff --git a/ua/registry/create-reg-file.ps1 b/ua/registry/create-reg-file.ps1 new file mode 100644 index 0000000..47d8fe5 --- /dev/null +++ b/ua/registry/create-reg-file.ps1 @@ -0,0 +1,95 @@ +param ( + [parameter(Mandatory=$true)] + [string] + $templateFileName, + + [parameter(Mandatory=$false)] + [string] + $outputFileName, + + [parameter(Mandatory=$false)] + [string] + $registryHive = 'HKEY_LOCAL_MACHINE', + + [parameter(Mandatory=$false)] + [string] + $comServerDirectory, + + [parameter(Mandatory=$false)] + [string] + $comServerFileName +) + +if (!$outputFileName) { + if ($templateFileName.EndsWith('.template') { + $outputFileName = $templateFileName.Substring(0, $templateFileName.Length - 9) + } else { + $outputFileName = 'out.reg' + } +} + + +function DoRegAction { + param( + # [parameter(Mandatory=$true)] + # [String] + # $regExe, + + # [parameter(Mandatory=$true)] + # [String] + # $action, + + [parameter(Mandatory=$true)] + [String] + $path + ) + + $regExe32 = "$($env:SystemRoot)\system32\reg.exe" + $regExe64 = "$($env:SystemRoot)\syswow64\reg.exe" + if (Test-Path $regExe64) { + $command = $regExe64 + } else { + $command = $regExe32 + } + + #$arguments = @($action, $path) + $arguments = New-Object System.Collections.Generic.List[System.Object] + $arguments.Add($action) + $arguments.Add($path) + switch ($action) { + # 'add' { + # } + 'delete' { + $arguments.Add('/f') + } + default { # query + $arguments.Add('/s') + $errorMsg = "Missing key: $path" + } + } + + if ($errorMsg) { + try { + & "$command" $arguments + } catch { + Write-Error $errorMsg + } + } else { + & "$command" $arguments + } +} + +# Write-Host "=-=-=-=-= DEBUG =-=-=-=-= type: $type" +# Write-Host "=-=-=-=-= DEBUG =-=-=-=-= action: $action" +# Write-Host "=-=-=-=-= DEBUG =-=-=-=-= registryHive: $registryHive" +# Write-Host "=-=-=-=-= DEBUG =-=-=-=-= clsid: $clsid" +# Write-Host "=-=-=-=-= DEBUG =-=-=-=-= interfaceId: $interfaceId" +# Write-Host "=-=-=-=-= DEBUG =-=-=-=-= eventInterfaceId: $eventInterfaceId" +# Write-Host "=-=-=-=-= DEBUG =-=-=-=-= libId: $libId" +# Write-Host "=-=-=-=-= DEBUG =-=-=-=-= className: $className" +DoRegAction "$registryHive\Software\Classes\CLSID\{$clsid}" +DoRegAction "$registryHive\Software\Classes\Interface\{$interfaceId}" +DoRegAction "$registryHive\Software\Classes\Interface\{$eventInterfaceId}" +DoRegAction "$registryHive\Software\Classes\$ClassName" +DoRegAction "$registryHive\Software\Classes\$ClassName.1" +DoRegAction "$registryHive\Software\Classes\TypeLib\{$libId}" diff --git a/ua/registry/qlogic-devapp-tool.ps1 b/ua/registry/qlogic-devapp-tool.ps1 new file mode 100644 index 0000000..cb3689a --- /dev/null +++ b/ua/registry/qlogic-devapp-tool.ps1 @@ -0,0 +1,443 @@ +param ( + [Parameter(Mandatory=$true)] + [string] + $airline = 'ua', + + [Parameter(Mandatory=$true)] + [ValidateSet('query', 'delete', 'import')] + [string] + $action, + + [Parameter(Mandatory=$true)] + [ValidateSet('gate', 'checkin')] + [string] + $comServerType, + + [Parameter(Mandatory=$false)] + [ValidateSet('HKEY_LOCAL_MACHINE', 'HKEY_CURRENT_USER', 'HKLM', 'HKCU')] + [string] + $registryHive = 'HKEY_LOCAL_MACHINE', + + [Parameter(Mandatory=$false)] + [string] + $comServerDir, + + [Parameter(Mandatory=$false)] + [string] + $comServerFileName, + + [Parameter(Mandatory=$false)] + [switch] + $enableDebugging = $false +) + +if ($enableDebugging) { + $DebugPreference = 'Continue' +} else { + $DebugPreference = 'SilentlyContinue' +} + +switch ($airline) { + 'as' { + Write-Error "Not yet implemented for airline ""$airline""" + exit 1 + } + '4n' { + Write-Error "Not yet implemented for airline ""$airline""" + exit 1 + } + 'nz' { + Write-Error "Not yet implemented for airline ""$airline""" + exit 1 + } + 'ua' { + switch ($comServerType) { + 'checkin' { + $clsid = '35578409-F9F5-43e8-A6BD-8B77199ED854' + $appId = '91D04D72-DCB6-11D3-957D-00409500D5AD' + $classLabel = "QWDev Class" + $interfaceId = '6B15E61A-381F-41e7-8B65-BA386473FE8C' + $interfaceName = 'IQWDev' + $eventInterfaceId = '17DCFB07-18A9-4ffe-B34D-37B91D809C41' + $eventInterfaceName = '_IQWDevEvents' + $typeLibId='CD886C7B-B61C-49cf-B3B8-90DB303A502A' + $typeLibLabel = 'QSRDevice 1.0 Type Library' + $versionIndependentProgId = 'QSRDevice.QSRDev'; + } + 'gate' { + $clsid = '3F52625C-F66C-43F5-B538-CDF7331E0B7D' + $appId = 'C123476B-ABB6-4bcc-B557-2FDC0CDCD6A8' + $classLabel = "QSRDev Class" + $interfaceId = 'D178FEAC-4969-45b4-92BF-4582EA5C6F47' + $interfaceName = 'IQSRDev' + $eventInterfaceId = 'FDE206D5-EB3E-4DB1-AC3E-6CF314417443' + $eventInterfaceName = '_IQSRDevEvents' + $typeLibId='FB2C3447-9D8D-4AD0-9234-A163505FC3AE' + $typeLibLabel = 'QWDevice 1.0 Type Library' + $versionIndependentProgId = 'QWDevice.QWDev'; + } + } + } + default { + Write-Error "Unknown airline: $airline" + exit 1 + } +} + +switch ($action) { + 'delete' { + } + 'import' { + if (!$comServerDir) { + Write-Error "Missing COM server directory" + exit 1 + } + if (!$comServerFileName) { + Write-Error "Missing COM server file name" + exit 1 + } + } + 'query' { + } + default { + Write-Error "Unknown action: $action" + exit 1 + } +} + +switch ($registryHive) { + 'HKCU' { + } + 'HKLM' { + } + 'HKEY_CURRENT_USER' { + $registryHive = 'HKCU' + } + 'HKEY_LOCAL_MACHINE' { + $registryHive = 'HKLM' + } + default { + Write-Error "Invalid registry hive: $registryHive" + exit 1 + } +} + +$comServerDir = $comServerDir.TrimEnd('\') +$comServerPath = "$comServerDir\$comServerFileName" +if (![System.IO.Path]::IsPathRooted($comServerPath)) { + Write-Error "Provided COM server path is not absolute: $comServerPath" + exit 1 +} +$comServerNetworkPath = $comServerPath + +if (!(Test-Path $comServerPath)) { + Write-Warning "COM server path does not exist: $comServerPath" +} + +# COM servers use the network path in some registry keys when self-registering, so attempt to discover it. +try { + $driveLetter = $comServerPath.Substring(0, 1) + $networkPathToDrive = (Get-PSDrive | Where-Object {$_.Name -eq $driveLetter}).DisplayRoot + if ($networkPathToDrive) { + $rootPathWithoutDrive = $comServerPath.Substring(2) + $comServerNetworkPath = "$networkPathToDrive$rootPathWithoutDrive" + } +} catch { + Write-Error "An error occurred trying to discover network path to COM server at $comServerPath" +} + +$progId = "$versionIndependentProgId.1"; +$proxyStubClsid = '00020420-0000-0000-C000-000000000046' +$proxyStubClsid32 = $proxyStubClsid +$typeLibVersion = '1.0' + +if ($env:PROCESSOR_ARCHITECTURE -eq 'AMD64') { + $architectureSeparator = '\Wow6432Node' +} else { + $architectureSeparator = '\' +} + +$template = New-Object System.Collections.Generic.List[System.Object]; + +# CLSID keys +$template.AddRange( + @( + @{ + Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\CLSID\{$clsid}" + Values = @( + @{ + Name = '(default)' + Value = $classLabel + }, + @{ + Name = 'AppID' + Value = "{$appId}" + } + ) + }, + @{ + Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\CLSID\{$clsid}\LocalServer32" + Values = @( + @{ + Name = '(default)' + Value = $comServerPath + } + ) + }, + @{ + Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\CLSID\{$clsid}\ProgID" + Values = @( + @{ + Name = '(default)' + Value = $progId + } + ) + }, + @{ + Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\CLSID\{$clsid}\Programmable" + Values = @() + }, + @{ + Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\CLSID\{$clsid}\TypeLib" + Values = @( + @{ + Name = '(default)' + Value = $typeLibId + } + ) + }, + @{ + Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\CLSID\{$clsid}\VersionIndependentProgID" + Values = @() + } + ) +); + +# Interface keys +$template.AddRange( + @( + @{ + Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\Interface\{$interfaceId}" + Values = @( + @{ + Name = '(default)' + Value = $interfaceName + } + ) + }, + @{ + Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\Interface\{$interfaceId}\ProxyStubClsid" + Values = @( + @{ + Name = '(default)' + Value = "{$proxyStubClsid}" + } + ) + }, + @{ + Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\Interface\{$interfaceId}\ProxyStubClsid32" + Values = @( + @{ + Name = '(default)' + Value = "{$proxyStubClsid}" + } + ) + }, + @{ + Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\Interface\{$interfaceId}\TypeLib" + Values = @( + @{ + Name = '(default)' + Value = "{$typeLibId}" + }, + @{ + Name = 'Version' + Value = $typeLibVersion } + ) + }, + @{ + Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\Interface\{$eventInterfaceId}" + Values = @( + @{ + Name = '(default)' + Value = $eventInterfaceName + } + ) + }, + @{ + Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\Interface\{$eventInterfaceId}\ProxyStubClsid" + Values = @( + @{ + Name = '(default)' + Value = "{$proxyStubClsid}" + } + ) + }, + @{ + Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\Interface\{$eventInterfaceId}\ProxyStubClsid32" + Values = @( + @{ + Name = '(default)' + Value = "{$proxyStubClsid32}" + } + ) + }, + @{ + Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\Interface\{$eventInterfaceId}\TypeLib" + Values = @( + @{ + Name = '(default)' + Value = "{$typeLibId}" + } + @{ + Name = 'Version' + Value = $typeLibVersion + } + ) + } + ) +) + +# Prog ID keys +$template.AddRange( + @( + @{ + Key = "$($registryHive):\SOFTWARE\Classes\$progId" + Values = @( + @{ + Name = '(default)' + Value = $classLabel + } + ) + }, + @{ + Key = "$($registryHive):\SOFTWARE\Classes\$progId\CLSID" + Values = @( + @{ + Name = '(default)' + Value = "{$clsid}" + } + ) + }, + @{ + Key = "$($registryHive):\SOFTWARE\Classes\$progId\CurVer" + Values = @( + @{ + Name = '(default)' + Value = $versionIndependentProgId + } + ) + }, + @{ + Key = "$($registryHive):\SOFTWARE\Classes\$versionIndependentProgId" + Values = @( + @{ + Name = '(default)' + Value = $classLabel + } + ) + }, + @{ + Key = "$($registryHive):\SOFTWARE\Classes\$versionIndependentProgId\CLSID" + Values = @( + @{ + Name = '(default)' + Value = "{$clsid}" + } + ) + } + ) +) + +# TypeLib keys (add to both standard and Wow6432Node if architecture is x64) +if ($architectureSeparator -eq '\') { + $typeLibIterations = 1 +} else { + $typeLibIterations = 2 +} +for ($i = 0; $i -lt $typeLibIterations; $i++) { + if ($i -eq 1) { + $architectureSeparator = '\' + } + $template.AddRange( + @( + @{ + Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\TypeLib\{$typeLibId}" + Values = @() + }, + @{ + Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\TypeLib\{$typeLibId}\$typeLibVersion" + Values = @( + @{ + Name = '(default)' + Value = $typeLibLabel + } + ) + }, + @{ + Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\TypeLib\{$typeLibId}\$typeLibVersion\0" + Values = @() + }, + @{ + Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\TypeLib\{$typeLibId}\$typeLibVersion\0\win32" + Values = @( + @{ + Name = '(default)' + Value = $comServerNetworkPath + } + ) + }, + @{ + Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\TypeLib\{$typeLibId}\$typeLibVersion\FLAGS" + Values = @( + @{ + Name = '(default)' + Value = '0' + } + ) + }, + @{ + Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\TypeLib\{$typeLibId}\$typeLibVersion\HELPDIR" + Values = @( + @{ + Name = '(default)' + Value = "$comServerDir\" + } + ) + } + ) + ) +} + +function DoAction { + param( + [Parameter(Mandatory=$true)] + [array] + $template + ) + foreach ($keyEl in $template) { + if ($action -eq 'import') { + #Write-Debug $keyEl.Key + try { + $key = New-Item -Path $keyEl.Key -Force + Write-Host "Created registry key: $($key.PSPath)" + } + catch { + Write-Error "Failed to create registry key: $($keyEl.Key)" + continue + } + foreach ($valueEl in $keyEl.Values) { + try { + New-ItemProperty -Path $keyEl.Key -Name $valueEl.Name -Value $valueEl.Value -PropertyType 'String' -Force + Write-Host "Created registry value: $($valueEl.Name) in $($keyEl.Key)" + } + catch { + Write-Error "Failed to create registry value: $($valueEl.Name) in $($keyEl.Key)" + continue + } + } + } + } +} + +DoAction $template diff --git a/registry/regquery-ua.cmd b/ua/registry/regquery-ua.cmd similarity index 100% rename from registry/regquery-ua.cmd rename to ua/registry/regquery-ua.cmd diff --git a/ua/registry/uagrdev_add.reg.template b/ua/registry/uagrdev_add.reg.template new file mode 100644 index 0000000..0c6eb4c --- /dev/null +++ b/ua/registry/uagrdev_add.reg.template @@ -0,0 +1,78 @@ +Windows Registry Editor Version 5.00 + +[%REGVAR__HIVE%\SOFTWARE\Classes\CLSID\{35578409-F9F5-43e8-A6BD-8B77199ED854}] +@="QSRDev Class" +"AppID"="{C123476B-ABB6-4bcc-B557-2FDC0CDCD6A8}" + +[%REGVAR__HIVE%\SOFTWARE\Classes\CLSID\{35578409-F9F5-43e8-A6BD-8B77199ED854}\LocalServer32] +@="%REGVAR__DIR%%REGVAR__FILENAME%" + +[%REGVAR__HIVE%\SOFTWARE\Classes\CLSID\{35578409-F9F5-43e8-A6BD-8B77199ED854}\ProgID] +@="QSRDevice.QSRDev.1" + +[%REGVAR__HIVE%\SOFTWARE\Classes\CLSID\{35578409-F9F5-43e8-A6BD-8B77199ED854}\Programmable] + +[%REGVAR__HIVE%\SOFTWARE\Classes\CLSID\{35578409-F9F5-43e8-A6BD-8B77199ED854}\TypeLib] +@="{CD886C7B-B61C-49cf-B3B8-90DB303A502A}" + +[%REGVAR__HIVE%\SOFTWARE\Classes\CLSID\{35578409-F9F5-43e8-A6BD-8B77199ED854}\VersionIndependentProgID] +@="QSRDevice.QSRDev" + +[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{6B15E61A-381F-41e7-8B65-BA386473FE8C}] +@="IQSRDev" + +[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{6B15E61A-381F-41e7-8B65-BA386473FE8C}\ProxyStubClsid] +@="{00020424-0000-0000-C000-000000000046}" + +[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{6B15E61A-381F-41e7-8B65-BA386473FE8C}\ProxyStubClsid32] +@="{00020424-0000-0000-C000-000000000046}" + +[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{6B15E61A-381F-41e7-8B65-BA386473FE8C}\TypeLib] +@="{CD886C7B-B61C-49cf-B3B8-90DB303A502A}" +"Version"="1.0" + +[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{17DCFB07-18A9-4ffe-B34D-37B91D809C41}] +@="_IQSRDevEvents" + +[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{17DCFB07-18A9-4ffe-B34D-37B91D809C41}\ProxyStubClsid] +@="{00020420-0000-0000-C000-000000000046}" + +[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{17DCFB07-18A9-4ffe-B34D-37B91D809C41}\ProxyStubClsid32] +@="{00020420-0000-0000-C000-000000000046}" + +[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{17DCFB07-18A9-4ffe-B34D-37B91D809C41}\TypeLib] +@="{CD886C7B-B61C-49cf-B3B8-90DB303A502A}" +"Version"="1.0" + +[%REGVAR__HIVE%\SOFTWARE\Classes\QSRDevice.QSRDev] +@="QSRDev Class" + +[%REGVAR__HIVE%\SOFTWARE\Classes\QSRDevice.QSRDev\CLSID] +@="{35578409-F9F5-43e8-A6BD-8B77199ED854}" + +[%REGVAR__HIVE%\SOFTWARE\Classes\QSRDevice.QSRDev\CurVer] +@="QSRDevice.QSRDev.1" + +[%REGVAR__HIVE%\SOFTWARE\Classes\QSRDevice.QSRDev.1] +@="QSRDev Class" + +[%REGVAR__HIVE%\SOFTWARE\Classes\QSRDevice.QSRDev.1\CLSID] +@="{35578409-F9F5-43e8-A6BD-8B77199ED854}" + + +[%REGVAR__HIVE%\SOFTWARE\Classes\TypeLib\{CD886C7B-B61C-49cf-B3B8-90DB303A502A}] + +[%REGVAR__HIVE%\SOFTWARE\Classes\TypeLib\{CD886C7B-B61C-49cf-B3B8-90DB303A502A}\1.0] +@="QSRDevice 1.0 Type Library" + +[%REGVAR__HIVE%\SOFTWARE\Classes\TypeLib\{CD886C7B-B61C-49cf-B3B8-90DB303A502A}\1.0\0] + +[%REGVAR__HIVE%\SOFTWARE\Classes\TypeLib\{CD886C7B-B61C-49cf-B3B8-90DB303A502A}\1.0\0\win32] +@="%REGVAR__DIR%%REGVAR__FILENAME%" + +[%REGVAR__HIVE%\SOFTWARE\Classes\TypeLib\{CD886C7B-B61C-49cf-B3B8-90DB303A502A}\1.0\FLAGS] +@="0" + +[%REGVAR__HIVE%\SOFTWARE\Classes\TypeLib\{CD886C7B-B61C-49cf-B3B8-90DB303A502A}\1.0\HELPDIR] +@="%REGVAR__DIR%" + diff --git a/ua/registry/uasrdev_add.reg.template b/ua/registry/uasrdev_add.reg.template new file mode 100644 index 0000000..5b88c44 --- /dev/null +++ b/ua/registry/uasrdev_add.reg.template @@ -0,0 +1,78 @@ +Windows Registry Editor Version 5.00 + +[%REGVAR__HIVE%\SOFTWARE\Classes\CLSID\{3F52625C-F66C-43F5-B538-CDF7331E0B7D}] +@="QWDev Class" +"AppID"="{91D04D72-DCB6-11D3-957D-00409500D5AD}" + +[%REGVAR__HIVE%\SOFTWARE\Classes\CLSID\{3F52625C-F66C-43F5-B538-CDF7331E0B7D}\LocalServer32] +@="%REGVAR__DIR%%REGVAR__FILENAME%" + +[%REGVAR__HIVE%\SOFTWARE\Classes\CLSID\{3F52625C-F66C-43F5-B538-CDF7331E0B7D}\ProgID] +@="QWDevice.QWDev.1" + +[%REGVAR__HIVE%\SOFTWARE\Classes\CLSID\{3F52625C-F66C-43F5-B538-CDF7331E0B7D}\Programmable] + +[%REGVAR__HIVE%\SOFTWARE\Classes\CLSID\{3F52625C-F66C-43F5-B538-CDF7331E0B7D}\TypeLib] +@="{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}" + +[%REGVAR__HIVE%\SOFTWARE\Classes\CLSID\{3F52625C-F66C-43F5-B538-CDF7331E0B7D}\VersionIndependentProgID] +@="QWDevice.QWDev" + +[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{D178FEAC-4969-45b4-92BF-4582EA5C6F47}] +@="IQWDev" + +[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{D178FEAC-4969-45b4-92BF-4582EA5C6F47}\ProxyStubClsid] +@="{00020424-0000-0000-C000-000000000046}" + +[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{D178FEAC-4969-45b4-92BF-4582EA5C6F47}\ProxyStubClsid32] +@="{00020424-0000-0000-C000-000000000046}" + +[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{D178FEAC-4969-45b4-92BF-4582EA5C6F47}\TypeLib] +@="{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}" +"Version"="1.0" + +[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}] +@="_IQWDevEvents" + +[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}\ProxyStubClsid] +@="{00020420-0000-0000-C000-000000000046}" + +[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}\ProxyStubClsid32] +@="{00020420-0000-0000-C000-000000000046}" + +[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}\TypeLib] +@="{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}" +"Version"="1.0" + +[%REGVAR__HIVE%\SOFTWARE\Classes\QWDevice.QWDev] +@="QWDev Class" + +[%REGVAR__HIVE%\SOFTWARE\Classes\QWDevice.QWDev\CLSID] +@="{3F52625C-F66C-43F5-B538-CDF7331E0B7D}" + +[%REGVAR__HIVE%\SOFTWARE\Classes\QWDevice.QWDev\CurVer] +@="QWDevice.QWDev.1" + +[%REGVAR__HIVE%\SOFTWARE\Classes\QWDevice.QWDev.1] +@="QWDev Class" + +[%REGVAR__HIVE%\SOFTWARE\Classes\QWDevice.QWDev.1\CLSID] +@="{3F52625C-F66C-43F5-B538-CDF7331E0B7D}" + + +[%REGVAR__HIVE%\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}] + +[%REGVAR__HIVE%\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0] +@="QWDevice 1.0 Type Library" + +[%REGVAR__HIVE%\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\0] + +[%REGVAR__HIVE%\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\0\win32] +@="%REGVAR__DIR%%REGVAR__FILENAME%" + +[%REGVAR__HIVE%\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\FLAGS] +@="0" + +[%REGVAR__HIVE%\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\HELPDIR] +@="%REGVAR__DIR%" +