OleCreate 函式 (ole2.h)
建立 CLSID 所識別的內嵌物件。 您通常會使用它來實作功能表項,讓使用者插入新的物件。
語法
HRESULT OleCreate(
[in] REFCLSID rclsid,
[in] REFIID riid,
[in] DWORD renderopt,
[in] LPFORMATETC pFormatEtc,
[in] LPOLECLIENTSITE pClientSite,
[in] LPSTORAGE pStg,
[out] LPVOID *ppvObj
);
參數
[in] rclsid
要建立之內嵌物件的 CLSID。
[in] riid
介面識別碼的參考,通常IID_IOleObject (定义在 OLE 標頭中,做為 IOleObject) 的介面識別碼,呼叫端會透過此標識碼與新對象通訊。
[in] renderopt
列舉 OLERENDER 中的值,指出新建立對象必須擁有的本機快取繪圖功能。 所選 的 OLERENDER 值會影響 pFormatEtc 參數的可能值。
[in] pFormatEtc
根據 OLERENDER 旗標的哪一個做為 renderopt 的值,指向其中一個 FORMATETC 列舉值的指標。 如需限制,請參閱 OLERENDER 列舉。 此參數以及 renderopt 參數會指定新物件一開始可以快取的內容。
[in] pClientSite
如果您想要 OleCreate 呼叫 IOleObject::SetClientSite,則指向容器上的 IOleClientSite 介面指標。 此值可能是 NULL,在此情況下,您必須在嘗試作業之前特別呼叫 IOleObject::SetClientSite 。
[in] pStg
記憶體物件上 IStorage 介面實例的指標。 此參數可能不是 NULL。
[out] ppvObj
接收 riid 中要求的介面指標的指標變數位址。 成功傳回時,*ppvObject 包含要求的介面指標。
傳回值
此函式會在成功時傳回S_OK,並支援標準傳回值E_OUTOFMEMORY。
傳回碼 | Description |
---|---|
|
作業的記憶體不足。 |
備註
OleCreate 函式會建立新的內嵌物件,而且通常會呼叫 來實作功能表項 Insert New Object。 當 OleCreate 傳回時,它建立的物件是空白 (不包含任何數據) ,除非 renderopt 是OLERENDER_DRAW或OLERENDER_FORMAT,而且會載入。 容器通常會呼叫 OleRun 函式或 IOleObject::D oVerb 來顯示物件以進行初始編輯。
rclsid 參數會指定所要求物件的 CLSID。 已註冊物件的 CLSID 會儲存在系統登錄中。 當應用程式使用者選取 [插入物件] 時,選取方塊可讓使用者從登錄中選取所需的物件類型。 當 OleCreate 用來實作 [插入物件] 功能表項時,與選取專案相關聯的 CLSID 會指派給 OleCreate 的 rclsid 參數。
riid 參數會指定用戶端將用來與新物件通訊的介面。 成功傳回時, ppvObject 參數會保存所要求介面的指標。
所建立物件的快取包含允許在開啟容器時呈現自主物件的資訊。 應該快取的內容相關信息會傳入 renderopt 和 pFormatetc 值。 當 OleCreate 傳回時,所建立物件的快取不一定填滿。 相反地,第一次對象進入執行中狀態時,就會填入快取。 呼叫端可以在傳回 OleCreate 之後,以及在對象執行之前呼叫 IOleCache::Cache 來新增其他快取控件。 如果 renderopt 是OLERENDER_DRAW或 OLERENDER_FORMAT,OleCreate 會要求物件支援 IOleCache 介面。 轉譯碼的任何其他值都不需要這類需求。
如果 pClientSite 不是 NULL,OleCreate 會透過pClientSite 指標呼叫 IOleObject::SetClientSite。 IOleClientSite 是物件從其容器要求服務的主要介面。 如果 pClientSite 是 NULL,您必須先對 IOleObject::SetClientSite 進行特定呼叫,才能嘗試任何作業。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | ole2.h (包含 Ole2.h) |
程式庫 | Ole32.lib |
Dll | Ole32.dll |