как выполнить ActiveX

Тема в разделе "WASM.WIN32", создана пользователем Sickle, 13 мар 2005.

  1. Sickle

    Sickle New Member

    Публикаций:
    0
    Регистрация:
    11 июл 2003
    Сообщения:
    181
    подскажите, как можно программно выполнить элемент ActiveX с параметрами, передаваемыми в тэге param?
     
  2. bober

    bober New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2005
    Сообщения:
    153
    Если подумать то можно примерно так:



    NeedInterface struc

    NeedInterface_QueryInterface comethod3 ?

    NeedInterface_AddRef comethod1 ?

    NeedInterface_Release comethod1 ?

    NeedInterface_GetTypeInfoCount comethod2 ?

    NeedInterface_GetTypeInfo comethod4 ?

    NeedInterface_GetIDsOfNames comethod6 ?

    NeedInterface_Invoke comethod9 ?



    NeedInterface_Typelib_1 comethod3 ?

    ...................................

    NeedInterface_Typelib_n ?

    NeedInterface ends



    invoke CoCreateInstance, addr CLSID_ActiveX, 0, CLSCTX_INPROC_SERVER, addr IID_INeedInterface, addr pMain

    coinvoke pMain, NeedInterface, Typelib_1, param1, param2

    coinvoke pMain, NeedInterface, Release
     
  3. Sickle

    Sickle New Member

    Публикаций:
    0
    Регистрация:
    11 июл 2003
    Сообщения:
    181
    NeedInterface_Typelib_1 comethod3 ?

    ...................................

    NeedInterface_Typelib_n ?



    это значит нужно знать все методы, содержащиеся в элементе? просто идея в том, чтобы создать универсальный лаунчер для ActiveX - не зная заранее что в нем... так как это делает IE
     
  4. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Sickle

    Через IUnknown их можно достать
     
  5. Sickle

    Sickle New Member

    Публикаций:
    0
    Регистрация:
    11 июл 2003
    Сообщения:
    181
    Quantum

    сорри за назойливость... а нет ли примера, реализующего подобную байду?
     
  6. bober

    bober New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2005
    Сообщения:
    153
    Sickle

    "...не зная заранее что в нем... так это делает IE"

    Сильно сказано :)))))



    IE вызывает по именам - вызывай тоже по именам, через IDispath ( GetIDsOfNames -> Invoke )



    Где-то валяется пример для просмотра адресов почты из WAB

    там используются интерфейсы.
     
  7. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Sickle

    1. Получить доступ к интерфейсу IUnknown. Этот интерфейс поддерживается всеми без исключения объектами.

    2. Использовать метод IUnknown::QueryInterface чтобы добраться до любого другого интерфейса.

    3. Методом Invoke вызвать интересующий метод.

    Тут кое-что есть...
     
  8. Sickle

    Sickle New Member

    Публикаций:
    0
    Регистрация:
    11 июл 2003
    Сообщения:
    181
    уфф.. спсибо! теперь буду копать...
     
  9. Avalonec

    Avalonec New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    111
    Адрес:
    Тула
    Вызвать интерфейс не зная его. Это как? Через IUnknown::QueryInterface можно получить только те методы и интерфейсы которые тебе известны.

    Что бы исполнить ActiveX тебе нужно очень много чего :) Хотя бы полную спецификацию.
     
  10. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Avalonec

    Зато известен ID (он указан в теге OBJECT)
     
  11. Avalonec

    Avalonec New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    111
    Адрес:
    Тула
    По ID и само собой по GUID вызвать то можно, но вот только что он делает не известно, нужна COM спецификация по нужному интрефейсу.
     
  12. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Avalonec

    Автору этой темы и не нужно знать что делает метод, ему нужно только вызвать его.
     
  13. Avalonec

    Avalonec New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    111
    Адрес:
    Тула
    Quantum

    Похоже человек не совсем разобрался, что это ему может дать.



    На кой это может понадобится, не понятно. Вызвать методы не получится без какой-нибудь спецификации, а без них на фиг это надо?
     
  14. pas

    pas New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2003
    Сообщения:
    330
    Адрес:
    Russia
    А как можно получить имена методов в данном интерфейсе?