Bagikan melalui


Metode ISyncMgrSyncCallback::ReportProgress (syncmgr.h)

Melaporkan kemajuan sinkronisasi item sinkronisasi tunggal ke Pusat Sinkronisasi.

Sintaks

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

Parameter

[in] pszItemID

Jenis: LPCWSTR

Penunjuk ke buffer yang berisi ID unik item yang saat ini sedang disinkronkan. String ini memiliki panjang maksimum MAX_SYNCMGR_ID termasuk karakter null yang mengakhiri.

[in] pszProgressText

Jenis: LPCWSTR

Penunjuk ke buffer yang berisi string Unicode untuk pesan kemajuan kustom apa pun untuk item ini.

[in] nStatus

Jenis: SYNCMGR_PROGRESS_STATUS

Nilai dari enumerasi SYNCMGR_PROGRESS_STATUS yang menyatakan status kemajuan sinkronisasi saat ini.

[in] uCurrentStep

Jenis: ULONG

Langkah saat ini dalam sinkronisasi. Jika bendera SYNCMGR_PS_UPDATING_INDETERMINATE diatur di nStatus, parameter ini diabaikan.

[in] uMaxStep

Jenis: ULONG

Jumlah total langkah yang diperlukan untuk menyelesaikan sinkronisasi item. Jika bendera SYNCMGR_PS_UPDATING_INDETERMINATE diatur di nStatus, parameter ini diabaikan.

[out] pnCancelRequest

Jenis: SYNCMGR_CANCEL_REQUEST*

Ketika metode ini kembali, menunjuk ke nilai dari enumerasi SYNCMGR_CANCEL_REQUEST yang menentukan sifat permintaan pembatalan, jika ada.

Mengembalikan nilai

Jenis: HRESULT

Jika metode ini berhasil, metode akan mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.

Keterangan

Jika Anda ingin melaporkan kemajuan pada handler daripada item sinkronisasi individual, panggil ISyncMgrSyncCallback::SetHandlerProgressText.

Jika sinkronisasi telah dibatalkan, handler memanggil ISyncMgrSyncCallback::ReportProgress pada item satu kali terakhir, mengakui permintaan pembatalan dengan menentukan SYNCMGR_PS_CANCELED dalam parameter nStatus . Ini memperbarui UI dan juga memungkinkan pengguna untuk memulai ulang sinkronisasi untuk item tersebut.

Setelah metode ini melaporkan status penyelesaian (SYNCMGR_PS_SUCCEEDED, SYNCMGR_PS_FAILED, atau SYNCMGR_PS_CANCELED), satu-satunya laporan status lebih lanjut yang dapat dibuat adalah SYNCMGR_PS_FAILED. Nilai lainnya menyebabkan metode ini mengembalikan E_ACCESSDENIED dan Pusat Sinkronisasi untuk menandai item sebagai gagal.

Metode ini menggantikan Kemajuan.

Panjang maksimum string kemajuan adalah MAX_SYNCMGR_PROGRESSTEXT. Konstanta ini ditentukan dalam SyncMgr.h.

Contoh

Contoh berikut menunjukkan penggunaan ISyncMgrSyncCallback::ReportProgress dengan metode Synchronize .

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);
        }
    }
    ...
}

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header syncmgr.h