如何以编程方式显示文件的shell提示(在资源管理器中悬停文件时出现的文本)

时间:2013-08-07 07:04:26

标签: windows winapi windows-shell

这就是我想要的:

enter image description here

我知道可以获得,因为Total Commander显示完全相同的信息,尽管在不同风格的窗口中。这让我觉得必须有一种方法可以查询任何给定文件的文本。

1 个答案:

答案 0 :(得分:3)

IQueryInfo界面就是您想要的。简单地说(仅限伪代码,抱歉):

PCUITEMID_CHILD pidl = <PIDL of item in question>
IShellFolder* psf = <IShellFolder parent folder of item in question>

IQueryInfo* pqi;
if (SUCCEEDED(psf->GetUIObjectOf(hWnd, 1, &pidl, 0, &pqi)))
{
    LPWSTR lpszTip;
    if (SUCCEEDED(pqi->GetInfoTip(0, &lpszTip)) && lpszTip)
    {
        // do something with the tip, and then free it
        CoTaskMemFree(lpszTip); 
    }
}

当您拥有文本时,您可以以任何您喜欢的方式显示它。