プログラミング

WSHでWin32APIを呼び出す-その3

2005年6月29日

(←戻る)

 先のVB バージョンのプログラムを順に見てゆき、VBscriptとの互換性を考えてみることにする。

Option Explicit
Type POINTAPI
        x As Long
        y As Long
End Type

 2行目でいきなりつまずいてしまった。『Type...End Type ステートメント』はVBscriptには含まれていない機能である。どのように解決すればよいだろうか。


 『Type...End Type』で定義されたユーザ型をWinAPIで呼び出す時はすべて、参照呼び出しである。ということは、『Type...End Type』で定義したものを同じ構造をメモリの中に構築し、その構造のアドレスを渡せばよいということになる。

 先のサンプルアプリケーション『TestApplication』と同様のものをCで作成し、ブレークポイントで実行を止めてstWndClass(ユーザ定義型:WNDCLASSEX)のメモリ上での構造を見た結果が次である。

WndClass

また、stPaint(ユーザ定義型:PAINTSTRUCT)は次の通り。

stPaint

これらの結果を参考に、同じ構造をバイトアレイにしてメモリ上に構築し、その参照アドレスを与えればよいことになる。その構築については、次回以降に。
(続く)

コメント

コメントはありません

コメント送信