CreateObjekt aus VB, Gibt es so eine Methode auch in VC++
-
Hi@all,
ich möchte mit einer Schnittstelle arbeiten.
Gibt es für diese Geschichte in VC++ 6.0 auch eine Methode wie in VB CreateObject oder in Delphi CreateOleObject?Gruß an alle,
CrazyPlaya
-
Evtl. ist "::CoCreateInstance", das was du suchst.
http://windowssdk.msdn.microsoft.com/en-us/library/ms686615.aspx
-
Ich muss aber ein Object zurück bekommen mit dem ich die Funktion der Schnittstelle aufrufen kann.
So wie ich das sehe bekomme ich sowas nicht durch CreateInstance.
Ich bin leider noch ziemlicher Anfänger in Sachen COM und OLE habe die ganze Geschichte auch nocht nicht so ganz verstanden.
-
Wenn Du das VB pedant suchst, dann kannst Du die invhelp.cpp verwenden:
http://blog.kalmbachnet.de/files/InvHelp.zip
-
Doch, du bekommst ein Objekt zurück ..
Ich poste mal einen Beispielcode anhand von Word:
HRESULT hr = E_FAIL; CLSID clsid; IUnknown *pUnk = NULL; _Application WordApp; hr = ::CLSIDFromString(OLESTR("Word.Application"),&clsid); // Statt Word.Application, das eingeben, was du bei CreateObject in VB eingeben würdest - sprich den Klassennamen. // IID_IUnknown beschreibt das Interface das du haben möchtest. hr = ::CoCreateInstance(clsid,NULL,CLSCTX_SERVER,IID_IUnknown,(void**)&pUnk); if(SUCCEEDED(hr)) { hr = pUnk->QueryInterface(IID_IDispatch,(void**)&WordApp.m_lpDispatch); }WordApp könntest du jetzt weiterverwenden.