다음을 통해 공유


IUPnPService::AddCallback 메서드(upnp.h)

AddCallback 메서드는 애플리케이션의 콜백을 UPnP 프레임워크에 등록합니다.

구문

HRESULT AddCallback(
  [in] IUnknown *pUnkCallback
);

매개 변수

[in] pUnkCallback

등록할 콜백이 포함된 인터페이스에 대한 참조를 지정합니다. pUnkCallback에서 참조하는 개체는 IUPnPServiceCallback 인터페이스 또는 IDispatch 인터페이스를 지원해야 합니다.

반환 값

메서드가 성공하면 반환 값이 S_OK. 그렇지 않으면 메서드는 WinError.h에 정의된 COM 오류 코드 중 하나를 반환합니다.

설명

콜백 내에서 이 메서드를 호출하지 마세요. 메모리 손상이 발생합니다.

둘 이상의 콜백이 등록된 경우 UPnP 프레임워크는 콜백을 순차적으로 호출합니다.

pUnkCallback에서 참조하는 개체는 IUPnPServiceCallback 인터페이스 또는 IDispatch 인터페이스를 지원해야 합니다. AddCallback 메서드는 먼저 IUPnPServiceCallback 인터페이스에 대한 pUnkCallback을 쿼리합니다. 이 인터페이스가 지원되지 않는 경우 AddCallback 메서드는 iDispatch 인터페이스에 대해 pUnkCallback을 쿼리합니다. IDispatch 인터페이스가 지원되지 않으면 두 검사가 모두 실패하고 AddCallback 메서드가 E_FAIL 반환합니다.

IDispatch만 지원되는 경우 서비스 개체는 기본 메서드를 나타내는 디스패치 ID가 0으로 지정된 IDispatch::Invoke를 호출하여 콜백을 호출합니다. 이 기본 IDispatch 메서드는 IUPnPServiceCallback 메서드와 동일한 매개 변수를 전달하지만 전달된 첫 번째 매개 변수는 콜백이 호출되는 이유를 나타내는 문자열입니다. 유효한 값은 VARIABLE_UPDATE 및 SERVICE_INSTANCE_DIED.

이 메서드에는 다음과 같은 인수가 있습니다.

  • 콜백이 호출되는 이유입니다. 상태 변수가 변경되었거나(VARIABLE_UPDATE) 서비스 instance 사용할 수 없게 되었기 때문에 호출됩니다(SERVICE_INSTANCE_DIED).
  • 콜백이 호출되는 서비스 개체입니다.

상태 변수 변경에 대해 콜백이 호출되면 메서드는 두 개의 추가 인수를 전달합니다.

  • 변경된 변수의 이름입니다.
  • 새 값입니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 지원되는 버전 없음
대상 플랫폼 Windows
헤더 upnp.h
DLL Upnp.dll

추가 정보

IUPnPService

IUPnPServiceCallback