다음을 통해 공유


ITransactionContextEx::CreateInstance 메서드(comsvcs.h)

트랜잭션 컨텍스트 개체에서 시작된 트랜잭션의 scope 내에서 실행할 수 있는 COM 개체를 만듭니다.

구문

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

매개 변수

[in] rclsid

인스턴스화할 개체 형식의 CLSID에 대한 참조입니다.

[in] riid

새 개체와 통신할 인터페이스의 인터페이스 ID에 대한 참조입니다.

[out] pObject

riid 매개 변수로 지정된 인터페이스를 통해 rclsid 매개 변수로 지정된 형식의 새 개체에 대한 참조입니다.

반환 값

이 메서드는 다음 값뿐만 아니라 표준 반환 값 E_INVALIDARG, E_OUTOFMEMORY, E_UNEXPECTED 및 E_FAIL 반환할 수 있습니다.

반환 코드 Description
S_OK
메서드가 완료되었습니다.
REGDB_E_CLASSNOTREG
rclsid로 지정된 구성 요소가 COM 구성 요소로 등록되지 않았습니다.

설명

Microsoft Distributed Transaction Coordinator가 실행되고 있지 않고 개체가 트랜잭션인 경우 개체가 성공적으로 만들어집니다. 그러나 해당 개체에 대한 메서드 호출은 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
헤더 comsvcs.h

추가 정보

ITransactionContextEx