gpt4 book ai didi

c++ - 使用 DWORD 属性从 IShellFolder 获取文件/文件夹属性

转载 作者:太空宇宙 更新时间:2023-11-04 12:11:14 24 4
gpt4 key购买 nike

我是 C++ 的新手,特别是 MS C++(用于 Windows 的东西)

我想在文件夹上显示叠加图标。

由于网络上的示例很少,所以我在这方面取得了一些成功。

我正在尝试获取和操作文件/文件夹属性,以便我可以创建一个条件来显示叠加图标。

我很难理解如何从中检索有关文件/文件夹的信息(如果有的话)的 DWORD 内容,我说的是 IShellIconOverlayIdentifier::IsMemberOf方法。

    HRESULT IsMemberOf(
[in] PCWSTR pwszPath,
DWORD dwAttrib
);

我怎么知道它是一个文件夹还是可写的或不是 bla bla ...(来自 dwAttrib)。

它说(IsMemberOf 文档中的 dwAttr)

The object's attributes

DWORD真的包含文件/文件夹的所有属性吗?

如果我必须从 IShellFolder::GetAttributesOf 方法中获取它,那么我该如何实现。

我不再倾向于 Java,所以我希望我只需要做这些叠加的事情。谢谢

最佳答案

IShellIconOverlayIdentifier 由 shell 扩展实现,您通常不直接使用此接口(interface),shell 在其命名空间/IShellFolder 实现的深处调用它。

当你有一个 IShellFolder 接口(interface)和一个子 pidl 时,你可以这样调用它:

SFGAOF icareabout = SFGAO_COMPRESSED|SFGAO_ENCRYPTED;
hr = pShellFolder->GetAttributesOf(1,&childpidl,&icareabout);
//Check hr
if (SFGAO_COMPRESSED&icareabout) ...

如果你只有绝对 pidl,请调用 SHBindToParent首先。

如果您只有常规路径,请调用 SHParseDisplayName , 它可以给你标志(记得释放 pidl)同样的事情可以通过调用 SHGetFileInfo 来实现带有 SHGFI_ATTRIBUTES。

关于c++ - 使用 DWORD 属性从 IShellFolder 获取文件/文件夹属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9720365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com