Здравствуйте, Naigs, Вы писали:
N>Нужно решить такую задачу: необходимо преобразовать обычный объект в COM объект.
N>Фактически, на сколько я понимаю(я мало знаком с COMом),нужно на этот объект навесить COM интерфейс, который содержит методы объекта.
N>Но самое главное, что это нужно сделать "на лету".
N>Я не представляю, как это возможно сделать. По возможности, можно по подробнее.
Непонятно, что значит "преобразовать обычный объект в COM объект"???
1. Если тебе нужно сделать из существующего класса com-объект, то вот статейка о com:
здесьАвтор(ы): Том Армстронг
В этой главе, позаимствованной из книги "ActiveX-Создание Web-приложений"
Тома Армстронга, рассматриваются основные понятия модели COM, такие как
интерфейс IUnknown, GUID, фабрики классов и т. д. Кроме того, автор приводит
примеры реализации COM-клиентов и COM-серверов с использованием языка C++,
Visual Basic и библиотеки ATL.
2. Если тебе нужно, чтобы обычный объект наряду со своей функциональностью, реализовывал какой-то интерфейс, реализация которого уже есть в каком-то com-объекте, ты можешь сделать следующее:
1) Отнаследовать класс объекта от нужного интерфейса(под нужным подразумеваю интерфейс который ты будешь запрашивать у com-объекта)
2) При обращении к одному из методов этого интерфеса, создаешь com-объект и вызываешь у него соответсвуюший метод.
Таким образом ты инкапсулируешь внутри своего класса работу с нужным тебе com-объектом.
3. Ну и последнее, если тебе просто необходимо динамически добавить объекту новые обязанности воспользуйся паттерном "Декоратор".