撰寫並存元件的狀態儲存體
建立您自己的並存元件時,請遵循建立並存 元件 指導方針,並根據撰寫並存元件的 DLL 中的指導方針,撰寫要包含在元件中的任何 DLL。
遵循下列狀態儲存體的指導方針:
設計要向前和回溯相容的狀態儲存體。 預期版本會依任何順序使用:例如 v1、v3、v2。
初始化並設定元件程式碼中元件的預設設定。 請勿在登錄中儲存預設值設定。
登錄設定必須以個別版本為基礎撰寫,以隔離可能同時執行的多個元件版本。 設計並存元件,以在並存共用案例期間正確儲存和處理元件的狀態。
元件通常會將狀態資訊儲存在登錄機碼中。 撰寫一組標頭檔與協助程式函式,以提供一個簡單的方式來版本登錄機碼,其中包含元件狀態。
任何儲存在登錄中的元件狀態資訊都必須與其他元件的版本隔離。 儲存在登錄中的狀態設定必須儲存在登錄的個別版本區段中。 登錄的 HKLM 和 HKCU 部分都需要此專案。 例如,在下列登錄機碼下儲存元件版本 XXXX 的 HKCU 狀態設定:
HKCU\MyCompany\MyComponent\VersionXXXX
由共用元件儲存在登錄中的任何狀態資訊,都必須儲存在登錄的個別版本區段中。 例如,稱為 EnableSuperCoolFeature 的狀態設定可能值為 TRUE 或 FALSE。 儲存 共用並存元件 的值,如下所示:
\ HKEY_CurrentUser軟體\MyCompany\MyComponent\Version01.01\EnableSuperCoolFeature = TRUE
由私人元件儲存在登錄中的任何狀態資訊,都必須儲存在登錄的個別應用程式區段中。 這會將元件的狀態設定隔離至應用程式。 您可以使用 GetModuleFileName 函式來設定虛擬根目錄。 例如,如果元件版本 XXYY 是 「SomeApplication」 的私人元件, 則對 GetModuleFileName 的呼叫會傳回 「SomeApplication」,而且元件的任何私人狀態設定都應該以下列金鑰撰寫:
HKCU\MyCompany\MyComponent\VersionXXYYY\SomeApplication
將儲存在登錄私人的共用狀態設定設為執行之元件內容。 您可以使用 GetModuleFileName 函式來設定虛擬根目錄。 這應該針對 HKLM 和 HKCU 分支完成。
在理想情況下,您應該採用持續性模型,其中應用程式會保存狀態,而且不會改變登錄。 應用程式不應該直接接觸元件的登錄專案。 相反地,元件應該提供 API 函式,以儲存或還原並存相容的設定。
元件可能會將狀態設定儲存在登錄外部的存放區中,讓元件能夠與全域狀態互動。 並存元件可能會使用下列並存相容存放區:
- 受保護的存放區 (pstore)
- WinInet 快取
- Microsoft SQL Server