Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > PHP > Объекты PHP-классов как COM-объекты |
Автор: Хакер 23.06.09, 04:54 |
Везде, что я смотрел о 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, но меня постиг облом со стороны этой функции. |
Автор: gnumus 02.07.09, 08:35 |
Ого. Не знал, что так можно. Есть что почитать на эту тему? |