|
TASKBAR的奥秘(1)
Lu Lin All 把自己的窗口从TASKBAR上干掉! 27 Dec 98 13:58:41 嘿嘿.可让我发现TASKBAR的秘密了:DDD 每个WIN32应用程序一旦创建了窗口,那么他 就会在TASKBAR上显示出来个按钮.要把按钮 干掉,从SDK里不能发现任何有消除的接口. 原来MS在SHELL扩展里又开始保留东西了.足 足8个小时泡在电脑上.终于揭开了秘密.以下 是我整理好后的COM接口: DECLARE_INTERFACE_(ITaskbarList, IUnknown) { STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE; STDMETHOD(ActivateTab)(HWND) PURE; STDMETHOD(AddTab)(HWND) PURE; STDMETHOD(DeleteTab)(HWND) PURE; STDMETHOD(HrInit)(void) PURE; }; typedef ITaskbarList *LPITaskbarList; 那么怎么使用呢?请看: /*-------------------------------------------------- *陆麟写的把自己的WINDOW按钮从TASKBAR上干掉的源程序. *1998.12.27. *欢迎装载.请不要删除任何部分 *------------------------------------------------*/ #include "wnd.h" #include <objbase.h> #include <shlobj.h> DECLARE_INTERFACE_(ITaskbarList, IUnknown) { STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE; STDMETHOD(ActivateTab)(HWND) PURE; STDMETHOD(AddTab)(HWND) PURE; STDMETHOD(DeleteTab)(HWND) PURE; STDMETHOD(HrInit)(void) PURE; };//如果把这段加到SHLOBJ.H里那么以后就不要每次都再抄一遍了. typedef ITaskbarList *LPITaskbarList;//定义个指针.用起来更象在用SDK:) int WINAPI WinMain( HINSTANCE hInstance,HINSTANCE hPrevInstance, LPSTR lpCmdLine,int){ MSG msg; WND *lpWND;//WND负责创建窗口.是我自己写的类.
|