c ++中Common File Dialog和Common Item Dialog的主要区别是什么?

Coo*_*ike 2 c++ windows

我的问题是:

Common File Dialog和Common Item Dialog之间的主要区别是什么?

MSDN刚才说:

从Windows Vista开始,Common Item Dialog在用于打开或保存文件时会取代旧的Common File Dialog.我们建议您使用Common Item Dialog API而不是Common File Dialog API.

但它没有解释什么是变更日志或它们之间的主要区别?

谢谢你的帮助.

Ser*_*sta 5

Common File Dialog只是一个自定义的DialogBog.另一方面,Common Item Dialog是一个完整的COM服务器.

微软的文档说:

Windows Vista中的Common Item Dialog实现提供了优于早期版本中提供的实现的几个优点:

  • 支持通过IShellItem直接使用Shell命名空间,而不是使用文件系统路径.
  • 启用对话框的简单自定义,例如在OK按钮上设置标签,而无需钩子过程.
  • 通过添加一组在没有Win32对话框模板的情况下运行的数据驱动控件,支持更广泛的对话框自定义.此自定义方案从UI布局中释放调用进程.由于对对话框设计的任何更改都继续使用此数据模型,因此对话框实现不依赖于对话框的特定当前版本.
  • 支持对话框中事件的调用者通知,例如选择更改或文件类型更改.还使调用进程能够挂钩对话框中的某些事件,例如解析.
  • 引入新的对话框功能,例如向"位置"栏添加调用者指定的位置.
  • 在"保存"对话框中,开发人员可以利用Windows Vista Shell的新元数据功能.

简单地说,从简单的低级Win32程序中使用起来就更难了.