Здравствуйте George_Seryakov, Вы писали:
GS>Здравствуйте olafpalmer, Вы писали:
O>>Все вроде просто, но есть один нюанс: перед тем как вызвать запрос, клиент отдает серверу адрес своей функции, чтобы сервер во время выполнения запроса мог спросить что либо у клиента сам, с помощью этой функции.
GS>Передавай не адрес функции, а указатель на интерфейс.
GS>Подробнее: В клиенте сделай COM-объект, при вызове сервера создавай его, его интерфейс передавай COM-вызовом на сервер. IDL будет выглядеть типа HRESULT method(... , IYourInterace* pIface);. COM сам должен все отмаршаллить. От сервера вызовешь метод этого интерфейса. Не забудь, что обратный вызов тоже требует прав, как и прямой, о безопасности придется позаботиться.
Спасибо за подробный ответ. У меня встречный: что значит в COM заботиться о безопасности?
И еще один:
Не понимаю как сделать внешний COM сервер посредством DELPHI6
В документации сказано, что для создания внешнего сервера нужно создать банальное приложение DELPHI (Application) и в нем создать Automation Object. Так и делаю, но в редакторе библиотеки не вижу кнопки "Зарегистрировать компонент" (хотя если делать ActiveX library, то такая кнопка есть)
Что это значит:
1.нужно регистрировать самому?
2.Что регистрировать: exe-шник?
3.Я что-то делаю не так и зарегистрировать нельзя в принципе?