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

Создает COM-объект, который может выполняться в область транзакции, инициированной объектом контекста транзакции.

Синтаксис

HRESULT CreateInstance(
  [in]  REFCLSID rclsid,
  [in]  REFIID   riid,
  [out] void     **pObject
);

Параметры

[in] rclsid

Ссылка на CLSID типа объекта, экземпляр которого создается.

[in] riid

Ссылка на идентификатор интерфейса, с помощью которого вы будете взаимодействовать с новым объектом.

[out] pObject

Ссылка на новый объект типа, заданного параметром rclsid , через интерфейс, заданный параметром riid .

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

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

Код возврата Описание
S_OK
Метод завершился успешно.
REGDB_E_CLASSNOTREG
Компонент, указанный rclsid , не зарегистрирован как com-компонент.

Комментарии

Если координатор распределенных транзакций Майкрософт не запущен и объект является транзакционной, объект успешно создается. Однако вызовы метода для этого объекта завершатся сбоем с CONTEXT_E_TMNOTAVAILABLE. Объекты не могут восстановиться после этого условия и должны быть освобождены.

Примеры

ITransactionContextEx* pTransactionContext = NULL;
IMyObject* pMyObject = NULL;
HRESULT hr;

// Get TransactionContextEx.
hr = CoCreateInstance(CLSID_TransactionContextEx, 
  NULL, CLSCTX_INPROC, IID_ITransactionContextEx, 
  (void**)&pTransactionContext);
if (FAILED(hr)) throw(hr);

// Create an instance of MyObject.
hr = pTransactionContext->CreateInstance(CLSID_CMyObject, 
  IID_IMyObject, (void**)&pMyObject);
if (FAILED(hr)) throw(hr);


Требования

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

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

ITransactionContextEx