Вызов метода элемента ActiveX
От: sysxxx  
Дата: 06.12.08 09:07
Оценка:
В ActiveX разбираюсь слабо, поэтому помогите:

есть элемент ActiveX
в нем метод
 
STDMETHODIMP Test::GetImage()
{
    HRESULT hr;
    try    {
          if(m_pWC)
          {
            VARIANT lpCurrImage;            
            VariantInit(&lpCurrImage);
            lpCurrImage.vt = VT_BYREF | VT_UI1;
 
            if( SUCCEEDED(hr = m_pWC->GetCurrentImage(&lpCurrImage.pbVal)) )
            {
                HRTEST( "Get Current Image", NULL, lpCurrImage);//?
                // можно ли так: return  lpCurrImage;//?
            }
          }
    }
    catch( _com_error& com_err ) {
              return SetErrorAddDescr( com_err, "::GetImage" );}
    return S_OK;
}

метод интерфейса:
VARIANT Test::GetImage()
{
    VARIANT result;
    InvokeHelper(0xd, DISPATCH_PROPERTYGET, VT_VARIANT, (void*)&result, NULL);
    return result;
}


error C2664: 'hr_test' : cannot convert parameter 2 from 'struct tagVARIANT *' to 'long'

подскажите как происходит передача значений из первого метода в метод интерфейса??? Т.е. мне нужно чтобы метод интерфейса возвращал знанение lpCurrImage.

+ еще не понятно: у меня переменная lpCurrImage вообще-то типа BYTE* но его кажется в InvokeHelper нельзя передавать ? Походу надо передавать типа VARIANT. Но почему тогда в ошибке требуется long?

добавлена раскраска — Кодт
07.12.08 03:30: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.