共用方式為


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

IPropertyStorage::ReadMultiple

IPropertyStorage::ReadPropertyNames

IPropertyStorage::WriteMultiple

範例

WriteRead 範例