IProgressNotify::OnProgress 메서드(objidl.h)

등록된 개체 및 애플리케이션에 다운로드 작업의 진행률을 알 수 있습니다.

구문

HRESULT OnProgress(
  [in] DWORD dwProgressCurrent,
  [in] DWORD dwProgressMaximum,
  [in] BOOL  fAccurate,
  [in] BOOL  fOwner
);

매개 변수

[in] dwProgressCurrent

사용 가능한 데이터의 양입니다.

[in] dwProgressMaximum

다운로드할 총 데이터 양입니다.

[in] fAccurate

dwProgressCurrentdwProgressMaximum의 값 정확도를 나타냅니다. 신뢰할 수 있는(TRUE) 또는 신뢰할 수 없음(FALSE)입니다. FALSE 값은 아직 다운로드할 데이터의 실제 위치 또는 양을 결정하기 위한 제어 구조를 사용할 수 없음을 나타냅니다.

[in] fOwner

OnProgress 호출이 작업의 차단 동작을 제어할 수 있는지 여부를 나타냅니다. TRUE이면 호출자는 OnProgress의 반환 값을 사용하여 작업을 차단(STG_S_BLOCK), 다시 시도(STG_S_RETRYNOW) 또는 모니터링(STG_S_MONITORING)할 수 있습니다. FALSE이면 OnProgress의 반환 값이 차단 동작에 영향을 주지 않습니다.

반환 값

이 메서드는 다음 값뿐만 아니라 E_FAIL, E_INVALIDARG, E_OUTOFMEMORY 및 E_UNEXPECTED 표준 반환 값을 반환할 수 있습니다.

반환 코드 설명
STG_S_RETRYNOW
호출자는 작업을 즉시 다시 시도하는 것입니다. (이 값은 콜백 루틴 내에서 차단을 수행하는 애플리케이션에 가장 유용합니다.)
STG_S_BLOCK
호출자는 다운로드를 차단하고 필요에 따라 호출을 다시 시도하여 추가 데이터를 사용할 수 있는지 확인하는 것입니다. 연결 지점에 싱크가 등록되지 않은 경우 기본 동작입니다.
STG_S_MONITORING
콜백 수신자는 동일한 스트림에 진행률 알림 싱크를 등록한 다른 개체 또는 애플리케이션 중 하나에 다운로드 프로세스의 제어를 포기합니다. 이는 알림 싱크가 통계 수집에만 관심이 있는 경우에 유용합니다.
E_PENDING
현재 데이터를 사용할 수 없습니다. 호출자는 원하는 간격 후에 다시 시도합니다. 비동기 스토리지가 비블로킹 모드에서 작동하는 경우 알림 싱크는 이 값을 반환합니다.

설명

싱크는 지정된 스토리지의 하위 저장소 또는 하위 스트림에서 상속될 수 있습니다. 싱크가 등록되지 않은 경우 요청된 데이터를 사용할 수 있게 되거나 다운로드자가 다운로드를 취소할 때까지 스레드가 차단됩니다.

여러 개체 또는 애플리케이션이 단일 스트림에 진행률 알림 싱크를 등록한 경우 그 중 하나만 다운로드 동작을 제어할 수 있습니다. 다운로드 소유권은 첫 번째 싱크로 이동하여 스토리지 또는 스트림에 등록하거나 부모 스토리지에서 상속되었을 수 있는 조언 스킨(ASYNC_MODE_COMPATIBILITY 사용하여 스토리지를 만든 경우)으로 이동합니다.

싱크 중 하나는 현재 호출자를 만드는 연결 지점에 STG_S_MONITORING 반환하여 다음 연결 지점으로 제어를 포기할 수 있습니다. 연결점이 STG_S_BLOCK 또는 STG_S_RETRYNOW 수신을 통해 제어를 가져온 후 OnProgress 를 호출하는 모든 후속 연결 지점은 fOwnerFALSE로 설정합니다.

요구 사항

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

추가 정보

IProgressNotify