/// <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());
             * }*/
        }
Ejemplo n.º 2
0
        /// <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());
             * }*/
        }