IDispatch не сохраняется в памяти
От: Oftan_Idy Россия  
Дата: 13.10.05 13:30
Оценка:
Проблема такая. Я пишу клиент по обращению к COM-объекту(1С 8.0).
Есть функция в которой создается соединение с COM-объектом, в этой функции я получаю значения для двух указателей (глобально объявленные)
IDispatch *pDispApp;
IDispatch *pDispTrade;

void Func1()
{
// .... получаю pDispApp
CoCreateInstance(clsidV8App,NULL, CLSCTX_SERVER,IID_IDispatch,
(void**) &pDispApp);
pDispApp->Invoke(dispid_Connect, IID_NULL,LOCALE_USER_DEFAULT, DISPATCH_METHOD, &dpConnect, &vResult, NULL, NULL);

pDispTrade = vResult.pdispVal

}
void func2()
{
pDispTrade->Invoke(dispid_catalog, IID_NULL,LOCALE_USER_DEFAULT, DISPATCH_METHOD, &dpConnect, &vResult, NULL, NULL);
}

Когда вызывается вторая ф-ия, то вываливается ошибка, что pDispTrade — пустой.
Т.е Значения pDispApp и pDispTrade не сохраняются между функциями? Или есть выход.

Подскажите pls.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.