Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.17.5.68] |
|
Сообщ.
#1
,
|
|
|
Везде, что я смотрел о 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, но меня постиг облом со стороны этой функции. |
Сообщ.
#2
,
|
|
|
Ого. Не знал, что так можно.
Есть что почитать на эту тему? |