IMarshal::ReleaseMarshalData 方法 (objidl.h)
終結封送處理的數據封包。
語法
HRESULT ReleaseMarshalData(
[in] IStream *pStm
);
參數
[in] pStm
數據流的指標,其中包含要終結的數據封包。
傳回值
這個方法可以傳回標準傳回值S_OK和E_FAIL,以及 IStream 介面的任何數據流存取錯誤。
備註
如果物件的封送處理數據封包在用戶端進程空間中未封送處理,而且不再需要封包,用戶端就會在 Proxy 的 IMarshal 實作上呼叫 ReleaseMarshalData,以指示對象終結數據封包。 呼叫會在 CoReleaseMarshalData 函 式內發生。 數據封包可作為物件的其他參考,而釋放數據就像呼叫 Release 來釋放介面指標一樣。
如果封送處理的數據封包未送達用戶端程式,或如果 Proxy 中未成功重新建立 ReleaseMarshalData,COM 可以在物件本身上呼叫這個方法。
來電者附註
有時候,您很少會自行呼叫此方法。 您可能在類別處理站上實作 IMarshal ,這是您同時實作 IMarshal 之類別物件的例外狀況。 在此情況下,如果您將物件封送處理至可由多個用戶端擷取的數據表,您可能會在解除封送處理例程中呼叫 ReleaseMarshalData 以釋放每個 Proxy 的數據封包。實作者的注意事項
如果您的實作儲存封送處理數據封包的狀態資訊,您可以使用這個方法來釋放與 pStm 所表示之數據封包相關聯的狀態資訊。 您的實作也應該將搜尋指標放在數據流中,超過最後一個字節的數據。規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows 2000 Server [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | objidl.h (包含 ObjIdl.h) |