Win32activex : conteneur de contrôles activex en win32 (api com ole)

Description

Win32ActiveX est un programme utilisant uniquement les API Windows (sans MFC)
montrant l'utilisation des contrôles ActiveX.

Il contient 2 classes :
- TControlContainer :
il s'agit de la classe à associée à la fenêtre ou la boîte de dialogue qui
va afficher les contrôles ActiveX.
- TControlSite :
il s'agit du contrôle ActiveX en lui-même où plutôt de son emplacement au
sein du container.

Pour créer un contrôle ActiveX il faut d'abord créer un conatiner puis créer
un contrôle dedans en donnant son CLSID. Ensuite, il y a les méthodes
MoveWindow(), SetWindowPos(), ShowWindow(), SetFocus() qui permette de
l'afficher.

L'accès aux propriétés et méthodes du contrôle se fait par l'intermédiare de
l'objet IOleControl donné par GetObject().

Pour appeler les méthodes et propriétés du contrôle il y a 2 méthodes :
- importer les définitions de type du contrôle par #import qui va donner les
fichiers d'entêtes .tli et .tlh contenant les interfaces supportées par
le contrôle et récupérerable par un QueryInterfcae sur l'objet IOleObject.
- n'utiliser que l'interface IDispatch du contrôle et appeler directement
Invoke en donnat l'id de la méthode (récupérable à partir de son nom avec
GetIDSOfNames().

J'ai utiliser la seconde méthode car l'emplacement des définition de type
des contrôle varie d'un système à l'autre, compliquant la compilation.
D'autre part tous les compilateurs ne supporte pas #import.

L'inconvéniant de cette technique est le passage de paramètres qui doivent tous
être des VARIANT et passés dans un tableau.

4 contrôles ActiveX sont affichés :
Navigateur Web Microsoft
Windows Media Player
Acrobat Control for ActiveX
Microsoft FlexGrid Control

Ces 4 contrôles sont en générals présent sur tous les systèmes...

compile sous Dev-cpp comme sous Visual (.rc et .h sans doute à modifier)...

Conclusion :


La version release (celle du zip) a quelques bugs que la version debug n'a pas et pas sur tous les systèmes...

La page HTML ne s'affiche pas.
Le contrôle FlexGrid ne s'affiche que si on minimise puis réaffiche la fenêtre

Ce prog est essentiellement basé sur le code source des MFC (occcont.cpp et occsite.cpp du répertoire SRC des MFC) réarrangé en virant ce qui sert à rien et en adaptant qulque peu.

Codes Sources

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.