Ошибка при вызове ocx.
От: Денис_К Россия  
Дата: 28.04.03 10:29
Оценка:
Возникла такая проблема:
Есть ocx, я его импортирую таким образом:


#import "..\lib\avimaker.ocx" no_namespace named_guids raw_dispinterfaces raw_native_types


Далее, я делаю так:

//В одном потоке
HRESULT hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);

//В другом потоке
MULTI_QI mq[2];
mq[0].hr = mq[1].hr = 0;
mq[0].pIID = &IID_IUnknown;
mq[1].pIID = &DIID__DAviMaker;
mq[0].pItf = mq[1].pItf = NULL;

HRESULT hr = CoCreateInstanceEx(CLSID_AviMaker, NULL, CLSCTX_ALL, NULL, 2, mq);
if((hr != 0) || (mq[0].hr != 0) || (mq[1].hr != 0) || (NULL == mq[0].pItf) || (NULL == mq[1].pItf))
{
m_sExecutionError = _bstr_t("CFragmentFileToProcess::ExecuteProcessing#1.1 CoCreateInstance failed: ") +
        _bstr_t(_com_error(hr).ErrorMessage());
return false;
}

m_pUnknwn = mq[0].pItf;
m_AMaker = (_DAviMaker*)mq[1].pItf;

hr = m_AMaker->raw_AboutBox();


hr в результате вызова AboutBox содержит E_UNEXPECTED.

С чем это может быть связано?
Денис.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.