IOleItemContainer::GetObjectStorage 方法 (oleidl.h)

擷取指定物件的記憶體指標。

語法

HRESULT GetObjectStorage(
  [in]  LPOLESTR pszItem,
  [in]  IBindCtx *pbc,
  [in]  REFIID   riid,
  [out] void     **ppvStorage
);

參數

[in] pszItem

要求記憶體之物件的複合檔名稱。

[in] pbc

系結內容上要用於這個系結作業之 IBindCtx 介面的指標。 系結內容會快取系結於系結程式期間系結的物件、包含使用系結內容套用至所有作業的參數,並提供系結實作應該擷取其環境相關信息的方法。

[in] riid

用來與對象通訊之介面標識符的參考,通常是 IStorage

[out] ppvStorage

接收 riid 中所要求之介面指標的指標變數位址。 成功傳回時,*ppvStorage 會包含 pszItem 所命名對象的記憶體要求介面指標。 成功時,實作必須在 *ppvStorage 上呼叫 AddRef;呼叫者必須負責呼叫 Release。 如果發生錯誤,*ppvStorage 會設定為 NULL

傳回值

這個方法可以傳回標準傳回值E_OUTOFMEMORY,以及下列值。

傳回碼 描述
S_OK
方法完全成功。
MK_E_OBJECT
參數 pszItem 不會識別此容器中的物件。
MK_E_NOSTORAGE
對象沒有自己的獨立記憶體。
E_NOINTERFACE
要求的介面無法使用。

備註

IMoniker::BindToStorage 的專案 Moniker 實作會呼叫這個方法。

實作者的注意事項

如果 pszItem 指定虛擬物件, 您的 IOleItemContainer::GetObjectStorage 實作應該會傳回MK_E_NOSTORAGE,因為虛擬對象沒有自己的獨立記憶體。 如果 pszItem 指定內嵌物件,或具有自己儲存空間的檔部分,您的實作應該會在適當的儲存物件上傳回指定的介面指標。

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 oleidl.h

另請參閱

IOleItemContainer