public void RunTask(uint taskID, COPYDATASTRUCT cds) { foreach (TaskBrowser browser in this._taskBrowsers) { if (browser.IsEmptyWindow()) { IntPtr mainWindowHandle = browser.GetMainWindowHandle(); if (mainWindowHandle != IntPtr.Zero) { browser.RunTask(taskID); WindowUtil.SendMessage(mainWindowHandle, 0x4a, 0, ref cds); } } } }
public static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, ref COPYDATASTRUCT lParam);
protected override void DefWndProc(ref Message m) { if (m.Msg == (int)WindowsMessages.WM_COPYDATA) { System.Type cls = new COPYDATASTRUCT().GetType(); COPYDATASTRUCT lParam = (COPYDATASTRUCT)m.GetLParam(cls); this.ParseMessage((int)lParam.dwData, ref lParam.lpData); } else { base.DefWndProc(ref m); } }