다음을 통해 공유


ISyncMgrSyncCallback::ReportProgress 메서드(syncmgr.h)

동기화 센터에 단일 동기화 항목의 동기화 진행률을 보고합니다.

구문

HRESULT ReportProgress(
  [in]  LPCWSTR                 pszItemID,
  [in]  LPCWSTR                 pszProgressText,
  [in]  SYNCMGR_PROGRESS_STATUS nStatus,
  [in]  ULONG                   uCurrentStep,
  [in]  ULONG                   uMaxStep,
  [out] SYNCMGR_CANCEL_REQUEST  *pnCancelRequest
);

매개 변수

[in] pszItemID

형식: LPCWSTR

현재 동기화 중인 항목의 고유 ID를 포함하는 버퍼에 대한 포인터입니다. 이 문자열은 종료 null 문자를 포함하여 MAX_SYNCMGR_ID 최대 길이입니다.

[in] pszProgressText

형식: LPCWSTR

이 항목에 대한 사용자 지정 진행률 메시징에 대한 유니코드 문자열이 포함된 버퍼에 대한 포인터입니다.

[in] nStatus

형식: SYNCMGR_PROGRESS_STATUS

동기화의 현재 진행률 상태 나타내는 SYNCMGR_PROGRESS_STATUS 열거형의 값입니다.

[in] uCurrentStep

형식: ULONG

동기화의 현재 단계입니다. SYNCMGR_PS_UPDATING_INDETERMINATE 플래그가 nStatus에 설정된 경우 이 매개 변수는 무시됩니다.

[in] uMaxStep

형식: ULONG

항목의 동기화를 완료하는 데 필요한 총 단계 수입니다. SYNCMGR_PS_UPDATING_INDETERMINATE 플래그가 nStatus에 설정된 경우 이 매개 변수는 무시됩니다.

[out] pnCancelRequest

형식: SYNCMGR_CANCEL_REQUEST*

이 메서드가 반환되면 취소 요청의 특성을 지정하는 SYNCMGR_CANCEL_REQUEST 열거형의 값을 가리킵니다(있는 경우).

반환 값

형식: HRESULT

메서드가 성공하면 S_OK를 반환하고, 그러지 않으면 HRESULT 오류 코드를 반환합니다.

설명

개별 동기화 항목이 아닌 처리기에서 진행률을 보고하려면 ISyncMgrSyncCallback::SetHandlerProgressText를 호출합니다.

동기화가 취소된 경우 처리기는 항목에서 ISyncMgrSyncCallback::ReportProgress를 마지막으로 호출하고 nStatus 매개 변수에 SYNCMGR_PS_CANCELED 지정하여 취소 요청을 승인합니다. 이렇게 하면 UI가 업데이트되고 사용자가 해당 항목에 대한 동기화를 다시 시작할 수도 있습니다.

이 메서드가 완료 상태(SYNCMGR_PS_SUCCEEDED, SYNCMGR_PS_FAILED 또는 SYNCMGR_PS_CANCELED)을 보고하면 추가로 만들 수 있는 상태 보고서는 SYNCMGR_PS_FAILED. 다른 값으로 인해 이 메서드는 E_ACCESSDENIED 및 동기화 센터를 반환하여 항목을 실패로 표시합니다.

이 메서드는 Progress를 대체합니다.

진행률 문자열의 최대 길이는 MAX_SYNCMGR_PROGRESSTEXT. 이 상수는 SyncMgr.h에 정의되어 있습니다.

예제

다음 예제에서는 Synchronize 메서드에서 ISyncMgrSyncCallback::ReportProgress를 사용하는 방법을 보여 줍니다.

STDMETHODIMP CMyDeviceHandler::Synchronize(...)
{
    ...

    // Start synchronizing the sync item.

    ...

    // Construct a string to display in the Sync Center folder.
    // Report the progress to Sync Center.
    SYNCMGR_CANCEL_REQUEST nCancelRequest;
    hr = pCallback->ReportProgress(pszItemID,
                                   pszProgressText,
                                   SYNCMGR_PS_UPDATING,
                                   uCurrentStep,
                                   uMaxStep,
                                   &nCancelRequest);
    if (SUCCEEDED(hr))
    {
        if (nCancelRequest != SYNCMGR_CR_NONE)
        {
            // Synchronization was canceled.
            hr = pCallback->ReportProgress(pszItemID,
                                           pszProgressText,
                                           SYNCMGR_PS_CANCELED,
                                           uCurrentStep,
                                           uMaxStep,
                                           NULL);
        }
    }
    ...
}

요구 사항

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