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

인벤토리에서 리소스를 할당합니다.

구문

HRESULT AllocResource(
  [in]  const RESTYPID __MIDL__IHolder0000,
  [out] RESID          *__MIDL__IHolder0001
);

매개 변수

[in] __MIDL__IHolder0000

할당할 리소스의 유형입니다.

[out] __MIDL__IHolder0001

할당된 리소스의 핸들이 반환되는 위치에 대한 포인터입니다.

반환 값

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

반환 코드 설명
S_OK
메서드가 완료되었습니다.
E_INVALIDARG
ResTypIdNULL 또는 빈 문자열이거나 리소스 디스펜서의 IDispenserDriver::CreateResource 메서드가 빈 RESID 또는 중복 RESID를 생성했습니다.
E_fail
메서드가 실패했습니다. pResId 매개 변수가 설정되지 않았습니다. 가능한 원인은 호출자의 트랜잭션이 중단되기 때문일 수 있습니다.

설명

디스펜서 관리자는 다음 단계를 수행하여 리소스를 찾습니다.

  1. 호출자의 현재 트랜잭션에 이미 등록되어 있는 이 RESTYPID의 무료 리소스를 풀에서 검색합니다.
  2. 풀에서 이 RESTYPID의 등록되지 않은 무료 리소스를 검색한 다음 호출자의 현재 트랜잭션에 등록합니다.
  3. 리소스 디스펜서의 IDispenserDriver::CreateResource 메서드를 다시 호출하여 리소스를 만든 다음 인리스트먼트합니다.
호출자에게 현재 트랜잭션이 없으면 인리스트먼트를 건너뜁습니다. 또는 리소스 디스펜서가 인리스트먼트를 거부하는 경우(즉, 리소스가 트랜잭션 가능하지 않음) 인리스트먼트를 건너뜁니다.

요구 사항

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

추가 정보

IDispenserDriver

IDispenserManager

IHolder