Accueil > Forum > > > > Com et evenements
Com et evenements
mercredi 3 décembre 2003 à 10:33:24 |
Com et evenements

hilairenicolas
|
Bonjour, j'ai un objet com (non activex) et je voudrais qu'il puisse réagir à des evenements. Avec un activeX, le classwizard me genere automatiquement les BEGIN_EVENT_MAP et autres choses nécessaires, par contre, il refuse de le faire lorsque c'est un objet COM. Que dois-je faire ? Merci de votre aide
|
|
mercredi 3 décembre 2003 à 16:00:34 |
Re : Com et evenements

hilairenicolas
|
Alors, je crois que j'ai trouvé, mais c'est tout une histoire... Je le mets ici, si y en a que ca interesse. Alors, c'est un extrait de mon code, avec des commentaires : (ma classe com est un clavier virtuel (keyboard_com) alors, il faut dans le .odl (c'est la définition de la méthode qui réagit à l'evenement) [ uuid(5E01B260-5C15-11cf-A78C-00AA00A70FC2), helpstring("Event interface for Keyboard") ] dispinterface IKeyboardEvent { properties: // Event interface has no properties methods: [id(1)] void KeyPress(short LABEL, VARIANT_BOOL* Cancel); };
|
dans le .h qui hérite de CCmdTarget bien sur (on remarque que le guid est contruit) #define EVENT_PARAM(vtsParams) (BYTE*)(vtsParams) #include <ole2.h> #include <initguid.h> DEFINE_GUID(IID_IKeyboardEvent, 0x5e01b260, 0x5c15, 0x11cf, 0xa7, 0x8c, 0x0, 0xaa, 0x0, 0xa7, 0xf, 0xc2);
|
en protected : (définition des méthodes qui envoie l'évenement) void FireEventV(DISPID dispid, BYTE* pbParams, va_list argList); void AFX_CDECL FireEvent(DISPID dispid, BYTE* pbParams, ...);
|
ensuite la définition de l'évenement //{{AFX_MSG(Keyboard_com) // NOTE - the ClassWizard will add and remove member functions here. afx_msg void FireKeyPress(short label, BOOL FAR* Cancel); //}}AFX_MSG public: enum { eventidEvent1 = 1L, }; protected: BEGIN_CONNECTION_PART(Keyboard_com, EventConnPt) CONNECTION_IID(IID_IKeyboardEvent) END_CONNECTION_PART(EventConnPt) DECLARE_CONNECTION_MAP()
|
dans le .cpp : (dans le constructeur) préciser le point de connexion : BEGIN_INTERFACE_MAP(Keyboard_com, CCmdTarget) INTERFACE_PART(Keyboard_com, IID_IConnectionPointContainer, ConnPtContainer) END_INTERFACE_MAP()
BEGIN_CONNECTION_MAP(Keyboard_com, CCmdTarget) CONNECTION_PART(Keyboard_com, IID_IKeyboardEvent, EventConnPt) END_CONNECTION_MAP()
|
et les méthodes d'envoi : void Keyboard_com::FireKeyPress(short label, BOOL FAR * cancel) { FireEvent(eventidEvent1,EVENT_PARAM(VTS_I2 VTS_PBOOL),label,cancel); }
void Keyboard_com::FireEventV(DISPID dispid, BYTE* pbParams,va_list argList) { COleDispatchDriver driver;
const CPtrArray* pConnections = m_xEventConnPt.GetConnections(); ASSERT(pConnections != NULL);
int i; int cConnections = pConnections->GetSize(); LPDISPATCH pDispatch;
for (i = 0; i < cConnections; i++) { pDispatch = (LPDISPATCH)(pConnections->GetAt(i)); ASSERT(pDispatch != NULL); driver.AttachDispatch(pDispatch, FALSE); TRY driver.InvokeHelperV(dispid, DISPATCH_METHOD, VT_EMPTY, NULL, pbParams, argList); END_TRY driver.DetachDispatch(); } }
void AFX_CDECL Keyboard_com::FireEvent(DISPID dispid, BYTE* pbParams, ...) { va_list argList; va_start(argList, pbParams); FireEventV(dispid, pbParams, argList); va_end(argList); }
|
Voila, ca a l'air compliqué comme ca, et effectivement ca l'est ... Bon courage si y en a qui font pareil :)
|
|
Cette discussion est classée dans : activex, objet, evenements
Répondre à ce message
Sujets en rapport avec ce message
Appeler un objet COM ActiveX/DLL en C++. [ par stof35 ]
Quelqu'un aurait un bout de code pour réaliser cette action.Merci par avance
CLSID et ActiveX [ par bayby ]
Bonjour tous le monde,je debute dans la creation d'objet COM en VB.NET. cependant une fois mon objet créé je n'arrive pas à l'utiliser en tant que Act
activex et vbscript methode CreateObject [ par DevGizmo ]
Bonsoir,Je me confronte a un petit probleme...Je fais un script vbs qui doit a un moment donne creer un objet active x et utiliser certaines de ses fo
Objet ActiveX (COM) sous C++ (Visual C++ ou pas) [ par Raksmey ]
Bonjour, Je viens à vous pour une question d'ordre général sur la création des objets ActiveX. Je me demandais si certans d'entre vous connaissez un
Creer un objet activex [ par EBArtSoft ]
Bonjour ,J'ai une dll/activex en vb avec un module de classe nommé"Class1" comprenant une fonction appelé "Execute".J'ai aussi un programme en vc qui
API Win32 ActiveX [ par redwarrior2 ]
RedWarrior2RedWarrior2Salut,je developpe une application win32 sous visual 5 dans lequel j'ai ajouté des composants activex, seulement je n'ai trouve
problème tri d'une liste d'objet ! [ par tomsawyerbelgique ]
Bonjour, j'aimerais savoir comment on fait pour surdéfinir un foncteur de tri de liste d'objet. C'est objet sont des pointeurs sur une structure et la
pb avec delete c++ [ par djl ]
je cree un tableau d'objets dynObjet** objets;objets = new Objet*[l];for(int i=0;icomment on le detruit?car je fait cafor(int i=0;idelete[] objets;e
Structure et objet [ par Suisse00 ]
Bonjours ! Sauf si je me trompe l'utilisation des objet avec des structure devien une structure dynamic ? Si ses le cas voilà la question sinon commen
Comment fait-on fonctionner le contrôle activex "Navigateur Web Microsoft" [ par Memerosti ]
Ben tout est dans le titre :=)J'ai crée un projet MFC, et j'aimerais, afficher une page web à l'aide de ce contrôle dans une fenêtre de mon programme.
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|