OleLoad 函式 (ole2.h)
載入巢狀于指定儲存物件內的記憶體中。
語法
HRESULT OleLoad(
[in] LPSTORAGE pStg,
[in] REFIID riid,
[in] LPOLECLIENTSITE pClientSite,
[out] LPVOID *ppvObj
);
參數
[in] pStg
要從中載入指定物件的儲存體物件上 IStorage 介面的指標。
[in] riid
呼叫端想要在載入物件之後與物件通訊之介面識別碼的參考。
[in] pClientSite
正在載入之用戶端月臺物件上 IOleClientSite 介面的指標。
[out] ppvObj
接收 riid 中所要求介面指標的指標變數位址。 成功傳回時,*ppvObj 會在新載入的物件上包含要求的介面指標。
傳回值
此函式會在成功時傳回S_OK。 其他可能的值包括下列專案。
傳回碼 | 描述 |
---|---|
|
物件不支援指定的介面。 |
此外,此函式可以傳回 IPersistStorage::Load 方法傳回的任何錯誤值。
備註
OLE 容器會藉由呼叫此函式,將物件載入記憶體中。 呼叫 OleLoad 函式時,容器應用程式會將指標傳遞給儲存巢狀物件的開啟儲存物件。 一般而言,要載入的巢狀物件是容器根儲存體物件的子儲存體物件。 使用與 物件一起儲存的 OLE 資訊,物件處理常式通常會 (,預設處理常式) 嘗試載入物件。 完成 OleLoad 函式時,物件會被視為處於載入狀態,且其物件應用程式未執行。
有些應用程式會載入所有物件的原生資料。 容器通常會延遲載入包含的物件,直到需要執行此動作為止。 例如,在物件捲動到檢視中且需要繪製之前,不需要載入它。
OleLoad函式會執行下列步驟:
- 如有必要,請執行物件的自動轉換 (請參閱 OleDoAutoConvert 函式) 。
- 藉由呼叫 IStorage::Stat 方法,從開啟的儲存體物件取得 CLSID。
- 呼叫 CoCreateInstance 函式來建立處理常式的實例。 如果無法使用處理程式程式碼,則會使用預設處理常式 (請參閱 OleCreateDefaultHandler 函式) 。
- 使用pClientSite參數呼叫IOleObject::SetClientSite方法,以通知其用戶端月臺的物件。
- 呼叫IPersistStorage介面的QueryInterface方法。 如果成功,則會針對 物件叫用 IPersistStorage::Load 方法。
- 查詢並傳回 riid 參數所識別的介面。
需求
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | ole2.h |
程式庫 | Ole32.lib |
Dll | Ole32.dll |