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
    

  • Mod

    Dazu benötigst Du die IDL bzw. Typelib...

    Nimm den OleViewer und schau mal damit die DLL an...


Anmelden zum Antworten