Partager via


Méthode ICallUnmarshal ::ReleaseMarshalData (callobj.h)

Libère les ressources qui peuvent être détenues par des pointeurs d’interface résidant dans un paquet de données marshalées. Cette méthode recherche tous les pointeurs d’interface dans le paquet et appelle la fonction CoReleaseMarshalData sur chaque pointeur d’interface.

Syntaxe

HRESULT ReleaseMarshalData(
  [in] ULONG                    iMethod,
  [in] PVOID                    pBuffer,
  [in] ULONG                    cbBuffer,
  [in] ULONG                    ibFirstRelease,
  [in] RPCOLEDATAREP            dataRep,
  [in] CALLFRAME_MARSHALCONTEXT *pcontext
);

Paramètres

[in] iMethod

Numéro de méthode.

[in] pBuffer

Pointeur vers la mémoire tampon contenant les paramètres marshalés.

[in] cbBuffer

Taille de la mémoire tampon, en octets.

[in] ibFirstRelease

Premier octet de la mémoire tampon à libérer. Une valeur de zéro implique que les pointeurs d’interface dans l’ensemble de la mémoire tampon doivent être libérés. L’idée est que les pointeurs d’interface marshalés avant l’octet indiqué sont supposés avoir déjà été libérés par un autre mécanisme.

[in] dataRep

Représentation de données avec laquelle les données ont été marshalées.

[in] pcontext

Pointeur vers une structure de CALLFRAME_MARSHALCONTEXT qui contient des informations sur le contexte dans lequel la démarshalation doit être effectuée.

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

Pour propre les ressources contenues dans la mémoire tampon marshalée, la méthode ReleaseMarshalData doit être appelée. Toutefois, lorsque l’énumération MSHLFLAGS est définie sur normal, cette opération est effectuée automatiquement lors du démarshalage.

ReleaseMarshalData peut être utilisé sur les paramètres entrants et sortants marshalés.

Configuration requise

Condition requise Valeur
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

ICallUnmarshal