J'ai fait de gros progrès! A partir des sites dont je mets les liens en dessous, j'ai pu réaliser un autre "copier" vers le presse-papier que celui avec le 'keybd_event'. Ca fonctionne beaucoup mieux dans mon application![]()
Les liens :
MSHTML Editing
Modifying Documents in Edit Mode
Commande Exec
Argument IDM_COPY pour la commande Exec
J'ai trouvé aussi ce site mais il ne donne pas de sources, mais sinon ça aurait été parfait !
Powering up with Internet Explorer Extensibility
Mon code :
Vu que je n'ai fait que remplacer mon ancien "copier" par celui-ci, je suppose que la fonction 'keybd_event' envoie un évènement vers Windows sans garantie que celui-ci l'interprète aussitôt. Au contraire, 'Exec' est exécutée immédiatement et donc mon presse-papier est directement à jour!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 //Méthode appelée lors du click sur un choix du menu contextuel HRESULT CBHOTest::ShowContextMenu(DWORD dwID, POINT* pptPosition, IUnknown* pcmdTarget, IDispatch* pDispatchObjectHit) { [...] //pointeur vers le plugin BHO (si je ne me trompe pas) CComQIPtr<IOleCommandTarget,&IID_IOleCommandTarget> spCT(pcmdTarget); [...] //réalise le "copier" via la commande Exec //voir page sur IDM_COPY pour les arguments spCT->Exec(&CGID_MSHTML, IDM_COPY, OLECMDEXECOPT_DONTPROMPTUSER, NULL, NULL); [...] }
Si j'ai dit une betise, corrigez moi mais je ne pense pas être trop loin de la vérité![]()
Partager