次の方法で共有


IProgressDialog インターフェイス (shlobj_core.h)

進行状況ダイアログ ボックスを表示するアプリケーションのオプションを提供するメソッドを公開します。 このインターフェイスは、進行状況ダイアログ ボックス オブジェクト (CLSID_ProgressDialog) によってエクスポートされます。 このオブジェクトは、操作の進行状況をユーザーに示す一般的な方法です。 これは通常、多数のファイルを削除、アップロード、コピー、移動、またはダウンロードするときに使用されます。

継承

IProgressDialog インターフェイスは、IUnknown インターフェイスから継承されます。 IProgressDialog には、次の種類のメンバーもあります。

メソッド

IProgressDialog インターフェイスには、これらのメソッドがあります。

 
IProgressDialog::HasUserCancelled

ユーザーが操作を取り消したかどうかを確認します。
IProgressDialog::SetAnimation

ダイアログ ボックスで実行される Audio-Video インターリーブ (AVI) クリップを指定します。
IProgressDialog::SetCancelMsg

ユーザーが操作をキャンセルした場合に表示されるメッセージを設定します。
IProgressDialog::SetLine

進行状況ダイアログにメッセージを表示します。
IProgressDialog::SetProgress

操作の現在の状態を示す [進行状況] ダイアログ ボックスを更新します。 (IProgressDialog.SetProgress)
IProgressDialog::SetProgress64

操作の現在の状態を示す [進行状況] ダイアログ ボックスを更新します。 (IProgressDialog.SetProgress64)
IProgressDialog::SetTitle

進行状況ダイアログ ボックスのタイトルを設定します。
IProgressDialog::StartProgressDialog

進行状況ダイアログ ボックスを開始します。
IProgressDialog::StopProgressDialog

進行状況ダイアログ ボックスを停止し、画面から削除します。
IProgressDialog::Timer

進行状況ダイアログ ボックスのタイマーを 0 にリセットします。

注釈

進行状況ダイアログ ボックス オブジェクトは、モードレス ダイアログ ボックスを作成し、クライアントがタイトル、アニメーション、テキスト行、進行状況バーを設定できるようにします。 その後、オブジェクトはバックグラウンド スレッドでの更新を処理し、ユーザーが操作を取り消すことができます。 必要に応じて、操作が完了するまでの残りの時間を見積もり、情報をテキスト行として表示します。

通常、アプリケーションはこのインターフェイスを実装しません。 アプリケーションで使用するために、進行状況ダイアログ ボックス オブジェクトによってエクスポートされます。

アプリケーションで進行状況ダイアログ ボックスを表示する必要がある場合は、このインターフェイスを使用します。 オブジェクトを初期化するには:

  1. CoCreateInstance を使用して、処理中の進行状況ダイアログ ボックス オブジェクト (CLSID_ProgressDialog) を作成します。 IProgressDialog インターフェイス (IID_IProgressDialog) へのポインターを要求します。
  2. ダイアログ ボックスのタイトルを指定するには、 IProgressDialog::SetTitle を呼び出します。
  3. IProgressDialog::SetAnimation を呼び出して、操作の進行中に再生する AVI クリップを指定します。
  4. IProgressDialog::SetCancelMsg を呼び出して、ユーザーが操作をキャンセルした場合に表示されるメッセージを指定します。
操作の進行状況を表示するには:
  1. ダイアログ ボックスを表示するには、 IProgressDialog::StartProgressDialog を呼び出します。
  2. 操作が実行する作業の合計量に数値を割り当てます。 操作の進行状況を簡単に定義できる任意の数を使用します。 たとえば、完了した割合で操作の進行状況を指定する場合は、この値を 100 に設定します。
  3. IProgressDialog::Timer を呼び出してタイマーをリセットします。 このメソッドは、進行状況ダイアログ オブジェクトが操作の残りの時間を見積もるために使用する開始点を設定します。 このメソッドを呼び出さない場合、開始点は StartProgressDialog の呼び出しになります。
  4. 操作が進行したら、 IProgressDialog::SetProgress を定期的に呼び出して、操作が完了した量をダイアログ ボックスに更新します。 進行状況ダイアログ オブジェクトは進行状況バーを更新し、残りの時間の見積もりを再計算します。 便利な進行状況の任意の数値メジャーを使用できます。 ただし、4 ギガバイト (GB) を超える値を使用する場合は、 IProgressDialog::SetProgress の代わりに IProgressDialog::SetProgress64 を呼び出す必要があります。
  5. ユーザーが [キャンセル ] ボタンをクリックして操作をキャンセルした場合、アプリケーションは通知を受け取りません。 操作が進行したら、 IProgressDialog::HasUserCancelled を定期的に呼び出して、ユーザーが [キャンセル ] ボタンをクリックしたかどうかを確認します。 アプリケーションは通常、 IProgressDialog::SetProgress または IProgressDialog::SetProgress64 を呼び出すたびにこのメソッドを呼び出します。
  6. ダイアログ ボックスには、3 行のテキストが表示されます。 アプリケーションは IProgressDialog::SetLine を定期的に呼び出して、これらの行のいずれかにメッセージを表示できます。 このメソッドは通常、操作の現在の状態に関する情報を提供するために使用されます。 一般的なメッセージは、"現在アイテム XXX... を処理しています" のようなものです。 通常、メッセージは 1 行目と 2 行目に表示されます。 3 行目のメッセージは、IProgressDialog::StartProgressDialogdwFlags パラメーターで PROGDLG_AUTOTIME フラグを設定して、進行状況ダイアログ オブジェクトに残りの時間を見積もる指示がない場合にのみ表示できます。 その場合、3 番目のテキスト行を使用して推定時間が表示されます。
操作が完了したら、次の操作を行います。
  1. ダイアログ ボックスを閉じるには、 IProgressDialog::StopProgressDialog を呼び出します。
  2. 進行状況ダイアログ ボックス オブジェクトを解放します。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional、Windows XP [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー shlobj_core.h