Partager via


Exposition d'objets COM à des composants du .NET Compact Framework

Mise à jour : novembre 2007

En commençant avec le .NET Compact Framework version 2.0, vous pouvez appeler des objets COM à partir du code managé. Vous pouvez également importer une bibliothèque de types avec le Type Library Importer (Tlbimp.exe) fourni par le .NET Framework complet ou, dans Visual Studio, vous pouvez ajouter une référence de bibliothèque de types à votre projet. Une bibliothèque de types importée est également connue sous le nom d'assembly d'interopérabilité, car elle contient des définitions de types COM décrits dans les métadonnées.

Si un espace mémoire en code natif alloué initialement en code managé reste stocké par une bibliothèque en code natif après le retour d'un appel de fonction native, l'objet de la bibliothèque native doit être épinglé en code managé pour éviter qu'il ne soit déplacé ou collecté par le garbage collector (ramasse-miettes). Vous pouvez utiliser la structure GCHandle pour épingler l'objet.

C'est au code managé qu'il incombe d'aligner les types de données selon les limites d'octet correctes spécifiées pour le système d'exploitation natif (processus appelé compression).

Il existe trois tâches pour l'appel à des objets COM à partir du .NET Compact Framework :

  1. Créez des définitions managées de vos interfaces et types COM.

  2. Référencez ces définitions à partir de votre projet.

  3. Utilisez vos interfaces et types COM comme types managés.

Vous pouvez également « coder à la main » les définitions managées.

Référence des assemblys d'interopérabilité

Les assemblys d'interopérabilité sont des bibliothèques de types importées qui contiennent des définitions de types COM décrits dans les métadonnées générées par l'importateur de bibliothèque de types ou Visual Studio.

Pour référencer l'assembly d'interopérabilité lorsque vous générez des projets, utilisez le commutateur /r: avec les compilateurs de ligne de commande. Cette opération est effectuée automatiquement lorsque vous ajoutez une référence à une bibliothèque de types dans Visual Studio.

Utilisation de types COM comme types managés

Les membres de l'interface par défaut sont ajoutés à la classe pendant l'importation. L'appel IDispatch par rapport à IUnknown, QueryInterface ainsi que le décompte de références COM sont gérés automatiquement. Les valeurs HRESULT d'échec sont mappées automatiquement aux exceptions.

Après avoir importé un type COM, vous pouvez l'utiliser comme tout autre type managé pour programmer notamment les tâches suivantes :

  • Créez des instances avec le mot clé new (New en Visual Basic).

  • Interceptez des exceptions.

  • Appelez directement par le biais de la classe.

  • Évitez de choisir entre les styles d'appels IDispatch et IUnknown.

  • Effectuez un cast vers des interfaces spécifiques si nécessaire.

Voir aussi

Autres ressources

Interopérabilité dans le .NET Compact Framework