2014-05-19 1 views
1

Quelqu'un a-t-il mis à jour le développement de l'add-in VSTA 2.0 vers VSTA 2012? Si Oui,Comment exposer mon objet hôte COM au complément VSTA?

Pourriez-vous m'aider s'il vous plaît à ce sujet "Comment est-ce que j'expose mon objet hôte COM au complément VSTA?"

Je travaille avec VSTA 2012, L'exemple d'application fourni avec VSTA 2012 "MyVSTAHost" ne couvre pas l'exposition de l'objet hôte au complément vsta.

où, comme dans VSTA 2.0 shapeappadvancedmfc couvre, mais je ne plus utiliser hostitemprovider et le concept de contrat VSTA 2012 car il est plus pris en charge VSTA 2012.

Note: Dans VSTA 2.0 je suis en mesure de invoquer mes méthodes de dispinterface de l'application hôte avec le complément mais je sais comment le faire dans VSTA 2012, je ne vois pas le support de poxygen dans VSTA 2012 et certains espaces de noms d'exécution ne sont plus supportés dans VSTA 2012.

Merci et salutations,

Nayaz

Répondre

-1

utiliser le package Visual Studio Modèle:

Unmanaged VSPackages (y compris celles générées par le package Visual Studio Template) utiliser les fichiers de ATL-style pour les informations d'enregistrement du magasin. Le format de fichier .rgs est spécifique à ATL et ne peut généralement pas être utilisé tel quel par un outil de création d'installation. Les informations d'inscription pour le programme d'installation de VSPackage doivent être gérées séparément. Par exemple, les développeurs peuvent conserver les fichiers au format .reg en synchronisation avec les changements de fichiers .rgs. Les fichiers .reg peuvent être fusionnés avec RegEdit pour le travail de développement ou consommés par un installateur.

Parfois, une interface COM génère un objet IUnknown et l'interface COM le transmet comme type void **. Ces interfaces sont particulièrement importantes car si la variable est définie comme [out] dans l'IDL, l'objet IUnknown est compté avec la méthode AddRef. Une fuite de mémoire se produit si l'objet n'est pas géré correctement.

Un objet IUnknown créé par l'interface COM et renvoyé dans une variable [out] provoque une fuite de mémoire s'il n'est pas explicitement libéré.

Les méthodes managées qui gèrent de tels objets doivent traiter IntPtr comme un pointeur vers un objet IUnknown et appeler la méthode GetObjectForIUnknown pour obtenir l'objet. L'appelant doit ensuite convertir la valeur de retour en n'importe quel type approprié. Lorsque l'objet n'est plus nécessaire, appelez Release pour le libérer.

Dans Visual Studio 2015, ils sont partis (pas de menu «Outils»> «Gestionnaire de compléments»). Ainsi, vous devez migrer votre complément dans un paquet, ce qui peut être une tâche ardue en fonction de la taille et de la complexité de votre complément (seulement atténué par le fait que vous pouvez toujours utiliser le modèle d'automatisation (EnvDTE) de un paquet.

Références

Questions connexes