使用限定元件
限定元件是間接取值的方法,可用來將具有平行功能的元件分組成類別。
若要傳回完整路徑並安裝 合格的元件,請呼叫 MsiProvideQualifiedComponent 或 MsiProvideQualifiedComponentEx。
若要列舉所有限定元件限定詞和描述性字串,請呼叫 MsiEnumComponentQualifiers。
將元件群組在一起成為限定的元件類別
- [元件] 資料表中必須有一筆記錄,每個元件都包含在限定元件的新類別中。 撰寫元件資料表中的欄位,與一般元件相同。 請注意,每個限定元件都必須在 Component 資料表的 ComponentId 資料行中輸入唯一的元件識別碼 GUID。
- 為每個限定元件產生限定詞文字字串。 限定詞必須是唯一的文字字串,可在搜尋限定元件時輕鬆產生。 例如,如果類別中的元件是以語言限定,則數值地區設定識別碼 (LCID) 是合理的限定詞字串。
- 針對每個限定元件,在 PublishComponent 資料表 中新增記錄。 在 PublishComponent 資料表的 [Component_] 資料行中,從 Component 資料表的 [元件] 資料行輸入限定的元件識別碼。 在 [限定詞] 資料行中,輸入每個限定元件的限定詞字串。 輸入要向使用者顯示的當地語系化字串,並將限定元件描述為選用的 AppData 資料行。 說明字串應該放在 AppData 欄位中,例如「法文字典」,而不只是數值 LCID。 在 [Feature_] 資料行中,輸入使用此元件的功能名稱。 此欄位中的功能識別碼也必須列在 [功能] 資料表的 [功能] 資料行中。
- 產生此合格元件的類別 GUID。 這必須是有效的 GUID。 如果您使用 GUIDGEN 之類的公用程式來產生 GUID,請確定它只包含大寫字母。 針對此類別中的每個限定元件,請在 PublishComponent 資料表的 ComponentId 欄位中輸入類別 GUID。
下列範例說明如何將限定元件的「傳真範本」類別撰寫到元件、功能及 PublishComponent 資料表中。
ComponentId | Qualifier | AppData | 特徵_ | 元件_ |
---|---|---|---|---|
{傳真範本類別 GUID} | 1033 | 美國英文範本 | FAXTemplate | FAXTemplateENU |
1041 | 日文範本 | FAXTemplate | FAXTemplateJPN | |
1054 | 泰文範本 | FAXTemplate | FAXTemplateTHA | |
1031 | 德文範本 | FAXTemplate | FAXTemplateDEU |
元件資料表 (部分資料表)
元件 | ComponentId |
---|---|
FAXTemplateENU | {傳真範本 (美國英文) 元件 GUID} |
FAXTemplateJPN | {FAX 範本 (日文) 元件 GUID} |
FAXTemplateTHA | {FAX 範本 (泰文) 元件 GUID} |
FAXTemplateDEU | {FAX 範本 (德文) 元件 GUID} |
功能資料表 (部分資料表)
功能 |
---|
FAXTemplate |
FAXTemplate |
FAXTemplate |
FAXTemplate |