- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是 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/
我在快捷方式中使用以下命令在 Windows 资源管理器中打开我的虚拟驱动器。%SystemRoot%\Explorer.exe/e,::{MyExtension CLSID} 虚拟光驱使用IShel
我正在尝试实现一个 shell 命名空间扩展,其唯一目的是覆盖特定文件夹中的缩略图处理程序 (IExtractImage)。 我希望其他一切都与普通文件夹中的一样,我宁愿不必重新实现在 IShellF
我正在尝试 Hook Ishellfolder 中的函数 enumobjects。我这样做是因为我想在资源管理器中显示用户不存在的文件。我成功 Hook 了 FindNextFile 和 FindFi
我使用 Windows shell 枚举控制面板中的项目并在 memo 中添加项目名称,最终发布 IShellFolder 和 PITEMIDLIST 但出现错误。 代码: procedure TFo
我实现了Shell Namespace Extensions在我的申请中 我实现的接口(interface)之一是 IShellFolder 和 IShellFolder2 一切正常,除了当资源管理器
我有一个 Shell 文件夹,它是一个控制面板项。我正在尝试获取相同的 ITEMIDLIST。我有 Shell 文件夹 GUID。 看文档 https://msdn.microsoft.com/en-
我正在尝试创建一个 shell 树控件。我不希望从 IShellFilder::EnumObjects 调用返回的所有项目都显示在树上,因为我需要过滤回收站和控制面板等项目。 我的代码是这样的: IS
我是 java jna API 的新手,我对 Win32 API 方法有疑问。我需要从 Win32 API 获取 IShellFolder 对象,因为我需要文件的 IContextMenu 对象。但是
如果我有一个IShellFolder 接口(interface)指针。我怎样才能获得它的 PIDL? 我可以看到如何枚举它的 child ,我可以看到如何用它来比较任何两个 child 。但是我怎样才
我在我的应用程序中有非常不正常的工作。我正在使用以下代码枚举所有命名空间和一些根命名空间 - 例如 Nethood 工作非常慢 - 加载超过一分钟(!!)这仅在 Win7 上发生,在较旧的系统上加载是
我需要为 VB6 应用程序提供一个函数,它枚举当前用户的打印机。由于列出网络上的所有打印机,内置 VB6 打印机对象在终端服务器上失败。 在 Win7 x64 SP1 上使用 VC2013 Updat
在我正在处理的命名空间扩展项目中接收父窗口句柄让我抓狂。 用例如下: 用户通过windows资源管理器浏览到一个虚拟文件夹 用户执行搜索(上面的搜索框) 我需要在搜索开始前检索搜索框的文本。 我已经在
我有一个命名空间扩展,可以进行网络调用以显示其内容。 当资源管理器想要显示文件夹的内容时,它会在我的实现中调用 EnumObjects。当进行 webcall 时出错,我想将用户返回到我的 NSE 的
我是 C++ 的新手,特别是 MS C++(用于 Windows 的东西) 我想在文件夹上显示叠加图标。 由于网络上的示例很少,所以我在这方面取得了一些成功。 我正在尝试获取和操作文件/文件夹属性,以
我在调用此方法 IShellFolder::GetUIObject 时遇到问题,我不知道如何创建指向指针数组的指针作为此函数的第三个参数。在文档中,该函数的标题是: HRESULT GetUIObje
我很困惑。我想使用函数PathToPidlBind来自 Jedi JCL,我看到他们没有释放 SHGetDesktopFolder 重复的 IShellFolder 干扰使用后。微软文档说:“调用应用
我是一名优秀的程序员,十分优秀!