System.Windows.Forms.XplatUIX11.SendMessage C# (CSharp) Method

SendMessage() private method

private SendMessage ( IntPtr hwnd, Msg message, IntPtr wParam, IntPtr lParam ) : IntPtr
hwnd IntPtr
message Msg
wParam IntPtr
lParam IntPtr
return IntPtr
		internal override IntPtr SendMessage (IntPtr hwnd, Msg message, IntPtr wParam, IntPtr lParam)
		{
			Hwnd	h;
			h = Hwnd.ObjectFromHandle(hwnd);

			if (h != null && h.queue != ThreadQueue (Thread.CurrentThread)) {
				AsyncMethodResult	result;
				AsyncMethodData		data;

				result = new AsyncMethodResult ();
				data = new AsyncMethodData ();

				data.Handle = hwnd;
				data.Method = new WndProcDelegate (NativeWindow.WndProc);
				data.Args = new object[] { hwnd, message, wParam, lParam };
				data.Result = result;
				
				SendAsyncMethod (data);
				#if DriverDebug || DriverDebugThreads
				Console.WriteLine ("Sending {0} message across.", message);
				#endif

				return IntPtr.Zero;
			}
			string key = hwnd + ":" + message;
			if (messageHold[key] != null)
				messageHold[key] = ((int)messageHold[key]) - 1;
			return NativeWindow.WndProc(hwnd, message, wParam, lParam);
		}
XplatUIX11