Shell命名空间扩展 - 在这种特殊情况下我必须实现哪些接口?

时间:2014-02-17 06:40:39

标签: c++ windows com namespaces windows-shell

我想要实现的功能 - 解析系统文件夹,如My Computer,“我的文档”等,并按照特定顺序排列,如详细信息,列表,平铺。这意味着编写工具栏扩展。

我所知道的 -

  1. 我熟悉COM,虽然不是公寓模型和编组,但我刚学过IClassFactory,Containment,Aggregation等基础知识。因此,我认为实现接口不会成为我的新世界的开始(希望如此)。
  2. 已经浏览了codeproject文档和PIDL上的其他文档,因此请稍微了解IShellFolder2以及如何实现它们。
  3. 尝试从MSDN学习this示例。我相信我的工作与这个例子大致相似。所以我认为我应该实现IPersistFolder2IEnumIDListMy Computer接口;但我不知道我对他们是否正确。
  4. 我确信我必须实现this界面。
  5. 我想知道什么 -

    1. 我是在正确的轨道上吗?我知道这样的问题真的太糟糕了,但是这个NSE有点像是失败了,必须从一开始就重新启动它。所以请指导。
    2. 我还需要实现哪些其他接口?
    3. 如何知道用户或“控制面板”是否正在打开PIDL?我知道我会CLSID,但仍然......我知道另外一件事,每件事都有CLSID - IShellFolderViewDual2。这些必须是代码的一部分吗?比如测试每个Visual C++ Windows Shell Programming吗?
    4. 对于这样一个复杂的主题,任何其他信息来源也受到高度赞赏。顺便说一下,我也提到了Dino Esposito Vista本书的{{1}},但我认为它已经很老了,而且{{1}}很多事情都发生了变化。

0 个答案:

没有答案