Поделиться через


Метод ObjectContext::CreateInstance (comsvcs.h)

Создает объект с использованием контекста текущего объекта.

Объект будет иметь контекст только в том случае, если его компонент зарегистрирован с помощью COM+.

Синтаксис

HRESULT CreateInstance(
  [in]  BSTR    bstrProgID,
  [out] VARIANT *pObject
);

Параметры

[in] bstrProgID

Идентификатор ProgID типа объекта, экземпляр которого создается.

[out] pObject

Ссылка на новый объект .

Возвращаемое значение

Этот метод может возвращать стандартные возвращаемые значения E_INVALIDARG, E_OUTOFMEMORY и E_FAIL, а также следующие значения.

Код возврата Описание
S_OK
Метод завершился успешно.
E_UNEXPECTED
Произошла непредвиденная ошибка. Это может произойти, если один объект передает указатель ObjectContext другому объекту, а другой объект вызывает CreateInstance с помощью этого указателя. Указатель ObjectContext недопустим вне контекста объекта, который его первоначально получил.

Комментарии

При создании объекта с помощью CreateInstance контекст нового объекта является производным от ObjectContext текущего объекта и декларативных свойств компонента нового объекта. Новый объект всегда выполняется в том же действии, что и созданный объект. Если текущий объект имеет транзакцию, атрибут транзакции компонента нового объекта определяет, выполняется ли новый объект в область этой транзакции.

Если параметр атрибута транзакции компонента либо требует транзакции, либо поддерживает транзакции, новый объект наследует транзакцию своего создателя. Если атрибуту транзакции компонента требуется новая транзакция, COM+ инициирует новую транзакцию для нового объекта. Если атрибут транзакции компонента не поддерживает транзакции, новый объект не выполняется ни в одной транзакции.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header comsvcs.h

См. также раздел

Objectcontext