Bonjour à tous,
J'ai actuellement un programme fonctionnel utilisant un activeX définis.
J'ai un fichier MaClasse.h de la forme :
et son cpp associé :
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
20
21
22
23
24
25
26
27 class MaClasse : public CWnd{ protected: DECLARE_DYNCREATE(CCamimgctrl1) public: CLSID const& GetClsid(){// {CB91D304-704C-44bd-9554-2DC47156A198} static CLSID const clsid = { 0xcb91d304, 0x704c, 0x44bd, { 0x95, 0x54, 0x2d, 0xc4, 0x71, 0x56, 0xa1, 0x98 } }; return clsid; } virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle,const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL){ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID); } BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CFile* pPersist = NULL, BOOL bStorage = FALSE,BSTR bstrLicKey = NULL){ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,pPersist, bStorage, bstrLicKey); } CString get_ImageFileURL(){ CString result; InvokeHelper(0x1, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL); return result; } void put_ImageFileURL(LPCTSTR newValue){ static BYTE parms[] = VTS_BSTR ; InvokeHelper(0x1, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, newValue); }
Maintenant, j'essaie d'utiliser les méthodes de cette classe pour un filtre directShow :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 #include "stdafx.h" #include "MaClasse.h" IMPLEMENT_DYNCREATE(maClasse, CWnd)
Cela compile mais l'appel à la méthode plante laborieusement à l'exécution.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 MaClasse monObjet; monObjet.put_ImageFileURL(_T("monImage.cgi"))
Il existe des apparemment des astuces pour arriver à utiliser ce genre de méthode dans des applications non MFC mais je ne trouve pour l'instant rien.
J'en ai trouvé une pour une utilisation avec Qt -> http://www.qtcentre.org/archive/index.php/t-231.html qui fait appel à la méthode dynamicCall(), ou directement à la méthode Invoke() mais ce n'est pas applicable à mon projet.
Connaissez-vous donc des équivalents à ces façons de faire ?
Partager