IPropertyStorage::WritePropertyNames 方法 (propidl.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會忽略對應的名稱。 例如,如果使用 cpropid 參數 3 呼叫此方法,但 rgpropid[1]陣列的第一個專案會設定為 PID_ILLEGAL,則只會寫入兩個屬性名稱。 忽略 rgpropid[1]元素。
需求
最低支援的用戶端 | Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows 2000 Server [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | propidl.h (包括 Objbase.h、Propidlbase.h) |
程式庫 | Uuid.lib |
Dll | Ole32.dll |
另請參閱
IPropertyStorage::ReadMultiple
IPropertyStorage::ReadPropertyNames