[NTDLL] Allow shimdata to override the process manifest.
[reactos.git] / dll / shellext / stobject / precomp.h
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_ */