IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   COM. C++. Interface IDispatch::Invoke (https://www.imho.ws/showthread.php?t=97534)

Shaman_marakame 20.12.2005 00:50

COM. C++. Interface IDispatch::Invoke
 
Добрый День,

:help: У меня есть такая проблема с Итерфэйсом IDispatch->Invoke

hr = pDisp->Invoke(dispid, IID_NULL, LOCALE_SYSTEM_DEFAULT, DISPATCH_METHOD, &dispparamsArgs, NULL, &excepinfo, NULL);

Объявляю параметр такими Образом вот примеры:

//DISPPARAMS dispparamsArgs = {(VARIANTARG*)&pbstrXMLDoc, NULL, 1, 0};
DISPPARAMS dispparamsArgs = {NULL, NULL, 0, 0};

Это сам метод каторый мне нужно вызвать:
IRMGetLicense::GetSystemInfo

HRESULT GetSystemInfo(
BSTR* pbstrXMLDoc
);

Параметр "pbstrXMLDoc" [out] укозатель на строку с "system information."

возр. Результат S_OK что означает успешное завершение работы метода.

Но все происходит иначе. :idontnow:
hr = 0x80020009 Exception occurred.
excepinfo = bstrDescription: 0x00176d24 "The parameter is incorrect.

Есть ли сооьражения у кого нибудь по этому поводу ? Если да то помогите плеазе.

Если нужен листинг кода дайте знать

Зарание Спасибо!!! :молись:

--
Shaman Marakame.

alexey_ma 21.12.2005 23:41

Я думаю что ошибка в том что ты вместо выходного параметра BSTR* передаешь NULL. Out параметр должен быть законным указателем на BSTR. Не забудь потом SysFreeString сделать для этого BSTR-а
И еще вместо Invoke я бы посоветовал импортировать type library, то есть использовать директиву #import. И работать будет быстрее и кода меньше писать придеться
Подробности по использованию #import можешь посмотреть на rsdn.ru в разделе статей про COM.


Часовой пояс GMT +4, время: 12:27.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.