Marshaling d'interfaces sélectionnées
L'objectif principal du wrapper pouvant être appelé par le runtime (RCW) est de masquer les différences existant entre les modèles de programmation managés et non managés. Pour créer une transition transparente, le wrapper RCW consomme des interfaces COM sélectionnées sans les exposer au client .NET, comme le montre l'illustration suivante.
Interfaces COM et le wrapper pouvant être appelé par le runtime
Lorsqu'il est créé en tant qu'objet à liaison anticipée, le wrapper RCW correspond alors à un type spécifique. Il implémente les interfaces que l'objet COM implémente et expose les méthodes, propriétés et événements à partir des interfaces de l'objet. Dans l'illustration, le wrapper RCW expose l'interface INew mais consomme les interfaces IUnknown et IDispatch. De plus, le wrapper RCW expose tous les membres de l'interface INew au client .NET.
Le wrapper RCW consomme les interfaces répertoriées dans le tableau suivant, qui sont exposées par l'objet qu'il enveloppe.
Interface | Description |
---|---|
IDispatch |
Pour la liaison tardive aux objets COM via la réflexion. |
IErrorInfo |
Fournit une description textuelle de l'erreur, sa source, un fichier d'aide, un contexte d'aide et le GUID de l'interface ayant défini l'erreur (toujours GUID_NULL pour les classes .NET). |
IProvideClassInfo |
Si l'objet COM qui est enveloppé implémente IProvideClassInfo, le wrapper RCW extrait les informations de type à partir de cette interface afin de fournir une meilleure identité de type. |
IUnknown |
Pour l'identité de l'objet, la contrainte de type et le management de la durée de vie :
|
Le wrapper RCW consomme facultativement les interfaces répertoriées dans le tableau suivant, qui sont exposées par l'objet qu'il enveloppe.
Interface | Description |
---|---|
IConnectionPoint et IConnectionPointContainer |
Le wrapper RCW convertit les objets qui exposent le style d'événement point de connexion en événements reposant sur les délégués. |
IDispatchEx |
Si la classe implémente IDispatchEx, le wrapper RCW implémente IExpando. L'interface IDispatchEx est une extension de l'interface IDispatch ; mais, contrairement à l'interfaceIDispatch, elle active l'énumération, l'ajout, la suppression et l'appel (sensible à la casse) de membres. |
IEnumVARIANT |
Active les types COM qui prennent en charge les énumérations devant être traitées en tant que collections. |
Voir aussi
Concepts
Wrapper pouvant être appelé par le runtime
Qualification des types .NET en vue d'une interopérabilité
Autres ressources
Résumé de la conversion d'un assembly en bibliothèque de types