Partager via


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
S_OK
La commande s'est correctement terminée.
E_UNEXPECTED
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

Voir aussi

ICallFrame