资源管理器右键菜单和.lnk文件

4
当我在Windows资源管理器中右键单击文件时,对于所有文件,我都可以获取该文件的文件名,但不能获取指向快捷方式的链接文件(.lnk文件)的文件名。
我该如何获取.lnk文件的文件名而不是快捷方式指向的文件名?
我使用以下C++代码:
  #pragma region IShellExtInit

  // Initialize the context menu handler.
  IFACEMETHODIMP FileContextMenuExt::Initialize(
      LPCITEMIDLIST pidlFolder, LPDATAOBJECT pDataObj, HKEY hKeyProgID)
  {
    if (NULL == pDataObj)
    {
        return E_INVALIDARG;
    }


    HRESULT hr = E_FAIL;

    FORMATETC fe = { CF_HDROP, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL };
    STGMEDIUM stm;

    // The pDataObj pointer contains the objects being acted upon. In this 
    // example, we get an HDROP handle for enumerating the selected files and 
    // folders.
    if (SUCCEEDED(pDataObj->GetData(&fe, &stm)))
    {

谢谢您。
1个回答

0
  1. 注册 "*" 和 "lnkfile" 两个类型的处理程序。
  2. 在 IContextMenu.QueryContextMenu 中,如果 uFlags 参数设置了 CMF_VERBSONLY,则立即返回 0。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接