Vraag & Antwoord

Programmeren

[C++ 6.0] waarde uit COM objecten halen

Hoi, ik heb een probleem met het krijgen van input uit een COM object. Ik kan contact leggen met een com-object. Nu wil ik graag een boolean waarde terug krijgen. Nu is mijn vraag hoe kan ik deze terug krijgen. Ik zie genoeg voorbeeld hoe je een waarde naar een COM object kan toeschrijven, maar nergens hoe je een waarde uit een COM object haald. Ik heb een stukje code toegevoegd, van de prperty waar mee ik contac leg en de variabelen terug zou moeten krijgen. Ik denkn dat dit wel gebeurd, maar ik kan deze er niet uitkrijgen. :-? [code:1:d04234a39e]//Invoke the dispid_Isrunning method szFunction = OLESTR("IsCIMPLICITYRunning"); hr = pDispApp->GetIDsOfNames(IID_NULL, &szFunction, 1, LOCALE_USER_DEFAULT, &dispid_Isrunning); if(FAILED(hr)) { printf("ERROR GetIDsOfNames() "); switch (hr) { case DISP_E_UNKNOWNNAME: printf("ERROR: DISP_E_UNKNOWNNAME\n", hr); break; case E_OUTOFMEMORY: printf("ERROR: E_OUTOFMEMORY\n"); break; case DISP_E_UNKNOWNLCID: printf("ERROR: DISP_E_UNKNOWNLCID\n"); break; } exit(0); } hr = pDispApp->Invoke (dispid_Isrunning, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_PROPERTYGET, &dpNoArgs, &vResult, NULL, NULL); InvokeHelper(dispid_Isrunning, DISPATCH_METHOD, VT_BOOL, (void*)&vResult, NULL,NULL); if(FAILED(hr)) { printf("ERROR Invoke() "); switch (hr) { case DISP_E_BADPARAMCOUNT: printf("ERROR: DISP_E_BADPARAMCOUNT\n", hr); break; case DISP_E_BADVARTYPE: printf("ERROR: DISP_E_BADVARTYPE\n"); break; case DISP_E_EXCEPTION: printf("ERROR: DISP_E_EXCEPTION\n"); break; case DISP_E_MEMBERNOTFOUND: printf("ERROR: DISP_E_MEMBERNOTFOUND\n"); break; case DISP_E_NONAMEDARGS: printf("ERROR: DISP_E_NONAMEDARGS\n"); break; case DISP_E_OVERFLOW: printf("ERROR: DISP_E_OVERFLOW\n"); break; case DISP_E_PARAMNOTFOUND: printf("ERROR: DISP_E_PARAMNOTFOUND\n"); break; case DISP_E_TYPEMISMATCH: printf("ERROR: DISP_E_TYPEMISMATCH\n"); break; case DISP_E_UNKNOWNINTERFACE: printf("ERROR: DISP_E_UNKNOWNINTERFACE\n"); break; case DISP_E_UNKNOWNLCID: printf("ERROR: DISP_E_UNKNOWNLCID\n"); break; case DISP_E_PARAMNOTOPTIONAL: printf("ERROR: DISP_E_PARAMNOTOPTIONAL\n"); break; } exit(0); } pDispActiveDoc = vResult.pdispVal;[/code:1:d04234a39e] Ik krijg als het goed is een TRUE terug als Cimplicity loopt anders FALSE. Maar hoe haal ik dit er uit?!?! Wie kan mij helpen? Alvast bedankt TP

Anoniem
TP