IPropertyBag::Write 方法 (oaidl.h)
將具名屬性儲存在呼叫端初始化的 VARIANT 中。
語法
HRESULT Write(
LPCOLESTR pszPropName,
VARIANT *pVar
);
參數
pszPropName
包含要寫入之屬性名稱的字串位址。 這不可以是 NULL。
pVar
呼叫端初始化 VARIANT 的位址,其保存要儲存的屬性值。 呼叫端擁有此 VARIANT,並負責其所有配置。 也就是說,屬性包不會嘗試釋放 VARIANT 中的數據。
備註
Write 方法會指示屬性包使用 pVar 中呼叫端初始化 VARIANT 中的類型和值,以 pszPropName 儲存名為 的屬性。 在某些情況下,呼叫端可能會告訴屬性包儲存另一個物件,例如,當 是VT_UNKNOWN時 pVar->vt
。 在這種情況下,屬性包會查詢此對象指標以取得持續性介面,例如 IPersistStream 或 IPersistPropertyBag,而且該物件也會儲存其數據。 這通常會導致這個對象的屬性包有一些位元組陣列,可以儲存為編碼文字,例如十六進位字串、MIME 等等。 當屬性包稍後用來重新初始化控件時,擁有屬性包的客戶端必須在呼叫端要求它時重新建立物件,以先前儲存的位初始化該物件。
這可讓二進位大型物件 (BLOB) 屬性有效率的持續性作業,例如圖片,其中屬性包的擁有者會告知圖片物件 (該對像是儲存) 控件中的屬性,以儲存至特定位置。 這可避免可能涉及其他屬性型持續性機制的潛在額外複製作業。
E_NOTIMPL不是有效的傳回碼,因為任何實作此介面的對象都必須支援介面的整個功能。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 組建 20348 |
最低支援的伺服器 | Windows 10 組建 20348 |
標頭 | oaidl.h |