Partager via


Méthode IMarshal ::ReleaseMarshalData (objidl.h)

Détruit un paquet de données marshalé.

Syntaxe

HRESULT ReleaseMarshalData(
  [in] IStream *pStm
);

Paramètres

[in] pStm

Pointeur vers un flux qui contient le paquet de données à détruire.

Valeur retournée

Cette méthode peut retourner les valeurs de retour standard S_OK et E_FAIL, ainsi que toutes les erreurs d’accès au flux pour l’interface IStream .

Remarques

Si le paquet de données marshalé d’un objet n’est pas démarshalé dans l’espace de processus client et que le paquet n’est plus nécessaire, le client appelle ReleaseMarshalData sur l’implémentation IMarshal du proxy pour indiquer à l’objet de détruire le paquet de données. L’appel se produit dans la fonction CoReleaseMarshalData . Le paquet de données sert de référence supplémentaire sur l’objet, et libérer les données revient à libérer un pointeur d’interface en appelant Release.

Si le paquet de données marshalé n’arrive pas dans le processus client ou si ReleaseMarshalData n’est pas recréé correctement dans le proxy, COM peut appeler cette méthode sur l’objet lui-même.

Notes aux appelants

Vous aurez rarement, voire jamais, l’occasion d’appeler cette méthode vous-même. Une exception possible serait si vous implémentez IMarshal sur une fabrique de classes pour un objet de classe sur lequel vous implémentez également IMarshal. Dans ce cas, si vous marshaliez l’objet dans une table où il pouvait être récupéré par plusieurs clients, vous pouvez, dans le cadre de votre routine de démarshaling, appeler ReleaseMarshalData pour libérer le paquet de données pour chaque proxy.

Notes aux implémenteurs

Si votre implémentation stocke des informations d’état sur les paquets de données marshalés, vous pouvez utiliser cette méthode pour libérer les informations d’état associées au paquet de données représenté par pStm. Votre implémentation doit également positionner le pointeur de recherche dans le flux après le dernier octet de données.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête objidl.h (inclure ObjIdl.h)

Voir aussi

CoReleaseMarshalData

IMarshal