IFileOperationProgressSink 接口 (shobjidl_core.h)
公开方法,这些方法提供丰富的通知系统, 供 IFileOperation 的调用方用来监视他们通过该接口执行的操作的详细信息。
继承
IFileOperationProgressSink 接口继承自 IUnknown 接口。 IFileOperationProgressSink 也有以下类型的成员:
方法
IFileOperationProgressSink 接口具有这些方法。
注解
何时实现
应用程序必须自行实现 IFileOperationProgressSink 。 Windows 不提供默认实现。何时使用
IFileOperationProgressSink 本质上是特定事件的处理程序。 它们通常用于显示有关当时正在处理的特定操作的信息,例如文件的名称、源和目标以及目标项的新名称。 Post 方法接收操作的每个部分的 HRESULT,以便调用方可以确定进程失败(如果失败)的具体位置。 IFileOperation 方法参数值将传递给相应的 IFileOperationProgressSink 方法,以便它们有权访问相同的信息。若要将 IFileOperationProgressSink 的实现附加到 对 IFileOperation 的调用,有两个选项:
- 若要了解调用 IFileOperation 所执行的所有操作,请使用 IFileOperation::Advise 方法。
- 若要仅收到特定操作进度的通知,请将 IFileOperationProgressSink 传递给以下一个或多个单独的 IFileOperation 方法:
- CopyItem
- DeleteItem
- MoveItem
- NewItem
- RenameItem
如果选择仅传递 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) |