HKCU\MyCompany\MyComponent\VersionXXXX\
範例:設定 EnableSuperCoolFeature = TRUE
HKCU\Software\MyCompany\MyComponent\EnableSuperCoolFeatureHKCU\Software\MyCompany\MyComponent\Version01.01\EnableSuperCoolFeatureHKCU\MyCompany\MyComponent\VersionXXYY\SomeApplication\
SomeApplication 取自 GetModuleFileName() 回傳值,確保各應用程式擁有獨立設定空間。
BOOL bPlatformSupportsSideBySide(void)
{
OSVERSIONINFOEX osviex = { sizeof(OSVERSIONINFOEX) };
if (!GetVersionEx((OSVERSIONINFO*)&osviex)) return FALSE;
if (osviex.dwPlatformId == VER_PLATFORM_WIN32_NT && osviex.dwMajorVersion < 5) return FALSE; // NT4 無 DLL 重導向
return TRUE; // Win2000、Win98 SE 以上支援
}
msidbClassAttributesRelativePath 位元,使用相對路徑。ReferenceCount=1(首次安裝),後續安裝遞增。在應用程式 .exe 同目錄建立空檔 應用程式名.exe.local。
例:myapp.exe → 建立 myapp.exe.local。
新應用程式需不同版本 ActiveX,舊版本有語意差異。
作法:新版控制項置於新應用程式目錄,建立 .local 檔強制載入本地版本。
限制:VB 建立的 ActiveX 註冊時寫入絕對路徑,難以原生並行。
共享 DLL 升級破壞向後相容,導致舊應用程式失效。
作法:舊版 DLL 複製至舊應用程式目錄,建立 .local 檔。
InprocServer32 路徑)。