	;================================================================================
	;モジュール listview
	;ver 1.01
	;	リストビュー
	;	llmod.asが必要です
	;================================================================================

	; listviewモジュール命令一覧
	;
	; listview			リストビューの作成
	; sel_listview			操作するリストビューを選択
	; listadd			リストビューにアイテムを追加
	; listdel			リストビューのアイテムを消去
	; listaddcl			リストビューに欄を追加
	; listdelcl			欄を消去
	; listsel			リストビューのアイテムを選択
	; listget			リストビューのアイテムを取得
	; listmax			リストビューのアイテムの数を取得
	; listicon			リストビューのアイコンを設定
	; listhit			マウスの下にあるアイテムを取得
	;
	; 計	11個


	;使い方
	;================================================================================
	; listview n1,n2,n3		リストビューの作成
	;
	;  n1 : 幅
	;  n2 : 高さ
	;  n3 : スタイル
	;================================================================================
	;
	;<>説明
	; リストビューを作成します。
	; リストビューは、Explorerの右側にある様なオブジェクトです。
	; 幅や高さを省略するとobjsizeで設定した幅、高さが使われます。
	;
	;<>この命令を呼び出した後のstatの値
	; リストビューのID
	;
	;<>スタイル
	; スタイルは以下の値を足して、複数のスタイルを指定することができます。
	; 0	大きいアイコン表示
	; 1	詳細表示
	; 2	小さいアイコン表示
	; 3	リスト表示
	; 4	複数選択できないようにする
	; 8	listviewが選択されていないときでも、選択されているアイテムの色を変える
	; $10	昇順でアイテムをソートする
	; $20	降順でアイテムをソートする
	; $40	セットしたイメージリストをlistview消去時に消去しない
	;	(複数のlistviewで同じイメージを使う場合に指定する)
	; $80	アイコン表示のとき、アイテムのテキストを折り返さない
	;	(デフォルトではテキストは長いと折り返される)
	; $100	?
	; $800	?
	; $2000	スクロールバーがつかない
	; $4000	欄の名前を表示する部分を付けない
	;
	; 以下のスタイルはcomctl32.dllのバージョンによっては有効にならない場合があります。
	; $10000	リスト表示時に罫線を付ける
	; $40000	チェックボックスを付ける
	; $100000	欄の名前を表示する所をドラッグ&ドロップできる
	; $200000	リスト表示時にアイテムが選択されたときサブアイテムも色を変える
	; $400000	アイテムの上にマウスポインタが来たときカーソルを指の形にする
	; $800000	アイテムクリックされたときカーソルを指の形にする
	; $1000000	スクロールバーを平らなスタイルに変える
	; $8000000	$400000,$800000のスタイルを指定したとき、アイテムの上に
	;		マウスポインタが来ると下線がつく
	; $10000000	$400000,$800000のスタイルを指定したとき、下線がつく
	;
	; ※チェックボックスを付けたときのスタイルで、アイテムがチェックされているかを
	; 調べるときは以下のようにしてください
	;
	;	;list_id : listviewのID
	;	;idx : アイテムのインデックス
	;	prm=list_id,4140,idx,61440
	;	sendmsg prm
	;	chk=stat>>12-1
	;	if chk : dialog ""+idx+"番目のアイテムはチェックされています"
	;
	; リストビューのスタイルは作成後でも以下のようにして変更することができます。
	;	;lstはリストビューのID、styleは新しく設定するスタイル
	;	prm=lst,-16,style|$50000000
	;	setwndlong prm
	;
	; スタイルを省略するとここで設定したデフォルトスタイルが使用されます。

	#define DEFAULT_LISTVIEW_STYLE	0

	;================================================================================
	; sel_listview n1		操作するリストビューを選択
	;
	;  n1 : リストビューのID
	;================================================================================
	;
	;<>説明
	; この命令使用後はn1で指定したリストビューに対して各操作を行います。
	; リストビュー新規に作成すると、自動的にそのリストビューが
	; 各操作の対象になります。
	; 複数のリストビューを作成したときは、この命令で操作するリストビュー
	; を選択してください。
	;

	;================================================================================
	; listadd n1,"s2",n3,n4,n5,n6		リストビューにアイテムを追加
	;
	;  n1 : アイテムの位置
	;  s2 : アイテムのテキスト
	;  n3 : 欄の番号
	;  n4 : アイコン番号
	;  n5 : アイテムの状態
	;  n6 : アイテムに持たせる数値
	;================================================================================
	;
	;<>説明
	; リストビューのn1番目の位置にアイテムをつけ加えます。
	; n3には何番目の欄に追加するかを指定するインデックス、
	; n4にはアイコン番号、n5にはアイテムの状態を入れます。
	;
	; 欄への追加は、listaddclで欄を追加しているときのみ有効です。
	; またアイコン番号は、listiconでアイコンを追加している場合のみ有効になり、
	; 欄へ追加するときはアイコン番号は無視されます。
	;
	; n6に値を入れてアイテムにその数値を持たせることができます。
	;
	;<>この命令を呼び出した後のstatの値
	; 追加したアイテムのインデックス(-1ならエラー)
	;
	;<>アイテムの状態
	; listviewのアイテムの状態には、以下のものがあります。
	;
	; 状態				数値
	; フォーカスがあっている	1
	; 選択されている		2
	; 切り取られた状態		4
	; ハイライト			8
	;
	;※ハイライトはlistselで選択状態を解除しないと元に戻りません。
	;
	;例)
	;	;3番目にアイテム追加、0番目の欄、アイコン番号を15
	;	listadd 3,"new item",0,15
	;
	;	;0番目の1つめの欄にアイテムを追加、
	;	;フォーカスを合わせる
	;	listadd 0,"new sub item",1,0,1
	;

	;================================================================================
	; listdel n1			リストビューのアイテムを消去
	;
	;  n1 : アイテムのインデックス
	;================================================================================
	;
	;<>説明
	; n1番目のアイテムを消去します。
	; n1を-1にすると全てのアイテムを消去します。
	;

	;================================================================================
	; listaddcl n1,"s2",n3,n4		リストビューに欄を追加
	;
	;  n1 : 欄のインデックス
	;  s2 : 欄の名前
	;  n3 : 欄の幅
	;  n4 : 欄の名前の位置
	;================================================================================
	;
	;<>説明
	; 欄を追加します。
	; n3を省略したときのデフォルト値は100です。
	;<>n4の値
	; 0	左寄せ
	; 1	右寄せ
	; 2	中央
	;

	;================================================================================
	; listdelcl n1			欄を消去
	;
	;  n1 : 欄のインデックス
	;================================================================================
	;
	;<>説明
	; n1番目の欄を消去します。
	;

	;================================================================================
	; listsel n1,n2			リストビューのアイテムを選択
	;
	;  n1 : アイテムのインデックス
	;  n2 : 選択状態のタイプ
	;================================================================================
	;
	;<>説明
	; n1番目のアイテムを選択します。
	; n2を-1にすると選択状態を解除します。
	; n2を省略するとフォーカスをあわせて、選択状態にします。
	;
	; 状態				数値
	; フォーカスがあっている	1
	; 選択されている		2
	; 切り取られた状態		4
	; ハイライト			8
	;

	;================================================================================
	; listget v1,n2,n3,n4		リストビューのアイテムを取得
	;
	;  v1 : 取得したものを入れる変数
	;  n2 : アイテムのインデックス
	;  n3 : 取得するもの
	;  n4 : 取得するアイテムの状態
	;================================================================================
	;
	;<>説明
	; 主にアイテムのインデックスを取得します。
	; n3で以下の値を代入すると取得するものが変わってきます。
	;
	;<>n3の値					n4の値
	; 1	n2の上のアイテムのindexを取得		0 or 取得するアイテムの状態
	; 2	n2の下のアイテムのindexを取得		0 or 取得するアイテムの状態
	; 3	n2の左のアイテムのindexを取得		0 or 取得するアイテムの状態
	; 4	n2の右のアイテムのindexを取得		0 or 取得するアイテムの状態
	; 5	n2のテキスト取得			変数のサイズ or -1
	; 6	n2のアイテムに持たせた値を取得		0 or 1
	;
	; n3を5にしたときはstatにアイテムに持たせた値が入ります。
	; n3を5にしたときn4を-1にすると、v1に入っている文字列を使ってアイテムのテキスト
	; を再設定できます。
	; n3を6にしたときn4を1にすると、v1に入っている値を使ってアイテムに持たせた値を
	; 再設定できます。
	;
	; n4を以下の値にするとn4で指定した状態のアイテムを(n2+1)番目のアイテムから
	; n3で指定した方向に向かって検索します。
	; (n3を0にすると方向は指定しません)
	; n4の状態のアイテムが見つかればv1にアイテムのインデックスが代入されます。
	; 見つからなかった場合はv1に-1が代入されます。
	; n2を-1にすると先頭のアイテムから検索します。
	;
	; n4の値
	; 0		状態は指定しない
	; 1		フォーカスがあっている
	; 2		選択されている
	; 4		切り取られた状態
	; 8		ハイライト
	;
	;<>例
	;	#include "llmod.as"
	;	#include "listview.as"
	;
	;	listview winx-6,winy/2,1
	;	lv=stat
	;	listaddcl 0,"name"
	;	repeat 30 : listadd cnt,"アイテム No."+cnt : loop
	;
	;	button "check",*check
	;	alloc bf,1024*32 : bf=""
	;	mesbox bf,winx-6,winy-csry-26
	;	_objsel lv
	;	stop
	;
	;*check
	;	bf="" : notesel bf : start=-1	;先頭から検索
	;	repeat -1
	;		listget chk,start,0,2	;選択状態のアイテムを探す
	;		if chk=-1 : break	;見つからない場合-1が代入される
	;		listget s,chk,5		;見つかったアイテムのテキストを取得
	;		noteadd s+"は選択されています"
	;		start=chk
	;	loop
	;	objprm 1,bf
	;	stop
	;

	;================================================================================
	; listmax v1,n2			リストビューのアイテムの数を取得
	;
	;  v1 : リストビュー内のアイテムの数を入れる数値変数
	;  n2 : フラグ
	;================================================================================
	;
	;<>説明
	; リストビュー内のアイテムの数を取得します。
	; n2を1にするとリストビュー内に完全に見えているアイテムの数を取得します。
	;

	;================================================================================
	; listicon v1,n2,n3		リストビューのアイコンを設定
	;
	;  v1 : アイコンが入った数値変数(get_iconで取得したもの)
	;  n2 : アイコンの数
	;  n3 : セットするアイコンの大小
	;================================================================================
	;
	;<>説明
	; リストビューのアイテムのアイコンを設定します。
	; アイコンをセットするには、imgモジュールが必要です。
	;
	;※必ず、listview.asより先にimg.asをインクルードしてください。
	;
	; n3を0にすると大きいアイコンを表示するときのアイコンをセットし、
	; n3を1にすると小さいアイコンを表示するときのアイコンをセットします。
	;
	;<>例
	;	#include "llmod.as"
	;	#include "img.as"	;listiconを使う時は必要(listview.asより前に)
	;	#include "listview.as"
	;	;まずリストビューを作成
	;	listview 300,200,1|2|4|$20
	;
	;	;shell32.dllの3番目と4番目のアイコン(小さい方)を使う
	;	;(*get_iconについてはimg.asの説明を読んでください。)
	;	filename="shell32.dll"
	;	get_icon icons.0,filename,3,1
	;	get_icon icons.1,filename,4,1
	;
	;	;小さいアイコンを2つセットする
	;	listicon icons,2,1
	;	img_id=stat	;セットしたアイコンについての情報が入った特別な値
	;
	;	;アイテムを追加
	;	;0行目の0番目の欄にアイコン番号1のアイコンを付けたアイテムを追加
	;	listadd 0,"folder 1",0,1
	;	itm1=stat
	;		;
	;		;
	;
	;<>この命令を呼び出した後のstatの値
	; セットしたアイコンについての情報が入った特別な値が返されます。
	; (イメージリストと呼ばれるものです。)
	;
	; listviewはtreeboxと違って、_clrobjなどでlistviewが消去されると、
	; アイコンをセットして消費したメモリを自動的に開放するので、
	;	destroy_imglist 'listicon実行後にstatに代入された値'
	; を実行する必要はありません。
	; ただし、listviewのスタイルに'セットしたイメージリストをlistview消去時に消去しない'
	; を指定している場合は、メモリは自動的に開放されません。このときは、
	;	destroy_imglist 'listicon実行後にstatに代入された値'
	; を実行してください。
	;

	;================================================================================
	; listhit			マウスの下にあるアイテムを取得
	;================================================================================
	;
	;<>説明
	; マウスの下にあるアイテムのインデックスを取得します。
	;
	;<>この命令を呼び出した後のstatの値
	; マウスの下にあるアイテムのインデックスが代入されます。
	; マウスの下にアイテムが無ければ-1が代入されます。
	;





	;module始め>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
	#module "listview"


	;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	;listview
	;List-Viewの作成
	;................................................................................
	#deffunc listview int,int,int
	mref v1			;幅
	mref v2,1		;高さ
	mref v3,2		;スタイル
	mref stt,64		;sttはここでstat扱いにする

	if v3=0 : v3=DEFAULT_LISTVIEW_STYLE

	;#define LVS_NOSORTHEADER	$8000
	a=v3>>16		;ExStyle 下位16ビットは標準のスタイル
	v3=v3&$ffff|$8000	;ソートしないので常にLVS_NOSORTHEADERを加える

	;#define WS_CHILD		0x40000000
	;#define WS_VISIBLE		0x10000000
	;#define WS_CLIPCHILDREN	0x2000000

	v3=v3|$52000000
	alloc m,64		;リセット
	m=csrx,csry,v1,v2,v3,0,$200
	_makewnd m,"SysListView32"
	handle_of_list=m

	;#define LVM_FIRST	0x1000
	;#define LVM_SETEXTENDEDLISTVIEWSTYLE (LVM_FIRST + 54)
	if a : prm=handle_of_list,$1036,0,a : sendmsg prm

	stt=handle_of_list
	return


	;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	;sel_listview
	;
	;................................................................................
	#deffunc sel_listview int
	mref v1
	stt=handle_of_list
	handle_of_list=v1
	return


	;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	;listadd
	;List-Viewにアイテムを加える
	;................................................................................
	#deffunc listadd int,str,int,int,int,int
	mref v1			;index
	mref v2,33		;text of item
	mref v3,2		;subitem
	mref v4,3		;image
	mref v5,4		;state
	mref v6,5		;lparam

	;typedef struct _LV_ITEM {  
	;    UINT   mask; 
	;    int    iItem; 
	;    int    iSubItem; 
	;    UINT   state; 
	;    UINT   stateMask; 
	;    LPTSTR  pszText; 
	;    int    cchTextMax; 
	;    int    iImage;       // index of the list view item's icon 
	;    LPARAM lParam;       // 32-bit value to associate with item 
	;} LV_ITEM; 

	;LV_ITEM mask
	;#define LVIF_TEXT	1
	;#define LVIF_IMAGE	2
	;#define LVIF_PARAM	4
	;#define LVIF_STATE	8
	;#define LVIF_DI_SETITEM	4096

;	alloc lvi,64
;	lvi=9		;mask
;	lvi.1=v1	;iItem
;	lvi.2=v3	;iSubItem
;	lvi.3=v5	;state
;	lvi.4=v7	;stateMask
;	strlen m,v2 : if m>=64 : alloc lcl_s,m+1
;	lcl_s=v2
;	getptr p,lcl_s
;	lvi.5=p		;pszText

	getptr p,v2
	lvi=9,v1,v3,v5,0,p

	;#define LVIS_FOCUSED		1
	;#define LVIS_SELECTED		2
	;#define LVIS_CUT		4
	;#define LVIS_DROPHILITED	8
	;#define LVIS_OVERLAYMASK	3840
	;#define LVIS_STATEIMAGEMASK	61440

	;#define LVM_SETITEMA		4102
	if v3 : m=4102 : else {
		;サブアイテム追加じゃないとき

;		lvi=lvi | 2			;image mask
;		lvi.7=v4			;iImage
;		lvi=lvi | 4			;param mask
;		lvi.8=v6			;lParam
		lvi+=6
		lvi.7=v4,v6
		;#define LVM_INSERTITEMA	4103
		m=4103
	}

	getptr p,lvi

	prm=handle_of_list,m,0,p
	sendmsg prm
	return


	;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	;listdel
	;List-Viewのitemを消去する
	;................................................................................
	#deffunc listdel int
	mref v1			;index

	;#define LVM_DELETEITEM		4104
	;#define LVM_DELETEALLITEMS	4105

	prm=handle_of_list,4104,v1,0
	if v1=-1 : prm.1+	;index=-1で全て消去
	sendmsg prm
	return


	;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	;listaddcl
	;List-Viewに欄を加える
	;................................................................................
	#deffunc listaddcl int,str,int,int
	mref v1
	mref v2,33
	mref v3,2		;width
	mref v4,3		;format

	;#define LVCF_FMT	1
	;#define LVCF_WIDTH	2
	;#define LVCF_TEXT	4
	;#define LVCF_SUBITEM	8

	;#define LVCFMT_LEFT	0
	;#define LVCFMT_RIGHT	1
	;#define LVCFMT_CENTER	2

	;typedef struct _LV_COLUMN {  
	;    UINT mask; 
	;    int fmt; 
	;    int cx; 
	;    LPTSTR pszText; 
	;    int cchTextMax; 
	;    int iSubItem; 
	;} LV_COLUMN; 

;	lcl_s=v2
	;a=1|2|4|8
;	a=15
;	a.1=v4
;	a.5=v1
;	if v3 : a.2=v3 : else a.2=100
;	getptr a.3, lcl_s

	if v3=0 : v3=100
	getptr p,v2
	a=15,v4,v3,p,0,v1

	;#define LVM_INSERTCOLUMNA	4123
	getptr p,a
	prm=handle_of_list,4123,a.5,p
	sendmsg prm
	return


	;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	;listdelcl
	;List-Viewの欄を消去する
	;................................................................................
	#deffunc listdelcl int
	mref v1			;index

;欄は一度に全て消去しない
;	if v1=-1 {	;index=-1で全て消去
;		;#define LVM_GETCOLUMNA	4121
;		a=1
;		getptr p,a
;		prm=handle_of_list,4121,0,p
;		repeat -1
;			prm.2=cnt
;			sendmsg prm
;			if stat=0 : m=cnt : break
;		loop
;		v1=0
;	} else m=0

	;#define LVM_DELETECOLUMN	4124
	prm=handle_of_list,4124,v1,0
;	repeat m
		sendmsg prm
;	loop
	return

	;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	;listsel
	;List-Viewのitemを選択する
	;................................................................................
	#deffunc listsel int,int,int
	mref v1			;item
	mref v2,1		;flag
	mref v3,2


	;#define LVIS_FOCUSED		1
	;#define LVIS_SELECTED		2
	;#define LVIS_CUT		4
	;#define LVIS_DROPHILITED	8
	;#define LVIS_OVERLAYMASK	3840
	;#define LVIS_STATEIMAGEMASK	61440

	if v2=0 : v2=3 : else if v2=-1 : v2=0

	;LV_ITEM mask
	;#define LVIF_TEXT	1
	;#define LVIF_IMAGE	2
	;#define LVIF_PARAM	4
	;#define LVIF_STATE	8
	;#define LVIF_DI_SETITEM	4096

;	lvi=8		;mask
;	lvi.1=v1	;iItem
;	lvi.2=0
;	lvi.3=v2	;state
;	lvi.4=-1	;stateMask
	lvi=8,v1,0,v2,-1

;	if v3 : lvi=lvi|2

	getptr p,lvi
	;#define LVM_SETITEMA		4102
	prm=handle_of_list,4102,0,p

	sendmsg prm
	return


	;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	;listmax
	;List-View内にあるitemの数を調べる
	;................................................................................
	#deffunc listmax val,int
	mref v1,16		;buffer
	mref v2,1		;flag

	;#define LVM_GETITEMCOUNT	4100
	;#define LVM_GETCOUNTPERPAGE	4136
	if v2 : m=4136 : else m=4100
	prm=handle_of_list,m,0,0
	sendmsg prm
	v1=stat
	return


	;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	;listget
	;itemの取得
	;................................................................................
	#deffunc listget val,int,int,int,int
	mref v2,1		;item index
	mref v3,2		;flag
	mref v4,3		;バッファのサイズ
	mref v5,4		;iSubitem

	;v5はlistgetの説明には書いていない。v5に1以上の値を入れると
	;v5番目の欄のテキストの設定、再設定ができる。

	;				v3(flag)
	;#define LVNI_ALL	0	0	x
	;#define LVNI_ABOVE	$100	1	上のアイテムのindexを取得
	;#define LVNI_BELOW	$200	2	下のアイテムのindexを取得
	;#define LVNI_TOLEFT	$400	3	左のアイテムのindexを取得
	;#define LVNI_TORIGHT	$800	4	右のアイテムのindexを取得
	;x				5	テキスト取得

	;				v3
	;#define LVNI_FOCUSED	1	1
	;#define LVNI_SELECTED	2	2
	;#define LVNI_CUT	4	4
	;#define LVNI_DROPHILITED 8	8


	if v3>=5 {
		getptr p,lvi
		if v3=5 {
			mref v1,24
			lvi=5,v2,v5		;mask, iItem, iSubItem
			getptr lvi.5,v1		;pszText
			;バッファのサイズを省略したときの大きさ
			if v4=0 : v4=64
			lvi.6=v4		;cchTextMax

			;#define LVM_GETITEMA	4101
			;#define LVM_SETITEMA	4102
			m=4101
			if v4<0 : lvi=1 : m+	;再設定
			prm=handle_of_list,m,0,p
			sendmsg prm
			stt=lvi.8	;lParam
		}else{
			mref v1,16
			lvi=4,v2		;mask, iItem
			m=4101
			if v4 : lvi.8=v1 : m+	;再設定
			prm=handle_of_list,m,0,p
			sendmsg prm
			v1=lvi.8	;lParam
			stt=0
		}
	}else{
		mref v1,16
		a=0,$100,$200,$400,$800
		;#define LVM_GETNEXTITEM	4108
		prm=handle_of_list,4108,v2,a.v3+v4
		sendmsg prm
		v1=stat
		stt=0
	}
	return


	;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	;listimglist
	;List-Viewのitemのイメージリストをセット
	;................................................................................
	#deffunc listimglist int,int
	mref v1			;image list
	mref v2,1		;big(0) or small(1)

	;#define LVSIL_NORMAL	0
	;#define LVSIL_SMALL	1
	;#define LVSIL_STATE	2

	;#define LVM_SETIMAGELIST	4099
	prm=handle_of_list,4099,v2,v1
	sendmsg prm
	return


	;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	;listicon
	;List-Viewのitemのアイコンをセット
	;img.asが必要
	;................................................................................
	#deffunc listicon val,int,int
	mref v1,16	;handle of icons
	mref v2,1	;iconの数
	mref v3,2	;iconのサイズ (大きい(0)か小さい(1)か)

	if v3 : v3=16 : m=1 : else v3=32 : m=0
	create_imglist v3,v3,1|4,v2
	a=stat
	if a=0 : stt=0 : return

	repeat v2
		addicon_imglist a,v1.cnt
	loop

	listimglist a,m

	stt=a
	return


	;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	;listhit
	;List-View
	;................................................................................
	#deffunc listhit int
	mref v1			;flag 指定しても違いがよく分からない(tom)

	ginfo
	m=prmx,prmy
	getptr p,m
	prm=handle_of_list,p
	dllproc "ScreenToClient",prm,2,D_USER

	;#define LVHT_NOWHERE		1
	;#define LVHT_ONITEMICON	2
	;#define LVHT_ONITEMLABEL	4
	;#define LVHT_ABOVE		8
	;#define LVHT_ONITEMSTATEICON	8
	;#define LVHT_BELOW		16
	;#define LVHT_TORIGHT		32
	;#define LVHT_TOLEFT		64
	;#define LVHT_ONITEM	(LVHT_ONITEMICON|LVHT_ONITEMLABEL|LVHT_ONITEMSTATEICON)
	;2+4+8=14

	if v1 : m.2=v1 : else : m.2=14
	m.3=0

	;#define LVM_HITTEST	4114
	prm=handle_of_list,4114,0,p
	sendmsg prm
	return

	;module終わり>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
	#global
