IHolder::Close 메서드(comsvcs.h)
홀더를 닫습니다.
구문
HRESULT Close();
반환 값
메서드가 성공하면 S_OK를 반환하고, 그러지 않으면 HRESULT 오류 코드를 반환합니다.
설명
이렇게 하면 리소스 디스펜서의 홀더가 닫히며, 그 후에는 리소스 디스펜서가 릴리스될 수 있습니다.
닫기 전에 리소스 디스펜서의 IDispenserDriver::D estroyResource 메서드로 다시 호출하여 나머지 인벤토리가 제거됩니다.
다음 시퀀스는 리소스 디스펜서를 닫는 방법을 설명합니다.
- 리소스 디스펜서( IDispenserDriver를 노출하는 개체)에 대한 참조를 가져옵니다.
- 구현이 IHolder::Close를 호출하는 Resource Dispenser에서 메서드를 호출합니다.
- IHolder::Close 는 리소스 디스펜서의 IDispenserDriver::D estroyResource 메서드로 다시 호출하여 남은 인벤토리를 삭제합니다.
- IHolder::Close 는 디스펜서 관리자를 호출하여 홀더 목록에서 이 홀더를 제거합니다. (보유자가 남아 있지 않으면 디스펜서 관리자 개체가 자체 삭제됩니다.)
- IHolder::Close 는 리소스 디스펜서의 IDispenserDriver 인터페이스에 대한 참조를 릴리스합니다. 이는 1단계에서 참조가 필요한 이유입니다. 그렇지 않으면 후속 단계를 완료하기 전에 리소스 디스펜서가 조기에 삭제됩니다.
- IHolder::Close 는 리소스 디스펜서로 돌아갑니다.
- 리소스 디스펜서는 IDispenserDriver::D estroyResource를 호출합니다. 이제 홀더가 자체 삭제됩니다.
- 이제 2단계에서 호출된 메서드가 반환됩니다.
- 리소스 디스펜서에 대한 최종 참조를 해제합니다. 이 참조는 이제 자체 삭제됩니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | comsvcs.h |