2010-03-27 6 views
1

Je sais que nous pouvons énumérer les contrôles Windows avec dans la boîte de dialogue et en utilisant le rappel, nous pouvons collecter les contrôles Windows.Comment collecter des contrôles Active X dans la boîte de dialogue MFC

Je suis à la recherche d'un moyen spécifique de filtrer les contrôles basés sur l'implémentation de l'interface. Par exemple, si les contrôles Active-X dérivent de l'interface IDataControl, je veux que cela s'ajoute à ma liste de collection d'intérêts.

Répondre

0

Voici le processus générique pour obtenir les contrôles ole/active-x dans la boîte de dialogue.

  1. Do EnumWindows avec le rappel
  2. Dans le rappel, veuillez joindre les fenêtres poignée à CWnd
  3. Essayer d'obtenir pointeur IUnknown pour le CWnd de contrôle :: GetControlUnknown
    Conseils: How to detect whether a control is standard or active-x control?

  4. Si retourné IUnknown n'est pas nul, faites queryInterface pour IDataControl.

  5. Si l'instance IDataControl n'est pas NULL, ajoutez à la collection
Questions connexes