; Title : File IO - 16bit, wrapper for low-level file access ( ver 1.00 ) ; Author : SKAN - Suresh Kumar A N ( arian.suresh@gmail.com ) ; Date : Created: 21-May-2008 | Last Modified: 23-May-2008 ; ; Forum link : ; This file : http://www.autohotkey.net/~Skan/wrapper/FileIO16/FileIO16.ahk FileIO16_Init() { Global F_READ:=0,F_READWRITE:=2,F_WRITE:=1,F_SHARE_COMPAT:=0,F_SHARE_DENY_NONE:=0x40 , F_SHARE_DENY_READ :=0x30,F_SHARE_DENY_WRITE:=0x20,F_SHARE_EXCLUSIVE:=0x10 , F_BOF:=0,F_CPF:=1,F_EOF:=2 , F_NORMAL:=0, F_READONLY:=1,F_HIDDEN:=2,F_SYSTEM:=4 } FClose( hfil ) { Return DllCall( "_lclose", UInt,hFil ) } FCreate( sFile, nAttr ) { Return DllCall( "_lcreat", Str,sFile, UInt,nAttr ) } FOpen( sFile, nAttr ) { Return DllCall( "_lopen", Str,sFile, UInt,nAttr ) } FRead( hFil, byref var, nSize ) { Return (VarSetCapacity(var,nSize)+n) DllCall( "_lread", UInt,hFil, Str,var, UInt,nSize ) } FSeek( hfil, nSize, nOrigin ) { Return DllCall( "_llseek", UInt,hFil, UInt,nSize, UInt,nOrigin ) } FWrite( hFil, nPtr, nSize ) { Return DllCall( "_lwrite", UInt,hFil, UInt,nPtr, UInt,nSize ) } FileReadEx( F,ByRef V,B,O=0 ) { by:= (B<0 ? ABS(B-1) : B), VarSetCapacity(V,By,0), H:=DllCall("_lopen",Str,F,UInt,0) IfLess,H,1, Return,-1 DllCall( "_llseek",UInt,H,UInt,( B < 0 ? B : O), UInt,(B < 0 ? 2 : 0) ) Return DllCall("_lread",UInt,H,Str,V,UInt,by) ( DllCall("_lclose",UInt,H)+n ) } FileWriteEx( F,ByRef V,B,O=0 ) { H:=(FileExist(F)="") ? DllCall("_lcreat",Str,F,UInt,0) : DllCall("_lopen",Str,F,UInt,1) IfLess,H,1, Return, -1 DllCall("_llseek",UInt,H,UInt,( O < 0 ? O+1 : O ), UInt,(O < 0 ? 2 : 0) ) Return DllCall("_lwrite",UInt,H,Str,V,UInt,B) ( DllCall("_lclose",UInt,H)+n ) } MemCopy( SPtr, TPtr, nSize ) { Return DllCall( "RtlMoveMemory", UInt,TPtr, UInt,SPtr, UInt,nSize ) }