Bonjour, j'essaie d'adapter un code C++ en delphi, c'est un code pour un objet com.

Première question:
J'ai traduit ce code en c++:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
IApplication* pApp = NULL;
hr = CoCreateInstance( clsid, NULL, CLSCTX_ALL, idIapp,(LPVOID*)&pApp );
 
IEngine* pEng;
hr = pApp->CreateEngine( kCrnEngIdMain, &pEng );
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
 pApp :=nil ;
hr := CoCreateInstance( clsid, nil, CLSCTX_ALL,idIapp, pApp );
pEng:=nil;
 
hr:= pApp.CreateEngine(kCrnEngIdMain,pEng);
pApp etant déclaré ainsi : pApp:IApplication et pEng:IEngine

Au debut j'avais declaré pApp ainsi: pApp:^IApplication
mais j'obtenais une exception lors de l'appel de pApp^.CreateEngine.

Quelqu'un peut me confirmer que je m'emmêle pas dans les conversions de pointeurs ?

Seconde question
Il faut bien sur que je convertisse les interfaces, est ce que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
      virtual HRESULT __stdcall CreateEngine (
        /*[in]*/ long EngId,
        /*[out,retval]*/ struct IEngine * * pTask ) = 0;
devient bien en delphi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 function CreateEngine(EngId: Integer; out Engine:IEngine): HResult;safecall;
Merci d'avance