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 열거형의 값입니다.
[in] uCurrentStep
형식: ULONG
동기화의 현재 단계입니다. SYNCMGR_PS_UPDATING_INDETERMINATE 플래그가 nStatus에 설정된 경우 이 매개 변수는 무시됩니다.
[in] uMaxStep
형식: ULONG
항목의 동기화를 완료하는 데 필요한 총 단계 수입니다. SYNCMGR_PS_UPDATING_INDETERMINATE 플래그가 nStatus에 설정된 경우 이 매개 변수는 무시됩니다.
[out] pnCancelRequest
이 메서드가 반환되면 취소 요청의 특성을 지정하는 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 |