Funkce type_UserUnmarshal
<typ>_UserUnmarshal funkce je pomocná funkce atributů [ wire_marshal] a [ user_marshal]. Zástupné procedury volají tuto funkci k zrušenímarshalí dat na straně klienta nebo serveru. Funkce je definována takto:
unsigned char __RPC_FAR * __RPC_USER <type>_UserUnmarshal(
unsigned long __RPC_FAR * pFlags,
unsigned char __RPC_FAR * pBuffer,
<type> __RPC_FAR * pMyObj);
Typ <> v názvu funkce znamená typ uživatele zadaný v definici typu typu [wire_marshal] nebo [user_marshal]. Tento typ může být nepřecházený nebo dokonce – při použití s atributem [user_marshal] – neznámý kompilátoru MIDL. Název typu drátu (název povoleného typu) se v prototypu funkce nepoužívá. Všimněte si však, že typ drátu definuje rozložení drátu pro data podle OSF DCE.
Parametr pFlags je ukazatel na pole příznaku bez znaménka. Horní slovo příznaku obsahuje příznaky reprezentace dat o nedoručení definované OSF DCE pro plovoucí desetinnou čárku, pořadí bajtů a reprezentace znaků. Dolní slovo obsahuje příznak zařazování kontextu definovaný kanálem COM. Přesné rozložení příznaků v poli je popsáno v Type_UserSize Funkce.
Parametr pBuffer je aktuální ukazatel vyrovnávací paměti. Tento ukazatel může nebo nemusí být zarovnaný u položky. Váš <typ>_UserUnmarshal funkce by měl odpovídajícím způsobem zarovnat ukazatel vyrovnávací paměti, zrušit rozdělení dat a vrátit novou pozici vyrovnávací paměti, což je adresa prvního bajtu za nešifrovaný objekt.
Parametr pMyObj je ukazatel na objekt typu definovaný uživatelem.
V heterogenním prostředí modul oznámení o nedoručení provádí převod dat potřebný před voláním <typu>_UserUnmarshal funkce. Všimněte si, že modul oznámení o nedoručení provádí tento převod dat podle definice wire-type zadané pro tento datový typ uživatele. Příznak označuje reprezentaci dat odesílatele.
Související témata