다음을 통해 공유


IBackgroundCopyJob::SetNotifyInterface 메서드(bits.h)

BITS에 대한 IBackgroundCopyCallback 인터페이스의 구현을 식별합니다. IBackgroundCopyCallback 인터페이스를 사용하여 작업 관련 이벤트에 대한 알림을 받습니다.

구문

HRESULT SetNotifyInterface(
  IUnknown *Val
);

매개 변수

Val

IBackgroundCopyCallback 인터페이스 포인터입니다. 현재 콜백 인터페이스 포인터를 제거하려면 이 매개 변수를 NULL로 설정합니다.

반환 값

이 메서드는 다음 HRESULT 값과 다른 값을 반환합니다.

반환 코드 설명
S_OK
알림 인터페이스 포인터가 성공적으로 설정되었습니다.
BG_E_INVALID_STATE
작업의 상태는 BG_JOB_STATE_CANCELLED 또는 BG_JOB_STATE_ACKNOWLEDGED 수 없습니다.

설명

IBackgroundCopyCallback 인터페이스를 구현하는 경우에만 이 메서드를 호출합니다. SetNotifyInterface 메서드를 SetNotifyFlags 메서드와 함께 사용하여 수신할 알림 유형을 지정합니다.

애플리케이션이 종료되면 알림 인터페이스가 유효하지 않습니다. BITS는 알림 인터페이스를 유지하지 않습니다. 따라서 애플리케이션의 초기화 프로세스는 알림을 받을 기존 작업에 대해 SetNotifyInterface 메서드를 호출해야 합니다. 애플리케이션이 마지막으로 실행된 이후 발생한 상태 및 진행률 정보를 캡처해야 하는 경우 애플리케이션 초기화 중에 상태 및 진행률 정보를 폴링합니다.

등록한 이벤트가 이미 발생한 경우에도 BITS는 콜백을 호출합니다.

콜백 알림을 받는 대신 BITS에서 오류 및 전송된 이벤트에 대한 명령줄을 실행하도록 등록할 수 있습니다. 자세한 내용은 IBackgroundCopyJob2::SetNotifyCmdLine 메서드를 참조하세요.

둘 이상의 애플리케이션이 SetNotifyInterface 메서드를 호출하여 작업에 대한 알림 인터페이스를 설정하는 경우 SetNotifyInterface 메서드를 호출하는 마지막 애플리케이션은 알림을 받는 애플리케이션이며 다른 애플리케이션은 알림을 받지 않습니다.

예제

다음 예제에서는 SetNotifyInterface 메서드를 호출하는 방법을 보여줍니다. 다음 예제에서 사용되는 CNotifyInterface 예제 클래스에 대한 자세한 내용은 IBackgroundCopyCallback 인터페이스를 참조하세요. 이 예제에서는 IBackgroundCopyJob 인터페이스 포인터가 유효하다고 가정합니다.

IBackgroundCopyJob* pJob;
CNotifyInterface* pNotify = new CNotifyInterface();

hr = pJob->SetNotifyInterface(pNotify);
if (SUCCEEDED(hr))
{
  hr = pJob->SetNotifyFlags(BG_NOTIFY_JOB_TRANSFERRED | 
                            BG_NOTIFY_JOB_ERROR);
}
pNotify->Release();
pNofity = NULL;

if (FAILED(hr))
{
  //Handle error - unable to register for event notification.
}

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP
지원되는 최소 서버 Windows Server 2003
대상 플랫폼 Windows
헤더 bits.h
라이브러리 Bits.lib
DLL QmgrPrxy.dll

추가 정보

IBackgroundCopyCallback

IBackgroundCopyJob2::SetNotifyCmdLine

IBackgroundCopyJob::GetNotifyInterface

IBackgroundCopyJob::SetNotifyFlags