Méthode IMarshal ::UnmarshalInterface (objidl.h)
Désactive un pointeur d’interface.
Syntaxe
HRESULT UnmarshalInterface(
[in] IStream *pStm,
[in] REFIID riid,
[out] void **ppv
);
Paramètres
[in] pStm
Pointeur vers le flux à partir duquel le pointeur d’interface doit être démarshalé.
[in] riid
Référence à l’identificateur de l’interface à démarshaler.
[out] ppv
Adresse de la variable pointeur qui reçoit le pointeur d’interface. Une fois le retour réussi, *ppv contient le pointeur d’interface demandé de l’interface à démarshaler.
Valeur retournée
Cette méthode peut retourner la valeur de retour standard E_FAIL, ainsi que les valeurs suivantes.
Code de retour | Description |
---|---|
|
Le pointeur d’interface n’a pas été correctement délimité. |
|
L’interface spécifiée n’est pas prise en charge. |
Remarques
La bibliothèque COM dans le processus où un démarshalage doit se produire appelle l’implémentation du proxy de cette méthode.
Notes aux appelants
Vous n'appelez pas cette méthode directement. Toutefois, il existe certaines situations dans lesquelles vous pouvez l’appeler indirectement par le biais d’un appel à CoUnmarshalInterface. Par exemple, si vous implémentez un stub, votre implémentation appelle CoUnmarshalInterface lorsque le stub reçoit un pointeur d’interface en tant que paramètre dans un appel de méthode.Notes aux implémenteurs
L’implémentation du proxy doit lire les données écrites dans le flux par l’implémentation de IMarshal ::MarshalInterface de l’objet d’origine et utiliser ces données pour initialiser l’objet proxy dont le CLSID a été retourné par l’appel du stub de marshaling à l’implémentation d’origine de L’objet IMarshal ::GetUnmarshalClass.Pour retourner le pointeur d’interface approprié, l’implémentation du proxy peut simplement appeler QueryInterface sur elle-même, en passant les paramètres riid et ppv . Toutefois, votre implémentation d’UnmarshalInterface est libre de créer un autre objet et, si nécessaire, de renvoyer un pointeur vers celui-ci.
Juste avant de quitter, même si vous quittez avec une erreur, votre implémentation doit repositionner le pointeur de recherche dans le flux immédiatement après le dernier octet de données lu.
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) |