Méthode ICallFrame::Marshal (callobj.h)
Marshale la trame d’appel en transformant ses données accessibles en mémoire tampon plate sans perturber le frame.
Syntaxe
HRESULT Marshal(
[in] CALLFRAME_MARSHALCONTEXT *pmshlContext,
[in] MSHLFLAGS mshlflags,
[in] PVOID pBuffer,
[in] ULONG cbBuffer,
[out] ULONG *pcbBufferUsed,
[out] RPCOLEDATAREP *pdataRep,
[out] ULONG *prpcFlags
);
Paramètres
[in] pmshlContext
Pointeur vers la structure CALLFRAME_MARSHALCONTEXT contenant des informations de contexte sur la façon dont le marshaling est effectué.
[in] mshlflags
Indicateur indiquant si les données à marshaler doivent être transmises au processus client (cas normal) ou écrites dans une table globale, où elles peuvent être récupérées par plusieurs clients. Les valeurs possibles proviennent de l’énumération MSHLFLAGS .
[in] pBuffer
Pointeur vers la mémoire tampon dans laquelle les données marshalées doivent être placées.
[in] cbBuffer
Taille de la mémoire tampon, en octets.
[out] pcbBufferUsed
Reçoit la taille de la mémoire tampon qui a été réellement utilisée. Ce paramètre est facultatif.
[out] pdataRep
Reçoit la représentation de données NDR avec laquelle les données ont été marshalées. Ce paramètre est facultatif. Pour plus d’informations, consultez IRpcChannelBuffer::GetBuffer.
[out] prpcFlags
Reçoit un indicateur RPC associé à l’appel. Ce paramètre est facultatif. Pour plus d’informations, consultez IRpcChannelBuffer::GetBuffer.
Valeur retournée
Cette méthode peut retourner les valeurs suivantes.
Code de retour | Description |
---|---|
|
La commande s'est correctement terminée. |
|
Une erreur inattendue s’est produite. |
Remarques
Lors du marshaling des versions [In] des paramètres [in, out] sont présentes, et les versions [out] ne sont pas définies. Lors du marshaling des paramètres [out], les valeurs sont valides.
Si cette méthode retourne une erreur, l’appelant ne pourra pas la propre. Des ressources telles que la mémoire allouée de manière temporaire pendant la tentative de marshaling ont été libérées.
Configuration requise
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | callobj.h |