CoUnmarshalInterface, fonction (combaseapi.h)
Initialise un proxy nouvellement créé à l’aide de données écrites dans le flux par un appel précédent à la fonction CoMarshalInterface et retourne un pointeur d’interface vers ce proxy.
Syntaxe
HRESULT CoUnmarshalInterface(
[in] LPSTREAM pStm,
[in] REFIID riid,
[out] LPVOID *ppv
);
Paramètres
[in] pStm
Pointeur vers le flux à partir duquel l’interface doit être démarshalée.
[in] riid
Référence à l’identificateur de l’interface à démarshaler. Par IID_NULL, l’interface retournée est celle définie par le flux, objref.iid.
[out] ppv
Adresse de la variable pointeur qui reçoit le pointeur d’interface demandé dans riid. Une fois le retour réussi, *ppv contient le pointeur d’interface demandé pour l’interface non délimitée.
Valeur retournée
Cette fonction peut retourner la valeur de retour standard E_FAIL, les erreurs retournées par CoCreateInstance et les valeurs suivantes.
Code de retour | Description |
---|---|
|
Le pointeur d’interface a été correctement démarshalé. |
|
pStm est un pointeur non valide. |
|
La fonction CoInitialize ou OleInitialize n’a pas été appelée sur le thread actuel avant l’appel de cette fonction. |
|
L’application objet a été déconnectée du système de communication à distance (par exemple, à la suite d’un appel à la fonction CoDisconnectObject ). |
|
Une erreur s’est produite lors de la lecture de la base de données d’inscription. |
|
RequêteInterface finale de cette fonction pour l’interface demandée retournée E_NOINTERFACE. |
Remarques
Remarque de sécurité : l’appel de cette méthode avec des données non approuvées est un risque de sécurité. Appelez cette méthode avec des données approuvées uniquement.
- Lit à partir du flux le CLSID à utiliser pour créer une instance du proxy.
- Obtient un pointeur IMarshal vers le proxy qui doit effectuer le démarshaling. Si l’objet utilise l’implémentation de marshaling par défaut de COM, le pointeur ainsi obtenu est vers une instance de l’objet proxy générique. Si le marshaling se produit entre deux threads dans le même processus, le pointeur est vers un instance du marshaleur thread libre in-process. Si l’objet fournit son propre code de marshaling, CoUnmarshalInterface appelle la fonction CoCreateInstance , en passant le CLSID qu’il a lu à partir du flux de marshaling. CoCreateInstance crée une instance du proxy de l’objet et retourne un pointeur d’interface IMarshal vers le proxy.
- À l’aide du pointeur d’interface IMarshal qu’elle a acquis, la fonction appelle ensuite IMarshal ::UnmarshalInterface et, le cas échéant, IMarshal ::ReleaseMarshalData.
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 | combaseapi.h (inclure Objbase.h) |
Bibliothèque | Ole32.lib |
DLL | Ole32.dll |