000
01.06.2004, 17:39 Uhr
MeisterB
|
Hallo, ich versuche mich gerade im Aufruf von COM-Servern. Ich hab es bisher geschafft von Excel ein COM-Objekt zu erstellen und die ID für die "Visible" Methode zu erhalten. Ich möchte nun eigentlich per Invoke Excel sichtbar machen doch ich habe keine Ahnung wie ich die Dispatchparameter (im Code ist die Stelle mit XXXXXXX markiert) zusammenstellen muss. Hat jemand von euch schonmal so mit COM gearbeitet und kann mir weiterhelfen?
C++: |
CoInitialize(NULL); wchar_t* pszClass=L"Excel.Application"; CLSID clsID; IDispatch *pExcelApp; HRESULT hResult;
hResult=CLSIDFromProgID(pszClass,&clsID); if(hResult!=S_OK) { return; }
hResult=CoCreateInstance(clsID,NULL,CLSCTX_LOCAL_SERVER, IID_IDispatch, (void **)&pExcelApp);
OLECHAR* methodName = L"Visible";
DISPID dispidCmp;
hResult = pExcelApp-> GetIDsOfNames( IID_NULL, &methodName, 1, LOCALE_USER_DEFAULT, &dispidCmp); if(hResult!=S_OK) { return; }
hResult = pExcelApp->Invoke(dispidCmp, IID_NULL, LOCALE_SYSTEM_DEFAULT, DISPID_PROPERTYPUT,XXXXXXX, NULL, NULL, NULL);
|
|