IDataObject::SetData 方法 (objidl.h)
由包含資料來源的物件呼叫,以將資料傳送至實作此方法的物件。
語法
HRESULT SetData(
[in] FORMATETC *pformatetc,
[in] STGMEDIUM *pmedium,
[in] BOOL fRelease
);
參數
[in] pformatetc
FORMATETC結構的指標,定義資料物件在解譯儲存媒體中包含的資料時所使用的格式。
[in] pmedium
STGMEDIUM結構的指標,定義要傳遞資料的儲存媒體。
[in] fRelease
如果 為 TRUE,則呼叫的資料物件會實作 SetData,在呼叫傳回之後擁有儲存媒體。 這表示它必須在呼叫 ReleaseStgMedium 函式之後釋放媒體。 如果 為 FALSE,呼叫端會保留儲存媒體的擁有權,而呼叫的資料物件只會在呼叫期間使用儲存媒體。
傳回值
此方法會在成功時傳回S_OK。 其他可能的值包括下列專案。
傳回碼 | 描述 |
---|---|
|
lindex的值無效;目前僅支援 -1。 |
|
pformatetc的值無效。 |
|
tymed值無效。 |
|
dwAspect值無效。 |
|
物件應用程式未執行。 |
|
作業失敗。 |
|
已發生未預期的錯誤。 |
|
dwDirection值無效。 |
|
此作業的記憶體不足。 |
備註
SetData 可讓另一個物件嘗試將資料傳送至實作的資料物件。 如果資料物件支援從另一個物件接收資料,則資料物件會實作這個方法。 如果不支援此功能,則應該實作以傳回E_NOTIMPL。
呼叫端會配置 pmedium 參數所指示的儲存媒體,其中會傳遞資料。 呼叫的資料物件在成功收到資料且未傳回錯誤碼之前,不會取得資料的擁有權。 fRelease參數的值表示呼叫傳回之後媒體的擁有權。 FALSE 表示呼叫端仍然擁有媒體,而且資料物件在呼叫期間只使用它; TRUE 表示資料物件現在擁有它,而且在不再需要資料物件時必須釋放它。
pformatetc和pmedium參數中指定的媒體類型必須相同。 例如,一個不能是全域控制碼,另一個是資料流程。
需求
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | objidl.h |