На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Serafim, fatalist
  
    > Объекты PHP-классов как COM-объекты
      Везде, что я смотрел о PHP и COM, рассказывается о том, как из php-скрипта получить доступ к COM-объектам, и люди наивно тащутся от возможости из php-скрипта поуправлять вордом или IE.

      Меня же интересует обратное: передать в COM приложение ссылку на PHP-объект и повызывать из COM-приложения методы PHP-объекта.

      Мой сторонний объект имеет некий метод (пусть это будет «BindWithMe»), имеющий один Variant-параметр. Стороннее приложение создаёт objref-моникер и передаёт его имя php-скрипту.

      php-скрипт получает ссылку на этот объект (из имени моникера, скармливая имя моникера конструктору класса COM) и вызывает у него метод BindWithMe, передавая ссылку на внутриPHPшный объект.

      В стороннем приложении я эту ссылку принимаю, но что мне с ней дальше делать?
      Приходит ссылка на COM-объект, поддерживающий IDispatch и не поддерживающий IProvideClassInfo.

      При попытке вызвать у этого объекта какой-нибудь метод из тех, что есть у php-объекта получаем ошибку «Object doesn't support this property or method». Т.е. реализация IDispatch этого объекта не даёт нам прямого доступа к членам php-объекта.

      Собственно, вопрос в том, можно ли что-то полезное извлечь из этого объекта? Если нет, то как иначе я могу из стороннего COM-приложения вызывать методы php-объекта?
      У меня была идея сделать у внешнего COM-объекта события, совпадающие с методами php-объекта, и назначать php-объект обработчиком событий с помощью com_event_sink, но меня постиг облом со стороны этой функции.
      Сообщение отредактировано: Хакер -
        Ого. Не знал, что так можно.
        Есть что почитать на эту тему?
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0168 ]   [ 15 queries used ]   [ Generated: 27.04.24, 07:45 GMT ]