风中的刀!

月夜寒光,风中的刀!

My Links

Blog Stats

留言簿(162)

随笔分类

随笔档案

文章档案

相册


搜索

最新评论

阅读排行榜

评论排行榜

用ITaskbarList接口操纵Windows任务栏程序按钮的状态

Step 1: 变量定义

class CXDlg : public CDialog
{
    ......
    public:
        typedef ITaskbarList *LPITaskbarList;
        LPITaskbarList pTaskbar;
    ......
};

Step 2: 初始化 任务栏COM 对象

BOOL CXDlg::OnInitDialog()
{
    ......
    // Initializes the Component Object Model(COM)
    CoInitialize(0);
    // We call below function since we only need to create one object
    CoCreateInstance(
        CLSID_TaskbarList,
        0,
        CLSCTX_INPROC_SERVER,
        IID_ITaskbarList,
        (void**)&pTaskbar
    );
    // Below function will initialize the taskbar list object
    pTaskbar->HrInit();
    ......
}

Step 3: 使用:删除/显示 任务栏程序按钮

void CXDlg::OnBnClickedButtonHide()
{
    pTaskbar->DeleteTab(this->GetSafeHwnd());
}

void CXDlg::OnBnClickedButtonShow()
{
    pTaskbar->AddTab(this->GetSafeHwnd());
}

posted on 2004-06-04 23:37 风中的刀! 阅读(3546) 评论(5)  编辑 收藏

Feedback

# 找不到ITaskbarList 2004-06-27 06:06 枫雁

shlobj.h也包了,但还是说找不到,ITaskbarList,你是怎么做的.

# re: 用ITaskbarList接口操纵Windows任务栏程序按钮的状态 2004-12-03 03:23 涛涛

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;
};

# re: 用ITaskbarList接口操纵Windows任务栏程序按钮的状态 2005-03-30 17:12 ppstay@hotmail.com

你好,谢谢你的代码!
但是有个问题,就是刚开始是可以隐藏任务栏按钮的,不幸的是后来又会出来,就是当调用了一些系统函数以后!入过你能帮我解决,不能感激,我在csdn上面也开了帖子,如果能到那里帮我看一下,不胜感激!http://community.csdn.net/Expert/topic/3822/3822180.xml?temp=.8417169

# re: 用ITaskbarList接口操纵Windows任务栏程序按钮的状态 2006-07-11 10:04 苍穹

为什么执行到pTaskbar->HrInit();会出错?

# re: 用ITaskbarList接口操纵Windows任务栏程序按钮的状态 2008-07-17 12:06 nobody

.....
STDMETHOD(HrInit)(HWND) PURE;
....
pTaskbar->HrInit(*this);


标题  
姓名  
主页
验证码 *
内容   
  登录  使用高级评论  Top
[使用Ctrl+Enter键可以直接提交]