|
马上加入TC
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 sam7894604 于 2016-3-27 13:50 编辑
结构体与 __thiscall 的应用之如何使用 Win32 API 达成任务栏图标隐藏 & 显示之二。
- 必看说明
前几天我开源了一个 【鬼玺开源】TC5.0 Win32 API - 任务栏图标隐藏 & 显示 - Part 1
帖子内我说明了另有第二种方法可以达成相同目标,调用系统的 ITaskbarList 接口方法,也可以完美隐藏 & 显示任务栏图标
但因为 TC 本身的限制,才会铺陈了一帖 【鬼玺开源】TC5.0 - Com 方法调用约定之 __thiscall 实现
作为本帖的前导科普,强烈建议使用前先阅读上述帖子
- ITaskbarList 是什么?
具体可查询 MSDN 资料(ITaskbarList interface)
简单来说是 Windows 系统提供的任务栏控制接口,通过该接口可以完整操控任务栏上的功能
本次开源仅写出 ITaskbarList 接口方法,另有 ITaskbarList2、ITaskbarList3、ITaskbarList4 接口,都是基于 ITaskbarList 扩展出去的类
用于提供高版本 Windows 系统的任务栏复杂操作,有兴趣的朋友可以研究看看!
- ITaskbarList 优势?
因为是系统提供的接口,基本上是完美无错
而且可以轻松控制外部窗口的任务栏图标显示 & 隐藏,是其它方法不容易达成的效果!
- ITaskbarList 怎么声明?
因为TC 本身的限制,必须手动将所有方法都先声明完毕,具体可看开源项目的 GX_Com_ITaskBarList.t 文件
至于成员函数的索引值(index) 获取方法,有些可以透过工具查询,而本次的 ITaskBarList 接口只需要查询 Shobjidl.h 文件即可
百度或谷歌及可获得如下代码:
- #define INTERFACE ITaskbarList
- DECLARE_INTERFACE_(ITaskbarList, IUnknown)
- {
- STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; //index = 0
- STDMETHOD_(ULONG,AddRef)(THIS) PURE; //index = 1
- STDMETHOD_(ULONG,Release)(THIS) PURE; //index = 2
- STDMETHOD(HrInit)(THIS) PURE; //index = 3
- STDMETHOD(AddTab)(THIS_ HWND) PURE; //index = 4
- STDMETHOD(DeleteTab)(THIS_ HWND) PURE; //index = 5
- STDMETHOD(ActivateTab)(THIS_ HWND) PURE; //index = 6
- STDMETHOD(SetActiveAlt)(THIS_ HWND) PURE; //index = 7
- };
- #undef INTERFACE
- typedef ITaskbarList *LPTASKBARLIST;
复制代码
那么从 QueryInterface 开始按顺序及是 0 ~ 7,即可轻松写出 TC 可调用的 ITaskBarList 接口
- 截图
- 项目下载:
如果本帖对您有所帮助,请给与评分鼓励! |
评分
-
查看全部评分
|