/// <summary> /// ウィンドウを作成します。 /// </summary> /// <param name="parameters"></param> /// <returns>作成したウィンドウハンドル。</returns> private IntPtr CreateWindow(WindowSourceParameters parameters) { Contract.Requires <ArgumentNullException>(parameters != null); Contract.Ensures(Contract.Result <IntPtr>() != IntPtr.Zero); var res = RegisterClass(); var hwnd = CreateWindowEx( 0, (IntPtr)res, parameters.WindowName, 0, 0, 0, 0, 0, HWND_MESSAGE, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero); if (hwnd == IntPtr.Zero) { throw new Win32Exception(); } if (parameters.WindowSourceHook != null) { AddHook(hwnd, parameters.WindowSourceHook); } return(hwnd); }
/// <summary> /// <see cref="WindowSource" />クラスの新しいインスタンスを初期化します。 /// </summary> /// <param name="parameters">ウィンドウ作成パラメータ。</param> public WindowSource(WindowSourceParameters parameters) { Contract.Requires <ArgumentNullException>(parameters != null); this.Handle = CreateWindow(parameters); }