WindowsAPI

StrokePath

StrokePathで、パスの輪郭を描画する。StrokePath function (wingdi.h) - Win32 apps | Microsoft Docs パスパスはそのままでは描画できないので、こういう方法を取る。輪郭と内側がわかるサイズ32のフォントを生成して選択させる。 EndPathの後に、StrokePa…

StartDoc

印刷関連では、Printing (Documents and Printing) - Win32 apps | Microsoft DocsGDI Print APIとPrint Spooler APIがあるが、最初はGDIのほうから。StartDocで、印刷ジョブを開始する。StartDocA function (wingdi.h) - Win32 apps | Microsoft Docs プリ…

CreateDC

CreateDCは、指定されたデバイスのデバイスコンテキストを生成(というか取得?)する。CreateDCA function (wingdi.h) - Win32 apps | Microsoft Docs ウィンドウ外に描画プリンタのデバイスコンテキストを取得するのによく使うが、ディスプレイのデバイスコン…

PathRemoveFileSpec

PathRemoveFileSpecは、ファイルのパスから、ファイル名とその前の'\'を取り除き、そのファイルの上のフォルダパスに修正する。PathRemoveFileSpecA function (shlwapi.h) - Win32 apps | Microsoft DocsGetModuleFileNameで取得したフルパスから、そのファ…

GetModuleFileName

GetModuleFileNameは、実行ファイル自身のフルパスを取得する。GetModuleFileNameA function (libloaderapi.h) - Win32 apps | Microsoft Docsコンソールアプリケーションで実行ファイル自身のパスを出力してみる。これを実行すると、 tszModulePath = c:\pr…

BeginPath

BeginPathは、パスに対する処理を開始する時に使う。BeginPath function (wingdi.h) - Win32 apps | Microsoft Docs パス画面ではなくパスなので、直接描画されることはなく、パスを描画する命令が実行された時に描画される。通常のTextOutで"ABCDE"を描画後…

GetClipboardData

GetClipboardDataで、クリップボードからデータを取得する。GetClipboardData function (winuser.h) - Win32 apps | Microsoft DocsSetClipboardDataでマルチバイト文字列に変換したので、GetClipboardDataではワイド文字列に戻す必要がある。で、この状態か…

IsClipboardFormatAvailable

IsClipboardFormatAvailableで、クリップボードにテキストなどのデータが残っているかを確認する。IsClipboardFormatAvailable function (winuser.h) - Win32 apps | Microsoft Docsテキスト(CF_TEXT)があるか確認する。エディットコントロールにあいうえお…

SetClipboardData

SetClipboardDataは、クリップボードにデータをセットする。SetClipboardData function (winuser.h) - Win32 apps | Microsoft Docsクリップボードの下準備の後、文字コード変換を挟んでから、ここに来たのは、どうもそのままではうまくクリップボードにセッ…

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に赤い…