WA_MACROはHSPでAPI関数の呼び出しを簡単に行うためのファイル群です。
・ダウンロード
WA_MACRO Ver1.04 ダウンロード(約1.2MB)
Ver 1.03よりconst.txtの肥大化とWin32APILink.chmが付属したため、ファイルサイズがかなり大きくなってしまいました。
また、使用PCの速度によってはWin32APILink.chmがかなり遅いようです。
AutoSync(自動同期)をoffにしたものを用意しましたので、遅すぎる場合はそちらを試してください。
Win32APILink.chm(AutoSync Off)
・特徴
・具体的なスクリプト
単純なサンプルとしてHello WorldをMessageBoxで表示するスクリプトを見てみます。(これ自体はAPIを使わなくても出来ますが簡単な例として選びました。)
MessageBoxの説明(MSDN Online)
通常の方法だと
#include "llmod.as" #define MB_OK $00000000 mref bmscr,67 msg="Hello World" ttl="HSP" para=bmscr.13 getptr para.1,msg getptr para.2,ttl para.3=MB_OK dllproc "MessageBoxA",para,4,D_USER
いちいち文字列を変数に格納して、さらにそのアドレスを取得するなど、手間がかかります。これがWA_MACROを使うとこうなります。
#include "wam/user32.as" #define MB_OK $00000000 MessageBox PRMHWND,SPTR("Hello World"),SPTR("HSP"),MB_OK
どうでしょうか。ずいぶんとすっきりとして可読性も良くなったと思います。 スクリプトを簡単に説明すると#include "user32.as" でUSER32.DLLの関数が使えるようになります。PRMHWNDとSPTRはウインドウハンドルと文字列へのポインタを表す引数用マクロです。他にも変数へのポインタを表すマクロなどがあります。
このようにWA_MACROを使うと関数呼び出し時の手間を大幅に低減できます。
・履歴
Ver 1.00
Ver 1.01
PRMHWNDなどのマクロを追加
定数検索ツールsearch.exeを追加
lib2asをVer1.01に変更(global指定のオプションを追加)
USER32.asのCharUpper,CharLowerをコメントアウトした
サンプルを一部修正
const.txtの一部で$(16進数)指定が抜けてたのを修正
Ver 1.02
引数個数可変な関数に対応
TRUE,FALSE,NULL,MAX_PATHを標準で定義した
Ver 1.03
以下の新マクロを追加
SETVALM,CALLDLLPROC,CALLPROC,SPTR2,RGB,GetRValue,GetGValue,GetBValue
MSDN LibraryのWin32API情報へのリンク集を追加
PTR()がdllretの内容を変更する問題を修正
オプションマクロファイルを追加
CPUID,RDTSCを標準定義からオプション(CPUID.as)へ変更
・1.04β
・必要環境をHSP Ver2.61以降に変更
・マクロのインストール先をcommonからcommom\wamへ変更
・エラーの報告方法を変更
・引数にシステム変数statが使えない問題を修正
・HSPCLで動作しない問題を修正
・wsptr(),CallProc2など新マクロ追加
・その他細かい修正点多数
・新規マクロの作成をサポート
・1.04β2
・64bit以上の引数マクロに対応
・ヘルプ(WA_MACRO.chm)を同梱
・1.04
・HSPヘルプ(wa_macro.hs)を同梱
・64bit・小数点数演算用命令を追加(calc64.as・calcfl.as)