Com-Objekt GUID?
-
Ich möchte mit VC++ (Version 6) auf ein Com-Objekt zugreiffen, die Schnittstelle besteht aus 2 dll's von Siemens (s7hcom_x.dll /s7abactx.dll). Ich habe die beiden dll's mittels Klassenassistent eingebunden, VS hat mir daraus je ein header und ein cpp-File erstellt.
Leider sind in dem Headerfile keine Konstanten definiert, wie komme ich nun an die GUID vom Interface ISimatic? Das __uuidof() geht nicht...
CLSID clsID; HRESULT hr; ISimatic* pIFace; CoInitialize(NULL); // absolutely essential: initialize the COM subsystem const IID IID_ISimatic = __uuidof(ISimatic); //Hier liegt das Problem. das geht nicht!! if (SUCCEEDED(hr = ::CLSIDFromProgID(L"Simatic.Simatic.1", &clsID))){ hr = CoCreateInstance(clsID, NULL, CLSCTX_INPROC_SERVER, IID_ISimatic, (void **)&pIFace); //IID_ISimatic???? } } CoUninitialize(); // cleanup COM after you're done using its services
-
Dazu benötigst Du die IDL bzw. Typelib...
Nimm den OleViewer und schau mal damit die DLL an...