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