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

IPropertyStorage::ReadMultiple

IPropertyStorage::ReadPropertyNames

IPropertyStorage::WriteMultiple

範例

WriteRead 範例