IPropertyStorage::WritePropertyNames 方法 (propidlbase.h)
WritePropertyNames 方法會將字串 IPropertyStorage 名稱指派給目前屬性集中的指定屬性識別子陣列。
語法
HRESULT WritePropertyNames(
[in] ULONG cpropid,
[in] const PROPID [] rgpropid,
[in] const LPOLESTR [] rglpwstrName
);
參數
[in] cpropid
陣列 rgpropid 輸入的大小。 可以是零。 不過,將它設為零會導致這個方法變成無法運作。
[in] rgpropid
要設定名稱的屬性識別子陣列。
[in] rglpwstrName
要指派給 rgpropid 陣列中對應屬性識別碼的新名稱陣列。 這些名稱不能超過 255 個字元, (不包含 NULL 終止符) 。
傳回值
除了下列專案之外,這個方法還支援標準傳回值 E_UNEXPECTED:
備註
如需屬性集和記憶體管理的詳細資訊,請參閱 管理屬性集。
IPropertyStorage::WritePropertyNames 會將字串名稱指派給傳遞至 rgpropid 陣列中方法的屬性標識碼。 它會將 rglpwstrName 陣列中的每個字串名稱與 rgpropid 中的個別屬性標識碼產生關聯。 定義屬性儲存物件中目前不存在之屬性標識碼的名稱是明確有效的。
您也可以變更現有字串名稱的對應, (不區分大小寫的比對) 所決定。 也就是說,您可以使用 WritePropertyNames 方法,將現有名稱對應至新的屬性識別碼,或將新名稱對應至已在字典中具有名稱的屬性標識碼。 在這兩種情況下,會刪除原始對應。 屬性名稱必須是唯一的 (,屬性集內的屬性標識碼) 。
字串屬性名稱的儲存會保留大小寫。 除非 PROPSETFLAG_CASE_SENSITIVE 傳遞至 IPropertySetStorage::Create,否則屬性集名稱預設不區分大小寫。 使用不區分大小寫的屬性集時,呼叫端所傳遞的名稱字串會根據屬性集的地區設定來解譯,如 PID_LOCALE 屬性所指定。 如果屬性集沒有地區設定屬性,則預設會假設目前的使用者。 字串屬性名稱的長度限制為128個字元。 以二進位 Unicode 字元開頭的屬性名稱0x0001透過 0x001F 保留供日後使用。
如果 rgpropid 陣列參數中的項目值設定為 0xffffffff (PID_ILLEGAL) ,IPropertyStorage::WritePropertyNames 會忽略對應的名稱。 例如,如果使用 3 的 cpropid 參數呼叫這個方法,但陣列 rgpropid[1] 的第一個專案會設定為 PID_ILLEGAL,則只會寫入兩個屬性名稱。 忽略 rgpropid[1] 元素。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows 2000 Server [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | propidlbase.h (包括 Objbase.h、Propidlbase.h) |
程式庫 | Uuid.lib |
Dll | Ole32.dll |
另請參閱
IPropertyStorage::ReadMultiple
IPropertyStorage::ReadPropertyNames