目次
42.バージョンアップ履歴
1〜15 はじめに,使用手順 等
16〜29 サンプルプログラム
30〜41 関数リファレンス
43〜46 著作権・使用許諾,作者への連絡先 等
バージョンアップ履歴
ver.1.0 1998/8/7
"ESPLIB.H"の誕生.
ver.1.1 1998/8/17
24ビットモードで動作しなかった点を修正.関数Get/PutLineR/G/B, Get/PutWindowR/G/Bを廃止
ver.1.2 1998/8/19
ESP_GetBmpInfo() 関数および BMPINFO 構造体を追加
ver.1.3 1998/9/9
ESP_Pause()関数およびESP_PsetRGB()関数を追加
ver.1.4 1998/11/10
ESP_SetPosition()関数を追加.メインのウインドウが開始時にアニメーションする
ver.1.5 1998/11/13
ESP_GetOpenFileName()関数を追加
ver.1.6 1998/11/13
16ビットパレットモードに対応.ESP_C565Mode(),ESP_C555Mode() を追加
ver.1.7
1998/11/13 ウィンドウの最大数を256に拡張.
ver.1.8 1998/11/16
remove ESP_C565Mode(),ESP_C555Mode().add "-555" command line option.add ESP_ResizeImage(),ESP_DestroyImage().name ESP_SetPosition() as ESP_PlaceImage().remove 1 time limit of "Start" button
ver.1.9 1998/11/17
ストップウォッチ関数を追加
ver.1.91 1998/11/26
remove a bug in 24-bit mode
ver.2.0 1998/12/3
ESP_OpenTextWindow(),ESP_Printf(),ESP_Locate()を追加.テキストウィンドウの概念が導入される
ver.2.1 1998/12/28
STOPボタンを調べるための ESP_STOP 変数を追加
ver.2.2 1999/2/2
ライブラリの構造を大幅に変更,バグ修正.ESP_SelectActive()関数を追加
ver.3.0 1999/2/9
変更点多数.ポップアップメニュー,ドラッグ&ドロップ,カット&ペースト.クローズボタン,テキストウィンドウサイズの随時変更.add ESP_CloseTextWindow(),ESP_GetActive),ESP_ZoomImage() change ESP_CreateImage()
ver.3.1 1999/2/19
ズーム関係のバグを修正.ウィンドウの色に関するバグを修正.画像の最小サイズが1×1からになった.
ver.3.2 1999/3/10
ESP_BmpOpen()関数を追加.この関数はウインドウのオープンとBMPの読み込みを同時に行う.
ver.3.3 1999/8/10
YCrCb色変換関数を追加,GraphLine()を更新
ver.3.4 1999/9/14
Limit(),ESP_GetPoint(),ESP_GetRect(),Pop-up menu 2
ver.3.5 1999/11/23
ウィンドウ内容更新時に発生するバグを修正
ver.3.6 2000/5/2
ESP_Gputc(),ESP_Gputs(),ESP_Gprintf(),ESP_Glocate(),ESP_Gtextcolor()を追加.これらの関数により,グラフィックウィンドウへの文字の描画が可能となる.ただし,漢字の描画はできない.
ver.3.7 2000/9/14
数値入力ウィンドウInputBoxの概念が追加され,関数 ESP_OpenInputBox(),ESP_CloseInputBox(),ESP_GetInputBox(),ESP_SetInputBox(),ESP_SetInputBoxTitle()が加えられた.InputBox関数の使用例を示した Sample program 6を追加した.
ver.3.7b 2000/9/19
ESP_GetInputBox()の引数と戻り値を変更
ver.3.8 2000/9/25
ESP_GetActive() and ESP_SelectActive()を廃止.ESP_GetForeground(), ESP_SetForeground(), ESP_Exit()を追加
ver.3.9 2000/10/5
ESP_StartLog(), ESP_StopLog(), ESP_EndLog()を追加.ESP_Printf()によりテキストウィンドウへ出力した情報をログとして残せるようになる.
ver.3.91 2000/10/6
ESP_GetRectL()/GetRectL2()/GetRectC()の追加
ver.4.0 2000/10/26
ESP_SelectInputBox()を追加,ESP_Finish()が必要,InputBox内でTAB,Enterが有効.YCrCbの計算式を修正,GraphXYL()/GraphXYW()を修正.ESP_Arc()を追加.円弧の描画が可能となる.
ver.4.1 2000/10/27
画面内容更新時においてゴミが表示されるバグを修正.ESP_Input()を追加.文字入力が可能となる.ESP_ClearTextWindow()を追加.テキストウィンドウの内容消去.
ver.4.2 2000/10/30
画面更新のバグを完全に直した.Paste,Cut,Copyのバグ直し.ESP_GetInputBox()を廃止.ESP_SetInputBoxI/D/S/C , ESP_GetInputBoxI/D/S/Cを追加.
ver.4.3 2000/11/6
add ESP_CheckLine()
ver.4.4 2000/11/8
add ESP_CheckBox,ESP_CheckArc,ESP_CheckCircle,ESP_ArcXOR
ver.4.5 2000/11/8
add "Copy ESPLIB.LOG" popup-menu to TextWindow.add ESP_CircleFillXOR, ESP_GetPointV.add Pop-up menu 3(Ctrl key + r.button)
ver.4.5 2000/11/9
使用説明書[完全日本語版]の作成
ver.4.6 2000/12/8
ESP_GetPoint/Rect/etcなどの関数に戻り値を持たせた.(右ボタンによるキャンセル機能がついた)
ver.4.7 2001/1/30
メインウィンドウにインプットボックス生成メニューを追加.メインWとテキストWにウィンドウ配置情報を表示し,ソースコードを自動的にクリップボードへ保存する便利なメニュー(Window Info.)を追加.
ver.4.8 2001/2/7
Visual C++のReleaseバージョン時に発生するバグを修正.メインウィンドウのポップアップメニューImageWindowにおいてサイズを入力するようにした._ESP_VramPtr[]の格納方式に関して,ラインの上下関係を正常に戻した.InputBoxの項目タイトルをダブルクリックにより変更可能とした.
ver.4.9 2001/2/22
ESP_MOUSE関係を追加.リアルタイムでマウス座標などが取得できるようになる.ESP_MX,ESP_MY,ESP_MW,ESP_ML,ESP_MM,ESP_CTRL,ESP_SHIFT
ver.4.9b 2001/4/2
読込&保存可能なBMP画像の横幅が2048であった制限を無くした.32ビットの「特殊な」BMPファイルの読み込みに対応させた.(3/29)BMPファイルの複数ドロップ時のバグを修正(3/29).BMP読込/保存メニューにおいてキャンセル時でも読込/保存していたバグを修正(3/30)
ver.4.9c 2001/4/6
バグ修正(インプットボックスの色,16ビットモード,メインウィンドウの位置)
ver.5.0 2001/7/11
ESP_Input()が全角文字に対応.以下のTrueTypeフォント描画関数を追加.ESP_TTSelectFont(),ESP_TTSize(),ESP_TTPosition(),ESP_TTColor(),ESP_TTPrintf(),ESP_TTPuts(),ESP_TTPutc()
ver.5.1 2001/7/12
C2HSV,HSV2Cの変換ルールを変更.
ver.5.1b 2001/7/13
ESP_GetClock()を追加.ESP_Input()の半角カタカナのバグを修正.
ver.5.2 2001/11/28
ESP_PointBLI(),DEG2RAD(),RAD2DEG(),ESP_PrintfBin()を追加.ウィンドウタイトルのバグ修正.ESP_ZoomImage()のバグ修正.イメージウィンドウのポップアップメニューにZoom,Resizeを追加.
ver.5.3 2001/12/26
TrueTypeフォント描画関数のバグ修正.イメージウィンドウのポップアップメニューにChangeFont,TT-Textを追加.Windows95を対象OSから除いた.BMP保存のとき72dpiの情報を付加させるようにした.
ver.5.4 2002/2/14
ホイールマウスによるズーム機能,ESP_ZoomImage()/ESP_ResizeImage()のバグ修正.中ボタンによるポップアップメニュー表示.InputBoxの常時トップを廃止.ボタンボックス関数.ESP_SetForeground()/GetForeground()修正.ヘルプファイル作成.16ビットモードの画面更新高速化.ウィンドウに吸い付く機能.色取得メニュー.テストパターン描画メニューおよびESP_TestPat_RGB/HSV/CrCb().Windows95対応復帰.
ver.5.5 2002/3/19
テキストウィンドウ,インプットボックスおよびボタンボックスの色に関する不具合を修正.
画面更新の高速化.パレットモードの制限をなくす.-555オプションの廃止.
ESP_TextWindowColor()の追加.ESP_ClearButtonBox()の追加.
フォントおよび色の選択のためのポップアップメニューにおいてダイアログを表示.
ヘルプファイルにボタンボックスのサンプルプログラムを追加.ESP_TTSelectFont()の仕様変更.
ESP_GetPointR()の追加.イメージウィンドウでのペースト時に位置指定できるようにした.
Windows95でTrueTypeフォント選択にバグがあった点を修正.
ver.5.6 2002/4/25
ESP_CutImage(), ESP_CopyImage(), ESP_PasteImage()の追加.ESP_Printf()の不具合修正.Ctrl+X,C,V,R,Q の追加.Ctrl+'+','-',0の追加.ESP_GetDisplayMode(), ESP_SetDisplayMode()の追加.TABキーで表示方法トグル.ESP_PointZoom()の追加.
ver.5.7 2002/6/19
イメージウィンドウの内部構造を大幅に変更し,更新速度がアップ.
TrueTypeフォント描画関数の内部構造を変更.下線,取り消し線にも対応.ESP_TTSelectFont() を廃止し, ESP_TTFont() および ESP_TTStyle() を追加.
時間計測関数の内部にて,GetTickCount()からtimeGetTime()の使用へ変更.
インプットボックス,ボタンボックスのポップアップメニューを変更.
BMP読込/保存,カット,コピー,ペースト関数の内部構造を変更.
ESP_Paint()のバグを修正.
イメージウィンドウのポップアップメニュー(2)にサブメニューを追加.
ver.5.8 2002/7/31
ESP_Line/ESP_LineXOR/ESP_CheckLine/ESP_CircleFillXORのバグ修正.
ESP_Pset/Point関連をインライン化し描画関数全般の高速化.
貼り付け関連のバグ修正.
Win95でメインのポップアップメニューからテキストウィンドウが開けなかった不具合を修正.
ESP_CopyLog()の追加.ショートカットをいくつか追加.
ver.5.9 2002/12/13
テキストウィンドウにおける履歴機能,TABコード処理,ペースト機能を追加.
ボタンボックスにおける数字キー処理,S,C,X(ESC)キー処理の追加.
ボタンボックスにおけるフォーカス動作を修正.
インプットボックスにおける文字列長上限を256に修正.
ver.6.0 2003/2/3
インプットボックスおよびボタンボックスをサイズ可変にした.
ESP_ResizeInputBox()およびESP_ResizeButtonBox()の追加.
ボタンの数指定を横数および縦数にした(ESP_OpenButtonBox()の仕様変更).
インプットボックスの項目数の上限を30にした.
ボタンボックスのボタン数上限を256にした.
色変換にYIQ,Yuvを追加.YCrCbの変換式を変更.
ESP_BmpSave()で拡張子が.bmpにならなかったバグを修正.
イメージウィンドウのポップアップメニューの構造を変更.
メインウィンドウのメッセージがちょうど中央に表示されるようにした.
ver.6.01 2003/4/9
Borland C++ 5.5.1で警告が出ないようにした.
サンプルプログラムを一部修正.
ver.6.1 2003/6/11
ソースファイルの拡張子が.cppでも警告が出ないようにした.
Visual Studio .NET でも警告が出ないようにした.使用手順もヘルプに追加した.
ESP_Pause()の親ウィンドウをデスクトップに変更した.
CM()関数を公開にした.
ver.6.2 2003/9/12
ESP_SetButtonBox()を追加.
時間計測関数の内部にQueryPerformanceCounter()を使うようにした.
メインウィンドウに複数BMPファイルをドロップした際の不具合を修正.
ver.6.3 2004/7/22
テキストウィンドウを複数開けるようにした.
ESP_OpenTextWindow(), ESP_CloseWindow(), ESP_StartLog(), ESP_StopLog(), ESP_EndLog()の引数を変更.
ESP_TextWindowColor()をESP_SetColor()へ名前変更.
ESP_SelectTW(), ESP_RestoreColor()を追加.
ESP_StartAllLog(), ESP_StopAllLog(), ESP_EndAllLog()を追加.
テキストウィンドウのサイズを変更したとき,文字色と背景色が変わってしまうバグを修正.
下線で始まる変数名,関数名があったが,名前の先頭から下線をなくした.
複数テキストウィンドウのサンプルを追加.
ver.6.4 2004/11/18
8ビットモードのイメージウィンドウを開けるようにした.
追加関数:
ESP_Sleep(), ESP_CreateImage8(), ESP_SetColorTable(), ESP_GetColorTable()
ESP_UnSelect(),ESP_UnSelectTW(), ESP_TestPat_Grey()
修正関数:
ESP_Select(), ESP_SelectTW(), ESP_BmpLoad(), ESP_BmpSave()
ESP_ResizeImage(), ESP_GraphLine()
ESP_GetWindow(),ESP_PutWindow(),ESP_GetLine(),ESP_PutLine()
ほか細かなバグ修正等.
ver.6.5 2005/5/10
ESP_Printf()によるテキスト出力を(10〜30%程度)高速化.
イメージウィンドウやテキストウィンドウを操作するいくつかの関数の
戻り値(エラー時のみ)を変更.
ESP_Ready()やESP_Main()を呼び出すのと同じスレッドからESP_Finish()も
呼び出すように変更.
ESP_GetPointH()などで生じていたバグの修正.ほか.
ver.6.6 2005/6/29
ESP_ImageLoad(), ESP_JpegSave(), ESP_GifSave(), ESP_PngSave(), ESP_JpegQuality()を追加.
ESP_PointBCI()を追加.
#define ESP_NO_GDIPLUSの説明を追加.
拡張子は.cppに限定.
ver.6.7 2006/6/28
ESP_STOPの説明にミスがあったところを修正.
ESP_Locate()の引数として-1をサポート.
ESP_CloseInputBox()のバグ修正.
WindowsXPの視覚スタイルに対応.
ver.7.0 2006/12/25
Visual C++ 2005対応版.
ESP_GetInputBoxS()の引数変更.
ESP_NO_GDIPLUS定義を廃止.
char2wchar_t(),wchar_t2char()の追加.
ESP_GifSave()/ESP_JpegSave()/ESP_PngSave()を廃止.ESP_ImageSave()を追加.
任意の画像形式のドラッグ&ドロップに対応.
マニフェストの埋め込み方法の変更.
BMPINFO構造体,ESP_GetBmpInfo(),ESP_BmpOpen()を廃止.
ESP_GetImageInfo(),ESP_ImageOpen()を追加.
ver.7.1 2007/1/24
連続稼働時間が長いPCにおいて,ESPLIBが正常に起動しないバグを修正.
ESPLIBの多重起動数を10に制限.
多重起動に対応したログファイル名へ変更.
ベジェ曲線描画ESP_Bezier(), ESP_BezierXOR()を追加.ヘルプにサンプル追加.
ver.7.2 2009/3/24
定義 _WIN32_WINNT 0x0500 を削除.
Vistaのウィンドウ枠に対応.
枠無しイメージウィンドウを作成するESP_CreateImageFL(),ESP_CreateImage8FL()を追加.
ヘルプをchm形式にする.
ver.7.3 2009/4/30
ESP_Printf()で先頭文字が\nのときのバグを修正.
ESP_STRMAXでESP_Printf()の最大文字を変更できるオプションを追加.
ver.7.4 2010/3/26
マイクロ秒精度で時間を計測するESP_GetClockus()を追加.
タスクバーがどの位置にあっても同じウィンドウ配置が再現されるようにした.
デスクトップ領域を正確に認識させ,近くのウィンドウに吸い付く機能の不具合を修正.
ver.7.5 2011/3/1
精密な時間計測のために実数型のESP_GetClockms()を追加.代わりにESP_GetClockus()を廃止.
ウィンドウの配置を視覚的に行う(Window Info.)機能で,メインウィンドウが標準位置から変更されている場合には,その位置も再現するようにした.
メインウィンドウの位置を変更するESP_PlaceMain()を追加.
メインウィンドウをデスクトップから隠すESP_HideMain()を追加.
ESP_Printf(), ESP_Input()で半角カタカナを正しく処理できていなかった点を修正.
ver.7.6 2011/6/23
テキストおよびイメージウィンドウ生成で左上座標(-1,-1)を指定したときの問題を修正.
タスクバーの場所が左にある場合などでウィンドウを開く際に生じていた問題を修正.
Window Info.でクリップボードに格納される文字列の改行を修正.
ログのファイル名に数字(日時)が付くように仕様変更.ESP_CopyLog()仕様を若干変更.
座標チェックなしの高速な点描画関数ESP_PsetF()/ESP_PsetF8()を追加.
ver.7.7 2012/6/14
ESP_Puts(),ESP_PutsU(),ESP_PrintfU()を追加.
ESP_Printf(),ESP_Puts()は出力後に更新をしない.(高速版)
ESP_PutsU(),ESP_PrintfU()は出力毎に更新をする関数.(従来版)
ESP_Cls()は更新なしへ修正.
ESPLIB終了時のメモリリークがあった点を解消.(イメージウィンドウ関係)
ESP_ImageLoad()とESP_GetImageInfo()でオブジェクト解放をしていなかった点の修正.
ESPLIB起動時にESP_StartClock()は実行済みへ変更.
ver.7.8 2013/8/29
タスクバーの位置によってメインウィンドウに位置ずれが生じる問題を解消.
ESP_Puts/PutsU/Printf/PrintfU/PrintfBin()のマルチスレッド対応.
ESP_EXITTIME追加
ver.7.9 2014/4/21
不必要にOSバージョン読み取りをしていた箇所を削除.
ビジュアルスタイルのマニフェストをソース中に記述し,標準仕様とした.
VC++2013ではESP_ImageSave()においてエラーが出る点を修正.
ESP_SetInputBoxD()の有効桁数指定およびデフォルト値18を追加.
Altキー併用で全ウィンドウを同時に移動させる機能を追加.
ver.8.0 2014/5/14
ライブラリモードを追加した.これにともない,ESP_Start()の追加,ESP_Exit()の改訂.
Altキー同時移動の問題修正(特にWindows XPで).
テキストウィンドウのサイズ変更の刻み幅を半角文字単位とした.また,最下行まで使えるようにした.
テキストウィンドウのデフォルトサイズ変更.
インプットボックスにdouble型値をセットした場合,元の値が保存されるようにした.
ESP_SetInputBoxD()の有効桁数デフォルト値を10へ戻した.
インプットボックスのサイズを変更した場合,内部でサイズ情報が更新されてなかった点を修正.
ESP_HideMain()を廃止し,代わりにESP_HIDE_MAINWINDOWを追加.
ESP_GetLoadFileName(),ESP_GetSaveFileName()でNULL指定あるいは引数省略時のバグを修正.
ESP_Pause()の仕様変更.
ver.8.1 2016/5/24
VC++2015でwarningが出ないようにした
VC++2015,Release,x86で右メニューが出ない不具合を修正
ESP_SetColor()とESP_PrintfBin()で引数の仕様変更
ESP_Paint()で戻り値を追加
Windows 10の1ドットウィンドウ幅への対応
(DwmGetWindowAttribute()を使用するため動作環境はVista以降)
ver.8.2 2016/8/22
TextWindowの左上座標がマイナス時にデフォルト位置に設定する機能は削除し,
マイナス位置でもウィンドウが出せるように変更(Windows 10対策).
Exit時の内部処理のタイミング修正.
ESP_BoxFill()およびESP_CircleFill()のfを省略可に変更.
ESP_PrintfDateTime()を追加.
ver.8.3 2018/5/25
Visual C++ 2017に対応させた(const char *関連の修正).
ESP_LOGEXTの定義でログファイル拡張子を変更可能にした.
ver.8.4 2018/5/7
ESP_SKIPANIMATIONの定義により起動時のアニメーションをスキップ可.
イメージウィンドウへ入力されたキーコードを返すESP_CheckKeyDown()を追加.
イメージウィンドウの左上座標がマイナス時にデフォルト位置にする機能を削除.
(マイナス値も有効.Windows 10の細いウィンドウフレーム対策)
ESP_Paint2()の追加.
ver.8.5 2020/1/7
Windowsシャットダウン(WM_QUERYENDSESSIONが来た)時は自動的にExit処理する機能の追加.
これにより,ログ処理をしていた場合,データが最後まで記録される.
手動でログデータをフラッシュするためのESP_FlushLog(),ESP_FlushAllLog()を追加.
ver.8.6 2021/8/26
テキストウィンドウの複数オープン時の描画バグを解決(かなり古いバージョンから発生していた問題がようやく).
高DPI設定時,ウィンドウ枠幅を正しく取得できず,近くのウインドウに吸い付く機能が正しく動作していなかった不具合を解決.
ver.8.7 2022/1/4
Windows 11対策(テキストウィンドウとイメージウィンドウの角を丸くしない).
Visual Studio 2008でエラーが出ていた点を修正.
以上