xref: /reactos/dll/shellext/stobject/precomp.h (revision 69931a4a)
1 #ifndef _STOBJECT_PRECOMP_H_
2 #define _STOBJECT_PRECOMP_H_
3 
4 #define WIN32_NO_STATUS
5 #include <stdarg.h>
6 #include <tchar.h>
7 
8 #define COBJMACROS
9 #define WIN32_NO_STATUS
10 #define _INC_WINDOWS
11 #define COM_NO_WINDOWS_H
12 #define NTOS_MODE_USER
13 
14 #include <windef.h>
15 #include <winbase.h>
16 #include <shlguid_undoc.h>
17 #include <shlobj.h>
18 #include <strsafe.h>
19 #include <atlbase.h>
20 #include <atlcom.h>
21 #include <atlwin.h>
22 #include <atlstr.h>
23 #include <setupapi.h>
24 #include <shellapi.h>
25 
26 #include <wine/debug.h>
27 WINE_DEFAULT_DEBUG_CHANNEL(stobject);
28 
29 #include "resource.h"
30 
31 extern HINSTANCE g_hInstance;
32 
33 #define ID_ICON_VOLUME  (WM_APP + 0x4CB)
34 #define ID_ICON_HOTPLUG (WM_APP + 0x4CC)
35 #define ID_ICON_POWER   (WM_APP + 0x4CD)
36 #define ID_ICON_MOUSE   (WM_APP + 0x4CE)
37 
38 #define POWER_SERVICE_FLAG    0x00000001
39 #define HOTPLUG_SERVICE_FLAG  0x00000002
40 #define VOLUME_SERVICE_FLAG   0x00000004
41 
42 #include "csystray.h"
43 
44 typedef HRESULT(STDMETHODCALLTYPE * PFNSTINIT)     (_In_ CSysTray * pSysTray);
45 typedef HRESULT(STDMETHODCALLTYPE * PFNSTSHUTDOWN) (_In_ CSysTray * pSysTray);
46 typedef HRESULT(STDMETHODCALLTYPE * PFNSTUPDATE)   (_In_ CSysTray * pSysTray);
47 typedef HRESULT(STDMETHODCALLTYPE * PFNSTMESSAGE)  (_In_ CSysTray * pSysTray, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &lResult);
48 
49 struct SysTrayIconHandlers_t
50 {
51     DWORD            dwServiceFlag;
52     PFNSTINIT        pfnInit;
53     PFNSTSHUTDOWN    pfnShutdown;
54     PFNSTUPDATE      pfnUpdate;
55     PFNSTMESSAGE     pfnMessage;
56 };
57 
58 extern SysTrayIconHandlers_t g_IconHandlers[];
59 extern const int g_NumIcons;
60 
61 /* --------------- Icon callbacks ------------------------------ */
62 
63 extern HRESULT STDMETHODCALLTYPE Volume_Init(_In_ CSysTray * pSysTray);
64 extern HRESULT STDMETHODCALLTYPE Volume_Shutdown(_In_ CSysTray * pSysTray);
65 extern HRESULT STDMETHODCALLTYPE Volume_Update(_In_ CSysTray * pSysTray);
66 extern HRESULT STDMETHODCALLTYPE Volume_Message(_In_ CSysTray * pSysTray, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &lResult);
67 
68 extern HRESULT STDMETHODCALLTYPE Hotplug_Init(_In_ CSysTray * pSysTray);
69 extern HRESULT STDMETHODCALLTYPE Hotplug_Shutdown(_In_ CSysTray * pSysTray);
70 extern HRESULT STDMETHODCALLTYPE Hotplug_Update(_In_ CSysTray * pSysTray);
71 extern HRESULT STDMETHODCALLTYPE Hotplug_Message(_In_ CSysTray * pSysTray, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &lResult);
72 
73 extern HRESULT STDMETHODCALLTYPE Power_Init(_In_ CSysTray * pSysTray);
74 extern HRESULT STDMETHODCALLTYPE Power_Shutdown(_In_ CSysTray * pSysTray);
75 extern HRESULT STDMETHODCALLTYPE Power_Update(_In_ CSysTray * pSysTray);
76 extern HRESULT STDMETHODCALLTYPE Power_Message(_In_ CSysTray * pSysTray, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &lResult);
77 
78 extern HRESULT STDMETHODCALLTYPE MouseKeys_Init(_In_ CSysTray * pSysTray);
79 extern HRESULT STDMETHODCALLTYPE MouseKeys_Shutdown(_In_ CSysTray * pSysTray);
80 extern HRESULT STDMETHODCALLTYPE MouseKeys_Update(_In_ CSysTray * pSysTray);
81 
82 
83 #define POWER_TIMER_ID   2
84 #define VOLUME_TIMER_ID  3
85 #define HOTPLUG_TIMER_ID 4
86 #define HOTPLUG_DEVICE_TIMER_ID 5
87 
88 #endif /* _STOBJECT_PRECOMP_H_ */
89