Bonjour à tous,

J'ai actuellement un programme fonctionnel utilisant un activeX définis.

J'ai un fichier MaClasse.h de la forme :

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);
	}
et son cpp associé :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
#include "stdafx.h"
#include "MaClasse.h"
 
IMPLEMENT_DYNCREATE(maClasse, CWnd)
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
MaClasse monObjet;
monObjet.put_ImageFileURL(_T("monImage.cgi"))
Cela compile mais l'appel à la méthode plante laborieusement à l'exécution.

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 ?