Share via


IPart::UnregisterControlChangeCallback 메서드(devicetopology.h)

UnregisterControlChangeCallback 메서드는 IPart::RegisterControlChangeCallback 메서드를 호출하여 클라이언트가 이전에 등록한 IControlChangeNotify 인터페이스의 등록을 제거합니다.

구문

HRESULT UnregisterControlChangeCallback(
  [in] IControlChangeNotify *pNotify
);

매개 변수

[in] pNotify

등록을 삭제할 IControlChangeNotify 인터페이스에 대한 포인터입니다. 클라이언트는 IPart::RegisterControlChangeCallback 메서드에 대한 이전 호출에서 파트 개체에 동일한 인터페이스 포인터를 전달했습니다. UnregisterControlChangeCallback 메서드가 성공하면 클라이언트의 IControlChangeNotify 인터페이스에서 Release 메서드를 호출합니다.

반환 값

메서드가 성공하면 S_OK가 반환되고, 실패할 경우 가능한 반환 코드에는 다음 표에 표시된 값이 포함되지만 이에 국한되지는 않습니다.

반환 코드 설명
E_INVALIDARG
포인터 pNotifyNULL입니다.
E_NOTFOUND
인터페이스 instance *pNotify가 현재 등록되어 있지 않습니다.

설명

클라이언트가 IControlChangeNotify 인터페이스에 대한 최종 참조를 해제하기 전에 UnregisterControlChangeCallback 을 호출하여 인터페이스의 등록을 취소해야 합니다. 그렇지 않으면 애플리케이션이 IControlChangeNotifyIPart 개체에서 보유한 리소스를 누수합니다. IPart::RegisterControlChangeCallback 메서드는 클라이언트의 IControlChangeNotify::AddRef 메서드를 호출하고 UnregisterControlChangeCallbackIControlChangeNotify::Release 메서드를 호출합니다. UnregisterControlChangeCallback을 호출하기 전에 클라이언트가 IControlChangeNotify 인터페이스에 대한 참조를 해제하여 오류가 발생하는 경우 IPart 개체는 IControlChangeNotify 인터페이스에 대한 참조를 해제하지 않습니다. 예를 들어 잘못 디자인된 IControlChangeNotify 구현은 IControlChangeNotify 개체의 소멸자에서 UnregisterControlChangeCallback을 호출할 수 있습니다. 이 경우 IPart 개체가 IControlChangeNotify 인터페이스에 대한 참조를 해제할 때까지 클라이언트는 UnregisterControlChangeCallback을 호출하지 않으며, IPart 개체는 클라이언트가 UnregisterControlChangeCallback을 호출할 때까지 IControlChangeNotify 인터페이스에 대한 참조를 해제하지 않습니다. AddRefRelease 메서드에 대한 자세한 내용은 Windows SDK 설명서의 IUnknown 인터페이스에 대한 설명을 참조하세요.

요구 사항

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

추가 정보

IControlChangeNotify 인터페이스

IPart 인터페이스

IPart::RegisterControlChangeCallback