IFileOperationProgressSink インターフェイス (shobjidl_core.h)
IFileOperation の呼び出し元が、そのインターフェイスを介して実行している操作の詳細を監視するために使用される豊富な通知システムを提供するメソッドを公開します。
継承
IFileOperationProgressSink インターフェイスは、IUnknown インターフェイスから継承します。 IFileOperationProgressSink には、次の種類のメンバーもあります。
メソッド
IFileOperationProgressSink インターフェイスには、これらのメソッドがあります。
IFileOperationProgressSink::FinishOperations IFileOperation の呼び出しによって最後に実行された操作が完了した後、呼び出し元によって実装されたアクションを実行します。 |
IFileOperationProgressSink::P auseTimer サポートされていません。 (IFileOperationProgressSink.PauseTimer) |
IFileOperationProgressSink::P ostCopyItem 各項目のコピー プロセスが完了した後、呼び出し元によって実装されたアクションを実行します。 |
IFileOperationProgressSink::P ostDeleteItem 各項目の削除プロセスが完了した後、呼び出し元によって実装されたアクションを実行します。 |
IFileOperationProgressSink::P ostMoveItem 各項目の移動プロセスが完了した後、呼び出し元によって実装されたアクションを実行します。 |
IFileOperationProgressSink::P ostNewItem 新しい項目が作成された後に、呼び出し元によって実装されたアクションを実行します。 |
IFileOperationProgressSink::P ostRenameItem 各項目の名前変更プロセスが完了した後、呼び出し元によって実装されたアクションを実行します。 |
IFileOperationProgressSink::P reCopyItem 各項目のコピー プロセスが開始される前に、呼び出し元によって実装されたアクションを実行します。 |
IFileOperationProgressSink::P reDeleteItem 各アイテムの削除プロセスが開始される前に、呼び出し元によって実装されたアクションを実行します。 |
IFileOperationProgressSink::P reMoveItem 各項目の移動プロセスが開始される前に、呼び出し元によって実装されたアクションを実行します。 |
IFileOperationProgressSink::P reNewItem 新しい項目を作成するプロセスが開始される前に、呼び出し元によって実装されたアクションを実行します。 |
IFileOperationProgressSink::P reRenameItem 各項目の名前変更プロセスが開始される前に、呼び出し元によって実装されたアクションを実行します。 |
IFileOperationProgressSink::ResetTimer サポートされていません。 (IFileOperationProgressSink.ResetTimer) |
IFileOperationProgressSink::ResumeTimer サポートされていません。 (IFileOperationProgressSink.ResumeTimer) |
IFileOperationProgressSink::StartOperations 特定のファイル操作が実行される前に、呼び出し元によって実装されたアクションを実行します。 |
IFileOperationProgressSink::UpdateProgress 合計作業量に関連して現在実行されている作業の合計量の見積もりを提供します。 |
注釈
実装するタイミング
アプリケーションでは 、IFileOperationProgressSink 自体を実装する 必要があります。 Windows では、既定の実装は提供されません。使用するタイミング
IFileOperationProgressSink は、基本的に特定のイベントのハンドラーです。 通常、ファイルの名前、ソースと宛先、宛先の項目の新しい名前など、その時点で処理されている特定のアクションに関する情報を表示するために使用されます。 Post メソッドは操作の各部分の HRESULT を受け取ります。そうすると、呼び出し元はプロセスが失敗する場所を特定できます。 IFileOperation メソッドのパラメーター値は、同じ情報にアクセスできるように、適切な IFileOperationProgressSink メソッドに渡されます。IFileOperationProgressSink の実装を IFileOperation の呼び出しにアタッチするには、次の 2 つのオプションがあります。
- IFileOperation の呼び出しによって実行されるすべての操作を推奨するには、IFileOperation::Advise メソッドを使用します。
- 特定の操作の進行状況のみを通知するには、 IFileOperationProgressSink を次の個々の IFileOperation メソッドの 1 つ以上に渡します。
選択したメソッドにのみ IFileOperationProgressSink を渡す場合は、 IFileOperationProgressSink の同じインスタンスをそれらすべてに使用できます。
例
次の例では、Advise メソッドを呼び出して IFileOperationProgressSink を IFileOperation のインスタンスに渡します。IFileOperation *pfo;
CoCreateInstance(CLSID_FileOperation, NULL, CLSCTX_ALL, IID_IFileOperation, (void **)&m_pFO)
HRESULT hr = SHCreateFileOperation(hwnd, 0, IID_PPV_ARGS(&pfo));
if (SUCCEEDED(hr))
{
// Advise to get notifications
DWORD dwCookie;
hr = pfo->Advise(SAFECAST(this, IFileOperationProgressSink*), &dwCookie);
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | shobjidl_core.h (Shobjidl.h を含む) |