関数リファレンス


HSP 基本命令

HSP 本体だけで使用できる基本命令です。


プリプロセッサ命令

#cfunc

外部DLL呼び出し関数登録

構文
#cfuncname,funcName,types...
パラメータ
解説

引数の型は無視され、実際の関数の引数が優先されます。

関数と同名のメソッドが呼ばれることになります。

呼び出されるメソッドの引数は int、double、String、ByteString(Shift_JIS文字列)、Operand(変数)、Context(実行コンテキスト)のいずれかでなければいけません。
Operand を引数にとったときは、必ずその次に int で配列インデックスを受け取らなければいけません。 (配列ではないときは 0 が渡されます。)
Context を引数にとったときは HSPLet によって自動的に現在実行されているコンテキストが渡されます。

メソッドの戻り値は void、int、double、String、ByteString、Operand のいずれかでなければいけません。

呼び出されるメソッドが非 static のときは、クラスはインスタンス化できなければいけません。 public で引数の無いコンストラクタか、Context をひとつだけ受け取るコンストラクタが必要です。


#defcfunc

新規関数を登録する

構文
#defcfuncname,params...
パラメータ
解説
引数の型は str/int/double/var/array のみサポートされています。 local などは指定できません。

#deffunc

新規命令を登録する

構文
#deffuncname,params...
パラメータ
解説
引数の型は str/int/double/var/array のみサポートされています。 local などは指定できません。

#func

外部DLL呼び出し命令登録

構文
#funcname,funcName,types...
パラメータ
解説

#cfunc と同様です。


#uselib

外部DLLの指定

構文
#uselibname
パラメータ
解説

指定された DLL と同名のクラスが読み込まれます。 読み込まれるクラス名は、末尾から .dll または .hpi を除いたものになります。 たとえば、winmm.dll を使用すると、 winmm クラスが読み込まれます。

独自の拡張ライブラリクラスを作成したときは、JAR ファイルを lib フォルダの中においてください、 コンパイラが自動的に認識してコンパイル時にチェックがつけられるようになります。


特殊代入命令

mref

特殊なメモリを変数に割り当てる

構文
mrefvariable,memoryID
パラメータ
解説

stat/refstr のみ使用可能です。 関数の引数には使用できませんので、3.0 形式の受け取り方をしてください。


プログラム制御命令

exec

Windowsのファイルを実行する

構文
execfileName,mode,target
パラメータ
解説

HTML ページを表示する目的で使用されます。 第3引数の意味がオリジナルの HSP とは違うため、この命令を直接使用することはお勧めしません。 代わりに letutil.hsp 内に定義されている showPage fileName, target 命令を使用することをお勧めします。


プログラム制御マクロ


基本入出力制御命令


オブジェクト制御命令


画面制御命令

bgscr

ウィンドウIDを初期化

構文
bgscrwindowID,bufferWidth,bufferHeight,mode,left,top,visibleWidth,visibleHeight
パラメータ
解説

パレットモードは使用できません。


buffer

ウィンドウIDを初期化

構文
bufferwindowID,bufferWidth,bufferHeight,mode
パラメータ
解説

パレットモードは使用できません。


font

フォント設定

構文
fontfamily,size,style
パラメータ
解説

アンチエリアス、下線、打ち消し線は mes 命令にのみ使用できます(オブジェクトのフォントには指定できません。)

環境依存を減らすために以下の特殊な定義済みフォント名が使用できます。

Serif
MS P明朝のようなひげつき書体。
SansSerif
MS Pゴシックのようなひげなし書体。
Monospaced
MS ゴシックのような当幅フォント
Dialog
メッセージボックスに使用されるフォント
DialogInput
入力ボックスに使用されるフォント

しかしこれらのフォントはオリジナル HSP では使用できませんので、直接使用することはお勧めしません。 代わりに letutil.hsp 内に定義されている fontSerif 等の汎用的なフォント名を使用することをお勧めします。


gmode

画面コピーモード設定

構文
gmodemode,width,height,alpha
パラメータ
解説

モード7はサポートしていません。


gsel

描画先指定、ウィンドウ最前面、非表示設定

構文
gselwindowID,mode
パラメータ
解説

モード2はサポートされていません、またモード1で必ずアクティブになるとは限りません。


picload

画像ファイルをロード

構文
picloadfileName,mode
パラメータ
解説

BMP、JPEG、GIF、PNGの読み込みをサポートしています。 ICOの読み込みはサポートしていません。


screen

ウィンドウIDを初期化

構文
screenwindowID,bufferWidth,bufferHeight,mode,left,top,visibleWidth,visibleHeight
パラメータ
解説

パレットモード・ツールウィンドウ・深い淵のあるウィンドウは使用できません。


sendmsg

ウィンドウメッセージの送信

構文
sendmsg
解説
以下のメッセージが実装済みです。

title

タイトルバー設定

構文
titletext
パラメータ
解説

アプレットの場合はステータスバーのテキストが変化します。


文字列操作命令


メモリ管理命令


マルチメディア制御命令

mci

MCIにコマンドを送る

構文
mcicommand
パラメータ
解説

以下の命令のみサポートされています。

WAV/AIFF/AU/MIDI/MP3 をサポートしています。 MP3 の再生には付属の jl1.0.jar が必要です。


mmload

サウンドファイル読み込み

構文
mmloadfileName,id,mode
パラメータ
解説

WAV/AIFF/AU/MIDI/MP3 をサポートしています。 MP3 の再生には付属の jl1.0.jar が必要です。


ファイル操作命令

chdir

ディレクトリ移動

構文
chdirdir
パラメータ
解説

移動先のディレクトリが存在しなくてもエラーになりません。


HSPシステム制御命令

logmes

デバッグメッセージ送信

構文
logmestext
パラメータ
解説

メッセージは Java コンソールに出力されます。


基本関数


文字列関数


数学関数


GUI関数

ginfo

構文
ginfotype
パラメータ
解説

タイプ 19、画面のカラーモードは常に 0 を返します。

タイプ 24、oncmd の割り込みウィンドウ ID はサポートされていません。


objinfo

構文
objinfo
解説

ウィンドウハンドル(type==2)のみが利用可能です。


sysinfo

システム情報の取得

構文
sysinfotype
パラメータ
解説

CPUコードは文字列で返ります。

物理メモリサイズは Java ランタイムが使用できるメモリ量を返します。 この値は実行中にも変動する可能性があります。

スワップファイルサイズは 0 とします。


hspsock

hspsock プラグインで使用できる拡張命令です。 hspsockA を実装した後に手を加えて hspsock 互換に修正したので、hspsockA の方が信頼性は高いです。


ソケット通信命令


hspsockA

hspsockA プラグインで使用できる拡張命令です。
DLL 版の hspsockA は PCB さんによって開発されました。 http://www.pcbsoft.net/ より入手可能です。


ソケット通信命令


hspini

hspini プラグインで使用できる拡張命令です。
DLL 版の hspini は K-K さんによって開発されました。 http://www.chichibu.ne.jp/~kawahira/ より入手可能です。


iniファイル操作命令

iniset

使うiniファイルを設定します

構文
inisetfile,section
パラメータ
解説

設定情報はクッキーに保存されます。 ファイル名・セクション名は、クッキー名の頭にプレフィックスとして挿入することで一意性を実現します。

クッキーが利用できないときは stat に 1 が返ります。


winmm

winmm.dll を使用した Windows API です。


マルチメディアタイマー

timeGetTime

ミリ秒単位の時間を取得

構文
timeGetTime
解説

HSPLet 起動時からのミリ秒単位の時刻を取得します。


user32

user32.dll を使用した Windows API です。


メニュー操作命令

AppendMenuA

メニュー項目登録

構文
AppendMenuA
解説

グレイ表示しない無効項目は作成できません。
オーナードロー・ビットマップは使用できません。


DrawMenuBar

メニューバー再描画

構文
DrawMenuBar
解説

何も行いません。


DestroyMenu

メニュー削除

構文
DestroyMenu
解説

現在のバージョンでは対象のメニューだけが削除されます、サブメニューは削除されないので注意してください。