首页 > 解决方案 > Shell 文件夹通知和图标

问题描述

我正在寻找有 Windows Shell 经验的人给我一些提示。

我正在使用 Delphi 2010 制作一个简单的 shell/文件系统浏览器,它具有部分功能,但我有几个问题(目前)。代码有点太大,无法发布,我不确定哪些部分是相关的。

  1. SHChangeNotifyRegister()适用于纯文件系统(如"e:\x\y")或虚拟(以 开头"::{clsid}")的文件夹。无论传递的参数如何(事件标志、锁定;递归/子文件夹始终为假),它都拒绝返回RMDIRRENAMEDIR通知文件夹"c:\users\myname\music"(具有虚拟路径,如"::{this pc clsid}\music"). 这可以修复吗?PIDL 是通过SHCreateItemFromParsingName().

  2. IShellItemImageFactory不返回 HomeGroup 子文件夹的图像(几个图像获取过程之一返回空白纸图标。其他返回错误)。为此,我准备了自定义图像。我只是想知道这个。

标签: shelldelphiwinapidirectory

解决方案


推荐阅读