#include "llmod.as" ;WinEx32.dllを使うモジュール ;例によってllmod.asが必要です ;使う時は、 ; ;・サンプル ;・#include "llmod.as" ; ;を削り、 ; ;使う側のスクリプトに ; ;・#include "llmod.as" ; ;を書き加えましょう。 ;WinExLoad ; 最初に実行すべし ; statが0なら、ロードに失敗したことを示す ;WinExGetInfo "ファイルネーム", 文字列型配列変数, 調べるサイズ, 調査フラグ ; p1 = 調べるファイルのフルパス ; p2 = 512文字×3要素 (sdim buf,512,3) の配列変数 ; p3 = 省略すると3000(単位:byte)になります ; p4 = 0 = 普通に ; 1 = マックバイナリで調べる ; 2 = フッター判別 ; ; p2で指定した変数に、 ; 拡張子と説明と付属情報が返って来る ;WinExGetNumK ; statに、 ; 「WinEx32.DLLが対応している拡張子の種類」を返す ;WinExGetNumP ; statに、 ; 「WinEx32.DLLが対応している拡張子のパターン数」を返す ;WinExGetVer ; statに、WinEx32.dllのバージョンを返す ; 2.56 = 256 ; 1.23 = 123 ;WinExGetCRC "FileName(full path)" ; statにファイルのCRCを返す #module "WinEx" #deffunc WinExload mref stt,64 ll_libload@ hEx,"WinEx32.dll" if hEx=0:stt=0:else:stt=1 return #deffunc WinExGetNumK mref stt,64 dllproc "WinExGetExNumKind",dummy,0,hEx stt=dllret@ return #deffunc WinExGetNumP mref stt,64 dllproc "WinExGetExNumPattern",dummy,0,hEx stt=dllret@ return #deffunc WinExGetVer mref stt,64 dllproc "WinExGetVersion",dummy,0,hEx stt=dllret@ return #deffunc WinExGetCRC str mref stt,64 mref _path,32 sdim path,512:path=_path getptr pm.0,path dllproc "WinExGetFileCRC",pm,1,hEx stt=dllret@ return #deffunc WinExGetInfo str,val,int mref size,2 mref flag,3 mref _path,32 mref info,57 mref stt,64 if size=0:size=3000 sdim path,512:path=_path sdim base,1280 ;sdim FileEx,512 ;sdim ExInfo,256 ;sdim Exinfo2,512 getptr pm.0,path pm.1=size getptr pm.2,base pm.3=flag dllproc "WinExGetInfo",pm,4,hEx strmid info.0,base,0,512 strmid info.1,base,512,256 strmid Info.2,base,768,512 return #deffunc WinExFree ll_libfree hEx #global WinExLoad sdim info,512,3 dialog "",16:if stat=0:end sdim name,512:name=refstr WinExGetInfo name,info WinExGetCRC name:crc=stat:str crc,20 if info.0!"?" { mes name+" は、\n"+info.0+"を拡張子とする\n"+info.1+"ファイルです。" } else { mes "ファイルの正体が分かりませんでした" } mes "ちなみにCRCは "+crc+" です。" stop