ReactOS 0.4.17-dev-966-gf06eace
csystray.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS system libraries
3 * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4 * PURPOSE: Systray shell service object
5 * COPYRIGHT: Copyright 2014 Robert Naumann <gonzomdx@gmail.com>
6 * Copyright 2014-2015 David Quintana <gigaherz@gmail.com>
7 * Copyright 2017 Shriraj Sawant a.k.a SR13 <sr.official@hotmail.com>
8 */
9
10#pragma once
11
12extern const GUID CLSID_SysTray;
13
14
15typedef CWinTraits <
19
20class CSysTray :
21 public CComCoClass<CSysTray, &CLSID_SysTray>,
22 public CComObjectRootEx<CComMultiThreadModelNoCS>,
23 public CWindowImpl<CSysTray, CWindow, CMessageWndClass>,
25{
26 CComPtr<IOleCommandTarget> pctNetShell;
27
28 // TODO: keep icon handlers here
29
33
39
44
47
49
50public:
51 HRESULT NotifyIcon(INT code, UINT uId, HICON hIcon, LPCWSTR szTip, DWORD dwstate = 0);
52
53 HWND GetHWnd() { return m_hWnd; }
54
55 VOID EnableService(DWORD dwServiceFlag, BOOL bEnable);
56 BOOL IsServiceEnabled(DWORD dwServiceFlag);
57 void ConfigurePollTimer();
58
59 static void RunDll(PCSTR Dll, PCSTR Parameters);
60 static void RunAccessCpl(PCSTR Parameters);
61
62protected:
63 BOOL ProcessWindowMessage(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &lResult, DWORD dwMsgMapID = 0);
64
65public:
66 CSysTray();
67 virtual ~CSysTray();
68
69 // *** IOleCommandTarget methods ***
70 virtual HRESULT STDMETHODCALLTYPE QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds [], OLECMDTEXT *pCmdText);
71 virtual HRESULT STDMETHODCALLTYPE Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut);
72
74
78
80 COM_INTERFACE_ENTRY_IID(IID_IOleCommandTarget, IOleCommandTarget)
82
83};
HWND hWnd
Definition: settings.c:17
#define STDMETHODCALLTYPE
Definition: bdasup.h:9
HRESULT NotifyIcon(INT code, UINT uId, HICON hIcon, LPCWSTR szTip, DWORD dwstate=0)
Definition: csystray.cpp:239
BOOL ProcessWindowMessage(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &lResult, DWORD dwMsgMapID=0)
Definition: csystray.cpp:347
CComPtr< IOleCommandTarget > pctNetShell
Definition: csystray.h:26
VOID GetServicesEnabled()
Definition: csystray.cpp:38
HRESULT SysTrayThreadProc()
Definition: csystray.cpp:285
HRESULT ProcessIconMessage(UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &lResult)
Definition: csystray.cpp:196
static void RunAccessCpl(PCSTR Parameters)
Definition: csystray.cpp:430
CSysTray()
Definition: csystray.cpp:29
HRESULT DestroySysTrayWindow()
Definition: csystray.cpp:315
virtual HRESULT STDMETHODCALLTYPE Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
Definition: csystray.cpp:332
BOOL IsServiceEnabled(DWORD dwServiceFlag)
Definition: csystray.cpp:100
HRESULT InitNetShell()
Definition: csystray.cpp:118
HWND GetHWnd()
Definition: csystray.h:53
UINT wm_SHELLHOOK
Definition: csystray.h:31
DWORD dwServicesEnabled
Definition: csystray.h:30
HRESULT ShutdownIcons()
Definition: csystray.cpp:160
HRESULT UpdateIcons()
Definition: csystray.cpp:180
HRESULT InitIcons()
Definition: csystray.cpp:140
VOID EnableService(DWORD dwServiceFlag, BOOL bEnable)
Definition: csystray.cpp:67
HRESULT CreateSysTrayThread()
Definition: csystray.cpp:303
static void RunDll(PCSTR Dll, PCSTR Parameters)
Definition: csystray.cpp:420
HRESULT SysTrayMessageLoop()
Definition: csystray.cpp:268
UINT wm_DESTROYWINDOW
Definition: csystray.h:32
virtual HRESULT STDMETHODCALLTYPE QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText)
Definition: csystray.cpp:326
HRESULT ShutdownNetShell()
Definition: csystray.cpp:129
virtual ~CSysTray()
Definition: csystray.cpp:34
static DWORD WINAPI s_SysTrayThreadProc(PVOID param)
Definition: csystray.cpp:262
void ConfigurePollTimer()
Definition: csystray.cpp:105
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
const GUID CLSID_SysTray
CWinTraits< WS_POPUP|WS_DLGFRAME|WS_CLIPCHILDREN|WS_CLIPSIBLINGS, WS_EX_LEFT|WS_EX_LTRREADING|WS_EX_RIGHTSCROLLBAR|WS_EX_PALETTEWINDOW > CMessageWndClass
Definition: csystray.h:18
_In_ HANDLE _In_ CONST PDXGKMDT_OPM_GET_INFO_PARAMETERS Parameters
Definition: dispmprt.h:321
#define IDR_SYSTRAY
Definition: resource.h:72
static const WCHAR Dll[]
Definition: register.c:83
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
GLfloat param
Definition: glext.h:5796
unsigned int UINT
Definition: sysinfo.c:13
struct IOleCommandTarget::_tagOLECMDTEXT OLECMDTEXT
struct IOleCommandTarget::_tagOLECMD OLECMD
#define BEGIN_COM_MAP(x)
Definition: atlcom.h:581
#define COM_INTERFACE_ENTRY_IID(iid, x)
Definition: atlcom.h:601
#define DECLARE_PROTECT_FINAL_CONSTRUCT()
Definition: atlcom.h:679
#define DECLARE_NOT_AGGREGATABLE(x)
Definition: atlcom.h:651
#define DECLARE_REGISTRY_RESOURCEID(x)
Definition: atlcom.h:645
#define END_COM_MAP()
Definition: atlcom.h:592
#define DECLARE_WND_CLASS_EX(WndClassName, style, bkgnd)
Definition: atlwin.h:2004
LONG_PTR LPARAM
Definition: minwindef.h:175
LONG_PTR LRESULT
Definition: minwindef.h:176
UINT_PTR WPARAM
Definition: minwindef.h:174
static HICON
Definition: imagelist.c:80
HICON hIcon
Definition: msconfig.c:44
#define WS_POPUP
Definition: pedump.c:616
#define WS_DLGFRAME
Definition: pedump.c:626
#define WS_CLIPSIBLINGS
Definition: pedump.c:618
#define WS_CLIPCHILDREN
Definition: pedump.c:619
#define WS_EX_RIGHTSCROLLBAR
Definition: winuser.h:401
#define WS_EX_PALETTEWINDOW
Definition: winuser.h:399
#define WS_EX_LTRREADING
Definition: winuser.h:393
#define CS_GLOBALCLASS
Definition: winuser.h:660
#define WS_EX_LEFT
Definition: winuser.h:391
#define COLOR_3DFACE
Definition: winuser.h:940
Definition: inflate.c:139
const uint16_t * LPCWSTR
Definition: typedefs.h:57
int32_t INT
Definition: typedefs.h:58
const char * PCSTR
Definition: typedefs.h:52
uint32_t ULONG
Definition: typedefs.h:59
#define _T(x)
Definition: vfdio.h:22
_In_ BOOL bEnable
Definition: winddi.h:3426
#define WINAPI
Definition: msvc.h:6