none
Variables membres d'un composant COM d'un UserControl RRS feed

  • Question

  • Bonjour,

     

    Je cherche à redéfinir un nouveau UserControl contenant un composant Terminal Services (via la lib AxMSTSCLib).

     

    Pas (plus...) de problème concernant l'intégration du composant dans un UserControl.

     

    Par contre, je souhaiterais accéder de l'extérieur (au niveau de l'appel du contrôle) aux variables du composant COM contenu dans mon UserControl sans devoir redéfinir des méthodes. Est-ce possible (j'ai essayé en déclarant le composant 'public', sans succès)?

     

    J'ai également essayé de créer un nouveau composant (sans UserControl) héritant de la classe que je souhaite utiliser (AxMSTSCLib.MsRdpClient2), mais je crois que je dois alors hériter de UserControl (ou Component?) et réimplémenter toutes les interfaces (AxMSTSCLib.IMsRdpClient)...

     

    J'essaie, au final, de recréer l'ActiveX du Client Terminal Services en lui ajoutant une ou deux fonctions de mon cru sans devoir réinventer la roue...

     

    Une suggestion?

     

    Merci d'avance

    mardi 22 mars 2011 09:37

Réponses

  • Bonjour,

     

    Si vous voulez créer un wrapper .NET autour de votre composant COM, vous devez créer aussi les méthodes qui vous donnent accès aux méthodes originales du COM.

     

    Si vous voulez utiliser ce composant COM comme variable membre d'un UserControl, vous pouvez accéder a ses méthodes et propriétés par:

     

    UserControl.MonTerminalServices.Propriete1

     

     

    Sinon, vous pouvez l'utiliser tout simplement comme composant COM en ajoutant une référence a votre projet.

     

    Cordialement,

    Alex


    Suivez MSDN sur Twitter 

    vendredi 25 mars 2011 14:22

Toutes les réponses

  • Bonjour,

     

    Vous pouvez utiliser un composant COM comme membre public d’un UserControl, mais pour avoir accès aux propriétés de ce composant COM quand vous utilisez l’UserControl dans un autre projet, vous devez inclure aussi les références pour le COM. Apres avoir inclus les références, vous aurez accès aux variables membres du COM et au support IntelliSense.

     

    Cordialement,

    Alex

    ________________

    Publiez un article sur MSDN !

    Windows Phone 7

    Astuces pour Visual Studio 2010

    XNA – Développement jeux vidéo

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, SharePoint, WPF

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     


    Suivez MSDN sur Twitter 

    jeudi 24 mars 2011 10:45
  • Bonjour,

     

    Merci pour votre réponse.

     

    Pas de problème pour l'intégration dans Visual Studio et pour IntelliSense.

     

    Je suis obligé en fait d'utiliser le composant dans un UserControl car ce composant Terminal services a besoin d'une interface graphique. Il devient donc membre du UserControl.

     

    Je cherchais en fait à en faire un composant à part entière (pas membre d'un autre) pour avoir accès en direct à ses méthodes et propriétés (ce qui n'est pas le cas pour l'instant car je dois faire (exemple) : Usercontrol1.MonTerminalServices1.Propriété1

     

    J'aurais souhaité faire MonTerminalServices1.Propriété1 mais le multi héritage n'est pas possible en C#. Je crois que c'est dû au fait que le composant Terminal Services est un composant COM et pas .Net et ne peut pas être instancié seul (en tous cas pour avoir accès à son interface graphique).

     

    Une piste?

    vendredi 25 mars 2011 09:10
  • Bonjour,

     

    Si vous voulez créer un wrapper .NET autour de votre composant COM, vous devez créer aussi les méthodes qui vous donnent accès aux méthodes originales du COM.

     

    Si vous voulez utiliser ce composant COM comme variable membre d'un UserControl, vous pouvez accéder a ses méthodes et propriétés par:

     

    UserControl.MonTerminalServices.Propriete1

     

     

    Sinon, vous pouvez l'utiliser tout simplement comme composant COM en ajoutant une référence a votre projet.

     

    Cordialement,

    Alex


    Suivez MSDN sur Twitter 

    vendredi 25 mars 2011 14:22