ActiveBasic ヘルプ ライブラリ

 ActiveBasic

→著作権情報

このヘルプライブラリは言語仕様の解説に重点を置いています。詳細情報を閲覧する場合は、左側メニューまたはキーワード検索からお調べください。

プログラミングの始め方や過程についてのチュートリアル的な解説は、下記のWebサイトをご覧ください。

Win32プログラミング講座

ActiveBasicに初めて触れる方、プログラミングをすること自体が始めてだという方はこのWebサイトをお勧めします。この講座は、言語の基本知識の解説を重点的に行い、様々なWindowsアプリケーションの作成方法をサンプルプログラムを通して解説しています。

DirectXプログラミング講座

DirectXプログラミングの進め方を丁寧に解説しています。

© 2006 Discoversoft.


プロジェクト エディタ

ActiveBasicでプログラミングを行うには、付属のプロジェクトエディタ（ProjectEditor.exe）を使います。

単体ファイルでの開発

小規模プログラムを作る際は、1つのソースファイル（*.abp）を作成し、コンパイルを行います。編集、コンパイル、デバッグの一連のプログラミング作業を、1つのファイルで行うことができます。

作成方法

メニューの「ファイル」→「新規作成」をクリックし、「Basicプログラム」を選択してOKボタンをクリックします。表示されたコーディング画面でプログラムコードを入力し、メニューの「ベーシック」→「デバッグ実行」をクリックします。希望どおりにプログラムが処理されたら、メニューの「ベーシック」→「リリースコンパイル」をクリックし、実行ファイルを生成します。

Basicプログラム（*.abp）を保存すれば、次回から継続して開発作業を行えます。

プロジェクトでの開発

Windowsアプリケーション、DirectXアプリケーション、その他大規模プログラムを作る際は、複数のソースファイルを1つのプロジェクトとして管理する必要があります。

プロジェクトの作成方法

メニューの「ファイル」→「新規作成」をクリックします。「新規作成」ダイアログで "プロジェクト" を選択し、「作成」ボタンをクリックします。この後は画面の説明にしたがってプロジェクトを設定していきます。

扱う要素

プロジェクトでは主にファイル、プロシージャ、マテリアルを管理します。プロジェクト内のファイルは開発者が自由に追加、削除、編集することができます。また、プロジェクト内のファイルに含まれるすべてのプロシージャを表示、参照することができます。マテリアルとはRADツールでウィンドウをデザインする際に必要な要素（ウィンドウやメニューなど）のことです。マテリアルを参照することでRADウィンドウを開くことができます。


コード エディタのキー ショートカット一覧

 コード エディタのキーボード ショートカット一覧

ProjectEditorのコード エディタでは、以下のキーボード ショートカットから機能を呼び出すことができます。

説明 | ショートカット キー
ヘルプの表示 | F1
デバッグ実行 | F2
デバッグ コンパイル | F4
リリース コンパイル | F7
元に戻す | Ctrl + Z
やり直し | Ctrl + Y
切り取り | Ctrl + X
コピー | Ctrl + C
貼り付け | Ctrl + V
検索 | Ctrl + F
置換 | Ctrl + H
行頭に移動する | Home
 | Ctrl + ←
行末に移動する | End
次の行の行頭に移動する | Ctrl + →
ファイルの先頭に移動する | Ctrl + Home
ファイルの末端に移動する | Ctrl + End
インデントを追加する | Tab
インデントを下げる | Shift + Tab


行番号について

ActiveBasicは行番号あり、行番号なしのソースコードに対応しています。1つのソースコード内に行番号のある行、ない行を混ぜ合わせることも可能です。

行番号を利用することによるメリットは現在の開発環境においてあまり多くないばかりか、デメリットのほうが目立ちます。ActiveBasicは過去のプログラム資産の活用などで利用せざるをえない状況を除き、行番号なしのコーディングをお勧めします。

N88BASICと同様、行番号の後にスペース、またはタブで空白を指定し、コマンドを記述して下さい。行番号を参照できるのは、Goto、GoSubなどのジャンプ命令のみです。他の用途では使用されません。行番号が重ならない、またはジャンプ命令で行番号を利用しない場合は、行番号が省略されたプログラムと記述されたプログラムを混合することが可能です。


コードの改行について

Basic言語では、改行は命令の区切り文字となります。特に理由がない限り、1つの命令内で改行を行うことはできません。しかし、1つの命令がどうしても長くなってしまったときなど、例外的に改行を認める方法があります。

アンダーバー(_)による改行

終端文字にアンダーバー(_)をつけて改行を行うと、その行と次の行を1つの命令として解釈されます。例えば、下記の2つの記述例は全く同一の動作を行います。

'改行をしないとき
Print a+b+c+d+e

'改行をするとき
Print a+_
    b+_
    c+_
    d+_
    e

パラメータ同士の改行

カッコ "( )"、"[ ]" の中に記述するパラメータはパラメータ単位で改行を行うことができます。改行が可能な場合の詳しい状況は下記のとおりです。空白文字、タブ文字、注釈文は無視されます。

  • カッコの始まり記号 "("、"[" を行の終端文字にするとき
  • パラメータを区切るためのカンマ "," を行の終端文字にするとき
  • 最終パラメータの行。次の行に閉じカッコ ")"、"]" があるとき

例えば、下記の2つの記述例は全く同一の動作を行います。

'改行をしないとき
MessageBox(0, "メッセージ", "タイトル", MB_OK)

'改行をするとき
MessageBox(
        0,
        "メッセージ",
        "タイトル",
        MB_OK
    )


コメント（注釈文）

ソースコードには、下に紹介する手法でコメントを挿入できます。コメントアウトされた文字列は、処理過程に一切影響を及ぼさないため、注釈文として活用できます。

行単位での注釈

アポストロフィー(')を指定します。改行までが注釈文となります。

'注釈文1
'注釈文2
'注釈文3

Print "test"   'コマンド行の最後尾もコメントアウトできます。

複数行に渡るコメント

/* ～ */ で囲まれた範囲の文字列は、すべて注釈と見なされます。複数行に渡るコメントアウトも可能です。

/* 注釈文1
   注釈文2
   注釈文3 */

Print /*コマンド行の途中もコメントアウトできます。*/ "test"

備考

"/*" 及び "*/" は、ネスト構造ではありません。コンパイラは、バッファ中から "/*" を識別すると、"*/" が現れるまでサーチを行います。よって、"/*" と "*/" の間に "/*" や "'" などの注釈記号が含まれていたとしても、それらはコメントアウトの対象と判断されます。


 変数

変数とはデータを記憶するための箱のようなものです。変数はメモリ上に確保され、その内容をプログラムから参照 / 変更することができます。

識別子（変数の名前）のきまり

識別子とは変数や関数などを見分けるための名前のことをいいます。識別子の先頭文字はアルファベット（A～Z、a～z）、またはアンダースコア（_）である必要があります。先頭文字以外に使用できる文字のは英数字（A～Z、a～z、0～9）、アンダースコア（_）、型宣言文字（%&!#$）です。

データ型について

データ型とは整数、実数、文字、文字列など、変数に格納するためのデータの種類のことをいいます。

データ型にはコンパイラに内蔵されている基本型とプログラマーが定義するクラス（構造体）が存在します。クラスはClass ～ End Classステートメント、構造体はType ～ End Typeステートメントで定義することができます。

変数を宣言する方法

変数を利用して演算を行う場合、まずは変数を宣言しなければなりません。「変数を宣言する」ということは、変数用のメモリを確保し、それに対応する識別子をコンパイラが識別できるように登録する動作のことを言います。変数の宣言はDimステートメントを使って行います。

基本型


 ポインタ

ポインタとは

一般的に、変数などのアドレスを示す32ビット値のことをポインタと呼びます。

ポインタ変数の型

以下に示すようなポインタ型は、Dim命令語などで利用することができます。

型 | 説明
VoidPtr | 型が不明なデータを示す32ビット値
DoublePtr | Double型データを示す32ビット値
SinglePtr | Single型データを示す32ビット値
DWordPtr | DWord型データを示す32ビット値
WordPtr | Word型データを示す32ビット値
BytePtr | Byte型データを示す32ビット値

変数のポインタを取得するには

VarPtr関数を利用すると、変数（構造体や配列を含む）のポインタを取得することができます。

ポインタが示すアドレスのデータを参照するには

以下の関数を利用することで、ポインタが示すアドレスのデータを参照することができます。

関数 | 説明
GetDouble関数 | ポインタが示すDouble型データを返します。
GetSingle関数 | ポインタが示すSingle型データを返します。
GetDWord関数 | ポインタが示すDWord型データを返します。
GetWord関数 | ポインタが示すWord型データを返します。
GetByte関数 | ポインタが示すByte型データを返します。

ポインタが示すアドレスのデータを書き換えるには

以下の命令語を利用することで、ポインタが示すアドレスのデータを書き換えることができます。

命令語 | 説明
SetDouble命令語 | ポインタが示すDouble型データを書き換えます。
SetSingle命令語 | ポインタが示すSingle型データを書き換えます。
SetDWord命令語 | ポインタが示すDWord型データを書き換えます。
SetWord命令語 | ポインタが示すWord型データを書き換えます。
SetByte命令語 | ポインタが示すByte型データを書き換えます。

ポインタ変数を用いたサンプルソース

#N88BASIC

Dim dbl[9] As Double
Dim lpDbl As DoublePtr
Dim i As Long

lpDbl=dbl    '配列の先頭アドレスを取得

For i=0 To 9
    lpDbl[i]=i*3.141592
Next

For i=0 To 9
    Print lpDbl[i]
Next

↑配列変数の代わりに、ポインタ変数を利用することができます。

#N88BASIC

Dim lpDbl As DoublePtr
Dim i As Long
Dim hHeap As DWord

hHeap=GetProcessHeap()
lpDbl=HeapAlloc(hHeap,0,10*8)    '80バイト分（Double型が10個）のメモリを確保します

For i=0 To 9
    lpDbl[i]=i*3.141592
Next

For i=0 To 9
    Print lpDbl[i]
Next

HeapFree(hHeap,0,lpDbl)

↑ポインタ変数を利用して、ヒープ領域に確保したメモリを操作することができます。

Dim lpByte As BytePtr
Dim hHeap As DWord

hHeap=GetProcessHeap()

'100バイト分のメモリを確保
lpByte=HeapAlloc(hHeap,0,100)

lpByte(0)=0
lstrcat(lpByte,Ex"～1行目に表示される文字列～\n")
lstrcat(lpByte,"～こっちは2行目～")

'バッファの内容を表示
MessageBox(0,lpByte,"test",0)

'メモリを解放
HeapFree(hHeap,0,lpByte)

↑BytePtr型変数は、文字列の先頭アドレスとして利用することができます。


 構造体

Type命令語で構造体を定義し、Dim命令語で構造体変数の宣言を行うことで構造体を利用することが可能になります。

Dim命令語で構造体名の前にアスタリスク(*)を表記すると、構造体ポインタを定義することができます。

構造体内のメンバ変数へのアクセス方法

[構造体名].[メンバ変数]
上のような表記で、構造体内のメンバ変数への代入、参照が可能になります。

例:

Type DATA_INFO
    a As Long
    b As Double
End Type

Dim DataInfo As DATA_INFO
DataInfo.a=10
DataInfo.b=20.123
MessageBox(0,Str$(DataInfo.a),Str$(DataInfo.b),MB_OK)

構造体ポインタが示すメンバ変数へのアクセス方法

[構造体名]->[メンバ変数]
上のような表記で、構造体ポインタが示すメンバ変数への代入、参照が可能になります。

例:

Type DATA_INFO
    a As Long
    b As Double
End Type

Sub SetDataInfo(p As *DATA_INFO)
    p->a=10
    p->b=20.123
End Sub

Dim DataInfo As DATA_INFO
Dim pDataInfo As *DATA_INFO
pDataInfo=VarPtr(DataInfo)
SetDataInfo(pDataInfo)
MessageBox(0,Str$(pDataInfo->a),Str$(pDataInfo->b),MB_OK)

※構造体、構造体ポインタは入れ子構造にすることが可能です。


関数

ActiveBasicで利用できる関数には、複数の種類があります。呼び出し方法は同一ですが、各関数独自の定義方法が必要になります。このヘルプでは、関数のことを「プロシージャ」と記載することがありますが、同一の意味となりますので、ご了承ください。

関数の種類

標準関数

コンパイラに組み込まれている関数、または基本ヘッダ（Include\basic.sbp）で定義されている関数です。コード内で、暗黙的に呼び出すことができるこの関数郡は、左側ヘルプメニューの「リファレンス」→「標準関数」に記載してあります。

ユーザー定義関数

FunctionステートメントまたはSubステートメントで定義される関数です。

DLL関数

Declareステートメントで定義される関数です。

関数ポインタ

関数ポインタとは、関数処理が開始されるモジュールコードの先頭ポインタのことを言います。定義、呼び出しについての詳しい手法はこちらをご覧ください。

関数の呼び出し方

関数の種類によって定義方法は異なりますが、呼び出す方法は同じです。基本的には、関数名の後に、カンマ","で区切られたパラメータをカッコ"()"で括って指定します。戻り値を有する関数を呼び出すときは、関数呼び出し自体を数式の中に指定することもできます。

'関数名のあとに、カッコで括ったパラメータを指定する
FuncName(Parm1, Parm2)

'戻り値のある関数の場合は、その関数呼び出しを右辺値として扱うことができる
RetCode = FuncName(Parm1, Parm2)

'パラメータも数式として扱われるため、入れ子構造での呼び出しが可能
RetCode = FuncName(Parm1, Func2(x, y) )


パラメータ

パラメータとは、関数に引き渡すデータのことをいいます。パラメータのことを「引数」と表現することがありますが、これらは同一の意味となりますので、ご了承ください。

仮引数と実引数

関数呼び出し時に、呼び出し側から指定するパラメータを、実引数と呼びます。実引数には、変数や数式を書くことができます。これに対し、プロシージャ定義行内に記述する引数を仮引数と呼びます。

Sub Test(p As Long) '「p」は仮引数
    ～
End Sub

Dim a As Long
Test(a) '「a」は実引数

各引数の型指定（As ～）を省略すると型宣言文字が参照されます。複数の引数を扱う場合は引数どうしをカンマ( , )で区切って指定します。

パラメータの参照方法

関数にパラメータを引き渡す際には、パラメータのデータ自体を引き渡すか（値参照）、パラメータが格納されているアドレスの位置を引き渡すか（ポインタ参照）という2通りの方法があります。

値参照（By Value）

変数名の前の"ByRef" を省略すると、値参照になります。値参照を行うと、仮引数用のメモリが新たに確保され、そこに実引数の値がコピーされます。プロシージャ内で仮引数の内容を変更しても、実引数の変数に影響はありません。同様に、文字列を値参照すると、仮引数の文字列バッファが新たに確保され、そこに実引数の文字列バッファの内容がすべてコピーされます。配列、構造体を値参照することはできません。

#N88BASIC

'例
Sub Test(p As Long)
    p=20
End Sub

Dim a As Long
a=10
Test(a)
Print a '10と表示される

ポインタ参照（By Reference）

ポインタ参照の引数を定義するときは、変数名の前に "ByRef" を指定します。ポインタ参照を行うと、仮引数のポインタと、実引数のポインタは同じになります。仮引数の内容を変更すると、実引数の内容も変更されることになります。文字列をポインタ参照した場合は、その文字列の先頭ポインタが引き渡されます。

#N88BASIC

'例
Sub Test(ByRef p As Long)
    p=20
End Sub

Dim a As Long
a=10
Test(a)
Print a '20と表示される

ポインタ参照型パラメータへのポインタ指定

ポインタ参照の実引数の前に "ByVal" を指定すると、値参照に切り替えることができます。実引数の値が仮引数のポインタになります。

#N88BASIC

'例
Sub Test(ByRef p As Long)
    p=10
End Sub

Dim a As Long, b As Long
b=VarPtr(a)
Test(ByVal b)
Print a '10と表示される

構造体、配列データをパラメータとして引き渡すには

構造体や配列を引数として渡すこともできます。そのような場合はポインタ参照で引き渡すか、ポインタ型データを値参照で引き渡します。一般的には、後者の方法を推奨します。構造体や配列のポインタを取り出し、そのポインタ型データを値参照として引き渡します。下のコードは、構造体のポインタ値を値参照のパラメータで引き渡すプログラムの例です。

#N88BASIC

Type NAME_INFO
    first As String
    middle As String
    last As String
End Type

Sub Test(p As *NAME_INFO)
    p->first="aaa"
    p->middle="bbb"
    p->last="ccc"
End Sub

Dim a As NAME_INFO
Test(VarPtr(a))
Print a.first,a.middle,a.last

下のコードは、配列のポインタ値を値参照のパラメータで引き渡すプログラムの例です。

#N88BASIC

Dim a[10] As Long
Dim i As Long

Sub test(b As *Long)
    For i=0 to 10
        b[i]=i*10
    Next
End Sub

test(a)
For i=0 to 10
    Print a[i]
Next

多次元配列をパラメータとして引き渡すには

多次元配列を引き渡すときは、仮引数に配列要素を指定する必要があります。また、下記のようにアドレス参照（ByRef）で配列ポインタを引き渡します。

この引き渡し方法は多次元配列の引き渡しに有効な手段ですが、1次元配列に対しても行えます。

#N88BASIC

Dim data[9,9] As Long

Sub GetData(ByRef a[9,9] As Long)
    Dim i As Long, j As Long
    For j=1 To 9
        For i=1 To 9
            a[j,i]=i*j
        Next
    Next
End Sub

Sub ShowData(ByRef a[9,9] As Long)
    Dim i As Long, j As Long
    For j=1 To 9
        For i=1 To 9
            Print Using "###";a[j,i];
        Next
        Print
    Next
End Sub

'両者の関数ともに、配列ポインタを引数として渡す
GetData(data)
ShowData(data)


関数ポインタ

関数処理が開始されるモジュールコードの先頭ポインタのことを、関数ポインタといいます。関数ポインタは、通常のポインタ変数と同様、ポインタ値の変更や読み取りを行えます。それと同時に、そのポインタをもとに関数を実行することができます。

定義方法

通常の変数と同様、Dimステートメントを利用して定義を行います。タイプ型の指定は下記のようになります。また、戻り値が必要なときは*Function型に、不必要なときは*Sub型になります。

Dim 変数名 As *Function(引数 As 引数の型, ...) As 戻り値の型
Dim 変数名 As *Sub(引数 As 引数の型, ...)

'例
Dim pFunc As *Function(a As Long, b As Long) As Long
Dim pSub As *Sub(a As Long, b As Long)

関数ポインタ型は通常のタイプ型と違い、パラメータと戻り値を指定する必要があります。そのため、Dimステートメントの記述が冗長的になり、コードが読み辛くなる可能性があります。このような場合は、TypeDefステートメントを活用し、事前に関数ポインタ型を定義しておくことをお勧めします。

'TypeDefを使って読みやすくする例

'型の定義
TypeDef PFUNC = *Function(a As Long, b As Long) As Long
TypeDef PSUB = *Sub(a As Long, b As Long)

'関数ポインタ型の変数の定義
Dim pFunc As PFUNC
Dim pSub As PSUB

関数ポインタの呼び出し方

基本的には、関数ポインタの呼び出し方法は、通常の関数を呼び出す場合と同様になります。関数ポインタ型の変数のあとに、カッコで括ったパラメータを指定します。

#N88BASIC

'関数ポインタ型を定義
TypeDef PSHOWMSG = *Sub(buffer As *Byte)

Sub ShowMsg(buffer As *Byte)
    Print MakeStr(buffer)
End Sub

'関数ポインタ型の変数を定義
Dim pShowMsg As PSHOWMSG

'ShowMsgの開始アドレスを取得し、pShowMsgに格納
pShowMsg=AddressOf(ShowMsg)

'関数ポインタをもとに、関数を呼び出す
pShowMsg("Hello World!")

AddressOf関数を使用し、ユーザー定義関数の関数ポインタを取得しています。その値を、pShowMsgに格納し、呼び出しています。


プリプロセッサ

 プリプロセッサについて

・プリプロセッサとは？
インタプリタ、コンパイラに先立ち、プログラムの前処理を行うものです。

--- 実行手順 ---
プリプロセッサによる前処理
↓
インタプリタ、またはコンパイラにより、オブジェクトコードに変換
↓
実行

行の先頭にシャープ記号「#」から始まるディレクティブがプリプロセッシング時に認識されます。


ディレクティブ：#include

 ディレクティブ： #include

指定したファイルの内容をソース プログラムのこのディレクティブの位置に取り込みます。

仕様

#include "filepath"

#include <filepath>

filepath
取り込むファイルを絶対パス、または相対パスで指定します。ファイル名を<>で囲んだ場合、"include"ディレクトリ内のファイルが参照されます。

解説

行番号付きプログラムで#includeディレクティブを使用してファイルを取り込むとプログラム同士の行番号が重なる可能性があります。できる限り、行番号無しのプログラム同士での使用をお勧めします。
#includeディレクティブで取り込み対象となるファイルの拡張子は".sbp"（Sub Basic Program）に一貫させることをお勧めします。

例

-------- test.bas --------
#include "subroutines.sbp"
MsgBox 0,Str$(AddNum(1,2)),Str$(SubNum(10,3))

-------- subroutines.sbp --------
Function AddNum(a As Integer, b As Integer)
    AddNum=a+b
EndFunction
Function SubNum(a As Integer, b As Integer)
    SubNum=a-b
EndFunction


ディレクティブ：#resource

 ディレクティブ： #resource

リソース ファイル（*.rc）を取り込みます。

仕様

#resource "filepath"

filepath
リソース ファイル（*.rc）を絶対パス、または相対パスで指定します。


ディレクティブ：#prompt

 ディレクティブ： #prompt, #N88BASIC

prompt.sbpをインクルードします。

仕様

#prompt

#N88BASIC

備考

上記2通りの記載が可能です。これらディレクティブは以下の文と同等の意味を持ちます。

#include <basic\prompt.sbp>

これらのディレクティブは、#console ディレクティブと併用することはできません。


ディレクティブ：#console

 ディレクティブ： #console

コンソール アプリケーションを作成します。

仕様

#console

備考

EXEファイルのサブシステム タイプを CUI に変更し、"basic\dos_console.sbp" がインクルードされます。
このディレクティブは、#prompt、#N88BASIC ディレクティブと併用することはできません。


#strict ディレクティブ

コンパイルの際に型チェックが厳密に行われるようになります。型チェックに関するエラーは「警告」としてエラービューに表示され、実行ファイル生成やデバッグは通常通り行えます。

書式

#strict

解説

このディレクティブを指定することで「警告」として処理されるケースは下記の通りです。尚、ここで言う代入演算は、パラメータへのデータ引き渡しという意味としても有効です。

  • 異なる基本型（Char/Byte/Integer/Word/Long/DWord/Int64/QWord/Single/Double）同士の代入演算（String型と*Byte型同士のケースを除く）
  • 異なるポインタ型同士の代入演算（オブジェクトポインタであっても、指し示すオブジェクトが同一のものでなければ警告扱いとなります）

As演算子によるキャストについて


#define ディレクティブ

#ifdef/#ifndefディレクティブで判定可能な識別子を指定します。

書式

#define IDNAME
IDNAME
新しく定義する識別子の名前を指定します。

解説

このディレクティブで定義できるのは、#ifdef/#ifndefディレクティブでのみ利用される専用の識別子です。#ifdef/#ifndef以外のプリプロセッサ及びステートメントでは利用できませんので、ご注意ください。

#ifdefディレクティブ


#ifdef、#ifndef ディレクティブ

条件付のコンパイルを行います。

書式

#ifdef IDNAME
    statements1...
[#else
    statements2...]
#endif
#ifndef IDNAME
    statements2...
[#else
    statements1...]
#endif
IDNAME
判定条件となる識別子を指定します。

解説

#ifdef/#ifndef ... #else ... #endif 及び #define などのディレクティブは、主にプログラム資源の重複の恐れが生じる、ライブラリ製作の現場で利用されます。

IDNAMEが定義されている（#defineされた）ときは、statements1で記述したソースコードがコンパイル及びプリプロセッシングの対象になり、statements2の部分にあたるソースコードは無視されます。逆の場合（IDNAMEが定義されていないとき）は、statements1が無視され、statements2がコンパイルの対象となります。

#ifdef/#ifndef ... #else ... #endifのそれぞれは、行の先頭に記述しなければなりません。また、入れ子構造の指定も可能です。

識別子は#defineで定義されるもの以外に、状況に応じてコンパイラが自動的に定義する場合があります。自動的に定義される識別子は下記の通りです。

識別子 | 説明
_DEBUG | デバッグコンパイル時にコンパイラが自動的に定義します。
_WIN64 | 64ビットネイティブコードを生成する際、コンパイラが自動的に定義します（Ver4.0 x64 Edition 又は Ver5.0以降）。
_AB_VER[num] | コンパイラが自身のバージョン識別子を自動的に定義します（例：_AB_VER4、_AB_VER5）。

#defineディレクティブ


演算子

一つの式の中で複数の演算が行われる場合、式の各部分は決められた順序に従って評価され、演算が実行されます（優先順位）。一般的に左側から順に評価されますが、一つの式の中に異なる種類の演算子が存在する場合、優先順位の高い部分から演算が行われます。カッコを使用すると優先順位に関係なく、カッコ内の演算が先に実行されます。

優先順位は算術演算子、関係演算子、論理演算子の順になります。下記に示す各演算表（比較演算子を除く）では上にいくほど優先順位が高くなります。

算術演算子
記号 | 内容
As | 型のキャスト（詳細...）
^ | 指数演算
- | マイナス符号（減算ではありません）
* | 乗算
/ | 除算
\ | 整数除算
mod | 剰余演算
+ | 加算
- | 減算
>> | 右シフト
<< | 左シフト
※「乗算・除算・整数除算」、または「加算・減算」の優先順位は同一です（式中の左から右へ順に評価されます）。

関係演算子
記号 | 内容
= | 等しい
<>、>< | 等しくない
< | より小さい
> | より大きい
<= | 以下
>= | 以上
※条件が一致した場合は"-1"が、しなかった場合は"0"が答えとなります。

論理演算子
記号 | 内容
Not | 論理否定
and | 論理積
or | 論理和
xor | 排他的論理和

符号無し演算、符号あり演算の見分け方

"a/b" など、ある演算における2つの値a、bが、共に符号無し変数（DWord型、Word型など）であるか、0以上のリテラル値であると、符号無し演算が行われます。それ以外は、すべて符号あり演算となります。1つの演算子において、符号あり、符号無しの値が与えられると、符号あり演算が行われます。

文字列演算子について

文字列連結演算子として "+"、"&" 記号が使用できます。この２つの演算子は同じ演算を行います。文字列演算ではカッコの使用はできません。

関係演算を行うと、文字列は辞書順に比較されます。２つの文字列の長さが違い、比較が途中で終わってしまったときは短い文字列のほうが小さくなります。

代入演算子、インクリメント、デクリメント


代入演算子、インクリメント、デクリメント

代入演算子

代入演算子は、指定した演算子で左側及び右側のオペランドを計算した結果を、左側のオペランドに代入する場合に利用します。例えば、下記の2つの例は同様の演算を意味します。

a+=b
a=a+b
演算子 | 説明
= | 単純代入
*= | 乗算代入
/= | 除算代入
\= | 整数除算代入
mod = | 乗除代入
+= | 加算代入
-= | 減算代入
<<= | 左シフト代入
>>= | 右シフト代入
and = | 論理積代入
or = | 論理和代入
xor = | 排他的論理和代入

インクリメント

インクリメントは、指定した変数に1を加算したい場合に利用します。例えば、下記の2つの例は同様の演算を意味します。

a++
a=a+1

デクリメント

デクリメントは、指定した変数から1を減算したい場合に利用します。例えば、下記の2つの例は同様の演算を意味します。

a--
a=a-1
演算子


As演算子によるキャストについて

キャストとはデータ型を変換することを意味します。演算結果をその状況における通常のデータ型以外で参照するときは、As演算子を利用してキャストを行えます。尚、String型に対して、またはString型としてキャストを行うことはできないので注意が必要です。

As演算子によるキャストは、"#strict" ディレクティブが指定されたソースコード内における、厳密な型チェックの警告解除についても効力を発します。

書式

expression As type
expression
演算式を指定します。
type
キャスト後に適応されるデータ型を指定します。

キャスト可能な型

String型、実態オブジェクト型、列挙型などの特殊な型を除き、すべての型に対してキャストを行うことができます。

  • 浮動小数型 … Single、Double
  • 整数型 … Char、Byte、Integer、Word、Long、DWord、Int64、QWord
  • ポインタ型 … すべて

サンプル

下のサンプルは、本来であれば4バイト分のデータを保有する&H12345678を、Word型にキャストして2バイト分のデータ（&H5678）として扱うサンプルです。

#N88BASIC

Dim a As Long

' &H12345678をWord型にキャストし、aに代入
a=&H12345678 As Word

' "5678"と表示される
Print Hex$(a)

#strictディレクティブ、演算子


New 演算子

オブジェクトを生成します。

書式

pObj = New [[num]] CClass[(parameter)]
pObj
生成されるオブジェクトのポインタを格納するためのオブジェクトポインタ変数です。
num
オブジェクト配列を生成する場合は、添え字上限値を指定します。生成するオブジェクトが単体のときは省略できます。ここで指定する値を添え字上限値から要素数に切り替えるときは、ELM関数を利用してください。
CClass
クラスを指定します。
parameter
コンストラクタのパラメータを指定します。パラメータが一つも定義されていないときは省略することができます。

解説

New演算子は他の演算子と組み合わせて使用することはできません。

New演算子を実行すると、オブジェクトのメンバ変数を格納するためのメモリがヒープ領域に確保されます。また、コンストラクタが自動的に呼び出されます。

オブジェクトが不要になったら、Delete演算子を使ってオブジェクトを破棄する必要があります。

New演算子、Delete演算子にはクラス以外の型を指定できないので、注意してください。標準の型（クラス以外の型）のメモリ確保を行うときは、malloc関数（またはcalloc関数）、free関数をご利用ください。

サンプルコード

Class CHuman
    pName As BytePtr    '名前バッファへのポインタ
    BirthYear As Long   '誕生年

    '年齢を取得するための関数
    Function GetAge() As Long
        Dim st As SYSTEMTIME
        GetLocalTime(st)
        GetAge=st.wYear-BirthYear
    End Function

Public
    'コンストラクタ
    Sub CHuman(buf As BytePtr, n As Long)
        'メモリを確保し、名前をセット
        pName=malloc(lstrlen(buf)+1)
        lstrcpy(pName,buf)

        '誕生歳をセット
        BirthYear=n
    End Sub

    'デストラクタ
    Sub ~CHuman()
        '名前で使用したメモリを解放
        free(pName)
    End Sub

    'データを表示するための関数
    Sub ShowHumanData(hWnd As DWord)
        Dim buf[255] As Byte

        wsprintf(buf,Ex"名前:%s\r\n%d年生まれ\r\n今年で%d歳",pName,BirthYear,GetAge())
        MessageBox(hWnd,buf,"Class Test",MB_OK)
    End Sub
End Class

Sub Main()
    'オブジェクトポインタを定義
    Dim pHuman As *CHuman

    'オブジェクトを生成
    pHuman = New CHuman("Daisuke",1983)

    Dim hDeskWnd As DWord
    hDeskWnd=GetDesktopWindow()

    'オブジェクトのデータを表示する
    pHuman->ShowHumanData(hDeskWnd)

    'オブジェクトを破棄
    Delete pHuman
End Sub

'メイン関数の呼び出し
Main()

Classステートメント、Delete演算子


 Delete 演算子

New演算子で生成されたオブジェクトを破棄します。

書式
Delete pObj
pObj
オブジェクトポインタを指定します。
解説

Delete演算子は戻り値を持ちません。また、他の演算子と組み合わせて使うことはできません。

Delete演算子はデストラクタの呼び出し、メモリの解放を行うことでオブジェクトの破棄を行います。

New演算子で生成されたオブジェクトが複数存在するときは、自動的に複数個のオブジェクトが破棄されることになります。

New演算子


命令語：If

 命令語： If

条件分岐を行い、その結果に応じた処理を行います。

仕様

（一行の構文にまとめた形式）
If condition Then command1 [Else command2]

（複数行の命令語を対象としたブロック形式）
If condition Then
command1
Else
command2
End If

condition
条件文を論理演算で指定します。

command1
論理演算の結果が真のときに実行する命令を記述します。

command2
論理演算の結果が偽のときに実行する命令語を記述します。

備考

１つの条件分岐に対して、１行の形式とブロック形式を混合させることはできません。If文の中にIf文を作ること（If文ネスト）は可能です。
ブロック形式では Else を ElseIf に置き換えることで複数の条件分岐が可能です。ElseIf はいくつでも記述できます。ブロック形式にはいくつかの記述例がありますので、サンプルを参考にして下さい。

サンプル

If a=1 Then
    Print "aの値は1です"
Else
    Print "aは1以外の値です"
End If

If a=1 Then
    Print "aの値は1です"
End If

If a=1 Then
    Print "aの値は1です"
ElseIf a=2 Then
    Print "aの値は2です"
Else
    Print "aは1、2以外の値です"
End If

If a=1 Then
    If b=1 Then Print "aの値は1、bの値は1です" Else Print "aの値は1、bは1以外の値です"
Else
    If b=1 Then
        Print "aは1以外の値、bの値は1です"
    Else
        Print "aは1以外の値、bは1以外の値です"
    End If
End If


命令語：Goto

 命令語： Goto

指定した行番号、またはラベルの場所へ分岐します。

仕様

Goto label

label
分岐先のラベル、または行番号を指定します。
ラベルに使用する識別子には先頭文字に「*」を置いて下さい。


命令語：GoSub

 命令語： GoSub、Return

サブルーチンを実行します。

書式

GoSub label
...
label
...
Return

label
分岐先をラベル、または行番号で指定します。

備考

この命令語はグローバル領域のみに有効です。

サンプル

GoSub *Sub
Print "End"
End

*Sub
Print "Printing in sub."
Return

' 実行結果
' Printing in sub.
' End


命令語：For ～ Next

 命令語： For ～ Next

設定した回数だけ処理を繰り返します。

仕様
For counter = start To end [ Step step]
    ...
    [Continue]
    ...
    [Exit For]
    ...
Next [counter]
counter
カウンタ変数を指定します。

start
初期値を指定します。

end
終値を指定します。

step
ループするごとにカウンタ変数に加算される数を指定します。省略した場合は 1 が適応されます。

備考

For ～ Next 内で Exit For を実行すると、ループから抜け出すことができます。
For ～ Next 内で Continue を実行すると、ループの先頭位置に制御を移すことができます。
Next 命令語の counter パラメータは無視されます。

Do ～ Loop命令語、While ～ Wend命令語


命令語：While ～ Wend

 命令語： While ～ Wend

条件が真の間、繰り返しを行います。

仕様
While condition
    ...
    [Continue]
    ...
    [Exit While]
    ...
Wend
condition
条件文を論理演算で指定します。

備考

While ～ Wend 内で Exit While を実行すると、そのループから抜け出すことができます。
While ～ Wend 内で Continue を実行すると、ループの先頭位置に制御を移すことができます。

Do ～ Loop命令語、For ～ Next命令語


命令語：Do ～ Loop

 命令語： Do ～ Loop

後判定反復をする制御文です。

仕様
Do
    ...
    [Continue]
    ...
    [Exit Do]
    ...
Loop [While/Until condition]
While/Until
Whileを指定した場合はconditionが真の間、commandsを繰り返します。
Untilを指定した場合はconditionが偽の間（真になるまで）、commandsを繰り返します。
While/Until、conditionを省略した場合は無条件ループとなります。

condition
条件文を論理演算で指定します。

備考

Do ～ Loop 内で Exit Do を実行すると、そのループから抜け出すことができます。
Do ～ Loop 内で Continue を実行すると、ループの先頭位置に制御を移すことができます。

For ～ Next命令語、While ～ Wend命令語


 Select Case ステートメント

指定した条件によって複数の命令ブロックのいずれかを実行させます。

書式
Select Case testexpression
    Case expression [, expression2...]
        [statements]
    Case expression [, expression2...]
        [statements]
    ...

    [Case Else
        elsestatements]
End Select
testexpression
任意の変数、または式を指定します。
expression
任意の変数、または式を指定します。カンマで区切って複数指定することができます。
statements
すぐ上のCase文が一致したときに実行されるプログラムコードを記述します。
解説

testexpressionがCase文の引数expressionに一致すると、そのCase文の下にあるプログラムコードがその次のCase文まで実行されます。Case文が最後の節のときは、End Selectまで実行されます。Case Elseのプログラムコードは、他のCase文のすべてが一致しないときに実行されます。


命令語：Declare

 命令語： Declare

ダイナミック リンク ライブラリ（DLL）の外部プロシージャへの参照を宣言します。

仕様

Declare Sub/Function name [cdecl] Lib "libname" [Alias "aliasname"] ([arglist]) [As type]

Sub/Function
Subを指定するとプロシージャは値を返しません。Functionを指定すると値を返します。

name
プロシージャ名を指定します。

libname
宣言するプロシージャが含まれているDLLのファイル名を指定します。

aliasname
nameで指定したプロシージャ名がDLL内で別の名前を持っている場合に指定します。

arglist
引数を指定します。カンマ( , )で区切り、複数指定することができます。また、省略が可能です。

type
Functionプロシージャを宣言する場合に戻り値のデータ型を指定します。

備考

cdecl修飾子を指定すると、その関数はcdecl規約になります。省略時はstdcall規約です（デフォルト）。
DLLのエントリポイントは大文字小文字を区別して指定する必要があります。
"libname"、"aliasname" にはリテラル値の文字列を使用して下さい。


命令語：Sub

 命令語： Sub

プロシージャを定義します。

書式
Sub [Export] [cdecl] name ([arglist])

    [commands]

    [Exit Sub / Return]

    [commands]

End Sub
name
プロシージャ名を指定します。

arglist
引数を指定します。カンマ(,)で区切り、複数指定することができます。また、省略が可能です。（詳細...）

備考

Export修飾子を指定すると、DLL関数としてエクスポートを行うことが出来ます（DLLプロジェクトのみ）。EXEプロジェクトでは、Export修飾子は無視されます。
cdecl修飾子を指定すると、その関数はcdecl規約になります。省略時はstdcall規約です（デフォルト）。
定義したプロシージャを呼び出す方法は関数などを使用する方法と同じです（例を参照）。
プロシージャ内で Exit Sub または Return が実行されると、そのプロシージャから抜け出すことができます。

サンプル

Sub Addition(ByVal a As Long, ByVal b As Long) '足し算をし、結果を表示するルーチン
    c=a+b
    Print c
EndSub

'呼び出し
Addition(10,20)
プロシージャ概念、Function命令語


命令語：Function

 命令語： Function

戻り値があるプロシージャを定義します。

書式
Function [Export] [cdecl] name ([arglist]) [As type]

    [commands]

    [name = expression]

    [Exit Function]

    [Return expression]

    [commands]

    [name = expression]

End Function
name
プロシージャ名を指定します。

arglist
引数を指定します。カンマ(,)で区切り、複数指定することができます。（詳細...）

type
戻り値のデータ型を指定します。

備考

Export修飾子を指定すると、DLL関数としてエクスポートを行うことが出来ます（DLLプロジェクトのみ）。EXEプロジェクトでは、Export修飾子は無視されます。
cdecl修飾子を指定すると、その関数はcdecl規約になります。省略時はstdcall規約です（デフォルト）。
プロシージャ内で Exit Function または Return が実行されると、そのプロシージャから抜け出すことができます。Returnステートメントのパラメータには戻り値を指定することもできます。
プロシージャの戻り値を設定する場合は値をプロシージャ名に代入して下さい。戻り値を省略した場合は、数値関数なら0を、文字列関数なら長さ0の文字列""が戻り値として設定されます。

サンプル

' 1+2+3+...+10の計算を再帰的に行います
Function Sum(ByVal i As Integer) As Integer
    If i=10 Then
        Sum=0
        Exit Function
    End If
    i=i+1
    Sum=Sum(i)+i
End Function

' 呼び出しと表示
Print Sum(0)
プロシージャ概念、Sub命令語


Dim ステートメント

変数を定義し、変数データに必要な領域を確保します。

書式

Dim varname [[subscripts]] [= initvalue] [As type] ,...
varname
変数の名前を指定します。
subscripts
配列要素をリテラル値で指定します。カンマで区切って多次元配列を定義することもできます。ここで指定する値は添え字上限値になります。要素数で指定したい場合は、ELM関数を利用してください。
initvalue
変数データの初期値を指定します。配列変数の初期値はカッコ [ ]の中に各値をカンマで区切って指定します。オブジェクト（構造体）の初期値はカッコ [ ]の中に各メンバ変数をカンマで区切って指定します。
type
基本型またはクラス（構造体）を指定します。

解説

モジュールレベルで宣言をするとグローバル領域に、プロシージャレベルで宣言をするとローカル領域に変数領域が確保されます。

String型変数のDim宣言では、文字列ポインタ用の4バイト、及び文字列バッファの領域が確保されます（文字列バッファのみヒープ領域に確保）。文字列バッファの領域は、グローバル変数の場合はプロセス終了時に、ローカル変数の場合プロシージャの終了時に解放されます。String型変数の内容を変更すると、文字列バッファは再確保されるため、文字列ポインタは書き換えられます。


 Const ステートメント

リテラル値の代わりに使う定数、またはマクロ関数を宣言します。

書式
'定数の定義
Const constname = expression

'マクロ関数の定義
Const constname(arglist) = expression
constname
定数の名前を指定します。
expression
定数値を指定します。定数値は、リテラル値、定義済み定数、arglistで指定する引数を算術演算子や論理演算子で組み合わせた式で表現することが可能です。定数であることが前提なので、変数や関数の戻り値を指定できない点に注意してください。
arglist
引数を指定します。カンマ(,)で区切り、複数指定することができます。
解説

定数はモジュールレベルで宣言して下さい。定義した定数はConst命令語が記述されている直後のコードから有効となります。

マクロ関数の呼び出しは通常の関数呼び出しと同様に行うことができます。arglistで指定する引数がすべてリテラル値または定数値の場合に限り、そのマクロ関数を定数の代入値expressionとして利用することができます。


 Enum ～ End Enum ステートメント

列挙型を定義します。

書式
Enum Name
    MemberName [ = expression]
    MemberName [ = expression]
    ...
End Enum
Name
列挙型の名前を指定します。
MemberName
列挙子の名前を指定します。
expression
列挙子の値を定数またはリテラル値で指定します。省略すると直前の列挙子の値に1を加算した値がセットされます（初回の列挙子のexpressionを省略したときは1がセットされます）。
解説

列挙子の値は常に32ビット整数値（DWord型）として扱われます。列挙子は定数値と同様にソースコード内から参照することができます。列挙型の変数またはパラメータには、列挙子または同一の列挙型変数の値のみを代入することが可能です。


命令語：Let

 命令語： Let

式の値を変数に格納します。

仕様

[Let] variable = expression

variable
変数を指定します。

expression
変数に代入する値を指定します。

解説：

"Let" は省略することができます。


命令語：SetDouble

 命令語： SetDouble

指定したポインタが示すDouble型データを書き換えます。

仕様

SetDouble(lpDouble, dblData)

lpDouble
ポインタを指定します。

dblData
Double型データを指定します。

GetDouble関数、GetSingle関数、GetDWord関数、GetWord関数、GetByte関数、
SetSingle命令語、SetDWord命令語、SetWord命令語、SetByte命令語


命令語：SetSingle

 命令語： SetSingle

指定したポインタが示すSingle型データを書き換えます。

仕様

SetSingle(lpSingle, sngData)

lpSingle
ポインタを指定します。

sngData
Single型データを指定します。

GetDouble関数、GetSingle関数、GetDWord関数、GetWord関数、GetByte関数、
SetDouble命令語、SetDWord命令語、SetWord命令語、SetByte命令語


命令語：SetDWord

 命令語： SetDWord

指定したポインタが示すDWord型データを書き換えます。

仕様

SetDWord(lpDWord, dwData)

lpDWord
ポインタを指定します。

dwData
DWord型データを指定します。

GetDouble関数、GetSingle関数、GetDWord関数、GetWord関数、GetByte関数、
SetDouble命令語、SetSingle命令語、SetWord命令語、SetByte命令語


命令語：SetWord

 命令語： SetWord

指定したポインタが示すWord型データを書き換えます。

仕様

SetWord(lpWord, wData)

lpWord
ポインタを指定します。

wData
Word型データを指定します。

GetDouble関数、GetSingle関数、GetDWord関数、GetWord関数、GetByte関数、
SetDouble命令語、SetSingle命令語、SetDWord命令語、SetByte命令語


命令語：SetByte

 命令語： SetByte

指定したポインタが示すByte型データを書き換えます。

仕様

SetByte(lpByte, byteData)

lpByte
ポインタを指定します。

byteData
Byte型データを指定します。

GetDouble関数、GetSingle関数、GetDWord関数、GetWord関数、GetByte関数、
SetDouble命令語、SetSingle命令語、SetDWord命令語、SetWord命令語


 Type ～ End Type ステートメント

構造体を定義します。

書式
Type name
    ...
    VarName As VarType
    VarName2 As VarType2
    ...
End Type
name
構造体の名前を指定します。
VarName
メンバ名を指定します。
VarType
メンバのデータ型を指定します。

解説

Type宣言はモジュール レベルでのみ使用可能です。

宣言した構造体は、Dim命令語を使用して定義することができます。

"構造体.メンバ" のように、ドットで区切ることでメンバへアクセスすることができます。

アラインメントについて

異なるデータ型を一つの構造体に含めると、場合によってメンバ同士の境界にアラインメントが生じることがあります。デフォルトでは、構造体先頭からのメンバオフセット値を、各メンバのサイズで割ったときの余りになりますが、Align修飾子を使ってアラインメントを強制的に指定するこもできます。

Type Align(n) TYPENAME
    ...
End Type

アラインメントnをバイト単位で指定できます。指定する値は1,2,4,8,16のいずれかでなければなりません。

サンプル
#N88BASIC
Type Address
    Country As String
    City As String
End Type
Type Human
    Name As String
    Age As Integer
    Address As Address
End Type

Dim Friend As Human
Friend.Name="Taro"
Friend.Age=20
Friend.Address.Country="Japan"
Friend.Address.City="Tokyo"
Print "名前：";Friend.Name
Print "年齢：";Friend.Age
Print "国籍：";Friend.Address.Country
Print "都市：";Friend.Address.City
New演算子、Delete演算子、メンバ関数のオーバーライド


 TypeDef ステートメント

既存のデータ型に別名を割り当てます。

書式
TypeDef newtype = basetype
newtype
型の別名を指定します。
basetype
既存のデータ型を指定します。
解説

TypeDefはモジュールレベルで宣言して下さい。

TypeDefは既存のデータ型の同義語を定義するステートメントであり、新しい型を導入することはできません。


命令語：With

 命令語： With

With ～ End With内で構造体名を省略してメソッドを記述できるようにします。

仕様

With object
...
End With

object
構造体を指定します。

サンプル

Type Address
    Country As String
    City As String
End Type
Type Human
    Name As String
    Age As Integer
    Address As Address
End Type

Dim Friend As Human
With Friend
    .Name="Taro"
    .Age=20
    .Address.Country="Japan"
    .Address.City="Tokyo"
    Print "名前：";.Name
    Print "年齢：";.Age
    Print "国籍：";.Address.Country
    Print "都市：";.Address.City
End With
備考

With ～ End With内で対象となるメソッドを参照する場合は、先端文字にピリオド「.」をつけて記述して下さい。
Withは入れ子構造にすることもできます。


 Class ～ End Class ステートメント

クラス名及びクラスを構成するメンバ、メソッドを定義します。

書式
Class ClassName
    [Inherits BaseClass]
[Private]
    [statement]   'プライベート メンバ ステートメント
Public
    [statement]   'パブリック メンバ ステートメント
Protected
    [statement]   'プロテクティット メンバ ステートメント
End Class
ClassName
クラス名を指定します。
Inherits BaseClass
BaseClassにベースクラスを指定するとインヘリタンス（継承）を行うことができます。InheritsはClass定義内の先頭に記述しなければなりません。また、継承を行わないときは省略することができます。
Private
ここから定義するメンバはプライベートアクセスであることを示します。アクセシビリティ（Private/Public/Protected）をなにも指定していないときはプライベートアクセスになります。プライベートアクセスは、クラス内のメソッドからのみ参照可能になり、継承先クラスのメソッド及び外部から参照することはできません。
Public
ここから定義するメンバはパブリックアクセスであることを示します。パブリックアクセスは、クラス内のメソッド及び外部からのアクセスが可能です。
Protected
ここから定義するメンバはプロテクティットアクセスであることを示します。クラス内のメソッド及び継承先のメソッドからのみ参照可能になり、外部から参照することはできません。
statement
メンバ及びメソッドの定義を行います。詳しくは下記の「メンバ定義ステートメント」をご覧ください。

※アクセシビリティ（Private/Public/Protected）の指定順序に決まりはありません。また、同じアクセシビリティは繰り返し指定することができます。

※Type ～ End Typeと同様に、クラス定義においてもアラインメントを強制的に指定することができます。詳しくは、Type ～ EndTypeステートメントをご覧ください。

メンバ定義の書式
Class CTest
    ...
    VarName [As VarType]
    VarName2 [As VarType2]
    ...
End Class
VarName
メンバの名前を指定します。メンバ名の後にカッコ[ ]で括った配列要素を指定することもできます。
VarType
メンバのデータ型を指定します。

※メンバは複数行にわたっていくつでも定義することができます。

メソッド定義の書式
Class CTest
    ...
    '一般メソッドの定義
    Sub/Function FuncName ([arglist]) [As RetType]
        [statement]
    End Sub/Function

    '仮想関数の定義
    Virtual Sub/Function FuncName ([arglist]) [As RetType]
        [statement]
    End Sub/Function

    '純仮想関数の定義
    Abstract Sub/Function FuncName ([arglist]) [As RetType]

    ...
End Class
Sub/Function
Subを指定すると戻り値がないプロシージャが定義されます。Functionを指定すると戻り値がある関数が定義されます。
FuncName
関数の名前を指定します。関数名に "クラス名" または "~クラス名" を指定するとそれぞれコンストラクタ、デストラクタを指定することができます。詳しくは下記の「コンストラクタ、デストラクタについて」をご覧ください。
arglist
パラメータを指定します（詳細...）。
RetType
戻り値のデータ型を指定します。Function定義の場合のみ有効です。
statement
Sub ～ End Sub、またはFunction ～ End Functionの間にメソッドのプログラムコードを記述します。
Virtual
Virtual修飾子が指定されたメソッドは仮想関数として扱われます。仮想関数はオブジェクトが持ち合わせるvtblに関数ポインタが格納され、実行時に動的に呼び出されます。Virtual修飾子を用いた仮想関数は処理の実装を記述しなければなりません。仮想関数の詳細に関しては、下記の「仮想関数について」をご覧ください。
Abstract
Abstract修飾子が指定されたメソッドは抽象メソッド（純仮想関数）として扱われます。抽象メソッドとはメソッドの意味のみを定義するものであり、実装は派生先のクラスで行います。抽象メソッドを一つ以上保有するクラスは抽象クラスとして扱われ、インスタンス化を行うことはできません。

※メソッドは複数行にわたっていくつでも定義することができます。

コンストラクタ、デストラクタについて

コンストラクタ、デストラクタはそれぞれオブジェクトの生成、消滅の際に呼び出される戻り値がない関数（Sub定義）です。関数名は "クラス名" 及び "~クラス名" が利用され、これらの名前を持つ関数は自動的にコンストラクタ、デストラクタと認識されます。

オブジェクトの生成時に呼び出されるコンストラクタではオブジェクトの初期化を行います。コンストラクタについてはパラメータを指定することができます。オブジェクトの消滅時に呼び出されるデストラクタではオブジェクトが利用したデータの破棄処理などを行います。デストラクタについてはパラメータを指定することはできません。

コンストラクタ及びデストラクタはクラス外から呼び出されるケースがほとんどのため、アクセシビリティをパブリックにセットしておく必要があります。

呼び出されるタイミング

コンストラクタ及びデストラクタは下記のように実態オブジェクトの定義を行うと、コンストラクタが自動的に呼び出されます。

Dim obj As CClass(param)

デストラクタは下記のようなオブジェクトが破棄されるタイミングで呼び出されます。
・グローバル領域で定義されたオブジェクトについてはプログラム終了時
・ローカル領域で定義されたオブジェクトについてはプロシージャ抜け出し時
・New演算子で生成されたオブジェクトについては、Delete演算子を使用した時

コンストラクタ、デストラクタの省略

コンストラクタまたはデストラクタの定義を省略すると、下のような引数を持たない空のコンストラクタ、デストラクタが暗黙的に定義されます。

Sub ClassName()
    '空のコンストラクタ
End Sub

Sub ~ClassName()
    '空のデストラクタ
End Sub

クラスを継承したときのコンストラクタ、デストラクタの動き

クラスの継承が行ったとき、サブクラスのコンストラクタ、デストラクタ呼び出し時にはスーパークラス（継承元クラス）のコンストラクタの呼び出しを行います。

サブクラスのコンストラクタの定義を省略したとき、またはサブクラスのコンストラクタの先頭部分でスーパークラスのコンストラクタの呼び出しを行わなかったときは、スーパークラスのコンストラクタ呼び出しが引数無しで暗黙的に呼び出されます。呼び出し順序は下のようになります。

スーパークラスのコンストラクタの呼び出し
↓
サブクラスのコンストラクタの呼び出し

サブクラスのデストラクタが呼び出された後に、スーパークラスのデストラクタが暗黙的に呼び出されます。

サブクラスのデストラクタの呼び出し
↓
スーパークラスのデストラクタの呼び出し

メンバとして含まれる実体クラスのコンストラクタ、デストラクタの動き（コンポジション）

親クラスに属すメンバとして実体クラス（以後、メンバクラス）が定義されるとき、メンバクラスのコンストラクタ（引数が存在するものを除く）及びデストラクタは下記のような順序で自動的に呼び出されます。メンバクラスのコンストラクタが引数を持つとき、自動呼び出しは行われません。このような場合は任意に呼び出さなければならないので、注意が必要です。

メンバクラスのコンストラクタの呼び出し
↓
親クラスのコンストラクタの呼び出し

親クラスのデストラクタが呼び出された後に、メンバクラスのデストラクタが暗黙的に呼び出されます。

親クラスのデストラクタの呼び出し
↓
メンバクラスのデストラクタの呼び出し

仮想関数について

仮想関数は主にCOMインターフェイスを定義する際に活用します。具体的には下記のようにメンバの先頭部分に関数ポインタの配列を示すポインタを保持します。

VTblPtr->Table[0]->Proc0
         Table[1]->Proc1
         Table[2]->Proc2
         Table[3]->Proc3
         Table[4]->Proc4

仮想関数の呼び出しは通常のメソッドと同様の手順で行うことができるため、特別が利用がない限りこれらの構造を意識する必要はありません。また、仮想関数を定義しただけでは関数ポインタには何のデータも格納されないため、インターフェイスの取得または任意の関数ポインタを格納する必要があります。

クラス定義及びオブジェクト生成の例

CHumanというクラスをベースに名前と誕生年、年齢を表示するプログラムです。

はじめにClass ～ End ClassステートメントでCHumanクラスの定義を行います。名前、誕生年のデータはそれぞれpName、BirthYearというメンバに格納することにします。pName、BirthYearの値設定及び参照はクラス内のメソッドを通して行うので、外部からアクセス不可能なプライベートで宣言します。続いて、メソッドを定義していきます。GetAge関数はBirthYearの値をもとに現在の年齢を計算する関数です。後に定義するメソッドShowHumanDataから呼び出される以外は使われることがないので、プライベートで宣言しています。オブジェクトの生成、消滅時に呼び出されるコンストラクタ（CHuman関数）、デストラクタ（~CHuman関数）は共にパブリックなメソッドとして定義します。コンストラクタでは初期データ（名前と誕生年）のセットを行います。デストラクタでは名前バッファで確保したメモリの解放を行います。ShowHumanData関数は名前、誕生年、年齢をメッセージボックスで表示する関数です。

クラスの定義が完了すれば、Dimステートメントを利用して実際にオブジェクトを生成できるようになります。ここではobj_dai、obj_yasuという2つのオブジェクトを生成しています。コンストラクタ、デストラクタがオブジェクトの生成時、関数抜け出し時に呼び出されるところに注目しておきましょう。オブジェクトが生成できたらそれぞれShowHumanData関数を呼び出してデータを表示して一連の流れは終了します。

Class CHuman
    pName As BytePtr    '名前バッファへのポインタ
    BirthYear As Long   '誕生年

    '年齢を取得するための関数
    Function GetAge() As Long
        Dim st As SYSTEMTIME
        GetLocalTime(st)
        GetAge=st.wYear-BirthYear
    End Function

Public
    'コンストラクタ
    Sub CHuman(buf As BytePtr, n As Long)
        'メモリを確保し、名前をセット
        pName=malloc(lstrlen(buf)+1)
        lstrcpy(pName,buf)

        '誕生歳をセット
        BirthYear=n
    End Sub

    'デストラクタ
    Sub ~CHuman()
        '名前で使用したメモリを解放
        free(pName)
    End Sub

    'データを表示するための関数
    Sub ShowHumanData(hWnd As DWord)
        Dim buf[255] As Byte

        wsprintf(buf,Ex"名前:%s\r\n%d年生まれ\r\n今年で%d歳",pName,BirthYear,GetAge())
        MessageBox(hWnd,buf,"Class Test",MB_OK)
    End Sub
End Class

Sub Main()
    'オブジェクトを生成
    Dim obj_dai As CHuman("Daisuke",1983)
    Dim obj_yasu As CHuman("Yasuharu",1984)
    Dim hDeskWnd As DWord

    hDeskWnd=GetDesktopWindow()

    'オブジェクトのデータを表示する
    obj_dai.ShowHumanData(hDeskWnd)
    obj_yasu.ShowHumanData(hDeskWnd)

    'デストラクタは関数終了時に自動的に呼び出される
End Sub

'メイン関数の呼び出し
Main()

New演算子、Delete演算子、メソッドのオーバーライド、Interface ～ End Interface ステートメント


 Interface ～ End Interface ステートメント

インターフェイスを定義します。

書式
Interface interface_name
    [Inherits BaseInterface]

    Sub/Function FuncName ([arglist]) [As RetType]
    ...

End Interface
interface_name
インターフェイス名を指定します。
Inherits BaseInterface
BaseInterfaceにベースインターフェイスを指定すると継承を行うことができます。InheritsはInterface定義内の先頭に記述しなければなりません。また、継承を行わない場合は省略できます。
Sub/Function
Subを指定すると戻り値がないプロシージャが定義されます。Functionを指定すると戻り値がある関数が定義されます。
FuncName
メソッドの名前を指定します。
arglist
パラメータを指定します（詳細...）。
RetType
戻り値のデータ型を指定します。Function定義の場合のみ有効です。
※メソッドはいくつでも定義できます。

備考

インターフェイスとは、抽象メソッドのみを保有する抽象クラスと同等の意味を持ちます。派生クラスで実装を行うか、またはCOMインターフェイスなどとして利用することができます。

Class ～ End Class ステートメント


命令語：Open

 命令語： Open

ファイルを開きます。

仕様

Open filename$ [For Access] As number

filename$
ターゲットとなるファイルへのパスを文字列で指定します。

Access
アクセス権を設定します。
「Input」を指定した場合、読み取り専用でオープンし、
「Output」を指定した場合、書き込み専用でオープンします。
「Append」を指定した場合、追加書き込み専用でオープンします。
省略した場合はオールアクセス（読み書き可能）でオープンします。

number
ファイル番号を指定します。

備考

ファイルを開いている時は他のプロセスがファイルにアクセスできなくなります。
ファイルを閉じる場合はClose命令語を使用して下さい。

環境情報

インクルード ファイル: basic\command.sbp 内で定義済み

Close命令語


命令語：Close

 命令語： Close

ファイルを閉じます。

仕様

Close [number]

number
ファイル番号を指定します。省略した場合はすべてのファイルを閉じます。

環境情報

インクルード ファイル: basic\command.sbp 内で定義済み

Open 命令語


命令語：Print #

 命令語： Print #

データをファイルへ出力します。

仕様：

Print #FileNubmer, data [, ...]

FileNubmer
ファイル番号を指定します。

data
出力する文字列や数値を指定します。カンマ（,）やセミコロン（;）で区切り、複数のデータを同時に出力することもできます。

解説

データを出力した分だけファイルポインタが移動します。

環境情報

インクルード ファイル: basic\command.sbp 内で定義済み

Open命令語、Input #命令語


命令語：Input #

 命令語： Input #

ファイル内のデータを読み込みます。

仕様

Input #filenumber, variable [, ...]

filenumber
ファイル番号を指定します。

variable
データを格納する変数を指定します。カンマ(,)で区切って複数の入力を求めることもできます。

解説

データを読み取った分だけ、ファイルポインタが移動します。

環境情報

インクルード ファイル: basic\command.sbp 内で定義済み

Open命令語、Print #命令語


命令語：Field

 命令語： Field

ランダムファイルのフィールド長、割り当て変数を定義します。

仕様

Field #filenumber, fieldbyte

filenumber
ファイル番号を指定します。あらかじめOpen 命令語でファイルを開いておいて下さい。

fieldbyte
１フィールドの長さ（バイト数）を指定します。

備考

Field命令語を利用する際には、Open命令語でランダムアクセスファイルとしてオープンして下さい。詳しくはOpen 命令語を参照して下さい。
ファイルの読み込みはGet# 命令語、ファイルへの書き込みはPut# 命令語を参照して下さい。

サンプル

'「read.txt」の内容（10バイト）を「write.txt」へコピーするものです。
Dim buffer As String
Open "read.txt" as #1
Open "write.txt" as #2
Field #1,10
Field #2,10
Get #1,1,buffer
Put #2,1,buffer
Close #1
Close #2
環境情報

インクルード ファイル: basic\command.sbp 内で定義済み

Open 命令語、Get# 命令語、Put# 命令語


命令語：Get#

 命令語： Get #

ランダムファイルからデータを読み取ります。

仕様

Get #filenumber, recode, StrBuffer

filenumber
ファイル番号を指定します。あらかじめOpen 命令語でファイルを開き、Field 命令語でフィールド長と割り当て変数を設定しておく必要があります。

recode
何レコード目から読み取るのかを指定します。

StrBuffer
読み込んだデータを保存するための文字列変数を指定します。

備考

ファイルの終端かどうかを調べるにはEof 関数を使用して下さい。

環境情報

インクルード ファイル: basic\command.sbp 内で定義済み

Open 命令語、Field 命令語、Put# 命令語


命令語：Put #

 命令語： Put #

ランダムファイルへデータを書き込みます。

仕様

Put #filenumber, recode, StrBuffer

filenumber
ファイル番号を指定します。あらかじめOpen 命令語でファイルを開き、Field 命令語でフィールド長、割り当て変数を定義している必要があります。

recode
何レコード目から書き込むのかを指定します。

StrBuffer
書き込みのためのデータが格納されている文字列変数を指定します。

備考

ファイルの終了かどうかを調べるにはEof 関数を使用して下さい。

環境情報

インクルード ファイル: basic\command.sbp 内で定義済み

Open命令語、Field命令語、Get #命令語


命令語：Print

 命令語： Print

データをプロンプト画面へ出力します。

仕様

Print [data , ...]

data
出力する文字列や数値を指定します。カンマ（,）やセミコロン（;）で区切り、複数のデータを同時に出力することもできます。省略した場合は改行として用いられます。
カンマ（,）はタブ文字で区切ります。
セミコロン（;）はスペースで区切ります。

備考

改行を行わない場合は、行の最後にセミコロン（;）を指定して下さい。
この命令語は、プロンプト ディレクティブが指定されている場合にのみ有効です。

環境情報

インクルード ファイル: basic\command.sbp 内で定義済み (PRINT_ToFile)
インクルード ファイル: basic\prompt.sbp 内で定義済み (PRINT_ToPrompt)

Write命令語


命令語：Input

 命令語： Input

ユーザーからのデータ入力（数値または文字列）を受け付けます。

仕様

Input ["title str", ] variable [, ...]

title str
入力カーソル位置の左側に表示する文字列を指定します。省略すると、"? "が表示されます。

variable
入力されたデータを格納する変数を指定します。カンマ(,)で区切って複数の入力を求めることもできます。

備考

この命令語は、プロンプト ディレクティブが指定されている場合にのみ有効です。

環境情報

インクルード ファイル: basic\prompt.sbp 内で定義済み


命令語：Write

 命令語： Write

データをプロンプト画面、またはファイルへ出力します。

仕様

Write [#filenumber, ] [data , ...]

filenumber
ファイル番号を指定します。省略した場合は、結果が画面に出力されます。

data
出力する文字列や数値を指定します。カンマ（,）やセミコロン（;）で区切り、複数のデータを同時に出力することもできます。省略した場合は改行として用いられます。

解説

Print命令語とは違い、データの区切りがカンマ（,）となります。

環境情報

インクルード ファイル: basic\command.sbp 内で定義済み (PRINT_ToFile)
インクルード ファイル: basic\prompt.sbp 内で定義済み (PRINT_ToPrompt)

Print 命令語


命令語：Cls

 命令語： Cls

プロンプト画面の内容をクリアします。

仕様

Cls [number]

number
省略するか1を指定した場合はテキストのみがクリアされ、
2を指定した場合はグラフィックのみがクリアされます。
3を指定した場合はテキストとグラフィックの両方がクリアされます。

備考

この命令語は、プロンプト ディレクティブが指定されている場合にのみ有効です。

環境情報

インクルード ファイル: basic\prompt.sbp 内で定義済み


命令語：Circle

 命令語： Circle

円または楕円を描画します。

仕様

Circle (x, y), radius [, color] [, start] [, end] [, aspect] [, f] [, color2]

x
円の中心となるX座標を指定します。

y
円の中心となるY座標を指定します。

radius
円の半径を指定します。

color
カラーコードを指定します。

start
円描画の開始位置を指定します。
範囲（-2π <= start <=2π）

end
円描画の終始位置を指定します。
範囲（-2π <= end <=2π）

aspect
幅と高さの比率を指定します。
1以上を指定した場合、y軸の長さを基準とした比率が設定され、
1未満を指定した場合、x軸の長さを基準とした比率が設定されます。

f
ここにfを指定した場合、円の内部が塗りつぶされます。

color2
fを指定した場合に限り、塗りつぶすためのブラシのカラーコードを指定できます。

備考

startとendパラメータにマイナス符号をつけて指定することで、扇形を描画することができます（塗りつぶし可能）。
この命令語は、プロンプト ディレクティブが指定されている場合にのみ有効です。

環境情報

インクルード ファイル: basic\prompt.sbp 内で定義済み

カラーコード


命令語：Line

 命令語： Line

線を描画します。

仕様

Line [(sx, sy)] -[Step ] (ex, ey) [, color] [, B/Bf] [, color2]

(sx, sy)
線または四角形の開始点の座標を指定します。
※省略した場合は前回描画した再にendに指定した座標、またはそれがない場合は(0,0)が適応されます。

Step
「Step」を指定すると、startX,startYからendX,endYにではなく、startX,startYから横endX,縦endYというような解釈の仕方になります。
Line(50,50)-(50+30,50+30)
Line(50,50)-Step(30,30)
この二つの書き方は同じ動きをすることとなります。

(ex, ey)
線または四角形の終始点の座標を指定します。

color
カラーコードを指定します。

B/Bf
「B」を指定した場合、中が透明な四角形を描画します。
「Bf」を指定した場合、中を塗りつぶした四角形を描画します。

color2
前のパラメータに Bf が指定された場合にのみ有効です。
四角形の内部の色をカラーコードで設定します。

備考

この命令語は、プロンプト ディレクティブが指定されている場合にのみ有効です。

環境情報

インクルード ファイル: basic\prompt.sbp 内で定義済み

カラーコード


命令語：PSet

 命令語： PSet

指定したドットを描画します。

仕様

PSet (x, y) [, color]

(x, y)
点の座標を指定します。

color
カラーコードを指定します。

備考

この命令語は、プロンプト ディレクティブが指定されている場合にのみ有効です。

環境情報

インクルード ファイル: basic\prompt.sbp 内で定義済み

カラーコード


命令語：Paint

 命令語： Paint

指定した画面領域を塗りつぶします。

仕様

Paint (x, y), color1 [, color2]

(x, y)
ペイントする適当な座標を指定します。

color1
ブラシの色をカラーコードで指定します。

color2
境界線の色をカラーコードで指定します。

環境情報

インクルード ファイル: basic\prompt.sbp 内で定義済み

カラーコード


命令語：Window

 命令語： Window

新規にウィンドウを作成します。

仕様：

Window hNewWnd, hOwnerWnd, x, y, width, height, title$, style [, class$] [, ID] [, callbackfunction] [, ExStyle]

hNewWnd
作成されたウィンドウのハンドルが格納されます。

hOwnerWnd
親ウィンドウのハンドルを指定します。
0 を指定するとデスクトップが親ウィンドウになります。

x
ウィンドウのX座標を指定します。
-1 を指定すると適当な座標が設定されます。

y
ウィンドウのY座標を指定します。
-1 を指定すると適当な座標が設定されます。

width
ウィンドウの幅を指定します。
-1 を指定すると適当な幅が設定されます。

height
ウィンドウの高さを指定します。
-1 を指定すると適当な高さが設定されます。

title$
ウィンドウのタイトルバーに表示する文字列を指定します。

style
ウィンドウスタイルを指定します。スタイル定数をOR演算で組み合わせて下さい。
スタイル定数の説明は下の「ウィンドウスタイル定数」を参照して下さい。

class$
クラス名を指定します。
クラスについての詳しい情報は下の「ウィンドウクラス」を参照して下さい。
省略した場合はクラス名"NORMAL"が設定されます。

ID
ウィンドウIDを指定します。ウィンドウIDはボタンコントロールなどで親ウィンドウにメッセージ通知される場合に使用されます。

callbackfunction
作成するウィンドウが "NORMAL" クラスの場合に有効です。
コールバック関数として使用するプロシージャを指定します。

ExStyle
ウィンドウの拡張スタイルを指定します。詳しい情報は「拡張スタイルについて」をご覧下さい。

ウィンドウクラス

クラス名 | 概要
"BUTTON" | ボタンコントロールです。
"COMBOBOX" | リストボックスとエディットウィンドウを組み合わせたものです。
"EDIT" | テキスト入力ウィンドウです。
"LISTBOX" | 文字列のリストを表示します。
"MDICLIENT" | MDIクライアントウィンドウです。
"NORMAL" | 背景が白のノーマルなウィンドウです。
"PROMPT" | プロンプトの標準入出力機能が使用できるウィンドウです。
"SCROLLBAR" | スクロールバーです。
"STATIC" | 文字列を表示するウィンドウです。

ウィンドウスタイル定数

※標準ウィンドウスタイル
定数 | 説明
WS_BORDER | 境界線を持つウィンドウを作成します。
WS_CAPTION | タイトルバーを持つウィンドウを作成します（WS_BORDERも含みます）。
WS_CHILD | 子ウィンドウを作成します。
WS_CHILDWINDOW | WS_CHILDと同じです。
WS_CLIPCHILDREN | 親ウィンドウ内部を描画するときに、子ウィンドウが占める領域を除外します（親ウィンドウを作成する場合に使用できます）。
WS_CLIPSIBLINGS | 兄弟関係にあるウィンドウをクリップします。
WS_DISABLED | 無効（使用不可能）なウィンドウを作成します。
WS_DLGFRAME | ダイアログボックスでよく見られる、境界を持つウィンドウを作成します。
WS_GROUP | コントロールグループの最初のコントロールを示します。
WS_HSCROLL | 水平スクロールバーを持つウィンドウを作成します。
WS_ICONIC | WS_MINIMIZEと同じです。
WS_MAXIMIZE | 最大化したウィンドウを作成します。
WS_MAXIMIZEBOX | 最大化ボタンを持つウィンドウを作成します。
WS_MINIMIZE | 最小化したウィンドウを作成します。
WS_MINIMIZEBOX | 最小化ボタンを持つウィンドウを作成します。
WS_OVERLAPPED | オーバーラップウィンドウを作成します。タイトルバーと枠を持ちます。
WS_OVERLAPPEDWINDOW | WS_OVERLAPPED、WS_CAPTION、WS_SYSMENU、WS_THICKFRAME、WS_MAXIMIZEBOX、WS_MINIMIZEBOXを組み合わせたものです。
WS_POPUP | ポップアップウィンドウを作成します（WS_CHILDと一緒に使用しないで下さい）。
WS_POPUPWINDOW | WS_BORDER、WS_POPUP、WS_SYSMENUを組み合わせたものです。
WS_SIZEBOX | WS_THICKFRAMEと同じです。
WS_SYSMENU | タイトルバー上にウィンドウメニューを持つウィンドウを作成します。
WS_TABSTOP | ユーザーがTABキーを押すと入力フォーカスを受けるコントロールを指定します。
WS_THICKFRAME | サイズ変更境界を持つウィンドウを作成します。
WS_TILED | WS_OVERLAPPEDと同じです。
WS_TILEDWINDOW | WS_OVERLAPPEDWINDDOWと同じです。
WS_VISIBLE | 可視状態のウィンドウを作成します。
WS_VSCROLL | 垂直スクロールバーを持つウィンドウを作成します。

※BUTTONクラスでのスタイル
定数 | 説明
BS_3STATE | 選択された状態、選択されていない状態、グレー表示の状態という3つの状態を持つチェックボックスを作成します。グレーの状態は、チェックボックスの状態が決められていないことを示すときなどに使います。
BS_AUTO3STATE | BS_3STATEと同じボタンを作成します。ただし、ユーザーがチェックボックスを選択するとボックスの状態が自動的に変わります。
BS_AUTOCHECKBOX | チェックボックスを作成します。ただし、ユーザーがチェックボックスを選択するとボックスの状態が自動的に変わります。
BS_AUTORADIOBUTTON | ラジオボタンを作成します。ただし、ユーザーがボタンを選択すると、Windowsが自動的にボタンを選択状態にし、同じグループのほかのボタンを非選択状態にします。
BS_CHECKBOX | チェックボックスを作成します。
BS_DEFPUSHBUTTON | プッシュボタンを作成します。ただし、黒色の太い境界も持ちます。このボタンがダイアログボックスにある場合は、ボタンが入力フォーカスを持っていなくても、エンターキーを押せばボタンを選択できます。
BS_GROUPBOX | グループボックスを作成します。ほかのコントロールを、このコントロールの中にグループ化できます。
BS_LEFTTEXT | ラジオボタンスタイルやチェックボックススタイルと組み合わせると、ラジオボタンの円やチェックボックスの四角の左側にテキストが置かれます。BS_RIGHTBUTTONスタイルを同じです。
BS_OWNERDRAW | オーナー描画ボタンを作成します。オーナーウィンドウは、ボタンが作成されるとWM_MEASUREITEMメッセージを受け取り、ボタンの外観が変わるとWM_DRAWITEMメッセージを受け取ります。他のボタンスタイルと組み合わせることはできません。
BS_PUSHBUTTON | プッシュボタンを作成します。
BS_RADIOBUTTON | ラジオボタンを作成します。
BS_BITMAP | ビットマップを表示するボタンを作成します。
BS_BOTTOM | ボタンの下部にテキストを置きます。
BS_CENTER | ボタンの中央にテキスト置きます。
BS_ICON | アイコンを表示するボタンを作成します。
BS_LEFT | ボタンの中にテキストを左寄せします。ボタンがBS_RIGHTBUTTONスタイルを持たないチェックボックス（またはラジオボタン）の場合は、テキストはチェックボックスやラジオボタンの右側に左寄せされます。
BS_MULTILINE | テキストが長すぎてボタンの中に一行で収まらないときは、テキストを複数行に折り返します。
BS_NOTIFY | 親ウィンドウに、ボタンがBN_DBLCLK通知メッセージ、BN_KILLFOCUS通知メッセージ、BN_SETFOCUS通知メッセージを送ることを可能にします。このスタイルを持つかどうかに関わらず、ボタンはBN_CLICKED通知メッセージを送ります。
BS_PUSHLIKE | プッシュボタンのような概観と機能を持つ、チェックボックスまたはラジオボタンを作ります。
BS_RIGHT | ボタンの中にテキストを右寄せします。ボタンがBS_RIGHTBUTTONスタイルを持たないチェックボックス（またはラジオボタン）の場合は、テキストはチェックボックスやラジオボタンの右側に右寄せされます。
BS_RIGHTBUTTON | BS_LEFTTEXT スタイルと同じです。
BS_TEXT | ボタンがテキストを表示するよう指定します。
BS_TOP | ボタンの最上部にテキストを置きます。
BS_VCENTER | ボタンの（垂直方向の）中央にテキストを置きます。

※COMBOBOXクラスでのスタイル
定数 | 説明
CBS_AUTOHSCROLL | ユーザーが行末に文字を入力すると、エディットコントロール内のテキストが自動的に右スクロールします。このスタイルを設定しないと、エディットコントロールの枠内に収まるテキストしか入力できません。
CBS_DISABLENOSCROLL | スクロールするほどの項目数がない場合、リストボックスの垂直方向のスクロールバーが無効状態で表示されます。通常は表示されません。
CBS_DROPDOWN | ドロップダウンコンボボックスを作成します。CBS_SIMPLEに似ていますが、ユーザーがエディットコントロールの横にあるアイコンを選択しないとリストボックスが表示されません。
CBS_DROPDOWNLIST | ドロップダウンリストボックスを作成します。CBS_DROPDOWN に似ていますが、テキストの編集はできません。
CBS_HASSTRINGS | オーナー描画コンボボックスの持つ項目が、文字列であることを指定します。コンボボックスが文字列用のメモリとアドレスを管理するので、アプリケーションはCB_GETLBTEXTメッセージを使用して特定項目のテキストを取り出すことができます。
CBS_LOWERCASE | コンボボックスのエディットコントロールに入力された大文字を、小文字に変換します。
CBS_NOINTEGRALHEIGHT | コンボボックスのサイズを指定します。通常は、項目が途中で切れないように、Windowsシステムがコンボボックスのサイズを調整します。
CBS_OEMCONVERT | コンボボックスのエディットコントロールに入力されたテキストを変換します。テキストはWindows文字セットからOEM文字セットに変換され、その後にまたWindows文字セットに変換されます。
CBS_OWNERDRAWFIXED | 各項目の高さがすべて同じ、オーナー描画コンボボックスを作成します。
CBS_OWNERDRAWVARIABLE | 各項目の高さが可変の、オーナー描画コンボボックスを作成します。
CBS_SIMPLE | 常時リストボックスが表示されるコンボボックスを作成します。リストボックス内の現在の選択項目は、エディットコントロール内に表示されます。
CBS_SORT | リストボックスに追加された文字列を自動的に並べ替えます。
CBS_UPPERCASE | コンボボックスのエディットコントロールに入力された小文字を、大文字に変換します。

※EDITクラスでのスタイル
定数 | 説明
ES_AUTOHSCROLL | ユーザーが行末に文字を入力すると、エディットコントロール内のテキストが自動的に右スクロールします。
ES_AUTOVSCROLL | ユーザーが最下行でエンターキーを押すと、テキストを自動的に上にスクロールします。
ES_CENTER | 複数行エディットコントロールにおいて、テキストを中央揃えで表示します。
ES_LEFT | テキストを左揃えで表示します。
ES_LOWERCASE | エディットコントロールに入力された文字を、小文字に変換します。
ES_MULTILINE | 複数行エディットコントロールを作成します。デフォルトは一行のエディットコントロールです。ダイアログボックス内の複数行エディットコントロールで［Enter］キーを押すと、デフォルトのボタンがアクティブになります。エンターキーを改行のために使うには、ES_WANTRETURNスタイルを使用します
ES_NOHIDESEL | エディットコントロール内の選択文字列のデフォルトの動作を無効にします。デフォルトでは、コントロールが入力フォーカスを失うと選択項目が表示されなくなり、入力フォーカスを受け取ると反転表示されます。ES_NOHIDESELを指定すると、選択されたテキストは、コントロールがフォーカス持っていない場合も反転表示されます。
ES_NUMBER | 数字だけが入力できるようにします。
ES_OEMCONVERT | エディットコントロールに入力されたテキストを変換します。テキストはWindows文字セットから OEM 文字セットに変換され、その後にまたWindows文字セットに変換されます。
ES_PASSWORD | エディットコントロールに入力された文字を、アスタリスク「*」で置き換えて表示します。表示する文字を変更するには、EM_SETPASSWORDCHARメッセージを使います。
ES_READONLY | ユーザーによるテキストの入力や編集をできなくします。
ES_RIGHT | 複数行エディットコントロールにおいて、テキストを右揃えで表示します。
ES_UPPERCASE | エディットコントロールに入力された文字を、大文字に変換します。
ES_WANTRETURN | ダイアログボックス内の複数行エディットコントロールにテキストを入力しているときにエンターキーが押されると、改行が挿入されるようにします。このスタイルを指定していないと、ダイアログボックスのデフォルトのプッシュボタンが押されます。このスタイルは、一行のエディットコントロールでは効果がありません。

※LISTBOXクラスでのスタイル
定数 | 説明
LBS_DISABLENOSCROLL | スクロールするほどの項目数がない場合、リストボックスの垂直方向のスクロールバーが無効状態で表示されます。通常はスクロールバーは表示されません。
LBS_EXTENDEDSEL | シフトキーとマウス、または特殊なキーの組み合わせで、複数の項目を選択できるようにします。
LBS_HASSTRINGS | リストボックスの項目が、文字列であることを指定します。リストボックスが文字列用のメモリとアドレスを管理するので、アプリケーションはLB_GETTEXTメッセージを使用して特定項目のテキストを取り出すことができます。デフォルトでは、オーナー描画のリストボックス以外のすべてのリストボックスが、このスタイルを持ちます。
LBS_MULTICOLUMN | 水平にスクロールする複数列のリストボックスを指定します。LB_SETCOLUMNWIDTHメッセージで列の幅を設定します。
LBS_MULTIPLESEL | 項目をクリックまたはダブルクリックして、複数の項目を選択できるようにします。
LBS_NODATA | データを持たないリストボックスを指定します。リストボックス内の項目数が1000を超えるときに、このスタイルを指定します。データを持たないリストボックスには、LBS_OWNERDRAWFIXEDスタイルが必要です。 LBS_SORT スタイルやLBS_HASSTRINGSスタイルは設定できません。項目に文字列やビットマップデータを持たないことを除くと、データを持たないリストボックスはオーナー描画リストボックスに似ています。項目の追加、挿入、削除のコマンドは常に無視されます。文字列の検索は、常に失敗します。
LBS_NOINTEGRALHEIGHT | リストボックスのサイズを指定します。通常は、項目が途中で切れないように、Windowsシステムがリストボックスのサイズを調整します。
LBS_NOREDRAW | 項目が変更されてもリストボックスの外観を更新しないように指定します。このスタイルは、WM_SETREDRAWメッセージを送ることでいつでも変更できます。
LBS_NOSEL | 表示するだけで選択できない項目を持つリストボックスを指定します。
LBS_NOTIFY | ユーザーがリストボックス内の文字列をクリック（またはダブルクリック）するたびに、親ウィンドウに入力メッセージを通知します。
LBS_OWNERDRAWFIXED | 各項目の高さがすべて同じ、オーナー描画リストボックスを作成します。
LBS_OWNERDRAWVARIABLE | 各項目の高さがすべて可変の、オーナー描画リストボックスを作成します。
LBS_SORT | リストボックス内の文字列をアルファベット順にソートします。
LBS_STANDARD | リストボックス内の文字列をアルファベット順にソートします。ユーザーが文字列をクリック（またはダブルクリック）するたびに、親ウィンドウは入力メッセージを受け取ります。リストボックスは四方に境界を持ちます。
LBS_USETABSTOPS | 文字列を描画するときに、リストボックスがタブ文字を認識し、展開できるようにします。デフォルトのタブ位置は32ダイアログボックス単位です。
LBS_WANTKEYBOARDINPUT | ユーザーがキーを押してリストボックスが入力フォーカスを持つたびに、リストボックスのオーナーがWM_VKEYTOITEMメッセージを受けるようにします。これにより、キーボード入力に特殊な処理を行えるようになります。

※SCROLLBARクラスでのスタイル
定数 | 説明
SBS_BOTTOMALIGN | スクロールバーの下端を、Window 命令語の x、y、width、heightパラメータで指定した長方形の下端にそろえます。スクロールバーの高さはデフォルトの高さになります。このスタイルはSBS_HORZスタイルと一緒に使います。
SBS_HORZ | 水平スクロールバーを作成します。SBS_BOTTOMALIGNスタイルもSBS_TOPALIGNスタイルも指定しないと、スクロールバーはWindow 命令語の x、y、width、heightパラメータで指定した位置とサイズになります。
SBS_LEFTALIGN | スクロールバーの左端を、Window 命令語の x、y、width、heightパラメータで指定した長方形の左端にそろえます。スクロールバーの幅は、デフォルトの幅になります。このスタイルはSBS_VERTスタイルと一緒に使います。
SBS_RIGHTALIGN | スクロールバーの右端を、Window 命令語の x、y、width、height パラメータで指定した長方形の右端にそろえます。スクロールバーの幅は、デフォルトの幅になります。このスタイルはSBS_VERTスタイルと一緒に使います。
SBS_SIZEBOX | サイズボックスを作成します。
SBS_SIZEBOXBOTTOMRIGHTALIGN | サイズボックスの右下隅を、Window 命令語の x、y、width、heightパラメータで指定した長方形の右下隅にそろえます。サイズボックスのサイズは、デフォルトのサイズになります。このスタイルはSBS_SIZEBOXスタイルと一緒に使います。
SBS_SIZEBOXTOPLEFTALIGN | サイズボックスの左上隅を、Window 命令語の x、y、width、heightパラメータで指定した長方形の左上隅にそろえます。サイズボックスのサイズは、デフォルトのサイズになります。このスタイルはSBS_SIZEBOXスタイルと一緒に使います。
SBS_SIZEGRIP | SBS_SIZEBOXスタイルと同じです。ただし、縁が盛り上がります。
SBS_TOPALIGN | スクロールバーの上端を、Window 命令語の x、y、width、heightパラメータで指定した長方形の上端にそろえます。スクロールバーの高さは、デフォルトの高さになります。このスタイルはSBS_HORZスタイルと一緒に使います。
SBS_VERT | 垂直スクロールバーを作成します。

※STATICクラスでのスタイル
定数 | 説明
SS_BITMAP | ビットマップを表示するスタティックコントロールを作成します。widthとheightパラメータは無視され、ビットマップに合わせてコントロールのサイズが調整されます。
SS_BLACKFRAME | ウィンドウの枠と同じ色の枠を持つボックスを作成します。Windowsのデフォルトの配色は黒です。
SS_BLACKRECT | ウィンドウの枠と同じ色で塗りつぶされた長方形を作成します。Windowsのデフォルトの配色は黒です。
SS_CENTER | テキストを中央揃えで表示します。テキストが行末を超える場合は自動的に折り返されます。
SS_CENTERIMAGE | コントロールのサイズが変更されても、SS_BITMAPスタイルやSS_ICONスタイルを持つスタティックコントロールの中心点は変えないようにします。
SS_GRAYFRAME | 画面の背景（デスクトップ）と同じ色の枠を持つボックスを作成します。Windowsのデフォルトの配色は灰色です。
SS_GRAYRECT | 画面の背景（デスクトップ）と同じ色で塗りつぶされた長方形を作成します。Windowsのデフォルトの配色は灰色です。
SS_ICON | アイコンを表示するスタティックコントロールを作成します。widthとheightパラメータは無視され、アイコンに合わせてコントロールのサイズが調整されます。
SS_LEFT | テキストを左揃えで表示します。テキストが行末を超える場合は自動的に折り返されます。
SS_LEFTNOWORDWRAP | テキストを左揃えで表示します。タブは展開されますが、テキストは折り返されません。行末を超えるテキストはクリップされます。
SS_METAPICT | メタファイルを表示するスタティックコントロールを作成します。メタファイルは、コントロールのサイズに合わせた大きさで表示されます。
SS_NOPREFIX | コントロールのテキスト中のアンパサント「&」文字を、アクセラレータのプリフィックス文字として解釈しないように指定します。このスタティックコントロールスタイルは、定義されているどのようなスタティックコントロールとも組み合わせて指定できます。アプリケーションは、ビット演算子OR使って、SS_NOPREFIXスタイルを他のスタイルと組み合わせることができます。ダイアログボックスのスタティックコントロール内に、アンパサント「&」を含むファイル名やその他の文字列を表示する必要があるときに便利です。
SS_NOTIFY | ユーザーがコントロールをクリック（またはダブルクリック）するたびに、親ウィンドウにSTN_CLICKED通知メッセージ（または STN_DBLCLK 通知メッセージ）を送ります。
SS_RIGHT | テキストを右揃えで表示します。
SS_RIGHTIMAGE | コントロールのサイズが変更されても、SS_BITMAPスタイルやSS_ICONスタイルを持つスタティックコントロールの右下隅は変えないようにします。
SS_SIMPLE | 単一行のテキストを左揃えで表示します。このコントロールの親ウィンドウやダイアログボックスはWM_CTLCOLORSTATICメッセージを処理してはいけません。
SS_WHITEFRAME | ウィンドウの背景と同じ色の枠を持つボックスを作成します。Windowsのデフォルトの配色は白です。
SS_WHITERECT | ウィンドウの背景と同じ色の枠で塗りつぶされた長方形を作成します。Windowsのデフォルトの配色は白です。

※ダイアログボックススタイル
定数 | 説明
DS_3DLOOK | ダイアログボックスを立体的に表示します。現在のバージョンのWindows用にコンパイルされたアプリケーションが作成するダイアログボックスには、自動的に立体的な外観が適用されます。
DS_ABSALIGN | ダイアログボックスの座標系を、スクリーン座標にします。デフォルトでは、クライアント座標になります。
DS_CENTER | デスクトップの作業領域の中央にダイアログボックスを配置します。作業領域は、タスクバーに覆われていない領域です。
DS_CENTERMOUSE | ダイアログボックスの中央にマウスポインタを配置します。
DS_CONTEXTHELP | ダイアログボックスのタイトルバーに［?］ボタンを追加します。ユーザーがこの［?］ボタンをクリックすると、マウスポインタに疑問符が付きます。その後、ユーザーがダイアログボックス内のコントロールをクリックすると、コントロールはWM_HELPメッセージを受け取ります。コントロールはダイアログの処理にそのメッセージを送ります。
DS_CONTROL | 他のダイアログボックスの子ウィンドウとして適切に機能する、プロパティシート内のページのようなダイアログボックスを作成します。
DS_FIXEDSYS | SYSTEM_FONTの代わりに、SYSTEM_FIXED_FONTを使用します。
DS_LOCALEDIT | 16 ビットのアプリケーションで使用します。
DS_MODALFRAME | モーダルダイアログボックスフレームを持つダイアログボックスを作成します。
DS_NOFAILCREATE | エラーが発生してもダイアログボックスを作成します。
DS_NOIDLEMSG | ダイアログボックスが表示されている間、WM_ENTERIDLEメッセージを抑制します。
DS_RECURSE | コントロールに似たダイアログボックスを作成します。
DS_SETFONT | ダイアログボックステンプレートが、フォント名とポイントサイズを持つことを示します。対応するフォントは、ダイアログボックスでテキストを表示するために使われます。
DS_SETFOREGROUND | ダイアログボックスをフォアグラウンドにします。このスタイルは、16ビット版のWindowsには適用できません。
DS_SYSMODAL | システムモーダルダイアログボックスを作成します。このスタイルを指定すると、ダイアログボックスが最前面ウィンドウ（WS_EX_TOPMOST）になります。その他の点では、ダイアログボックス自身やシステム内の他のウィンドウの振る舞いに影響を与えません。

備考

作成したウィンドウを実際に表示したい場合はShowWindow関数を使用して下さい。
必ず、作成した後にメッセージ処理を開始して下さい。ウィンドウ作成とメッセージ処理は必ず同じスレッド内で行って下さい。

環境情報

インクルード ファイル: basic\command.sbp 内で定義済み

ShowWindow関数、DelWnd命令語


命令語：DelWnd

 命令語： DelWnd

指定したウィンドウを破棄します。

仕様

DelWnd hWnd

hWnd
破棄するウィンドウのハンドルを指定して下さい。

環境情報

インクルード ファイル: basic\command.sbp 内で定義済み


命令語：MsgBox

 命令語： MsgBox

メッセージボックスを表示します。

仕様

MsgBox hWnd, String$ [, Title$] [, BoxType] [, retAns]

hWnd
親ウィンドウのハンドルを指定します。

String$
メッセージボックスに表示する文字列を指定します。

Title$
メッセージボックスのタイトルバーに表示する文字列を指定します。

BoxType
メッセージボックスの内容を変更します。以下の定数を組み合わせて下さい。
定数（ボタン設定） | 意味
MB_ABORTRETRYIGNORE | 「中止」、「再試行」、「無視」ボタンを表示します。
MB_OK | 「OK」ボタンを表示します。
MB_OKCANCEL | 「OK」、「キャンセル」ボタンを表示します。
MB_RETRYCANCEL | 「再試行」、「キャンセル」ボタンを表示します。
MB_YESNO | 「はい」、「いいえ」ボタンを表示します。
MB_YESNOCANCEL | 「はい」、「いいえ」、「キャンセル」ボタンを表示します。

定数（アイコン設定） | 意味
MB_ICONEXCLAMATION | 「！」アイコンを表示します。
MB_ICONINFORMATION | 「ｉ」アイコンを表示します。
MB_ICONQUESTION | 「？」アイコンを表示します。
MB_ICONSTOP | 「STOP」アイコンを表示します。

定数（標準ボタン設定） | 意味
MB_DEFBUTTON1 | 1番目のボタンをデフォルトプッシュボタンにします。
MB_DEFBUTTON2 | 2番目のボタンをデフォルトプッシュボタンにします。
MB_DEFBUTTON3 | 3番目のボタンをデフォルトプッシュボタンにします。
MB_DEFBUTTON4 | 4番目のボタンをデフォルトプッシュボタンにします。

定数（動作形態設定） | 意味
MB_APPLMODAL | ユーザーは、メッセージボックスに応答しなければ、hWndパラメータで指定されたウィンドウで作業を継続することはできません。ほかのアプリケーションのウィンドウに移動して作業することはできます。デフォルトです。
MB_SYSTEMMODAL | メッセージボックスがWS_EX_TOPMOSTスタイルを持つこと以外は、MB_APPLMODALと同じです。ユーザーがすぐに気付く必要があるような重大なエラーを通知するために使用します。
MB_TASKMODAL | hWndパラメータが0のときに現在のタスクに属するすべてのトップレベルウィンドウが無効になることを除いて、MB_APPLMODALと同じです。呼び出し側のアプリケーション（またはライブラリ）が有効なウィンドウのハンドルを持っておらず、かつ、ほかのアプリケーションを中断せずに現在のアプリケーションのほかのウィンドウへの入力を禁止したいときに使用します。

定数（その他設定） | 意味
MB_DEFAULT_DESKTOP_ONLY | 現在入力を受け取るデスクトップは、デフォルトのデスクトップでなければなりません。それ以外の場合には、関数が失敗します。デフォルトのデスクトップは、ユーザーがログオンした後でアプリケーションが動作するデスクトップです。
MB_HELP | 「ヘルプ」ボタンを追加します。ユーザーがヘルプボタンを選択したりF1キーを押したりすると、ヘルプイベントが生成されます。
MB_RIGHT | テキストを右寄せします。
MB_RTLREADING | 右から左へテキストを表示します。ヘブライ語やアラビア語をサポートしているシステムで有効です。
MB_SETFOREGROUND | メッセージボックスをフォアグラウンドウィンドウにします。
MB_TOPMOST | メッセージボックスを最前面ウィンドウ（WS_EX_TOPMOST）で作成します。

retAns
複数のボタンを持つメッセージボックスを作成した場合、どのボタンが押されたのかを示す定数が格納されます。
定数 | 意味
IDABORT | 「中止」ボタンが押されました。
IDCANCEL | 「キャンセル」ボタンが押されました。
IDIGNORE | 「無視」ボタンが押されました。
IDNO | 「いいえ」ボタンが押されました。
IDOK | 「OK」ボタンが押されました。
IDRETRY | 「再試行」ボタンが押されました。
IDYES | 「はい」ボタンが押されました。

備考

メッセージボックスが終了するまでプログラムは停止状態になります。

環境情報

インクルード ファイル: basic\command.sbp 内で定義済み


命令語：Beep

 命令語： Beep

ビープ音を鳴らします。

仕様

Beep

環境情報

インクルード ファイル: basic\command.sbp 内で定義済み


命令語：ChDir

 命令語： ChDir

カレントディレクトリを指定されたディレクトリに変更します。

仕様

ChDir dirpath$

dirpath$
ディレクトリへのパスを文字列で指定します。

環境情報

インクルード ファイル: basic\command.sbp 内で定義済み


命令語：Color

 命令語： Color

プロンプトの文字色を設定します。

仕様

Color textcolor [, backcolor]

textcolor
文字色をカラーコードで指定します。

backcolor
背景色をカラーコードで指定します。-1を指定すると背景色が透明になります。

環境情報

インクルード ファイル: basic\prompt.sbp 内で定義済み


命令語：Debug

 命令語： Debug

プログラムを一時的に停止させ、実行状態を表示します。

仕様

Debug

備考

実行状態として、スレッド、プロシージャ、変数（グローバル、ローカル）などの情報を調べることが可能です。
Debug命令語が実行されると、すべてのスレッドは一時的に停止します。ブレーク ポイント ダイアログを閉じると、プログラムの実行が再開します。

プロセス デバッガ


命令語：End

 命令語： End

プロセスを終了します。

仕様

End

備考

End命令語を使用してプログラムを終了しない場合も、最終のスレッドが停止した時点でプログラムが自動的に終了します。

環境情報

インクルード ファイル: basic\command.sbp 内で定義済み


命令語：Exec

 命令語： Exec

指定した実行ファイルを起動します。

仕様

Exec filename$ [, command$]

filename$
実行ファイルのパスを指定します。

command$
実行ファイルへ渡すコマンドパラメータを指定します。

環境情報

インクルード ファイル: basic\command.sbp 内で定義済み


命令語：Kill

 命令語： Kill

指定したファイルを削除します。

仕様

Kill filename$

filename$
削除するファイル名を示すパスを指定します。

環境情報

インクルード ファイル: basic\command.sbp 内で定義済み


命令語：Locate

 命令語： Locate

文字カーソルの位置を設定します。

仕様

Locate x, y

x
カーソルの列を指定します。

y
カーソルの行を指定します。

環境情報

インクルード ファイル: basic\prompt.sbp 内で定義済み


命令語：MkDir

 命令語： MkDir

ディレクトリを作成します。

仕様

MkDir directory$

directory$
作成するディレクトリを文字列で指定します。

解説

すでにディレクトリが存在する場合は無視されます。

環境情報

インクルード ファイル: basic\command.sbp 内で定義済み


命令語：Randomize

 命令語： Randomize

乱数系列をシステム タイマーを利用して初期化します。

仕様

Randomize

環境情報

インクルード ファイル: basic\command.sbp 内で定義済み

Rnd関数


関数：CDbl

 関数： CDbl

指定した数値を倍精度浮動小数点型で返します。

仕様

CDbl(number)

number
数値を指定します。

戻り値

number パラメータの値が倍精度浮動小数点型で返ります。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み

データ型について


関数：CInt

 関数： CInt

指定した数値を四捨五入した値を返します。

仕様

CInt(number)

number
数値を指定します。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み

データ型について


関数：CSng

 関数： CSng

指定した数値を単精度浮動小数点型で返します。

仕様

CSng(number)

number
数値を指定して下さい。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み

データ型について


関数：GetDouble

 関数： GetDouble

指定したポインタが示すDouble型データを取得します。

仕様

GetDouble(lpDouble)

lpDouble
ポインタを指定します。

戻り値

Double型データが返ります。

GetSingle関数、GetDWord関数、GetWord関数、GetByte関数、
SetDouble命令語、SetSingle命令語、SetDWord命令語、SetWord命令語、SetByte命令語


関数：GetSingle

 関数： GetSingle

指定したポインタが示すSingle型データを取得します。

仕様

GetSingle(lpSingle)

lpSingle
ポインタを指定します。

戻り値

Single型データが返ります。

GetDouble関数、GetDWord関数、GetWord関数、GetByte関数、
SetDouble命令語、SetSingle命令語、SetDWord命令語、SetWord命令語、SetByte命令語


関数：GetDWord

 関数： GetDWord

指定したポインタが示すDWord型データを取得します。

仕様

GetDWord(lpDWord)

lpDWord
ポインタを指定します。

戻り値

DWord型データが返ります。

GetDouble関数、GetSingle関数、GetWord関数、GetByte関数、
SetDouble命令語、SetSingle命令語、SetDWord命令語、SetWord命令語、SetByte命令語


関数：GetWord

 関数： GetWord

指定したポインタが示すWord型データを取得します。

仕様

GetWord(lpWord)

lpWord
ポインタを指定します。

戻り値

Word型データが返ります。

GetDouble関数、GetSingle関数、GetDWord関数、GetByte関数、
SetDouble命令語、SetSingle命令語、SetDWord命令語、SetWord命令語、SetByte命令語


関数：GetByte

 関数： GetByte

指定したポインタが示すByte型データを取得します。

仕様

GetByte(lpByte)

lpByte
ポインタを指定します。

戻り値

Byte型データが返ります。

GetDouble関数、GetSingle関数、GetDWord関数、GetWord関数、
SetDouble命令語、SetSingle命令語、SetDWord命令語、SetWord命令語、SetByte命令語


 StrPtr 関数

String型データの先頭ポインタを取得します。

書式
StrPtr(ByRef strData As String) As BytePtr
strData
String型のデータを指定します。
戻り値

String型データの先頭ポインタがBytePtr型で返ります。

解説

この関数はString型変数の文字列内容を取得する際に利用します。VarPtrと意味が似ていますが、VarPtrを利用して取得するString型変数のアドレスは文字列へのポインタを格納するための符号無し32ビット値になります。

環境情報

インクルード ファイル: system\string.sbp 内で定義済み

MakeStr関数


関数：Abs

 関数： Abs

指定した数値の絶対値を取得します。

仕様

Abs(number)

number
数値を指定します。

戻り値

number パラメータで指定した値の絶対値が返ります。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み


関数：Atn

 関数： Atn

指定した数値のアークタンジェントを取得します。

仕様

Atn(number)

number
数値を指定します。

戻り値

アークタンジェント（角度の単位はラジアン）が倍精度浮動小数点数型で返ります。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み


関数：Cos

 関数： Cos

指定した角度のコサインを取得します。

仕様

Cos(number)

number
ラジアン単位の角度を指定します。

戻り値

number パラメータで指定した角度のコサインが実数で返ります。

解説

戻り値は（-1 ～ 1）の範囲になります。
角度の単位を度からラジアンに変換する場合は、度に π/180 を掛けます。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み

Sin関数、Tan関数


関数：Exp

 関数： Exp

指数関数の計算を行います。

仕様

Exp(number)

number
数値を指定します。

戻り値

指数関数の計算結果が返ります。

解説

この関数は、のe^number という計算を行います。e の値は約 2.718282 です。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み

Log関数


関数：Fix

 関数： Fix

指定した実数を整数に変換します。

仕様

Fix(number)

number
数値を指定します。

戻り値

number パラメータで指定した値の整数値が返ります。

解説

Int関数では正、負に関係なく切り捨てをしますが、Fix関数では正の場合に切り捨て、負の場合に切り上げを行います。

サンプル

Print Fix(3.2)
Print Fix(-1.5)

' 実行結果
' 3
' -1

Int関数


関数：Int

 関数： Int

指定した実数を整数に変換します。

仕様

Int(number)

number
数値を指定します。

戻り値

number パラメータで指定した値の整数値が返ります。

解説

Fix関数では正の場合に切り捨て、負の場合に切り上げをしますが、Int関数では正、負に関係なく切り捨てを行います。

サンプル

Print Int(3.2)
Print Int(-1.5)

' --- 実行結果 ---
' 3
' -2

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み

Fix関数


関数：Log

 関数： Log

指定した数値の自然対数を取得します。

仕様

Log(number)

number
数値を指定します。

戻り値

number パラメータで指定した値の自然対数が返ります。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み

Exp関数


関数：Rnd

 関数： Rnd

擬似乱数を取得します。

仕様

Rnd( )

戻り値

擬似乱数が返ります。

解説

乱数は 0 以上、1 未満の実数で表されます。
疑似乱数の系列を初期化するにはRandomize命令語を使用して下さい。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み

Randomize命令語


関数：Sgn

 関数： Sgn

指定した数値の符号を取得します。

仕様

Sgn(number)

number
数値を指定します。

戻り値

number パラメータで指定した値が 1 以上のときは、1 を返します。
0 のときは、0 を返します。
0 未満のときは、-1 を返します。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み


関数：Sin

 関数： Sin

指定した角度のサインを取得します。

仕様

Sin(number)

number
ラジアン単位の角度を指定します。

戻り値

number パラメータで指定した角度のサインが実数で返ります。

解説

戻り値は（-1 ～ 1）の範囲になります。
角度の単位を度からラジアンに変換する場合は、度に π/180 を掛けます。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み

Cos関数、Tan関数


関数：Sqr

 関数： Sqr

指定した数値の平方根を取得します。

仕様

Sqr(number)

number
0 以上の数値を指定します。

戻り値

number パラメータで指定した数値の平方根が返ります。

解説

number パラメータにマイナス値を指定するとエラーになります。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み


関数：Tan

 関数： Tan

指定した角度のタンジェントを取得します。

仕様

Tan(number)

number
ラジアン単位の角度を指定します。

戻り値

number パラメータで指定した角度のタンジェントが実数で返ります。

解説

角度の単位を度からラジアンに変換する場合は、度に π/180 を掛けます。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み

Sin関数、Cos関数


関数：HIBYTE

 関数： HIBYTE

16 ビット整数値の上位 8 ビットを取得します。

仕様

HIBYTE(word)

word
16 ビット整数値を指定します。

戻り値

word パラメータで指定した 16 ビット整数値の上位 8 ビットが返ります。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み

LOBYTE関数


関数：HIWORD

 関数： HIWORD

32 ビット整数値の上位 16 ビットを取得します。

仕様

HIWORD(dword)

dword
32 ビット整数値を指定します。

戻り値

dword パラメータで指定した 32 ビット整数値の上位 16 ビットが返ります。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み

LOWORD関数


関数：LOBYTE

 関数： LOBYTE

16 ビット整数値の下位 8 ビットを取得します。

仕様

LOBYTE(word)

word
16 ビット整数値を指定します。

戻り値

word パラメータで指定した 16 ビット整数値の下位 8 ビットが返ります。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み

HIBYTE関数


関数：LOWORD

 関数： LOWORD

32 ビット整数値の下位 16 ビットを取得します。

仕様

LOWORD(dword)

dword
32 ビット整数値を指定します。

戻り値

dword パラメータで指定した 32 ビット整数値の下位 16 ビットが返ります。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み

HIWORD関数


関数：MAKELONG

 関数： MAKELONG

2 つの 16 ビット整数値から、 32 ビット整数値を作成します。

仕様

MAKELONG(LowWord, HighWord)

LowWord
下位ワードの数値を指定します。

HighWord
上位ワードの数値を指定します。

戻り値

32 ビット整数値が返ります。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み

MAKEWORD関数


関数：MAKEWORD

 関数： MAKEWORD

2 つの 8 ビット整数値から、 16 ビット整数値を作成します。

仕様

MAKEWORD(LowByte, HighByte)

LowByte
下位バイトの数値を指定します。

HighByte
上位バイトの数値を指定します。

戻り値

16 ビット整数値が返ります。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み

MAKELONG関数


関数：Asc

 関数： Asc

指定した文字列の先頭の文字コードを取得します。

仕様

Asc(buf$)

buf$
文字列を指定します。

戻り値

先頭の文字コードが返ります。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み


関数：Chr$

 関数： Chr$

指定した文字コードの文字列（1 文字）を取得します。

仕様

Chr$(charcode)

charcode
文字コードを整数で指定します。

戻り値

charcode パラメータで指定した文字を持つ、1 文字の文字列が返ります。

解説

Windowsの改行コードは以下のように表すことができます。
CRLF … Chr$(13)+Chr$(10)

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み


関数：Date$

 関数： Date$

日付を取得します。

仕様

Date$( )

戻り値

日付が格納された文字列が返ります。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み

Time$関数


関数：Hex$

 関数： Hex$

指定した数値を 16 進数で表現します。

仕様

Hex$(number)

number
数値を指定します。

戻り値

number パラメータの値を 16 進数にした文字列が返ります。

サンプル

a$=Hex$(100)
Print a$

' 実行結果
' 64

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み

Oct$関数、Str$関数


関数：Inkey$

 関数： Inkey$

キーボードから入力された文字を取得します。

仕様

Inkey$( )

戻り値

入力された文字列（通常は 1 文字）が返ります。入力がないときは、長さ 0 の文字列が返ります。

解説

この関数は、プロンプト ウィンドウ上でのみ利用可能です。
この関数は非同期式です。入力待機をせずに結果を返します。

サンプル

#N88BASIC

Dim temp As String
Do
    '入力された文字を取得
    Do
        temp=Inkey$()
    Loop While Len(temp)=0

    '十字キーの場合に限り、矢印を表示する
    Locate 3,3
    Select Case Asc(temp)
        Case VK_RIGHT
            Print "→";
        Case VK_LEFT
            Print "←";
        Case VK_UP
            Print "↑";
        Case VK_DOWN
            Print "↓";
    End Select
Loop
環境情報

インクルード ファイル: basic\prompt.sbp 内で定義済み

Input$


関数：Input$

 関数： Input$

指定した文字数だけ、ユーザーからのキーボード入力を受け付けます。

仕様

Input$(length)

length
要求する文字数を指定します。

戻り値

入力された文字列が返ります。

解説

この関数は、プロンプト ウィンドウ上でのみ利用可能です。
この関数は同期式です。ユーザーが入力を終えるまで、待機します。

環境情報

インクルード ファイル: basic\prompt.sbp 内で定義済み

Inkey$関数


関数：InStr

 関数： InStr

文字列の検索を行います。

仕様

InStr(StartPos, buf1, buf2 )

StartPos
buf1内で、検索を開始する位置を指定します（1が先頭になります）。

buf1
検索の対照となる文字列を指定します。

buf2
検索する文字列を指定します。

戻り値

一致する文字列が見つかったときは、buf1 内の文字列の位置が返ります。見つからなかったときは、0 が返ります。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み


関数：Left$

 関数： Left$

文字列の左端から、指定したバイト数の文字列を取得します。

仕様

Left$(buf$, length)

buf$
文字列を指定します。

length
バイト数を指定します。

戻り値

取得した文字列が返ります。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み

Right$関数


関数：Len

 関数： Len

指定した文字列、または変数のバイト数を取得します。

仕様

Len(variable$)

variable$
文字列、または変数を指定します。

解説

文字列、または文字列変数を指定すると、そのバイト数が返ります。
その他の型の変数（構造体も可）を指定すると、その変数が使用するバイト数を返します。

SizeOf演算子


 MakeStr 関数

NULL文字を終端文字に持つ文字列データを元にString型データを作成します。

書式
MakeStr(pBuf As BytePtr) As String
pBuf
文字列の先頭ポインタを指定します。
戻り値

変換後のString型データが返ります。

環境情報

インクルード ファイル: system\string.sbp 内で定義済み

StrPtr関数


関数：Mid$

 関数： Mid$

指定した文字列内の位置から、指定した長さの文字列を取り出します。

仕様

Mid$(buf$, start [, length])

buf$
文字列を指定します。

start
何バイト目から取得を開始するかを指定します（先頭は1）。

length
取得するバイト数を指定します。省略すると、start パラメータで指定した位置以降のすべての文字列を取得します。

戻り値

取得した文字列が返ります。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み


関数：Oct$

 関数： Oct$

指定した数値を 8 進数で表現します。

仕様

Oct$(number)

number
数値を指定します。

戻り値

number パラメータの値を 8 進数にした文字列が返ります。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み

Hex$関数、Str$関数


関数：Right$

 関数： Right$

文字列の右端から、指定したバイト数の文字列を取得します。

仕様

Right$(buf$, length)

buf$
文字列を指定します。

length
バイト数を指定します。

戻り値

取得した文字列が返ります。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み

Left$関数


関数：Space$

 関数： Space$

指定した文字数分の空白文字列を取得します。

仕様

Space$(length)

length
文字数を指定します。

戻り値

空白文字列が返ります。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み


関数：Str$

 関数： Str$

指定した数値を文字列に変換します。

仕様

Str$(number)

number
数値を指定します。

戻り値

number パラメータで指定した数値を含む、文字列が返ります。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み

Hex$関数、Oct$関数


関数：String$

 関数： String$

指定した文字列を指定した数だけ連結させます。

仕様

String$(number, buf$)

number
文字列をいくつならべるかを指定します。

buf$
文字列を指定します。

戻り値

連結された文字列が返ります。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み


関数：Time$

 関数： Time$

時刻を取得します。

仕様

Time$( )

戻り値

時刻が格納された文字列が返ります。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み

Date$関数


関数：Val

 関数： Val

指定した文字列内の数値を実数に変換します。

仕様

Val(buf$)

buf$
先頭に数値を含む、文字列を指定します。

戻り値

buf$ パラメータで指定した文字列の先頭にある数値を返します。

解説

変換する文字列の構造は
[符号または基数] [数値]
として下さい。符号が扱えるのは10進数のみです。
先頭のスペースやタブ文字は無視されます。

数値には、3 つの基数が扱えます。
8進数 … 数値文字列の先頭に「&O」が記入されているもの。
10進数 … 数値文字列の先頭が数値、または符号のもの。
16進数 … 数値文字列の先頭に「&H」が記入されているもの。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み

Str$関数


 ZeroString 関数

文字コード0を指定したバイト数だけ並べたString型データを取得します。

書式
ZeroString(length As DWord) As String
length
バイト数を指定します。
戻り値

String型データの先頭ポインタがBytePtr型で返ります。

環境情報

インクルード ファイル: system\string.sbp 内で定義済み


関数：_splitpath

 関数： _splitpath

指定されたフルパスを、ドライブ、ディレクトリ、ファイル、拡張子の各部分に分解します。

仕様
_splitpath( _
    path As BytePtr, _
    drive As BytePtr, _
    dir As BytePtr, _
    fname As BytePtr, _
    ext As BytePtr)
path
絶対パスを指定します。

drive
ここで指定したバッファにドライブ名が格納されます。（例："C:"）

dir
ここで指定したバッファにディレクトリが格納されます。（例："\dir1\dir2\"）

fname
ここで指定したバッファにファイル名が格納されます。（例："filename"）

ext
ここで指定したバッファに拡張子が格納されます。（例：".txt"）


関数：Eof

 関数： Eof

ファイルポインタがファイルの終端にあるかどうかを判断します。

仕様

Eof(FileNumber)

FileNumber
ファイル番号を指定します（ファイル番号の前に「#」を付ける必要はありません）。

戻り値

ファイルポインタが終端部分を示しているときは、-1が返ります。それ以外は、0が返ります。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み


関数：Loc

 関数： Loc

ファイル ポインタの位置を取得します。

仕様

Loc(filenum)

filenum
ファイル番号を指定します（ファイル番号の前の "#" は不要）。

戻り値

ファイル ポインタの位置が返ります。

解説

シーケンシャルファイルの場合、ファイルの先端から現在位置までのバイト数が返ります。
ランダムアクセスファイルの場合、ファイルの先端から前回読み込んだレコードまでのバイト数が返ります。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み


関数：Lof

 関数： Lof

ファイル サイズを取得します。

仕様

Lof(filenum)

filenum
ファイル番号を指定します（ファイル番号の前の "#" は不要）。

戻り値

filenum パラメータで指定したファイルのサイズが返ります。

環境情報

インクルード ファイル: basic\function.sbp 内で定義済み


関数：malloc

 関数： malloc

呼び出し側プロセスのヒープ領域から、指定されたサイズのメモリを確保します。

仕様

malloc(dwSize As DWord) As VoidPtr

dwSize
確保するメモリのサイズを、バイト単位で指定します。

戻り値

確保されたメモリバッファの先頭ポインタが返ります。

calloc関数、realloc関数、free関数


関数：calloc

 関数： calloc

呼び出し側プロセスのヒープ領域から、指定されたサイズのメモリを確保します。

仕様

calloc(dwSize As DWord) As VoidPtr

dwSize
確保するメモリのサイズを、バイト単位で指定します。

戻り値

確保されたメモリバッファの先頭ポインタが返ります。

備考

malloc関数とは異なり、この関数ではメモリの0クリアを行います。

malloc関数、realloc関数、free関数


関数：realloc

 関数： realloc

メモリの再確保を行います。

仕様
realloc(_
   lpMem As VoidPtr, _
   dwSize As DWord) As VoidPtr
lpMem
既に確保されているメモリバッファへのポインタを指定します。

dwSize
再確保するメモリのサイズを、バイト単位で指定します。

戻り値

確保されたメモリバッファの先頭ポインタが返ります。

malloc関数、calloc関数、free関数


関数：free

 関数： free

確保済みのメモリバッファを解放します。

仕様

free(lpMem As VoidPtr)

lpMem
メモリバッファを示すポインタを指定します。

malloc関数、calloc関数、realloc関数


関数：AddressOf

 関数： AddressOf

ユーザー定義関数の開始アドレスを取得します。

仕様

AddressOf(NameOfProcedure)

NameOfProcedure
関数の名前を指定します。

戻り値

関数の開始アドレス（関数ポインタ）が返ります。

CreateThread関数


ELM

配列要素を定義する際に、上限値指定を要素数指定に切り替えます。

書式

ELM( n )
n
要素数を指定します。

戻り値

nで指定した要素数に対する上限値が返ります。一般的に、要素数-1が上限値になります。

環境情報

  • インクルード ファイル: basic.sbp 内で定義済み

    • サンプルコード

    'a[0]～a[9]の10個の配列データを定義
'※Dim a[9] As Long と同じ意味を持ちます
Dim a[ELM(10)] As Long
    Class CTest
...
End Class

Dim pObject As *CTest

'pObject[0]～pObject[4]の5個の配列オブジェクトを生成
'New[4] と同じ意味を持ちます
pObject = New[ELM(5)] CTest

    Dimステートメント、New演算子


関数：RGB

 関数： RGB

24 ビット カラーのRGB値が返ります。

仕様

RGB(red, green, blue)

red
赤色の強さを 0～255 の間で指定します。

green
緑色の強さを 0～255 の間で指定します。

blue
青色の強さを 0～255 の間で指定します。

戻り値

RGB値が返ります。RGB値はDWord型と同等のサイズになります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み


 SizeOf 関数

指定したデータ型に必要なサイズを求めます。

書式
SizeOf(DataType) As DWord
DataType
データ型を指定します。標準データ型のほか、構造体、クラスを指定することもできます。
戻り値

データ型に必要なサイズがDWord型として返ります。

例
Dim i As Long

'Double型は8バイトのサイズを必要とするため、変数iには8が代入されます
i=SizeOf(Double)

'RECT型はLong型を4つ持つ構造体なので、変数iには4*4=16が代入されます
i=SizeOf(RECT)

Len関数


関数：VarPtr

 関数： VarPtr

指定した変数のポインタを取得します。

仕様

VarPtr(variable) As VoidPtr

variable
変数を指定します。配列の先頭ポインタを取得したい場合はVarPtr(a(0))など、配列要素にゼロを指定して下さい。

戻り値

ポインタ（32ビット値）が返ります。


 ハンドル

ハンドルとは、Windowsで処理される様々なオブジェクトを識別するための識別番号のことを言います。ハンドルは32ビット符号無し整数型値（DWordと同等の型）として扱われます。

ハンドルの種類

扱うデータによって適切なハンドルを使い分けることで、意味付けがなされた読みやすいプログラムを記述することができます。

データ型 | 説明
HANDLE | 汎用ハンドル
HBITMAP | ビットマップ ハンドル
HBRUSH | ブラシ ハンドル
HCURSOR | カーソル ハンドル
HDC | デバイスコンテキスト ハンドル
HDROP | ドロップ ハンドル
HFILE | ファイル ハンドル
HFONT | フォント ハンドル
HGLOBAL | グローバルオブジェクトメモリ ハンドル
HICON | アイコン ハンドル
HINSTANCE | インスタンス ハンドル
HKEY | レジストリキー ハンドル
HMENU | メニュー ハンドル
HPEN | ペン ハンドル
HRGN | リージョン ハンドル
HWND | ウィンドウ ハンドル

ハンドル変数の識別子について

ハンドルを格納するための変数の名前には、頭文字に "h" を付加することを推奨します（ハンガリー記法）。

'例：
Dim hBmp    As HBITMAP
Dim hBrush  As HBRUSH
Dim hCursor As HCURSOR
Dim hdc     As HDC
Dim hFont   As HFONT
Dim hFile   As HFILE
Dim hIcon   As HICON
Dim hInst   As HINSTANCE
Dim hKey    As HKEY
Dim hWnd    As HWND


 Win32API: CreateCaret

指定したウィンドウにキャレットを作成します。

定義
Declare Function CreateCaret Lib "user32" _
   (hWnd As HWND, _
    hBitmap As HBITMAP, _
    nWidth As Long, _
    nHeight As Long) As Long
hWnd
キャレットを所有させるウィンドウのハンドルを指定します。

hBitmap
キャレットのデザインを定義したビットマップのハンドルを指定します。NULL を指定すると、黒い四角形のキャレットが作成されます。

nWidth
キャレットの幅を指定します。

nHeight
キャレットの高さを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

すでにウィンドウがキャレットを所有している場合、この関数は以前のキャレットを削除し、新しいキャレットを作成します。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

DestroyCaret関数、HideCaret関数、ShowCaret関数


 Win32API: DestroyCaret

キャレットをウィンドウから消去します。

定義

Declare Function DestroyCaret Lib "user32" ( ) As Long

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

呼び出し側のタスクに属するウィンドウがキャレットを所有していないと、関数は失敗します。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

CreateCaret関数、HideCaret関数、ShowCaret関数


 Win32API: GetCaretPos

表示されているキャレットの位置を取得します。

定義
Declare Function GetCaretPos Lib "user32" _
   (ByRef lpPoint As POINTAPI) As Long
lpPoint （ポインタ参照）
POINTAPI構造体へのポインタを指定します。この構造体にキャレットの座標が格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

格納されるキャレットの座標は、キャレットを所有するウィンドウのクライアント座標になります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

SetCaretPos関数


 Win32API: HideCaret

指定したウィンドウのキャレットを非表示にします。

定義
Declare Function HideCaret Lib "user32" _
   (hWnd As HWND) As Long
hWnd
キャレットを非表示にさせるウィンドウのハンドルを指定します。NULL を指定すると、キャレットを所有するウィンドウを現在のタスクから探します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

呼び出し側のタスクに属するウィンドウがキャレットを所有していないと、関数は失敗します。
HideCaret 関数の呼び出しは累積されます。例えば、HideCaret関数を 3 回呼び出したときにキャレットを表示するには、ShowCaret関数を 3 回呼び出さなければなりません。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

CreateCaret関数、DestroyCaret関数、ShowCaret関数


 Win32API: SetCaretPos

キャレットの表示位置を設定します。

定義
Declare Function SetCaretPos Lib "user32" _
   (x As Long, _
    y As Long) As Long
x
新しいキャレット位置の X 座標を指定します。

y
新しいキャレット位置の Y 座標を指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

新しいキャレット位置は、キャレットを所有するウィンドウのクライアント座標で指定して下さい。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetCaretPos関数


 Win32API: ShowCaret

指定したウィンドウのキャレットを表示します。

定義
Declare Function ShowCaret Lib "user32" _
   (hWnd As HWND) As Long
hWnd
キャレットを表示させるウィンドウのハンドルを指定します。NULL を指定すると、キャレットを所有するウィンドウを現在のタスクから探します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

呼び出し側のタスクに属するウィンドウがキャレットを所有していないと、関数は失敗します。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

CreateCaret関数、DestroyCaret関数、HideCaret関数


 Win32API: CloseClipboard

クリップボードを閉じます。

定義

Declare Function CloseClipboard Lib "user32" ( ) As Long

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

OpenClipboard関数


 Win32API: CountClipboardFormats

クリップボードに格納されているデータが持つデータ形式の数を取得します。

定義

Declare Function CountClipboardFormats Lib "user32" ( ) As Long

戻り値

関数が成功すると、データ形式の個数が返ります。失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

EnumClipboardFormats関数


 Win32API: EmptyClipboard

クリップボード内のデータをメモリから解放し、クリップボードを空にします。

定義

Declare Function EmptyClipboard Lib "user32" ( ) As Long

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

この関数を呼び出す前に、OpenClipboard関数を使用してクリップボードをオープンしておく必要があります。
この関数を呼び出すと、クリップボードをオープンしているウィンドウはクリップボードのオーナーになります（SetClipboardData関数を利用できるようになります）。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

OpenClipboard関数、SetClipboardData関数


 Win32API: EnumClipboardFormats

クリップボード内のデータが持つデータ形式を列挙します。

定義
Declare Function EnumClipboardFormats Lib "user32" _
   (uFormat As DWord) As DWord
uFormat
クリップボードのデータ形式を指定します。列挙を開始するときは、0 を指定します。

戻り値

関数が成功すると、クリップボードのデータ形式が 32 ビット正数値で返ります。列挙を続けるときは、次回呼び出し時にこの戻り値を uFormat パラメータに引き渡します。
関数が失敗したとき、または列挙するデータ形式が存在しないときは 0 が返ります。

解説

この関数を呼び出す前に、OpenClipboard関数を使用してクリップボードをオープンしておく必要があります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

OpenClipboard関数


 Win32API: GetClipboardData

クリップボードから指定したデータ形式のデータを取得します。

定義
Declare Function GetClipboardData Lib "user32" _
   (uFormat As DWord) As HANDLE
uFormat
取得するデータの形式を指定します。以下の定数を利用することができます。
定数 | 説明
CF_BITMAP | ビットマップ データ（ビットマップ ハンドル）です。
CF_DIB | BITMAPINFO構造体とビット配列からなるビットマップデータです。
CF_DIF | Software Arts 社の DIF データ交換形式です。
CF_DSPBITMAP | プライベートな形式のビットマップデータです。
CF_DSPENHMETAFILE | プライベートな形式の拡張メタファイルデータです。
CF_DSPMETAFILEPICT | プライベートな形式のメタファイル画像表示形式データです。
CF_DSPTEXT | プライベートな形式のテキストデータです。
CF_ENHMETAFILE | 拡張メタファイルのデータ（enhanced metafile ハンドル）です。
CF_GDIOBJFIRST(&H0300) ～ CF_GDIOBJLAST(&H03FF) | GDI オブジェクトによって表現される、アプリケーション定義のクリップボード形式です。
CF_HDROP | ファイルドロップ形式です。
CF_LOCALE | テキストデータのロケール ID ハンドルです。
CF_METAFILEPICT | METAFILEPICT 構造体のメモリオブジェクトです。メタファイル画像形式です。
CF_PALETTE | カラーパレットのハンドルです。
CF_PENDATA | Windows のペン拡張機能のためのデータです。
CF_PRIVATEFIRST(&H0200) ～ CF_PRIVATELAST(&H02FF) | プライベートなクリップボード形式です。
CF_RIFF | RIFF 形式の音声データです。
CF_SYLK | Microsoft シンボリックリンク (SYLK) 形式のデータです。
CF_TEXT | テキスト形式のデータです。各行は復帰改行 (CR-LF) コードで終わります。データの終端は NULL 文字です。この形式は、ANSI テキストに使います。
CF_WAVE | WAVE 形式の音声データです。
CF_TIFF | TIFF 形式の画像データです。
CF_UNICODETEXT | Unicode のテキスト形式です。各行は復帰改行 (CR-LF) コードで終わります。データの終端は NULL 文字です（WindowsNT系OSのみ）。

戻り値

関数が成功すると、データが格納されているメモリ オブジェクトのハンドルが返ります。失敗すると、NULL が返ります。

解説

この関数を呼び出す前に、OpenClipboard関数を使用してクリップボードをオープンしておく必要があります。
取得したメモリ オブジェクトは、GlobalLock関数を使用して参照することができるようになります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

OpenClipboard関数、SetClipboardData関数、GlobalLock関数


 Win32API: GetClipboardFormatName

クリップボードに登録されているデータ形式の名前を取得します。

定義
Declare Function GetClipboardFormatName Lib "user32" Alias "GetClipboardFormatNameA" _
   (uFormat As DWord, _
    lpszFormatName As BytePtr, _
    cchMaxCount As Long) As Long
uFormat
データ形式の値を指定します。アプリケーションが独自に登録したデータ形式のみ指定可能です。

lpszFormatName
データ形式の名前を格納するための文字列バッファへのポインタを指定します。

cchMaxCount
lpszFormatName パラメータで指定したバッファのバイト数を指定します。

戻り値

関数が成功すると、バッファに格納された文字列のバイト数（終端の NULL 文字を除く）が返ります。失敗すると、0 が返ります。

解説

この関数では、RegisterClipboardFormat関数を使用して登録したデータ形式のみに対応します。システム定義の標準クリップボード形式（CF_*）の名前は取得することはできません。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

RegisterClipboardFormat関数


 Win32API: OpenClipboard

クリップボードを開きます。

定義
Declare Function OpenClipboard Lib "user32" _
   (hWndNewOwner As HWND) As Long
hWndNewOwner
クリップボードをオープンするタスクに属するウィンドウのハンドルを指定します。NULL を指定すると、呼び出し側のタスクがクリップボードをオープンします。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

クリップボードの使用が終了したときは、CloseClipboard関数を使用してクリップ ボードを閉じて下さい。
クリップボードが開かれている間は、他のタスクはクリップボードにアクセスすることができなくなります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

CloseClipboard関数


 Win32API: RegisterClipboardFormat

クリップボードに、新しいデータ形式を登録します。

定義
Declare Function RegisterClipboardFormat Lib "user32" Alias "RegisterClipboardFormatA" _
   (lpszFormat As BytePtr) As DWord
lpszFormat
データ形式の名前が格納されている文字列へのポインタを指定します。

戻り値

関数が成功すると、登録したデータ形式に対応する識別番号（&HC000 ～ &HFFFF）が返ります。

解説

データ形式がすでに登録されているときは、同一の識別番号が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetClipboardFormatName関数


 Win32API: SetClipboardData

指定したデータ形式のデータを、クリップボードに保存します。

定義
Declare Function SetClipboardData Lib "user32" _
   (uFormat As DWord, _
    hMem As HANDLE) As HANDLE
uFormat
保存するデータの形式を指定します。以下の定数を利用することができます。
定数 | 説明
CF_BITMAP | ビットマップ データ（ビットマップ ハンドル）です。
CF_DIB | BITMAPINFO構造体とビット配列からなるビットマップデータです。
CF_DIF | Software Arts 社の DIF データ交換形式です。
CF_DSPBITMAP | プライベートな形式のビットマップデータです。
CF_DSPENHMETAFILE | プライベートな形式の拡張メタファイルデータです。
CF_DSPMETAFILEPICT | プライベートな形式のメタファイル画像表示形式データです。
CF_DSPTEXT | プライベートな形式のテキストデータです。
CF_ENHMETAFILE | 拡張メタファイルのデータ（enhanced metafile ハンドル）です。
CF_GDIOBJFIRST(&H0300) ～ CF_GDIOBJLAST(&H03FF) | GDI オブジェクトによって表現される、アプリケーション定義のクリップボード形式です。
CF_HDROP | ファイルドロップ形式です。
CF_LOCALE | テキストデータのロケール ID ハンドルです。
CF_METAFILEPICT | METAFILEPICT 構造体のメモリオブジェクトです。メタファイル画像形式です。
CF_PALETTE | カラーパレットのハンドルです。
CF_PENDATA | Windows のペン拡張機能のためのデータです。
CF_PRIVATEFIRST(&H0200) ～ CF_PRIVATELAST(&H02FF) | プライベートなクリップボード形式です。
CF_RIFF | RIFF 形式の音声データです。
CF_SYLK | Microsoft シンボリックリンク (SYLK) 形式のデータです。
CF_TEXT | テキスト形式のデータです。各行は復帰改行 (CR-LF) コードで終わります。データの終端は NULL 文字です。この形式は、ANSI テキストに使います。
CF_WAVE | WAVE 形式の音声データです。
CF_TIFF | TIFF 形式の画像データです。
CF_UNICODETEXT | Unicode のテキスト形式です。各行は復帰改行 (CR-LF) コードで終わります。データの終端は NULL 文字です（WindowsNT系OSのみ）。

hMem
データが格納されているメモリ オブジェクトのハンドルを指定します。

戻り値

関数が成功すると、データのハンドルが返ります。失敗すると、NULL が返ります。

解説

この関数を呼び出す前に、OpenClipboard関数を使用してクリップボードをオープンし、EmptyClipboard関数を使用してウィンドウをクリップボードのオーナーにしておく必要があります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

OpenClipboard関数、GetClipboardData関数、GlobalAlloc関数


 Win32API: ChooseColor

「色の設定」ダイアログボックスを開きます。

定義
Declare Function ChooseColor Lib "comdlg32" Alias "ChooseColorA" _
   (ByRef lpcc As CHOOSECOLOR) As Long
lpcc （ポインタ参照）
CHOOSECOLOR構造体へのポインタを指定します。この構造体は、初期化しておく必要があります。関数が成功すると、ユーザーが設定したカラー情報が格納されます。

戻り値

ユーザーが色を指定した場合は、TRUE が返ります。ユーザーがキャンセル ボタンを押した場合や、関数が失敗した場合は FALSE が返ります。拡張エラー情報を取得するには、CommDlgExtendedError関数を使用して下さい。

解説

指定された色は、lpcc 構造体の rgbResult メンバに格納されます。

環境情報

インクルード ファイル: api_commdlg.sbp 内で定義済み
DLLファイル: comdlg32.dll

CHOOSECOLOR構造体、CommDlgExtendedError関数


 Win32API: ChooseFont

「フォントの設定」ダイアログボックスを開きます。

定義
Declare Function ChooseFont Lib "comdlg32" Alias "ChooseFontA" _
   (ByRef lpcf As CHOOSEFONT) As Long
lpcf （ポインタ参照）
CHOOSEFONT構造体へのポインタを指定します。この構造体は、初期化しておく必要があります。関数が成功すると、ユーザーが設定したフォント情報が格納されます。

戻り値

ユーザーがフォントを指定した場合は、TRUE が返ります。ユーザーがキャンセル ボタンを押した場合や、関数が失敗した場合は FALSE が返ります。拡張エラー情報を取得するには、CommDlgExtendedError関数を使用して下さい。

環境情報

インクルード ファイル: api_commdlg.sbp 内で定義済み
DLLファイル: comdlg32.dll

CHOOSEFONT構造体、CommDlgExtendedError関数


 Win32API: CommDlgExtendedError

コモンダイアログボックスを利用する際に起きたエラーのコードを取得します。最後に起きたエラーが取得の対象となります。

定義

Declare Function CommDlgExtendedError Lib "comdlg32" ( ) As Long

戻り値

コモンダイアログボックスのエラー コードが返ります。

解説

エラーコードは以下のような定数で指定されます。

※汎用エラー コードです。すべての関数で使用されます。
定数 | 説明
CDERR_DIALOGFAILURE | ダイアログ ボックスが作成できませんでした。
CDERR_FINDRESFAILURE | リソースが見つかりません。
CDERR_INITIALIZATION | メモリ不足などの問題で、初期化に失敗しました。
CDERR_LOADRESFAILURE | リソースの読み込みに失敗しました。
CDERR_LOADSTRFAILURE | 文字列の読み込みに失敗しました。
CDERR_LOCKRESFAILURE | リソースのロックに失敗しました。
CDERR_MEMALLOCFAILURE | 内部の構造体のメモリ確保に失敗しました。
CDERR_MEMLOCKFAILURE | ハンドルに関連付けられているメモリのロックに失敗しました。
CDERR_NOHINSTANCE | 初期化構造体の Flags メンバに ENABLETEMPLATE フラグが設定されていますが、対応するインスタンスハンドルが正しく指定されませんでした。
CDERR_NOHOOK | 初期化構造体の Flags メンバに ENABLEHOOK フラグが設定されていますが、対応するフックプロシージャへのポインタが正しく指定されませんでした。
CDERR_NOTEMPLATE | 初期化構造体の Flags メンバに ENABLETEMPLATE フラグが設定されていますが、対応するテンプレートが正しく指定されませんでした。
CDERR_REGISTERMSGFAIL | コモンダイアログボックス関数に呼び出された RegisterWindowMessage 関数が、エラー コードを返しました。
CDERR_STRUCTSIZE | 初期化構造体の lStructSize メンバが無効です。

※「プリンタの設定」ダイアログ ボックスのエラー コード
定数 | 説明
PDERR_CREATEICFAILURE | 情報コンテキストの作成に失敗しました。
PDERR_DEFAULTDIFFERENT | DEVNAMES 構造体の wDefault メンバに DN_DEFAULTPRN フラグが設定されていますが、他の構造体のメンバが指定するプリンタと現在のデフォルトのプリンタが一致しませんでした。
PDERR_DNDMMISMATCH | DEVMODE 構造体と DEVNAMES 構造体が、異なったプリンタを指定しています。
PDERR_GETDEVMODEFAIL | プリンタドライバが、DEVMODE 構造体を初期化できませんでした（Ver3.0 以降の Windows 用プリンタ ドライバのみ）。
PDERR_INITFAILURE | 初期化中に失敗しましたが、失敗を解説する特定の拡張エラーコードがありません。
PDERR_LOADDRVFAILURE | 指定されたプリンタのデバイスドライバのロードに失敗しました。
PDERR_NODEFAULTPRN | デフォルトのプリンタが存在しません。
PDERR_NODEVICES | プリンタドライバが見つかりません。
PDERR_PARSEFAILURE | WIN.INI ファイルの [devices] セクション内の文字列の解析に失敗しました。
PDERR_PRINTERNOTFOUND | WIN.INI ファイルの [devices] セクションが、要求されたプリンタのエントリを持っていませんでした。
PDERR_RETDEFFAILURE | PRINTDLG 構造体の Flags メンバに PD_RETURNDEFAULT フラグが指定されていますが、hDevMode メンバまたは hDevNames メンバが NULL ではありませんでした。
PDERR_SETUPFAILURE | リソースのロードに失敗しました。

※「フォントの設定」ダイアログ ボックスのエラー コード
定数 | 説明
CFERR_MAXLESSTHANMIN | CHOOSEFONT 構造体の nSizeMax メンバで指定した値が、nSizeMin メンバで指定した値より小さくなっています。
CFERR_NOFONTS | フォントが存在しません。

※「ファイルを開く」「ファイルの保存」ダイアログ ボックスのエラー コード
定数 | 説明
FNERR_BUFFERTOOSMALL | OPENFILENAME 構造体の lpstrFile メンバが指すバッファのサイズが小さすぎて、ユーザーが指定したファイル名がを格納することができませんでした。lpstrFile バッファの最初の 2 バイトに、ファイル名全体を格納するために必要なバイト数を格納します。
FNERR_INVALIDFILENAME | ファイル名が無効です。
FNERR_SUBCLASSFAILURE | メモリ不足のため、リストボックスをサブクラス化できませんでした。

※「検索」「置換」ダイアログ ボックスのエラー コード
定数 | 説明
FRERR_BUFFERLENGTHZERO | FINDREPLACE 構造体のメンバが、無効なバッファを指しています。

環境情報

インクルード ファイル: api_commdlg.sbp 内で定義済み
DLLファイル: comdlg32.dll

ChooseColor関数、ChooseFont関数、GetOpenFileName関数、GetSaveFileName関数、PrintDlg関数、PageSetupDlg関数


 Win32API: GetFileTitle

指定したフルパスから、ファイル名を取得します。

定義
Declare Function GetFileTitle Lib "comdlg32" Alias "GetFileTitleA" _
   (lpszFile As BytePtr, _
    lpszTitle As BytePtr, _
    cbBuf As Integer) As Integer
lpszFile
ファイルのフルパスが格納される文字列を指定します。

lpszTitle
文字列バッファへのポインタを指定します。このバッファにファイル名が格納されます。

cbBuf
lpszTitle パラメータで指定したバッファのサイズを、バイト単位で指定します。

戻り値

関数が成功すると、0 が返ります。cbBuf パラメータで指定したバッファ サイズが小さすぎるときは、ファイル名を格納するために必要なバイト数が返ります。

環境情報

インクルード ファイル: api_commdlg.sbp 内で定義済み
DLLファイル: comdlg32.dll

GetOpenFileName関数、GetSaveFileName関数


 Win32API: GetOpenFileName

「ファイルを開く」ダイアログボックスを開きます。

定義
Declare Function GetOpenFileName Lib "comdlg32" Alias "GetOpenFileNameA" _
   (ByRef lpofn As OPENFILENAME) As Long
lpofn （ポインタ参照）
OPENFILENAME構造体へのポインタを指定します。この構造体は、初期化しておく必要があります。関数が成功すると、選択されたファイルについての情報が格納されます。

戻り値

ユーザーがファイルを選んだ場合は、TRUE が返ります。ユーザーがキャンセル ボタンを押した場合や、関数が失敗した場合は FALSE が返ります。

環境情報

インクルード ファイル: api_commdlg.sbp 内で定義済み
DLLファイル: comdlg32.dll

GetSaveFileName関数、OPENFILENAME構造体


 Win32API: GetSaveFileName

「ファイル保存」ダイアログボックスを開きます。

定義
Declare Function GetSaveFileName Lib "comdlg32" Alias "GetSaveFileNameA" _
   (ByRef lpofn As OPENFILENAME) As Long
lpofn （ポインタ参照）
OPENFILENAME構造体へのポインタを指定します。この構造体は、初期化しておく必要があります。関数が成功すると、指定したファイルについての情報が格納されます。

戻り値

ユーザーがファイルを指定した場合は、TRUE が返ります。ユーザーがキャンセル ボタンを押した場合や、関数が失敗した場合は FALSE が返ります。

環境情報

インクルード ファイル: api_commdlg.sbp 内で定義済み
DLLファイル: comdlg32.dll

GetOpenFileName関数、OPENFILENAME構造体


 Win32API: PageSetupDlg

「ページ設定」ダイアログボックスを開きます。

定義
Declare Function PageSetupDlg Lib "comdlg32" Alias "PageSetupDlgA" _
   (ByRef lppsd As PAGESETUPDLG) As Long
lppsd （ポインタ参照）
PAGESETUPDLG構造体へのポインタを指定します。この構造体は、初期化しておく必要があります。関数が成功すると、ユーザーが設定したページ情報が格納されます。

戻り値

ユーザーが OK ボタンを押した場合は、TRUE が返ります。ユーザーがキャンセル ボタンを押した場合や、関数が失敗した場合は FALSE が返ります。拡張エラー情報を取得するには、CommDlgExtendedError関数を使用して下さい。

環境情報

インクルード ファイル: api_commdlg.sbp 内で定義済み
DLLファイル: comdlg32.dll

PAGESETUPDLG構造体、CommDlgExtendedError関数


 Win32API: PrintDlg

「印刷」ダイアログボックスを開きます。

定義
Declare Function PrintDlg Lib "comdlg32" Alias "PrintDlgA" _
   (ByRef lppd As PRINTDLG) As Long
lppd （ポインタ参照）
PRINTDLG構造体へのポインタを指定します。この構造体は、初期化しておく必要があります。関数が成功すると、ユーザーが設定したプリンタ情報が格納されます。

戻り値

ユーザーが OK ボタンを押した場合は、TRUE が返ります。ユーザーがキャンセル ボタンを押した場合や、関数が失敗した場合は FALSE が返ります。拡張エラー情報を取得するには、CommDlgExtendedError関数を使用して下さい。

環境情報

インクルード ファイル: api_commdlg.sbp 内で定義済み
DLLファイル: comdlg32.dll

PRINTDLG構造体、CommDlgExtendedError関数


 構造体: CHOOSECOLOR

「色の設定」ダイアログボックスについての情報を管理します。

定義
Type CHOOSECOLOR
    lStructSize    As DWord
    hwndOwner      As HWND
    hInstance      As HINSTANCE
    rgbResult      As DWord
    lpCustColors   As DWordPtr
    Flags          As DWord
    lCustData      As DWord
    lpfnHook       As VoidPtr
    lpTemplateName As BytePtr
End Type
lStructSize
構造体のサイズを指定します。

hwndOwner
ダイアログボックスを所有するウィンドウのハンドルを指定します。

hInstance
使用するダイアログ テンプレートを含むメモリ オブジェクトへのハンドルを指定します。ダイアログ テンプレートを使用しないときは、NULL を指定します。

rgbResult
ダイアログボックスの初期表示で選択する色を指定します。
ユーザーが色を選択してダイアログボックスを閉じると、この変数にRGBデータが格納されます。

lpCustColors
16個の基本色が格納されているバッファへのポインタを指定します。各色は32ビットデータであり、RGB値で指定されます。

Flags
ダイアログボックスの初期化フラグを、以下の定数を組み合わせて指定します。
定数 | 説明
CC_ENABLEHOOK | lpfnHook メンバを有効にします。
CC_ENABLETEMPLATE | lpTemplateName メンバと hInstance メンバで指定されるダイアログ テンプレートを利用してダイアログボックスを作成します。
CC_ENABLETEMPLATEHANDLE | ロードされたダイアログ テンプレートを含むデータ ブロックを、hInstance メンバが示すことを意味します。lpTemplateName メンバは無視されます。
CC_FULLOPEN | カスタム カラー部を含む、ダイアログボックス全体を表示します。
CC_PREVENTFULLOPEN | 「色の作成」ボタンを無効にします。
CC_RGBINIT | rgbResult メンバで指定した色を初期カラーとして使用します。
CC_SHOWHELP | ダイアログボックスにヘルプボタン「?」を表示します。

lCustData
lpfnHook メンバが示すフック プロシージャへ渡すデータを指定します。

lpfnHook
フック プロシージャへのポインタを指定します。Flags メンバに CC_ENABLEHOOK フラグが含まれていない場合、このメンバは無視されます。

lpTemplateName
hInstance メンバが示すモジュール内にあるダイアログ テンプレートを指定します。Flags メンバに CC_ENABLETEMPLATE フラグが含まれていない場合、このメンバは無視されます。

環境情報

インクルード ファイル: api_commdlg.sbp 内で定義済み

ChooseColor関数


 構造体: CHOOSEFONT

「フォントの設定」ダイアログボックスについての情報を管理します。

定義
Type CHOOSEFONT
    lStructSize            As DWord
    hwndOwner              As HWND
    hDC                    As HDC
    lpLogFont              As *LOGFONT
    iPointSize             As Long
    Flags                  As DWord
    rgbColors              As DWord
    lCustData              As DWord
    lpfnHook               As VoidPtr
    lpTemplateName         As BytePtr
    hInstance              As HINSTANCE
    lpszStyle              As BytePtr
    nFontType              As Word
    ___MISSING_ALIGNMENT__ As Word
    nSizeMin               As Long
    nSizeMax               As Long
End Type
lStructSize
構造体のサイズを指定します。

hwndOwner
ダイアログボックスを所有するウィンドウのハンドルを指定します。

hDC
Flags メンバに CF_PRINTERFONTS、CF_BOTH フラグが指定されるときに、プリンタのデバイスコンテキストのハンドルを指定します。ここで指定したプリンタでサポートされるフォントが、リスト表示されます。
Flags メンバに CF_PRINTERFONTS、CF_BOTH フラグが指定されていないときは、このメンバは無視されます。

lpLogFont
LOGFONT構造体へのポインタを指定します。
Flags メンバに CF_INITTOLOGFONTSTRUCT フラグが設定されていると、この構造体の内容に一番近いフォントが初期表示時に選択されます。
ユーザーがフォントを選択してダイアログを閉じると、この構造体にフォント情報が格納されます。

iPointSize
フォントサイズが 1/10 ポイント単位で格納されます。

Flags
ダイアログボックスの初期化フラグを、以下の定数を組み合わせて指定します。
定数 | 説明
CF_APPLY | ダイアログ ボックスに「適応」ボタンを表示します。
CF_ANSIONLY、 または CF_SCRIPTSONLY | 非 OEM 文字セットやシンボル文字セットを選択できるようにします。
CF_BOTH | CF_SCREENFONTS フラグ、CF_PRINTERFONTS フラグの組み合わせです。スクリーン フォントとプリンタ フォントをリスト表示します。
CF_TTONLY | TrueType フォントのみを選択できるようにします。
CF_EFFECTS | ユーザーが打ち消し線、下線、文字色を指定できるようにします。
CF_ENABLEHOOK | lpfnHook メンバを有効にします。
CF_ENABLETEMPLATE | lpTemplateName メンバと hInstance メンバで指定されるダイアログ テンプレートを利用してダイアログボックスを作成します。
CF_ENABLETEMPLATEHANDLE | ロードされたダイアログ テンプレートを含むデータ ブロックを、hInstance メンバが示すことを意味します。lpTemplateName メンバは無視されます。
CF_FIXEDPITCHONLY | 固定ピッチ フォントのみを選択できるようにします。
CF_FORCEFONTEXIST | ユーザーが存在しないフォントやスタイルを選択したときにエラーを表示するようにします。
CF_INITTOLOGFONTSTRUCT | lpLogFont メンバで指定した構造体の内容を、初期状態にします。
CF_LIMITSIZE | nSizeMin メンバ、nSizeMax メンバでフォント サイズの範囲を制限します。
CF_NOOEMFONTS、 または CF_NOVECTORFONTS | ベクターフォントを選択できないようにします。
CF_NOFACESEL | lpLogFont メンバで指定した構造体の内容が初期状態に設定されるとき、フォント名のコンボボックスでは何も選択しないようにします。
CF_NOSCRIPTSEL | 「書体の種類」コンボボックスを無効にします。
CF_NOSTYLESEL | lpLogFont メンバで指定した構造体の内容が初期状態に設定されるとき、フォント スタイルのコンボボックスでは何も選択しないようにします。
CF_NOSIZESEL | lpLogFont メンバで指定した構造体の内容が初期状態に設定されるとき、フォント サイズのコンボボックスでは何も選択しないようにします。
CF_NOSIMULATIONS | GDIフォントシミュレートしないようにします。
CF_NOVERTFONTS | 水平方向のフォントのみがリスト表示されます。
CF_PRINTERFONTS | hDC メンバで指定したプリンタでサポートされているフォントをリスト表示します。
CF_SCALABLEONLY | スケーリング可能なフォントのみを選択できるようにします。
CF_SCREENFONTS | システムがサポートしているスクリーン フォントをリスト表示します。
CF_SELECTSCRIPT | LOGFONT構造体の、lfCharSet メンバで指定したセットを持つフォントのみをリスト表示します。
CF_SHOWHELP | ヘルプ ボタン「?」を表示します。
CF_USESTYLE | lpszStyle メンバの内容をフォント スタイル コンボボックスの初期値にします。
CF_WYSIWYG | スクリーン フォント、プリンタ フォントの両方に対応するフォントのみをリスト表示します。CF_BOTH フラグと CF_SCALABLEONLY フラグを指定しておく必要があります。

rgbColors
Flags メンバに CF_EFFECTS フラグが設定されているときは、文字色の初期値を RGB 値で指定します。
ユーザーがフォントを選択してダイアログ ボックスを閉じると、このメンバに文字色が格納されます。

lCustData
lpfnHook メンバが示すフック プロシージャへ渡すデータを指定します。

lpfnHook
フック プロシージャへのポインタを指定します。Flags メンバに CF_ENABLEHOOK フラグが含まれていない場合、このメンバは無視されます。

lpTemplateName
hInstance メンバが示すモジュール内にあるダイアログ テンプレートを指定します。Flags メンバに CF_ENABLETEMPLATE フラグが含まれていない場合、このメンバは無視されます。

hInstance
使用するダイアログ テンプレートを含むメモリ オブジェクトへのハンドルを指定します。ダイアログ テンプレートを使用しないときは、NULL を指定します。

lpszStyle
Flags メンバに CF_USESTYLE フラグが設定されているときは、スタイル データの初期文字列が格納されているバッファへのポインタを指定します。
ユーザーがフォントを選択してダイアログ ボックスを閉じると、このメンバが指定するバッファにスタイル データが格納されます。

nFontType
選択されたフォント タイプが、以下の定数を使用して格納されます。
定数 | 説明
BOLD_FONTTYPE | ボールド体
ITALIC_FONTTYPE | イタリック体
PRINTER_FONTTYPE | プリンタ フォント
REGULAR_FONTTYPE | 通常フォント（ボールド、イタリックでない）
SCREEN_FONTTYPE | スクリーン フォント
SIMULATED_FONTTYPE | GDIによってシミュレートされます。

nSizeMin
Flags メンバに CF_LIMITSIZE フラグが設定されているときは、ユーザーが指定可能なフォント サイズの最小値を指定します。

nSizeMax
Flags メンバに CF_LIMITSIZE フラグが設定されているときは、ユーザーが指定可能なフォント サイズの最大値を指定します。

環境情報

インクルード ファイル: api_commdlg.sbp 内で定義済み

ChooseFont関数、LOGFONT構造体


 構造体: OPENFILENAME

「ファイルを開く」、「ファイル保存」ダイアログボックスについての情報を管理します。

定義
Type OPENFILENAME
    lStructSize       As DWord
    hwndOwner         As HWND
    hInstance         As HINSTANCE
    lpstrFilter       As BytePtr
    lpstrCustomFilter As BytePtr
    nMaxCustFilter    As DWord
    nFilterIndex      As DWord
    lpstrFile         As BytePtr
    nMaxFile          As DWord
    lpstrFileTitle    As BytePtr
    nMaxFileTitle     As DWord
    lpstrInitialDir   As BytePtr
    lpstrTitle        As BytePtr
    Flags             As DWord
    nFileOffset       As Word
    nFileExtension    As Word
    lpstrDefExt       As BytePtr
    lCustData         As DWord
    lpfnHook          As VoidPtr
    lpTemplateName    As BytePtr
End Type
lStructSize
構造体のサイズを指定します。

hwndOwner
ダイアログボックスを所有するウィンドウのハンドルを指定します。

hInstance
Flags メンバに OFN_ENABLETEMPLATEHANDLE フラグが設定されているときには、ダイアログボックスのテンプレートを含むメモリオブジェクトへのハンドルを指定します。
OFN_ENABLETEMPLATE フラグが設定されているときには、lpTemplateName メンバが示す名前のダイアログボックスのテンプレートを含むメモリオブジェクトへのハンドルを指定します。
どちらも設定されていない場合、このメンバは無視されます。

lpstrFilter
ファイル フィルターを NULL で終わる文字列で指定します。NULL を指定すると、ダイアログボックスのフィルター文字列にはなにも表示されません。ファイル フィルターは２つで１組になっており、以下のような構造をしています。
"ファイルタイプの説明" + Chr$(0) + "パターン文字列" + ... + Chr$(0) + Chr$(0)
例："ビットマップ ファイル(*.bmp)" + Chr$(0) + "*.bmp" + Chr$(0) + "すべてのファイル(*.*)" + Chr$(0) + "*" + Chr$(0) + Chr$(0)

lpstrCustomFilter
ユーザーによって選択されたファイル フィルター文字列のペアが保存されます。
カスタム ファイル フィルターを作成しない場合は NULL を指定します。
NULL でない場合は、nMaxCustFilter メンバに lpstrCustomFilter メンバのバッファ サイズを指定しておく必要があります。

nMaxCustFilter
lpstrCustomFilter メンバのバッファ サイズを指定します。

nFilterIndex
フィルターの初期インデックスを指定します。ユーザーがファイルを選択した場合には、表示されていたフィルターのインデックスが保存されます。

lpstrFile
文字列バッファを指定します。
指定したバッファの内容が、「ファイル名」エディット コントロールに表示されます。
ユーザーがファイルを選択すると、このバッファにファイル パスが格納されます。

nMaxFile
lpstrFile メンバのバッファ サイズを指定します。

lpstrFileTitle
選択されたファイルの名前、および拡張子を保存するための文字列バッファを指定します。必要でない場合は NULL を指定することができます。

nMaxFileTitle
lpstrFileTitle メンバのバッファ サイズを指定します。

lpstrInitialDir
初期ディレクトリのパスを指定します。ディレクトリ設定が必要でない場合は、NULL を指定することができます。
[WindowNT以降、Windows98以降]: NULL を指定し、なおかつ指定したファイル フィルターに適するファイルがカレントディレクトリに存在する場合はカレントディレクトリが初期ディレクトリになります。存在しない場合は、ユーザーの個人ディレクトリ（マイ ドキュメント）が初期ディレクトリに設定されます。
[それ以外のOS]: NULL を指定すると、カレントディレクトリが初期ディレクトリに設定されます。

lpstrTitle
ダイアログボックスのタイトルバーに表示する文字列を指定します。NULL を指定すると、システムのデフォルトのタイトルが設定されます。

Flags
ダイアログボックスの初期化フラグを、以下の定数を組み合わせて指定します。
定数 | 説明
OFN_ALLOWMULTISELECT | リストボックス内で、複数のファイルを選択できるようになります。
OFN_CREATEPROMPT | ユーザーが存在しないファイルを選択しようとしたときに、確認のためのダイアログを表示します。
OFN_ENABLEHOOK | lpfnHook メンバで指定されたフック関数へのポインタを使用可能にします。
OFN_ENABLETEMPLATE | lpTemplateName メンバと hInstance メンバで指定されるダイアログ テンプレートを利用してダイアログボックスを作成します。
OFN_ENABLETEMPLATEHANDLE | ロードされたダイアログ テンプレートを含むデータ ブロックを、hInstance メンバが示すことを意味します。lpTemplateName メンバは無視されます。
OFN_EXPLORER | 作成するダイアログ ボックスをエクスプローラ風にします。
OFN_EXTENSIONDIFFERENT | ユーザーが lpstrDefExt メンバで指定されている拡張子とは異なる拡張子を入力したことを示します。
OFN_FILEMUSTEXIST | ユーザーが存在しないファイルを選択できないようにします。
OFN_HIDEREADONLY | 「書き込み禁止(Read Only)」チェック ボックスを非表示にします。
OFN_LONGNAMES | 長いファイル名を使うようにします。
OFN_NOCHANGEDIR | ユーザーがファイル選択のためにディレクトリを移動しても、カレントディレクトリが変更されないようにします。
OFN_NODEREFERENCELINKS | ショートカット ファイル(*.lnk)が選択された場合、そのショートカット ファイル自体のパスを取得します。このフラグを指定しない場合は、ショートカットのリンク先のパスを取得することになります。
OFN_NOLONGNAMES | 短いファイル名を使うようにします。エクスプローラスタイルのダイアログ ボックスでは、このフラグは無視されます。
OFN_NONETWORKBUTTON | 「ネットワーク」ボタンを非表示にします。
OFN_NOREADONLYRETURN | 取得したファイルが読み取り専用ファイル、または読み取り専用ディレクトリ内のファイルでないことを示します。
OFN_NOTESTFILECREATE | ダイアログ ボックスが閉じられた後にファイルを作成するようにします。
OFN_NOVALIDATE | ファイル名に無効な文字を使用できることを示します。
OFN_OVERWRITEPROMPT | ユーザーが選択したファイルがすでに存在するとき、上書きの確認を行います。
OFN_PATHMUSTEXIST | ユーザーが無効なパスやディレクトリを入力したとき、警告メッセージを表示するようにします。
OFN_READONLY | ダイアログ ボックスの初期表示で、「読み取り専用」チェック ボックスをチェックします。また、ダイアログ ボックスを閉じたときに、「読み取り専用」チェック ボックスがチェックされていることを示します。
OFN_SHAREWARE | ネットワークの共有違反でOpenFile関数が失敗した場合でも、エラーを無視してファイル名を取得するようにします。
OFN_SHOWHELP | ヘルプボタン[?]を表示します。

nFileOffset
lpstrFile メンバが示すパス内の、ファイル名の位置が、バッファの先頭から何バイト目であるかを示します。

nFileExtension
lpstrFile メンバが示すパス内の、拡張子の位置が、バッファの先頭から何バイト目であるかを示します。

lpstrDefExt
デフォルト拡張子の文字列を示します。

lCustData
lpfnHook メンバが示すフック プロシージャへ渡すデータを指定します。

lpfnHook
フック プロシージャへのポインタを指定します。Flags メンバに OFN_ENABLEHOOK フラグが含まれていない場合、このメンバは無視されます。

lpTemplateName
hInstance メンバが示すモジュール内にあるダイアログ テンプレートを指定します。Flags メンバに OFN_ENABLETEMPLATE フラグが含まれていない場合、このメンバは無視されます。

環境情報

インクルード ファイル: api_commdlg.sbp 内で定義済み

GetOpenFileName関数、GetSaveFileName関数


 構造体: PAGESETUPDLG

「ページ設定」ダイアログボックスについての情報を管理します。

定義
Type PAGESETUPDLG
    lStructSize             As DWord
    hwndOwner               As HWND
    hDevMode                As HGLOBAL
    hDevNames               As HGLOBAL
    Flags                   As DWord
    ptPaperSize             As POINTAPI
    rtMinMargin             As RECT
    rtMargin                As RECT
    hInstance               As HINSTANCE
    lCustData               As DWord
    lpfnPageSetupHook       As VoidPtr
    lpfnPagePaintHook       As VoidPtr
    lpPageSetupTemplateName As BytePtr
    hPageSetupTemplate      As HGLOBAL
End Type
lStructSize
構造体のサイズを指定します。

hwndOwner
ダイアログボックスを所有するウィンドウのハンドルを指定します。

hDevMode
DEVMODE構造体へのメモリ オブジェクトのハンドルを指定します。不要なときは、NULL を指定することができます。

hDevNames
DEVNAMES 構造体へのメモリ オブジェクトのハンドルを指定します。不要なときは、NULL を指定することができます。

Flags
ダイアログボックスの初期化フラグを、以下の定数を組み合わせて指定します。
定数 | 説明
PSD_DEFAULTMINMARGINS | プリンタのマージンを許容範囲内で最小に設定します。
PSD_DISABLEMARGINS | マージン コントロールを無効にします。
PSD_DISABLEORIENTATION | 「向き」項目を無効にします。
PSD_DISABLEPAGEPAINTING | サンプル ページの描画を行いません。
PSD_DISABLEPAPER | ペーパー コントロールを無効にします。
PSD_DISABLEPRINTER | プリンタ ボタンを無効にします。
PSD_ENABLEPAGEPAINTHOOK | lpfnPagePaintHook メンバを有効にします。
PSD_ENABLEPAGESETUPHOOK | lpfnPageSetupHook メンバを有効にします。
PSD_ENABLEPAGESETUPTEMPLATE | hInstance メンバ、lpPageSetupTemplateName メンバで指定されるダイアログ テンプレートを利用してダイアログボックスを作成します。
PSD_ENABLEPAGESETUPTEMPLATEHANDLE | ロードされたダイアログ テンプレートを含むデータ ブロックを、hInstance メンバが示すことを意味します。lpPageSetupTemplateName メンバは無視されます。
PSD_INHUNDREDTHSOFMILLIMETERS | マージンやペーパーサイズの単位がミリメートルの 100 分の 1 になります。
PSD_INTHOUSANDTHSOFINCHES | サイズの単位がインチの 1000 分の 1 となります。
PSD_MARGINS | rtMargin メンバの内容を初期値に利用します。
PSD_MINMARGINS | rtMinMargin メンバを有効にします。
PSD_NONETWORKBUTTON | ネットワーク ボタンを非表示にします。
PSD_NOWARNING | デフォルトのプリンタが存在しないとき、警告メッセージを表示しないようにします。
PSD_RETURNDEFAULT | ダイアログボックスを表示せず、デフォルトのプリンタに関する情報を返すようにします。
PSD_SHOWHELP | ダイアログボックスにヘルプボタン「?」を表示します。

ptPaperSize
用紙サイズが格納されます。

rtMinMargin
最小のマージン値を指定します。Flags メンバに PSD_MINMARGINS フラグが設定されていないときは無視されます。

rtMargin
マージン値が格納されます。Flags メンバに PSD_MARGINS フラグが設定されていると、初期値にも利用されます。

hInstance
使用するダイアログ テンプレートを含むメモリ オブジェクトへのハンドルを指定します。ダイアログ テンプレートを使用しないときは、NULL を指定します。

lCustData
lpfnPageSetupHook メンバで示されたプロシージャに送られる、アプリケーション定義のデータを指定します。

lpfnPageSetupHook
「PageSetup」のフック プロシージャへのポインタを指定します。Flags メンバに PSD_ENABLEPAGESETUPHOOK フラグが含まれていない場合、このメンバは無視されます。

lpfnPagePaintHook
「PagePaint」のフック プロシージャへのポインタを指定します。Flags メンバに PSD_ENABLEPAGEPAINTHOOK フラグが含まれていない場合、このメンバは無視されます。

lpPageSetupTemplateName
hInstance メンバが示すモジュール内にあるダイアログ テンプレートを指定します。Flags メンバに PSD_ENABLEPAGESETUPTEMPLATE フラグが含まれていない場合、このメンバは無視されます。

hPageSetupTemplate
ダイアログボックスのテンプレートのメモリオブジェクトのハンドルを指定します。Flags メンバに PSD_ENABLEPAGESETUPTEMPLATEHANDLE フラグが含まれていない場合、このメンバは無視されます。

環境情報

インクルード ファイル: api_commdlg.sbp 内で定義済み

PageSetupDlg関数


 構造体: PRINTDLG

「印刷」ダイアログボックスについての情報を管理します。

定義
Type PRINTDLG
    lStructSize         As DWord
    hwndOwner           As HWND
    hDevMode            As HGLOBAL
    hDevNames           As HGLOBAL
    hDC                 As HDC
    Flags               As DWord
    nFromPage           As Word
    nToPage             As Word
    nMinPage            As Word
    nMaxPage            As Word
    nCopies             As Word
    hInstance           As HINSTANCE
    lCustData           As DWord
    lpfnPrintHook       As VoidPtr
    lpfnSetupHook       As VoidPtr
    lpPrintTemplateName As BytePtr
    lpSetupTemplateName As BytePtr
    hPrintTemplate      As HGLOBAL
    hSetupTemplate      As HGLOBAL
End Type
lStructSize
構造体のサイズを指定します。

hwndOwner
ダイアログボックスを所有するウィンドウのハンドルを指定します。

hDevMode
DEVMODE構造体へのメモリ オブジェクトのハンドルを指定します。不要なときは、NULL を指定することができます。

hDevNames
DEVNAMES 構造体へのメモリ オブジェクトのハンドルを指定します。不要なときは、NULL を指定することができます。

hDC
Flags メンバに PD_RETURNDC フラグが設定されているときは、デバイス コンテキストのハンドルが格納されます。
Flags メンバに PD_RETURNIC フラグが設定されているときは、インフォーメーション コンテキストのハンドルが格納されます。

Flags
ダイアログボックスの初期化フラグを、以下の定数を組み合わせて指定します。
定数 | 説明
PD_ALLPAGES | 「すべて」ラジオ ボタンを選択します。
PD_COLLATE | 「部単位で印刷」チェック ボックスを選択します。
PD_DISABLEPRINTTOFILE | 「ファイルへ出力」チェック ボックスを無効にします。
PD_ENABLEPRINTHOOK | lpfnPrintHook メンバを有効にします。
PD_ENABLEPRINTTEMPLATE | lpPrintTemplateName メンバと hInstance メンバで指定されるダイアログ テンプレートを利用してダイアログボックスを作成します。
PD_ENABLEPRINTTEMPLATEHANDLE | ロードされたダイアログ テンプレートを含むデータ ブロックを、hPrintTemplate メンバが示すことを意味します。lpPrintTemplateName メンバは無視されます。
PD_ENABLESETUPHOOK | lpfnSetupHook メンバを有効にします。
PD_ENABLESETUPTEMPLATE | lpSetupTemplateName メンバと hInstance メンバで指定されるダイアログ テンプレートを利用してダイアログボックスを作成します。
PD_ENABLESETUPTEMPLATEHANDLE | ロードされたダイアログ テンプレートを含むデータ ブロックを、hSetupTemplate メンバが示すことを意味します。lpSetupTemplateName メンバは無視されます。
PD_HIDEPRINTTOFILE | 「ファイルへ出力」チェック ボックスを非表示にします。
PD_NONETWORKBUTTON | 「ネットワーク」ボタンを非表示にします。
PD_NOPAGENUMS | 「ページ」ラジオ ボタンと、それに含まれるエディット コントロールを無効にします。
PD_NOSELECTION | 「選択した部分」ラジオ ボタンを無効にします。
PD_NOWARNING | デフォルトのプリンタが存在しないとき、警告メッセージを表示しないようにします。/FONT>
PD_PAGENUMS | 「ページ指定」ラジオ ボタンを選択します。
PD_PRINTSETUP | 印刷セットアップ ダイアログボックスを表示します。
PD_PRINTTOFILE | 「ファイルへ出力」チェック ボックスを選択します。
PD_RETURNDC | ユーザーが選択したプリンタのデバイス コンテキストのハンドルが、hDC メンバに格納されます。
PD_RETURNDEFAULT | ダイアログボックスを表示せず、デフォルトのプリンタに関する情報を返すようにします。
PD_RETURNIC | hDC メンバには、インフォーメーション コンテキストのハンドルが格納されます。
PD_SELECTION | 「選択した部分」チェック ボックスを選択します。
PD_SHOWHELP | ダイアログボックスにヘルプボタン「?」を表示します。
PD_USEDEVMODECOPIES 、または PD_USEDEVMODECOPIESANDCOLLATE | 「部単位で印刷」をサポートします。

nFromPage
スタート ページの初期値を指定します。
関数が成功すると、ユーザーが設定したスタート ページが格納されます。

nToPage
終了ページの初期値を指定します。
関数が成功すると、ユーザーが設定した終了ページが格納されます。

nMinPage
ページ範囲の最小値を指定します。

nMaxPage
ページ範囲の最大値を指定します。

nCopies
印刷部数の初期値を指定します。
関数が成功すると、ユーザーが設定した印刷部数が格納されます。

hInstance
使用するダイアログ テンプレートを含むメモリ オブジェクトへのハンドルを指定します。ダイアログ テンプレートを使用しないときは、NULL を指定します。

lCustData
フック プロシージャへ渡すデータを指定します。

lpfnPrintHook
「Print」のフック プロシージャへのポインタを指定します。Flags メンバに PD_ENABLEPRINTHOOK フラグが含まれていない場合、このメンバは無視されます。

lpfnSetupHook
「Setup」のフック プロシージャへのポインタを指定します。Flags メンバに PD_ENABLESETUPHOOK フラグが含まれていない場合、このメンバは無視されます。

lpPrintTemplateName
hInstance メンバが示すモジュール内にある「Print」ダイアログのテンプレートを指定します。Flags メンバに PSD_ENABLEPRINTTEMPLATE フラグが含まれていない場合、このメンバは無視されます。

lpSetupTemplateName
hInstance メンバが示すモジュール内にある「Setup」ダイアログのテンプレートを指定します。Flags メンバに PSD_ENABLESETUPTEMPLATE フラグが含まれていない場合、このメンバは無視されます。

hPrintTemplate
「Print」ダイアログボックスのテンプレートのメモリオブジェクトのハンドルを指定します。Flags メンバに PSD_ENABLEPRINTTEMPLATEHANDLE フラグが含まれていない場合、このメンバは無視されます。

hSetupTemplate
「Setup」ダイアログボックスのテンプレートのメモリオブジェクトのハンドルを指定します。Flags メンバに PSD_ENABLESETUPTEMPLATEHANDLE フラグが含まれていない場合、このメンバは無視されます。

環境情報

インクルード ファイル: api_commdlg.sbp 内で定義済み

PrintDlg関数


 Win32API: ClipCursor

指定した長方形を、マウス カーソルの移動可能な領域に設定します。

定義
Declare Function ClipCursor Lib "user32" _
   (ByRef lpRect As RECT) As Long
lpRect （ポインタ参照）
長方形の座標が格納されている、RECT構造体へのポインタを指定します。長方形はスクリーン座標で指定します。NULL を指定すると、画面上のすべての領域が移動可能になります。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

移動可能範囲を任意の長方形に設定しているアプリケーションでは、終了時に、この関数の引数に NULL を指定して設定を解除する必要があります。
WindowsNT系OSでは、呼び出し側のプロセスが、ウィンドウステーションへの WINSTA_WRITEATTRIBUTES アクセスを持っていなければなりません。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetClipCursor関数、RECT構造体


 Win32API: CreateCursor

指定された幅、高さ、ホットスポット、ビットパターンで、マウス カーソルを作成します。

定義
Declare Function CreateCursor Lib "user32" _
   (hInst As HINSTANCE, _
    xHotSpot As Long, _
    yHotSpot As Long, _
    nWidth As Long, _
    nHeight As Long, _
    pvANDPlane As VoidPtr, _
    pvXORPlane As VoidPtr) As HCURSOR
hInst
マウス カーソルを作成するモジュールのインスタンスを指定します。

xHotSpot
ホットスポットの X 座標を指定します。

yHotSpot
ホットスポットの Y 座標を指定します。

nWidth
マウス カーソルの幅を指定します。

nHeight
マウス カーソルの高さを指定します。

pvANDPlane
マウス カーソルの AND ビットマスク（透過用）のビットデータが入ったバイト配列へのポインタを指定します。データの形式は、デバイス依存のモノクロ ビットマップです。

pvXORPlane
マウス カーソルの XOR ビットマスク（画像用）のビットデータが入ったバイト配列へのポインタを指定します。データの形式は、デバイス依存のモノクロ ビットマップです。

戻り値

関数が成功すると、マウス カーソルのハンドルが返ります。失敗すると、0 が返ります。

解説

マウス カーソルが不要になったら、DestroyCursor関数を使用してメモリから解放して下さい。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

DestroyCursor関数


 Win32API: DestroyCursor

CreateCursor 関数で作成されたマウス カーソルをメモリから削除します。

定義
Declare Function DestroyCursor Lib "user32" _
   (hCursor As HCURSOR) As Long
hCursor
削除するマウス カーソルのハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

CreateCursor関数


 Win32API: GetClipCursor

マウス カーソルの移動可能な領域を取得します。

定義
Declare Function GetClipCursor Lib "user32" _
   (ByRef lpRect As RECT) As Long
lpRect （ポインタ参照）
RECT構造体へのポインタを指定します。この構造体に、マウス カーソルの移動可能な領域がスクリーン座標で格納されます。移動可能な領域が指定されていないときは、スクリーン全体を示す長方形の座標が格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

WindowsNT系OSでは、呼び出し側のプロセスが、ウィンドウステーションへの WINSTA_WRITEATTRIBUTES アクセスを持っていなければなりません。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

ClipCursor関数、RECT構造体


 Win32API: GetCursor

現在のマウス カーソルのハンドルを取得します。

定義

Declare Function GetCursor Lib "user32" ( ) As HCURSOR

戻り値

関数が成功すると、現在のマウス カーソルのハンドルが返ります。マウス カーソルが存在しないときは、NULL が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

SetCursor関数


 Win32API: GetCursorPos

現在のマウス カーソルの位置を取得します。

定義
Declare Function GetCursorPos Lib "user32" _
   (ByRef lpPoint As POINTAPI) As Long
lpPoint （ポインタ参照）
POINTAPI構造体へのポインタを指定します。この構造体に、マウス カーソルの位置がスクリーン座標で格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

WindowsNT系OSでは、呼び出し側のプロセスが、ウィンドウステーションへの WINSTA_READATTRIBUTES アクセスを持っていなければなりません。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

SetCursorPos関数


 Win32API: LoadCursorFromFile

マウス カーソルの形状を、ファイル（*.cur、*.ani）から読み込みます。

定義
Declare Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" _
   (lpFileName As BytePtr) As HCURSOR
lpFileName
ファイル名を指定します。

戻り値

関数が成功すると、マウス カーソルのハンドルが返ります。失敗すると、NULL が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

SetCursor関数、LoadImage関数


 Win32API: SetCursor

マウス カーソルの形状を設定します。

定義
Declare Function SetCursor Lib "user32" _
   (hCursor As HCURSOR) As HCURSOR
hCursor
マウス カーソルのハンドルを指定します。NULL を指定すると、マウス カーソルはスクリーンから削除されます。

戻り値

以前のマウス カーソルのハンドルが返ります。以前にマウス カーソルが存在していなかったときは、NULL が返ります。

解説

マウスカーソルはシステム全体で共有されるリソースです。マウスカーソルがウィンドウのクライアント領域にあるときにだけ、または、ウィンドウがマウスの入力をキャプチャしているときにだけ、マウスカーソルの形状を設定するようにしてください。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

CreateCursor関数、LoadCursorFromFile関数、LoadImage関数


 Win32API: SetCursorPos

マウス カーソルの位置を設定します。

定義
Declare Function SetCursorPos Lib "user32" _
   (x As Long, _
    y As Long) As Long
x
マウス カーソルの新しい位置の X 座標を指定します。

y
マウス カーソルの新しい位置の Y 座標を指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

WindowsNT系OSでは、呼び出し側のプロセスが、ウィンドウステーションへの WINSTA_READATTRIBUTES アクセスを持っていなければなりません。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetCursorPos関数


 Win32API: ShowCursor

マウス カーソルの表示カウントを増加／減少させることによって、カーソルの表示／非表示を設定します。

定義
Declare Function ShowCursor Lib "user32" _
   (bShow As Long) As Long
bShow
TRUE を指定すると、表示カウントが 1 だけ増えます。FALSE を指定すると、表示カウントが 1 だけ減ります。

戻り値

新しい表示カウントが返ります。

解説

表示カウントが 0 以上のときにマウス カーソルが表示されます。0 未満のときは、表示されません。マウスがインストールされているときは、初期表示カウントは 0 になります。マウスがインストールされていないときは、初期表示カウントは -1 になります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll


 Win32API: GetDlgCtrlID

コントロールの ID を取得します。

定義
Declare Function GetDlgCtrlID Lib "user32" _
   (hWnd As DWord) As Long
hWnd
コントロールを示すウィンドウ ハンドルを指定します。

戻り値

関数が成功すると、コントロールの ID が返ります。失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetDlgItem関数


 Win32API: GetDlgItem

コントロールのウィンドウ ハンドルを取得します。

定義
Declare Function GetDlgItem Lib "user32" _
   (hDlg As HWND, _
    nIDDlgItem As Long) As HWND
hDlg
ダイアログボックスのウィンドウ ハンドルを指定します。

nIDDlgItem
コントロールを示す ID を指定します。

戻り値

関数が成功すると、コントロールのウィンドウ ハンドルが返ります。失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetDlgCtrlID関数


 Win32API: GetDlgItemText

ダイアログボックス内のコントロールのテキストを取得します。

定義
Declare Function GetDlgItemText Lib "user32" Alias "GetDlgItemTextA" _
   (hDlg As HWND, _
    nIDDlgItem As Long, _
    lpString As BytePtr, _
    nMaxCount As Long) As Long
hDlg
ダイアログボックスのウィンドウ ハンドルを指定します。

nIDDlgItem
コントロールを示す ID を指定します。

lpString
文字列バッファを指定します。このバッファにコントロールのテキストが格納されます。

nMaxCount
lpString パラメータのバッファ サイズをバイト単位で指定します。

戻り値

関数が成功すると、取得した文字列の長さ（終端の NULL 文字を含まない）が返ります。
関数が失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

SetDlgItemText関数


 Win32API: MessageBox

メッセージ ボックスを表示します。

定義
Declare Function MessageBox Lib "user32" Alias "MessageBoxA" _
   (hWnd As HWND, _
    lpText As BytePtr, _
    lpCaption As BytePtr, _
    uType As DWord) As Long
hWnd
メッセージ ボックスを所有するウィンドウのハンドルを指定します。

lpText
メッセージ ボックスに表示される文字列を指定します。

lpCaption
メッセージ ボックスのタイトル バーに表示される文字列を指定します。

uType
メッセージ ボックスのタイプを、以下の定数を組み合わせて指定します。

※ボタン フラグ
定数 | 説明
MB_ABORTRETRYIGNORE | 「中止」「再試行」「無視」ボタンを表示します。
MB_OK | 「OK」ボタンを表示します。
MB_OKCANCEL | 「OK」「キャンセル」ボタンを表示します。
MB_RETRYCANCEL | 「再試行」「キャンセル」ボタンを表示します。
MB_YESNO | 「はい」「いいえ」ボタンを表示します。
MB_YESNOCANCEL | 「はい」「いいえ」「キャンセル」ボタンを表示します。

※アイコン フラグ
定数 | 説明
MB_ICONEXCLAMATION、MB_ICONWARNING | 感嘆符「!」アイコンを表示します。
MB_ICONINFORMATION、MB_ICONASTERISK | 吹き出しの中に小文字の「i」があるアイコンを表示します。
MB_ICONQUESTION | 疑問符「?」アイコンを表示します。
MB_ICONSTOP、MB_ICONERROR、MB_ICONHAND | 停止アイコンを表示します。

※デフォルト ボタンの指定フラグ
定数 | 説明
MB_DEFBUTTON1 | 最初のボタンをデフォルトのボタンに設定します。
MB_DEFBUTTON2 | 2番目のボタンをデフォルトのボタンに設定します。
MB_DEFBUTTON3 | 3番目のボタンをデフォルトのボタンに設定します。
MB_DEFBUTTON4 | 4番目のボタンをデフォルトのボタンに設定します。

※動作形態フラグ
定数 | 説明
MB_APPLMODAL | ユーザーがメッセージ ボックスに応答するまで、hWnd パラメータで指定したウィンドウで作業をすることができません。
MB_SYSTEMMODAL | 最前面ウィンドウ（WS_EX_TOPMOST スタイル）のメッセージ ボックスを作成します。
MB_TASKMODAL | hWnd パラメータに NULL を指定すると、ユーザーがメッセージ ボックスに応答するまで、呼び出し側のタスクに属するすべてのトップレベルウィンドウが無効になります。

※その他のフラグ
定数 | 説明
MB_DEFAULT_DESKTOP_ONLY | デフォルト デスクトップ以外でメッセージ ボックスを作成できないようにすることを示します（WindowsNT系OSのみ）。
MB_HELP | 「ヘルプ」ボタンを表示します。
MB_RIGHT | テキストを右寄せで表示します。
MB_RTLREADING | テキストを右から左に向けて表示します。ヘブライ語やアラビア語をサポートしているシステムで有効です。
MB_SETFOREGROUND | メッセージ ボックスをフォアグラウンド ウィンドウにします。
MB_TOPMOST | 最前面ウィンドウ（WS_EX_TOPMOST スタイル）のメッセージ ボックスを作成します。
MB_SERVICE_NOTIFICATION | WindowsNT系OSのみに有効です。サービス イベントを通知して、現在のアクティブなウィンドウにメッセージ ボックスを表示します。hWnd パラメータに NULL を指定しておく必要があります。

戻り値

関数が成功すると、押されたボタンを示す、以下の定数のいずれかが返ります。失敗すると、0 が返ります。
定数 | 説明
IDABORT | 「中止」ボタンが押されました。
IDCANCEL | 「キャンセル」ボタンが押されました。
IDIGNORE | 「無視」ボタンが押されました。
IDNO | 「いいえ」ボタンが押されました。
IDOK | 「OKボタン」が押されました。
IDRETRY | 「再試行」ボタンが押されました。
IDYES | 「はい」ボタンが押されました。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

MessageBeep関数


 Win32API: SendDlgItemMessage

ダイアログボックス内のコントロールにメッセージを送ります。

定義
Declare Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" _
   (hDlg As HWND, _
    nIDDlgItem As Long, _
    Msg As DWord, _
    wParam As DWord, _
    lParam As DWord) As Long
hDlg
ダイアログボックスのウィンドウ ハンドルを指定します。

nIDDlgItem
コントロールを示す ID を指定します。

Msg
メッセージ コードを指定します。

wParam
メッセージの付加情報を指定します。意味はメッセージにより、異なります。

lParam
メッセージの付加情報を指定します。意味はメッセージにより、異なります。

戻り値

メッセージの処理結果が返ります。意味はメッセージにより、異なります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

SendMessage関数


 Win32API: SetDlgItemText

ダイアログボックス内のコントロールのテキストを設定します。

定義
Declare Function SetDlgItemText Lib "user32" Alias "SetDlgItemTextA" _
   (hDlg As HWND, _
    nIDDlgItem As Long, _
    lpString As BytePtr) As Long
hDlg
ダイアログボックスのウィンドウ ハンドルを指定します。

nIDDlgItem
コントロールを示す ID を指定します。

lpString
文字列バッファを指定します。この文字列がコントロールのテキストに設定されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetDlgItemText関数


 Win32API: CreateIcon

指定された幅、高さ、ビットパターンで、アイコンを作成します。

定義
Declare Function CreateIcon Lib "user32" _
   (hInst As HINSTANCE, _
    nWidth As Long, _
    nHeight As Long, _
    cPlanes As Byte, _
    cBitsPixel As Byte, _
    lpbANDbits As VoidPtr, _
    lpbXORbits As VoidPtr) As HICON
hInst
アイコンを作成するモジュールのインスタンスを指定します。

nWidth
アイコンの幅を指定します。

nHeight
アイコンの高さを指定します。

cPlanes
XOR ビットマスクのカラープレーン数を指定します。

cBitsPixel
XOR ビットマスクのピクセルあたりのビット数を指定します。

lpbANDbits
アイコンの AND ビットマスク（透過用）のビットデータが入ったバイト配列へのポインタを指定します。データの形式は、モノクロのビットマップです。

lpbXORbits
アイコンの XOR ビットマスク（画像用）のビットデータが入ったバイト配列へのポインタを指定します。データの形式は、モノクロのビットマップ、または、デバイス依存のカラービットマップです。

戻り値

関数が成功すると、アイコン ハンドルが返ります。失敗すると、0 が返ります。

解説

アイコンが不要になったら、DestroyIcon関数を使用してメモリから解放して下さい。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

CreateIconIndirect関数、DestroyIcon関数


 Win32API: CreateIconIndirect

ICONINFO 構造体の内容をもとに、アイコンまたはマウス カーソルを作成します。

定義
Declare Function CreateIconIndirect Lib "user32" _
   (ByRef pIconInfo As ICONINFO) As HICON
pIconInfo （ポインタ参照）
作成するアイコンまたはマウス カーするに関する情報が格納されている、ICONINFO構造体へのポインタを指定します。

戻り値

関数が成功すると、アイコンまたはマウス カーソルのハンドルが返ります。失敗すると、0 が返ります。

解説

アイコンが不要になったら、DestroyIcon関数を使用してメモリから解放して下さい。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

CreateIcon関数、DestroyIcon関数、ICONINFO構造体


 Win32API: DestroyIcon

CreateIcon 関数および、CreateIconIndirect 関数で作成されたアイコンをメモリから削除します。

定義
Declare Function DestroyIcon Lib "user32" _
   (hIcon As HICON) As Long
hIcon
削除するアイコンのハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

CreateIcon関数、CreateIconIndirect関数


 Win32API: DrawIcon

指定したデバイス コンテキストに、指定したアイコンを描画します。

定義
Declare Function DrawIcon Lib "user32" _
   (hDC As HDC, _
    x As Long, _
    y As Long, _
    hIcon As HICON) As Long
hDC
アイコンを描画するデバイス コンテキストのハンドルを指定します。

x
アイコンの左上隅の X 座標を指定します。

y
アイコンの左上隅の Y 座標を指定します。

hIcon
アイコン ハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

DrawIconEx関数、LoadImage関数


 Win32API: DrawIconEx

指定したデバイス コンテキストに、指定したアイコンまたはマウス カーソルを描画します。拡大、縮小表示が可能です。

定義
Declare Function DrawIconEx Lib "user32" _
   (hdc As HDC, _
    xLeft As Long, _
    yTop As Long, _
    hIcon As HICON, _
    cxWidth As Long, _
    cyWidth As Long, _
    istepIfAniCur As DWord, _
    hbrFlickerFreeDraw As HBRUSH, _
    diFlags As DWord) As Long
hdc
アイコンを描画するデバイス コンテキストのハンドルを指定します。

xLeft
アイコンまたはマウス カーソルの左上隅の X 座標を指定します。

yTop
アイコンまたはマウス カーソルの左上隅の Y 座標を指定します。

hIcon
アイコン ハンドルを指定します。

cxWidth
アイコンまたはマウス カーソルの幅を指定します。diFlags パラメータに DI_DEFAULTSIZE フラグが設定されているときに、0 を指定すると、デフォルトの幅になります。

cyWidth
アイコンまたはマウス カーソルの高さを指定します。diFlags パラメータに DI_DEFAULTSIZE フラグが設定されているときに、0 を指定すると、デフォルトの幅になります。

istepIfAniCur
hIcon パラメータでアニメーション カーソルを指定したときに、描画するフレーム数を指定します。それ以外の場合は、無視されます。

hbrFlickerFreeDraw
画面のちらつきを抑えるための、ブラシのハンドルを指定します。NULL を指定すると、直接画面に描画されます。

diFlags
定数 | 説明
DI_COMPAT | ユーザーが指定したイメージではなく、システムデフォルトのイメージを使って、アイコンまたはマウス カーソルを描画します。
DI_DEFAULTSIZE | cxWidth パラメータと cyWidth パラメータに 0 が指定されている場合、アイコンまたはマウスカーソルをデフォルトのサイズで描画します。
DI_IMAGE | イメージ画像を使ってアイコンまたはマウス カーソルを描画します。
DI_MASK | マスク画像を使ってアイコンまたはマウス カーソルを描画します。
DI_NORMAL | DI_IMAGE フラグと DI_MASK フラグの組み合わせです。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

DrawIcon関数、LoadImage関数


 Win32API: GetIconInfo

アイコンまたはマウス カーソルに関する情報を取得します。

定義
Declare Function GetIconInfo Lib "user32" _
         (hIcon As HICON, _
    ByRef pIconInfo As ICONINFO) As Long
hIcon
アイコンまたはマウス カーソルのハンドルを指定します。

pIconInfo （ポインタ参照）
ICONINFO構造体へのポインタを指定します。この構造体にアイコンまたはマウス カーソルに関する情報が格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、0 が返ります。

解説

この関数は、ICONINFO構造体の hbmMask メンバおよび hbmColor メンバにビットマップを作成します。これらのビットマップが不要になったら、DeleteObject関数を使用してメモリから解放する必要があります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

DeleteObject関数、ICONINFO構造体


 Win32API: LoadIcon

リソースからアイコンを読み取ります。

定義
Declare Function LoadIcon Lib "user32" Alias "LoadBitmapA" _
   (hInst As HINSTANCE, _
    lpIconName As BytePtr) As HICON
hInst
ロードするアイコンが入ったモジュールのインスタンスのハンドルを指定します。システム定義のアイコンを読み込むときは、NULL を指定します。

lpIconName
ロードするアイコンを示すリソースID、または識別文字列を指定します。hInstance パラメータに NULL を指定したときは、以下のいずれかの定数を指定します。

定数 | 説明
IDI_APPLICATION | アプリケーションアイコン
IDI_ASTERISK | アスタリスクのアイコン（吹き出しの中に「i」の文字）
IDI_EXCLAMATION | 感嘆符「！」のアイコン
IDI_HAND | ストップ印のアイコン
IDI_QUESTION | 疑問符「?」のアイコン
IDI_WINLOGO | Windows ロゴアイコン

戻り値

関数が成功すると、アイコンのハンドルが返ります。失敗すると、0 が返ります。

解説

指定したアイコン リソースが既に読み込まれているときは、既存のハンドルが返ります。この関数で取得したアイコン ハンドルは、破棄する必要はありません（プロセス終了時に自動的に破棄されます）。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

LoadBitmap関数、LoadImage関数


 構造体: ICONINFO

アイコンまたはマウス カーソルに関する情報を格納します。

定義
Type ICONINFO
    fIcon As Long
    xHotspot As Long
    yHotspot As Long
    hbmMask As Long
    hbmColor As Long
End Type
fIcon
アイコンに関するデータのときは TRUE を、カーソルに関するデータのときは FALSE を指定します。

xHotspot
カーソルのホットスポットの X 座標を指定します。格納されるデータがアイコンに関する情報のときは、このメンバは無視されます。

yHotspot
カーソルのホットスポットの Y 座標を指定します。格納されるデータがアイコンに関する情報のときは、このメンバは無視されます。

hbmMask
AND ビットマスク（透過）用のビットマップ ハンドルを指定します。

hbmColor
XOR ビットマスク（画像）用のビットマップ ハンドルを指定します。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み

CreateIconIndirect関数、GetIconInfo関数


 Win32API: GetActiveWindow

呼び出し側スレッドが所有するウィンドウの中から、アクティブなウィンドウのハンドルを取得します。

定義

Declare Function GetActiveWindow Lib "user32" ( ) As HWND

戻り値

アクティブ ウィンドウのハンドルが返ります。呼び出し側スレッドにアクティブ ウィンドウが存在しないときは、0 が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

SetActiveWindow関数


 Win32API: GetAsyncKeyState

指定したキーの状態を取得します。

定義
Declare Function GetAsyncKeyState Lib "user32" _
   (ByVal vKey As Long) As Integer
vKey
調査する仮想キー コードを1つ指定します。WindowsNT系OSでは、特定のキーに対して以下の定数を指定することで、左右のキーを区別することができます。
左 | 右
VK_LSHIFT | VK_RSHIFT
VK_LCONTROL | VK_RCONTROL
VK_LMENU | VK_RMENU

戻り値

現在のキーの状態が16ビット整数値で返ります。最上位ビットが 1 のときは、現在キーが押されていることを意味します。最下位ビットが 1 のときは、前回、GetAsyncKeyState関数が呼び出されたときから一回以上、キーが押されたことを意味します。
呼び出し側スレッドにキーボード フォーカスがないときは、0 が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetKeyboardState関数、GetKeyState関数


 Win32API: GetFocus

呼び出し側スレッドに属するウィンドウの中から、キーボードフォーカスを持つウィンドウのハンドルを取得します。

定義

Declare Function GetFocus Lib "user32" ( ) As HWND

戻り値

関数が成功すると、ウィンドウ ハンドルが返ります。失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

SetFocus関数


 Win32API: GetKeyboardState

すべての仮想キーの情報を指定したバッファにコピーします。

定義
Declare Function GetKeyboardState Lib "user32" _
   (lpKeyState As BytePtr) As Long
lpKeyState
256 バイトの容量を持つバッファへのポインタを指定します。このバッファに仮想キーに関する情報が格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

仮想キーのキー コードがByte型配列へのインデックスになります。各バイトごと、最上位ビットが 1 であると、キーボードが押されていることを示します。最下位ビットが 1 であると、そのキーがトグル状態にあることを示します。トグル状態とは、CapsLock などのキーが ON になっているときの状態です。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

SetKeyboardState関数、GetAsyncKeyState関数、GetKeyState関数


 Win32API: GetKeyState

指定した仮想キーの状態を取得します。

定義
Declare Function GetKeyState Lib "user32" _
   (nVirtKey As Long) As Integer
nVirtKey
調査する仮想キー コードを1つ指定します。WindowsNT系OSでは、特定のキーに対して以下の定数を指定することで、左右のキーを区別することができます。
左 | 右
VK_LSHIFT | VK_RSHIFT
VK_LCONTROL | VK_RCONTROL
VK_LMENU | VK_RMENU

戻り値

キーの状態が16ビット整数値で返ります。最上位ビットが 1 であると、キーボードが押されていることを示します。最下位ビットが 1 であると、そのキーがトグル状態にあることを示します。トグル状態とは、CapsLock などのキーが ON になっているときの状態です。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetAsyncKeyState関数、GetKeyboardState関数


 Win32API: IsWindowEnabled

ウィンドウが有効であるか、無効であるかを判断します。

定義
Declare Function IsWindowEnabled Lib "user32" _
   (hWnd As HWND) As Long
hWnd
ウィンドウ ハンドルを指定します。

戻り値

ウィンドウが有効であるときは、TRUE が返ります。無効のときは、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

EnableWindow関数


 Win32API: keybd_event

キー ストロークを合成し、システムに送ります。システムは、キーボード イベント（WM_KEYDOWN、WM_KEYUP など）を呼び出します。

定義
Declare Sub keybd_event Lib "user32" _
   (bVk As Byte, _
    bScan As Byte, _
    dwFlags As DWord, _
    dwExtraInfo As DWord)
bVk
仮想キー コードを指定します。

bScan
キーのハードウェア スキャン コードを指定します。

dwFlags
動作フラグを、以下の定数から指定します。0 を指定して、省略することもできます。
定数 | 説明
KEYEVENTF_EXTENDEDKEY | スキャンコードにプリフィックスバイト &HE0 を付加します。
KEYEVENTF_KEYUP | キーを離す操作を行います。

dwExtraInfo
キー ストロークに関連した 32 ビットの追加情報を指定します。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll


 Win32API: SetActiveWindow

呼び出し側スレッドが所有するウィンドウの中から、アクティブなウィンドウを設定します。

定義
Declare Function SetActiveWindow Lib "user32" _
   (hWnd As HWND) As HWND
hWnd
ウィンドウ ハンドルを指定します。

戻り値

関数が成功すると、以前アクティブだったウィンドウのハンドルが返ります。失敗すると、0 が返ります。

解説

呼び出し側スレッドにアクティブなウィンドウがないときは、呼び出し側スレッドが所有するウィンドウの中で、一番手前に、指定したウィンドウを持ってきます。
呼び出し側スレッドにアクティブなウィンドウが存在せず、指定したウィンドウをアクティブにしたいときは、SetForegroundWindow関数を使用して下さい。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetActiveWindow関数、SetForegroundWindow関数


 Win32API: SetFocus

指定したウィンドウにキーボード フォーカスを設定します。

定義
Declare Function SetFocus Lib "user32" _
   (hWnd As HWND) As HWND
hWnd
ウィンドウ ハンドルを指定します。

戻り値

関数が成功すると、以前キーボード フォーカスを所有していたウィンドウのハンドルが返ります。失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetFocus関数


 Win32API: SetKeyboardState

指定したキー情報の配列を、呼び出し側スレッドのキーボード入力状態テーブルにコピーします。

定義
Declare Function SetKeyboardState Lib "user32" _
   (lpKeyState As BytePtr) As Long
lpKeyState
すべての仮想キーの状態が格納されたバッファ（256 バイト）へのポインタを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

この関数では、特定キー（NumLock、CapsLock、ScrollLock など）のトグル状態を変更することはできません。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetKeyboardState関数


 Win32API: CheckMenuRadioItem

メニュー項目をラジオ ボタンとしてチェックします。

定義
Declare Function CheckMenuRadioItem Lib "user32" _
   (hMenu As HMENU, _
    idFirst As DWord, _
    idLast As DWord, _
    idCheck As DWord, _
    uFlags As DWord) As Long
hMenu
メニュー ハンドルを指定します。

idFirst
グループ内の最初のメニュー項目を指定します。

idLast
グループ内の最後のメニュー項目を指定します。

idCheck
チェックするメニュー項目を指定します。

uFlags
以下のいずれかの定数を指定します。
定数 | 説明
MF_BYCOMMAND | idFirst、idLast、idCheck パラメータがメニュー項目のIDを指定していることを示します。
MF_BYPOSITION | idFirst、idLast、idCheck パラメータがメニュー項目の相対位置を指定していることを示します。

戻り値

関数が成功すると TRUE が返ります。失敗すると FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll


 Win32API: CreateMenu

メニューを作成します。

定義

Declare Function CreateMenu Lib "user32" ( ) As HMENU

戻り値

作成されたメニューのハンドルが返ります。作成に失敗した場合は NULL が返ります。

解説

作成したメニューに項目を追加していく場合はInsertMenuItem関数を使用して下さい。
ウィンドウに関連付けられているもの以外のメニューは、DestroyMenu関数を使用して解放する必要があります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

InsertMenuItem関数、DestroyMenu関数


 Win32API: CreatePopupMenu

ドロップダウンメニュー、サブメニュー、ショートカットメニューを作成します。

定義

Declare Function CreatePopupMenu Lib "user32" ( ) As HMENU

戻り値

作成されたメニューのハンドルが返ります。作成に失敗した場合は NULL が返ります。

解説

作成したメニューに項目を追加していく場合はInsertMenuItem関数を使用して下さい。
ウィンドウに関連付けられているもの以外のメニューは、DestroyMenu関数を使用して解放する必要があります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

InsertMenuItem関数、DestroyMenu関数


 Win32API: DeleteMenu

指定したメニュー項目を削除します。

定義
Declare Function DeleteMenu Lib "user32" _
   (hMenu As HMENU, _
    uPosition As DWord, _
    uFlags As DWord) As Long
hMenu
メニューのハンドルを指定します。

uPosition
削除する項目の ID、または相対位置を指定します。

uFlags
以下のいずれかの定数を指定します。
定数 | 説明
MF_BYCOMMAND | uPosition パラメータがメニュー項目のIDを指定していることを示します。
MF_BYPOSITION | uPosition パラメータがメニュー項目の相対位置を指定していることを示します。

戻り値

関数が成功すると TRUE が返ります。失敗すると FALSE が返ります。

解説

メニュー項目が変更された場合はDrawMenuBar関数でメニューを再描画して下さい。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

DrawMenuBar関数、RemoveMenu関数


 Win32API: DestroyMenu

メニューを破棄し、使用されていたメモリを解放します。

定義
Declare Function DestroyMenu Lib "user32" _
   (hMenu As HMENU) As Long

hMenu
破棄するメニューのハンドルを指定します。

戻り値

関数が成功すると TRUE が返ります。失敗すると FALSE が返ります。

解説

ウィンドウにセットされているメニューは自動的に破棄されるので、この命令語を使う必要はありません。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll


 Win32API: DrawMenuBar

メニューを再描画します。

定義
Declare Function DrawMenuBar Lib "user32" _
   (hMenu As HMENU) As Long
hMenu
メニューバーを再描画する必要のあるウィンドウのハンドルを指定します。

戻り値

関数が成功すると TRUE が返ります。失敗すると FALSE が返ります。

解説

メニュー項目が変更された場合はこの命令語を使用して再描画を行う必要があります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll


 Win32API: EnableMenuItem

メニュー項目を有効化、無効化、または淡色表示にします。

定義

Declare Function EnableMenuItem Lib "user32" _
   (hMenu As HMENU, _
    uIDEnableItem As DWord, _
    uEnable As DWord) As DWord
hMenu
項目を含むメニューのハンドルを指定します。

uIDEnableItem
項目の相対位置、またはIDを指定します。

uEnable
以下の２つの表の定数をOr演算で組み合わせて指定します。

uIDEnableItemの状況指定
定数 | 説明
MF_BYCOMMAND | uIDEnableItemパラメータが項目のIDを指定していることを示します。
MF_BYPOSITION | uIDEnableItemパラメータが項目の相対位置を指定していることを示します。

メニューの状態指定
定数 | 説明
MF_DISABLED | メニュー項目を無効化します。淡色表示にはされませんが、使用不能であり、選択できません。
MF_ENABLED | メニュー項目を有効化します。淡色表示から通常の表示に戻ります。
MF_GRAYED | メニュー項目を淡色表示にします。使用不能であり、選択できません。

戻り値

メニュー項目の設定前の状態（MF_DISABLED、MF_ENABLED、MF_GRAYED）が返ります。メニュー項目が存在しない場合は&HFFFFFFFFが返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll


 Win32API: GetMenu

指定したウィンドウに関連付けられているメニューを取得します。

定義
Declare Function GetMenu Lib "user32" _
   (hWnd As HWND) As HMENU
hWnd
ウィンドウ ハンドルを指定します。

戻り値

関数が成功すると、hWnd パラメータで指定したウィンドウに関連付けられているメニューのハンドルが返ります。
関数が失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

SetMenu関数


 Win32API: GetMenuDefaultItem

指定したメニューの、デフォルト メニュー項目を取得します。

定義
Declare Function GetMenuDefaultItem Lib "user32" _
   (hMenu As HMENU, _
    fByPos As DWord, _
    gmdiFlags As DWord) As DWord
hMenu
メニュー ハンドルを指定します。

fByPos
戻り値の、項目指定方法を、以下の定数から指定します。
定数 | 説明
MF_BYCOMMAND | メニュー項目のIDが戻り値になります。
MF_BYPOSITION | メニュー項目の相対位置が戻り値になります。

gmdiFlags
探索方法を、以下の定数を組み合わせて指定します。0 を指定することで、省略することもできます。
定数 | 説明
GMDI_GOINTOPOPUPS | デフォルト メニュー項目がサブメニューを開く場合、サブメニューの中も再帰的に探索します。
GMDI_USEDISABLED | 無効や淡色表示のメニュー項目も探索します。

戻り値

関数が成功すると、メニュー項目の ID、または相対位置が返ります。失敗すると、&HFFFFFFFF が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

SetMenuDefaultItem関数


 Win32API: GetMenuItemInfo

指定したメニュー項目に関する情報を取得します。

定義
Declare Function GetMenuItemInfo Lib "user32" Alias "GetMenuItemInfoA" _
         (hMenu As HMENU, _
          uItem As DWord, _
          fByPosition As DWord, _
    ByRef lpmii As MENUITEMINFO) As Long
hMenu
メニュー ハンドルを指定します。

uItem
メニュー項目の ID、または相対位置を指定します。

fByPosition
以下のいずれかの定数を指定します。
定数 | 説明
MF_BYCOMMAND | uItem パラメータがメニュー項目のIDを指定していることを示します。
MF_BYPOSITION | uItem パラメータがメニュー項目の相対位置を指定していることを示します。

lpmii （ポインタ参照）
MENUITEMINFO構造体へのポインタを指定します。この構造体に、メニュー項目に関する情報が格納されます。構造体の各メンバの初期値をあらかじめ指定しておく必要があります。

戻り値

関数が成功すると TRUE が返ります。失敗すると FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

MENUITEMINFO構造体、SetMenuItemInfo関数


 Win32API: GetSubMenu

サブメニューのハンドルを取得します。

定義
Declare Function GetSubMenu Lib "user32" _
   (hMenu As DWord, _
    nPos As Long) As DWord
hMenu
親メニューのハンドルを指定します。

nPos
サブメニューの項目を示す、相対位置を指定します。

戻り値

関数が成功すると、サブメニューのハンドルが返ります。失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll


 Win32API: InsertMenuItem

メニュー内の指定された位置に、新しいメニュー項目を挿入します。

定義
Declare Function InsertMenuItem Lib "user32" Alias "InsertMenuItemA" _
         (hMenu As HMENU, _
          uItem As DWord, _
          fByPosition As DWord, _
    ByRef lpmii As MENUITEMINFO) As Long
hMenu
メニュー ハンドルを指定します。

uItem
メニュー項目の ID、または相対位置を指定します。ここで指定するメニュー項目の前に、新しいメニューが挿入されます。

fByPosition
以下のいずれかの定数を指定します。
定数 | 説明
MF_BYCOMMAND | uItem パラメータがメニュー項目のIDを指定していることを示します。
MF_BYPOSITION | uItem パラメータがメニュー項目の相対位置を指定していることを示します。

lpmii （ポインタ参照）
新しいメニュー項目に関する情報が格納されている、MENUITEMINFO構造体へのポインタを指定します。

戻り値

関数が成功すると TRUE が返ります。失敗すると FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

MENUITEMINFO構造体


 Win32API: RemoveMenu

メニューから項目を削除します。削除する項目がサブメニューである場合はハンドルを継続して使用することができます。

定義
Declare Function RemoveMenu Lib "user32" _
   (hMenu As HMENU, _
    uPosition As DWord, _
    uFlags As DWord) As Long
hMenu
メニューのハンドルを指定します。

uPosition
削除する項目の ID、または相対位置を指定します。

uFlags
以下のいずれかの定数を指定します。
定数 | 説明
MF_BYCOMMAND | uPosition パラメータがメニュー項目のIDを指定していることを示します。
MF_BYPOSITION | uPosition パラメータがメニュー項目の相対位置を指定していることを示します。

戻り値

関数が成功すると TRUE が返ります。失敗すると FALSE が返ります。

解説

メニュー項目が変更された場合はDrawMenuBar関数でメニューを再描画して下さい。
削除するメニュー項目がサブメニューであり、そのサブメニューが以後必要ない場合はDeleteMenu関数を使用して下さい。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

DrawMenuBar関数、DeleteMenu関数


 Win32API: SetMenu

ウィンドウにメニューを割り当てます。

定義
Declare Function SetMenu Lib "user32" _
   (hWnd As HWND, _
    hMenu As HMENU) As Long
hWnd
ウィンドウ ハンドルを指定します。

hMenu
メニュー ハンドルを指定します。

戻り値

関数が成功すると TRUE が返ります。失敗すると FALSE が返ります。

解説

指定したウィンドウに以前のメニューがあっても、それを破棄せずに置き換えてしまいます。古いメニューはDestroyMenu関数を使用して破棄して下さい。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetMenu関数


 Win32API: SetMenuDefaultItem

指定したメニュー項目を、デフォルトのメニュー項目にします。

定義
Declare Function SetMenuDefaultItem Lib "user32" _
   (hMenu As HMENU, _
    uItem As DWord, _
    fByPos As DWord) As Long
hMenu
メニュー ハンドルを指定します。

uItem
メニュー項目の ID、または相対位置を指定します。

fByPos
以下のいずれかの定数を指定します。
定数 | 説明
MF_BYCOMMAND | uItem パラメータがメニュー項目のIDを指定していることを示します。
MF_BYPOSITION | uItem パラメータがメニュー項目の相対位置を指定していることを示します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetMenuDefaultItem関数


 Win32API: SetMenuItemInfo

指定したメニュー項目に関する情報を変更します。

定義
Declare Function SetMenuItemInfo Lib "user32" Alias "SetMenuItemInfoA" _
         (hMenu As HMENU, _
          uItem As DWord, _
          fByPosition As Long, _
    ByRef lpmii As MENUITEMINFO) As Long
hMenu
メニュー ハンドルを指定します。

uItem
メニュー項目の ID、または相対位置を指定します。

fByPosition
以下のいずれかの定数を指定します。
定数 | 説明
MF_BYCOMMAND | uItem パラメータがメニュー項目のIDを指定していることを示します。
MF_BYPOSITION | uItem パラメータがメニュー項目の相対位置を指定していることを示します。

lpmii （ポインタ参照）
メニュー項目に関する情報が格納されている、MENUITEMINFO構造体へのポインタを指定します。

戻り値

関数が成功すると TRUE が返ります。失敗すると FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

MENUITEMINFO構造体、GetMenuItemInfo関数


 Win32API: TrackPopupMenu

ポップアップ メニューを表示します。

定義
Declare Function TrackPopupMenu Lib "user32" _
         (hMenu As HMENU, _
          uFlags As DWord, _
          x As Long, _
          y As Long, _
          nReserved As Long, _
          hWnd As HWND, _
    ByRef prcRect As RECT) As Long
hMenu
メニュー ハンドルを指定します。

uFlags
以下の定数を組み合わせてオプションを指定します。
定数 | 説明
TPM_BOTTOMALIGN | メニューの下端を、y パラメータの位置に合わせます。
TPM_CENTERALIGN | メニューの水平方向の中心を、x パラメータの位置に合わせます。
TPM_LEFTALIGN | メニューの左端を、x パラメータの位置に合わせます。
TPM_LEFTBUTTON | マウスの左ボタンをトラックします、
TPM_NONOTIFY | 通知メッセージを送らないようにします。
TPM_RETURNCMD | 関数の戻り値に、ユーザーがクリックしたメニュー項目のIDがセットされます。
TPM_RIGHTALIGN | メニューの右端を、x パラメータの位置に合わせます。
TPM_RIGHTBUTTON | マウスの右ボタンをトラックします。
TPM_TOPALIGN | メニューの上端を、y パラメータの位置に合わせます。
TPM_VCENTERALIGN | メニューの垂直方向の中心を、y パラメータの位置に合わせます。

x
メニューの水平位置を、スクリーン座標で指定します。

y
メニューの垂直位置を、スクリーン座標で指定します。

nReserved
予約されています。0 を指定して下さい。

hWnd
メニューを所有するウィンドウを指定します。ここで指定するウィンドウに、メニュー メッセージが送られます。

prcRect （ポインタ参照）
メニューを解放せずに利用できるスクリーン部分を、RECT構造体で指定します。
NULL を指定すると、メニューの外側をクリックすることによって、メニューを解放することができます。

戻り値

関数が成功すると TRUE が返ります。失敗すると FALSE が返ります。
ただし、uFlags パラメータに TPM_RETURNCMD フラグが設定されている場合は、ユーザーがクリックしたメニュー項目のIDが返ります。また、メニュー項目をクリックしなかった場合は 0 が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

CreatePopupMenu関数


 構造体: MENUITEMINFO

メニュー項目に関する情報を格納します。

定義
Type MENUITEMINFO
    cbSize        As DWord
    fMask         As DWord
    fType         As DWord
    fState        As DWord
    wID           As DWord
    hSubMenu      As HMENU
    hbmpChecked   As HBITMAP
    hbmpUnchecked As HBITMAP
    dwItemData    As DWord
    dwTypeData    As BytePtr
    cch           As DWord
End Type
cbSize
構造体のサイズを指定します。

fMask
どのメンバ変数を利用するかを指定します。
定数 | 説明
MIIM_CHECKMARKS | hbmpChecked、hbmpUnchecked メンバが有効になります。
MIIM_DATA | dwItemData メンバが有効になります。
MIIM_ID | wID メンバが有効になります。
MIIM_STATE | fState メンバが有効になります。
MIIM_SUBMENU | hSubMenu メンバが有効になります。
MIIM_TYPE | fType、dwTypeData メンバが有効になります。

fType
メニュー項目のタイプを、以下の定数を組み合わせて指定します。
定数 | 説明
MFT_BITMAP | ビットマップを使用してメニューを表示します。dwTypeData メンバの下位ワードでビットマップ ハンドルを指定します。cch メンバは無視されます。
MFT_MENUBARBREAK | メニュー項目を、新しい行に配置します。ドロップダウン メニュー、サブメニュー、ショートカット メニューの場合は行間に線が引かれます。
MFT_MENUBREAK | メニュー項目を、新しい行に配置します。ドロップダウン メニュー、サブメニュー、ショートカット メニューのときは、行間に線が引かれません。
MFT_OWNERDRAW | メニューの描画をオーナーウィンドウに任せます。dwTypeData メンバはアプリケーション定義の32ビット値をもちます。
MFT_RADIOCHECK | hbmpChecked メンバが NULL のとき、ラジオボタンのチェックマークをメニュー項目のチェックマークにします。
MFT_RIGHTJUSTIFY | 以降のメニュー項目を右揃えで表示します。メニュー バーにのみ有効です。
MFT_RIGHTORDER | 右から左へメニュー項目を表示します。アラビア語やヘブライ語を表示するために使用します。（Windows95、WindowsNT5.0以降）
MFT_SEPARATOR | メニュー項目がセパレータであることを示します。dwTypeData メンバ、cch メンバは無視されます。
MFT_STRING | 文字列を使ってメニュー項目を表示します。dwTypeData メンバには NULL で終わる文字列バッファへのポインタを指定します。cch メンバには文字列のバイト数を指定します。

fState
メニュー項目の状態を、以下の定数を組み合わせて指定します。
定数 | 説明
MFS_CHECKED | チェック マークを表示します。
MFS_DEFAULT | デフォルトのメニュー項目に設定します。メニュー項目は太字で表示されます。
MFS_DISABLED | メニュー項目を選択不可にします。淡色表示にはなりません。
MFS_ENABLED | メニュー項目を有効にします。
MFS_GRAYED | メニュー項目を選択不可にし、淡色表示します。
MFS_HILITE | メニュー項目を強調表示します。
MFS_UNCHECKED | チェック マークを解除します。
MFS_UNHILITE | 強調表示を解除します。

wID
メニュー項目の ID を指定します。

hSubMenu
サブメニューのハンドルを指定します。サブメニューがない場合は、NULL を指定します。

hbmpChecked
チェック マークに使用するビットマップのハンドルを指定します。NULL を指定すると、デフォルトのチェック マークで表示されます。

hbmpUnchecked
チェックが解除されているときに表示するビットマップのハンドルを指定します。NULL を指定すると、なにも表示されません。

dwItemData
メニュー項目に関連付けられたアプリケーション定義の32ビット値です。

dwTypeData
fType メンバに MFT_STRING フラグが設定されているときは、文字列バッファへのポインタを指定します。MFT_BITMAP が設定されているときは、ビットマップ ハンドルを指定します。それ以外は無視されます。

cch
fType メンバに MFT_STRING フラグが設定されているときは、dwTypeData メンバで指定した文字列のバイト数を指定します。それ以外は無視されます。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み

GetMenuItemInfo関数、SetMenuItemInfo関数、InsertMenuItem関数


 Win32API: CallWindowProc

指定したウィンドウ プロシージャにメッセージを送ります。

定義
Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" _
   (lpPrevWndFunc As DWord, _
    hWnd As HWND, _
    Msg As DWord, _
    wParam As DWord, _
    lParam As DWord) As Long
lpPrevWndFunc
コールバック関数のアドレスを指定します。

hWnd
メッセージを受け取るウィンドウのハンドルを指定します。

Msg
メッセージ コードを指定します。

wParam
メッセージの付加情報を指定します。意味はメッセージにより、異なります。

lParam
メッセージの付加情報を指定します。意味はメッセージにより、異なります。

戻り値

メッセージの処理結果が返ります。意味はメッセージにより、異なります。

解説

この関数は、ウィンドウをサブクラス化した場合に使用します。新しいコールバック関数で処理しないメッセージは、以前のコールバック関数に処理を委ねる必要があります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll


 Win32API: DefWindowProc

アプリケーションが処理しないメッセージ処理に対して、デフォルトの動作を提供します。

定義
Declare Function DefWindowProc Lib "user32" Alias "DefWindowProcA" _
   (hWnd As HWND, _
    wMsg As DWord, _
    wParam As DWord, _
    lParam As DWord) As Long
hWnd
メッセージを受け取ったウィンドウのハンドルを指定します。

wMsg
メッセージ コードを指定します。

wParam
メッセージの付加情報を指定します。意味はメッセージにより、異なります。

lParam
メッセージの付加情報を指定します。意味はメッセージにより、異なります。

戻り値

メッセージの処理結果が返ります。意味はメッセージにより、異なります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll


 Win32API: DispatchMessage

メッセージ情報をもとに、ウィンドウ プロシージャを呼び出します。

定義
Declare Function DispatchMessage Lib "user32" Alias "DispatchMessageA" _
   (ByRef lpMsg As MSG) As Long
lpMsg （ポインタ参照）
メッセージ情報が格納されている、MSG構造体へのポインタを指定します。

戻り値

ウィンドウ プロシージャの戻り値が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

MSG構造体、GetMessage関数


 Win32API: GetMessage

呼び出し側スレッドのメッセージ キューから、メッセージを取得します。

定義
Declare Function GetMessage Lib "user32" Alias "GetMessageA" _
   (ByRef lpMsg As MSG, _
          hWnd As HWND, _
          wMsgFilterMin As DWord, _
          wMsgFilterMax As DWord) As Long
lpMsg （ポインタ参照）
MSG構造体へのポインタを指定します。この構造体に取得したメッセージに関する情報が格納されます。

hWnd
メッセージを取得するウィンドウのハンドルを指定します。スレッドに属するすべてのウィンドウに対するメッセージを取得する場合には、このパラメータは NULL にしておきます。

wMsgFilterMin
取得するメッセージの範囲の最小値を指定します。wMsgFilterMin、wMsgFilterMax パラメータの両方を 0 にすると、メッセージのフィルタリングは行われません。

wMsgFilterMax
取得するメッセージの範囲の最大値を指定します。

戻り値

WM_QUIT 以外のメッセージを取得すると、1 が返ります。
WM_QUIT メッセージを取得すると、0 が返ります。
関数が失敗すると、-1 が返ります。

解説

メッセージ キュー内にメッセージが存在しないとき、この関数はメッセージを取得できるまで待機状態になります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

MSG構造体、PeekMessage関数、PostMessage関数


 Win32API: PeekMessage

呼び出し側スレッドのメッセージ キューから、メッセージを取得します。

定義
Declare Function PeekMessage Lib "user32" Alias "PeekMessageA" _
   (ByRef lpMsg As MSG, _
          hWnd As HWND, _
          wMsgFilterMin As DWord, _
          wMsgFilterMax As DWord, _
          wRemoveMsg As DWord) As Long
lpMsg （ポインタ参照）
MSG構造体へのポインタを指定します。この構造体に取得したメッセージに関する情報が格納されます。

hWnd
メッセージを取得するウィンドウのハンドルを指定します。スレッドに属するすべてのウィンドウに対するメッセージを取得する場合には、このパラメータは NULL にしておきます。

wMsgFilterMin
取得するメッセージの範囲の最小値を指定します。wMsgFilterMin、wMsgFilterMax パラメータの両方を 0 にすると、メッセージのフィルタリングは行われません。

wMsgFilterMax
取得するメッセージの範囲の最大値を指定します。

wRemoveMsg
取得したメッセージを、メッセージ キューから削除するかを、以下の定数で指定します。
定数 | 説明
PM_NOREMOVE | メッセージ キューから削除しません。
PM_REMOVE | メッセージ キューから削除します。

戻り値

メッセージを取得したときは、TRUE が返ります。
メッセージを取得できなかったときは、FALSE が返ります。

解説

GetMessage関数とは異なり、メッセージがメッセージ キュー内に存在しないときでも、関数は待機をせずに終了します。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

MSG構造体、GetMessage関数


 Win32API: PostMessage

指定したウィンドウが属するスレッドにメッセージをポストします。

定義
Declare Function PostMessage Lib "user32" Alias "PostMessageA" _
   (hWnd As HWND, _
    wMsg As DWord, _
    wParam As DWord, _
    lParam As DWord) As Long
hWnd
メッセージを受け取るウィンドウのハンドルを指定します。
HWND_BROADCAST を指定するとすべてのトップレベルウィンドウがメッセージを受け取ります（子ウィンドウを除く）。
NULL を指定すると呼び出し側スレッドにメッセージがポストされます。

wMsg
メッセージ コードを指定します。

wParam
メッセージの付加情報を指定します。意味はメッセージにより、異なります。

lParam
メッセージの付加情報を指定します。意味はメッセージにより、異なります。

戻り値

メッセージの処理結果が返ります。意味はメッセージにより、異なります。

解説

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

SendMessage関数、GetMessage関数、PeekMessage関数


 Win32API: PostQuitMessage

スレッド終了を要求するメッセージをポストします。

定義
Declare Sub PostQuitMessage Lib "user32" _
   (nExitCode As Long)
nExitCode
アプリケーションの終了コードを指定します。この値は、WM_QUIT メッセージの wParam に設定されます。

戻り値

戻り値はありません。

解説

この関数は、WM_QUIT メッセージをポストし、すぐに制御を返します。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

PostMessage関数、GetMessage関数、PeekMessage関数


 Win32API: PostThreadMessage

指定したスレッドにメッセージをポストします。

定義
Declare Function PostThreadMessage Lib "user32" Alias "PostThreadMessageA" _
   (idThread As DWord, _
    Msg As DWord, _
    wParam As DWord, _
    lParam As DWord) As Long
idThread
スレッドの識別 ID を指定します。

Msg
メッセージ コードを指定します。

wParam
メッセージの付加情報を指定します。意味はメッセージにより、異なります。

lParam
メッセージの付加情報を指定します。意味はメッセージにより、異なります。

戻り値

メッセージの処理結果が返ります。意味はメッセージにより、異なります。

解説

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

SendMessage関数、GetMessage関数、PeekMessage関数


 Win32API: RegisterWindowMessage

2 つの異なるアプリケーションが互いにメッセージ交換を行う場合の、ウィンドウ メッセージを登録します。

定義
Declare Function RegisterWindowMessage Lib "user32" Alias "RegisterWindowMessageA" _
   (lpString As BytePtr) As DWord
lpString
メッセージ名を指定します。

戻り値

関数が成功すると、&HC000 ～ &HFFFF の範囲のメッセージ コードが返ります。失敗すると、0 が返ります。

解説

2 つの異なるアプリケーションがこの関数に同じ文字列を渡すと、同様のメッセージ コードが返ります。メッセージ情報は、Windows が終了するまで保存されます。
アプリケーション固有のメッセージは、この関数を使用して登録する必要はありません。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

SendMessage関数


 Win32API: SendMessage

指定したウィンドウにメッセージを送ります。

定義
Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
   (hWnd As HWND, _
    wMsg As DWord, _
    wParam As DWord, _
    lParam As DWord) As Long
hWnd
メッセージを受け取るウィンドウのハンドルを指定します。HWND_BROADCAST を指定するとすべてのトップレベルウィンドウがメッセージを受け取ります（子ウィンドウを除く）。

wMsg
メッセージ コードを指定します。

wParam
メッセージの付加情報を指定します。意味はメッセージにより、異なります。

lParam
メッセージの付加情報を指定します。意味はメッセージにより、異なります。

戻り値

メッセージの処理結果が返ります。意味はメッセージにより、異なります。

解説

hWnd パラメータで指定するウィンドウのスレッドが呼び出し側スレッドと同じときは、ウィンドウ プロシージャが直接呼び出されます。違う場合は、OSがスレッドを切り替えてからウィンドウ プロシージャが呼び出されます。ウィンドウ プロシージャがメッセージ処理を終えるまで、この関数は停止します。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

PostMessage関数


 Win32API: TranslateMessage

仮想キーメッセージに対応する文字メッセージを、ポストします。

定義
Declare Function TranslateMessage Lib "user32" _
   (ByRef lpMsg As MSG) As Long
lpMsg （ポインタ参照）
メッセージ情報が格納されている、MSG構造体へのポインタを指定します。

戻り値

文字メッセージがポストされると、TRUE が返ります。ポストされなかったときは、FALSE が返ります。

解説

この関数は、仮想キーメッセージをもとに、WM_CHAR、WM_DEADCHAR、WM_SYSCHAR、WM_SYSDEADCHAR メッセージのいずれかをメッセージ キューにポストします。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

MSG構造体


 Win32API: WaitMessage

呼び出し側スレッドのメッセージ キュー内にメッセージが置かれるまで待機し、他のスレッドに制御を与えます。

定義

Declare Function WaitMessage Lib "user32" ( ) As Long

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

PeekMessage関数


 構造体: MSG

ウィンドウ メッセージに関する情報を管理します。

定義
Type MSG
    hwnd As Long
    message As Long
    wParam As Long
    lParam As Long
    time As Long
    pt As POINTAPI
End Type
hwnd
メッセージの対象となるウィンドウのハンドルが格納されます。

message
メッセージ コードが格納されます。

wParam
メッセージの付加情報が格納されます。意味はメッセージにより、異なります。

lParam
メッセージの付加情報が格納されます。意味はメッセージにより、異なります。

time
メッセージがポストされた時間が格納されます。

pt
メッセージがポストされたときのカーソル位置が格納されます。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み

GetMessage関数、PeekMessage関数


 Win32API: GetCapture

呼び出し側スレッドに属するウィンドウの中から、マウスをキャプチャーしているウィンドウのハンドルを取得します。

定義

Declare Function GetCapture Lib "user32" ( ) As HWND

戻り値

関数が成功すると、マウスをキャプチャーしているウィンドウのハンドルが返ります。呼び出し側スレッドに属するウィンドウの中に、マウスをキャプチャーしているウィンドウが存在しないときは、NULL が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

ReleaseCapture関数、SetCapture関数


 Win32API: GetDoubleClickTime

ダブルクリックのクリック間隔時間を取得します。

定義

Declare Function GetDoubleClickTime Lib "user32" ( ) As DWord

戻り値

ダブルクリックのクリック間隔時間がミリ秒単位で返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

SetDoubleClickTime関数


 Win32API: mouse_event

マウス イベントを発生させます。

定義
Declare Sub mouse_event Lib "user32" _
   (dwFlags As DWord, _
    dx As DWord, _
    dy As DWord, _
    dwData As DWord, _
    dwExtraInfo As DWord)
dwFlags
マウスの動作に関するオプションを、以下の定数を組み合わせて指定します。
定数 | 説明
MOUSEEVENTF_ABSOLUTE | dx パラメータと dy パラメータの座標を、絶対的な座標として解釈させます。このフラグが指定されていないときは、相対的な座標として解釈されます。
MOUSEEVENTF_MOVE | マウスが動かされたことを示します。
MOUSEEVENTF_LEFTDOWN | 左ボタンが押された状態になったことを示します。
MOUSEEVENTF_LEFTUP | 左ボタンが離された状態になったことを示します。
MOUSEEVENTF_RIGHTDOWN | 右ボタンが押された状態になったことを示します。
MOUSEEVENTF_RIGHTUP | 右ボタンが離された状態になったことを示します。
MOUSEEVENTF_MIDDLEDOWN | 中央ボタンが押された状態になったことを示します。
MOUSEEVENTF_MIDDLEUP | 中央ボタンが離された状態になったことを示します。
MOUSEEVENTF_WHEEL | マウスがホイールを持つ場合、そのホイールが動かされていることを示します（WindowsNT系OSのみ）。移動の量は、dwData パラメータで指定します。

dx
dwFlags パラメータに MOUSEEVENTF_ABSOLUTE フラグが設定されているときは、マウスの X 座標をスクリーン座標で指定します。それ以外のときは、マウスの X 座標を、現在のマウスの位置を基準にした相対的な座標で指定します。

dy
dwFlags パラメータに MOUSEEVENTF_ABSOLUTE フラグが設定されているときは、マウスの Y 座標をスクリーン座標で指定します。それ以外のときは、マウスの Y 座標を、現在のマウスの位置を基準にした相対的な座標で指定します。

dwData
dwFlags パラメータに MOUSEEVENTF_WHEEL フラグが設定されているときに、ホイールの回転量を指定します。正の値では前方に、負の値では後方にホイールが回転することを示します。

dwExtraInfo
マウスイベントに関連付けられた 32 ビット整数値の追加情報を指定します。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll


 Win32API: ReleaseCapture

呼び出し側スレッドに属するウィンドウから、マウスをキャプチャーを解放します。

定義

Declare Function ReleaseCapture Lib "user32" ( ) As Long

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetCapture関数、SetCapture関数


 Win32API: SetCapture

マウスをキャプチャーするウィンドウを設定します。

定義
Declare Function SetCapture Lib "user32" _
   (hWnd As HWND) As HWND
hWnd
ウィンドウ ハンドルを指定します。ここで指定するウィンドウは、呼び出し側スレッドに属していなければなりません。

戻り値

以前にマウスをキャプチャーしていたウィンドウのハンドルが返ります。以前にマウスをキャプチャーしていたウィンドウが存在しないときは、NULL が返ります。

解説

他のスレッドに属するウィンドウがクリックされると、キャプチャーは解除されます。
マウス キャプチャーが不要になったら、ReleaseCapture関数を使用して解除して下さい。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetCapture関数、ReleaseCapture関数


 Win32API: SetDoubleClickTime

ダブルクリックのクリック間隔時間を設定します。

定義
Declare Function SetDoubleClickTime Lib "user32" _
   (uInterval As DWord) As Long
uInterval
ダブルクリックのクリック間隔時間をミリ秒単位で指定します。0 を指定すると、デフォルトの 500 ミリ秒に設定されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetDoubleClickTime関数


 Win32API: BeginPaint

ウィンドウの再描画要求時に呼び出します。

定義
Declare Function BeginPaint Lib "user32" _
         (hWnd As HWND, _
    ByRef lpPaint As PAINTSTRUCT) As HDC
hWnd
ウィンドウ ハンドルを指定します。

lpPaint （ポインタ参照）
PAINTSTRUCT構造体へのポインタを指定します。この構造体に塗りつぶしに関する情報が格納されます。

戻り値

関数が成功すると、デバイス コンテキストのハンドルが返ります。失敗すると、0 が返ります。

解説

この関数は、Paint イベント（WM_PAINT メッセージ）が呼び出されたときに使用します。
再描画が終了したら、EndPaint関数を呼び出す必要があります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

EndPaint関数、PAINTSTRUCT構造体


 Win32API: DrawEdge

立体的な効果を持つ長方形の枠を描画します。

定義
Declare Function DrawEdge Lib "user32" _
         (hDC As HDC, _
    ByRef lpRect As RECT, _
          edge As DWord, _
          grfFlags As DWord) As Long
hDC
デバイス コンテキストのハンドルを指定します。

lpRect （ポインタ参照）
長方形の左上隅および右下隅の座標が格納されている、RECT構造体へのポインタを指定します。

edge
辺の描画方法を、以下の定数を組み合わせて指定します。
定数 | 説明
BDR_RAISEDINNER | 辺の内側を隆起させます。
BDR_SUNKENINNER | 辺の内側を陥没させます。
BDR_RAISEDOUTER | 辺の外側を隆起させます。
BDR_SUNKENOUTER | 辺の外側を陥没させます。
EDGE_BUMP | BDR_RAISEDOUTER と BDR_SUNKENINNER の組み合わせです。
EDGE_ETCHED | BDR_SUNKENOUTER と BDR_RAISEDINNER の組み合わせです。
EDGE_RAISED | BDR_RAISEDOUTER と BDR_RAISEDINNER の組み合わせです。
EDGE_SUNKEN | BDR_SUNKENOUTER と BDR_SUNKENINNER の組み合わせです。

grfFlags
辺のタイプを、以下の定数を組み合わせて指定します。
定数 | 説明
BF_ADJUST | クライアント領域のためのスペースが残るように長方形を調整します。
BF_BOTTOM | 下辺を描画します。
BF_BOTTOMLEFT | 下辺と左辺を描画します。
BF_BOTTOMRIGHT | 下辺と右辺を描画します。
BF_DIAGONAL | 対角線を描画します。
BF_DIAGONAL_ENDBOTTOMLEFT | 左下隅を終点とする対角線を描画します。
BF_DIAGONAL_ENDBOTTOMRIGHT | 右下隅を終点とする対角線を描画します。
BF_DIAGONAL_ENDTOPLEFT | 左上隅を終点とする対角線を描画します。
BF_DIAGONAL_ENDTOPRIGHT | 右上隅を終点とする対角線を描画します。
BF_FLAT | 平らな辺を描画します。
BF_LEFT | 左辺を描画します。
BF_MIDDLE | 長方形の内側を塗りつぶします。
BF_MONO | 立体効果を持たない境界を描画します。
BF_RECT | 上下左右の辺を描画します。
BF_RIGHT | 右辺を描画します。
BF_SOFT | ソフトなデザインのボタンを描画します。
BF_TOP | 上辺を描画します。
BF_TOPLEFT | 上辺と左辺を描画します。
BF_TOPRIGHT | 上辺と右辺を描画します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

RECT構造体


 Win32API: DrawFrameControl

フレーム コントロール（ボタンやスクロールバーなど）を描画します。

定義
Declare Function DrawFrameControl Lib "user32" _
         (hDC As HDC, _
    ByRef lpRect As RECT, _
          uType As DWord, _
          uState As DWord) As Long
hDC
デバイス コンテキストのハンドルを指定します。

lpRect （ポインタ参照）
長方形の左上隅および右下隅の座標が格納されている、RECT構造体へのポインタを指定します。

uType
フレーム コントロールのタイプを、以下の定数から指定します。
定数 | 説明
DFC_BUTTON | ボタン コントロール
DFC_CAPTION | タイトルバー
DCF_MENU | メニュー
DFC_POPUPMENU | ポップアップ メニュー（Windows98以降、Windows2000以降のOSのみ）
DFC_SCROLL | スクロールバー

uState
フレーム コントロールの詳細情報を、以下の定数を組み合わせて指定します。

※ボタン コントロール
定数 | 説明
DFCS_BUTTON3STATE | 3 つの状態を持つボタン
DFCS_BUTTONCHECK | チェックボックス
DFCS_BUTTONPUSH | プッシュボタン
DFCS_BUTTONRADIO | ラジオボタン
DFCS_BUTTONRADIOIMAGE | ラジオボタンのイメージ
DFCS_BUTTONRADIOMASK | ラジオボタンのマスク

※タイトルバー
定数 | 説明
DFCS_CAPTIONCLOSE | 「閉じる」ボタン
DFCS_CAPTIONHELP | 「?」ボタン（Windows9x系OSのみ）
DFCS_CAPTIONMAX | 「最大化」ボタン
DFCS_CAPTIONMIN | 「最小化」ボタン
DFCS_CAPTIONRESTORE | 「元のサイズに戻す」ボタン

※メニュー
定数 | 説明
DFCS_MENUARROW | サブメニューの存在を示す矢印
DFCS_MENUBULLET | 黒丸
DFCS_MENUCHECK | チェックマーク

※スクロールバー
定数 | 説明
DFCS_SCROLLCOMBOBOX | コンボボックスのスクロールバー
DFCS_SCROLLDOWN | スクロールバーの下向き矢印
DFCS_SCROLLLEFT | スクロールバーの左向き矢印
DFCS_SCROLLRIGHT | スクロールバーの右向き矢印
DFCS_SCROLLSIZEGRIP | ウィンドウの右下隅にあるサイズ変更グリップ
DFCS_SCROLLUP | スクロールバーの上向き矢印

※共通
定数 | 説明
DFCS_ADJUSTRECT | 境界を調節してプッシュボタンの周囲の辺を除外します。
DFCS_CHECKED | チェックされているボタンを描画します。
DFCS_FLAT | 平らなデザインのボタンを描画します。
DFCS_INACTIVE | 淡色表示のボタンを描画します。
DFCS_MONO | モノクロの境界を持つボタンを描画します。
DFCS_PUSHED | 押された状態のボタンを描画します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

RECT構造体


 Win32API: EndPaint

BeginPaint 関数によって行われる描画を終了させます。

定義
Declare Function EndPaint Lib "user32" _
         (hWnd As HWND, _
    ByRef lpPaint As PAINTSTRUCT) As Long
hWnd
ウィンドウ ハンドルを指定します。

lpPaint （ポインタ参照）
BeginPaint関数が取得した、PAINTSTRUCT構造体へのポインタを指定します。

戻り値

TRUE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

BeginPaint関数、PAINTSTRUCT構造体


 Win32API: GetBkColor

背景色を取得します。

定義
Declare Function GetBkColor Lib "gdi32" _
   (hdc As HDC) As DWord
hdc
デバイス コンテキストのハンドルを指定します。

戻り値

関数が成功すると背景色が返ります。失敗すると CLR_INVALID が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

SetBkColor関数


 Win32API: GetBkMode

背景モードを取得します。

定義
Declare Function GetBkMode Lib "gdi32" _
   (hdc As HDC) As Long
hdc
デバイス コンテキストのハンドルを指定します。

戻り値

関数が成功すると背景モードが返ります。失敗すると 0 が返ります。背景モードについての詳しい情報はSetBkMode関数を参照して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

SetBkMode関数


 Win32API: GetROP2

指定したデバイス コンテキストの、前景モード（描画する色と画面上の色の組み合わせ方）を取得します。

定義
Declare Function GetROP2 Lib "gdi32" _
   (hdc As HDC) As Long
hdc
デバイス コンテキストのハンドルを指定します。

戻り値

関数が成功すると、前景モードが以下の定数から返ります。失敗すると、0 が返ります。
定数 | 説明
R2_BLACK | ピクセルは、常に 0 です。
R2_COPYPEN | ピクセルは、描画する色です。
R2_MASKNOTPEN | ピクセルは、画面の色と、描画する色を反転した色の、両方に共通な色の組み合わせです。
R2_MASKPEN | ピクセルは、描画する色と、画面の色の、両方に共通な色の組み合わせです。
R2_MASKPENNOT | ピクセルは、描画する色と、画面の色を反転した色の、両方に共通な色の組み合わせです。
R2_MERGENOTPEN | ピクセルは、画面の色と、描画する色を反転した色の、組み合わせです。
R2_MERGEPEN | ピクセルは、描画する色と、画面の色の、組み合わせです。
R2_MERGEPENNOT | ピクセルは、描画する色と、画面の色を反転した色の、組み合わせです。
R2_NOP | ピクセルは、変更されません。
R2_NOT | ピクセルは、スクリーンの色を反転した色です。
R2_NOTCOPYPEN | ピクセルは、描画する色を反転した色です。
R2_NOTMASKPEN | ピクセルは、R2_MASKPEN の色を反転した色です。
R2_NOTMERGEPEN | ピクセルは、R2_MERGEPEN の色を反転した色です。
R2_NOTXORPEN | ピクセルは、R2_XORPEN の色を反転した色です。
R2_WHITE | ピクセルは、常に 1 です。
R2_XORPEN | ピクセルは、描画する色と、画面の色との組み合わせですが、両方に共通する色は除きます。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

SetROP2関数


 Win32API: GetUpdateRect

指定したウィンドウの更新領域をすべて含む、最小の長方形の座標を取得します。

定義
Declare Function GetUpdateRect Lib "user32" _
         (hWnd As HWND, _
    ByRef lpRect As RECT, _
          bErase As Long) As Long
hWnd
ウィンドウ ハンドルを指定します。

lpRect （ポインタ参照）
RECT構造体へのポインタを指定します。この構造体に、更新領域の長方形の座標が格納されます。

bErase
背景を消去するかどうかを指定します。TRUE を指定すると、ウィンドウに WM_ERASEBKGND メッセージを送り、背景を消去します。消去しないときは、FALSE を指定します。

戻り値

更新領域が存在するときは、TRUE が返ります。存在しないときは、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

RECT構造体


 Win32API: GetUpdateRgn

指定したウィンドウの更新領域を、指定したリージョンにコピーします。

定義
Declare Function GetUpdateRgn Lib "user32" _
   (hWnd As HWND, _
    hRgn As HRGN, _
    bErase As Long) As Long
hWnd
ウィンドウ ハンドルを指定します。

hRgn
既存のリージョン ハンドルを指定します。ここで指定するリージョンに更新領域がコピーされます。

bErase
背景を消去するかどうかを指定します。TRUE を指定すると、ウィンドウに WM_ERASEBKGND メッセージを送り、背景を消去します。消去しないときは、FALSE を指定します。

戻り値

関数が成功すると、リージョンの複雑度が以下の定数から返ります。失敗すると、0 が返ります。
定数 | 説明
NULLREGION | リージョンは空です。
SIMPLEREGION | リージョンは単一の長方形です。
COMPLEXREGION | リージョンは単一の長方形より複雑な形です。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll


 Win32API: GetWindowDC

タイトルバー、メニュー、スクロールバーを含むウィンドウ全体に対するデバイス コンテキストを取得します。

定義
Declare Function GetWindowDC Lib "user32" _
   (hWnd As HWND) As HDC
hWnd
ウィンドウ ハンドルを指定します。

戻り値

関数が成功すると、デバイス コンテキストのハンドルが返ります。失敗すると、FALSE が返ります。

解説

取得したデバイス コンテキストが不要になったら、ReleaseDC関数を使用してメモリから解放して下さい。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetDC関数、ReleaseDC関数


 Win32API: GetWindowRgn

ウィンドウ リージョンを取得します。

定義
Declare Function GetWindowRgn Lib "user32" _
   (hWnd As HWND, _
    hRgn As HRGN) As Long
hWnd
ウィンドウ ハンドルを指定します。

hRgn
既存のリージョン ハンドルを指定します。ここで指定したリージョンにウィンドウ リージョンがコピーされます。

戻り値

関数が成功すると、リージョンの複雑度が以下の定数から返ります。失敗すると、0 が返ります。
定数 | 説明
NULLREGION | リージョンは空です。
SIMPLEREGION | リージョンは単一の長方形です。
COMPLEXREGION | リージョンは単一の長方形より複雑な形です。

解説

ウィンドウ リージョンの外側は描画されません。
ウィンドウ リージョンの座標は、ウィンドウの左上隅を原点とします。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

SetWindowRgn関数


 Win32API: InvalidateRect

指定したウィンドウの長方形領域の再描画を要求します。

定義
Declare Function InvalidateRect Lib "user32" _
         (hWnd As HWND, _
    ByRef lpRect As RECT, _
          bErase As Long) As Long
hWnd
ウィンドウ ハンドルを指定します。

lpRect （ポインタ参照）
更新領域の長方形の座標が格納されている、RECT構造体へのポインタを指定します。NULL を指定すると、クライアント領域全体が更新領域に設定されます。

bErase
再描画の際に、背景を消去するかどうかを指定します。TRUE を指定すると、背景を消去します。消去しないときは、FALSE を指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

InvalidateRgn関数、ValidateRect関数、ValidateRgn関数、RECT構造体


 Win32API: InvalidateRgn

ウィンドウ内の指定したリージョンの再描画を要求します。

定義
Declare Function InvalidateRgn Lib "user32" _
   (hWnd As HWND, _
    hRgn As HRGN, _
    bErase As Long) As Long
hWnd
ウィンドウ ハンドルを指定します。

hRgn
更新領域を示すリージョンのハンドルを指定します。NULL を指定すると、クライアント領域全体が更新領域に設定されます。

bErase
再描画の際に、背景を消去するかどうかを指定します。TRUE を指定すると、背景を消去します。消去しないときは、FALSE を指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

InvalidateRect関数、ValidateRect関数、ValidateRgn関数


 Win32API: LockWindowUpdate

ウィンドウの描画を無効（または有効）にします。描画を無効にできるウィンドウの数は 1 つだけです。

定義
Declare Function LockWindowUpdate Lib "user32" _
   (hWnd As HWND) As Long
hWnd
描画を無効にするウィンドウのハンドルを指定します。NULL を指定すると、無効化されているウィンドウが有効になります。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

ロックされているウィンドウは移動できません。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll


 Win32API: RedrawWindow

ウィンドウ内の指定された長方形、またはリージョンを再描画します。

定義
Declare Function RedrawWindow Lib "user32" _
         (hWnd As HWND, _
    ByRef lprcUpdate As RECT, _
          hrgnUpdate As HRGN, _
          flags As DWord) As Long
hWnd
ウィンドウ ハンドルを指定します。

lprcUpdate （ポインタ参照）
更新領域の長方形の座標が格納されている、RECT構造体へのポインタを指定します。hrgnUpdate パラメータが NULL でないときは、このパラメータは無視されます。

hrgnUpdate
更新領域を示すリージョンのハンドルを指定します。lprcUpdate パラメータとhrgnUpdate パラメータを NULL にすると、クライアント領域全体が再描画されます。

flags
再描画の方法に関するオプションを、以下の定数を組み合わせて指定します。

※無効化する場合
定数 | 説明
RDW_ERASE | ウィンドウの再描画時に、WM_ERASEBKGND メッセージを送ります。RDW_INVALIDATE フラグと同時に指定する必要があります。
RDW_FRAME | 更新領域と交差する非クライアント領域の部分にも、WM_NCPAINT メッセージを送ります。RDW_INVALIDATE フラグと同時に指定する必要があります。
RDW_INTERNALPAINT | ウィンドウが無効な領域を持つか持たないかに関わらず、WM_PAINT メッセージをウィンドウにポストします。
RDW_INVALIDATE | 指定したウィンドウ内の領域を無効化します。

※有効化する場合
定数 | 説明
RDW_NOERASE | 未処理の WM_ERASEBKGND メッセージを送らないようにします。
RDW_NOFRAME | 未処理の WM_NCPAINT メッセージを送らないようにします。RDW_VALIDATE フラグと同時に指定する必要があります。
RDW_NOINTERNALPAINT | 未処理の内部 WM_PAINT メッセージを送らないようにします。
RDW_VALIDATE | 指定したウィンドウ内の領域を有効化します。

※再描画時の動作
定数 | 説明
RDW_ERASENOW | 必要であれば、関数が制御を返す前に、影響を受けたウィンドウ（RDW_ALLCHILDREN または RDW_NOCHILDREN のフラグで指定されているウィンドウ）に WM_NCPAINTメッセージおよび WM_ERASEBKGND メッセージを送ります。WM_PAINT メッセージは通常のタイミングで送られます。
RDW_UPDATENOW | 必要であれば、関数が制御を返す前に、影響を受けたウィンドウ（RDW_ALLCHILDREN フラグまたは RDW_NOCHILDREN フラグで指定されているウィンドウ）に WM_NCPAINT、WM_ERASEBKGND、WM_PAINT の各メッセージを送ります。
RDW_ALLCHILDREN | 子ウィンドウがあるときは、それらも再描画の対象とします。
RDW_NOCHILDREN | 子ウィンドウがあるときは、それらを再描画の対象から外します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

ウィンドウ リージョンの外側は描画されません。
ウィンドウ リージョンの座標は、ウィンドウの左上隅を原点とします。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

InvalidateRect関数、InvalidateRgn関数、RECT構造体


 Win32API: SetBkColor

背景色を設定します。背景色はテキスト、ハッチブラシ、点線の鎖線などのペンで参照されます。

定義
Declare Function SetBkColor Lib "gdi32" _
   (hdc As HDC, _
    crColor As DWord) As DWord
hdc
デバイス コンテキストのハンドルを指定します。

crColor
背景色を指定します。

戻り値

関数が成功すると以前の背景色が返ります。失敗すると 0 が返ります。

解説

背景色を有効にするには、SetBkMode関数で背景モードを OPAQUE に設定しておく必要があります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

GetBkColor関数、SetBkMode関数


 Win32API: SetBkMode

背景モードを設定します。背景モードはテキスト、ハッチブラシ、点線の鎖線などのペンで参照されます。

定義
Declare Function SetBkMode Lib "gdi32" _
   (hdc As HDC, _
    iBkMode As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

iBkMode
背景モードを指定します。
定数 | 説明
OPAQUE | 選択されている背景色を利用し、背景を塗りつぶします。
TRANSPARENT | 背景をそのまま残します。

戻り値

関数が成功すると以前の背景モードが返ります。失敗すると 0 が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

GetBkMode関数、SetBkColor関数


 Win32API: SetROP2

指定したデバイス コンテキストの、前景モード（描画する色と画面上の色の組み合わせ方）を設定します。

定義
Declare Function SetROP2 Lib "gdi32" _
   (hdc As HDC, _
    fnDrawMode As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

fnDrawMode
前景モードを、以下の定数から指定します。
定数 | 説明
R2_BLACK | ピクセルは、常に 0 です。
R2_COPYPEN | ピクセルは、描画する色です。
R2_MASKNOTPEN | ピクセルは、画面の色と、描画する色を反転した色の、両方に共通な色の組み合わせです。
R2_MASKPEN | ピクセルは、描画する色と、画面の色の、両方に共通な色の組み合わせです。
R2_MASKPENNOT | ピクセルは、描画する色と、画面の色を反転した色の、両方に共通な色の組み合わせです。
R2_MERGENOTPEN | ピクセルは、画面の色と、描画する色を反転した色の、組み合わせです。
R2_MERGEPEN | ピクセルは、描画する色と、画面の色の、組み合わせです。
R2_MERGEPENNOT | ピクセルは、描画する色と、画面の色を反転した色の、組み合わせです。
R2_NOP | ピクセルは、変更されません。
R2_NOT | ピクセルは、スクリーンの色を反転した色です。
R2_NOTCOPYPEN | ピクセルは、描画する色を反転した色です。
R2_NOTMASKPEN | ピクセルは、R2_MASKPEN の色を反転した色です。
R2_NOTMERGEPEN | ピクセルは、R2_MERGEPEN の色を反転した色です。
R2_NOTXORPEN | ピクセルは、R2_XORPEN の色を反転した色です。
R2_WHITE | ピクセルは、常に 1 です。
R2_XORPEN | ピクセルは、描画する色と、画面の色との組み合わせですが、両方に共通する色は除きます。

戻り値

関数が成功すると、以前の前景モードが返ります。失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

GetROP2関数


 Win32API: SetWindowRgn

ウィンドウ リージョンを設定します。

定義
Declare Function SetWindowRgn Lib "user32" _
   (hWnd As HWND, _
    hRgn As HRGN, _
    bRedraw As Long) As Long
hWnd
ウィンドウ ハンドルを指定します。

hRgn
ウィンドウ リージョンに設定するリージョンのハンドルを指定します。

bRedraw
ウィンドウ リージョンの設定後に、ウィンドウの再描画を行うかどうかを指定します。TRUE を指定すると、再描画を行います。FALSE を指定すると、行いません。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

ウィンドウ リージョンの外側は描画されません。
ウィンドウ リージョンの座標は、ウィンドウの左上隅を原点とします。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetWindowRgn関数


 Win32API: UpdateWindow

ウィンドウの更新領域が空でない場合、WM_PAINT メッセージを送って更新を行います。

定義
Declare Function UpdateWindow Lib "user32" _
   (hWnd As HWND) As Long
hWnd
ウィンドウ ハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

InvalidateRect関数、InvalidateRgn関数


 Win32API: ValidateRect

指定した長方形領域を、ウィンドウの更新領域から除外します。

定義
Declare Function ValidateRect Lib "user32" _
         (hWnd As HWND, _
    ByRef lpRect As RECT) As Long
hWnd
ウィンドウ ハンドルを指定します。

lpRect （ポインタ参照）
除外する長方形の座標が格納されている、RECT構造体へのポインタを指定します。NULL を指定すると、クライアント領域全体が更新領域から除外されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

InvalidateRect関数、InvalidateRgn関数、ValidateRgn関数、RECT構造体


 Win32API: ValidateRgn

指定したリージョンが示す領域を、ウィンドウの更新領域から除外します。

定義
Declare Function ValidateRgn Lib "user32" _
   (hWnd As HWND, _
    hRgn As HRGN) As Long
hWnd
ウィンドウ ハンドルを指定します。

hRgn
除外する領域を示すリージョンのハンドルを指定します。NULL を指定すると、クライアント領域全体が更新領域から除外されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

InvalidateRect関数、InvalidateRgn関数、ValidateRect関数


 構造体: PAINTSTRUCT

ウィンドウの再描画に関する情報を格納します。

定義
Type PAINTSTRUCT
    hdc As HDC
    fErase As Long
    rcPaint As RECT
    fRestore As Long
    fIncUpdate As Long
    rgbReserved(31) As Byte
End Type
hdc
デバイス コンテキストを識別します。

fErase
このメンバが 1 のときは、バックグラウンドを再描画の必要があります。

rcPaint
再描画が要求される、長方形領域の左上隅、右下隅の座標が格納されます。

fRestore
予約されているメンバです。無視して下さい。

fIncUpdate
予約されているメンバです。無視して下さい。

rgbReserved(31)
予約されているメンバです。無視して下さい。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み

BeginPaint関数、EndPaint関数


 Win32API: CopyImage

指定したイメージのコピーを作成します。

定義
Declare Function CopyImage Lib "user32" _
   (hImage As HANDLE, _
    uType As DWord, _
    cxDesired As Long, _
    cyDesired As Long, _
    fuFlags As DWord) As HANDLE
hImage
コピー元イメージのハンドルを指定します。

uType
イメージのタイプを、以下の定数から指定します。
定数 | 説明
IMAGE_BITMAP | ビットマップ
IMAGE_CURSOR | マウス カーソル
IMAGE_ICON | アイコン

cxDesired
作成するイメージの幅を指定します。

cyDesired
作成するイメージの高さを指定します。

fuFlags
コピーに関するオプションを、以下の定数を組み合わせて指定します。
定数 | 説明
LR_COPYDELETEORG | コピーが完了したら、コピー元のイメージを破棄します。
LR_COPYRETURNORG | 作成するイメージの幅、高さをコピー元のイメージと同じにします。cxDesired パラメータ、cyDesired パラメータは無視されます。
LR_MONOCHROME | モノクロイメージを作成します。
LR_COPYFROMRESOURCE | リソースファイルからイメージを再ロードし、ロードしたイメージをコピーするようにします。

戻り値

関数が成功すると、作成されたイメージ オブジェクトのハンドルが返ります。失敗すると、0 が返ります。

解説

作成したイメージ オブジェクトが不要になったときは、対応する以下の関数でメモリから解放する必要があります。
オブジェクト | 関数
ビットマップ | DeleteObject関数
マウス カーソル | DestroyCursor関数
アイコン | DestroyIcon関数

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

LoadImage関数


 Win32API: LoadImage

指定したイメージを読み込みます。

定義
Declare Function LoadImage Lib "user32" Alias "LoadImageA" _
   (hInst As HINSTANCE, _
    lpszName As BytePtr, _
    dwImageType As DWord, _
    cxDesired As Long, _
    cyDesired As Long, _
    dwFlags As DWord) As HANDLE
hInst
ロードするイメージが入ったモジュールのインスタンスのハンドルを指定します。

lpszName
ロードするイメージの名前を指定します。
dwFlags パラメータに LR_LOADFROMFILE フラグが設定されているときは、イメージ ファイルへのパスが格納されている文字列へのポインタを指定します。

dwImageType
ロードするイメージのタイプを、以下の定数から指定します。
定数 | 説明
IMAGE_BITMAP | ビットマップ
IMAGE_CURSOR | マウス カーソル
IMAGE_ICON | アイコン

cxDesired
ロードするイメージの幅を指定します。

cyDesired
ロードするイメージの高さを指定します。

dwFlags
オプション フラグを、以下の定数を組み合わせて指定します。
定数 | 説明
LR_DEFAULTCOLOR | デフォルトです。
LR_CREATEDIBSECTION | コンパチブル ビットマップではなく、DIB セクション ビットマップを戻り値にします（dwImageType パラメータに IMAGE_BITMAP が設定されているときのみ）。
LR_DEFAULTSIZE | cxDesired パラメータおよび cyDesired パラメータに 0 を指定すると、デフォルトのサイズで読み込むようにします。
LR_LOADFROMFILE | lpszName パラメータがイメージ ファイルへのパスを示すことを意味します。
LR_LOADMAP3DCOLORS | イメージ内の以下の灰色部分を、対応する 3D カラーに置き換えます。
LR_LOADTRANSPARENT | イメージ内の最初のピクセルの色を取得し、カラー テーブル内の対応するエントリをデフォルト ウィンドウ カラー（COLOR_WINDOW）に置き換えます。
LR_MONOCHROME | イメージをモノクロで読み込みます。
LR_SHARED | イメージ ハンドルを共有することを意味します。このフラグで取得したオブジェクトは、アプリケーション終了時に、システムが解放を行います。

戻り値

関数が成功すると、イメージ オブジェクトのハンドルが返ります。失敗すると、0 が返ります。

解説

取得したオブジェクトが不要になったときは、対応する以下の関数でメモリから解放する必要があります。ただし、dwFlags パラメータに LR_SHARED フラグを設定したときは、解放する必要はありません（システムが自動的に解放します）。
オブジェクト | 関数
ビットマップ | DeleteObject関数
マウス カーソル | DestroyCursor関数
アイコン | DestroyIcon関数

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

CopyImage関数、LoadBitmap関数、LoadIcon関数


 Win32API: EnableScrollBar

スクロールバーの指定したボタンを、有効、または無効にします。

定義
Declare Function EnableScrollBar Lib "user32" _
   (hWnd As HWND, _
    dwSBflags As DWord, _
    dwArrows As DWord) As Long
hWnd
ウィンドウ ハンドル、またはスクロールバー コントロールのハンドルを指定します。

dwSBflags
対象とするスクロールバーを指定します。
定数 | 説明
SB_BOTH | hWnd パラメータにはウィンドウ ハンドルを指定します。水平スクロールバー、垂直スクロールバーの両方が対象となります。
SB_CTL | hWnd パラメータにはスクロールバー ハンドルを指定します。スクロールバー コントロールが対象となります。
SB_HORZ | hWnd パラメータにはウィンドウ ハンドルを指定します。水平スクロールバーが対象となります。
SB_VERT | hWnd パラメータにはウィンドウ ハンドルを指定します。垂直スクロールバーが対象となります。

dwArrows
両方の矢印ボタン、または片方の矢印ボタンを有効にするか無効にするかを、以下の定数から指定します。
定数 | 説明
ESB_DISABLE_BOTH | 両方の矢印ボタンを無効にします。
ESB_DISABLE_DOWN | 垂直スクロールバーの下方向の矢印ボタンを無効にします。
ESB_DISABLE_LEFT | 水平スクロールバーの左方向の矢印ボタンを無効にします。
ESB_DISABLE_LTUP | 水平スクロールバーの左方向の矢印ボタン、または垂直スクロールバーの上方向の矢印ボタンを無効にします。
ESB_DISABLE_RIGHT | 水平スクロールバーの右方向の矢印ボタンを無効にします。
ESB_DISABLE_RTDN | 水平スクロールバーの右方向の矢印ボタン、または垂直スクロールバーの下方向の矢印ボタンを無効にします。
ESB_DISABLE_UP | 垂直スクロールバーの上方向の矢印ボタンを無効にします。
ESB_ENABLE_BOTH | 両方の矢印ボタンを有効にします。

戻り値

指定されたとおりにスクロールバーの表示状態が変更されると、TRUE が返ります。
すでにスクロールバーが指定された状態になっているとき、または関数が失敗したときは、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

ShowScrollBar関数


 Win32API: GetScrollInfo

スクロールバーに関する情報を取得します。

定義
Declare Function GetScrollInfo Lib "user32" _
         (hWnd As HWND, _
          fnBar As Long, _
    ByRef lpsi As SCROLLINFO) As Long
hWnd
ウィンドウ ハンドル、またはスクロールバー コントロールのハンドルを指定します。

fnBar
対象とするスクロールバーを指定します。
定数 | 説明
SB_CTL | hWnd パラメータにはスクロールバー ハンドルを指定します。スクロールバー コントロールが対象となります。
SB_HORZ | hWnd パラメータにはウィンドウ ハンドルを指定します。水平スクロールバーが対象となります。
SB_VERT | hWnd パラメータにはウィンドウ ハンドルを指定します。垂直スクロールバーが対象となります。

lpsi （ポインタ参照）
SCROLLINFO構造体へのポインタを指定します。この構造体に、スクロールバーに関する情報が格納されます。この構造体の cbSize メンバ、fMask メンバは関数を呼び出す前に設定しておく必要があります。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

SetScrollInfo関数、SCROLLINFO構造体


 Win32API: ScrollDC

デバイス コンテキスト内の長方形領域を、指定した量だけスクロールします。

定義
Declare Function ScrollDC Lib "user32" _
         (hdc As HDC, _
          dx As Long, _
          dy As Long, _
    ByRef lprcScroll As RECT, _
    ByRef lprcClip As RECT, _
          hrgnUpdate As HRGN, _
    ByRef lprcUpdate As RECT) As Long
hdc
デバイス コンテキストのハンドルを指定します。

dx
水平方向のスクロール量を指定します。右にスクロールするときは正の値を、左にスクロールするときは負の値を指定します。

dy
垂直方向のスクロール量を指定します。下にスクロールするときは正の値を、上にスクロールするときは負の値を指定します。

lprcScroll （ポインタ参照）
スクロールの対象となる長方形領域の座標が格納されている、RECT構造体へのポインタを指定します。

lprcClip （ポインタ参照）
クリッピング領域の座標が格納されている、RECT構造体へのポインタを指定します。

hrgnUpdate
既存のリージョン ハンドルを指定します。関数が成功すると、スクロールによって無効化された領域が格納されます。不要なときは、NULL を指定することができます。

lprcUpdate （ポインタ参照）
RECT構造体へのポインタを指定します。この構造体に、再描画が必要な領域が格納されます。不要なときは、NULL を指定することができます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

RECT構造体


 Win32API: ScrollWindowEx

ウィンドウ内の長方形領域を、指定した量だけスクロールします。

定義
Declare Function ScrollWindowEx Lib "user32" _
         (hWnd As HWND, _
          dx As Long, _
          dy As Long, _
    ByRef lprcScroll As RECT, _
    ByRef lprcClip As RECT, _
          hrgnUpdate As HRGN, _
    ByRef lprcUpdate As RECT, _
          flags As DWord) As Long
hWnd
ウィンドウ ハンドルを指定します。

dx
水平方向のスクロール量を指定します。右にスクロールするときは正の値を、左にスクロールするときは負の値を指定します。

dy
垂直方向のスクロール量を指定します。下にスクロールするときは正の値を、上にスクロールするときは負の値を指定します。

lprcScroll （ポインタ参照）
スクロールの対象となるクライアント領域内の長方形の座標が格納されている、RECT構造体へのポインタを指定します。NULL を指定すると、クライアント領域全体がスクロールの対象となります。

lprcClip （ポインタ参照）
クリッピング領域の座標が格納されている、RECT構造体へのポインタを指定します。

hrgnUpdate
既存のリージョン ハンドルを指定します。関数が成功すると、スクロールによって無効化された領域が格納されます。不要なときは、NULL を指定することができます。

lprcUpdate （ポインタ参照）
RECT構造体へのポインタを指定します。この構造体に、再描画が必要な領域が格納されます。不要なときは、NULL を指定することができます。

flags
スクロールを制御するフラグを、以下の定数を組み合わせて指定します。0 を指定することもできます。
定数 | 説明
SW_ERASE | スクロール後、WM_ERASEBKGND メッセージをウィンドウに送り、無効化されたリージョンを消去します。SW_INVALIDATE フラグと同時に指定します。
SW_INVALIDATE | スクロール後、hrgnUpdate リージョンを無効化します。
SW_SCROLLCHILDREN | lprcScroll 長方形と重なるすべての子ウィンドウもスクロールします。lprcScroll 長方形と重なる子ウィンドウに、WM_MOVE メッセージを送ります。

戻り値

関数が成功すると、無効化されたリージョンの複雑度が以下の定数から返ります。失敗すると、0 が返ります。
定数 | 説明
SIMPLEREGION | 無効化されたリージョンは単一の長方形です。
COMPLEXREGION | 無効化されたリージョンは単一の長方形より複雑な形です。
NULLREGION | 無効化されたリージョンは空です。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

RECT構造体


 Win32API: SetScrollInfo

スクロールバーに関する情報を設定します。

定義
Declare Function SetScrollInfo Lib "user32" _
         (hWnd As HWND, _
          fnBar As Long, _
    ByRef lpsi As SCROLLINFO, _
          bRedraw As Long) As Long
hWnd
ウィンドウ ハンドル、またはスクロールバー コントロールのハンドルを指定します。

fnBar
対象とするスクロールバーを指定します。
定数 | 説明
SB_CTL | hWnd パラメータにはスクロールバー ハンドルを指定します。スクロールバー コントロールが対象となります。
SB_HORZ | hWnd パラメータにはウィンドウ ハンドルを指定します。水平スクロールバーが対象となります。
SB_VERT | hWnd パラメータにはウィンドウ ハンドルを指定します。垂直スクロールバーが対象となります。

lpsi （ポインタ参照）
スクロールバーに関する情報が格納されている、SCROLLINFO構造体へのポインタを指定します。

bRedraw
スクロールバーを再描画するときは TRUE を、しないときは FALSE を指定します。

戻り値

現在のスクロールバーの位置が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetScrollInfo関数、SCROLLINFO構造体


 Win32API: ShowScrollBar

スクロールバーを表示、または非表示にします。

定義
Declare Function ShowScrollBar Lib "user32" _
   (hWnd As HWND, _
    wBar As Long, _
    bShow As Long) As Long
hWnd
ウィンドウ ハンドル、またはスクロールバー コントロールのハンドルを指定します。

wBar
対象とするスクロールバーを指定します。
定数 | 説明
SB_BOTH | hWnd パラメータにはウィンドウ ハンドルを指定します。水平スクロールバー、垂直スクロールバーの両方が対象となります。
SB_CTL | hWnd パラメータにはスクロールバー ハンドルを指定します。スクロールバー コントロールが対象となります。
SB_HORZ | hWnd パラメータにはウィンドウ ハンドルを指定します。水平スクロールバーが対象となります。
SB_VERT | hWnd パラメータにはウィンドウ ハンドルを指定します。垂直スクロールバーが対象となります。

bShow
指定したスクロールバーを表示するときは TRUE を、非表示にするときは FALSEを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

EnableScrollBar関数


 構造体: SCROLLINFO

スクロールに関する情報を格納します。

定義
Type SCROLLINFO
    cbSize As Long
    fMask As Long
    nMin As Long
    nMax As Long
    nPage As Long
    nPos As Long
    nTrackPos As Long
End Type
cbSize
構造体のバイト数を指定します。

fMask
パラメータ オプション フラグを、以下の定数から指定します。
定数 | 説明
SIF_ALL | SIF_RANGE、SIF_PAGE、SIF_POS、SIF_TRACKPOS の各定数を組み合わせたフラグです。
SIF_DISABLENOSCROLL | スクロールバーが不要になったときは、非表示ではなく、無効状態にします（SetScrollInfo関数のみ）。
SIF_PAGE | nPage メンバを有効にします。
SIF_POS | nPos メンバを有効にします。
SIF_RANGE | nMin メンバおよび nMax メンバを有効にします。
SIF_TRACKPOS | nTrackPos メンバを有効にします（GetScrollInfo関数のみ）。

nMin
スクロールの最小値を指定します。

nMax
スクロールの最大値を指定します。

nPage
ページ サイズを指定します。

nPos
スクロールバーの現在の位置を指定します。

nTrackPos
現在のトラッキング位置が格納されます（GetScrollInfo関数のみ）。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み

GetScrollInfo関数、SetScrollInfo関数


 Win32API: KillTimer

指定したタイマーを破棄します。

定義
Declare Function KillTimer Lib "user32" _
   (hWnd As HWND, _
    nIDEvent As DWord) As Long
hWnd
ウィンドウ ハンドルを指定します。

nIDEvent
タイマーの識別 ID を指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

SetTimer関数


 Win32API: SetTimer

指定したウィンドウにタイマーを設定します。

定義
Declare Function SetTimer Lib "user32" _
   (hWnd As HWND, _
    nIDEvent As DWord, _
    nElapse As DWord, _
    lpTimerFunc As DWord) As DWord
hWnd
ウィンドウ ハンドルを指定します。

nIDEvent
タイマーの識別 ID を指定します。

nElapse
タイムアウト値をミリ秒単位で指定します。

lpTimerFunc
nElapse パラメータで指定した時間が経過したときに呼び出す関数へのポインタを指定します。NULL を指定すると、hWnd パラメータで指定したウィンドウに WM_TIMER メッセージがポストされます。

戻り値

関数が成功すると、新しいタイマー ID が返ります。失敗すると、0 が返ります。

解説

RAD ツールで作成したウィンドウにタイマーを設定したときは、Timerイベントが呼び出されます。
タイマーを停止するときは、KillTimer関数を使用して下さい。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

KillTimer関数、Timerイベント


 Win32API: BringWindowToTop

ウィンドウを Z 順位の一番手前に持ってきて、アクティブにします。

定義
Declare Function BringWindowToTop Lib "user32" _
   (hWnd As HWND) As Long
hWnd
ウィンドウ ハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

hWnd パラメータで指定したウィンドウが子ウィンドウの場合は、その子ウィンドウを所有する親ウィンドウがアクティブになります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

SetActiveWindow関数、SetForegroundWindow関数、SetWindowPos関数


 Win32API: ChildWindowFromPoint

指定された座標上に存在する子ウィンドウのハンドルを取得します。

定義
Declare Function ChildWindowFromPoint Lib "user32" _
   (hWndParent As HWND, _
    x As Long, _
    y As Long) As HWND
hWndParent
親ウィンドウのハンドルを指定します。

x
X 座標をクライアント座標で指定します。

y
Y 座標をクライアント座標で指定します。

戻り値

指定した座標に子ウィンドウが存在するときは、子ウィンドウのハンドルが返ります。子ウィンドウが非表示のときや、無効のときでも有効です。
指定した座標が親ウィンドウの内部であり、そこに子ウィンドウが存在しない場合は、親ウィンドウのハンドルが返ります。
指定した座標が親ウィンドウの外部であるときは、NULL が返ります。

解説

指定した座標を含むウィンドウが複数存在する場合は、内部リストの最初にあるウィンドウのハンドルが返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

ChildWindowFromPointEx関数、WindowFromPoint関数


 Win32API: ChildWindowFromPointEx

指定された座標上に存在する子ウィンドウのハンドルを取得します。不可視、無効、透明状態の子ウィンドウを無視することができます。

定義
Declare Function ChildWindowFromPointEx Lib "user32" _
   (hWndParent As HWND, _
    x As Long, _
    y As Long, _
    uFlags As DWord) As HWND
hWndParent
親ウィンドウのハンドルを指定します。

x
X 座標をクライアント座標で指定します。

y
Y 座標をクライアント座標で指定します。

uFlags
無視する子ウィンドウを、以下の定数の組み合わせで指定します。
定数 | 説明
CWP_ALL | 子ウィンドウを無視しません。
CWP_SKIPINVISIBLE | 不可視状態の子ウィンドウを無視します。
CWP_SKIPDISABLED | 無効状態の子ウィンドウを無視します。
CWP_SKIPTRANSPARENT | 透明状態の子ウィンドウを無視します。

戻り値

指定した座標に子ウィンドウが存在するときは、子ウィンドウのハンドルが返ります。子ウィンドウが非表示のときや、無効のときでも有効です。
指定した座標が親ウィンドウの内部であり、そこに子ウィンドウが存在しない場合は、親ウィンドウのハンドルが返ります。
指定した座標が親ウィンドウの外部であるときは、NULL が返ります。

解説

指定した座標を含むウィンドウが複数存在する場合は、内部リストの最初にあるウィンドウのハンドルが返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

ChildWindowFromPoint関数、WindowFromPoint関数


 Win32API: CloseWindow

ウィンドウを最小化します。

定義
Declare Function CloseWindow Lib "user32" _
   (hWnd As HWND) As Long
hWnd
ウィンドウ ハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

IsIconic関数、OpenIcon関数


 Win32API: CreateWindowEx

ウィンドウを生成します。

定義
Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (
    dwExStyle    As DWord,
    lpClassName  As BytePtr,
    lpWindowName As BytePtr,
    dwStyle      As DWord,
    x            As Long,
    y            As Long,
    nWidth       As Long,
    nHeight      As Long,
    hWndParent   As HWND,
    hMenu        As HMENU,
    hInstance    As HINSTANCE,
    lpParm       As VoidPtr) As HWND
dwExStyle
ウィンドウの拡張スタイルを指定します。詳しい情報は「拡張スタイルについて」をご覧下さい。

lpClassName
クラス名を指定します。クラスは、あらかじめRegisterClassEx関数で登録したものか、定義済みコントロールを指定する必要があります。
定義済みコントロールのについての詳しい情報は下の「ウィンドウクラス」を参照して下さい。
省略した場合はクラス名"NORMAL"が設定されます。

lpWindowName
ウィンドウのタイトルバーに表示する文字列へのポインタを指定します。

dwStyle
ウィンドウスタイルを指定します。スタイル定数をOR演算で組み合わせて下さい。
スタイル定数の説明は下の「ウィンドウスタイル定数」を参照して下さい。

x
ウィンドウのX座標を指定します。CW_USEDEFAULT を指定すると適当な座標が設定されます。

y
ウィンドウのY座標を指定します。CW_USEDEFAULT を指定すると適当な座標が設定されます。

nWidth
ウィンドウの幅を指定します。CW_USEDEFAULT を指定すると適当な幅が設定されます。

nHeight
ウィンドウの高さを指定します。CW_USEDEFAULT を指定すると適当な高さが設定されます。

hWndParent
親ウィンドウのハンドルを指定します。0 を指定するとデスクトップが親ウィンドウになります。

hMenu
作成するウィンドウがオーバーラップまたはポップアップ ウィンドウのときは、メニュー ハンドルを指定します（不要なときは0を指定することができます）。子ウィンドウのときは、子ウィンドウIDを指定します。

hInstance
ウィンドウに関連付けられるモジュールのインスタンスハンドルを指定します。呼び出し側モジュールのインスタンスハンドルはGetModuleHandle関数で取得することができます。

lpParm
WM_CREATEメッセージのlParamにセットされる CREATESTRUCT 構造体へのポインタを指定します。不要なときは、NULL を指定することができます。

定義済みのウィンドウクラス

クラス名 | 概要
"BUTTON" | ボタンコントロールです。
"COMBOBOX" | リストボックスとエディットウィンドウを組み合わせたものです。
"EDIT" | テキスト入力ウィンドウです。
"LISTBOX" | 文字列のリストを表示します。
"MDICLIENT" | MDIクライアントウィンドウです。
"NORMAL" | 背景が白のノーマルなウィンドウです。
"PROMPT" | プロンプトの標準入出力機能が使用できるウィンドウです。
"SCROLLBAR" | スクロールバーです。
"STATIC" | 文字列を表示するウィンドウです。

ウィンドウスタイル定数

※標準ウィンドウスタイル
定数 | 説明
WS_BORDER | 境界線を持つウィンドウを作成します。
WS_CAPTION | タイトルバーを持つウィンドウを作成します（WS_BORDERも含みます）。
WS_CHILD | 子ウィンドウを作成します。
WS_CHILDWINDOW | WS_CHILDと同じです。
WS_CLIPCHILDREN | 親ウィンドウ内部を描画するときに、子ウィンドウが占める領域を除外します（親ウィンドウを作成する場合に使用できます）。
WS_CLIPSIBLINGS | 兄弟関係にあるウィンドウをクリップします。
WS_DISABLED | 無効（使用不可能）なウィンドウを作成します。
WS_DLGFRAME | ダイアログボックスでよく見られる、境界を持つウィンドウを作成します。
WS_GROUP | コントロールグループの最初のコントロールを示します。
WS_HSCROLL | 水平スクロールバーを持つウィンドウを作成します。
WS_ICONIC | WS_MINIMIZEと同じです。
WS_MAXIMIZE | 最大化したウィンドウを作成します。
WS_MAXIMIZEBOX | 最大化ボタンを持つウィンドウを作成します。
WS_MINIMIZE | 最小化したウィンドウを作成します。
WS_MINIMIZEBOX | 最小化ボタンを持つウィンドウを作成します。
WS_OVERLAPPED | オーバーラップウィンドウを作成します。タイトルバーと枠を持ちます。
WS_OVERLAPPEDWINDOW | WS_OVERLAPPED、WS_CAPTION、WS_SYSMENU、WS_THICKFRAME、WS_MAXIMIZEBOX、WS_MINIMIZEBOXを組み合わせたものです。
WS_POPUP | ポップアップウィンドウを作成します（WS_CHILDと一緒に使用しないで下さい）。
WS_POPUPWINDOW | WS_BORDER、WS_POPUP、WS_SYSMENUを組み合わせたものです。
WS_SIZEBOX | WS_THICKFRAMEと同じです。
WS_SYSMENU | タイトルバー上にウィンドウメニューを持つウィンドウを作成します。
WS_TABSTOP | ユーザーがTABキーを押すと入力フォーカスを受けるコントロールを指定します。
WS_THICKFRAME | サイズ変更境界を持つウィンドウを作成します。
WS_TILED | WS_OVERLAPPEDと同じです。
WS_TILEDWINDOW | WS_OVERLAPPEDWINDDOWと同じです。
WS_VISIBLE | 可視状態のウィンドウを作成します。
WS_VSCROLL | 垂直スクロールバーを持つウィンドウを作成します。

※BUTTONクラスでのスタイル
定数 | 説明
BS_3STATE | 選択された状態、選択されていない状態、グレー表示の状態という3つの状態を持つチェックボックスを作成します。グレーの状態は、チェックボックスの状態が決められていないことを示すときなどに使います。
BS_AUTO3STATE | BS_3STATEと同じボタンを作成します。ただし、ユーザーがチェックボックスを選択するとボックスの状態が自動的に変わります。
BS_AUTOCHECKBOX | チェックボックスを作成します。ただし、ユーザーがチェックボックスを選択するとボックスの状態が自動的に変わります。
BS_AUTORADIOBUTTON | ラジオボタンを作成します。ただし、ユーザーがボタンを選択すると、Windowsが自動的にボタンを選択状態にし、同じグループのほかのボタンを非選択状態にします。
BS_CHECKBOX | チェックボックスを作成します。
BS_DEFPUSHBUTTON | プッシュボタンを作成します。ただし、黒色の太い境界も持ちます。このボタンがダイアログボックスにある場合は、ボタンが入力フォーカスを持っていなくても、エンターキーを押せばボタンを選択できます。
BS_GROUPBOX | グループボックスを作成します。ほかのコントロールを、このコントロールの中にグループ化できます。
BS_LEFTTEXT | ラジオボタンスタイルやチェックボックススタイルと組み合わせると、ラジオボタンの円やチェックボックスの四角の左側にテキストが置かれます。BS_RIGHTBUTTONスタイルを同じです。
BS_OWNERDRAW | オーナー描画ボタンを作成します。オーナーウィンドウは、ボタンが作成されるとWM_MEASUREITEMメッセージを受け取り、ボタンの外観が変わるとWM_DRAWITEMメッセージを受け取ります。他のボタンスタイルと組み合わせることはできません。
BS_PUSHBUTTON | プッシュボタンを作成します。
BS_RADIOBUTTON | ラジオボタンを作成します。
BS_BITMAP | ビットマップを表示するボタンを作成します。
BS_BOTTOM | ボタンの下部にテキストを置きます。
BS_CENTER | ボタンの中央にテキスト置きます。
BS_ICON | アイコンを表示するボタンを作成します。
BS_LEFT | ボタンの中にテキストを左寄せします。ボタンがBS_RIGHTBUTTONスタイルを持たないチェックボックス（またはラジオボタン）の場合は、テキストはチェックボックスやラジオボタンの右側に左寄せされます。
BS_MULTILINE | テキストが長すぎてボタンの中に一行で収まらないときは、テキストを複数行に折り返します。
BS_NOTIFY | 親ウィンドウに、ボタンがBN_DBLCLK通知メッセージ、BN_KILLFOCUS通知メッセージ、BN_SETFOCUS通知メッセージを送ることを可能にします。このスタイルを持つかどうかに関わらず、ボタンはBN_CLICKED通知メッセージを送ります。
BS_PUSHLIKE | プッシュボタンのような概観と機能を持つ、チェックボックスまたはラジオボタンを作ります。
BS_RIGHT | ボタンの中にテキストを右寄せします。ボタンがBS_RIGHTBUTTONスタイルを持たないチェックボックス（またはラジオボタン）の場合は、テキストはチェックボックスやラジオボタンの右側に右寄せされます。
BS_RIGHTBUTTON | BS_LEFTTEXT スタイルと同じです。
BS_TEXT | ボタンがテキストを表示するよう指定します。
BS_TOP | ボタンの最上部にテキストを置きます。
BS_VCENTER | ボタンの（垂直方向の）中央にテキストを置きます。

※COMBOBOXクラスでのスタイル
定数 | 説明
CBS_AUTOHSCROLL | ユーザーが行末に文字を入力すると、エディットコントロール内のテキストが自動的に右スクロールします。このスタイルを設定しないと、エディットコントロールの枠内に収まるテキストしか入力できません。
CBS_DISABLENOSCROLL | スクロールするほどの項目数がない場合、リストボックスの垂直方向のスクロールバーが無効状態で表示されます。通常は表示されません。
CBS_DROPDOWN | ドロップダウンコンボボックスを作成します。CBS_SIMPLEに似ていますが、ユーザーがエディットコントロールの横にあるアイコンを選択しないとリストボックスが表示されません。
CBS_DROPDOWNLIST | ドロップダウンリストボックスを作成します。CBS_DROPDOWN に似ていますが、テキストの編集はできません。
CBS_HASSTRINGS | オーナー描画コンボボックスの持つ項目が、文字列であることを指定します。コンボボックスが文字列用のメモリとアドレスを管理するので、アプリケーションはCB_GETLBTEXTメッセージを使用して特定項目のテキストを取り出すことができます。
CBS_LOWERCASE | コンボボックスのエディットコントロールに入力された大文字を、小文字に変換します。
CBS_NOINTEGRALHEIGHT | コンボボックスのサイズを指定します。通常は、項目が途中で切れないように、Windowsシステムがコンボボックスのサイズを調整します。
CBS_OEMCONVERT | コンボボックスのエディットコントロールに入力されたテキストを変換します。テキストはWindows文字セットからOEM文字セットに変換され、その後にまたWindows文字セットに変換されます。
CBS_OWNERDRAWFIXED | 各項目の高さがすべて同じ、オーナー描画コンボボックスを作成します。
CBS_OWNERDRAWVARIABLE | 各項目の高さが可変の、オーナー描画コンボボックスを作成します。
CBS_SIMPLE | 常時リストボックスが表示されるコンボボックスを作成します。リストボックス内の現在の選択項目は、エディットコントロール内に表示されます。
CBS_SORT | リストボックスに追加された文字列を自動的に並べ替えます。
CBS_UPPERCASE | コンボボックスのエディットコントロールに入力された小文字を、大文字に変換します。

※EDITクラスでのスタイル
定数 | 説明
ES_AUTOHSCROLL | ユーザーが行末に文字を入力すると、エディットコントロール内のテキストが自動的に右スクロールします。
ES_AUTOVSCROLL | ユーザーが最下行でエンターキーを押すと、テキストを自動的に上にスクロールします。
ES_CENTER | 複数行エディットコントロールにおいて、テキストを中央揃えで表示します。
ES_LEFT | テキストを左揃えで表示します。
ES_LOWERCASE | エディットコントロールに入力された文字を、小文字に変換します。
ES_MULTILINE | 複数行エディットコントロールを作成します。デフォルトは一行のエディットコントロールです。ダイアログボックス内の複数行エディットコントロールで［Enter］キーを押すと、デフォルトのボタンがアクティブになります。エンターキーを改行のために使うには、ES_WANTRETURNスタイルを使用します
ES_NOHIDESEL | エディットコントロール内の選択文字列のデフォルトの動作を無効にします。デフォルトでは、コントロールが入力フォーカスを失うと選択項目が表示されなくなり、入力フォーカスを受け取ると反転表示されます。ES_NOHIDESELを指定すると、選択されたテキストは、コントロールがフォーカス持っていない場合も反転表示されます。
ES_NUMBER | 数字だけが入力できるようにします。
ES_OEMCONVERT | エディットコントロールに入力されたテキストを変換します。テキストはWindows文字セットから OEM 文字セットに変換され、その後にまたWindows文字セットに変換されます。
ES_PASSWORD | エディットコントロールに入力された文字を、アスタリスク「*」で置き換えて表示します。表示する文字を変更するには、EM_SETPASSWORDCHARメッセージを使います。
ES_READONLY | ユーザーによるテキストの入力や編集をできなくします。
ES_RIGHT | 複数行エディットコントロールにおいて、テキストを右揃えで表示します。
ES_UPPERCASE | エディットコントロールに入力された文字を、大文字に変換します。
ES_WANTRETURN | ダイアログボックス内の複数行エディットコントロールにテキストを入力しているときにエンターキーが押されると、改行が挿入されるようにします。このスタイルを指定していないと、ダイアログボックスのデフォルトのプッシュボタンが押されます。このスタイルは、一行のエディットコントロールでは効果がありません。

※LISTBOXクラスでのスタイル
定数 | 説明
LBS_DISABLENOSCROLL | スクロールするほどの項目数がない場合、リストボックスの垂直方向のスクロールバーが無効状態で表示されます。通常はスクロールバーは表示されません。
LBS_EXTENDEDSEL | シフトキーとマウス、または特殊なキーの組み合わせで、複数の項目を選択できるようにします。
LBS_HASSTRINGS | リストボックスの項目が、文字列であることを指定します。リストボックスが文字列用のメモリとアドレスを管理するので、アプリケーションはLB_GETTEXTメッセージを使用して特定項目のテキストを取り出すことができます。デフォルトでは、オーナー描画のリストボックス以外のすべてのリストボックスが、このスタイルを持ちます。
LBS_MULTICOLUMN | 水平にスクロールする複数列のリストボックスを指定します。LB_SETCOLUMNWIDTHメッセージで列の幅を設定します。
LBS_MULTIPLESEL | 項目をクリックまたはダブルクリックして、複数の項目を選択できるようにします。
LBS_NODATA | データを持たないリストボックスを指定します。リストボックス内の項目数が1000を超えるときに、このスタイルを指定します。データを持たないリストボックスには、LBS_OWNERDRAWFIXEDスタイルが必要です。 LBS_SORT スタイルやLBS_HASSTRINGSスタイルは設定できません。項目に文字列やビットマップデータを持たないことを除くと、データを持たないリストボックスはオーナー描画リストボックスに似ています。項目の追加、挿入、削除のコマンドは常に無視されます。文字列の検索は、常に失敗します。
LBS_NOINTEGRALHEIGHT | リストボックスのサイズを指定します。通常は、項目が途中で切れないように、Windowsシステムがリストボックスのサイズを調整します。
LBS_NOREDRAW | 項目が変更されてもリストボックスの外観を更新しないように指定します。このスタイルは、WM_SETREDRAWメッセージを送ることでいつでも変更できます。
LBS_NOSEL | 表示するだけで選択できない項目を持つリストボックスを指定します。
LBS_NOTIFY | ユーザーがリストボックス内の文字列をクリック（またはダブルクリック）するたびに、親ウィンドウに入力メッセージを通知します。
LBS_OWNERDRAWFIXED | 各項目の高さがすべて同じ、オーナー描画リストボックスを作成します。
LBS_OWNERDRAWVARIABLE | 各項目の高さがすべて可変の、オーナー描画リストボックスを作成します。
LBS_SORT | リストボックス内の文字列をアルファベット順にソートします。
LBS_STANDARD | リストボックス内の文字列をアルファベット順にソートします。ユーザーが文字列をクリック（またはダブルクリック）するたびに、親ウィンドウは入力メッセージを受け取ります。リストボックスは四方に境界を持ちます。
LBS_USETABSTOPS | 文字列を描画するときに、リストボックスがタブ文字を認識し、展開できるようにします。デフォルトのタブ位置は32ダイアログボックス単位です。
LBS_WANTKEYBOARDINPUT | ユーザーがキーを押してリストボックスが入力フォーカスを持つたびに、リストボックスのオーナーがWM_VKEYTOITEMメッセージを受けるようにします。これにより、キーボード入力に特殊な処理を行えるようになります。

※SCROLLBARクラスでのスタイル
定数 | 説明
SBS_BOTTOMALIGN | スクロールバーの下端を、Window 命令語の x、y、width、heightパラメータで指定した長方形の下端にそろえます。スクロールバーの高さはデフォルトの高さになります。このスタイルはSBS_HORZスタイルと一緒に使います。
SBS_HORZ | 水平スクロールバーを作成します。SBS_BOTTOMALIGNスタイルもSBS_TOPALIGNスタイルも指定しないと、スクロールバーはWindow 命令語の x、y、width、heightパラメータで指定した位置とサイズになります。
SBS_LEFTALIGN | スクロールバーの左端を、Window 命令語の x、y、width、heightパラメータで指定した長方形の左端にそろえます。スクロールバーの幅は、デフォルトの幅になります。このスタイルはSBS_VERTスタイルと一緒に使います。
SBS_RIGHTALIGN | スクロールバーの右端を、Window 命令語の x、y、width、height パラメータで指定した長方形の右端にそろえます。スクロールバーの幅は、デフォルトの幅になります。このスタイルはSBS_VERTスタイルと一緒に使います。
SBS_SIZEBOX | サイズボックスを作成します。
SBS_SIZEBOXBOTTOMRIGHTALIGN | サイズボックスの右下隅を、Window 命令語の x、y、width、heightパラメータで指定した長方形の右下隅にそろえます。サイズボックスのサイズは、デフォルトのサイズになります。このスタイルはSBS_SIZEBOXスタイルと一緒に使います。
SBS_SIZEBOXTOPLEFTALIGN | サイズボックスの左上隅を、Window 命令語の x、y、width、heightパラメータで指定した長方形の左上隅にそろえます。サイズボックスのサイズは、デフォルトのサイズになります。このスタイルはSBS_SIZEBOXスタイルと一緒に使います。
SBS_SIZEGRIP | SBS_SIZEBOXスタイルと同じです。ただし、縁が盛り上がります。
SBS_TOPALIGN | スクロールバーの上端を、Window 命令語の x、y、width、heightパラメータで指定した長方形の上端にそろえます。スクロールバーの高さは、デフォルトの高さになります。このスタイルはSBS_HORZスタイルと一緒に使います。
SBS_VERT | 垂直スクロールバーを作成します。

※STATICクラスでのスタイル
定数 | 説明
SS_BITMAP | ビットマップを表示するスタティックコントロールを作成します。widthとheightパラメータは無視され、ビットマップに合わせてコントロールのサイズが調整されます。
SS_BLACKFRAME | ウィンドウの枠と同じ色の枠を持つボックスを作成します。Windowsのデフォルトの配色は黒です。
SS_BLACKRECT | ウィンドウの枠と同じ色で塗りつぶされた長方形を作成します。Windowsのデフォルトの配色は黒です。
SS_CENTER | テキストを中央揃えで表示します。テキストが行末を超える場合は自動的に折り返されます。
SS_CENTERIMAGE | コントロールのサイズが変更されても、SS_BITMAPスタイルやSS_ICONスタイルを持つスタティックコントロールの中心点は変えないようにします。
SS_GRAYFRAME | 画面の背景（デスクトップ）と同じ色の枠を持つボックスを作成します。Windowsのデフォルトの配色は灰色です。
SS_GRAYRECT | 画面の背景（デスクトップ）と同じ色で塗りつぶされた長方形を作成します。Windowsのデフォルトの配色は灰色です。
SS_ICON | アイコンを表示するスタティックコントロールを作成します。widthとheightパラメータは無視され、アイコンに合わせてコントロールのサイズが調整されます。
SS_LEFT | テキストを左揃えで表示します。テキストが行末を超える場合は自動的に折り返されます。
SS_LEFTNOWORDWRAP | テキストを左揃えで表示します。タブは展開されますが、テキストは折り返されません。行末を超えるテキストはクリップされます。
SS_METAPICT | メタファイルを表示するスタティックコントロールを作成します。メタファイルは、コントロールのサイズに合わせた大きさで表示されます。
SS_NOPREFIX | コントロールのテキスト中のアンパサント「&」文字を、アクセラレータのプリフィックス文字として解釈しないように指定します。このスタティックコントロールスタイルは、定義されているどのようなスタティックコントロールとも組み合わせて指定できます。アプリケーションは、ビット演算子OR使って、SS_NOPREFIXスタイルを他のスタイルと組み合わせることができます。ダイアログボックスのスタティックコントロール内に、アンパサント「&」を含むファイル名やその他の文字列を表示する必要があるときに便利です。
SS_NOTIFY | ユーザーがコントロールをクリック（またはダブルクリック）するたびに、親ウィンドウにSTN_CLICKED通知メッセージ（または STN_DBLCLK 通知メッセージ）を送ります。
SS_RIGHT | テキストを右揃えで表示します。
SS_RIGHTIMAGE | コントロールのサイズが変更されても、SS_BITMAPスタイルやSS_ICONスタイルを持つスタティックコントロールの右下隅は変えないようにします。
SS_SIMPLE | 単一行のテキストを左揃えで表示します。このコントロールの親ウィンドウやダイアログボックスはWM_CTLCOLORSTATICメッセージを処理してはいけません。
SS_WHITEFRAME | ウィンドウの背景と同じ色の枠を持つボックスを作成します。Windowsのデフォルトの配色は白です。
SS_WHITERECT | ウィンドウの背景と同じ色の枠で塗りつぶされた長方形を作成します。Windowsのデフォルトの配色は白です。

※ダイアログボックススタイル
定数 | 説明
DS_3DLOOK | ダイアログボックスを立体的に表示します。現在のバージョンのWindows用にコンパイルされたアプリケーションが作成するダイアログボックスには、自動的に立体的な外観が適用されます。
DS_ABSALIGN | ダイアログボックスの座標系を、スクリーン座標にします。デフォルトでは、クライアント座標になります。
DS_CENTER | デスクトップの作業領域の中央にダイアログボックスを配置します。作業領域は、タスクバーに覆われていない領域です。
DS_CENTERMOUSE | ダイアログボックスの中央にマウスポインタを配置します。
DS_CONTEXTHELP | ダイアログボックスのタイトルバーに［?］ボタンを追加します。ユーザーがこの［?］ボタンをクリックすると、マウスポインタに疑問符が付きます。その後、ユーザーがダイアログボックス内のコントロールをクリックすると、コントロールはWM_HELPメッセージを受け取ります。コントロールはダイアログの処理にそのメッセージを送ります。
DS_CONTROL | 他のダイアログボックスの子ウィンドウとして適切に機能する、プロパティシート内のページのようなダイアログボックスを作成します。
DS_FIXEDSYS | SYSTEM_FONTの代わりに、SYSTEM_FIXED_FONTを使用します。
DS_LOCALEDIT | 16 ビットのアプリケーションで使用します。
DS_MODALFRAME | モーダルダイアログボックスフレームを持つダイアログボックスを作成します。
DS_NOFAILCREATE | エラーが発生してもダイアログボックスを作成します。
DS_NOIDLEMSG | ダイアログボックスが表示されている間、WM_ENTERIDLEメッセージを抑制します。
DS_RECURSE | コントロールに似たダイアログボックスを作成します。
DS_SETFONT | ダイアログボックステンプレートが、フォント名とポイントサイズを持つことを示します。対応するフォントは、ダイアログボックスでテキストを表示するために使われます。
DS_SETFOREGROUND | ダイアログボックスをフォアグラウンドにします。このスタイルは、16ビット版のWindowsには適用できません。
DS_SYSMODAL | システムモーダルダイアログボックスを作成します。このスタイルを指定すると、ダイアログボックスが最前面ウィンドウ（WS_EX_TOPMOST）になります。その他の点では、ダイアログボックス自身やシステム内の他のウィンドウの振る舞いに影響を与えません。

戻り値

関数が成功すると、作成されたウィンドウのハンドルが返ります。失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

DestroyWindow関数、ShowWindow関数、RegisterClassEx関数


 Win32API: DestroyWindow

ウィンドウを破棄します。

定義
Declare Function DestroyWindow Lib "user32" _
   (hWnd As HWND) As Long
hWnd
ウィンドウ ハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

破棄するウィンドウは呼び出し側スレッドが作成したものでなければなりません。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

CreateWindowEx関数


 Win32API: EnableWindow

ウィンドウを無効、または有効にします。

定義
Declare Function EnableWindow Lib "user32" _
   (hWnd As HWND, _
    bEnable As Long) As Long
hWnd
ウィンドウ ハンドルを指定します。

bEnable
TRUE を指定すると有効に、FALSE を指定すると無効になります。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

IsWindowEnabled関数


 Win32API: FindWindow

クラス名、ウィンドウ名をもとにトップレベル ウィンドウを検索します。

定義
Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
   (lpClassName As BytePtr, _
    lpWindowName As BytePtr) As HWND
lpClassName
検索するクラス名を指定します。必要のないときは、NULL を指定することができます。

lpWindowName
検索するウィンドウ名を指定します。必要のないときは、NULL を指定することができます。

戻り値

関数が成功すると、指定したクラス名、ウィンドウ名を持つウィンドウのハンドルが返ります。
関数が失敗すると、NULL が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll


 Win32API: GetClientRect

指定したウィンドウのクライアント領域の、左上隅と右下隅の座標を取得します。

定義
Declare Function GetClientRect Lib "user32" _
         (hWnd As HWND, _
    ByRef lpRect As RECT) As Long
hWnd
ウィンドウ ハンドルを指定します。

lpRect （ポインタ参照）
RECT構造体へのポインタを指定します。この構造体に、クライアント領域の左上隅と右下隅の座標が格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

lpRect 構造体の left メンバ、top メンバは常に 0 となり、right メンバには幅が、bottom メンバには高さが格納されます。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetWindowRect関数


 Win32API: GetDesktopWindow

デスクトップのウィンドウ ハンドルを取得します。

定義

Declare Function GetDesktopWindow Lib "user32" ( ) As HWND

戻り値

デスクトップのウィンドウ ハンドルが返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll


 Win32API: GetForegroundWindow

フォアグラウンド ウィンドウ（ユーザーが作業中のウィンドウ）のハンドルを取得します。

定義

Declare Function GetForegroundWindow Lib "user32" ( ) As HWND

戻り値

フォアグラウンド ウィンドウのハンドルが返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

SetForegroundWindow関数


 Win32API: GetParent

指定したウィンドウの、親ウィンドウのハンドルを取得します。

定義
Declare Function GetParent Lib "user32" _
   (hWnd As HWND) As HWND
hWnd
ウィンドウ ハンドルを指定します。

戻り値

関数が成功すると、親ウィンドウのハンドルが返ります。失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

SetParent関数


 Win32API: GetWindow

指定したウィンドウと、指定した関係のあるウィンドウのハンドルを取得します。

定義
Declare Function GetWindow Lib "user32" _
   (hWnd As HWND, _
    uCmd As DWord) As HWND
hWnd
ウィンドウ ハンドルを指定します。

uCmd
検索するウィンドウが、hWnd パラメータで指定したウィンドウとどのような関係を持つかを、以下の定数から指定します。
定数 | 説明
GW_CHILD | Z 順位が一番上の子ウィンドウを取得します。
GW_HWNDFIRST | 指定したウィンドウと同じタイプのウィンドウで、Z 順位が一番上のウィンドウを取得します。
GW_HWNDLAST | 指定したウィンドウと同じタイプのウィンドウで、Z 順位が一番下のウィンドウを取得します。
GW_HWNDNEXT | Z 順位が、指定したウィンドウの次にあるウィンドウを取得します。
GW_HWNDPREV | Z 順位が、指定したウィンドウの前にあるウィンドウを取得します。
GW_OWNER | 指定したウィンドウの親ウィンドウを取得します。

戻り値

関数が成功すると、ウィンドウ ハンドルが返ります。失敗すると、NULL が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll


 Win32API: GetWindowPlacement

ウィンドウの表示状態、および通常表示、最大化表示、アイコン状態のときの位置を取得します。

定義
Declare Function GetWindowPlacement Lib "user32" _
         (hWnd As HWND, _
    ByRef lpwndpl As WINDOWPLACEMENT) As Long
hWnd
ウィンドウ ハンドルを指定します。

lpwndpl （ポインタ参照）
WINDOWPLACEMENT構造体へのポインタを指定します。この構造体にウィンドウ表示に関する情報が格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

lpwndpl パラメータの flags メンバは常に 0 になります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

WINDOWPLACEMENT構造体、SetWindowPlacement関数


 Win32API: GetWindowRect

指定したウィンドウの左上隅、右下隅の座標をスクリーン座標で取得します。

定義
Declare Function GetWindowRect Lib "user32" _
         (hWnd As HWND, _
    ByRef lpRect As RECT) As Long
hWnd
ウィンドウ ハンドルを指定します。

lpRect （ポインタ参照）
RECT構造体へのポインタを指定します。この構造体の left メンバ、top メンバには左上隅の座標が、right メンバ、bottom メンバには右下隅の座標が格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetClientRect関数


 Win32API: GetWindowText

ウィンドウのタイトル バーのテキスト、またはコントロール内のテキストを取得します。

定義
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" _
   (hWnd As HWND, _
    lpString As BytePtr, _
    nMaxCount As Long) As Long
hWnd
ウィンドウ ハンドルを指定します。

lpString
文字列バッファへのポインタを指定します。このバッファに取得したテキストが格納されます。

nMaxCount
lpString バッファのサイズ（終端の NULL 文字を含む）をバイト単位で指定します。

戻り値

関数が成功すると、取得したテキストのバイト数（終端の NULL 文字を除く）が返ります。
関数が失敗すると、0 が返ります。

解説

この関数は、WM_GETTEXTメッセージを使用してテキストを取得します。他のアプリケーションが所有するウィンドウのテキストは取得することができません。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetWindowTextLength関数、SetWindowText関数、WM_GETTEXTメッセージ


 Win32API: GetWindowTextLength

ウィンドウのタイトル バーのテキスト、またはコントロール内のテキストのバイト数を取得します。

定義
Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" _
   (hWnd As HWND) As Long
hWnd
ウィンドウ ハンドルを指定します。

戻り値

関数が成功すると、取得したテキストのバイト数（終端の NULL 文字を除く）が返ります。
関数が失敗すると、0 が返ります。

解説

この関数は、WM_GETTEXTLENGTHメッセージを使用してバイト数を取得します。他のアプリケーションが所有するウィンドウのテキスト バイト数は取得することができません。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetWindowText関数、WM_GETTEXTLENGTHメッセージ


 Win32API: GetWindowThreadProcessId

指定したウィンドウを作成したスレッド及びプロセスのIDを取得します。

定義
Declare Function GetWindowThreadProcessId Lib "user32" _
   (hWnd As HWND, _
    lpdwProcessId As DWordPtr) As DWord
hWnd
ウィンドウハンドルを指定します。

lpdwProcessId
32ビット整数型変数へのポインタを指定します。この変数に、プロセスIDが格納されます。不要なときは、NULL を指定することができます。

戻り値

関数が成功すると、スレッドIDが返ります。関数が失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll


 Win32API: IsChild

指定した2つのウィンドウが親子関係にあるかどうかを調べます。

定義
Declare Function IsChild Lib "user32" _
   (hWndParent As HWND, _
    hWnd As HWND) As Long
hWndParent
親ウィンドウのハンドルを指定します。

hWnd
調査する子ウィンドウ（または子孫ウィンドウ）のハンドルを指定します。

戻り値

2つのウィンドウが親子関係にあるときは、TRUE が返ります。そうでないときは、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll


 Win32API: IsIconic

指定したウィンドウがアイコン化（最小化）されているかどうかを調べます。

定義
Declare Function IsIconic Lib "user32" _
   (hWnd As HWND) As Long
hWnd
ウィンドウ ハンドルを指定します。

戻り値

指定したウィンドウがアイコン化されているときは、TRUE が返ります。そうでないときは、 FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

IsZoomed関数、CloseWindow関数、OpenIcon関数


 Win32API: IsWindow

指定したウィンドウ ハンドルが有効であるかどうかを調べます。

定義
Declare Function IsWindow Lib "user32" _
   (hWnd As HWND) As Long
hWnd
ウィンドウ ハンドルを指定します。

戻り値

指定したウィンドウが存在するときは、TRUE が返ります。そうでないときは、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll


 Win32API: IsWindowVisible

指定したウィンドウが表示状態にあるかどうかを調べます。

定義
Declare Function IsWindowVisible Lib "user32" _
   (hWnd As HWND) As Long
hWnd
ウィンドウ ハンドルを指定します。

戻り値

指定したウィンドウが表示状態のときは、TRUE が返ります。非表示状態のときは、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

ShowWindow関数


 Win32API: IsZoomed

指定したウィンドウが最大化されているかどうかを調べます。

定義
Declare Function IsZoomed Lib "user32" _
   (hWnd As HWND) As Long
hWnd
ウィンドウ ハンドルを指定します。

戻り値

指定したウィンドウが最大化されているときは、TRUE が返ります。そうでないときは、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

IsIconic関数


 Win32API: MoveWindow

指定したウィンドウの、位置とサイズを変更します。

定義
Declare Function MoveWindow Lib "user32" _
   (hWnd As HWND, _
    x As Long, _
    y As Long, _
    nWidth As Long, _
    nHight As Long, _
    bRepain As Long) As Long
hWnd
ウィンドウ ハンドルを指定します。

x
ウィンドウ左上隅の X 座標を指定します。

y
ウィンドウ左上隅の Y 座標を指定します。

nWidth
ウィンドウの幅を指定します。

nHight
ウィンドウの高さを指定します。

bRepain
ウィンドウの再描画が必要なときは TRUE を、必要でないときは FALSE を指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

SetWindowPos関数


 Win32API: OpenIcon

最小化されているウィンドウを、元のサイズに戻し、アクティブにします。

定義
Declare Function OpenIcon Lib "user32" _
   (hWnd As HWND) As Long
hWnd
ウィンドウ ハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

CloseWindow関数、IsIconic関数


 Win32API: SetForegroundWindow

指定したウィンドウをフォアグラウンド ウィンドウにします。

定義
Declare Function SetForegroundWindow Lib "user32" _
   (hWnd As HWND) As Long
hWnd
ウィンドウ ハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

フォアグラウンド ウィンドウに指定されたウィンドウは、アクティブになり、キーボード入力が有効になります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetForegroundWindow関数


 Win32API: SetParent

指定した子ウィンドウの親ウィンドウを変更します。

定義
Declare Function SetParent Lib "user32" _
   (hWndChild As HWND, _
    hWndNewParent As HWND) As HWND
hWndChild
子ウィンドウのハンドルを指定します。

hWndNewParent
新しい親ウィンドウのハンドルを指定します。

戻り値

関数が成功すると、以前の親ウィンドウのハンドルが返ります。失敗すると、0 が返ります。

解説

親ウィンドウ、子ウィンドウは同じアプリケーションのものでなければなりません。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetParent関数


 Win32API: SetWindowPlacement

ウィンドウの表示状態、および通常表示、最大化表示、アイコン状態のときの位置を設定します。

定義
Declare Function SetWindowPlacement Lib "user32" _
         (hWnd As HWND, _
    ByRef lpwndpl As WINDOWPLACEMENT) As Long
hWnd
ウィンドウ ハンドルを指定します。

lpwndpl （ポインタ参照）
ウィンドウ表示に関する情報が格納された、WINDOWPLACEMENT構造体へのポインタを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

WINDOWPLACEMENT構造体、GetWindowPlacement関数


 Win32API: SetWindowPos

指定したウィンドウの位置、サイズ、および表示状態を設定します。

定義
Declare Function SetWindowPos Lib "user32" _
   (hWnd As HWND, _
    hWndInsertAfter As HWND, _
    X As Long, _
    Y As Long, _
    cx As Long, _
    cy As Long, _
    uFlags As DWord) As Long
hWnd
ウィンドウ ハンドルを指定します。

hWndInsertAfter
hWnd パラメータで指定したウィンドウの Z 順位に関する情報を、以下の定数から指定します。省略する場合は、NULL を指定します。
定数 | 説明
HWND_BOTTOM | ウィンドウを Z 順位の一番下に設定します。最前面ウィンドウは同時に WS_EX_TOPMOST の指定が解除されます。
HWND_NOTOPMOST | 最前面ウィンドウ（WS_EX_TOPMOST）指定を解除します。
HWND_TOP | ウィンドウを Z 順位の一番上に設定します。
HWND_TOPMOST | ウィンドウを最前面ウィンドウに設定します。最前面ウィンドウとは、常に最前面に表示されるウィンドウのことです。

X
ウィンドウ左上隅の X 座標を指定します。トップレベルウィンドウはスクリーン座標で、子ウィンドウはクライアント座標で指定します。

Y
ウィンドウ左上隅の Y 座標を指定します。トップレベルウィンドウはスクリーン座標で、子ウィンドウはクライアント座標で指定します。

cx
ウィンドウの幅を指定します。

cy
ウィンドウの高さを指定します。

uFlags
ウィンドウの位置、サイズ、表示状態変更に関するフラグを、以下の定数を組み合わせて指定します。
定数 | 説明
SWP_DRAWFRAME | 再描画時に、ウィンドウの枠も再描画の対象とします。
SWP_FRAMECHANGED | ウィンドウ サイズが変更されない場合でも、WM_NCCALCSIZE メッセージを送ります。
SWP_HIDEWINDOW | ウィンドウを非表示にします。
SWP_NOACTIVATE | ウィンドウをアクティブ化しないようにします。
SWP_NOCOPYBITS | ウィンドウ再配置時に、クライアント領域の内容を破棄します。
SWP_NOMOVE | ウィンドウの現在の位置を維持します。X パラメータ、Y パラメータは無視されます。
SWP_NOOWNERZORDER または、SWP_NOREPOSITION | オーナーウィンドウの Z 順位を変更しないようにします。
SWP_NOREDRAW | 変更結果を再描画しないようにします。
SWP_NOSENDCHANGING | ウィンドウに WM_WINDOWPOSCHANGING メッセージを送らないようにします。
SWP_NOSIZE | ウィンドウの現在のサイズを維持します。cx パラメータ、cy パラメータは無視されます。
SWP_NOZORDER | 現在の Z 順位を維持します。hWndInsertAfter パラメータは無視されます。
SWP_SHOWWINDOW | ウィンドウを表示します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

MoveWindow関数


 Win32API: SetWindowText

ウィンドウのタイトル バーのテキスト、またはコントロール内のテキストを設定します。

定義
Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" _
   (hWnd As HWND, _
    lpString As BytePtr) As Long
hWnd
ウィンドウ ハンドルを指定します。

lpString
設定する文字列が格納されている、バッファへのポインタを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

この関数は、WM_SETTEXTメッセージを使用してテキストを設定します。他のアプリケーションが所有するウィンドウのテキストを設定することはできません。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetWindowText関数、WM_SETTEXTメッセージ


 Win32API: ShowWindow

ウィンドウの表示状態を設定します。

定義
Declare Function ShowWindow Lib "user32" _
   (hWnd As HWND, _
    nCmdShow As Long) As Long
hWnd
ウィンドウ ハンドルを指定します。

nCmdShow
ウィンドウの表示状態を、以下の定数から指定します。
定数 | 説明
SW_HIDE | ウィンドウを非表示にし、他のウィンドウをアクティブにします。
SW_MAXIMIZE | ウィンドウを最大化します。
SW_MINIMIZE | ウィンドウを最小化し、他のウィンドウをアクティブにします。
SW_RESTORE または SW_SHOWNORMAL | ウィンドウをアクティブにし、元の位置とサイズで表示します。最大化、アイコン化は解除されます。
SW_SHOW | ウィンドウをアクティブにし、現在の位置とサイズで表示します。
SW_SHOWDEFAULT | アプリケーション起動時の表示状態にします。
SW_SHOWMAXIMIZED | ウィンドウをアクティブにし、最大化します。
SW_SHOWMINIMIZED | ウィンドウをアクティブにし、最小化します。
SW_SHOWMINNOACTIVE | ウィンドウを最小化します。アクティブなウィンドウは、アクティブな状態を保ちます。
SW_SHOWNA | ウィンドウを現在の状態で表示します。
SW_SHOWNOACTIVATE | ウィンドウを直前の位置とサイズで表示します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll


 Win32API: WindowFromPoint

指定された座標上に存在するウィンドウのハンドルを取得します。

定義
Declare Function WindowFromPoint Lib "user32" _
   (ptX As Long, _
    ptY As Long) As HWND
ptX
X 座標をスクリーン座標で指定します。

ptY
Y 座標をスクリーン座標で指定します。

戻り値

関数が成功すると、指定した座標上にあるウィンドウのハンドルが返ります。失敗すると、0 が返ります。

解説

非表示のウィンドウや、無効になっているウィンドウは取得できません。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

ChildWindowFromPoint関数


 構造体: WINDOWPLACEMENT

画面上のウィンドウの位置情報を管理します。

定義
Type WINDOWPLACEMENT
    length As Long
    flags As Long
    showCmd As Long
    ptMinPosition As POINTAPI
    ptMaxPosition As POINTAPI
    rcNormalPosition As RECT
End Type
length
構造体サイズをバイト単位で指定します。

flags
次のいずれかのフラグを指定します。NULL を指定して省略することもできます。
定数 | 説明
WPF_SETMINPOSITION | ptMinPosition メンバが有効になります。
WPF_RESTORETOMAXIMIZED | showCmd メンバに SW_SHOWMINIMIZED フラグが指定された場合にのみ有効です。アイコン化されたウィンドウが元に戻るとき、ウィンドウを最大化することを示します。

showCmd
ウィンドウの表示方法を、以下の定数で指定します。
定数 | 説明
SW_HIDE | ウィンドウを非表示にし、他のウィンドウをアクティブにします。
SW_MINIMIZE | ウィンドウをアイコン化し、他のウィンドウをアクティブにします。
SW_RESTORE、SW_SHOWNORMAL | ウィンドウをアクティブにし、表示します。ウィンドウは元の位置とサイズに復元されます。
SW_SHOW | ウィンドウをアクティブにし、現在の位置とサイズで表示します。
SW_SHOWMAXIMIZED | ウィンドウをアクティブにし、最大化します。
SW_SHOWMINIMIZED | ウィンドウをアクティブにし、アイコン化します。
SW_SHOWMINNOACTIVE | ウィンドウをアイコン化します。
SW_SHOWNA | ウィンドウを現在の状態で表示します。
SW_SHOWNOACTIVATE | ウィンドウを直前のサイズと位置で表示します。

ptMinPosition
ウィンドウがアイコン化されるときの、ウィンドウの左上隅の座標を示します。

ptMaxPosition
ウィンドウが最大化表示されるときの、ウィンドウの左上隅の座標を示します。

rcNormalPosition
ウィンドウが通常表示されるとき（アイコン化、最大化されていないとき）の、ウィンドウの左上隅、右下隅の座標を示します。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み

GetWindowPlacement関数、SetWindowPlacement関数


 Win32API: GetClassInfoEx

ウィンドウクラスの情報を取得します。

定義
Declare Function GetClassInfoEx Lib "user32" Alias "GetClassInfoExA" _
         (hInst As HINSTANCE, _
          lpszClass As BytePtr, _
    ByRef lpwcx As WNDCLASSEX) As Long
hinst
取得するクラスを作成したモジュールのインスタンスハンドルを指定します。Windows標準のコントロールクラスの情報を取得するときは、NULL を指定します。

lpszClass
クラス名が格納された文字列へのポインタを指定します。

lpwcx
WNDCLASSEX構造体を指定します。この構造体にウィンドウクラスの情報が格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

アプリケーション終了時に、登録されたクラスは自動的に破棄されます。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll
エラー情報: GetLastError関数で取得可能

RegisterClassEx関数、WNDCLASSEX構造体


 Win32API: GetClassLong

指定したウィンドウに関連付けられたWNDCLASSEX構造体をもとに、情報を取得します。

定義
Declare Function GetClassLong Lib "user32" Alias "GetClassLongA" _
   (hWnd As HWND, _
    nIndex As Long) As DWord
hWnd
ウィンドウ ハンドルを指定します。

nIndex
どのようなデータを取得するかを、以下の定数から指定します。拡張クラスメモリからデータを取得するときは、0 から始まるオフセットをバイト単位で指定します。
定数 | 説明
GCW_ATOM | ウィンドウクラスを一意的に識別するアトム値を取得します。
GCL_CBCLSEXTRA | 拡張クラスメモリのサイズを、バイト単位で取得します。
GCL_CBWNDEXTRA | 拡張ウィンドウメモリのサイズを、バイト単位で取得します。
GCL_HBRBACKGROUND | 背景ブラシのハンドルを取得します。
GCL_HCURSOR | マウスカーソルのハンドルを取得します。
GCL_HICON | アイコンのハンドルを取得します。
GCL_HICONSM | 小さいアイコンのハンドルを取得します。
GCL_HMODULE | クラスを登録したモジュールのハンドルを取得します。
GCL_MENUNAME | メニュー名が入った文字列へのポインタ（またはメニューの ID）を取得します。
GCL_STYLE | ウィンドウクラスのスタイルを取得します。
GCL_WNDPROC | このクラスのウィンドウプロシージャのアドレスを取得します。

戻り値

関数が成功すると、要求された値が 32 ビット整数値でが返ります。失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll
エラー情報: GetLastError関数で取得可能

SetClassLong関数、WNDCLASSEX構造体


 Win32API: GetClassName

指定したウィンドウのクラス名を取得します。

定義
Declare Function GetClassName Lib "user32" Alias "GetClassNameA" _
   (hWnd As HWND, _
    lpClassName As BytePtr, _
    nMaxCount As Long) As Long
hWnd
ウィンドウ ハンドルを指定します。

lpClassName
クラス名を格納するたの文字列バッファへのポインタを指定します。

nMaxCount
lpClassName パラメータで指定したバッファのバイト数を指定します。

戻り値

関数が成功すると、バッファに格納されたクラス名のバイト数（終端の NULL 文字を除く）が返ります。失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll
エラー情報: GetLastError関数で取得可能


 Win32API: GetWindowLong

指定したウィンドウに関する情報を取得します。

定義
Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
   (hWnd As HWND, _
    nIndex As Long) As Long
hWnd
ウィンドウ ハンドルを指定します。

nIndex
どのようなデータを取得するかを、以下の定数から指定します。拡張ウィンドウメモリからデータを取得するときは、0 から始まるオフセットをバイト単位で指定します。
定数 | 説明
GWL_EXSTYLE | 拡張ウィンドウスタイルを取得します。
GWL_STYLE | ウィンドウスタイルを取得します。
GWL_WNDPROC | ウィンドウプロシージャのアドレス、またはウィンドウプロシージャのアドレスを示すハンドルを取得します。
GWL_HINSTANCE | アプリケーションのインスタンスハンドルを取得します。
GWL_HWNDPARENT | 親ウィンドウのハンドルを取得します。
GWL_ID | ウィンドウの ID を取得します。
GWL_USERDATA | ウィンドウに関連付けられたアプリケーション定義の 32 ビット値を取得します。

戻り値

関数が成功すると、要求された値が 32 ビット整数値で返ります。失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll
エラー情報: GetLastError関数で取得可能

SetWindowLong関数、WNDCLASSEX構造体


 Win32API: RegisterClassEx

CreateWindowEx関数で使用するためのウィンドウクラスを登録します。

定義
Declare Function RegisterClassEx Lib "user32" Alias "RegisterClassExA" _
   (ByRef lpwcx As WNDCLASSEX) As Long
lpwcx
登録するクラスに関する情報が格納されている、WNDCLASSEX構造体を指定します。

戻り値

関数が成功すると、登録されたクラスを一意的に識別するアトムが返ります。失敗すると、0 が返ります。

解説

アプリケーション終了時に、登録されたクラスは自動的に破棄されます。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll
エラー情報: GetLastError関数で取得可能

CreateWindowEx関数、WNDCLASSEX構造体


 Win32API: SetClassLong

指定したウィンドウのクラス情報を変更します。

定義
Declare Function SetClassLong Lib "user32" Alias "SetClassLongA" _
   (hWnd As HWND, _
    nIndex As Long, _
    NewLong As Long) As Long
hWnd
ウィンドウ ハンドルを指定します。

nIndex
どのようなデータを変更するかを、以下の定数から指定します。拡張クラスメモリのデータを変更するときは、0 から始まるオフセットをバイト単位で指定します。
定数 | 説明
GCL_CBCLSEXTRA | 拡張クラスメモリのサイズを、バイト単位で指定します。
GCL_CBWNDEXTRA | 拡張ウィンドウメモリのサイズを、バイト単位で指定します。
GCL_HBRBACKGROUND | 背景ブラシのハンドルを変更します。
GCL_HCURSOR | マウスカーソルのハンドルを変更します。
GCL_HICON | アイコンのハンドルを変更します。
GCL_HICONSM | 小さいアイコンのハンドルを変更します。
GCL_HMODULE | クラスを登録したモジュールのハンドルを変更します。
GCL_MENUNAME | メニュー名が入った文字列へのポインタ（またはメニューの ID）を変更します。
GCL_STYLE | ウィンドウクラスのスタイルを変更します。
GCL_WNDPROC | このクラスのウィンドウプロシージャのアドレスを変更します。

NewLong
新しい設定内容を、32 ビット整数値で指定します。

戻り値

関数が成功すると、以前の値が 32 ビット整数値で返ります。失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll
エラー情報: GetLastError関数で取得可能

GetClassLong関数、WNDCLASSEX構造体


 Win32API: SetWindowLong

指定したウィンドウに関する情報を変更します。

定義
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
   (hWnd As HWND, _
    nIndex As Long, _
    NewLong As Long) As Long
hWnd
ウィンドウ ハンドルを指定します。

nIndex
どのようなデータを変更するかを、以下の定数から指定します。拡張ウィンドウメモリのデータを変更するときは、0 から始まるオフセットをバイト単位で指定します。
定数 | 説明
GWL_EXSTYLE | 拡張ウィンドウスタイルを変更します。
GWL_STYLE | ウィンドウスタイルを変更します。
GWL_WNDPROC | ウィンドウプロシージャのアドレス、またはウィンドウプロシージャのアドレスを示すハンドルを変更します。
GWL_HINSTANCE | アプリケーションのインスタンスハンドルを変更します。
GWL_ID | ウィンドウの ID を変更します。
GWL_USERDATA | ウィンドウに関連付けられたアプリケーション定義の 32 ビット値を変更します。

NewLong
新しい設定内容を、32 ビット整数値で指定します。

戻り値

関数が成功すると、以前の値が 32 ビット整数値で返ります。失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll
エラー情報: GetLastError関数で取得可能

GetWindowLong関数、WNDCLASSEX構造体


 Win32API: UnregisterClass

ウィンドウクラスを破棄し、使用されていたメモリを解放します。

定義
Declare Function UnregisterClass Lib "user32" Alias "UnregisterClassA" _
   (lpClassName As BytePtr, _
    hInst As HINSTANCE) As Long
lpClassName
クラス名を指定します。

hInst
クラスを作成したモジュールのインスタンスハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

クラスを破棄する前に、そのクラスを使用して作成されたウィンドウをすべて終了する必要があります。
アプリケーション終了時に、登録されたクラスは自動的に破棄されます。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll
エラー情報: GetLastError関数で取得可能

RegisterClassEx関数


 構造体: WNDCLASSEX

ウィンドウ クラスに関する情報を格納します。

定義
Type WNDCLASSEX
    cbSize        As DWord
    style         As DWord
    lpfnWndProc   As VoidPtr
    cbClsExtra    As Long
    cbWndExtra    As Long
    hInstance     As HINSTANCE
    hIcon         As HICON
    hCursor       As HCURSOR
    hbrBackground As HBRUSH
    lpszMenuName  As BytePtr
    lpszClassName As BytePtr
    hIconSm       As HICON
End Type
cbSize
構造体のサイズをバイト単位で指定します。

style
クラス スタイルを、以下の定数を組み合わせて指定します。
定数 | 説明
CS_BYTEALIGNCLIENT | ウィンドウのクライアント領域の X 座標が、8 の倍数になるように配置します。
CS_BYTEALIGNWINDOW | ウィンドウの X 座標が、8 の倍数になるように配置します。
CS_CLASSDC | このクラスに属するすべてのウィンドウで、デバイス コンテキストを共有します。
CS_DBLCLKS | ダブルクリックのイベント通知（WM_LBUTTONDBLCLK、WM_RBUTTONDBLCLK）を有効にします。
CS_HREDRAW | 移動やサイズ変更によって、ウィンドウのクライアント領域の幅が変化したときに、ウインドウの無効領域を再描画します。
CS_NOCLOSE | ウィンドウの「閉じる」メニューを無効にします。
CS_OWNDC | このクラスに属するウィンドウには、それぞれ独自のデバイス コンテキストを割り当てます。
CS_PARENTDC | 子ウィンドウのクリッピング領域に親ウィンドウのクリッピング領域を設定します。
CS_SAVEBITS | 他のウィンドウに隠れた部分を、ビットマップとして保存します。他のウィンドウが取り除かれたときに、保存してあるビットマップを利用し、イメージを作成し直します。
CS_VREDRAW | 移動やサイズ変更によって、ウィンドウのクライアント領域の高さが変化したときに、ウインドウの無効領域を再描画します。

lpfnWndProc
コールバック関数を示すポインタを指定します。

cbClsExtra
この構造体の後に確保する付加情報のバイト数を指定します。

cbWndExtra
ウィンドウ インスタンスの後に確保する付加情報のバイト数を指定します。

hInstance
インスタンス ハンドルを指定します。

hIcon
アイコン ハンドルを指定します。

hCursor
カーソル ハンドルを指定します。

hbrBackground
背景用のブラシ ハンドルを指定します。

lpszMenuName
メニュー リソースの名前を指定します。メニューが不要なときは、NULL を指定することができます。

lpszClassName
クラス名を指定します。

hIconSm
小さいアイコンのハンドルを指定します。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み

RegisterClassEx関数


 Win32API: BitBlt

コピー元のデバイス コンテキストで選択されているビットマップ、またはパターンを、コピー先のデバイス コンテキストに描画します。

定義
Declare Function BitBlt Lib "gdi32" _
   (hdcDest As HDC, _
    nXDest As Long, _
    nYDest As Long, _
    nWidth As Long, _
    nHeight As Long, _
    hdcSrc As HDC, _
    nXSrc As Long, _
    nYSrc As Long, _
    dwRop As DWord) As Long
hdcDest
コピー先デバイス コンテキストのハンドルを指定します。

nXDest
コピー先長方形領域の左上隅の X 座標を指定します。

nYDest
コピー先長方形領域の左上隅の Y 座標を指定します。

nWidth
コピー先長方形領域の幅を指定します。

nHeight
コピー先長方形領域の高さを指定します。

hdcSrc
コピー元デバイス コンテキストのハンドルを指定します。

nXSrc
コピー元長方形領域の左上隅の X 座標を指定します。

nYSrc
コピー元長方形領域の左上隅の Y 座標を指定します。

dwRop
ラスタオペレーションを以下の定数から指定します。
定数 | 説明
BLACKNESS | 物理パレットのインデックス 0 に対応する色（デフォルトは黒）で、コピー先の長方形を塗りつぶします。
DSTINVERT | コピー先長方形の色を反転します。
MERGECOPY | コピー元の色と、コピー先の色を、AND 演算で結合します。
MERGEPAINT | コピー元の色を反転した色と、コピー先の色を、OR 演算で結合します。
NOTSRCCOPY | コピー元の色を反転して、コピー先にコピーします。
NOTSRCERASE | コピー元の色と、コピー先の色を、OR 演算したものを、さらに反転します。
PATCOPY | コピー元で選択されているパターンを、コピー先にコピーします。
PATINVERT | コピー元で選択されているパターンの色と、コピー先の色を、XOR 演算で結合します。
PATPAINT | コピー元で選択されているパターンの色と、コピー先の色を反転した色を、OR 演算で結合し、さらにその結果を、コピー先の色と OR 演算で結合します。
SRCAND | コピー元の色と、コピー先の色を、AND 演算で結合します。
SRCCOPY | コピー元の色を、コピー先にそのままコピーします。
SRCERASE | コピー元の色と、コピー先の色を反転した色を、AND 演算で結合します。
SRCINVERT | コピー元の色と、コピー先の色を、XOR 演算で結合します。
SRCPAINT | コピー元の色と、コピー先の色を、OR 演算で結合します。
WHITENESS | 物理パレットのインデックス 1 に対応する色（デフォルトは白）で、コピー先の長方形を塗りつぶします。

戻り値

関数が成功すると TRUE が返ります。失敗すると FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

PlgBlt関数、StretchBlt関数


 Win32API: CreateBitmap

指定された幅、高さ、カラー情報をもとに、ビットマップを作成します。

定義
Declare Function CreateBitmap Lib "gdi32" _
   (nWidth As Long, _
    nHeight As Long, _
    cPlanes As Long, _
    cBitsPerPel As Long, _
    lpvBits As VoidPtr) As HBITMAP
nWidth
ビットマップの幅を指定します。

nHeight
ビットマップの高さを指定します。

cPlanes
カラープレーンを指定します。通常は 1 を指定します。

cBitsPerPel
1 ピクセルあたりのビット数を指定します。

lpvBits
ビットマップのピクセル データが格納されているバッファへのポインタを指定します。NULL を指定すると、ビットマップの内容は不定になります。

戻り値

関数が成功すると、ビットマップのハンドルが返ります。失敗すると、NULL が返ります。

解説

この関数はモノクロ ビットマップの作成に使用して下さい。色付きビットマップの作成には、CreateCompatibleBitmap関数を使用して下さい。
ビットマップが不要になったときはDeleteObject関数を利用して破棄して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

CreateBitmapIndirect関数、CreateCompatibleBitmap関数、DeleteObject関数


 Win32API: CreateBitmapIndirect

BITMAP 構造体の内容をもとに、ビットマップを作成します。

定義
Declare Function CreateBitmapIndirect Lib "gdi32" _
   (ByRef lpbm As BITMAP) As HBITMAP
lpbm （ポインタ参照）
作成するビットマップの幅、高さ、色情報などが格納されている、BITMAP構造体へのポインタを指定します。

戻り値

関数が成功すると、ビットマップのハンドルが返ります。失敗すると、NULL が返ります。

解説

この関数はモノクロ ビットマップの作成に使用して下さい。色付きビットマップの作成には、CreateCompatibleBitmap関数を使用して下さい。
ビットマップが不要になったときはDeleteObject関数を利用して破棄して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

CreateBitmap関数、CreateCompatibleBitmap関数、DeleteObject関数、BITMAP構造体


 Win32API: CreateCompatibleBitmap

指定したデバイス コンテキストと互換性のあるビットマップを作成します。

定義
Declare Function CreateCompatibleBitmap Lib "gdi32" _
   (hdc As HDC, _
    nWidth As Long, _
    nHeight As Long) As HBITMAP
hdc
デバイス コンテキストのハンドルを指定します。

nWidth
ビットマップの幅を指定します。

nHeight
ビットマップの高さを指定します。

戻り値

関数が成功すると、ビットマップのハンドルが返ります。失敗すると、NULL が返ります。

解説

nWidth、または nHeight パラメータのどちらかに 0 を指定した場合、1*1 のモノクロビットマップのハンドルが返ります。
ビットマップが不要になったときはDeleteObject関数を利用して破棄して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

DeleteObject関数


 Win32API: CreateDIBitmap

デバイス独立ビットマップ（DIB）からデバイス依存ビットマップ（DDB）を作成します。

定義
Declare Function CreateDIBitmap Lib "gdi32" _
         (hdc As HDC, _
    ByRef lpbmih As BITMAPINFOHEADER, _
          fdwInit As Long, _
          lpbInit As VoidPtr, _
    ByRef lpbmi As BITMAPINFO, _
          fuUsage As Long) As HBITMAP
hdc
デバイス コンテキストのハンドルを指定します。ここで指定するデバイス コンテキストと互換性のあるビットマップが作成されます。

lpbmih （ポインタ参照）
ビットマップの幅、高さ、形式などに関する情報が格納されている、BITMAPINFOHEADER構造体へのポインタを指定します。

fdwInit
CBM_INIT 定数を指定すると、lpbInit パラメータ、lpbmi パラメータの内容をもとにビットマップを初期化します。
0 を指定すると、初期化は行われません。

lpbInit
ビットマップの初期データが格納されているバッファへのポインタを指定します。データ形式はピクセルあたりのビット数により異なります。

lpbmi （ポインタ参照）
lpbInit パラメータが指す配列の大きさやカラー形式に関する情報が格納されている、BITMAPINFO構造体へのポインタを指定します。

fuUsage
lpbmi パラメータで指定した BITMAPINFO 構造体に含まれる bmiColors メンバの形式を、以下の定数から指定します。
定数 | 説明
DIB_PAL_COLORS | カラーテーブルは、現在の論理パレットへの 16 ビットのインデックスの配列です。
DIB_RGB_COLORS | カラーテーブルは、RGB 値そのものです。

戻り値

関数が成功すると、作成されたビットマップのハンドルが返ります。失敗すると、0 が返ります。

解説

ビットマップが不要になったときは、DeleteObject関数を使用してメモリから解放して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

BITMAPINFO構造体、BITMAPINFOHEADER構造体、DeleteObject関数


 Win32API: ExtFloodFill

指定した領域の境界線内を、選択されているブラシで塗りつぶします。

定義
Declare Function ExtFloodFill Lib "gdi32" _
   (hdc As HDC, _
    nXStart As Long, _
    nYStart As Long, _
    crColor As Long, _
    fuFillType As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

nXStart
塗りつぶしを開始する点の X 座標を指定します。

nYStart
塗りつぶしを開始する点の Y 座標を指定します。

crColor
境界線の色、または塗りつぶす領域の色を指定します。

fuFillType
定数 | 説明
FLOODFILLBORDER | crColor パラメータを境界線の色として、その内側を塗りつぶします。
FLOODFILLSURFACE | crColor パラメータを塗りつぶし領域の色とします。境界線の色が複数存在するときに指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll


 Win32API: GetBitmapBits

ビットマップのビット データを、指定したバッファにコピーします。

定義
Declare Function GetBitmapBits Lib "gdi32" _
   (hbmp As HBITMAP, _
    cbBuffer As Long, _
    lpvBits As VoidPtr) As Long
hbmp
ビットマップ ハンドルを指定します。

cbBuffer
lpvBits パラメータで指定するバッファのバイト数を指定します。

lpvBits
ビットマップ データを格納するためのバッファへのポインタを指定します。

戻り値

関数が成功すると、コピーされたデータのバイト数が返ります。失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

GetDIBits関数


 Win32API: GetDIBits

ビットマップのビット データを、指定した形式で指定したバッファにコピーします。

定義
Declare Function GetDIBits Lib "gdi32" _
         (hdc As HDC, _
          hbmp As HBITMAP, _
          uStartScan As DWord, _
          cScanLines As DWord, _
          lpvBits As VoidPtr, _
    ByRef lpbi As BITMAPINFO, _
          uUsage As DWord) As Long
hdc
デバイス コンテキストのハンドルを指定します。

hbmp
ビットマップ ハンドルを指定します。

uStartScan
取得する最初の走査行を指定します。

cScanLines
取得する走査行の数を指定します。

lpvBits
ビットマップ データを格納するためのバッファへのポインタを指定します。
NULL を指定すると、lpbi パラメータで指定する構造体にビットマップのサイズと形式が格納されます。

lpbi （ポインタ参照）
取得するビットマップの情報が格納されている、BITMAPINFO構造体へのポインタを指定します。

uUsage
lpbi パラメータで指定した BITMAPINFO 構造体の bmiColors メンバの形式を、以下の定数から指定します。
定数 | 説明
DIB_PAL_COLORS | カラーテーブルは、現在の論理パレットへの 16 ビットのインデックスの配列です。
DIB_RGB_COLORS | カラーテーブルは、RGB 値そのものです。

戻り値

lpvBits パラメータに NULL を指定しなかったときに関数が成功すると、取得した走査行の数が返ります。
Windows9x系OS: lpvBits パラメータに NULL を指定したときに関数が成功すると、ビットマップの走査行の数が返ります。
WindowsNT系OS: lpvBits パラメータに NULL を指定したときに関数が成功すると、1 が返ります。
関数が失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

SetDIBits関数、BITMAPINFO構造体


 Win32API: GetPixel

指定した座標の色を取得します。

定義
Declare Function GetPixel Lib "gdi32" _
   (hdc As HDC, _
    x As Long, _
    y As Long) As DWord
hdc
デバイス コンテキストのハンドルを指定します。

x
X 座標を指定します。

y
Y 座標を指定します。

戻り値

関数が成功すると、RGB 値が返ります。失敗すると、CLR_INVALID が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

SetPixel関数


 Win32API: GetStretchBltMode

指定したデバイス コンテキストで設定されている、伸縮モードを取得します。

定義
Declare Function GetStretchBltMode Lib "gdi32" _
   (hdc As HDC) As Long
hdc
デバイス コンテキストのハンドルを指定します。

戻り値

関数が成功すると、伸縮モードが以下の定数から返ります。失敗すると、0 が返ります。
定数 | 説明
BLACKONWHITE 、または STRETCH_ANDSCANS | 残す点の色と、取り除く点の色を、論理 AND 演算子で結合します。
COLORONCOLOR 、または STRETCH_DELETESCANS | ピクセルを削除します。
HALFTONE 、または STRETCH_HALFTONE | コピー元のピクセルをコピー先のピクセル ブロックに対応づけます。コピー先のブロックの平均的な色が、コピー元のピクセルの色に近い色になります。
WHITEONBLACK 、または STRETCH_ORSCANS | 残す点の色と、取り除く点の色を、論理 OR 演算子で結合します。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

SetStretchBltMode関数


 Win32API: PatBlt

指定したデバイス コンテキストで選択されているブラシで、指定した長方形領域を塗りつぶします。

定義
Declare Function PatBlt Lib "gdi32"
   (hdc As HDC, _
    nXLeft As Long, _
    nYLeft As Long, _
    nWidth As Long, _
    nHeight As Long, _
    dwRop As DWord) As Long
hdc
デバイス コンテキストのハンドルを指定します。

nXLeft
長方形領域の左上のX座標を指定します。

nYLeft
長方形領域の左上のY座標を指定します。

nWidth
長方形領域の幅を指定します。

nHeight
長方形領域の高さを指定します。

dwRop
ラスタオペレーションを指定します。以下に示す定数を利用して下さい。
定数 | 説明
BLACKNESS | 物理パレットのインデックス 0 に対応する色（デフォルトは黒）で、長方形を塗りつぶします。
DSTINVERT | 長方形内の色を反転します。
PATCOPY | パターンをそのまま長方形にコピーします。
PATINVERT | パターンの色と、長方形内の色を、XOR 演算で結合します。
WHITENESS | 物理パレットのインデックス 1 に対応する色（デフォルトは白）で、長方形を塗りつぶします。

戻り値

関数が成功すると TRUE が返ります。失敗すると FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll


 Win32API: PlgBlt

コピー元のデバイス コンテキストで選択されているビットマップを、コピー先デバイス コンテキストの平行四辺形領域に描画します。

定義
Declare Function PlgBlt Lib "gdi32" _
         (hdcDest As HDC, _
    ByRef lpPoint As POINTAPI, _
          hdcSrc As HDC, _
          nXSrc As Long, _
          nYSrc As Long, _
          nWidth As Long, _
          nHeight As Long, _
          hbmMask As HBITMAP, _
          xMask As Long, _
          yMask As Long) As Long
hdcDest
コピー先デバイス コンテキストのハンドルを指定します。

lpPoint （ポインタ参照）
コピー先領域となる、平行四辺形の頂点座標をPOINTAPI構造体の配列で指定します。
lpPoint(0) に左上隅の座標を指定します。
lpPoint(1) に右上隅の座標を指定します。
lpPoint(2) に左下隅の座標を指定します。
右下隅の座標は、上の3 点をもとに、必然的に決定されます。

hdcSrc
コピー元デバイス コンテキストのハンドルを指定します。

nXSrc
コピー元領域の左上隅の X 座標を指定します。

nYSrc
コピー元領域の左上隅の Y 座標を指定します。

nWidth
コピー元領域の幅を指定します。

nHeight
コピー元領域の高さを指定します。

hbmMask
転送元長方形の色をマスクするために使用するモノクロ ビットマップのハンドルを指定します。必要でないときは、NULL を指定します。

xMask
hbmMask パラメータで指定したマスク用ビットマップの左上隅の X 座標を指定します。

yMask
hbmMask パラメータで指定したマスク用ビットマップの左上隅の Y 座標を指定します。

戻り値

関数が成功すると TRUE が返ります。失敗すると FALSE が返ります。

解説

この関数を使用する前に、SetStretchBltMode関数を使用して伸縮モードを指定しておいて下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

BitBlt関数、SetStretchBltMode関数


 Win32API: SetDIBits

指定したデバイス独立ビットマップ（DIB）のデータを、指定したビットマップの内容に設定します。

定義
Declare Function SetDIBits Lib "gdi32" _
         (hdc As HDC, _
          hbmp As HBITMAP, _
          uStartScan As DWord, _
          cScanLines As DWord, _
          lpvBits As VoidPtr, _
    ByRef lpbmi As BITMAPINFO, _
          fuColorUse As DWord) As Long
hdc
デバイス コンテキストのハンドルを指定します。fuColorUse パラメータに DIB_PAL_COLORS フラグが設定されないときは、このパラメータは無視されます。

hbmp
ビットマップ ハンドルを指定します。

uStartScan
lpvBits パラメータで指定するビットマップ データの最初の走査行を指定します。

cScanLines
lpvBits パラメータで指定するビットマップ データの走査行の数を指定します。

lpvBits
DIB のピクセル データが格納されているバッファへのポインタを指定します。

lpbmi （ポインタ参照）
lpvBits パラメータで指定するビットマップに関する情報が格納されている、BITMAPINFO構造体へのポインタを指定します。

fuColorUse
lpbmi パラメータで指定した BITMAPINFO 構造体の bmiColors メンバの形式を、以下の定数から指定します。
定数 | 説明
DIB_PAL_COLORS | カラーテーブルは、hdc パラメータが示すデバイス コンテキストの論理パレットへの 16 ビットのインデックスの配列です。
DIB_RGB_COLORS | カラーテーブルは、RGB 値そのものです。

戻り値

関数が成功すると、コピーした走査行の数が返ります。失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

GetDIBits関数、BITMAPINFO構造体


 Win32API: SetPixel

指定した座標の色を設定します。

定義
Declare Function SetPixel Lib "gdi32" _
   (hdc As HDC, _
    x As Long, _
    y As Long, _
    crColor As DWord) As DWord
hdc
デバイス コンテキストのハンドルを指定します。

x
X 座標を指定します。

y
Y 座標を指定します。

crColor
ピクセルの色を RGB 値で指定します。

戻り値

関数が成功すると、描画に使用した色が RGB 値で返ります。失敗すると、CLR_INVALID が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

GetPixel関数、RGBAPI関数


 Win32API: SetStretchBltMode

指定したデバイス コンテキストの伸縮モードを変更します。

定義
Declare Function SetStretchBltMode Lib "gdi32" _
   (hdc As HDC, _
    iStretchMode As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

iStretchMode
伸縮モードを、以下の定数から指定します。
定数 | 説明
BLACKONWHITE 、または STRETCH_ANDSCANS | 残す点の色と、取り除く点の色を、論理 AND 演算子で結合します。
COLORONCOLOR 、または STRETCH_DELETESCANS | ピクセルを削除します。
HALFTONE 、または STRETCH_HALFTONE | コピー元のピクセルをコピー先のピクセル ブロックに対応づけます。コピー先のブロックの平均的な色が、コピー元のピクセルの色に近い色になります。
WHITEONBLACK 、または STRETCH_ORSCANS | 残す点の色と、取り除く点の色を、論理 OR 演算子で結合します。

戻り値

関数が成功すると、以前の伸縮モードが返ります。失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

GetStretchBltMode関数


 Win32API: StretchBlt

コピー元のデバイス コンテキストで選択されているビットマップを、コピー先のデバイス コンテキストに拡大、または縮小コピーします。

定義
Declare Function StretchBlt Lib "gdi32" _
   (hdcDest As HDC, _
    nXOriginDest As Long, _
    nYOriginDest As Long, _
    nWidthDest As Long, _
    nHeightDest As Long, _
    hdcSrc As HDC, _
    nXOriginSrc As Long, _
    nYOriginSrc As Long, _
    nWidthSrc As Long, _
    nHeightSrc As Long, _
    dwRop As DWord) As Long
hdcDest
コピー先デバイス コンテキストのハンドルを指定します。

nXOriginDest
コピー先長方形領域の左上隅の X 座標を指定します。

nYOriginDest
コピー先長方形領域の左上隅の Y 座標を指定します。

nWidthDest
コピー先長方形領域の幅を指定します。

nHeightDest
コピー先長方形領域の高さを指定します。

hdcSrc
コピー元デバイス コンテキストのハンドルを指定します。

nXOriginSrc
コピー元長方形領域の左上隅の X 座標を指定します。

nYOriginSrc
コピー元長方形領域の左上隅の Y 座標を指定します。

nWidthSrc
コピー元長方形領域の幅を指定します。

nHeightSrc
コピー元長方形領域の高さを指定します。

dwRop
ラスタオペレーションを以下の定数から指定します。
定数 | 説明
BLACKNESS | 物理パレットのインデックス 0 に対応する色（デフォルトは黒）で、コピー先の長方形を塗りつぶします。
DSTINVERT | コピー先長方形の色を反転します。
MERGECOPY | コピー元の色と、コピー先の色を、AND 演算で結合します。
MERGEPAINT | コピー元の色を反転した色と、コピー先の色を、OR 演算で結合します。
NOTSRCCOPY | コピー元の色を反転して、コピー先にコピーします。
NOTSRCERASE | コピー元の色と、コピー先の色を、OR 演算したものを、さらに反転します。
PATCOPY | コピー元で選択されているパターンを、コピー先にコピーします。
PATINVERT | コピー元で選択されているパターンの色と、コピー先の色を、XOR 演算で結合します。
PATPAINT | コピー元で選択されているパターンの色と、コピー先の色を反転した色を、OR 演算で結合し、さらにその結果を、コピー先の色と OR 演算で結合します。
SRCAND | コピー元の色と、コピー先の色を、AND 演算で結合します。
SRCCOPY | コピー元の色を、コピー先にそのままコピーします。
SRCERASE | コピー元の色と、コピー先の色を反転した色を、AND 演算で結合します。
SRCINVERT | コピー元の色と、コピー先の色を、XOR 演算で結合します。
SRCPAINT | コピー元の色と、コピー先の色を、OR 演算で結合します。
WHITENESS | 物理パレットのインデックス 1 に対応する色（デフォルトは白）で、コピー先の長方形を塗りつぶします。

戻り値

関数が成功すると TRUE が返ります。失敗すると FALSE が返ります。

解説

この関数を使用する前に、SetStretchBltMode関数を使用して伸縮モードを指定しておいて下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

BitBlt関数、SetStretchBltMode関数


 Win32API: StretchDIBits

指定したデバイス独立ビットマップ（DIB）のデータを、指定したデバイス コンテキストに描画します。描画の際にビットマップを拡大、縮小することができます。

定義
Declare Function StretchDIBits Lib "gdi32" _
         (hdc As HDC, _
          XDest As Long, _
          YDest As Long, _
          nDestWidth As Long, _
          nDestHeight As Long, _
          XSrc As Long, _
          YSrc As Long, _
          nSrcWidth As Long, _
          nSrcHeight As Long, _
          lpBits As VoidPtr, _
    ByRef lpBitsInfo As BITMAPINFO, _
          iUsage As Long, _
          dwRop As DWord) As Long
hdc
デバイス コンテキストのハンドルを指定します。

XDest
コピー先長方形領域の左上隅の X 座標を指定します。

YDest
コピー先長方形領域の左上隅の Y 座標を指定します。

nDestWidth
コピー先長方形領域の幅を指定します。

nDestHeight
コピー先長方形領域の高さを指定します。

XSrc
コピー元長方形領域の左上隅の X 座標を指定します。

YSrc
コピー元長方形領域の左上隅の Y 座標を指定します。

nSrcWidth
コピー元長方形領域の幅を指定します。

nSrcHeight
コピー元長方形領域の高さを指定します。

lpBits
DIB のビットデータが格納されているバッファへのポインタを指定します。

lpBitsInfo （ポインタ参照）
lpBits パラメータで指定したビットマップに関する情報が格納されている、BITMAPINFO構造体へのポインタを指定します。

iUsage
lpBitsInfo パラメータで指定した BITMAPINFO 構造体の bmiColors メンバの形式を、以下の定数から指定します。
定数 | 説明
DIB_PAL_COLORS | カラーテーブルは、現在の論理パレットへの 16 ビットのインデックスの配列です。
DIB_RGB_COLORS | カラーテーブルは、RGB 値そのものです。

dwRop
ラスタオペレーションを以下の定数から指定します。
定数 | 説明
BLACKNESS | 物理パレットのインデックス 0 に対応する色（デフォルトは黒）で、コピー先の長方形を塗りつぶします。
DSTINVERT | コピー先長方形の色を反転します。
MERGECOPY | コピー元の色と、コピー先の色を、AND 演算で結合します。
MERGEPAINT | コピー元の色を反転した色と、コピー先の色を、OR 演算で結合します。
NOTSRCCOPY | コピー元の色を反転して、コピー先にコピーします。
NOTSRCERASE | コピー元の色と、コピー先の色を、OR 演算したものを、さらに反転します。
PATCOPY | コピー元で選択されているパターンを、コピー先にコピーします。
PATINVERT | コピー元で選択されているパターンの色と、コピー先の色を、XOR 演算で結合します。
PATPAINT | コピー元で選択されているパターンの色と、コピー先の色を反転した色を、OR 演算で結合し、さらにその結果を、コピー先の色と OR 演算で結合します。
SRCAND | コピー元の色と、コピー先の色を、AND 演算で結合します。
SRCCOPY | コピー元の色を、コピー先にそのままコピーします。
SRCERASE | コピー元の色と、コピー先の色を反転した色を、AND 演算で結合します。
SRCINVERT | コピー元の色と、コピー先の色を、XOR 演算で結合します。
SRCPAINT | コピー元の色と、コピー先の色を、OR 演算で結合します。
WHITENESS | 物理パレットのインデックス 1 に対応する色（デフォルトは白）で、コピー先の長方形を塗りつぶします。

戻り値

関数が成功すると、コピーした走査行の数が返ります。失敗すると、GDI_ERROR が返ります。

戻り値

この関数を使用する前に、SetStretchBltMode関数を使用して伸縮モードを指定しておいて下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

SetStretchBltMode関数、BITMAPINFO構造体


 構造体: BITMAP

ビットマップの高さ、幅、色、およびビット値を格納します。

定義
Type BITMAP
    bmType As Long
    bmWidth As Long
    bmHeight As Long
    bmWidthBytes As Long
    bmPlanes As Integer
    bmBitsPixel As Integer
    bmBits As Long
End Type
bmType
ビットマップ タイプを指定します。必ず、0 を指定して下さい。

bmWidth
ビットマップの幅を指定します。

bmHeight
ビットマップの高さを指定します。

bmWidthBytes
1 走査線あたりのバイト数を指定します。

bmPlanes
カラープレーンを指定します。このメンバは、通常は 1 です。

bmBitsPixel
1 ピクセルを定義するのに必要なビット数を指定します。

bmBits
ビット データが格納されているの配列へのポインタを指定します。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み


 構造体: BITMAPINFO

ビットマップのヘッダ情報と、パレット データを格納します。

定義
Type BITMAPINFO
    bmiHeader As BITMAPINFOHEADER
    bmpColors(255) As RGBQUAD
End Type
bmiHeader
BITMAPINFOHEADER構造体へのポインタを指定します。

bmpColors(255)
1 ピクセルあたりのビット数が 1、4、8 ビットのときは、カラー パレットの各色を格納します。
1 ピクセルあたりのビット数が 16、32 ビットのときは、カラー マスクを指定します。
1 ピクセルあたりのビット数が 24 ビットのときは、無視されます。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み

BITMAPINFOHEADER構造体


 構造体: BITMAPINFOHEADER

デバイス独立ビットマップ（DIB）に関する情報を格納します。

定義
Type BITMAPINFOHEADER
    biSize As Long
    biWidth As Long
    biHeight As Long
    biPlanes As Integer
    biBitCount As Integer
    biCompression As Long
    biSizeImage As Long
    biXPelsPerMeter As Long
    biYPelsPerMeter As Long
    biClrUsed As Long
    biClrImportant As Long
End Type
biSize
構造体のバイト数を指定します。

biWidth
ビットマップの幅を、ピクセル単位で指定します。

biHeight
ビットマップの高さを、ピクセル単位で指定します。

biPlanes
面の数として、1 を指定して下さい。

biBitCount
1 ピクセルあたりのビット数を指定します。以下に、ビット数とそれに伴う色識別数を示します。
定数 | 説明
0 | JPEG、PENの画像を扱うときに指定します（Windows98以降、Windows2000以降のOSのみ）。
1 | モノクロ ビットマップです。ビットデータがそのままピクセルの色（0:黒、1:白）になります。
4 | 最大で16色を表現できるビットマップです。1 バイトで 2 ピクセルの色を指定します。
8 | 最大で256色を表現できるビットマップです。1 バイトで 1 ピクセルの色を指定します。
16 | 最大で、65536色を表現できるビットマップです。2 バイトで 1 ピクセルの色を指定します。
24 | フルカラー ビットマップです。3 バイトで 1 ピクセルの色を指定します。
32 | フルカラー ビットマップです。4 バイトで 1 ピクセルの色を指定します。最上位バイトは使用されません。

biCompression
下から上に表示される DIB に対して、圧縮の種類を指定します。上から下に表示される DIB は圧縮することができません。
定数 | 説明
BI_RGB | 圧縮しません。
BI_RLE8 | 8 ビットのビットマップをRLE圧縮します。
BI_RLE4 | 4 ビットのビットマップをRLE圧縮します。
BI_BITFIELDS | 圧縮しません。カラーテーブルは、赤、緑、青の成分を取り出すための 32 ビットのマスクです。16、32 ビットのビットマップに使用される場合に有効です。
BI_JPEG | JPEG イメージです（Windows98以降、Windows2000以降のOSのみ）。
BI_PNG | PNG イメージです（Windows98以降、Windows2000以降のOSのみ）。

biSizeImage
イメージ バッファのバイト数を指定します。

biXPelsPerMeter
水平方向の解像度を ピクセル／メートル で指定します。

biYPelsPerMeter
垂直方向の解像度を ピクセル／メートル で指定します。

biClrUsed
ビットマップを表示するための色数を指定します。

biClrImportant
ビットマップを表示するための重要な色数を指定します。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み

BITMAPINFO構造体


 Win32API: CreateBrushIndirect

LOGBRUSH構造体の内容をもとに、論理ブラシを作成します。

定義
Declare Function CreateBrushIndirect Lib "gdi32" _
   (ByRef lplb As LOGBRUSH) As HBRUSH
lplb （ポインタ参照）
作成するブラシに関する情報が格納されている、LOGBRUSH構造体へのポインタを指定します。

戻り値

関数が成功すると、作成された論理ブラシのハンドルが返ります。失敗すると、0 が返ります。

解説

ブラシが不要になったら、DeleteObject関数を使用してメモリから解放して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

LOGBRUSH構造体、CreateSolidBrush関数、CreateHatchBrush関数、CreateDIBPatternBrushPt関数、CreatePatternBrush関数


 Win32API: CreateDIBPatternBrushPt

指定したビットマップ（DIB）パターンを持つ、論理ブラシを作成します。

定義
Declare Function CreateDIBPatternBrushPt Lib "gdi32" _
   (lpPackedDIB As VoidPtr, _
    iUsage As Long) As HBRUSH
lpPackedDIB
BITMAP構造体とそれに続くピクセル データへのポインタを指定します。

iUsage
BITMAP構造体の bmiColors メンバを設定したかどうかを指定します。設定した場合は、次の定数のいずれかを指定します。
定数 | 説明
DIB_PAL_COLORS | カラーテーブルは、ブラシが選択されるデバイス コンテキストの論理パレットに対する、16 ビットのインデックスの配列です。
DIB_RGB_COLORS | カラーテーブルは、RGB 値そのものです。

戻り値

関数が成功すると、作成された論理ブラシのハンドルが返ります。失敗すると、0 が返ります。

解説

Windows9x系OSでは、8 × 8 ピクセル以上のビットマップ パターンを扱うことはできません。
ブラシが不要になったら、DeleteObject関数を使用してメモリから解放して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

CreateBrushIndirect関数、CreatePatternBrush関数


 Win32API: CreateHatchBrush

指定した色とハッチ スタイルを持つ、論理ブラシを作成します。

定義
Declare Function CreateHatchBrush Lib "gdi32" _
   (fnStyle As Long, _
    clrref As DWord) As HBRUSH
fnStyle
ハッチ スタイルを、以下の定数から指定します。
定数 | 説明
HS_BDIAGONAL | 左下から右上への 45 度のハッチ
HS_CROSS | 水平、垂直の格子状のハッチ
HS_DIAGCROSS | 45 度の格子状のハッチ
HS_FDIAGONAL | 左上から右下への 45 度のハッチ
HS_HORIZONTAL | 水平のハッチ
HS_VERTICAL | 垂直のハッチ

clrref
ハッチの前景色を指定します。

戻り値

関数が成功すると、作成された論理ブラシのハンドルが返ります。失敗すると、0 が返ります。

解説

ブラシが不要になったら、DeleteObject関数を使用してメモリから解放して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

CreateBrushIndirect関数、CreateSolidBrush関数


 Win32API: CreatePatternBrush

指定したビットマップ パターンを持つ、論理ブラシを作成します。

定義
Declare Function CreatePatternBrush Lib "gdi32" _
   (hbmp As HBITMAP) As HBRUSH
hbmp
ビットマップ ハンドルを指定します。

戻り値

関数が成功すると、作成された論理ブラシのハンドルが返ります。失敗すると、0 が返ります。

解説

Windows9x系OSでは、8 × 8 ピクセル以上のビットマップ パターンを扱うことはできません。
ブラシが不要になったら、DeleteObject関数を使用してメモリから解放して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

CreateBrushIndirect関数、CreateDIBPatternBrushPt関数


 Win32API: CreateSolidBrush

指定した色の論理ブラシを作成します。

定義
Declare Function CreateSolidBrush Lib "gdi32" _
   (crColor As DWord) As HBRUSH
crColor
ブラシの色を指定します。

戻り値

関数が成功すると、作成された論理ブラシのハンドルが返ります。失敗すると、0 が返ります。

解説

ブラシが不要になったら、DeleteObject関数を使用してメモリから解放して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

CreateBrushIndirect関数、CreateHatchBrush関数


 Win32API: GetBrushOrgEx

指定したデバイス コンテキストで選択されているブラシのパターンの原点を取得します。

定義
Declare Function GetBrushOrgEx Lib "gdi32" _
         (hdc As HDC, _
    ByRef lppt As POINTAPI) As Long
hdc
デバイス コンテキストのハンドルを指定します。

lppt （ポインタ参照）
POINTAPI構造体へのポインタを指定します。この構造体に、原点の座標が格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

SetBrushOrgEx関数


 Win32API: GetSysColorBrush

システムで使用されている色のブラシを取得します。

定義
Declare Function GetSysColorBrush Lib "user32" _
   (nIndex As Long) As HBRUSH
nIndex
取得するブラシの色を、以下の定数から指定します。
定数 | 説明
COLOR_3DDKSHADOW | 3D オブジェクトの暗い影の色
COLOR_3DFACE 、または COLOR_BTNFACE | 3D オブジェクトの表面色
COLOR_3DHILIGHT、 COLOR_3DHIGHLIGHT、 COLOR_BTNHILIGHT、 COLOR_BTNHIGHLIGHT | 3D オブジェクトの最も明るい色（光源方向の縁用）
COLOR_3DLIGHT | 3D オブジェクトの明るい色（光源方向の縁用）
COLOR_3DSHADOW 、または COLOR_BTNSHADOW | 3D オブジェクトの影の色（光源の反対方向の縁用）
COLOR_ACTIVEBORDER | アクティブウィンドウの境界の色
COLOR_ACTIVECAPTION | アクティブウィンドウのタイトルバーの色
COLOR_APPWORKSPACE | MDI アプリケーションの背景色
COLOR_BACKGROUND 、または COLOR_DESKTOP | デスクトップの色
COLOR_BTNTEXT | プッシュボタンのテキストの色
COLOR_CAPTIONTEXT | アクティブウィンドウのタイトルバーのテキストの色
COLOR_GRAYTEXT | 淡色状態（無効状態）のテキストの色
COLOR_HIGHLIGHT | コントロール内における選択された項目の色
COLOR_HIGHLIGHTTEXT | コントロール内における選択された項目のテキストの色
COLOR_INACTIVEBORDER | 非アクティブウィンドウの境界色
COLOR_INACTIVECAPTION | 非アクティブウィンドウのタイトルバーのテキストの色
COLOR_INFOBK | ツールチップコントロールの背景色
COLOR_INFOTEXT | ツールチップコントロールのテキストの色
COLOR_MENU | メニューの背景色
COLOR_MENUTEXT | メニュー内のテキストの色
COLOR_SCROLLBAR | スクロールバーの軸の色
COLOR_WINDOW | ウィンドウの背景色
COLOR_WINDOWFRAME | ウィンドウの枠の色
COLOR_WINDOWTEXT | ウィンドウ内のテキストの色

戻り値

関数が成功すると、作成された論理ブラシのハンドルが返ります。失敗すると、0 が返ります。

解説

この関数で取得したブラシは破棄しないで下さい。また、ウィンドウ クラスのブラシに割り当てないで下さい。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetSysColor関数


 Win32API: SetBrushOrgEx

指定したデバイス コンテキストで選択されているブラシのパターンの原点を指定します。

定義
Declare Function SetBrushOrgEx Lib "gdi32" _
         (hdc As HDC, _
          nXOrg As Long, _
          nYOrg As Long, _
    ByRef lppt As POINTAPI) As Long
hdc
デバイス コンテキストのハンドルを指定します。

nXOrg
新しい原点の X 座標を指定します。

nYOrg
新しい原点の Y 座標を指定します。

lppt （ポインタ参照）
POINTAPI構造体へのポインタを指定します。この構造体に、以前の原点の座標が格納されます。
不要な場合は、NULL を指定することができます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

GetBrushOrgEx関数


 構造体: LOGBRUSH

論理ブラシのスタイル、色、パターンを定義します。

定義
Type LOGBRUSH
    lbStyle As Long
    lbColor As Long
    lbHatch As Long
End Type
lbStyle
ブラシのスタイルを、以下の定数から指定します。
定数 | 説明
BS_DIBPATTERN | デバイスに依存しないビットマップ（DIB）仕様で定義されるパターン ブラシです。lbHatch メンバはパックされた DIB のハンドルを保持します。
BS_DIBPATTERNPT | デバイスに依存しないビットマップ（DIB）仕様で定義されるパターン ブラシです。lbHatch メンバはパックされた DIB へのポインタを保持します。
BS_HATCHED | ハッチ ブラシです。
BS_HOLLOW、または BS_NULL | 透明ブラシです。
BS_PATTERN | メモリ ビットマップで定義されるパターン ブラシです。
BS_SOLID | 純色のブラシです。

lbColor
ブラシの色を指定します。

lbHatch
lbStyle メンバに BS_DIBPATTERN が指定されているときは、DIB へのハンドルを指定します。
lbStyle メンバに BS_DIBPATTERNPT が指定されているときは、DIB へのポインタを指定します。
lbStyle メンバに BS_HATCHED が指定されているときは、ハッチ スタイルを、以下の定数から指定します。
定数 | 説明
HS_BDIAGONAL | 左下から右上への 45 度のハッチ
HS_CROSS | 水平、垂直の格子状のハッチ
HS_DIAGCROSS | 45 度の格子状のハッチ
HS_FDIAGONAL | 左上から右下への 45 度のハッチ
HS_HORIZONTAL | 水平のハッチ
HS_VERTICAL | 垂直のハッチ

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み

CreateBrushIndirect関数


 Win32API: ExcludeClipRect

指定したデバイス コンテキストのクリッピング領域から、指定した長方形領域を取り除きます。

定義
Declare Function ExcludeClipRect Lib "gdi32" _
   (hdc As HDC, _
   (nLeftRect As Long, _
    nTopRect As Long, _
    nRightRect As Long, _
    nBottomRect As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

nLeftRect
長方形の左上隅の X 座標を指定します。

nTopRect
長方形の左上隅の Y 座標を指定します。

nRightRect
長方形の右下隅の X 座標を指定します。

nBottomRect
長方形の右下隅の Y 座標を指定します。

戻り値

関数が成功すると、新しいクリッピング領域の複雑度が、以下の定数から返ります。失敗すると、0 が返ります。
定数 | 説明
SIMPLEREGION | リージョンは長方形です。
COMPLEXREGION | リージョンは長方形よりも複雑な形です。
NULLREGION | リージョンは空です。

解説

指定した長方形の右辺と下辺は、クリッピング領域から除かれません。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

IntersectClipRect関数


 Win32API: ExtSelectClipRgn

指定したデバイス コンテキストのクリッピング領域と、指定したリージョンを結合します。

定義
Declare Function ExtSelectClipRgn Lib "gdi32" _
   (hdc As HDC, _
    hRgn As HRGN, _
    fnMode As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

hRgn
リージョン ハンドルを指定します。クリッピング領域を削除するときは、NULL を指定します。

fnMode
結合方法を、以下の定数から指定します。
定数 | 説明
RGN_AND | 現在のクリッピング領域と、hRgn パラメータで指定したリージョンが重なり合う領域を、新しいクリッピング領域にします。
RGN_COPY | hRgn パラメータで指定したリージョンをコピーした領域を、新しいクリッピング領域にします（SelectClipRgn関数と同じ動作をします）。
RGN_DIFF | 現在のクリッピング領域から、hRgn パラメータで指定したリージョンを除いた領域を、新しいクリッピング領域にします。
RGN_OR | 現在のクリッピング領域と、hRgn パラメータで指定したリージョンを組み合わせた領域を、新しいクリッピング領域にします。
RGN_XOR | 現在のクリッピング領域と、hRgn パラメータで指定したリージョンを組み合わせた領域から、その 2 つの領域が重なり合う領域を除いた領域を、新しいクリッピング領域にします。

戻り値

関数が成功すると、新しいクリッピング領域の複雑度が、以下の定数から返ります。失敗すると、0 が返ります。
定数 | 説明
SIMPLEREGION | クリッピング領域は長方形です。
COMPLEXREGION | クリッピング領域は長方形よりも複雑な形です。
NULLREGION | クリッピング領域は空です。

解説

この関数は、指定されたリージョンをコピーして使用します。呼び出し後も指定したリージョンは有効です。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

SelectClipRgn関数


 Win32API: GetClipBox

指定したデバイス コンテキストのクリッピング領域を含む、最も小さい長方形（境界長方形）の座標を取得します。

定義
Declare Function GetClipBox Lib "gdi32" _
         (hdc As HDC, _
    ByRef lpRect As RECT) As Long
hdc
デバイス コンテキストのハンドルを指定します。

lpRect （ポインタ参照）
RECT構造体へのポインタを指定します。この構造体に、クリッピング領域を含む、最も小さい長方形の、左上隅および右上隅の座標が格納されます。

戻り値

関数が成功すると、クリッピング領域の複雑度が以下の定数から返ります。失敗すると、0 が返ります。
定数 | 説明
SIMPLEREGION | クリッピング領域は単一の長方形です。
COMPLEXREGION | クリッピング領域は単一の長方形より複雑な形です。
NULLREGION | クリッピング領域は空です。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

RECT構造体


 Win32API: GetClipRgn

指定したデバイス コンテキストのクリッピング領域を、指定したリージョンにコピーします。

定義
Declare Function GetClipRgn Lib "gdi32" _
   (hdc As HDC, _
    hRgn As HRGN) As Long
hdc
デバイス コンテキストのハンドルを指定します。

hRgn
既存のリージョン ハンドルを指定します。ここで指定したリージョンに、現在のクリッピング領域がコピーされます。

戻り値

クリッピング領域が存在し、その取得に成功すると、TRUE が返ります。それ以外の場合は、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll


 Win32API: IntersectClipRect

指定したデバイス コンテキストのクリッピング領域と、指定した長方形が重なる部分を、新しいクリッピング領域にします。

定義
Declare Function IntersectClipRect Lib "gdi32" _
   (hdc As HDC, _
   (nLeftRect As Long, _
    nTopRect As Long, _
    nRightRect As Long, _
    nBottomRect As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

nLeftRect
長方形の左上隅の X 座標を指定します。

nTopRect
長方形の左上隅の Y 座標を指定します。

nRightRect
長方形の右下隅の X 座標を指定します。

nBottomRect
長方形の右下隅の Y 座標を指定します。

戻り値

関数が成功すると、新しいクリッピング領域の複雑度が、以下の定数から返ります。失敗すると、0 が返ります。
定数 | 説明
SIMPLEREGION | リージョンは長方形です。
COMPLEXREGION | リージョンは長方形よりも複雑な形です。
NULLREGION | リージョンは空です。

解説

指定した長方形の右辺と下辺は、クリッピング領域から除かれます。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

ExcludeClipRect関数


 Win32API: OffsetClipRgn

指定したデバイス コンテキストのクリッピング領域を、指定したオフセットの値だけ移動します。

定義
Declare Function OffsetClipRgn Lib "gdi32" _
   (hdc As HDC, _
    nXOffset As Long, _
    nYOffset As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

nXOffset
X 座標方向のオフセットを指定します。この値が 0 以上のときは右に、0 以下のときは左に移動します。

nYOffset
Y 座標方向のオフセットを指定します。この値が 0 以上のときは下に、0 以下のときは上に移動します。

戻り値

関数が成功すると、リージョンの複雑度が以下の定数から返ります。失敗すると、0 が返ります。
定数 | 説明
SIMPLEREGION | クリッピング領域は単一の長方形です。
COMPLEXREGION | クリッピング領域は単一の長方形より複雑な形です。
NULLREGION | クリッピング領域は空です。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll


 Win32API: PtVisible

指定した座標が、指定したデバイス コンテキストのクリッピング領域内にあるかどうかを調べます。

定義
Declare Function PtVisible Lib "gdi32" _
   (hdc As HDC, _
    x As Long, _
    y As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

x
調査する点の X 座標を、論理座標で指定します。

y
調査する点の Y 座標を、論理座標で指定します。

戻り値

指定した点がクリッピング領域内にある場合は、TRUE が返ります。それ以外の場合は、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

RectVisible関数


 Win32API: RectVisible

指定した長方形が、指定したデバイス コンテキストのクリッピング領域内にあるかどうかを調べます。

定義
Declare Function RectVisible Lib "gdi32" _
         (hdc As HDC, _
    ByRef lpRect As RECT) As Long
hdc
デバイス コンテキストのハンドルを指定します。

lpRect （ポインタ参照）
調査する長方形の左上隅および右下隅の座標が格納されている、RECT構造体へのポインタを指定します。

戻り値

指定した長方形がクリッピング領域内にある場合は、TRUE が返ります。それ以外の場合は、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

PtVisible関数


 Win32API: SelectClipPath

指定したデバイス コンテキストのクリッピング領域とパスを結合します。

定義
Declare Function SelectClipPath Lib "gdi32" _
   (hdc As HDC, _
    iMode As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

iMode
結合方法を、以下の定数から指定します。
定数 | 説明
RGN_AND | 現在のクリッピング領域と、現在のパスが重なり合う領域を、新しいクリッピング領域にします。
RGN_COPY | 現在のパスを、新しいクリッピング領域にします。
RGN_DIFF | 現在のクリッピング領域から、現在のパスを除いた領域を、新しいクリッピング領域にします。
RGN_OR | 現在のクリッピング領域と、現在のパスを組み合わせた領域を、新しいクリッピング領域にします。
RGN_XOR | 現在のクリッピング領域と、現在のパスを組み合わせた領域から、その 2 つの領域が重なり合う領域を除いた領域を、新しいクリッピング領域にします。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

hDC パラメータで指定したデバイス コンテキストは、クローズされているパスを持っていなければなりません。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

BeginPath関数、EndPath関数


 Win32API: SelectClipRgn

指定したリージョンを、指定したデバイス コンテキストのクリッピング領域として設定します。

定義
Declare Function SelectClipRgn Lib "gdi32" _
   (hdc As HDC, _
    hRgn As HRGN) As Long
hdc
デバイス コンテキストのハンドルを指定します。

hRgn
リージョン ハンドルを指定します。クリッピング領域を削除するときは、NULL を指定します。

戻り値

関数が成功すると、新しいクリッピング領域の複雑度が、以下の定数から返ります。失敗すると、0 が返ります。
定数 | 説明
SIMPLEREGION | リージョンは長方形です。
COMPLEXREGION | リージョンは長方形よりも複雑な形です。
NULLREGION | リージョンは空です。

解説

この関数は、指定されたリージョンをコピーして使用します。呼び出し後も指定したリージョンは有効です。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

ExtSelectClipRgn関数


 Win32API: ClientToScreen

指定したウィンドウのクライアント座標を、スクリーン座標に変換します。

定義
Declare Function ClientToScreen Lib "user32" _
         (hWnd As HWND, _
    ByRef lpPoint As POINTAPI) As Long
hWnd
ウィンドウ ハンドルを指定します。

lpPoint （ポインタ参照）
クライアント座標が格納されている、POINTAPI構造体へのポインタを指定します。
関数が成功すると、この構造体にスクリーン座標が格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

ScreenToClient関数、POINTAPI構造体


 Win32API: DPtoLP

デバイス座標で指定された座標を、論理座標に変換します。

定義
Declare Function DPtoLP Lib "gdi32" _
         (hdc As HDC, _
    ByRef lpPoints As POINTAPI, _
          nCount As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

lpPoints （ポインタ参照）
変換するデバイス座標が格納されている、POINTAPI構造体配列へのポインタを指定します。
関数が成功すると、この構造体配列に変換結果の論理座標が格納されます。

nCount
lpPoints パラメータで指定した配列の要素数を指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

LPtoDP関数、POINTAPI構造体


 Win32API: GetCurrentPositionEx

指定したデバイス コンテキストのカレント ポジションを取得します。

定義
Declare Function GetCurrentPositionEx Lib "gdi32" _
         (hdc As HDC, _
    ByRef lpPoint As POINTAPI) As Long
hdc
デバイス コンテキストのハンドルを指定します。

lpPoint （ポインタ参照）
POINTAPI構造体へのポインタを指定します。この構造体に、カレント ポジションが論理座標で格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

MoveToEx関数


 Win32API: GetMapMode

指定したデバイス コンテキストのマッピング モードを取得します。

定義
Declare Function GetMapMode Lib "gdi32" _
   (hdc As HDC) As Long
hdc
デバイス コンテキストのハンドルを指定します。

戻り値

関数が成功すると、マッピング モードが以下の定数から返ります。失敗すると、0 が返ります。
定数 | 説明
MM_ANISOTROPIC | 論理単位は、任意にスケーリングされた軸上の任意の単位にマップされます。単位、向き、スケーリングを指定するには、SetWindowExtEx関数とSetViewportExtEx関数を使用します。
MM_HIENGLISH | 各論理単位は、0.001 インチにマップされます。x の値は右に、y の値は上に向かって増加します。
MM_HIMETRIC | 各論理単位は、0.01 ミリメートルにマップされます。x の値は右に、y の値は上に向かって増加します。
MM_ISOTROPIC | 論理単位は、等しくスケーリングされた軸上の任意の単位にマップされます。X 軸方向の 1 単位は、Y 軸方向の 1 単位と同じになります。単位と向きを指定するには、SetWindowExtEx関数とSetViewportExtEx関数を使います。GDI は、必要に応じて、x 単位と y 単位のサイズが同一になるように調整を行います。
MM_LOENGLISH | 各論理単位は、0.01 インチにマップされます。x の値は右に、y の値は上に向かって増加します。
MM_LOMETRIC | 各論理単位は、0.1 ミリにマップされます。x の値は右に、y の値は上に向かって増加します。
MM_TEXT | 各論理単位は、1 デバイスピクセルにマップされます。x の値は右に、y の値は下に向かって増加します。
MM_TWIPS | 各論理単位は、ポイント数の 20 分の 1（1/1440 インチ、"twip" とも呼ばれます）にマップされます。x の値は右に、y の値は上に向かって増加します。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

SetMapMode関数


 Win32API: GetViewportExtEx

指定したデバイス コンテキストのビューポート範囲を取得します。

定義
Declare Function GetViewportExtEx Lib "gdi32" _
         (hdc As HDC, _
    ByRef lpSize As SIZE) As Long
hdc
デバイス コンテキストのハンドルを指定します。

lpSize （ポインタ参照）
SIZE構造体へのポインタを指定します。この構造体に、ビューポートの範囲がデバイス単位で格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

SetViewportExtEx関数、SIZE構造体


 Win32API: GetViewportOrgEx

指定したデバイス コンテキストのビューポートの原点を取得します。

定義
Declare Function GetViewportOrgEx Lib "gdi32" _
         (hdc As HDC, _
    ByRef lpPoint As POINTAPI) As Long
hdc
デバイス コンテキストのハンドルを指定します。

lpPoint （ポインタ参照）
POINTAPI構造体へのポインタを指定します。この構造体に、ビューポートの原点座標が格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

SetViewportOrgEx関数、POINTAPI構造体


 Win32API: GetWindowExtEx

指定したデバイス コンテキストのウィンドウ範囲を取得します。

定義
Declare Function GetWindowExtEx Lib "gdi32" _
         (hdc As HDC, _
    ByRef lpSize As SIZE) As Long
hdc
デバイス コンテキストのハンドルを指定します。

lpSize （ポインタ参照）
SIZE構造体へのポインタを指定します。この構造体に、ウィンドウ範囲がページ座標単位で格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

SetWindowExtEx関数、SIZE構造体


 Win32API: GetWindowOrgEx

指定したデバイス コンテキストのウィンドウ原点を取得します。

定義
Declare Function GetWindowOrgEx Lib "gdi32" _
         (hdc As HDC, _
    ByRef lpPoint As POINTAPI) As Long
hdc
デバイス コンテキストのハンドルを指定します。

lpPoint （ポインタ参照）
POINTAPI構造体へのポインタを指定します。この構造体に、ウィンドウ原点の座標がページ座標単位で格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

SetWindowOrgEx関数、POINTAPI構造体


 Win32API: LPtoDP

指定された論理座標を、デバイス座標に変換します。

定義
Declare Function LPtoDP Lib "gdi32" _
         (hdc As HDC, _
    ByRef lpPoints As POINTAPI, _
          nCount As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

lpPoints （ポインタ参照）
変換する論理座標が格納されている、POINTAPI構造体配列へのポインタを指定します。
関数が成功すると、この構造体配列に変換結果のデバイス座標が格納されます。

nCount
lpPoints パラメータで指定した配列の要素数を指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

DPtoLP関数、POINTAPI構造体


 Win32API: OffsetViewportOrgEx

指定したデバイス コンテキストのビューポート原点を、指定したオフセット分だけ移動します。

定義
Declare Function OffsetViewportOrgEx Lib "gdi32" _
         (hdc As HDC, _
          nXOffset As Long, _
          nYOffset As Long, _
    ByRef lpPoint As POINTAPI) As Long
hdc
デバイス コンテキストのハンドルを指定します。

nXOffset
オフセットの X 成分をデバイス単位で指定します。

nYOffset
オフセットの Y 成分をデバイス単位で指定します。

lpPoint （ポインタ参照）
POINTAPI構造体へのポインタを指定します。この構造体に、以前のビューポート原点の座標がデバイス単位で格納されます。不要なときは、NULL を指定することができます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

SetViewportOrgEx関数、POINTAPI構造体


 Win32API: OffsetWindowOrgEx

指定したデバイス コンテキストのウィンドウ原点を、指定したオフセット分だけ移動します。

定義
Declare Function OffsetWindowOrgEx Lib "gdi32" _
         (hdc As HDC, _
          nXOffset As Long, _
          nYOffset As Long, _
    ByRef lpPoint As POINTAPI) As Long
hdc
デバイス コンテキストのハンドルを指定します。

nXOffset
オフセットの X 成分をデバイス単位で指定します。

nYOffset
オフセットの Y 成分をデバイス単位で指定します。

lpPoint （ポインタ参照）
POINTAPI構造体へのポインタを指定します。この構造体に、以前のウィンドウ原点の座標がページ座標単位で格納されます。不要なときは、NULL を指定することができます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

SetWindowOrgEx関数、POINTAPI構造体


 Win32API: ScaleViewportExtEx

指定したデバイス コンテキストのビューポート範囲を、指定した比率を利用して修正します。

定義
Declare Function ScaleViewportExtEx Lib "gdi32" _
         (hdc As HDC, _
          Xnum As Long, _
          Xdenom As Long, _
          Ynum As Long, _
          Ydenom As Long, _
    ByRef lpSize As SIZE) As Long
hdc
デバイス コンテキストのハンドルを指定します。

Xnum
現在の x 範囲に乗算する値を指定します。

Xdenom
現在の x 範囲に除算する値を指定します。

Ynum
現在の y 範囲に乗算する値を指定します。

Ydenom
現在の y 範囲に除算する値を指定します。

lpSize （ポインタ参照）
SIZE構造体へのポインタを指定します。この構造体に、以前のビューポート範囲がデバイス単位で格納されます。不要なときは、NULL を指定することができます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

SIZE構造体


 Win32API: ScaleWindowExtEx

指定したデバイス コンテキストのウィンドウ範囲を、指定した比率を利用して修正します。

定義
Declare Function ScaleWindowExtEx Lib "gdi32" _
         (hdc As HDC, _
          Xnum As Long, _
          Xdenom As Long, _
          Ynum As Long, _
          Ydenom As Long, _
    ByRef lpSize As SIZE) As Long
hdc
デバイス コンテキストのハンドルを指定します。

Xnum
現在の x 範囲に乗算する値を指定します。

Xdenom
現在の x 範囲に除算する値を指定します。

Ynum
現在の y 範囲に乗算する値を指定します。

Ydenom
現在の y 範囲に除算する値を指定します。

lpSize （ポインタ参照）
SIZE構造体へのポインタを指定します。この構造体に、以前のウィンドウ範囲がページ座標単位で格納されます。不要なときは、NULL を指定することができます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

SIZE構造体


 Win32API: ScreenToClient

指定したスクリーン座標を、指定したウィンドウのクライアント座標に変更します。

定義
Declare Function ScreenToClient Lib "user32" _
         (hWnd As HWND, _
    ByRef lpPoint As POINTAPI) As Long
hWnd
ウィンドウ ハンドルを指定します。

lpPoint （ポインタ参照）
スクリーン座標が格納されている、POINTAPI構造体へのポインタを指定します。
関数が成功すると、この構造体にクライアント座標が格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

ClientToScreen関数、POINTAPI構造体


 Win32API: SetMapMode

指定したデバイス コンテキストのマッピング モードを設定します。

定義
Declare Function SetMapMode Lib "gdi32" _
   (hdc As HDC, _
    fnMapMode As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

fnMapMode
マッピング モードを、以下の定数から指定します。
定数 | 説明
MM_ANISOTROPIC | 論理単位は、任意にスケーリングされた軸上の任意の単位にマップされます。単位、向き、スケーリングを指定するには、SetWindowExtEx関数とSetViewportExtEx関数を使用します。
MM_HIENGLISH | 各論理単位は、0.001 インチにマップされます。x の値は右に、y の値は上に向かって増加します。
MM_HIMETRIC | 各論理単位は、0.01 ミリメートルにマップされます。x の値は右に、y の値は上に向かって増加します。
MM_ISOTROPIC | 論理単位は、等しくスケーリングされた軸上の任意の単位にマップされます。X 軸方向の 1 単位は、Y 軸方向の 1 単位と同じになります。単位と向きを指定するには、SetWindowExtEx関数とSetViewportExtEx関数を使います。GDI は、必要に応じて、x 単位と y 単位のサイズが同一になるように調整を行います。
MM_LOENGLISH | 各論理単位は、0.01 インチにマップされます。x の値は右に、y の値は上に向かって増加します。
MM_LOMETRIC | 各論理単位は、0.1 ミリにマップされます。x の値は右に、y の値は上に向かって増加します。
MM_TEXT | 各論理単位は、1 デバイスピクセルにマップされます。x の値は右に、y の値は下に向かって増加します。
MM_TWIPS | 各論理単位は、ポイント数の 20 分の 1（1/1440 インチ、"twip" とも呼ばれます）にマップされます。x の値は右に、y の値は上に向かって増加します。

戻り値

関数が成功すると、以前のマッピング モードが返ります。失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

GetMapMode関数


 Win32API: SetViewportExtEx

指定したデバイス コンテキストのビューポート範囲を設定します。

定義
Declare Function SetViewportExtEx Lib "gdi32" _
         (hdc As HDC, _
          nXExtent As Long, _
          nYExtent As Long, _
    ByRef lpSize As SIZE) As Long
hdc
デバイス コンテキストのハンドルを指定します。

nXExtent
新しいビューポートの X 範囲をデバイス単位で指定します。

nYExtent
新しいビューポートの Y 範囲をデバイス単位で指定します。

lpSize （ポインタ参照）
SIZE構造体へのポインタを指定します。この構造体に、以前のビューポートの範囲がデバイス単位で格納されます。不要なときは、NULL を指定することができます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

この関数は、マッピング モードが MM_ANISOTROPIC、または MM_ISOTROPIC のときに有効です。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

GetViewportExtEx関数、SIZE構造体


 Win32API: SetViewportOrgEx

指定したデバイス コンテキストのビューポートの原点を設定します。

定義
Declare Function SetViewportOrgEx Lib "gdi32" _
         (hdc As HDC, _
          x As Long, _
          y As Long, _
    ByRef lpPoint As POINTAPI) As Long
hdc
デバイス コンテキストのハンドルを指定します。

x
新しいビューポートの原点の X 座標を指定します。

y
新しいビューポートの原点の Y 座標を指定します。

lpPoint （ポインタ参照）
POINTAPI構造体へのポインタを指定します。この構造体に、以前のビューポートの原点座標が格納されます。不要なときは、NULL を指定することができます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

GetViewportOrgEx関数、POINTAPI構造体


 Win32API: SetWindowExtEx

指定したデバイス コンテキストのウィンドウ範囲を設定します。

定義
Declare Function SetWindowExtEx Lib "gdi32" _
         (hdc As HDC, _
          nXExtent As Long, _
          nYExtent As Long, _
    ByRef lpSize As SIZE) As Long
hdc
デバイス コンテキストのハンドルを指定します。

nXExtent
ウィンドウの新しい X 範囲を論理座標で指定します。

nYExtent
ウィンドウの新しい Y 範囲を論理座標で指定します。

lpSize （ポインタ参照）
SIZE構造体へのポインタを指定します。この構造体に、以前のウィンドウ範囲がページ座標単位で格納されます。不要なときは、NULL を指定することができます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

この関数は、マッピング モードが MM_ANISOTROPIC、または MM_ISOTROPIC のときに有効です。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

GetWindowExtEx関数、SIZE構造体


 Win32API: SetWindowOrgEx

指定したデバイス コンテキストのウィンドウ原点を設定します。

定義
Declare Function SetWindowOrgEx Lib "gdi32" _
         (hDC As HDC, _
          x As Long, _
          y As Long, _
    ByRef lpPoint As POINTAPI) As Long
hDC
デバイス コンテキストのハンドルを指定します。

x
新しいウィンドウ原点の X 座標を論理単位で指定します。

y
新しいウィンドウ原点の Y 座標を論理単位で指定します。

lpPoint （ポインタ参照）
POINTAPI構造体へのポインタを指定します。この構造体に、以前のウィンドウ原点の座標がページ座標単位で格納されます。不要なときは、NULL を指定することができます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

GetWindowOrgEx関数、POINTAPI構造体


 Win32API: CancelDC

指定されたデバイス コンテキストの未処理の操作をキャンセルします。

定義
Declare Function CancelDC Lib "gdi32" _
   (hdc As HDC) As Long
hdc
デバイス コンテキストのハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll


 Win32API: CreateCompatibleDC

指定したデバイス コンテキストと互換性を持つメモリ デバイス コンテキストを作成します。

定義
Declare Function CreateCompatibleDC Lib "gdi32" _
   (hdc As HDC) As HDC
hdc
デバイス コンテキストのハンドルを指定します。
NULL を指定すると、現在の画面と互換性を持つデバイス コンテキストが作成されます。

戻り値

関数が成功すると、作成されたメモリ デバイス コンテキストのハンドルが返ります。失敗すると、0 が返ります。

解説

作成されたメモリ デバイス コンテキストが不要になったら、DeleteDC関数を使用してメモリから解放して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

CreateCompatibleBitmap関数、DeleteDC関数


 Win32API: CreateDC

指定したデバイスのデバイス コンテキストを作成します。

定義
Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" _
         (lpszDriver As BytePtr, _
          lpszDevice As BytePtr, _
          lpszOutput As Long, _
    ByRef lpInitData As DEVMODE) As HDC
lpszDriver
ディスプレイのデバイス コンテキストを取得するときは、文字列 "DISPLAY" へのポインタを指定します。
プリンタのデバイス コンテキストを取得するときは、プリンタ名が格納された文字列（通常は "WINSPOOL"）へのポインタを指定します（WindowsNT系OSのみ）。
Windows95系OSでこのパラメータに "DISPLAY" 文字列へのポインタを指定したときは、他のパラメータを NULL にする必要があります。

lpszDevice
出力デバイスの名前が入った NULL で終わる文字列へのポインタを指定します。

lpszOutput
このパラメータは無視されます。

lpInitData （ポインタ参照）
デバイス ドライバの初期化データが格納されている、DEVMODE構造体へのポインタを指定します。

戻り値

関数が成功すると、デバイス コンテキストのハンドルが返ります。失敗すると、0 が返ります。

解説

デバイス コンテキストが不要になったら、DeleteDC関数を使用してメモリから解放して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

DEVMODE構造体


 Win32API: DeleteDC

指定したデバイス コンテキストを破棄します。

定義
Declare Function DeleteDC Lib "gdi32" _
   (hdc As HDC) As Long
hdc
デバイス コンテキストのハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

GetDC関数を使用して取得したデバイス コンテキストを破棄する場合は、ReleaseDC関数を使用して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll


 Win32API: DeleteObject

オブジェクト（ペン、ブラシ、フォント、ビットマップ、リージョン、パレットなど）が使用しているシステム リソースを解放します。

定義
Declare Function DeleteObject Lib "gdi32" _
   (hObject As HANDLE) As Long
hObject
オブジェクトのハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

指定したオブジェクトがデバイス コンテキストに選択されていると、この関数は失敗します。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll


 Win32API: GetCurrentObject

指定したデバイス コンテキストに選択されているオブジェクトを取得します。

定義
Declare Function GetCurrentObject Lib "gdi32" _
   (hdc As HDC, _
    dwObjectType As DWord) As HANDLE
hdc
デバイス コンテキストのハンドルを指定します。

dwObjectType
取得するオブジェクトのタイプを、以下の定数から指定します。
定数 | 説明
OBJ_PEN | ペン
OBJ_BRUSH | ブラシ
OBJ_PAL | パレット
OBJ_FONT | フォント
OBJ_BITMAP | ビットマップ

戻り値

関数が成功すると、オブジェクトのハンドル が返ります。失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll


 Win32API: GetDC

指定したウィンドウのクライアント領域に対するデバイス コンテキストを取得します。

定義
Declare Function GetDC Lib "user32" _
   (hWnd As HWND) As HDC
hWnd
ウィンドウ ハンドルを指定します。

戻り値

関数が成功すると、デバイス コンテキストのハンドルが返ります。失敗すると、0 が返ります。

解説

取得したデバイス コンテキストが不要になったら、ReleaseDC関数を使用してメモリから解放して下さい。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetDCEx関数、GetWindowDC関数、ReleaseDC関数


 Win32API: GetDCEx

指定したウィンドウのクライアント領域に対するデバイス コンテキストを取得します。GetDC関数の拡張版です。

定義
Declare Function GetDCEx Lib "user32" _
   (hWnd As HWND, _
    hrgnClip As HRGN, _
    dwFlags As DWord) As HDC
hWnd
ウィンドウ ハンドルを指定します。

hrgnClip
クライアントウィンドウの可視領域と結合する（オプションによる）、クリッピング領域を指定します。

dwFlags
オプション フラグを、以下の定数を組み合わせて指定します。
定数 | 説明
DCX_WINDOW | ウィンドウ全体に対するデバイス コンテキストを取得します。
DCX_CACHE | キャッシュからデバイス コンテキストを取得します。
DCX_PARENTCLIP | 親ウィンドウの可視領域を使用します。親ウィンドウの WS_CLIPCHILDREN スタイルや CS_PARENTDC スタイルは無視されます。デバイスコンテキストの原点は、hWnd パラメータで指定したウィンドウの左上隅に設定されます。
DCX_CLIPSIBLINGS | クリッピング領域から、hWnd パラメータで指定したウィンドウの上にある兄弟ウィンドウすべての可視領域を除外します。
DCX_CLIPCHILDREN | クリッピング領域から、hWnd パラメータで指定したウィンドウの下にある子ウィンドウすべての可視領域を除外します。
DCX_NORESETATTRS | デバイス コンテキストが解放されるとき、属性を初期化しません。
DCX_LOCKWINDOWUPDATE | LockWindowUpdate 関数の呼び出しが有効な場合でも描画を可能にします。トラッキング中に描画を行う場合に使います。
DCX_EXCLUDERGN | デバイス コンテキストの可視領域から、hrgnClip パラメータで指定したクリッピング領域を除外します。
DCX_INTERSECTRGN | デバイス コンテキストの可視領域と、hrgnClipパラメータで指定したクリッピング領域の共通部分を、新しいクリッピング領域とします。
DCX_VALIDATE | DCX_INTERSECTUPDATE と DCX_VALIDATE の両方の指定により、デバイスコンテキストが完全に有効化します。これは、BeginPaint関数の動作と同じです。

戻り値

関数が成功すると、デバイス コンテキストのハンドルが返ります。失敗すると、0 が返ります。

解説

取得したデバイス コンテキストが不要になったら、ReleaseDC関数を使用してメモリから解放して下さい。ただし、ウィンドウクラスに属しているディスプレイ デバイス コンテキストは、解放する必要ありません。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetDC関数、ReleaseDC関数


 Win32API: GetDeviceCaps

デバイスに関する情報を取得します。

定義
Declare Function GetDeviceCaps Lib "gdi32" _
   (hdc As HDC, _
    nIndex As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

nIndex
取得する情報を、以下の定数から指定します。
定数 | 戻り値
DRIVERVERSION | デバイスのバージョンが返ります。
TECHNOLOGY デバイス テクノロジー タイプが、以下の定数から返ります。
DT_PLOTTER | ベクタプロッタ
DT_RASDISPLAY | ラスタディスプレイ
DT_RASPRINTER | ラスタプリンタ
DT_RASCAMERA | ラスタカメラ
DT_CHARSTREAM | 文字ストリーム
DT_METAFILE | メタファイル
DT_DISPFILE | ディスプレイファイル
HORZSIZE | ミリメートル（mm）単位の画面の物理的な幅が返ります。
VERTSIZE | ミリメートル（mm）単位の画面の物理的な高さが返ります。
HORZRES | ピクセル単位の画面の幅が返ります。
VERTRES | ピクセル単位（ラスタ行数）の画面の高さが返ります。
LOGPIXELSX | 画面の水平方向での、論理インチ当たりのピクセル数が返ります。
LOGPIXELSY | 画面の垂直方向での、論理インチ当たりのピクセル数が返ります。
BITSPIXEL | ピクセルあたりのカラービットの数が返ります。
PLANES | カラープレーンの数が返ります。
NUMBRUSHES | デバイス固有のブラシの数が返ります。
NUMPENS | デバイス固有のペンの数が返ります。
NUMFONTS | デバイス固有のフォントの数が返ります。
NUMCOLORS | デバイスのカラー深度が 8bpp（ピクセル当たり 8 ビット）以下の場合は、デバイスのカラーテーブル内のエントリ数が返ります。色深度が 8bpp を超える場合、-1 が返ります。
ASPECTX | 線の描画に使うデバイス ピクセルの相対的な幅が返ります。
ASPECTY | 線の描画に使うデバイス ピクセルの相対的な高さが返ります。
ASPECTXY | 線の描画に使うデバイス ピクセルの対角線の幅が返ります。
CLIPCAPS | デバイスが長方形のクリップをサポートする場合は 1、それ以外の場合は 0 が返ります。
SIZEPALETTE | システムパレット内のエントリ数が返ります。
NUMRESERVED | システムパレット内の予約エントリ数が返ります。
COLORRES | デバイスの実際の色深度を表す、ピクセル当たりのビット数が返ります。
PHYSICALWIDTH | ページの物理的な幅がデバイス単位で返ります（印刷デバイス用）。
PHYSICALHEIGHT | ページの物理的な高さがデバイス単位で返ります（印刷デバイス用）。
PHYSICALOFFSETX | 物理的なページの左端から印刷可能領域の左端までの距離がデバイス単位で返ります（印刷デバイス用）。
PHYSICALOFFSETY | 物理的なページの上端から印刷可能領域の上端までの距離がデバイス単位で返ります（印刷デバイス用）。
VREFRESH | ディスプレイ デバイスのリフレッシュレート（垂直同期周波数）が 1 秒当たりのサイクル数（Hz）で返ります（WindowsNT系OSのみ）。
SCALINGFACTORX | プリンタの水平軸の倍率が返ります。
SCALINGFACTORY | プリンタの垂直軸の倍率が返ります。
BLTALIGNMENT | 水平方向のアラインメント（整列単位）の優先値がピクセル単位で返ります（WindowsNT系OSのみ）。
SHADEBLENDCAPS デバイスのシェーディング（陰影）とブレンディング（混色）の能力を示す値が、以下の定数の組み合わせで返ります（Windows98以降、WindowsNT4.0以降のOSのみ）。
SB_CONST_ALPHA | このデバイスは、BLENDFUNCTION 構造体の SourceConstantAlpha メンバを操作できます。この構造体は、AlphaBlend 関数の blendFunction パラメータで参照したものです。
SB_GRAD_RECT | このデバイスには、GradientFill 関数を使って長方形を処理する能力があります。
SB_GRAD_TRI | このデバイスには、GradientFill 関数を使って三角形を処理する能力があります。
SB_NONE | このデバイスはこれらの能力をサポートしていません。
SB_PIXEL_ALPHA | このデバイスには、AlphaBlend 関数を使って、ピクセルごとのアルファ（透明度、輝度）を操作する能力があります。
SB_PREMULT_ALPHA | このデバイスには、AlphaBlend 関数を使って、あらかじめ倍率を設定されたアルファを操作する能力があります。
RASTERCAPS デバイスのラスタ能力を示す値が、以下の定数の組み合わせで返ります。
RC_BANDING | バンド処理のサポートが必要です。
RC_BITBLT | このデバイスには、ビットマップの転送能力があります。
RC_BITMAP64 | このデバイスは、64 キロバイトより大きいビットマップをサポートしています。
RC_DI_BITMAP | このデバイスは、SetDIBits 関数と GetDIBits 関数をサポートしています。
RC_DIBTODEV | このデバイスは、SetDIBitsToDevice 関数をサポートしています。
RC_FLOODFILL | このデバイスには、塗りつぶしを行う能力があります。
RC_GDI20_OUTPUT | このデバイスは、16 ビット版の Windows 2.0 の機能をサポートしています。
RC_PALETTE | このデバイスは、パレットベースのデバイスとして指定できます。
RC_SCALING | このデバイスには、スケーリングを行う能力があります。
RC_STRETCHBLT | このデバイスには、StretchBlt 関数を実行する能力があります。
RC_STRETCHDIB | このデバイスには、StretchDIBits 関数を実行する能力があります。
CURVECAPS デバイスの曲線描画能力を示す値が、以下の定数の組み合わせで返ります。
CC_NONE | このデバイスは、曲線をサポートしていません。
CC_CHORD | このデバイスは、弓形（弧と弦からなる図形）の弧を描画できます。
CC_CIRCLES | このデバイスは、円を描画できます。
CC_ELLIPSES | このデバイスは、楕円を描画できます。
CC_INTERIORS | このデバイスは、内部の塗りつぶしを行えます。
CC_PIE | このデバイスは、扇形を描画できます。
CC_ROUNDRECT | このデバイスは、角の丸い長方形を描画できます。
CC_STYLED | このデバイスは、スタイル付きの境界線を描画できます。
CC_WIDE | このデバイスは、太い境界線を描画できます。
CC_WIDESTYLED | このデバイスは、スタイル付きの太い境界線を描画できます。
LINECAPS デバイスの直線描画能力を示す値が、以下の定数の組み合わせで返ります。
LC_NONE | このデバイスは、直線をサポートしていません。
LC_INTERIORS | このデバイスは、内部の塗りつぶしを行えます。
LC_MARKER | このデバイスは、1 個のマーカーを描画できます。
LC_POLYLINE | このデバイスは、連続直線を描画できます。
LC_POLYMARKER | このデバイスは、複数のマーカーを描画できます。
LC_STYLED | このデバイスは、スタイル付きの直線を描画できます。
LC_WIDE | このデバイスは、太い直線を描画できます。
LC_WIDESTYLED | このデバイスは、スタイル付きの太い直線を描画できます。
POLYGONALCAPS デバイスの多角形描画能力を示す値が、以下の定数の組み合わせで返ります。
PC_NONE | このデバイスは、多角形をサポートしていません。
PC_INTERIORS | このデバイスは、内部の描画を行えます。
PC_POLYGON | このデバイスは、交互モードの塗りつぶしを行えます。
PC_RECTANGLE | このデバイスは、長方形を描画できます。
PC_SCANLINE | このデバイスは、単一の走査行を描画できます。
PC_STYLED | このデバイスは、スタイル付きの境界線を描画できます。
PC_WIDE | このデバイスは、太い境界線を描画できます。
PC_WIDESTYLED | このデバイスは、スタイル付きの太い境界線を描画できます。
PC_WINDPOLYGON | このデバイスは、全域モードでの多角形の塗りつぶしを行えます。
TEXTCAPS デバイスのテキスト表示能力を示す値が、以下の定数の組み合わせで返ります。
TC_OP_CHARACTER | このデバイスには、キャラクタの出力精度を調整する能力があります。
TC_OP_STROKE | このデバイスには、ストロークの出力精度を調整する能力があります。
TC_CP_STROKE | このデバイスには、ストローククリップの精度を調整する能力があります。
TC_CR_90 | このデバイスには、キャラクタの 90 度回転を行う能力があります。
TC_CR_ANY | このデバイスには、キャラクタの任意の角度の回転を行う能力があります。
TC_SF_X_YINDEP | このデバイスは、x 方向と y 方向の独立したスケーリング（長体と平体）を行えます。
TC_SA_DOUBLE | このデバイスは、キャラクタの 2 倍のスケーリング（倍角）を行えます。
TC_SA_INTEGER | このデバイスは、キャラクタの整数倍のスケーリング（n 倍角）を行えます。
TC_SA_CONTIN | このデバイスは、キャラクタの任意の倍率のスケーリングを行えます。
TC_EA_DOUBLE | このデバイスは、2 倍の太さの文字（太字）を描画できます。
TC_IA_ABLE | このデバイスは、イタリック体を描画できます。
TC_UA_ABLE | このデバイスは、下線を描画できます。
TC_SO_ABLE | このデバイスは、取り消し線を描画できます。
TC_RA_ABLE | このデバイスは、ラスタフォントを描画できます。
TC_VA_ABLE | このデバイスは、ベクトルフォントを描画できます。
TC_SCROLLBLT | このデバイスは、ビットブロック転送（ブリット）によるスクロールを行えません。

戻り値

デバイスに関する情報が返ります。意味は nIndex パラメータで指定する定数により、異なります。詳しくは上記の表を参照して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll


 Win32API: GetObject

指定したオブジェクトに関する情報を取得します。

定義
Declare Function GetObject Lib "gdi32" Alias "GetObjectA" _
         (hgdiobj As HANDLE, _
          cbBuffer As Long, _
    ByRef lpvObject As Any) As Long
hgdiobj
オブジェクトのハンドルを指定します。

cbBuffer
lpvObject パラメータで指定するバッファの、サイズを指定します。

lpvObject （ポインタ参照）
オブジェクトに関する情報を格納するためのバッファへのポインタを指定します。NULL を指定すると、情報格納に必要なバイト数が返ります。各オブジェクトは、以下のような構造体に対応しています。
オブジェクトの種類 | 対応する型
HBITMAP（ビットマップ） | BITMAP構造体、またはDIBSECTION構造体
HPALETTE（パレット） | WORD型（論理パレットのエントリ数が格納されます）
HPEN（ペン） | LOGPEN構造体、またはEXTLOGPEN構造体
HBRUSH（ブラシ） | LOGBRUSH構造体
HFONT（フォント） | LOGFONT構造体

戻り値

関数が成功すると、書き込まれたデータのバイト数が返ります。lpvObject パラメータに NULL を指定したときは、必要なバイト数が返ります。
関数が失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll


 Win32API: GetObjectType

指定したオブジェクトのタイプを調べます。

定義
Declare Function GetObjectType Lib "gdi32" _
   (hObject As HANDLE) As Long
hObject
オブジェクト ハンドルを指定します。

戻り値

関数が成功すると、オブジェクト タイプを示す、以下の定数のいずれかが返ります。失敗すると、0 が返ります。
定数 | 説明
OBJ_BITMAP | ビットマップ
OBJ_BRUSH | ブラシ
OBJ_FONT | フォント
OBJ_PAL | パレット
OBJ_PEN | ペン
OBJ_EXTPEN | 拡張ペン
OBJ_REGION | リージョン
OBJ_DC | デバイス コンテキスト
OBJ_MEMDC | メモリ デバイス コンテキスト
OBJ_METAFILE | メタファイル
OBJ_METADC | メタファイル デバイス コンテキスト
OBJ_ENHMETAFILE | 拡張メタファイル
OBJ_ENHMETADC | 拡張メタファイル デバイス コンテキスト

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll


 Win32API: GetStockObject

システム内で定義済みのオブジェクト ハンドルを取得します。

定義
Declare Function GetStockObject Lib "gdi32" _
   (fnObject As Long) As HANDLE
fnObject
取得するオブジェクトを、以下の定数から指定します。
定数 | 説明
BLACK_BRUSH | 黒のブラシ
DKGRAY_BRUSH | 濃い灰色のブラシ
GRAY_BRUSH | 灰色のブラシ
HOLLOW_BRUSH 、または NULL_BRUSH | 透明のブラシ
LTGRAY_BRUSH | 明るい灰色のブラシ
WHITE_BRUSH | 白のブラシ
BLACK_PEN | 黒のペン
NULL_PEN | 透明色のペン
WHITE_PEN | 白のペン
ANSI_FIXED_FONT | Windows 文字セットの固定幅システムフォント
ANSI_VAR_FONT | Windows 文字セットの可変幅システムフォント
DEVICE_DEFAULT_FONT | デバイス依存のフォント（WindowsNT系OSのみ）
DEFAULT_GUI_FONT | ユーザーインターフェイス用のデフォルトフォント（Windows9x系OSのみ）
OEM_FIXED_FONT | OEM 文字セットの固定幅フォント
SYSTEM_FONT | システムフォント
DEFAULT_PALETTE | システム パレット内のスタティック カラーで構成される、デフォルトのカラー パレット。

戻り値

関数が成功すると、オブジェクト ハンドルが返ります。失敗すると、0 が返ります。

解説

この関数を使用して取得したオブジェクトは、DeleteObject関数などで解放する必要はありません。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

SelectObject関数


 Win32API: ReleaseDC

GetDC関数、GetWindowDC関数などを使用して取得したデバイス コンテキストをメモリから解放します。

定義
Declare Function ReleaseDC Lib "user32" _
   (hWnd As HWND, _
    hdc As HDC) As Long
hWnd
hDC パラメータで指定するデバイス コンテキストに対応するウィンドウのハンドルを指定します。

hdc
デバイス コンテキストを指定します。

戻り値

関数が成功すると、TRUE 返ります。失敗すると、FALSE が返ります。

解説

この関数は、共通デバイス コンテキスト、ウィンドウ デバイス コンテキストにのみ有効です。クラス デバイス コンテキストやプライベート デバイス コンテキストの解放には、DeleteDC関数を使用して下さい。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetDC関数、GetWindowDC関数


 Win32API: ResetDC

プリンタ デバイスなどのデバイス コンテキストを、DEVMODE 構造体の内容をもとに更新します。

定義
Declare Function ResetDC Lib "gdi32" Alias "ResetDCA" _
         (hdc As HDC, _
    ByRef lpInitData As DEVMODE) As HDC
hdc
デバイス コンテキストのハンドルを指定します。

lpInitData （ポインタ参照）
デバイスの更新情報が格納されている、DEVMODE構造体へのポインタを指定します。

戻り値

関数が成功すると、元のデバイス コンテキストのハンドルが返ります。失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

DEVMODE構造体


 Win32API: RestoreDC

SaveDC関数で保存したデバイス コンテキストの状態を復元します。

定義
Declare Function RestoreDC Lib "gdi32" _
   (hdc As HDC, _
    nSavedDC As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

nSavedDC
保存したデバイス コンテキストを示す ID（正の値）を指定します。
負の値（-n）を指定すると、n 回前の状態に復元されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

SaveDC関数


 Win32API: SaveDC

指定したデバイス コンテキストの状態を保存します。状態は、コンテキスト スタックに保存されます。

定義
Declare Function SaveDC Lib "gdi32" _
   (hdc As HDC) As Long
hdc
デバイス コンテキストのハンドルを指定します。

戻り値

関数が成功すると、保存したデバイス コンテキストを示す ID が返ります。失敗すると、0 が返ります。

解説

デバイス コンテキストの状態は、スタック内に複数、保存することができます。
以前保存したデバイス コンテキストの状態を復元するには、RestoreDC関数を使用します。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

RestoreDC関数


 Win32API: SelectObject

指定したデバイス コンテキストに、指定したオブジェクトを選択します。以前の同じ種類のオブジェクトは、新しいオブジェクトに置き換えられます。

定義
Declare Function SelectObject Lib "gdi32" _
   (hdc As HDC, _
    hObject As HANDLE) As HANDLE
hdc
デバイス コンテキストのハンドルを指定します。

hObject
オブジェクトのハンドルを指定します。対象となるオブジェクトは、ビットマップ、ブラシ、フォント、ペン、リージョンのいずれかです。

戻り値

関数が成功すると、以前選択されていた同じ種類のオブジェクトのハンドルが返ります。失敗すると、0 が返ります。ただし、リージョンを選択したときは、以下の定数のいずれかが返ります。
定数 | 説明
SIMPLEREGION | リージョンは長方形です。
COMPLEXREGION | リージョンは長方形よりも複雑な形です。
NULLREGION | リージョンは空です。
GDI_ERROR | 関数が失敗しました。

解説

選択したオブジェクトが不要になったら、以前のオブジェクトに戻す必要があります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll


 Win32API: Chord

弓形を描画します。弓形とは、楕円弧と、その 2 つ端の点を結んだ形です。

定義
Declare Function Chord Lib "gdi32" _
   (hdc As HDC, _
    nLeftRect As Long, _
    nTopRect As Long, _
    nRightRect As Long, _
    nBottomRect As Long, _
    nXRadial1 As Long, _
    nYRadial1 As Long, _
    nXRadial2 As Long, _
    nYRadial2 As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

nLeftRect
楕円に外接する長方形の左上隅の X 座標を指定します。

nTopRect
楕円に外接する長方形の左上隅の Y 座標を指定します。

nRightRect
楕円に外接する長方形の右下隅の X 座標を指定します。

nBottomRect
楕円に外接する長方形の右下隅の Y 座標を指定します。

nXRadial1
楕円弧の始点の X 座標を指定します。

nYRadial1
楕円弧の始点の Y 座標を指定します。

nXRadial2
楕円弧の終点の X 座標を指定します。

nYRadial2
楕円弧の終点の Y 座標を指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

円の中心から (nXRadial1, nYRadial1)、(nXRadial2, nYRadial2) に向けた直線と、円の交点が始点、終点となります。
通常、円の描画方向は反時計回りです。
デバイス コンテキストで選択されているペン、ブラシを使って描画します。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

Arc関数、Ellipse関数、Pie関数


 Win32API: Ellipse

楕円を描画します。

定義
Declare Function Ellipse Lib "gdi32" _
   (hdc As HDC, _
    nLeftRect As Long, _
    nTopRect As Long, _
    nRightRect As Long, _
    nBottomRect As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

nLeftRect
楕円に外接する長方形の左上隅の X 座標を指定します。

nTopRect
楕円に外接する長方形の左上隅の Y 座標を指定します。

nRightRect
楕円に外接する長方形の右下隅の X 座標を指定します。

nBottomRect
楕円に外接する長方形の右下隅の Y 座標を指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

デバイス コンテキストで選択されているペン、ブラシを使用して描画します。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

Arc関数、Chord関数、Pie関数


 Win32API: FillRect

指定した長方形を、指定したブラシで塗りつぶします。

定義
Declare Function FillRect Lib "user32" _
         (hDC As HDC, _
    ByRef lpRect As RECT, _
          hBrush As HBRUSH) As Long
hDC
デバイス コンテキストのハンドルを指定します。

lpRect （ポインタ参照）
長方形の左上隅、右下隅の座標が格納されている、RECT構造体へのポインタを指定します。

hBrush
ブラシ ハンドル、または「システム カラー値 + 1」を指定します。システム カラー値については、GetSysColor関数を参照して下さい。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

長方形の右辺と下辺は描画されません。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetSysColor関数、RECT構造体


 Win32API: FrameRect

指定した長方形の線を、指定したブラシで描画します。

定義
Declare Function FrameRect Lib "user32" _
         (hdc As HDC, _
    ByRef lpRect As RECT, _
          hBrush As HBRUSH) As Long
hDC
デバイス コンテキストのハンドルを指定します。

lpRect （ポインタ参照）
長方形の左上隅、右下隅の座標が格納されている、RECT構造体へのポインタを指定します。

hBrush
ブラシのハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

「lpRect.right < lpRect.left」または、「lpRect.bottom < lpRect.top」のときは、線は描画されません。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

RECT構造体


 Win32API: InvertRect

指定した長方形内の色を反転します。

定義
Declare Function InvertRect Lib "user32" _
         (hdc As HDC, _
    ByRef lpRect As RECT) As Long
hDC
デバイス コンテキストのハンドルを指定します。

lpRect （ポインタ参照）
長方形の左上隅、右下隅の座標が格納されている、RECT構造体へのポインタを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

RECT構造体


 Win32API: Pie

扇形を描画します。

定義
Declare Function Pie Lib "gdi32" _
   (hdc As HDC, _
    nLeftRect As Long, _
    nTopRect As Long, _
    nRightRect As Long, _
    nBottomRect As Long, _
    nXRadial1 As Long, _
    nYRadial1 As Long, _
    nXRadial2 As Long, _
    nYRadial2 As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

nLeftRect
楕円に外接する長方形の左上隅の X 座標を指定します。

nTopRect
楕円に外接する長方形の左上隅の Y 座標を指定します。

nRightRect
楕円に外接する長方形の右下隅の X 座標を指定します。

nBottomRect
楕円に外接する長方形の右下隅の Y 座標を指定します。

nXRadial1
楕円弧の始点の X 座標を指定します。

nYRadial1
楕円弧の始点の Y 座標を指定します。

nXRadial2
楕円弧の終点の X 座標を指定します。

nYRadial2
楕円弧の終点の Y 座標を指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

円の中心から (nXRadial1, nYRadial1)、(nXRadial2, nYRadial2) に向けた直線と、円の交点が始点、終点となります。
通常、円の描画方向は反時計回りです。
デバイス コンテキストで選択されているペン、ブラシを使って描画します。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

Arc関数、Chord関数、Ellipse関数


 Win32API: Polygon

多角形を描画します。

定義
Declare Function Polygon Lib "gdi32" _
         (hdc As HDC, _
    ByRef lpPoints As POINTAPI, _
          cPoints As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

lpPoints （ポインタ参照）
多角形の頂点の座標データが格納されている、POINTAPI構造体配列へのポインタを指定します。

cPoints
lpPoints パラメータで指定した配列の数を指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

始点、終点は結ばれます。
デバイス コンテキストで選択されている、ペン、ブラシを使用して描画します。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

Polyline関数、POINTAPI構造体


 Win32API: Rectangle

長方形を描画します。

定義
Declare Function Rectangle Lib "gdi32" _
   (hdc As HDC, _
    nLeftRect As Long, _
    nTopRect As Long, _
    nRightRect As Long, _
    nBottomRect As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

nLeftRect
長方形の左上隅の X 座標を指定します。

nTopRect
長方形の左上隅の Y 座標を指定します。

nRightRect
長方形の右下隅の X 座標を指定します。

nBottomRect
長方形の右下隅の Y 座標を指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

デバイス コンテキストで選択されているペン、ブラシを使用して描画します。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

RoundRect関数


 Win32API: RoundRect

丸い角を持つ長方形を描画します。

定義
Declare Function RoundRect Lib "gdi32" _
   (hdc As HDC, _
    nLeftRect As Long, _
    nTopRect As Long, _
    nRightRect As Long, _
    nBottomRect As Long, _
    nWidth As Long, _
    nHeight As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

nLeftRect
長方形の左上隅の X 座標を指定します。

nTopRect
長方形の左上隅の Y 座標を指定します。

nRightRect
長方形の右下隅の X 座標を指定します。

nBottomRect
長方形の右下隅の Y 座標を指定します。

nWidth
角の丸みの幅を指定します。

nHeight
角の丸みの高さを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

デバイス コンテキストで選択されているペン、ブラシを使用して描画します。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

Rectangle関数


 Win32API: CreateFont

論理フォントを作成します。

定義
Declare Function CreateFont Lib "gdi32" Alias "CreateFontA" _
   (nHeight As Long, _
    nWidth As Long, _
    nEscapement As Long, _
    nOrientation As Long, _
    fnWeight As Long, _
    fdwItalic As Long, _
    fdwUnderline As Long, _
    fdwStrikeOut As Long, _
    fdwCharSet As Long, _
    fdwOutputPrecision As Long, _
    fdwClipPrecision As Long, _
    fdwQuality As Long, _
    fdwPitchAndFamily As Long, _
    lpszFace As BytePtr) As HFONT
nHeight
フォントの高さを論理単位で指定します。
0 以上のときは、文字セルの高さを示します。
0 のときは、デフォルトの高さになります。
0 以下のときは、文字の高さ（文字セルからスペース部分を取り除いた高さ）を示します。

nWidth
フォントの幅を論理単位で指定します。
0 を指定すると、lfHeight メンバで指定した高さに見合った幅が、自動的に指定されます。

nEscapement
行の角度を 0.1 単位で指定します。デフォルトは 0 です。

nOrientation
ベースラインの角度を 0.1 単位で指定します。デフォルトは 0 です。

fnWeight
フォントの太さを、以下の定数から指定します。
定数 | 値
FW_DONTCARE | 0
FW_THIN | 100
FW_EXTRALIGHT | 200
FW_ULTRALIGHT | 200
FW_LIGHT | 300
FW_NORMAL | 400
FW_REGULAR | 400
FW_MEDIUM | 500
FW_SEMIBOLD | 600
FW_DEMIBOLD | 600
FW_BOLD | 700
FW_EXTRABOLD | 800
FW_ULTRABOLD | 800
FW_HEAVY | 900
FW_BLACK | 900

fdwItalic
1 を指定するとイタリック体になります。デフォルトは 0 です。

fdwUnderline
1 を指定すると下線付きのフォントになります。デフォルトは 0 です。

fdwStrikeOut
1 を指定すると、打消しライン付きのフォントになります。デフォルトは 0 です。

fdwCharSet
キャラクタセットを、以下の定数から指定します。
定数 | 説明
ANSI_CHARSET | Windows 文字セット
BALTIC_CHARSET |
CHINESEBIG5_CHARSET |
DEFAULT_CHARSET | 指定なし
EASTEUROPE_CHARSET |
GB2312_CHARSET |
GREEK_CHARSET |
HANGUL_CHARSET |
MAC_CHARSET |
OEM_CHARSET | OEM 文字セット
RUSSIAN_CHARSET |
SHIFTJIS_CHARSET | シフト JIS 文字セット
SYMBOL_CHARSET |
TURKISH_CHARSET |
JOHAB_CHARSET | 韓国版 Windows 用文字セット
THAI_CHARSET | タイ版 Windows 用文字セット

fdwOutputPrecision
出力精度を、以下の定数から指定します。
定数 | 説明
OUT_CHARACTER_PRECIS | 使用されません。
OUT_DEFAULT_PRECIS | デフォルトの動作に任せます。
OUT_DEVICE_PRECIS | 同じ名前のフォントが見つかったときは、デバイス フォントを使用します。
OUT_OUTLINE_PRECIS | 同じ名前のフォントが見つかったときは、TrueType や他のアウトラインベースのフォントを使用します（WindowsNT系OSのみ）。
OUT_RASTER_PRECIS | 同じ名前のフォントが見つかったときは、ラスタ フォントを使用します。
OUT_STRING_PRECIS | 使用されません。
OUT_STROKE_PRECIS | 同じ名前のフォントが見つかったときは、ベクトル フォントを使用します（Windows9x系OSのみ）。
OUT_TT_PRECIS | 同じ名前のフォントが見つかったときは、TrueType フォントを使用します。
OUT_TT_ONLY_PRECIS | TrueType フォントを使用します。TrueType フォントが組み込まれていないときは、デフォルトの動作になります。

fdwClipPrecision
クリッピング精度を、以下の定数から指定します。
定数 | 説明
CLIP_DEFAULT_PRECIS | デフォルトの動作に任せます。
CLIP_CHARACTER_PRECIS | 使用されません。
CLIP_STROKE_PRECIS | 使用されません。
CLIP_MASK | 使用されません。
CLIP_EMBEDDED | 読み込み専用の埋め込みフォントです。
CLIP_LH_ANGLES | 座標系が右手座標系か左手座標系かによって、すべてのフォントの回転方向を決めるようにします。
CLIP_TT_ALWAYS | 使用されません。

fdwQuality
出力品質を、以下の定数から指定します。
定数 | 説明
DEFAULT_QUALITY | フォントの文字品質は、重視されません。
DRAFT_QUALITY | フォントの文字品質は、PROOF_QUALITY フラグを指定したときほど重視されません。
PROOF_QUALITY | フォントの文字品質は、論理フォントの属性を正確に一致させることよりも重視されます。

fdwPitchAndFamily
フォントのピッチ、およびファミリーを、以下の定数を組み合わせて指定します。
定数 | 説明
DEFAULT_PITCH | ピッチはデフォルトの動作に任せます。
FIXED_PITCH | ピッチは固定長になります。
VARIABLE_PITCH | ピッチは可変長になります。
FF_DECORATIVE | 装飾付きフォントが指定されます（Old English など）。
FF_DONTCARE | 一般的なファミリが指定されます。
FF_MODERN | モノスペース フォントが指定されます（Pica、Elite、CourierNewなど）。
FF_ROMAN | セリフ（H、I などの上下にあるひげ飾り）のあるプロポーショナルフォントが指定されます（Times New Roman など）。
FF_SCRIPT | 手書き風のデザインのフォントが指定されます（Script、Cursive など）。
FF_SWISS | セリフ（H、I などの上下にあるひげ飾り）のないプロポーショナルフォントが指定されます（）。

lpszFace
フォント名を示す文字列を指定します。

戻り値

関数が成功すると、作成されたフォントのハンドルが返ります。失敗すると、0 が返ります。

解説

不要になったフォントはDeleteObject関数を使用して解放して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

CreateFontIndirect関数


 Win32API: CreateFontIndirect

指定したLOGFONT構造体の内容を元に、論理フォントを作成します。

定義
Declare Function CreateFontIndirect Lib "gdi32" Alias "CreateFontIndirectA" _
   (ByRef lplf As LOGFONT) As HFONT
lplf （ポインタ参照）
フォントに関する情報が格納されている、LOGFONT構造体へのポインタを指定します。

戻り値

関数が成功すると、作成されたフォントのハンドルが返ります。失敗すると、0 が返ります。

解説

不要になったフォントはDeleteObject関数を使用して解放して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

LOGFONT構造体、CreateFont関数


 Win32API: DrawText

指定された長方形の領域内に文字列をフォーマットして表示します。タブの展開や折り返し処理が可能です。

定義
Declare Function DrawText Lib "user32" Alias "DrawTextA" _
         (hdc As HDC, _
          lpStr As BytePtr, _
          nCount As Long, _
    ByRef lpRect As RECT, _
          dwFormat As DWord) As Long
hdc
デバイス コンテキストのハンドルを指定します。

lpStr
文字列へのポインタを指定します。

nCount
文字列のバイト数を指定します。lpStrが NULL で終わる文字列であれば、nCountには -1 を指定することもできます。

lpRect （ポインタ参照）
長方形の領域情報が入った、RECT構造体を指定します。

dwFormat
以下の定数を組み合わせ、任意のフォーマット方式を指定します。
定数 | 説明
DT_BOTTOM | 長方形の下辺にテキストを揃えます。DT_SINGLELINEと同時に指定する必要があります。
DT_CALCRECT | テキストを表示するために必要な長方形の大きさを lpRect パラメータに格納します。テキストは描画されません。
DT_CENTER | テキストを水平方向に中央揃えで表示します。
DT_EDITCONTROL | 複数行エディット コントロールがもつ特性と同じ特性で描画を行います。
DT_END_ELLIPSIS | 指定した長方形領域にテキストが収まらない場合、テキストの最後を省略符号 (...) に置き換えます。
DT_PATH_ELLIPSIS | 指定した長方形領域にテキストが収まらない場合、テキストの途中を省略符号 (...) に置き換えます。
DT_EXPANDTABS | タブ文字を展開します。
DT_EXTERNALLEADING | 行の高さに、外部レディングの高さ（行間として適当な高さ）を加えます。
DT_LEFT | テキストを左揃えにします。
DT_MODIFYSTRING | DT_END_ELLIPSIS フラグ、DT_PATH_ELLIPSIS フラグによって変更された文字列をlpStringに格納します。
DT_NOCLIP | クリッピングを行わないようにします。
DT_NOPREFIX | プリフィックス文字（「&」を次の文字のアンダースコアに置き換える、「&&」を「&」として処理する）の処理を行わないようにします。
DT_RIGHT | テキストを右揃えにします。
DT_RTLREADING | 右から左に向かってテキストを表示します。ヘブライ語、アラビア語などを表示する場合に利用します。
DT_SINGLELINE | テキストを改行せず、一行で表示します。
DT_TABSTOP | タブ文字の空白文字数を設定します。このフラグを指定した場合は uFormat パラメータの15ビットから8ビット（下位ワードの上位バイト）で空白文字数を設定します。
DT_TOP | 長方形の上辺にテキストを揃えます。DT_SINGLELINEと同時に指定する必要があります。
DT_VCENTER | テキストを垂直方向の中央揃えで表示します。DT_SINGLELINEと同時に指定する必要があります。
DT_WORDBREAK | テキストを複数行で表示します。折り返しは自動的に行われます。
※DT_CALCRECT、DT_EXTERNALLEADING、DT_INTERNAL、DT_NOCLIP、DT_NOPREFIX の各値は、DT_TABSTOP と組み合わせて使うことはできません。

戻り値

関数が成功すると描画したテキストの高さが返ります。失敗すると 0 が返ります。

解説

デバイス コンテキストに選択されているフォントで文字列が描画されます。文字色はSetTextColor関数を、背景モード/色はSetBkMode関数、SetBkColor関数を利用して設定しておく必要があります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

DrawTextEx関数、SetTextColor関数、SetBkMode関数、SetBkColor関数


 Win32API: DrawTextEx

DrawText関数を拡張した関数です。指定された長方形の領域内に文字列をフォーマットして表示します。タブの展開や折り返し処理が可能です。

定義
Declare Function DrawTextEx Lib "user32" Alias "DrawTextExA" _
         (hDC As HDC, _
          lpchText As BytePtr, _
          cchText As Long, _
    ByRef lpRect As RECT, _
          dwDTFormat As DWord, _
    ByRef lpDTParams As DRAWTEXTPARAMS) As Long
hDC
デバイス コンテキストのハンドルを指定します。

lpchText
文字列へのポインタを指定します。

cchText
文字列のバイト数を指定します。lpStrが NULL で終わる文字列であれば、nCountには -1 を指定することもできます。

lpRect （ポインタ参照）
長方形の領域情報が入った、RECT構造体を指定します。

dwDTFormat
以下の定数を組み合わせ、任意のフォーマット方式を指定します。
定数 | 説明
DT_BOTTOM | 長方形の下辺にテキストを揃えます。DT_SINGLELINEと同時に指定する必要があります。
DT_CALCRECT | テキストを表示するために必要な長方形の大きさを lpRect パラメータに格納します。テキストは描画されません。
DT_CENTER | テキストを水平方向に中央揃えで表示します。
DT_EDITCONTROL | 複数行エディット コントロールがもつ特性と同じ特性で描画を行います。
DT_END_ELLIPSIS | 指定した長方形領域にテキストが収まらない場合、テキストの最後を省略符号 (...) に置き換えます。
DT_PATH_ELLIPSIS | 指定した長方形領域にテキストが収まらない場合、テキストの途中を省略符号 (...) に置き換えます。
DT_EXPANDTABS | タブ文字を展開します。
DT_EXTERNALLEADING | 行の高さに、外部レディングの高さ（行間として適当な高さ）を加えます。
DT_LEFT | テキストを左揃えにします。
DT_MODIFYSTRING | DT_END_ELLIPSIS フラグ、DT_PATH_ELLIPSIS フラグによって変更された文字列をlpStringに格納します。
DT_NOCLIP | クリッピングを行わないようにします。
DT_NOPREFIX | プリフィックス文字（「&」を次の文字のアンダースコアに置き換える、「&&」を「&」として処理する）の処理を行わないようにします。
DT_RIGHT | テキストを右揃えにします。
DT_RTLREADING | 右から左に向かってテキストを表示します。ヘブライ語、アラビア語などを表示する場合に利用します。
DT_SINGLELINE | テキストを改行せず、一行で表示します。
DT_TABSTOP | タブ文字の空白文字数を設定します。このフラグを指定した場合はDRAWTEXTPARAMS構造体の iTabLength メンバで空白文字数を設定します。
DT_TOP | 長方形の上辺にテキストを揃えます。DT_SINGLELINEと同時に指定する必要があります。
DT_VCENTER | テキストを垂直方向の中央揃えで表示します。DT_SINGLELINEと同時に指定する必要があります。
DT_WORDBREAK | テキストを複数行で表示します。折り返しは自動的に行われます。
※DT_CALCRECT、DT_EXTERNALLEADING、DT_INTERNAL、DT_NOCLIP、DT_NOPREFIX の各値は、DT_TABSTOP と組み合わせて使うことはできません。

dwDTFormat （ポインタ参照）
追加のフォーマット情報が格納されている、DRAWTEXTPARAMS構造体へのポインタを指定します。あらかじめ、cbSize メンバに構造体サイズをセットしておく必要があります。不要なときは、NULL を指定することができます。

戻り値

関数が成功すると描画したテキストの高さが返ります。失敗すると 0 が返ります。

解説

デバイス コンテキストに選択されているフォントで文字列が描画されます。文字色はSetTextColor関数を、背景モード/色はSetBkMode関数、SetBkColor関数を利用して設定しておく必要があります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

DrawText関数、SetTextColor関数、SetBkMode関数、SetBkColor関数


 Win32API: GetCharWidth32

指定したデバイス コンテキスト上での文字の幅を取得します。

定義
Declare Function GetCharWidth32 Lib "gdi32" Alias "GetCharWidth32A" _
   (hdc As HDC, _
    iFirstChar As Long, _
    iLastChar As Long, _
    lpBuffer As DWordPtr) As Long
hdc
デバイス コンテキストのハンドルを指定します。

iFirstChar
取得を開始する文字コードを指定します。

iLastChar
最後の文字コードを指定します。

lpBuffer
32 ビット整数型配列の先頭ポインタを指定します。ここで指定する配列に文字幅が論理単位で格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

例えば、iFirstChar パラメータに &H41（"A" の文字コード）を、iLastChar パラメータに &H46（"F" の文字コード）を指定すると、"ABCDEF" の各文字の幅が lpBuffer パラメータで指定した配列に順に格納されます。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll


 Win32API: GetTextAlign

デバイス コンテキストのテキスト配置フラグを取得します。

定義
Declare Function GetTextAlign Lib "gdi32" _
   (hdc As HDC) As DWord
hdc
デバイス コンテキストのハンドルを指定します。

戻り値

関数が成功すると、テキスト配置フラグが、以下の定数の組み合わせで返ります。失敗すると、GDI_ERROR が返ります。
定数 | 説明
TA_BASELINE | 参照点と、テキストのベースラインを揃えます。
TA_BOTTOM | 参照点と、境界長方形の下端を揃えます。
TA_TOP | 参照点と、境界長方形の上端を揃えます。デフォルトです。
TA_CENTER | 参照点と、境界長方形の水平方向の中心を揃えます。
TA_LEFT | 参照点と、境界長方形の左端を揃えます。デフォルトです。
TA_RIGHT | 参照点と、境界長方形の右端を揃えます。
TA_RTLREADING | 右から左への読み取り順序で配置します。デバイスコンテキストでヘブライ語かアラビア語のフォントを選択しているときに有効です（Windows95系OSのみ）。
TA_NOUPDATECP | 各テキスト出力関数が呼び出されても、カレントポジションを更新しません。デフォルトです。
TA_UPDATECP | 各テキスト出力関数が呼び出されると、カレントポジションを更新します。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

SetTextAlign関数


 Win32API: GetTextColor

デバイス コンテキストのテキスト色を取得します。

定義
Declare Function GetTextColor Lib "gdi32" _
   (hdc As HDC) As DWord
hdc
デバイス コンテキストのハンドルを指定します。

戻り値

関数が成功すると、テキスト色が返ります。失敗すると、CLR_INVALID が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

SetTextColor関数


 Win32API: GetTextExtentPoint32

指定したデバイス コンテキストへの描画用文字列の幅、高さを取得します。

定義
Declare Function GetTextExtentPoint32 Lib "gdi32" Alias "GetTextExtentPoint32A" _
         (hdc As HDC, _
          lpString As BytePtr, _
          cbString As Long, _
    ByRef lpSize As SIZE) As Long
hdc
デバイス コンテキストのハンドルを指定します。

lpString
文字列バッファを指定します。

cbString
lpString パラメータで指定した文字列のバイト数を指定します。

lpSize （ポインタ参照）
SIZE構造体へのポインタを指定します。この構造体に文字列の幅、高さが格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

SIZE構造体


 Win32API: GetTextMetrics

指定したデバイス コンテキストで選択されているフォントの情報を取得します。

定義
Declare Function GetTextMetrics Lib "gdi32" Alias "GetTextMetricsA" _
         (hdc As HDC, _
    ByRef lptm As TEXTMETRIC) As Long
hdc
デバイス コンテキストのハンドルを指定します。

lptm （ポインタ参照）
TEXTMETRIC構造体へのポインタを指定します。ここで指定した構造体にフォント情報が格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

TEXTMETRIC構造体


 Win32API: SetTextAlign

デバイス コンテキストのテキスト配置フラグを設定します。

定義
Declare Function SetTextAlign Lib "gdi32" _
   (hdc As HDC, _
    fMode As DWord) As DWord
hdc
デバイス コンテキストのハンドルを指定します。

fMode
テキスト配置フラグを、以下の定数を組み合わせて指定します。
定数 | 説明
TA_BASELINE | 参照点と、テキストのベースラインを揃えます。
TA_BOTTOM | 参照点と、境界長方形の下端を揃えます。
TA_TOP | 参照点と、境界長方形の上端を揃えます。デフォルトです。
TA_CENTER | 参照点と、境界長方形の水平方向の中心を揃えます。
TA_LEFT | 参照点と、境界長方形の左端を揃えます。デフォルトです。
TA_RIGHT | 参照点と、境界長方形の右端を揃えます。
TA_RTLREADING | 右から左への読み取り順序で配置します。デバイスコンテキストでヘブライ語かアラビア語のフォントを選択しているときに有効です（Windows95系OSのみ）。
TA_NOUPDATECP | 各テキスト出力関数が呼び出されても、カレントポジションを更新しません。デフォルトです。
TA_UPDATECP | 各テキスト出力関数が呼び出されると、カレントポジションを更新します。

戻り値

関数が成功すると、以前のテキスト配置フラグが返ります。失敗すると、GDI_ERROR が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

GetTextAlign関数


 Win32API: SetTextColor

デバイス コンテキストのテキスト色を設定します。

定義
Declare Function SetTextColor Lib "gdi32" _
   (hdc As HDC, _
    crColor As DWord) As DWord
hdc
デバイス コンテキストのハンドルを指定します。

crColor
テキストの色を指定します。

戻り値

関数が成功すると、以前のテキスト色が返ります。失敗すると、CLR_INVALID が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

GetTextColor関数、TextOut関数、DrawText関数


 Win32API: TextOut

デバイス コンテキストに選択されているフォントを利用して文字列を描画します。

定義
Declare Function TextOut Lib "gdi32" Alias "TextOutA" _
   (hdc As HDC, _
    nXStart As Long, _
    nYStart As Long, _
    lpString As BytePtr, _
    cbString As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

nXStart
文字列左上のX座標を論理座標で指定します。

nYStart
文字列左上のY座標を論理座標で指定します。

lpString
文字列を指定します。

cbString
文字列のバイト数を指定します。

戻り値

関数が成功すると TRUE が返ります。失敗すると FALSE が返ります。

解説

デバイス コンテキストに選択されているフォントで文字列が描画されます。文字色は SetTextColor関数 を、背景モード/色は SetBkMode関数、SetBkColor関数を利用して設定しておく必要があります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

SetTextColor関数、SetBkMode関数、SetBkColor関数


 構造体: DRAWTEXTPARAMS

DrawTextEx 関数用の追加フォーマット情報を格納します。

定義
Type DRAWTEXTPARAMS
    cbSize As Long
    iTabLength As Long
    iLeftMargin As Long
    iRightMargin As Long
    uiLengthDrawn As Long
End Type
cbSize
構造体のサイズをバイト単位で指定します。

iTabLength
タブ文字を展開する際の空白文字の数を指定します。

iLeftMargin
左マージンを、平均文字幅単位で指定します。

iRightMargin
右マージンを、平均文字幅単位で指定します。

uiLengthDrawn
DrawTextEx関数が成功すると、処理された文字列の文字数が格納されます。WindowsNT系OSでは、全角文字を 1 文字とカウントし、Windows9x系OSでは全角文字を 2 文字とカウントします。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み

DrawTextEx関数


 構造体: LOGFONT

フォント情報が格納されます。

定義
Type LOGFONT
    lfHeight As Long
    lfWidth As Long
    lfEscapement As Long
    lfOrientation As Long
    lfWeight As Long
    lfItalic As Byte
    lfUnderline As Byte
    lfStrikeOut As Byte
    lfCharSet As Byte
    lfOutPrecision As Byte
    lfClipPrecision As Byte
    lfQuality As Byte
    lfPitchAndFamily As Byte
    lfFaceName(LF_FACESIZE-1) As Byte
End Type
lfHeight
フォントの高さを論理単位で指定します。
0 以上のときは、文字セルの高さを示します。
0 のときは、デフォルトの高さになります。
0 以下のときは、文字の高さ（文字セルからスペース部分を取り除いた高さ）を示します。

lfWidth
フォントの幅を論理単位で指定します。
0 を指定すると、lfHeight メンバで指定した高さに見合った幅が、自動的に指定されます。

lfEscapement
行の角度を 0.1 単位で指定します。デフォルトは 0 です。

lfOrientation
ベースラインの角度を 0.1 単位で指定します。デフォルトは 0 です。

lfWeight
フォントの太さを、以下の定数から指定します。
定数 | 値
FW_DONTCARE | 0
FW_THIN | 100
FW_EXTRALIGHT | 200
FW_ULTRALIGHT | 200
FW_LIGHT | 300
FW_NORMAL | 400
FW_REGULAR | 400
FW_MEDIUM | 500
FW_SEMIBOLD | 600
FW_DEMIBOLD | 600
FW_BOLD | 700
FW_EXTRABOLD | 800
FW_ULTRABOLD | 800
FW_HEAVY | 900
FW_BLACK | 900

lfItalic
1 を指定するとイタリック体になります。デフォルトは 0 です。

lfUnderline
1 を指定すると下線付きのフォントになります。デフォルトは 0 です。

lfStrikeOut
1 を指定すると、打消しライン付きのフォントになります。デフォルトは 0 です。

lfCharSet
キャラクタセットを、以下の定数から指定します。
定数 | 説明
ANSI_CHARSET | Windows 文字セット
BALTIC_CHARSET |
CHINESEBIG5_CHARSET |
DEFAULT_CHARSET | 指定なし
EASTEUROPE_CHARSET |
GB2312_CHARSET |
GREEK_CHARSET |
HANGUL_CHARSET |
MAC_CHARSET |
OEM_CHARSET | OEM 文字セット
RUSSIAN_CHARSET |
SHIFTJIS_CHARSET | シフト JIS 文字セット
SYMBOL_CHARSET |
TURKISH_CHARSET |
JOHAB_CHARSET | 韓国版 Windows 用文字セット
THAI_CHARSET | タイ版 Windows 用文字セット

lfOutPrecision
出力精度を、以下の定数から指定します。
定数 | 説明
OUT_CHARACTER_PRECIS | 使用されません。
OUT_DEFAULT_PRECIS | デフォルトの動作に任せます。
OUT_DEVICE_PRECIS | 同じ名前のフォントが見つかったときは、デバイス フォントを使用します。
OUT_OUTLINE_PRECIS | 同じ名前のフォントが見つかったときは、TrueType や他のアウトラインベースのフォントを使用します（WindowsNT系OSのみ）。
OUT_RASTER_PRECIS | 同じ名前のフォントが見つかったときは、ラスタ フォントを使用します。
OUT_STRING_PRECIS | 使用されません。
OUT_STROKE_PRECIS | 同じ名前のフォントが見つかったときは、ベクトル フォントを使用します（Windows9x系OSのみ）。
OUT_TT_PRECIS | 同じ名前のフォントが見つかったときは、TrueType フォントを使用します。
OUT_TT_ONLY_PRECIS | TrueType フォントを使用します。TrueType フォントが組み込まれていないときは、デフォルトの動作になります。

lfClipPrecision
クリッピング精度を、以下の定数から指定します。
定数 | 説明
CLIP_DEFAULT_PRECIS | デフォルトの動作に任せます。
CLIP_CHARACTER_PRECIS | 使用されません。
CLIP_STROKE_PRECIS | 使用されません。
CLIP_MASK | 使用されません。
CLIP_EMBEDDED | 読み込み専用の埋め込みフォントです。
CLIP_LH_ANGLES | 座標系が右手座標系か左手座標系かによって、すべてのフォントの回転方向を決めるようにします。
CLIP_TT_ALWAYS | 使用されません。

lfQuality
出力品質を、以下の定数から指定します。
定数 | 説明
DEFAULT_QUALITY | フォントの文字品質は、重視されません。
DRAFT_QUALITY | フォントの文字品質は、PROOF_QUALITY フラグを指定したときほど重視されません。
PROOF_QUALITY | フォントの文字品質は、論理フォントの属性を正確に一致させることよりも重視されます。

lfPitchAndFamily
フォントのピッチ、およびファミリを、以下の定数を組み合わせて指定します。
定数 | 説明
DEFAULT_PITCH | ピッチはデフォルトの動作に任せます。
FIXED_PITCH | ピッチは固定長になります。
VARIABLE_PITCH | ピッチは可変長になります。
FF_DECORATIVE | 装飾付きフォントが指定されます（Old English など）。
FF_DONTCARE | 一般的なファミリが指定されます。
FF_MODERN | モノスペース フォントが指定されます（Pica、Elite、CourierNewなど）。
FF_ROMAN | セリフ（H、I などの上下にあるひげ飾り）のあるプロポーショナルフォントが指定されます（Times New Roman など）。
FF_SCRIPT | 手書き風のデザインのフォントが指定されます（Script、Cursive など）。
FF_SWISS | セリフ（H、I などの上下にあるひげ飾り）のないプロポーショナルフォントが指定されます。

lfFaceName(LF_FACESIZE-1)
フォント名を示す文字列を指定します。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み

CreateFontIndirect関数


 構造体: TEXTMETRIC

フォントの物理的な幅、高さなどの情報を論理単位で格納します。

定義
Type TEXTMETRIC
    tmHeight As Long
    tmAscent As Long
    tmDescent As Long
    tmInternalLeading As Long
    tmExternalLeading As Long
    tmAveCharWidth As Long
    tmMaxCharWidth As Long
    tmWeight As Long
    tmOverhang As Long
    tmDigitizedAspectX As Long
    tmDigitizedAspectY As Long
    tmFirstChar As Byte
    tmLastChar As Byte
    tmDefaultChar As Byte
    tmBreakChar As Byte
    tmItalic As Byte
    tmUnderlined As Byte
    tmStruckOut As Byte
    tmPitchAndFamily As Byte
    tmCharSet As Byte
End Type
tmHeight
フォントの高さが格納されます。文字の高さは tmAscent メンバと tmDescent メンバの和になります。

tmAscent
ベースラインから一番上までの高さが格納されます。

tmDescent
ベースラインから一番下までの高さが格納されます。

tmInternalLeading
tmHeight メンバが示す高さに含まれる、上部スペースの高さが格納されます。上部スペースには、アクセント記号などが描画されることがあります。

tmExternalLeading
フォントを描画する際の、行同士の幅が格納されます。

tmAveCharWidth
フォントの平均の幅が格納されます。イタリック体を描画すると、この幅を超える可能性があります。

tmMaxCharWidth
フォントを描画する際に必要な幅（もっとも広い幅）が格納されます。

tmWeight
フォントの太さが、以下の定数から格納されます。
定数 | 値
FW_DONTCARE | 0
FW_THIN | 100
FW_EXTRALIGHT | 200
FW_ULTRALIGHT | 200
FW_LIGHT | 300
FW_NORMAL | 400
FW_REGULAR | 400
FW_MEDIUM | 500
FW_SEMIBOLD | 600
FW_DEMIBOLD | 600
FW_BOLD | 700
FW_EXTRABOLD | 800
FW_ULTRABOLD | 800
FW_HEAVY | 900
FW_BLACK | 900

tmOverhang
太字やイタリック体などのフォントに付加される幅が格納されます。

tmDigitizedAspectX
デバイス コンテキストの水平アスペクト値が格納されます。

tmDigitizedAspectY
デバイス コンテキストの垂直アスペクト値が格納されます。

tmFirstChar
フォントに含まれる文字中の、先頭の文字コードが格納されます。

tmLastChar
フォントに含まれる文字中の、最後の文字コードが格納されます。

tmDefaultChar
フォントに含まれない文字を描画するための文字コードが格納されます。

tmBreakChar
単語と単語の間を示す文字コードが格納されます。

tmItalic
フォントがイタリック体のときは 0 以外の値が、そうでないときは 0 が格納されます。

tmUnderlined
下線付きフォントのときは 0 以外の値が、そうでないときは 0 が格納されます。

tmStruckOut
打ち消しフォントのときは 0 以外の値が、そうでないときは 0 が格納されます。

tmPitchAndFamily
下位 4 ビットにフォントのピッチおよび属性が格納されます。上位 4 ビットにファミリーに関する情報が格納されます。フォントのピッチ、属性、ファミリーは、以下の定数と値で指定されます。
※フォントのピッチおよび属性（下位 4 ビット）
定数 | 意味
TMPF_FIXED_PITCH | 可変ピッチ フォントです。
TMPF_VECTOR | ベクトル フォントです。
TMPF_TRUETYPE | TrueType フォントです。
TMPF_DEVICE | デバイス フォントです。

※フォント ファミリー（上位 4 ビット）
値 | 意味
0 (FF_DONTCARE / &H10000) | 一般的なファミリが指定されます。
1 (FF_ROMAN / &H10000) | セリフ（H、I などの上下にあるひげ飾り）のあるプロポーショナルフォントが指定されます（Times New Roman など）。
2 (FF_SWISS / &H10000) | セリフ（H、I などの上下にあるひげ飾り）のないプロポーショナルフォントが指定されます。
3 (FF_MODERN / &H10000) | モノスペース フォントが指定されます（Pica、Elite、CourierNewなど）。
4 (FF_SCRIPT / &H10000) | 手書き風のデザインのフォントが指定されます（Script、Cursive など）。
5 (FF_DECORATIVE / &H10000) | 装飾付きフォントが指定されます（Old English など）。

tmCharSet
フォントの文字セットが、以下の定数から格納されます。
定数 | 説明
ANSI_CHARSET | Windows 文字セット
BALTIC_CHARSET |
CHINESEBIG5_CHARSET |
DEFAULT_CHARSET | 指定なし
EASTEUROPE_CHARSET |
GB2312_CHARSET |
GREEK_CHARSET |
HANGUL_CHARSET |
MAC_CHARSET |
OEM_CHARSET | OEM 文字セット
RUSSIAN_CHARSET |
SHIFTJIS_CHARSET | シフト JIS 文字セット
SYMBOL_CHARSET |
TURKISH_CHARSET |
JOHAB_CHARSET | 韓国版 Windows 用文字セット
THAI_CHARSET | タイ版 Windows 用文字セット

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み

GetTextMetrics関数


 Win32API: Arc

楕円弧を描画します。

定義
Declare Function Arc Lib "gdi32" _
   (hdc As HDC, _
    nLeftRect As Long, _
    nTopRect As Long, _
    nRightRect As Long, _
    nBottomRect As Long, _
    nXStartArc As Long, _
    nYStartArc As Long, _
    nXEndArc As Long, _
    nYEndArc As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

nLeftRect
楕円に外接する長方形の左上隅の X 座標を指定します。

nTopRect
楕円に外接する長方形の左上隅の Y 座標を指定します。

nRightRect
楕円に外接する長方形の右下隅の X 座標を指定します。

nBottomRect
楕円に外接する長方形の右下隅の Y 座標を指定します。

nXStartArc
楕円弧の始点の X 座標を指定します。

nYStartArc
楕円弧の始点の Y 座標を指定します。

nXEndArc
楕円弧の終点の X 座標を指定します。

nYEndArc
楕円弧の終点の Y 座標を指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

円の中心から (nXStartArc, nYStartArc)、(nXEndArc, nYEndArc) に向けた直線と、円の交点が始点、終点となります。
通常、円の描画方向は反時計回りです。
デバイス コンテキストで選択されているペンで描画します。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

Chord関数、Ellipse関数、Pie関数


 Win32API: LineTo

カレントポジションから指定した終点に向けて、線を描画します。

定義
Declare Function LineTo Lib "gdi32" _
   (hdc As HDC, _
    nXEnd As Long, _
    nYEnd As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

nXEnd
線の終点の X 座標を指定します。

nYEnd
線の終点の Y 座標を指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

線はデバイス コンテキストで選択されているペンで描画されます。
終点は描画されません。
関数が成功すると、指定した終点がカレントポジションに設定されます。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

MoveToEx関数


 Win32API: MoveToEx

指定したデバイス コンテキストのカレントポジションを更新します。

定義
Declare Function MoveToEx Lib "gdi32" _
         (hdc As HDC, _
          x As Long, _
          y As Long, _
    ByRef lpPoint As POINTAPI) As Long
hdc
デバイス コンテキストのハンドルを指定します。

x
新しいカレントポジションの X 座標を指定します。

y
新しいカレントポジションの Y 座標を指定します。

lpPoint （ポインタ参照）
POINTAPI構造体へのポインタを指定します。この構造体に以前のカレントポジションが格納されます。不要のときは、NULL を指定することができます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

LineTo関数、GetCurrentPositionEx関数、POINTAPI構造体


 Win32API: PolyBezier

ベジェ曲線を描画します。

定義
Declare Function PolyBezier Lib "gdi32" _
         (hdc As HDC, _
    ByRef lppt As POINTAPI, _
          cPoints As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

lppt （ポインタ参照）
座標データが格納されている、POINTAPI構造体配列へのポインタを指定します。

cPoints
lppt パラメータで指定した配列の数を指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

カレントポジションの使用、更新は行いません。
一本のベジェ線を描画するときは、「始点」「制御点1」「制御点2」「終点」という順序で座標を指定します。
連結した複数のベジェ線を描画するときは、「始点」「制御点1」「制御点2」「次の始点」「制御点1」「制御点2」…「終点」という順序で座標を指定します。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

PolyBezierTo関数


 Win32API: PolyBezierTo

ベジェ曲線を描画します（カレントポジションを使用します）。

定義
Declare Function PolyBezierTo Lib "gdi32" _
         (hdc As HDC, _
    ByRef lppt As POINTAPI, _
          cPoints As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

lppt （ポインタ参照）
座標データが格納されている、POINTAPI構造体配列へのポインタを指定します。

cPoints
lppt パラメータで指定した配列の数を指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

始点はカレントポジションです。関数が成功すると、カレントポジションが終点に変更されます。
一本のベジェ線を描画するときは、「制御点1」「制御点2」「終点」という順序で座標を指定します。
連結した複数のベジェ線を描画するときは、「制御点1」「制御点2」「次の始点」「制御点1」「制御点2」…「終点」という順序で座標を指定します。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

PolyBezier関数


 Win32API: Polyline

連結した線を描画します。

定義
Declare Function Polyline Lib "gdi32" _
         (hdc As HDC, _
    ByRef lppt As POINTAPI, _
          cPoints As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

lppt （ポインタ参照）
座標データが格納されている、POINTAPI構造体配列へのポインタを指定します。

cPoints
lppt パラメータで指定した配列の数を指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

カレントポジションの使用、更新は行いません。
lppt パラメータで指定した複数の座標は、順に連結されます。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

PolylineTo関数、POINTAPI構造体


 Win32API: PolylineTo

連結した線を描画します（カレントポジションを使用します）。

定義
Declare Function PolylineTo Lib "gdi32" _
         (hdc As HDC, _
    ByRef lppt As POINTAPI, _
          cPoints As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

lppt （ポインタ参照）
座標データが格納されている、POINTAPI構造体配列へのポインタを指定します。

cPoints
lppt パラメータで指定した配列の数を指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

始点はカレントポジションです。関数が成功すると、カレントポジションが終点に変更されます。
lppt パラメータで指定した複数の座標は、順に連結されます。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

Polyline関数、POINTAPI構造体


 Win32API: AbortPath

指定したデバイス コンテキストのパスを破棄します。パスがオープンされているときは、クローズして破棄します。

定義
Declare Function AbortPath Lib "gdi32" _
   (hdc As HDC) As Long
hdc
デバイス コンテキストのハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

BeginPath関数、EndPath関数


 Win32API: BeginPath

指定したデバイス コンテキストのパスをオープンします。

定義
Declare Function BeginPath Lib "gdi32" _
   (hdc As HDC) As Long
hdc
デバイス コンテキストのハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

この関数を呼び出すと、以前のパスは破棄されます。
パスがオープンされたら、描画関数を使用して、パスを構成する点を描画して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

EndPath関数


 Win32API: CloseFigure

指定したデバイス コンテキストのパス内の開いた図形を、閉じた図形にします。

定義
Declare Function CloseFigure Lib "gdi32" _
   (hDC As HDC) As Long
hDC
デバイス コンテキストのハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

この関数を呼び出すときは、パスがオープンされている必要があります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

BeginPath関数、EndPath関数


 Win32API: EndPath

指定したデバイス コンテキストのパスをクローズします。

定義
Declare Function EndPath Lib "gdi32" _
   (hdc As HDC) As Long
hdc
デバイス コンテキストのハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

この関数を呼び出す前に、BeginPath関数を使用してパスをオープンしておく必要があります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

BeginPath関数


 Win32API: FillPath

指定したデバイス コンテキストのパスの内部を、現在のブラシと設定されている多角形塗りつぶしモードで塗りつぶします。パス内の図形が開いている場合は、閉じた図形にされます。

定義
Declare Function FillPath Lib "gdi32" _
   (hdc As HDC) As Long
hdc
デバイス コンテキストのハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

塗りつぶしが終了すると、パスは破棄されます。
hDC パラメータで指定したデバイス コンテキストは、クローズされているパスを所有していなければなりません。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

BeginPath関数、EndPath関数、SetPolyFillMode関数


 Win32API: GetMiterLimit

指定したデバイス コンテキストのマイター制御値を取得します。

定義
Declare Function GetMiterLimit Lib "gdi32" _
   (hdc As HDC, _
    peLimit As SinglePtr) As Long
hdc
デバイス コンテキストのハンドルを指定します。

peLimit
Single 型変数へのポインタを指定します。ここで指定した変数に、マイター制御値が格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

SetMiterLimit関数


 Win32API: GetPath

パスを構成する点に関する情報を取得します。

定義
Declare Function GetPath Lib "gdi32" _
         (hdc AS HDC, _
    ByRef lpPoints As POINTAPI, _
          lpTypes As BytePtr, _
          nSize As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

lpPoints （ポインタ参照）
POINTAPI構造体へのポインタを指定します。この構造体にパスを構成する点の座標が格納されます。

lpTypes
Byte 型配列へのポインタを指定します。この配列に、lpPoints パラメータで指定した配列に格納される点の属性が、以下の定数で格納されます。
定数 | 説明
PT_MOVETO | lpPoints 配列内の対応する点は、直線またはベジェ曲線の始点です。
PT_LINETO | lpPoints 配列内の対応する点は、直線の端点です。1 つ前の点と結ばれます。
PT_BEZIERTO | lpPoints 配列内の対応する点は、ベジェ曲線の制御点か、ベジェ曲線の端点です。このタイプは常に 3 つ 1 組で現れます。最初の 2 つが制御点、最後の 1 つが端点です。
PT_CLOSEFIGURE | lpPoints 配列内の対応する点は、直線またはベジェ曲線の終点です。

nSize
lpPoints パラメータおよび lpTypes パラメータで指定した配列の要素数を指定します。

戻り値

nSize パラメータに 0 以外の値を指定したときに関数が成功すると、格納された点の数が返ります。
nSize パラメータに 0 以外の値を指定し、点が格納しきれなかったときは、-1 が返ります。
nSize パラメータに 0 を指定したときは、パス内の点の数が返ります。

解説

hDC パラメータで指定したデバイス コンテキストは、クローズされているパスを所有していなければなりません。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

POINTAPI構造体


 Win32API: PathToRegion

指定したデバイス コンテキストのパスをもとに、リージョンを作成します。

定義
Declare Function PathToRegion Lib "gdi32" _
   (hdc As HDC) As HRGN
hdc
デバイス コンテキストのハンドルを指定します。

戻り値

関数が成功すると、リージョン ハンドルが返ります。失敗すると、0 が返ります。

解説

hDC パラメータで指定したデバイス コンテキストは、クローズされているパスを所有していなければなりません。
リージョンが作成されると、パスは破棄されます。
リージョンが不要になったら、DeleteObject関数を使用してメモリから解放して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

DeleteObject関数


 Win32API: SetMiterLimit

指定したデバイス コンテキストのマイター制御値を設定します。

定義
Declare Function SetMiterLimit Lib "gdi32" _
   (hdc As HDC, _
    eNewLimit As Single, _
    peOldLimit As SinglePtr) As Long
hdc
デバイス コンテキストのハンドルを指定します。

eNewLimit
新しいマイター制御値を指定します。

peOldLimit
Single 型変数へのポインタを指定します。ここで指定した変数に、以前のマイター制御値が格納されます。不要なときは、NULL を指定することができます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

GetMiterLimit関数


 Win32API: StrokeAndFillPath

パスの輪郭を現在のペンで描画し、パスの内部を現在のブラシと設定されている多角形塗りつぶしモードで塗りつぶします。パス内の図形が開いている場合は、閉じた図形にされます。

定義
Declare Function StrokeAndFillPath Lib "gdi32" _
   (hdc As HDC) As Long
hdc
デバイス コンテキストのハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

hDC パラメータで指定したデバイス コンテキストは、クローズされているパスを所有していなければなりません。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

StrokePath関数、SetPolyFillMode関数


 Win32API: StrokePath

パスの輪郭を現在のペンで描画します。

定義
Declare Function StrokePath Lib "gdi32" _
   (hdc As HDC) As Long
hdc
デバイス コンテキストのハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

hDC パラメータで指定したデバイス コンテキストは、クローズされているパスを所有していなければなりません。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

StrokeAndFillPath関数


 Win32API: CreatePen

論理ペンを作成します。

定義
Declare Function CreatePen Lib "gdi32" _
   (nPenStyle As Long, _
    nWidth As Long, _
    crColor As DWord) As HPEN
nPenStyle
ペンのスタイルを、以下の定数から指定します。
定数 | 説明
PS_SOLID | 実践のペンを作成します。
PS_DASH | 破線のペンを作成します。このスタイルは、ペンの幅が 1 以下のときにのみ有効です。
PS_DOT | 点線のペンを作成します。このスタイルは、ペンの幅が 1 以下のときにのみ有効です。
PS_DASHDOT | 一点鎖線のペンを作成します。このスタイルは、ペンの幅が 1 以下のときにのみ有効です。
PS_DASHDOTDOT | 二点鎖線のペンを作成します。このスタイルは、ペンの幅が 1 以下のときにのみ有効です。
PS_NULL | 描画を行わない、空のペンを作成します。
PS_INSIDEFRAME | 実線のペンを作成します。境界長方形を指定する GDI 描画関数（Rectangle関数や Ellipse関数など）でこのペンを使うと、その長方形に完全に収まるように図形が縮小されます。ジオメトリックペンにのみ有効です。

nWidth
ペンの幅をピクセル単位で指定します。0 を指定すると、常に1 ピクセルになります。

crColor
ペンの色を指定します。

戻り値

関数が成功すると、作成された論理ペンのハンドルが返ります。失敗すると、0 が返ります。

解説

ペンが不要になったら、DeleteObject関数を使用してメモリから解放して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

CreatePenIndirect関数、ExtCreatePen関数


 Win32API: CreatePenIndirect

LOGPEN構造体の内容をもとに、論理ペンを作成します。

定義
Declare Function CreatePenIndirect Lib "gdi32" _
   (ByRef lplgpn As LOGPEN) As HPEN
lplgpn （ポインタ参照）
論理ペンに関する情報が格納されている、LOGPEN構造体へのポインタを指定します。

戻り値

関数が成功すると、作成された論理ペンのハンドルが返ります。失敗すると、0 が返ります。

解説

ペンが不要になったら、DeleteObject関数を使用してメモリから解放して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

LOGPEN構造体、CreatePen関数、ExtCreatePen関数


 Win32API: ExtCreatePen

指定したスタイル、幅、ブラシ属性を持つ、論理ペンを作成します。

定義
Declare Function ExtCreatePen Lib "gdi32" _
         (dwPenStyle As DWord, _
          dwWidth As DWord, _
    ByRef lplb As LOGBRUSH, _
          dwStyleCount As DWord, _
          lpStyle As DWordPtr) As HPEN
dwPenStyle
作成するペンに関する情報を、以下の定数を組み合わせて指定します。

※ペンの種類
定数 | 説明
PS_GEOMETRIC | ジオメトリックペンを作成します。
PS_COSMETIC | コスメティックペンを作成します。

※ペンのスタイル
定数 | 説明
PS_ALTERNATE | 1 ピクセルおきに描画されるペンを作成します（コスメティックペンのみ、WindowsNT系OSのみ）。
PS_SOLID | 実践のペンを作成します。
PS_DASH | 破線のペンを作成します。このスタイルは、ペンの幅が 1 以下のときにのみ有効です。
PS_DOT | 点線のペンを作成します。このスタイルは、ペンの幅が 1 以下のときにのみ有効です。
PS_DASHDOT | 一点鎖線のペンを作成します。このスタイルは、ペンの幅が 1 以下のときにのみ有効です。
PS_DASHDOTDOT | 二点鎖線のペンを作成します。このスタイルは、ペンの幅が 1 以下のときにのみ有効です。
PS_NULL | 描画を行わない、空のペンを作成します。
PS_USERSTYLE | lpStyle パラメータを有効にします（WindowsNT系OSのみ）。
PS_INSIDEFRAME | 実線のペンを作成します。境界長方形を指定する GDI 描画関数（Rectangle関数や Ellipse関数など）でこのペンを使うと、その長方形に完全に収まるように図形が縮小されます。ジオメトリックペンにのみ有効です。

※端点キャップ（ジオメトリックペンのみ）
定数 | 説明
PS_ENDCAP_ROUND | 端点キャップを丸くします。
PS_ENDCAP_SQUARE | 端点キャップを四角にします。
PS_ENDCAP_FLAT | 端点キャップを平らにします。

※結合属性（ジオメトリックペンのみ）
定数 | 説明
PS_JOIN_BEVEL | 結合部分が平らになります（ベベル接合）。
PS_JOIN_MITER | 接合がSetMiterLimit関数で設定した範囲内にあれば、マイター接合になります（結合部分が尖ります）。この範囲を超えていれば、ベベル接合になります。
PS_JOIN_ROUND | 結合部分が丸くなります（ラウンド結合）。

dwWidth
ペンの幅をピクセル単位で指定します。コスメティックペンを作成する場合は、1 を指定しなければなりません。

lplb （ポインタ参照）
ブラシに関する情報が格納されている、LOGBRUSH構造体へのポインタを指定します。

dwStyleCount
lpStyle パラメータで指定する配列の要素数を指定します。dwPenStyle パラメータで PS_USERSTYLE フラグを設定しなかったときは、0 を指定して下さい。

lpStyle
DWORD 型の配列へのポインタを指定します。1 番目の要素には破線の長さ、2 番目の要素には最初の空白の長さを入れ、以下同様に続きます。dwPenStyle パラメータで PS_USERSTYLE フラグを設定しなかったときは、NULL を指定して下さい。

戻り値

関数が成功すると、作成された論理ペンのハンドルが返ります。失敗すると、0 が返ります。

解説

ペンが不要になったら、DeleteObject関数を使用してメモリから解放して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

CreatePen関数、CreatePenIndirect関数


 構造体: LOGPEN

論理ペンのスタイル、幅、色を定義します。

定義
Type LOGPEN
    lopnStyle As Long
    lopnWidth As POINTAPI
    lopnColor As Long
End Type
lopnStyle
ペンのスタイルを、以下の定数から指定します。
定数 | 説明
PS_SOLID | 実践のペンを作成します。
PS_DASH | 破線のペンを作成します。このスタイルは、ペンの幅が 1 以下のときにのみ有効です。
PS_DOT | 点線のペンを作成します。このスタイルは、ペンの幅が 1 以下のときにのみ有効です。
PS_DASHDOT | 一点鎖線のペンを作成します。このスタイルは、ペンの幅が 1 以下のときにのみ有効です。
PS_DASHDOTDOT | 二点鎖線のペンを作成します。このスタイルは、ペンの幅が 1 以下のときにのみ有効です。
PS_NULL | 描画を行わない、空のペンを作成します。
PS_INSIDEFRAME | 実線のペンを作成します。境界長方形を指定する GDI 描画関数（Rectangle関数や Ellipse関数など）でこのペンを使うと、その長方形に完全に収まるように図形が縮小されます。ジオメトリックペンにのみ有効です。

lopnWidth
x メンバに、ペンの幅をピクセル単位で指定します。0 を指定すると、常に1 ピクセルになります。
y メンバは無視されます。

lopnColor
ペンの色を指定します。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み

CreatePenIndirect関数


 Win32API: CombineRgn

指定された 2 つのリージョンを結合し、新しいリージョンを作成します。

定義
Declare Function CombineRgn Lib "gdi32" _
   (hrgnDest As HRGN, _
    hrgnSrc1 As HRGN, _
    hrgnSrc2 As HRGN, _
    fnCombineMode As Long) As Long
hrgnDest
結合された新しいリージョンを割り当てるための、既存のリージョン ハンドルを指定します。

hrgnSrc1
1 つ目のリージョンのハンドルを指定します。

hrgnSrc2
2 つ目のリージョンのハンドルを指定します。

fnCombineMode
2 つのリージョンの結合方法を、以下の定数から指定します。
定数 | 説明
RGN_AND | 2 つのリージョンが重なり合う領域を、新しいリージョンにします。
RGN_COPY | hrgnSrc1 パラメータで指定したリージョンのコピーを作成します。
RGN_DIFF | hrgnSrc1 パラメータで指定したリージョンから、hrgnSrc2 パラメータで指定したリージョンを除いた領域を、新しいリージョンにします。
RGN_OR | 2 つのリージョンを組み合わせた領域を、新しいリージョンにします。
RGN_XOR | 2 つのリージョンを組み合わせた領域から、2 つのリージョンが重なり合う領域を除いた領域を、新しいリージョンにします。

戻り値

関数が成功すると、リージョンの複雑度が以下の定数から返ります。失敗すると、0 が返ります。
定数 | 説明
NULLREGION | リージョンは空です。
SIMPLEREGION | リージョンは単一の長方形です。
COMPLEXREGION | リージョンは単一の長方形より複雑な形です。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll


 Win32API: CreateEllipticRgn

楕円形のリージョンを作成します。

定義
Declare Function CreateEllipticRgn Lib "gdi32" _
   (nLeftRect As Long, _
    nTopRect As Long, _
    nRightRect As Long, _
    nBottomRect As Long) As HRGN
nLeftRect
楕円に外接する長方形の左上隅の X 座標を指定します。

nTopRect
楕円に外接する長方形の左上隅の Y 座標を指定します。

nRightRect
楕円に外接する長方形の右下隅の X 座標を指定します。

nBottomRect
楕円に外接する長方形の右下隅の Y 座標を指定します。

戻り値

関数が成功すると、リージョン ハンドルが返ります。失敗すると、0 が返ります。

解説

リージョンが不要になったら、DeleteObject関数を使用してメモリから解放して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

CreateEllipticRgnIndirect関数、DeleteObject関数


 Win32API: CreateEllipticRgnIndirect

指定された RECT 構造体をもとに、楕円形のリージョンを作成します。

定義
Declare Function CreateEllipticRgnIndirect Lib "gdi32" _
   (ByRef lpRect As RECT) As HRGN
lpRect （ポインタ参照）
楕円に外接する長方形の左上隅および右下隅の座標が格納されている、RECT構造体へのポインタを指定します。

戻り値

関数が成功すると、リージョン ハンドルが返ります。失敗すると、0 が返ります。

解説

リージョンが不要になったら、DeleteObject関数を使用してメモリから解放して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

CreateEllipticRgn関数、DeleteObject関数、RECT構造体


 Win32API: CreatePolygonRgn

多角形のリージョンを作成します。

定義
Declare Function CreatePolygonRgn Lib "gdi32" _
   (ByRef lpPoints As POINTAPI, _
          cPoints As Long, _
          fnPolyFillMode As Long) As HRGN
lpPoints （ポインタ参照）
多角形の頂点の座標が格納されている、POINTAPI構造体配列へのポインタを指定します。

cPoints
lpPoints パラメータで指定した配列の要素数（頂点の数）を指定します。

fnPolyFillMode
多角形塗りつぶしモードを、以下の定数から指定します。
定数 | 説明
ALTERNATE | 交互モードで塗りつぶします（各走査行について、多角形の奇数番号の辺から偶数番号の辺までの間の領域を塗りつぶします）。
WINDING | 全域モードで塗りつぶします（0 以外のワインディング値をもつすべての領域を塗りつぶします）。

戻り値

関数が成功すると、リージョン ハンドルが返ります。失敗すると、0 が返ります。

解説

リージョンが不要になったら、DeleteObject関数を使用してメモリから解放して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

DeleteObject関数、POINTAPI構造体


 Win32API: CreateRectRgn

長方形のリージョンを作成します。

定義
Declare Function CreateRectRgn Lib "gdi32" _
   (nLeftRect As Long, _
    nTopRect As Long, _
    nRightRect As Long, _
    nBottomRect As Long) As HRGN
nLeftRect
長方形の左上隅の X 座標を指定します。

nTopRect
長方形の左上隅の Y 座標を指定します。

nRightRect
長方形の右下隅の X 座標を指定します。

nBottomRect
長方形の右下隅の Y 座標を指定します。

戻り値

関数が成功すると、リージョン ハンドルが返ります。失敗すると、0 が返ります。

解説

長方形の右辺と下辺はリージョンに含まれません。
リージョンが不要になったら、DeleteObject関数を使用してメモリから解放して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

CreateRectRgnIndirect関数、DeleteObject関数


 Win32API: CreateRectRgnIndirect

指定された RECT 構造体をもとに、長方形のリージョンを作成します。

定義
Declare Function CreateRectRgnIndirect Lib "gdi32" _
   (ByRef lpRect As RECT) As HRGN
lpRect （ポインタ参照）
長方形の左上隅および右下隅の座標が格納されている、RECT構造体へのポインタを指定します。

戻り値

関数が成功すると、リージョン ハンドルが返ります。失敗すると、0 が返ります。

解説

長方形の右辺と下辺はリージョンに含まれません。
リージョンが不要になったら、DeleteObject関数を使用してメモリから解放して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

CreateRectRgn関数、DeleteObject関数、RECT構造体


 Win32API: CreateRoundRectRgn

角の丸い長方形のリージョンを作成します。

定義
Declare Function CreateRoundRectRgn Lib "gdi32" _
   (nLeftRect As Long, _
    nTopRect As Long, _
    nRightRect As Long, _
    nBottomRect As Long, _
    nWidthEllipse As Long, _
    nHeightEllipse As Long) As HRGN
nLeftRect
長方形の左上隅の X 座標を指定します。

nTopRect
長方形の左上隅の Y 座標を指定します。

nRightRect
長方形の右下隅の X 座標を指定します。

nBottomRect
長方形の右下隅の Y 座標を指定します。

nWidthEllipse
角の丸みの幅を指定します。

nHeightEllipse
角の丸みの高さを指定します。

戻り値

関数が成功すると、リージョン ハンドルが返ります。失敗すると、0 が返ります。

解説

リージョンが不要になったら、DeleteObject関数を使用してメモリから解放して下さい。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

CreateRectRgn関数、DeleteObject関数


 Win32API: EqualRgn

指定した 2 つのリージョンが等しいかどうかを調べます。

定義
Declare Function EqualRgn Lib "gdi32" _
   (hSrcRgn1 As HRGN, _
    hSrcRgn2 As HRGN) As Long
hSrcRgn1
1 つ目のリージョンのハンドルを指定します。

hSrcRgn2
2 つ目のリージョンのハンドルを指定します。

戻り値

2 つのリージョンが等しいときは、TRUE が返ります。等しくないときは、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll


 Win32API: FillRgn

指定したリージョンが示す領域を、指定したブラシで塗りつぶします。

定義
Declare Function FillRgn Lib "gdi32" _
   (hdc As HDC, _
    hRgn As HRGN, _
    hBrush As HBRUSH) As Long
hdc
デバイス コンテキストのハンドルを指定します。

hRgn
リージョン ハンドルを指定します。

hBrush
ブラシ ハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

FrameRgn関数、PaintRgn関数


 Win32API: FrameRgn

指定したリージョンの境界を、指定したブラシで描画します。

定義
Declare Function FrameRgn Lib "gdi32" _
   (hdc As HDC, _
    hRgn As HRGN, _
    hBrush As HBRUSH, _
    nWidth As Long, _
    nHeight As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

hRgn
リージョン ハンドルを指定します。

hBrush
ブラシ ハンドルを指定します。

nWidth
垂直方向の境界線の幅を指定します。

nHeight
水平方向の境界線の幅を指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

FillRgn関数、PaintRgn関数


 Win32API: GetPolyFillMode

指定したデバイス コンテキストの現在の多角形塗りつぶしモードを取得します。

定義
Declare Function GetPolyFillMode Lib "gdi32" _
   (hdc As HDC) As Long
hdc
デバイス コンテキストのハンドルを指定します。

戻り値

関数が成功すると、多角形塗りつぶしモードが以下の定数から返ります。失敗すると、0 が返ります。
定数 | 説明
ALTERNATE | 交互モードで塗りつぶします（各走査行について、多角形の奇数番号の辺から偶数番号の辺までの間の領域を塗りつぶします）。
WINDING | 全域モードで塗りつぶします（0 以外のワインディング値をもつすべての領域を塗りつぶします）。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

SetPolyFillMode関数


 Win32API: GetRgnBox

指定したリージョンを含む、最も小さい長方形（境界長方形）の座標を取得します。

定義
Declare Function GetRgnBox Lib "gdi32" _
         (hRgn As HRGN, _
    ByRef lpRect As RECT) As Long
hRgn
リージョン ハンドルを指定します。

lpRect （ポインタ参照）
RECT構造体へのポインタを指定します。この構造体に、指定したリージョンを含む、最も小さい長方形の、左上隅および右上隅の座標が格納されます。

戻り値

関数が成功すると、リージョンの複雑度が以下の定数から返ります。失敗すると、0 が返ります。
定数 | 説明
NULLREGION | リージョンは空です。
SIMPLEREGION | リージョンは単一の長方形です。
COMPLEXREGION | リージョンは単一の長方形より複雑な形です。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

RECT構造体


 Win32API: InvertRgn

指定したリージョン内の色を反転します。

定義
Declare Function InvertRgn Lib "gdi32" _
   (hdc As HDC, _
    hRgn As HRGN) As Long
hdc
デバイス コンテキストのハンドルを指定します。

hRgn
リージョン ハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll


 Win32API: OffsetRgn

指定したリージョンを、指定したオフセットの値だけ移動します。

定義
Declare Function OffsetRgn Lib "gdi32" _
   (hRgn As HRGN, _
    nXOffset As Long, _
    nYOffset As Long) As Long
hRgn
リージョン ハンドルを指定します。

nXOffset
X 座標方向のオフセットを指定します。この値が 0 以上のときは右に、0 以下のときは左に移動します。

nYOffset
Y 座標方向のオフセットを指定します。この値が 0 以上のときは下に、0 以下のときは上に移動します。

戻り値

関数が成功すると、リージョンの複雑度が以下の定数から返ります。失敗すると、0 が返ります。
定数 | 説明
NULLREGION | リージョンは空です。
SIMPLEREGION | リージョンは単一の長方形です。
COMPLEXREGION | リージョンは単一の長方形より複雑な形です。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll


 Win32API: PaintRgn

指定したリージョンが示す領域を、指定したデバイス コンテキストで選択されているブラシで塗りつぶします。

定義
Declare Function PaintRgn Lib "gdi32" _
   (hdc As HDC, _
    hRgn As HRGN) As Long
hdc
デバイス コンテキストのハンドルを指定します。

hRgn
リージョン ハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

FillRgn関数


 Win32API: PtInRegion

指定した点が、指定したリージョンの領域内にあるかどうかを調べます。

定義
Declare Function PtInRegion Lib "gdi32" _
   (hRgn As HRGN, _
    x As Long, _
    y As Long) As Long
hRgn
リージョン ハンドルを指定します。

x
調査する点の X 座標を指定します。

y
調査する点の Y 座標を指定します。

戻り値

点がリージョン内に含まれているときは、TRUE が返ります。それ以外の場合は、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

RectInRegion関数


 Win32API: RectInRegion

指定した長方形が、指定したリージョンの領域内にあるかどうかを調べます。

定義
Declare Function RectInRegion Lib "gdi32" _
         (hRgn As HRGN, _
    ByRef lpRect As RECT) As Long
hRgn
リージョン ハンドルを指定します。

lpRect （ポインタ参照）
調査する長方形の左上隅および右下隅の座標が格納されている、RECT構造体へのポインタを指定します。

戻り値

長方形がリージョン内に含まれているときは、TRUE が返ります。それ以外の場合は、FALSE が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

PtInRegion関数


 Win32API: SetPolyFillMode

多角形塗りつぶしモードを設定します。

定義
Declare Function SetPolyFillMode Lib "gdi32" _
   (hdc As HDC, _
    iPolyFillMode As Long) As Long
hdc
デバイス コンテキストのハンドルを指定します。

iPolyFillMode
新しく設定する多角形塗りつぶしモードを、以下の定数から指定します。
定数 | 説明
ALTERNATE | 交互モードで塗りつぶします（各走査行について、多角形の奇数番号の辺から偶数番号の辺までの間の領域を塗りつぶします）。
WINDING | 全域モードで塗りつぶします（0 以外のワインディング値をもつすべての領域を塗りつぶします）。

戻り値

関数が成功すると、以前の塗りつぶしモードが返ります。失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

GetPolyFillMode関数


 Win32API: SetRectRgn

指定したリージョンの形を、指定した長方形に変更します。

定義
Declare Function SetRectRgn Lib "gdi32" _
   (hRgn As HRGN, _
    nLeftRect As Long, _
    nTopRect As Long, _
    nRightRect As Long, _
    nBottomRect As Long) As Long
hRgn
既存のリージョン ハンドルを指定します。

nLeftRect
新しく設定する長方形の左上隅の X 座標を指定します。

nTopRect
新しく設定する長方形の左上隅の Y 座標を指定します。

nRightRect
新しく設定する長方形の右下隅の X 座標を指定します。

nBottomRect
新しく設定する長方形の右下隅の Y 座標を指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

長方形の右辺と下辺は、リージョンに含まれません。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み
DLLファイル: gdi32.dll

CreateRectRgn関数


 Win32API: FreeLibrary

呼び出し側プロセスのアドレス空間にロードされているDLLモジュールを解放します。

定義
Declare Function FreeLibrary Lib "kernel32" _
         (hLibModule As DWord) As Long
hLibModule
DLLモジュールを示すハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll
エラー情報: GetLastError関数で取得可能

LoadLibrary関数


 Win32API: GetModuleFileName

指定されたモジュールのファイルパスを取得します。

定義
Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" _
   (hModule As DWord, _
    lpFileName As BytePtr, _
    nSize As DWord) As DWord
hModule
モジュールのインスタンスハンドルを指定します。

lpFileName
ファイルパスを格納するためのファイルバッファへのポインタを指定します。

nSize
lpFileName パラメータで指定したバッファのサイズをバイト単位で指定します。

戻り値

関数が成功すると、バッファにコピーされた文字列の文字数が返ります。失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll
エラー情報: GetLastError関数で取得可能

GetModuleHandle関数


 Win32API: GetModuleHandle

呼び出し側プロセスのアドレス空間にロードされているモジュールのインスタンスハンドルを取得します。

定義
Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" _
   (lpModuleName As BytePtr) As DWord
lpModuleName
取得するモジュールのファイル名を指定します。拡張子を省略すると、".dll" が適応されます。拡張子がないときは、"." を付加しておいて下さい。
呼び出し側プロセスの作成を行ったモジュールのインスタンスハンドルを取得するときは、NULL を指定します。

戻り値

関数が成功すると、インスタンスハンドルが返ります。失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll
エラー情報: GetLastError関数で取得可能

GetModuleFileName関数


 Win32API: GetProcAddress

呼び出し側プロセスのアドレス空間に展開されているDLLモジュール内から、指定した名前を持つプロシージャの先頭アドレスを取得します。

定義
Declare Function GetProcAddress Lib "kernel32" _
         (hModule As HINSTANCE, _
          lpProcName As BytePtr) As DWord
hModule
モジュール ハンドルを指定します。

lpProcName
プロシージャ名を指定します。

戻り値

関数が成功すると、プロシージャの先頭アドレスが返ります。失敗すると、0 が返ります。

解説

取得できるプロシージャは、エクスポート指定されている関数のみになります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll
エラー情報: GetLastError関数で取得可能

LoadLibrary関数


 Win32API: LoadLibrary

指定したDLLモジュールを、呼び出し側プロセスのアドレス空間に展開します。

定義
Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" _
         (lpLibFileName As BytePtr) As HINSTANCE
lpLibFileName
DLLモジュールのファイル パスを指定します。

戻り値

関数が成功すると、DLLモジュールを示すハンドルが返ります。失敗すると、0 が返ります。

※拡張エラー情報は、GetLastError関数で取得できます。

解説

不要になったモジュールハンドルはFreeLibrary関数を使用してメモリから破棄して下さい。

DLLモジュールがアドレス空間に展開されると、DLLモジュール内のDllMain関数が、fdwReason パラメータに DLL_PROCESS_ATTACH フラグがセットされた状態で呼び出されます。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll
エラー情報: GetLastError関数で取得可能

FreeLibrary関数、GetProcAddress関数


 Win32API: Beep

スピーカーからビープ音を鳴らします。

定義
Declare Function Beep Lib "kernel32" _
   (dwFreq As DWord, _
    dwDuration As DWord) As Long
dwFreq
音の周波数をヘルツ単位で指定します（WindowsNT系OSのみ）。
Windows9x系OSでは、このパラメータは無視されます。

dwDuration
ビープ音の再生時間を、ミリ秒単位で指定します（WindowsNT系OSのみ）。
Windows9x系OSでは、このパラメータは無視されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

※拡張エラー情報は、GetLastError関数で取得できます。

解説

Windows9x系OSでは、一般の警告音が鳴ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

MessageBeep関数


 Win32API: FlashWindow

ウィンドウのタイトル バーを点滅させます。

定義
Declare Function FlashWindow Lib "user32" _
   (hWnd As HWND, _
    bInvert As Long) As Long
hWnd
ウィンドウ ハンドルを指定します。

bInvert
TRUE を指定すると、点滅オンのときはオフになり、オフのときはオンになります。
FALSE を指定すると、オフになります。

戻り値

関数を呼び出す前の点滅状態が返ります。

解説

連続してタイトル バーを点滅させる場合は、タイマー イベントを使用して下さい。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

SetTimer関数


 Win32API: GetLastError

呼び出し側スレッドが保有する最新のエラー情報を取得します。

定義

Declare Function GetLastError Lib "kernel32" ( ) As DWord

戻り値

32ビット値のエラーコードが返ります。

解説

エラーコードに対応するデフォルトのエラーメッセージを取得するときは、FormatMessage関数を使用して下さい。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

サンプル

'lpMsgBufにエラーメッセージが格納されます。
Dim lpMsgBuf As BytePtr
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER or FORMAT_MESSAGE_FROM_SYSTEM or FORMAT_MESSAGE_IGNORE_INSERTS, _
    NULL, _
    GetLastError(), _
    LANG_USER_DEFAULT, _
    VarPtr(lpMsgBuf), _
    0, _
    NULL)
MessageBox(0,lpMsgBuf,"Error msg",MB_OK)
LocalFree(lpMsgBuf)
FormatMessage関数


 Win32API: MessageBeep

WAVE形式の警告音を鳴らします。

定義
Declare Function MessageBeep Lib "user32" _
   (uType As DWord) As Long
uType
音の種類を、以下の定数のいずれかで指定します。
定数 | 説明
&HFFFFFFFF | コンピュータのスピーカーによる標準ビープ音
MB_ICONASTERISK | メッセージ（情報）
MB_ICONEXCLAMATION | メッセージ（警告）
MB_ICONHAND | システム エラー
MB_ICONQUESTION | メッセージ（問い合わせ）
MB_OK | 一般の警告音

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

この関数は非同期的にサウンドを再生します。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

MessageBox関数


 Win32API: OutputDebugString

デバッガにメッセージを送ります。通常、デバッガはメッセージリストにこの関数から送られた情報を表示します。

書式
Declare Sub OutputDebugString Lib "kernel32" Alias "OutputDebugStringA" (
    lpOutputString As BytePtr
)
lpOutputString
メッセージテキストを示すポインタを指定します。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll


 Win32API: CopyFile

ファイルをコピーします。

定義
Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" _
   (lpExistingFileName As BytePtr, _
    lpNewFileName As BytePtr, _
    bFailIfExists As Long) As Long
lpExistingFileName
コピー元ファイルのパスを指定します。

lpNewFileName
コピー先ファイルのパスを指定します。

bFailIfExists
コピー先ファイルがすでに存在していた場合の処理を指定します。TRUE を指定すると、関数は失敗します。FALSE を指定するとファイルの上書き処理が行われます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると FALSE が返ります。

※拡張エラー情報は、GetLastError関数で取得できます。

解説

コピーされたファイルはコピー元ファイルのファイル属性を保持します。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

MoveFile関数


 Win32API: CreateDirectory

新規にディレクトリを作成します。

定義
Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" _
         (lpPathName As BytePtr, _
    ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
lpPathName
作成するディレクトリへのパスを指定します。

lpSecurityAttributes （ポインタ参照）
セキュリティ属性が格納された SECURITY_ATTRIBUTES 構造体へのポインタを指定します。不必要であれば、NULL を指定することもできます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

※拡張エラー情報は、GetLastError関数で取得できます。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

RemoveDirectory関数、CreateFile関数


 Win32API: CreateFile

ファイル（パイプ、メールスロット、通信ポートなども含む）の作成、またはオープンをします。

定義
Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" _
         (lpFileName As BytePtr, _
          dwDesiredAccess As DWord, _
          dwShareMode As DWord, _
    ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, _
          dwCreationDisposition As DWord, _
          dwFlagsAndAttributes As DWord, _
          hTemplateFile As HANDLE) As HANDLE
lpFileName
ファイルパスを文字列で指定します。

dwDesiredAccess
アクセスの種類を指定します。以下に示す値を利用します。GENERIC_READ、GENERIC_WRITEは組み合わせて利用することもできます。
値 | 説明
0 | デバイスの属性を問い合わせます。
GENERIC_READ | 読み取りアクセスです。
GENERIC_WRITE | 書き込みアクセスです。

dwShareMode
ファイルの共有権を設定します。以下の値を利用します。0 を指定するとファイルは共有されません。
定数 | 説明
FILE_SHARE_DELETE | 削除アクセスが要求された場合、そのオープンを許可します（WindowsNT系OSのみ）。
FILE_SHARE_READ | 読み取りアクセスが要求された場合、そのオープンを許可します。
FILE_SHARE_WRITE | 書き込みアクセスが要求された場合、そのオープンを許可します。

lpSecurityAttributes （ポインタ参照）
SECURITY_ATTRIBUTES 型の構造体変数を指定すると、ハンドルの子プロセスへの継承許可を設定することができます。NULL を指定するとハンドルは継承されません。
Windows9x系OSでは、SECURITY_ATTRIBUTES 構造体の lpSecurityDescriptor メンバは無視されます。

dwCreationDisposition
ファイル オープンに伴うファイルへの動作を、以下の定数を用いて指定します。
定数 | 説明
CREATE_NEW | 新しいファイルを作成します。ファイルがすでに存在していると、関数は失敗します。
CREATE_ALWAYS | 新しいファイルを作成します。ファイルがすでに存在していると、そのファイルは上書きされます。
OPEN_EXISTING | ファイルをオープンします。ファイルが存在しない場合、関数は失敗します。
OPEN_ALWAYS | ファイルをオープンします。ファイルが存在しない場合、新しいファイルを作成します。
TRUNCATE_EXISTING | ファイルをオープンし、ファイル サイズを 0 バイトにします。ファイルが存在しない場合、関数は失敗します。このフラグを指定する場合は書き込みアクセスの権限（GENERIC_WRITE）が必要です。

dwFlagsAndAttributes
ファイル属性、およびフラグを指定します。以下の定数を組み合わせて指定します。
ファイル属性の定数 | 説明
FILE_ATTRIBUTE_ARCHIVE | アーカイブ ファイルです。
FILE_ATTRIBUTE_COMPRESSED | 圧縮ファイルです。
FILE_ATTRIBUTE_HIDDEN | 隠しファイルです。
FILE_ATTRIBUTE_NORMAL | 属性を持たない、ノーマルなファイルです。この定数は単独で使用します。
FILE_ATTRIBUTE_OFFLINE | ファイル データが別のオフラインの記憶装置に移されていることを示します。
FILE_ATTRIBUTE_READONLY | 読み取り専用ファイルです。
FILE_ATTRIBUTE_SYSTEM | オペレーティング システムのシステム ファイルです。
FILE_ATTRIBUTE_TEMPORARY | 一時ファイルです。
フラグ定数 | 説明
FILE_FLAG_WRITE_THROUGH | ディスク キャッシュに書き込まれたデータを、そのままディスクに書き込むようにします。
FILE_FLAG_OVERLAPPED | 時間のかかる処理に対して、ERROR_IO_PENDING を返すようにします。このフラグを指定すると、ReadFile関数、WriteFile関数を呼び出す際に、OVERLAPPED 構造体を指定しなければなりません。
FILE_FLAG_NO_BUFFERING | バッファやキャッシュを利用せずにファイルをオープンします。ファイルアクセスの開始オフセット、アクセス バイト数、読み書き操作用のバッファ アドレスを、ボリュームのセクタサイズの整数倍にしなければなりません。
FILE_FLAG_RANDOM_ACCESS | ファイルをランダム アクセスすることを示します。事前にこのフラグを指定しておくと、パフォーマンスが向上する可能性があります。
FILE_FLAG_SEQUENTIAL_SCAN | ファイルをシーケンシャル アクセスすることを示します。
FILE_FLAG_DELETE_ON_CLOSE | ファイル ハンドルがクローズされたら、そのファイルを削除するようにします。
FILE_FLAG_BACKUP_SEMANTICS | バックアップ、または復元操作のために、ファイルをオープンします（WindowsNT系OSのみ）。
FILE_FLAG_POSIX_SEMANTICS | POSIX の規則に従ってファイル アクセスを行います。

hTemplateFile
テンプレート ファイルを示す、GENERIC_READ 権を持つハンドルを指定します（WindowsNT系OSのみ）。テンプレート ファイルはファイル作成の際にファイル属性と拡張属性を提供します。このパラメータを利用しない場合は 0 を指定して下さい。Windows9x系OSでは常に 0 を指定して下さい。

戻り値

関数が成功すると、ファイルのハンドルが返ります。失敗すると、INVALID_HANDLE_VALUE が返ります。

※拡張エラー情報は、GetLastError関数で取得できます。

解説

ファイルをクローズするには、CloseHandle関数を使用して下さい。
CreateFile関数を使ってディレクトリを作成することはできません。ディレクトリの作成はCreateDirectory関数を使用して下さい。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

SetFilePointer関数、ReadFile関数、WriteFile関数、CloseHandle関数


 Win32API: DeleteFile

ファイルを削除します。

定義
Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" _
   (lpFileName As BytePtr) As Long
lpFileName
ファイル パスを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると FALSE が返ります。

※拡張エラー情報は、GetLastError関数で取得できます。

解説

lpFileName パラメータで指定したファイルが存在しない場合、関数は失敗します。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll


 Win32API: FindClose

検索ハンドルをクローズします。

定義
Declare Function FindClose Lib "kernel32" _
   (hFindFile As HANDLE) As Long
hFindFile
検索ハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

※拡張エラー情報は、GetLastError関数で取得できます。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

FindFirstFile関数、FindNextFile関数


 Win32API: FindFirstFile

ファイルの検索を開始します。

定義
Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" _
         (lpFileName As BytePtr, _
    ByRef lpFindFildData As WIN32_FIND_DATA) As HANDLE
lpFileName
有効なパス名、ファイル名が含まれた文字列を指定します。ファイル名には（*、?）などのワイルドカード文字を使用することもできます。

lpFindFildData （ポインタ参照）
WIN32_FIND_DATA構造体へのポインタを指定します。この構造体に検索されたファイル、またはディレクトリに関する情報が格納されます。

戻り値

関数が成功すると、検索ハンドルが返ります。失敗すると、INVALID_HANDLE_VALUE が返ります。

※拡張エラー情報は、GetLastError関数で取得できます。

解説

検索を継続する場合は、FindNextFile関数を利用します。検索を終える場合は、FindClose関数を利用してハンドルをクローズする必要があります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

FindNextFile関数、FindClose関数、WIN32_FIND_DATA構造体


 Win32API: FindNextFile

ファイルの検索を継続します。

定義
Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" _
         (hFindFile As HANDLE, _
    ByRef lpFindFildData As WIN32_FIND_DATA) As Long
hFindFile
検索ハンドルを指定します。

lpFindFildData （ポインタ参照）
WIN32_FIND_DATA構造体へのポインタを指定します。この構造体に検索されたファイル、またはディレクトリに関する情報が格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

※拡張エラー情報は、GetLastError関数で取得できます。

解説

この関数を利用するには、あらかじめ、FindFirstFile関数を呼び出し、検索ハンドルを取得しておく必要があります。
検索を継続する場合は、続けて FindNextFile関数 を利用します。検索を終える場合は、FindClose関数を利用してハンドルをクローズする必要があります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

FindFirstFile関数、FindClose関数、WIN32_FIND_DATA構造体


 Win32API: FlushFileBuffers

指定したファイルのデータがキャッシュ内に存在する場合、そのデータをディスクに書き込みます。

定義
Declare Function FlushFileBuffers Lib "kernel32" _
   (hFile As HANDLE) As Long
hFile
ファイル ハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると FALSE が返ります。

※拡張エラー情報は、GetLastError関数で取得できます。

解説

hFile パラメータで指定するファイルはGENERIC_WRITE権を持っている必要があります。
ファイルへの書き込み動作を行うと、一時的にキャッシュに保存されます。通常、キャッシュ内のデータは、オペレーティングシステムが定期的にディスクへ書き込みを行います。FlushFileBuffers関数はディスクへの書き込みを直接的に要求します。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll


 Win32API: GetCompressedFileSize

指定したファイルが、ドライブ上で実際に占めているバイト数を取得します。圧縮されているファイルに対しては、圧縮後のサイズを取得します。

定義
Declare Function GetCompressedFileSize Lib "kernel32" Alias "GetCompressedFileSizeA" _
         (lpFileName As BytePtr, _
    ByRef lpFileSizeHigh As DWord) As DWord
lpFileName
ファイル名が格納された文字列を指定します。

lpFileSizeHigh （ポインタ参照）
Long型変数へのポインタを指定します。指定した変数に、ファイルサイズの上位32ビットが格納されます。lpFileName パラメータが示すファイルが4GBより小さいのであれば、lpFileSizeHigh パラメータに NULL を指定することができます。

戻り値

関数が成功すると、ファイルのバイト数が返ります。失敗すると &HFFFFFFFF が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GetFileSize関数


 Win32API: GetCurrentDirectory

カレントディレクトリを取得します。

定義
Declare Function GetCurrentDirectory Lib "kernel32" Alias "GetCurrentDirectoryA" _
   (nBufferLength As DWord, _
    lpBuffer As BytePtr) As DWord
nBufferLength
lpBufferのバイト数を指定します（終端のNULL文字を含む）。

lpBuffer
文字列バッファへのポインタを指定します。このバッファにカレントディレクトリの絶対パスが格納されます。

戻り値

関数が成功すると、バッファに書き込まれたデータのバイト数が返ります（終端のNULL文字を除く）。nBufferLength パラメータで指定したバイト数が小さすぎる場合は、必要なバイト数が返ります（終端の文字列を含む）。
関数が失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll


 Win32API: GetDiskFreeSpace

ドライブ情報を取得します。

定義
Declare Function GetDiskFreeSpace Lib "kernel32" Alias "GetDiskFreeSpaceA" _
   (lpRootPathName As BytePtr, _
    lpSectorsPerCluster As DWordPtr, _
    lpBytesPerSector As DWordPtr, _
    lpNumberOfFreeClusters As DWordPtr, _
    lpTotalNumberOfClusters As DWordPtr) As Long
lpRootPathName
ルートディレクトリ名が格納された文字列を指定します。NULL を指定するとカレントディレクトリのあるドライブが対象となります。

lpSectorsPerCluster
Long型変数へのポインタを指定します。指定した変数に、クラスタ当たりのセクタ数が格納されます。

lpBytesPerSector
Long型変数へのポインタを指定します。指定した変数に、セクタ当たりのバイト数が格納されます。

lpNumberOfFreeClusters
Long型変数へのポインタを指定します。指定した変数に、ディスク上の空きクラスタの総数が格納されます。

lpTotalNumberOfClusters
Long型変数へのポインタを指定します。指定した変数に、ディスク上のクラスタの総数が格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると FALSE が返ります。

解説

Windows9x系OS上で、2GB以上のドライブに対してこの関数を利用すると、正常な値を取得することができません。
Windows 95 OSR 2以降のバージョンであれば、GetDiskFreeSpaceEx関数を利用して下さい。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GetDiskFreeSpaceEx関数


 Win32API: GetDiskFreeSpaceEx

ドライブ容量に関する情報を取得します。

定義
Declare Function GetDiskFreeSpaceEx Lib "kernel32" Alias "GetDiskFreeSpaceExA" _
         (lpDirectoryName As BytePtr, _
    ByRef lpFreeBytesAvailableToCaller As ULARGE_INTEGER, _
    ByRef lpTotalNumberOfBytes As ULARGE_INTEGER, _
    ByRef lpTotalNumberOfFreeBytes As ULARGE_INTEGER) As Long
lpDirectoryName
ルートディレクトリ名が格納された文字列を指定します。NULL を指定するとカレントディレクトリのあるドライブが対象となります。

lpFreeBytesAvailableToCaller （ポインタ参照）
ULARGE_INTEGER構造体変数へのポインタを指定します。この構造体に、呼び出し側スレッドに関連付けられているユーザーが利用できるディスクの空き容量が格納されます。

lpTotalNumberOfBytes （ポインタ参照）
ULARGE_INTEGER構造体変数へのポインタを指定します。この構造体に、ディスクの総容量が格納されます。

lpTotalNumberOfFreeBytes （ポインタ参照）
ULARGE_INTEGER構造体変数へのポインタを指定します。この構造体に、ディスクの空き容量が格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると FALSE が返ります。

環境情報

WindowsNT 4.0 以降
Windows95 OSR2 以降
インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GetDiskFreeSpace関数、ULARGE_INTEGER構造体


 Win32API: GetDriveType

ドライブの種類を判別します。

定義
Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" _
   (lpRootPathName As BytePtr) As DWord
lpRootPathName
ルートディレクトリ名が格納された文字列を指定します。NULL を指定するとカレントディレクトリのあるドライブが対象となります。

戻り値

以下の定数のうち、いずれかが返ります。
定数 | 説明
DRIVE_UNKNOWN | 不明です。
DRIVE_NO_ROOT_DIR | 指定したルートディレクトリは存在しません。
DRIVE_REMOVABLE | ドライブからディスクを抜くことができます。
DRIVE_FIXED | ドライブからディスクを抜くことができません。
DRIVE_REMOTE | ネットワーク ドライブです。
DRIVE_CDROM | CD-ROM ドライブです。
DRIVE_RAMDISK | RAM ディスク ドライブです。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll


 Win32API: GetFileAttributes

ファイルの属性を取得します。

定義
Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" _
   (lpFileName As BytePtr) As DWord
lpFileName
ファイル名が格納された文字列を指定します。

戻り値

関数が成功すると、ファイル属性が返ります。失敗すると、&HFFFFFFFF が返ります。属性は、以下の定数の組み合わせで指定されます。
ファイル属性の定数 | 説明
FILE_ATTRIBUTE_ARCHIVE | アーカイブ ファイルです。
FILE_ATTRIBUTE_COMPRESSED | 圧縮ファイルです。
FILE_ATTRIBUTE_DIRECTORY | ディレクトリです。
FILE_ATTRIBUTE_HIDDEN | 隠しファイルです。
FILE_ATTRIBUTE_NORMAL | 属性を持たない、ノーマルなファイルです。この定数は単独で使用します。
FILE_ATTRIBUTE_OFFLINE | ファイル データが別のオフラインの記憶装置に移されていることを示します。
FILE_ATTRIBUTE_READONLY | 読み取り専用ファイルです。
FILE_ATTRIBUTE_SYSTEM | オペレーティング システムのシステム ファイルです。
FILE_ATTRIBUTE_TEMPORARY | 一時ファイルです。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

SetFileAttributes関数


 Win32API: GetFileSize

ファイル サイズを取得します。

定義
Declare Function GetFileSize Lib "kernel32" _
   (hFile As HANDLE, _
    lpFileSizeHigh As DWordPtr) As DWord
hFile
ファイル ハンドルを指定します。

lpFileSizeHigh
Long型変数へのポインタを指定します。指定した変数に、ファイルサイズの上位32ビットが格納されます。hFile パラメータが示すファイルが4GBより小さいのであれば、lpFileSizeHigh パラメータに NULL を指定することができます。

戻り値

関数が成功すると、ファイルデータのバイト数が返ります。失敗すると &HFFFFFFFF が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GetCompressedFileSize


 Win32API: GetFileType

ファイルの種類を判別します。

定義
Declare Function GetFileType Lib "kernel32" _
   (hFile As HANDLE) As DWord
hFile
ファイル ハンドルを指定します。

戻り値

以下の定数のうち、いずれかが返ります。
定数 | 説明
FILE_TYPE_UNKNOWN | 不明です。
FILE_TYPE_DISK | ディスク ファイルです。
FILE_TYPE_CHAR | 文字ファイルです。
FILE_TYPE_PIPE | 名前付きまたは名前なしパイプです。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll


 Win32API: GetFullPathName

カレントドライブ名、およびカレントディレクトリ名を、指定したファイル名と連結させます。

定義
Declare Function GetFullPathName Lib "kernel32" Alias "GetFullPathNameA" _
   (lpFileName As BytePtr, _
    nBufferLength As DWord, _
    lpBuffer As BytePtr, _
    lpFilePart As DWordPtr) As DWord
lpFileName
ファイル名を指定します。

nBufferLength
バッファのバイト数を指定します。

lpBuffer
バッファポインタを指定します。ここで指定するバッファに、連結後のパスが格納されます。

lpFilePart
文字列ポインタへのポインタを指定します。lpBuffer内のファイル名部分へのポインタが格納されます。

戻り値

関数が成功すると、バッファに書き込まれたバイト数（終端の NULL 文字を除く）が返ります。nBufferLength パラメータで指定したバイト数が小さすぎる場合は、必要なバイト数が返ります（終端の文字列を含む）。
失敗すると 0 が返ります。

解説

この関数は、lpBuffer に格納されたパスが存在するかどうかの確認を行いません。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll


 Win32API: GetLogicalDrives

利用可能なドライブを取得します。

定義

Declare Function GetLogicalDrives Lib "kernel32" ( ) As DWord

戻り値

関数が成功すると、ビットマスク形式の32ビットデータが返ります。ビット0はAドライブ、ビット1はBドライブ、というように、最下位ビットから順番に、ビット設定されます。
関数が失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GetLogicalDriveStrings


 Win32API: GetLogicalDriveStrings

利用可能ディスクのドライブ名を取得します。

定義
Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" _
   (nBufferLength As DWord, _
    lpBuffer As BytePtr) As DWord
nBufferLength
lpBufferのバイト数を指定します（終端の NULL 文字を含む）。

lpBuffer
文字列バッファを指定します。このバッファに利用可能なドライブ名が格納されます。

戻り値

関数が成功すると、バッファに格納されたデータのバイト数が返ります（終端の NULL 文字は含まない）。nBufferLength パラメータで指定したバイト数が小さすぎる場合は、必要なバイト数が返ります（終端の文字列を含む）。
関数が失敗すると 0 が返ります。

解説

lpBuffer に格納されるドライブ名は、以下のような形式になっています（A、C、Qドライブが利用可能の場合）。

"a:\" + Chr$(0) + "c:\" + Chr$(0) + "q:\" + Chr$(0) + Chr$(0)

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GetLogicalDrives


 Win32API: GetTempPath

テンポラリファイルが格納されるディレクトリへのパスを取得します。

定義
Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" _
   (nBufferLength As DWord, _
    lpBuffer As BytePtr) As DWord
nBufferLength
lpBufferのバイト数を指定します（終端のNULL文字を含む）。

lpBuffer
文字列バッファを指定します。このバッファにディレクトリの絶対パスが格納されます。

戻り値

関数が成功すると、バッファに書き込まれたデータのバイト数が返ります（終端のNULL文字を除く）。nBufferLength パラメータで指定したバイト数が小さすぎる場合は、必要なバイト数が返ります（終端の文字列を含む）。
関数が失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll


 Win32API: LockFile

ファイル内の指定した領域をロックします。

定義
Declare Function LockFile Lib "kernel32" _
   (hFile As DWord, _
    dwFileOffsetLow As DWord, _
    dwFileOffsetHigh As DWord, _
    nNumberOfBytesToLockLow As DWord, _
    nNumberOfBytesToLockHigh As DWord) As Long
hFile
ファイル ハンドルを指定します。このハンドルはGENERIC_READ、またはGENERIC_WRITE権を持っていなければなりません。

dwFileOffsetLow
ロックを開始するオフセットの下位32ビットを指定します。

dwFileOffsetHigh
ロックを開始するオフセットの上位32ビットを指定します。

nNumberOfBytesToLockLow
ロックするバイト数の下位32ビットを指定します。

nNumberOfBytesToLockHigh
ロックするバイト数の上位32ビットを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると FALSE が返ります。

解説

ファイル領域をロックすると、他のプロセスはその部分の読み書き、およびロックができなくなります。ロックを解除するには、UnlockFile関数を使用します。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

UnlockFile関数


 Win32API: MoveFile

ファイル、またはディレクトリを移動（名前変更）します。

定義
Declare Function MoveFile Lib "kernel32" Alias "MoveFileA" _
   (lpExistingFileName As BytePtr, _
    lpNewFileName As BytePtr) As Long
lpExistingFileName
既存ファイル、またはディレクトリのパスを指定します。

lpNewFileName
新しいファイル、またはディレクトリのパスを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると FALSE が返ります。

解説

lpNewFileName パラメータで指定したファイルが既に存在していると、関数は失敗します。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

CopyFile関数


 Win32API: ReadFile

ファイル データを指定したバッファに読み込みます。

定義
Declare Function ReadFile Lib "kernel32" _
         (hFile As HANDLE, _
          lpBuffer As VoidPtr, _
          nNumberOfBytesToRead As DWord, _
          lpNumberOfBytesRead As DWordPtr, _
    ByRef lpOverlapped As OVERLAPPED) As Long
hFile
GENERIC_READ権を持つ、ファイル ハンドルを指定します。

lpBuffer
バッファへのポインタを指定します。ファイルから読み込まれるデータはここで指定するバッファに格納されていきます。

nNumberOfBytesToRead
読み込むデータのバイト数を指定します。

lpNumberOfBytesRead
DWord型変数へのポインタを指定します。実際に読み込まれたデータのバイト数が格納されます。
lpOverlapped パラメータに NULL を指定した場合は、lpNumberOfBytesRead を NULL にすることができません。
lpOverlapped パラメータを指定した場合は、lpNumberOfBytesRead を NULL にすることができます。

lpOverlapped （ポインタ参照）
OVERLAPPED構造体へのポインタを指定します。必要のない場合は NULL を指定することができます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると FALSE が返ります。
戻り値が TRUE であり、lpNumberOfBytesRead に格納された値が 0 の場合、ファイル ポインタがファイルの終端を越えていることを意味します。

解説

ファイル ポインタの現在位置から読み込みが開始されます。読み取ったデータのバイト数だけ、ファイル ポインタは進められます。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

CreateFile関数、SetFilePointer関数、WriteFile関数


 Win32API: RemoveDirectory

空のディレクトリを削除します。

定義
Declare Function RemoveDirectory Lib "kernel32" Alias "RemoveDirectoryA" _
   (lpPathName As BytePtr) As Long
lpPathName
削除するディレクトリへのパスを指定します。指定したディレクトリは空でなければなりません。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

CreateDirectory関数


 Win32API: SetEndOfFile

ファイルの終端（EOF）を現在のファイル ポインタの位置に移動させます。

定義
Declare Function SetEndOfFile Lib "kernel32" _
   (hFile As HANDLE) As Long
hFile
ファイル ハンドルを指定します。このハンドルはGENERIC_WRITE権を持っていなければなりません。

戻り値

関数が成功すると、TRUE が返ります。失敗すると FALSE が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll


 Win32API: SetFileAttributes

ファイルの属性を設定します。

定義
Declare Function SetFileAttributes Lib "kernel32" Alias "SetFileAttributesA" _
   (lpFileName As BytePtr, _
    dwFileAttributes As DWord) As Long
lpFileName
ファイル名が格納された文字列を指定します。

dwFileAttributes
ファイル属性を、以下の定数を組み合わせて指定します。
ファイル属性の定数 | 説明
FILE_ATTRIBUTE_ARCHIVE | アーカイブ ファイルです。
FILE_ATTRIBUTE_HIDDEN | 隠しファイルです。
FILE_ATTRIBUTE_NORMAL | 属性を持たない、ノーマルなファイルです。この定数は単独で使用します。
FILE_ATTRIBUTE_OFFLINE | ファイル データが別のオフラインの記憶装置に移されていることを示します。
FILE_ATTRIBUTE_READONLY | 読み取り専用ファイルです。
FILE_ATTRIBUTE_SYSTEM | オペレーティング システムのシステム ファイルです。
FILE_ATTRIBUTE_TEMPORARY | 一時ファイルです。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GetFileAttributes関数


 Win32API: SetFilePointer

ファイル ポインタを移動させます。

定義
Declare Function SetFilePointer Lib "kernel32" _
   (hFile As HANDLE, _
    lDistanceToMove As Long, _
    lpDistanceToMoveHigh As DWordPtr, _
    dwMoveMethod As DWord) As DWord
hFile
ファイル ハンドルを指定します。

lDistanceToMove
移動先の位置をオフセットで指定します。lpDistanceToMoveHigh パラメータを指定した場合はオフセットの下位32ビットを指定します。正の値を指定すると順方向に、負の値を指定すると逆方向に移動します。

lpDistanceToMoveHigh
オフセットの上位32ビットが格納されたLong型変数のポインタを指定します。関数が成功すると、新しいファイル ポインタの上位32ビットが格納されます。
扱うファイルが4GB以下であれば、NULL を指定することができます。

dwMoveMethod
移動の開始位置を指定します。以下の定数を利用して指定します。
定数 | 説明
FILE_BEGIN | ファイルの先頭を開始位置にします。
FILE_CURRENT | ファイル ポインタの現在位置を開始位置にします。
FILE_END | ファイルの終端を開始位置にします。

戻り値

関数が成功すると、新しいファイル ポインタの下位32ビットが返ります。失敗すると、&HFFFFFFFF が返ります。

解説

通信デバイスのようなシーク機能を持たないオブジェクトに対して、ファイル ポインタの移動をすることはできません。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

CreateFile関数、ReadFile関数、WriteFile関数


 Win32API: UnlockFile

ファイル内の指定した領域をロック解除します。

定義
Declare Function UnlockFile Lib "kernel32" _
   (hFile As HANDLE, _
    dwFileOffsetLow As DWord, _
    dwFileOffsetHigh As DWord, _
    nNumberOfBytesToUnlockLow As DWord, _
    nNumberOfBytesToUnlockHigh As DWord) As Long
hFile
ファイル ハンドルを指定します。このハンドルはGENERIC_READ、またはGENERIC_WRITE権を持っていなければなりません。

dwFileOffsetLow
ロック解除を開始するオフセットの下位32ビットを指定します。

dwFileOffsetHigh
ロック解除を開始するオフセットの上位32ビットを指定します。

nNumberOfBytesToUnlockLow
ロック解除するバイト数の下位32ビットを指定します。

nNumberOfBytesToUnlockHigh
ロック解除するバイト数の上位32ビットを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると FALSE が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

LockFile関数


 Win32API: WriteFile

指定したバッファ データをファイルに書き込みます。

定義
Declare Function WriteFile Lib "kernel32" _
         (hFile As HANDLE, _
          lpBuffer As VoidPtr, _
          nNumberOfBytesToWrite As DWord, _
          lpNumberOfBytesWritten As DWordPtr, _
    ByRef lpOverlapped As OVERLAPPED) As Long
hFile
GENERIC_WRITE権を持つ、ファイル ハンドルを指定します。

lpBuffer
バッファへのポインタを指定します。ここで指定するバッファ内のデータが、ファイルに書き込まれます。

nNumberOfBytesToWrite
書き込みデータのバイト数を指定します。

lpNumberOfBytesWritten
DWord型変数へのポインタを指定します。実際に書き込まれたデータのバイト数が格納されます。
lpOverlapped パラメータに NULL を指定した場合は、lpNumberOfBytesWritten を NULL にすることができません。
lpOverlapped パラメータを指定した場合は、lpNumberOfBytesWritten を NULL にすることができます。

lpOverlapped （ポインタ参照）
OVERLAPPED構造体へのポインタを指定します。必要のない場合は NULL を指定することができます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると FALSE が返ります。

解説

ファイル ポインタの現在位置から書き込みが開始されます。書き込んだデータのバイト数だけ、ファイル ポインタは進められます。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

CreateFile関数、SetFilePointer関数、ReadFile関数


 構造体: WIN32_FIND_DATA

検索されたファイル、またはディレクトリに関する情報が格納されます。

定義
Type WIN32_FIND_DATA
    dwFileAttributes As Long
    ftCreationTime As FILETIME
    ftLastAccessTime As FILETIME
    ftLastWriteTime As FILETIME
    nFileSizeHigh As Long
    nFileSizeLow As Long
    dwReserved0 As Long
    dwReserved1 As Long
    cFileName(MAX_PATH-1) As Byte
    cAlternateFileName(13) As Byte
End Type
dwFileAttributes
検索されたファイルの属性が格納されます。以下の定数の組み合わせです。
定数 | 説明
FILE_ATTRIBUTE_ARCHIVE | アーカイブ ファイルです。
FILE_ATTRIBUTE_COMPRESSED | 圧縮ファイルです。
FILE_ATTRIBUTE_DIRECTORY | ディレクトリです。
FILE_ATTRIBUTE_ENCRYPTED | ファイルは暗号化されています。
FILE_ATTRIBUTE_HIDDEN | 隠しファイルです。
FILE_ATTRIBUTE_NORMAL | 属性を持たない、ノーマルなファイルです。この定数は単独で指定されます。
FILE_ATTRIBUTE_OFFLINE | ファイル データが別のオフラインの記憶装置に移されていることを示します。
FILE_ATTRIBUTE_READONLY | 読み取り専用ファイルです。
FILE_ATTRIBUTE_REPARSE_POINT | 関連付けられたリパースポイントを持つファイルです。
FILE_ATTRIBUTE_SPARSE_FILE | スバース ファイルです。
FILE_ATTRIBUTE_SYSTEM | オペレーティング システムのシステム ファイルです。
FILE_ATTRIBUTE_TEMPORARY | 一時ファイルです。

ftCreationTime
ファイルが作成された時間が、FILETIME構造体で格納されます。

ftLastAccessTime
最後にファイルへアクセスした時間が、FILETIME構造体で格納されます。

ftLastWriteTime
最後にファイルが更新された時間が、FILETIME構造体で格納されます。

nFileSizeHigh
ファイルサイズの上位32ビットが格納されます。

nFileSizeLow
ファイルサイズの下位32ビットが格納されます。

dwReserved0
dwFileAttributes メンバに FILE_ATTRIBUTE_REPARSE_POINT が設定されていると、リパースタグが格納されます。それ以外は 0 が格納されます。

dwReserved1
将来のために予約されています。

cFileName(MAX_PATH-1)
ファイル名を示す、NULL で終わる文字列が格納されます。

cAlternateFileName(13)
DOS形式（8.3形式）のファイル パス（ショート ネーム）を示す、NULLで終わる文字列が格納されます。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み

FindFirstFile関数、FindNextFile関数


 Win32API: CloseHandle

指定したオブジェクト（ファイル、ミューテックス、プロセス、セマフォ、スレッドなど）をクローズします。

定義
Declare Function CloseHandle Lib "kernel32" _
   (hObject As HANDLE) As Long
hObject
オブジェクトのハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll


 Win32API: FillMemory

指定したメモリ空間を、指定したデータで埋めます。

定義
Declare Sub FillMemory Lib "kernel32" Alias "RtlFillMemory" _
   (pDest As VoidPtr, _
    dwLength As DWord, _
    c As Byte)
pDest
メモリ ブロックの開始アドレスを指定します。

Length
メモリ ブロックのバイト数を指定します。

c
8ビット整数型のデータを指定します。このデータでメモリ空間が埋め尽くされます。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

memcpy関数


 Win32API: GetProcessHeap

呼び出し側プロセスに割り当てられているヒープのハンドルを取得します。

定義

Declare Function GetProcessHeap Lib "kernel32" ( ) As HANDLE

戻り値

ヒープ ハンドルが返ります。

解説

この関数で取得したヒープ ハンドルを破棄する必要はありません。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

HeapCreate関数


 Win32API: GlobalAlloc

指定されたバイト数のメモリを、ヒープ領域から確保します。

定義
Declare Function GlobalAlloc Lib "kernel32" _
   (uFlags As DWord, _
    dwBytes As DWord) As HGLOBAL
uFlags
メモリ確保の方法を、以下の定数の組み合わせで指定します。
定数 | 説明
GHND | 移動可能メモリを確保し、その内容を 0 で埋め尽くします。GMEM_MOVEABLE フラグと GMEM_ZEROINIT フラグの組み合わせです。
GMEM_FIXED | 固定メモリを確保します。戻り値はメモリ ブロックへのポインタになります。
GMEM_MOVEABLE | 移動可能メモリを確保します。戻り値はメモリ オブジェクトのハンドルになります。
GMEM_ZEROINIT | 確保したメモリの内容を、0 で初期化します。
GPTR | 固定メモリを確保し、その内容を 0 で埋め尽くします。GMEM_FIXED フラグと GMEM_ZEROINIT フラグの組み合わせです。

dwBytes
確保するメモリのバイト数を指定します。uFlags パラメータに GMEM_MOVEABLE フラグを指定し、このパラメータに 0 を指定したときは、破棄マークが付けられたメモリ オブジェクトが作成されます（後にメモリを確保する場合などに有効です）。

戻り値

固定メモリを確保したときは、メモリ ブロックへのポインタが返ります。
移動可能メモリを確保したときは、メモリ オブジェクトのハンドルが返ります。
関数が失敗すると、0 が返ります。

解説

作成したメモリ オブジェクトが不要になったときは、GlobalFree関数を使用して破棄して下さい。

dwBytes パラメータで指定されたバイト数より、実際に確保されたバイト数のほうが大きい場合があります。実際に確保されたバイト数を調べるには、GlobalSize関数を使用して下さい。

固定メモリを確保したときは、戻り値のポインタが示すメモリにアクセスすることが可能です。
移動可能メモリを確保したときは、メモリ オブジェクトのハンドルを元に、GlobalLock関数を使用してメモリ ブロックへのポインタを取得する必要があります。

メモリの再確保を行う場合は、GlobalReAlloc関数を使用して下さい。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GlobalFree関数、GlobalLock関数、GlobalReAlloc関数、GlobalSize関数


 Win32API: GlobalFree

メモリ オブジェクトをメモリから解放します。

定義
Declare Function GlobalFree Lib "kernel32" _
   (hMem As HGLOBAL) As HGLOBAL
hMem
メモリ オブジェクトのハンドルを指定します。固定メモリを解放する場合は、メモリ ブロックへのポインタを指定します。

戻り値

関数が成功すると、NULL が返ります。失敗すると、指定したメモリ オブジェクトのハンドルが返ります。

解説

解放されたメモリ オブジェクトにアクセスしないよう、注意して下さい。
この関数は、ロックされたメモリ オブジェクトを解放することも可能です。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GlobalAlloc関数


 Win32API: GlobalLock

メモリ オブジェクトをロックし、メモリ ブロックの先頭ポインタを取得します。移動可能メモリにのみ有効です。

定義
Declare Function GlobalLock Lib "kernel32" _
   (hMem As HGLOBAL) As VoidPtr
hMem
メモリ オブジェクトのハンドルを指定します。

戻り値

関数が成功すると、メモリ ブロックの先頭ポインタが返ります。失敗すると、0 が返ります。

解説

メモリ ブロックへのアクセスが終了したら、GlobalUnlock関数を使用してロックを解除して下さい。
ロックの回数はカウントされます。例えば、GlobalLock関数を 2 回呼び出し、2 重ロックをかけたときは、GlobalUnlock関数も 2 回呼び出す必要があります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GlobalAlloc関数、GlobalUnlock関数


 Win32API: GlobalMemoryStatus

物理メモリ、仮想メモリなどに関する情報を取得します。

定義
Declare Sub GlobalMemoryStatus Lib "kernel32" _
   (ByRef lpMemStatus As MEMORYSTATUS)
lpMemStatus （ポインタ参照）
MEMORYSTATUS構造体へのポインタを指定します。あらかじめ、dwLength メンバを設定しておく必要があります。この構造体にメモリに関する情報が格納されます。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

MEMORYSTATUS構造体


 Win32API: GlobalReAlloc

グローバル メモリ オブジェクトの再確保を行います。

定義
Declare Function GlobalReAlloc Lib "kernel32" _
   (hMem As HGLOBAL, _
    dwBytes As DWord, _
    uFlags As DWord) As HGLOBAL
hMem
メモリ オブジェクトのハンドル、またはメモリ ブロックへのポインタを指定します。

dwBytes
再確保するメモリのバイト数を指定します。uFlags パラメータに GMEM_MOVEABLE フラグを指定し、このパラメータに 0 を指定したときは、破棄マークが付けられたメモリ オブジェクトが作成されます（後にメモリを確保する場合などに有効です）。uFlags パラメータに GMEM_MODIFY フラグを指定すると、このパラメータは無視されます。

uFlags
メモリ再確保の方法を、以下の定数を組み合わせて指定します。
定数 | 説明
GMEM_MODIFY | メモリ オブジェクトの属性変更を行います。サイズ変更は行われず、dwBytes パラメータは無視されます。
GMEM_MOVEABLE | GMEM_MODIFY フラグと共に指定すると、固定メモリ オブジェクトを、移動可能メモリ オブジェクトに変更します。
GMEM_ZEROINIT | 再確保したメモリ サイズが以前のメモリ サイズより大きいときに、拡張領域を 0 で初期化します。

戻り値

固定メモリを再確保したときは、メモリ ブロックへのポインタが返ります。
移動可能メモリを再確保したときは、メモリ オブジェクトのハンドルが返ります。
関数が失敗すると、0 が返ります。

解説

作成したメモリ オブジェクトが不要になったときは、GlobalFree関数を使用して破棄して下さい。

dwBytes パラメータで指定されたバイト数より、実際に確保されたバイト数のほうが大きい場合があります。実際に確保されたバイト数を調べるには、GlobalSize関数を使用して下さい。

固定メモリを確保したときは、戻り値のポインタが示すメモリにアクセスすることが可能です。
移動可能メモリを確保したときは、メモリ オブジェクトのハンドルを元に、GlobalLock関数を使用してメモリ ブロックへのポインタを取得する必要があります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GlobalAlloc関数、GlobalFree関数、GlobalLock関数、GlobalSize関数


 Win32API: GlobalSize

指定したメモリ オブジェクトで利用できるバイト数を取得します。

定義
Declare Function GlobalSize Lib "kernel32" _
   (hMem As HGLOBAL) As DWord
hMem
メモリ オブジェクトのハンドルを指定します。

戻り値

関数が成功すると、グローバル メモリ オブジェクトのバイト数が返ります。失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GlobalAlloc関数、GlobalReAlloc関数


 Win32API: GlobalUnlock

メモリ オブジェクトのロックを解除します。移動可能メモリにのみ有効です。

定義
Declare Function GlobalUnlock Lib "kernel32" _
   (hMem As HGLOBAL) As Long
hMem
メモリ オブジェクトのハンドルを指定します。

戻り値

関数の実行後もロック カウントが 1 以上のときは、TRUE が返ります。それ以外は、FALSE が返ります。

解説

ロックが解除されると、メモリ ブロックへのアクセスはできなくなります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GlobalAlloc関数、GlobalLock関数


 Win32API: HeapAlloc

指定されたバイト数のメモリを、ヒープ領域から確保します。

定義
Declare Function HeapAlloc Lib "kernel32" _
   (hHeap As HANDLE, _
    dwFlags As DWord, _
    dwBytes As DWord) As VoidPtr
hHeap
ヒープ ハンドルを指定します。

dwFlags
メモリ確保に関するオプションを、以下の定数を組み合わせて指定します。
定数 | 説明
HEAP_GENERATE_EXCEPTIONS | 関数が失敗したときに、例外を発生させます。
HEAP_NO_SERIALIZE | この関数がヒープにアクセスしている間、相互排他を行わないようにします。
HEAP_ZERO_MEMORY | 確保したメモリの内容を 0 で初期化します。

dwBytes
確保するメモリのバイト数を指定します。

戻り値

確保されたメモリ ブロックの先頭ポインタが返ります。関数が失敗すると、0 が返ります。

解説

確保したメモリ ブロックが不要になったときは、HeapFree関数を使用してメモリから解放して下さい。
dwBytes パラメータで指定されたバイト数より、実際に確保されたバイト数のほうが大きい場合があります。実際に確保されたバイト数を調べるには、HeapSize関数を使用して下さい。
メモリ ブロックの再確保を行う場合は、HeapReAlloc関数を使用して下さい。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GetProcessHeap関数、HeapCreate関数、HeapFree関数、HeapReAlloc関数、HeapSize関数


 Win32API: HeapCreate

呼び出し側プロセスが利用できる、ヒープ オブジェクトを作成します。

定義
Declare Function HeapCreate Lib "kernel32" _
   (flOptions As DWord, _
    dwInitialSize As DWord, _
    dwMaximumSize As DWord) As HANDLE
flOptions
作成するヒープのオプションを、以下の定数から指定します。
定数 | 説明
HEAP_GENERATE_EXCEPTIONS | 関数が失敗したときに、例外を発生させます。
HEAP_NO_SERIALIZE | ヒープ関数がメモリを確保したりメモリを解放したりしているときに、相互排他を行わないようにします。

dwInitialSize
ヒープの初期サイズをバイト単位で指定します。実際の初期サイズはページ単位に切り上げられます。

dwMaximumSize
ヒープの最大サイズをバイト単位で指定します。0 を指定すると、ヒープは自動的に拡張されます。

戻り値

関数が成功すると、ヒープ ハンドルが返ります。失敗すると、0 が返ります。

解説

作成したヒープ オブジェクトが不要になったら、HeapDestroy関数を使用してメモリから解放して下さい。
ヒープからメモリ ブロックを確保するときは、HeapAlloc関数を使用して下さい。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GetProcessHeap関数、HeapAlloc関数、HeapDestroy関数、HeapFree関数、HeapReAlloc関数、HeapSize関数


 Win32API: HeapDestroy

ヒープ オブジェクトを破棄し、使用していたメモリを解放します。

定義
Declare Function HeapDestroy Lib "kernel32" _
   (hHeap As HANDLE) As Long
hHeap
ヒープ ハンドルを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

GetProcessHeap関数で取得したヒープ ハンドルは破棄する必要はありません。
HeapFree関数を呼び出す前にこの関数を呼び出しても、確保されたメモリは自動的に解放されます。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GetProcessHeap関数、HeapAlloc関数、HeapCreate関数、HeapFree関数、HeapReAlloc関数、HeapSize関数


 Win32API: HeapFree

ヒープから確保したメモリ ブロックを解放します。

定義
Declare Function HeapFree Lib "kernel32" _
   (hHeap As HANDLE, _
    dwFlags As DWord, _
    lpMem As VoidPtr) As Long
hHeap
ヒープ ハンドルを指定します。

dwFlags
この関数がヒープにアクセスしている間、相互排他を行わせないときは、HEAP_NO_SERIALIZE フラグを指定します。それ以外は 0 を指定します。

lpMem
破棄するメモリ ブロックへのポインタを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

GetProcessHeap関数で取得したヒープ ハンドルは破棄する必要はありません。
HeapFree関数を呼び出す前にこの関数を呼び出しても、確保されたメモリは自動的に解放されます。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

HeapAlloc関数、HeapReAlloc関数


 Win32API: HeapReAlloc

指定されたバイト数のメモリを、ヒープ領域から確保します。

定義
Declare Function HeapReAlloc Lib "kernel32" _
   (hHeap As HANDLE, _
    dwFlags As DWord, _
    lpMem As VoidPtr, _
    dwBytes As DWord) As VoidPtr
hHeap
ヒープ ハンドルを指定します。

dwFlags
メモリの再確保に関するオプションを、以下の定数を組み合わせて指定します。
定数 | 説明
HEAP_GENERATE_EXCEPTIONS | 関数が失敗したときに、例外を発生させます。
HEAP_NO_SERIALIZE | この関数がヒープにアクセスしている間、相互排他を行わないようにします。
HEAP_REALLOC_IN_PLACE_ONLY | メモリブロックのサイズを拡大する場合に、メモリの移動を起こさないようにします。このフラグを指定しなかった場合、メモリブロックが新しい位置に移動することがあります。
HEAP_ZERO_MEMORY | 再確保したメモリ サイズが以前のメモリ サイズより大きいときに、拡張領域を 0 で初期化します。

lpMem
再確保するメモリ ブロックへのポインタを指定します。

dwBytes
再確保するメモリのバイト数を指定します。

戻り値

再確保されたメモリ ブロックの先頭ポインタが返ります。関数が失敗すると、0 が返ります。

解説

確保したメモリ ブロックが不要になったときは、HeapFree関数を使用してメモリから解放して下さい。
dwBytes パラメータで指定されたバイト数より、実際に確保されたバイト数のほうが大きい場合があります。実際に確保されたバイト数を調べるには、HeapSize関数を使用して下さい。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GetProcessHeap関数、HeapAlloc関数、HeapCreate関数、HeapFree関数、HeapSize関数


 Win32API: HeapSize

ヒープから確保したメモリ ブロックのサイズを取得します。

定義
Declare Function HeapSize Lib "kernel32" _
   (hHeap As HANDLE, _
    dwFlags As DWord, _
    lpMem As VoidPtr) As DWord
hHeap
ヒープ ハンドルを指定します。

dwFlags
この関数がヒープにアクセスしている間、相互排他を行わせないときは、HEAP_NO_SERIALIZE フラグを指定します。それ以外は 0 を指定します。

lpMem
サイズを取得するメモリ ブロックへのポインタを指定します。

戻り値

関数が成功すると、メモリ ブロックのサイズがバイト単位で返ります。失敗すると、-1 が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

HeapAlloc関数、HeapReAlloc関数


 Win32API: IsBadReadPtr

呼び出し側プロセスが、指定したメモリ ブロックの読み取りアクセス権を持っているかどうかを調べます。

定義
Declare Function IsBadReadPtr Lib "kernel32" _
   (lp As VoidPtr, _
    ucb As DWord) As Long
lp
メモリ ブロックの先頭ポインタを指定します。

ucb
メモリ ブロックのバイト数を指定します。

戻り値

呼び出し側プロセスが指定したメモリ ブロックの読み取りアクセス権を持つときは 0 が返ります。それ以外は、1 が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

IsBadWritePtr関数


 Win32API: IsBadWritePtr

呼び出し側プロセスが、指定したメモリ ブロックの書き込みアクセス権を持っているかどうかを調べます。

定義
Declare Function IsBadWritePtr Lib "kernel32" _
   (lp As VoidPtr, _
    ucb As DWord) As Long
lp
メモリ ブロックの先頭ポインタを指定します。

ucb
メモリ ブロックのバイト数を指定します。

戻り値

呼び出し側プロセスが指定したメモリ ブロックの書き込みアクセス権を持つときは 0 が返ります。それ以外は、1 が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

IsBadReadPtr関数


 Win32API: memcpy

メモリ ブロックをコピーします。

定義
Declare Sub memcpy Lib "kernel32" Alias "RtlMoveMemory" _
   (pDest As VoidPtr, _
    pSrc As VoidPtr, _
    dwLength As DWord)
pDest
コピー先のメモリ ブロックの開始アドレスを指定します。

pSrc
コピー元のメモリ ブロックの開始アドレスを指定します。

dwLength
コピーするメモリ ブロックのバイト数を指定します。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

FillMemory関数


 Win32API: VirtualAlloc

呼び出し側プロセスの仮想メモリ空間内のメモリ領域を予約、またはコミットします。

定義
Declare Function VirtualAlloc Lib "kernel32" _
   (lpAddress As VoidPtr, _
    dwSize As DWord, _
    flAllocationType As DWord, _
    flProtect As DWord) As VoidPtr
lpAddress
予約、またはコミットするメモリ領域の先頭ポインタを指定します。NULL を指定すると、OS が自動的に割り当てます。

dwSize
予約、またはコミットするメモリ領域のサイズをバイト単位で指定します。

flAllocationType
予約、またはコミットに関するオプションを、以下の定数を組み合わせて指定します。
定数 | 説明
MEM_COMMIT | 指定したメモリ領域をコミットします。実際の物理記憶（メモリまたはディスク上のページングファイル）が割り当てられます。
MEM_RESERVE | 指定したメモリ領域を予約します。
MEM_TOP_DOWN | できるだけ上位のアドレスにメモリを確保します。

flProtect
アクセス保護に関するオプションを、以下の定数から指定します。
定数 | 説明
PAGE_READONLY | コミットされたメモリ領域に対する読み取りアクセスを許可します。
PAGE_READWRITE | コミットされたメモリ領域に対する読み取りアクセスおよび書き込みアクセスを許可します。
PAGE_EXECUTE | コミットされたメモリ領域に対する実行アクセスを許可します。
PAGE_EXECUTE_READ | コミットされたメモリ領域に対する実行アクセスと読み取りアクセスを許可します。
PAGE_EXECUTE_READWRITE | コミットされたメモリ領域に対する実行アクセスと読み取りアクセスと書き込みアクセスを許可します。
PAGE_GUARD | 領域内のページをガードページにします。
PAGE_NOACCESS | コミットされたページ領域に対するアクセスを一切禁止します。
PAGE_NOCACHE | コミットされたページ領域に対するキャッシングを禁止します。

戻り値

関数が成功すると、予約、またはコミットされたメモリ領域の先頭ポインタが返ります。失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

VirtualFree関数


 Win32API: VirtualFree

呼び出し側プロセスの仮想メモリ空間内のメモリ領域をコミット解除、または解放します。

定義
Declare Function VirtualFree Lib "kernel32" _
   (lpAddress As VoidPtr, _
    dwSize As DWord, _
    dwFreeType As DWord) As Long
lpAddress
コミット解除、または解放するメモリ領域の先頭ポインタを指定します。

dwSize
コミット解除、または解放するメモリ領域のサイズをバイト単位で指定します。dwFreeType パラメータに MEM_RELEASE フラグが設定されているときは、0 を指定して下さい。

dwFreeType
コミット解除、または解放に関するオプションを、以下の定数から指定します。
定数 | 説明
MEM_DECOMMIT | 指定したメモリ領域をコミット解除します。
MEM_RELEASE | 指定したメモリ領域を解放します。dwSize パラメータに 0 を指定して下さい。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

VirtualAlloc関数


 Win32API: ZeroMemory

指定したメモリ空間を、0 で埋めます。

定義
Declare Sub ZeroMemory Lib "kernel32" Alias "RtlZeroMemory" _
   (Destination As VoidPtr, _
    dwLength As DWord)
Destination
メモリ ブロックの開始アドレスを指定します。

dwLength
メモリ ブロックのバイト数を指定します。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll


 構造体: MEMORYSTATUS

物理メモリ、仮想メモリなどに関する情報が格納されます。

定義
Type MEMORYSTATUS
    dwLength As Long
    dwMemoryLoad As Long
    dwTotalPhys As Long
    dwAvailPhys As Long
    dwTotalPageFile As Long
    dwAvailPageFile As Long
    dwTotalVirtual As Long
    dwAvailVirtual As Long
End Type
dwLength
構造体のサイズを指定します。

dwMemoryLoad
メモリの使用状況がパーセンテージで格納されます（0 ～ 100）。

dwTotalPhys
物理メモリの容量がバイト単位で格納されます。

dwAvailPhys
物理メモリの空き容量がバイト単位で格納されます。

dwTotalPageFile
ページ ファイル（仮想メモリ）の容量がバイト単位で格納されます。

dwAvailPageFile
ページ ファイル（仮想メモリ）の空き容量がバイト単位で格納されます。

dwTotalVirtual
ユーザーが使用できるアドレス空間の容量がバイト単位で格納されます。

dwAvailVirtual
ユーザーが使用できるアドレス空間の空き容量がバイト単位で格納されます。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み

GlobalMemoryStatus


 Win32API: CreateProcess

指定した実行ファイルのプロセスを起動し、プライマリスレッドを作成します。

定義
Declare Function CreateProcess Lib "kernel32" Alias "CreateProcessA" _
         (lpApplicationName As BytePtr, _
          lpCommandLine As BytePtr, _
    ByRef lpProcessAttributes As SECURITY_ATTRIBUTES, _
    ByRef lpThreadAttributes As SECURITY_ATTRIBUTES, _
          bInheritHandles As Long, _
          dwCreationFlags As DWord, _
          lpEnvironment As VoidPtr, _
          lpCurrentDirectory As BytePtr, _
    ByRef lpStartupInfo As STARTUPINFO, _
    ByRef lpProcessInformation As PROCESS_INFORMATION) As DWord
lpApplicationName
実行ファイルを示すパスが格納された文字列へのポインタを指定します。省略時は、NULL を指定することもできます。

lpCommandLine
アプリケーションに渡すコマンドラインが格納された文字列へのポインタを指定します。省略時は、NULL を指定することもできます。

lpProcessAttributes
取得したハンドルの子プロセスへの継承を許可するかどうかを決める、SECURITY_ATTRIBUTES 構造体へのポインタを指定します。NULL を指定すると、ハンドルは継承されません。

lpThreadAttributes
取得したハンドルの子プロセスへの継承を許可するかどうかを決める、SECURITY_ATTRIBUTES 構造体へのポインタを指定します。NULL を指定すると、ハンドルは継承されません。

bInheritHandles
新しいプロセスに、呼び出し側プロセスのハンドルを継承させるかどうかを指定します。継承させるときは TRUE を、継承させないときは FALSE を指定します。

dwCreationFlags
プロセス作成に関する制御フラグ、及び優先順位クラスを以下の定数の組み合わせで指定します。
制御フラグ | 説明
CREATE_DEFAULT_ERROR_MODE | 新しいプロセスに、呼び出し側プロセスのエラーモードを継承させません。新しいプロセスには、デフォルトのエラーモードを適用します。
CREATE_NEW_CONSOLE | 新しいプロセスに、親のコンソールを継承させず、新しいコンソールを持たせます。DETACHED_PROCESS と同時に指定することはできません。
CREATE_NEW_PROCESS_GROUP | 新しいプロセスを、新しいプロセスグループのルートプロセスにします。
CREATE_SEPARATE_WOW_VDM | 新しいプロセスを、プライベートな仮想 DOS マシン上で実行させます（WindowsNT系OSのみ）。このフラグは、16 ビットの Windows アプリケーションを起動するときにだけ有効です。
CREATE_SHARED_WOW_VDM | WIN.INI ファイルの Windows セクション内の DefaultSeparateVDM スイッチが TRUE のとき、そのスイッチを無効にし、新しいプロセスを共有された仮想 DOS マシン上で実行させます（WindowsNT系OSのみ）。このフラグは、16 ビットのWindows アプリケーションを起動するときにだけ有効です。
CREATE_SUSPENDED | プライマリスレッドをサスペンド状態にして起動します。スレッドを実行するには、ResumeThread関数を使います。
CREATE_UNICODE_ENVIRONMENT | lpEnvironment パラメータが指す環境ブロックが Unicode 文字を使用していることを示します。デフォルトでは、ANSI 文字が使用されているものとみなされます。
DEBUG_PROCESS | 呼び出し側プロセスがデバッガのときに指定します。作成したプロセス内で新たにプロセスが作成されたとき、そのプロセスもデバッグの対象とします（DEBUG_ONLY_THIS_PROCESS と同時に指定することはできません）。
DEBUG_ONLY_THIS_PROCESS | 呼び出し側プロセスがデバッガのときに指定します。作成したプロセス内で新たにプロセスが作成されたとき、そのプロセスはデバッグの対象としません（DEBUG_PROCESS と同時に指定することはできません）。
DETACHED_PROCESS | 新しいプロセスに、親プロセスのコンソールへのアクセスを持たせません。新しいプロセスは、AllocConsole 関数を使って新しいコンソールを作成できます。CREATE_NEW_CONSOLE フラグと同時に指定することはできません。

優先順位クラス | 説明
HIGH_PRIORITY_CLASS | タイムクリティカルなタスクを実行するプロセスであることを示します。
IDLE_PRIORITY_CLASS | システムがアイドル状態のときにだけ実行するプロセスであることを示します。
NORMAL_PRIORITY_CLASS | 特別なスケジューリングを必要としない、一般的なプロセスであることを示します。
REALTIME_PRIORITY_CLASS | 最も高い優先順位クラスを持つプロセスであることを示します。このクラスのスレッドは、重要なタスクを行うオペレーティングシステムのプロセスを含むほかのすべてのプロセスのスレッドよりも先に実行されます。少しでも長い時間実行すると、ディスクキャッシュがフラッシュされなくなったり、マウスが応答しなくなったりします。
※デフォルトの優先順位クラスは、NORMAL_PRIORITY_CLASS です。ただし、呼び出し側プロセスが IDLE_PRIORITY_CLASS のときは、作成されるプロセスも IDLE_PRIORITY_CLASS になります。

lpEnvironment
新しいプロセスの環境ブロックが格納されたバッファへのポインタを指定します。
環境ブロックの構成は次のようになります。
Ex"name1=value1\0name2=value2\0……nameN=valueN\0\0"

lpCurrentDirectory
新しいプロセスのカレントディレクトリが格納された文字列へのポインタを指定します。

lpStartupInfo
新しいプロセスのメインウィンドウに関する情報が格納されている、STARTUPINFO構造体へのポインタを指定します。

lpProcessInformation
PROCESS_INFORMATION構造体へのポインタを指定します。プロセスが作成されると、この構造体に、プロセス・プライマリスレッドのハンドル及びIDが格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると FALSE が返ります。

解説

PROCESS_INFORMATION構造体で受け取ったハンドルは、不必要になり次第、CloseHandle関数でメモリから解放して下さい。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

CloseHandle関数、ExitProcess関数、ResumeThread関数、OpenProcess関数


 Win32API: CreateThread

スレッドを作成します。

定義
Declare Function CreateThread Lib "kernel32" Alias "CreateThread" _
   (ByRef lpThreadAttributes As SECURITY_ATTRIBUTES, _
          dwStackSize As DWord, _
          lpStartAddress As DWord, _
          lpParameter As VoidPtr, _
          dwCreationFlags As DWord, _
          lpThreadId As DWordPtr) As HANDLE
lpThreadAttributes
取得したハンドルの子プロセスへの継承を許可するかどうかを決める、SECURITY_ATTRIBUTES 構造体へのポインタを指定します。ハンドルを継承しないときは NULL を指定して下さい。

dwStackSize
新しいスレッド用に確保するスタックサイズをバイト単位で指定します。0 を指定するとデフォルトのサイズになります。

lpStartAddress
新しいスレッドの開始アドレスを指定します。AddressOf関数を利用するとプロシージャの開始アドレスを取得することができます。

lpParameter
スレッドに渡す32ビット値を指定します。

dwCreationFlags
CREATE_SUSPENDED フラグを指定すると、サスペンド状態のスレッドが作成されます。省略するときは 0 を指定します。

lpThreadId
DWord型変数へのポインタを指定します。この変数に作成されたスレッドのIDが格納されます。

戻り値

関数が成功すると、作成されたスレッドのハンドルが返ります。失敗すると 0 が返ります。

解説

スレッドのハンドルが不要になったときは、CloseHandle関数でメモリから解放して下さい。

作成されるスレッドの優先順位は THREAD_PRIORITY_NORMAL になります。優先順位の取得、設定はそれぞれ、GetThreadPriority関数、SetThreadPriority関数を利用して下さい。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

CloseHandle関数、ExitThread関数、ResumeThread関数


 Win32API: ExitProcess

プロセスを終了します。

定義
Declare Sub ExitProcess Lib "kernel32" _
         (dwExitCode As DWord)
uExitCode
プロセスの終了コードを指定します。

解説

この関数は、呼び出し側のプロセスを終了させるものであり、他のプロセスを終了させることはできません。
他のプロセスを終了させる場合は、TerminateProcess関数を利用して下さい。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

TerminateProcess関数


 Win32API: ExitThread

スレッドを終了します。

定義
Declare Sub ExitThread Lib "kernel32" _
         (dwExitCode As DWord)
dwExitCode
スレッドの終了コードを指定します。

解説

この関数は、呼び出し側のスレッドを終了させるものであり、他のスレッドを終了させることはできません。
他のスレッドを終了させる場合は、TerminateThread関数を利用して下さい。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

TerminateThread関数


 Win32API: GetCommandLine

コマンドライン文字列を取得します。

定義

Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineA" ( ) As BytePtr

戻り値

コマンドライン文字列が格納されているバッファへのポインタが返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll


 Win32API: GetCurrentProcess

呼び出し側プロセスの擬似ハンドルを取得します。

定義

Declare Function GetCurrentProcess Lib "kernel32" ( ) As HANDLE

戻り値

プロセスの擬似ハンドルが返ります。

解説

擬似ハンドルは、呼び出し側プロセスが自分自身のプロセス ハンドルを参照するときに利用されます。擬似ハンドルが不要になってもクローズする必要はありません。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll


 Win32API: GetCurrentProcessId

呼び出し側プロセスのIDを取得します。

定義

Declare Function GetCurrentProcessId Lib "kernel32" ( ) As DWord

戻り値

プロセスIDが返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll


 Win32API: GetCurrentThread

呼び出し側スレッドの擬似ハンドルを取得します。

定義

Declare Function GetCurrentThread Lib "kernel32" ( ) As HANDLE

戻り値

スレッドの擬似ハンドルが返ります。

解説

擬似ハンドルは、呼び出し側スレッドが自分自身のスレッド ハンドルを参照するときに利用されます。擬似ハンドルが不要になってもクローズする必要はありません。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll


 Win32API: GetCurrentThreadId

呼び出し側スレッドのIDを取得します。

定義

Declare Function GetCurrentThreadId Lib "kernel32" ( ) As DWord

戻り値

スレッドIDが返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll


 Win32API: GetEnvironmentVariable

呼び出し側プロセスの環境変数の内容を取得します。

定義
Declare Function GetEnvironmentVariable Lib "kernel32" Alias "GetEnvironmentVariableA" _
   (lpName As BytePtr, _
    lpBuffer As BytePtr, _
    nSize As DWord) As DWord
lpName
環境変数の名前が格納された文字列へのポインタを指定します。

lpBuffer
バッファへのポインタを指定します。このバッファに環境変数の内容が格納されます。

nSize
バッファサイズをバイト単位で指定します。

戻り値

関数が成功するとバッファに格納されたデータのバイト数が返ります。失敗すると0が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

SetEnvironmentVariable関数


 Win32API: GetExitCodeProcess

指定したプロセスが終了しているかどうかを確認します。

定義
Declare Function GetExitCodeProcess Lib "kernel32" _
         (hProcess As HANDLE, _
    ByRef lpExitCode As DWord) As Long
hProcess
調査するプロセスのハンドルを指定します。

lpExitCode
DWord型変数のポインタを指定します。この変数にプロセス終了状況が格納されます。プロセスが実行されているときは STILL_ACTIVE が、終了しているときは終了コードが格納されます。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

ExitProcess関数


 Win32API: GetExitCodeThread

指定したスレッドが終了しているかどうかを確認します。

定義
Declare Function GetExitCodeThread Lib "kernel32" _
         (hThread As HANDLE, _
    ByRef lpExitCode As DWord) As Long
hThread
調査するスレッドのハンドルを指定します。

lpExitCode
DWord型変数のポインタを指定します。この変数にスレッド終了状況が格納されます。スレッドが実行されているときは STILL_ACTIVE が、終了しているときは終了コードが格納されます。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

ExitThread関数


 Win32API: GetPriorityClass

指定したプロセスの優先順位を取得します。

定義
Declare Function GetPriorityClass Lib "kernel32" _
         (hProcess As HANDLE) As DWord
hProcess
プロセスのハンドルを指定します。

戻り値

関数が成功すると、優先順位が以下の定数で返ります。失敗すると 0 が返ります。
優先順位クラス | 説明
HIGH_PRIORITY_CLASS | タイムクリティカルなタスクを実行するプロセスであることを示します。
IDLE_PRIORITY_CLASS | システムがアイドル状態のときにだけ実行するプロセスであることを示します。
NORMAL_PRIORITY_CLASS | 特別なスケジューリングを必要としない、一般的なプロセスであることを示します。
REALTIME_PRIORITY_CLASS | 最も高い優先順位クラスを持つプロセスであることを示します。このクラスのスレッドは、重要なタスクを行うオペレーティングシステムのプロセスを含むほかのすべてのプロセスのスレッドよりも先に実行されます。少しでも長い時間実行すると、ディスクキャッシュがフラッシュされなくなったり、マウスが応答しなくなったりします。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

SetPriorityClass関数


 Win32API: GetStartupInfo

プロセスが作成されたときのSTARTUPINFO構造体の内容を取得します。

定義
Declare Sub GetStartupInfo Lib "kernel32" Alias "GetStartupInfoA" _
   (ByRef lpStartupInfo As STARTUPINFO)
lpStartupInfo
STARTUPINFO構造体へのポインタを指定します。この構造体に、プロセス起動時の情報が格納されます。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

CreateProcess関数


 Win32API: GetThreadPriority

指定したスレッドの優先順位を取得します。

定義
Declare Function GetThreadPriority Lib "kernel32" _
         (hThread As HANDLE) As DWord
hThread
スレッドのハンドルを指定します。

戻り値

関数が成功すると、優先順位が以下の定数で返ります。失敗すると THREAD_PRIORITY_ERROR_RETURN が返ります。
優先順位クラス | 説明
THREAD_PRIORITY_HIGHEST | スレッド標準の相対優先順位値よりも 2 ポイント高い相対優先順位値です。
THREAD_PRIORITY_ABOVE_NORMAL | スレッド標準の相対優先順位値よりも 1 ポイント高い相対優先順位値です。
THREAD_PRIORITY_NORMAL | スレッド標準の相対優先順位値です。
THREAD_PRIORITY_BELOW_NORMAL | スレッド標準の相対優先順位値よりも 1 ポイント低い相対優先順位値です。
THREAD_PRIORITY_LOWEST | スレッド標準の相対優先順位値よりも 2 ポイント低い相対優先順位値です。
THREAD_PRIORITY_IDLE | プロセスの優先順位クラスが、IDLE_PRIORITY_CLASS、NORMAL_PRIORITY_CLASS、HIGH_PRIORITY_CLASS のいずれかの場合は、基本優先順位レベルが 1 であることを示します。プロセスの優先順位クラスが、REALTIME_PRIORITY_CLASS の場合は、基本優先順位レベルが 16 であることを示します。
THREAD_PRIORITY_TIME_CRITICAL | プロセスの優先順位クラスが、IDLE_PRIORITY_CLASS、NORMAL_PRIORITY_CLASS、HIGH_PRIORITY_CLASS のいずれかの場合は、基本優先順位レベルが 15 であることを示します。プロセスの優先順位クラスが、REALTIME_PRIORITY_CLASS の場合は、基本優先順位レベルが 31 であることを示します。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

SetThreadPriority関数


 Win32API: OpenProcess

指定したプロセスIDに対するプロセスハンドルを取得します。

定義
Declare Function OpenProcess Lib "kernel32" _
         (dwDesiredAccess As DWord, _
          bInheritHandle As Long, _
          dwProcessId As DWord) As HANDLE
dwDesiredAccess
プロセスへのアクセスに関するオプションを、以下の組み合わせで指定します。
フラグ | 説明
PROCESS_ALL_ACCESS | すべてのアクセス権を有効にします。
PROCESS_CREATE_PROCESS | 内部で利用されます。
PROCESS_CREATE_THREAD | 取得したハンドルを CreateRemoteThread 関数で使用できるようにします。
PROCESS_DUP_HANDLE | 取得したハンドルを DuplicateHandle 関数で使用できるようにします。
PROCESS_QUERY_INFORMATION | 取得したハンドルをGetExitCodeProcess関数、及びGetPriorityClass関数で使用できるようにします。
PROCESS_SET_QUOTA | 取得したハンドルを AssignProcessToJobObject 関数、及び SetProcessWorkingSetSize 関数で使用できるようにします。
PROCESS_SET_INFORMATION | 取得したハンドルをSetPriorityClass関数で使用できるようにします。
PROCESS_TERMINATE | 取得したハンドルをTerminateProcess関数で使用できるようにします。
PROCESS_VM_OPERATION | 取得したハンドルを VirtualProtectEx 関数、及び WriteProcessMemory 関数で使用できるようにします。
PROCESS_VM_READ | 取得したハンドルを ReadProcessMemory 関数で使用できるようにします。
PROCESS_VM_WRITE | 取得したハンドルを WriteProcessMemory 関数で使用できるようにします。
SYNCHRONIZE | 取得したハンドルを待機関数で使用できるようにします（WindowsNT系OSのみ）。

bInheritHandle
TRUE を指定すると、プロセス作成時に取得したハンドルを継承します。それ以外は FALSE を指定します。

dwProcessId
プロセスIDを指定します。

戻り値

関数が成功すると、プロセスハンドルが返ります。失敗すると 0 が返ります。

解説

ハンドルが不要になったら、CloseHandle関数でメモリから解放する必要があります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

CloseHandle関数、CreateProcess関数


 Win32API: ResumeThread

スレッドのサスペンド カウントを 1 減らします。サスペンド カウントが 0 になるとスレッドは実行に移ります。

定義
Declare Function ResumeThread Lib "kernel32" _
         (hThread As HANDLE) As DWord
hThread
スレッドのハンドルを指定します。

戻り値

関数が成功すると、呼び出し前のサスペンド カウントの値が返ります。失敗すると、&HFFFFFFFF が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

SuspendThread関数


 Win32API: SetEnvironmentVariable

呼び出し側プロセスの環境変数の内容を設定します。

定義
Declare Function SetEnvironmentVariable Lib "kernel32" _
   (lpName As BytePtr, _
    lpValue As BytePtr) As Long
lpName
環境変数の名前が格納された文字列へのポインタを指定します。指定した名前が環境変数に存在しないときは、新たに生成されます。

lpValue
環境変数の値が格納されたバッファへのポインタを指定します。NULLを指定すると、lpNameで指定した環境変数が削除されます。

戻り値

関数が成功するとTRUEが返ります。失敗するとFALSEが返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GetEnvironmentVariable関数


 Win32API: SetPriorityClass

指定したプロセスの優先順位を設定します。

定義
Declare Function SetPriorityClass Lib "kernel32" _
         (hProcess As HANDLE, _
          dwPriorityClass As DWord) As Long
hProcess
プロセスのハンドルを指定します。

dwPriorityClass
優先順位を以下の定数のいずれかで指定します。
優先順位クラス | 説明
HIGH_PRIORITY_CLASS | タイムクリティカルなタスクを実行するプロセスであることを示します。
IDLE_PRIORITY_CLASS | システムがアイドル状態のときにだけ実行するプロセスであることを示します。
NORMAL_PRIORITY_CLASS | 特別なスケジューリングを必要としない、一般的なプロセスであることを示します。
REALTIME_PRIORITY_CLASS | 最も高い優先順位クラスを持つプロセスであることを示します。このクラスのスレッドは、重要なタスクを行うオペレーティングシステムのプロセスを含むほかのすべてのプロセスのスレッドよりも先に実行されます。少しでも長い時間実行すると、ディスクキャッシュがフラッシュされなくなったり、マウスが応答しなくなったりします。

戻り値

関数が成功すると、TRUE が返ります。失敗すると FALSE が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GetPriorityClass関数


 Win32API: SetThreadPriority

指定したスレッドの優先順位を設定します。

定義
Declare Function SetThreadPriority Lib "kernel32" _
         (hThread As HANDLE, _
          nPriority As Long) As Long
hThread
スレッドのハンドルを指定します。

nPriority
優先順位を、以下の定数のいずれかで指定します。
優先順位クラス | 説明
THREAD_PRIORITY_HIGHEST | スレッド標準の相対優先順位値よりも 2 ポイント高い相対優先順位値です。
THREAD_PRIORITY_ABOVE_NORMAL | スレッド標準の相対優先順位値よりも 1 ポイント高い相対優先順位値です。
THREAD_PRIORITY_NORMAL | スレッド標準の相対優先順位値です。
THREAD_PRIORITY_BELOW_NORMAL | スレッド標準の相対優先順位値よりも 1 ポイント低い相対優先順位値です。
THREAD_PRIORITY_LOWEST | スレッド標準の相対優先順位値よりも 2 ポイント低い相対優先順位値です。
THREAD_PRIORITY_IDLE | プロセスの優先順位クラスが、IDLE_PRIORITY_CLASS、NORMAL_PRIORITY_CLASS、HIGH_PRIORITY_CLASS のいずれかの場合は、基本優先順位レベルが 1 であることを示します。プロセスの優先順位クラスが、REALTIME_PRIORITY_CLASS の場合は、基本優先順位レベルが 16 であることを示します。
THREAD_PRIORITY_TIME_CRITICAL | プロセスの優先順位クラスが、IDLE_PRIORITY_CLASS、NORMAL_PRIORITY_CLASS、HIGH_PRIORITY_CLASS のいずれかの場合は、基本優先順位レベルが 15 であることを示します。プロセスの優先順位クラスが、REALTIME_PRIORITY_CLASS の場合は、基本優先順位レベルが 31 であることを示します。

戻り値

関数が成功すると TRUE が返ります。失敗すると FALSE が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GetThreadPriority関数


 Win32API: Sleep

呼び出し側スレッドを一定時間だけ中断します。

定義
Declare Sub Sleep Lib "kernel32" _
         (dwMilliseconds As DWord)
dwMilliseconds
中断する時間をミリ秒単位で指定します。INFINITE を指定すると中断時間が無限になります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll


 Win32API: SuspendThread

スレッドをサスペンド状態（一時中断）にし、サスペンド カウントを 1 増やします。

定義
Declare Function SuspendThread Lib "kernel32" _
         (hThread As HANDLE) As DWord
hThread
スレッドのハンドルを指定します。

戻り値

関数が成功すると、呼び出し前のサスペンド カウントの値が返ります。失敗すると、&HFFFFFFFF が返ります。

解説

サスペンド カウントの最大値は 127 です。127 を超えると関数は失敗します。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

ResumeThread関数


 Win32API: TerminateProcess

指定したプロセスを強制的に終了させます。

定義
Declare Function TerminateProcess Lib "kernel32"
         (hProcess As HANDLE, _
          dwExitCode As DWord) As Long
hProcess
プロセスのハンドルを指定します。

dwExitCode
終了コードを指定します。

戻り値

関数が成功すると TRUE が返ります。失敗すると FALSE が返ります。

解説

この関数はプロセスが処理中であっても、無条件に終了させます。ExitProcess関数を利用してプロセスが自己的に終了することができる場合はそちらの方法を採用して下さい。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

ExitProcess関数


 Win32API: TerminateThread

指定したスレッドを強制的に終了させます。

定義
Declare Function TerminateThread Lib "kernel32"
         (hThread As HANDLE, _
          dwExitCode As DWord) As Long
hThread
スレッドのハンドルを指定します。

dwExitCode
終了コードを指定します。

戻り値

関数が成功すると TRUE が返ります。失敗すると FALSE が返ります。

解説

この関数はスレッドが処理中であっても、無条件に終了させます。ExitThread関数を利用してスレッドが自己的に終了することができる場合はそちらの方法を採用して下さい。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

ExitThread関数


 Win32API: WaitForInputIdle

指定したプロセスで未処理の入力が存在せず、ユーザーからの入力を待っている状態になるまで、またはタイムアウト時間が経過するまで待機します。

定義
Declare Function WaitForInputIdle Lib "user32" _
         (hProcess As HANDLE, _
          dwMilliseconds As DWord) As DWord
hProcess
プロセスのハンドルを指定します。

dwMilliseconds
タイムアウト時間をミリ秒単位で指定します。INFINITE を指定するとタイムアウト時間は無限になります。

戻り値

関数が成功し、条件が成立すると 0 が返ります。タイムアウト時間を過ぎると WAIT_TIMEOUT が返ります。関数が失敗すると &HFFFFFFFF が返ります。

解説

この関数は、親プロセスがCreateProcess関数を呼び出して子プロセスを作成し、直後にプロセス間通信をおこなう場合などに利用されます。CreateProcess関数は子プロセスの初期化時間を考慮せずに瞬時に制御を返すので、子プロセスが初期化する間をこの関数で待機し、その後プロセス間通信を行います。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

CreateProcess関数


 構造体: PROCESS_INFORMATION

新規プロセスに関する情報が格納されます。

定義
Type PROCESS_INFORMATION
    hProcess As Long
    hThread As Long
    dwProcessId As DWord
    dwThreadId As DWord
End Type
hProcess
プロセスのハンドルが格納されます。

hThread
プライマリスレッドのハンドルが格納されます。

dwProcessId
プロセスのIDが格納されます。

dwThreadId
プライマリスレッドのIDが格納されます。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み

CreateProcess関数


 構造体: STARTUPINFO

新規プロセスに関する情報が格納されます。

定義
Type STARTUPINFO
    cb As DWord
    lpReserved As BytePtr
    lpDesktop As BytePtr
    lpTitle As BytePtr
    dwX As DWord
    dwY As DWord
    dwXSize As DWord
    dwYSize As DWord
    dwXCountChars As DWord
    dwYCountChars As DWord
    dwFillAttribute As DWord
    dwFlags As DWord
    wShowWindow As Word
    cbReserved2 As Word
    lpReserved2 As Byte
    hStdInput As Long
    hStdOutput As Long
    hStdError As Long
End Type
cb
構造体のサイズをバイト単位で指定します。

lpReserved
予約されています。0 を指定して下さい。

lpDesktop
デスクトップ、ウィンドウ ステーションの名前が格納される文字列へのポインタを指定します（WindowsNT系OSのみ）。不要なときは 0 を指定します。

lpTitle
作成するプロセスがコンソールアプリケーションのとき、コンソール ウィンドウのタイトルバーに表示するための文字列へのポインタを指定します。0 を指定すると、実行ファイル名がコンソール タイトルに表示されます。作成するプロセスがGUIアプリケーションのときは 0 を指定して下さい。

dwX、dwY
作成したプロセス内で、CreateWindowEx関数が呼び出され、なおかつ座標に CW_USEDEFAULT が指定されたときに、ここで指定する座標がデフォルト値として使われます。dwFlags メンバで STARTF_USEPOSITION フラグが指定されたときにのみ有効です。

dwXSize、dwYSize
作成したプロセス内で、CreateWindowEx関数が呼び出され、なおかつ幅や高さに CW_USEDEFAULT が指定されたときに、ここで指定するサイズがデフォルト値として使われます。dwFlags メンバで STARTF_USESIZE フラグが指定されたときにのみ有効です。

dwXCountChars、dwYCountChars
作成するプロセスがコンソールアプリケーションのとき、スクリーンバッファの幅と高さを文字単位で指定します（WindowsNT系OSのみ）。dwFlags メンバで STARTF_USECOUNTCHARS フラグを指定したときにのみ有効です。

dwFillAttribute
作成するプロセスがコンソールアプリケーションのとき、文字色と背景色の初期値を以下の定数の組み合わせで指定します。dwFlags メンバで STARTF_USEFILLATTRIBUTE フラグを指定したときにのみ有効です。
優先順位クラス | 説明
FOREGROUND_BLUE | 文字色に青を含ませます。
FOREGROUND_GREEN | 文字色に緑を含ませます。
FOREGROUND_RED | 文字色に赤を含ませます。
FOREGROUND_INTENSITY | 文字色を強調します。
BACKGROUND_BLUE | 背景色に青を含ませます。
BACKGROUND_GREEN | 背景色に緑を含ませます。
BACKGROUND_RED | 背景色に赤を含ませます。
BACKGROUND_INTENSITY | 背景色を強調します。
※これらの定数は "api_console.sbp" で定義されています。

dwFlags
オプション フラグを、以下の定数の組み合わせで指定します。
優先順位クラス | 説明
STARTF_USESHOWWINDOW | wShowWindow メンバを有効にします。
STARTF_USESIZE | dwXSize、dwYSize メンバを有効にします。
STARTF_USEPOSITION | dwX、dwY メンバを有効にします。
STARTF_USECOUNTCHARS | dwXCountChars、dwYCountChars メンバを有効にします。
STARTF_USEFILLATTRIBUTE | dwFillAttribute を有効にします。
STARTF_USESTDHANDLES | hStdInput、hStdOutput、hStdError メンバを有効にします。
STARTF_RUNFULLSCREEN | 作成するプロセスがコントロール アプリケーションのとき、コンソール ウィンドウをフルスクリーンで表示します（WindowsNT系OSのみ）。
STARTF_FORCEONFEEDBACK | アプリケーション起動時に砂時計カーソルを利用します。
STARTF_FORCEOFFFEEDBACK | アプリケーション起動時にカーソル変更を行いません。

wShowWindow
ウィンドウの表示状態の初期値を指定します。指定する定数については、ShowWindow関数の nCmdShow パラメータを参照して下さい。dwFlags メンバで STARTF_USESHOWWINDOW フラグを指定したときにのみ有効です。

cbReserved2
予約されています。0 を指定して下さい。

lpReserved2
予約されています。0 を指定して下さい。

hStdInput
作成するプロセスの標準入力ハンドルを指定します。dwFlags メンバで STARTF_USESTDHANDLES フラグを指定したときにのみ有効です。

hStdOutput
作成するプロセスの標準出力ハンドルを指定します。dwFlags メンバで STARTF_USESTDHANDLES フラグを指定したときにのみ有効です。

hStdError
作成するプロセスの標準エラーハンドルを指定します。dwFlags メンバで STARTF_USESTDHANDLES フラグを指定したときにのみ有効です。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み

CreateProcess関数


 Win32API: RegCloseKey

指定したレジストリキーをクローズします。

定義
Declare Function RegCloseKey Lib "advapi32" _
   (ByVal hKey As HKEY) As Long
hKey
クローズするキーのハンドルを指定します。

戻り値

関数が成功すると、ERROR_SUCCESS が返ります。失敗すると、0 以外の値のエラーコードが返ります。

環境情報

インクルード ファイル: api_reg.sbp 内で定義済み
DLLファイル: advapi32.dll

RegCreateKeyEx関数、RegOpenKeyEx関数


 Win32API: RegCreateKeyEx

指定したレジストリキーを作成します。キーが既に存在しているときはオープンします。

定義
Declare Function RegCreateKeyEx Lib "advapi32" Alias "RegCreateKeyExA" _
         (hKey As HKEY, _
          lpSubKey As String, _
          Reserved As DWord, _
          lpClass As String, _
          dwOptions As DWord, _
          samDesired As Long, _
    ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, _
    ByRef phkResult As HKEY, _
          lpdwDisposition As DWordPtr) As Long
hKey
既存のキーのハンドルを指定します。以下の定義済みハンドルから指定することもできます。
ハンドル | 説明
HKEY_CLASSES_ROOT | 拡張子に関する情報、Windowsにインストールされているコンポーネントに関する情報などが格納されています。
HKEY_CURRENT_USER | 現在のユーザーが使用するためのOS、アプリケーションに関する情報などが格納されています。
HKEY_LOCAL_MACHINE | コンピュータ固有の情報などが格納されています。
HKEY_USERS | すべてのユーザーに関する情報などが格納されています。

lpSubKey
hKey パラメータで指定したキーを親とするサブキーの名前が入った文字列を指定します。

Reserved
予約されています。0 を指定して下さい。

lpClass
作成するキーのクラス（オブジェクトの種類）の名前が格納された文字列を指定します。キーが既に存在しているときは無視されます。不要なときは、NULL を指定することができます。

dwOptions
作成するキーに関する特殊オプションを、以下の定数から指定します。
定数 | 説明
REG_OPTION_NON_VOLATILE | 不揮発性のキーを作成します。キーはファイルに保存され、システムを再起動しても情報は失われません（デフォルト）。
REG_OPTION_VOLATILE | 揮発性のキーを作成します。キーはメモリに保存され、システムを再起動すると、情報が失われます（WindowsNT系OSのみ）。
REG_OPTION_BACKUP_RESTORE | 呼び出し側のスレッドが SE_BACKUP_NAME 特権を持っている場合、このキーは、ACCESS_SYSTEM_SECURITY アクセスと KEY_READ アクセスでオープンされます。呼び出し側のスレッドが SE_RESTORE_NAME 特権を持っている場合、このキーは、ACCESS_SYSTEM_SECURITY アクセスと KEY_WRITE アクセスでオープンされます。両方の特権を持っている場合、両方の特権が組み合わさります。この値を指定すると、samDesired パラメータが無視されます（WindowsNT系OSのみ）。

samDesired
セキュリティ マスクを、以下の定数を組み合わせて指定します。
定数 | 説明
KEY_ALL_ACCESS | KEY_QUERY_VALUE、KEY_ENUMERATE_SUB_KEYS、KEY_NOTIFY、KEY_CREATE_SUB_KEY、KEY_CREATE_LINK、KEY_SET_VALUE の組み合わせです。
KEY_CREATE_LINK | シンボリックリンクの作成を許可します。
KEY_CREATE_SUB_KEY | サブキーの作成を許可します。
KEY_ENUMERATE_SUB_KEYS | サブキーの列挙を許可します。
KEY_EXECUTE 、または KEY_READ | KEY_QUERY_VALUE、KEY_ENUMERATE_SUB_KEYS、KEY_NOTIFY の組み合わせです。読み取りアクセスを許可します。
KEY_NOTIFY | 変更の通知を許可します。
KEY_QUERY_VALUE | サブキーデータの問い合わせを許可します。
KEY_SET_VALUE | サブキーデータの設定を許可します。
KEY_WRITE | KEY_SET_VALUE、KEY_CREATE_SUB_KEY の組み合わせです。

lpSecurityAttributes （ポインタ参照）
SECURITY_ATTRIBUTES 型の構造体変数を指定すると、ハンドルの子プロセスへの継承許可を設定することができます。NULL を指定するとハンドルは継承されません。

phkResult （ポインタ参照）
32 ビット整数型変数へのポインタを指定します。この変数に作成、またはオープンしたキーのハンドルが格納されます。

lpdwDisposition
32 ビット整数型変数へのポインタを指定します。この変数には、関数の処理結果が格納されます。処理結果は以下の定数のいずれかです。不要なときは、NULL を指定することができます。
定数 | 説明
REG_CREATED_NEW_KEY | キーが存在していなかったため、新たに作成しました。
REG_OPENED_EXISTING_KEY | キーが既に存在していたため、オープンしました。

戻り値

関数が成功すると、ERROR_SUCCESS が返ります。失敗すると、0 以外の値のエラーコードが返ります。

解説

phkResult パラメータに格納されたキーが不要になったら、RegCloseKey関数を使用してキーを閉じて下さい。

環境情報

インクルード ファイル: api_reg.sbp 内で定義済み
DLLファイル: advapi32.dll

RegCloseKey関数、RegDeleteKey関数、RegDeleteValue関数、RegOpenKeyEx関数、RegQueryValueEx関数、RegSetValueEx関数


 Win32API: RegDeleteKey

指定したレジストリキーを削除します。

定義
Declare Function RegDeleteKey Lib "advapi32" Alias "RegDeleteKeyA" _
   (ByVal hKey As HKEY, _
    ByVal lpSubKey As String) As Long
hKey
既存のキーのハンドルを指定します。以下の定義済みハンドルから指定することもできます。
ハンドル | 説明
HKEY_CLASSES_ROOT | 拡張子に関する情報、Windowsにインストールされているコンポーネントに関する情報などが格納されています。
HKEY_CURRENT_USER | 現在のユーザーが使用するためのOS、アプリケーションに関する情報などが格納されています。
HKEY_LOCAL_MACHINE | コンピュータ固有の情報などが格納されています。
HKEY_USERS | すべてのユーザーに関する情報などが格納されています。

lpSubKey
hKey パラメータで指定したキーを親とするサブキーの名前が入った文字列を指定します。ここで指定するサブキーが削除されます。

戻り値

関数が成功すると、ERROR_SUCCESS が返ります。失敗すると、0 以外の値のエラーコードが返ります。

解説

WindowsNT系OSでは、サブキーを持つキーを削除することはできません。

環境情報

インクルード ファイル: api_reg.sbp 内で定義済み
DLLファイル: advapi32.dll

RegCreateKeyEx関数、RegOpenKeyEx関数


 Win32API: RegDeleteValue

指定したレジストリキー内の値を削除します。

定義
Declare Function RegDeleteValue Lib "advapi32" Alias "RegDeleteValueA" _
   (hKey As HKEY, _
    lpValueName As String) As Long
hKey
既存のキーのハンドルを指定します。以下の定義済みハンドルから指定することもできます。
ハンドル | 説明
HKEY_CLASSES_ROOT | 拡張子に関する情報、Windowsにインストールされているコンポーネントに関する情報などが格納されています。
HKEY_CURRENT_USER | 現在のユーザーが使用するためのOS、アプリケーションに関する情報などが格納されています。
HKEY_LOCAL_MACHINE | コンピュータ固有の情報などが格納されています。
HKEY_USERS | すべてのユーザーに関する情報などが格納されています。

lpValueName
削除する値の名前が格納された文字列を指定します。

戻り値

関数が成功すると、ERROR_SUCCESS が返ります。失敗すると、0 以外の値のエラーコードが返ります。

解説

hKey パラメータで指定するキーは、KEY_SET_VALUE アクセス権を持っていなければなりません。

環境情報

インクルード ファイル: api_reg.sbp 内で定義済み
DLLファイル: advapi32.dll

RegSetValueEx関数


 Win32API: RegOpenKeyEx

指定したレジストリキーをオープンします。

定義
Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" _
         (hKey As HKEY, _
          lpSubKey As String, _
          ulOptions As DWord, _
          samDesired As Long, _
    ByRef phkResult As HKEY) As Long
hKey
既存のキーのハンドルを指定します。以下の定義済みハンドルから指定することもできます。
ハンドル | 説明
HKEY_CLASSES_ROOT | 拡張子に関する情報、Windowsにインストールされているコンポーネントに関する情報などが格納されています。
HKEY_CURRENT_USER | 現在のユーザーが使用するためのOS、アプリケーションに関する情報などが格納されています。
HKEY_LOCAL_MACHINE | コンピュータ固有の情報などが格納されています。
HKEY_USERS | すべてのユーザーに関する情報などが格納されています。

lpSubKey
hKey パラメータで指定したキーを親とするサブキーの名前が入った文字列を指定します。

ulOptions
予約されています。0 を指定して下さい。

samDesired
セキュリティ マスクを、以下の定数を組み合わせて指定します。
定数 | 説明
KEY_ALL_ACCESS | KEY_QUERY_VALUE、KEY_ENUMERATE_SUB_KEYS、KEY_NOTIFY、KEY_CREATE_SUB_KEY、KEY_CREATE_LINK、KEY_SET_VALUE の組み合わせです。
KEY_CREATE_LINK | シンボリックリンクの作成を許可します。
KEY_CREATE_SUB_KEY | サブキーの作成を許可します。
KEY_ENUMERATE_SUB_KEYS | サブキーの列挙を許可します。
KEY_EXECUTE 、または KEY_READ | KEY_QUERY_VALUE、KEY_ENUMERATE_SUB_KEYS、KEY_NOTIFY の組み合わせです。読み取りアクセスを許可します。
KEY_NOTIFY | 変更の通知を許可します。
KEY_QUERY_VALUE | サブキーデータの問い合わせを許可します。
KEY_SET_VALUE | サブキーデータの設定を許可します。
KEY_WRITE | KEY_SET_VALUE、KEY_CREATE_SUB_KEY の組み合わせです。

phkResult （ポインタ参照）
32 ビット整数型変数へのポインタを指定します。この変数に作成、またはオープンしたキーのハンドルが格納されます。

戻り値

関数が成功すると、ERROR_SUCCESS が返ります。失敗すると、0 以外の値のエラーコードが返ります。

解説

phkResult パラメータに格納されたキーが不要になったら、RegCloseKey関数を使用してキーを閉じて下さい。

環境情報

インクルード ファイル: api_reg.sbp 内で定義済み
DLLファイル: advapi32.dll

RegCloseKey関数、RegCreateKeyEx関数、RegDeleteKey関数、RegDeleteValue関数、RegQueryValueEx関数、RegSetValueEx関数


 Win32API: RegQueryValueEx

指定したレジストリキーの値を読み取ります。

定義
Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" _
   (hKey As HKEY, _
    lpValueName As String, _
    lpReserved As DWord, _
    lpType As DWordPtr, _
    lpData As VoidPtr, _
    lpcbData As DWordPtr) As Long
hKey
既存のキーのハンドルを指定します。以下の定義済みハンドルから指定することもできます。
ハンドル | 説明
HKEY_CLASSES_ROOT | 拡張子に関する情報、Windowsにインストールされているコンポーネントに関する情報などが格納されています。
HKEY_CURRENT_USER | 現在のユーザーが使用するためのOS、アプリケーションに関する情報などが格納されています。
HKEY_LOCAL_MACHINE | コンピュータ固有の情報などが格納されています。
HKEY_USERS | すべてのユーザーに関する情報などが格納されています。

lpValueName
読み取る値の名前を指定します。

lpReserved
予約されています。0 を指定して下さい。

lpType
32 ビット整数型変数へのポインタを指定します。ここで指定する変数に、データの種類が以下の定数から格納されます。不要なときは、NULL を指定することができます。
定数 | 説明
REG_BINARY | 任意の形式のバイナリデータです。
REG_DWORD 、または REG_DWORD_LITTLE_ENDIAN | 32 ビット値です。
REG_DWORD_BIG_ENDIAN | ビッグエンディアン形式の 32 ビット値です。
REG_EXPAND_SZ | 展開前の環境変数への参照 (たとえば "%PATH%" ) が入った NULL で終わる文字列です。
REG_LINK | Unicode のシンボリックリンクです。
REG_MULTI_SZ | NULL で終わる文字列の配列です。連続する 2 つの NULL 文字で、終端を示します。
REG_NONE | 定義されていない種類です。
REG_RESOURCE_LIST | デバイスドライバのリソースリストです。
REG_SZ | NULL で終わる文字列です。

lpData
読み取ったデータを受け取るためのバッファへのポインタを指定します。不要なときは、NULL を指定することができます。

lpcbData
lpData パラメータで指定したバッファのバイト数が格納されている、32 ビット整数型変数へのポインタを指定します。関数が成功すると、読み取ったデータのバイト数が格納されます。lpData パラメータに NULL を指定すると、必要なバイト数が格納されます。lpData パラメータに NULL を指定したときに限り、このパラメータに NULL を指定することができます。

戻り値

関数が成功すると、ERROR_SUCCESS が返ります。失敗すると、0 以外の値のエラーコードが返ります。

解説

hKey パラメータで指定するキーは、KEY_QUERY_VALUE 権を持っていなければなりません。

環境情報

インクルード ファイル: api_reg.sbp 内で定義済み
DLLファイル: advapi32.dll

RegCreateKeyEx関数、RegOpenKeyEx関数、RegSetValueEx関数


 Win32API: RegSetValueEx

指定したレジストリキーの値を設定します。

定義
Declare Function RegSetValueEx Lib "advapi32" Alias "RegSetValueExA" _
   (hKey As HKEY, _
    lpValueName As String, _
    Reserved As DWord, _
    dwType As DWord, _
    lpData As VoidPtr, _
    cbData As DWord) As Long
hKey
既存のキーのハンドルを指定します。以下の定義済みハンドルから指定することもできます。
ハンドル | 説明
HKEY_CLASSES_ROOT | 拡張子に関する情報、Windowsにインストールされているコンポーネントに関する情報などが格納されています。
HKEY_CURRENT_USER | 現在のユーザーが使用するためのOS、アプリケーションに関する情報などが格納されています。
HKEY_LOCAL_MACHINE | コンピュータ固有の情報などが格納されています。
HKEY_USERS | すべてのユーザーに関する情報などが格納されています。

lpValueName
設定する値の名前を指定します。

Reserved
予約されています。0 を指定して下さい。

dwType
データの種類を、以下の定数から指定します。
定数 | 説明
REG_BINARY | 任意の形式のバイナリデータです。
REG_DWORD 、または REG_DWORD_LITTLE_ENDIAN | 32 ビット値です。
REG_DWORD_BIG_ENDIAN | ビッグエンディアン形式の 32 ビット値です。
REG_EXPAND_SZ | 展開前の環境変数への参照 (たとえば "%PATH%" ) が入った NULL で終わる文字列です。
REG_LINK | Unicode のシンボリックリンクです。
REG_MULTI_SZ | NULL で終わる文字列の配列です。連続する 2 つの NULL 文字で、終端を示します。
REG_NONE | 定義されていない種類です。
REG_RESOURCE_LIST | デバイスドライバのリソースリストです。
REG_SZ | NULL で終わる文字列です。

lpData
設定するデータが格納されているバッファへのポインタを指定します。

cbData
lpData パラメータで指定したデータのバイト数を指定します。データが文字列のときは、終端の NULL 文字も含めなければなりません。

戻り値

関数が成功すると、ERROR_SUCCESS が返ります。失敗すると、0 以外の値のエラーコードが返ります。

解説

hKey パラメータで指定するキーは、KEY_SET_VALUE 権を持っていなければなりません。
指定したキーの値が存在しないときは、新たに追加されます。

環境情報

インクルード ファイル: api_reg.sbp 内で定義済み
DLLファイル: advapi32.dll

RegCreateKeyEx関数、RegOpenKeyEx関数、RegQueryValueEx関数


 Win32API: DragAcceptFiles

指定したウィンドウで、ファイルのドラッグ＆ドロップを受け付けるかどうかを設定します。

定義
Declare Sub DragAcceptFiles Lib "shell32" _
   (hWnd As HWND, _
    bAccept As Long)
hWnd
ウィンドウ ハンドルを指定します。

bAccept
ドラッグ＆ドロップを受け付けるときは TRUE を、受け付けないときは FALSE を指定します。

解説

bAccept パラメータに TRUE を指定したら、WM_DROPFILES メッセージ（RADツールのときは、DropFilesイベント）を処理する必要があります。

環境情報

インクルード ファイル: api_shell.sbp 内で定義済み
DLLファイル: shell32.dll

DragFinish関数、DragQueryFile関数、DragQueryPoint関数、DropFilesイベント


 Win32API: DragFinish

ドラッグ＆ドロップに使用された情報をメモリから解放します。

定義
Declare Sub DragFinish Lib "shell32" _
   (hDrop As HDROP)
hDrop
ドロップ ハンドルを指定します。このハンドルは、WM_DROPFILES メッセージの wParam で指定されます（RADツールの場合は、DropFilesイベントで引き渡されます）。

環境情報

インクルード ファイル: api_shell.sbp 内で定義済み
DLLファイル: shell32.dll

DragAcceptFiles関数、DragQueryFile関数、DragQueryPoint関数、DropFilesイベント


 Win32API: DragQueryFile

ウィンドウにドロップされたファイルのパスを取得します。

定義
Declare Function DragQueryFile Lib "shell32" Alias "DragQueryFileA" _
   (hDrop As HDROP, _
    iFile As Long, _
    lpszFile As BytePtr, _
    cch As DWord) As DWord
hDrop
ドロップ ハンドルを指定します。このハンドルは、WM_DROPFILES メッセージの wParam で指定されます（RADツールの場合は、DropFilesイベントで引き渡されます）。

iFile
複数のファイルがドロップされたときに、何番目のファイルのパスを取得するかを指定します。-1 を指定すると、ドロップされたファイルの数が戻り値として返ります。

lpszFile
ファイルのパスを格納するための、文字列バッファへのポインタを指定します。

cch
lpszFile パラメータで指定したバッファのバイト数を指定します。

戻り値

関数が成功すると、バッファにコピーされたバイト数（終端の NULL 文字を除く）が返ります。lpszFile パラメータに NULL を指定したときは、必要なバイト数（終端の NULL 文字を含む）が返ります。
ただし、iFile パラメータに -1 が指定されたときは、ドロップされたファイルの数が返ります（lpszFile、cch パラメータは無視されます）。

環境情報

インクルード ファイル: api_shell.sbp 内で定義済み
DLLファイル: shell32.dll

DragAcceptFiles関数、DragFinish関数、DragQueryPoint関数、DropFilesイベント


 Win32API: DragQueryPoint

ウィンドウにファイルがドロップされたときのマウス ポインタの位置を取得します。

定義
Declare Function DragQueryPoint Lib "shell32" _
         (hDrop As HDROP, _
    ByRef lpPoint As POINTAPI) As Long
hDrop
ドロップ ハンドルを指定します。このハンドルは、WM_DROPFILES メッセージの wParam で指定されます（RADツールの場合は、DropFilesイベントで引き渡されます）。

lpPoint （ポインタ参照）
POINTAPI構造体へのポインタを指定します。この構造体にドロップされたときのマウス ポインタの位置が格納されます。

戻り値

ファイルがウィンドウのクライアント領域内にドロップされたときは、TRUE が返ります。それ以外は、FALSE が返ります。

環境情報

インクルード ファイル: api_shell.sbp 内で定義済み
DLLファイル: shell32.dll

DragAcceptFiles関数、DragFinish関数、DragQueryFile関数、DropFilesイベント


 Win32API: ExtractAssociatedIcon

指定したファイルに関連付けられている実行ファイル内のアイコンを取得します。

定義
Declare Function ExtractAssociatedIcon Lib "shell32" Alias "ExtractAssociatedIconA" _
   (hInst As HINSTANCE, _
    lpIconPath As BytePtr, _
    lpiIcon As WordPtr) As HICON
hInst
呼び出し側アプリケーションのインスタンス ハンドルを指定します。

lpIconPath
ファイル名が格納されている文字列バッファへのポインタを指定します。
関数が成功すると、このバッファに関連付けられている実行ファイルのパスが格納されます。

lpiIcon
16ビット整数型変数へのポインタを指定します。lpIconPath パラメータで指定したファイルが実行ファイルのときは、アイコン インデックスを格納しておきます。

戻り値

関数が成功すると、アイコン ハンドルが返ります。失敗すると、0 が返ります。

解説

アイコンが不要になったら、DestroyIcon関数を使用してメモリから解放して下さい。

環境情報

インクルード ファイル: api_shell.sbp 内で定義済み
DLLファイル: shell32.dll

ExtractIcon関数、ExtractIconEx関数、DestroyIcon関数


 Win32API: ExtractIcon

指定した実行ファイル内のアイコンを取得します。

定義
Declare Function ExtractIcon Lib "shell32" Alias "ExtractIconA" _
   (hInst As HINSTANCE, _
    lpszExeFileName As BytePtr, _
    nIconIndex As Long) As HICON
hInst
呼び出し側アプリケーションのインスタンス ハンドルを指定します。

lpszExeFileName
実行ファイルのパスが格納されている文字列を指定します。

nIconIndex
取得するアイコンのインデックスを指定します。
-1 を指定すると、ファイルが持つアイコンの数が返ります。

戻り値

関数が成功すると、アイコン ハンドルが返ります。失敗すると、0 が返ります。

解説

アイコンが不要になったら、DestroyIcon関数を使用してメモリから解放して下さい。

環境情報

インクルード ファイル: api_shell.sbp 内で定義済み
DLLファイル: shell32.dll

ExtractAssociatedIcon関数、ExtractIconEx関数、DestroyIcon関数


 Win32API: ExtractIconEx

指定した実行ファイル内のアイコンを取得します。

定義
Declare Function ExtractIconEx Lib "shell32" Alias "ExtractIconExA" _
   (lpszFile As BytePtr, _
    nIconIndex As Long, _
    phiconLarge As DWordPtr, _
    phiconSmall As DWordPtr, _
    nIcons As Long) As HICON
lpszFile
実行ファイルのパスが格納されている文字列を指定します。

nIconIndex
取得を開始するアイコンのインデックスを指定します。
-1 を指定し、phiconLarge パラメータと phiconSmall パラメータに NULL を指定すると、ファイルが持つアイコンの数が返ります。

phiconLarge
32ビット整数型配列へのポインタを指定します。この配列に、大きいアイコンのハンドルが格納されます。不要なときは、NULL を指定します。

phiconSmall
32ビット整数型配列へのポインタを指定します。この配列に、小さいアイコンのハンドルが格納されます。不要なときは、NULL を指定します。

nIcons
nIconIndex パラメータで指定したインデックスから数えて、何個のアイコンを取得するかを指定します。

戻り値

関数が成功すると、取得したアイコンの数が返ります。失敗すると、0 以下の値が返ります。

解説

アイコンが不要になったら、DestroyIcon関数を使用してメモリから解放して下さい。

環境情報

インクルード ファイル: api_shell.sbp 内で定義済み
DLLファイル: shell32.dll

ExtractAssociatedIcon関数、ExtractIcon関数、DestroyIcon関数


 Win32API: ShellAbout

バージョン情報のダイアログボックスを表示します。

定義
Declare Function ShellAbout Lib "shell32" Alias "ShellAboutA" _
   (hWnd As HWND, _
    szApp As BytePtr, _
    szOtherStuff As BytePtr, _
    hIcon As HICON) As Long
hWnd
表示するダイアログボックスの親ウィンドウのハンドルを指定します。

szApp
アプリケーション名が格納されている文字列を指定します。

szOtherStuff
著作権情報が格納されている文字列を指定します。

hIcon
表示するアイコンのハンドルを指定します。NULL を指定すると、Windows アイコンが表示されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_shell.sbp 内で定義済み
DLLファイル: shell32.dll


 Win32API: ShellExecute

指定したドキュメントを、指定したアプリケーションで開きます。

定義
Declare Function ShellExecute Lib "shell32" Alias "ShellExecuteA" _
   (hWnd As HWND, _
    lpOperation As BytePtr, _
    lpFile As BytePtr, _
    lpParameters As BytePtr, _
    lpDirectory As BytePtr, _
    nShowCmd As Long) As HINSTANCE
hWnd
呼び出し側ウィンドウのハンドルを指定します。

lpOperation
lpFile パラメータにドキュメント ファイルを指定した場合のオペレーションを、以下の文字列から指定します。実行ファイルを指定したときは、NULL を指定します。
文字列 | 説明
"open" | ファイルを開きます。
"print" | ファイルの内容を印刷します。
"explore" | lpFile パラメータで指定されたフォルダをエクスプローラで開きます。

lpFile
オープンするファイル、または実行ファイルへのパスが格納されている文字列を指定します。
lpOperation パラメータで指定するオペレーションが "explore" のときは、フォルダへのパスを指定します。

lpParameters
lpFile パラメータで実行ファイルが指定されたときに、アプリケーションに引き渡すコマンドライン パラメータを指定します。それ以外はNULL を指定します。

lpDirectory
作業ディレクトリが格納されている文字列を指定します。不要なときは、NULL を指定することができます。

nShowCmd
アプリケーションの表示方法を、以下の定数から指定します。
定数 | 説明
SW_HIDE | ウィンドウを非表示にし、他のウィンドウをアクティブにします。
SW_MAXIMIZE | ウィンドウを最大化します。
SW_MINIMIZE | ウィンドウを最小化し、他のウィンドウをアクティブにします。
SW_RESTORE または SW_SHOWNORMAL | ウィンドウをアクティブにし、元の位置とサイズで表示します。最大化、アイコン化は解除されます。
SW_SHOW | ウィンドウをアクティブにし、現在の位置とサイズで表示します。
SW_SHOWDEFAULT | アプリケーション起動時の表示状態にします。
SW_SHOWMAXIMIZED | ウィンドウをアクティブにし、最大化します。
SW_SHOWMINIMIZED | ウィンドウをアクティブにし、最小化します。
SW_SHOWMINNOACTIVE | ウィンドウを最小化します。アクティブなウィンドウは、アクティブな状態を保ちます。
SW_SHOWNA | ウィンドウを現在の状態で表示します。
SW_SHOWNOACTIVATE | ウィンドウを直前の位置とサイズで表示します。

戻り値

関数が成功すると、アプリケーションのインスタンス ハンドルが返ります。失敗すると、エラー コードが以下の定数から返ります。
定数 | 説明
0 | システム リソースが足りません。
SE_ERR_ACCESSDENIED | OS がファイルへのアクセスを拒否しました。
SE_ERR_ASSOCINCOMPLETE | 関連付けが不正です。
SE_ERR_DDEBUSY | DDE 変換がビジー状態です。
SE_ERR_DDEFAIL | DDE 変換ができませんでした。
SE_ERR_DDETIMEOUT | DDE 変換がタイムアウトになりました。
SE_ERR_DLLNOTFOUND | 必要な DLL ファイルが見つかりませんでした。
SE_ERR_FNF | 指定したファイルが見つかりませんでした。
SE_ERR_NOASSOC | 指定したファイルが関連付けられていませんでした。
SE_ERR_OOM | メモリが足りません。
SE_ERR_PNF | 指定したパスが見つかりませんでした。
SE_ERR_SHARE | 一般共有エラー。

環境情報

インクルード ファイル: api_shell.sbp 内で定義済み
DLLファイル: shell32.dll


 Win32API: CharLower

文字列、または単一の文字を、小文字に変換します。

定義
Declare Function CharLower Lib "user32" Alias "CharLowerA" _
   (lpsz As BytePtr) As BytePtr
lpsz
文字列を指定するときは、文字列へのポインタを指定します。単一の文字を指定するときは、上位ワードに 0 を、下位ワードに文字コードを指定します。

戻り値

lpsz パラメータで文字列を指定したときは、文字列ポインタ（lpsz と同一）が返ります。
単一の文字を指定したときは、変換後の文字コードが返ります。

解説

半角、または全角の大文字アルファベットが小文字アルファベットに変換されます。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

CharUpper関数


 Win32API: CharUpper

文字列、または単一の文字を、大文字に変換します。

定義
Declare Function CharUpper Lib "user32" Alias "CharUpperA" _
   (lpsz As BytePtr) As BytePtr
lpsz
文字列を指定するときは、文字列へのポインタを指定します。単一の文字を指定するときは、上位ワードに 0 を、下位ワードに文字コードを指定します。

戻り値

lpsz パラメータで文字列を指定したときは、文字列（lpsz と同一）が返ります。
単一の文字を指定したときは、変換後の文字コードが返ります。

解説

半角、または全角の小文字アルファベットが大文字アルファベットに変換されます。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

CharLower関数


 Win32API: CompareString

指定した 2 つの文字列を比較します。

定義
Declare Function CompareString Lib "kernel32" Alias "CompareStringA" _
   (Locale As Long, _
    dwCmpFlags As DWord, _
    lpString1 As BytePtr, _
    cchCount1 As Long, _
    lpString2 As BytePtr, _
    cchCount2 As Long) As Long
Locale
ロケールを、以下の定数から指定します。
定数 | 説明
LOCALE_SYSTEM_DEFAULT | システムのデフォルトロケール
LOCALE_USER_DEFAULT | 現在のユーザーのデフォルトロケール

dwCmpFlags
比較方法を、以下の定数を組み合わせて指定します。不要なときは、0 を指定することができます。
定数 | 説明
NORM_IGNORECASE | 大文字と小文字を区別しません。
NORM_IGNOREKANATYPE | ひらがなとカタカナを区別しません。
NORM_IGNORENONSPACE | 場所を取らない文字を区別しません。
NORM_IGNORESYMBOLS | 記号を無視します。
NORM_IGNOREWIDTH | 1 バイト文字と、それと同じ 2 バイト文字を区別しません。
SORT_STRINGSORT | 句読点を記号として扱います。

lpString1
一つ目の文字列を指定します。

cchCount1
lpString1 のバイト数を指定します。文字列が NULL で終わっているときは、-1 を指定することができます。

lpString2
二つ目の文字列を指定します。

cchCount2
lpString2 のバイト数を指定します。文字列が NULL で終わっているときは、-1 を指定することができます。

戻り値

関数が成功すると、比較結果が以下の定数から返ります。失敗すると、0 が返ります。
定数 | 説明
CSTR_LESS_THAN | lpString1 が指す文字列は、lpString2 が指す文字列よりも辞書順で前になります。
CSTR_EQUAL | lpString1 が指す文字列は、lpString2 が指す文字列と辞書順で同じ位置になります。
CSTR_GREATER_THAN | lpString1 が指す文字列は、lpString2 が指す文字列よりも辞書順で後になります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

lstrcmp関数、lstrcmpi関数


 Win32API: FormatMessage

指定したエラーコードに対応するエラーメッセージ文字列を取得します。

定義
Declare Function FormatMessage Lib "kernel32" Alias "FormatMessageA" _
         (dwFlags As DWord, _
          lpSource As VoidPtr, _
          dwMessageId As DWord, _
          dwLanguageId As DWord, _
          lpBuffer As BytePtr, _
          nSize As DWord, _
          Arguments As DWordPtr) As DWord
dwFlags
オプションフラグを、以下の定数の組み合わせで指定します。
定数 | 説明
FORMAT_MESSAGE_ALLOCATE_BUFFER | FormatMessage関数に、エラーメッセージを格納するための文字列バッファの確保を要求します。このフラグを指定した場合、lpBuffer パラメータには、文字列ポインタへのポインタを指定します。また、このフラグにより取得したバッファが不要になったときは、LocalFree関数でメモリから解放する必要があります。
FORMAT_MESSAGE_IGNORE_INSERTS | Arguments パラメータを無視します。
FORMAT_MESSAGE_FROM_STRING | lpSource パラメータを有効にします。lpSource パラメータでは、NULLで終わる文字列を指定します。FORMAT_MESSAGE_FROM_HMODULE、FORMAT_MESSAGE_FROM_SYSTEM と同時に指定することはできません。
FORMAT_MESSAGE_FROM_HMODULE | lpSource パラメータを有効にし、メッセージ定義リソースを使用するようにします。lpSource パラメータには、モジュールハンドルを指定します。FORMAT_MESSAGE_FROM_SYSTEM と同時に指定することはできません。
FORMAT_MESSAGE_FROM_SYSTEM | システム定義のメッセージを取得します。
FORMAT_MESSAGE_ARGUMENT_ARRAY | Arguments パラメータを、32ビット値の配列へのポインタとします。

lpSource
FORMAT_MESSAGE_FROM_STRING フラグを指定したときは、NULL で終わる文字列へのポインタを指定します。
FORMAT_MESSAGE_FROM_HMODULE フラグを指定したときは、モジュールハンドルを指定します。
それ以外の場合は無視されます。

dwMessageId
メッセージID（エラーコード）を指定します。エラーコードを取得するには、GetLastError関数を使用します。

dwLanguageId
言語IDを指定します。現在のユーザーのデフォルトの言語を使用する場合は、LANG_USER_DEFAULT を指定します。

lpBuffer
メッセージを格納するたのバッファへのポインタを指定します。
FORMAT_MESSAGE_ALLOCATE_BUFFER フラグを指定したときは、バッファポインタへのポインタを指定します。

nSize
lpBuffer パラメータで指定したバッファのサイズを指定します。
FORMAT_MESSAGE_ALLOCATE_BUFFER フラグを指定したときは、FormatMessage関数に割り当てさせるバッファの最小サイズを指定します。

Arguments
挿入句を、32ビット値の配列へのポインタとして指定します。

戻り値

文字列のバイト数が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

サンプル

'lpMsgBufにエラーメッセージが格納されます。
Dim lpMsgBuf As BytePtr
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER or FORMAT_MESSAGE_FROM_SYSTEM or FORMAT_MESSAGE_IGNORE_INSERTS, _
    NULL, _
    GetLastError(), _
    LANG_USER_DEFAULT, _
    VarPtr(lpMsgBuf), _
    0, _
    NULL)
MessageBox(0,lpMsgBuf,"Error msg",MB_OK)
LocalFree(lpMsgBuf)
GetLastError関数


 Win32API: GetDateFormat

SYSTEMTIME 構造体が示すシステム タイムの日付を、文字列にフォーマットします。

定義
Declare Function GetDateFormat Lib "kernel32" Alias "GetDateFormatA" _
         (Locale As Long, _
          dwFlags As DWord, _
    ByRef lpDate As SYSTEMTIME, _
          lpFormat As BytePtr, _
          lpDateStr As BytePtr, _
          cchDate As Long) As Long
Locale
ロケールを、以下の定数から指定します。
定数 | 説明
LOCALE_SYSTEM_DEFAULT | システムのデフォルトロケール
LOCALE_USER_DEFAULT | 現在のユーザーのデフォルトロケール

dwFlags
lpFormat パラメータが NULL のときに、オプション フラグを、以下の定数を組み合わせて指定します。それ以外は 0 を指定します。
定数 | 説明
LOCALE_NOUSEROVERRIDE | 指定したロケールが持つシステムのデフォルトの日付フォーマットにしたがって、日付をフォーマットします。
DATE_SHORTDATE | 短い日付フォーマットを使用します（デフォルト）。DATE_LONGDATE とは同時に指定できません。
DATE_LONGDATE | 長い日付フォーマットを使用します。DATE_SHORTDATE とは同時に指定できません。
DATE_USE_ALT_CALENDAR | もしあれば、代わりのカレンダーを使用します。

lpDate （ポインタ参照）
システム タイムが格納されている、SYSTEMTIME構造体へのポインタを指定します。NULL を指定すると、現在のローカル システム タイムが使用されます。

lpFormat
dwFlags パラメータが 0 のときに、書式文字列を指定します。それ以外は NULL を指定します。書式文字列は、以下の文字列から成り立ちます。書式文字列以外の文字列は、シングルクォーテーション「'」（Chr$(39)）で囲むことをお勧めします。
書式文字列 | 説明
d | 年月日の日。先頭に 0 は付きません。
dd | 年月日の日。1 桁の場合、先頭に 0 が付きます。
ddd | 曜日。ロケールの LOCALE_SABBREVDAYNAME が使われます。
dddd | 曜日。ロケールの LOCALE_SDAYNAME が使われます。
M | 年月日の月。先頭に 0 は付きません。
MM | 年月日の月。1 桁の場合、先頭に 0 が付きます。
MMM | 年月日の月。ロケールの LOCALE_SABBREVMONTHNAME が使われます。
MMMM | 年月日の月。ロケールの LOCALE_SMONTHNAME が使われます。
y | 年月日の年。先頭に 0 は付きません。
yy | 年月日の年。1 桁の場合、先頭に 0 が付きます。
yyyy | 年月日の年。4 桁で表されます。
gg | 「平成」などの時代を示す文字列。ロケールの CAL_SERASTRING が使われます。日付がこの情報を持たないときは、無視されます。

lpDateStr
フォーマットされた文字列を格納するためのバッファへのポインタを指定します。

cchDate
lpDateStr パラメータで指定したバッファのバイト数を指定します。0 を指定すると、フォーマットは行われず、関数は必要なバイト数を返します。

戻り値

関数が成功すると、lpDateStr パラメータで指定したバッファに書き込まれた文字列のバイト数が返ります。cchDate パラメータに 0 を指定したときは、必要なバイト数が返ります。関数が失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GetTimeFormat関数、SYSTEMTIME構造体


 Win32API: GetTimeFormat

SYSTEMTIME 構造体が示すシステム タイムの時刻を、文字列にフォーマットします。

定義
Declare Function GetTimeFormat Lib "kernel32" Alias "GetTimeFormatA" _
         (Locale As Long, _
          dwFlags As DWord, _
    ByRef lpTime As SYSTEMTIME,_
          lpFormat As BytePtr, _
          lpTimeStr As BytePtr, _
          cchTime As Long) As Long
Locale
ロケールを、以下の定数から指定します。
定数 | 説明
LOCALE_SYSTEM_DEFAULT | システムのデフォルトロケール
LOCALE_USER_DEFAULT | 現在のユーザーのデフォルトロケール

dwFlags
オプション フラグを、以下の定数を組み合わせて指定します。不要なときは 0 を指定します。
定数 | 説明
LOCALE_NOUSEROVERRIDE | 指定したロケールが持つシステムのデフォルトの時刻フォーマットにしたがって、時刻をフォーマットします。lpFormat パラメータが NULL のときに有効です。
TIME_NOMINUTESORSECONDS | 分または秒は使用しません。
TIME_NOSECONDS | 秒は使用しません。
TIME_NOTIMEMARKER | 時刻マーカーは使用しません。
TIME_FORCE24HOURFORMAT | 24 時間制を使用します。

lpTime （ポインタ参照）
システム タイムが格納されている、SYSTEMTIME構造体へのポインタを指定します。NULL を指定すると、現在のローカル システム タイムが使用されます。

lpFormat
dwFlags パラメータが 0 のときに、書式文字列を指定します。それ以外は NULL を指定します。書式文字列は、以下の文字列から成り立ちます。書式文字列以外の文字列は、シングルクォーテーション「'」（Chr$(39)）で囲むことをお勧めします。
書式文字列 | 説明
h | 12 時間制の時間。先頭に 0 は付きません。
hh | 12 時間制の時間。必要に応じて、先頭に 0 が付きます。
H | 24 時間制の時間。先頭に 0 は付きません。
HH | 24 時間制の時間。必要に応じて、先頭に 0 が付きます。
m | 分。先頭に 0 は付きません。
mm | 分。必要に応じて、先頭に 0 が付きます。
s | 秒。先頭に 0 は付きません。
ss | 秒。必要に応じて、先頭に 0 が付きます。
t | 時刻マーカー。「 A 」「 P 」など。
tt | 時刻マーカー。「 AM 」「 PM 」「午前」「午後」など。

lpTimeStr
フォーマットされた文字列を格納するためのバッファへのポインタを指定します。

cchTime
lpTimeStr パラメータで指定したバッファのバイト数を指定します。0 を指定すると、フォーマットは行われず、関数は必要なバイト数を返します。

戻り値

関数が成功すると、lpTimeStr パラメータで指定したバッファに書き込まれた文字列のバイト数が返ります。cchTime パラメータに 0 を指定したときは、必要なバイト数が返ります。関数が失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GetDateFormat関数、SYSTEMTIME構造体


 Win32API: IsCharAlpha

指定した文字がアルファベットかどうかを調べます。

定義
Declare Function IsCharAlpha Lib "user32" Alias "IsCharAlphaA" _
   (ch As Byte) As Long
ch
文字コードを指定します。

戻り値

指定した文字がアルファベットのときは、TRUE が返ります。それ以外は、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

IsCharAlphaNumeric関数


 Win32API: IsCharAlphaNumeric

指定した文字がアルファベットまたは数字かどうかを調べます。

定義
Declare Function IsCharAlphaNumeric Lib "user32" Alias "IsCharAlphaNumericA" _
   (ch As Byte) As Long
ch
文字コードを指定します。

戻り値

指定した文字がアルファベットまたは数字のときは、TRUE が返ります。それ以外は、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

IsCharAlpha関数


 Win32API: IsCharLower

指定した文字がアルファベットの小文字かどうかを調べます。

定義
Declare Function IsCharLower Lib "user32" Alias "IsCharLowerA" _
   (ch As Byte) As Long
ch
文字コードを指定します。

戻り値

指定した文字がアルファベットの小文字のときは、TRUE が返ります。それ以外は、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

IsCharUpper関数


 Win32API: IsCharUpper

指定した文字がアルファベットの大文字かどうかを調べます。

定義
Declare Function IsCharUpper Lib "user32" Alias "IsCharUpperA" _
   (ch As Byte) As Long
ch
文字コードを指定します。

戻り値

指定した文字がアルファベットの大文字のときは、TRUE が返ります。それ以外は、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

IsCharLower関数


 Win32API: lstrcat

２つの文字列を連結します。

定義
Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" _
   (lpString1 As BytePtr, _
    lpString2 As BytePtr) As BytePtr
lpString1
コピー先の文字列バッファへのポインタを指定します。追加する文字列分のメモリを確保しておく必要があります。

lpString2
追加する文字列を指定します。

戻り値

関数が成功すると、連結された文字列ポインタ（lpString1 と同一）が返ります。失敗すると、NULL が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

lstrcpy関数


 Win32API: lstrcmp

指定した 2 つの文字列を比較します（大文字、小文字を区別します）。

定義
Declare Function lstrcmp Lib "kernel32" Alias "lstrcmpA" _
   (lpString1 As BytePtr, _
    lpString2 As BytePtr) As Long
lpString1
一つ目の文字列を指定します。

lpString2
二つ目の文字列を指定します。

戻り値

lpString1 が lpString2 より小さいときは、負の値が返ります。
lpString1 と lpString2 が同一のときは、0 が返ります。
lpString1 が lpString2 より大きいときは、正の値が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

CompareString関数、lstrcmpi関数


 Win32API: lstrcmpi

指定した 2 つの文字列を比較します（大文字、小文字の違いを区別しません）。

定義
Declare Function lstrcmpi Lib "kernel32" Alias "lstrcmpiA" _
   (lpString1 As BytePtr, _
    lpString2 As BytePtr) As Long
lpString1
一つ目の文字列を指定します。

lpString2
二つ目の文字列を指定します。

戻り値

lpString1 が lpString2 より小さいときは、負の値が返ります。
lpString1 と lpString2 が同一のときは、0 が返ります。
lpString1 が lpString2 より大きいときは、正の値が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

CompareString関数、lstrcmp関数


 Win32API: lstrcpy

指定した文字列を、指定した文字列バッファにコピーします。

定義
Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" _
   (lpString1 As BytePtr, _
    lpString2 As BytePtr) As BytePtr
lpString1
コピー先の文字列バッファへのポインタを指定します。

lpString2
コピー元の文字列を指定します。

戻り値

関数が成功すると、文字列ポインタ（lpString1 と同一）が返ります。失敗すると、NULL が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

lstrcat関数、lstrlen関数


 Win32API: lstrlen

指定した文字列のバイト数を取得します。

定義
Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" _
   (lpString As BytePtr) As Long
lpString
文字列を指定します。

戻り値

文字列のバイト数が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

lstrcpy関数


 Win32API: wsprintf

指定したデータを、書式制御文字列にしたがってフォーマットします。

定義
Declare Function wsprintf CDECL Lib "user32" Alias "wsprintfA" _
   (lpText As BytePtr, _
    lpFormat As BytePtr, _
    ...) As Long
lpText
文字列を格納するためのバッファを示すポインタを指定します。

lpFormat
書式制御文字列を指定します。

...
提供するためのデータをカンマ（,）で区切って指定します。

戻り値

関数が成功すると、バッファに格納された文字列のバイト数（終端の NULL 文字を除く）が返ります。失敗すると、書式指定文字列のバイト数よりも小さな数が返ります。

解説

この関数で取得できるデータのサイズは1KB（1024 Byte）までとなります。1KBを超えた場合、1025バイト目にNULL文字が格納されるので、注意してください。

書式指定文字列は、任意の文字列と以下の書式指定子の組み合わせから構成されます（[] 内は省略可）。

%[-][#][0][width][.precision][type]

フィールド | 説明
- 左揃えにします。右側には、フィールド幅を満たすまで、空白や 0 が埋められます。このフィールドを省略すると、右揃えになります。
# 16 進文字列の頭に、0x または 0X を付加します。
0 | フィールド幅を満たすまで、0 を埋めます。このフィールドを省略すると、空白で埋められます。
width | 最小文字数を指定します。この指定によって値が切り捨てられることはありません。
precision | 最小文字数を指定します。この指定によって値が切り捨てられることはありません。
type 対応するデータの種類を、以下の文字シーケンスから指定します。
文字シーケンス | 説明
c、C | 単一文字を出力します。対応するデータは、8 ビット整数型として認識されます。
d、i | 符号付き 10 進数を出力します。対応するデータは、32 ビット整数型として認識されます。
s、S | 文字列を出力します。対応するデータは、文字列ポインタとして認識されます。
u | 符号無し 10 進数を出力します。対応するデータは、32 ビット整数型として認識されます。
x、X | 符号無し 16 進数を出力します。対応するデータは、32 ビット整数型として認識されます。x を指定すると "abcdef" が、X を指定すると "ABCDEF" が使用されます。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll


 Win32API: wvsprintf

指定したデータを、書式制御文字列にしたがってフォーマットします。

定義
Declare Function wvsprintf Lib "user32" Alias "wvsprintfA" _
  (lpOutput As BytePtr, _
   lpFormat As BytePtr, _
   arglist As DWordPtr) As Long
lpOutput
文字列を格納するためのバッファを示すポインタを指定します。

lpFormat
書式制御文字列を指定します。

arglist
書式制御文字列に提供するためのデータが格納されている、32 ビット整数型配列へのポインタを指定します。

戻り値

関数が成功すると、バッファに格納された文字列のバイト数（終端の NULL 文字を除く）が返ります。失敗すると、書式指定文字列のバイト数よりも小さな数が返ります。

解説

この関数で取得できるデータのサイズは1KB（1024 Byte）までとなります。1KBを超えた場合、1025バイト目にNULL文字が格納されるので、注意してください。

書式指定文字列は、任意の文字列と以下の書式指定子の組み合わせから構成されます（[] 内は省略可）。

%[-][#][0][width][.precision][type]

フィールド | 説明
- 左揃えにします。右側には、フィールド幅を満たすまで、空白や 0 が埋められます。このフィールドを省略すると、右揃えになります。
# 16 進文字列の頭に、0x または 0X を付加します。
0 | フィールド幅を満たすまで、0 を埋めます。このフィールドを省略すると、空白で埋められます。
width | 最小文字数を指定します。この指定によって値が切り捨てられることはありません。
precision | 最小文字数を指定します。この指定によって値が切り捨てられることはありません。
type 対応するデータの種類を、以下の文字シーケンスから指定します。
文字シーケンス | 説明
c、C | 単一文字を出力します。対応するデータは、8 ビット整数型として認識されます。
d、i | 符号付き 10 進数を出力します。対応するデータは、32 ビット整数型として認識されます。
s、S | 文字列を出力します。対応するデータは、文字列ポインタとして認識されます。
u | 符号無し 10 進数を出力します。対応するデータは、32 ビット整数型として認識されます。
x、X | 符号無し 16 進数を出力します。対応するデータは、32 ビット整数型として認識されます。x を指定すると "abcdef" が、X を指定すると "ABCDEF" が使用されます。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll


 Win32API: GetComputerName

コンピュータ名を取得します。

定義
Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" _
         (lpBuffer As BytePtr, _
    ByRef nSize As Long) As Long
lpBuffer
文字列バッファへのポインタを指定します。このバッファにコンピュータ名が格納されます。

nSize （ポインタ参照）
lpBuffer パラメータで指定したバッファのバイト数が格納されている、32ビット整数型変数へのポインタを指定します。バッファのバイト数は MAX_COMPUTERNAME_LENGTH + 1 以上でなければなりません。
関数が成功すると、取得したコンピュータ名のバイト数が格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

SetComputerName関数


 Win32API: GetSysColor

システムで使用されている色を取得します。

定義
Declare Function GetSysColor Lib "user32" _
   (nIndex As Long) As DWord
nIndex
取得する色を、以下の定数から指定します。
定数 | 説明
COLOR_3DDKSHADOW | 3D オブジェクトの暗い影の色
COLOR_3DFACE 、または COLOR_BTNFACE | 3D オブジェクトの表面色
COLOR_3DHILIGHT、 COLOR_3DHIGHLIGHT、 COLOR_BTNHILIGHT、 COLOR_BTNHIGHLIGHT | 3D オブジェクトの最も明るい色（光源方向の縁用）
COLOR_3DLIGHT | 3D オブジェクトの明るい色（光源方向の縁用）
COLOR_3DSHADOW 、または COLOR_BTNSHADOW | 3D オブジェクトの影の色（光源の反対方向の縁用）
COLOR_ACTIVEBORDER | アクティブウィンドウの境界の色
COLOR_ACTIVECAPTION | アクティブウィンドウのタイトルバーの色
COLOR_APPWORKSPACE | MDI アプリケーションの背景色
COLOR_BACKGROUND 、または COLOR_DESKTOP | デスクトップの色
COLOR_BTNTEXT | プッシュボタンのテキストの色
COLOR_CAPTIONTEXT | アクティブウィンドウのタイトルバーのテキストの色
COLOR_GRAYTEXT | 淡色状態（無効状態）のテキストの色
COLOR_HIGHLIGHT | コントロール内における選択された項目の色
COLOR_HIGHLIGHTTEXT | コントロール内における選択された項目のテキストの色
COLOR_INACTIVEBORDER | 非アクティブウィンドウの境界色
COLOR_INACTIVECAPTION | 非アクティブウィンドウのタイトルバーのテキストの色
COLOR_INFOBK | ツールチップコントロールの背景色
COLOR_INFOTEXT | ツールチップコントロールのテキストの色
COLOR_MENU | メニューの背景色
COLOR_MENUTEXT | メニュー内のテキストの色
COLOR_SCROLLBAR | スクロールバーの軸の色
COLOR_WINDOW | ウィンドウの背景色
COLOR_WINDOWFRAME | ウィンドウの枠の色
COLOR_WINDOWTEXT | ウィンドウ内のテキストの色

戻り値

取得した色を示す RGB 値が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

SetSysColors関数


 Win32API: GetSystemDirectory

システム ディレクトリへのパスを取得します。

定義
Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" _
   (lpBuffer As BytePtr, _
    uSize As DWord) As DWord
lpBuffer
文字列バッファへのポインタを指定します。このバッファにシステム ディレクトリへのパスが格納されます。

uSize
lpBuffer パラメータで指定したバッファのバイト数を指定します。

戻り値

関数が成功すると、取得したパスのバイト数（終端の NULL 文字を除く）が返ります。uSize パラメータで指定したバイト数では足りなかったときは、必要なバイト数（終端の NULL 文字を含む）が返ります。
関数が失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GetWindowsDirectory関数


 Win32API: GetSystemInfo

プロセッサおよびメモリに関する情報を取得します。

定義
Declare Sub GetSystemInfo Lib "kernel32" _
   (ByRef lpSystemInfo As SYSTEM_INFO)
lpSystemInfo （ポインタ参照）
SYSTEM_INFO構造体へのポインタを指定します。この構造体にシステム情報が格納されます。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

SYSTEM_INFO構造体


 Win32API: GetSystemMetrics

システム設定や画面構成についての情報を取得します。

定義
Declare Function GetSystemMetrics Lib "user32" _
   (nIndex As Long) As Long
nIndex
何についての値を取得するかを、以下の定数から指定します（「SM_CX～」は幅、「SM_CY～」は高さ）。
定数 | 説明
SM_ARRANGE | 最小化ウィンドウの配置方法を示す値を取得します。
SM_CLEANBOOT | システムがどのように起動されたかを示す値を取得します。返り値は次のいずれかになります。0の場合は通常のブート、1の場合は「Safeモード」でのブート、2の場合は「ネットワークを使ったSafeモード」でのブートとなります。
SM_CMOUSEBUTTONS | マウスボタンの数（マウスがないときは0）を返します。
SM_CXBORDER SM_CYBORDER | 非立体的なウィンドウの縁の幅と高さを取得します。SM_CXEDGEとSM_CYEDGEも参照してください。
SM_CXCURSOR SM_CYCURSOR | マウスカーソルのサイズを取得します。
SM_CXDLGFRAME SM_CYDLGFRAME | SM_CXFIXEDFRAME、SM_CYFIXEDFRAMEと同じです。
SM_CXDOUBLECLK SM_CYDOUBLECLK | ダブルクリックにおける2回目のクリック位置の許容範囲を取得します。1回目のクリックの後、許容範囲内かつ許容時間内にもう一度マウスをクリックすると、ダブルクリックが行れたものとみなされます。
SM_CXDRAG SM_CYDRAG | ドラッグ操作の開始とはみなされない範囲を取得します。マウスボタンを押した後、この範囲を越えてマウスを動かすと、ドラッグ操作が開始されたものとみなされます。
SM_CXEDGE SM_CYEDGE | 立体的なウィンドウの縁の幅と高さを取得します。SM_CXBORDERとSM_CYBORDERの3D版です。
SM_CXFIXEDFRAME SM_CYFIXEDFRAME | タイトルバーを持ち、かつ、サイズが変更できないウィンドウにおける枠の幅と高さを取得します。SM_CXDLGFRAME、SM_CYDLGFRAMEと同じです。
SM_CXFRAME SM_CYFRAME | SM_CXSIZEFRAME、SM_CYSIZEFRAMEと同じです。
SM_CXFULLSCREEN SM_CYFULLSCREEN | 最大化されたウィンドウのクライアント領域のサイズを取得します。
SM_CXHSCROLL SM_CYHSCROLL | 水平スクロールバーの矢印の幅、または、水平スクロールバーの高さを取得します。
SM_CXHTHUMB | 水平スクロールバーのつまみの幅を取得します。
SM_CXICON SM_CYICON | アイコンのデフォルトのサイズを取得します。通常は32×32ピクセルです。
SM_CXICONSPACING SM_CYICONSPACING | アイコンを整列するときに使われるグリッドのサイズを取得します。常に、SM_CXICON、SM_CYICON以上になります。
SM_CXMAXIMIZED SM_CYMAXIMIZED | 最大化されたウィンドウのサイズを取得します。
SM_CXMAXTRACK SM_CYMAXTRACK | ウィンドウの最大トラッキングサイズを取得します。このサイズよりも大きくウィンドウの枠をドラッグすることはできません。アプリケーションでWM_GETMINMAXINFOメッセージを処理すると、最大トラッキングサイズが変更できます。
SM_CXMENUCHECK SM_CYMENUCHECK | メニューのチェックマークのサイズを取得します。
SM_CXMENUSIZE SM_CYMENUSIZE | メニューバーに表示されるボタンのサイズを取得します。
SM_CXMIN SM_CYMIN | ウィンドウの最小サイズを取得します。
SM_CXMINIMIZED SM_CYMINIMIZED | 最小化されたウィンドウのデフォルトのサイズを取得します。
SM_CXMINSPACING SM_CYMINSPACING | 最小化されたウィンドウの配置に使われるグリッドのサイズを取得します。常に、SM_CXMINIMIZED、SM_CYMINIMIZED以上になります。
SM_CXMINTRACK SM_CYMINTRACK | ウィンドウの最小トラッキングサイズを取得します。このサイズよりも小さくウィンドウの枠をドラッグすることはできません。アプリケーションでWM_GETMINMAXINFOメッセージを処理すると、最小トラッキングサイズが変更できます。
SM_CXSCREEN SM_CYSCREEN | 画面全体のサイズを取得します。
SM_CXSIZE SM_CYSIZE | ウィンドウのタイトルバー内のボタンのサイズを取得します。
SM_CXSIZEFRAME SM_CYSIZEFRAME | サイズが変更できるウィンドウにおける枠の幅と高さを取得します。SM_CXFRAME、SM_CYFRAMEと同じです。
SM_CXSMICON SM_CYSMICON | 小さいアイコンの推奨サイズを取得します。
SM_CXSMSIZE SM_CYSMSIZE | 小さいタイトルバー内のボタンのサイズを取得します。
SM_CXVSCROLL SM_CYVSCROLL | 垂直スクロールバーの幅、または、垂直スクロールバーの矢印の高さを取得します。
SM_CYCAPTION | タイトルバーの高さを取得します。
SM_CYKANJIWINDOW | 画面下の漢字ウィンドウの高さを取得します。
SM_CYMENU | 一行分のメニューバーの高さを取得します。
SM_CYSMCAPTION | 小さなタイトルバーの高さを取得します。
SM_CYVTHUMB | 垂直スクロールバーのつまみの高さを取得します。
SM_DBCSENABLED | USER.EXEがダブルバイト文字セット（DBCS）をサポートしているかどうかを示す値を取得します。サポートしているときは1が、サポートしていないときは0が返ります。
SM_DEBUG | USER.EXEがデバッグバージョンかどうかを示す値を取得します。デバッグバージョンのときは1が、デバッグバージョンでないときは0が返ります。
SM_MENUDROPALIGNMENT | メニューバーの項目に対して、ドロップダウンメニューが右寄せされるかどうかを示す値を取得します。右寄せされるときは1が、左寄せされるときは0が返ります。
SM_MIDEASTENABLED | ヘブライ語やアラビア語が利用可能なシステムかどうかを示す値を取得します。利用できるときは1が返ります。
SM_MOUSEPRESENT | マウスが接続されているかどうかを示す値を取得します。接続されているときは1が、接続されていないときは0が返ります。
SM_NETWORK | ネットワークが存在するかどうかを示す値を取得します。存在するときは最下位ビットが1の値が、そうでないときは最下位ビットが0の値が返ります。最下位ビット以外のビットは予約されています。
SM_PENWINDOWS | Window for Pen computing extensions がインストールされているかどうかを示す値を取得します。インストールされているときは1が、インストールされていないときは0が返ります。
SM_SECURE | セキュリティが存在するかどうかを示す値を取得します。存在するときは1が、存在しないときは0が返ります。
SM_SHOWSOUNDS | ユーザー補助の「サウンド解説を使う」が有効になっているかどうかを調べます。有効になっているときは1が、そうでないときは0が返ります。
SM_SLOWMACHINE | コンピュータのプロセッサが遅いかどうかを示す値を取得します。遅いときは1が、それ以外のときは0が返ります。
SM_SWAPBUTTON | 左右のマウスボタンの機能を交換しているかどうかを示す値を取得します。交換しているときは1が、交換していないときは0が返ります。

戻り値

関数が成功すると、nIndex パラメータで要求した値がピクセル単位で返ります。失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll


 Win32API: GetUserName

ユーザー名を取得します。

定義
Declare Function GetUserName Lib "kernel32" Alias "GetUserNameA" _
         (lpBuffer As BytePtr, _
    ByRef nSize As Long) As Long
lpBuffer
文字列バッファへのポインタを指定します。このバッファにユーザー名が格納されます。

nSize （ポインタ参照）
lpBuffer パラメータで指定したバッファのバイト数が格納されている、32ビット整数型変数へのポインタを指定します。
関数が成功すると、取得したユーザー名のバイト数が格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: advapi32.dll


 Win32API: GetVersionEx

オペレーティング システムのバージョンに関する情報を取得します。

定義
Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" _
   (ByRef lpVersionInformation As OSVERSIONINFO) As Long
lpVersionInformation （ポインタ参照）
OSVERSIONINFO構造体へのポインタを指定します。この構造体にバージョン情報が格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

関数を呼び出す前に、OSVERSIONINFO構造体の dwOSVersionInfoSize メンバに構造体サイズを指定しておく必要があります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

OSVERSIONINFO構造体


 Win32API: GetWindowsDirectory

Windows ディレクトリへのパスを取得します。

定義
Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" _
   (lpBuffer As BytePtr, _
    uSize As DWord) As DWord
lpBuffer
文字列バッファへのポインタを指定します。このバッファに Windows ディレクトリへのパスが格納されます。

uSize
lpBuffer パラメータで指定したバッファのバイト数を指定します。

戻り値

関数が成功すると、取得したパスのバイト数（終端の NULL 文字を除く）が返ります。uSize パラメータで指定したバイト数では足りなかったときは、必要なバイト数（終端の NULL 文字を含む）が返ります。
関数が失敗すると、0 が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GetSystemDirectory関数


 Win32API: SetComputerName

コンピュータ名を設定します。

定義
Declare Function SetComputerName Lib "kernel32" Alias "SetComputerNameA" _
   (lpComputerName As BytePtr) As Long
lpComputerName
コンピュータ名が格納されている、NULL で終わる文字列バッファへのポインタを指定します。文字列のバイト数は、MAX_COMPUTERNAME_LENGTH 以下でなければなりません。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

この関数を使用するには、システム管理者の権限を持っている必要があります。
設定されたコンピュータ名は次回の起動時から有効です。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GetComputerName関数


 Win32API: SetSysColors

システムが使用する色を設定します。

定義
Declare Function SetSysColors Lib "user32" _
   (cElements As Long, _
    lpaElements As DWordPtr, _
    lpaRgbValues As DWordPtr) As Long
cElements
lpaElements パラメータで指定する配列の要素数を指定します。

lpaElements
Long型配列へのポインタを指定します。配列内の各変数には、変更する画面のデザインの構成要素を示す値（GetSysColor関数を参照）を格納しておきます。

lpaRgbValues
RGB 値が格納されている、Long型変数へのポインタを指定します。lpaElements パラメータで指定した値の対象となる色を格納しておく必要があります。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetSysColor関数


 Win32API: SystemParametersInfo

システムに関する情報の設定、取得を行います。

定義
Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" _
   (uiAction As DWord, _
    uiParam As DWord, _
    pvParam As VoidPtr, _
    fWinIni As DWord) As Long
uiAction
設定、取得に関する要求を、以下の定数から指定します。定数により、uiParam パラメータ、pvParam パラメータの意味が決まります。

※取得に関する定数
定数 | 説明 | uiParam パラメータ | pvParam パラメータ
SPI_GETACCESSTIMEOUT | ユーザー補助を無効にするまでの待ち時間に関する情報を取得します。 | ACCESSTIMEOUT 構造体のサイズを指定します。 | ACCESSTIMEOUT 構造体へのポインタを指定します。この構造体に、ユーザー補助を無効にするまでの待ち時間に関する情報が格納されます。
SPI_GETACTIVEWINDOWTRACKING | ウィンドウを最小化したときのアニメーション効果に関する情報を取得します。 | ANIMATIONINFO 構造体のサイズを指定します。 | ANIMATIONINFO 構造体へのポインタを指定します。この構造体に、アニメーション効果に関する情報が格納されます。
SPI_GETBEEP | 警告のビープ音がオンになっているかどうかを調べます。 | 無視されます。 | 32ビット整数型変数へのポインタを指定します。この変数には、ビープ音がオンのときは TRUE が、オフのときは FALSE が格納されます。
SPI_GETBORDER | ウィンドウのサイズ変更枠の幅を決める倍率値を取得します。 | 無視されます。 | 32ビット整数型変数へのポインタを指定します。この変数に、倍率値が格納されます。
SPI_GETDEFAULTINPUTLANG | デフォルトの入力言語のキーボード レイアウト ハンドルを取得します。 | 無視されます。 | 32ビット整数型変数へのポインタを指定します。この変数に、キーボード レイアウト ハンドルが格納されます。
SPI_GETDRAGFULLWINDOWS | ウィンドウをドラッグして移動する際に、ウィンドウの内容を表示しながら行うかどうか（フルドラッグ機能）を調べます（Windows95の場合は、Microsoft Plus!がインストールされていなければなりません）。 | 無視されます。 | 32ビット整数型変数へのポインタを指定します。この変数には、フルドラッグ機能がオンのときは TRUE が、オフのときは FALSE が格納されます。
SPI_GETFILTERKEYS | ユーザー補助のフィルターキーに関する情報を取得します。 | FILTERKEYS 構造体のサイズを指定します。 | FILTERKEYS 構造体へのポインタを指定します。この構造体に、フィルターキーに関する情報が格納されます。
SPI_GETFONTSMOOTHING | スクリーンフォントの縁をなめらかにする機能が有効になっているかどうかを調べます（Windows95の場合は、Microsoft Plus!がインストールされていなければなりません）。 | 無視されます。 | 32ビット整数型変数へのポインタを指定します。この変数には、なめらかにする機能が有効のときは TRUE が、無効のときは FALSE が格納されます。
SPI_GETGRIDGRANULARITY | デスクトップのサイズ変更格子の単位を取得します。 | 無視されます。 | 32ビット整数型変数へのポインタを指定します。この変数に、デスクトップのサイズ変更格子の単位が格納されます。
SPI_GETHIGHCONTRAST | ユーザー補助のハイコントラスト機能に関する情報を取得します（Windows9x系OSのみ）。 | HIGHCONTRAST 構造体のサイズを指定します。 | HIGHCONTRAST 構造体へのポインタを指定します。この構造体に、ハイコントラスト機能に関する情報が格納されます。
SPI_GETICONMETRICS | アイコンの表示に関する情報を取得します。 | ICONMETRICS 構造体のサイズを指定します。 | ICONMETRICS 構造体へのポインタを指定します。この構造体に、アイコンの表示に関する情報が格納されます。
SPI_GETICONTITLELOGFONT | アイコン タイトルのフォント情報を取得します。 | LOGFONT構造体のサイズを指定します。 | LOGFONT構造体へのポインタを指定します。この構造体に、アイコン タイトルのフォント情報が格納されます。
SPI_GETICONTITLEWRAP | アイコン タイトルの折り返しが有効になっているかどうかを調べます。 | 無視されます。 | 32ビット整数型変数へのポインタを指定します。この変数には、アイコン タイトルの折り返しが有効のときは TRUE が、無効のときは FALSE が格納されます。
SPI_GETKEYBOARDDELAY | キーボードのプロパティにおける「表示までの待ち時間」を取得します。 | 無視されます。 | 32ビット整数型変数へのポインタを指定します。この変数に、待ち時間を示す値が格納されます。
SPI_GETKEYBOARDPREF | ユーザー補助の「アプリケーションにキーボードのヘルプを追加する」が有効になっているかどうかを調べます。 | 無視されます。 | 32ビット整数型変数へのポインタを指定します。この変数には、機能が有効のときは TRUE が、無効のときは FALSE が格納されます。
SPI_GETKEYBOARDSPEED | キーボードのプロパティにおける「表示の間隔」を取得します。 | 無視されます。 | 32ビット整数型変数へのポインタを指定します。この変数に、表示の間隔を示す値が格納されます。
SPI_GETMENUDROPALIGNMENT | メニューバーの項目に対して、ドロップダウンメニューが右寄せされるかどうかを調べます。 | 無視されます。 | 32ビット整数型変数へのポインタを指定します。この変数には、右寄せされているときは TRUE が、そうでないときは FALSE が格納されます。
SPI_GETMINIMIZEDMETRICS | 最小化ウィンドウの配置方法に関する情報を取得します。 | MINIMIZEDMETRICS 構造体のサイズを指定します。 | MINIMIZEDMETRICS 構造体へのポインタを指定します。この構造体に、配置方法に関する情報が格納されます。
SPI_GETMOUSE | マウスカーソルの移動速度と、移動速度に関するしきい値を取得します。 | 無視されます。 | 3 つの32ビット整数型変数を持つ配列へのポインタを指定します。この配列に、移動速度と、移動速度に関するしきい値が格納されます。
SPI_GETMOUSEHOVERHEIGHT | TrackMouseEvent 関数が WM_MOUSEHOVER メッセージを生成するためにマウスカーソルが滞在していなければならない範囲の高さを取得します（WindowsNT系OSのみ）。 | 無視されます。 | 32ビット整数型変数へのポインタを指定します。この変数に、高さが格納されます。
SPI_GETMOUSEHOVERTIME | TrackMouseEvent 関数が WM_MOUSEHOVER メッセージを生成するためにマウスカーソルが滞在していなければならない時間を取得します（WindowsNT系OSのみ）。 | 無視されます。 | 32ビット整数型変数へのポインタを指定します。この変数に、時間がミリ秒単位で格納されます。
SPI_GETMOUSEHOVERWIDTH | TrackMouseEvent 関数が WM_MOUSEHOVER メッセージを生成するためにマウスカーソルが滞在していなければならない範囲の幅を取得します（WindowsNT系OSのみ）。 | 無視されます。 | 32ビット整数型変数へのポインタを指定します。この変数に、幅が格納されます。
SPI_GETMOUSEKEYS | ユーザー補助のマウスキーに関する情報を取得します。 | MOUSEKEYS 構造体のサイズを指定します。 | MOUSEKEYS 構造体へのポインタを指定します。この構造体に、マウスキーに関する情報が格納されます。
SPI_GETMOUSETRAILS | マウスポインタの軌跡の表示に関する設定を取得します（Windows9x系OSのみ）。 | 無視されます。 | 32ビット整数型変数へのポインタを指定します。この変数には、軌跡が表示されないときは 0 または 1 が、表示されるときは 2 以上の値が格納されます。2 以上の値は、描画される軌跡の数を示します。
SPI_GETNONCLIENTMETRICS | 非クライアント領域に関するメトリック値 (メニューバーの高さなど) を取得します。 | NONCLIENTMETRICS 構造体のサイズを指定します。 | NONCLIENTMETRICS 構造体へのポインタを指定します。この構造体に、メトリック値が格納されます。
SPI_GETSCREENREADER | スクリーン レビューア ユーティリティが実行されているかどうかを調べます（Windows9x系OSのみ） | 無視されます。 | 32ビット整数型変数へのポインタを指定します。この変数には、スクリーン レビューア ユーティリティが実行されているときは TRUE が、実行されていないときは FALSE が格納されます。
SPI_GETSCREENSAVEACTIVE | スクリーン セーバーが有効になっているかどうかを調べます。 | 無視されます。 | 32ビット整数型変数へのポインタを指定します。この変数には、スクリーン セーバーが有効のときは TRUE が、無効のときは FALSE が格納されます。
SPI_GETSCREENSAVETIMEOUT | スクリーンセーバーの実行までの待ち時間を取得します。 | 無視されます。 | 32ビット整数型変数へのポインタを指定します。この変数に、待ち時間が秒単位で格納されます。
SPI_GETSERIALKEYS | ユーザー補助のシリアルキーデバイスに関する情報を取得します（Windows9x系OSのみ）。 | SERIALKEYS 構造体のサイズを指定します。 | SERIALKEYS 構造体へのポインタを指定します。この構造体に、シリアルキーデバイスに関する情報が格納されます。
SPI_GETSHOWSOUNDS | ユーザー補助の「サウンド解説を使う」が有効になっているかどうかを調べます。 | 無視されます。 | 32ビット整数型変数へのポインタを指定します。この変数には、機能が有効のときは TRUE が、無効のときは FALSE が格納されます。
SPI_GETSNAPTODEFBUTTON | デフォルトボタンにマウスカーソルを自動的に移動させる機能が有効になっているかどうかを調べます（WindowsNT系OSのみ） | 無視されます。 | 32ビット整数型変数へのポインタを指定します。この変数には、機能が有効のときは TRUE が、無効のときは FALSE が格納されます。
SPI_GETSOUNDSENTRY | ユーザー補助のサウンド表示に関する情報を取得します。 | SOUNDSENTRY 構造体のサイズを指定します。 | SOUNDSENTRY 構造体へのポインタを指定します。この構造体に、サウンド表示に関する情報が格納されます。
SPI_GETSTICKYKEYS | ユーザー補助の固定キーに関する情報を取得します。 | STICKYKEYS 構造体のサイズを指定します。 | STICKYKEYS 構造体へのポインタを指定します。この構造体に、固定キーに関する情報が格納されます。
SPI_GETTOGGLEKEYS | ユーザー補助の切り替えキーに関する情報を取得します。 | TOGGLEKEYS 構造体のサイズを指定します。 | TOGGLEKEYS 構造体へのポインタを指定します。この構造体に、切り替えキーに関する情報が格納されます。
SPI_GETWHEELSCROLLLINES | マウスホイールの回転によってスクロールされる行数の推奨値を取得します（WindowsNT系OSのみ）。 | 無視されます。 | 32ビット整数型変数へのポインタを指定します。この変数に、行数が格納されます。
SPI_GETWINDOWSEXTENSION | Microsoft Plus!がインストールされているかどうかを調べます（Windows9x系OSのみ）。インストールされているときは TRUE が、そうでないときは FALSE が関数の戻り値になります。 | 1 を指定して下さい。 | 無視されます。
SPI_GETWORKAREA | 作業領域のサイズを取得します。作業領域は、画面全体からトレー (タスクバー) が占める領域を除いた部分です。 | 無視されます。 | RECT構造体へのポインタを指定します。この構造体に、作業領域を示す長方形の座標が格納されます。

※設定に関する定数
定数 | 説明 | uiParam パラメータ | pvParam パラメータ
SPI_ICONHORIZONTALSPACING | アイコンを整列するときに使われるグリッドの幅を設定します。 | 幅を指定します。 | 無視されます。
SPI_ICONVERTICALSPACING | アイコンを整列するときに使われるグリッドの高さを設定します。 | 高さを指定します。 | 無視されます。
SPI_SETACCESSTIMEOUT | ユーザー補助を無効にするまでの待ち時間に関する情報を設定します。 | ACCESSTIMEOUT 構造体のサイズを指定します。 | 待ち時間に関する情報が格納されている、ACCESSTIMEOUT 構造体へのポインタを指定します。
SPI_SETANIMATION | ウィンドウを最小化した場合などのアニメーション効果についての情報を設定します。 | ANIMATIONINFO 構造体のサイズを指定します。 | アニメーション効果に関する情報が格納されている、ANIMATIONINFO 構造体へのポインタを指定します。
SPI_SETBEEP | 警告のビープ音のオン／オフを設定します。 | ビープ音をオンにするときは TRUE を、オフにするときは FALSE を指定します。 | 無視されます。
SPI_SETBORDER | ウィンドウのサイズ変更枠の幅を決める倍率値を設定します。 | 倍率値を指定します。 | 無視されます。
SPI_SETDEFAULTINPUTLANG | デフォルトの入力言語を設定します。 | 無視されます。 | 入力言語のキーボードレイアウトハンドルが格納されている32ビット整数型変数を指定します。
SPI_SETDESKPATTERN | デスクトップのパターンを設定します。WIN.INI ファイルの Pattern エントリで指定した状態になります。 | 無視されます。 | 無視されます。
SPI_SETDESKWALLPAPER | デスクトップの壁紙を設定します。 | 無視されます。 | 壁紙に設定するビットマップ ファイルのパスが格納されている文字列へのポインタを指定します。
SPI_SETDOUBLECLICKTIME | マウスのダブルクリック時間を設定します。 | 時間をミリ秒単位で指定します。 | 無視されます。
SPI_SETDOUBLECLKHEIGHT | ダブルクリックにおける 2 回目のクリック位置の許容範囲の高さを設定します。 | 高さを指定します。 | 無視されます。
SPI_SETDOUBLECLKWIDTH | ダブルクリックにおける 2 回目のクリック位置の許容範囲の幅を設定します。 | 幅を指定します。 | 無視されます。
SPI_SETDRAGFULLWINDOWS | ウィンドウをドラッグして移動する際に、ウィンドウの内容を表示しながら行うかどうか（フルドラッグ機能）を指定します（Windows95の場合は、Microsoft Plus!がインストールされていなければなりません）。 | フルドラッグを有効にするときは TRUE を、無効にするときは FALSE を指定します。 | 無視されます。
SPI_SETDRAGHEIGHT | ドラッグ操作の開始とはみなされない範囲の高さを設定します。 | 高さを指定します。 | 無視されます。
SPI_SETDRAGWIDTH | ドラッグ操作の開始とはみなされない範囲の幅を設定します。 | 幅を指定します。 | 無視されます。
SPI_SETFILTERKEYS | ユーザー補助のフィルターキーに関する情報を設定します。 | FILTERKEYS 構造体のサイズを指定します。 | フィルターキーに関する情報が格納されている、FILTERKEYS 構造体へのポインタを指定します。
SPI_SETFONTSMOOTHING | スクリーンフォントの縁をなめらかにする機能を設定します（Windows95の場合は、Microsoft Plus!がインストールされていなければなりません）。 | 機能をオンにするときは TRUE を、オフにするときは FALSE を指定します。 | 無視されます。
SPI_SETGRIDGRANULARITY | デスクトップのサイズ変更格子の単位を設定します。 | 単位を指定します。 | 無視されます。
SPI_SETHIGHCONTRAST | ユーザー補助のハイコントラスト機能に関する情報を設定します（Windows9x系OSのみ）。 | HIGHCONTRAST 構造体のサイズを指定します。 | ハイコントラスト機能に関する情報が格納されている、HIGHCONTRAST 構造体へのポインタを指定します。
SPI_SETICONMETRICS | アイコンの表示に関する情報を設定します。 | ICONMETRICS 構造体のサイズを指定します。 | アイコンの表示に関する情報が格納されている、ICONMETRICS 構造体へのポインタを指定します。
SPI_SETICONTITLELOGFONT | アイコンタイトルのフォント情報を設定します。 | LOGFONT構造体のサイズを指定します。 | フォントに関する情報が格納されている、LOGFONT構造体へのポインタを指定します。
SPI_SETICONTITLEWRAP | アイコンタイトルの折り返しを有効または無効にします。 | 折り返しを有効にするときは TRUE を、無効にするときは FALSE を指定します。 | 無視されます。
SPI_SETKEYBOARDDELAY | キーボードのプロパティおける「表示までの待ち時間」を設定します。 | 表示までの待ち時間を指定します。 | 無視されます。
SPI_SETKEYBOARDPREF | ユーザー補助の「アプリケーションにキーボードのヘルプを追加する」を有効にするかどうかを設定します。 | 有効にするときは TRUE を、無効にするときは FALSE を指定します。 | 無視されます。
SPI_SETKEYBOARDSPEED | キーボードのプロパティにおける「表示の間隔」を設定します。 | 表示間隔を指定します。 | 無視されます。
SPI_SETLANGTOGGLE | キーボードのプロパティにおける「言語の切り替え」を設定します。レジストリの \HKEY_CURRENT_USER\keyboard layout\toggle が参照されます。 | 無視されます。 | 無視されます。
SPI_SETLOWPOWERACTIVE | 低電力スクリーンセーブモードを有効にするかどうかを設定します（Windows9x系OSのみ）。 | 有効にするときは TRUE を、無効にするときは FALSE を指定します。 | 無視されます。
SPI_SETLOWPOWERTIMEOUT | 低電力スクリーンセーブモードのタイムアウト値を設定します（Windows9x系OSのみ）。 | タイムアウト値を秒単位で指定します。 | 無視されます。
SPI_SETMENUDROPALIGNMENT | メニューバーの項目に対して、ドロップダウンメニューを右寄せするかどうかを設定します。 | 右寄せにするときは TRUE を、左寄せにするときは FALSE を指定します。 | 無視されます。
SPI_SETMINIMIZEDMETRICS | 最小化ウィンドウの配置方法に関する情報を設定します。 | MINIMIZEDMETRICS 構造体のサイズを指定します。 | 最小化ウィンドウの配置方法に関する情報が格納されている、MINIMIZEDMETRICS 構造体へのポインタを指定します。
SPI_SETMOUSE | マウスカーソルの移動速度と、移動速度に関するしきい値を設定します。 | 無視されます。 | 移動速度と、移動速度に関するしきい値が格納されている、3 つの32ビット整数型変数を持つ配列へのポインタを指定します。
SPI_SETMOUSEBUTTONSWAP | 左右のマウスボタンの機能を交換するかどうかを設定します。 | 交換するときは TRUE を、交換しないときは FALSE を指定します。 | 無視されます。
SPI_SETMOUSEHOVERHEIGHT | TrackMouseEvent 関数が WM_MOUSEHOVER メッセージを生成するためにマウスカーソルが滞在していなければならない範囲の高さを設定します（WindowsNT系OSのみ）。 | 高さを指定します。 | 無視されます。
SPI_SETMOUSEHOVERTIME | TrackMouseEvent 関数が WM_MOUSEHOVER メッセージを生成するためにマウスカーソルが滞在していなければならない時間を設定します（WindowsNT系OSのみ）。 | 時間をミリ秒単位で指定します。 | 無視されます。
SPI_SETMOUSEHOVERWIDTH | TrackMouseEvent 関数が WM_MOUSEHOVER メッセージを生成するためにマウスカーソルが滞在していなければならない範囲の幅を設定します（WindowsNT系OSのみ）。 | 幅を指定します。 | 無視されます。
SPI_SETMOUSEKEYS | ユーザー補助のマウス キーに関する情報を設定します。 | MOUSEKEYS 構造体のサイズを指定します。 | マウス キーに関する情報が格納されている、MOUSEKEYS 構造体へのポインタを指定します。
SPI_SETMOUSETRAILS | マウスポインタの軌跡の表示を設定します（Windows9x系OSのみ）。 | 軌跡を表示しないときは、0 または 1 を指定します。表示するときは、2 以上の値を指定します。2 以上の値は軌跡の数を表します。 | 無視されます。
SPI_SETNONCLIENTMETRICS | 非クライアント領域に関するメトリック値を設定します。 | NONCLIENTMETRICS 構造体のサイズを指定します。 | メトリック値が格納されている、NONCLIENTMETRICS 構造体へのポインタを指定します。
SPI_SETPENWINDOWS | ペン ウィンドウをロードまたはアンロードします（Windows9x系OSのみ）。 | ロードするときは TRUE を、アンロードするときは FALSE を指定します。 | 無視されます。
SPI_SETPOWEROFFACTIVE | スクリーンセーブモードの電源断を有効にするかどうかを設定します（Windows9x系OSのみ）。 | 有効にするときは TRUE を、無効にするときは FALSE を指定します。 | 無視されます。
SPI_SETPOWEROFFTIMEOUT | スクリーンセーブモードの電源断のタイムアウト値を設定します（Windows9x系OSのみ）。 | タイムアウト値を秒単位で指定します。 | 無視されます。
SPI_SETSCREENREADER | スクリーン レビューア ユーティリティの実行状態を設定します。 | 実行するときは TRUE を、実行しないときは FALSE を指定します。 | 無視されます。
SPI_SETSCREENSAVEACTIVE | スクリーン セーバーを有効または無効にします。 | 有効にするときは TRUE を、無効にするときは FALSE を指定します。 | 無視されます。
SPI_SETSCREENSAVETIMEOUT | スクリーンセーバーの実行までの待ち時間を設定します。 | 待ち時間を秒単位で指定します。 | 無視されます。
SPI_SETSERIALKEYS | ユーザー補助のシリアルキーデバイスに関する情報を設定します（Windows9x系OSのみ）。 | SERIALKEYS 構造体のサイズを指定します。 | シリアルキーデバイスに関する情報が格納されている、SERIALKEYS 構造体へのポインタを指定します。
SPI_SETSHOWSOUNDS | ユーザー補助の「サウンド解説を使う」を有効にするかどうかを設定します。 | 有効にするときは TRUE を、無効にするときは FALSE を指定します。 | 無視されます。
SPI_SETSNAPTODEFBUTTON | デフォルトボタンにマウスカーソルを自動的に移動させる機能を有効にするかどうかを設定します。 | 有効にするときは TRUE を、無効にするときは FALSE を指定します。 | 無視されます。
SPI_SETSOUNDSENTRY | ユーザー補助のサウンド表示に関する情報を設定します。 | SOUNDSENTRY 構造体のサイズを指定します。 | サウンド表示に関する情報が格納されている、SOUNDSENTRY 構造体へのポインタを指定します。
SPI_SETSTICKYKEYS | ユーザー補助の固定キーに関する情報を設定します。 | STICKYKEYS 構造体のサイズを指定します。 | 固定キーに関する情報が格納されている、STICKYKEYS 構造体へのポインタを指定します。
SPI_SETTOGGLEKEYS | ユーザー補助の切り替えキーに関する情報を設定します。 | TOGGLEKEYS 構造体のサイズを指定します。 | 切り替えキーに関する情報が格納されている、TOGGLEKEYS 構造体へのポインタを指定します。
SPI_SETWHEELSCROLLLINES | マウスホイールの回転によってスクロールされる行数の推奨値を設定します（WindowsNT系OSのみ）。 | 行数を指定します。 | 無視されます。
SPI_SETWORKAREA | 作業領域のサイズを設定します。作業領域は、画面全体からトレー（タスクバー）が占める領域を除いた部分です。 | 作業領域を示す長方形の座標が格納されている、RECT構造体へのポインタを指定します。 | 無視されます。

uiParam
uiAction パラメータの値によって異なります。上の表を参照して下さい。

pvParam
uiAction パラメータの値によって異なります。上の表を参照して下さい。

fWinIni
システム パラメータを変更する際に、ユーザー プロファイルを書き換えるか、またはトップレベル ウィンドウへの通知を行うかどうかを、以下の定数から指定します。
定数 | 説明
SPIF_UPDATEINIFILE | システム パラメータを変更内容を、ユーザー プロファイルに書き換えます。
SPIF_SENDCHANGE 、または SPIF_SENDWININICHANGE | ユーザープロファイルの更新後に、WM_SETTINGCHANGE メッセージをすべてのトップレベル ウィンドウに送ります。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。
ただし、uiAction パラメータに SPI_GETWINDOWSEXTENSION 定数が設定されているときは、Plus! がインストールされているかどうかを示す値が返ります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

GetSystemMetrics関数


 構造体: OSVERSIONINFO

オペレーティング システムのバージョンに関する情報が格納されます。

定義
Type OSVERSIONINFO
    dwOSVersionInfoSize As Long
    dwMajorVersion As Long
    dwMinorVersion As Long
    dwBuildNumber As Long
    dwPlatformId As Long
    szCSDVersion[127] As Byte
End Type
dwOSVersionInfoSize
構造体のサイズを指定します。

dwMajorVersion
OSのメジャー バージョンが格納されます。

dwMinorVersion
OSのマイナー バージョンが格納されます。

dwBuildNumber
WindowsNT系OSでは、ビルド番号が格納されます。
Windows9x系OSでは、下位ワードにビルド番号が格納され、上位ワードにマイナー／メジャー バージョンが格納されます。

dwPlatformId
プラットフォームの識別 ID が、以下の定数で格納されます。
定数 | 説明
VER_PLATFORM_WIN32_WINDOWS | Windows9x系OSのWin32
VER_PLATFORM_WIN32_NT | WindowsNT系OSのWin32

szCSDVersion[127]
WindowsNT系OSでは、インストールされているサービスパックに関する文字列が格納されます。
Windows9x系OSでは、OS の追加情報が文字列で格納されます。

備考

dwMajorVersion、dwMinorVersionに格納されるOSのバージョン値に関しては、下記リストをご参照ください。

OS | バージョン（メジャー.マイナー）
Windows Vista | 6.0
Windows XP Professional x64 Edition | 5.2
Windows .NET Server | 5.2
Windows XP | 5.1
Windows 2000 | 5.0
Windows Me | 4.90
Windows 98 | 4.10
Windows NT4.0 | 4.0
Windows 95 | 4.0

環境情報

インクルード ファイル: api_system.sbp 内で定義済み

GetVersionEx関数


 構造体: SYSTEM_INFO

プロセッサおよびメモリに関するシステム情報が格納されます。

定義
Type SYSTEM_INFO
    dwOemId As Long
    dwPageSize As Long
    lpMinimumApplicationAddress As Long
    lpMaximumApplicationAddress As Long
    dwActiveProcessorMask As Long
    dwNumberOfProcessors As Long
    dwProcessorType As Long
    dwAllocationGranularity As Long
    wProcessorLevel As Integer
    wProcessorRevision As Integer
End Type
dwOemId
このメンバは使われなくなりました。

dwPageSize
メモリページのサイズが格納されます。

lpMinimumApplicationAddress
アプリケーションが利用可能なメモリ空間の最下位アドレスが格納されます。

lpMaximumApplicationAddress
アプリケーションが利用可能なメモリ空間の最上位アドレスが格納されます。

dwActiveProcessorMask
システム中に存在するプロセッサのビットマスクが格納されます。

dwNumberOfProcessors
システム中に存在するプロセッサの数が格納されます。

dwProcessorType
プロセッサの種類が、以下の値で格納されます。WindowsNT系OSでは、wProcessorLevel メンバおよび wProcessorRevision メンバを参照することをお勧めします。
値 | 意味
386 | 80386 プロセッサ
486 | 80486 プロセッサ
586 | Pentium プロセッサ

dwAllocationGranularity
メモリ空間割り当ての最小単位が格納されます。

wProcessorLevel
プロセッサの種類が格納されます（WindowsNT系OSのみ）。

wProcessorRevision
プロセッサのバージョンが格納されます（WindowsNT系OSのみ）。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み

GetSystemInfo関数


 Win32API: DosDateTimeToFileTime

MS-DOS 形式の日時を、ファイル時間形式に変換します。

定義
Declare Function DosDateTimeToFileTime Lib "kernel32" _
         (wFatDate As Word, _
          wFatTime As Word, _
    ByRef lpFileTime As FILETIME) As Long
wFatDate
MS-DOS 形式の日にちデータが格納されている、16ビット整数値を指定します。各ビットは以下のようなデータに対応します。
ビット | 説明
0 ～ 4 | 日（1 ～ 31）
5 ～ 8 | 月（1 ～ 12）
9 ～ 15 | 年（1980 年からの経過年数）

wFatTime
MS-DOS 形式の時間データが格納されている、16ビット整数値を指定します。各ビットは以下のようなデータに対応します。
ビット | 説明
0 ～ 4 | 秒（2 秒で 1 カウントとします）
5 ～ 10 | 分（0 ～ 59）
11 ～ 15 | 時（0 ～ 23）

lpFileTime （ポインタ参照）
FILETIME構造体へのポインタを指定します。この構造体に、変換されたファイル時間が格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると FALSE が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

FileTimeToDosDateTime関数、FILETIME構造体


 Win32API: FileTimeToDosDateTime

ファイル時間を、MS-DOS 形式の日時に変換します。

定義
Declare Function FileTimeToDosDateTime Lib "kernel32" _
   (ByRef lpFileTime As FILETIME, _
    ByRef lpFatDate As Word, _
    ByRef lpFatTime As Word) As Long
lpFileTime （ポインタ参照）
ファイル時間が格納されている、FILETIME構造体へのポインタを指定します。

lpFatDate （ポインタ参照）
16 ビット整数型変数へのポインタを指定します。ここで指定する変数に、MS-DOS 形式の日にちデータが格納されます。格納されるデータの各ビットは以下のような意味を持ちます。
ビット | 説明
0 ～ 4 | 日（1 ～ 31）
5 ～ 8 | 月（1 ～ 12）
9 ～ 15 | 年（1980 年からの経過年数）

lpFatTime （ポインタ参照）
16 ビット整数型変数へのポインタを指定します。ここで指定する変数に、MS-DOS 形式の時間データが格納されます。格納されるデータの各ビットは以下のような意味を持ちます。
ビット | 説明
0 ～ 4 | 秒（2 秒で 1 カウントとします）
5 ～ 10 | 分（0 ～ 59）
11 ～ 15 | 時（0 ～ 23）

戻り値

関数が成功すると、TRUE が返ります。失敗すると FALSE が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

DosDateTimeToFileTime関数、FILETIME構造体


 Win32API: FileTimeToLocalFileTime

世界標準時刻（UTC）のファイル時間を、ローカル ファイル時間に変換します。

定義
Declare Function FileTimeToLocalFileTime Lib "kernel32" _
   (ByRef lpFileTime As FILETIME, _
    ByRef lpLocalFileTime As FILETIME) As Long
lpFileTime （ポインタ参照）
世界標準時刻（UTC）のファイル時間が格納されている、FILETIME構造体へのポインタを指定します。

lpLocalFileTime （ポインタ参照）
FILETIME構造体へのポインタを指定します。この構造体に、ローカル ファイル時間が格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると FALSE が返ります。

解説

lpFileTime パラメータおよび lpLocalFileTime パラメータに同じポインタを指定することはできません。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

LocalFileTimeToFileTime関数、FILETIME構造体


 Win32API: FileTimeToSystemTime

64ビットのファイル時間を、システム日時形式に変換します。

定義
Declare Function FileTimeToSystemTime Lib "kernel32" _
   (ByRef lpFileTime As FILETIME, _
    ByRef lpSystemTime As SYSTEMTIME) As Long
lpFileTime （ポインタ参照）
ファイル時間が格納されているFILETIME構造体へのポインタを指定します。

lpSystemTime （ポインタ参照）
SYSTEMTIME構造体へのポインタを指定します。この構造体にシステム日時が格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると FALSE が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

SystemTimeToFileTime関数、FILETIME構造体、SYSTEMTIME構造体


 Win32API: GetFileTime

指定したファイルの、作成日時、最終アクセス日時、更新日時を取得します。

定義
Declare Function GetFileTime Lib "kernel32" _
         (hFile As DWord, _
    ByRef lpCreationTime As FILETIME, _
    ByRef lpLastAccessTime As FILETIME, _
    ByRef lpLastWriteTime As FILETIME) As Long
hFile
調査するファイルのハンドルを指定します。このハンドルは、読み取りアクセス権（GENERIC_READ）を持っていなければなりません。

lpCreationTime （ポインタ参照）
FILETIME構造体へのポインタを指定します。この構造体に、作成日時が格納されます。不要なときは、NULL を指定することができます。

lpLastAccessTime （ポインタ参照）
FILETIME構造体へのポインタを指定します。この構造体に、最終アクセス日時が格納されます。不要なときは、NULL を指定することができます。

lpLastWriteTime （ポインタ参照）
FILETIME構造体へのポインタを指定します。この構造体に、更新日時が格納されます。不要なときは、NULL を指定することができます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると FALSE が返ります。

解説

FAT ファイルシステムでは、一部の日時データが正常に取得できない場合があります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

SetFileTime関数、FILETIME構造体


 Win32API: GetLocalTime

コンピュータの現在のローカル時間を取得します。

定義
Declare Sub GetLocalTime Lib "kernel32" _
   (ByRef lpSystemTime As SYSTEMTIME)
lpSystemTime （ポインタ参照）
SYSTEMTIME構造体へのポインタを指定します。この構造体にローカル時間が格納されます。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

SetLocalTime関数、SYSTEMTIME構造体


 Win32API: GetTickCount

Windows 起動からの経過時間を、ミリ秒単位で取得します。

定義

Declare Function GetTickCount Lib "kernel32" ( ) As DWord

戻り値

Windows 起動からの経過時間がミリ秒単位で返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll


 Win32API: LocalFileTimeToFileTime

ローカル ファイル時間を、世界標準時刻（UTC）のファイル時間に変換します。

定義
Declare Function LocalFileTimeToFileTime Lib "kernel32" _
   (ByRef lpLocalFileTime As FILETIME, _
    ByRef lpFileTime As FILETIME) As Long
lpLocalFileTime （ポインタ参照）
ローカル ファイル時間が格納されている、FILETIME構造体へのポインタを指定します。

lpFileTime （ポインタ参照）
FILETIME構造体へのポインタを指定します。この構造体に、世界標準時刻（UTC）のファイル時間が格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると FALSE が返ります。

解説

lpLocalFileTime パラメータおよび lpFileTime パラメータに同じポインタを指定することはできません。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

FileTimeToLocalFileTime関数、FILETIME構造体


 Win32API: SetFileTime

指定したファイルの、作成日時、最終アクセス日時、更新日時を設定します。

定義
Declare Function SetFileTime Lib "kernel32" _
         (hFile As HANDLE, _
    ByRef lpCreationTime As FILETIME, _
    ByRef lpLastAccessTime As FILETIME, _
    ByRef lpLastWriteTime As FILETIME) As Long
hFile
調査するファイルのハンドルを指定します。このハンドルは、読み取りアクセス権（GENERIC_READ）を持っていなければなりません。

lpCreationTime （ポインタ参照）
作成日時が格納されている、FILETIME構造体へのポインタを指定します。作成日時を設定しないときは、NULL を指定することができます。

lpLastAccessTime （ポインタ参照）
最終アクセス日時が格納されている、FILETIME構造体へのポインタを指定します。最終アクセス日時を設定しないときは、NULL を指定することができます。

lpLastWriteTime （ポインタ参照）
更新日時が格納されている、FILETIME構造体へのポインタを指定します。更新日時を設定しないときは、NULL を指定することができます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると FALSE が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GetFileTime関数、FILETIME構造体


 Win32API: SetLocalTime

コンピュータのローカル時間を変更します。

定義
Declare Function SetLocalTime Lib "kernel32" _
   (ByRef lpSystemTime As SYSTEMTIME) As Long
lpSystemTime （ポインタ参照）
ローカル時間が格納されている、SYSTEMTIME構造体へのポインタを指定します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると FALSE が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

GetLocalTime関数、SYSTEMTIME構造体


 Win32API: SystemTimeToFileTime

システム日時形式で格納されている時間を、64ビットのファイル時間形式に変換します。

定義
Declare Function SystemTimeToFileTime Lib "kernel32" _
   (ByRef lpSystemTime As SYSTEMTIME, _
    ByRef lpFileTime As FILETIME) As Long
lpSystemTime （ポインタ参照）
システム日時が格納されているSYSTEMTIME構造体へのポインタを指定します。

lpFileTime （ポインタ参照）
FILETIME構造体へのポインタを指定します。この構造体にファイル時間が格納されます。

戻り値

関数が成功すると、TRUE が返ります。失敗すると FALSE が返ります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll

FileTimeToSystemTime関数、FILETIME構造体、SYSTEMTIME構造体


 構造体: FILETIME

ファイル時間を格納します。ファイル時間は1601年1月1日から 100 ナノ秒間隔でカウントされています。

定義
Type FILETIME
    dwLowDateTime As Long
    dwHighDateTime As Long
End Type
dwLowDateTime
ファイル時間の下位32ビットを格納します。

dwHighDateTime
ファイル時間の上位32ビットを格納します。

解説

ファイル時間をシステム時間形式に変換する場合は、FileTimeToSystemTime関数を使用します。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み

FileTimeToSystemTime関数


 構造体: SYSTEMTIME

システム日時を格納します。

定義
Type SYSTEMTIME
    wYear As Word
    wMonth As Word
    wDayOfWeek As Word
    wDay As Word
    wHour As Word
    wMinute As Word
    wSecond As Word
    wMilliseconds As Word
End Type
wYear
現在の年（西暦）を格納します。

wMonth
月を格納します（1～12）。

wDayOfWeek
曜日を格納します（日曜:0、月曜:1、火曜:2 ...）。

wDay
日にちを格納します。

wHour
時間を格納します。

wMinute
分を格納します。

wSecond
秒を格納します。

wMilliseconds
ミリ秒を格納します。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み


 MCIコマンド: MCI_CLOSE

デバイスをクローズします。
書式
mciSendCommand( _
          dwMciID As DWord, _
          MCI_CLOSE, _
          fdwCommand As DWord, _
    ByRef lpParam As Any) As DWord
dwMciID
デバイスIDを指定します。

fdwCommand
オプションを、以下の定数の組み合わせで指定します。必要ないときは、0を指定します。
定数 | 説明
MCI_NOTIFY | このコマンドの処理を完了したときに、あらかじめ指定されているウィンドウに対してMM_MCINOTIFYメッセージをポストします。
MCI_WAIT | このコマンドの処理が完了したところで制御を返します。このフラグを指定しなかったときは、コマンドの実行が開始された直後に制御が返ります。

lpParam （ポインタ参照）
メッセージ通知のためのウィンドウ ハンドルが格納されたDWord型変数を指定します。

環境情報

インクルード ファイル: api_mmsys.sbp 内で定義済み

mciSendCommand関数、MCIコマンド一覧


 MCIコマンド: MCI_OPEN

デバイスをオープンします。
書式
mciSendCommand( _
          NULL, _
          MCI_OPEN, _
          fdwCommand As DWord, _
    ByRef lpParam As Any) As DWord
fdwCommand
オプションを、以下の定数の組み合わせで指定します。
分類 | 定数 | 説明
汎用フラグ | MCI_NOTIFY | このコマンドの処理を完了したときに、あらかじめ指定されているウィンドウに対してMM_MCINOTIFYメッセージをポストします。
 | MCI_WAIT | このコマンドの処理が完了したところで制御を返します。このフラグを指定しなかったときは、コマンドの実行が開始された直後に制御が返ります。
 | MCI_OPEN_ALIAS | lpParamパラメータに指定する構造体のlpstrAliasメンバを有効にします。
 | MCI_OPEN_SHAREABLE | デバイスまたはファイルを共有可能としてオープンします。
 | MCI_OPEN_TYPE | lpParamパラメータに指定する構造体のlpstrDeviceTypeメンバを有効にします。
 | MCI_OPEN_TYPE_ID | このフラグはMCI_OPEN_TYPEフラグと同時に指定します。このフラグを指定するとlpstrDeviceTypeメンバは定数識別子になり、指定しないとデバイス名へのポインタになります。
複合デバイスに適応されるフラグ | MCI_OPEN_ELEMENT | lpParamパラメータに指定する構造体のlpstrElememtNameメンバを有効にします。
 | MCI_OPEN_ELEMENT_ID | このフラグはMCI_OPEN_ELEMENTフラグと同時に指定します。lpstrElememtNameメンバはDWord値であることを意味します。
アニメーションフラグ | MCI_ANIM_OPEN_NOSTATIC | デバイスはパレット内のスタティック（システム）カラーを2つに減らす必要があることを示します。
 | MCI_ANIM_OPEN_PARENT | lpParamパラメータに指定するMCI_ANIM_OPEN_PARMS構造体のhWndParentメンバを有効にします。
 | MCI_ANIM_OPEN_WS | lpParamパラメータに指定するMCI_ANIM_OPEN_PARMS構造体のdwStyleメンバを有効にし、自動的に生成されるアニメーション用ウィンドウのスタイルを指定できるようにします。
デジタルビデオフラグ | MCI_DGV_OPEN_NOSTATIC | デバイスはパレット内のスタティック（システム）カラーを2つに減らす必要があることを示します。
 | MCI_DGV_OPEN_PARENT | lpParamパラメータに指定するMCI_DGV_OPEN_PARMS構造体のhWndParentメンバを有効にします。
 | MCI_DGV_OPEN_WS | lpParamパラメータに指定するMCI_DGV_OPEN_PARMS構造体のdwStyleメンバを有効にし、自動的に生成されるビデオ再生用ウィンドウのスタイルを指定できるようにします。
 | MCI_DGV_OPEN_16BIT | 16ビットのMCIデバイスをサポートすることを示します。
 | MCI_DGV_OPEN_32BIT | 32ビットのMCIデバイスをサポートすることを示します。
ビデオオーバレイフラグ | MCI_OVLY_OPEN_PARENT | lpParamパラメータに指定するMCI_OVLY_OPEN_PARMS構造体のhWndParentメンバを有効にします。
 | MCI_OVLY_OPEN_WS | lpParamパラメータに指定するMCI_OVLY_OPEN_PARMS構造体のdwStyleメンバを有効にします。

lpParam （ポインタ参照）
デバイスオープンに関する情報が格納された、以下の構造体のいずれかを指定します。
構造体 | 対応デバイス
MCI_OPEN_PARMS | 汎用
MCI_ANIM_OPEN_PARMS | アニメーションデバイス
MCI_DGV_OPEN_PARMS | デジタルビデオデバイス
MCI_OVLY_OPEN_PARMS | ビデオオーバレイデバイス
MCI_WAVE_OPEN_PAMRS | WAVEフォームオーディオデバイス

備考

dwMciID（mciSendCommand関数の第1パラメータ）は未定なので、NULLを指定しておきます。

環境情報

インクルード ファイル: api_mmsys.sbp 内で定義済み

mciSendCommand関数、MCIコマンド一覧


 MCIコマンド: MCI_PAUSE

デバイスを一時停止状態にします。
書式
mciSendCommand( _
          dwMciID As DWord, _
          MCI_PAUSE, _
          fdwCommand As DWord, _
    ByRef lpParam As Any) As DWord
dwMciID
デバイスIDを指定します。

fdwCommand
オプションを、以下の定数の組み合わせで指定します。必要ないときは、0を指定します。
定数 | 説明
MCI_NOTIFY | このコマンドの処理を完了したときに、あらかじめ指定されているウィンドウに対してMM_MCINOTIFYメッセージをポストします。
MCI_WAIT | このコマンドの処理が完了したところで制御を返します。このフラグを指定しなかったときは、コマンドの実行が開始された直後に制御が返ります。

lpParam （ポインタ参照）
メッセージ通知のためのウィンドウ ハンドルが格納されたDWord型変数を指定します。

環境情報

インクルード ファイル: api_mmsys.sbp 内で定義済み

mciSendCommand関数、MCIコマンド一覧


 MCIコマンド: MCI_PLAY

デバイスを再生します。
書式
mciSendCommand( _
          dwMciID As DWord, _
          MCI_PLAY, _
          fdwCommand As DWord, _
    ByRef lpParam As Any) As DWord
dwMciID
デバイスIDを指定します。

fdwCommand
オプションを、以下の定数の組み合わせで指定します。必要ないときは、0を指定します。
分類 | 定数 | 説明
汎用フラグ | MCI_NOTIFY | このコマンドの処理を完了したときに、あらかじめ指定されているウィンドウに対してMM_MCINOTIFYメッセージをポストします。
 | MCI_WAIT | このコマンドの処理が完了したところで制御を返します。このフラグを指定しなかったときは、コマンドの実行が開始された直後に制御が返ります。
 | MCI_FROM | lpParamパラメータに指定するMCI_PLAY_PARMS構造体のdwFromメンバを有効にします。
 | MCI_TO | lpParamパラメータに指定するMCI_PLAY_PARMS構造体のdwToメンバを有効にします。
アニメーションフラグ | MCI_ANIM_PLAY_FAST | 高速再生します。
 | MCI_ANIM_PLAY_REVERSE | 逆方向に再生します。
 | MCI_ANIM_PLAY_SCAN | 高速スキャンします。
 | MCI_ANIM_PLAY_SLOW | 低速再生します。
 | MCI_ANIM_PLAY_SPEED | lpParamパラメータに指定するMCI_ANIM_PLAY_PARMS構造体のdwSpeedメンバを有効にします。
デジタルビデオフラグ | MCI_DGV_PLAY_REPERT | リピート再生します。
 | MCI_DGV_PLAY_REVERSE | 逆方向に再生します。
 | MCI_MCIAVI_PLAY_FULLSCREEN | フルスクリーンで再生します。
 | MCI_MCIAVI_PLAY_WINDOW | 対応するウィンドウで再生します。
VCRフラグ | MCI_VCR_PLAY_AT | lpParamパラメータに指定するMCI_VCR_PLAY_PARMS構造体のdwAtメンバを有効にします。
 | MCI_VCR_PLAY_REVERSE | 逆方向に再生します。
 | MCI_VCR_PLAY_SCAN | 高速スキャンします。
ビデオディスクフラグ | MCI_VD_PLAY_FAST | 高速再生します。
 | MCI_VD_PLAY_REVERSE | 逆方向に再生します。
 | MCI_VD_PLAY_SCAN | 高速スキャンします。
 | MCI_VD_PLAY_SLOW | 低速再生します。
 | MCI_VD_PLAY_SPEED | lpParamパラメータに指定するMCI_VD_PLAY_PARMS構造体のdwSpeedメンバを有効にします。

lpParam （ポインタ参照）
デバイス再生に関する情報が格納された、以下の構造体のいずれかを指定します。
構造体 | 対応デバイス
MCI_PLAY_PARMS | 汎用
MCI_ANIM_PLAY_PARMS | アニメーションデバイス
MCI_DGV_PLAY_PARMS | デジタルビデオデバイス
MCI_VCR_PLAY_PARMS | VCRデバイス
MCI_VD_PLAY_PAMRS | ビデオディスクデバイス

環境情報

インクルード ファイル: api_mmsys.sbp 内で定義済み

mciSendCommand関数、MCIコマンド一覧


 MCIコマンド: MCI_SEEK

デバイスの再生位置を変更します。
書式
mciSendCommand( _
          dwMciID As DWord, _
          MCI_SEEK, _
          fdwCommand As DWord, _
    ByRef lpParam As Any) As DWord
dwMciID
デバイスIDを指定します。

fdwCommand
オプションを、以下の定数の組み合わせで指定します。必要ないときは、0を指定します。
分類 | 定数 | 説明
汎用フラグ | MCI_NOTIFY | このコマンドの処理を完了したときに、あらかじめ指定されているウィンドウに対してMM_MCINOTIFYメッセージをポストします。
 | MCI_WAIT | このコマンドの処理が完了したところで制御を返します。このフラグを指定しなかったときは、コマンドの実行が開始された直後に制御が返ります。
 | MCI_SEEK_TO_END | 内容の最後にシークします。
 | MCI_SEEK_TO_START | 内容の先頭にシークします。
 | MCI_TO | lpParamパラメータに指定するMCI_SEEK_PARMS構造体のdwToメンバを有効にします。
VCRフラグ | MCI_VCR_SEEK_AT | lpParamパラメータに指定するMCI_VCR_SEEK_PARMS構造体のdwAtメンバを有効にします。
 | MCI_VCR_SEEK_MARK | lpParamパラメータに指定するMCI_VCR_SEEK_PARMS構造体のdwMarkメンバを有効にします。
 | MCI_VCR_SEEK_REVERSE | MCI_VCR_SEEK_MARKフラグと同時に指定します。シーク方向が逆方向であることを示します。
ビデオディスクフラグ | MCI_VD_SEEK_REVERSE | シーク方向が逆方向であることを示します。

lpParam （ポインタ参照）
デバイスシークに関する情報が格納された、以下の構造体のいずれかを指定します。
構造体 | 対応デバイス
MCI_SEEK_PARMS | 汎用
MCI_VCR_SEEK_PARMS | VCRデバイス

環境情報

インクルード ファイル: api_mmsys.sbp 内で定義済み

mciSendCommand関数、MCIコマンド一覧


 MCIコマンド: MCI_SET

デバイス情報を設定します。
書式
mciSendCommand( _
          dwMciID As DWord, _
          MCI_SET, _
          fdwCommand As DWord, _
    ByRef lpParam As Any) As DWord
dwMciID
デバイスIDを指定します。

fdwCommand
オプションを、以下の定数の組み合わせで指定します。必要ないときは、0を指定します。
分類 | 定数 | 説明
汎用フラグ | MCI_NOTIFY | このコマンドの処理を完了したときに、あらかじめ指定されているウィンドウに対してMM_MCINOTIFYメッセージをポストします。
 | MCI_WAIT | このコマンドの処理が完了したところで制御を返します。このフラグを指定しなかったときは、コマンドの実行が開始された直後に制御が返ります。
 | MCI_SET_AUDIO | lpParamパラメータに指定するMCI_SET_PARMS構造体のdwAudioメンバを有効にします。
 | MCI_SET_DOOR_CLOSED | メディアトレイをクローズします。
 | MCI_SET_DOOR_OPEN | メディアトレイをオープンします。
 | MCI_SET_OFF | 指定したビデオ、オーディオチャネルを使用不可能にします。
 | MCI_SET_ON | 指定したビデオ、オーディオチャネルを使用可能にします。
 | MCI_SET_TIME_FORMAT | lpParamパラメータに指定するMCI_SET_PARMS構造体のdwTimeFormatメンバを有効にします。
 | MCI_SET_VIDEO | MCI_SET_ONまたはMCI_SET_OFFフラグと同時に指定します。オン／オフ設定をビデオチャネルに対して行うことを示します。
デジタルビデオフラグ | MCI_DGV_SET_FILEFORMAT | lpParamパラメータに指定するMCI_DGV_SET_PARMS構造体のdwFileFormatメンバを有効にします。
 | MCI_DGV_SET_SEEK_EXACTLY | MCI_SET_ONまたはMCI_SET_OFFフラグと同時に指定します。位置付けに使用するフォーマットを設定します。
 | MCI_DGV_SET_SPEED | lpParamパラメータに指定するMCI_DGV_SET_PARMS構造体のdwSpeedメンバを有効にします。
 | MCI_DGV_SET_STILL | MCI_DGV_SET_FILEFORMATフラグと同時に指定します。captureコマンドで使用するファイルフォーマットであることを示します。
シーケンサフラグ | MCI_SEQ_SET_SONGPTR | 時間フォーマットをソングポインタ単位に設定します。
 | MCI_SEQ_SET_MASTER | lpParamパラメータに指定するMCI_SEQ_SET_PARMS構造体のdwMasterメンバを有効にします。
 | MCI_SEQ_SET_OFFSET | lpParamパラメータに指定するMCI_SEQ_SET_PARMS構造体のdwOffsetメンバを有効にします。
 | MCI_SEQ_SET_PORT | lpParamパラメータに指定するMCI_SEQ_SET_PARMS構造体のdwPortメンバを有効にします。
 | MCI_SEQ_SET_SLAVE | lpParamパラメータに指定するMCI_SEQ_SET_PARMS構造体のdwSlaveメンバを有効にします。
 | MCI_SEQ_SET_TEMPO | lpParamパラメータに指定するMCI_SEQ_SET_PARMS構造体のdwTempoメンバを有効にします。
VCRフラグ | MCI_VCR_SET_ASSEMBLE_RECORD | MCI_SET_ONまたはMCI_SET_OFFフラグと同時に指定します。MCI_SET_ONフラグと同時に指定したときは、アセンブルモードでの記録をオン、挿入モードでの記録をオフにします。MCI_SET_OFFフラグと同時に指定したときは、アセンブルモードでの記録をオフ、挿入モードでの記録をオンにします。
 | MCI_VCR_SET_COUNTER_FORMAT | lpParamパラメータに指定するMCI_VCR_SET_PARMS構造体のdwCounterFormatメンバを有効にします。
 | MCI_VCR_SET_COUNTER_VALUE | lpParamパラメータに指定するMCI_VCR_SET_PARMS構造体のdwCounterメンバを有効にします。
 | MCI_VCR_SET_INDEX | lpParamパラメータに指定するMCI_VCR_SET_PARMS構造体のdwIndexメンバを有効にします。
 | MCI_VCR_SET_PAUSE_TIMEOUT | lpParamパラメータに指定するMCI_VCR_SET_PARMS構造体のdwPauseTimeoutメンバを有効にします。
 | MCI_VCR_SET_POSTROLL_DURATION | lpParamパラメータに指定するMCI_VCR_SET_PARMS構造体のdwPostrollDurationメンバを有効にします。
 | MCI_VCR_SET_POWER | MCI_SET_ONまたはMCI_SET_OFFフラグと同時に指定します。MCI_SET_ONフラグを指定したときは、電源をオンにします。MCI_SET_OFFフラグを指定したときは、電源をオフにします。
 | MCI_VCR_SET_PREROLL_DURATION | lpParamパラメータに指定するMCI_VCR_SET_PARMS構造体のdwPrerollDurationメンバを有効にします。
 | MCI_VCR_SET_RECORD_FORMAT | lpParamパラメータに指定するMCI_VCR_SET_PARMS構造体のdwRecordFormatメンバを有効にします。
 | MCI_VCR_SET_SPEED | lpParamパラメータに指定するMCI_VCR_SET_PARMS構造体のdwSpeedメンバを有効にします。
 | MCI_VCR_SET_TAPE_LENGTH | lpParamパラメータに指定するMCI_VCR_SET_PARMS構造体のdwLengthメンバを有効にします。
 | MCI_VCR_SET_TIME_MODE | lpParamパラメータに指定するMCI_VCR_SET_PARMS構造体のdwTimeModeメンバを有効にします。
 | MCI_VCR_SET_TRACKING | VCRテープの送り速度を微調整します。MCI_VCR_PLUSフラグ（速度を上げる）、MCI_VCR_MINUSフラグ（速度を下げる）、MCI_VCR_RESETフラグ（トラッキング調整を0に戻す）のいずれかと同時に指定します。
ビデオディスクフラグ | MCI_VD_FORMAT_TRACK | 時間フォーマットをトラック単位に設定します。
WAVEフォームオーディオフラグ | MCI_WAVE_INPUT | lpParamパラメータに指定するMCI_WAVE_SET_PARMS構造体のwInputメンバを有効にします。
 | MCI_WAVE_OUTPUT | lpParamパラメータに指定するMCI_WAVE_SET_PARMS構造体のwOutputメンバを有効にします。
 | MCI_WAVE_SET_ANYINPUT | 現在のフォーマットと互換性のあるすべてのWAVE入力を記録できることを示します。
 | MCI_WAVE_SET_ANYOUTPUT | 現在のフォーマットと互換性のあるすべてのWAVE出力を再生できることを示します。
 | MCI_WAVE_SET_AVGBYTESPERSEC | lpParamパラメータに指定するMCI_WAVE_SET_PARMS構造体のnAvgBytesPerSecメンバを有効にします。
 | MCI_WAVE_SET_BITSPERSAMPLE | lpParamパラメータに指定するMCI_WAVE_SET_PARMS構造体のwBitsPerSampleメンバを有効にします。
 | MCI_WAVE_SET_BLOCKALIGN | lpParamパラメータに指定するMCI_WAVE_SET_PARMS構造体のnBlockAlignメンバを有効にします。
 | MCI_WAVE_SET_CHANNELS | lpParamパラメータに指定するMCI_WAVE_SET_PARMS構造体のnChannelsメンバを有効にします。
 | MCI_WAVE_SET_FORMATTAG | lpParamパラメータに指定するMCI_WAVE_SET_PARMS構造体のwFormatTagメンバを有効にします。
 | MCI_WAVE_SET_SAMPLESPERSEC | lpParamパラメータに指定するMCI_WAVE_SET_PARMS構造体のnSamplesPerSecメンバを有効にします。

lpParam （ポインタ参照）
デバイス設定に関する情報が格納された、以下の構造体のいずれかを指定します。
構造体 | 対応デバイス
MCI_SET_PARMS | 汎用
MCI_DGV_SET_PARMS | デジタルビデオデバイス
MCI_SEQ_SET_PARMS | シーケンサデバイス
MCI_VCR_SET_PARMS | VCRデバイス
MCI_WAVE_SET_PARMS | WAVEフォームオーディオデバイス

環境情報

インクルード ファイル: api_mmsys.sbp 内で定義済み

mciSendCommand関数、MCIコマンド一覧


 MCIコマンド: MCI_STATUS

デバイスの状態を取得します。
書式
mciSendCommand( _
          dwMciID As DWord, _
          MCI_STATUS, _
          fdwCommand As DWord, _
    ByRef lpParam As Any) As DWord
dwMciID
デバイスIDを指定します。

fdwCommand
オプションを、以下の定数の組み合わせで指定します。必要ないときは、0を指定します。
分類 | 定数 | 説明
汎用フラグ | MCI_NOTIFY | このコマンドの処理を完了したときに、あらかじめ指定されているウィンドウに対してMM_MCINOTIFYメッセージをポストします。
 | MCI_WAIT | このコマンドの処理が完了したところで制御を返します。このフラグを指定しなかったときは、コマンドの実行が開始された直後に制御が返ります。
 | MCI_STATUS_ITEM | lpParamパラメータに指定するMCI_STATUS_PARMS構造体のdwItemメンバを有効にします。
 | MCI_STATUS_START | MCI_STATUS_ITEMと同時に指定します。メディアの開始位置を取得します。
 | MCI_TRACK | lpParamパラメータに指定するMCI_STATUS_PARMS構造体のdwTrackメンバを有効にします。
CDオーディオフラグ | MCI_CDA_STATUS_TYPE_TRACK | MCI_TRACKフラグと同時に指定します。任意のトラックがオーディオトラックのときはMCI_CDA_TRACK_AUDIOが、データトラックのときはMCI_CDA_TRACK_OTHERが、dwReturnメンバに格納されます。

lpParam （ポインタ参照）
デバイス状況の取得に関する情報が格納された、以下の構造体のいずれかを指定します。
構造体 | 対応デバイス
MCI_STATUS_PARMS | 汎用
MCI_DGV_STATUS_PARMS | デジタルビデオデバイス
MCI_VCR_STATUS_PARMS | VCRデバイス

環境情報

インクルード ファイル: api_mmsys.sbp 内で定義済み

mciSendCommand関数、MCIコマンド一覧


 MCIコマンド: MCI_STOP

デバイスを停止状態にします。
書式
mciSendCommand( _
          dwMciID As DWord, _
          MCI_STOP, _
          fdwCommand As DWord, _
    ByRef lpParam As Any) As DWord
dwMciID
デバイスIDを指定します。

fdwCommand
オプションを、以下の定数の組み合わせで指定します。必要ないときは、0を指定します。
定数 | 説明
MCI_NOTIFY | このコマンドの処理を完了したときに、あらかじめ指定されているウィンドウに対してMM_MCINOTIFYメッセージをポストします。
MCI_WAIT | このコマンドの処理が完了したところで制御を返します。このフラグを指定しなかったときは、コマンドの実行が開始された直後に制御が返ります。

lpParam （ポインタ参照）
メッセージ通知のためのウィンドウ ハンドルが格納されたDWord型変数を指定します。

環境情報

インクルード ファイル: api_mmsys.sbp 内で定義済み

mciSendCommand関数、MCIコマンド一覧


 Win32API: mciGetErrorString

MCIエラーコードから、エラー内容が記載された文字列を取得します。
定義
Declare Function mciGetErrorString Lib "winmm" Alias "mciGetErrorStringA" _
   (mcierr As DWord, _
    pszText As BytePtr, _
    cchText As Long) As Long
mcierr
エラーコードを指定します。

pszText
バッファへのポインタを指定します。このバッファにエラー内容が格納されます。

cchText
バッファのサイズをバイト単位で指定します。

戻り値

関数が成功すると TRUE が返ります。失敗すると FALSEが返ります。

環境情報

インクルード ファイル: api_mmsys.sbp 内で定義済み
DLLファイル: winmm.dll

mciSendCommand関数


 Win32API: mciSendCommand

MCIデバイスにコマンドを送ります。
定義
Declare Function mciSendCommand Lib "winmm" Alias "mciSendCommandA" _
         (dwMciID As DWord, _
          uMsg As DWord, _
          fdwCommand As DWord, _
    ByRef lpParam As Any) As DWord
dwMciID
デバイスIDを指定します。

uMsg
コマンドメッセージを指定します（MCIコマンド一覧）。

fdwCommand
フラグを指定します。意味はコマンドメッセージにより、異なります。

lpParam （ポインタ参照）
コマンドメッセージに関する情報が格納された構造体へのポインタを指定します。

戻り値

関数が成功すると、0 が返ります。失敗すると、下位ワードにエラーコード、上位ワードにデバイスIDが格納された値が返ります（デバイス固有のエラーでないときは、上位ワードは0になります）。mciGetErrorString関数を使用すると、エラーの説明を取得することができます。

環境情報

インクルード ファイル: api_mmsys.sbp 内で定義済み
DLLファイル: winmm.dll

mciGetErrorString関数、MCIコマンド一覧


 Win32API: PlaySound

WAVEファイルを再生します。
定義
Declare Function PlaySound Lib "winmm" Alias "PlaySoundA" _
   (pszSound As BytePtr, _
    hmod As DWord, _
    fdwSound As DWord) As Long
pszSound
再生するWAVEファイルのパスが格納された文字列へのポインタ、またはメモリ内のサウンドイメージへのポインタを指定します。NULLを指定すると、非同期式で再生中のサウンドが停止します。

hmod
fdwSoundパラメータでSND_RESOURCEフラグを指定したときは、リソースを提供するモジュールのインスタンスハンドルを指定します。それ以外はNULLを指定します。

fdwSound
再生フラグを、以下の定数の組み合わせで指定します。
定数 | 説明
SND_APPLICATION | アプリケーション固有の関連付けを使ってサウンドを再生します。
SND_ALIAS | pszSoundパラメータには、レジストリまたはWin.iniファイルに記述されているシステムイベント名を指定します。
SND_ALIAS_ID | pszSoundパラメータには、定義済みのサウンド名（"SystemStart"、"SystemExit"など）を指定します。
SND_ASYNC | 非同期式で再生を行います。この関数はすぐに制御を返します。
SND_FILENAME | pszSoundパラメータには、WAVEファイルのファイルパスを指定します。
SND_LOOP | 繰り返し再生を行います。SND_ASYNCフラグを同時に指定する必要があります。
SND_MEMORY | pszSoundパラメータには、メモリ内のサウンドイメージへのポインタを指定します。
SND_NODEFAULT | 再生するサウンドが見つからないときに、警告音を鳴らさないようにします。
SND_NOSTOP | 他に再生中のサウンドがあるときは、再生を行わず、すぐに制御を返します。
SND_NOWAIT | サウンドドライバがビジー状態のときは、再生を行わず、すぐに制御を返します。
SND_PURGE | pszSoundパラメータで指定したサウンドを停止します。pszSoundパラメータでNULLを指定したときは、呼び出し側タスクで再生中のすべてのサウンドを停止します。
SND_RESOURCE | pszSoundパラメータにはリソースIDを、hmodパラメータにはインスタンスハンドルを指定します。
SND_SYNC | 同期式で再生を行います。この関数は、再生が終了したら制御を返します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

環境情報

インクルード ファイル: api_mmsys.sbp 内で定義済み
DLLファイル: winmm.dll


 RADツール
はじめに

ActiveBasicでは、マウスなどを使って視覚的にウィンドウをデザインするための機能とそれに対応するイベント コーディングのための補助機能をRADツールと呼びます。通常、プログラム コーディングのみを利用してWindows対応のアプリケーションを開発する場合にはコーディングに多くの労力を必要とし、複雑な制御構造を理解しなければなりませんでした。しかし、この問題となるコーディング部分をRADツールが代行することで、開発者は必要最低限のプログラミング作業を行い、より高度なアプリケーションを開発することが可能となりました。
RADツールはActiveBasicに付属するProjectEditorで利用することができます。操作方法もシンプルなため、初心者の方でも安心して利用できます。もちろん、大規模プログラムの開発用に設計されているので、ベテラン プログラマーにもお勧めです。

RADツールの役割

RADツールの役割は大きく２つに分けることができます。
１つ目はビジュアルなインターフェイスを用いてウィンドウをデザインすることができる機能です。下地となる親ウィンドウを作成し、そこにコントロールを貼り付けていきます。親ウィンドウやコントロール類は表示にしたがって属性を設定することができます。
２つ目はデザインされたウィンドウに対する各種イベント処理です。例えば、ボタンの貼り付けが完了しても、ボタンが押されたときの動作をコーディングしなければ何の意味もありません。これらのイベント コーディングを支援する機能がRADツールには含まれています。
これら２つの機能を駆使してビジュアルなイベント ドリブン型アプリケーションを開発することができます。

操作方法

ウィンドウ デザイン、メニュー デザイン、イベント コーディング


 イベント：Activate

ウィンドウがアクティブ、または非アクティブになったときに呼び出されます。

仕様
Sub object_Activate _
   (ByVal state As Integer, _
    ByVal minimized As Integer)
state
ウィンドウがアクティブになったか、非アクティブになったかが、以下の定数から指定されます。
定数 | 説明
WA_INACTIVE | ウィンドウが非アクティブになりました。
WA_ACTIVE | マウス クリック以外の方法により、ウィンドウがアクティブになりました。
WA_CLICKACTIVE | マウス クリックにより、ウィンドウがアクティブになりました。

minimized
ウィンドウが最小化されているときは 0 以外の値が指定されます。それ以外は、0 が指定されます。


 イベント：Create

ウィンドウが作成されたときに呼び出されます。

仕様
Sub object_Create _
   (ByRef CreateStruct As CREATESTRUCT)
CreateStruct
作成されるウィンドウに関する情報が格納されている、CREATESTRUCT 構造体です。


 イベント：Destroy

ウィンドウが破棄されるときに呼び出されます。

仕様

Sub object_Destroy( )


 イベント：DropFiles

ファイルがウィンドウにドラッグ＆ドロップされたときに呼び出されます。

仕様
Sub object_DropFiles _
   (ByVal hDrop As Long)
hDrop
ドロップ ハンドルが指定されます。

解説

ドロップ ハンドルが不要になったら、DragFinish関数を使用してメモリから解放して下さい。

DragAcceptFiles関数、DragFinish関数、DragQueryFile関数、DragQueryPoint関数


 イベント：HScroll

水平スクロールバーがクリックされたときに呼び出されます。

仕様
Sub object_HScroll _
   (ByVal nScrollCode As Long, _
    ByVal nPos As Integer, _
    ByVal hwndScrollBar As Long)
nScrollCode
スクロール要求が以下の定数から指定されます。
定数 | 説明
SB_LEFT | 左端へスクロール
SB_ENDSCROLL | スクロール終了
SB_LINELEFT | 左へスクロール
SB_LINERIGHT | 右へスクロール
SB_PAGELEFT | 1 ページ左へスクロール
SB_PAGERIGHT | 1 ページ右へスクロール
SB_RIGHT | 右端へスクロール
SB_THUMBPOSITION | 絶対位置へスクロール（現在位置は引数 nPos で指定されます）
SB_THUMBTRACK | スクロール ボックスを指定位置へドラッグします（現在位置は引数 nPos で指定されます）。

nPos
nScrollCode パラメータに SB_THUMBPOSITION または SB_THUMBTRACK が指定されたときに、スクロールバーの現在位置が指定されます。

hwndScrollBar
スクロールバー コントロールによるイベントのときは、スクロールバーのハンドルが指定されます。
ウィンドウの水平スクロールバーによるイベントのときは、NULL が指定されます。

解説

指定されたスクロール要求通りにスクロールバーを移動させるときは、SetScrollInfo関数を使用して下さい。

SetScrollInfo関数


 イベント：KeyDown

キーが押されたときに呼び出されます。

仕様
Sub object_KeyDown _
   (ByVal KeyCode As Long, _
    ByVal flags As Long)
KeyCode
押されたキーの仮想キー コードが指定されます。

flags
オプション ビット フラグが指定されます。各ビットは、以下の意味を持ちます。
ビット | 説明
0 ～ 15 | リピート カウントがセットされます。
16 ～ 23 | スキャン コード (OEM 依存の値)がセットされます。
24 | 拡張キー（ファンクション キー、テンキーなど）が押されたときは 1 がセットされます。
25 ～ 28 | 無効
29 | コンテキスト コードがセットされます。
30 | 直前にもキーが押されていたときは、1 がセットされます。
31 | キーが押されたときは 1 が、離されたときは 0 がセットされます。

KeyPressイベント、KeyUpイベント


 イベント：KeyPress

キーが入力されたときに呼び出されます。

仕様
Sub object_KeyPress _
   (ByVal KeyCode As Long, _
    ByVal flags As Long)
KeyCode
入力されたキーの仮想キー コードが指定されます。

flags
オプション ビット フラグが指定されます。各ビットは、以下の意味を持ちます。
ビット | 説明
0 ～ 15 | リピート カウントがセットされます。
16 ～ 23 | スキャン コード (OEM 依存の値)がセットされます。
24 | 拡張キー（ファンクション キー、テンキーなど）が押されたときは 1 がセットされます。
25 ～ 28 | 無効
29 | コンテキスト コードがセットされます。
30 | 直前にもキーが押されていたときは、1 がセットされます。
31 | キーが押されたときは 1 が、離されたときは 0 がセットされます。

KeyDownイベント、KeyUpイベント


 イベント：KeyUp

キーが離されたときに呼び出されます。

仕様
Sub object_KeyUp _
   (ByVal KeyCode As Long, _
    ByVal flags As Long)
KeyCode
離されたキーの仮想キー コードが指定されます。

flags
オプション ビット フラグが指定されます。各ビットは、以下の意味を持ちます。
ビット | 説明
0 ～ 15 | リピート カウントがセットされます。
16 ～ 23 | スキャン コード (OEM 依存の値)がセットされます。
24 | 拡張キー（ファンクション キー、テンキーなど）が押されたときは 1 がセットされます。
25 ～ 28 | 無効
29 | コンテキスト コードがセットされます。
30 | 直前にもキーが押されていたときは、1 がセットされます。
31 | キーが押されたときは 1 が、離されたときは 0 がセットされます。

KeyDownイベント、KeyPressイベント


 イベント：LButtonDblClick

マウスの左ボタンがダブルクリックされたときに呼び出されます。

仕様
Sub object_LButtonDblClick _
   (ByVal flags As Long, _
    ByVal x As Integer, _
    ByVal y As Integer)
flags
同時に押されているキー、またはマウス ボタンの仮想キー コードが、以下の定数の組み合わせで指定されます。
定数 | 説明
MK_CONTROL | Ctrl キー
MK_LBUTTON | マウスの左ボタン
MK_MBUTTON | マウスの中央ボタン
MK_RBUTTON | マウスの右ボタン
MK_SHIFT | Shift キー

x
マウス ポインタの X 座標がクライアント座標で指定されます。

y
マウス ポインタの Y 座標がクライアント座標で指定されます。

LButtonDownイベント、LButtonUpイベント


 イベント：LButtonDown

マウスの左ボタンが押されたときに呼び出されます。

仕様
Sub object_LButtonDown _
   (ByVal flags As Long, _
    ByVal x As Integer, _
    ByVal y As Integer)
flags
同時に押されているキー、またはマウス ボタンの仮想キー コードが、以下の定数の組み合わせで指定されます。
定数 | 説明
MK_CONTROL | Ctrl キー
MK_LBUTTON | マウスの左ボタン
MK_MBUTTON | マウスの中央ボタン
MK_RBUTTON | マウスの右ボタン
MK_SHIFT | Shift キー

x
マウス ポインタの X 座標がクライアント座標で指定されます。

y
マウス ポインタの Y 座標がクライアント座標で指定されます。

LButtonDblClickイベント、LButtonUpイベント


 イベント：LButtonUp

マウスの左ボタンが離されたときに呼び出されます。

仕様
Sub object_LButtonUp _
   (ByVal flags As Long, _
    ByVal x As Integer, _
    ByVal y As Integer)
flags
同時に押されているキー、またはマウス ボタンの仮想キー コードが、以下の定数の組み合わせで指定されます。
定数 | 説明
MK_CONTROL | Ctrl キー
MK_LBUTTON | マウスの左ボタン
MK_MBUTTON | マウスの中央ボタン
MK_RBUTTON | マウスの右ボタン
MK_SHIFT | Shift キー

x
マウス ポインタの X 座標がクライアント座標で指定されます。

y
マウス ポインタの Y 座標がクライアント座標で指定されます。

LButtonDblClickイベント、LButtonDownイベント


 イベント：MButtonDblClick

マウスの中央ボタンがダブルクリックされたときに呼び出されます。

仕様
Sub object_MButtonDblClick _
   (ByVal flags As Long, _
    ByVal x As Integer, _
    ByVal y As Integer)
flags
同時に押されているキー、またはマウス ボタンの仮想キー コードが、以下の定数の組み合わせで指定されます。
定数 | 説明
MK_CONTROL | Ctrl キー
MK_LBUTTON | マウスの左ボタン
MK_MBUTTON | マウスの中央ボタン
MK_RBUTTON | マウスの右ボタン
MK_SHIFT | Shift キー

x
マウス ポインタの X 座標がクライアント座標で指定されます。

y
マウス ポインタの Y 座標がクライアント座標で指定されます。

MButtonDownイベント、MButtonUpイベント


 イベント：MButtonDown

マウスの中央ボタンが押されたときに呼び出されます。

仕様
Sub object_MButtonDown _
   (ByVal flags As Long, _
    ByVal x As Integer, _
    ByVal y As Integer)
flags
同時に押されているキー、またはマウス ボタンの仮想キー コードが、以下の定数の組み合わせで指定されます。
定数 | 説明
MK_CONTROL | Ctrl キー
MK_LBUTTON | マウスの左ボタン
MK_MBUTTON | マウスの中央ボタン
MK_RBUTTON | マウスの右ボタン
MK_SHIFT | Shift キー

x
マウス ポインタの X 座標がクライアント座標で指定されます。

y
マウス ポインタの Y 座標がクライアント座標で指定されます。

MButtonDblClickイベント、MButtonUpイベント


 イベント：MButtonUp

マウスの中央ボタンが離されたときに呼び出されます。

仕様
Sub object_MButtonUp _
   (ByVal flags As Long, _
    ByVal x As Integer, _
    ByVal y As Integer)
flags
同時に押されているキー、またはマウス ボタンの仮想キー コードが、以下の定数の組み合わせで指定されます。
定数 | 説明
MK_CONTROL | Ctrl キー
MK_LBUTTON | マウスの左ボタン
MK_MBUTTON | マウスの中央ボタン
MK_RBUTTON | マウスの右ボタン
MK_SHIFT | Shift キー

x
マウス ポインタの X 座標がクライアント座標で指定されます。

y
マウス ポインタの Y 座標がクライアント座標で指定されます。

MButtonDblClickイベント、MButtonDownイベント


 イベント：MouseMove

マウス ポインタが移動したときに呼び出されます。

仕様
Sub object_MouseMove _
   (ByVal flags As Long, _
    ByVal x As Integer, _
    ByVal y As Integer)
flags
同時に押されているキー、またはマウス ボタンの仮想キー コードが、以下の定数の組み合わせで指定されます。
定数 | 説明
MK_CONTROL | Ctrl キー
MK_LBUTTON | マウスの左ボタン
MK_MBUTTON | マウスの中央ボタン
MK_RBUTTON | マウスの右ボタン
MK_SHIFT | Shift キー

x
マウス ポインタの X 座標がクライアント座標で指定されます。

y
マウス ポインタの Y 座標がクライアント座標で指定されます。


 イベント：Move

ウィンドウが移動したときに呼び出されます。

仕様
Sub object_Move _
    ByVal x As Integer, _
    ByVal y As Integer)
x
クライアント領域の左上隅の X 座標がスクリーン座標（子ウィンドウのときはクライアント座標）で指定されます。

y
クライアント領域の左上隅の Y 座標がスクリーン座標（子ウィンドウのときはクライアント座標）で指定されます。


 イベント：Paint

再描画が必要なときに呼び出されます。

仕様
Sub object_Paint _
   (ByVal hDC As Long)
hDC
再描画用のデバイス コンテキストのハンドルが指定されます。


 イベント：QueryClose

ウィンドウの閉じるボタン「×」が押されたときに呼び出されます。

仕様
Sub object_QueryClose _
   (ByRef cancel As Integer)
cancel
この変数に TRUE を格納すると、ウィンドウの破棄は中断されます。

解説

cancel パラメータに TRUE を格納しなかったときは、ウィンドウは自動的に破棄されます。


 イベント：RButtonDblClick

マウスの右ボタンがダブルクリックされたときに呼び出されます。

仕様
Sub object_RButtonDblClick _
   (ByVal flags As Long, _
    ByVal x As Integer, _
    ByVal y As Integer)
flags
同時に押されているキー、またはマウス ボタンの仮想キー コードが、以下の定数の組み合わせで指定されます。
定数 | 説明
MK_CONTROL | Ctrl キー
MK_LBUTTON | マウスの左ボタン
MK_MBUTTON | マウスの中央ボタン
MK_RBUTTON | マウスの右ボタン
MK_SHIFT | Shift キー

x
マウス ポインタの X 座標がクライアント座標で指定されます。

y
マウス ポインタの Y 座標がクライアント座標で指定されます。

RButtonDownイベント、RButtonUpイベント


 イベント：RButtonDown

マウスの右ボタンが押されたときに呼び出されます。

仕様
Sub object_RButtonDown _
   (ByVal flags As Long, _
    ByVal x As Integer, _
    ByVal y As Integer)
flags
同時に押されているキー、またはマウス ボタンの仮想キー コードが、以下の定数の組み合わせで指定されます。
定数 | 説明
MK_CONTROL | Ctrl キー
MK_LBUTTON | マウスの左ボタン
MK_MBUTTON | マウスの中央ボタン
MK_RBUTTON | マウスの右ボタン
MK_SHIFT | Shift キー

x
マウス ポインタの X 座標がクライアント座標で指定されます。

y
マウス ポインタの Y 座標がクライアント座標で指定されます。

RButtonDblClickイベント、RButtonUpイベント


 イベント：RButtonUp

マウスの右ボタンが離されたときに呼び出されます。

仕様
Sub object_RButtonUp _
   (ByVal flags As Long, _
    ByVal x As Integer, _
    ByVal y As Integer)
flags
同時に押されているキー、またはマウス ボタンの仮想キー コードが、以下の定数の組み合わせで指定されます。
定数 | 説明
MK_CONTROL | Ctrl キー
MK_LBUTTON | マウスの左ボタン
MK_MBUTTON | マウスの中央ボタン
MK_RBUTTON | マウスの右ボタン
MK_SHIFT | Shift キー

x
マウス ポインタの X 座標がクライアント座標で指定されます。

y
マウス ポインタの Y 座標がクライアント座標で指定されます。

RButtonDblClickイベント、RButtonDownイベント


 イベント：Resize

ウィンドウのサイズが変更されたときに呼び出されます。

仕様
Sub object_Resize _
   (ByVal SizeType As Long, _
    ByVal cx As Integer, _
    ByVal cy As Integer)
SizeType
サイズ変更のタイプが、以下の定数から指定されます。
定数 | 説明
SIZE_MAXIMIZED | 最大化されます。
SIZE_MINIMIZED | 最小化されます。
SIZE_RESTORED | サイズは変更されましたが、最大化、または最小化されません。

cx
クライアント領域の幅が指定されます。

cy
クライアント領域の高さが指定されます。


 イベント：Timer

SetTimer 関数で設定したタイマーの間隔ごとに、呼び出されます。

仕様
Sub object_Timer _
   (ByVal TimerID As Long)
TimerID
タイマーの識別 ID が指定されます。

SetTimer関数、KillTimer関数


 イベント：VScroll

垂直スクロールバーがクリックされたときに呼び出されます。

仕様
Sub object_VScroll _
   (ByVal nScrollCode As Long, _
    ByVal nPos As Integer, _
    ByVal hwndScrollBar As Long)
nScrollCode
スクロール要求が以下の定数から指定されます。
定数 | 説明
SB_BOTTOM | 一番下へスクロール
SB_ENDSCROLL | スクロール終了
SB_LINEDOWN | 下へスクロール
SB_LINEUP | 上へスクロール
SB_PAGEDOWN | 1 ページ下へスクロール
SB_PAGEUP | 1 ページ上へスクロール
SB_THUMBPOSITION | 絶対位置へスクロール（現在位置は引数 nPos で指定されます）
SB_THUMBTRACK | スクロール ボックスを指定位置へドラッグします（現在位置は引数 nPos で指定されます）。
SB_TOP | 一番上へスクロール

nPos
nScrollCode パラメータに SB_THUMBPOSITION または SB_THUMBTRACK が指定されたときに、スクロールバーの現在位置が指定されます。

hwndScrollBar
スクロールバー コントロールによるイベントのときは、スクロールバーのハンドルが指定されます。
ウィンドウの水平スクロールバーによるイベントのときは、NULL が指定されます。

解説

指定されたスクロール要求通りにスクロールバーを移動させるときは、SetScrollInfo関数を使用して下さい。

SetScrollInfo関数


 プロシージャ：CreateDialog

RADツールで作成されたモードレス ダイアログ ボックスを表示します。

仕様
Function CreateDialog _
   (hOwnerWnd As DWord, _
    TemplateName As String) As DWord
hOwnerWnd
表示するダイアログボックスの親ウィンドウのハンドルを指定します。

TemplateName
表示するダイアログボックスのウィンドウ識別名を指定します。ハンドル名ではないので注意して下さい。

戻り値

作成されたダイアログボックスのハンドルが返ります。

解説

この関数で表示できるダイアログボックスは、モードレスタイプのみです。モーダルタイプのダイアログボックスを表示するときは、DialogBox関数を使用して下さい。
関数が呼び出されると、ダイアログボックスとなるウィンドウがWindow命令語で作成されます。
ダイアログボックスを破棄するときは、DelWnd命令語を使用して下さい。

DelWnd命令語、DialogBox関数


 プロシージャ：DialogBox

RADツールで作成されたモーダル ダイアログ ボックスを表示します。

仕様
Function DialogBox _
   (hOwnerWnd As DWord, _
    TemplateName As String) As Long
hOwnerWnd
表示するダイアログボックスの親ウィンドウのハンドルを指定します。

TemplateName
表示するダイアログボックスのウィンドウ識別名を指定します。ハンドル名ではないので注意して下さい。

戻り値

EndDialog関数の 2 番目のパラメータに設定された値が返ります。

解説

この関数で表示できるダイアログボックスは、モーダルタイプのみです。モードレスタイプのダイアログボックスを表示するときは、CreateDialog関数を使用して下さい。
関数が呼び出されると、ダイアログボックスとなるウィンドウをWindow命令語で作成し、ShowWindow関数で表示します。次に親ウィンドウを無効にし、メッセージ ループを開始します。

ダイアログボックス プロシージャ内でEndDialogプロシージャが呼び出されるとダイアログボックスは破棄され、メッセージ ループが終了して親ウィンドウが有効になります。

EndDialog関数、CreateDialog関数


 プロシージャ：EndDialog

モーダルダイアログボックスを破棄し、制御を戻します。

仕様
Sub EndDialog _
   (hWnd As DWord, _
    lResult As Long)
hWnd
終了するダイアログボックスのハンドルを指定します。

lResult
DialogBox関数の戻り値を指定します。

解説

このプロシージャはDialogBox関数で作成されたモーダル ダイアログボックスにのみ有効です。ダイアログボックスのイベント プロシージャ内でEndDialogプロシージャが呼び出されるとダイアログボックスは破棄され、親ウィンドウが有効になります。

DialogBox関数


 DirectXプログラミング

ActiveBasicはDirectXを扱うアプリケーション（以下DirectXアプリ）を作成することができます。DirectXとは、Microsoftが提供する拡張APIセットの1つであり、マルチメディア関連の機能が強化されています。DirectXを利用すれば、ハードウェアを直接的に制御する高速アプリケーション（家庭用ゲーム機と同レベルのソフトウェア）を開発することができます。

現在のActiveBasicにはDirectX9.0に対応するインクルードファイルが搭載されています。

DirectXプログラミングの方法

DirectXアプリを開発するとき、プログラマーは、下の2つの方法を選択することができます。

1. ABDX（ActiveBasic with DirectX library）を利用した開発

ProjectEditorの機能を利用すれば、DirectXアプリ開発に最低限必要なコードを生成することができます。初期化及び終了処理などはすべて自動的に生成されるため、プログラマーは3Dオブジェクトに対するコーディングのみを集中して行うことができます。また、COM操作を意識しないコーディングを行えるのも1つの特徴です。特に理由がない限り、こちらの手法を選択することをお勧めします。

このヘルプファイルでは、「ABDXを利用した開発」にターゲットを絞り、解説を行っています。

2. COM呼び出しを任意的に行うフルオリジナルコードでの開発

DirectXを扱うためのインクルードファイルを取り込み、自前でコーディングを行う手法です。COMインターフェイスの生成/破棄/呼び出しのレベルから、すべてのコーディングはプログラマーに任されます。DirectXアプリ開発経験者、COMベースでDirectXを扱いたい方、DirectX9.0以外のバージョンのDirectXを扱いたい方はこの手法で開発を行うと良いでしょう。

COMベースのDirectXについてのヘルプは、MSDN（http://www.microsoft.com/japan/msdn/library/）でお調べください。

DirectXプログラミングをするための準備

DirectXプログラミングを始める前に、下の項目をチェックしておきましょう。

・DirectX9.0ランタイムライブラリをインストールする

ActiveBasicのパッケージで容易されているDirectXのインクルードファイルは、DirectX9.0に対応しています。そのため、ActiveBasicを用いてDirectXプログラミングを行うときは、Microsoft（http://www.microsoft.com/japan/）からDirectX9.0エンドユーザー向けランタイムライブラリをダウンロード＆インストールする必要があります。

・マシンスペックの確認

DirectXアプリは通常のWindowsアプリと異なり、高速な処理を必要とする場合があります。高度なグラフィックス描画を行うアプリケーションを開発するときは、ある程度のスペックを満たしたマシン（1GHz以上を推奨）を採用することをお勧めします。

DirectXプログラミングを始める

DirectXアプリのソースコードはRADツールを用いたプログラミングと同様、プロジェクトベースで管理します。「プロジェクトの新規作成 → 編集 → コンパイル → 実行」という一連の流れでプログラミングを行います。

1. プロジェクトを作成する

ProjectEditor.exeを起動します。メニューの「ファイル」→「新規作成」をクリックし、表示された新規作成ダイアログで「プロジェクト（*.pj）」を選択し、OKボタンをクリックします。プロジェクト名に任意の名前を指定します。アプリケーションタイプで「DirectX対応アプリケーション」を選択し、「次へ」ボタンをクリックします。新規作成ウィザードのステップ2-3では何も変更せずに「次へ」ボタンをクリックし、最後に「完了」ボタンをクリックします。

↑DirectXに対応するプロジェクトを新規作成するときの画面

2. 生成されたソースコードの確認

プロジェクトが生成されると同時に、下のファイルが生成されます。主にコーディングを行うソースファイルは "プロジェクト名.sbp"（ここではhello.sbp）です。他のファイルは特別な理由がない限り、変更が必要になることはありません。

dx_graphics.sbp | DirectGraphicsを扱うためのライブラリ（関数郡）が定義されています。
hello.sbp | 実際にコーディングを行うソースファイルです。
MainWnd.sbp | メインウィンドウのイベントコーディング用のソースファイルです。ここで対象とするウィンドウはDirectX生成時に必要なダミーであるため、このソースファイルをコーディングすることはありません。

3. コンパイル＆実行してみよう

メニューの「ベーシック」→「デバッグ実行」をクリックし、コンパイル＆実行をしてみます。D3Dデバイスの生成に成功すると、フルスクリーン表示に切り替わり、真っ黒な画面が表示されるはずです。このプログラムはAlt+F4キーを押すと終了できます。

D3Dデバイスが正常に生成できないと、「初期化に失敗しました」というエラーメッセージが表示されます。このような場合はDirectX9.0が正常にインストールできているかどうか、グラフィックボードが正常に動作しているかどうかを確認してみましょう。

5分でできる、"Hello World!" on DirectX

上記の「DirectXプログラミングを始める」に示す手順に従って、helloプロジェクトを作成したところから説明します。

1. "hello.sbp" を開く

プロジェクトビューのFileタブから "hello.sbp" をダブルクリックしてソースファイルを開きます。すでにソースコードが生成されていますが、その中のRenderProcという関数までスクロールします。

2. テキストを出力するためのコードを打ち込む

RenderProc関数の中に下のようなコードを打ち込みます。dx_DrawTextはD3D画面に文字列を表示するための関数です。

Sub RenderProc()
    dx_DrawText(100,100,"Hello World!",D3DCOLOR_XRGB(255,255,255))
End Sub
3. コンパイル＆実行

正常に実行されると、画面左上に "Hello World!" という文字列が白色で表示されます。


 dx_BeginScene 関数

描画を開始するための関数です。レンダリングを実行する前に必ず呼び出さなければなりません。

書式
Sub dx_BeginScene()

環境情報

ソースファイル dx_graphics.sbp 内で定義済み

dx_EndScene関数


 dx_Clear 関数

レンダリングターゲット及び深度バッファを初期化します。

書式
Sub dx_Clear()

環境情報

ソースファイル dx_graphics.sbp 内で定義済み


 dx_DrawText 関数

テキストを整形して表示します。

書式
Sub dx_DrawText(
    x As Long,
    y As Long,
    psz As BytePtr,
    d3dColor As D3DCOLOR
)
x, y
テキストを描画する位置をピクセル単位の座標で指定します。
psz
文字列を示すポインタを指定します。文字列の終端文字はNULLでなければなりません。
d3dColor
テキストの色を指定します。RGBで色指定を行うときはD3DCOLOR_XRGBマクロ関数を使用します。

解説

この関数は、RednerProc関数（またはそこから呼び出される関数）の中から呼び出す必要があります。

環境情報

ソースファイル dx_graphics.sbp 内で定義済み


 dx_EndScene 関数

描画を終了するための関数です。レンダリングが完了したら必ず呼び出さなければなりません。

書式
Sub dx_EndScene()

環境情報

ソースファイル dx_graphics.sbp 内で定義済み

dx_BeginScene関数


 dx_GetDevice 関数

アプリケーションが使用しているデバイスインターフェイス（IDirect3DDevice9）のポインタを取得します。

書式
Function dx_GetDevice() As LPDIRECT3DDEVICE9

戻り値

IDirect3DDevice9インターフェイスを示すポインタが返ります。

環境情報

ソースファイル dx_graphics.sbp 内で定義済み


 dx_Init 関数

DirectXを使用するための準備をする関数です。内部でID3DDevice9インターフェイスを生成します。

書式
Function dx_Init(
    hWnd As DWord,
    ScreenX As Long,
    ScreenY As Long,
    bWindowMode As Long
) As Long
hWnd
ウィンドウモードのときは、描画の対象となるウィンドウを示すハンドルを指定します。フルスクリーンモードでは、カバーウィンドウを示すハンドルを指定します。
ScreenX
ScreenY
グラフィックスを描画するためのスクリーンの解像度を指定します。
bWindowMode
ウィンドウモードならTRUEを、フルスクリーンモードならFALSEを指定します。

環境情報

ソースファイル dx_graphics.sbp 内で定義済み

dx_Quit関数


 dx_Present 関数

レンダリングされた内容で画面を更新します。

書式
Sub dx_Present()

解説

この関数はレンダリングが完了した後に呼び出さなければなりません。「dx_BeginScene関数 → dx_EndScene関数 → dx_Present関数」の順序で呼び出す必要があります。

環境情報

ソースファイル dx_graphics.sbp 内で定義済み


 dx_Quit 関数

使用したインターフェイスを解放し、DirectXの使用を終了させるための関数です。

書式
Sub dx_Quit()

環境情報

ソースファイル dx_graphics.sbp 内で定義済み

dx_Init関数


 dx_SetCamera 関数

カメラの位置、方向を設定します。

書式
Sub dx_SetCamera(
    pVectorEye As *D3DVECTOR,
    pVectorAt As *D3DVECTOR,
    pVectorUp As *D3DVECTOR
)
pVectorEye
カメラの位置が格納されたD3DVECTOR構造体へのポインタを指定します。
pVectorAt
注視対象の位置が格納されたD3DVECTOR構造体へのポインタを指定します。
pVectorUp
カレントワールドの上方が格納されたD3DVECTOR構造体へのポインタを指定します。一般的な値は[0, 1, 0]です。

環境情報

ソースファイル dx_graphics.sbp 内で定義済み

dx_SetProjection関数


 dx_SetCullMode 関数

サポートするカリングモードを設定します。

書式
Sub dx_SetCullMode(
    CullMode As D3DCULL
)
CullMode
カリングモードを、以下の列挙子のいずれかから指定します。
列挙子 | 説明
D3DCULL_NONE | 背面のカリングはしません。
D3DCULL_CW | 背面を右回りでカリングします。
D3DCULL_CCW | 背面を左回りでカリングします。

環境情報

ソースファイル dx_graphics.sbp 内で定義済み


 dx_SetDefaultLight 関数

ライティングを有効にして、デフォルトのライトを生成します。

書式
Sub dx_SetDefaultLight()

環境情報

ソースファイル dx_graphics.sbp 内で定義済み


 dx_SetLightOff 関数

ライティングを無効にします。

書式
Sub dx_SetLightOff()

環境情報

ソースファイル dx_graphics.sbp 内で定義済み


 dx_SetProjection 関数

視野情報を設定します。

書式
Sub dx_SetProjection(
    angle As Single,
    aspect As Single,
    nearclip As Single,
    backclip As Single
)
angle
視野角を指定します。一般的な値は ( 60 * D3DX_PI / 180 ) です。
aspect
アスペクト比（ビュー空間の高さを幅で除算した値）を指定します。一般的な値は1です。
nearclip
近いビュー平面の Z 値を指定します。
backclip
遠いビュー平面の Z 値を指定します。

環境情報

ソースファイル dx_graphics.sbp 内で定義済み

dx_SetCamera関数


 CImage2D クラス

2Dイメージ（長方形）オブジェクトを管理します。CImage2Dクラスを利用すると、四角形の描画、テクスチャの貼り付け、アルファブレンディングによる半透明処理などを行うことができます。

メンバ関数

CImage2D（コンストラクタ）
2Dイメージを生成します。

~CImage2D（デストラクタ）
オブジェクトで使用したメモリを解放します。

SetColor
2Dイメージ四角形オブジェクトの色及びアルファ値（半透明の度合い）を設定します。

SetTexture
2Dイメージ四角形オブジェクトにテクスチャを貼り付けます。

Draw
2Dイメージ四角形オブジェクトをD3Dデバイスに描画します。

環境情報

ソースファイル dx_graphics.sbp 内で定義済み


 CImage2D::CImage2D（コンストラクタ）

2Dイメージを生成します。

書式
Sub CImage2D::CImage2D()

環境情報

ソースファイル dx_graphics.sbp 内で定義済み

CImage2Dクラス


 CImage2D::~CImage2D（デストラクタ）

CImage2Dオブジェクトを破棄します。

書式
Sub CImage2D::~CImage2D()

環境情報

ソースファイル dx_graphics.sbp 内で定義済み

CImage2Dクラス


 CImage2D::Draw

2DイメージをD3Dデバイスに描画します。

書式
Sub CImage2D::Draw(
    x As Single,
    y As Single,
    width As Single,
    height As Single
)
x
2Dイメージの左上端のX座標をピクセル単位で指定します。
y
2Dイメージの左上端のY座標をピクセル単位で指定します。
width
2Dイメージの幅をピクセル単位で指定します。
height
2Dイメージの高さをピクセル単位で指定します。

解説

この関数は、RednerProc関数（またはそこから呼び出される関数）の中から呼び出す必要があります。

環境情報

ソースファイル dx_graphics.sbp 内で定義済み

CImage2Dクラス


 CImage2D::SetColor

2Dイメージ四角形オブジェクトの色及びアルファ値（半透明の度合い）を設定します。

書式
Sub CImage2D::SetColor(
    dwColor As D3DCOLOR
)
dwColor
色及びアルファ値をD3DCOLOR_RGBA関数を使って指定します。アルファ値の範囲は0～255で、値が小さいほど透明であることを示します。半透明処理を行わないときは、D3DCOLOR_XRGB関数を使って、色のみを指定することもできます。

環境情報

ソースファイル dx_graphics.sbp 内で定義済み

CImage2Dクラス


 CImage2D::SetTexture

2Dイメージ四角形オブジェクトにテクスチャを貼り付けます。

書式
Function CImage2D::SetTexture(
    pFileName As BytePtr,
    TransparentColor As D3DCOLOR
) As Long
pFileName
テクスチャとして利用するイメージファイル（.bmp、.dds、.dib、.jpg、.png、.tga）のパスを指定します。
TransparentColor
透明色をD3DCOLOR_XRGB関数を使って指定します。透明色を指定しないときは0を指定します。また、RGB値がすべて0の黒色は透明色として使えないので注意が必要です。

戻り値

関数が成功すると TRUE が、失敗すると FALSE が返ります。

環境情報

ソースファイル dx_graphics.sbp 内で定義済み

CImage2Dクラス


 CMeshModel クラス

物体のメッシュ構造を管理します。

メンバ関数

CMeshModel（コンストラクタ）
Xファイルを読み込み、メッシュ構造を生成します。

~CMeshModel（デストラクタ）
メッシュ構造を破棄し、オブジェクトで使用したメモリを解放します。

Draw
保持しているメッシュ構造をD3Dデバイスに描画します。

環境情報

ソースファイル dx_graphics.sbp 内で定義済み


 CMeshModel::CMeshModel（コンストラクタ）

Xファイルを読み込み、CMeshModelオブジェクトを生成します。

書式
Sub CMeshModel::CMeshModel(
    pszFileName_xfile As BytePtr
)
pszFileName_xfile
Xファイルのパスを指定します。

環境情報

ソースファイル dx_graphics.sbp 内で定義済み

CMeshModelクラス


 CMeshModel::~CMeshModel（デストラクタ）

CMeshModelオブジェクトを破棄します。

書式
Sub CMeshModel::~CMeshModel()

環境情報

ソースファイル dx_graphics.sbp 内で定義済み

CMeshModelクラス


 CMeshModel::Draw

メッシュ構造をD3Dデバイスに表示します。

書式
Sub MeshModel::Draw(
    VectorPosition As *D3DVECTOR,
    VectorDirection As *D3DVECTOR
)
VectorPosition
物体を表示する位置を3D座標（D3DVECTOR構造体）で指定します。
VectorDirection
物体の方向を3Dベクトル（D3DVECTOR構造体）で指定します。

解説

この関数は、RednerProc関数（またはそこから呼び出される関数）の中から呼び出す必要があります。

環境情報

ソースファイル dx_graphics.sbp 内で定義済み

CMeshModelクラス


 CRectPolygon クラス

3Dイメージ（平面四角形）オブジェクトを管理します。このクラスを利用すると、3D空間への四角形の描画、テクスチャの貼り付け、アルファブレンディングによる半透明処理などを行うことができます。

メンバ関数

CRectPolygon（コンストラクタ）
3Dイメージを生成します。

~CRectPolygon（デストラクタ）
オブジェクトで使用したメモリを解放します。

SetVertices
四角形を構成する4つの頂点座標を設定します。

SetColor
3Dイメージ四角形オブジェクトの色及びアルファ値（半透明の度合い）を設定します。

SetTexture
3Dイメージ四角形オブジェクトにテクスチャを貼り付けます。

Draw
3Dイメージ四角形オブジェクトをD3Dデバイスに描画します。

環境情報

ソースファイル dx_graphics.sbp 内で定義済み


 CRectPolygon::CRectPolygon（コンストラクタ）

3Dイメージを生成します。

書式
Sub CRectPolygon::CRectPolygon()

環境情報

ソースファイル dx_graphics.sbp 内で定義済み

CRectPolygonクラス


 CRectPolygon::~CRectPolygon（デストラクタ）

CRectPolygonオブジェクトを破棄します。

書式
Sub CRectPolygon::~CRectPolygon()

環境情報

ソースファイル dx_graphics.sbp 内で定義済み

CRectPolygonクラス


 CRectPolygon::Draw

3Dイメージ四角形オブジェクトをD3Dデバイスに描画します。

書式
Sub CRectPolygon::Draw(
    VectorPosition As *D3DVECTOR,
    VectorDirection As *D3DVECTOR
)
VectorPosition
物体を表示する位置を3D座標（D3DVECTOR構造体）で指定します。
VectorDirection
物体の方向を3Dベクトル（D3DVECTOR構造体）で指定します。

解説

この関数は、RednerProc関数（またはそこから呼び出される関数）の中から呼び出す必要があります。

環境情報

ソースファイル dx_graphics.sbp 内で定義済み

CRectPolygonクラス


 CRectPolygon::SetColor

3Dイメージ四角形オブジェクトの色及びアルファ値（半透明の度合い）を設定します。

書式
Sub CRectPolygon::SetColor(
    dwColor As D3DCOLOR
)
dwColor
色及びアルファ値をD3DCOLOR_RGBA関数を使って指定します。アルファ値の範囲は0～255で、値が小さいほど透明であることを示します。半透明処理を行わないときは、D3DCOLOR_XRGB関数を使って、色のみを指定することもできます。

環境情報

ソースファイル dx_graphics.sbp 内で定義済み

CRectPolygonクラス


 CRectPolygon::SetTexture

3Dイメージ四角形オブジェクトにテクスチャを貼り付けます。

書式
Function CRectPolygon::SetTexture(
    pFileName As BytePtr,
    TransparentColor As D3DCOLOR
) As Long
pFileName
テクスチャとして利用するイメージファイル（.bmp、.dds、.dib、.jpg、.png、.tga）のパスを指定します。
TransparentColor
透明色をD3DCOLOR_XRGB関数を使って指定します。透明色を指定しないときは0を指定します。また、RGB値がすべて0の黒色は透明色として使えないので注意が必要です。

戻り値

関数が成功すると TRUE が、失敗すると FALSE が返ります。

環境情報

ソースファイル dx_graphics.sbp 内で定義済み

CRectPolygonクラス


 CRectPolygon::SetVertices

3Dイメージの4つの頂点座標を設定します。

書式
Sub CRectPolygon::SetVertices(
    pVertices As *D3DVECTOR
)
pVertices
四角形を構成する4つの頂点が格納されたD3DVECTOR構造体配列へのポインタを指定します。配列は4つのD3DVECTOR構造体を持たなければなりません。

解説

頂点は左上、右上、左下、右下の順序で指定しなければなりません（図を参照）。

図. 頂点の指定順序

上記の順序で頂点を指定すると、手前が表、反対側が裏という扱いになります。裏面が画面に表示されようとしたとき、描画を行うかどうかはdx_SetCullMode関数を使って指定することができます。

環境情報

ソースファイル dx_graphics.sbp 内で定義済み

CRectPolygonクラス


 CInputKeyboard クラス

DirectInputのキーボードデバイスを管理します。このクラスはキーボードの状況を直接データで取得するために使います。また、このクラスは1つのアプリケーションにつき1つだけ生成できます。

メンバ関数

GetState
キーボードの状態を取得します。

環境情報

ソースファイル dx_input.sbp 内で定義済み


 CInputKeyboard::GetState

キーボードの状況を取得します。

書式
Function CInputKeyboard::GetState(
    pKeyState As *Char
) As Long
pKeyState
256個のByteデータを持つ配列の先頭ポインタを指定します。

戻り値

関数が成功すると TRUE が、失敗すると FALSE が返ります。

解説

この関数は、InputActionProcコールバック関数の中から呼び出すと有効的です。現在のキーボードのスナップショットをpKeyState配列にコピーします。各キーは256個の配列中の1要素（1バイト）で表現され、上位ビットが1の場合、キーが押されていることを示します。下記に示すキーボードデバイス定数が各キーの状況を判別する際の配列インデックスになります。

デバイス定数（配列インデックス） | 説明
DIK_0 |
DIK_1 | メイン キーボード上
DIK_2 | メイン キーボード上
DIK_3 | メイン キーボード上
DIK_4 | メイン キーボード上
DIK_5 | メイン キーボード上
DIK_6 | メイン キーボード上
DIK_7 | メイン キーボード上
DIK_8 | メイン キーボード上
DIK_9 | メイン キーボード上
DIK_A |
DIK_ABNT_C1 | ブラジル語キーボードのテンキー上
DIK_ABNT_C2 | ブラジル語キーボードのテンキー上
DIK_ADD | テンキー上のプラス記号 (+)
DIK_APOSTROPHE |
DIK_APPS | アプリケーション キー
DIK_AT | 日本語キーボード上
DIK_AX | 日本語キーボード上
DIK_B |
DIK_BACK | BackSpace キー
DIK_BACKSLASH |
DIK_C |
DIK_CALCULATOR |
DIK_CAPITAL | CapsLock
DIK_COLON | 日本語キーボード上
DIK_COMMA |
DIK_CONVERT | 日本語キーボード上
DIK_D |
DIK_DECIMAL | テンキー上のピリオド (小数点)
DIK_DELETE |
DIK_DIVIDE | テンキー上のスラッシュ (/)
DIK_DOWN | 下矢印キー
DIK_E |
DIK_END |
DIK_EQUALS | メイン キーボード上
DIK_ESCAPE |
DIK_F |
DIK_F1 |
DIK_F2 |
DIK_F3 |
DIK_F4 |
DIK_F5 |
DIK_F6 |
DIK_F7 |
DIK_F8 |
DIK_F9 |
DIK_F10 |
DIK_F11 |
DIK_F12 |
DIK_F13 | NEC PC-98 日本語キーボード上
DIK_F14 | NEC PC-98 日本語キーボード上
DIK_F15 | NEC PC-98 日本語キーボード上
DIK_G |
DIK_GRAVE | アクサン グラーブ (`) キー
DIK_H |
DIK_HOME |
DIK_I |
DIK_INSERT |
DIK_J |
DIK_K |
DIK_KANA | 日本語キーボード上
DIK_KANJI | 日本語キーボード上
DIK_L |
DIK_LBRACKET | 左角かっこ ([)
DIK_LCONTROL | 左 Ctrl キー
DIK_LEFT | 左矢印キー
DIK_LMENU | 左 Alt キー
DIK_LSHIFT | 左 Shift キー
DIK_LWIN | 左 Windows キー
DIK_M |
DIK_MAIL |
DIK_MEDIASELECT | システムでサポートされているメディア プレーヤの選択を表示する、メディア選択キー
DIK_MEDIASTOP |
DIK_MINUS | メイン キーボード上
DIK_MULTIPLY | テンキー上のアスタリスク (*) キー
DIK_MUTE |
DIK_MYCOMPUTER |
DIK_N |
DIK_NEXT | PageDown キー
DIK_NEXTTRACK | 次のトラック
DIK_NOCONVERT | 日本語キーボード上
DIK_NUMLOCK |
DIK_NUMPAD0 | テンキー上
DIK_NUMPAD1 | テンキー上
DIK_NUMPAD2 | テンキー上
DIK_NUMPAD3 | テンキー上
DIK_NUMPAD4 | テンキー上
DIK_NUMPAD5 | テンキー上
DIK_NUMPAD6 | テンキー上
DIK_NUMPAD7 | テンキー上
DIK_NUMPAD8 | テンキー上
DIK_NUMPAD9 | テンキー上
DIK_NUMPADCOMMA | NEC PC-98 日本語キーボードのテンキー上
DIK_NUMPADENTER |
DIK_NUMPADEQUALS | NEC PC-98 日本語キーボードのテンキー上
DIK_O |
DIK_OEM_102 | 英語キーボードおよびドイツ語キーボード上
DIK_P |
DIK_PAUSE |
DIK_PERIOD | メイン キーボード上
DIK_PLAYPAUSE |
DIK_POWER |
DIK_PREVTRACK | 前のトラック、日本語キーボードのサーカムフレックス
DIK_PRIOR | PageUp キー
DIK_Q |
DIK_R |
DIK_RBRACKET | 右角かっこ (])
DIK_RCONTROL | 右 Ctrl キー
DIK_RETURN | メイン キーボード上の Enter キー
DIK_RIGHT | 右矢印キー
DIK_RMENU | 右 Alt キー
DIK_RSHIFT | 右 Shift キー
DIK_RWIN | 右 Windows キー
DIK_S |
DIK_SCROLL | ScrollLock
DIK_SEMICOLON |
DIK_SLASH | メイン キーボード上のスラッシュ (/)
DIK_SLEEP |
DIK_SPACE | Space キー
DIK_STOP | NEC PC-98 日本語キーボード上
DIK_SUBTRACT | テンキー上のマイナス記号 (-)
DIK_SYSRQ |
DIK_T |
DIK_TAB |
DIK_U |
DIK_UNDERLINE | NEC PC-98 日本語キーボード上
DIK_UNLABELED | 日本語キーボード上
DIK_UP | 上矢印キー
DIK_V |
DIK_VOLUMEDOWN |
DIK_VOLUMEUP |
DIK_W |
DIK_WAKE |
DIK_WEBBACK |
DIK_WEBFAVORITES | Favorites（お気に入り）キー
DIK_WEBFORWARD |
DIK_WEBHOME |
DIK_WEBREFRESH |
DIK_WEBSEARCH |
DIK_WEBSTOP |
DIK_X |
DIK_Y |
DIK_YEN | 日本語キーボード上
DIK_Z |

環境情報

ソースファイル dx_input.sbp 内で定義済み

CInputKeyboardクラス


 CInputMouse クラス

DirectInputのマウスデバイスを管理します。このクラスはマウスの状況を直接データで取得するために使います。また、このクラスは1つのアプリケーションにつき1つだけ生成できます。

メンバ関数

GetState
マウスの状態を取得します。

環境情報

ソースファイル dx_input.sbp 内で定義済み


 CInputMouse::GetState

マウスの状況を取得します。

書式
Function CInputMouse::GetState(
    pMouseState As *DIMOUSESTATE
) As Long
pMouseState
現在のマウスの状態を格納するためのDIMOUSESTATE構造体へのポインタを指定します。

戻り値

関数が成功すると TRUE が、失敗すると FALSE が返ります。

解説

この関数は、InputActionProcコールバック関数の中から呼び出すと有効的です。

環境情報

ソースファイル dx_input.sbp 内で定義済み

CInputMouseクラス


 CAudio クラス

WAVE/MIDI形式のサウンドオブジェクトを管理します。

メンバ関数

Load
WAVE/MIDI形式のファイルをメモリ上に展開します。

Play
読み込まれたサウンドイメージを再生します。

Stop
再生中のサウンドを停止します。

GetLength
サウンドの長さをミリ秒単位で取得します。

SetPrimary
プライマリモードに設定します。

SetSecondary
セカンダリモードに設定します。

SetEffect
エフェクトを設定します。

SetRepeats
リピート回数を設定します。

IsPlaying
サウンドが再生中であるかどうかを調べます。

環境情報

ソースファイル dx_music.sbp 内で定義済み


 CAudio::GetLength

サウンド長をミリ秒単位で取得します。

書式
Function CAudio::GetLength() As DWord

戻り値

サウンド長がミリ秒単位で返ります。

解説

GetLength関数を呼び出す前に、Load関数でサウンドファイルをメモリ上に展開しておく必要があります。

環境情報

ソースファイル dx_music.sbp 内で定義済み

CAudioクラス


 CAudio::IsPlaying

サウンドが再生中であるかどうかを調べます。

書式
Function CAudio::IsPlaying() As Long

戻り値

サウンドが再生中のときは TRUE が、そうでないときは FALSE が返ります。

解説

IsPlaying関数を呼び出す前に、Load関数でサウンドファイルをメモリ上に展開しておく必要があります。

環境情報

ソースファイル dx_music.sbp 内で定義済み

CAudioクラス


 CAudio::Load

WAVE形式またはMIDI形式のファイルを読み込み、メモリ上に展開します。

書式
Function CAudio::Load(
    pszFileName As BytePtr
) As Long
pszFileName
WAVE形式またはMIDI形式のサウンドファイルのパスを指定します。

戻り値

関数が成功したら TRUE が、失敗したら FALSE が返ります。

環境情報

ソースファイル dx_music.sbp 内で定義済み

CAudioクラス


 CAudio::Play

サウンドイメージを再生します。

書式
Function CAudio::Play() As Long

戻り値

関数が成功したら TRUE が、失敗したら FALSE が返ります。

解説

Play関数を呼び出す前に、Load関数でサウンドファイルをメモリ上に展開しておく必要があります。再生中のサウンドを停止させるときはStop関数を使用します。

環境情報

ソースファイル dx_music.sbp 内で定義済み

CAudioクラス


 CAudio::SetEffect

エフェクトをセットします。

書式
Function CAudio::SetEffect(
    EffectFlag As EFFECT_FLAGS
) As Long
EffectFlag
エフェクトフラグを以下の列挙子のいずれかで指定します。
列挙子 | 説明
NO_EFFECT | エフェクト無し
EFFECT_STANDARD_CHORUS | コーラス
EFFECT_STANDARD_COMPRESSOR | コンプレッサ
EFFECT_STANDARD_DISTORTION | ディストーション
EFFECT_STANDARD_ECHO | エコー
EFFECT_STANDARD_FLANGER | フランジ
EFFECT_STANDARD_GARGLE | ガーグル
EFFECT_STANDARD_I3DL2REVERB | Interactive 3D Level 2 リバーブ
EFFECT_STANDARD_PARAMEQ | パラメトリック イコライザ
EFFECT_WAVES_REVERB | Waves リバーブ

戻り値

関数が成功したら TRUE が、失敗したら FALSE が返ります。

解説

Play関数を呼び出す前に、Load関数でサウンドファイルをメモリ上に展開しておく必要があります。

環境情報

ソースファイル dx_music.sbp 内で定義済み

CAudioクラス


 CAudio::SetPrimary

サウンドオブジェクトをプライマリモードにセットします。

書式
Sub CAudio::SetPrimary()

解説

プライマリモードはパフォーマンス重視のサウンドに対してセットします。プライマリモードにセットされたサウンドは一度に1つだけ再生できます。複数のサウンドを同時に再生する場合は、片方または双方をセカンダリモードに設定する必要があります。例えば、プライマリモードとしてBGMを再生しながら、セカンダリモードで複数の効果音を同時に再生するといった処理が可能です。

生成されたCAudioオブジェクトはデフォルトでプライマリモードにセットされています。

環境情報

ソースファイル dx_music.sbp 内で定義済み

CAudioクラス


 CAudio::SetRepeats

リピート回数を設定します。

書式
Function CAudio::SetRepeats(
    dwRepeats As DWord
) As Long
dwRepeats
リピート回数を指定します。値0はサウンドが一度だけ演奏され、リピートされないことを意味します。リピートを無限に繰り返すときは DMUS_SEG_REPEAT_INFINITE を指定します。

戻り値

関数が成功したら TRUE が、失敗したら FALSE が返ります。

解説

この関数を呼び出す前に、Load関数でサウンドファイルをメモリ上に展開しておく必要があります。

環境情報

ソースファイル dx_music.sbp 内で定義済み

CAudioクラス


 CAudio::SetSecondary

サウンドオブジェクトをセカンダリモードにセットします。

書式
Sub CAudio::SetSecondary()

解説

セカンダリモードにセットされた1つまたは複数のサウンドは同時に再生させることができます。

環境情報

ソースファイル dx_music.sbp 内で定義済み

CAudioクラス


 CAudio::Stop

再生中のサウンドを停止します。

書式
Function CAudio::Stop() As Long

戻り値

関数が成功したら TRUE が、失敗したら FALSE が返ります。

環境情報

ソースファイル dx_music.sbp 内で定義済み

CAudioクラス


 CAudio3D クラス

3D空間内におけるオーディオオブジェクト（音源）を管理します。CAudio3DはCAudioの派生クラスであり、エフェクト処理を除いてCAudioがサポートする機能のすべてを利用することができます。

追加されたメンバ関数

SetMinDistance
最短距離（この距離を超えると減衰が始まる）を設定します。

SetMaxDistance
最長距離（聞こえる音量が0になり、減衰の計算がストップする距離）を設定します。

SetPosition
音源の位置を設定します。

SetVelocity
音源の速度を設定します。

SetConeAngles
コーン角度を設定します。

SetConeOrientation
コーンの方向を設定します。

SetConeOutsideVolume
コーンの外部角度の外側ボリュームを設定します。

CAudioから継承するメンバ関数

※これらのメンバ関数についての解説はCAudioクラスを参照してください。

Load

Play

Stop

GetLength

SetPrimary

SetSecondary

SetEffect（CAudio3Dクラスではサポートされません。CAudio3D::SetEffectを呼び出すと常に0が返ります。）

SetRepeats

IsPlaying

リスナーの存在について

CAudio3Dで生成される3D空間内音源を再生した場合、それをどのような状態で聞き取るかといったリスナーの設定が必要になります。CAudio3Dに併せて、CListenerクラスを利用してリスナーの管理を行います。

環境情報

ソースファイル dx_music.sbp 内で定義済み


 CAudio3D::SetConeAngles

コーンの内部角度と外部角度を設定します。

書式
Function CAudio3D::SetConeAngles(
    dwInsideAngle As DWord,
    dwOutsideAngle As DWord
) As Long
dwInsideAngle
コーンの内部角度を指定します（単位は度）。
dwOutsideAngle
コーンの外部角度を指定します（単位は度）。

戻り値

関数が成功すると TRUE が、失敗すると FALSE が返ります。

解説

この関数を呼び出す前に、Load関数でサウンドファイルをメモリ上に展開しておく必要があります。

ここで設定した値を実際のパフォーマンス上で有効にする場合は、CListener::CommitSettingsを呼び出す必要があります。

環境情報

ソースファイル dx_music.sbp 内で定義済み

CAudio3Dクラス


 CAudio3D::SetConeOrientation

コーンの方向を設定します。

書式
Function CAudio3D::SetConeOrientation(
    x As Single,
    y As Single,
    z As Single
) As Long
x, y, z
向きベクトルを指定します。

戻り値

関数が成功すると TRUE が、失敗すると FALSE が返ります。

解説

この関数を呼び出す前に、Load関数でサウンドファイルをメモリ上に展開しておく必要があります。

ここで設定した値を実際のパフォーマンス上で有効にする場合は、CListener::CommitSettingsを呼び出す必要があります。

環境情報

ソースファイル dx_music.sbp 内で定義済み

CAudio3Dクラス


 CAudio3D::SetConeOutsideVolume

コーンの外側角度の外側ボリュームを設定します。

書式
Function CAudio3D::SetConeOutsideVolume(
    ConeOutsideVolume As Long
) As Long
ConeOutsideVolume
コーン外側ボリュームを指定します（単位は100分の1デシベル）。また、DSBVOLUME_MAX（減衰無し）またはDSBVOLUME_MIN（無音）を指定することもできます。

戻り値

関数が成功すると TRUE が、失敗すると FALSE が返ります。

解説

この関数を呼び出す前に、Load関数でサウンドファイルをメモリ上に展開しておく必要があります。

ここで設定した値を実際のパフォーマンス上で有効にする場合は、CListener::CommitSettingsを呼び出す必要があります。

環境情報

ソースファイル dx_music.sbp 内で定義済み

CAudio3Dクラス


 CAudio3D::SetMaxDistance

最長距離を設定します。音源とリスナーとの距離が最長距離を超えると、音量は0になり、減衰のための計算はストップします。

書式
Function CAudio3D::SetMaxDistance(
    distance As Single
) As Long
distance
最長距離を指定します。

戻り値

関数が成功すると TRUE が、失敗すると FALSE が返ります。

解説

この関数を呼び出す前に、Load関数でサウンドファイルをメモリ上に展開しておく必要があります。

ここで設定した値を実際のパフォーマンス上で有効にする場合は、CListener::CommitSettingsを呼び出す必要があります。

環境情報

ソースファイル dx_music.sbp 内で定義済み

CAudio3Dクラス


 CAudio3D::SetMinDistance

最短距離を設定します。音源とリスナーとの距離が最短距離を超えると、サウンドは減衰していきます。

書式
Function CAudio3D::SetMinDistance(
    distance As Single
) As Long
distance
最短距離を指定します。

戻り値

関数が成功すると TRUE が、失敗すると FALSE が返ります。

解説

この関数を呼び出す前に、Load関数でサウンドファイルをメモリ上に展開しておく必要があります。

ここで設定した値を実際のパフォーマンス上で有効にする場合は、CListener::CommitSettingsを呼び出す必要があります。

環境情報

ソースファイル dx_music.sbp 内で定義済み

CAudio3Dクラス


 CAudio3D::SetPosition

3D空間における音源の位置を指定します。

書式
Function CAudio3D::SetPosition(
    x As Single,
    y As Single,
    z As Single
) As Long
x, y, z
位置ベクトルを指定します。

戻り値

関数が成功すると TRUE が、失敗すると FALSE が返ります。

解説

この関数を呼び出す前に、Load関数でサウンドファイルをメモリ上に展開しておく必要があります。

ここで設定した値を実際のパフォーマンス上で有効にする場合は、CListener::CommitSettingsを呼び出す必要があります。

環境情報

ソースファイル dx_music.sbp 内で定義済み

CAudio3Dクラス


 CAudio3D::SetVelocity

音源の速度を指定します。

書式
Function CAudio3D::SetVelocity(
    x As Single,
    y As Single,
    z As Single
) As Long
x, y, z
速度ベクトルを指定します（単位はメートル/秒）。

戻り値

関数が成功すると TRUE が、失敗すると FALSE が返ります。

解説

この関数を呼び出す前に、Load関数でサウンドファイルをメモリ上に展開しておく必要があります。

ここで設定した値を実際のパフォーマンス上で有効にする場合は、CListener::CommitSettingsを呼び出す必要があります。

環境情報

ソースファイル dx_music.sbp 内で定義済み

CAudio3Dクラス


 CListener クラス

リスナーオブジェクトを管理します。

メンバ関数

SetPosition
リスナーの位置を設定します。

SetVelocity
リスナーの速度を設定します。

SetOrientation
リスナーの頭部の向きを設定します。

CommitSettings
3D空間におけるリスナー及び音源の状況を実際のパフォーマンス上で有効にします。

環境情報

ソースファイル dx_music.sbp 内で定義済み


 CListener::CommitSettings

3D空間におけるリスナー及び音源の状況を実際のパフォーマンス上で有効にします。

書式
Function CListener::CommitSettings() As Long

戻り値

関数が成功すると TRUE が、失敗すると FALSE が返ります。

解説

CommitSettings関数を呼び出すと、以下のような関数によって指定された値が実際のパフォーマンス上のリスナー及び音源に適用されます。

CListener::SetPosition
CListener::SetVelocity
CListener::SetOrientation

CAudio3D::SetMinDistance
CAudio3D::SetMaxDistance
CAudio3D::SetPosition
CAudio3D::SetVelocity
CAudio3D::SetConeAngles
CAudio3D::SetConeOrientation
CAudio3D::SetConeOutsideVolume

環境情報

ソースファイル dx_music.sbp 内で定義済み

CListenerクラス


 CListener::SetOrientation

リスナーの頭部の向きを指定します。

書式
Function CListener::SetVelocity(
    FrontX As Single,
    FrontY As Single,
    FrontZ As Single,
    TopX As Single,
    TopY As Single,
    TopZ As Single
) As Long
FrontX, FrontY, FrontZ
前方の向きベクトルを指定します。
TopX, TopY, TopZ
上方の向きベクトルを指定します。

戻り値

関数が成功すると TRUE が、失敗すると FALSE が返ります。

解説

ここで設定した値を実際のパフォーマンス上で有効にする場合は、CListener::CommitSettingsを呼び出す必要があります。

環境情報

ソースファイル dx_music.sbp 内で定義済み

CListenerクラス


 CListener::SetPosition

3D空間におけるリスナーの位置を指定します。

書式
Function CListener::SetPosition(
    x As Single,
    y As Single,
    z As Single
) As Long
x, y, z
位置ベクトルを指定します。

戻り値

関数が成功すると TRUE が、失敗すると FALSE が返ります。

解説

ここで設定した値を実際のパフォーマンス上で有効にする場合は、CListener::CommitSettingsを呼び出す必要があります。

環境情報

ソースファイル dx_music.sbp 内で定義済み

CListenerクラス


 CListener::SetVelocity

リスナーの速度を指定します。

書式
Function CListener::SetVelocity(
    x As Single,
    y As Single,
    z As Single
) As Long
x, y, z
速度ベクトルを指定します（単位はメートル/秒）。

戻り値

関数が成功すると TRUE が、失敗すると FALSE が返ります。

解説

ここで設定した値を実際のパフォーマンス上で有効にする場合は、CListener::CommitSettingsを呼び出す必要があります。

環境情報

ソースファイル dx_music.sbp 内で定義済み

CListenerクラス


 InitProc 関数

アプリケーションが起動したときに呼び出される関数です。この関数の中に初期処理を記述します。

書式
Function InitProc()
    'DirectXを初期化
    If dx_Init(hMainWnd,ScreenX,ScreenY,FALSE)=0 Then
        InitProc=0
        Exit Function
    End If

    'マウスカーソルを非表示にする
    ShowCursor(FALSE)

    ' TODO: この位置にアプリケーションの初期化コードを記述してください。

    InitProc=1
End Function

戻り値

初期化が成功したらTRUEを、失敗したらFALSEを返さなければなりません。

解説

この関数は、アプリケーションが起動したときに一度だけモジュールレベルから呼び出されます。

その内容は、dx_Init関数を呼び出してDirectXを初期化した後、ShowCursor関数を使用してマウスカーソルを非表示にするものです。プログラマーはアプリケーションの初期化のためコードをその下から記述することができます。

環境情報

プロジェクトのメインソースファイル内で定義済み

QuitProc関数


 QuitProc 関数

アプリケーションが終了するときに呼び出される関数です。この関数の中に終了処理を記述します。

書式
Sub QuitProc()
    ' TODO: この位置にアプリケーションの終了処理を記述してください。

    'DirectXの終了処理
    dx_Quit()
End Sub

解説

この関数は、アプリケーションが正常終了するときに一度だけモジュールレベルから呼び出されます。

その内容は、dx_Quit関数を呼び出してDirectXに使用したメモリを解放するものです。プログラマーはアプリケーションの終了のためコードをその上に記述することができます。

環境情報

プロジェクトのメインソースファイル内で定義済み

InitProc関数


 InputActionProc 関数

キーボード、マウス、ジョイパッド、ジョイスティックなどによる入力に関するコードを記述するためのコールバック関数です。

書式
Sub InputActionProc()
    ' TODO: この位置に入力に関するコードを記述してください。
    '       （キーボード、マウス、ジョイパッド、ジョイスティックなどによる入力）

    ' メモ - キャラクタの移動など、状況進行（アクション）を意味するコードを
    '        記述することもできます。

End Sub

解説

この関数は、描画毎にモジュールレベルから呼び出されます。この関数の中からはデバイスに対して描画を行うことはできません。

環境情報

プロジェクトのメインソースファイル内で定義済み

RenderProc関数


 RenderProc 関数

描画を行うためのコールバック関数です。

書式
Sub RenderProc()
    ' TODO: この位置に描画に関するコードを記述してください。

End Sub

解説

この関数は、描画毎にモジュールレベルから呼び出されます。この関数の中からは下のような描画用の関数を呼び出すことが可能です。

dx_DrawText
CImage2D::Draw
CRectPolygon::Draw
CMeshModel::Draw

環境情報

プロジェクトのメインソースファイル内で定義済み

InputActionProc関数


デバッグに関する情報

デバッグ

"デバッグ" とは、開発中のプログラムに対し、様々な方法で問題発見、修正を行っていく工程のことを言います。ActiveBasicのプロセス デバッガを利用すると、プログラム内の任意の場所にブレーク ポイント（Debug命令語）を設置したり、例外処理が起こることにより、スレッド、プロシージャ階層、変数（グローバル、ローカル）に関する情報を調べることができます。

デバッグの方法

デバッグの対象となる任意のプログラムを ProjectEditor でオープンします。メニューの「ベーシック」→「デバッグ実行」をクリックするか、F2キーを押すと、デバッグ実行が開始されます（必要であれば、実行前にデバッグ コンパイルが実施されます）。Debug命令語やDebugBreak関数が実行されたり、例外処理が発生すると、下のようなデバッガビューが表示されます。

対象領域（スレッド/プロシージャ）の指定

複数のスレッドを実行中にデバッガが作動したときは、デバッガビュー左側の「対象スレッド」のリストから任意のスレッドを選択できます。同様に、任意のプロシージャを「プロシージャ」のリストから選択できます。

変数リスト、ウォッチリスト

グローバル変数/ローカル変数/Thisオブジェクトの現在の状態が、デバッガビュー中央に表示されます。

デバッガビュー右側に表示されるウォッチリストには、任意のウォッチ式（リテラル値/定数/変数を項に持つ計算式）を指定できます。ウォッチリストを利用すれば、常に最新の値を調べることができます。

継続/終了

例外処理により、デバッガが作動したときは、「閉じる」ボタンをクリックしてプログラムを終了させます。

ブレークポイントにより、デバッガが作動したときは、継続実行/ステップ実行/終了のいずれかの動作を行うことができます。

継続してデバッグ実行を行う場合は、「実行 [image] 」をクリックします。

ステップ実行を行う場合は、「ステップオーバー [image] 」または「ステップイン [image] 」をクリックします。プロシージャを1ステップとして扱うときはステップオーバーを、プロシージャの中に入ってステップ実行を行うときはステップインを使用してください。

「中断」をクリックすると、デバッガの作動に関係なく、プログラムを終了できます。


N88BASICファイルのインポート

 N88BASICファイルのインポートについて

N88BASICで作成されたファイルをActiveBasicで使用するにはバイナリ形式からアスキーセーブに変換しなければなりません。上羽 紘吉さんが開発した「N88BASIC-アスキーセイバー」を使用してコード変換を行って下さい。


アンインストール

 アンインストール方法

レジストリへの保存は行っておりませんので、ActiveBasicがインストールされているディレクトリを削除するだけで、アンインストールは完了します。


WM_ で始まるメッセージ一覧

 ウィンドウメッセージ一覧（WM_～）
ウィンドウメッセージとは
ユーザーがウィンドウを通して送るメッセージのことです。例えば、ユーザーがウィンドウをクリックした場合、マウスのウィンドウメッセージが座標と共に届きます。

メッセージ一覧

WM_ACTIVATE

WM_CHAR

WM_CLOSE

WM_COPY

WM_CUT

WM_COMMAND

WM_HSCROLL

WM_GETTEXT

WM_GETTEXTLENGTH

WM_KEYDOWN

WM_KEYUP

WM_LBUTTONDBLCLK

WM_LBUTTONDOWN

WM_LBUTTONUP

WM_MBUTTONDBLCLK

WM_MBUTTONDOWN

WM_MBUTTONUP

WM_MOUSEMOVE

WM_MOVE

WM_PAINT

WM_PASTE

WM_RBUTTONDBLCLK

WM_RBUTTONDOWN

WM_RBUTTONUP

WM_SETTEXT

WM_SIZE

WM_UNDO

WM_VSCROLL


BM_ で始まるメッセージ一覧

 ウィンドウメッセージ一覧（BM_～）
メッセージ一覧

BM_CLICK

BM_GETCHECK

BM_GETSTATE

BM_SETCHECK

BM_SETSTYLE


CB_ で始まるメッセージ一覧

 ウィンドウメッセージ一覧（CB_～）
メッセージ一覧

CB_ADDSTRING

CB_DELETESTRING

CB_FINDSTRING

CB_GETCOUNT

CB_GETCURSEL

CB_GETDROPPEDSTATE

CB_GETDROPPEDWIDTH

CB_GETEDITSEL

CB_GETEXTENDEDUI

CB_GETITEMHEIGHT

CB_GETLBTEXT

CB_GETLBTEXTLEN

CB_GETTOPINDEX

CB_INSERTSTRING

CB_LIMITTEXT

CB_RESETCONTENT

CB_SELECTSTRING

CB_SETCURSEL

CB_SETDROPPEDWIDTH

CB_SETEDITSEL

CB_SETEXTENDEDUI

CB_SETHORIZONTALEXTENT

CB_SETITEMHEIGHT

CB_SETTOPINDEX

CB_SHOWDROPDOWN


EM_ で始まるメッセージ一覧

 ウィンドウメッセージ一覧（EM_～）
メッセージ一覧

EM_CANUNDO

EM_GETLIMITTEXT

EM_GETLINE

EM_GETLINECOUNT

EM_GETSEL

EM_LIMITTEXT

EM_LINEINDEX

EM_LINELENGTH

EM_LINESCROLL

EM_SCROLL

EM_SCROLLCARET

EM_SETLIMITTEXT

EM_SETSEL


LB_ で始まるメッセージ一覧

 ウィンドウメッセージ一覧（LB_～）
メッセージ一覧

LB_ADDSTRING

LB_DELETESTRING

LB_FINDSTRING

LB_GETCARETINDEX

LB_GETCOUNT

LB_GETCURSEL

LB_GETITEMHEIGHT

LB_GETSEL

LB_GETSELCOUNT

LB_GETTEXT

LB_GETTEXTLEN

LB_GETTOPINDEX

LB_INSERTSTRING

LB_RESETCONTENT

LB_SELECTSTRING

LB_SELITEMRANGE

LB_SELITEMRANGEEX

LB_SETCARETINDEX

LB_SETCOLUMNWIDTH

LB_SETCURSEL

LB_SETHORIZONTALEXTENT

LB_SETITEMHEIGHT

LB_SETSEL

LB_SETTOPINDEX


SBM_ で始まるメッセージ一覧

 ウィンドウメッセージ一覧（SBM_～）
メッセージ一覧

SBM_ENABLE_ARROWS

SBM_GETPOS

SBM_GETRANGE

SBM_SETPOS

SBM_SETRANGE


 ActiveBasic 概要

ActiveBasicは、Win32上での動作を想定するネイティブ コンパイラをベースに展開する、統合開発ソフトです。
コマンドプロンプトを主とした従来型のプログラムから、複数のウィンドウを制御しながらのWindowsプログラミングまで、幅広く対応しています。

N88BASICの文法を利用できる

N88BASICユーザーがスムーズに移行できる環境を、言語仕様をベースに提供します。

幅広い記述テクニックに対応できる言語仕様

構造化プログラミングを可能にする言語仕様で、本格的なプログラミングを行うことが可能です。Basic言語が不得意とするポインタ操作（ポインタ変数の管理、プロシージャ間のポインタ引渡しなど）を克服し、ポインタに強い言語仕様になっています。

高速な動作速度

ネイティブ コンパイラ（機械語レベルのコードを生成するコンパイラ）を採用しているので、最速の実行ファイルを生成することができます。

統合開発環境、RADツールによるWindowsプログラミング

マウスなどを利用して視覚的にウィンドウをデザインし、コーディングをサポートするRAD環境を提供します。ソース ファイル管理をはじめ、プロシージャ管理、リソース管理など、開発に関する資源管理をサポートします。

Win32APIに完全対応

すべてのWin32API資源（関数、構造体、定数など）を利用することができます。

動作環境

Win32（32ビットのWindows）での動作を想定しています。コンパイラによって生成される実行ファイルも、原則的にすべてのWin32上で動作させることができます。

OS例 … Windows 95/98/Me/NT4.0/2000/XP

ファーストページ


 カラーコード

コード | カラー
0 | 黒
1 | 青
2 | 赤
3 | 紫
4 | 緑
5 | 水色
6 | 黄
7 | 白


著作権情報

  1. ActiveBasicの著作権はDiscoversoft（山本 大祐）にあります。
  2. このソフトウェアまたはライブラリを二次配布する場合はアーカイブの内容を変更しないで下さい。
  3. このソフトウェアを使用して起きた障害またはその影響について、Discoversoftは一切責任を負いません。
  4. このマニュアルに記載している内容は予告なしに変更される場合があります。

自作プログラムの配布条件

ActiveBasicコンパイラによって抽出された実行ファイル（EXEファイル、DLLファイル）、及びユーザーが任意に作成した開発に関わるファイルの著作権は、そのプログラムを作成したユーザーに発生します。

ユーザーによって作成されたプログラム（ソースコード、実行ファイル、その他のプログラム資源）はユーザーによって配布することが可能です。商用目的での使用制限もありません。配布を行う際にDiscoversoftへ連絡する必要はありません。

特殊な環境への配布（インストール）について

特定のコンピュータルームなど複数台へのインストールを許可します。ActiveBasicを授業やミーティングなどのプログラム資源としてご利用いただいても構いません。


Discoversoft

 Discoversoftから

このたびはDiscoversoftの製品をご使用いただき、誠にありがとうございます。
ソフトへの意見や感想などがあればメールでお願いします。

開発・管理：山本 大祐

お問い合わせ

Discoversoft
mail: dais@muc.biglobe.ne.jp
Web: http://www.discoversoft.net/

ファーストページ


 Win32API: RGBAPI

指定した座標の色を取得します。

定義
Function RGBAPI _
   (r As Byte, _
    g As Byte, _
    b As Long) As DWord
r
赤色の強さを 0～255 の間で指定します。

g
緑色の強さを 0～255 の間で指定します。

b
青色の強さを 0～255 の間で指定します。

戻り値

RGB 値が返ります。

関数

この関数は、Win32APIのGDI関数で RGB 値を指定する際などに利用します。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み


 構造体: DEVMODE

プリンタの環境に関する情報を格納します。

定義
Type DEVMODE
    dmDeviceName(31) As Byte
    dmSpecVersion As Integer
    dmDriverVersion As Integer
    dmSize As Integer
    dmDriverExtra As Integer
    dmFields As Long
    dmOrientation As Integer
    dmPaperSize As Integer
    dmPaperLength As Integer
    dmPaperWidth As Integer
    dmScale As Integer
    dmCopies As Integer
    dmDefaultSource As Integer
    dmPrintQuality As Integer
    dmColor As Integer
    dmDuplex As Integer
    dmYResolution As Integer
    dmTTOption As Integer
    dmCollate As Integer
    dmFormName(31) As Byte
    dmUnusedPadding As Integer
    dmBitsPerPel As Integer
    dmPelsWidth As Long
    dmPelsHeight As Long
    dmDisplayFlags As Long
    dmDisplayFrequency As Long
End Type
dmDeviceName(31)
ドライバがサポートするデバイス名を指定します。

dmSpecVersion
構造体の基準になった初期化データ仕様のバージョン番号を指定します。

dmDriverVersion
プリンタ ドライバのバージョン番号を指定します。

dmSize
この構造体のサイズをバイト単位で指定します。

dmDriverExtra
この構造体に続くドライバ データのバイト数を指定します。固有のドライバ データを持たないときは、0 を指定します。

dmFields
このメンバ以下のメンバが初期化されているかどうかを、以下の定数を組み合わせて指定します。
dmOrientation
用紙の向きを、以下の定数から指定します。
定数 | 説明
DMORIENT_PORTRAIT | 縦向き
DMORIENT_LANDSCAPE | 横向き

dmPaperSize
用紙サイズを、以下の定数から指定します。
定数 | 説明
DMPAPER_LETTER | Letter、8 1/2 × 11 インチ
DMPAPER_LEGAL | Legal、8 1/2 × 14 インチ
DMPAPER_A4 | A4 シート、210 × 297 mm
DMPAPER_CSHEET | C シート、17 × 22 インチ
DMPAPER_DSHEET | D シート、22 × 34 インチ
DMPAPER_ESHEET | E シート、34 × 44 インチ
DMPAPER_LETTERSMALL | Letter Small、8 1/2 × 11 インチ
DMPAPER_TABLOID | Tabloid、11 × 17 インチ
DMPAPER_LEDGER | Ledger、17 × 11 インチ
DMPAPER_STATEMENT | Statement、5 1/2 × 8 1/2 インチ
DMPAPER_EXECUTIVE | Executive、7 1/4 × 10 1/2 インチ
DMPAPER_A3 | A3 シート、297 × 420 mm
DMPAPER_A4SMALL | A4 small シート、210 × 297 mm
DMPAPER_A5 | A5 シート、148 × 210 mm
DMPAPER_B4 | B4 シート、250 × 354 mm
DMPAPER_B5 | B5 シート、182 × 257 mm
DMPAPER_FOLIO | Folio、8 1/2 × 13 インチ
DMPAPER_QUARTO | Quarto、215 × 275 mm
DMPAPER_10X14 | 10 × 14 インチ シート
DMPAPER_11X17 | 11 × 17 インチ シート
DMPAPER_NOTE | Note、 8 1/2 × 11 インチ
DMPAPER_ENV_9 | #9 Envelope、3 7/8 × 8 7/8 インチ
DMPAPER_ENV_10 | #10 Envelope、4 1/8 × 9 1/2 インチ
DMPAPER_ENV_11 | #11 Envelope、4 1/2 × 10 3/8 インチ
DMPAPER_ENV_12 | #12 Envelope、4 3/4 × 11 インチ
DMPAPER_ENV_14 | #14 Envelope、5 × 11 1/2 インチ
DMPAPER_ENV_DL | DL Envelope、110 × 220 mm
DMPAPER_ENV_C5 | C5 Envelope、162 × 229 mm
DMPAPER_ENV_C3 | C3 Envelope、324 × 458 mm
DMPAPER_ENV_C4 | C4 Envelope、229 × 324 mm
DMPAPER_ENV_C6 | C6 Envelope、114 × 162 mm
DMPAPER_ENV_C65 | C65 Envelope、114 × 229 mm
DMPAPER_ENV_B4 | B4 Envelope、250 × 353 mm
DMPAPER_ENV_B5 | B5 Envelope、176 × 250 mm
DMPAPER_ENV_B6 | B6 Envelope、176 × 125 mm
DMPAPER_ENV_ITALY | Italy Envelope、110 × 230 mm
DMPAPER_ENV_MONARCH | Monarch Envelope、3 7/8 × 7 1/2 インチ
DMPAPER_ENV_PERSONAL | 6 3/4 Envelope、3 5/8 × 6 1/2 インチ
DMPAPER_FANFOLD_US | US Std Fanfold、14 7/8 × 11 インチ
DMPAPER_FANFOLD_STD_GERMAN | German Std Fanfold、8 1/2 × 12 インチ
DMPAPER_FANFOLD_LGL_GERMAN | German Legal Fanfold、8 1/2 × 13 インチ

dmPaperLength
dmPaperSize メンバで指定した用紙の長さをオーバーライドします。この値は独自の用紙サイズを持つプリンタ デバイスなどのために使用します。

dmPaperWidth
dmPaperSize メンバで指定した用紙の幅をオーバーライドします。

dmScale
印刷出力をスケーリングするときの、スケーリング係数を指定します。

dmCopies
デバイスが複数の部数に対応する場合、印刷する部数を指定します。

dmDefaultSource
予約されています。0 を指定して下さい。

dmPrintQuality
プリンタの解像度を、インチあたりのドット数で指定します。定義済みの以下の定数を指定することもできます。
定数 | 説明
DMRES_HIGH | 高解像度
DMRES_MEDIUM | 中解像度
DMRES_LOW | 低解像度
DMRES_DRAFT | ドラフト印刷解像度

dmColor
カラー プリンタのときに、カラーかモノクロかを以下の定数で指定します。
定数 | 説明
DMCOLOR_COLOR | カラー
DMCOLOR_MONOCHROME | モノクロ

dmDuplex
両面印刷が可能なプリンタのときに、印刷方法を以下の定数で指定します。
定数 | 説明
DMDUP_SIMPLEX | 両面印刷しない。
DMDUP_HORIZONTAL | 水平方向に裏返して両面印刷する。
DMDUP_VERTICAL | 垂直方向に裏返して両面印刷する。

dmYResolution
プリンタの y 方向の解像度をインチあたりのドット数で指定します。

dmTTOption
TrueType フォントの印刷方法を、以下の定数から指定します。
定数 | 説明
DMTT_BITMAP | TrueType フォントをグラフィックとして印刷します。ドットマトリックス プリンタのデフォルトの動作です。
DMTT_DOWNLOAD | TrueType フォントをソフト フォントとしてダウンロードします。Printer Control Language (PCL) を使う Hewlett-Packard のプリンタのデフォルトの動作です。
DMTT_SUBDEV | TrueType フォントをデバイス フォントで置き換えます。PostScriptR プリンタのデフォルトの動作です。

dmCollate
複数部数を印刷するときにページ順にそろえるかどうかを、以下の定数から指定します。
定数 | 説明
DMCOLLATE_TRUE | ページ順にそろえます。
DMCOLLATE_FALSE | ページ順にそろえません。

dmFormName(31)
フォーム名を指定します。

dmUnusedPadding
このメンバは使用しません。内容は無視されます。

dmBitsPerPel
ディスプレイ デバイスの解像度をピクセルあたりのビット数で指定します。

dmPelsWidth
可視のデバイスの表面の幅をピクセル単位で指定します。

dmPelsHeight
可視のデバイスの表面の高さをピクセル単位で指定します。

dmDisplayFlags
デバイスのディスプレイ モードを指定します。

dmDisplayFrequency
ディスプレイ デバイスのリフレッシュレート（垂直同期周波数）を 1 秒当たりのサイクル数（Hz）で指定します。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み


 構造体: POINTAPI

X 座標、Y 座標を格納します。

定義
Type POINTAPI
    x As Long
    y As Long
End Type
x
X 座標を指定します。

y
Y 座標を指定します。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み


 構造体: RECT

長方形の、左上隅と、右下隅の座標を管理します。

定義
Type RECT
    left As Long
    top As Long
    right As Long
    bottom As Long
End Type
left
左上隅の X 座標を指定します。

top
左上隅の Y 座標を指定します。

right
右下隅の X 座標を指定します。

bottom
右下隅の Y 座標を指定します。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み


 構造体: SIZE

幅と高さを格納します。

定義
Type SIZE
    cx As Long
    cy As Long
End Type
cx
幅を指定します。

cy
高さを指定します。

環境情報

インクルード ファイル: api_gdi.sbp 内で定義済み


メッセージ：WM_GETTEXT

 メッセージ： WM_GETTEXT

ウィンドウ テキストを取得します。

パラメータ

MaxBytes = wParam
lpszText = lParam

MaxBytes
格納するバッファの最大サイズを指定します（終端の NULL 文字を含む）。

lpszText
取得したテキストを格納するための、文字列バッファを指定します。

戻り値

取得した文字列のバイト数（終端の NULL 文字を除く）が返ります。

解説

MaxBytes パラメータで指定したバイト数より、取得した文字列のほうが長かったときは、テキストの後半部分がカットされます。
ウィンドウ テキストのバイト数は事前に、WM_GETTEXTLENGTHメッセージを利用して取得することができます。

WM_GETTEXTLENGTHメッセージ、WM_SETTEXTメッセージ


メッセージ：WM_GETTEXTLENGTH

 メッセージ： WM_GETTEXTLENGTH

ウィンドウ テキストのバイト数を取得します。

パラメータ

なし

解説

テキストのバイト数が返ります。

WM_GETTEXTメッセージ


メッセージ：WM_SETTEXT

 メッセージ： WM_SETTEXT

ウィンドウ テキストを設定します。

パラメータ

lpszText = lParam

lpszText
設定する文字列が格納されている、バッファを指定します。

戻り値

正常にテキストが設定されると、TRUE が返ります。
失敗すると、エディット コントロールでは FALSE が、リストボックスでは LB_ERRSPACE が、コンボボックスでは CB_ERRSPACE が返ります。エディット コントロールを持たないコンボボックスに送られたときは、CB_ERR が返ります。

WM_GETTEXTメッセージ


 MCIコマンド一覧

MCI_CLOSE | デバイスをクローズします。
MCI_OPEN | デバイスをオープンします。
MCI_PAUSE | デバイスを一時停止状態にします。
MCI_PLAY | デバイスを再生します。
MCI_SEEK | デバイスの再生位置を変更します。
MCI_SET | デバイス情報を設定します。
MCI_STATUS | デバイスの状態を取得します。
MCI_STOP | デバイスを停止します。


 構造体: MCI_OPEN_PARMS

デバイスオープンに関する情報を格納するための構造体です。

定義
Type MCI_OPEN_PARMS
    dwCallback As DWord
    wDeviceID As DWord
    lpstrDeviceType As BytePtr
    lpstrElementName As BytePtr
    lpstrAlias As BytePtr
End Type
dwCallback
MM_MCINOTIFYメッセージを通知のためのウィンドウのハンドルを指定します。

wDeviceID
デバイスIDが格納されます。

lpstrDeviceType
デバイスタイプを示す文字列ポインタ、または定数を指定します。

lpstrElementName
デバイス要素名（ファイルパス）を指定します。

lpstrAlias
デバイスの別名を指定します。

環境情報

インクルード ファイル: api_mmsys.sbp 内で定義済み

MCI_OPENコマンド


 構造体: MCI_PLAY_PARMS

デバイス再生に関する情報を格納するための構造体です。

定義
Type MCI_PLAY_PARMS
    dwCallback As DWord
    dwFrom As DWord
    dwTo As DWord
End Type
dwCallback
MM_MCINOTIFYメッセージを通知のためのウィンドウのハンドルを指定します。

dwFrom
再生開始位置を現在の時刻形式で指定します。

dwTo
再生終了位置を現在の時刻形式で指定します。

環境情報

インクルード ファイル: api_mmsys.sbp 内で定義済み

MCI_PLAYコマンド


 構造体: MCI_SEEK_PARMS

デバイスシークに関する情報を格納するための構造体です。

定義
Type MCI_SEEK_PARMS
    dwCallback As DWord
    dwTo As DWord
End Type
dwCallback
MM_MCINOTIFYメッセージを通知のためのウィンドウのハンドルを指定します。

dwTo
シーク位置を現在の時刻形式で指定します。

環境情報

インクルード ファイル: api_mmsys.sbp 内で定義済み

MCI_SEEKコマンド


 構造体: MCI_SET_PARMS

デバイス設定に関する情報を格納するための構造体です。

定義
Type MCI_SET_PARMS
    dwCallback As DWord
    dwTimeFormat As DWord
    dwAudio As DWord
End Type
dwCallback
MM_MCINOTIFYメッセージを通知のためのウィンドウのハンドルを指定します。

dwTimeFormat
時刻形式を、以下の定数から指定します。
定数 | 説明 | 対応するデバイス
MCI_FORMAT_BYTES | バイト単位 | WAVEフォームオーディオ
MCI_FORMAT_FRAMES | フレーム単位 | アニメーション、デジタルビデオ、VCR、ビデオディスク
MCI_FORMAT_HMS | 時間 / 分 / 秒 | VCR、ビデオディスク
MCI_FORMAT_MILLISECONDS | ミリ秒単位 | すべてのデバイスに対応します
MCI_FORMAT_MSF | 分 / 秒 / フレーム | CDオーディオ、VCR
MCI_FORMAT_SAMPLES | サンプリング数単位 | WAVEフォームオーディオ
MCI_FORMAT_SMPTE_24 | 24フレームのSMPTE | シーケンサ、VCR
MCI_FORMAT_SMPTE_25 | 25フレームのSMPTE
MCI_FORMAT_SMPTE_30 | 30フレームのSMPTE
MCI_FORMAT_SMPTE_30DROP | 30ドロップフレームのSMPTE
MCI_FORMAT_TMSF | トラック / 分 / 秒 / フレーム | CDオーディオ、VCR

dwAudio
オーディオ出力チャネルを指定します。

環境情報

インクルード ファイル: api_mmsys.sbp 内で定義済み

MCI_SETコマンド


 構造体: MCI_STATUS_PARMS

デバイス状態に関する情報を格納するための構造体です。

定義
Type MCI_STATUS_PARMS
    dwCallback As DWord
    dwReturn As DWord
    dwItem As DWord
    dwTrack As DWord
End Type
dwCallback
MM_MCINOTIFYメッセージを通知のためのウィンドウのハンドルを指定します。

dwReturn
このメンバに取得した情報が格納されます。

dwItem
何についての情報を取得するかを、以下の定数から指定します。
定数 | 説明
MCI_STATUS_CURRENT_TRACK | 現在のトラック番号を取得します。
MCI_STATUS_LENGTH | メディアの全長を取得します。
MCI_STATUS_MEDIA_PRESENT | メディアがデバイスに挿入されているかどうかを判断します。挿入されているときはTRUEが、されていないときはFALSEがdwReturnメンバに格納されます。
MCI_STATUS_MODE 現在のモードを取得します。モードは以下の定数から指定されます。
定数 | 説明
MCI_MODE_NOT_READY | 準備ができていません
MCI_MODE_OPEN | トレイが開いています
MCI_MODE_PAUSE | 一時停止中
MCI_MODE_PLAY | 再生中
MCI_MODE_RECORD | 録音中
MCI_MODE_SEEK | シーク中
MCI_MODE_STOP | 停止中
MCI_STATUS_NUMBER_OF_TRACKS | 再生可能なトラック数を取得します。
MCI_STATUS_POSITION | 現在の位置を取得します。
MCI_STATUS_READY | デバイスの準備ができているときはTRUEが、できていないときはFALSEがdwReturnに格納されます。
MCI_STATUS_TIME_FORMAT | 現在の時刻形式が格納されます。時刻形式については、MCI_SET_PARMS構造体のdwTimeFormatメンバの解説をご覧下さい。

dwTrack
トラック番号を指定します。

環境情報

インクルード ファイル: api_mmsys.sbp 内で定義済み

MCI_STATUSコマンド


 構造体: ULARGE_INTEGER

符号無し64ビット整数が格納されます。

定義
Type ULARGE_INTEGER
    LowPart As DWORD
    HighPart As DWORD
End Type
LowPart
64ビット整数の下位32ビットが格納されます。

HighPart
64ビット整数の上位32ビットが格納されます。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み


 Win32API: LoadBitmap

リソースからビットマップを読み取ります。

定義
Declare Function LoadBitmap Lib "user32" Alias "LoadBitmapA" _
   (hInst As HINSTANCE, _
    lpBitmapName As BytePtr) As HBITMAP
hInst
ロードするイメージが入ったモジュールのインスタンスのハンドルを指定します。

lpBitmapName
ロードするイメージを示すリソースID、または識別文字列を指定します。

戻り値

関数が成功すると、ビットマップのハンドルが返ります。失敗すると、0 が返ります。

解説

ビットマップが不要になったら、DeleteObject関数でメモリから解放して下さい。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll

LoadIcon関数、LoadImage関数


命令語：Continue

 命令語： Continue

ループの先頭位置に制御を移します。For ～ Next、While ～ Wend、Do ～ Loop などのループ文の中において有効です。

仕様

Continue

For ～ Next命令語、Do ～ Loop命令語、While ～ Wend命令語


命令語：DefFn

 命令語： Def Fn...

関数を定義します。

仕様

Def Func(variable [,variable...])=expression

Func
関数名を指定します。

variable
引数を指定します。複数指定することもできます。

expression
数式を定義します。関数、定数、変数、リテラル値を扱うことができます。

備考

引数はすべて値参照になります。引数に指定した変数は、数式内でローカル変数として扱われます。

サンプル

Def Scat$(a$,b$)=a$+b$
Def ChangeInt(a)=Int(a)
Print Scat$("abc","123")
Print ChangeInt(10.9183)

' 以下の結果が出力されます
' abc123
'  10


 パイ（π）

円周率。約 3.1415926535897932 です。


 定数

特定の値の変わりに使われる名前。変数の値は、プログラムの実行中に変化するのに対し、定数の値は常に同じです。定数は、数値、文字列、他の定数に代わってその要素を指定することができます。
Const命令語を使用して定数を定義することができます。
定数を利用するとプログラムがわかりやすく、修正も容易になります。


 リテラル値

値が変化しないプログラム要素のことを指します。プログラム中に直接記述されている整数、実数、文字列などがそれにあたります。


 オーバーライド

オーバーライドとは、スーパークラス(※1)から継承されたメンバ関数をサブクラス(※2)で上書きする機能のことをいいます。

※1 スーパークラス … 基本クラスのこと。
※2 サブクラス … 派生クラスのこと。

オーバーライドの方法

スーパークラスで定義済みのメンバ関数を、サブクラスで再定義します。再定義を行うにあたって、メンバ関数名、パラメータ、戻り値は同一のものを採用する必要があります。下の例では、メンバ関数ShowMessageをオーバーライドしています。

Class CSuperClass
Public
    Sub ShowMessage()
        MessageBox(0,"スーパークラスで定義されたメンバ関数です。","オーバーライドのテスト",MB_OK)
    End Sub
End Class

Class CTest
    Inherits CSuperClass
Public
    Sub ShowMessage()
        MessageBox(0,"サブクラスで定義されたメンバ関数です。","オーバーライドのテスト",MB_OK)
    End Sub
    Sub ShowOldMessage()
        Super.ShowMessage()
    End Sub
End Class

'オブジェクトを生成
Dim obj As CTest

'オーバーライドされたメンバ関数を呼び出す
obj->ShowMessage()

'スーパークラスのメンバ関数を呼び出す
obj->ShowOldMessage()

スーパークラスのメンバ関数を呼び出すには

オーバーライドされる前のスーパークラスのメンバ関数は、関数名の前に "Super." と記述をすることで呼び出すことができます（上記プログラムのメンバ関数ShowOldMessageを参照）。"Super." の記述が有効なのはクラス内のみであり、外部からスーパークラスのメンバ関数を直接的に呼び出すことはできません。


 モジュールレベル

プログラムの宣言部分です。つまり、プロシージャに含まれないコードです。モジュールレベルに対して、プロシージャに含まれる部分をプロシージャレベルと呼びます。


 プロシージャ

実行時に１つの単位として使われるコードの集まりです。通常、プロシージャの名前は、モジュール レベルで定義します。プロシージャの中にプロシージャを置くなど、ネストを行うことはできません。

プロシージャ内で宣言、確保された変数はローカル変数として扱われ、プロシージャを抜け出すと同時に破棄されます。これに対し、モジュールレベルで定義された変数はグローバル変数とみなされ、プロシージャ内、外に問わずに使用できます。
すでにグローバル領域に定義された変数と重複した識別子をもつローカル変数を使用したい場合はプロシージャ内でDim宣言をして下さい。プロシージャ内で宣言がなく、グローバル変数として定義されている場合はグローバル変数として扱われます。


 標準データ型（基本型）

基本型とはコンパイラが認識できる変数の種類のことをいいます。

分類 | 基本型 | 概要 | バイト数 | 値の範囲 | 型宣言文字
整数 | Char | 符号付き8ビット整数型 | 1 | -128 ～ 127 |
 | Byte | 符号無し8ビット整数型 | 1 | 0 ～ 255 |
 | Integer | 符号付き16ビット整数型 | 2 | -32768 ～ 32767 | %
 | Word | 符号無し16ビット整数型 | 2 | 0 ～ 65535 |
 | Long | 符号付き32ビット整数型 | 4 | -2147483648 ～ 2147483647 |
 | DWord | 符号無し32ビット整数型 | 4 | 0 ～ 4294967295 |
 | Int64 | 符号付き64ビット整数型 | 8 | -9223372036854775808 ～ 9223372036854775807 |
 | QWord | 符号無し64ビット整数型 | 8 | 0 ～ 18446744073709551616 |
浮動小数点 | Double | 倍精度浮動小数点型（64ビット） | 8 | 1.7E +/- 308 (15 桁) | #
 | Single | 単精度浮動小数点型（32ビット） | 4 | 3.4E +/- 38 (7 桁) | !
文字列 / バイナリデータ | String | 文字列型 | 可変長 |  | $
ポインタ | BytePtr | Byte型データを示す符号無し32ビット整数型 | 4 | &H0 ～ &HFFFFFFFF |
 | WordPtr | Word型データを示す符号無し32ビット整数型 | 4 | &H0 ～ &HFFFFFFFF |
 | DWordPtr | DWord型データを示す符号無し32ビット整数型 | 4 | &H0 ～ &HFFFFFFFF |
 | *QWord | QWord型データを示す符号無し32ビット整数型 | 4 | &H0 ～ &HFFFFFFFF |
 | SinglePtr | Single型データを示す符号無し32ビット整数型 | 4 | &H0 ～ &HFFFFFFFF |
 | DoublePtr | Double型データを示す符号無し32ビット整数型 | 4 | &H0 ～ &HFFFFFFFF |
 | VoidPtr | 型が不明なデータを示す符号無し32ビット整数型 | 4 | &H0 ～ &HFFFFFFFF |

String型データについて

文字列 / バイナリデータを扱うString型データは、基本型の中でも特別なデータ型にあたります。他の基本型と比較し、下記の相違点があります。

・データサイズが可変長である
・データを格納するためのメモリ確保、解放が自動的に行われる
・データを格納するためのメモリがヒープ領域に設けられる
・データ部の前部分（通常はプログラマーから見えない）にデータサイズを格納するための32ビット値（4バイト）が存在する

String型変数のメモリ確保は変数宣言時に行われます。また、値が代入されると以前のデータは自動的に破棄され、新しいデータ用のメモリが確保されます。データの破棄は、グローバル変数についてはプログラム終了時に、ローカル変数については関数抜け出し時に自動的に行われます。

String型は従来のBasic言語との互換性をとるために存在します。文字列 / バイナリデータを扱う場合は、特に理由がない限り、プログラマーが任意的にメモリ確保、解放を行い、BytePtr型として文字列データを管理する手法を推奨します。

String型をBytePtr型で表現したい場合、BytePtr型をString型で表現したい場合は、下記の関数をご利用ください。

・StrPtr関数 … String型データの先頭ポインタをBytePtr型で返します
・MakeStr関数 … BytePtr型データが示す、終端記号がNULL文字のデータを元にString型データを作成し、それを返します。

変数


 ウィンドウシステムのコールバック関数
概念
"コールバック関数" とはシステムから呼び出される関数のことです。ここではWindowsシステムがイベント発生時に呼び出す（イベントドリブン）関数のこととして解説します。従来の "手続き形式" のプログラムは実行順序をそのプログラムが決めていましたが、イベントドリブンではイベントに応じて任意のプログラムが実行されます。イベントにはユーザーの操作によって発生するもの（マウス・キーボードによる入力など）、システムや他のアプリケーション、またはアプリケーション自身によって呼び出されるものがあります。


 ウィンドウの拡張スタイル
ウィンドウの拡張スタイルは次の値をor演算で組み合わせて使用して下さい。

定数名 | 概要
WS_EX_ACCEPTFILES | ドラッグアンドドロップで、ファイルを受け入れます。
WS_EX_APPWINDOW | ウィンドウが最小化されると、トップレベルウィンドウがタスクバー上に置かれます。
WS_EX_CLIENTEDGE | 縁が沈んで見える境界線を持つウィンドウを作成します。
WS_EX_CONTEXTHELP | ダイアログボックスのタイトルバーに［?］ボタンを追加します。 ユーザーがこの［?］ボタンをクリックすると、マウスポインタに疑問符が付きます。その後、ユーザーがダイアログボックス内のコントロールをクリックすると、コントロールは WM_HELP メッセージを受け取ります。コントロールはダイアログの処理にそのメッセージを送ります。このダイアログの処理は、HELP_WM_HELP コマンドを使った WinHelp 関数です。ヘルプアプリケーションは、通常、コントロールのヘルプを持つポップアップウィンドウを表示します。WS_EX_CONTEXTHELP は WS_MAXIMIZEBOX スタイルや WS_MINIMIZEBOX スタイルとは一緒に使用できません。
WS_EX_CONTROLPARENT | ユーザーが［Tab］キーを使って子ウィンドウ間を移動できるようにします。
WS_EX_DLGMODALFRAME | 二重の境界線を持つウィンドウを作成します。
WS_EX_LEFT | 左揃えされたプロパティを持つウィンドウを作成します。デフォルトです。
WS_EX_LEFTSCROLLBAR | 垂直スクロールバーがクライアント領域の左側に置かれます。ヘブライ語やアラビア語をサポートしているシステムで有効です。他の言語では、このスタイルは無視され、エラーとして扱われます。
WS_EX_LTRREADING | 垂直スクロールバーがクライアント領域の左側に置かれます。ヘブライ語やアラビア語をサポートしているシステムで有効です。他の言語では、このスタイルは無視され、エラーとして扱われます。
WS_EX_MDICHILD | MDI 子ウィンドウを作成します。
WS_EX_NOPARENTNOTIFY | このスタイルで作成された子ウィンドウが作成されたり破棄されたりするときに、その親ウィンドウにWM_PARENTNOTIFY メッセージを送らないように指定します。
WS_EX_OVERLAPPEDWINDOW | WS_EX_CLIENTEDGE スタイルと WS_EX_WINDOWEDGE スタイルの組み合わせです。
WS_EX_PALETTEWINDOW | WS_EX_WINDOWEDGE スタイル、WS_EX_TOOLWINDOW スタイル、WS_EX_TOPMOST スタイルの組み合わせです。
WS_EX_RIGHT | 右揃えされたプロパティを持つウィンドウを作成します。ヘブライ語やアラビア語をサポートしているシステムで有効です。他の言語では、このスタイルは無視され、エラーとして扱われます。
WS_EX_RIGHTSCROLLBAR | 垂直スクロールバーがクライアント領域の右側に置かれます。デフォルトです。
WS_EX_RTLREADING | 右から左への読み取り順序を持つプロパティを持ったウィンドウを作成します。ヘブライ語やアラビア語をサポートしているシステムで有効です。他の言語では、このスタイルは無視され、エラーとして扱われます。
WS_EX_STATICEDGE | ユーザーの入力を受け付けない項目用の、立体的に見える境界スタイルを持つウィンドウを作成します。
WS_EX_TOOLWINDOW | ツールウィンドウを作成します。これは、フローティングツールバー用のウィンドウです。ツールウィンドウは通常のタイトルバーより小さいタイトルバーを持ちます。タスクバーには表示されません。ユーザーが［Alt］キーと［Tab］キーを同時に押すと現れるダイアログ内にも、表示されません。
WS_EX_TOPMOST | 最前面ウィンドウを作成します。ウィンドウが非アクティブな状態でも、ほかのウィンドウの前面に表示されます。SetWindowPos 関数を使用すると、非最前面ウィンドウに変更できます。
WS_EX_TRANSPARENT | 透過ウィンドウを作成します。このウィンドウの下にあるどのようなウィンドウも、遮られることなく表示されます。このスタイルで作成されたウィンドウは、その下にある兄弟ウィンドウがすべて更新されたときにだけ、WM_PAINT メッセージを受け取ります。
WS_EX_WINDOWEDGE | 盛り上がった縁の境界線を持つウィンドウを作成します。


ウィンドウメッセージ：BM_CLICK

 ウィンドウメッセージ： BM_CLICK

ボタンを押します。

パラメータ：
なし

補助解説：
ShowWnd 命令語などでボタンがあるウィンドウを最前面に表示して行って下さい。


ウィンドウメッセージ：BM_GETCHECK

 ウィンドウメッセージ： BM_GETCHECK

ボタンがチェックされているかどうかを調べます。

パラメータ：
なし

補助解説：
チェックされている場合は1を返答し、されていない場合は0を返答します。このメッセージはチェックボックス、ラジオボタンにのみ有効です。


ウィンドウメッセージ：BM_GETSTATE

 ウィンドウメッセージ： BM_GETSTATE

ボタンの状態を取得します。

パラメータ：
なし

補助解説：
以下に示す定数を含むビット列を返答します。
返答値 | 意味
BST_CHECKED | ボタンがチェックされていることを示します。
BST_FOCUS | キーボードフォーカスを持っていることを示します。
BST_INDETERMINATE | ボタンが無効になっていることを示します。
BST_PUSHED | ボタンが押されていることを示します（マウスボタンが押されている瞬間を示します）。
BST_UNCHECKED | ボタンがチェックされていないことを示します。

ボタンにチェックが入っていてなおかつ無効な状態になっている場合のみ、「BST_CHECKED AND BST_INDETERMINATE」の&H3が返答されます。


ウィンドウメッセージ：BM_SETCHECK

 ウィンドウメッセージ： BM_SETCHECK

ボタンのチェック状態を設定します。

パラメータ：
check = wParam

check
1を指定するとチェックされ、0を指定するとチェックがはずれます。

補助解説：
このメッセージはチェックボックス、ラジオボタンにのみ有効です。


ウィンドウメッセージ：BM_SETSTYLE

 ウィンドウメッセージ： BM_SETSTYLE

ボタンのウィンドウスタイルを変更します。

パラメータ：
style = wParam
MAKEWORD(redraw, 0) = lParam

style
BS_ で始まるウィンドウスタイルを組み合わせて（OR演算）指定します。ウィンドウスタイルについての詳しい情報はWindow 命令語を参照して下さい。

redraw
1を指定した場合は設定後、再描画をします。0を指定した場合はされません。


ウィンドウメッセージ：CB_ADDSTRING

 ウィンドウメッセージ： CB_ADDSTRING

コンボボックスに文字列を追加します。

パラメータ：
str$ = lParam

str$
挿入する文字列を指定します。

補助解説：
挿入先のコンボボックスのウィンドウスタイルにCBS_SORTが含まれている場合のみ、自動的にアルファベット順の場所に追加されます。それ以外はリストの終端に追加されます。
追加する際、コンボボックスのメモリに空きがなくなるとCB_ERRSPACEが返答されます。それ以外のエラー時にはCB_ERRが返答されます。


ウィンドウメッセージ：CB_DELETESTRING

 ウィンドウメッセージ： CB_DELETESTRING

コンボボックス内の指定した文字列を削除します。

パラメータ：
index = wParam

index
削除する文字列のリストの位置を指定します（一番上のリストを0とします）。

補助解説：
削除後、コンボボックスに残っている項目数が返答されます。エラーが起きた場合はCB_ERRが返答されます。


ウィンドウメッセージ：CB_FINDSTRING

 ウィンドウメッセージ： CB_FINDSTRING

コンボボックス内のリストの文字列を検索します。

パラメータ：
index = wParam
str$ = lParam

index
何番目のリストから検索するのかを指定します（一番上のリストを0とします）。0を指定するとリストボックス内のすべてが検索対象となります。

str$
検索する文字列を指定します。

補助解説：
対象のデータが見つかった場合、リストの何番目にあるのかが返答されます。見つからなかった場合、エラーが起こった場合はCB_ERRが返答されます。


ウィンドウメッセージ：CB_GETCOUNT

 ウィンドウメッセージ： CB_GETCOUNT

コンボボックス内のリストの項目数を取得します。

パラメータ：
なし

補助解説：
コンボボックス内のリストの項目数が返答されます。エラーが起きた場合はCB_ERRが返答されます。


ウィンドウメッセージ：CB_GETCURSEL

 ウィンドウメッセージ： CB_GETCURSEL

コンボボックスで選択されているリストが何番目にあるのかを取得します。

パラメータ：
なし

補助解説：
選択されているリストの位置が返答されます。リスト内のアイテムが選択されていない場合はCB_ERRが返答されます。


ウィンドウメッセージ：CB_GETDROPPEDSTATE

 ウィンドウメッセージ： CB_GETDROPPEDSTATE

コンボボックス内のリストがドロップダウンされているかしないかを調べます。

パラメータ：
なし

補助解説：
リストがドロップダウンされている場合は1が、されてないな場合は0が返答されます。


ウィンドウメッセージ：CB_GETDROPPEDWIDTH

 ウィンドウメッセージ： CB_GETDROPPEDWIDTH

コンボボックスのドロップダウンリストボックスの幅を求めます。

パラメータ：
なし

補助解説：
ドロップダウンリストボックスの幅が返答されます。エラーが起きた場合はCB_ERRが返答されます。
このメッセージはコンボボックスのウィンドウスタイルにCBS_DROPDOWNまたはCBS_DROPDOWNLISTがセットされているものにのみ有効です。


ウィンドウメッセージ：CB_GETEDITSEL

 ウィンドウメッセージ： CB_GETEDITSEL

コンボボックスのエディットコントロールのカーソル位置、または選択された文字列の位置を取得します。

パラメータ：
startpos = wParam
endpos = lParam

startpos
カーソルの開始位置が格納されます。

endpos
カーソルの終了位置が格納されます。

補助解説：
上位16ビットはstartposの値が、下位16ビットはendposの値が入った32ビットの数値が返答されます。


ウィンドウメッセージ：CB_GETEXTENDEDUI

 ウィンドウメッセージ： CB_GETEXTENDEDUI

指定したコンボボックスが拡張されたものであるかどうかを判定します。

パラメータ：
なし

補助解説：
拡張コンボボックスであるなら1が、そうでなければ0が返答されます。エラーが起きた場合はCB_ERRが返答されます。


ウィンドウメッセージ：CB_GETITEMHEIGHT

 ウィンドウメッセージ： CB_GETITEMHEIGHT

コンボボックスのリストの指定したアイテムの高さを取得します。

パラメータ：
index = wParam

index
リストの位置を指定します（一番上のリストを0とします）。対象のコンボボックスのウィンドウスタイルにCBS_OWNERDRAWVARIABLEが含まれるときにだけ有効です。それ以外の場合は0でかまいません。

補助解説：
アイテムの高さのピクセル数が返答されます。エラーが起こった場合はCB_ERRが返答されます。


ウィンドウメッセージ：CB_GETLBTEXT

 ウィンドウメッセージ： CB_GETLBTEXT

コンボボックスのリストの指定したアイテムの文字列を取得します。

パラメータ：
index = wParam
str$ = lParam

index
何番目のリストの文字列を取得するのかを指定します（一番上のリストを0とします）。

str$
取得した文字列が格納されます。

補助解説：
取得した文字列の長さが返答されます。エラーが起きた場合はCB_ERRが返答されます。


ウィンドウメッセージ：CB_GETLBTEXTLEN

 ウィンドウメッセージ： CB_GETLBTEXTLEN

コンボボックスのリストの指定したアイテムの文字列長を取得します。

パラメータ：
index = wParam

index
何番目のリストの文字列長を取得するのかを指定します（一番上のリストを0とします）。

補助解説：
取得した文字列長さが返答されます。エラーが起きた場合はCB_ERRが返答されます。
マルチバイト文字の一文字が2文字として扱われるので注意して下さい。


ウィンドウメッセージ：CB_GETTOPINDEX

 ウィンドウメッセージ： CB_GETTOPINDEX

コンボボックスのリストで、縦にスクロール表示している、一番上に見える項目の位置を取得します。

パラメータ：
なし

補助解説：
取得した位置が返答されます。スクロールされていない場合は0が返答されます。エラーが起きた場合はCB_ERRが返答されます。


ウィンドウメッセージ：CB_INSERTSTRING

 ウィンドウメッセージ： CB_INSERTSTRING

コンボボックスのリストの指定した位置に文字列を挿入します。

パラメータ：
index = wParam
str$ = lParam

index
何番目のリストに追加するのかを指定します（一番上のリストを0とします）。

str$
追加する文字列を指定します。

補助解説：
文字列が挿入された位置が返答されます。コンボボックスのメモリに空きがなくなるとCB_ERRSPACEが返答されます。それ以外のエラー時にはCB_ERRが返答されます。
コンボボックスのウィンドウスタイルにCBS_SORTがあったとしてもそれは無視されます。


ウィンドウメッセージ：CB_LIMITTEXT

 ウィンドウメッセージ： CB_LIMITTEXT

コンボボックスのエディットコントロールで操作可能なバイト数の上限を設定します。

パラメータ：
max = wParam

max
扱うバイト数の上限を指定します。

補助解説：
64KB以上の設定はできません。


ウィンドウメッセージ：CB_RESETCONTENT

 ウィンドウメッセージ： CB_RESETCONTENT

コンボボックスのリストの内容をすべて消去します。

パラメータ：
なし


ウィンドウメッセージ：CB_SELECTSTRING

 ウィンドウメッセージ： CB_SELECTSTRING

コンボボックスのリストの文字列を検索し、該当の項目を選択します。

パラメータ：
index = wParam
str$ = lParam

index
何番目のリストから検索するのかを指定します（一番上のリストを0とします）。0を指定するとリストボックス内のすべてが検索対象となります。

str$
検索する文字列を指定します。

補助解説：
対象のデータが見つかった場合、リストの何番目にあるのかが返答されます。見つからなかった場合、エラーが起こった場合はCB_ERRが返答されます。


ウィンドウメッセージ：CB_SETCURSEL

 ウィンドウメッセージ： CB_SETCURSEL

指定したコンボボックスのリストの項目を選択します。

パラメータ：
index = wParam

index
選択するリストの位置を指定します（一番上のリストを0とします）。

補助解説：
選択したリストの位置が返答されます。エラーが起きた場合はCB_ERRが返答されます。


ウィンドウメッセージ：CB_SETDROPPEDWIDTH

 ウィンドウメッセージ： CB_SETDROPPEDWIDTH

コンボボックスからドロップダウンされるリストボックスの幅を設定します。

パラメータ：
pixel = wParam

pixel
項目の幅をピクセル単位で指定します。

補助解説：
リストボックスの新しい幅が返答されます。エラーが起きた場合はCB_ERRが返答されます。
pixelで指定した幅よりコンボボックスの幅が大きい場合はコンボボックスの幅に従います。「pixel >= コンボボックスの幅」の場合にのみ設定が有効となります。


ウィンドウメッセージ：CB_SETEDITSEL

 ウィンドウメッセージ： CB_SETEDITSEL

コンボボックスのエディットコントロールのカーソル位置を設定します。

パラメータ：
MAKELONG(startpos, endpos ) = lParam

startpos
カーソルの開始位置を指定します。

endpos
カーソルの終了位置を指定します。

補助解説：
メッセージ処理が成功すると1が返答されます。エラーが起きた場合はCB_ERRが返答されます。


ウィンドウメッセージ：CB_SETEXTENDEDUI

 ウィンドウメッセージ： CB_SETEXTENDEDUI

指定したコンボボックスを拡張コンボボックスにするかどうか設定します。

パラメータ：
extended = wParam

extended
拡張コンボボックスにする場合は1を、標準のコンボボックスにする場合は0を指定します。

補助解説：
エラーが起きた場合はCB_ERRが返答されます。


ウィンドウメッセージ：CB_SETHORIZONTALEXTENT

 ウィンドウメッセージ： CB_SETHORIZONTALEXTENT

コンボボックスからドロップダウンされるリストボックスの幅を設定します。

パラメータ：
pixel = wParam

pixel
項目の幅をピクセル単位で指定します。

補助解説：
このメッセージは垂直にスクロールするリストボックス、水平スクロールバーを持つリストボックスにのみ有効です。
pixelで指定した幅よりリストボックスの幅が大きい場合は水平スクロールバーは表示されません。


ウィンドウメッセージ：CB_SETITEMHEIGHT

 ウィンドウメッセージ： CB_SETITEMHEIGHT

コンボボックスからドロップダウンされるリストボックス内の項目の高さを設定します。

パラメータ：
index = wParam
hight = lParam

index
設定する項目の位置を指定します（一番上のリストを0とします）。このパラメータは対象のリストボックスがCBS_OWNERDRAWVARIABLEスタイルを持っている場合にのみ有効です。

hight
項目の高さをピクセル単位で指定します。

補助解説：
エラーが起きた場合はCB_ERRが返答されます。
リストボックスがCBS_OWNERDRAWVARIABLEスタイルをもっていない場合でindexパラメータが無視されたとき、すべての項目がhightで指定した高さにセットされます。
コンボボックスのセレクションフィールドをリストボックスの項目よりも大きくしなければならないことに注意して下さい。


ウィンドウメッセージ：CB_SETTOPINDEX

 ウィンドウメッセージ： CB_SETTOPINDEX

コンボボックスからドロップダウンされるリストボックス内の指定した項目がウィンドウの一番上に表示されるようにスクロールします。

パラメータ：
index = wParam

index
表示するリストの位置を指定します（一番上のリストを0とします）。

補助解説：
エラーが起きた場合はCB_ERRが返答されます。


ウィンドウメッセージ：CB_SHOWDROPDOWN

 ウィンドウメッセージ： CB_SHOWDROPDOWN

コンボボックスのリストボックスをドロップダウンさせる、または隠します。

パラメータ：
show = wParam

show
リストボックスをドロップダウンさせる場合は1を、隠す場合は0を指定して下さい。

補助解説：
コンボボックスのウィンドウスタイルにCBS_DROPDOWNまたはCBS_DROPDOWNLISTがセットされている必要があります。


ウィンドウメッセージ：EM_CANUNDO

 ウィンドウメッセージ： EM_CANUNDO

指定したエディットコントロールの内容を元に戻すことができるかできないかを判断します。

パラメータ：
なし

補助解説：
元に戻すことができれば1を、できなければ0を返答します。


ウィンドウメッセージ：EM_GETLIMITTEXT

 ウィンドウメッセージ： EM_GETLIMITTEXT

エディットコントロールのテキスト文字数の限界を取得します。

パラメータ：
なし

補助解説：
テキスト文字数の限界値を返答します。


ウィンドウメッセージ：EM_GETLINE

 ウィンドウメッセージ： EM_GETLINE

エディットコントロールの指定した一行の文字列を取得します。

パラメータ：
line = wParam
str$ = lParam

line
何行目の文字列を取得するのかを指定します。

str$
取得した文字列が格納されます。

補助解説：
取得した文字の文字数を返答します。


ウィンドウメッセージ：EM_GETLINECOUNT

 ウィンドウメッセージ： EM_GETLINECOUNT

指定したエディットコントロールのカーソル位置が何行目にあるのかを取得します。

パラメータ：
なし

補助解説：
現在のカーソルの行を返答します。


ウィンドウメッセージ：EM_GETSEL

 ウィンドウメッセージ： EM_GETSEL

指定したエディットコントロールのカーソル位置、または選択された文字列の位置を取得します。

パラメータ：
startpos = wParam
endpos = lParam

startpos
カーソルの開始位置が格納されます。

endpos
カーソルの終了位置が格納されます。


ウィンドウメッセージ：EM_LIMITTEXT

 ウィンドウメッセージ： EM_LIMITTEXT

エディットコントロールで操作可能なバイト数の上限を設定します。

パラメータ：
max = wParam

max
扱うバイト数の上限を指定します。

補助解説：
64KB以上の設定はできません。
なるべく、これと同類のEM_SETLIMITTEXT メッセージを使用することをお勧めします。


ウィンドウメッセージ：EM_LINEINDEX

 ウィンドウメッセージ： EM_LINEINDEX

エディットコントロールにおいて指定した行が全体の何バイト目になるのかを取得します。

パラメータ：
line = wParam

line
ターゲットとなる行を指定します。

補助解説：
バイト数が返答されます。マルチラインについて有効です。行は上から0,1,2と数えられます。もし指定した行が存在しない場合は-1が返答されます。


ウィンドウメッセージ：EM_LINELENGTH

 ウィンドウメッセージ： EM_LINELENGTH

エディットコントロールにおいて指定したバイトにあたる一行が何バイトなのかを取得します。

パラメータ：
bytes = wParam

bytes
取得したい行を示すバイト数を指定します。

補助解説：
その行のバイト数が返答されます。マルチラインについて有効です。


ウィンドウメッセージ：EM_LINESCROLL

 ウィンドウメッセージ： EM_LINESCROLL

指定した数だけエディットウィンドウの内容をスクロールします。

パラメータ：
cx = wParam
cy = lParam

cx
横に何文字文スクロールするかを指定します。

cy
縦に何文字文スクロールするかを指定します。

補助解説：
文字数単位でスクロールされます。ドット単位でないことに注意して下さい。


ウィンドウメッセージ：EM_SCROLL

 ウィンドウメッセージ： EM_SCROLL

エディットウィンドウの内容をスクロールします。

パラメータ：
scroll = wParam

scroll
目的の動作を果たす定数を指定します。
定数名 | 意味
SB_LINEDOWN | 一行下にスクロールします。
SB_LINEUP | 一行上にスクロールします。
SB_PAGEDOWN | 一ページ下にスクロールします。
SB_PAGEUP | 一ページ上にスクロールします。


ウィンドウメッセージ：EM_SCROLLCARET

 ウィンドウメッセージ： EM_SCROLLCARET

エディットコントロールにおいてカーソルが見える位置まで自動的にスクロールします。

パラメータ：
なし


ウィンドウメッセージ：EM_SETLIMITTEXT

 ウィンドウメッセージ： EM_SETLIMITTEXT

エディットコントロールで操作可能なバイト数の上限を設定します。

パラメータ：
max = wParam

max
扱うバイト数の上限を指定します。

補助解説：
マルチラインの場合は、通常のエディットコントロールにおいて、Windows9x系統では64KB以上は設定できないようになっています。WindowsNT系統のOSでは実用は別として最大4GBまで指定できるようになっています。
シングルラインの場合はWindows9x系統では32KB、WindowsNT系統では2GBまでとなります。


ウィンドウメッセージ：EM_SETSEL

 ウィンドウメッセージ： EM_SETSEL

エディットコントロールのカーソル位置を設定します。

パラメータ：
startpos = wParam
endpos = lParam

startpos
カーソルの開始位置を指定します。

endpos
カーソルの終了位置を指定します。


ウィンドウメッセージ：LB_ADDSTRING

 ウィンドウメッセージ： LB_ADDSTRING

リストボックスに文字列を追加します。

パラメータ：
str$ = lParam

str$
挿入する文字列を指定します。

補助解説：
挿入先のリストボックスのウィンドウスタイルにLBS_SORTが含まれている場合のみ、自動的にアルファベット順の場所に追加されます。それ以外はリストの終端に追加されます。
追加する際、リストボックスのメモリに空きがなくなるとLB_ERRSPACEが返答されます。それ以外のエラー時にはLB_ERRが返答されます。


ウィンドウメッセージ：LB_DELETESTRING

 ウィンドウメッセージ： LB_DELETESTRING

リストボックス内の指定した文字列を削除します。

パラメータ：
index = wParam

index
削除する文字列のリストの位置を指定します（一番上のリストを0とします）。

補助解説：
削除後、リストボックスに残っている項目数が返答されます。エラーが起きた場合はLB_ERRが返答されます。


ウィンドウメッセージ：LB_FINDSTRING

 ウィンドウメッセージ： LB_FINDSTRING

リストボックス内の文字列を検索します。

パラメータ：
index = wParam
str$ = lParam

index
何番目のリストから検索するのかを指定します（一番上のリストを0とします）。0を指定するとリストボックス内のすべてが検索対象となります。

str$
検索する文字列を指定します。

補助解説：
対象のデータが見つかった場合、リストの何番目にあるのかが返答されます。見つからなかった場合、エラーが起こった場合はLB_ERRが返答されます。


ウィンドウメッセージ：LB_GETCARETINDEX

 ウィンドウメッセージ： LB_GETCARETINDEX

リストボックス内のキャレットの位置を取得します。

パラメータ：
なし

補助解説：
マルチセレクションボックスの場合はそのままキャレット位置が返答されます。シングルセレクションボックスの場合は選択されている位置が返答されます。


ウィンドウメッセージ：LB_GETCOUNT

 ウィンドウメッセージ： LB_GETCOUNT

リストボックス内の項目数を取得します。

パラメータ：
なし

補助解説：
リストボックス内の項目数が返答されます。エラーが起きた場合はLB_ERRが返答されます。


ウィンドウメッセージ：LB_GETCURSEL

 ウィンドウメッセージ： LB_GETCURSEL

シングルセレクションリストボックスにおいて選択されているリストが何番目にあるのかを取得します。

パラメータ：
なし

補助解説：
選択されているリストの位置が返答されます。エラーが起きた場合はLB_ERRが返答されます。
このメッセージはマルチセレクションボックスには送らないで下さい。


ウィンドウメッセージ：LB_GETITEMHEIGHT

 ウィンドウメッセージ： LB_GETITEMHEIGHT

リストボックス内の指定したアイテムの高さを取得します。

パラメータ：
index = wParam

index
リストの位置を指定します（一番上のリストを0とします）。対象のリストボックスのウィンドウスタイルにLBS_OWNERDRAWVARIABLEが含まれるときにだけ有効です。それ以外の場合は0でかまいません。

補助解説：
アイテムの高さのピクセル数が返答されます。エラーが起こった場合はLB_ERRが返答されます。


ウィンドウメッセージ：LB_GETSEL

 ウィンドウメッセージ： LB_GETSEL

リストボックス内の指定したアイテムが選択されているかどうかを調べます。

パラメータ：
index = wParam

index
リストの位置を指定します（一番上のリストを0とします）。

補助解説：
選択されている場合は1が、されていない場合は0が返答されます。エラーが起きた場合はLB_ERRが返答されます。


ウィンドウメッセージ：LB_GETSELCOUNT

 ウィンドウメッセージ： LB_GETSELCOUNT

マルチセレクションリストボックスにおいて、いくつの項目が選択されているのかを取得します。

パラメータ：
なし

補助解説：
選択されている項目数が返答されます。エラーが起きた場合はLB_ERRが返答されます。
このメッセージはマルチセレクションボックスにのみ有効です。


ウィンドウメッセージ：LB_GETTEXT

 ウィンドウメッセージ： LB_GETTEXT

リストボックス内の指定したリストの文字列を取得します。

パラメータ：
index = wParam
str$ = lParam

index
何番目のリストの文字列を取得するのかを指定します（一番上のリストを0とします）。

str$
取得した文字列が格納されます。

補助解説：
取得した文字列の長さが返答されます。エラーが起きた場合はLB_ERRが返答されます。


ウィンドウメッセージ：LB_GETTEXTLEN

 ウィンドウメッセージ： LB_GETTEXTLEN

リストボックス内の指定したリストの文字列長を取得します。

パラメータ：
index = wParam

index
何番目のリストの文字列長を取得するのかを指定します（一番上のリストを0とします）。

補助解説：
取得した文字列長さが返答されます。エラーが起きた場合はLB_ERRが返答されます。
マルチバイト文字の一文字が2文字として扱われるので注意して下さい。


ウィンドウメッセージ：LB_GETTOPINDEX

 ウィンドウメッセージ： LB_GETTOPINDEX

リストボックス内で、縦にスクロール表示している、一番上に見える項目の位置を取得します。

パラメータ：
なし

補助解説：
取得した位置が返答されます。スクロールされていない場合は0が返答されます。


ウィンドウメッセージ：LB_INSERTSTRING

 ウィンドウメッセージ： LB_INSERTSTRING

リストボックス内の指定した位置に文字列を挿入します。

パラメータ：
index = wParam
str$ = lParam

index
何番目のリストに追加するのかを指定します（一番上のリストを0とします）。

str$
追加する文字列を指定します。

補助解説：
文字列が挿入された位置が返答されます。リストボックスのメモリに空きがなくなるとLB_ERRSPACEが返答されます。それ以外のエラー時にはLB_ERRが返答されます。
リストボックスのウィンドウスタイルにLBS_SORTがあったとしてもそれは無視されます。


ウィンドウメッセージ：LB_RESETCONTENT

 ウィンドウメッセージ： LB_RESETCONTENT

リストボックスの内容をすべて消去します。

パラメータ：
なし


ウィンドウメッセージ：LB_SELECTSTRING

 ウィンドウメッセージ： LB_SELECTSTRING

リストボックス内の文字列を検索し、該当の項目を選択します。

パラメータ：
index = wParam
str$ = lParam

index
何番目のリストから検索するのかを指定します（一番上のリストを0とします）。0を指定するとリストボックス内のすべてが検索対象となります。

str$
検索する文字列を指定します。

補助解説：
対象のデータが見つかった場合、リストの何番目にあるのかが返答されます。見つからなかった場合、エラーが起こった場合はLB_ERRが返答されます。
このメッセージはシングルセレクションボックスにのみ有効です。


ウィンドウメッセージ：LB_SELITEMRANGE

 ウィンドウメッセージ： LB_SELITEMRANGE

リストボックス内の指定した範囲の項目を選択します。

パラメータ：
select = wParam
MAKELONG(first, last ) = lParam

select
対象の項目を選択する場合は1を、解除する場合は0を指定して下さい。

first
項目範囲の始めの位置を指定します（一番上のリストを0とします）。

last
項目範囲の終わりの位置を指定します（一番上のリストを0とします）。

補助解説：
エラーが起きた場合はLB_ERRが返答されます。
このメッセージはマルチセレクションボックスにのみ有効です。


ウィンドウメッセージ：LB_SELITEMRANGEEX

 ウィンドウメッセージ： LB_SELITEMRANGEEX

リストボックス内の指定した範囲の項目を選択します。

パラメータ：
first = wParam
last = lParam

first
項目範囲の始めの位置を指定します（一番上のリストを0とします）。

last
項目範囲の終わりの位置を指定します（一番上のリストを0とします）。

補助解説：
「first < last」の場合は指定した範囲が選択されます。「first > last」の場合は指定した範囲が解除されます。
エラーが起きた場合はLB_ERRが返答されます。
このメッセージはマルチセレクションボックスにのみ有効です。


ウィンドウメッセージ：LB_SETCARETINDEX

 ウィンドウメッセージ： LB_SETCARETINDEX

リストボックス内の指定した項目見える位置までスクロールします。

パラメータ：
index = wParam
MAKELONG(show, 0) = lParam

index
スクロールする項目の位置を指定します（一番上のリストを0とします）。

show
1を指定すると指定した項目すべてが見えるまでスクロールします。0を指定するとその項目の一部が見えるまでスクロールします。

補助解説：
エラーが起きた場合はLB_ERRが返答されます。


ウィンドウメッセージ：LB_SETCOLUMNWIDTH

 ウィンドウメッセージ： LB_SETCOLUMNWIDTH

水平にスクロールするリストボックス内のコラムの幅を設定します。

パラメータ：
pixel = wParam

pixel
コラムの幅をピクセル単位で指定します。

補助解説：
このメッセージは対照のリストボックスがLBS_MULTICOLUMNスタイルを持っている必要があります。


ウィンドウメッセージ：LB_SETCURSEL

 ウィンドウメッセージ： LB_SETCURSEL

シングルセレクションリストボックスにおいて指定した項目を選択します。

パラメータ：
index = wParam

index
選択するリストの位置を指定します（一番上のリストを0とします）。

補助解説：
選択したリストの位置が返答されます。エラーが起きた場合はLB_ERRが返答されます。
このメッセージはシングルセレクションボックスにのみ有効です。


ウィンドウメッセージ：LB_SETHORIZONTALEXTENT

 ウィンドウメッセージ： LB_SETHORIZONTALEXTENT

リストボックスのリスト項目の幅を設定します。

パラメータ：
pixel = wParam

pixel
項目の幅をピクセル単位で指定します。

補助解説：
このメッセージは垂直にスクロールするリストボックス、水平スクロールバーを持つリストボックスにのみ有効です。
pixelで指定した幅よりリストボックスの幅が大きい場合は水平スクロールバーは表示されません。


ウィンドウメッセージ：LB_SETITEMHEIGHT

 ウィンドウメッセージ： LB_SETITEMHEIGHT

リストボックス内の項目の高さを設定します。

パラメータ：
index = wParam
MAKELONG(hight, 0) = lParam

index
設定する項目の位置を指定します（一番上のリストを0とします）。このパラメータは対象のリストボックスがLBS_OWNERDRAWVARIABLEスタイルを持っている場合にのみ有効です。

hight
項目の高さをピクセル単位で指定します。

補助解説：
エラーが起きた場合はLB_ERRが返答されます。
リストボックスがLBS_OWNERDRAWVARIABLEスタイルをもっていない場合でindexパラメータが無視されたとき、すべての項目がhightで指定した高さにセットされます。


ウィンドウメッセージ：LB_SETSEL

 ウィンドウメッセージ： LB_SETSEL

マルチセレクションリストボックスにおいて指定した項目を選択または解除します。

パラメータ：
select = wParam

index = lParam

select
対象の項目を選択する場合は1を、解除する場合は0を指定して下さい。

index
設定するリストの位置を指定します（一番上のリストを0とします）。

補助解説：
エラーが起きた場合はLB_ERRが返答されます。
このメッセージはマルチセレクションボックスにのみ有効です。


ウィンドウメッセージ：LB_SETTOPINDEX

 ウィンドウメッセージ： LB_SETTOPINDEX

リストボックス内の指定した項目がウィンドウの一番上に表示されるようにスクロールします。

パラメータ：
index = wParam

index
表示するリストの位置を指定します（一番上のリストを0とします）。

補助解説：
エラーが起きた場合はLB_ERRが返答されます。


ウィンドウメッセージ：SBM_ENABLE_ARROWS

 ウィンドウメッセージ： SBM_ENABLE_ARROWS

スクロールバーの各機能を使用可能、または使用不可にします。

パラメータ：
flag = wParam

flag
次の定数のどれか一つを指定します。
定数名 | 意味
ESB_DISABLE_BOTH | スクロールバーのすべての機能を使用不可にします。
ESB_DISABLE_DOWN | 垂直スクロールバーにおいて、下ボタンを使用不可にします。
ESB_DISABLE_LTUP | 垂直スクロールバーの場合は上ボタンを、水平スクロールバーの場合は左ボタンを使用不可にします。
ESB_DISABLE_LEFT | 水平スクロールバーにおいて、左ボタンを使用不可にします。
ESB_DISABLE_RIGHT | 水平スクロールバーにおいて、右ボタンを使用不可にします。
ESB_DISABLE_RTDN | 垂直スクロールバーの場合は下ボタンを、水平スクロールバーの場合は右ボタンを使用不可にします。
ESB_DISABLE_UP | 垂直スクロールバーにおいて、上ボタンを使用不可にします。
ESB_ENABLE_BOTH | スクロールバーのすべての機能を使用可能にします。

補助解説：
メッセージ処理が成功した場合は1が、エラーが起きた場合は0が返答されます。


ウィンドウメッセージ：SBM_GETPOS

 ウィンドウメッセージ： SBM_GETPOS

指定した現在のスクロールバーのポジションを取得します。

パラメータ：
なし

補助解説：
スクロールバーのポジションが返ります。


ウィンドウメッセージ：SBM_GETRANGE

 ウィンドウメッセージ： SBM_GETRANGE

スクロールバーにおいて、スクロールできる最大値、最小値を取得します。

パラメータ：
min = wParam
max = lParam

min
スクロールの最小値が格納されます。

max
スクロールの最大値が格納されます。


ウィンドウメッセージ：SBM_SETPOS

 ウィンドウメッセージ： SBM_SETPOS

スクロールバーのポジションを設定します。

パラメータ：
pos = wParam
redraw = lParam

pos
新しいポジションを指定します。

redraw
新しい内容で再描画する場合は1を指定して下さい。

補助解説：
設定前のスクロールバーのポジションが返答されます。エラーが起きた場合は0が返ります。


ウィンドウメッセージ：SBM_SETRANGE

 ウィンドウメッセージ： SBM_SETRANGE

スクロールバーにおいて、スクロールできる最大値、最小値を設定します。

パラメータ：
min = wParam
max = lParam

min
スクロールの最小値を指定します。

max
スクロールの最大値を指定します。

補助解説：
設定前のスクロールバーのポジションが返答されます。エラーが起きた場合は0が返答されます。


ウィンドウメッセージ：WM_ACTIVATE

 ウィンドウメッセージ： WM_ACTIVATE

ウィンドウをアクティブまたは非アクティブにします。

パラメータ：
State = LOWORD(wParam)
Minimized = HIWORD(wParam)
hWnd = lParam

State
WA_INACTIVE | ウィンドウが非アクティブになります。
WA_ACTIVE | マウスクリック以外の方法でウィンドウがアクティブになります (ウィンドウを選択するためにキーボード インターフェイスを使うなど)。
WA_CLICKACTIVE | マウス クリックによってウィンドウをアクティブにします。

Minimized
アクティブ、非アクティブにされるウィンドウの最小化の状態です。0の場合、ウィンドウは最小化されません。1の場合、ウィンドウは最小化されます。

hWnd
アクティブ、非アクティブにされるウィンドウのハンドルです。

補助解説：
SendWndMsg命令語でこのメッセージを送った場合は0が返答されます。


ウィンドウメッセージ：WM_CHAR

 ウィンドウメッセージ： WM_CHAR

文字キーが押された時に通知されます。

パラメータ：
CharCode = wParam
Flags = lParam

CharCode
キーの文字コードです。

Flags
0-15 | リピートカウント、つまりキーを押し続けている間に発生するキー操作回数を示します。
16-23 | スキャンコードを示します。この値は、OEM により異なります。
24 | 拡張されたキー（拡張101または102キーのキーボード上にある右側のAltキーやCtrlキーなど）かどうかを示します。拡張キーボードのキーであれば1、それ以外は0です。
25-28 | Windows内部で使用されます。
29 | コンテキストコードを示します。同時にAltキーが押されたときは1、それ以外は0です。
30 | 前のキー状態を示します。メッセージの送出前にキーが押されたときは1、押されなかったときは0です。
31 | 遷移状態を示します。キーが離されたときは1、押されたときは0です。

補助解説：
SendWndMsg命令語でこのメッセージを送った場合は0が返答されます。
WM_KEYDOWNとの違いは文字コードを対象としているということです。WM_KEYDOWNでは仮想キーコードを扱いますが、WM_CHARではWindowsで使用される文字コードが扱われます。

WM_KEYDOWN メッセージ


ウィンドウメッセージ：WM_CLOSE

 ウィンドウメッセージ： WM_CLOSE

ウィンドウの「閉じる」ボタンが押されたことを通知します。

パラメータ：
なし

補助解説：
SendWndMsg命令語でこのメッセージを送った場合は0が返答されます。
このメッセージはウィンドウ右上の「閉じる」ボタンが押された場合に通知されます。実際にはWM_CLOSE メッセージが送られるのみで、ウィンドウは自動的には破棄されません。ウィンドウを破棄する場合はDelWnd 命令語を使用して下さい。

DelWnd 命令語


ウィンドウメッセージ：WM_COMMAND

 ウィンドウメッセージ： WM_COMMAND

コマンドメッセージを通知します。

パラメータ：
NotifyCode = LOWORD(wParam)
WndID = lParam

NotifyCode
コントロールのIDです。

WndID
呼び出し元のウィンドウのハンドルです。

補助解説：
SendWndMsg命令語でこのメッセージを送った場合は0が返答されます。
コマンドメッセージとはメニューコントロールなど、ユーザーから通知されるメッセージです。
メニューアイテムやボタンなどの通知に使用されます。


ウィンドウメッセージ：WM_COPY

 ウィンドウメッセージ： WM_COPY

エディットウィンドウなどのコピーコマンドを処理します。

パラメータ：
なし

補助解説：
エディットコントロールを持つウィンドウにのみ有効です。


ウィンドウメッセージ：WM_CUT

 ウィンドウメッセージ： WM_CUT

エディットウィンドウなどの切り取りコマンドを処理します。

パラメータ：
なし

補助解説：
エディットコントロールを持つウィンドウにのみ有効です。


ウィンドウメッセージ：WM_GETTEXT

 ウィンドウメッセージ： WM_GETTEXT

ウィンドウテキストを取得します。

パラメータ：
MaxBytes = wParam
str$ = lParam

MaxBytes
格納するバッファの最大サイズを指定します（ヌル文字も含む）。環境にあった適度な数にして下さい。

str$
取得した文字列が格納されます。

補助解説：
取得した文字列のバイト数が返答されます。
MaxBytesで指定したバイト数より、取得した文字列長のほうが長かった場合は文字列がカットされます。
MaxBytesで正確な指定をしたい場合はWM_GETTEXTLENGTH メッセージを使用してあらかじめテキストのバイト数を調べておくと良いでしょう。


ウィンドウメッセージ：WM_GETTEXTLENGTH

 ウィンドウメッセージ： WM_GETTEXTLENGTH

ウィンドウテキストのバイト数を取得します。

パラメータ：
なし

補助解説：
文字列のバイト数が返答されます。


ウィンドウメッセージ：WM_HSCROLL

 ウィンドウメッセージ： WM_HSCROLL

ユーザーがウィンドウの水平スクロールバーを操作したときに通知されます。

パラメータ：
ScrollCode = LOWORD(wParam)
pos = HIWORD(wParam)
hScrollbar = lParam

ScrollCode
スクロール要求の種類です。以下のいずれかになります。
定数名 | 意味
SB_ENDSCROLL | スクロール終了
SB_LEFT | 左端へスクロール
SB_LINELEFT | 左へスクロール
SB_LINERIGHT | 右へスクロール
SB_PAGELEFT | １ページ左へスクロール
SB_PAGERIGHT | １ページ右へスクロール
SB_RIGHT | 右端へスクロール
SB_THUMBPOSITION | 絶対位置へスクロール。位置はposパラメータで指定されます。
SB_THUMBTRACK | スクロールボックスを指定位置へドラッグします。現在位置はposパラメータで指定されます。

pos
ScrollCodeがSB_THUMBPOSITIONまたはSB_THUMBTRACKの時にスクロール位置が指定されます。それ以外の場合は使用しません。

pos
スクロールコントロールの場合はそのウィンドウハンドルが設定されます。
ウィンドウ内の水平スクロールバーの場合は0が設定されます。

補助解説：
SendWndMsg命令語でこのメッセージを送った場合は0が返答されます。


ウィンドウメッセージ：WM_KEYDOWN

 ウィンドウメッセージ： WM_KEYDOWN

キーが押された時に通知されます。

パラメータ：
KeyCode = wParam
Flags = lParam

KeyCode
押されたキーの仮想キーコードです。

Flags
0-7 | スキャンコード(OEM 依存の値)です。
8 | 拡張キー。ファンクションキーや数字キーパッド上のキーです(拡張キーの場合は1）。
9-10 | 未使用
11-12 | Windows内部で使用されます。
13 | コンテキストコードです（Altキーを押した状態でほかのキーを押した場合は1、それ以外は0）。
14 | 直前のキー状態です（呼び出される前にキーが押されていた場合は1、離されていた場合は0）。
15 | 変換状態です（キーを離している場合は1、押されている場合は0）。

補助解説：
SendWndMsg命令語でこのメッセージを送った場合は0が返答されます。
WM_CHARとの違いは仮想キーコードを扱うということです。細かな文字コードを扱うことは無理ですが、十字キーやファンクションキーなどを扱うことが可能です。

WM_CHAR メッセージ


ウィンドウメッセージ：WM_KEYUP

 ウィンドウメッセージ： WM_KEYUP

キーが離された時に通知されます。

パラメータ：
KeyCode = wParam
Flags = lParam

KeyCode
離されたキーの仮想キーコードです。

Flags
0-7 | スキャンコード(OEM 依存の値)です。
8 | 拡張キー。ファンクションキーや数字キーパッド上のキーです(拡張キーの場合は1）。
9-10 | 未使用
11-12 | Windows内部で使用されます。
13 | コンテキストコードです（Altキーを押した状態でほかのキーを押した場合は1、それ以外は0）。
14 | 直前のキー状態です（呼び出される前にキーが押されていた場合は1、離されていた場合は0）。
15 | 変換状態です（キーを離している場合は1、押されている場合は0）。

補助解説：
SendWndMsg命令語でこのメッセージを送った場合は0が返答されます。

WM_KEYDOWN メッセージ


ウィンドウメッセージ：WM_LBUTTONDBLCLK

 ウィンドウメッセージ： WM_LBUTTONDBLCLK

マウスの左ボタンをダブルクリックした時に通知されます。

パラメータ：
Flags = wParam
x = LOWORD(lParam)
y = HIWORD(lParam)

Flags
MK_CONTROL | Ctrlキーが押されていることを示します。
MK_LBUTTON | マウスの左ボタンが押されていることを示します。
MK_MBUTTON | マウスの中央ボタンが押されていることを示します。
MK_RBUTTON | マウスの右ボタンが押されていることを示します。
MK_SHIFT | Shiftキーが押されていることを示します。

x
マウスのX座標です。

y
マウスのY座標です。

補助解説：
SendWndMsg命令語でこのメッセージを送った場合は0が返答されます。

WM_LBUTTONDOWN メッセージ、WM_LBUTTONUP メッセージ


ウィンドウメッセージ：WM_LBUTTONDOWN

 ウィンドウメッセージ： WM_LBUTTONDOWN

マウスの左ボタンが押された時に通知されます。

パラメータ：
Flags = wParam
x = LOWORD(lParam)
y = HIWORD(lParam)

Flags
MK_CONTROL | Ctrlキーが押されていることを示します。
MK_LBUTTON | マウスの左ボタンが押されていることを示します。
MK_MBUTTON | マウスの中央ボタンが押されていることを示します。
MK_RBUTTON | マウスの右ボタンが押されていることを示します。
MK_SHIFT | Shiftキーが押されていることを示します。

x
マウスのX座標です。

y
マウスのY座標です。

補助解説：
SendWndMsg命令語でこのメッセージを送った場合は0が返答されます。

WM_LBUTTONDBLCLK メッセージ、WM_LBUTTONUP メッセージ


ウィンドウメッセージ：WM_LBUTTONUP

 ウィンドウメッセージ： WM_LBUTTONUP

マウスの左ボタンが離された時に通知されます。

パラメータ：
Flags = wParam
x = LOWORD(lParam)
y = HIWORD(lParam)

Flags
MK_CONTROL | Ctrlキーが押されていることを示します。
MK_MBUTTON | マウスの中央ボタンが押されていることを示します。
MK_RBUTTON | マウスの右ボタンが押されていることを示します。
MK_SHIFT | Shiftキーが押されていることを示します。

x
マウスのX座標です。

y
マウスのY座標です。

補助解説：
SendWndMsg命令語でこのメッセージを送った場合は0が返答されます。

WM_LBUTTONDBLCLK メッセージ、WM_LBUTTONDOWN メッセージ


ウィンドウメッセージ：WM_MBUTTONDBLCLK

 ウィンドウメッセージ： WM_MBUTTONDBLCLK

マウスの中央ボタンをダブルクリックした時に通知されます。

パラメータ：
Flags = wParam
x = LOWORD(lParam)
y = HIWORD(lParam)

Flags
MK_CONTROL | Ctrlキーが押されていることを示します。
MK_LBUTTON | マウスの左ボタンが押されていることを示します。
MK_MBUTTON | マウスの中央ボタンが押されていることを示します。
MK_RBUTTON | マウスの右ボタンが押されていることを示します。
MK_SHIFT | Shiftキーが押されていることを示します。

x
マウスのX座標です。

y
マウスのY座標です。

補助解説：
SendWndMsg命令語でこのメッセージを送った場合は0が返答されます。

WM_MBUTTONDOWN メッセージ、WM_MBUTTONUP メッセージ


ウィンドウメッセージ：WM_MBUTTONDOWN

 ウィンドウメッセージ： WM_MBUTTONDOWN

マウスの中央ボタンが押された時に通知されます。

パラメータ：
Flags = wParam
x = LOWORD(lParam)
y = HIWORD(lParam)

Flags
MK_CONTROL | Ctrlキーが押されていることを示します。
MK_LBUTTON | マウスの左ボタンが押されていることを示します。
MK_MBUTTON | マウスの中央ボタンが押されていることを示します。
MK_RBUTTON | マウスの右ボタンが押されていることを示します。
MK_SHIFT | Shiftキーが押されていることを示します。

x
マウスのX座標です。

y
マウスのY座標です。

補助解説：
SendWndMsg命令語でこのメッセージを送った場合は0が返答されます。

WM_MBUTTONDBLCLK メッセージ、WM_MBUTTONUP メッセージ


ウィンドウメッセージ：WM_MBUTTONUP

 ウィンドウメッセージ： WM_MBUTTONUP

マウスの中央ボタンが離された時に通知されます。

パラメータ：
Flags = wParam
x = LOWORD(lParam)
y = HIWORD(lParam)

Flags
MK_CONTROL | Ctrlキーが押されていることを示します。
MK_LBUTTON | マウスの左ボタンが押されていることを示します。
MK_RBUTTON | マウスの右ボタンが押されていることを示します。
MK_SHIFT | Shiftキーが押されていることを示します。

x
マウスのX座標です。

y
マウスのY座標です。

補助解説：
SendWndMsg命令語でこのメッセージを送った場合は0が返答されます。

WM_MBUTTONDBLCLK メッセージ、WM_MBUTTONDOWN メッセージ


ウィンドウメッセージ：WM_MOUSEMOVE

 ウィンドウメッセージ： WM_MOUSEMOVE

マウスポインタが移動した時に通知されます。

パラメータ：
Flags = wParam
x = LOWORD(lParam)
y = HIWORD(lParam)

Flags
MK_CONTROL | Ctrlキーが押されていることを示します。
MK_LBUTTON | マウスの左ボタンが押されていることを示します。
MK_MBUTTON | マウスの中央ボタンが押されていることを示します。
MK_RBUTTON | マウスの右ボタンが押されていることを示します。
MK_SHIFT | Shiftキーが押されていることを示します。

x
マウスのX座標です。

y
マウスのY座標です。

補助解説：
SendWndMsg命令語でこのメッセージを送った場合は0が返答されます。


ウィンドウメッセージ：WM_MOVE

 ウィンドウメッセージ： WM_MOVE

ウィンドウの位置が変更された時に通知されます。

パラメータ：
x = LOWORD(lParam)
y = HIWORD(lParam)

x
ウィンドウの左上の新しいX座標です。

y
ウィンドウの左上の新しいY座標です。

補助解説：
SendWndMsg命令語でこのメッセージを送った場合は0が返答されます。


ウィンドウメッセージ：WM_PAINT

 ウィンドウメッセージ： WM_PAINT

ウィンドウの再描画が必要な時に通知されます。

パラメータ：
なし

補助解説：
SendWndMsg命令語でこのメッセージを送った場合は0が返答されます。
ActiveBasicではグラフィックスまたはプロンプトの文字列の再描画が自動的に行われるので、このメッセージは無視して下さい。


ウィンドウメッセージ：WM_PASTE

 ウィンドウメッセージ： WM_PASTE

エディットウィンドウなどの貼り付けコマンドを処理します。

パラメータ：
なし

補助解説：
エディットコントロールを持つウィンドウにのみ有効です。


ウィンドウメッセージ：WM_RBUTTONDBLCLK

 ウィンドウメッセージ： WM_RBUTTONDBLCLK

マウスの右ボタンをダブルクリックした時に通知されます。

パラメータ：
Flags = wParam
x = LOWORD(lParam)
y = HIWORD(lParam)

Flags
MK_CONTROL | Ctrlキーが押されていることを示します。
MK_LBUTTON | マウスの左ボタンが押されていることを示します。
MK_MBUTTON | マウスの中央ボタンが押されていることを示します。
MK_RBUTTON | マウスの右ボタンが押されていることを示します。
MK_SHIFT | Shiftキーが押されていることを示します。

x
マウスのX座標です。

y
マウスのY座標です。

補助解説：
SendWndMsg命令語でこのメッセージを送った場合は0が返答されます。

WM_RBUTTONDOWN メッセージ、WM_RBUTTONUP メッセージ


ウィンドウメッセージ：WM_RBUTTONDOWN

 ウィンドウメッセージ： WM_RBUTTONDOWN

マウスの右ボタンが押された時に通知されます。

パラメータ：
Flags = wParam
x = LOWORD(lParam)
y = HIWORD(lParam)

Flags
MK_CONTROL | Ctrlキーが押されていることを示します。
MK_LBUTTON | マウスの左ボタンが押されていることを示します。
MK_MBUTTON | マウスの中央ボタンが押されていることを示します。
MK_RBUTTON | マウスの右ボタンが押されていることを示します。
MK_SHIFT | Shiftキーが押されていることを示します。

x
マウスのX座標です。

y
マウスのY座標です。

補助解説：
SendWndMsg命令語でこのメッセージを送った場合は0が返答されます。

WM_RBUTTONDBLCLK メッセージ、WM_RBUTTONUP メッセージ


ウィンドウメッセージ：WM_RBUTTONUP

 ウィンドウメッセージ： WM_RBUTTONUP

マウスの右ボタンが離された時に通知されます。

パラメータ：
Flags = wParam
x = LOWORD(lParam)
y = HIWORD(lParam)

Flags
MK_CONTROL | Ctrlキーが押されていることを示します。
MK_LBUTTON | マウスの左ボタンが押されていることを示します。
MK_MBUTTON | マウスの中央ボタンが押されていることを示します。
MK_SHIFT | Shiftキーが押されていることを示します。

x
マウスのX座標です。

y
マウスのY座標です。

補助解説：
SendWndMsg命令語でこのメッセージを送った場合は0が返答されます。

WM_RBUTTONDBLCLK メッセージ、WM_RBUTTONDOWN メッセージ


ウィンドウメッセージ：WM_SETTEXT

 ウィンドウメッセージ： WM_SETTEXT

ウィンドウテキストを設定します。

パラメータ：
str$ = lParam

str$
設定する文字列を指定します。

補助解説：
メッセージ処理が成功した場合は1が返答されます。


ウィンドウメッセージ：WM_SIZE

 ウィンドウメッセージ： WM_SIZE

ウィンドウのサイズが変更された時に通知されます。

パラメータ：
Type = wParam
Width = LOWORD(lParam)
Height = HIWORD(lParam)

Type
SIZE_MAXIMIZED | ウィンドウが最大化することを示します。
SIZE_MINIMIZED | ウィンドウが最小化することを示します。
SIZE_RESTORED | ウィンドウサイズが変更されたことを示します。SIZE_MINIMIZEDとSIZE_MAXIMIZEDは適用されません。
SIZE_MAXHIDE | ほかのウィンドウが最大表示されたとき、すべてのポップアップウィンドウにメッセージが送られます。
SIZE_MAXSHOW | ほかのウィンドウが元のサイズに戻されたとき、すべてのポップアップウィンドウにメッセージが送られます。

Width
変更後のウィンドウの幅です。

Height
変更後のウィンドウの高さです。

補助解説：
SendWndMsg命令語でこのメッセージを送った場合は0が返答されます。


ウィンドウメッセージ：WM_UNDO

 ウィンドウメッセージ： WM_UNDO

エディットウィンドウなどの元に戻すコマンドを処理します。

パラメータ：
なし

補助解説：
エディットコントロールを持つウィンドウにのみ有効です。


ウィンドウメッセージ：WM_VSCROLL

 ウィンドウメッセージ： WM_VSCROLL

ユーザーがウィンドウの垂直スクロールバーを操作したときに通知されます。

パラメータ：
ScrollCode = LOWORD(wParam)
pos = HIWORD(wParam)
hScrollbar = lParam

ScrollCode
スクロール要求の種類です。以下のいずれかになります。
定数名 | 意味
SB_BOTTOM | 一番下までスクロール
SB_ENDSCROLL | スクロール終了
SB_LINEDOWN | 下へスクロール
SB_LINEUP | 上へスクロール
SB_PAGEDOWN | １ページ下へスクロール
SB_PAGEUP | １ページ上へスクロール
SB_THUMBPOSITION | 絶対位置へスクロール。位置はposパラメータで指定されます。
SB_THUMBTRACK | スクロールボックスを指定位置へドラッグします。現在位置はposパラメータで指定されます。
SB_TOP | 一番上までスクロール

pos
ScrollCodeがSB_THUMBPOSITIONまたはSB_THUMBTRACKの時にスクロール位置が指定されます。それ以外の場合は使用しません。

pos
スクロールコントロールの場合はそのウィンドウハンドルが設定されます。
ウィンドウ内の垂直スクロールバーの場合は0が設定されます。

補助解説：
SendWndMsg命令語でこのメッセージを送った場合は0が返答されます。


 DIMOUSESTATE 構造体

直接データによるマウスの状況が格納されます。

書式
Type DIMOUSESTATE
    lX As Long
    lY As Long
    lZ As Long
    rgbButtons[3] As Byte
End Type
lX
X軸方向のマウスの移動量が格納されます。
lY
Y軸方向のマウスの移動量が格納されます。
lZ
ホイールの移動量が格納されます。ホイールを持たない環境のときは 0 が格納されます。
rgbButtons
rgbButtons[0]に左ボタン、rgbButtons[1]に右ボタン、rgbButtons[2]に中央ボタンの状況が格納されます。各要素の上位ビットが1の場合、ボタンが押されていることを示します。

解説

通常のWindows環境と違い、DirectInputによるマウス入力ではカーソルという概念が存在しません。カーソルが無い代わりに、マウスのXまたはY方向の移動量を取得することでその挙動を考慮していく必要があります。マウスの移動量はこの関数が前回呼び出された時点を0としてからの相対値になります。

環境情報

ソースファイル dx_input.sbp 内で定義済み

CInputMouseクラス


 D3DCOLOR_RGBA マクロ関数

指定されたRGBA値から、D3DCOLOR型データを作ります。

書式
D3DCOLOR_RGBA(
    r,
    g,
    b,
    a
)
r
色の赤成分を0～255の範囲で指定します。
g
色の緑成分を0～255の範囲で指定します。
b
色の青成分を0～255の範囲で指定します。
a
アルファ値を0～255の範囲で指定します。

戻り値

RGBA値がD3DCOLOR型で返ります。

環境情報

インクルード ファイル: d3d9types.sbp 内で定義済み

D3DCOLOR_XRGB関数


 D3DCOLOR_XRGB マクロ関数

指定されたRGB値から、D3DCOLOR型データを作ります。アルファ値は自動的に255に設定されます。

書式
D3DCOLOR_XRGB(
    r,
    g,
    b
)
r
色の赤成分を0～255の範囲で指定します。
g
色の緑成分を0～255の範囲で指定します。
b
色の青成分を0～255の範囲で指定します。

戻り値

RGB値がD3DCOLOR型で返ります。

環境情報

インクルード ファイル: d3d9types.sbp 内で定義済み

D3DCOLOR_RGBA関数


 D3DVECTOR 構造体

3D空間に対応するベクトル値を保持します。

書式
Type D3DVECTOR
    x As Single
    y As Single
    z As Single
End Type
x
X座標軸上の値を実数で指定します。
y
Y座標軸上の値を実数で指定します。
z
Z座標軸上の値を実数で指定します。

環境情報

インクルード ファイル: d3d9types.sbp 内で定義済み


 Ex表記による文字列

ダブルクォート(")の前に "Ex" と表記しておくと、文字列内のエスケープシーケンスが有効になります。利用可能なエスケープシーケンスは以下の通りです。

記号 | 意味
\\ | \文字
\0 | NULL文字
\n | 改行、復帰文字
\r | キャリッジ リターン
\t | タブ文字
\q | ダブルクォート(")
\xhh | \xの後に16進表記で文字コードを指定

プログラム例:

Dim a As String
a=Ex"エスケープシーケンスのテスト\r\nここは二行目"
MessageBox(0,a,"test",MB_OK)


 イベント コーディング
はじめに

このページではウィンドウ デザインが完了しているのを前提に解説を進めていきます。ウィンドウ デザインについての詳しい説明はここをクリックして下さい。

イベント コーディングとは、ユーザーがボタンをクリックするなどのイベント発生時に動作するプログラムをコーディングしていくことです。イベントが発生するとOSに通知され、次にOSからプログラムへ通知されます。プログラム側ではコールバック関数を介してイベント プロシージャが呼び出されます。開発者はこのイベント プロシージャをコーディングすることになります。

コーディング方法

イベント処理にはいくつか種類がありますが、最初はメイン ウィンドウの基本メッセージによるものを紹介します。ノーマル ウィンドウを作成し、ウィンドウ内の適当な位置を右クリックしてみて下さい。メニューがポップアップされるので、「イベント コード」をクリックします。表示されたイベント リストの中から任意のイベントを選択し、「コーディング」ボタンをクリックします。通常、イベント プロシージャが自動的に作成されますが、既にそのプロシージャが存在する場合はプロシージャの定義部が反転表示されます。

ウィンドウにメニューが貼り付けられている場合はメニューをクリックした時のイベント コーディングを行うことができます。メニュー デザインについての説明はここをクリックしてご覧下さい。ウィンドウ内の任意の位置を右クリックし、「メニューによるイベント」をクリックします。任意のメニュー項目を選択し、コーディングを行います。

最後はコントロールによるイベント処理です。ウィンドウ内にコントロールが貼り付けられている場合はそのコントロール上を右クリックし、ポップアップされたメニューの「イベント コード」をクリックします。任意のイベントを選択し、コーディングを行います。


 メニュー デザイン
はじめに

メニューをデザインするためにはプロジェクトが作成されている必要があります。更に、作成したメニューをウィンドウに貼り付けたい場合は対象となるウィンドウが存在している必要があります。ウィンドウ デザインについての説明はここをクリックしてご覧下さい。

作り方

プロジェクト ビューの「Material」タブを開き、「メニュー」フォルダを右クリックして新規にメニューを作成します。作成されたメニューを開くと編集ウィンドウが表示されます。
通常、メニュー項目を任意の位置に作成したい場合、それより１つ上の項目を選択して「挿入」ボタンをクリックします。挿入する際、選択した項目がポップアップの場合はメッセージが表示され、ポップアップ内へ挿入する場合は「はい」を、ポップアップと同じ層に挿入する場合は「いいえ」をクリックします。

キャプションには実際にメニュー項目に表示されるテキストを設定します。IDにはメニューがクリックされた際などに通知される識別名を設定します。ポップアップに設定したメニューはIDを持たない代わりにポップアップ メニューをプルダウン表示します。セパレータに設定するとその項目にはラインが引かれ、前後の項目を区切ります。セパレータもIDを持ちません。

編集が完了したメニューをウィンドウに貼り付ける場合は、まずは対象となるウィンドウを開きます。そのウィンドウ プロパティ内に「メニュー」という設定欄があるので、そこで作成したメニューのIDを設定します。

ポップアップ メニュー

ActiveBasicにはTrackPopupMenu命令語が存在し、ウィンドウ内の任意の位置にポップアップ メニューを表示することができます。この際に使用するメニュー ハンドル名は、以下のような形式になっています。

hMenu_＜メニューID＞_＜項目の位置＞...

ここで注意すべき点は、ポップアップ メニューには一番最上位の層の項目は利用できないということです。最低限、１つ下のメニューの層を設定します。以下のようなメニュー構造で例を挙げてみます。

EditMenu |
 | 元に戻す(&U)
 | -
 | 切り取り(&T)
 | コピー(&C)
 | 貼り付け(&P)
FileMenu |
 | 開く(&O)
 | 削除(&D)
 | -
 | プロパティ(&R)

※メニューIDは "MainMenu" とします。

EditMenu項目を示すハンドル名は "hMenu_MainMenu_0" となり、その下のFileMenu項目は "hMenu_MainMenu_1" となります。

イベント処理

メニュー項目がクリックされるとウィンドウに通知され、イベント処理が要求されます。イベント コーディングの方法はここをクリックして下さい。


 ウィンドウ デザイン
準備

RADツールを使ってウィンドウをデザインするためには、プロジェクトを作成しなければなりません。プロジェクトについての詳しい説明はここをクリックしてご覧下さい。
早速ベースとなるプロジェクトを作成します。ProjectEditorを立ち上げ、メニューの「ファイル」→「新規作成」をクリックして下さい。表示されたリストの中から "プロジェクト（*.pj）" を選択し、OKボタンをクリックします。「プロジェクトの作成」ダイアログが表示されたらノーマル ウィンドウ ベースを選択し、プロジェクト名の入力、生成先のディレクトリを確認して「次へ」ボタンをクリックします。内容を確認して「完了」ボタンをクリックします。

各ウィンドウの役割

作業ウィンドウに作成中のウィンドウ イメージが再現表示されます。コントロールの選択や位置、サイズの変更をすることができます。選択されたコントロールは赤い枠で囲まれます。
ツール ウィンドウでは挿入したいコントロールを選択することができます。マウス アイコンが選択されている場合は既存の作業ウィンドウ内のコントロールを選択、編集することができます。他のアイコンを選択し、作業ウィンドウ内の任意の場所をクリックすると新規にコントロールを挿入することができます。
プロパティ ウィンドウには選択されたコントロールの詳細情報が表示されます。同時に、詳細情報を編集、設定することができます。

挿入、編集できるコントロール
コントロール名 | 概要
テキスト ボックス | テキストを表示します。
エディット ボックス | ユーザーが文字列の編集操作を行うことができます。
グループ ボックス | 複数のコントロールを囲むことができます。
ボタン | クリックすることができるボタンです。
チェック ボックス | ON/OFFの設定ができるボタンです。
ラジオ ボタン | 複数の項目から１つを選択するボタンです。
水平スクロールバー | 現在位置を表示、設定します。
垂直スクロールバー | 現在位置を表示、設定します。
アップ ダウン コントロール | 上下のボタンで数値を設定します。
トラック バー | 目盛が付いた移動バー。
プログレス バー | 進行状況を表示するバー。
コンボ ボックス | ドロップダウン リストの中から項目を選択することができます。
リスト ボックス | 複数の項目を表示、選択できるリストです。
リスト ビュー | リスト ボックス内にアイコンやテキストを並べて表示するビューです。
ツリー ビュー | リストを階層構造で表示します。
イメージ ボックス | 四角形やビットマップ、アイコンを表示します。

ウィンドウ デザインに関するプロジェクト内のファイルについて

編集したウィンドウ情報はプロジェクト内のあるファイルに保存されます。また、実行時にそのデータを元にBasicプログラムが生成されます。

・*.wnd … ウィンドウ情報が格納されるデータ ファイル。
・*.wbp … ウィンドウ情報を元に生成されるプログラム ファイル。

上記２つのファイルのファイル名はプロジェクト名となり、１つのプロジェクトに１つずつ存在します。
ここで注意すべき点は .wbp ファイルはProjectEditorからプロジェクトを実行する際にその都度更新されるということです。テキスト エディタなどで .wbp ファイルを編集した場合もProjectEditorで実行すると内容が新しいものに書き換えられてしまうので、基本的に .wbp ファイルの編集は避けることをお勧めします。