Partager via


Fonction type_UserUnmarshal

La <fonction type>_UserUnmarshal est une fonction d’assistance pour les attributs [ wire_marshal] et [ user_marshal]. Les stubs appellent cette fonction pour démarshaler les données côté client ou serveur. La fonction est définie comme suit :

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

Le <type> dans le nom de la fonction signifie le type userm spécifié dans la définition de type [wire_marshal] ou [user_marshal]. Ce type peut être non transtransmitable ou même, lorsqu’il est utilisé avec l’attribut [user_marshal] , inconnu du compilateur MIDL. Le nom du type de fil (nom du type transmissible) n’est pas utilisé dans le prototype de fonction. Notez, toutefois, que le type de fil définit la disposition de fil pour les données, comme spécifié par OSF DCE.

Le paramètre pFlags est un pointeur vers un champ d’indicateur long non signé . Le mot supérieur de l’indicateur contient des indicateurs de représentation des données de remise de remise tels que définis par OSF DCE pour les représentations à virgule flottante, en octets et en caractères. Le mot inférieur contient un indicateur de contexte de marshaling tel que défini par le canal COM. La disposition exacte des indicateurs dans le champ est décrite dans La fonction type_UserSize.

Le paramètre pBuffer est le pointeur de mémoire tampon actuel. Ce pointeur peut être aligné ou non lors de l’entrée. Votre <fonction _UserUnmarshal type> doit aligner le pointeur de mémoire tampon de manière appropriée, démarshaler les données et retourner la nouvelle position de mémoire tampon, qui est l’adresse du premier octet après l’objet non délimité.

Le paramètre pMyObj est un pointeur vers un objet de type défini par l’utilisateur.

Dans un environnement hétérogène, le moteur de remise de remise effectue toute conversion de données nécessaire avant d’appeler la< fonction type>_UserUnmarshal. Notez que le moteur de remise de remise effectue cette conversion de données en fonction de la définition de type de fil fournie pour ce type de données utilisateur. L’indicateur indique la représentation des données de l’expéditeur.

Règles de marshaling pour user_marshal et wire_marshal

wire_marshal

user_marshal