Share via


OleCreateFromFile 函式 (ole2.h)

從具名檔案的內容建立內嵌物件。

語法

HRESULT OleCreateFromFile(
  [in]  REFCLSID        rclsid,
  [in]  LPCOLESTR       lpszFileName,
  [in]  REFIID          riid,
  [in]  DWORD           renderopt,
  [in]  LPFORMATETC     lpFormatEtc,
  [in]  LPOLECLIENTSITE pClientSite,
  [in]  LPSTORAGE       pStg,
  [out] LPVOID          *ppvObj
);

參數

[in] rclsid

此參數是保留的,而且必須CLSID_NULL。

[in] lpszFileName

字串的指標,指定對象應該從中初始化之檔案的完整路徑。

[in] riid

呼叫端稍後用來與新對象通訊之介面標識碼的參考 (通常IID_IOleObject,在 OLE 標頭中定義為 IOleObject) 的介面識別符。

[in] renderopt

列舉 OLERENDER 的值,指出新建立物件所要擁有的本機快取繪圖或數據擷取功能。 所選 的 OLERENDER 值會影響 lpFormatEtc 參數的可能值。

[in] lpFormatEtc

根據哪一個 OLERENDER 旗標會當做 renderopt 的值使用,指向其中一個 FORMATETC 列舉值的指標。 另請參閱 OLERENDER 列舉以取得限制。

[in] pClientSite

IOleClientSite 實例的指標,這是物件從其容器要求服務的主要介面。 此參數可以是 Null

[in] pStg

記憶體物件上 IStorage 介面的指標。 此參數不可為 NULL

[out] ppvObj

接收 riid 中所要求介面指標的指標變數位址。 成功傳回時,*ppvObj 會在新建立的物件上包含要求的介面指標。

傳回值

此函式會在成功時傳回S_OK。 其他可能的值包括下列專案。

傳回碼 Description
STG_E_FILENOTFOUND
檔案未繫結。
OLE_E_CANT_BINDTOSOURCE
無法系結至來源。
STG_E_MEDIUMFULL
媒體已滿。
DV_E_TYMED
無效 的 TYMED
DV_E_LINDEX
無效的 LINDEX。
DV_E_FORMATETC
無效的 FORMATETC 結構。

備註

OleCreateFromFile 函式會從具名檔案的內容建立新的內嵌物件。 如果註冊資料庫中的 ProgID 包含 PackageOnFileDrop 金鑰,則會建立封裝。 如果沒有,此函式會呼叫 GetClassFile 函式來取得與 lpszFileName 參數相關聯的 CLSID,然後建立與該 CLSID 相關聯的 OLE 2 內嵌物件。 OleCreateFromFilerclsid 參數一律會被忽略,而且應該設定為 CLSID_NULL。

如同其他 OleCreateXxx 函式,新建立的物件不會向用戶顯示以進行編輯,這需要 DoVerb 作業。 它用來實作插入檔案作業。

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 ole2.h (包含 Ole2.h)
程式庫 Ole32.lib
Dll Ole32.dll

另請參閱

GetClassFile