Partager via


Fonction type_UserUnmarshal

La fonction>_UserUnmarshal de type<est une fonction d’assistance pour les attributs [ wire_marshal] et [ user_marshal]. Les stubs appellent cette fonction pour disshaler 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 que le type d’utilisateur spécifié dans le [wire_marshal] ou [user_marshal] définition de type. Ce type peut être non modifiable ou même, lorsqu’il est utilisé avec l’attribut [user_marshal], inconnu du compilateur MIDL. Le nom du type de câble (le nom du type transmissible) n’est pas utilisé dans le prototype de fonction. Notez toutefois que le type de câble définit la disposition des câbles 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 de données de remise tels que définis par OSF DCE pour les représentations à virgule flottante, l’ordre d’octet et les représentations de 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 ou non être aligné sur l’entrée. Votre <type>_UserUnmarshal fonction doit aligner le pointeur de mémoire tampon de manière appropriée, disshaler 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 effectue toute conversion de données nécessaire avant d’appeler la fonction <type>_UserUnmarshal. Notez que le moteur de remise effectue cette conversion de données en fonction de la définition de type filaire 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