次の方法で共有


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 つのオプションがあります。

Advise を呼び出した場合、IFileOperationProgressSink メソッドを特定の IFileOperation メソッドに渡す必要はありません。その結果、IFileOperationProgressSink メソッドの呼び出しが冗長になり、通知が重複します。

選択したメソッドにのみ IFileOperationProgressSink を渡す場合は、 IFileOperationProgressSink の同じインスタンスをそれらすべてに使用できます。

次の例では、Advise メソッドを呼び出して IFileOperationProgressSinkIFileOperation のインスタンスに渡します。
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 を含む)

こちらもご覧ください

IFileOperation