文件操作进度对话框

时间:2012-02-01 08:56:02

标签: c++ windows progressdialog explorer windows-shell

Windows提供标准组件 - 进度对话框。它是在Windows XP中发明的。可以通过带有接口IProgressDialog的CoCreateInstance调用创建进度对话框。 Windows Vista为进度对话框提供了另一个(新)UI。需要使用接口IOperationsProgressDialog创建进度对话框以获取新UI。有一个组件(CLSID_ProgressDialog):它支持接口和UI。建议使用IOperationsProgressDialog接口。

我开发了命名空间扩展。它支持拖拽和下降。我使用场景从我的NSE传输数据:

  • IShellFolder :: GetUIObjectOf - > IDataObject的
  • IDataObject :: GetData - > FILEDESCRIPTOR,FILECONTENTS
  • FILECONTENTS - >的IStream
  • IStream :: Read - >要转移的数据

FILEDESCRIPTOR报告我的NSE需要进度UI(FD_PROGRESSUI)。复制文件时显示“进度”对话框。此进度对话框具有由IProgressDialog接口提供的UI。我需要资源管理器使用IOperationsProgressDialog UI的进度对话框,但我不知道如何强制资源管理器这样做。我只提供IDataObject和IStream。 NSE是为Windows 7设计的,但进度对话框具有旧UI。在从NSE复制到资源管理器期间,如何获得新的进度对话框UI?

1 个答案:

答案 0 :(得分:0)

您可以QueryInterface所提供的对象是否也实现IOperationsProgressDialog,但您应该准备好处理E_NOINTERFACE

相关问题