void IWidget.StaticInitializeWidget(Dawsome dawsome) { if (NativeMethods.RegisterGlobalShellHook(dawsome.Handle)) { globalShellHookMessage = NativeMethods.RegisterWindowMessage("GLOBAL_SHELL_HOOK"); if (SystemAndProcessInformation.isAtLeastVista && SystemAndProcessInformation.isRunningElevated) { if (SystemAndProcessInformation.isAtLeast7) { NativeMethods.ChangeWindowMessageFilterEx(dawsome.Handle, globalShellHookMessage, NativeMethods.MSGFLTEx.MSGFLT_ALLOW, IntPtr.Zero); } else { NativeMethods.ChangeWindowMessageFilter(globalShellHookMessage, NativeMethods.MSGFLT.MSGFLT_ADD); } } dawsome.RegisterMessage((int) globalShellHookMessage, OnGlobalShellHookMessage); } }