共用方式為


IOleObject::InitFromData 方法 (oleidl.h)

使用指定之資料物件的資料,初始化新建立的物件,該物件可以位於相同容器或剪貼簿上。

語法

HRESULT InitFromData(
  [in] IDataObject *pDataObject,
  [in] BOOL        fCreation,
  [in] DWORD       dwReserved
);

參數

[in] pDataObject

要從中取得初始化資料之資料物件上的 IDataObject 介面指標。 這個參數可以是 Null,表示呼叫端想要知道是否值得嘗試傳送資料;也就是說,容器是否能夠從傳遞給它的資料初始化物件。 要傳遞的資料物件可以根據容器檔案內的目前選取範圍或從外部來源傳送至容器的資料。

[in] fCreation

TRUE 表示容器正在本身內插入新的 物件,並使用目前選取範圍中的資料初始化該物件; FALSE 表示較一般的程式設計資料傳輸,很可能來自目前選取範圍以外的來源。

[in] dwReserved

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

傳回值

如果 pDataObject 不是 Null,這個方法會傳回S_OK,物件已成功從提供的資料初始化本身;如果 pDataObjectNull,物件就能夠嘗試成功的初始化。 其他可能的傳回值包括下列專案。

傳回碼 描述
S_FALSE
如果 pDataObject 不是 Null,物件不會嘗試初始化本身;如果 pDataObjectNull,物件就無法嘗試從所提供的資料初始化本身。
E_NOTIMPL
物件不支援 InitFromData
OLE_E_NOTRUNNING
物件未執行,因此無法執行作業。

備註

這個方法可讓容器檔案自行插入新的 物件,其內容是以容器內的目前資料選取專案為基礎。 例如,試算表檔可能會想要根據所選儲存格範圍中的資料建立繪圖物件。

使用此方法,容器也可以將内嵌物件的內容取代為從另一個來源傳輸的資料。 這提供更新内嵌物件的便利方式。

來電者附注

在初始化之後,容器應該呼叫 IOleObject::GetMiscStatus 來檢查OLEMISC_INSERTNOTREPLACE位的值。 如果位開啟,新物件會在選取的資料之後插入本身。 如果位已關閉,新物件會取代選取的資料。

實作者的注意事項

容器會指定是否要將 TRUEFALSE 傳遞至 fCreation 參數,以目前選取範圍上的新物件作為基底。

如果 fCreationTRUE,容器會嘗試建立物件的新實例,並使用資料物件所指定的選取資料初始化它。

如果 fCreationFALSE,則呼叫端嘗試以 pDataObject所指向的物件目前內容取代。 在貼上作業期間套用至物件的一般條件約束,應該在這裡套用。 例如,如果無法接受所提供的資料類型,物件應該無法初始化並傳回S_FALSE。

如果物件傳回S_FALSE,就無法從提供的資料初始化本身。

需求

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

另請參閱

IDataObject::SetData

IOleObject

IOleObject::GetMiscStatus