共用方式為


撰寫並存組件的狀態儲存

建立您自己的並存元件時,請遵循 建立並存元件的指導方針,並按照 撰寫並存元件的 DLL 的指導方針,撰寫要包含在元件中的所有 DLL。

請遵循以下針對狀態存儲的指導方針:

  • 將狀態記憶體設計為向前和向後相容。 預期版本會依任何順序使用:例如 v1、v3、v2。

  • 在組件程式碼中初始化和設定組件的預設設定。 請勿在登錄中儲存預設值設定。

  • 登錄設定必須以個別版本為基礎撰寫,以隔離可能同時執行的多個元件版本。 設計您的並排組件,以在並行共用情境中正確地儲存與處理組件的狀態。

  • 元件通常會將狀態資訊儲存在登錄機碼中。 撰寫一組頭檔案和輔助函式,以便輕鬆管理包含組件狀態的登錄機碼版本。

  • 儲存在登錄中的任何元件狀態資訊,都必須與元件的其他版本隔離。 儲存在登錄中的狀態設定必須儲存在登錄的個別版本區段中。 在登錄中的 HKLM 和 HKCU 部分都需要這樣做。 例如,將元件版本 XXXX 的 HKCU 狀態設定儲存在下列登錄機碼之下:

    HKCU\MyCompany\MyComponent\VersionXXXX

  • 共用元件儲存在登錄中的任何狀態資訊,都必須儲存在登錄的個別版本區段中。 例如,稱為 EnableSuperCoolFeature 的狀態設定可能會有 TRUE 值,或 FALSE。 將 共享並列組件 的值儲存如下:

    HKEY_CurrentUser\Software\MyCompany\MyComponent\Version01.01\EnableSuperCoolFeature = TRUE

  • 私人元件儲存在登錄中的任何狀態資訊,都必須儲存在登錄的個別應用程式區段中。 這會將元件的狀態設定隔離至應用程式。 您可以使用 GetModuleFileName 函式來設定虛擬根目錄。 例如,如果元件版本 XXYY 是 “SomeApplication” 的私人元件,則呼叫 getModuleFileName 會傳回 “SomeApplication”,且元件的任何私用狀態設定都應該以下列密鑰撰寫:

    HKCU\MyCompany\MyComponent\VersionXXYY\SomeApplication

  • 將共享狀態設定儲存在登錄中,以私用方式儲存至執行之元件內容。 您可以使用 GetModuleFileName 函式來設定虛擬根目錄。 這應該針對 HKLM 和 HKCU 分支完成。

  • 在理想情況下,您應該採用持續性模型,讓應用程式保存狀態,而不會改變登錄。 應用程式應不需要直接接觸元件的註冊表項目。 相反地,組件應該提供儲存或還原並存相容設定的 API 函式。

  • 元件可以在登錄外部的存放區中儲存狀態設定,讓元件能夠與全域狀態互動。 並排組件可能會使用下列並排相容的存放區:

    • 受保護的存放區 (pstore
    • WinInet 快取
    • 一台 Microsoft SQL Server