小编Ste*_*ann的帖子

如何在Windows属性系统中创建IconList属性?

当前,我的属性处理程序提供的属性可以显示在Windows资源管理器的type列中String。我的目标是通过(显示)类型Icon的属性扩展处​​理程序,该属性可以作为列添加到Windows资源管理器的详细信息视图中。在此列中,应该为每个文件项目显示一个图标,例如,该图标可以代表几种可能状态中文件的特定状态。

但是,我没有在Windows属性系统的基础上正确地组合创建具有这些特征的属性的必要部分。

我的方法的第一步是在.propdesc文件中为属性指定XML ,然后执行通常的PSRegisterPropertySchema注册过程。这将始终成功运行,并且该属性在Windows属性系统中列出。

<propertyDescription name="myprop.icon" formatID="{c5f47221-1053-4a75-aadc-0bfbac1c3e9c}" propID="444">
    <typeInfo type="???" isInnate="true" isViewable="true"/>
    <labelInfo label="MyProp-Icon"/>
    <displayInfo defaultColumnWidth="25" alignment="Center">
        <drawControl control="IconList"/>
    </displayInfo>
</propertyDescription>
Run Code Online (Sandbox Code Playgroud)

的存在<drawControl>drawControl)与control类型的属性"IconList"的内部<displayInfo>标签让我觉得我的想法可能是可行的。

但是如何type<typeInfo>标签(typeInfo)中设置相应的内容呢?根据概念的不同,control="IconList"它可以是一个整数,作为像图像列表一样的索引。或者它是一个"Buffer""Blob"或者"Stream"表示图像本身?

最后,在GetValue()属性处理程序外壳扩展的方法PROPVARIANT中,必须根据.propdesc文件的属性描述进行初始化:

HRESULT PropertyHandler::GetValue (REFPROPERTYKEY key, PROPVARIANT *pPropVar)
{
    HRESULT hr = ERROR_NOT_FOUND;

    if (key.pid == 444)
    { …
Run Code Online (Sandbox Code Playgroud)

c++ com windows-shell shell-extensions

5
推荐指数
1
解决办法
842
查看次数

如何在 Windows 10 版本 1709 上为文件夹注册预览处理程序?

我最近观察到,我的文件夹预览处理程序未在 Windows 10 版本 1709 上实例化。这令人惊讶,因为该处理程序在从 Windows 7 到 Windows 10 版本 1607 运行的系统上都能完美运行。

预览处理程序以标准化方式在ProgID 下注册Directory

HKEY_CLASSES_ROOT
    Directory
        shellex
            {8895b1c6-b41f-4c1c-a562-0d564250836f}
                (Default) = [REG_SZ] {1F176730-9812-47D8-8163-35D7C1CA0FBF}
Run Code Online (Sandbox Code Playgroud)

可以通过监视 Windows 资源管理器的注册表访问来跟踪工作系统和非工作系统之间的差异。当在 1607 系统上请求预览文件夹时,进程监视器会生成预期的输出:

在此输入图像描述

另一方面,在 1709 系统上,该HKEY_CLASSES_ROOT\Directory键下根本没有注册表访问权限。这就是为什么我怀疑不同的行为(不幸的是)与我的处理程序代码没有任何关系,并且对文件夹的预览处理程序支持可能已在最近的 Windows 版本中删除。

我还使用ProgID Folder进行了测试,而不是Directory没有成功,并验证了我的预览处理程序通常会实例化,至少在文件上,通过在AllFileSystemObjects.

有人有在最新 Windows 版本上运行文件夹预览处理程序的经验吗?

c++ com windows-shell shell-extensions

5
推荐指数
0
解决办法
1053
查看次数

标签 统计

c++ ×2

com ×2

shell-extensions ×2

windows-shell ×2