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 |
---|---|
|
메서드가 완료되었습니다. |
|
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 |