Beispiel #1
0
        public static MessageListenerFilterRegistrationResult Register(Action <WindowMessageEventArgs> callback)
        {
            lock (_registerLock)
            {
                uint message = 0;
                RegisteredListener package = _packages.FirstOrDefault(x => x.TryRegister(callback, out message));

                if (package == null)
                {
                    package = new RegisteredListener();

                    if (!package.TryRegister(callback, out message))
                    {
                        // this should never happen
                        throw new ShellException(LocalizedMessages.MessageListenerFilterUnableToRegister);
                    }

                    _packages.Add(package);
                }

                return(new MessageListenerFilterRegistrationResult(
                           package.Listener.WindowHandle,
                           message));
            }
        }
		public static MessageListenerFilterRegistrationResult Register(Action<WindowMessageEventArgs> callback) {
			lock (_registerLock) {
				uint message = 0;
				var package = _packages.FirstOrDefault(x => x.TryRegister(callback, out message));
				if (package == null) {
					package = new RegisteredListener();
					if (!package.TryRegister(callback, out message)) {   // this should never happen
						throw new ShellException(LocalizedMessages.MessageListenerFilterUnableToRegister);
					}
					_packages.Add(package);
				}

				return new MessageListenerFilterRegistrationResult(
					package.Listener.WindowHandle,
					message);
			}
		}