(C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示

简介: 原文 (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢~)   接上一节:(C#)Windows Shell 外壳编程系列8 - 同后缀名不同图标?   QueryInfo扩展 活动桌面引入一项新特性,当你在某些特定对象上旋停鼠标时,工具提示将显示它们的描述。

原文 (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示

(本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢~)

 

接上一节:(C#)Windows Shell 外壳编程系列8 - 同后缀名不同图标?

 

QueryInfo扩展 
活动桌面引入一项新特性,当你在某些特定对象上旋停鼠标时,工具提示将显示它们的描述。我们可以使用 QueryInfo 扩展为Shell中的其它对象提供自定义的工具提示。如下图:



事实上,这个功能实现比前两个 Shell 扩展更简单,它仅仅是实现 IQueryInfo 接口:

 


[ComImport(), ComVisible(true), InterfaceType(ComInterfaceType.InterfaceIsIUnknown), GuidAttribute("00021500-0000-0000-c000-000000000046")]
public interface IQueryInfo
{
    [PreserveSig]
    
uint GetInfoTip(uint dwFlags, out IntPtr pszInfoTip);

    [PreserveSig]
    
uint GetInfoFlags(out uint dwFlags);

 

IQueryInfo 接口只包含两个函数,其中 GetInfoFlags 目前还不被支持并且必须返回 0。

GetInfoTip() 让我们返回工具提示文本 字符串。其参数:

dwFlags 当前并不被使用。

pszInfoTip 是个Unicode 字符串指针变量的指针,我们要将其赋值为我们所分配的字符串缓冲区的指针。

 

还记得之前使用 IPersistFile 接口获取单个文件路径保存在 szFileName 变量中吗?现在也可以使用:


public uint GetInfoTip(uint dwFlags, out IntPtr pszInfoTip)
{
    StreamReader sr 
= new StreamReader(szFileName, Encoding.GetEncoding("gb2312"));
    
string text = sr.ReadToEnd();
    sr.Close();

    
if (text.Length > 256)
    {
        text 
= text.Substring(0256+ "";
    }

    
string tip = "------------- 内容预览 -------------\r\n\r\n" + text;


    pszInfoTip 
= Marshal.StringToCoTaskMemUni(tip);

    
return S_OK;

 

 

代码:http://files.cnblogs.com/lemony/MyContextMenu.rar

 

这一章似乎过于简单。下一章将简述如何使用 IShellPropSheetExt 接口为文件/文件夹增加属性页,如下:

目录
相关文章
|
1月前
|
存储 算法 Shell
【Shell 命令集合 扩展命令】Linux cksum 命令使用教程
【Shell 命令集合 扩展命令】Linux cksum 命令使用教程
31 0
|
1月前
|
存储 Unix Linux
【Shell 命令集合 扩展命令】Linux chgrp命令使用教程
【Shell 命令集合 扩展命令】Linux chgrp命令使用教程
34 1
|
1月前
|
存储 Shell Linux
【Shell 命令集合 扩展命令】Linux chattr命令使用教程
【Shell 命令集合 扩展命令】Linux chattr命令使用教程
32 1
|
1月前
|
Java 数据库 C#
C#winforms实现windows窗体人脸识别
C#winforms实现windows窗体人脸识别
30 0
|
1月前
|
Windows
Windows 命令提示符(CMD)操作(七):扩展命令和功能
Windows 命令提示符(CMD)操作(七):扩展命令和功能
50 0
|
1月前
|
存储 安全 Shell
【Shell 命令集合 文件管理】Linux显示和修改文件或目录的扩展属性 lsattr命令使用教程
【Shell 命令集合 文件管理】Linux显示和修改文件或目录的扩展属性 lsattr命令使用教程
43 0
|
7天前
|
监控 Shell 开发工具
Shell编程
Shell编程
|
26天前
|
存储 Java Shell
bigdata-04-shell编程基础
bigdata-04-shell编程基础
12 0
|
29天前
|
Shell Linux C++
【Shell 编程设计】 编写自己的清理后台的Shell脚本
【Shell 编程设计】 编写自己的清理后台的Shell脚本
30 1
|
29天前
|
存储 Shell 数据安全/隐私保护
【Shell 编程指南】Shell read命令 (从标准输入读取数值)
【Shell 编程指南】Shell read命令 (从标准输入读取数值)
23 0