/// <summary> /// Initializes the system tray hooks. /// </summary> public IntPtr InitializeSystray() { return(InteropCalls.InitializeSystray(Interop.NativeMethods.GetSystemMetrics(0), (float)Interop.Shell.DpiScale)); /*IntPtr hInstance = Marshal.GetHINSTANCE(typeof(WindowsHooksWrapper).Module); * * wndProcDelegate = WndProc; * * // create Shell_TrayWnd * * WNDCLASSEX trayClass = new WNDCLASSEX(); * trayClass.cbSize = Marshal.SizeOf(trayClass); * trayClass.lpszClassName = "Shell_TrayWnd"; * trayClass.lpfnWndProc = wndProcDelegate; * trayClass.style = 0x8; * trayClass.hInstance = hInstance; * UInt16 trayClassReg = RegisterClassEx(ref trayClass); * if (trayClassReg == 0) * { * // error * SingletonLogger.Instance.Info(Marshal.GetLastWin32Error()); * } * * IntPtr hWndTray = CreateWindowEx(WindowStylesEx.WS_EX_TOPMOST | WindowStylesEx.WS_EX_TOOLWINDOW, trayClassReg, "", WindowStyles.WS_POPUP, 0, 0, 0, 0, IntPtr.Zero, IntPtr.Zero, hInstance, IntPtr.Zero); * * if(hWndTray == IntPtr.Zero) * { * // error * SingletonLogger.Instance.Info(Marshal.GetLastWin32Error()); * } * * // create TrayNotifyWnd * WNDCLASSEX trayNotifyClass = new WNDCLASSEX(); * trayNotifyClass.cbSize = Marshal.SizeOf(trayNotifyClass); * trayNotifyClass.lpszClassName = "TrayNotifyWnd"; * trayNotifyClass.lpfnWndProc = wndProcDelegate; * trayNotifyClass.style = 0x8; * trayNotifyClass.hInstance = hInstance; * UInt16 trayNotifyClassReg = RegisterClassEx(ref trayNotifyClass); * if (trayNotifyClassReg == 0) * { * // error * SingletonLogger.Instance.Info(Marshal.GetLastWin32Error()); * } * * IntPtr hWndNotify = CreateWindowEx(0, trayNotifyClassReg, null, WindowStyles.WS_CHILD, 0, 0, 0, 0, hWndTray, IntPtr.Zero, hInstance, IntPtr.Zero); * * if (hWndNotify == IntPtr.Zero) * { * // error * SingletonLogger.Instance.Info(Marshal.GetLastWin32Error()); * }*/ }
/// <summary> /// Initializes the system tray hooks. /// </summary> public void InitializeSystray() { InteropCalls.InitializeSystray(); /*IntPtr hInstance = Marshal.GetHINSTANCE(typeof(WindowsHooksWrapper).Module); * * wndProcDelegate = WndProc; * * // create Shell_TrayWnd * * WNDCLASSEX trayClass = new WNDCLASSEX(); * trayClass.cbSize = Marshal.SizeOf(trayClass); * trayClass.lpszClassName = "Shell_TrayWnd"; * trayClass.lpfnWndProc = wndProcDelegate; * trayClass.style = 0x8; * trayClass.hInstance = hInstance; * UInt16 trayClassReg = RegisterClassEx(ref trayClass); * if (trayClassReg == 0) * { * // error * System.Diagnostics.Trace.WriteLine(Marshal.GetLastWin32Error()); * } * * IntPtr hWndTray = CreateWindowEx(WindowStylesEx.WS_EX_TOPMOST | WindowStylesEx.WS_EX_TOOLWINDOW, trayClassReg, "", WindowStyles.WS_POPUP, 0, 0, 0, 0, IntPtr.Zero, IntPtr.Zero, hInstance, IntPtr.Zero); * * if(hWndTray == IntPtr.Zero) * { * // error * System.Diagnostics.Trace.WriteLine(Marshal.GetLastWin32Error()); * } * * // create TrayNotifyWnd * WNDCLASSEX trayNotifyClass = new WNDCLASSEX(); * trayNotifyClass.cbSize = Marshal.SizeOf(trayNotifyClass); * trayNotifyClass.lpszClassName = "TrayNotifyWnd"; * trayNotifyClass.lpfnWndProc = wndProcDelegate; * trayNotifyClass.style = 0x8; * trayNotifyClass.hInstance = hInstance; * UInt16 trayNotifyClassReg = RegisterClassEx(ref trayNotifyClass); * if (trayNotifyClassReg == 0) * { * // error * System.Diagnostics.Trace.WriteLine(Marshal.GetLastWin32Error()); * } * * IntPtr hWndNotify = CreateWindowEx(0, trayNotifyClassReg, null, WindowStyles.WS_CHILD, 0, 0, 0, 0, hWndTray, IntPtr.Zero, hInstance, IntPtr.Zero); * * if (hWndNotify == IntPtr.Zero) * { * // error * System.Diagnostics.Trace.WriteLine(Marshal.GetLastWin32Error()); * }*/ }