다음을 통해 공유


IHolder::TrackResource 메서드(comsvcs.h)

리소스를 추적합니다.

구문

HRESULT TrackResource(
  [in] const RESID __MIDL__IHolder0003
);

매개 변수

[in] __MIDL__IHolder0003

추적할 리소스의 핸들입니다. Resource Dispenser는 TrackResource를 호출하기 전에 이미 이 리소스를 만들었습니다.

반환 값

이 메서드는 다음 값을 반환할 수 있습니다.

반환 코드 Description
S_OK
메서드가 완료되었습니다.
E_INVALIDARG
ResId 는 유효한 리소스 핸들이 아닙니다.
E_fail
메서드가 실패했습니다. 리소스가 추적되지 않았습니다. 호출자의 트랜잭션이 중단되는 원인일 수 있습니다.

설명

일부 리소스는 인벤토리에 보관되지 않습니다. 항상 주문형으로 제조됩니다. 홀더는 개체 수명이 끝날 때 남은 리소스를 자동으로 해제하는 메커니즘으로만 사용됩니다.

TrackResource는 IHolder::UntrackResource를 호출하여 리소스가 해제될 때까지 또는 TrackResource 라는 개체가 해제될 때까지 리소스를 추적해야 하며, 이때 디스펜서 관리자가 리소스를 자동으로 해제합니다.

TrackResource가 트랜잭션 개체에서 호출되면 리소스 디스펜서의 IDispenserDriver::EnlistResource 메서드로 다시 호출됩니다. EnlistResource 메서드는 트랜잭션에 리소스를 등록하거나 S_FALSE 반환할 수 있습니다. 이는 리소스가 트랜잭션이 가능하지 않고 등록되지 않았음을 나타냅니다.

이 리소스는 결국 다음 두 가지가 모두 true인 후에 제거됩니다.

  • 리소스 디스펜서는 IHolder::UntrackResource 를 호출하거나(구성 요소의 요청에 따라) 개체의 수명이 종료됩니다.
  • 리소스가 인리스트먼트된 트랜잭션(있는 경우)이 수행됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 comsvcs.h

추가 정보

IDispenserDriver

IDispenserManager

IHolder