IFileOperationProgressSink 介面 (shobjidl_core.h)
公開方法,提供 IFileOperation 呼叫端所使用的豐富通知系統,以監視他們透過該介面執行之作業的詳細數據。
繼承
IFileOperationProgressSink 介面繼承自 IUnknown 介面。 IFileOperationProgressSink 也有下列類型的成員:
方法
IFileOperationProgressSink 介面具有這些方法。
備註
何時實作
應用程式必須實作 IFileOperationProgressSink 本身。 Windows 不提供預設實作。使用時機
IFileOperationProgressSink 基本上是特定事件的處理程式。 它們通常用來顯示該時間所處理之特定動作的相關信息,例如檔名、來源和目的地,以及目的地專案的新名稱。 Post 方法會接收作業中每個部分的 HRESULT,讓呼叫端可以明確判斷如果程序失敗的位置。 IFileOperation 方法參數值會傳遞至適當的 IFileOperationProgressSink 方法,讓它們能夠存取相同的資訊。若要將 IFileOperationProgressSink 的實作附加至 IFileOperation 的呼叫,您有兩個選項:
- 若要建議呼叫 IFileOperation 所執行的所有作業,請使用 IFileOperation::Advise 方法。
- 若要只收到特定作業進度的通知,請將 IFileOperationProgressSink 傳遞給其中一或多個個別 的 IFileOperation 方法:
如果您選擇只傳遞 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) |