/// <summary> /// Sends byte[] to a window of another process using API <msdn>SendMessage</msdn>(<msdn>WM_COPYDATA</msdn>). /// More info: <see cref="SendString"/>. /// </summary> public static unsafe LPARAM SendBytes(AWnd w, int dataId, byte[] a, LPARAM wParam = default) { fixed(byte *p = a) { var c = new CopyDataStruct { _dwData = dataId, _cbData = a.Length, _lpData = p }; return(w.Send(Api.WM_COPYDATA, wParam, &c)); } }
/// <summary> /// Sends string to a window of another process using API <msdn>SendMessage</msdn>(<msdn>WM_COPYDATA</msdn>). /// </summary> /// <returns><b>SendMessage</b>'s return value.</returns> /// <param name="w">The window.</param> /// <param name="dataId">Data id. It is <msdn>COPYDATASTRUCT.dwData</msdn>.</param> /// <param name="s">Data. Can contain '\0' characters.</param> /// <param name="wParam">wParam of WM_COPYDATA. Optional.</param> public static LPARAM SendString(AWnd w, int dataId, string s, LPARAM wParam = default) { fixed(char *p = s) { var c = new CopyDataStruct { _dwData = dataId, _cbData = s.Length * 2, _lpData = p }; return(w.Send(Api.WM_COPYDATA, wParam, &c)); } }
/// <summary> /// Sets font. /// </summary> /// <param name="w"></param> /// <param name="font">Native font handle. If default(IntPtr), sets font that is used by most windows and controls on this computer. Usually it is Segoe UI, 9.</param> /// <remarks> /// Sends <msdn>WM_SETFONT</msdn> message. /// </remarks> public static void SetFont(AWnd w, IntPtr font = default) { w.Send(Api.WM_SETFONT, font != default ? font : Util.NativeFont_.RegularCached.Handle); }