Метод 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, а также следующие значения.
Код возврата | Описание |
---|---|
|
Метод завершился успешно. |
|
Компонент, указанный 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 |