共用方式為


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 的呼叫,您有兩個選項:

如果您呼叫 建議 ,就不需要將 IFileOperationProgressSink 傳遞給特定的 IFileOperation 方法,因為這樣會導致 IFileOperationProgressSink 方法和重複通知的重複呼叫。

如果您選擇只傳遞 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)

另請參閱

IFileOperation