共用方式為


type_UserUnmarshal函式

<類型>_UserUnmarshal 函式是 [wire_marshal] 和 [ user_marshal] 屬性的協助程式函式。 存根會呼叫此函式,以取消用戶端或伺服器端的數據。 函式定義為:

unsigned char __RPC_FAR * __RPC_USER  <type>_UserUnmarshal(
    unsigned long __RPC_FAR * pFlags,
    unsigned char __RPC_FAR * pBuffer,
    <type>  __RPC_FAR *       pMyObj);

函式名稱中的 <類型> 表示 [wire_marshal][user_marshal] 類型定義中指定的 userm 類型。 當與 MIDL 編譯程式未知的 [user_marshal] 屬性搭配使用時,此類型可能不可轉譯,甚至是偶數。 線路類型名稱(可轉譯類型的名稱)不會用於函式原型中。 不過,請注意,線路類型會定義OSF DCE所指定數據的線路配置。

pFlags 參數是 不帶正負號之長 旗標字段的指標。 旗標的上一字包含OSF DCE針對浮點、位元組順序和字元表示法所定義的NDR數據表示旗標。 下一個字包含 COM 通道所定義的封送處理內容旗標。 欄位內旗標的確切版面配置會在 Type_UserSize 函式中說明。

pBuffer 參數是目前的緩衝區指標。 此指標在專案上可能或可能不會對齊。 您的 <類型>_UserUnmarshal 函式應該適當地對齊緩衝區指標,並取消分割數據,並傳回新的緩衝區位置,這是未分割對象之後第一個字節的位址。

pMyObj 參數是使用者定義型別物件的指標。

在異質環境中,NDR 引擎會在呼叫 <類型>_UserUnmarshal 函式之前執行必要的任何數據轉換。 請注意,NDR 引擎會根據針對這個用戶數據類型提供的線路類型定義來執行此數據轉換。 旗標表示傳送者的數據表示。

封送處理user_marshal和wire_marshal规则

wire_marshal

user_marshal