HSP Tips

自己流HSPテンプレート

はずい・・(笑)

HSPテンプレート

 普段私が使用しているHSPテンプレート。ウィンドウメッセージが扱いやすいように定義されています。 関連:自己流テンプレート2


   



main.hsp


//--------------------------------------------------------------------
//
//  
//
//  
//
//--------------------------------------------------------------------
*inc		//## インクルード
//--------------------------------------------------------------------
// Include
//--------------------------------------------------------------------
#include "define.hsp"
#include "kernel32.as"
#include "user32.as"
#include "winmm.as"
#include "shell32.as"
#include "comctl32.as"
#include "comdlg32.as"
#include "gdi32.as"
#include "module_basic.hsp"	//基本モジュール


//--------------------------------------------------------------------
// マクロ定義
//--------------------------------------------------------------------
	
	#define global _exename ""				//実行ファイルの名前(重要)
	#define global _tit ""					//ソフトウェアタイトル名
	#define global _ver ""					//ソフトウェアバージョン
	#define global _ininame _exename+".ini"		//iniファイルの名前
	#define global startchek 0					//二十起動防止コンパイルチェック
	#define global _winx ginfo(12)				// ウィンドウの縦のサイズを代入
	#define global _winy ginfo(13)				//ウィンドウの横のサイズを代入
	
*deff	//## マクロ定義
*pack	//## パック設定
//--------------------------------------------------------------------
// パック設定
//--------------------------------------------------------------------	

	#packopt name _exename
	#packopt type 0
	#packopt hide 1

//--------------------------------------------------------------------
// 基本変数管理用変数
//-------------------------------------------------------------------- 
 
	winx=640					//初期ウィンドウの縦のサイズを代入 
	winy=480					//初期ウィンドウの横のサイズを代入 
	winposx=(ginfo(20)-winx)>>1	//ウィンドウの表示位置 
	winposy=(ginfo(21)-winy)>>1	//ウィンドウの表示位置 
	softtitle=_tit				//ソフトウェアタイトル 
 
*variable	//## 基本変数 
//-------------------------------------------------------------------- 
// ▽モジュールエリア 
//-------------------------------------------------------------------- 
 
//共通モジュール 
#module "mod" 
 
 
 
#global 
 
*module	//## モジュール 
*syoki	//## 初期動作 
//-------------------------------------------------------------------- 
// 初期動作 
//-------------------------------------------------------------------- 
	#if startchek 
	startchek_start _tit	//2重起動のチェック 
	#endif 
 
	//iniファイルの読み込み 
	iniload _ininame,data 
 
	//iniファイルが存在したかどうか 
	if stat!-1{ 
		 
		winposx=inigetint ("pos","posx",data) 
		winposy=inigetint ("pos","posy",data) 
 
	}else{ 
 
		 
 
	} 
 
*scrset	//## スクリーン作成 
//-------------------------------------------------------------------- 
// スクリーン作成 
//-------------------------------------------------------------------- 
	 
	//メイン 
	screen 0,winx,winy,6,winposx,winposy	//スクリーンウィンドウの初期化 
	gosub *input_pos						//ウィンドウ位置の記憶 
	title _tit 
	objmode 1 
	objsize 60,21 
	sysfont 17 
 
 
*onmsg	//## オンメッセージ定義 
//-------------------------------------------------------------------- 
// オンメッセージ定義 
//-------------------------------------------------------------------- 
 
	 
	gsel 0 
	onexit *owari 
	oncmd gosub *ON_WM_MOVE,WM_MOVE					//ウィンドウが移動 
	oncmd gosub *ON_WM_LBUTTONDOWN,WM_LBUTTONDOWN	//左クリックを押した 
	oncmd gosub *ON_STARTCHEK,WM_USER+0x0200		//二十起動のチェック 
	 
 
*main	//## メインスクリプト 
//-------------------------------------------------------------------- 
// @メインスクリプト 
//-------------------------------------------------------------------- 
 
	gsel 0 
	syscolor2 15:boxf	//システム背景色 
	syscolor2 8			//文字色 
 
	 
	gsel 0,1			//初期画面表示 
	stop 
	 
*onmsgarea	//## オンメッセージ処理 
//-------------------------------------------------------------------- 
// オンメッセージ処理 
//-------------------------------------------------------------------- 
 
 
 
 
*ON_WM_LBUTTONDOWN	//左クリックを押した 
	 
	//id 0 
	if ginfo_intid=0{ 
		lockgsel 0,0 
		 
		if hspstat=1{ 
			title "MOUSE("+mousex+","+mousey+")   _WINX-MOUSE("+(_winx-mousex)+","+(_winy-mousey)+")" 
		} 
		 
		locksel 1 
	} 
	 
	return 
	 
*ON_WM_MOVE	//ウィンドウが移動 
 
	//id 0 
	if ginfo_intid=0{ 
		lockgsel 0,0 
		 
		if (LOWORD(lparam)<(ginfo(12)+ginfo(21)))&(HIWORD(lparam)<(ginfo(13)+ginfo(21))){ 
			if (LOWORD(lparam)>-ginfo(12))&(HIWORD(lparam)>-ginfo(13)){ 
				gosub *input_pos	//ウィンドウ位置の記憶 
			} 
		} 
		 
		lockgsel 1 
	} 
	 
	return 
 
 
 
*ON_STARTCHEK	//二十起動された 
	lockgsel 0,0 
	actwin hwnd 
	lockgsel 1 
	return 
 
 
 
 
*subroot	//## サブルーチン 
//-------------------------------------------------------------------- 
// サブルーチン 
//-------------------------------------------------------------------- 
 
*input_pos	//ウィンドウ位置の記憶 
	lockgsel 0,0 
	inisetint "pos","posx",ginfo(4),data 
	inisetint "pos","posy",ginfo(5),data 
	lockgsel 1 
	return 
	 
*owari	//ソフト終了 
	chdir dir_main 
	inisave _ininame,data 
	end 
 
 

define.hsp

 
#define global	WM_ACTIVATE			0x0006	//ウィンドウのアクティブ化・非アクティブ化	 
#define global	WM_CHAR				0x0102	//キーボードからの文字の入力	 
#define global	WM_CLEAR			0x0303	//エディットコントロールのテキストの削除  
#define global	WM_COMMAND			0x0111	//メニューアイテムの選択・コントロールからの通知	 
#define global	WM_CONTEXTMENU		0x007B	//コンテキストメニューを表示するために受け取る通知	 
#define global	WM_COPY				0x0301	//エディットコントロールのテキストのコピー		 
#define global	WM_CUT				0x0300	//エディットコントロールのテキストの切り取り  
#define global	WM_DROPFILES		0x0233	//ファイルがドロップされた	 
#define global	WM_GETFONT			0x0031	//コントロールのフォントを取得	 
#define global	WM_GETICON			0x007F	//ウィンドウのアイコンを取得	 
#define global	WM_GETTEXT			0x000D	//ウィンドウタイトルやコントロールのテキストを取得	 
#define global	WM_GETTEXTLENGTH	0x000E	//ウィンドウタイトルやコントロールのテキストのサイズを取得	 
#define global	WM_KEYDOWN			0x010	//非システムキーが押された	 
#define global	WM_KEYUP			0x0101	//押されていた非システムキーが離された	 
#define global	WM_LBUTTONDBLCLK	0x0203	//マウス左ボタンをダブルクリック	 
#define global	WM_LBUTTONDOWN		0x0201	//マウス左ボタンを押し下げ	 
#define global	WM_LBUTTONUP		0x0202	//マウス左ボタンを離した	 
#define global	WM_MBUTTONDBLCLK	0x0209	//マウス中央ボタンをダブルクリック	 
#define global	WM_MBUTTONDOWN		0x0207	//マウス中央ボタンを押し下げ	 
#define global	WM_MBUTTONUP		0x0208	//マウス中央ボタンを離した 
#define global	WM_MOUSEMOVE		0x0200	//マウス移動時に実行 
#define global	WM_MOUSEHOVER		0x02A1	//マウスが一定時間同じ場所にある 
#define global	WM_MOUSELEAVE		0x02A3	//マウスがウィンドウ外にでる 
#define global	WM_MENUSELECT		0x011F	//メニューアイテムが選択された	 
#define global	WM_MOVE				0x0003	//ウィンドウの移動	 
#define global	WM_NOTIFY			0x004E	//コモンコントロールからの通知	 
#define global	WM_NULL				0x0000	//効果をもたないメッセージ	 
#define global	WM_PASTE			0x0302	//エディットコントロールのテキストの貼り付け	 
#define global	WM_RBUTTONDBLCLK	0x0204	//マウス右ボタンをダブルクリック	 
#define global	WM_RBUTTONDOWN		0x0205	//マウス右ボタンを押し下げ	 
#define global	WM_RBUTTONUP		0x0206	//マウス右ボタンを離した	 
#define global	WM_SETFONT			0x0030	//コントロールのフォントを設定  
#define global	WM_SETTEXT			0x000C	//ウィンドウタイトルやコントロールのテキストを設定  
#define global	WM_SIZE				0x0005	//ウィンドウサイズ変更	 
#define global	WM_SYSCOMMAND		0x0112	//システムメニューアイテム選択  
#define global	WM_UNDO				0x0304	//エディットコントロールの直前の操作を元に戻す	 
#define global	WM_USER				0x0400	//アプリケーション定義メッセージの先頭 
#define global	WM_PAINT			0x000F	//ウィンドウを書きなおすときに送られる 
#define global	WM_CLOSE			0x0010	//アプリケーション終了時に送られる 
#define global	WM_DESTROY			0x0002	//ウィンドウが破棄されたときに送られる 
#define global	WM_GETMINMAXINFO		0x0024	//ウィンドウのサイズが変更されようとしたときに送られる サイズ移動フラグ 
#define global	WM_SYSCOLORCHANGE		0x0015	//システムカラーが変更されたのを知らせる 
#define global	WM_ERASEBKGND		0x0014	//自動で背景を削除されないようにする 
#define global	WM_SHOWWINDOW           0x0018	//ウィンドウが表示されるかされないか 
#define global 	WM_COPYDATA                     0x004A 
#define global	 WM_CANCELJOURNAL                0x004B 
#define global WM_SETFOCUS                     0x0007 
#define global WM_KILLFOCUS                    0x0008 
#define global WM_ENABLE                       0x000A 
#define global WM_QUERYENDSESSION              0x0011 
#define global WM_QUERYOPEN                    0x0013 
#define global WM_ENDSESSION                   0x0016 
#define global WM_QUIT                         0x0012 
#define global WM_WININICHANGE                 0x001A 
#define global WM_SETTINGCHANGE                WM_WININICHANGE 
#define global WM_DEVMODECHANGE                0x001B 
#define global WM_ACTIVATEAPP                  0x001C 
#define global WM_FONTCHANGE                   0x001D 
#define global WM_TIMECHANGE                   0x001E 
#define global WM_CANCELMODE                   0x001F 
#define global WM_SETCURSOR                    0x0020 
#define global WM_MOUSEACTIVATE                0x0021 
#define global WM_CHILDACTIVATE                0x0022 
#define global WM_QUEUESYNC                    0x0023 
#define global WM_PAINTICON                    0x0026 
#define global WM_ICONERASEBKGND               0x0027 
#define global WM_NEXTDLGCTL                   0x0028 
#define global WM_SPOOLERSTATUS                0x002A 
#define global WM_DRAWITEM                     0x002B 
#define global WM_MEASUREITEM                  0x002C 
#define global WM_DELETEITEM                   0x002D 
#define global WM_VKEYTOITEM                   0x002E 
#define global WM_CHARTOITEM                   0x002F 
#define global WM_SETHOTKEY                    0x0032 
#define global WM_GETHOTKEY                    0x0033 
#define global WM_QUERYDRAGICON                0x0037 
#define global WM_COMPAREITEM                  0x0039 
#define global WM_GETOBJECT                    0x003D 
#define global WM_COMPACTING                   0x0041 
#define global WM_COMMNOTIFY                   0x0044  /* no longer suported */ 
#define global WM_WINDOWPOSCHANGING            0x0046 
#define global WM_WINDOWPOSCHANGED             0x0047 
#define global WM_POWER                        0x0048 
#define global WM_MOUSEWHEEL					$0000020A 
#define global WM_HSCROLL						$00000114 
#define global WM_VSCROLL						$00000115 
#define global WM_TIMER							$00000113 
#define global WM_MOVING						 $00000216 
 
 
/* 
 * Edit Control Styles 
 */ 
#define global ES_LEFT             0x0000 
#define global ES_CENTER           0x0001 
#define global ES_RIGHT            0x0002 
#define global ES_MULTILINE        0x0004 
#define global ES_UPPERCASE        0x0008 
#define global ES_LOWERCASE        0x0010 
#define global ES_PASSWORD         0x0020 
#define global ES_AUTOVSCROLL      0x0040 
#define global ES_AUTOHSCROLL      0x0080 
#define global ES_NOHIDESEL        0x0100 
#define global ES_OEMCONVERT       0x0400 
#define global ES_READONLY         0x0800 
#define global ES_WANTRETURN       0x1000 
#define global ES_NUMBER           0x2000 
 
 
 
 
 
/* 
 * Edit Control Notification Codes 
 */ 
#define global EN_SETFOCUS         0x0100 
#define global EN_KILLFOCUS        0x0200 
#define global EN_CHANGE           0x0300 
#define global EN_UPDATE           0x0400 
#define global EN_ERRSPACE         0x0500 
#define global EN_MAXTEXT          0x0501 
#define global EN_HSCROLL          0x0601 
#define global EN_VSCROLL          0x0602 
 
#define global EN_ALIGN_LTR_EC     0x0700 
#define global EN_ALIGN_RTL_EC     0x0701 
#define global EC_LEFTMARGIN       0x0001 
#define global EC_RIGHTMARGIN      0x0002 
#define global EC_USEFONTINFO      0xffff 
 
#define global EMSIS_COMPOSITIONSTRING        0x0001 
 
#define global EIMES_GETCOMPSTRATONCE         0x0001 
#define global EIMES_CANCELCOMPSTRINFOCUS     0x0002 
#define global EIMES_COMPLETECOMPSTRKILLFOCUS 0x0004 
 
 
 
 
 
#define global REG_BINARY              3   ;バイナリデータ 
#define global REG_DWORD               4   ;32ビット整数 
#define global REG_DWORD_BIG_ENDIAN    5   ;バイト順がWindowsと逆の32ビット値 
#define global REG_EXPAND_SZ           2   ;展開前の環境変数( 例えば %PATH% ) 
#define global REG_LINK                6   ;Unicodeシンボリック 
#define global REG_MULTI_SZ            7   ;二つのVBNULLCHARで終わる文字列 
#define global REG_NONE                0   ;未定義のタイプ 
#define global REG_RESTORE_LIST        8   ;デバイスドライバリソースリスト 
#define global REG_SZ                  1   ;文字列 
 
 
 
#define global	NULL			0 
 
//reg 
#define HKEY_CLASSES_ROOT	0x80000000 
#define HKEY_CURRENT_USER	0x80000001 
#define HKEY_LOCAL_MACHINE	0x80000002 
#define HKEY_USERS			0x80000003 
#define HKEY_PERFORMANCE_DATA	0x80000004 
#define HKEY_CURRENT_CONFIG	0x80000005 
#define HKEY_DYN_DATA		0x80000006 
 
 
//アクセス権 
#define global KEY_ALL_ACCESS 	0x001F003F	;アクセス権全て 
 
//プロセスの優先度クラス 
#define global NORMAL_PRIORITY_CLASS       0x00000020	//通常時 
#define global IDLE_PRIORITY_CLASS         0x00000040	//システムがアイドル状態のときにだけ実行するプロセス 
#define global HIGH_PRIORITY_CLASS         0x00000080	//タイムクリティカルなタスクを実行するプロセス 
#define global REALTIME_PRIORITY_CLASS     0x00000100	//最も高い優先順位クラスを持つプロセス 
 
//スレッドの相対優先度 
#define global THREAD_PRIORITY_IDLE          (-15)	//プロセスの優先度クラスが REALTIME_PRIORITY_CLASS のとき、スレッド優先度を 16 にします。それ以外のときはスレッド優先度を 1 にします 
#define global THREAD_PRIORITY_LOWEST         (-2)	//スレッド優先度をプロセスの優先度クラスの通常の優先度より 2 低く設定します。 
#define global THREAD_PRIORITY_BELOW_NORMAL   (-1)	//スレッド優先度をプロセスの優先度クラスの通常の優先度より 1 低く設定します。 
#define global THREAD_PRIORITY_NORMAL           0	//スレッド優先度をプロセスの優先度クラスの通常の優先度に設定します。 
#define global THREAD_PRIORITY_HIGHEST          1	//スレッド優先度をプロセスの優先度クラスの通常の優先度より 1 高く設定します。 
#define global THREAD_PRIORITY_ABOVE_NORMAL     2	//スレッド優先度をプロセスの優先度クラスの通常の優先度より 2 高く設定します。 
#define global THREAD_PRIORITY_TIME_CRITICAL   15	//プロセスの優先度クラスが REALTIME_PRIORITY_CLASS のとき、スレッド優先度を 31 にします。それ以外のときはスレッド優先度を 15 にします。 
 
 
 
/* 
 * Identifiers for the WM_SHOWWINDOW message 
 */ 
#define global	SW_PARENTCLOSING    1		//親ウィンドウがアイコン化されようとしている 
#define global	SW_OTHERZOOM        2		//別のウィンドウが最大化されようとして見えなくなろうとしている 
#define global	SW_PARENTOPENING    3		//親ウィンドウが表示されようとしている 
#define global	SW_OTHERUNZOOM      4		//別のウィドウがアイコン化されたため 
 
 
 
#define global WM_SETREDRAW            0x000B 
 
 
//====== COMMON CONTROL STYLES ================================================ 
 
#define global	 CCS_TOP                 0x00000001 
#define global	 CCS_NOMOVEY             0x00000002 
#define global	 CCS_BOTTOM              0x00000003 
#define global	 CCS_NORESIZE            0x00000004 
#define global	 CCS_NOPARENTALIGN       0x00000008 
#define global	 CCS_ADJUSTABLE          0x00000020 
#define global	 CCS_NODIVIDER           0x00000040 
#define global	 CCS_VERT                0x00000080 
 
 
//マウス移動 mouse_event 
#define global MOUSEEVENTF_MOVE        0x0001 /* mouse move */ 
#define global MOUSEEVENTF_LEFTDOWN    0x0002 /* left button down */ 
#define global MOUSEEVENTF_LEFTUP      0x0004 /* left button up */ 
#define global MOUSEEVENTF_RIGHTDOWN   0x0008 /* right button down */ 
#define global MOUSEEVENTF_RIGHTUP     0x0010 /* right button up */ 
#define global MOUSEEVENTF_MIDDLEDOWN  0x0020 /* middle button down */ 
#define global MOUSEEVENTF_MIDDLEUP    0x0040 /* middle button up */ 
#define global MOUSEEVENTF_XDOWN       0x0080 /* x button down */ 
#define global MOUSEEVENTF_XUP         0x0100 /* x button down */ 
#define global MOUSEEVENTF_WHEEL       0x0800 /* wheel button rolled */ 
#define global MOUSEEVENTF_VIRTUALDESK 0x4000 /* map to entire virtual desktop */ 
#define global MOUSEEVENTF_ABSOLUTE    0x8000 /* absolute move */ 
 
/* Brush Styles */ 
#define global BS_SOLID            0 
#define global BS_NULL             1 
#define global BS_HOLLOW           BS_NULL 
#define global BS_HATCHED          2 
#define global BS_PATTERN          3 
#define global BS_INDEXED          4 
#define global BS_DIBPATTERN       5 
#define global BS_DIBPATTERNPT     6 
#define global BS_PATTERN8X8       7 
#define global BS_DIBPATTERN8X8    8 
#define global BS_MONOPATTERN      9 
 
/* Hatch Styles */ 
#define global HS_HORIZONTAL       0       /* ----- */ 
#define global HS_VERTICAL         1       /* ||||| */ 
#define global HS_FDIAGONAL        2       /* \\\\\ */ 
#define global HS_BDIAGONAL        3       /* ///// */ 
#define global HS_CROSS            4       /* +++++ */ 
#define global HS_DIAGCROSS        5       /* xxxxx */ 
 
 
 
//ステータスバーに送るメッセージ	#define global	SB_*** 
//メッセージ	コード	意味	 
#define global	SB_GETPARTS			0x0406	//パーツの数と座標を取得	 
#define global	SB_GETTEXT			0x0402	//表示されるテキストを取得	 
#define global	SB_SETPARTS			0x0404	//パーツの数と座標を設定  
#define global	SB_SETTEXT			0x0401	//表示されるテキストを設定  
#define global	SB_SIMPLE			0x0409	//ステータスバーの表示モードを設定  
/* 
 * Scroll Bar Constants 
 */ 
#define global	 SB_HORZ             0 
#define global	 SB_VERT             1 
#define global	 SB_CTL              2 
#define global	 SB_BOTH             3 
 
 
 
//リストビューに送るメッセージ	#define global	LVM_*** 
//メッセージ	コード	意味	 
#define global	LVM_DELETEALLITEMS	0x1009	//すべてのアイテムを削除  
#define global	LVM_DELETECOLUMN	0x101C	//カラムを削除  
#define global	LVM_DELETEITEM		0x1008	//アイテムを削除  
#define global	LVM_FINDITEM		0x100D	//アイテムを検索  
#define global	LVM_GETBKCOLOR		0x1000	//背景色を取得	 
#define global	LVM_GETHEADER		0x101F	//ヘッダコントロールを取得	 
#define global	LVM_GETITEM			0x1005	//アイテムの属性を取得	 
#define global	LVM_GETITEMCOUNT	0x1004	//アイテムの数を取得	 
#define global	LVM_GETNEXTITEM		0x100C	//指定した属性を持つアイテムを取得	 
#define global	LVM_GETTEXTCOLOR	0x1023	//テキストの文字色を取得	 
#define global	LVM_GETTEXTBKCOLOR	0x1025	//テキストの背景色を取得	 
#define global	LVM_INSERTCOLUMN	0x101B	//新しいカラム(列)を挿入  
#define global	LVM_INSERTITEM		0x1007	//新しいアイテムを挿入  
#define global	LVM_SETBKCOLOR		0x1001	//背景色の設定  
#define global	LVM_SETIMAGELIST	0x1003	//イメージリストの割り当て	 
#define global	LVM_SETITEM			0x1006	//アイテム・サブアイテムの属性を設定・変更	 
#define global	LVM_SETTEXTBKCOLOR	0x1026	//テキストの背景色を設定  
#define global	LVM_SETTEXTCOLOR	0x1024	//テキストの文字色を設定  
#define global	LVS_ICON			0x0000	//「大きいアイコン表示」のリストビューを作成します。 
#define global	LVS_REPORT			0x0001	//「詳細表示」のリストビューを作成します。 
#define global	LVS_SMALLICON		0x0002	//「小さいアイコン表示」のリストビューを作成します。 
#define global	LVS_LIST			0x0003	//「一覧表示」のリストビューを作成します。 
#define global	LVS_SINGLESEL		0x0004	//一度に1つのアイテムしか選択できないようにします。(デフォルトでは複数選択可能。) 
#define global	LVS_SHOWSELALWAYS		0x0008	//コントロールがフォーカスを持っていない状態でも、アイテム選択状態が表示されるようにします。 
#define global	LVS_SORTASCENDING		0x0010	//アイテムはテキストをもとに昇順でソートされます。 
#define global	LVS_SORTDESCENDING	0x0020	//アイテムはテキストをもとに降順でソートされます。 
#define global	LVS_SHAREIMAGELISTS	0x0040	//コントロールを削除する際に、イメージリストを自動的に破棄しないようにします。このスタイルは、複数のコントロールから同じイメージリストを使用する場合に指定します。 
#define global	LVS_NOLABELWRAP		0x0080	//「大きいアイコン表示」のときに、アイテムのテキストを1行で表示されるようにします。(デフォルトでは複数行で表示されることがあります。) 
#define global	LVS_AUTOARRANGE		0x0100	//「大きいアイコン表示」および「小さいアイコン表示」のときに、アイコンが自動的に整列した状態になるようにします。 
#define global	LVS_EDITLABELS		0x0200	//アイテムのテキストを編集できるようにします。このスタイルを指定する場合、親ウィンドウは LVN_ENDLABELEDIT 通知メッセージを処理する必要があります。 
#define global	LVS_OWNERDATA		0x1000	//version 4.70 以降: 仮想リストビューであることを指定します。 
#define global	LVS_NOSCROLL		0x2000	//スクロールできないようにします。すべてのアイテムがクライアント領域内になければなりません。 
#define global	LVS_ALIGNTOP		0x0000	//「大きいアイコン表示」および「小さいアイコン表示」のときに、アイテムがリストビューの上端に並べられるようにします。(デフォルト) 
#define global	LVS_ALIGNLEFT		0x0800	//「大きいアイコン表示」および「小さいアイコン表示」のときに、アイテムがリストビューの左側に並べられるようにします。 
#define global	LVS_OWNERDRAWFIXED	0x0400	//「詳細表示」のときに、オーナーウィンドウがアイテムを描画できるようにします。 
#define global	LVS_NOCOLUMNHEADER	0x4000	//「詳細表示」のときに、カラムのヘッダを表示しないようにします。(デフォルトでは表示されます。) 
#define global	LVS_NOSORTHEADER		0x8000	//カラムのヘッダがボタンのように動作しないようにします。カラムのヘッダをクリックしたときにソートなどの処理を行なわない場合はこのスタイルを指定します。 
 
//リストビューの拡張スタイル 
//※ここで示したリストビューの拡張スタイルは LVM_SETEXTENDEDLISTVIEWSTYLE メッセージ 
//および LVM_GETEXTENDEDLISTVIEWSTYLE メッセージによって設定および取得をする必要があります 
//CreateWindowEx 関数や SetWindowLong / GetWindowLong 関数で設定・取得することはできませんので注意してください。 
 
#define global	LVM_SETEXTENDEDLISTVIEWSTYLE			0x1036	//sendmsg hlist,LVM_GETEXTENDEDLISTVIEWSTYLE,0 変更する拡リス,拡張リストスタイル 
#define global	LVM_GETEXTENDEDLISTVIEWSTYLE			0x1037	//sendmsg hlist,LVM_GETEXTENDEDLISTVIEWSTYLE,0,0 
 
 
 
#define global	LVS_EX_GRIDLINES		0x00000001	// version 4.70 以降: 「詳細表示」のリストビューで罫線を表示します。 
#define global	LVS_EX_SUBITEMIMAGES		0x00000002	// version 4.70 以降: 「詳細表示」のリストビューでイメージがサブアイテムに表示されるようにします。 
#define global	LVS_EX_CHECKBOXES		0x00000004	// version 4.70 以降: アイテムにチェックボックスをつけます。 
#define global	LVS_EX_TRACKSELECT		0x00000008	// version 4.70 以降: マウスカーソルがアイテム上で一定時間停止したときにそのアイテムが選択状態になるようにします。すべてのタイプのリストビューで有効です。 
#define global	LVS_EX_HEADERDRAGDROP		0x00000010	// version 4.70 以降: 「詳細表示」のリストビューでヘッダをドラッグアンドドロップすることによってカラムの順序を入れ替えることができるようにします。 
#define global	LVS_EX_FULLROWSELECT		0x00000020	// version 4.70 以降: 「詳細表示」のリストビューで、アイテム選択時に列全体を強調表示します。 
#define global	LVS_EX_ONECLICKACTIVATE		0x00000040	// version 4.70 以降: ユーザーがアイテムをクリックしたときに親ウィンドウに LVN_ITEMACTIVATE 通知メッセージが送られるようにします。また、カーソルがアイテム上に来たときに、アイテムが選択されていなくても強調表示されるようになります。 
#define global	LVS_EX_TWOCLICKACTIVATE		0x00000080	// version 4.70 以降: ユーザーがアイテムをダブルクリックしたときに親ウィンドウに LVN_ITEMACTIVATE 通知メッセージが送られるようにします。また、カーソルがアイテム上に来たときに、アイテムが選択されていなくても強調表示されるようになります。 
#define global	LVS_EX_FLATSB		0x00000100	// version 4.71 以降: フラットスクロールバーを使用します。 
#define global	LVS_EX_REGIONAL		0x00000200	// version 4.71 以降: 「大きいアイコン表示」のリストビューで、アイテムのアイコンとテキストのみを含むリージョンを作成して、ウィンドウリージョンに設定する。 
#define global	LVS_EX_INFOTIP		0x00000400	// version 4.71 以降: 「大きいアイコン表示」のリストビューで、ツールヒップが表示されるときに親ウィンドウに LVN_GETINFOTIP 通知メッセージを送ります。 
#define global	LVS_EX_UNDERLINEHOT		0x00000800	// version 4.71 以降: #define global	LVS_EX_ONECLICKACTIVATE または #define global	LVS_EX_TWOCLICKACTIVATE が設定されている場合に、カーソルがアイテム上に来たときにアイテムのテキストに下線を引くようにします。 
#define global	LVS_EX_UNDERLINECOLD		0x00001000	// version 4.71 以降: #define global	LVS_EX_ONECLICKACTIVATE または #define global	LVS_EX_TWOCLICKACTIVATE が設定されている場合に、アイテムのテキストに下線を引くようにします。 
#define global	LVS_EX_MULTIWORKAREAS		0x00002000	// version 4.71 以降: リストビューが #define global	LVS_AUTOARRANGE スタイルを持つときに、1つ以上の作業領域が定義されるまで自動整列しないようにします。 
  
 
 
//ツリービューに送るメッセージ	#define global	TVM_*** 
//メッセージ	コード	意味	 
#define global	TVM_DELETEITEM		0x1101	//アイテムを削除  
#define global	TVM_EXPAND			0x1102	//アイテムを開く・閉じる  
#define global	TVM_GETBKCOLOR		0x111F	//背景色を取得	 
#define global	TVM_GETCOUNT		0x1105	//アイテム数の取得	 
#define global	TVM_GETITEM			0x110C	//アイテムの属性を取得	 
#define global	TVM_GETNEXTITEM		0x110A	//指定されたアイテムを取得	 
#define global	TVM_GETTEXTCOLOR	0x1120	//文字色を取得	 
#define global	TVM_GETVISIBLECOUNT	0x1110	//表示可能なアイテム数の取得	 
#define global	TVM_INSERTITEM		0x1100	//新しいアイテムを追加	 
#define global	TVM_SETIMAGELIST	0x1109	//イメージリストを設定  
#define global	TVM_SETITEM			0x110D	//アイテムの属性を設定  
#define global	TVM_SORTCHILDREN	0x1113	//子アイテムのソート	 
 
//タブコントロールに送るメッセージ	#define global	TCM_*** 
//メッセージ	コード	意味	 
#define global	TCM_ADJUSTRECT		0x1328	//ウィンドウ領域と表示領域を相互に変換	 
#define global	TCM_DELETEALLITEMS	0x1309	//すべてのタブを削除  
#define global	TCM_DELETEITEM		0x1308	//タブを削除  
#define global	TCM_GETCURSEL		0x130B	//選択されているタブインデックスを取得	 
#define global	TCM_GETITEM			0x1305	//タブの情報を取得	 
#define global	TCM_GETITEMCOUNT	0x1304	//タブの数を取得	 
#define global	TCM_INSERTITEM		0x1307	//新しいタブを挿入  
#define global	TCM_SETCURSEL		0x130C	//タブを選択  
#define global	TCM_SETIMAGELIST	0x1303	//イメージリストを設定  
#define global	TCM_SETITEM			0x1306	//タブの属性を設定  
 
//アップダウンコントロールに送るメッセージ	#define global	UDM_*** 
//メッセージ	コード	意味	 
#define global	UDM_GETPOS			0x0468	//現在のポジションを取得	 
#define global	UDM_GETPOS32		0x0472	//現在のポジション(32ビット値)を取得	 
#define global	UDM_SETBUDDY		0x0469	//バディウィンドウを設定  
#define global	UDM_SETPOS			0x0467	//現在のポジション(32ビット値)を設定  
#define global	UDM_SETPOS32		0x0471	//現在のポジションを設定  
#define global	UDM_SETRANGE		0x0465	//ポジションの範囲を設定  
#define global	UDM_SETRANGE32		0x046F	//ポジションの範囲(32ビット値)を設定  
 
//ツールバーに送るメッセージ	#define global	TB_*** 
//メッセージ	コード	意味	 
#define global	TB_ADDBITMAP		0x0413	//ボタンイメージのリストにビットマップイメージを追加	 
#define global	TB_ADDBUTTONS		0x0414	//新しいボタンを追加	 
#define global	TB_ADDSTRING		0x041C	//文字列のリストに新しい文字列を追加	 
#define global	TB_AUTOSIZE			0x0421	//ツールバーサイズを調整	 
#define global	TB_BUTTONSTRUCTSIZE	0x041E	//TBBUTTON構造体のサイズを設定  
#define global	TB_CHECKBUTTON		0x0402	//ボタンを押された状態または押されていない状態に設定  
#define global	TB_COMMANDTOINDEX	0x0419	//コマンド	ID	からボタンインデックスを取得	 
#define global	TB_DELETEBUTTON		0x0416	//ボタンを削除  
#define global	TB_ENABLEBUTTON		0x0401	//ボタンの選択可・不可を設定  
#define global	TB_GETSTATE			0x0412	//ボタンの状態を取得	 
#define global	TB_HIDEBUTTON		0x0404	//ボタンの表示・非表示を設定  
#define global	TB_INSERTBUTTON		0x0415	//新しいボタンを挿入  
#define global	TB_LOADIMAGES		0x0432	//システム定義のボタンイメージをロード	 
#define global	TB_SETBITMAPSIZE	0x0420	//ビットマップのサイズを設定  
#define global	TB_SETDISABLEDIMAGELIST	0x0436	//無効状態にあるボタンのイメージリストを設定  
#define global	TB_SETHOTIMAGELIST	0x0434	//ホット状態にあるボタンのイメージリストを設定  
#define global	TB_SETIMAGELIST		0x0430	//デフォルト状態にあるボタンのイメージリストを設定  
#define global	TB_SETINDENT		0x042F	//インデントを設定  
#define global	TB_SETSTATE			0x0411	//ボタンの状態を設定  
#define global	TBSTYLE_TOOLTIPS        0x0100 
#define global	TBSTYLE_WRAPABLE        0x0200	//ボタンが複数行になる 
#define global	TBSTYLE_ALTDRAG         0x0400 
#define global	TBSTYLE_FLAT            0x0800	//フラットツールバーにする 
#define global	TBSTYLE_LIST            0x1000 
#define global	TBSTYLE_CUSTOMERASE     0x2000 
#define global	TBSTYLE_REGISTERDROP    0x4000 
#define global	TBSTYLE_TRANSPARENT     0x8000	//ツールバーの背景を透明に 
#define global	TBSTYLE_EX_DRAWDDARROWS 0x00000001 
 
 
 
#define global TBSTYLE_BUTTON          0x0000  // obsolete; use BTNS_BUTTON instead 
#define global TBSTYLE_SEP             0x0001  // obsolete; use BTNS_SEP instead 
#define global TBSTYLE_CHECK           0x0002  // obsolete; use BTNS_CHECK instead 
#define global TBSTYLE_GROUP           0x0004  // obsolete; use BTNS_GROUP instead 
#define global TBSTYLE_CHECKGROUP      (TBSTYLE_GROUP | TBSTYLE_CHECK)     // obsolete; use BTNS_CHECKGROUP instead 
#define global TBSTYLE_DROPDOWN        0x0008  // obsolete; use BTNS_DROPDOWN instead 
#define global TBSTYLE_AUTOSIZE        0x0010  // obsolete; use BTNS_AUTOSIZE instead 
#define global TBSTYLE_NOPREFIX        0x0020  // obsolete; use BTNS_NOPREFIX instead 
 
 
 
//ツールバーTBBUTTON構造体 
 
//fsState 
#define global	TBSTATE_CHECKED         0x01		//クリックされている状態 
#define global	TBSTATE_ELLIPSES        0x40		//省略 
#define global	TBSTATE_ENABLED         0x04		//ユーザー入力を受けつける状態 
#define global	TBSTATE_HIDDEN          0x08		//ボタンが見えない 
#define global	TBSTATE_INDETERMINATE   0x10		//ボタン灰色表示 
#define global	CMB_MASKED              0x02		//ボタンがマークされる 
#define global	TBSTATE_PRESSED         0x02		//ボタンが押された状態 
#define global	TBSTATE_WRAP            0x20		//ライングブレーク 
 
//fsStyle 
#define global BTNS_BUTTON     TBSTYLE_BUTTON      // 標準的なボタン 
#define global BTNS_SEP        TBSTYLE_SEP         // 区切り線 
#define global BTNS_CHECK      TBSTYLE_CHECK       // 1度ボタンをおすとそのまま押された状態 トグル 
#define global BTNS_GROUP      TBSTYLE_GROUP       // CHECK と組み合わせて 他のボタンがおされるまで 
#define global BTNS_CHECKGROUP TBSTYLE_CHECKGROUP  // Check と Group が組み合わさった 
#define global BTNS_DROPDOWN   TBSTYLE_DROPDOWN    // ドロップダウンスタイル 
#define global BTNS_AUTOSIZE   TBSTYLE_AUTOSIZE    // 標準的なボタンのわくを割り当てずにテキストに 
#define global BTNS_NOPREFIX   TBSTYLE_NOPREFIX    // ボタンテキストがアクセラレ^多 
#define global BTNS_SHOWTEXT   0x0040              // ボタンテキスト 
#define global BTNS_WHOLEDROPDOWN  0x0080          // ドロップダウンアロー 
 
 
 
 
 
#define global GWL_WNDPROC         -4 
#define global GWL_HINSTANCE       -6 
#define global GWL_HWNDPARENT      -8 
#define global GWL_STYLE           -16 
#define global GWL_EXSTYLE         -20 
#define global GWL_USERDATA        -21 
#define global GWL_ID              -12 
 
/* 
 * Window Styles 
 */ 
#define global WS_OVERLAPPED       0x00000000	//オーバーラップウィンドウを作成します。オーバーラップウィンドウはタイトルと枠を持ちます。 
#define global WS_POPUP            0x80000000	//ポップアップウィンドウを作成します。このスタイルは、WS_CHILD スタイルと一緒には使えません。 
#define global WS_CHILD            0x40000000	//子ウィンドウを作成します。このスタイルは、WS_POPUP スタイルと一緒には使えません。 
#define global WS_MINIMIZE         0x20000000	//ウィンドウを最小化の状態で作成します。 
#define global WS_VISIBLE          0x10000000	//可視状態のウィンドウを作成します。 
#define global WS_DISABLED         0x08000000	//無効 (使用不能) なウィンドウを作成します。無効なウィンドウは、有効にするまで、ユーザーからの入力を受け取りません。 
#define global WS_CLIPSIBLINGS     0x04000000	// 兄弟関係にある子ウィンドウをクリップします。 
#define global WS_CLIPCHILDREN     0x02000000	//親ウィンドウ内部を描画するときに、子ウィンドウが占める領域を除外します。このスタイルは、親ウィンドウを作成するときに使います。 
#define global WS_MAXIMIZE         0x01000000	// 
#define global WS_CAPTION          0x00C00000	//タイトルバーを持つウィンドウを作成します。(WS_BORDER | WS_DLGFRAME) 
#define global WS_BORDER           0x00800000	//境界線を持つウィンドウを作成します。 
#define global WS_DLGFRAME         0x00400000	//ダイアログボックスで一般的に使われるスタイルの境界を持つウィンドウを作成します。 
#define global WS_VSCROLL          0x00200000	//垂直スクロールバーを持つウィンドウを作成します。 
#define global WS_HSCROLL          0x00100000	//水平スクロールバーを持つウィンドウを作成します。 
#define global WS_SYSMENU          0x00080000	//タイトルバー上にウィンドウメニューボックスを持つウィンドウを作成します。 
#define global WS_THICKFRAME       0x00040000	//サイズ変更境界を持つウィンドウを作成します。 
#define global WS_GROUP            0x00020000	//コントロールグループの最初のコントロールを指定します。このコントロールから、次に WS_GROUP スタイルのコントロールがくるまでに定義されたコントロールが、コントロールグループになります。 
#define global WS_TABSTOP          0x00010000	//ユーザーが[Tab]キーを押すと入力フォーカスを受け取るコントロールを指定します。[Tab]キーを押すと、WS_TABSTOP スタイルを持つ次のコントロールに、入力フォーカスが移動します。 
 
#define global WS_MINIMIZEBOX      0x00020000	//最小化ボタンを持つウィンドウを作成します。 WS_SYSMENU スタイルも指定する必要があります。拡張スタイルに WS_EX_CONTEXTHELP を指定することはできません。 
#define global WS_MAXIMIZEBOX      0x00010000	//最大化ボタンを持つウィンドウを作成します。 WS_SYSMENU スタイルも指定する必要があります。拡張スタイルに WS_EX_CONTEXTHELP を指定することはできません。 
 
 
 
 
#define global WS_EX_DLGMODALFRAME     0x00000001	// 
#define global WS_EX_NOPARENTNOTIFY    0x00000004	// 
#define global WS_EX_TOPMOST           0x00000008		// 
#define global WS_EX_ACCEPTFILES       0x00000010		// 
#define global WS_EX_TRANSPARENT       0x00000020	// 
#define global WS_EX_MDICHILD          0x00000040		// 
#define global WS_EX_TOOLWINDOW        0x00000080		// 
#define global WS_EX_WINDOWEDGE        0x00000100	// 
#define global WS_EX_CLIENTEDGE        0x00000200		// 
#define global WS_EX_CONTEXTHELP       0x00000400	// 
 
#define global WS_EX_RIGHT             0x00001000		// 
#define global WS_EX_LEFT              0x00000000		// 
#define global WS_EX_RTLREADING        0x00002000		// 
#define global WS_EX_LTRREADING        0x00000000		// 
#define global WS_EX_LEFTSCROLLBAR     0x00004000	// 
#define global WS_EX_RIGHTSCROLLBAR    0x00000000	// 
 
#define global WS_EX_CONTROLPARENT     0x00010000	// 
#define global WS_EX_STATICEDGE        0x00020000		// 
#define global WS_EX_APPWINDOW         0x00040000		// 
 
 
 
 
 
/* Stock Logical Objects */ 
#define global	WHITE_BRUSH         0		//ホワイトブラシ 
#define global	 LTGRAY_BRUSH        1		// 
#define global	 GRAY_BRUSH          2 
#define global	 DKGRAY_BRUSH        3 
#define global	 BLACK_BRUSH         4 
#define global	 NULL_BRUSH          5 
#define global	 HOLLOW_BRUSH        NULL_BRUSH 
#define global	 WHITE_PEN           6 
#define global	 BLACK_PEN           7 
#define global	 NULL_PEN            8 
#define global	 OEM_FIXED_FONT      10 
#define global	 ANSI_FIXED_FONT     11 
#define global	 ANSI_VAR_FONT       12 
#define global	 SYSTEM_FONT         13 
#define global	 DEVICE_DEFAULT_FONT 14 
#define global	 DEFAULT_PALETTE     15 
#define global	 SYSTEM_FIXED_FONT   16 
 
 
#define global GCL_HBRBACKGROUND   -10 
 
// GetSystemMetrics() codes 
  
 
#define global	SM_CXSCREEN			0 
#define global	SM_CYSCREEN			1 
#define global	SM_CXVSCROLL		2 
#define global	SM_CYHSCROLL		3 
#define global	SM_CYCAPTION		4 
#define global	SM_CXBORDER			5 
#define global	SM_CYBORDER			6 
#define global	SM_CXDLGFRAME		7 
#define global	SM_CYDLGFRAME		8 
#define global	SM_CYVTHUMB			9 
#define global	SM_CXHTHUMB			10 
#define global	SM_CXICON			11 
#define global	SM_CYICON			12 
#define global	SM_CXCURSOR			13 
#define global	SM_CYCURSOR			14 
#define global	SM_CYMENU			15 
#define global	SM_CXFULLSCREEN		16 
#define global	SM_CYFULLSCREEN		17 
#define global	SM_CYKANJIWINDOW	18 
#define global	SM_MOUSEPRESENT		19 
#define global	SM_CYVSCROLL		20 
#define global	SM_CXHSCROLL		21 
#define global	SM_DEBUG			22 
#define global	SM_SWAPBUTTON		23 
#define global	SM_RESERVED			124 
#define global	SM_CXMIN			28 
#define global	SM_CYMIN			29 
#define global	SM_CXSIZE			30 
#define global	SM_CYSIZE			31 
#define global	SM_CXFRAME			32 
#define global	SM_CYFRAME			33 
#define global	SM_CXSIZEFRAME		SM_CXFRAME 
#define global	SM_CYSIZEFRAME		SM_CYFRAME 
#define global	SM_CXMINTRACK		34 
#define global	SM_CYMINTRACK		35 
#define global	SM_CXDOUBLECLK		36 
#define global	SM_CYDOUBLECLK		37 
#define global	SM_CXICONSPACING	38 
#define global	SM_CYICONSPACING	39 
#define global	SM_MENUDROPALIGNMENT	40 
#define global	SM_PENWINDOWS		41 
#define global	SM_DBCSENABLED		42 
#define global	SM_CMOUSEBUTTONS	43 
#define global	SM_SECURE			44 
#define global	SM_CXEDGE			45 
#define global	SM_CYEDGE			46 
#define global	SM_CXMINSPACING		47 
#define global	SM_CYMINSPACING		48 
#define global	SM_CXSMICON			49 
#define global	SM_CYSMICON			50 
#define global	SM_CYSMCAPTION		51 
#define global	SM_CXSMSIZE			52 
#define global	SM_CYSMSIZE			53 
#define global	SM_CXMENUSIZE		54 
#define global	SM_CYMENUSIZE		55 
#define global	SM_ARRANGE			56 
#define global	SM_CXMINIMIZED		57 
#define global	SM_CYMINIMIZED		58 
#define global	SM_CXMAXTRACK		59 
#define global	SM_CYMAXTRACK		60 
#define global	SM_CXMAXIMIZED		61 
#define global	SM_CYMAXIMIZED		62 
#define global	SM_NETWORK			63 
#define global	SM_CLEANBOOT		67 
#define global	SM_CXDRAG 			68 
#define global	SM_CYDRAG 			69 
 
#define ctype crgb(%1,%2,%3)			(%1|(%2<<8)|(%3<<16)) 
 
 
 
#define global	 SW_HIDE			1 	//ウィンドウを非表示にして、他のウィンドウをアクティブにします。 
#define global	 SW_SHOWNORMAL 		2	//ウィンドウをアクティブにして表示します。ウィンドウが最小化または最大化されている場合は、ウィンドウの位置とサイズを元に戻します。アプリケーションは、最初にウィンドウを表示させるときにこのフラグを指定するべきです。 
#define global	 SW_SHOWMINIMIZED 	3	//ウィンドウをアクティブにして、最小化されたウィンドウとして表示します。 
#define global	 SW_SHOWMAXIMIZED		4 	//ウィンドウをアクティブにして、最大化されたウィンドウとして表示します。 
#define global	 SW_SHOWNOACTIVATE 	5	//ウィンドウをアクティブにはせずに表示します。 
#define global	 SW_SHOW 			6	//ウィンドウをアクティブにして、現在の位置とサイズで表示します。 
#define global	 SW_MINIMIZE 		7	//指定されたウィンドウを最小化して、次の Z オーダーにあるトップレベルウィンドウをアクティブにします。 
#define global	 W_SHOWMINNOACTIVE 	8	//ウィンドウを最小化されたウィンドウとして表示します。ウィンドウはアクティブ化されません。 
#define global	 SW_SHOWNA 			9	//ウィンドウを現在の位置とサイズで表示します。ウィンドウはアクティブ化されません。 
#define global	 SW_RESTORE 		10	//ウィンドウをアクティブにして表示します。ウィンドウが最小化または最大化されている場合は、ウィンドウの位置とサイズを元に戻します。アプリケーションは、最小化されたウィンドウの位置とサイズを元に戻すときにこのフラグを指定するべきです。 
#define global	 SW_SHOWDEFAULT 		11	//アプリケーションを起動したプログラムが CreateProcess 関数にパラメータとして渡した STARTUPINFO 構造体で指定されている SW_ 値に基づいて表示状態が設定されます。 
#define global	 SW_FORCEMINIMIZE		12  	//ウィンドウを所有しているスレッドがハングしている状態であっても、ウィンドウを最小化します。他のスレッドからウィンドウを最小化させる場合にのみ、このフラグを使用するべきです。 
  
 
#define global SPI_GETFORGROUNDLOCKTIMEOUT	$2000 
#define global SPI_SETFORGROUNDLOCKTIMEOUT	$2001 
 
//背景色処理 
#define global	  WM_CTLCOLORMSGBOX               0x0132	//メッセージボックスmsnbox 
#define global	  WM_CTLCOLOREDIT                 0x0133	//エディットボックスinput 
#define global	  WM_CTLCOLORLISTBOX              0x0134	//listbox 
#define global	  WM_CTLCOLORBTN                  0x0135	//btn? 
#define global	  WM_CTLCOLORDLG                  0x0136	//ダイアログ 
#define global	  WM_CTLCOLORSCROLLBAR            0x0137	//スクロールバー 
#define global	  WM_CTLCOLORSTATIC               0x0138	//スタティック 
 
 
//====== Flat Scrollbar APIs========================================= 
 
 
#define global	  WSB_PROP_CYVSCROLL  0x00000001 
#define global	  WSB_PROP_CXHSCROLL  0x00000002 
#define global	  WSB_PROP_CYHSCROLL  0x00000004 
#define global	  WSB_PROP_CXVSCROLL  0x00000008 
#define global	  WSB_PROP_CXHTHUMB   0x00000010 
#define global	  WSB_PROP_CYVTHUMB   0x00000020 
#define global	  WSB_PROP_VBKGCOLOR  0x00000040 
#define global	  WSB_PROP_HBKGCOLOR  0x00000080 
#define global	  WSB_PROP_VSTYLE     0x00000100 
#define global	  WSB_PROP_HSTYLE     0x00000200 
#define global	  WSB_PROP_WINSTYLE   0x00000400 
#define global	  WSB_PROP_PALETTE    0x00000800 
#define global	  WSB_PROP_MASK       0x00000FFF 
 
#define global	  FSB_FLAT_MODE           2 
#define global	  FSB_ENCARTA_MODE        1 
#define global	  FSB_REGULAR_MODE        0 
 
 
 
; SetWindowPos 関数のパラメータ値 
 
/* 
 * SetWindowPos Flags 
 */ 
#define global	  SWP_NOSIZE          0x0001 
#define global	  SWP_NOMOVE          0x0002 
#define global	  SWP_NOZORDER        0x0004 
#define global	  SWP_NOREDRAW        0x0008 
#define global	  SWP_NOACTIVATE      0x0010 
#define global	  SWP_FRAMECHANGED    0x0020  /* The frame changed: send WM_NCCALCSIZE */ 
#define global	  SWP_SHOWWINDOW      0x0040 
#define global	  SWP_HIDEWINDOW      0x0080 
#define global	  SWP_NOCOPYBITS      0x0100 
#define global	  SWP_NOOWNERZORDER   0x0200  /* Don't do owner Z ordering */ 
#define global	  SWP_NOSENDCHANGING  0x0400  /* Don't send WM_WINDOWPOSCHANGING */ 
#define global	  SWP_DRAWFRAME       SWP_FRAMECHANGED 
#define global	  SWP_NOREPOSITION    SWP_NOOWNERZORDER 
#define global	  SWP_DEFERERASE      0x2000 
#define global	  SWP_ASYNCWINDOWPOS  0x4000 
 
 
 
 
 
//リッチエディットコントロールに送るメッセージ	#define global	EM_*** 
//メッセージ	コード	意味	 
#define global	EM_CANPASTE			0x0432	//指定されたクリップボード形式のデータを貼り付けることができるかどうかを取得	 
#define global	EM_CANUNDO			0x00C6	//元に戻すことができるかどうかを取得	 
#define global	EM_EXGETSEL			0x0434	//選択されている範囲を取得	 
#define global	EM_EXLIMITTEXT		0x0435	//テキストサイズの上限を設定  
#define global	EM_EXSETSEL			0x0437	//選択状態にする範囲を設定  
#define global	EM_FINDTEXT			0x0438	//文字列を検索  
#define global	EM_GETCHARFORMAT	0x043A	//文字書式を取得	 
#define global	EM_GETEVENTMASK		0x043B	//イベントマスクを取得	 
#define global	EM_GETMODIFY		0x00B8	//変更フラグ取得	 
#define global	EM_GETOPTIONS		0x044E	//オプションを取得	 
#define global	EM_GETPARAFORMAT	0x043D	//段落書式を取得	 
#define global	EM_GETSEL			0x00B0	//選択されている範囲を取得	 
#define global	EM_GETSELTEXT		0x043E	//選択されているテキストを取得	 
#define global	EM_SETBKGNDCOLOR	0x0443	//背景色を設定  
#define global	EM_SETCHARFORMAT	0x0444	//文字書式を設定  
#define global	EM_SETEVENTMASK		0x0445	//イベントマスクを設定  
#define global	EM_SETMODIFY		0x00B9	//変更フラグを設定  
#define global	EM_SETOPTIONS		0x044D	//オプションを設定  
#define global	EM_SETPARAFORMAT	0x0447	//段落書式を設定  
#define global	EM_STREAMIN			0x0449	//内容をストリームに置き換える  
#define global	EM_STREAMOUT		0x044A	//内容をストリームに書き出す	 
#define global	EM_UNDO				0x00C7	//直前の操作を元に戻す	 
/* 
 * Edit Control Messages 
 */ 
 
#define global	 EM_SETSEL               0x00B1 
#define global	 EM_GETRECT              0x00B2 
#define global	 EM_SETRECT              0x00B3 
#define global	 EM_SETRECTNP            0x00B4 
#define global	 EM_SCROLL               0x00B5 
#define global	 EM_LINESCROLL           0x00B6 
#define global	 EM_SCROLLCARET          0x00B7 
 
 
#define global	 EM_GETLINECOUNT         0x00BA 
#define global	 EM_LINEINDEX            0x00BB 
#define global	 EM_SETHANDLE            0x00BC 
#define global	 EM_GETHANDLE            0x00BD 
#define global	 EM_GETTHUMB             0x00BE 
#define global	 EM_LINELENGTH           0x00C1 
#define global	 EM_REPLACESEL           0x00C2 
#define global	 EM_GETLINE              0x00C4 
#define global	 EM_LIMITTEXT            0x00C5 
 
 
#define global	 EM_FMTLINES             0x00C8 
#define global	 EM_LINEFROMCHAR         0x00C9		//元に戻す 
#define global	 EM_SETTABSTOPS          0x00CB 
#define global	 EM_SETPASSWORDCHAR      0x00CC 
#define global	 EM_EMPTYUNDOBUFFER      0x00CD 
#define global	 EM_GETFIRSTVISIBLELINE  0x00CE 
#define global	 EM_SETREADONLY          0x00CF		//書き込み禁止属性 
#define global	 EM_SETWORDBREAKPROC     0x00D0 
#define global	 EM_GETWORDBREAKPROC     0x00D1 
#define global	 EM_GETPASSWORDCHAR      0x00D2 
#define global	 EM_SETMARGINS           0x00D3 
#define global	 EM_GETMARGINS           0x00D4 
#define global	 EM_SETLIMITTEXT         EM_LIMITTEXT 
#define global	 EM_GETLIMITTEXT         0x00D5 
#define global	 EM_POSFROMCHAR          0x00D6 
#define global	 EM_CHARFROMPOS          0x00D7 
 
/* 
 * Listbox Styles 
 */ 
#define global	 LBS_NOTIFY            0x0001 
#define global	 LBS_SORT              0x0002 
#define global	 LBS_NOREDRAW          0x0004 
#define global	 LBS_MULTIPLESEL       0x0008 
#define global	 LBS_OWNERDRAWFIXED    0x0010 
#define global	 LBS_OWNERDRAWVARIABLE 0x0020 
#define global	 LBS_HASSTRINGS        0x0040 
#define global	 LBS_USETABSTOPS       0x0080 
#define global	 LBS_NOINTEGRALHEIGHT  0x0100 
#define global	 LBS_MULTICOLUMN       0x0200 
#define global	 LBS_WANTKEYBOARDINPUT 0x0400 
#define global	 LBS_EXTENDEDSEL       0x0800 
#define global	 LBS_DISABLENOSCROLL   0x1000 
#define global	 LBS_NODATA            0x2000 
#define global	 LBS_NOSEL             0x4000 
 
 
 
 
/* 
 * Listbox messages 
 */ 
#define global	 LB_ADDSTRING            0x0180 
#define global	 LB_INSERTSTRING         0x0181 
#define global	 LB_DELETESTRING         0x0182 
#define global	 LB_SELITEMRANGEEX       0x0183 
#define global	 LB_RESETCONTENT         0x0184 
#define global	 LB_SETSEL               0x0185	//指定インデックスの選択	TRUE なら選択	インデックス 
#define global	 LB_SETCURSEL            0x0186	//指定行の選択要求 
#define global	 LB_GETSEL               0x0187 
#define global	 LB_GETCURSEL            0x0188 
#define global	 LB_GETTEXT              0x0189 
#define global	 LB_GETTEXTLEN           0x018A 
#define global	 LB_GETCOUNT             0x018B 
#define global	 LB_SELECTSTRING         0x018C 
#define global	 LB_DIR                  0x018D 
#define global	 LB_GETTOPINDEX          0x018E 
#define global	 LB_FINDSTRING           0x018F 
#define global	 LB_GETSELCOUNT          0x0190 
#define global	 LB_GETSELITEMS          0x0191 
#define global	 LB_SETTABSTOPS          0x0192 
#define global	 LB_GETHORIZONTALEXTENT  0x0193 
#define global	 LB_SETHORIZONTALEXTENT  0x0194 
#define global	 LB_SETCOLUMNWIDTH       0x0195 
#define global	 LB_ADDFILE              0x0196 
#define global	 LB_SETTOPINDEX          0x0197 
#define global	 LB_GETITEMRECT          0x0198 
#define global	 LB_GETITEMDATA          0x0199 
#define global	 LB_SETITEMDATA          0x019A 
#define global	 LB_SELITEMRANGE         0x019B 
#define global	 LB_SETANCHORINDEX       0x019C 
#define global	 LB_GETANCHORINDEX       0x019D 
#define global	 LB_SETCARETINDEX        0x019E 
#define global	 LB_GETCARETINDEX        0x019F 
#define global	 LB_SETITEMHEIGHT        0x01A0 
#define global	 LB_GETITEMHEIGHT        0x01A1 
#define global	 LB_FINDSTRINGEXACT      0x01A2 
#define global	 LB_SETLOCALE            0x01A5 
#define global	 LB_GETLOCALE            0x01A6 
#define global	 LB_SETCOUNT             0x01A7 
#define global	 LB_INITSTORAGE          0x01A8 
#define global	 LB_ITEMFROMPOINT        0x01A9 
#define global	 LB_MULTIPLEADDSTRING    0x01B1 
 
 
 
 
 
 
/* 
 * Button Control Styles 
 */ 
#define global	 BS_PUSHBUTTON       0x00000000 
#define global	 BS_DEFPUSHBUTTON    0x00000001 
#define global	 BS_CHECKBOX         0x00000002 
#define global	 BS_AUTOCHECKBOX     0x00000003 
#define global	 BS_RADIOBUTTON      0x00000004 
#define global	 BS_3STATE           0x00000005 
#define global	 BS_AUTO3STATE       0x00000006 
#define global	 BS_GROUPBOX         0x00000007 
#define global	 BS_USERBUTTON       0x00000008 
#define global	 BS_AUTORADIOBUTTON  0x00000009 
#define global	 BS_OWNERDRAW        0x0000000B 
#define global	 BS_LEFTTEXT         0x00000020 
#define global	 BS_TEXT             0x00000000 
#define global	 BS_ICON             0x00000040 
#define global	 BS_BITMAP           0x00000080 
#define global	 BS_LEFT             0x00000100 
#define global	 BS_RIGHT            0x00000200 
#define global	 BS_CENTER           0x00000300 
#define global	 BS_TOP              0x00000400 
#define global	 BS_BOTTOM           0x00000800 
#define global	 BS_VCENTER          0x00000C00 
#define global	 BS_PUSHLIKE         0x00001000 
#define global	 BS_MULTILINE        0x00002000 
#define global	 BS_NOTIFY           0x00004000 
#define global	 BS_FLAT             0x00008000 
#define global	 BS_RIGHTBUTTON      BS_LEFTTEXT 
 
 
 
#define global	 BN_CLICKED          0	//ボタンがクリックされた 
#define global	 BN_PAINT            1 
#define global	 BN_HILITE           2 
#define global	 BN_UNHILITE         3 
#define global	 BN_DISABLE          4 
#define global	 BN_DOUBLECLICKED    5 
#define global	 BN_PUSHED           BN_HILITE 
#define global	 BN_UNPUSHED         BN_UNHILITE 
#define global	 BN_DBLCLK           BN_DOUBLECLICKED 
#define global	 BN_SETFOCUS         6 
#define global	 BN_KILLFOCUS        7 
 
 
/* 
 * Button Control Messages 
 */ 
#define global	 BM_GETCHECK        0x00F0 
#define global	 BM_SETCHECK        0x00F1 
#define global	 BM_GETSTATE        0x00F2 
#define global	 BM_SETSTATE        0x00F3			//ボタンをおしたように描画 1=YES 2=No 
#define global	 BM_SETSTYLE        0x00F4 
#define global	 BM_CLICK           0x00F5			//ボタンをプログラムからクリック 
#define global	 BM_GETIMAGE        0x00F6 
#define global	 BM_SETIMAGE        0x00F7 
#define global	 BST_UNCHECKED      0x0000 
#define global	 BST_CHECKED        0x0001 
#define global	 BST_INDETERMINATE  0x0002 
#define global	 BST_PUSHED         0x0004 
#define global	 BST_FOCUS          0x0008 
 
 
 
 
 
 
 
 
 
/* 
 * Combo Box return Values 
 */ 
#define global	 CB_OKAY             0 
#define global	 CB_ERR              (-1) 
#define global	 CB_ERRSPACE         (-2) 
 
 
/* 
 * Combo Box Notification Codes 
 */ 
#define global	 CBN_ERRSPACE        -1 
#define global	 CBN_SELCHANGE       1 
#define global	 CBN_DBLCLK          2 
#define global	 CBN_SETFOCUS        3 
#define global	 CBN_KILLFOCUS       4 
#define global	 CBN_EDITCHANGE      5 
#define global	 CBN_EDITUPDATE      6 
#define global	 CBN_DROPDOWN        7 
#define global	 CBN_CLOSEUP         8 
#define global	 CBN_SELENDOK        9 
#define global	 CBN_SELENDCANCEL    10 
 
/* 
 * Combo Box styles 
 */ 
#define global	 CBS_SIMPLE            0x0001 
#define global	 CBS_DROPDOWN          0x0002 
#define global	 CBS_DROPDOWNLIST      0x0003 
#define global	 CBS_OWNERDRAWFIXED    0x0010 
#define global	 CBS_OWNERDRAWVARIABLE 0x0020 
#define global	 CBS_AUTOHSCROLL       0x0040 
#define global	 CBS_OEMCONVERT        0x0080 
#define global	 CBS_SORT              0x0100 
#define global	 CBS_HASSTRINGS        0x0200 
#define global	 CBS_NOINTEGRALHEIGHT  0x0400 
#define global	 CBS_DISABLENOSCROLL   0x0800 
#define global	 CBS_UPPERCASE           0x2000 
#define global	 CBS_LOWERCASE           0x4000 
 
 
/* 
 * Combo Box messages 
 */ 
 
#define global	 CB_GETEDITSEL               0x0140 
#define global	 CB_LIMITTEXT                0x0141 
#define global	 CB_SETEDITSEL               0x0142 
#define global	 CB_ADDSTRING                0x0143 
#define global	 CB_DELETESTRING             0x0144 
#define global	 CB_DIR                      0x0145 
#define global	 CB_GETCOUNT                 0x0146 
#define global	 CB_GETCURSEL                0x0147 
#define global	 CB_GETLBTEXT                0x0148 
#define global	 CB_GETLBTEXTLEN             0x0149 
#define global	 CB_INSERTSTRING             0x014A 
#define global	 CB_RESETCONTENT             0x014B 
#define global	 CB_FINDSTRING               0x014C	//指定文字列に前方一致する項目を検索 
#define global	 CB_SELECTSTRING             0x014D	//指定文字列に前方一致する項目を選択 
#define global	 CB_SETCURSEL                0x014E	//指定列の指定	 
#define global	 CB_SHOWDROPDOWN             0x014F 
#define global	 CB_GETITEMDATA              0x0150 
#define global	 CB_SETITEMDATA              0x0151 
#define global	 CB_GETDROPPEDCONTROLRECT    0x0152 
#define global	 CB_SETITEMHEIGHT            0x0153 
#define global	 CB_GETITEMHEIGHT            0x0154 
#define global	 CB_SETEXTENDEDUI            0x0155 
#define global	 CB_GETEXTENDEDUI            0x0156 
#define global	 CB_GETDROPPEDSTATE          0x0157 
#define global	 CB_FINDSTRINGEXACT          0x0158	//指定文字列にマッチする項目を選択	検索開始インデックス 	文字列へのポインタ  
#define global	 CB_SETLOCALE                0x0159 
#define global	 CB_GETLOCALE                0x015A 
 
#define global	 CB_GETTOPINDEX              0x015b 
#define global	 CB_SETTOPINDEX              0x015c 
#define global	 CB_GETHORIZONTALEXTENT      0x015d 
#define global	 CB_SETHORIZONTALEXTENT      0x015e 
#define global	 CB_GETDROPPEDWIDTH          0x015f 
#define global	 CB_SETDROPPEDWIDTH          0x0160 
#define global	 CB_INITSTORAGE              0x0161 
 
#define global	 CB_MULTIPLEADDSTRING        0x0163 
 
 
 
//WM_ACTIVATE パラメータ				if (wparam=WA_CLICKACTIVE)|(wparam=WA_ACTIVE){} 
#define global	 WA_INACTIVE			0	//wParam	ヒアクティブ 
#define global	 WA_ACTIVE				1	//wParam	キーボードによるアクティブ 
#define global	 WA_CLICKACTIVE			2	//wParam	マウスによるアクティブ 
 
 
 
//非クライアントエリアのウィンドウメッセージ 
 
#define global	WM_NCCREATE                     0x0081 
#define global	WM_NCDESTROY                    0x0082 
#define global	WM_NCCALCSIZE                   0x0083 
#define global	WM_NCHITTEST                    0x0084 
#define global	WM_NCPAINT                      0x0085 
#define global	WM_NCACTIVATE                   0x0086 
#define global	WM_GETDLGCODE                   0x0087 
#define global	WM_SYNCPAINT                    0x0088 
#define global	WM_NCMOUSEMOVE                  0x00A0 
#define global	WM_NCLBUTTONDOWN                0x00A1	//左クリックを押した 
#define global	WM_NCLBUTTONUP                  0x00A2	//左クリックを放した 
#define global	WM_NCLBUTTONDBLCLK              0x00A3	//左ダブルクリック 
#define global	WM_NCRBUTTONDOWN                0x00A4	//左クリックを押した 
#define global	WM_NCRBUTTONUP                  0x00A5	//左クリックを放した 
#define global	WM_NCRBUTTONDBLCLK              0x00A6	//右ダブルクリック 
#define global	WM_NCMBUTTONDOWN                0x00A7	 
#define global	WM_NCMBUTTONUP                  0x00A8 
#define global	WM_NCMBUTTONDBLCLK              0x00A9 
#define global	WM_NCXBUTTONDOWN                0x00AB 
#define global	WM_NCXBUTTONUP                  0x00AC 
#define global	WM_NCXBUTTONDBLCLK              0x00AD 
 
 
#define global	SB_BOTTOM  //一番下までスクロール   
#define global	SB_ENDSCROLL  //スクロール終了   
#define global	SB_LINEDOWN  //1 行下へスクロール   
#define global	SB_LINEUP  //1 行上へスクロール   
#define global	SB_PAGEDOWN  //1 ページ下へスクロール   
#define global	SB_PAGEUP  //1 ページ上へスクロール   
#define global	SB_LEFT  //左端へスクロール    
#define global	SB_LINELEFT  //左へスクロール   
#define global	SB_LINERIGHT  //右へスクロール   
#define global	SB_PAGELEFT  //1 ページ左へスクロール   
#define global	SB_PAGERIGHT  //1 ページ右へスクロール   
#define global	SB_RIGHT  		//右端へスクロール   
#define global	SB_THUMBPOSITION //絶対位置へスクロール   
#define global	SB_THUMBTRACK  //指定位置へスクロール ボックスをドラッグ   
#define global	SB_TOP 			// 一番上までスクロール  
 
 
/* 
 * SetWindowsHook() codes 
 */ 
#define global	WH_MIN              (-1) 
#define global	WH_MSGFILTER        (-1) 
#define global	WH_JOURNALRECORD    0 
#define global	WH_JOURNALPLAYBACK  1 
#define global	WH_KEYBOARD         2 
#define global	WH_GETMESSAGE       3 
#define global	WH_CALLWNDPROC      4 
#define global	WH_CBT              5 
#define global	WH_SYSMSGFILTER     6 
#define global	WH_MOUSE            7 
#define global	WH_HARDWARE         8 
#define global	WH_DEBUG            9 
#define global	WH_SHELL           10 
#define global	WH_FOREGROUNDIDLE  11 
#define global	WH_CALLWNDPROCRET  12 
#define global	WH_KEYBOARD_LL     13 
#define global	WH_MOUSE_LL        14 
#define global	WH_MINHOOK         WH_MIN 
 
 
 
#define global ctype	LOWORD(%1) (%1 & 0xFFFF)	//下位ワード値を取得 
#define global ctype	HIWORD(%1) ((%1 >> 16 ) & 0xFFFF)	//下位ワード値を取得 
dir_main_p@	=	dir_cur 
#define global dir_main dir_main_p@	//exeのあるディレクトリ 
#define global ctype	objh(%1)	objinfo (%1,2) 
 

module_basic.hsp

//特殊API 
 
#uselib "msvcrt" 
//ファイルのリネーム 
#func rename "rename" str, str 
 
 
 
 
#module "basic" 
 
 
 
#deffunc actwin int prm1 
;******************************************************************************* 
;   アクティブウィンドウの制御 (actwin) 
; 
;   戻り値 : 成功 stat=lvshwnd, 失敗 stat=-1 
; 
;   ・書式     actwin handle 
;   ・引数     handle (省略時は現在のHSP Window Handle) 
;   ・タイプ   モジュール命令 
; 
;-- (NOTE) --------------------------------------------------------------------- 
; 
;   (使用例) 
;   actwin hwnd   ;Window ID=2をActiveにする 
;******************************************************************************* 
	handle=prm1 
	OpenIcon handle 
	if handle!0 : hsphwnd=handle : else : hsphwnd=hwnd 
	if hsphwnd==0 : return -1 
 
	GetForegroundWindow 
	fhwnd=stat 
	GetWindowThreadProcessId fhwnd,varptr(PID) 
	ThreadId1=stat 
	GetCurrentThreadId 
	ThreadId2=stat 
	AttachThreadInput ThreadId2,ThreadId1,1 
	SetForegroundWindow hsphwnd 
	AttachThreadInput ThreadId2,ThreadId1,0 
return 0 
 
 
 
 
 
 
#defcfunc folderchek str p1 
mref ref,65 
 
dirlist s2,"*.*",5 
notesel s2 
s4=0 
repeat notemax 
noteget s3,cnt 
if s3=p1:s4=1:break 
loop 
 
ref=dir_cur+"\\"+p1 
 
return s4 
 
 
 
 
//2重起動防止 
#deffunc startchek_start str p1 
	sdim class,128 
	GetClassName hwnd,varptr(class),256 
	s1=p1 
	FindWindowA varptr(class),varptr(s1) 
	if stat!0{ 
		sendmsg stat,WM_USER+0x0200 
		end 
	} 
 
return 
 
 
 
 
 
 
 
//キー実行つきフラグ 
#defcfunc gk int p1 
getkey key,p1:if key=1:return 1:else:return 0 
return 
 
//テストダイアログ 
#deffunc testdialog str p1 
getkey key,16:if key=1:return 
dialog "[ "+p1+" ]            ",," Count : "+testdialog_count+" Cnt :  "+cnt@ 
getkey key,2:if key=1:end 
getkey key,17:if key=1:end 
testdialog_count+ 
return 
 
 
 
//ポジション制御開始 開始X,開始Y,下へ下がる量 
#deffunc posxstart int p1,int p2,int p3 
posxint=0 
posxdownint=p3 
posxx=p1 
posxy=p2 
return 
 
//ポジション制御を解除 
#deffunc posxend 
posxint=0 
return 
 
//ポジションを一段階下へ 
#deffunc posx 
pos posxx,posxy+posxint 
posxint+=posxdownint	//下への移動量 
oldposxdownint=posxdownint 
return 
 
//横に説明がきの文字を書く 
#deffunc posh int p1 
s1=0 
if p1=0:s1=100:else:s1=p1 
pos posxx+s1,posxy+(posxint-oldposxdownint) 
return 
 
 
//一段階ポジションを下げる 下げる量(規定値) 
#deffunc posxdown int p1 
if p1!0:posxint+=p1:else:posxint+posxdownint 
return 
 
 
//gts 文字列の縦横の長さを取得  p1 0=横 1=縦 の長さ p2=文字列 
#defcfunc gts_mod int p1,str p2 
if p1>1{return 0}s1=p2:dim s2,2:GetTextExtentPoint32A hdc,varptr(s1),strlen(s1),varptr(s2):return s2(p1) 
 
//テストSTR 
#deffunc teststr str p1,int p2,int p3 
if hspstat=1{ 
oldcx=ginfo_cx 
oldcy=ginfo_cy 
r=ginfo_r 
g=ginfo_g 
b=ginfo_b 
redraw 0 
color 255,255,255 
if (p2=null)&(p3=null){ 
boxf ginfo_winx-30-2-gts_mod(0,p1), ginfo_winy-30-2,ginfo_winx-5,ginfo_winy-11 
}else{ 
boxf p2,p3,ginfo_winx-5,ginfo_winy-11 
} 
color 
if (p2=null)&(p3=null){ 
pos ginfo_winx-30-gts_mod(0,p1),ginfo_winy-30 
}else{ 
pos p2,p3 
} 
mes p1 
redraw 1 
color r,g,b 
pos oldcx,oldcy 
} 
return 
 
//テストカウント 
#deffunc testcc 
if hspstat=1{ 
oldcx=ginfo_cx 
oldcy=ginfo_cy 
r=ginfo_r 
g=ginfo_g 
b=ginfo_b 
redraw 0 
color 255,255,255 
boxf ginfo_winx-30-2,ginfo_winy-30-2,ginfo_winx-5,ginfo_winy-11 
color 
pos ginfo_winx-30,ginfo_winy-30:mes count_up 
redraw 1 
count_up+ 
color r,g,b 
pos oldcx,oldcy 
} 
return 
 
//ファイルがある場合1を返す 
#defcfunc fileh str p1 
exist p1:if strsize!-1:return 1:else:return 0 
 
 
//gselをロックしてgsel 0=ロック 1=開放 , 変更するウィンドウID 
#deffunc lockgsel int p1, int p2 
if ginfo_sel!p2{ 
	if p1=0{ 
		lock_gsel_id=ginfo_intid 
		gsel p2 
	}else{ 
		gsel lock_gsel_id 
	} 
} 
return 
 
//gselのロック 0=ロック 1=開放 
#deffunc locksel int p1 
if p1=0{lock_gsel_id=ginfo_intid}else{gsel lock_gsel_id} 
return 
 
 
 
//p1で指定された文字列にp2の文字列がある場合1を返す 
#defcfunc instrx str p1,str p2 
s1=p1:if instr(s1,0,p2)!-1:return 1:else:return 0 
 
//******************************************************************** 
//	ini操作関数群3 
// 
//  iniload "読み出すファイル名",共通変数	戻り値 = 文字数 
//		ファイルが存在しない場合0byteファイルを作成し-1を返します。 
//  inisave "書き込むファイル名",共通変数	戻り値 = 文字数 
//  取得した文字列 = inigetstr("セクション名","項目",共通変数) 
//		取得したい項目またはセクションが存在しなかった場合は""を返す 
//  取得した数値 = inigetint("セクション名","項目",共通変数) 
//		取得したい項目またはセクションが存在しなかった場合は0を返す 
//  inisetint "セクション名","項目",代入する値,共通変数		戻り値 = 文字数 
//  inisetstr "セクション名","項目","代入する文字列",共通変数	戻り値 = 文字数 
//  inidel "セクション名","項目",共通変数	戻り値 = 成功フラグ 
//******************************************************************** 
#deffunc iniload str p1,var p2 
exist p1:if strsize=-1{sdim p2,64:return -1}else{p2=str(p2):notesel p2: noteload p1}return strsize 
#deffunc inisave str p1,var p2 
notesel p2:notesave p1:return strlen(str(p2)) 
 
#defcfunc inigetstr str p1, str p2, var p3 
cc=0:s3=0:s2="":s4=0:notesel p3:repeat notemax:noteget s1,cc:if "["+p1=strmid(s1,0,1+strlen(p1)){ 
s6=cc:repeat notemax:cc+:noteget s1,cc:if strmid(s1,0,1)="["{s3=1:break}if p2!""{if strmid(s1,0,strlen(p2))=p2{ 
getstr s2,s1,strlen(p2):getstr s2,s2,1:s3=1:break}}else{if s1=""{if s4=0{s4=1:s5=cc-1}}else{s4=0} 
s2+=s1+"\n"}loop:if s4=1{notesel s2:repeat notemax:notedel s5-s6:loop}}if s3=1{break}cc+:loop 
if p2=""{s2=strmid(s2,0,strlen(s2)-2)}return str(s2) 
 
#defcfunc inigetint str p1, str p2, var p3 
return int(inigetstr(p1,p2,p3)) 
 
#deffunc inidel str p1, str p2, var p3 
d6=1:s6=0:cc=0:notesel p3:repeat notemax:noteget s1,cc:if "["+p1 = strmid(s1,0,1+strlen(p1)){ 
gjcc=cc:if p2=""{repeat notemax-gjcc:notedel cc:noteget s7,cc:if "["=strmid(s7,0,1){d6=1:s6=1:break} 
loop}repeat notemax:cc+:noteget s1,cc:if (strmid(s1,0,strlen(p2))=p2)&(d6=0){notedel cc 
s6=1:break}loop}if s6=1{break}cc+:loop:return 
 
#deffunc inisetstr str p1, str p2, str p3,var p4 
s6=0:cc=0:ju=0:sss=0:add=0:notesel p4:repeat notemax:noteget s1,cc:if "["+p1=strmid(s1,0,1+strlen(p1)){ 
if cc+1=notemax{p4=p4+"\n"}decc=cc:sss=1:repeat notemax:cc+:noteget s1,cc:getstr gggg,s1,0,'=' 
if (gggg=p2)&(p2!""){noteadd str(p2)+"="+str(p3),cc+add,1:s6=1:break}if ("["=strmid(s1,0,1))|(notemax=cc){ 
add=-1:noteget s1,cc-1:if s1!""{noteadd "",cc,0:add=0}if p2!""{noteadd str(p2)+"="+str(p3),cc+add,0}else{ 
repeat notemax-decc:noteget s1,decc+2:if "["=strmid(s1,0,1){break}notedel decc+1:loop:noteadd p3,decc+1,1} 
s6=1:break}loop}if s6=1{break}cc+:loop:if sss=0{cc=0:repeat notemax:noteget s1,cc:if "["=strmid(s1,0,1){ju=1} 
loop:if ju=0{noteadd "["+p1+"]",0,1:if p2!""{noteadd ""+p2+"="+p3+"\n",1,1}else{noteadd ""+p3+"\n",1,1}} 
if ju=1{p4+="\n\n":noteget s1,notemax-3:if s1!""{p4+="\n"}noteadd "["+p1+"]",notemax-2,1:if p2!""{ 
noteadd ""+p2+"="+p3+"\n",notemax-1,1}else{noteadd ""+p3+"\n",notemax-1,1}}}return 
#deffunc inisetint str p1, str p2, int p3,var p4 
inisetstr p1,p2,str(p3),p4:return 
 
        	#deffunc syscolor2 int p1 
 
	GetSysColor p1 
	gcol=stat 
	repeat 3 
	  ret.cnt = peek (gcol,cnt) 
	  if ret.cnt>0 : ret.cnt-- 
	loop 
	 
	color ret.0,ret.1,ret.2 
	return 
 
 
 
 
 
#defcfunc htmlcolor int p1, int p2, int p3 
return strf("#%02X",p1)+strf("%02X",p2)+strf("%02X",p3) 
 
#defcfunc color16 int p1, int p2, int p3 
return int(strf("%02X",p1)+strf("%02X",p2)+strf("%02X",p3)) 
 
#global