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 |
---|---|
|
檔案未繫結。 |
|
無法系結至來源。 |
|
媒體已滿。 |
|
無效 的 TYMED。 |
|
無效的 LINDEX。 |
|
無效的 FORMATETC 結構。 |
備註
OleCreateFromFile 函式會從具名檔案的內容建立新的內嵌物件。 如果註冊資料庫中的 ProgID 包含 PackageOnFileDrop 金鑰,則會建立封裝。 如果沒有,此函式會呼叫 GetClassFile 函式來取得與 lpszFileName 參數相關聯的 CLSID,然後建立與該 CLSID 相關聯的 OLE 2 內嵌物件。 OleCreateFromFile 的 rclsid 參數一律會被忽略,而且應該設定為 CLSID_NULL。
如同其他 OleCreateXxx 函式,新建立的物件不會向用戶顯示以進行編輯,這需要 DoVerb 作業。 它用來實作插入檔案作業。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | ole2.h (包含 Ole2.h) |
程式庫 | Ole32.lib |
Dll | Ole32.dll |