[NTDLL] Allow shimdata to override the process manifest.
[reactos.git] / dll / shellext / stobject / precomp.h
index bd639f1..cefd8ea 100644 (file)
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _STOBJECT_PRECOMP_H_
+#define _STOBJECT_PRECOMP_H_
 
 #define WIN32_NO_STATUS
 #include <stdarg.h>
 
 #include <windef.h>
 #include <winbase.h>
-#include <winreg.h>
-#include <winuser.h>
-#include <wincon.h>
-#include <ddeml.h>
 #include <shlguid_undoc.h>
-#include <shlwapi.h>
 #include <shlobj.h>
-#include <shlobj_undoc.h>
-#include <shlwapi_undoc.h>
-#include <tchar.h>
 #include <strsafe.h>
 #include <atlbase.h>
 #include <atlcom.h>
 #include <atlwin.h>
-
+#include <atlstr.h>
+#include <setupapi.h>
 #include <shellapi.h>
 
 #include <wine/debug.h>
-#include <wine/unicode.h>
+WINE_DEFAULT_DEBUG_CHANNEL(stobject);
 
 #include "resource.h"
 
 extern HINSTANCE g_hInstance;
 
-#define ID_ICON_VOLUME (WM_APP + 0x4CB)
+#define ID_ICON_VOLUME  (WM_APP + 0x4CB)
+#define ID_ICON_HOTPLUG (WM_APP + 0x4CC)
+#define ID_ICON_POWER   (WM_APP + 0x4CD)
+
+#define GET_X_LPARAM(lp) ((int)(short)LOWORD(lp))
+#define GET_Y_LPARAM(lp) ((int)(short)HIWORD(lp))
 
 #include "csystray.h"
 
 typedef HRESULT(STDMETHODCALLTYPE * PFNSTINIT)     (_In_ CSysTray * pSysTray);
 typedef HRESULT(STDMETHODCALLTYPE * PFNSTSHUTDOWN) (_In_ CSysTray * pSysTray);
 typedef HRESULT(STDMETHODCALLTYPE * PFNSTUPDATE)   (_In_ CSysTray * pSysTray);
-typedef HRESULT(STDMETHODCALLTYPE * PFNSTMESSAGE)  (_In_ CSysTray * pSysTray, UINT uMsg, WPARAM wParam, LPARAM lParam);
+typedef HRESULT(STDMETHODCALLTYPE * PFNSTMESSAGE)  (_In_ CSysTray * pSysTray, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &lResult);
 
 struct SysTrayIconHandlers_t
 {
@@ -61,47 +60,20 @@ extern const int g_NumIcons;
 extern HRESULT STDMETHODCALLTYPE Volume_Init(_In_ CSysTray * pSysTray);
 extern HRESULT STDMETHODCALLTYPE Volume_Shutdown(_In_ CSysTray * pSysTray);
 extern HRESULT STDMETHODCALLTYPE Volume_Update(_In_ CSysTray * pSysTray);
-extern HRESULT STDMETHODCALLTYPE Volume_Message(_In_ CSysTray * pSysTray, UINT uMsg, WPARAM wParam, LPARAM lParam);
-
-/* --------------- Utils ------------------------------ */
-
-static __inline ULONG
-Win32DbgPrint(const char *filename, int line, const char *lpFormat, ...)
-{
-    char szMsg[512];
-    char *szMsgStart;
-    const char *fname;
-    va_list vl;
-    ULONG uRet;
-
-    fname = strrchr(filename, '\\');
-    if (fname == NULL)
-    {
-        fname = strrchr(filename, '/');
-    }
-
-    if (fname == NULL)
-        fname = filename;
-    else
-        fname++;
-
-    szMsgStart = szMsg + sprintf(szMsg, "[%10lu] %s:%d: ", GetTickCount(), fname, line);
-
-    va_start(vl, lpFormat);
-    uRet = (ULONG) vsprintf(szMsgStart, lpFormat, vl);
-    va_end(vl);
-
-    OutputDebugStringA(szMsg);
+extern HRESULT STDMETHODCALLTYPE Volume_Message(_In_ CSysTray * pSysTray, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &lResult);
 
-    return uRet;
-}
+extern HRESULT STDMETHODCALLTYPE Hotplug_Init(_In_ CSysTray * pSysTray);
+extern HRESULT STDMETHODCALLTYPE Hotplug_Shutdown(_In_ CSysTray * pSysTray);
+extern HRESULT STDMETHODCALLTYPE Hotplug_Update(_In_ CSysTray * pSysTray);
+extern HRESULT STDMETHODCALLTYPE Hotplug_Message(_In_ CSysTray * pSysTray, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &lResult);
 
-#define DbgPrint(fmt, ...) \
-    Win32DbgPrint(__FILE__, __LINE__, fmt, ##__VA_ARGS__)
+extern HRESULT STDMETHODCALLTYPE Power_Init(_In_ CSysTray * pSysTray);
+extern HRESULT STDMETHODCALLTYPE Power_Shutdown(_In_ CSysTray * pSysTray);
+extern HRESULT STDMETHODCALLTYPE Power_Update(_In_ CSysTray * pSysTray);
+extern HRESULT STDMETHODCALLTYPE Power_Message(_In_ CSysTray * pSysTray, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &lResult);
 
-#if 1
-#define FAILED_UNEXPECTEDLY(hr) (FAILED(hr) && (DbgPrint("Unexpected failure %08x.\n", hr), TRUE))
-#else
-#define FAILED_UNEXPECTEDLY(hr) FAILED(hr)
-#endif
+#define POWER_TIMER_ID   2
+#define VOLUME_TIMER_ID  3
+#define HOTPLUG_TIMER_ID 4
 
+#endif /* _STOBJECT_PRECOMP_H_ */