![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как сделать, чтобы COM сервер возвращал объект [Delphi, Windows]
fm © (2005-02-28 13:50:00)Хочу написать метод COM сервера, который возвращал бы клиенту новый объект. Например, клонировал себя.
Какой тип данных нужно использовать для out-параметра? Type Library editor постоянно говорит, что parameter requires pointer type.
Набережных С. (2005-02-28 17:01:00) [1]Во-первых, кто такой IComTest? Во-вторых, покажи IDL файл библиотеки.
fm (2005-02-28 15:03:00) [2]Премного благодерен! Это заработало!
Теперь ещё одна проблема - получить объект в обработчике события.
Описываю метод обработчика:
HRESULT NewObject([in] IComTest * Obj );
На клиенте делаю Import Type Library, и создаётся тип:
TComTestNewObject = procedure(Sender: TObject; var Obj: OleVariant) of object;
Т.е. in-параметр Obj стал var-параметром! Должно ли быть так? И как мне тогда из OleVariant получить свой IComTest?
Набережных С. (2005-02-28 14:36:00) [3]Да, и необязательно IUnknown, можно сам интерфейс или любой его предок.
Набережных С. (2005-02-28 14:34:00) [4]У тебя, видимо, включен язык IDL для редактора библиотек типов. Тогда просто добавь еще одну звездочку после типа. Т.е. после выбора из списка у тебя в колонке типа будет "IUnknown *", а нужно сделать так "IUnknown **". Но, думаю, для начала удобнее использовать паскаль. В Tools\Environment Options открой вкладку Type Library и измени язык.
fm (2005-02-28 14:16:00) [5]А может у кого-нибудь есть пример?
Я просто хочу узнать как получать объекты от COM-сервера. Если клиент создаёт, то всё понятно, а если новый объект создаётся на сервере и клиенту (клиентам) нужно его передать?
fm (2005-02-28 14:12:00) [6]IUnknown - да нет, тоже самое пишет.
wal (2005-02-28 14:06:00) [7]IUnknown.
C уважением.