次の方法で共有


ISyncMgrSyncCallback::CanContinue メソッド (syncmgr.h)

同期が取り消されたかどうかを判断します。

構文

HRESULT CanContinue(
  [in] LPCWSTR pszItemID
);

パラメーター

[in] pszItemID

種類: LPCWSTR

項目の ID を含むバッファーへのポインター。

戻り値

型: HRESULT

戻り値 説明
S_OK 取り消しが要求されていません。 同期は続行できます。
S_FALSE 取り消しが要求されました。 ハンドラーは、nStatus パラメーターに SYNCMGR_PS_CANCELEDを指定して、ISyncMgrSyncCallback::ReportProgress を呼び出す必要があります。
E_INVALIDARG pszItemID によって指される値は、同期センターでは不明であるか、このハンドラーによって管理される項目ではありません。
 

pszItemIDNULL または空の文字列の場合、戻り値はハンドラー全体に対して取り消しが要求されたかどうかによって異なります。

注釈

コンテキスト メニューまたはコマンド モジュールの [停止 ] または [すべて停止 ] タスクをクリックすると、ユーザーが同期を取り消すことができます。 また、アプリケーションが ISyncMgrControl インターフェイスのいずれかの停止メソッドを呼び出すときに取り消すこともできます。

この機能を別のメソッドとして実装することで、ハンドラーは進行状況を報告せずにキャンセルをチェックできます。

次の例は、Synchronize メソッドによる ISyncMgrSyncCallback::CanContinue の使用方法を示しています。

HRESULT CMyDeviceHandler::Synchronize(...)
{
    ...

    // Start synchronizing the sync items.

    ...

    // If a cancellation has been requested, stop the sync and exit.
    if (pCallback->CanContinue(pszItemID) == S_FALSE)
    {
        // End the sync operation and exit the function.
        hr = pCallback->ReportProgress(pszItemID,
                                       pszCancelMessage,
                                       SYNCMGR_PS_CANCELED,
                                       uCurrentStep,
                                       uMaxStep,
                                       NULL);
    }
    ...
}

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー syncmgr.h