Реализация IDispatch::Invoke на асме

Тема в разделе "WASM.WIN32", создана пользователем Android, 30 июл 2005.

  1. Android

    Android New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2003
    Сообщения:
    183
    Адрес:
    Ukraine
    Подскажите как реализовать IDispatch::Invoke на асме, больше всего меня интересует получение параметров, которые передаются при вызове метода. Пакраметр pDispParams указывает на структуру DISPPARAMS.

    DISPPARAMS struct

    rgvarg dd ?

    rgdispidNamedArgs dd ?

    cArgs dd ?

    cNamedArgs dd ?

    DISPPARAMS ends



    Значение cArgs колво - параметров, а rgvarg - указатель на массив из VARIANT(здесь я не уверен)? Может кто-то с этим сталкивался?
     
  2. Android

    Android New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2003
    Сообщения:
    183
    Адрес:
    Ukraine
    Все разобрался. Спасибо staier,Booster и IceStudent! wsam.ru the best!!!
     
  3. Android

    Android New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2003
    Сообщения:
    183
    Адрес:
    Ukraine
    т.е. wasm.ru the best!!!:)
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Android

    Приведи решение, а то выходит, что это тема бесполезна и её придётся потереть.
     
  5. Android

    Android New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2003
    Сообщения:
    183
    Адрес:
    Ukraine
    Значение cArgs колво - параметров, а rgvarg - указатель на массив VARIANT[cArgs], только они(VARIANTы) расположены в обратном порядке(последний параметр - eax+0, предпоследний - eax+sizeof VARIANT, и т.д.). А дальше определяешь тип VARIANT.vt и получаешь нужное значение.