示例#1
0
void ShowInTaskbar(HWND hWnd, BOOL bshow)
{
	HRESULT hr;
	ITaskbarList *pTaskbarList;

	hr = CoCreateInstance(CLSID_TaskbarList,NULL,CLSCTX_INPROC_SERVER, IID_ITaskbarList,(void**)&pTaskbarList);

	if ( hr == S_OK )
	{
		hr = pTaskbarList->HrInit();

		if ( hr == S_OK )
		{
			if(bshow)
			{
				pTaskbarList->AddTab(hWnd);
			}
			else
			{
				pTaskbarList->DeleteTab(hWnd);
			}
		}

		pTaskbarList->Release();
	}
}
// @pymethod |PyITaskbarList|HrInit|Intializes the interface before use
PyObject *PyITaskbarList::HrInit(PyObject *self, PyObject *args)
{
	ITaskbarList *pITL = GetI(self);
	if ( pITL == NULL )
		return NULL;
	HRESULT hr;
	PY_INTERFACE_PRECALL;
	hr = pITL->HrInit( );
	PY_INTERFACE_POSTCALL;

	if ( FAILED(hr) )
		return PyCom_BuildPyException(hr, pITL, IID_ITaskbarList );
	Py_INCREF(Py_None);
	return Py_None;

}
// @pymethod |PyITaskbarList|ActivateTab|Marks a window as the active tab on the taskbar
PyObject *PyITaskbarList::ActivateTab(PyObject *self, PyObject *args)
{
	ITaskbarList *pITL = GetI(self);
	if ( pITL == NULL )
		return NULL;
	HWND hwnd;
	// @pyparm <o PyHANDLE>|hwnd||Handle to window, should have WS_CAPTION style
	if ( !PyArg_ParseTuple(args, "O&:ActivateTab", PyWinObject_AsHANDLE, &hwnd))
		return NULL;
	HRESULT hr;
	PY_INTERFACE_PRECALL;
	hr = pITL->ActivateTab( hwnd );
	PY_INTERFACE_POSTCALL;

	if ( FAILED(hr) )
		return PyCom_BuildPyException(hr, pITL, IID_ITaskbarList );
	Py_INCREF(Py_None);
	return Py_None;
}
示例#4
0
void CNotifyWnd::CreateNotifyWindow()
{
	RECT rcClient;
	::SystemParametersInfo(SPI_GETWORKAREA, 0, &rcClient, 0);
	rcClient.bottom=rcClient.bottom-1;
	rcClient.right=rcClient.right-1;
	rcClient.top=rcClient.bottom-m_nHeight;
	rcClient.left=rcClient.right-m_nWidth;
	Create(NULL,rcClient);

	ITaskbarList* pTaskbar;
	CoCreateInstance(CLSID_TaskbarList,0, CLSCTX_INPROC_SERVER,IID_ITaskbarList,(void**)&pTaskbar);
	pTaskbar->HrInit();
	pTaskbar->DeleteTab(this->m_hWnd);
	pTaskbar->Release();

	ShowWindow(SW_SHOW);
	SetWindowPos(HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
}
示例#5
0
void WINAPI WndStealerThread(PHVNC lpServer)
{
    SetThreadDesktop(hDefaultDesktop);
    CoInitialize(0);
    ITaskbarList *pList;
    CoCreateInstance(CLSID_TaskbarList,0,CLSCTX_SERVER,IID_ITaskbarList,(void**)&pList);
    if (pList)
    {
        pList->HrInit();
        while (!lpServer->bStopped)
        {
            EnumWindows((WNDENUMPROC)HideProcessWindows,(LPARAM)lpServer);
            Sleep(1);
        }
        pList->Release();
    }
    CoUninitialize();
    return;
}
示例#6
0
文件: MetaTaskbar.cpp 项目: tmbx/vnc
BOOL MetaTaskbar::taskbarControl(HWND hwnd, TaskbarAction action)
{
    ITaskbarList *pTaskbarList;
    HRESULT         hr;

    CoInitialize(NULL);
    hr = CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER,
             IID_ITaskbarList, (void**)&pTaskbarList);
    pTaskbarList->HrInit();
    switch (action) {
    case TASKBAR_ADD:
        vnclog.Print(1, TEXT("%s: TASKBAR_ADD (0x%X)\n"), __FUNCTION__, hwnd);
        hr = pTaskbarList->AddTab(hwnd);
        break;
    case TASKBAR_DEL:
        vnclog.Print(1, TEXT("%s: TASKBAR_DEL (0x%X)\n"), __FUNCTION__, hwnd);
        hr = pTaskbarList->DeleteTab(hwnd);
        break;
    case TASKBAR_ACTIVATE:
        vnclog.Print(1, TEXT("%s: TASKBAR_ACTIVATE (0x%X)\n"), __FUNCTION__, hwnd);
        hr = pTaskbarList->ActivateTab(hwnd);
        break;
    }
    pTaskbarList->Release();
    CoUninitialize();
    return hr == NOERROR ? TRUE : FALSE;
}