Re: Создание COM - объекта без CoCreateInstance
От: SergH Россия  
Дата: 21.07.03 12:37
Оценка:
Здравствуйте, misha_sk, Вы писали:

_>Существует такая необходимость, так есть некоторая иерархия объектов, т.е. подчиненные объекты должны иметь ссылочную информацию на их собственников, но выносить ее в интерфейс не хотелось бы. Поэтому я бы хочу создать объект класса С++, инициализировать, а потом уже вернуть ссылку на COM-интерфейс, который он реализует.

_>COM-объекты пишутся при помощи ATL.
_>Вопрос: как правильно инициализировать в этом случае объект?

Я делаю примерно так:

    CComObject<CASPOEnumAccount>* pEnum = NULL;
    hr = CComObject<CASPOEnumAccount>::CreateInstance(&pEnum);

    if (FAILED(hr))
    {
        return hr;
    }

    pEnum->Init(pAccounts); // инициализация

    return pEnum->QueryInterface(pVal);


Где pVal — [out]-параметр функции, имеющий тип IASPOEnumAccount**
Делай что должно, и будь что будет
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.