Сущность технологии COM


         

DISPID id, REFIID riid, LCID


Метод Invoke реализован аналогичным образом:

STDMETHODIMP PrimeManager::Invoke( DISPID id, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pd, VARIANT *pVarResult, EXCEPINFO *pe, UINT *pu) { assert(riid == IID_NULL); void *pvThis = static_cast<DIPrimeManager*>(this); return m_pTypeInfo->Invoke(pvThis, id, wFlags, pd, pVarResult, pe, pu); }



Первым параметром ITypeInfo::Invoke является указатель на интерфейс. Тип этого интерфейса должен быть таким же, как интерфейс, который описан в информации о типах. Когда передаваемые аргументы корректно синтаксически преобразованы в стек вызова (call stack), синтаксический анализатор будет вызывать текущие методы через этот интерфейсный указатель. Рис. 7.6 иллюстрирует последовательность вызовов для сред подготовки сценариев, которые осуществляют вызовы через двойственные интерфейсы.


Содержание  Назад  Вперед