Yo! les geeks,
Je suis en train de m’autoformer à COM/OLE en C/C++ Win32 à grands coups de Google et MSDN et une partie de la logique m’échappe. Je pense qu’il me manque une vue d’ensemble. J’ai bien pigé les notions d’interfaces (COM) et d’encapsulation (OLE - embedding) mais je n’arrive pas à comprendre comment savoir qui a besoin de quoi…
Prenons un exemple simple : création d’un WebControl (IWebBrowser2) dans une fenêtre bête et méchante.
Si je comprends bien, IWebBrowser2 est une interface COM (Component Object Model) qui s’applique dans un OLE (Object Linking & Embedding).
Autrement dit : cette interface me permet de créer un WebControl (ça c’est la partie COM) que j’intègre dans mon appli (la partie OLE). J’ai bon jusque là ?
D’un point de vue technique, pas de problème, c’est jamais que du virtual à tous les étages. L’info qui me manque est « Quelles sont les classes/interfaces que je dois implémenter ? ». J’ai pas trouvé l’info sur MSDN, genre « pour IWebBrowser2 vous devez implémente ITruc et IMachin ». Et dans divers exemples je vois des implémentations différentes :
- IStorage
- IOleInPlaceFrame
- IOleClientSite
- IOleInPlaceSite
- IOleContainer
- IDispatch (cas particulier, non ?)
- IOLEControlSite
Pour ce que j’en déduis, IOleInPlaceFrame, IOleClientSite, IOleInPlaceSite seraient la base minimum d’un framework OLE. Ils étaient communs à tous les exemples. J’ai bon ?
Et les autres ?
Serais je à la ramasse sur la logique COM/OLE ?
Si quelqu’un pouvait m’éclairer ou me donner l’url d’un site qui explique ça aux neuneux dans mon genre
Thx
Antoine
PS : pas de .NET C# (kecémieu-mangézan-jesais) paske je suis sur un projet déjà existant en C/C++.