xref: /reactos/dll/shellext/stobject/precomp.h (revision 0622ce17)
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 
37 #define GET_X_LPARAM(lp) ((int)(short)LOWORD(lp))
38 #define GET_Y_LPARAM(lp) ((int)(short)HIWORD(lp))
39 
40 #include "csystray.h"
41 
42 typedef HRESULT(STDMETHODCALLTYPE * PFNSTINIT)     (_In_ CSysTray * pSysTray);
43 typedef HRESULT(STDMETHODCALLTYPE * PFNSTSHUTDOWN) (_In_ CSysTray * pSysTray);
44 typedef HRESULT(STDMETHODCALLTYPE * PFNSTUPDATE)   (_In_ CSysTray * pSysTray);
45 typedef HRESULT(STDMETHODCALLTYPE * PFNSTMESSAGE)  (_In_ CSysTray * pSysTray, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &lResult);
46 
47 struct SysTrayIconHandlers_t
48 {
49     PFNSTINIT        pfnInit;
50     PFNSTSHUTDOWN    pfnShutdown;
51     PFNSTUPDATE      pfnUpdate;
52     PFNSTMESSAGE     pfnMessage;
53 };
54 
55 extern SysTrayIconHandlers_t g_IconHandlers[];
56 extern const int g_NumIcons;
57 
58 /* --------------- Icon callbacks ------------------------------ */
59 
60 extern HRESULT STDMETHODCALLTYPE Volume_Init(_In_ CSysTray * pSysTray);
61 extern HRESULT STDMETHODCALLTYPE Volume_Shutdown(_In_ CSysTray * pSysTray);
62 extern HRESULT STDMETHODCALLTYPE Volume_Update(_In_ CSysTray * pSysTray);
63 extern HRESULT STDMETHODCALLTYPE Volume_Message(_In_ CSysTray * pSysTray, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &lResult);
64 
65 extern HRESULT STDMETHODCALLTYPE Hotplug_Init(_In_ CSysTray * pSysTray);
66 extern HRESULT STDMETHODCALLTYPE Hotplug_Shutdown(_In_ CSysTray * pSysTray);
67 extern HRESULT STDMETHODCALLTYPE Hotplug_Update(_In_ CSysTray * pSysTray);
68 extern HRESULT STDMETHODCALLTYPE Hotplug_Message(_In_ CSysTray * pSysTray, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &lResult);
69 
70 extern HRESULT STDMETHODCALLTYPE Power_Init(_In_ CSysTray * pSysTray);
71 extern HRESULT STDMETHODCALLTYPE Power_Shutdown(_In_ CSysTray * pSysTray);
72 extern HRESULT STDMETHODCALLTYPE Power_Update(_In_ CSysTray * pSysTray);
73 extern HRESULT STDMETHODCALLTYPE Power_Message(_In_ CSysTray * pSysTray, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &lResult);
74 
75 #define POWER_TIMER_ID   2
76 #define VOLUME_TIMER_ID  3
77 #define HOTPLUG_TIMER_ID 4
78 
79 #endif /* _STOBJECT_PRECOMP_H_ */
80