WindowsAPI

WideCharToMultiByte

WideCharToMultiByteは、Unicode(UTF-16)などのワイド文字列から、ShiftJISなどのマルチバイト文字列に変換する。WideCharToMultiByte function (stringapiset.h) - Win32 apps | Microsoft DocsWideCharToMultiByte.cppで、Saveが選択された時、ID_EDIT1か…

MultiByteToWideChar

MultiByteToWideCharは、ShiftJISなどのマルチバイト文字列から、Unicode(UTF-16)などのワイド文字列に変換する。MultiByteToWideChar function (stringapiset.h) - Win32 apps | Microsoft Docsresource.hで、ID_ITEM_OPEN、ID_ITEM_SAVEを追加。MultiByteT…

EmptyClipboard

EmptyClipboardで、クリップボードを空にする。EmptyClipboard function (winuser.h) - Win32 apps | Microsoft Docsクリップボードを開いたら、空にして、新たにデータを貼り付けるという流れで使う。空にできたら、"EmptyClipboard Success!"を表示。最初…

OpenClipboard

OpenClipboardで、クリップボードを開く。OpenClipboard function (winuser.h) - Win32 apps | Microsoft Docsresource.hで、メニューとエディットコントロール。 OpenClipboard.rcは、"Copy"と"Paste"のメニューアイテム。"Copy"が選択されたら、OpenClipbo…

GlobalSize

GlobalSizeで、ハンドルの指し示すグローバルメモリのサイズを取得できる。GlobalSize function (winbase.h) - Win32 apps | Microsoft Docs場合によっては、GlobalAllocで指定したサイズよりも多く確保されるらしい。前回の固定メモリと移動可能メモリでど…

GlobalLock

GlobalLockで、グローバルメモリをロックし、先頭ポインタを取得する。GlobalLock function (winbase.h) - Win32 apps | Microsoft Docs固定メモリの場合は、ハンドルの値がそのまま先頭ポインタになるので、ハンドルをキャストしてそこにデータをコピーした…

WLAN_NOTIFICATION_CALLBACK

WlanRegisterNotificationで指定するコールバック関数は、関数ポインタWLAN_NOTIFICATION_CALLBACKで定義された形式に基づく。WLAN_NOTIFICATION_CALLBACK (wlanapi.h) - Win32 apps | Microsoft Docsコールバック関数にスキャン完了が来るまで、WlanGetAvai…

WlanScan

WlanScanで、WiFiアクセスポイントをスキャンする。WlanScan function (wlanapi.h) - Win32 apps | Microsoft Docs Native Wifiを使ってみた その1 - GraveDollの備忘録ブログこれで通知が来るかどうか。WlanScanした後に、ちょっと間を空けてから、WlanGet…

WlanRegisterNotification

WlanRegisterNotificationは、WiFiスキャンの結果などの通知を受け取るコールバックを登録する。WlanRegisterNotification function (wlanapi.h) - Win32 apps | Microsoft Docs Native Wifiを使ってみた その1 - GraveDollの備忘録ブログインターフェース…

WlanOpenHandle

WlanOpenHandleは、Native Wifi(WLAN)のハンドルを開く。WlanOpenHandle function (wlanapi.h) - Win32 apps | Microsoft Docs今回はバージョン2(1はXP用、2はVista以降などらしい。)のハンドルを取得する。バージョンとクライアントのハンドルが返ってくる…

PeekNamedPipe

PeekNamedPipeは、パイプからデータを削除せずに取得したり、パイプの情報などを取得できる。PeekNamedPipe function (namedpipeapi.h) - Win32 apps | Microsoft Docs パイプにより標準出力をエディットボックスに取り込む前回、ファイルに子プロセス出力を…

DuplicateHandle

DuplicateHandleは、ハンドルを複製する。DuplicateHandle function (handleapi.h) - Win32 apps | Microsoft Docs同じ入出力先のハンドルを複製して、子プロセスに使ってもらう。 今回は、pingコマンドを子プロセスで実行してもらうのだが、ping.logへの出…

GetCurrentProcess

GetCurrentProcessは、現在のプロセスの擬似ハンドルを取得する。GetCurrentProcess function (processthreadsapi.h) - Win32 apps | Microsoft Docs実際には常に-1が返ってくる。 なぜ疑似ハンドルなのかっていうところについては、プロセスやスレッドの詳…

WlanGetAvailableNetworkList

WlanGetAvailableNetworkListは、利用可能なネットワーク一覧を取得する。WlanGetAvailableNetworkList function (wlanapi.h) - Win32 apps | Microsoft DocsこれでSSID一覧を取得する。WlanEnumInterfacesで無線インターフェース一覧を取得した後に、さらに…

SetWindowRgn

SetWindowRgnを使うとウィンドウの指定のリージョンの部分のみ表示するようになる。 つまりウィンドウを非矩形なリージョンの形にできるということ。SetWindowRgn function (winuser.h) - Win32 apps | Microsoft DocsSetWindowRgnに指定したリージョンはシ…

SelectClipRgn

SelectClipRgnを使うことで、指定のデバイスコンテキストの描画領域を、指定されたリージョンの部分のみにできる。SelectClipRgn function (wingdi.h) - Win32 apps | Microsoft Docs楕円と矩形を結合したリージョンを選択すれば、画像を描画しても結合した…

CombineRgn

CombineRgnは、2つのリージョンを結合する。CombineRgn function (wingdi.h) - Win32 apps | Microsoft DocsWM_CREATEで、第1引数が結合先リージョン、第2引数が1つ目、第3引数が2つ目で、大体は1つ目のリージョンに2つ目のリージョンを結合するパターンであ…

CreateEllipticRgn

CreateEllipticRgnは、楕円形のリージョンを生成する。CreateEllipticRgn function (wingdi.h) - Win32 apps | Microsoft DocsWM_CREATEで、楕円リージョンhRgnと赤いブラシhBrush。 WM_PAINTで、SelectObjectでhBrushを選択して、PaintRgnでhRgnを描画。楕…

FrameRgn

FrameRgnは、リージョンの境界線を指定のブラシで描画する。FrameRgn function (wingdi.h) - Win32 apps | Microsoft Docsブラシ、縦線の太さ、横線の太さを指定できる。今回は、赤いブラシと青いフレーム用ブラシの2種類を用意。 // 画面の描画を要求された…

FillRgn

FillRgnは、指定されたブラシでリージョンを描画する。FillRgn function (wingdi.h) - Win32 apps | Microsoft DocsWM_CREATEで、こちらでも赤いブラシを作成。WM_PAINTで、こちらではFillRgnにhBrushを直接指定。赤いブラシで描画赤いブラシで描画された。S…

PaintRgn

PaintRgnは、指定されたデバイスコンテキストに設定されているブラシやペンでリージョンを描画する。PaintRgn function (wingdi.h) - Win32 apps | Microsoft DocsWM_CREATEで、リージョンとともに、赤いブラシも生成。WM_PAINTは、SelectObjectでhDCに赤い…

Polygon

Polygonは指定された頂点を持つ閉じた多角形を描画する。Polygon function (wingdi.h) - Win32 apps | Microsoft Docs5つの頂点をPOINTの配列ptで指定する。 WM_CREATEで、頂点、そしてペンやブラシをセット。 WM_PAINTで、Polygonでptと頂点の数を指定する…

SetROP2

SetROP2を使うと、背景色の上に描画色を描画する時の、ビットピクセル操作のモードを変更できる。 (こういう処理をラスタオペレーションというらしい。)SetROP2 function (wingdi.h) | Microsoft Docs ラスタオペレーションWM_PAINTで、 // 画面の描画を要求…

CreateHatchBrush

CreateHatchBrushで、模様付きのブラシを作成できる。CreateHatchBrush function (wingdi.h) | Microsoft Docs ブラシを作ろうハッチパターンって言うのね・・・。WM_CREATEで、赤いペンと青い横縞状のハッチブラシを作成。WM_PAINTで、で、それを使って描画…

PolyBezierTo

PolyBezierToで、ベジェ曲線を描画できる。PolyBezierTo function (wingdi.h) | Microsoft Docs ベジェ曲線 ベジェ曲線を手で描いてみる - にせねこメモベジェ曲線の描き方とか理論とかはちょっと難しいので上の記事を参照。 PolyBezierTo.cppにおいて、Wind…

Beep

Beepは、ビープ音を鳴らす。Beep function (utilapiset.h) | Microsoft Docs ビープ音を鳴らす - プログラミングのメモ帳(C/C++/HSP)ドの音は440Hzらしいので、それを流してみる。Win32コンソールアプリケーションWin32コンソールアプリケーションで、空のプ…

Ellipse

Ellipseは、楕円を描画する。Ellipse function (wingdi.h) | Microsoft Docs矩形の、左端、上端、右端、下端、を指定することで、その矩形に内接する楕円を描画する。 Ellipse.cppのWM_PAINTで、Ellipseに矩形情報を渡すだけ。楕円このように楕円というかこ…

PolylineTo

PolylineToは、多角形を描画する。PolylineTo function | Microsoft Docs直角三角形を描画する。 PolylineTo.cppのWM_CREATEで、始点を(50, 50)として、直角三角形を描画するが、始点はMoveToExでセットするため、次の点、そのまた次の点、最後の点(これが始…

RestoreDC

RestoreDCは、デバイスコンテキストの状態を復元する。RestoreDC function | Microsoft DocsSaveDCで取得した正の整数であるIDを指定すると、そのIDを取得した時の状態に戻せるが、負の整数-nを指定すると、現在からn回前の状態に復元することもできる。Rest…

SaveDC

SaveDCは、デバイスコンテキストの状態を保存する。SaveDC function | Microsoft DocsSetTextColorでテキストの色、SelectObjectでペンやブラシなどのGDIオブジェクトとの紐づけなど、デバイスコンテキストの状態は頻繫に変わる。 状態を保存しておけば、切…