diff --git a/.gitattributes b/.gitattributes index e8b60cef5b..6bd56dfb5e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -5504,32 +5504,33 @@ rtl/win64/system.pp svneol=native#text/plain rtl/win64/windows.pp svneol=native#text/plain rtl/wince/Makefile svneol=native#text/plain rtl/wince/Makefile.fpc svneol=native#text/plain -rtl/wince/classes.pp -text -rtl/wince/dos.pp -text -rtl/wince/dynlibs.inc -text -rtl/wince/messages.pp -text -rtl/wince/readme.txt -text +rtl/wince/classes.pp svneol=native#text/plain +rtl/wince/dos.pp svneol=native#text/plain +rtl/wince/dynlibs.inc svneol=native#text/plain +rtl/wince/gx.pp svneol=native#text/plain +rtl/wince/messages.pp svneol=native#text/plain +rtl/wince/readme.txt svneol=native#text/plain rtl/wince/system.pp svneol=native#text/plain -rtl/wince/sysutils.pp -text -rtl/wince/varutils.pp -text -rtl/wince/windows.pp -text -rtl/wince/wininc/aygshell.inc -text -rtl/wince/wininc/base.inc -text +rtl/wince/sysutils.pp svneol=native#text/plain +rtl/wince/varutils.pp svneol=native#text/plain +rtl/wince/windows.pp svneol=native#text/plain +rtl/wince/wininc/aygshell.inc svneol=native#text/plain +rtl/wince/wininc/base.inc svneol=native#text/plain rtl/wince/wininc/cemiss.inc svneol=native#text/plain rtl/wince/wininc/ceshell.inc svneol=native#text/plain -rtl/wince/wininc/commctrl.inc -text +rtl/wince/wininc/commctrl.inc svneol=native#text/plain rtl/wince/wininc/commdlg.inc svneol=native#text/plain rtl/wince/wininc/coredll.inc svneol=native#text/plain -rtl/wince/wininc/defines.inc -text -rtl/wince/wininc/errors.inc -text +rtl/wince/wininc/defines.inc svneol=native#text/plain +rtl/wince/wininc/errors.inc svneol=native#text/plain rtl/wince/wininc/iphlpapi.inc svneol=native#text/plain -rtl/wince/wininc/makefile.inc -text -rtl/wince/wininc/messages.inc -text +rtl/wince/wininc/makefile.inc svneol=native#text/plain +rtl/wince/wininc/messages.inc svneol=native#text/plain rtl/wince/wininc/oleaut32.inc svneol=native#text/plain -rtl/wince/wininc/redef.inc -text -rtl/wince/wininc/simmgr.inc -text -rtl/wince/wininc/struct.inc -text -rtl/wince/wininc/tapi.inc -text +rtl/wince/wininc/redef.inc svneol=native#text/plain +rtl/wince/wininc/simmgr.inc svneol=native#text/plain +rtl/wince/wininc/struct.inc svneol=native#text/plain +rtl/wince/wininc/tapi.inc svneol=native#text/plain rtl/wince/winres.inc -text rtl/wince/winsock.pp svneol=native#text/plain rtl/wince/winsock2.pp svneol=native#text/plain diff --git a/rtl/wince/classes.pp b/rtl/wince/classes.pp index 5c146ceafd..c05fe51576 100644 --- a/rtl/wince/classes.pp +++ b/rtl/wince/classes.pp @@ -1,55 +1,55 @@ -{ - This file is part of the Free Component Library (FCL) - Copyright (c) 1998 by Michael Van Canneyt and Florian Klaempfl - - Classes unit for wince - - See the file COPYING.FPC, included in this distribution, - for details about the copyright. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - - **********************************************************************} - -{$define UNICODE} //ce is unicode only, needed here for classes.inc - -{$mode objfpc} - -{ determine the type of the resource/form file } -{$define Win16Res} - -unit Classes; - -interface - -uses - rtlconsts, - sysutils, - types, -{$ifdef FPC_TESTGENERICS} - fgl, -{$endif} - typinfo, - windows; - -type - TWndMethod = procedure(var msg : TMessage) of object; - -{$i classesh.inc} - -implementation - -uses - sysconst; - -{ OS - independent class implementations are in /inc directory. } -{$i classes.inc} - -initialization - CommonInit; - -finalization - CommonCleanup; -end. +{ + This file is part of the Free Component Library (FCL) + Copyright (c) 1998 by Michael Van Canneyt and Florian Klaempfl + + Classes unit for wince + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} + +{$define UNICODE} //ce is unicode only, needed here for classes.inc + +{$mode objfpc} + +{ determine the type of the resource/form file } +{$define Win16Res} + +unit Classes; + +interface + +uses + rtlconsts, + sysutils, + types, +{$ifdef FPC_TESTGENERICS} + fgl, +{$endif} + typinfo, + windows; + +type + TWndMethod = procedure(var msg : TMessage) of object; + +{$i classesh.inc} + +implementation + +uses + sysconst; + +{ OS - independent class implementations are in /inc directory. } +{$i classes.inc} + +initialization + CommonInit; + +finalization + CommonCleanup; +end. diff --git a/rtl/wince/dos.pp b/rtl/wince/dos.pp index 6ad744496c..c0da998083 100644 --- a/rtl/wince/dos.pp +++ b/rtl/wince/dos.pp @@ -1,568 +1,568 @@ -{ - This file is part of the Free Pascal run time library. - Copyright (c) 1999-2004 by the Free Pascal development team. - - Dos unit for BP7 compatible RTL - - See the file COPYING.FPC, included in this distribution, - for details about the copyright. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - - **********************************************************************} -unit dos; -interface - -uses windows; - -Const - Max_Path = MaxPathLen; - -Type - Searchrec = Packed Record - FindHandle : THandle; - W32FindData : TWin32FindData; - ExcludeAttr : longint; - time : longint; - size : longint; - attr : longint; - name : string; - end; - -{$i dosh.inc} - -Function WinToDosTime (Const Wtime : TFileTime; var DTime:longint):longbool; -Function DosToWinTime (DTime:longint; var Wtime : TFileTime):longbool; - -implementation - -{$DEFINE HAS_GETMSCOUNT} - -{$DEFINE FPC_FEXPAND_NO_DEFAULT_PATHS} -{$DEFINE FPC_FEXPAND_UNC} (* UNC paths are supported *) - -{$I dos.inc} - -{****************************************************************************** - --- Conversion --- -******************************************************************************} - -function GetMsCount: int64; -begin - GetMsCount := cardinal (GetTickCount); -end; - -function Last2DosError(d:dword):integer; -begin - case d of - 87 : { Parameter invalid -> Data invalid } - Last2DosError:=13; - else - Last2DosError:=integer(d); - end; -end; - - -Function DosToWinAttr (Const Attr : Longint) : longint; -begin - DosToWinAttr:=Attr; -end; - - -Function WinToDosAttr (Const Attr : Longint) : longint; -begin - WinToDosAttr:=Attr; -end; - -type - Longrec=packed record - lo,hi : word; - end; - -Function DosToWinTime (DTime:longint; var Wtime : TFileTime):longbool; -var - FatDate, FatTime: WORD; - lft: TFileTime; - st: SYSTEMTIME; -begin - FatDate:=Longrec(Dtime).Hi; - FatTime:=Longrec(Dtime).Lo; - with st do - begin - wDay:=FatDate and $1F; - wMonth:=(FatDate shr 5) and $F; - wYear:=(FatDate shr 9) + 1980; - wSecond:=(FatTime and $1F)*2; - wMinute:=(FatTime shr 5) and $1F; - wHour:=FatTime shr 11; - wMilliseconds:=0; - wDayOfWeek:=0; - end; - DosToWinTime:=SystemTimeToFileTime(@st, @lft) and LocalFileTimeToFileTime(@lft, @Wtime); -end; - - -Function WinToDosTime (Const Wtime : TFileTime; var DTime:longint):longbool; -var - FatDate, FatTime: WORD; - lft: TFileTime; - st: SYSTEMTIME; - res: longbool; -begin - res:=FileTimeToLocalFileTime(@WTime, @lft) and FileTimeToSystemTime(@lft, @st); - if res then - begin - FatDate:=st.wDay or (st.wMonth shl 5) or ((st.wYear - 1980) shl 9); - FatTime:=(st.wSecond div 2) or (st.wMinute shl 5) or (st.wHour shl 11); - Longrec(Dtime).Hi:=FatDate; - Longrec(Dtime).Lo:=FatTime; - end; - WinToDosTime:=res; -end; - - -{****************************************************************************** - --- Info / Date / Time --- -******************************************************************************} - -function dosversion : word; -var - versioninfo : OSVERSIONINFO; -begin - versioninfo.dwOSVersionInfoSize:=sizeof(versioninfo); - GetVersionEx(versioninfo); - dosversion:=versioninfo.dwMajorVersion and $FF or versioninfo.dwMinorVersion and $FF shl 8; -end; - - -procedure getdate(var year,month,mday,wday : word); -var - t : TSystemTime; -begin - GetLocalTime(t); - year:=t.wYear; - month:=t.wMonth; - mday:=t.wDay; - wday:=t.wDayOfWeek; -end; - - -procedure setdate(year,month,day : word); -var - t : TSystemTime; -begin - GetLocalTime(t); - t.wYear:=year; - t.wMonth:=month; - t.wDay:=day; - { only a quite good solution, we can loose some ms } - SetLocalTime(t); -end; - - -procedure gettime(var hour,minute,second,sec100 : word); -var - t : TSystemTime; -begin - GetLocalTime(t); - hour:=t.wHour; - minute:=t.wMinute; - second:=t.wSecond; - sec100:=t.wMilliSeconds div 10; -end; - - -procedure settime(hour,minute,second,sec100 : word); -var - t : TSystemTime; -begin - GetLocalTime(t); - t.wHour:=hour; - t.wMinute:=minute; - t.wSecond:=second; - t.wMilliSeconds:=sec100*10; - SetLocalTime(t); -end; - - -{****************************************************************************** - --- Exec --- -******************************************************************************} - -procedure exec(const path : pathstr;const comline : comstr); -var - PI: TProcessInformation; - Proc : THandle; - l : LongInt; - PathW : array[0..FileNameLen] of WideChar; - CmdLineW : array[0..FileNameLen] of WideChar; -begin - DosError := 0; - AnsiToWideBuf(@path[1], Length(path), PathW, SizeOf(PathW)); - AnsiToWideBuf(@comline[1], Length(comline), CmdLineW, SizeOf(CmdLineW)); - if not CreateProcess(PathW, CmdLineW, - nil, nil, FALSE, 0, nil, nil, nil, PI) then - begin - DosError:=Last2DosError(GetLastError); - exit; - end; - Proc:=PI.hProcess; - CloseHandle(PI.hThread); - if WaitForSingleObject(Proc, dword($ffffffff)) <> $ffffffff then - GetExitCodeProcess(Proc, @l) - else - l:=-1; - CloseHandle(Proc); - LastDosExitCode:=l; -end; - - -{****************************************************************************** - --- Disk --- -******************************************************************************} - -var - DriveNames: array[1..24] of PWideChar; - -function GetDriveName(drive: byte): PWideChar; -const - dev_attr = FILE_ATTRIBUTE_TEMPORARY or FILE_ATTRIBUTE_DIRECTORY; - -var - h: THandle; - fd: TWin32FindData; - i, len: LongInt; -begin - GetDriveName:=nil; - // Current drive is C: drive always - if drive = 0 then - drive:=2; - if (drive < 3) or (drive > 26) then - exit; - if DriveNames[1] = nil then - begin - // Drive C: is filesystem root always - GetMem(DriveNames[1], 2*SizeOf(WideChar)); - DriveNames[1][0]:='\'; - DriveNames[1][1]:=#0; - - // Other drives are found dinamically - h:=FindFirstFile('\*', @fd); - if h <> 0 then - begin - i:=2; - repeat - if fd.dwFileAttributes and dev_attr = dev_attr then begin - len:=0; - while fd.cFileName[len] <> #0 do - Inc(len); - len:=(len + 2)*SizeOf(WideChar); - GetMem(DriveNames[i], len); - DriveNames[i]^:='\'; - Move(fd.cFileName, DriveNames[i][1], len - SizeOf(WideChar)); - Inc(i); - end; - until (i > 24) or not FindNextFile(h, fd); - Windows.FindClose(h); - end; - end; - GetDriveName:=DriveNames[drive - 2]; -end; - -function diskfree(drive : byte) : int64; -var - disk: PWideChar; - qwtotal,qwfree,qwcaller : int64; -begin - disk:=GetDriveName(drive); - if (disk <> nil) and GetDiskFreeSpaceEx(disk, @qwcaller, @qwtotal, @qwfree) then - diskfree:=qwfree - else - diskfree:=-1; -end; - - -function disksize(drive : byte) : int64; -var - disk : PWideChar; - qwtotal,qwfree,qwcaller : int64; -begin - disk:=GetDriveName(drive); - if (disk <> nil) and GetDiskFreeSpaceEx(disk, @qwcaller, @qwtotal, @qwfree) then - disksize:=qwtotal - else - disksize:=-1; -end; - - -{****************************************************************************** - --- Findfirst FindNext --- -******************************************************************************} - -Procedure StringToPchar (Var S : String); -Var L : Longint; -begin - L:=ord(S[0]); - Move (S[1],S[0],L); - S[L]:=#0; -end; - -Procedure PCharToString (Var S : String); -Var L : Longint; -begin - L:=strlen(pchar(@S[0])); - Move (S[0],S[1],L); - S[0]:=char(l); -end; - - -procedure FindMatch(var f:searchrec); -var - buf: array[0..MaxPathLen] of char; -begin - { Find file with correct attribute } - While (F.W32FindData.dwFileAttributes and cardinal(F.ExcludeAttr))<>0 do - begin - if not FindNextFile (F.FindHandle, F.W32FindData) then - begin - DosError:=Last2DosError(GetLastError); - if DosError=2 then - DosError:=18; - exit; - end; - end; - - { Convert some attributes back } - f.size:=F.W32FindData.NFileSizeLow; - f.attr:=WinToDosAttr(F.W32FindData.dwFileAttributes); - WinToDosTime(F.W32FindData.ftLastWriteTime,f.Time); - WideToAnsiBuf(@F.W32FindData.cFileName, -1, buf, SizeOf(buf)); - f.Name:=StrPas(@buf); -end; - - -procedure findfirst(const path : pathstr;attr : word;var f : searchRec); -var - buf: array[0..MaxPathLen] of WideChar; -begin - if path = ''then - begin - DosError:=3; - exit; - end; - fillchar(f,sizeof(f),0); - { no error } - doserror:=0; - F.Name:=Path; - F.Attr:=attr; - F.ExcludeAttr:=(not Attr) and ($1e); {hidden,sys,dir,volume} - StringToPchar(f.name); - - { FindFirstFile is a WinCE Call } - F.W32FindData.dwFileAttributes:=DosToWinAttr(f.attr); - AnsiToWideBuf(@f.Name, -1, buf, SizeOf(buf)); - F.FindHandle:=FindFirstFile (buf, F.W32FindData); - - If F.FindHandle = Invalid_Handle_value then - begin - DosError:=Last2DosError(GetLastError); - if DosError=2 then - DosError:=18; - exit; - end; - { Find file with correct attribute } - FindMatch(f); -end; - - -procedure findnext(var f : searchRec); -begin -{ no error } - doserror:=0; - if not FindNextFile (F.FindHandle, F.W32FindData) then - begin - DosError:=Last2DosError(GetLastError); - if DosError=2 then - DosError:=18; - exit; - end; -{ Find file with correct attribute } - FindMatch(f); -end; - - -Procedure FindClose(Var f: SearchRec); -begin - If F.FindHandle <> Invalid_Handle_value then - Windows.FindClose(F.FindHandle); -end; - - -{****************************************************************************** - --- File --- -******************************************************************************} - -Function FSearch(path: pathstr; dirlist: string): pathstr; -var - i,p1 : longint; - s : searchrec; - newdir : pathstr; -begin - { check if the file specified exists } - findfirst(path,anyfile and not(directory),s); - if doserror=0 then - begin - findclose(s); - fsearch:=path; - exit; - end; - { No wildcards allowed in these things } - if (pos('?',path)<>0) or (pos('*',path)<>0) then - fsearch:='' - else - begin - { allow slash as backslash } - for i:=1 to length(dirlist) do - if dirlist[i]='/' then dirlist[i]:='\'; - repeat - p1:=pos(';',dirlist); - if p1<>0 then - begin - newdir:=copy(dirlist,1,p1-1); - delete(dirlist,1,p1); - end - else - begin - newdir:=dirlist; - dirlist:=''; - end; - if (newdir<>'') and (not (newdir[length(newdir)] in ['\',':'])) then - newdir:=newdir+'\'; - findfirst(newdir+path,anyfile and not(directory),s); - if doserror=0 then - newdir:=newdir+path - else - newdir:=''; - until (dirlist='') or (newdir<>''); - fsearch:=newdir; - end; - findclose(s); -end; - -{ } - -procedure getftime(var f;var time : longint); -var - ft : TFileTime; -begin - doserror:=0; - if GetFileTime(filerec(f).Handle,nil,nil,@ft) and - WinToDosTime(ft,time) then - exit - else - begin - DosError:=Last2DosError(GetLastError); - time:=0; - end; -end; - - -procedure setftime(var f;time : longint); -var - ft : TFileTime; -begin - doserror:=0; - if DosToWinTime(time,ft) and - SetFileTime(filerec(f).Handle,nil,nil,@ft) then - exit - else - DosError:=Last2DosError(GetLastError); -end; - - -procedure getfattr(var f;var attr : word); -var - l : cardinal; - buf: array[0..MaxPathLen] of WideChar; -begin - if filerec(f).name[1] = #0 then - begin - doserror:=3; - attr:=0; - end - else - begin - doserror:=0; - AnsiToWideBuf(@filerec(f).name, -1, buf, SizeOf(buf)); - l:=GetFileAttributes(buf); - if l = $ffffffff then - begin - doserror:=Last2DosError(GetLastError); - attr:=0; - end - else - attr:=l and $ffff; - end; -end; - - -procedure setfattr(var f;attr : word); -var - buf: array[0..MaxPathLen] of WideChar; -begin - { Fail for setting VolumeId } - if (attr and VolumeID)<>0 then - doserror:=5 - else - begin - AnsiToWideBuf(@filerec(f).name, -1, buf, SizeOf(buf)); - if SetFileAttributes(buf,attr) then - doserror:=0 - else - doserror:=Last2DosError(GetLastError); - end; -end; - -{****************************************************************************** - --- Environment --- -******************************************************************************} - -// WinCE does not have environment. It can be emulated via registry or file. (YS) - -function envcount : longint; -begin - envcount:=0; -end; - -Function EnvStr (Index: longint): string; -begin - EnvStr:=''; -end; - -Function GetEnv(envvar: string): string; -begin - GetEnv:=''; -end; - -var - oldexitproc : pointer; - -procedure dosexitproc; -var - i: LongInt; -begin - exitproc:=oldexitproc; - if DriveNames[1] <> nil then - for i:=1 to 24 do - if DriveNames[i] <> nil then - FreeMem(DriveNames[i]) - else - break; -end; - -begin - oldexitproc:=exitproc; - exitproc:=@dosexitproc; -end. +{ + This file is part of the Free Pascal run time library. + Copyright (c) 1999-2004 by the Free Pascal development team. + + Dos unit for BP7 compatible RTL + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} +unit dos; +interface + +uses windows; + +Const + Max_Path = MaxPathLen; + +Type + Searchrec = Packed Record + FindHandle : THandle; + W32FindData : TWin32FindData; + ExcludeAttr : longint; + time : longint; + size : longint; + attr : longint; + name : string; + end; + +{$i dosh.inc} + +Function WinToDosTime (Const Wtime : TFileTime; var DTime:longint):longbool; +Function DosToWinTime (DTime:longint; var Wtime : TFileTime):longbool; + +implementation + +{$DEFINE HAS_GETMSCOUNT} + +{$DEFINE FPC_FEXPAND_NO_DEFAULT_PATHS} +{$DEFINE FPC_FEXPAND_UNC} (* UNC paths are supported *) + +{$I dos.inc} + +{****************************************************************************** + --- Conversion --- +******************************************************************************} + +function GetMsCount: int64; +begin + GetMsCount := cardinal (GetTickCount); +end; + +function Last2DosError(d:dword):integer; +begin + case d of + 87 : { Parameter invalid -> Data invalid } + Last2DosError:=13; + else + Last2DosError:=integer(d); + end; +end; + + +Function DosToWinAttr (Const Attr : Longint) : longint; +begin + DosToWinAttr:=Attr; +end; + + +Function WinToDosAttr (Const Attr : Longint) : longint; +begin + WinToDosAttr:=Attr; +end; + +type + Longrec=packed record + lo,hi : word; + end; + +Function DosToWinTime (DTime:longint; var Wtime : TFileTime):longbool; +var + FatDate, FatTime: WORD; + lft: TFileTime; + st: SYSTEMTIME; +begin + FatDate:=Longrec(Dtime).Hi; + FatTime:=Longrec(Dtime).Lo; + with st do + begin + wDay:=FatDate and $1F; + wMonth:=(FatDate shr 5) and $F; + wYear:=(FatDate shr 9) + 1980; + wSecond:=(FatTime and $1F)*2; + wMinute:=(FatTime shr 5) and $1F; + wHour:=FatTime shr 11; + wMilliseconds:=0; + wDayOfWeek:=0; + end; + DosToWinTime:=SystemTimeToFileTime(@st, @lft) and LocalFileTimeToFileTime(@lft, @Wtime); +end; + + +Function WinToDosTime (Const Wtime : TFileTime; var DTime:longint):longbool; +var + FatDate, FatTime: WORD; + lft: TFileTime; + st: SYSTEMTIME; + res: longbool; +begin + res:=FileTimeToLocalFileTime(@WTime, @lft) and FileTimeToSystemTime(@lft, @st); + if res then + begin + FatDate:=st.wDay or (st.wMonth shl 5) or ((st.wYear - 1980) shl 9); + FatTime:=(st.wSecond div 2) or (st.wMinute shl 5) or (st.wHour shl 11); + Longrec(Dtime).Hi:=FatDate; + Longrec(Dtime).Lo:=FatTime; + end; + WinToDosTime:=res; +end; + + +{****************************************************************************** + --- Info / Date / Time --- +******************************************************************************} + +function dosversion : word; +var + versioninfo : OSVERSIONINFO; +begin + versioninfo.dwOSVersionInfoSize:=sizeof(versioninfo); + GetVersionEx(versioninfo); + dosversion:=versioninfo.dwMajorVersion and $FF or versioninfo.dwMinorVersion and $FF shl 8; +end; + + +procedure getdate(var year,month,mday,wday : word); +var + t : TSystemTime; +begin + GetLocalTime(t); + year:=t.wYear; + month:=t.wMonth; + mday:=t.wDay; + wday:=t.wDayOfWeek; +end; + + +procedure setdate(year,month,day : word); +var + t : TSystemTime; +begin + GetLocalTime(t); + t.wYear:=year; + t.wMonth:=month; + t.wDay:=day; + { only a quite good solution, we can loose some ms } + SetLocalTime(t); +end; + + +procedure gettime(var hour,minute,second,sec100 : word); +var + t : TSystemTime; +begin + GetLocalTime(t); + hour:=t.wHour; + minute:=t.wMinute; + second:=t.wSecond; + sec100:=t.wMilliSeconds div 10; +end; + + +procedure settime(hour,minute,second,sec100 : word); +var + t : TSystemTime; +begin + GetLocalTime(t); + t.wHour:=hour; + t.wMinute:=minute; + t.wSecond:=second; + t.wMilliSeconds:=sec100*10; + SetLocalTime(t); +end; + + +{****************************************************************************** + --- Exec --- +******************************************************************************} + +procedure exec(const path : pathstr;const comline : comstr); +var + PI: TProcessInformation; + Proc : THandle; + l : LongInt; + PathW : array[0..FileNameLen] of WideChar; + CmdLineW : array[0..FileNameLen] of WideChar; +begin + DosError := 0; + AnsiToWideBuf(@path[1], Length(path), PathW, SizeOf(PathW)); + AnsiToWideBuf(@comline[1], Length(comline), CmdLineW, SizeOf(CmdLineW)); + if not CreateProcess(PathW, CmdLineW, + nil, nil, FALSE, 0, nil, nil, nil, PI) then + begin + DosError:=Last2DosError(GetLastError); + exit; + end; + Proc:=PI.hProcess; + CloseHandle(PI.hThread); + if WaitForSingleObject(Proc, dword($ffffffff)) <> $ffffffff then + GetExitCodeProcess(Proc, @l) + else + l:=-1; + CloseHandle(Proc); + LastDosExitCode:=l; +end; + + +{****************************************************************************** + --- Disk --- +******************************************************************************} + +var + DriveNames: array[1..24] of PWideChar; + +function GetDriveName(drive: byte): PWideChar; +const + dev_attr = FILE_ATTRIBUTE_TEMPORARY or FILE_ATTRIBUTE_DIRECTORY; + +var + h: THandle; + fd: TWin32FindData; + i, len: LongInt; +begin + GetDriveName:=nil; + // Current drive is C: drive always + if drive = 0 then + drive:=2; + if (drive < 3) or (drive > 26) then + exit; + if DriveNames[1] = nil then + begin + // Drive C: is filesystem root always + GetMem(DriveNames[1], 2*SizeOf(WideChar)); + DriveNames[1][0]:='\'; + DriveNames[1][1]:=#0; + + // Other drives are found dinamically + h:=FindFirstFile('\*', @fd); + if h <> 0 then + begin + i:=2; + repeat + if fd.dwFileAttributes and dev_attr = dev_attr then begin + len:=0; + while fd.cFileName[len] <> #0 do + Inc(len); + len:=(len + 2)*SizeOf(WideChar); + GetMem(DriveNames[i], len); + DriveNames[i]^:='\'; + Move(fd.cFileName, DriveNames[i][1], len - SizeOf(WideChar)); + Inc(i); + end; + until (i > 24) or not FindNextFile(h, fd); + Windows.FindClose(h); + end; + end; + GetDriveName:=DriveNames[drive - 2]; +end; + +function diskfree(drive : byte) : int64; +var + disk: PWideChar; + qwtotal,qwfree,qwcaller : int64; +begin + disk:=GetDriveName(drive); + if (disk <> nil) and GetDiskFreeSpaceEx(disk, @qwcaller, @qwtotal, @qwfree) then + diskfree:=qwfree + else + diskfree:=-1; +end; + + +function disksize(drive : byte) : int64; +var + disk : PWideChar; + qwtotal,qwfree,qwcaller : int64; +begin + disk:=GetDriveName(drive); + if (disk <> nil) and GetDiskFreeSpaceEx(disk, @qwcaller, @qwtotal, @qwfree) then + disksize:=qwtotal + else + disksize:=-1; +end; + + +{****************************************************************************** + --- Findfirst FindNext --- +******************************************************************************} + +Procedure StringToPchar (Var S : String); +Var L : Longint; +begin + L:=ord(S[0]); + Move (S[1],S[0],L); + S[L]:=#0; +end; + +Procedure PCharToString (Var S : String); +Var L : Longint; +begin + L:=strlen(pchar(@S[0])); + Move (S[0],S[1],L); + S[0]:=char(l); +end; + + +procedure FindMatch(var f:searchrec); +var + buf: array[0..MaxPathLen] of char; +begin + { Find file with correct attribute } + While (F.W32FindData.dwFileAttributes and cardinal(F.ExcludeAttr))<>0 do + begin + if not FindNextFile (F.FindHandle, F.W32FindData) then + begin + DosError:=Last2DosError(GetLastError); + if DosError=2 then + DosError:=18; + exit; + end; + end; + + { Convert some attributes back } + f.size:=F.W32FindData.NFileSizeLow; + f.attr:=WinToDosAttr(F.W32FindData.dwFileAttributes); + WinToDosTime(F.W32FindData.ftLastWriteTime,f.Time); + WideToAnsiBuf(@F.W32FindData.cFileName, -1, buf, SizeOf(buf)); + f.Name:=StrPas(@buf); +end; + + +procedure findfirst(const path : pathstr;attr : word;var f : searchRec); +var + buf: array[0..MaxPathLen] of WideChar; +begin + if path = ''then + begin + DosError:=3; + exit; + end; + fillchar(f,sizeof(f),0); + { no error } + doserror:=0; + F.Name:=Path; + F.Attr:=attr; + F.ExcludeAttr:=(not Attr) and ($1e); {hidden,sys,dir,volume} + StringToPchar(f.name); + + { FindFirstFile is a WinCE Call } + F.W32FindData.dwFileAttributes:=DosToWinAttr(f.attr); + AnsiToWideBuf(@f.Name, -1, buf, SizeOf(buf)); + F.FindHandle:=FindFirstFile (buf, F.W32FindData); + + If F.FindHandle = Invalid_Handle_value then + begin + DosError:=Last2DosError(GetLastError); + if DosError=2 then + DosError:=18; + exit; + end; + { Find file with correct attribute } + FindMatch(f); +end; + + +procedure findnext(var f : searchRec); +begin +{ no error } + doserror:=0; + if not FindNextFile (F.FindHandle, F.W32FindData) then + begin + DosError:=Last2DosError(GetLastError); + if DosError=2 then + DosError:=18; + exit; + end; +{ Find file with correct attribute } + FindMatch(f); +end; + + +Procedure FindClose(Var f: SearchRec); +begin + If F.FindHandle <> Invalid_Handle_value then + Windows.FindClose(F.FindHandle); +end; + + +{****************************************************************************** + --- File --- +******************************************************************************} + +Function FSearch(path: pathstr; dirlist: string): pathstr; +var + i,p1 : longint; + s : searchrec; + newdir : pathstr; +begin + { check if the file specified exists } + findfirst(path,anyfile and not(directory),s); + if doserror=0 then + begin + findclose(s); + fsearch:=path; + exit; + end; + { No wildcards allowed in these things } + if (pos('?',path)<>0) or (pos('*',path)<>0) then + fsearch:='' + else + begin + { allow slash as backslash } + for i:=1 to length(dirlist) do + if dirlist[i]='/' then dirlist[i]:='\'; + repeat + p1:=pos(';',dirlist); + if p1<>0 then + begin + newdir:=copy(dirlist,1,p1-1); + delete(dirlist,1,p1); + end + else + begin + newdir:=dirlist; + dirlist:=''; + end; + if (newdir<>'') and (not (newdir[length(newdir)] in ['\',':'])) then + newdir:=newdir+'\'; + findfirst(newdir+path,anyfile and not(directory),s); + if doserror=0 then + newdir:=newdir+path + else + newdir:=''; + until (dirlist='') or (newdir<>''); + fsearch:=newdir; + end; + findclose(s); +end; + +{ } + +procedure getftime(var f;var time : longint); +var + ft : TFileTime; +begin + doserror:=0; + if GetFileTime(filerec(f).Handle,nil,nil,@ft) and + WinToDosTime(ft,time) then + exit + else + begin + DosError:=Last2DosError(GetLastError); + time:=0; + end; +end; + + +procedure setftime(var f;time : longint); +var + ft : TFileTime; +begin + doserror:=0; + if DosToWinTime(time,ft) and + SetFileTime(filerec(f).Handle,nil,nil,@ft) then + exit + else + DosError:=Last2DosError(GetLastError); +end; + + +procedure getfattr(var f;var attr : word); +var + l : cardinal; + buf: array[0..MaxPathLen] of WideChar; +begin + if filerec(f).name[1] = #0 then + begin + doserror:=3; + attr:=0; + end + else + begin + doserror:=0; + AnsiToWideBuf(@filerec(f).name, -1, buf, SizeOf(buf)); + l:=GetFileAttributes(buf); + if l = $ffffffff then + begin + doserror:=Last2DosError(GetLastError); + attr:=0; + end + else + attr:=l and $ffff; + end; +end; + + +procedure setfattr(var f;attr : word); +var + buf: array[0..MaxPathLen] of WideChar; +begin + { Fail for setting VolumeId } + if (attr and VolumeID)<>0 then + doserror:=5 + else + begin + AnsiToWideBuf(@filerec(f).name, -1, buf, SizeOf(buf)); + if SetFileAttributes(buf,attr) then + doserror:=0 + else + doserror:=Last2DosError(GetLastError); + end; +end; + +{****************************************************************************** + --- Environment --- +******************************************************************************} + +// WinCE does not have environment. It can be emulated via registry or file. (YS) + +function envcount : longint; +begin + envcount:=0; +end; + +Function EnvStr (Index: longint): string; +begin + EnvStr:=''; +end; + +Function GetEnv(envvar: string): string; +begin + GetEnv:=''; +end; + +var + oldexitproc : pointer; + +procedure dosexitproc; +var + i: LongInt; +begin + exitproc:=oldexitproc; + if DriveNames[1] <> nil then + for i:=1 to 24 do + if DriveNames[i] <> nil then + FreeMem(DriveNames[i]) + else + break; +end; + +begin + oldexitproc:=exitproc; + exitproc:=@dosexitproc; +end. diff --git a/rtl/wince/dynlibs.inc b/rtl/wince/dynlibs.inc index 1864e81683..6bebf5764c 100644 --- a/rtl/wince/dynlibs.inc +++ b/rtl/wince/dynlibs.inc @@ -1,60 +1,60 @@ -{ - This file is part of the Free Pascal run time library. - Copyright (c) 1999-2000 by the Free Pascal development team - - Implements OS dependent part for loading of dynamic libraries. - - See the file COPYING.FPC, included in this distribution, - for details about the copyright. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - - **********************************************************************} - - -{$ifdef readinterface} - -{ --------------------------------------------------------------------- - Interface declarations - ---------------------------------------------------------------------} - -Type - TLibHandle = Longint; - -Const - NilHandle = 0; - -{$else} - -{ --------------------------------------------------------------------- - Implementation section - ---------------------------------------------------------------------} - -Uses windows; - -Function LoadLibrary(Name : AnsiString) : TlibHandle; -var - ws: PWideChar; -begin - ws:=StringToPWideChar(Name); - Result:=Windows.LoadLibrary(ws); - FreeMem(ws); -end; - -Function GetProcedureAddress(Lib : TLibHandle; ProcName : AnsiString) : Pointer; -var - ws: PWideChar; -begin - ws:=StringToPWideChar(ProcName); - Result:=Windows.GetProcAddress(Lib, ws); - FreeMem(ws); -end; - -Function UnloadLibrary(Lib : TLibHandle) : Boolean; -begin - Result:=Windows.FreeLibrary(Lib); -end; - -{$endif} +{ + This file is part of the Free Pascal run time library. + Copyright (c) 1999-2000 by the Free Pascal development team + + Implements OS dependent part for loading of dynamic libraries. + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} + + +{$ifdef readinterface} + +{ --------------------------------------------------------------------- + Interface declarations + ---------------------------------------------------------------------} + +Type + TLibHandle = Longint; + +Const + NilHandle = 0; + +{$else} + +{ --------------------------------------------------------------------- + Implementation section + ---------------------------------------------------------------------} + +Uses windows; + +Function LoadLibrary(Name : AnsiString) : TlibHandle; +var + ws: PWideChar; +begin + ws:=StringToPWideChar(Name); + Result:=Windows.LoadLibrary(ws); + FreeMem(ws); +end; + +Function GetProcedureAddress(Lib : TLibHandle; ProcName : AnsiString) : Pointer; +var + ws: PWideChar; +begin + ws:=StringToPWideChar(ProcName); + Result:=Windows.GetProcAddress(Lib, ws); + FreeMem(ws); +end; + +Function UnloadLibrary(Lib : TLibHandle) : Boolean; +begin + Result:=Windows.FreeLibrary(Lib); +end; + +{$endif} diff --git a/rtl/wince/messages.pp b/rtl/wince/messages.pp index bd1b7edeef..db44c2dc29 100644 --- a/rtl/wince/messages.pp +++ b/rtl/wince/messages.pp @@ -1,15 +1,15 @@ -unit messages; - - -interface - - uses - windows; - -{$DEFINE read_interface} -{$DEFINE MESSAGESUNIT} -{$I messages.inc} - -implementation - -end. +unit messages; + + +interface + + uses + windows; + +{$DEFINE read_interface} +{$DEFINE MESSAGESUNIT} +{$I messages.inc} + +implementation + +end. diff --git a/rtl/wince/readme.txt b/rtl/wince/readme.txt index 94866bc02f..53e93d5234 100644 --- a/rtl/wince/readme.txt +++ b/rtl/wince/readme.txt @@ -1,48 +1,48 @@ -WinCE port -========== - -WinCE port is quite complete and usable. The port was started and maintained by Yury Sidorov. Oliver (Oro06) ported WinCE API headers. - -Status ------- -* The 2.1.x compiler has compiler support WinCE. -* ARM and i386 (old WinCE emulator) CPUs are supported. -* The following platforms are supported: - * Pocket PC 2002 – WinCE version: 3.0 - * Pocket PC 2003 – WinCE version: 4.20 - * Pocket PC 2003 Second Edition – WinCE version: 4.21 -* Base units are complete. -* Windows unit is almost complete. Delphi compatible declarations is not ready. - -Building --------- -* You need cross binutils for arm-wince, get them fromftp://ftp.freepascal.org/pub/fpc/contrib/cross/arm-wince-binutils.zip for Win32. -* Extract them to some dir in the path on your machine. -* Get the 2.1 source repository from SVN: http://www.freepascal.org/develop.html#svn -* Go to fpc/compiler and execute: - make cycle CPU_TARGET=arm OS_TARGET=wince - -You should end with the units compiled to fpc/rtl/units/arm-wince and a ppccrossarm.exe in fpc/compiler. Copy them to locations fitting your fpc installation. - -WinCE port notes ----------------- -* chdir procedure always produces an error (WinCE does not support setting of current directory). -* All file/dir paths must be absolute (started with \). -* WinCE is unicode OS. All string parameters to API calls must be PWideChar. -* WinCE does not have support for environment strings. -* WinCE does not have support for console applications by default. But you can install console support by yourself. Please note that FPC creates GUI applications for WinCE target by default. To create console application you should use -WC compiler switch or put {$APPTYPE CONSOLE} directive to source code.
To enable console in WinCE install one of the following programs: - - - PocketCMD by SymbolicTools. It is recommended solution. Get it here: http://www.symbolictools.de/public/pocketconsole/applications/PocketCMD - - - PPC Command Shell from Microsoft Windows Mobile Developer Power Toys. Get it here: http://www.microsoft.com/downloads/details.aspx?FamilyID=74473fd6-1dcc-47aa-ab28-6a2b006edfe9&displaylang=en - -PPC Command Shell have less features than PocketCMD. Also it have some issues. One of them - a new console window is opened even if an application is started from a console command prompt. - -Links ------ -* WinCE Port page at Free Pascal Wiki: http://www.freepascal.org/wiki/index.php/WinCE_port -* Useful WinCE info: http://www.rainer-keuchel.de/documents.html - -Contacts --------- -Write any questions regarding WinCE port to Yury Sidorov yury_sidorov@mail.ru +WinCE port +========== + +WinCE port is quite complete and usable. The port was started and maintained by Yury Sidorov. Oliver (Oro06) ported WinCE API headers. + +Status +------ +* The 2.1.x compiler has compiler support WinCE. +* ARM and i386 (old WinCE emulator) CPUs are supported. +* The following platforms are supported: + * Pocket PC 2002 – WinCE version: 3.0 + * Pocket PC 2003 – WinCE version: 4.20 + * Pocket PC 2003 Second Edition – WinCE version: 4.21 +* Base units are complete. +* Windows unit is almost complete. Delphi compatible declarations is not ready. + +Building +-------- +* You need cross binutils for arm-wince, get them fromftp://ftp.freepascal.org/pub/fpc/contrib/cross/arm-wince-binutils.zip for Win32. +* Extract them to some dir in the path on your machine. +* Get the 2.1 source repository from SVN: http://www.freepascal.org/develop.html#svn +* Go to fpc/compiler and execute: + make cycle CPU_TARGET=arm OS_TARGET=wince + +You should end with the units compiled to fpc/rtl/units/arm-wince and a ppccrossarm.exe in fpc/compiler. Copy them to locations fitting your fpc installation. + +WinCE port notes +---------------- +* chdir procedure always produces an error (WinCE does not support setting of current directory). +* All file/dir paths must be absolute (started with \). +* WinCE is unicode OS. All string parameters to API calls must be PWideChar. +* WinCE does not have support for environment strings. +* WinCE does not have support for console applications by default. But you can install console support by yourself. Please note that FPC creates GUI applications for WinCE target by default. To create console application you should use -WC compiler switch or put {$APPTYPE CONSOLE} directive to source code.
To enable console in WinCE install one of the following programs: + + - PocketCMD by SymbolicTools. It is recommended solution. Get it here: http://www.symbolictools.de/public/pocketconsole/applications/PocketCMD + + - PPC Command Shell from Microsoft Windows Mobile Developer Power Toys. Get it here: http://www.microsoft.com/downloads/details.aspx?FamilyID=74473fd6-1dcc-47aa-ab28-6a2b006edfe9&displaylang=en + +PPC Command Shell have less features than PocketCMD. Also it have some issues. One of them - a new console window is opened even if an application is started from a console command prompt. + +Links +----- +* WinCE Port page at Free Pascal Wiki: http://www.freepascal.org/wiki/index.php/WinCE_port +* Useful WinCE info: http://www.rainer-keuchel.de/documents.html + +Contacts +-------- +Write any questions regarding WinCE port to Yury Sidorov yury_sidorov@mail.ru diff --git a/rtl/wince/sysutils.pp b/rtl/wince/sysutils.pp index 084b72ba26..0c21ac9524 100644 --- a/rtl/wince/sysutils.pp +++ b/rtl/wince/sysutils.pp @@ -1,991 +1,991 @@ -{ - - This file is part of the Free Pascal run time library. - Copyright (c) 1999-2005 by Florian Klaempfl and Yury Sidorov - members of the Free Pascal development team - - Sysutils unit for wince - - See the file COPYING.FPC, included in this distribution, - for details about the copyright. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - - **********************************************************************} -unit sysutils; -interface - -{$MODE objfpc} -{ force ansistrings } -{$H+} - -uses - dos, - windows; - -{$DEFINE HAS_SLEEP} -{$DEFINE HAS_OSERROR} -{$DEFINE HAS_OSCONFIG} -{$DEFINE HAS_TEMPDIR} - -{ Include platform independent interface part } -{$i sysutilh.inc} - -type - TSystemTime = Windows.TSystemTime; - - EWinCEError = class(Exception) - public - ErrorCode : DWORD; - end; - - -Var - WinCEPlatform : Longint; - WinCEMajorVersion, - WinCEMinorVersion, - WinCEBuildNumber : dword; - WinCECSDVersion : ShortString; // CSD record is 128 bytes only? - - -implementation - - uses - sysconst; - -{$DEFINE FPC_NOGENERICANSIROUTINES} -{$define HASEXPANDUNCFILENAME} - -{$DEFINE FPC_FEXPAND_NO_DEFAULT_PATHS} -{$DEFINE FPC_FEXPAND_UNC} (* UNC paths are supported *) - -{ Include platform independent implementation part } -{$i sysutils.inc} - -procedure PWideCharToString(const str: PWideChar; out Result: string; strlen: longint = -1); -var - len: longint; -begin - if str^ = #0 then - Result:='' - else - begin - while True do begin - if strlen <> -1 then - len:=(strlen + 1) div SizeOf(WideChar) - else - len:=WideToAnsiBuf(str, -1, nil, 0); - if len > 0 then - begin - SetLength(Result, len - 1); - if (WideToAnsiBuf(str, -1, @Result[1], len) = 0) and (strlen <> -1) then - begin - strlen:=-1; - continue; - end; - end - else - Result:=''; - break; - end; - end; -end; - -function ExpandUNCFileName (const filename:string) : string; -{ returns empty string on errors } -var - s : widestring; - size : dword; - rc : dword; - buf : pwidechar; -begin - s := ExpandFileName (filename); - - size := max_path*SizeOf(WideChar); - getmem(buf,size); - - try - rc := WNetGetUniversalName (pwidechar(s), UNIVERSAL_NAME_INFO_LEVEL, buf, @size); - - if rc=ERROR_MORE_DATA then - begin - buf:=reallocmem(buf,size); - rc := WNetGetUniversalName (pwidechar(s), UNIVERSAL_NAME_INFO_LEVEL, buf, @size); - end; - if rc = NO_ERROR then - Result := PRemoteNameInfo(buf)^.lpUniversalName - else if rc = ERROR_NOT_CONNECTED then - Result := filename - else - Result := ''; - finally - freemem(buf); - end; -end; - -{**************************************************************************** - File Functions -****************************************************************************} - -Function FileOpen (Const FileName : string; Mode : Integer) : THandle; -const - AccessMode: array[0..2] of Cardinal = ( - GENERIC_READ, - GENERIC_WRITE, - GENERIC_READ or GENERIC_WRITE); - ShareMode: array[0..4] of Integer = ( - 0, - 0, - FILE_SHARE_READ, - FILE_SHARE_WRITE, - FILE_SHARE_READ or FILE_SHARE_WRITE); -var - fn: PWideChar; -begin - fn:=StringToPWideChar(FileName); - result := CreateFile(fn, dword(AccessMode[Mode and 3]), - dword(ShareMode[(Mode and $F0) shr 4]), nil, OPEN_EXISTING, - FILE_ATTRIBUTE_NORMAL, 0); - //if fail api return feInvalidHandle (INVALIDE_HANDLE=feInvalidHandle=-1) - FreeMem(fn); -end; - - -Function FileCreate (Const FileName : String) : THandle; -var - fn: PWideChar; -begin - fn:=StringToPWideChar(FileName); - Result := CreateFile(fn, GENERIC_READ or GENERIC_WRITE, - 0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); - FreeMem(fn); -end; - - -Function FileCreate (Const FileName : String; Mode:longint) : THandle; -begin - FileCreate:=FileCreate(FileName); -end; - - -Function FileRead (Handle : THandle; Var Buffer; Count : longint) : Longint; -Var - res : dword; -begin - if ReadFile(Handle, Buffer, Count, res, nil) then - FileRead:=Res - else - FileRead:=-1; -end; - - -Function FileWrite (Handle : THandle; const Buffer; Count : Longint) : Longint; -Var - Res : dword; -begin - if WriteFile(Handle, Buffer, Count, Res, nil) then - FileWrite:=Res - else - FileWrite:=-1; -end; - - -Function FileSeek (Handle : THandle;FOffset,Origin : Longint) : Longint; -begin - Result := longint(SetFilePointer(Handle, FOffset, nil, Origin)); -end; - - -Function FileSeek (Handle : THandle; FOffset: Int64; Origin: Longint) : Int64; -begin - Result := SetFilePointer(Handle, longint(FOffset), nil, longint(Origin)); -end; - - -Procedure FileClose (Handle : THandle); -begin - if Handle<=4 then - exit; - CloseHandle(Handle); -end; - - -Function FileTruncate (Handle : THandle;Size: Int64) : boolean; -begin - if FileSeek (Handle, Size, FILE_BEGIN) = Size then - Result:=SetEndOfFile(handle) - else - Result := false; -end; - - -Function DosToWinTime (DTime:longint; out Wtime : TFileTime):longbool; -begin - DosToWinTime:=dos.DosToWinTime(DTime, Wtime); -end; - - -Function WinToDosTime (Const Wtime : TFileTime; out DTime:longint):longbool; -begin - WinToDosTime:=dos.WinToDosTime(Wtime, DTime); -end; - - -Function FileAge (Const FileName : String): Longint; -var - Handle: THandle; - FindData: TWin32FindData; - fn: PWideChar; -begin - fn:=StringToPWideChar(FileName); - Handle := FindFirstFile(fn, FindData); - FreeMem(fn); - if Handle <> INVALID_HANDLE_VALUE then - begin - Windows.FindClose(Handle); - if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then - If WinToDosTime(FindData.ftLastWriteTime,Result) then - exit; - end; - Result := -1; -end; - - -Function FileExists (Const FileName : String) : Boolean; -var - Attr:Dword; -begin - Attr:=FileGetAttr(FileName); - if Attr <> $ffffffff then - Result:= (Attr and FILE_ATTRIBUTE_DIRECTORY) = 0 - else - Result:=False; -end; - - -Function DirectoryExists (Const Directory : String) : Boolean; -var - Attr:Dword; -begin - Attr:=FileGetAttr(Directory); - if Attr <> $ffffffff then - Result:= (Attr and FILE_ATTRIBUTE_DIRECTORY) <> 0 - else - Result:=False; -end; - - -Function FindMatch(var f: TSearchRec) : Longint; -begin - { Find file with correct attribute } - While (F.FindData.dwFileAttributes and cardinal(F.ExcludeAttr))<>0 do - begin - if not FindNextFile (F.FindHandle,F.FindData) then - begin - Result:=GetLastError; - exit; - end; - end; - { Convert some attributes back } - WinToDosTime(F.FindData.ftLastWriteTime,F.Time); - f.size:=F.FindData.NFileSizeLow; - f.attr:=F.FindData.dwFileAttributes; - PWideCharToString(@F.FindData.cFileName[0], f.Name); - Result:=0; -end; - - -Function FindFirst (Const Path : String; Attr : Longint; out Rslt : TSearchRec) : Longint; -var - fn: PWideChar; -begin - fn:=StringToPWideChar(Path); - Rslt.Name:=Path; - Rslt.Attr:=attr; - Rslt.ExcludeAttr:=(not Attr) and ($1e); - { $1e = faHidden or faSysFile or faVolumeID or faDirectory } - { FindFirstFile is a WinCE Call } - Rslt.FindHandle:=FindFirstFile (fn, Rslt.FindData); - FreeMem(fn); - If Rslt.FindHandle=Invalid_Handle_value then - begin - Result:=GetLastError; - exit; - end; - { Find file with correct attribute } - Result:=FindMatch(Rslt); -end; - - -Function FindNext (Var Rslt : TSearchRec) : Longint; -begin - if FindNextFile(Rslt.FindHandle, Rslt.FindData) then - Result := FindMatch(Rslt) - else - Result := GetLastError; -end; - - -Procedure FindClose (Var F : TSearchrec); -begin - if F.FindHandle <> INVALID_HANDLE_VALUE then - Windows.FindClose(F.FindHandle); -end; - - -Function FileGetDate (Handle : THandle) : Longint; -Var - FT : TFileTime; -begin - If GetFileTime(Handle,nil,nil,@ft) and - WinToDosTime(FT, Result) then - exit; - Result:=-1; -end; - - -Function FileSetDate (Handle : THandle;Age : Longint) : Longint; -Var - FT: TFileTime; -begin - Result := 0; - if DosToWinTime(Age, FT) and SetFileTime(Handle, FT, FT, FT) then - Exit; - Result := GetLastError; -end; - - -Function FileGetAttr (Const FileName : String) : Longint; -var - fn: PWideChar; -begin - fn:=StringToPWideChar(FileName); - Result:=GetFileAttributes(fn); - FreeMem(fn); -end; - - -Function FileSetAttr (Const Filename : String; Attr: longint) : Longint; -var - fn: PWideChar; -begin - fn:=StringToPWideChar(FileName); - if not SetFileAttributes(fn, Attr) then - Result := GetLastError - else - Result:=0; - FreeMem(fn); -end; - - -Function DeleteFile (Const FileName : String) : Boolean; -var - fn: PWideChar; -begin - fn:=StringToPWideChar(FileName); - DeleteFile:=Windows.DeleteFile(fn); - FreeMem(fn); -end; - - -Function RenameFile (Const OldName, NewName : String) : Boolean; -var - fold, fnew: PWideChar; -begin - fold:=StringToPWideChar(OldName); - fnew:=StringToPWideChar(NewName); - Result := MoveFile(fold, fnew); - FreeMem(fnew); - FreeMem(fold); -end; - - -{**************************************************************************** - Disk Functions -****************************************************************************} - -function diskfree(drive : byte) : int64; -begin - Result := Dos.diskfree(drive); -end; - - -function disksize(drive : byte) : int64; -begin - Result := Dos.disksize(drive); -end; - - -Function GetCurrentDir : String; -begin - GetDir(0, result); -end; - - -Function SetCurrentDir (Const NewDir : String) : Boolean; -begin - {$I-} - ChDir(NewDir); - {$I+} - result := (IOResult = 0); -end; - - -Function CreateDir (Const NewDir : String) : Boolean; -begin - {$I-} - MkDir(NewDir); - {$I+} - result := (IOResult = 0); -end; - - -Function RemoveDir (Const Dir : String) : Boolean; -begin - {$I-} - RmDir(Dir); - {$I+} - result := (IOResult = 0); -end; - - -{**************************************************************************** - Time Functions -****************************************************************************} - - -Procedure GetLocalTime(var SystemTime: TSystemTime); -Var - Syst : Windows.TSystemtime; -begin - windows.Getlocaltime(@syst); - SystemTime.year:=syst.wYear; - SystemTime.month:=syst.wMonth; - SystemTime.day:=syst.wDay; - SystemTime.hour:=syst.wHour; - SystemTime.minute:=syst.wMinute; - SystemTime.second:=syst.wSecond; - SystemTime.millisecond:=syst.wMilliSeconds; -end; - - -{**************************************************************************** - Misc Functions -****************************************************************************} - -procedure Beep; -begin - MessageBeep(0); -end; - - -{**************************************************************************** - Locale Functions -****************************************************************************} - -Procedure InitAnsi; -Var - i : longint; -begin - { Fill table entries 0 to 127 } - for i := 0 to 96 do - UpperCaseTable[i] := chr(i); - for i := 97 to 122 do - UpperCaseTable[i] := chr(i - 32); - for i := 123 to 191 do - UpperCaseTable[i] := chr(i); - Move (CPISO88591UCT,UpperCaseTable[192],SizeOf(CPISO88591UCT)); - - for i := 0 to 64 do - LowerCaseTable[i] := chr(i); - for i := 65 to 90 do - LowerCaseTable[i] := chr(i + 32); - for i := 91 to 191 do - LowerCaseTable[i] := chr(i); - Move (CPISO88591LCT,UpperCaseTable[192],SizeOf(CPISO88591UCT)); -end; - - -function GetLocaleStr(LID, LT: Longint; const Def: string): ShortString; -var - L: Integer; - Buf: array[0..255] of WideChar; - s: widestring; -begin - L := GetLocaleInfo(LID, LT, Buf, SizeOf(Buf) div SizeOf(WideChar)); - if L > 0 then - begin - SetString(s, Buf, L - 1); - Result:=s; - end - else - Result := Def; -end; - - -function GetLocaleChar(LID, LT: Longint; Def: Char): Char; -var - Buf: array[0..1] of WideChar; - Buf2: array[0..1] of Char; -begin - if GetLocaleInfo(LID, LT, Buf, 2) > 0 then - begin - WideToAnsiBuf(Buf, -1, Buf2, SizeOf(Buf2)); - Result := Buf2[0]; - end - else - Result := Def; -end; - - -Function GetLocaleInt(LID,TP,Def: LongInt): LongInt; -Var - S: String; - C: Integer; -Begin - S:=GetLocaleStr(LID,TP,'0'); - Val(S,Result,C); - If C<>0 Then - Result:=Def; -End; - - -procedure GetFormatSettings; -var - HF : Shortstring; - LID : LCID; - I,Day,DateOrder : longint; -begin - LID := GetUserDefaultLCID; - { Date stuff } - for I := 1 to 12 do - begin - ShortMonthNames[I]:=GetLocaleStr(LID,LOCALE_SABBREVMONTHNAME1+I-1,ShortMonthNames[i]); - LongMonthNames[I]:=GetLocaleStr(LID,LOCALE_SMONTHNAME1+I-1,LongMonthNames[i]); - end; - for I := 1 to 7 do - begin - Day := (I + 5) mod 7; - ShortDayNames[I]:=GetLocaleStr(LID,LOCALE_SABBREVDAYNAME1+Day,ShortDayNames[i]); - LongDayNames[I]:=GetLocaleStr(LID,LOCALE_SDAYNAME1+Day,LongDayNames[i]); - end; - DateSeparator := GetLocaleChar(LID, LOCALE_SDATE, '/'); - DateOrder := GetLocaleInt(LID, LOCALE_IDate, 0); - Case DateOrder Of - 1: Begin - ShortDateFormat := 'dd/mm/yyyy'; - LongDateFormat := 'dddd, d. mmmm yyyy'; - End; - 2: Begin - ShortDateFormat := 'yyyy/mm/dd'; - LongDateFormat := 'dddd, yyyy mmmm d.'; - End; - else - // Default american settings... - ShortDateFormat := 'mm/dd/yyyy'; - LongDateFormat := 'dddd, mmmm d. yyyy'; - End; - { Time stuff } - TimeSeparator := GetLocaleChar(LID, LOCALE_STIME, ':'); - TimeAMString := GetLocaleStr(LID, LOCALE_S1159, 'AM'); - TimePMString := GetLocaleStr(LID, LOCALE_S2359, 'PM'); - if StrToIntDef(GetLocaleStr(LID, LOCALE_ITLZERO, '0'), 0) = 0 then - HF:='h' - else - HF:='hh'; - // No support for 12 hour stuff at the moment... - ShortTimeFormat := HF+':nn'; - LongTimeFormat := HF + ':nn:ss'; - { Currency stuff } - CurrencyString:=GetLocaleStr(LID, LOCALE_SCURRENCY, ''); - CurrencyFormat:=StrToIntDef(GetLocaleStr(LID, LOCALE_ICURRENCY, '0'), 0); - NegCurrFormat:=StrToIntDef(GetLocaleStr(LID, LOCALE_INEGCURR, '0'), 0); - { Number stuff } - ThousandSeparator:=GetLocaleChar(LID, LOCALE_STHOUSAND, ','); - DecimalSeparator:=GetLocaleChar(LID, LOCALE_SDECIMAL, '.'); - CurrencyDecimals:=StrToIntDef(GetLocaleStr(LID, LOCALE_ICURRDIGITS, '0'), 0); -end; - - -Procedure InitInternational; -begin - InitInternationalGeneric; - SysLocale.MBCS:=GetSystemMetrics(SM_DBCSENABLED)<>0; - SysLocale.RightToLeft:=GetSystemMetrics(SM_MIDEASTENABLED)<>0; - InitAnsi; - GetFormatSettings; -end; - - -{**************************************************************************** - Target Dependent -****************************************************************************} - -function SysErrorMessage(ErrorCode: Integer): String; -var - MsgBuffer: PWideChar; - len: longint; -begin - len:=FormatMessage( - FORMAT_MESSAGE_ALLOCATE_BUFFER or FORMAT_MESSAGE_FROM_SYSTEM or FORMAT_MESSAGE_IGNORE_INSERTS, - nil, - ErrorCode, - 0, - PWideChar(@MsgBuffer), { This function allocs the memory (in this case you pass a PPwidechar)} - 0, - nil); - while (len > 0) and (MsgBuffer[len - 1] <= #32) do - Dec(len); - MsgBuffer[len]:=#0; - PWideCharToString(PWideChar(MsgBuffer), Result); - LocalFree(HLOCAL(MsgBuffer)); -end; - -{**************************************************************************** - Initialization code -****************************************************************************} - -// WinCE does not have environment. It can be emulated via registry or file. (YS) - -Function GetEnvironmentVariable(Const EnvVar : String) : String; -begin - Result := ''; -end; - -Function GetEnvironmentVariableCount : Integer; -begin - Result := 0; -end; - -Function GetEnvironmentString(Index : Integer) : String; -begin - Result := ''; -end; - - -function ExecuteProcess(Const Path: AnsiString; Const ComLine: AnsiString):integer; -var - PI: TProcessInformation; - Proc : THandle; - l : DWord; - e : EOSError; - -begin - DosError := 0; - if not CreateProcess(PWideChar(widestring(Path)), PWideChar(widestring(ComLine)), - nil, nil, FALSE, 0, nil, nil, nil, PI) then - begin - e:=EOSError.CreateFmt(SExecuteProcessFailed,[Path,GetLastError]); - e.ErrorCode:=GetLastError; - raise e; - end; - Proc:=PI.hProcess; - CloseHandle(PI.hThread); - if WaitForSingleObject(Proc, dword($ffffffff)) <> $ffffffff then - begin - GetExitCodeProcess(Proc,l); - CloseHandle(Proc); - result:=l; - end - else - begin - e:=EOSError.CreateFmt(SExecuteProcessFailed,[Path,GetLastError]); - e.ErrorCode:=GetLastError; - CloseHandle(Proc); - raise e; - end; -end; - -function ExecuteProcess(Const Path: AnsiString; Const ComLine: Array of AnsiString):integer; - -Var - CommandLine : AnsiString; - i : Integer; - -Begin - Commandline:=''; - For i:=0 to high(ComLine) Do - Commandline:=CommandLine+' '+Comline[i]; - ExecuteProcess:=ExecuteProcess(Path,CommandLine); -End; - -Procedure Sleep(Milliseconds : Cardinal); - -begin - Windows.Sleep(MilliSeconds) -end; - -Function GetLastOSError : Integer; - -begin - Result:=GetLastError; -end; - -{**************************************************************************** - Initialization code -****************************************************************************} - -Procedure LoadVersionInfo; -Var - versioninfo : TOSVERSIONINFO; - i : Integer; - -begin - versioninfo.dwOSVersionInfoSize:=sizeof(versioninfo); - GetVersionEx(versioninfo); - WinCEPlatform:=versionInfo.dwPlatformId; - WinCEMajorVersion:=versionInfo.dwMajorVersion; - WinCEMinorVersion:=versionInfo.dwMinorVersion; - WinCEBuildNumber:=versionInfo.dwBuildNumber; - i:=WideToAnsiBuf(@versioninfo.szCSDVersion[0], -1, @WinCECSDVersion[1], SizeOf(WinCECSDVersion) - 1); - if i <> 0 then - WinCECSDVersion[0]:=chr(i - 1); -end; - -Function GetSpecialDir(ID: Integer) : String; - -Var - APath : array[0..MAX_PATH] of WideChar; -begin - if SHGetSpecialFolderPath(0, APath, ID, True) then - begin - PWideCharToString(APath, Result); - Result:=IncludeTrailingPathDelimiter(Result); - end - else - Result:=''; -end; - -Function GetAppConfigDir(Global : Boolean) : String; - -begin - If Global then - Result:=DGetAppConfigDir(Global) // or use windows dir ?? - else - begin - Result:=GetSpecialDir(CSIDL_APPDATA)+ApplicationName; - If (Result='') then - Result:=DGetAppConfigDir(Global); - end; -end; - -Function GetAppConfigFile(Global : Boolean; SubDir : Boolean) : String; - -begin - if Global then - begin - Result:=IncludeTrailingPathDelimiter(DGetAppConfigDir(Global)); - if SubDir then - Result:=IncludeTrailingPathDelimiter(Result+'Config'); - Result:=Result+ApplicationName+ConfigExtension; - end - else - begin - Result:=IncludeTrailingPathDelimiter(GetAppConfigDir(False)); - if SubDir then - Result:=Result+'Config\'; - Result:=Result+ApplicationName+ConfigExtension; - end; -end; - -Function GetTempDir(Global : Boolean) : String; -var - buf: widestring; -begin - SetLength(buf, MAX_PATH); - SetLength(buf, GetTempPath(Length(buf) + 1, PWideChar(buf))); - Result:=buf; -end; - -{**************************************************************************** - Target Dependent WideString stuff -****************************************************************************} - - -function WinCECompareWideString(const s1, s2 : WideString) : PtrInt; -begin - SetLastError(0); - Result:=CompareString(LOCALE_USER_DEFAULT,0,pwidechar(s1), - length(s1),pwidechar(s2),length(s2))-2; - if GetLastError<>0 then - RaiseLastOSError; -end; - - -function WinCECompareTextWideString(const s1, s2 : WideString) : PtrInt; -begin - SetLastError(0); - Result:=CompareString(LOCALE_USER_DEFAULT,NORM_IGNORECASE,pwidechar(s1), - length(s1),pwidechar(s2),length(s2))-2; - if GetLastError<>0 then - RaiseLastOSError; -end; - - -function WinCEAnsiUpperCase(const s: string): string; -var - buf: PWideChar; - len: longint; -begin - if s <> '' then - begin - buf:=StringToPWideChar(s, @len); - CharUpperBuff(buf, len); - PWideCharToString(buf, Result, len); - FreeMem(buf); - end - else - Result:=''; -end; - - -function WinCEAnsiLowerCase(const s: string): string; -var - buf: PWideChar; - len: longint; -begin - if s <> '' then - begin - buf:=StringToPWideChar(s, @len); - CharLowerBuff(buf, len); - PWideCharToString(buf, Result, len); - FreeMem(buf); - end - else - Result:=''; -end; - - -function WinCEAnsiCompareStr(const S1, S2: string): PtrInt; -var - ws1, ws2: PWideChar; -begin - ws1:=StringToPWideChar(S1); - ws2:=StringToPWideChar(S2); - Result:=CompareString(LOCALE_USER_DEFAULT, 0, ws1, Length(S1), ws2, Length(S2)) - 2; - FreeMem(ws2); - FreeMem(ws1); -end; - - -function WinCEAnsiCompareText(const S1, S2: string): PtrInt; -var - ws1, ws2: PWideChar; -begin - ws1:=StringToPWideChar(S1); - ws2:=StringToPWideChar(S2); - Result:=CompareString(LOCALE_USER_DEFAULT, NORM_IGNORECASE, ws1, Length(S1), ws2, Length(S2)) - 2; - FreeMem(ws2); - FreeMem(ws1); -end; - -function WinCEAnsiStrComp(S1, S2: PChar): PtrInt; -var - ws1, ws2: PWideChar; -begin - ws1:=PCharToPWideChar(S1); - ws2:=PCharToPWideChar(S2); - Result:=CompareString(LOCALE_USER_DEFAULT, 0, ws1, -1, ws2, -1) - 2; - FreeMem(ws2); - FreeMem(ws1); -end; - - -function WinCEAnsiStrIComp(S1, S2: PChar): PtrInt; -var - ws1, ws2: PWideChar; -begin - ws1:=PCharToPWideChar(S1); - ws2:=PCharToPWideChar(S2); - Result:=CompareString(LOCALE_USER_DEFAULT, NORM_IGNORECASE, ws1, -1, ws2, -1) - 2; - FreeMem(ws2); - FreeMem(ws1); -end; - - -function WinCEAnsiStrLComp(S1, S2: PChar; MaxLen: PtrUInt): PtrInt; -var - ws1, ws2: PWideChar; - len1, len2: longint; -begin - ws1:=PCharToPWideChar(S1, MaxLen, @len1); - ws2:=PCharToPWideChar(S2, MaxLen, @len2); - Result:=CompareString(LOCALE_USER_DEFAULT, 0, ws1, len1, ws2, len2) - 2; - FreeMem(ws2); - FreeMem(ws1); -end; - - -function WinCEAnsiStrLIComp(S1, S2: PChar; MaxLen: PtrUInt): PtrInt; -var - ws1, ws2: PWideChar; - len1, len2: longint; -begin - ws1:=PCharToPWideChar(S1, MaxLen, @len1); - ws2:=PCharToPWideChar(S2, MaxLen, @len2); - Result:=CompareString(LOCALE_USER_DEFAULT, NORM_IGNORECASE, ws1, len1, ws2, len2) - 2; - FreeMem(ws2); - FreeMem(ws1); -end; - - -function WinCEAnsiStrLower(Str: PChar): PChar; -var - buf: PWideChar; - len: longint; -begin - buf:=PCharToPWideChar(Str, -1, @len); - CharLowerBuff(buf, len); - Result:=Str; - WideToAnsiBuf(buf, -1, Result, len + 1); - FreeMem(buf); -end; - - -function WinCEAnsiStrUpper(Str: PChar): PChar; -var - buf: PWideChar; - len: longint; -begin - buf:=PCharToPWideChar(Str, -1, @len); - CharUpperBuff(buf, len); - Result:=Str; - WideToAnsiBuf(buf, -1, Result, len + 1); - FreeMem(buf); -end; - - -{ there is a similiar procedure in the system unit which inits the fields which - are relevant already for the system unit } -procedure InitWinCEWidestrings; - begin - widestringmanager.CompareWideStringProc:=@WinCECompareWideString; - widestringmanager.CompareTextWideStringProc:=@WinCECompareTextWideString; - - widestringmanager.UpperAnsiStringProc:=@WinCEAnsiUpperCase; - widestringmanager.LowerAnsiStringProc:=@WinCEAnsiLowerCase; - widestringmanager.CompareStrAnsiStringProc:=@WinCEAnsiCompareStr; - widestringmanager.CompareTextAnsiStringProc:=@WinCEAnsiCompareText; - widestringmanager.StrCompAnsiStringProc:=@WinCEAnsiStrComp; - widestringmanager.StrICompAnsiStringProc:=@WinCEAnsiStrIComp; - widestringmanager.StrLCompAnsiStringProc:=@WinCEAnsiStrLComp; - widestringmanager.StrLICompAnsiStringProc:=@WinCEAnsiStrLIComp; - widestringmanager.StrLowerAnsiStringProc:=@WinCEAnsiStrLower; - widestringmanager.StrUpperAnsiStringProc:=@WinCEAnsiStrUpper; - end; - - - -Initialization - InitWinCEWidestrings; - InitExceptions; { Initialize exceptions. OS independent } - InitInternational; { Initialize internationalization settings } - LoadVersionInfo; - SysConfigDir:='\Windows'; - -Finalization - DoneExceptions; - -end. +{ + + This file is part of the Free Pascal run time library. + Copyright (c) 1999-2005 by Florian Klaempfl and Yury Sidorov + members of the Free Pascal development team + + Sysutils unit for wince + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} +unit sysutils; +interface + +{$MODE objfpc} +{ force ansistrings } +{$H+} + +uses + dos, + windows; + +{$DEFINE HAS_SLEEP} +{$DEFINE HAS_OSERROR} +{$DEFINE HAS_OSCONFIG} +{$DEFINE HAS_TEMPDIR} + +{ Include platform independent interface part } +{$i sysutilh.inc} + +type + TSystemTime = Windows.TSystemTime; + + EWinCEError = class(Exception) + public + ErrorCode : DWORD; + end; + + +Var + WinCEPlatform : Longint; + WinCEMajorVersion, + WinCEMinorVersion, + WinCEBuildNumber : dword; + WinCECSDVersion : ShortString; // CSD record is 128 bytes only? + + +implementation + + uses + sysconst; + +{$DEFINE FPC_NOGENERICANSIROUTINES} +{$define HASEXPANDUNCFILENAME} + +{$DEFINE FPC_FEXPAND_NO_DEFAULT_PATHS} +{$DEFINE FPC_FEXPAND_UNC} (* UNC paths are supported *) + +{ Include platform independent implementation part } +{$i sysutils.inc} + +procedure PWideCharToString(const str: PWideChar; out Result: string; strlen: longint = -1); +var + len: longint; +begin + if str^ = #0 then + Result:='' + else + begin + while True do begin + if strlen <> -1 then + len:=(strlen + 1) div SizeOf(WideChar) + else + len:=WideToAnsiBuf(str, -1, nil, 0); + if len > 0 then + begin + SetLength(Result, len - 1); + if (WideToAnsiBuf(str, -1, @Result[1], len) = 0) and (strlen <> -1) then + begin + strlen:=-1; + continue; + end; + end + else + Result:=''; + break; + end; + end; +end; + +function ExpandUNCFileName (const filename:string) : string; +{ returns empty string on errors } +var + s : widestring; + size : dword; + rc : dword; + buf : pwidechar; +begin + s := ExpandFileName (filename); + + size := max_path*SizeOf(WideChar); + getmem(buf,size); + + try + rc := WNetGetUniversalName (pwidechar(s), UNIVERSAL_NAME_INFO_LEVEL, buf, @size); + + if rc=ERROR_MORE_DATA then + begin + buf:=reallocmem(buf,size); + rc := WNetGetUniversalName (pwidechar(s), UNIVERSAL_NAME_INFO_LEVEL, buf, @size); + end; + if rc = NO_ERROR then + Result := PRemoteNameInfo(buf)^.lpUniversalName + else if rc = ERROR_NOT_CONNECTED then + Result := filename + else + Result := ''; + finally + freemem(buf); + end; +end; + +{**************************************************************************** + File Functions +****************************************************************************} + +Function FileOpen (Const FileName : string; Mode : Integer) : THandle; +const + AccessMode: array[0..2] of Cardinal = ( + GENERIC_READ, + GENERIC_WRITE, + GENERIC_READ or GENERIC_WRITE); + ShareMode: array[0..4] of Integer = ( + 0, + 0, + FILE_SHARE_READ, + FILE_SHARE_WRITE, + FILE_SHARE_READ or FILE_SHARE_WRITE); +var + fn: PWideChar; +begin + fn:=StringToPWideChar(FileName); + result := CreateFile(fn, dword(AccessMode[Mode and 3]), + dword(ShareMode[(Mode and $F0) shr 4]), nil, OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL, 0); + //if fail api return feInvalidHandle (INVALIDE_HANDLE=feInvalidHandle=-1) + FreeMem(fn); +end; + + +Function FileCreate (Const FileName : String) : THandle; +var + fn: PWideChar; +begin + fn:=StringToPWideChar(FileName); + Result := CreateFile(fn, GENERIC_READ or GENERIC_WRITE, + 0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); + FreeMem(fn); +end; + + +Function FileCreate (Const FileName : String; Mode:longint) : THandle; +begin + FileCreate:=FileCreate(FileName); +end; + + +Function FileRead (Handle : THandle; Var Buffer; Count : longint) : Longint; +Var + res : dword; +begin + if ReadFile(Handle, Buffer, Count, res, nil) then + FileRead:=Res + else + FileRead:=-1; +end; + + +Function FileWrite (Handle : THandle; const Buffer; Count : Longint) : Longint; +Var + Res : dword; +begin + if WriteFile(Handle, Buffer, Count, Res, nil) then + FileWrite:=Res + else + FileWrite:=-1; +end; + + +Function FileSeek (Handle : THandle;FOffset,Origin : Longint) : Longint; +begin + Result := longint(SetFilePointer(Handle, FOffset, nil, Origin)); +end; + + +Function FileSeek (Handle : THandle; FOffset: Int64; Origin: Longint) : Int64; +begin + Result := SetFilePointer(Handle, longint(FOffset), nil, longint(Origin)); +end; + + +Procedure FileClose (Handle : THandle); +begin + if Handle<=4 then + exit; + CloseHandle(Handle); +end; + + +Function FileTruncate (Handle : THandle;Size: Int64) : boolean; +begin + if FileSeek (Handle, Size, FILE_BEGIN) = Size then + Result:=SetEndOfFile(handle) + else + Result := false; +end; + + +Function DosToWinTime (DTime:longint; out Wtime : TFileTime):longbool; +begin + DosToWinTime:=dos.DosToWinTime(DTime, Wtime); +end; + + +Function WinToDosTime (Const Wtime : TFileTime; out DTime:longint):longbool; +begin + WinToDosTime:=dos.WinToDosTime(Wtime, DTime); +end; + + +Function FileAge (Const FileName : String): Longint; +var + Handle: THandle; + FindData: TWin32FindData; + fn: PWideChar; +begin + fn:=StringToPWideChar(FileName); + Handle := FindFirstFile(fn, FindData); + FreeMem(fn); + if Handle <> INVALID_HANDLE_VALUE then + begin + Windows.FindClose(Handle); + if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then + If WinToDosTime(FindData.ftLastWriteTime,Result) then + exit; + end; + Result := -1; +end; + + +Function FileExists (Const FileName : String) : Boolean; +var + Attr:Dword; +begin + Attr:=FileGetAttr(FileName); + if Attr <> $ffffffff then + Result:= (Attr and FILE_ATTRIBUTE_DIRECTORY) = 0 + else + Result:=False; +end; + + +Function DirectoryExists (Const Directory : String) : Boolean; +var + Attr:Dword; +begin + Attr:=FileGetAttr(Directory); + if Attr <> $ffffffff then + Result:= (Attr and FILE_ATTRIBUTE_DIRECTORY) <> 0 + else + Result:=False; +end; + + +Function FindMatch(var f: TSearchRec) : Longint; +begin + { Find file with correct attribute } + While (F.FindData.dwFileAttributes and cardinal(F.ExcludeAttr))<>0 do + begin + if not FindNextFile (F.FindHandle,F.FindData) then + begin + Result:=GetLastError; + exit; + end; + end; + { Convert some attributes back } + WinToDosTime(F.FindData.ftLastWriteTime,F.Time); + f.size:=F.FindData.NFileSizeLow; + f.attr:=F.FindData.dwFileAttributes; + PWideCharToString(@F.FindData.cFileName[0], f.Name); + Result:=0; +end; + + +Function FindFirst (Const Path : String; Attr : Longint; out Rslt : TSearchRec) : Longint; +var + fn: PWideChar; +begin + fn:=StringToPWideChar(Path); + Rslt.Name:=Path; + Rslt.Attr:=attr; + Rslt.ExcludeAttr:=(not Attr) and ($1e); + { $1e = faHidden or faSysFile or faVolumeID or faDirectory } + { FindFirstFile is a WinCE Call } + Rslt.FindHandle:=FindFirstFile (fn, Rslt.FindData); + FreeMem(fn); + If Rslt.FindHandle=Invalid_Handle_value then + begin + Result:=GetLastError; + exit; + end; + { Find file with correct attribute } + Result:=FindMatch(Rslt); +end; + + +Function FindNext (Var Rslt : TSearchRec) : Longint; +begin + if FindNextFile(Rslt.FindHandle, Rslt.FindData) then + Result := FindMatch(Rslt) + else + Result := GetLastError; +end; + + +Procedure FindClose (Var F : TSearchrec); +begin + if F.FindHandle <> INVALID_HANDLE_VALUE then + Windows.FindClose(F.FindHandle); +end; + + +Function FileGetDate (Handle : THandle) : Longint; +Var + FT : TFileTime; +begin + If GetFileTime(Handle,nil,nil,@ft) and + WinToDosTime(FT, Result) then + exit; + Result:=-1; +end; + + +Function FileSetDate (Handle : THandle;Age : Longint) : Longint; +Var + FT: TFileTime; +begin + Result := 0; + if DosToWinTime(Age, FT) and SetFileTime(Handle, FT, FT, FT) then + Exit; + Result := GetLastError; +end; + + +Function FileGetAttr (Const FileName : String) : Longint; +var + fn: PWideChar; +begin + fn:=StringToPWideChar(FileName); + Result:=GetFileAttributes(fn); + FreeMem(fn); +end; + + +Function FileSetAttr (Const Filename : String; Attr: longint) : Longint; +var + fn: PWideChar; +begin + fn:=StringToPWideChar(FileName); + if not SetFileAttributes(fn, Attr) then + Result := GetLastError + else + Result:=0; + FreeMem(fn); +end; + + +Function DeleteFile (Const FileName : String) : Boolean; +var + fn: PWideChar; +begin + fn:=StringToPWideChar(FileName); + DeleteFile:=Windows.DeleteFile(fn); + FreeMem(fn); +end; + + +Function RenameFile (Const OldName, NewName : String) : Boolean; +var + fold, fnew: PWideChar; +begin + fold:=StringToPWideChar(OldName); + fnew:=StringToPWideChar(NewName); + Result := MoveFile(fold, fnew); + FreeMem(fnew); + FreeMem(fold); +end; + + +{**************************************************************************** + Disk Functions +****************************************************************************} + +function diskfree(drive : byte) : int64; +begin + Result := Dos.diskfree(drive); +end; + + +function disksize(drive : byte) : int64; +begin + Result := Dos.disksize(drive); +end; + + +Function GetCurrentDir : String; +begin + GetDir(0, result); +end; + + +Function SetCurrentDir (Const NewDir : String) : Boolean; +begin + {$I-} + ChDir(NewDir); + {$I+} + result := (IOResult = 0); +end; + + +Function CreateDir (Const NewDir : String) : Boolean; +begin + {$I-} + MkDir(NewDir); + {$I+} + result := (IOResult = 0); +end; + + +Function RemoveDir (Const Dir : String) : Boolean; +begin + {$I-} + RmDir(Dir); + {$I+} + result := (IOResult = 0); +end; + + +{**************************************************************************** + Time Functions +****************************************************************************} + + +Procedure GetLocalTime(var SystemTime: TSystemTime); +Var + Syst : Windows.TSystemtime; +begin + windows.Getlocaltime(@syst); + SystemTime.year:=syst.wYear; + SystemTime.month:=syst.wMonth; + SystemTime.day:=syst.wDay; + SystemTime.hour:=syst.wHour; + SystemTime.minute:=syst.wMinute; + SystemTime.second:=syst.wSecond; + SystemTime.millisecond:=syst.wMilliSeconds; +end; + + +{**************************************************************************** + Misc Functions +****************************************************************************} + +procedure Beep; +begin + MessageBeep(0); +end; + + +{**************************************************************************** + Locale Functions +****************************************************************************} + +Procedure InitAnsi; +Var + i : longint; +begin + { Fill table entries 0 to 127 } + for i := 0 to 96 do + UpperCaseTable[i] := chr(i); + for i := 97 to 122 do + UpperCaseTable[i] := chr(i - 32); + for i := 123 to 191 do + UpperCaseTable[i] := chr(i); + Move (CPISO88591UCT,UpperCaseTable[192],SizeOf(CPISO88591UCT)); + + for i := 0 to 64 do + LowerCaseTable[i] := chr(i); + for i := 65 to 90 do + LowerCaseTable[i] := chr(i + 32); + for i := 91 to 191 do + LowerCaseTable[i] := chr(i); + Move (CPISO88591LCT,UpperCaseTable[192],SizeOf(CPISO88591UCT)); +end; + + +function GetLocaleStr(LID, LT: Longint; const Def: string): ShortString; +var + L: Integer; + Buf: array[0..255] of WideChar; + s: widestring; +begin + L := GetLocaleInfo(LID, LT, Buf, SizeOf(Buf) div SizeOf(WideChar)); + if L > 0 then + begin + SetString(s, Buf, L - 1); + Result:=s; + end + else + Result := Def; +end; + + +function GetLocaleChar(LID, LT: Longint; Def: Char): Char; +var + Buf: array[0..1] of WideChar; + Buf2: array[0..1] of Char; +begin + if GetLocaleInfo(LID, LT, Buf, 2) > 0 then + begin + WideToAnsiBuf(Buf, -1, Buf2, SizeOf(Buf2)); + Result := Buf2[0]; + end + else + Result := Def; +end; + + +Function GetLocaleInt(LID,TP,Def: LongInt): LongInt; +Var + S: String; + C: Integer; +Begin + S:=GetLocaleStr(LID,TP,'0'); + Val(S,Result,C); + If C<>0 Then + Result:=Def; +End; + + +procedure GetFormatSettings; +var + HF : Shortstring; + LID : LCID; + I,Day,DateOrder : longint; +begin + LID := GetUserDefaultLCID; + { Date stuff } + for I := 1 to 12 do + begin + ShortMonthNames[I]:=GetLocaleStr(LID,LOCALE_SABBREVMONTHNAME1+I-1,ShortMonthNames[i]); + LongMonthNames[I]:=GetLocaleStr(LID,LOCALE_SMONTHNAME1+I-1,LongMonthNames[i]); + end; + for I := 1 to 7 do + begin + Day := (I + 5) mod 7; + ShortDayNames[I]:=GetLocaleStr(LID,LOCALE_SABBREVDAYNAME1+Day,ShortDayNames[i]); + LongDayNames[I]:=GetLocaleStr(LID,LOCALE_SDAYNAME1+Day,LongDayNames[i]); + end; + DateSeparator := GetLocaleChar(LID, LOCALE_SDATE, '/'); + DateOrder := GetLocaleInt(LID, LOCALE_IDate, 0); + Case DateOrder Of + 1: Begin + ShortDateFormat := 'dd/mm/yyyy'; + LongDateFormat := 'dddd, d. mmmm yyyy'; + End; + 2: Begin + ShortDateFormat := 'yyyy/mm/dd'; + LongDateFormat := 'dddd, yyyy mmmm d.'; + End; + else + // Default american settings... + ShortDateFormat := 'mm/dd/yyyy'; + LongDateFormat := 'dddd, mmmm d. yyyy'; + End; + { Time stuff } + TimeSeparator := GetLocaleChar(LID, LOCALE_STIME, ':'); + TimeAMString := GetLocaleStr(LID, LOCALE_S1159, 'AM'); + TimePMString := GetLocaleStr(LID, LOCALE_S2359, 'PM'); + if StrToIntDef(GetLocaleStr(LID, LOCALE_ITLZERO, '0'), 0) = 0 then + HF:='h' + else + HF:='hh'; + // No support for 12 hour stuff at the moment... + ShortTimeFormat := HF+':nn'; + LongTimeFormat := HF + ':nn:ss'; + { Currency stuff } + CurrencyString:=GetLocaleStr(LID, LOCALE_SCURRENCY, ''); + CurrencyFormat:=StrToIntDef(GetLocaleStr(LID, LOCALE_ICURRENCY, '0'), 0); + NegCurrFormat:=StrToIntDef(GetLocaleStr(LID, LOCALE_INEGCURR, '0'), 0); + { Number stuff } + ThousandSeparator:=GetLocaleChar(LID, LOCALE_STHOUSAND, ','); + DecimalSeparator:=GetLocaleChar(LID, LOCALE_SDECIMAL, '.'); + CurrencyDecimals:=StrToIntDef(GetLocaleStr(LID, LOCALE_ICURRDIGITS, '0'), 0); +end; + + +Procedure InitInternational; +begin + InitInternationalGeneric; + SysLocale.MBCS:=GetSystemMetrics(SM_DBCSENABLED)<>0; + SysLocale.RightToLeft:=GetSystemMetrics(SM_MIDEASTENABLED)<>0; + InitAnsi; + GetFormatSettings; +end; + + +{**************************************************************************** + Target Dependent +****************************************************************************} + +function SysErrorMessage(ErrorCode: Integer): String; +var + MsgBuffer: PWideChar; + len: longint; +begin + len:=FormatMessage( + FORMAT_MESSAGE_ALLOCATE_BUFFER or FORMAT_MESSAGE_FROM_SYSTEM or FORMAT_MESSAGE_IGNORE_INSERTS, + nil, + ErrorCode, + 0, + PWideChar(@MsgBuffer), { This function allocs the memory (in this case you pass a PPwidechar)} + 0, + nil); + while (len > 0) and (MsgBuffer[len - 1] <= #32) do + Dec(len); + MsgBuffer[len]:=#0; + PWideCharToString(PWideChar(MsgBuffer), Result); + LocalFree(HLOCAL(MsgBuffer)); +end; + +{**************************************************************************** + Initialization code +****************************************************************************} + +// WinCE does not have environment. It can be emulated via registry or file. (YS) + +Function GetEnvironmentVariable(Const EnvVar : String) : String; +begin + Result := ''; +end; + +Function GetEnvironmentVariableCount : Integer; +begin + Result := 0; +end; + +Function GetEnvironmentString(Index : Integer) : String; +begin + Result := ''; +end; + + +function ExecuteProcess(Const Path: AnsiString; Const ComLine: AnsiString):integer; +var + PI: TProcessInformation; + Proc : THandle; + l : DWord; + e : EOSError; + +begin + DosError := 0; + if not CreateProcess(PWideChar(widestring(Path)), PWideChar(widestring(ComLine)), + nil, nil, FALSE, 0, nil, nil, nil, PI) then + begin + e:=EOSError.CreateFmt(SExecuteProcessFailed,[Path,GetLastError]); + e.ErrorCode:=GetLastError; + raise e; + end; + Proc:=PI.hProcess; + CloseHandle(PI.hThread); + if WaitForSingleObject(Proc, dword($ffffffff)) <> $ffffffff then + begin + GetExitCodeProcess(Proc,l); + CloseHandle(Proc); + result:=l; + end + else + begin + e:=EOSError.CreateFmt(SExecuteProcessFailed,[Path,GetLastError]); + e.ErrorCode:=GetLastError; + CloseHandle(Proc); + raise e; + end; +end; + +function ExecuteProcess(Const Path: AnsiString; Const ComLine: Array of AnsiString):integer; + +Var + CommandLine : AnsiString; + i : Integer; + +Begin + Commandline:=''; + For i:=0 to high(ComLine) Do + Commandline:=CommandLine+' '+Comline[i]; + ExecuteProcess:=ExecuteProcess(Path,CommandLine); +End; + +Procedure Sleep(Milliseconds : Cardinal); + +begin + Windows.Sleep(MilliSeconds) +end; + +Function GetLastOSError : Integer; + +begin + Result:=GetLastError; +end; + +{**************************************************************************** + Initialization code +****************************************************************************} + +Procedure LoadVersionInfo; +Var + versioninfo : TOSVERSIONINFO; + i : Integer; + +begin + versioninfo.dwOSVersionInfoSize:=sizeof(versioninfo); + GetVersionEx(versioninfo); + WinCEPlatform:=versionInfo.dwPlatformId; + WinCEMajorVersion:=versionInfo.dwMajorVersion; + WinCEMinorVersion:=versionInfo.dwMinorVersion; + WinCEBuildNumber:=versionInfo.dwBuildNumber; + i:=WideToAnsiBuf(@versioninfo.szCSDVersion[0], -1, @WinCECSDVersion[1], SizeOf(WinCECSDVersion) - 1); + if i <> 0 then + WinCECSDVersion[0]:=chr(i - 1); +end; + +Function GetSpecialDir(ID: Integer) : String; + +Var + APath : array[0..MAX_PATH] of WideChar; +begin + if SHGetSpecialFolderPath(0, APath, ID, True) then + begin + PWideCharToString(APath, Result); + Result:=IncludeTrailingPathDelimiter(Result); + end + else + Result:=''; +end; + +Function GetAppConfigDir(Global : Boolean) : String; + +begin + If Global then + Result:=DGetAppConfigDir(Global) // or use windows dir ?? + else + begin + Result:=GetSpecialDir(CSIDL_APPDATA)+ApplicationName; + If (Result='') then + Result:=DGetAppConfigDir(Global); + end; +end; + +Function GetAppConfigFile(Global : Boolean; SubDir : Boolean) : String; + +begin + if Global then + begin + Result:=IncludeTrailingPathDelimiter(DGetAppConfigDir(Global)); + if SubDir then + Result:=IncludeTrailingPathDelimiter(Result+'Config'); + Result:=Result+ApplicationName+ConfigExtension; + end + else + begin + Result:=IncludeTrailingPathDelimiter(GetAppConfigDir(False)); + if SubDir then + Result:=Result+'Config\'; + Result:=Result+ApplicationName+ConfigExtension; + end; +end; + +Function GetTempDir(Global : Boolean) : String; +var + buf: widestring; +begin + SetLength(buf, MAX_PATH); + SetLength(buf, GetTempPath(Length(buf) + 1, PWideChar(buf))); + Result:=buf; +end; + +{**************************************************************************** + Target Dependent WideString stuff +****************************************************************************} + + +function WinCECompareWideString(const s1, s2 : WideString) : PtrInt; +begin + SetLastError(0); + Result:=CompareString(LOCALE_USER_DEFAULT,0,pwidechar(s1), + length(s1),pwidechar(s2),length(s2))-2; + if GetLastError<>0 then + RaiseLastOSError; +end; + + +function WinCECompareTextWideString(const s1, s2 : WideString) : PtrInt; +begin + SetLastError(0); + Result:=CompareString(LOCALE_USER_DEFAULT,NORM_IGNORECASE,pwidechar(s1), + length(s1),pwidechar(s2),length(s2))-2; + if GetLastError<>0 then + RaiseLastOSError; +end; + + +function WinCEAnsiUpperCase(const s: string): string; +var + buf: PWideChar; + len: longint; +begin + if s <> '' then + begin + buf:=StringToPWideChar(s, @len); + CharUpperBuff(buf, len); + PWideCharToString(buf, Result, len); + FreeMem(buf); + end + else + Result:=''; +end; + + +function WinCEAnsiLowerCase(const s: string): string; +var + buf: PWideChar; + len: longint; +begin + if s <> '' then + begin + buf:=StringToPWideChar(s, @len); + CharLowerBuff(buf, len); + PWideCharToString(buf, Result, len); + FreeMem(buf); + end + else + Result:=''; +end; + + +function WinCEAnsiCompareStr(const S1, S2: string): PtrInt; +var + ws1, ws2: PWideChar; +begin + ws1:=StringToPWideChar(S1); + ws2:=StringToPWideChar(S2); + Result:=CompareString(LOCALE_USER_DEFAULT, 0, ws1, Length(S1), ws2, Length(S2)) - 2; + FreeMem(ws2); + FreeMem(ws1); +end; + + +function WinCEAnsiCompareText(const S1, S2: string): PtrInt; +var + ws1, ws2: PWideChar; +begin + ws1:=StringToPWideChar(S1); + ws2:=StringToPWideChar(S2); + Result:=CompareString(LOCALE_USER_DEFAULT, NORM_IGNORECASE, ws1, Length(S1), ws2, Length(S2)) - 2; + FreeMem(ws2); + FreeMem(ws1); +end; + +function WinCEAnsiStrComp(S1, S2: PChar): PtrInt; +var + ws1, ws2: PWideChar; +begin + ws1:=PCharToPWideChar(S1); + ws2:=PCharToPWideChar(S2); + Result:=CompareString(LOCALE_USER_DEFAULT, 0, ws1, -1, ws2, -1) - 2; + FreeMem(ws2); + FreeMem(ws1); +end; + + +function WinCEAnsiStrIComp(S1, S2: PChar): PtrInt; +var + ws1, ws2: PWideChar; +begin + ws1:=PCharToPWideChar(S1); + ws2:=PCharToPWideChar(S2); + Result:=CompareString(LOCALE_USER_DEFAULT, NORM_IGNORECASE, ws1, -1, ws2, -1) - 2; + FreeMem(ws2); + FreeMem(ws1); +end; + + +function WinCEAnsiStrLComp(S1, S2: PChar; MaxLen: PtrUInt): PtrInt; +var + ws1, ws2: PWideChar; + len1, len2: longint; +begin + ws1:=PCharToPWideChar(S1, MaxLen, @len1); + ws2:=PCharToPWideChar(S2, MaxLen, @len2); + Result:=CompareString(LOCALE_USER_DEFAULT, 0, ws1, len1, ws2, len2) - 2; + FreeMem(ws2); + FreeMem(ws1); +end; + + +function WinCEAnsiStrLIComp(S1, S2: PChar; MaxLen: PtrUInt): PtrInt; +var + ws1, ws2: PWideChar; + len1, len2: longint; +begin + ws1:=PCharToPWideChar(S1, MaxLen, @len1); + ws2:=PCharToPWideChar(S2, MaxLen, @len2); + Result:=CompareString(LOCALE_USER_DEFAULT, NORM_IGNORECASE, ws1, len1, ws2, len2) - 2; + FreeMem(ws2); + FreeMem(ws1); +end; + + +function WinCEAnsiStrLower(Str: PChar): PChar; +var + buf: PWideChar; + len: longint; +begin + buf:=PCharToPWideChar(Str, -1, @len); + CharLowerBuff(buf, len); + Result:=Str; + WideToAnsiBuf(buf, -1, Result, len + 1); + FreeMem(buf); +end; + + +function WinCEAnsiStrUpper(Str: PChar): PChar; +var + buf: PWideChar; + len: longint; +begin + buf:=PCharToPWideChar(Str, -1, @len); + CharUpperBuff(buf, len); + Result:=Str; + WideToAnsiBuf(buf, -1, Result, len + 1); + FreeMem(buf); +end; + + +{ there is a similiar procedure in the system unit which inits the fields which + are relevant already for the system unit } +procedure InitWinCEWidestrings; + begin + widestringmanager.CompareWideStringProc:=@WinCECompareWideString; + widestringmanager.CompareTextWideStringProc:=@WinCECompareTextWideString; + + widestringmanager.UpperAnsiStringProc:=@WinCEAnsiUpperCase; + widestringmanager.LowerAnsiStringProc:=@WinCEAnsiLowerCase; + widestringmanager.CompareStrAnsiStringProc:=@WinCEAnsiCompareStr; + widestringmanager.CompareTextAnsiStringProc:=@WinCEAnsiCompareText; + widestringmanager.StrCompAnsiStringProc:=@WinCEAnsiStrComp; + widestringmanager.StrICompAnsiStringProc:=@WinCEAnsiStrIComp; + widestringmanager.StrLCompAnsiStringProc:=@WinCEAnsiStrLComp; + widestringmanager.StrLICompAnsiStringProc:=@WinCEAnsiStrLIComp; + widestringmanager.StrLowerAnsiStringProc:=@WinCEAnsiStrLower; + widestringmanager.StrUpperAnsiStringProc:=@WinCEAnsiStrUpper; + end; + + + +Initialization + InitWinCEWidestrings; + InitExceptions; { Initialize exceptions. OS independent } + InitInternational; { Initialize internationalization settings } + LoadVersionInfo; + SysConfigDir:='\Windows'; + +Finalization + DoneExceptions; + +end. diff --git a/rtl/wince/varutils.pp b/rtl/wince/varutils.pp index 365c12812e..ab445f891f 100644 --- a/rtl/wince/varutils.pp +++ b/rtl/wince/varutils.pp @@ -1,38 +1,38 @@ -{ - This file is part of the Free Pascal run time library. - Copyright (c) 1999-2000 by the Free Pascal development team - - Interface and OS-dependent part of variant support - - See the file COPYING.FPC, included in this distribution, - for details about the copyright. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - - **********************************************************************} - -{$MODE ObjFPC} - -Unit varutils; - -Interface - -Uses sysutils; - -// Read definitions. - -{$i varutilh.inc} - -Implementation - -// Code common to all platforms. - -{$i cvarutil.inc} - -// Code common to non-win32 platforms. - -{$i varutils.inc} - -end. +{ + This file is part of the Free Pascal run time library. + Copyright (c) 1999-2000 by the Free Pascal development team + + Interface and OS-dependent part of variant support + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} + +{$MODE ObjFPC} + +Unit varutils; + +Interface + +Uses sysutils; + +// Read definitions. + +{$i varutilh.inc} + +Implementation + +// Code common to all platforms. + +{$i cvarutil.inc} + +// Code common to non-win32 platforms. + +{$i varutils.inc} + +end. diff --git a/rtl/wince/windows.pp b/rtl/wince/windows.pp index 151b589218..0e2200f4bd 100644 --- a/rtl/wince/windows.pp +++ b/rtl/wince/windows.pp @@ -1,82 +1,82 @@ -{ - This file is part of the Free Pascal run time library. - This unit contains the record definition for the Win32 API - Copyright (c) 1999-2000 by Florian KLaempfl, - member of the Free Pascal development team. - - See the file COPYING.FPC, included in this distribution, - for details about the copyright. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - - ********************************************************************** - -} - -unit windows; - -{$PACKSET 1} - -{$ifndef NO_SMART_LINK} -{$smartlink on} -{$endif} - -{ stuff like array of const is used } -{$mode objfpc} -{ convention is cdecl for WinCE API} -{$calling cdecl} - -interface - - -{$define read_interface} -{$undef read_implementation} - - -{$i base.inc} -{$i errors.inc} -{$i defines.inc} -{$i struct.inc} -{$i messages.inc} -{$i coredll.inc} -{$i aygshell.inc} -{$i commctrl.inc} -{$i commdlg.inc} -{$i ceshell.inc} -{$i oleaut32.inc} -{$i iphlpapi.inc} -{$i simmgr.inc} -{$i tapi.inc} -{$i cemiss.inc} - -{$i redef.inc} - -{$undef read_interface} - -implementation - -{$define read_implementation} - -{$i base.inc} -{$i errors.inc} -{$i defines.inc} -{$i struct.inc} -{$i messages.inc} -{$i coredll.inc} -{$i aygshell.inc} -{$i commctrl.inc} -{$i commdlg.inc} -{$i ceshell.inc} -{$i oleaut32.inc} -{$i simmgr.inc} -{$i tapi.inc} -{$i cemiss.inc} - -{$i redef.inc} - -{$undef read_implementation} - -begin -end. +{ + This file is part of the Free Pascal run time library. + This unit contains the record definition for the Win32 API + Copyright (c) 1999-2000 by Florian KLaempfl, + member of the Free Pascal development team. + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + ********************************************************************** + +} + +unit windows; + +{$PACKSET 1} + +{$ifndef NO_SMART_LINK} +{$smartlink on} +{$endif} + +{ stuff like array of const is used } +{$mode objfpc} +{ convention is cdecl for WinCE API} +{$calling cdecl} + +interface + + +{$define read_interface} +{$undef read_implementation} + + +{$i base.inc} +{$i errors.inc} +{$i defines.inc} +{$i struct.inc} +{$i messages.inc} +{$i coredll.inc} +{$i aygshell.inc} +{$i commctrl.inc} +{$i commdlg.inc} +{$i ceshell.inc} +{$i oleaut32.inc} +{$i iphlpapi.inc} +{$i simmgr.inc} +{$i tapi.inc} +{$i cemiss.inc} + +{$i redef.inc} + +{$undef read_interface} + +implementation + +{$define read_implementation} + +{$i base.inc} +{$i errors.inc} +{$i defines.inc} +{$i struct.inc} +{$i messages.inc} +{$i coredll.inc} +{$i aygshell.inc} +{$i commctrl.inc} +{$i commdlg.inc} +{$i ceshell.inc} +{$i oleaut32.inc} +{$i simmgr.inc} +{$i tapi.inc} +{$i cemiss.inc} + +{$i redef.inc} + +{$undef read_implementation} + +begin +end. diff --git a/rtl/wince/wininc/aygshell.inc b/rtl/wince/wininc/aygshell.inc index a468161b5b..c81e5b9cfd 100644 --- a/rtl/wince/wininc/aygshell.inc +++ b/rtl/wince/wininc/aygshell.inc @@ -1,493 +1,493 @@ -{ - This file is part of the Free Pascal run time library. - Copyright (c) 2006 Free Pascal development team. - - See the file COPYING.FPC, included in this distribution, - for details about the copyright. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - - **********************************************************************} - -{ Declarations for aygshell WinCE API - -} - -{exported functions list = to do, - * please remove functions done * - - Exports - - ordinal name - - 146 ?ClearFontManager@@YAXXZ (void __cdecl ClearFontManager(void)) - 166 ?CreateBackgroundSpec@@YAJPAPAVIBackgroundSpec@@@Z (long __cdecl CreateBackgroundSpec(class IBackgroundSpec * *)) - 148 ?GetAppMetric@@YAHW4_enAppMetricID@@@Z (int __cdecl GetAppMetric(enum _enAppMetricID)) - 145 ?GetStandardFont@@YAJW4eFontID@@PAPAUHFONT__@@@Z (long __cdecl GetStandardFont(enum eFontID,struct HFONT__ * *)) - 348 ?IsScreenRotationSupported@@YAHXZ (int __cdecl IsScreenRotationSupported(void)) - 63 ?MinPowerOff@@YAHXZ (int __cdecl MinPowerOff(void)) - 147 ?OnSettingChange@@YAHIJ@Z (int __cdecl OnSettingChange(unsigned int,long)) - 189 ?SHDrawGradientBubbleTitle@@YAXPAUtagGRADIENTTITLEINFO@@@Z (void __cdecl SHDrawGradientBubbleTitle(struct tagGRADIENTTITLEINFO *)) - 2006 ?SHIdleTimerReset@@YAXXZ (void __cdecl SHIdleTimerReset(void)) - 228 ?SHLoadMenuExtensions@@YAHPAUIUnknown@@PBG1PAPAX@Z (int __cdecl SHLoadMenuExtensions(struct IUnknown *,unsigned short const *,unsigned short const *,void * *)) - 66 ?SHMenuBar_GetMenu@@YAPAUHMENU__@@PAUHWND__@@H@Z (struct HMENU__ * __cdecl SHMenuBar_GetMenu(struct HWND__ *,int)) - 140 ADChgTaskList - 139 ADChgTrustedSrcList - 142 ADRegisterCallback - 141 ADTaskInfo - 143 AssociateNoteWithCall - 52 CancelSIPUp - 46 ComboBoxEditSubProc - 29 ComboEditAutoComplete - 45 ComboSubProc - 190 CreateImageCache - 2021 DMProcessConfigXML - 330 DPI_ExtractIconEx - 311 DPI_LoadImageFile - 310 DPI_LoadLibraryRes - 237 DisplayNotRunnableAppDialog - 226 DoEditContextMenu - 191 DrawAlignedIcon - 44 EditSubProc - 13 FreeRegisteredAppInfo - 137 GetProtocol - 11 GetRegisteredAppInfo - 286 HIDPI_ImageList_LoadImage - 287 HIDPI_ImageList_ReplaceIcon - 92 IsFullScreenWindow - 347 IsModulePreWinCE421 - 62 IsSANMessage - 70 LFHeightForPoint - 302 LoadHTML - 241 LoadStringEtcOver - 180 NotifyAppsOnEvent - 24 PathAddBackslash - 26 PathCombine - 23 PathFindExtension - 27 PathFindFileName - 160 PathFindNextComponent - 116 PathIsPrefix - 28 PathIsRelative - 25 PathRemoveBackslash - 42 PathRemoveBlanks - 107 PhoneGetCallProperties - 106 PhoneGetCallPropertyBag - 159 PhoneShowCallLog - 158 SHAnimateListviewOpen - 117 SHAnimateRects - 22 SHAppNotifyDone - 130 SHBoldFontAllowed - 289 SHBorderPolyline - 288 SHBorderRectangle - 104 SHBox - 103 SHBoxEx - 114 SHChangeNotifyDeregister - 115 SHChangeNotifyFree - 113 SHChangeNotifyRegister - 48 SHCheckForContextMenu - 86 SHClearStartedBit - 55 SHColorDisplay - 37 SHCommandBar_EnableCommand - 38 SHCommandBar_GetClientRect - 36 SHCommandBar_GetCommandBarByID - 223 SHCopyBitmap - 306 SHCopyIcon - 164 SHCreateCOleWindow - 41 SHCreateContextMenu - 43 SHCreateMainWindow - 74 SHCreateMenuBarInternal - 108 SHCreateNewItem - 53 SHCreateSystemFont - 35 SHCreateWorkerWindow - 329 SHDeleteTodayWallpaper - 109 SHDocManagerCreate - 112 SHDocManagerDestroy - 111 SHDocManagerQuery - 110 SHDocManagerRegister - 233 SHDrawBranding - 234 SHDrawClippedText - 331 SHDrawTextOverImage - 58 SHDrawUnderline - 136 SHDrawUnderlineColor - 49 SHEnableEditMenu - 192 SHEnableRadio - 81 SHEndProfileObj - 2013 SHEnumFiles - 2020 SHEnumFolders - 98 SHEnumPropSheetHandlers - 203 SHEscapeAccelerators - 201 SHEscapeBubbleHtml - 168 SHFadeImage - 54 SHFillRectClr - 132 SHFindForegroundMenuBar - 283 SHFindMenuBarInternal - 209 SHFindPreviousInstance - 212 SHFindPreviousInstanceEx - 71 SHFontMgrCreate - 73 SHFontMgrDestroy - 72 SHFontMgrManageFonts - 33 SHForceBaseState - 99 SHForceBaseStateEx - 102 SHFreeContextMenuExtensions - 120 SHFreeScanners - 213 SHGetActiveDialog - 292 SHGetBitmapDimensions - 285 SHGetBitmapLogPixels - 225 SHGetCarrierBranding - 224 SHGetCarrierBrandingFlag - 96 SHGetDeviceFeatureLevel - 299 SHGetDisplayRotation - 128 SHGetEmergencyCallList - 218 SHGetFontHeight - 232 SHGetInputContext - 133 SHGetKOBits - 305 SHGetLandscapeRotationSettings - 345 SHGetLegacySupportWindow - 242 SHGetLocaleInfo - 167 SHGetMessageBoxIcon - 281 SHGetMetric - 172 SHGetNavBarItemRect - 163 SHGetPowerOnTime - 153 SHGetPresetMessage - 282 SHGetScreenOrientation - 204 SHGetSimToolkitMenu - 2014 SHGetSoundFileList - 177 SHGetStyleBkColor - 178 SHGetStyleColor - 179 SHGetStyleFont - 217 SHGetSystemDefaultLCID - 144 SHGetTimeFormat - 312 SHGetUIMetrics - 219 SHGetUiInfo - 221 SHGradientDeInit - 222 SHGradientDraw - 220 SHGradientInit - 31 SHHandleActivate - 30 SHHandleSipChange - 76 SHHdrGrpSepLineDraw - 8 SHImListPopup - 149 SHInitPresetMessages - 181 SHInsertPresetMessage - 129 SHInvalidateScreen - 101 SHInvokeContextMenuCommand - 123 SHIsLocked - 295 SHIsPreOzoneUpdate - 94 SHIsPreRapierApp - 100 SHLoadContextMenuExtensions - 230 SHLoadFileContextMenuExtensions - 313 SHLoadFontFromResource - 91 SHLoadMenuPopup - 216 SHLoadSKFromReg - 121 SHLock - 138 SHMakeCall - 235 SHMakeValidFilename - 32 SHMessageBox - 80 SHNewProfileObj - 155 SHNotificationAdd - 173 SHNotificationGetData - 157 SHNotificationRemove - 156 SHNotificationUpdate - 208 SHNotifyAppsOnCallConnect - 210 SHNotifyAppsOnCarkit - 165 SHNotifyAppsOnDock - 195 SHNotifyAppsOnHeadset - 214 SHNotifyAppsOnIncomingCall - 211 SHNotifyAppsOnSpeakerPhone - 135 SHOnFullScreenAppActivate - 238 SHOnMissedCallCountChange - 2008 SHOnPluginDataChange - 227 SHOnVoiceMailCountChange - 162 SHPaintBubbleFrame - 294 SHPolyline - 152 SHPopulatePresetMessageMenu - 175 SHPreProcessLogFont - 229 SHQueryMenuExtensions - 297 SHRCMLDialogProc - 293 SHRectangle - 2022 SHRefreshStartMenu - 215 SHRegGetHLMDWValue - 176 SHRegSetValueEx - 346 SHReleaseLegacySupportWindow - 150 SHReleasePresetMessages - 202 SHReplaceString - 245 SHResizeDialogProc - 50 SHRunCpl - 82 SHRunFontManager - 151 SHRunPresetMessagesEdit - 239 SHRunSafeApplet - 174 SHSameWindowProcesses - 95 SHSavePWWarning - 118 SHScanBuffer - 119 SHScanFile - 97 SHSendBackToFocusWindow - 169 SHSetAsWatermark - 184 SHSetBack - 161 SHSetBubbleRegion - 298 SHSetDisplayRotation - 131 SHSetForegroundLastActivePopup - 231 SHSetInputContext - 134 SHSetKOBits - 154 SHSetPresetMessage - 170 SHSetSimToolkitMenu - 1003 SHSetSoftKey - 300 SHSetStretchMode - 59 SHSetWindowBits - 67 SHShowContextMenu - 1004 SHShowSoftKeys - 79 SHSignalDone - 314 SHSipMightBlockUI - 308 SHSkipDialogInitialFocus - 207 SHSoundManGetDisplayName - 205 SHSoundManGetDisplayNameList - 206 SHSoundManGetFileName - 93 SHStartAndBlock - 85 SHStartIfNeeded - 87 SHStartProfile - 284 SHStretchBitmap - 290 SHStretchBltBitmap - 291 SHStretchBltBitmapEx - 307 SHStretchIcon - 105 SHTextBox - 171 SHToolkitQueryShell - 57 SHTrackPopupMenu - 1000 SHTurnScreenOn - 240 SHUnEscapeAccelerators - 122 SHUnlock - 2003 SHVoiceTagDelete - 2002 SHVoiceTagPlayback - 2001 SHVoiceTagRecognize - 2000 SHVoiceTagTrain - 124 SHWriteLockState - 301 SetDialogAutoScrollBar - 12 SetRegisteredAppInfo - 296 SetWindowPosOnRotate - 15 Shell_Alloc - 17 Shell_AllocString - 18 Shell_CatStrAlloc - 16 Shell_Free - 14 Shell_HeapCreate - 19 Shell_LoadStringAlloc - 20 Shell_RegAllocString - 51 StrStrI - 47 SubClassThisWindow - 199 TZFindClose - 197 TZFindNext - 196 TZFindOpen - 198 TZGetData - 1005 UIHGetTextToStruct - 1007 UIHLimitTextControls - 1008 UIHSetHWNDToStruct - 1006 UIHSetTextFromStruct - 236 VerifyTrust -} - -{$ifdef read_interface} - - -//***************************************************************************** -// consts -//***************************************************************************** -const - UserDLLAyg = 'aygshell'; - - CEM_UPCASEALLWORDS = (WM_USER + 1); - CEM_ENABLEUPCASE = (WM_USER + 2); - - {Gesture notifications} - GN_CONTEXTMENU = 1000; - - IDC_COMMANDBANDS = 100; - {Shell Menubar support} - // These defines MUST be < 100. This is so apps can use these defines - // to get strings from the shell. - IDS_SHNEW = 1; - IDS_SHEDIT = 2; - IDS_SHTOOLS = 3; - IDS_SHVIEW = 4; - IDS_SHFILE = 5; - IDS_SHGO = 6; - IDS_SHFAVORITES = 7; - IDS_SHOPEN = 8; - - {Shared New menu support} - IDM_SHAREDNEW = 10; - IDM_SHAREDNEWDEFAULT = 11; - - NOMENU = $FFFF; - SHA_INPUTDIALOG = $0001; - SHACTI_FSIPUP = $0001; - SHACTI_FSIPONDEACTIVATE = $0002; - SHACTI_FSIPRESERVED = $FFFF xor SHACTI_FSIPUP xor SHACTI_FSIPUP; - - {Valid dwFlags} - SHCMBF_EMPTYBAR = $0001; - SHCMBF_HIDDEN = $0002; // create it hidden - SHCMBF_HIDESIPBUTTON = $0004; - SHCMBF_COLORBK = $0008; - SHCMBF_HMENU = $0010; // specify an hmenu for resource rather than toolbar info - - SHCMBM_SETSUBMENU = (WM_USER + 400); // wparam == id of button, lParam == hmenu, return is old hmenu - SHCMBM_GETSUBMENU = (WM_USER + 401); // lParam == ID - SHCMBM_GETMENU = (WM_USER + 402); // get the owning hmenu (as specified in the load resource) - SHCMBM_OVERRIDEKEY = (WM_USER + 403); - SHCMBM_SETBKCOLOR = (WM_USER + 406); // lParam == COLORREF - - - {Valid mask values} - SHIDIM_FLAGS = $0001; - {Valid flags} - SHIDIF_DONEBUTTON = $0001; - SHIDIF_SIZEDLG = $0002; - SHIDIF_SIZEDLGFULLSCREEN = $0004; - SHIDIF_SIPDOWN = $0008; - SHIDIF_FULLSCREENNOMENUBAR = $0010; - SHIDIF_EMPTYMENU = $0020; - SHIDIF_WANTSCROLLBAR = $0040; - - SHMBOF_NODEFAULT = $00000001; // do not do default handling of this key - SHMBOF_NOTIFY = $00000002; // send us the WM_* messages for this key - - {Gesture flags} - SHRG_RETURNCMD = $00000001; - SHRG_NOTIFYPARENT = $00000002; - SHRG_LONGDELAY = $00000008; - SHRG_NOANIMATION = $00000010; - - {Sip info} - SIP_STATUS_UNAVAILABLE = 0; - SIP_STATUS_AVAILABLE = 1; - - SIPF_OFF = $00000000; - SIPF_ON = $00000001; - SIPF_DOCKED = $00000002; - SIPF_LOCKED = $00000004; - - {Supported system parameters} - SPI_SETCOMPLETIONINFO = 223; - SPI_SETSIPINFO = 224; - SPI_GETSIPINFO = 225; - SPI_SETCURRENTIM = 226; - SPI_GETCURRENTIM = 227; - SPI_APPBUTTONCHANGE = 228; - SPI_RESERVED = 229; - SPI_SYNCSETTINGSCHANGE = 230; - - WC_SIPPREF = 'SIPPREF'; - - {SHFullScreen - valide states} - SHFS_SHOWTASKBAR = $0001; - SHFS_HIDETASKBAR = $0002; - SHFS_SHOWSIPBUTTON = $0004; - SHFS_HIDESIPBUTTON = $0008; - SHFS_SHOWSTARTICON = $0010; - SHFS_HIDESTARTICON = $0020; - - { DoneButton - Valid state} - SHDB_SHOW = $0001; - SHDB_HIDE = $0002; - SHDB_SHOWCANCEL = $0004; // added by Windows Mobile 5.0 - WS_NONAVDONEBUTTON = WS_MINIMIZEBOX; - -//***************************************************************************** -// types -//***************************************************************************** - -type - //Struct sent through WM_NOTIFY when SHRG_NOTIFYPARENT is used - NMRGINFO = record - hdr : NMHDR; - ptAction : POINT; - dwItemSpec : DWORD; - end; - PNMRGINFO=^NMRGINFO; - - SHACTIVATEINFO = record - cbSize : DWORD; - hwndLastFocus : HWND ; - bits : Longint ; - end; - PSHACTIVATEINFO=^SHACTIVATEINFO; - - SHINITDLGINFO = record - dwMask: DWORD; - hDlg: HWND; - dwFlags : DWORD ; - end; - PSHINITDLGINFO=^SHINITDLGINFO; - - SHMENUBARINFO = record - cbSize : DWORD; // IN - Indicates which members of struct are valid - hwndParent : HWND ; // IN - dwFlags : DWORD ; // IN - Some features we want - nToolBarId : UINT ; // IN - Which toolbar are we using - hInstRes : HINST; // IN - Instance that owns the resources - nBmpId : Integer; - cBmpImages : Integer; // IN - Count of bitmap images - hwndMB : HWND ; // OUT - clrBk : COLORREF ; // IN - background color of the menu bar (excluding sip) - end; - PSHMENUBARINFO=^SHMENUBARINFO; - - {SHRecognizeGesture} - SHRGI = record - cbSize : DWORD; - hwndClient : HWND ; - ptDown : POINT; - dwFlags : DWORD; - end; - SHRGINFO=SHRGI; - PSHRGINFO=^SHRGI; - - {Sip info} - SIPINFO = record - cbSize : DWORD; - fdwFlags : DWORD; - rcVisibleDesktop : RECT; - rcSipRect : RECT; - dwImDataSize : DWORD; - pvImData : pointer; - end; - TSIPINFO=SIPINFO; - PSIPINFO=^SIPINFO; - - SIPSTATE= (SIP_UP= 0,SIP_DOWN,SIP_FORCEDOWN,SIP_UNCHANGED,SIP_INPUTDIALOG); - -//***************************************************************************** -// functions -//***************************************************************************** - -function ExitWindowsEx(uFlags:UINT; dwReserved:DWORD):WINBOOL; external UserDLLAyg name 'ExitWindowsEx'; -function SHCloseApps( dwMemSought : DWORD ): WINBOOL; external UserDLLAyg name 'SHCloseApps'; -function SHCreateMenuBar(pmbi : PSHMENUBARINFO ): WINBOOL; external UserDLLAyg name 'SHCreateMenuBar'; -function SHDoneButton(hwndRequester: HWND ; dwState : DWORD ): WINBOOL; external UserDLLAyg name 'SHDoneButton'; -function SHFindMenuBar(hwnd:HWND) : HWND; external UserDLLAyg name 'SHFindMenuBar'; -function SHFullScreen(hwmdRequester: hWnd; dwState: DWord): WINBOOL; external UserDLLAyg name 'SHFullScreen'; {Pocket PC special controls} -function SHGetAutoRunPath( pAutoRunPath : LPTSTR ): WINBOOL; external UserDLLAyg name 'SHGetAutoRunPath'; - -function SHHandleWMActivate(hwnd:HWND; wParam:WPARAM; lParam:LPARAM; psai: PSHACTIVATEINFO; dwFlags:DWORD ): WINBOOL; external UserDLLAyg name 'SHHandleWMActivate'; -function SHHandleWMSettingChange(hwnd:HWND; wParam:WPARAM; lParam:LPARAM; psai: PSHACTIVATEINFO): WINBOOL; external UserDLLAyg name 'SHHandleWMSettingChange'; -function SHInitDialog(pshidi: PSHINITDLGINFO): WINBOOL; external UserDLLAyg name 'SHInitDialog'; -function SHInitExtraControls: WINBOOL; external UserDLLAyg name 'SHInitExtraControls'; -procedure SHInputDialog(hwnd : HWND; uMsg : UINT; wParam: WPARAM ); external UserDLLAyg name 'SHInputDialog'; -function SHGetAppKeyAssoc( ptszApp: LPCTSTR ): Byte; external UserDLLAyg name 'SHGetAppKeyAssoc'; -{not exported on PocketPC 4.21 SE , may be smartphone only ? oro06 09-02-06 -function SHLoadImageResource(hinst: HINST; uIdGif: UINT ): HBITMAP; external UserDLLAyg name 'SHLoadImageResource'; -function SHLoadImageFile(pszFileName: LPCTSTR ) : HBITMAP; external UserDLLAyg name 'SHLoadImageFile'; -procedure SHNavigateBack; external UserDLLAyg name 'SHNavigateBack'; -} -function SHSetAppKeyWndAssoc( bVk: BYTE ; hwnd : HWND ): WINBOOL; external UserDLLAyg name 'SHSetAppKeyWndAssoc'; -function SHSetNavBarText(hwndRequester : HWND; pszText : LPCTSTR): WINBOOL; external UserDLLAyg name 'SHSetNavBarText'; - -function SHSipInfo(uiAction: UINT; uiParam: UINT; pvParam: PVOID; fWinIni: UINT ): WINBOOL; external UserDLLAyg name 'SHSipInfo'; -function SHSipPreference(hwnd: HWND ; st : SIPSTATE ) : WINBOOL; external UserDLLAyg name 'SHSipPreference'; -function SHRecognizeGesture(var shrg : SHRGINFO): DWORD; external UserDLLAyg name 'SHRecognizeGesture'; - -{$endif read_interface} - -{$ifdef read_implementation} - -{$endif read_implementation} - - +{ + This file is part of the Free Pascal run time library. + Copyright (c) 2006 Free Pascal development team. + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} + +{ Declarations for aygshell WinCE API + +} + +{exported functions list = to do, + * please remove functions done * + + Exports + + ordinal name + + 146 ?ClearFontManager@@YAXXZ (void __cdecl ClearFontManager(void)) + 166 ?CreateBackgroundSpec@@YAJPAPAVIBackgroundSpec@@@Z (long __cdecl CreateBackgroundSpec(class IBackgroundSpec * *)) + 148 ?GetAppMetric@@YAHW4_enAppMetricID@@@Z (int __cdecl GetAppMetric(enum _enAppMetricID)) + 145 ?GetStandardFont@@YAJW4eFontID@@PAPAUHFONT__@@@Z (long __cdecl GetStandardFont(enum eFontID,struct HFONT__ * *)) + 348 ?IsScreenRotationSupported@@YAHXZ (int __cdecl IsScreenRotationSupported(void)) + 63 ?MinPowerOff@@YAHXZ (int __cdecl MinPowerOff(void)) + 147 ?OnSettingChange@@YAHIJ@Z (int __cdecl OnSettingChange(unsigned int,long)) + 189 ?SHDrawGradientBubbleTitle@@YAXPAUtagGRADIENTTITLEINFO@@@Z (void __cdecl SHDrawGradientBubbleTitle(struct tagGRADIENTTITLEINFO *)) + 2006 ?SHIdleTimerReset@@YAXXZ (void __cdecl SHIdleTimerReset(void)) + 228 ?SHLoadMenuExtensions@@YAHPAUIUnknown@@PBG1PAPAX@Z (int __cdecl SHLoadMenuExtensions(struct IUnknown *,unsigned short const *,unsigned short const *,void * *)) + 66 ?SHMenuBar_GetMenu@@YAPAUHMENU__@@PAUHWND__@@H@Z (struct HMENU__ * __cdecl SHMenuBar_GetMenu(struct HWND__ *,int)) + 140 ADChgTaskList + 139 ADChgTrustedSrcList + 142 ADRegisterCallback + 141 ADTaskInfo + 143 AssociateNoteWithCall + 52 CancelSIPUp + 46 ComboBoxEditSubProc + 29 ComboEditAutoComplete + 45 ComboSubProc + 190 CreateImageCache + 2021 DMProcessConfigXML + 330 DPI_ExtractIconEx + 311 DPI_LoadImageFile + 310 DPI_LoadLibraryRes + 237 DisplayNotRunnableAppDialog + 226 DoEditContextMenu + 191 DrawAlignedIcon + 44 EditSubProc + 13 FreeRegisteredAppInfo + 137 GetProtocol + 11 GetRegisteredAppInfo + 286 HIDPI_ImageList_LoadImage + 287 HIDPI_ImageList_ReplaceIcon + 92 IsFullScreenWindow + 347 IsModulePreWinCE421 + 62 IsSANMessage + 70 LFHeightForPoint + 302 LoadHTML + 241 LoadStringEtcOver + 180 NotifyAppsOnEvent + 24 PathAddBackslash + 26 PathCombine + 23 PathFindExtension + 27 PathFindFileName + 160 PathFindNextComponent + 116 PathIsPrefix + 28 PathIsRelative + 25 PathRemoveBackslash + 42 PathRemoveBlanks + 107 PhoneGetCallProperties + 106 PhoneGetCallPropertyBag + 159 PhoneShowCallLog + 158 SHAnimateListviewOpen + 117 SHAnimateRects + 22 SHAppNotifyDone + 130 SHBoldFontAllowed + 289 SHBorderPolyline + 288 SHBorderRectangle + 104 SHBox + 103 SHBoxEx + 114 SHChangeNotifyDeregister + 115 SHChangeNotifyFree + 113 SHChangeNotifyRegister + 48 SHCheckForContextMenu + 86 SHClearStartedBit + 55 SHColorDisplay + 37 SHCommandBar_EnableCommand + 38 SHCommandBar_GetClientRect + 36 SHCommandBar_GetCommandBarByID + 223 SHCopyBitmap + 306 SHCopyIcon + 164 SHCreateCOleWindow + 41 SHCreateContextMenu + 43 SHCreateMainWindow + 74 SHCreateMenuBarInternal + 108 SHCreateNewItem + 53 SHCreateSystemFont + 35 SHCreateWorkerWindow + 329 SHDeleteTodayWallpaper + 109 SHDocManagerCreate + 112 SHDocManagerDestroy + 111 SHDocManagerQuery + 110 SHDocManagerRegister + 233 SHDrawBranding + 234 SHDrawClippedText + 331 SHDrawTextOverImage + 58 SHDrawUnderline + 136 SHDrawUnderlineColor + 49 SHEnableEditMenu + 192 SHEnableRadio + 81 SHEndProfileObj + 2013 SHEnumFiles + 2020 SHEnumFolders + 98 SHEnumPropSheetHandlers + 203 SHEscapeAccelerators + 201 SHEscapeBubbleHtml + 168 SHFadeImage + 54 SHFillRectClr + 132 SHFindForegroundMenuBar + 283 SHFindMenuBarInternal + 209 SHFindPreviousInstance + 212 SHFindPreviousInstanceEx + 71 SHFontMgrCreate + 73 SHFontMgrDestroy + 72 SHFontMgrManageFonts + 33 SHForceBaseState + 99 SHForceBaseStateEx + 102 SHFreeContextMenuExtensions + 120 SHFreeScanners + 213 SHGetActiveDialog + 292 SHGetBitmapDimensions + 285 SHGetBitmapLogPixels + 225 SHGetCarrierBranding + 224 SHGetCarrierBrandingFlag + 96 SHGetDeviceFeatureLevel + 299 SHGetDisplayRotation + 128 SHGetEmergencyCallList + 218 SHGetFontHeight + 232 SHGetInputContext + 133 SHGetKOBits + 305 SHGetLandscapeRotationSettings + 345 SHGetLegacySupportWindow + 242 SHGetLocaleInfo + 167 SHGetMessageBoxIcon + 281 SHGetMetric + 172 SHGetNavBarItemRect + 163 SHGetPowerOnTime + 153 SHGetPresetMessage + 282 SHGetScreenOrientation + 204 SHGetSimToolkitMenu + 2014 SHGetSoundFileList + 177 SHGetStyleBkColor + 178 SHGetStyleColor + 179 SHGetStyleFont + 217 SHGetSystemDefaultLCID + 144 SHGetTimeFormat + 312 SHGetUIMetrics + 219 SHGetUiInfo + 221 SHGradientDeInit + 222 SHGradientDraw + 220 SHGradientInit + 31 SHHandleActivate + 30 SHHandleSipChange + 76 SHHdrGrpSepLineDraw + 8 SHImListPopup + 149 SHInitPresetMessages + 181 SHInsertPresetMessage + 129 SHInvalidateScreen + 101 SHInvokeContextMenuCommand + 123 SHIsLocked + 295 SHIsPreOzoneUpdate + 94 SHIsPreRapierApp + 100 SHLoadContextMenuExtensions + 230 SHLoadFileContextMenuExtensions + 313 SHLoadFontFromResource + 91 SHLoadMenuPopup + 216 SHLoadSKFromReg + 121 SHLock + 138 SHMakeCall + 235 SHMakeValidFilename + 32 SHMessageBox + 80 SHNewProfileObj + 155 SHNotificationAdd + 173 SHNotificationGetData + 157 SHNotificationRemove + 156 SHNotificationUpdate + 208 SHNotifyAppsOnCallConnect + 210 SHNotifyAppsOnCarkit + 165 SHNotifyAppsOnDock + 195 SHNotifyAppsOnHeadset + 214 SHNotifyAppsOnIncomingCall + 211 SHNotifyAppsOnSpeakerPhone + 135 SHOnFullScreenAppActivate + 238 SHOnMissedCallCountChange + 2008 SHOnPluginDataChange + 227 SHOnVoiceMailCountChange + 162 SHPaintBubbleFrame + 294 SHPolyline + 152 SHPopulatePresetMessageMenu + 175 SHPreProcessLogFont + 229 SHQueryMenuExtensions + 297 SHRCMLDialogProc + 293 SHRectangle + 2022 SHRefreshStartMenu + 215 SHRegGetHLMDWValue + 176 SHRegSetValueEx + 346 SHReleaseLegacySupportWindow + 150 SHReleasePresetMessages + 202 SHReplaceString + 245 SHResizeDialogProc + 50 SHRunCpl + 82 SHRunFontManager + 151 SHRunPresetMessagesEdit + 239 SHRunSafeApplet + 174 SHSameWindowProcesses + 95 SHSavePWWarning + 118 SHScanBuffer + 119 SHScanFile + 97 SHSendBackToFocusWindow + 169 SHSetAsWatermark + 184 SHSetBack + 161 SHSetBubbleRegion + 298 SHSetDisplayRotation + 131 SHSetForegroundLastActivePopup + 231 SHSetInputContext + 134 SHSetKOBits + 154 SHSetPresetMessage + 170 SHSetSimToolkitMenu + 1003 SHSetSoftKey + 300 SHSetStretchMode + 59 SHSetWindowBits + 67 SHShowContextMenu + 1004 SHShowSoftKeys + 79 SHSignalDone + 314 SHSipMightBlockUI + 308 SHSkipDialogInitialFocus + 207 SHSoundManGetDisplayName + 205 SHSoundManGetDisplayNameList + 206 SHSoundManGetFileName + 93 SHStartAndBlock + 85 SHStartIfNeeded + 87 SHStartProfile + 284 SHStretchBitmap + 290 SHStretchBltBitmap + 291 SHStretchBltBitmapEx + 307 SHStretchIcon + 105 SHTextBox + 171 SHToolkitQueryShell + 57 SHTrackPopupMenu + 1000 SHTurnScreenOn + 240 SHUnEscapeAccelerators + 122 SHUnlock + 2003 SHVoiceTagDelete + 2002 SHVoiceTagPlayback + 2001 SHVoiceTagRecognize + 2000 SHVoiceTagTrain + 124 SHWriteLockState + 301 SetDialogAutoScrollBar + 12 SetRegisteredAppInfo + 296 SetWindowPosOnRotate + 15 Shell_Alloc + 17 Shell_AllocString + 18 Shell_CatStrAlloc + 16 Shell_Free + 14 Shell_HeapCreate + 19 Shell_LoadStringAlloc + 20 Shell_RegAllocString + 51 StrStrI + 47 SubClassThisWindow + 199 TZFindClose + 197 TZFindNext + 196 TZFindOpen + 198 TZGetData + 1005 UIHGetTextToStruct + 1007 UIHLimitTextControls + 1008 UIHSetHWNDToStruct + 1006 UIHSetTextFromStruct + 236 VerifyTrust +} + +{$ifdef read_interface} + + +//***************************************************************************** +// consts +//***************************************************************************** +const + UserDLLAyg = 'aygshell'; + + CEM_UPCASEALLWORDS = (WM_USER + 1); + CEM_ENABLEUPCASE = (WM_USER + 2); + + {Gesture notifications} + GN_CONTEXTMENU = 1000; + + IDC_COMMANDBANDS = 100; + {Shell Menubar support} + // These defines MUST be < 100. This is so apps can use these defines + // to get strings from the shell. + IDS_SHNEW = 1; + IDS_SHEDIT = 2; + IDS_SHTOOLS = 3; + IDS_SHVIEW = 4; + IDS_SHFILE = 5; + IDS_SHGO = 6; + IDS_SHFAVORITES = 7; + IDS_SHOPEN = 8; + + {Shared New menu support} + IDM_SHAREDNEW = 10; + IDM_SHAREDNEWDEFAULT = 11; + + NOMENU = $FFFF; + SHA_INPUTDIALOG = $0001; + SHACTI_FSIPUP = $0001; + SHACTI_FSIPONDEACTIVATE = $0002; + SHACTI_FSIPRESERVED = $FFFF xor SHACTI_FSIPUP xor SHACTI_FSIPUP; + + {Valid dwFlags} + SHCMBF_EMPTYBAR = $0001; + SHCMBF_HIDDEN = $0002; // create it hidden + SHCMBF_HIDESIPBUTTON = $0004; + SHCMBF_COLORBK = $0008; + SHCMBF_HMENU = $0010; // specify an hmenu for resource rather than toolbar info + + SHCMBM_SETSUBMENU = (WM_USER + 400); // wparam == id of button, lParam == hmenu, return is old hmenu + SHCMBM_GETSUBMENU = (WM_USER + 401); // lParam == ID + SHCMBM_GETMENU = (WM_USER + 402); // get the owning hmenu (as specified in the load resource) + SHCMBM_OVERRIDEKEY = (WM_USER + 403); + SHCMBM_SETBKCOLOR = (WM_USER + 406); // lParam == COLORREF + + + {Valid mask values} + SHIDIM_FLAGS = $0001; + {Valid flags} + SHIDIF_DONEBUTTON = $0001; + SHIDIF_SIZEDLG = $0002; + SHIDIF_SIZEDLGFULLSCREEN = $0004; + SHIDIF_SIPDOWN = $0008; + SHIDIF_FULLSCREENNOMENUBAR = $0010; + SHIDIF_EMPTYMENU = $0020; + SHIDIF_WANTSCROLLBAR = $0040; + + SHMBOF_NODEFAULT = $00000001; // do not do default handling of this key + SHMBOF_NOTIFY = $00000002; // send us the WM_* messages for this key + + {Gesture flags} + SHRG_RETURNCMD = $00000001; + SHRG_NOTIFYPARENT = $00000002; + SHRG_LONGDELAY = $00000008; + SHRG_NOANIMATION = $00000010; + + {Sip info} + SIP_STATUS_UNAVAILABLE = 0; + SIP_STATUS_AVAILABLE = 1; + + SIPF_OFF = $00000000; + SIPF_ON = $00000001; + SIPF_DOCKED = $00000002; + SIPF_LOCKED = $00000004; + + {Supported system parameters} + SPI_SETCOMPLETIONINFO = 223; + SPI_SETSIPINFO = 224; + SPI_GETSIPINFO = 225; + SPI_SETCURRENTIM = 226; + SPI_GETCURRENTIM = 227; + SPI_APPBUTTONCHANGE = 228; + SPI_RESERVED = 229; + SPI_SYNCSETTINGSCHANGE = 230; + + WC_SIPPREF = 'SIPPREF'; + + {SHFullScreen - valide states} + SHFS_SHOWTASKBAR = $0001; + SHFS_HIDETASKBAR = $0002; + SHFS_SHOWSIPBUTTON = $0004; + SHFS_HIDESIPBUTTON = $0008; + SHFS_SHOWSTARTICON = $0010; + SHFS_HIDESTARTICON = $0020; + + { DoneButton - Valid state} + SHDB_SHOW = $0001; + SHDB_HIDE = $0002; + SHDB_SHOWCANCEL = $0004; // added by Windows Mobile 5.0 + WS_NONAVDONEBUTTON = WS_MINIMIZEBOX; + +//***************************************************************************** +// types +//***************************************************************************** + +type + //Struct sent through WM_NOTIFY when SHRG_NOTIFYPARENT is used + NMRGINFO = record + hdr : NMHDR; + ptAction : POINT; + dwItemSpec : DWORD; + end; + PNMRGINFO=^NMRGINFO; + + SHACTIVATEINFO = record + cbSize : DWORD; + hwndLastFocus : HWND ; + bits : Longint ; + end; + PSHACTIVATEINFO=^SHACTIVATEINFO; + + SHINITDLGINFO = record + dwMask: DWORD; + hDlg: HWND; + dwFlags : DWORD ; + end; + PSHINITDLGINFO=^SHINITDLGINFO; + + SHMENUBARINFO = record + cbSize : DWORD; // IN - Indicates which members of struct are valid + hwndParent : HWND ; // IN + dwFlags : DWORD ; // IN - Some features we want + nToolBarId : UINT ; // IN - Which toolbar are we using + hInstRes : HINST; // IN - Instance that owns the resources + nBmpId : Integer; + cBmpImages : Integer; // IN - Count of bitmap images + hwndMB : HWND ; // OUT + clrBk : COLORREF ; // IN - background color of the menu bar (excluding sip) + end; + PSHMENUBARINFO=^SHMENUBARINFO; + + {SHRecognizeGesture} + SHRGI = record + cbSize : DWORD; + hwndClient : HWND ; + ptDown : POINT; + dwFlags : DWORD; + end; + SHRGINFO=SHRGI; + PSHRGINFO=^SHRGI; + + {Sip info} + SIPINFO = record + cbSize : DWORD; + fdwFlags : DWORD; + rcVisibleDesktop : RECT; + rcSipRect : RECT; + dwImDataSize : DWORD; + pvImData : pointer; + end; + TSIPINFO=SIPINFO; + PSIPINFO=^SIPINFO; + + SIPSTATE= (SIP_UP= 0,SIP_DOWN,SIP_FORCEDOWN,SIP_UNCHANGED,SIP_INPUTDIALOG); + +//***************************************************************************** +// functions +//***************************************************************************** + +function ExitWindowsEx(uFlags:UINT; dwReserved:DWORD):WINBOOL; external UserDLLAyg name 'ExitWindowsEx'; +function SHCloseApps( dwMemSought : DWORD ): WINBOOL; external UserDLLAyg name 'SHCloseApps'; +function SHCreateMenuBar(pmbi : PSHMENUBARINFO ): WINBOOL; external UserDLLAyg name 'SHCreateMenuBar'; +function SHDoneButton(hwndRequester: HWND ; dwState : DWORD ): WINBOOL; external UserDLLAyg name 'SHDoneButton'; +function SHFindMenuBar(hwnd:HWND) : HWND; external UserDLLAyg name 'SHFindMenuBar'; +function SHFullScreen(hwmdRequester: hWnd; dwState: DWord): WINBOOL; external UserDLLAyg name 'SHFullScreen'; {Pocket PC special controls} +function SHGetAutoRunPath( pAutoRunPath : LPTSTR ): WINBOOL; external UserDLLAyg name 'SHGetAutoRunPath'; + +function SHHandleWMActivate(hwnd:HWND; wParam:WPARAM; lParam:LPARAM; psai: PSHACTIVATEINFO; dwFlags:DWORD ): WINBOOL; external UserDLLAyg name 'SHHandleWMActivate'; +function SHHandleWMSettingChange(hwnd:HWND; wParam:WPARAM; lParam:LPARAM; psai: PSHACTIVATEINFO): WINBOOL; external UserDLLAyg name 'SHHandleWMSettingChange'; +function SHInitDialog(pshidi: PSHINITDLGINFO): WINBOOL; external UserDLLAyg name 'SHInitDialog'; +function SHInitExtraControls: WINBOOL; external UserDLLAyg name 'SHInitExtraControls'; +procedure SHInputDialog(hwnd : HWND; uMsg : UINT; wParam: WPARAM ); external UserDLLAyg name 'SHInputDialog'; +function SHGetAppKeyAssoc( ptszApp: LPCTSTR ): Byte; external UserDLLAyg name 'SHGetAppKeyAssoc'; +{not exported on PocketPC 4.21 SE , may be smartphone only ? oro06 09-02-06 +function SHLoadImageResource(hinst: HINST; uIdGif: UINT ): HBITMAP; external UserDLLAyg name 'SHLoadImageResource'; +function SHLoadImageFile(pszFileName: LPCTSTR ) : HBITMAP; external UserDLLAyg name 'SHLoadImageFile'; +procedure SHNavigateBack; external UserDLLAyg name 'SHNavigateBack'; +} +function SHSetAppKeyWndAssoc( bVk: BYTE ; hwnd : HWND ): WINBOOL; external UserDLLAyg name 'SHSetAppKeyWndAssoc'; +function SHSetNavBarText(hwndRequester : HWND; pszText : LPCTSTR): WINBOOL; external UserDLLAyg name 'SHSetNavBarText'; + +function SHSipInfo(uiAction: UINT; uiParam: UINT; pvParam: PVOID; fWinIni: UINT ): WINBOOL; external UserDLLAyg name 'SHSipInfo'; +function SHSipPreference(hwnd: HWND ; st : SIPSTATE ) : WINBOOL; external UserDLLAyg name 'SHSipPreference'; +function SHRecognizeGesture(var shrg : SHRGINFO): DWORD; external UserDLLAyg name 'SHRecognizeGesture'; + +{$endif read_interface} + +{$ifdef read_implementation} + +{$endif read_implementation} + + diff --git a/rtl/wince/wininc/base.inc b/rtl/wince/wininc/base.inc index c1a35abeda..1427b4d25b 100644 --- a/rtl/wince/wininc/base.inc +++ b/rtl/wince/wininc/base.inc @@ -1,988 +1,988 @@ -{ - This file is part of the Free Pascal run time library. - This unit contains base definition for the Win32 API - Copyright (c) 1999-2000 by Florian Klaempfl, - member of the Free Pascal development team. - - See the file COPYING.FPC, included in this distribution, - for details about the copyright. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - - **********************************************************************} - -{ - Base.h - - Base definitions - - Copyright (C) 1996, 1997 Free Software Foundation, Inc. - - Author: Scott Christley - - This file is part of the Windows32 API Library. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - If you are interested in a warranty or support for this source code, - contact Scott Christley for more information. - - - You should have received a copy of the GNU Library General Public - License along with this library; see the file COPYING.LIB. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - - Changes : - - 08/15/2005 update for wince4.2 port,ORO06 -} - -{$ifdef read_interface} - -{$PACKRECORDS C} - const - ANYSIZE_ARRAY = 1; //~winnt, moved from define to compile SID - type - - MAKEINTRESOURCE = pwidechar; - ATOM = word; //windef - TAtom = ATOM; - - WINBOOL = longbool; - BOOL = WINBOOL; //windef - - CALTYPE = cardinal; - CALID = cardinal; - - CCHAR = char; //winnt - - COLORREF = Cardinal; //windef - TCOLORREF = cardinal; - - SHORT = smallint; //winnt - WINT = longint; - LONG = longint; //winnt - DWORD = Cardinal; //windef - - PINTEGER = ^longint; - PBOOL = ^BOOL; //windef - - LONGLONG = int64; //winnt - PLONGLONG = ^LONGLONG; //winnt - ULONGLONG = qword; //+winnt - PULONGLONG = ^ULONGLONG; //+winnt - - DWORDLONG = qword; { was unsigned long } - PDWORDLONG = ^DWORDLONG; - - HANDLE = System.THandle; - HRESULT = System.HResult; //winnt LONG - PHRESULT= ^HRESULT; - - HACCEL = HANDLE; //windef - HBITMAP = HANDLE; //windef - HBRUSH = HANDLE; //windef - HCOLORSPACE = HANDLE; //windef - HCONV = HANDLE; - HCONVLIST = HANDLE; - HCURSOR = HANDLE; //windef - HDBC = HANDLE; - HDC = HANDLE; //windef - HDDEDATA = HANDLE; - HDESK = HANDLE; //windef - HDROP = HANDLE; - HDWP = HANDLE; - HENHMETAFILE = HANDLE; //windef - HENV = HANDLE; - HEVENT = HANDLE; //+windef - HFILE = HANDLE; //windef - HFONT = HANDLE; //windef - HGDIOBJ = HANDLE; //windef - HGLOBAL = HANDLE; //windef - HGLRC = HANDLE; //windef - HHOOK = HANDLE; //windef - HICON = HCURSOR; //~windef - LPHICON = ^HICON; //+tapi - HIMAGELIST = HANDLE; - HINST = HANDLE; { Not HINSTANCE, else it has problems with the var HInstance } - HKEY = HANDLE; //windef - HKL = HANDLE; //windef - HLOCAL = HANDLE; //windef - HMENU = HANDLE; //windef - HMETAFILE = HANDLE; //windef - HMODULE = HANDLE; //windef - HMONITOR = HANDLE; //+windef - HPALETTE = HANDLE; //windef - HPEN = HANDLE; //windef - HRASCONN = HANDLE; - HRGN = HANDLE; //windef - HRSRC = HANDLE; //windef - HSTMT = HANDLE; - HSTR = HANDLE; //windef - HSZ = HANDLE; - HTASK = HANDLE; //windef - HWINSTA = HANDLE; //windef - HWND = HANDLE; //windef - HWINEVENTHOOK = HANDLE; //+windef - - LANGID = word; //winnt - LCID = DWORD; //winnt - PLCID = ^LCID; //+winnt - LCTYPE = DWORD; - LPARAM = longint; //windef LONG_PTR - - LP = ^word; - LPBOOL = ^WINBOOL; //windef - LPBYTE = ^BYTE; //windef - LPCCH = PCHAR; //winnt - LPCH = PCHAR; //winnt - - LPCOLORREF = ^COLORREF; //windef - - LPCSTR = Pchar; //winnt -{$ifdef UNICODE} - LPCTSTR = Pwidechar; //winnt -{$else} - LPCTSTR = Pchar; //winnt -{$endif} - - LPCWCH = Pwidechar; //winnt - LPCWSTR = Pwidechar; //winnt - - LPDWORD = ^DWORD; //windef - - LPHANDLE = ^HANDLE; //windef - LPINT = ^longint; //windef - LPLONG = ^longint; //windef - - LPSTR = Pchar; //winnt -{$ifdef UNICODE} - LPTCH = Pwidechar; - LPTSTR = Pwidechar; -{$else} - LPTCH = Pchar; - LPTSTR = Pchar; -{$endif} - - LRESULT = longint; //windef LONG_PTR - - LPVOID = pointer; //windef - - LPCVOID = pointer; //windef - - LPWCH = Pwidechar; - LPWORD = ^word; //windef - LPWSTR = Pwidechar; //winnt - - // - // Locally Unique Identifier - // - //winnt : declaration moved and changed : was in struct as LUID = TlargeInteger - LUID = record - LowPart : DWORD; - HighPart : LONG ; - end; - TLUID = LUID; - PLUID = ^LUID; - - NWPSTR = Pwidechar; //winnt - - PWINBOOL = ^WINBOOL; - PBOOLEAN = ^BYTE; - - PBYTE = ^BYTE; //windef - - PCCH = PCHAR; //winnt - PCH = PCHAR; //winnt - - PCSTR = Pchar; - - PCWCH = Pwidechar; //winnt - PCWSTR = Pwidechar; //winnt - - PDWORD = ^DWORD; //windef - - PHANDLE = ^HANDLE; //windef - PHKEY = ^HKEY; //windef - - PINT = ^longint; - PLONG = ^longint; //windef - PSHORT = ^SHORT; //windef - LPSHORT = ^SHORT; //+windef - - PSTR = Pchar; - - PSZ = Pchar; //winnt -{$ifdef UNICODE} - PTBYTE = ^word; //winnt - PTCH = Pwidechar; - PTCHAR = Pwidechar; //winnt - PTSTR = Pwidechar; -{$else} - PTBYTE = ^byte; - PTCH = Pchar; - PTCHAR = Pchar; - PTSTR = Pchar; -{$endif} - - PUCHAR = ^byte; //windef - PWCH = Pwidechar; //winnt - PWCHAR = Pwidechar; //winnt - - PWORD = ^word; //windef - PUINT = ^Cardinal; //windef - PULONG = ^Cardinal; //windef - PUSHORT = ^word; //windef - - PVOID = pointer; - - RETCODE = SHORT; - - SC_HANDLE = HANDLE; - SC_LOCK = LPVOID; - LPSC_HANDLE = ^SC_HANDLE; - SPHANDLE = ^HANDLE; //+windef - - SERVICE_STATUS_HANDLE = DWORD; - SIZE_T = Cardinal; //+winnt -{$ifdef UNICODE} - TBYTE = word; - TCHAR = widechar; - BCHAR = word; -{$else} - TBYTE = byte; - TCHAR = char; - BCHAR = BYTE; -{$endif} - - UCHAR = byte; //windef -// WCHAR = WideChar; //winnt - - UINT = Cardinal; //windef - ULONG = Cardinal; //windef - USHORT = word; //windef - - PLPSTR = ^LPSTR; - PLPWStr= ^LPWStr; - - FLOAT = single; //+windef - PFLOAT = ^FLOAT; //+windef - WCHAR_T = USHORT; //+stdlib - WINT_T = WCHAR_T; //+stdlib - WCTYPE_T = WCHAR_T; //+stdlib - TIME_T=ULONG; //+stdlib - WPARAM = Longint; //windef UINT_PTR -{ - Enumerations -} - - ACL_INFORMATION_CLASS = (AclRevisionInformation := 1,AclSizeInformation - ); - - _ACL_INFORMATION_CLASS = ACL_INFORMATION_CLASS; - - MEDIA_TYPE = (Unknown,F5_1Pt2_512,F3_1Pt44_512,F3_2Pt88_512, - F3_20Pt8_512,F3_720_512,F5_360_512,F5_320_512, - F5_320_1024,F5_180_512,F5_160_512,RemovableMedia, - FixedMedia); - - _MEDIA_TYPE = MEDIA_TYPE; - - const - RASCS_DONE = $2000; - RASCS_PAUSED = $1000; - - type - - RASCONNSTATE = (RASCS_OpenPort := 0,RASCS_PortOpened, - RASCS_ConnectDevice,RASCS_DeviceConnected, - RASCS_AllDevicesConnected,RASCS_Authenticate, - RASCS_AuthNotify,RASCS_AuthRetry,RASCS_AuthCallback, - RASCS_AuthChangePassword,RASCS_AuthProject, - RASCS_AuthLinkSpeed,RASCS_AuthAck,RASCS_ReAuthenticate, - RASCS_Authenticated,RASCS_PrepareForCallback, - RASCS_WaitForModemReset,RASCS_WaitForCallback, - RASCS_Projected,RASCS_StartAuthentication, - RASCS_CallbackComplete,RASCS_LogonNetwork, - RASCS_Interactive := RASCS_PAUSED,RASCS_RetryAuthentication, - RASCS_CallbackSetByCaller,RASCS_PasswordExpired, - RASCS_Connected := RASCS_DONE,RASCS_Disconnected - ); - - _RASCONNSTATE = RASCONNSTATE; - - RASPROJECTION = (RASP_PppIp := $8021, RASP_PppIpx := $802B, RASP_PppNbf := $803F, - RASP_Amb := $10000); - - _RASPROJECTION = RASPROJECTION; - - PSECURITY_DESCRIPTO = PVOID; //+winnt - SECURITY_IMPERSONATION_LEVEL = (SecurityAnonymous,SecurityIdentification, - SecurityImpersonation,SecurityDelegation - ); - - _SECURITY_IMPERSONATION_LEVEL = SECURITY_IMPERSONATION_LEVEL; - - SID_IDENTIFIER_AUTHORITY_REC = array[0..5] of BYTE; //~ added for pre-defined SID declaration - SID_IDENTIFIER_AUTHORITY = record //~winnt, moved to declare pre-defined SID - Value : SID_IDENTIFIER_AUTHORITY_REC; - end; - LPSID_IDENTIFIER_AUTHORITY = ^SID_IDENTIFIER_AUTHORITY; - PSID_IDENTIFIER_AUTHORITY = ^SID_IDENTIFIER_AUTHORITY; - _SID_IDENTIFIER_AUTHORITY = SID_IDENTIFIER_AUTHORITY; - TSIDIDENTIFIERAUTHORITY = SID_IDENTIFIER_AUTHORITY; - PSIDIDENTIFIERAUTHORITY = ^SID_IDENTIFIER_AUTHORITY; - - - SID = record //~wint - Revision : Byte; - SubAuthorityCount : Byte; - IdentifierAuthority : SID_IDENTIFIER_AUTHORITY; - SubAuthority : Array [0..ANYSIZE_ARRAY-1] of DWORD; - end; - _SID = SID; - PSID = ^SID; - - SID_NAME_USE = ( //~winnt, added SidTypeComputer - SidTypeUser:= 1, - SidTypeGroup, - SidTypeDomain, - SidTypeAlias, - SidTypeWellKnownGroup, - SidTypeDeletedAccount, - SidTypeInvalid, - SidTypeUnknown, - SidTypeComputer); - - PSID_NAME_USE = ^SID_NAME_USE; //winnt - _SID_NAME_USE = SID_NAME_USE; - - TOKEN_INFORMATION_CLASS = (TokenUser := 1,TokenGroups,TokenPrivileges, - TokenOwner,TokenPrimaryGroup,TokenDefaultDacl, - TokenSource,TokenType,TokenImpersonationLevel, - TokenStatistics); - - _TOKEN_INFORMATION_CLASS = TOKEN_INFORMATION_CLASS; - TTokenInformationClass = TOKEN_INFORMATION_CLASS; - - TOKEN_TYPE = (TokenPrimary := 1,TokenImpersonation - ); - - tagTOKEN_TYPE = TOKEN_TYPE; - - { - Macros - } - - { was #define dname(params) def_expr } - { argument types are unknown } - function GetBValue(rgb : longint) : BYTE; - - { was #define dname(params) def_expr } - { argument types are unknown } - function GetGValue(rgb : longint) : BYTE; - - { was #define dname(params) def_expr } - { argument types are unknown } - function GetRValue(rgb : longint) : BYTE; - - { was #define dname(params) def_expr } - { argument types are unknown } - function RGB(r,g,b : longint) : DWORD; - - { Not convertable by H2PAS - #define HANDLE_WM_NOTIFY(hwnd, wParam, lParam, fn) \ - (fn)((hwnd), (int)(wParam), (NMHDR FAR )(lParam)) - } - - { was #define dname(params) def_expr } - { argument types are unknown } - function HIBYTE(w : longint) : BYTE; //windef - - { was #define dname(params) def_expr } - { argument types are unknown } - function HIWORD(l : longint) : WORD; //windef - - { was #define dname(params) def_expr } - { argument types are unknown } - function LOBYTE(w : longint) : BYTE; //windef - - { was #define dname(params) def_expr } - { argument types are unknown } - function LOWORD(l : longint) : WORD; //windef - - { was #define dname(params) def_expr } - { argument types are unknown } - function MAKELONG(a,b : longint) : LONG; //windef - - { was #define dname(params) def_expr } - { argument types are unknown } - function MAKEWORD(a,b : longint) : WORD; //windef - - { original Cygnus headers also had the following defined: } - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function SEXT_HIWORD(l : longint) : longint; - { return type might be wrong } - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function ZEXT_HIWORD(l : longint) : longint; - { return type might be wrong } - - { was #define dname(params) def_expr } - { argument types are unknown } - function SEXT_LOWORD(l : longint) : longint; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function INDEXTOOVERLAYMASK(i : longint) : longint; - { return type might be wrong } - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function INDEXTOSTATEIMAGEMASK(i : longint) : longint; - { return type might be wrong } - - { was #define dname(params) def_expr } - { argument types are unknown } - function MAKEINTATOM(i : longint) : LPTSTR; - - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function MAKELANGID(p,s : longint) : longint; //winnt - { return type might be wrong } - - { was #define dname(params) def_expr } - { argument types are unknown } - function PRIMARYLANGID(lgid : longint) : WORD; //winnt - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function SUBLANGID(lgid : longint) : longint; //winnt - { return type might be wrong } - - { was #define dname(params) def_expr } - { argument types are unknown } - function LANGIDFROMLCID(lcid : longint) : WORD; - - { was #define dname(params) def_expr } - { argument types are unknown } - function SORTIDFROMLCID(lcid : longint) : WORD; - - { was #define dname(params) def_expr } - { argument types are unknown } - function MAKELCID(lgid,srtid : longint) : DWORD; - - { was #define dname(params) def_expr } - { argument types are unknown } - function MAKELPARAM(l,h : longint) : LPARAM; - - { was #define dname(params) def_expr } - { argument types are unknown } - function MAKELRESULT(l,h : longint) : LRESULT; - - { Not convertable by H2PAS - #define MAKEPOINTS(l) ( ((POINTS FAR ) & (l))) - } - { was #define dname(params) def_expr } - { argument types are unknown } - function MAKEROP4(fore,back : longint) : DWORD; - - { was #define dname(params) def_expr } - { argument types are unknown } - function MAKEWPARAM(l,h : longint) : WPARAM; - -{$ifndef max} - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function max(a,b : longint) : longint; //windef - { return type might be wrong } - -{$endif} -{$ifndef min} - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function min(a,b : longint) : longint; //windef - { return type might be wrong } - -{$endif} - { was #define dname(params) def_expr } - { argument types are unknown } - function PALETTEINDEX(i : longint) : COLORREF; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function PALETTERGB(r,g,b : longint) : longint; - { return type might be wrong } - - (* Not convertable by H2PAS - #define POINTSTOPOINT(pt, pts) {(pt).x = (SHORT) LOWORD(pts); \ - (pt).y = (SHORT) HIWORD(pts);} - #define POINTTOPOINTS(pt) \ - (MAKELONG((short) ((pt).x), (short) ((pt).y))) - *) - { already declared before - #define INDEXTOOVERLAYMASK(i) ((i) << 8) - #define INDEXTOSTATEIMAGEMASK(i) ((i) << 12) - } - { Not convertable by H2PAS - #ifdef UNICODE - #define TEXT(quote) L##quote - #else - #define TEXT(quote) quote - #endif - } - - { - Definitions for callback procedures - } - - type - - BFFCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPARAM; _para4:LPARAM):longint; - - LPCCHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT; - - LPCFHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT; - - PTHREAD_START_ROUTINE = Pointer; - - LPTHREAD_START_ROUTINE = PTHREAD_START_ROUTINE; - - EDITSTREAMCALLBACK = function (_para1:DWORD; _para2:LPBYTE; _para3:LONG; _para4:LONG):DWORD; - - LPFRHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT; - - LPOFNHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT; - - LPPRINTHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT; - - LPSETUPHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT; - - DLGPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):LRESULT; - - PFNPROPSHEETCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPARAM):longint; - - LPSERVICE_MAIN_FUNCTION = procedure (_para1:DWORD; _para2:LPTSTR); - - PFNTVCOMPARE = function (_para1:LPARAM; _para2:LPARAM; _para3:LPARAM):longint; - - WNDPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):LRESULT; - - - FARPROC = pointer; //windef - NEARPROC= FARPROC; //+windef - PROC = FARPROC; //~windef - - ENUMRESTYPEPROC = function (_para1:HANDLE; _para2:LPTSTR; _para3:LONG):WINBOOL; - - ENUMRESNAMEPROC = function (_para1:HANDLE; _para2:LPCTSTR; _para3:LPTSTR; _para4:LONG):WINBOOL; - - ENUMRESLANGPROC = function (_para1:HANDLE; _para2:LPCTSTR; _para3:LPCTSTR; _para4:WORD; _para5:LONG):WINBOOL; - - DESKTOPENUMPROC = FARPROC; - - ENUMWINDOWSPROC = function (_para1:HWND; _para2:LPARAM):WINBOOL; - - ENUMWINDOWSTATIONPROC = function (_para1:LPTSTR; _para2:LPARAM):WINBOOL; - - SENDASYNCPROC = procedure (_para1:HWND; _para2:UINT; _para3:DWORD; _para4:LRESULT); - - TIMERPROC = procedure (_para1:HWND; _para2:UINT; _para3:UINT; _para4:DWORD); - - GRAYSTRINGPROC = FARPROC; - - DRAWSTATEPROC = function (_para1:HDC; _para2:LPARAM; _para3:WPARAM; _para4:longint; _para5:longint):WINBOOL; - - PROPENUMPROCEX = function (_para1:HWND; _para2:LPCTSTR; _para3:HANDLE; _para4:DWORD):WINBOOL; - - PROPENUMPROC = function (_para1:HWND; _para2:LPCTSTR; _para3:HANDLE):WINBOOL; - - HOOKPROC = function (_para1:longint; _para2:WPARAM; _para3:LPARAM):LRESULT; - - ENUMOBJECTSPROC = procedure (_para1:LPVOID; _para2:LPARAM); - - LINEDDAPROC = procedure (_para1:longint; _para2:longint; _para3:LPARAM); - - TABORTPROC = function (_para1:HDC; _para2:longint):WINBOOL; - - LPPAGEPAINTHOOK = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT; - - LPPAGESETUPHOOK = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT; - - ICMENUMPROC = function (_para1:LPTSTR; _para2:LPARAM):longint; - - EDITWORDBREAKPROCEX = function (_para1:pchar; _para2:LONG; _para3:BYTE; _para4:WINT):LONG; - - PFNLVCOMPARE = function (_para1:LPARAM; _para2:LPARAM; _para3:LPARAM):longint; - - LOCALE_ENUMPROC = function (_para1:LPTSTR):WINBOOL; - - CODEPAGE_ENUMPROC = function (_para1:LPTSTR):WINBOOL; - CODEPAGE_ENUMPROCW = function (_para1:LPWSTR):WINBOOL; //+winnls - DATEFMT_ENUMPROC = function (_para1:LPTSTR):WINBOOL; - - TIMEFMT_ENUMPROC = function (_para1:LPTSTR):WINBOOL; - - CALINFO_ENUMPROC = function (_para1:LPTSTR):WINBOOL; - - PHANDLER_ROUTINE = function (_para1:DWORD):WINBOOL; - - LPHANDLER_FUNCTION = function (_para1:DWORD):WINBOOL; - - PFNGETPROFILEPATH = function (_para1:LPCTSTR; _para2:LPSTR; _para3:UINT):UINT; - - PFNRECONCILEPROFILE = function (_para1:LPCTSTR; _para2:LPCTSTR; _para3:DWORD):UINT; - - PFNPROCESSPOLICIES = function (_para1:HWND; _para2:LPCTSTR; _para3:LPCTSTR; _para4:LPCTSTR; _para5:DWORD):WINBOOL; - const - SE_CREATE_TOKEN_NAME = 'SeCreateTokenPrivilege'; - SE_ASSIGNPRIMARYTOKEN_NAME = 'SeAssignPrimaryTokenPrivilege'; - SE_LOCK_MEMORY_NAME = 'SeLockMemoryPrivilege'; - SE_INCREASE_QUOTA_NAME = 'SeIncreaseQuotaPrivilege'; - SE_UNSOLICITED_INPUT_NAME = 'SeUnsolicitedInputPrivilege'; - SE_MACHINE_ACCOUNT_NAME = 'SeMachineAccountPrivilege'; - SE_TCB_NAME = 'SeTcbPrivilege'; - SE_SECURITY_NAME = 'SeSecurityPrivilege'; - SE_TAKE_OWNERSHIP_NAME = 'SeTakeOwnershipPrivilege'; - SE_LOAD_DRIVER_NAME = 'SeLoadDriverPrivilege'; - SE_SYSTEM_PROFILE_NAME = 'SeSystemProfilePrivilege'; - SE_SYSTEMTIME_NAME = 'SeSystemtimePrivilege'; - SE_PROF_SINGLE_PROCESS_NAME = 'SeProfileSingleProcessPrivilege'; - SE_INC_BASE_PRIORITY_NAME = 'SeIncreaseBasePriorityPrivilege'; - SE_CREATE_PAGEFILE_NAME = 'SeCreatePagefilePrivilege'; - SE_CREATE_PERMANENT_NAME = 'SeCreatePermanentPrivilege'; - SE_BACKUP_NAME = 'SeBackupPrivilege'; - SE_RESTORE_NAME = 'SeRestorePrivilege'; - SE_SHUTDOWN_NAME = 'SeShutdownPrivilege'; - SE_DEBUG_NAME = 'SeDebugPrivilege'; - SE_AUDIT_NAME = 'SeAuditPrivilege'; - SE_SYSTEM_ENVIRONMENT_NAME = 'SeSystemEnvironmentPrivilege'; - SE_CHANGE_NOTIFY_NAME = 'SeChangeNotifyPrivilege'; - SE_REMOTE_SHUTDOWN_NAME = 'SeRemoteShutdownPrivilege'; - - //SERVICES_ACTIVE_DATABASEW L"ServicesActive" - //#define SERVICES_FAILED_DATABASEW L"ServicesFailed" - SERVICES_ACTIVE_DATABASEA = 'ServicesActive'; - SERVICES_FAILED_DATABASEA = 'ServicesFailed'; - { Not convertable by H2PAS - #define SC_GROUP_IDENTIFIERW L'+' - } - SC_GROUP_IDENTIFIERA = '+'; -{$ifdef UNICODE} - //temporary removed to compile in unicode, ORO06 08/2005 - //SERVICES_ACTIVE_DATABASE = SERVICES_ACTIVE_DATABASEW; - //SERVICES_FAILED_DATABASE = SERVICES_FAILED_DATABASEW; - //SC_GROUP_IDENTIFIER = SC_GROUP_IDENTIFIERW; - SERVICES_ACTIVE_DATABASE = SERVICES_ACTIVE_DATABASEA; - SERVICES_FAILED_DATABASE = SERVICES_FAILED_DATABASEA; - SC_GROUP_IDENTIFIER = SC_GROUP_IDENTIFIERA; -{$else} - SERVICES_ACTIVE_DATABASE = SERVICES_ACTIVE_DATABASEA; - SERVICES_FAILED_DATABASE = SERVICES_FAILED_DATABASEA; - SC_GROUP_IDENTIFIER = SC_GROUP_IDENTIFIERA; -{$endif} - -type - - { PFNCALLBACK = CALLB; } - PFNCALLBACK = function(_para1, _para2: UINT;_para3: HCONV;_para4, _para5: HSZ; _para6: HDDEDATA;_para7 ,_para8 :DWORD): HDDEData; - { CALLB = procedure ;CDECL; } - CALLB = PFNCALLBACK; - - - SECURITY_CONTEXT_TRACKING_MODE = WINBOOL; - { End of stuff from ddeml.h in old Cygnus headers } - { ----------------------------------------------- } - - WNDENUMPROC = FARPROC; - - ENHMFENUMPROC = FARPROC; - - CCSTYLE = DWORD; - - PCCSTYLE = ^CCSTYLE; - - LPCCSTYLE = ^CCSTYLE; - - CCSTYLEFLAGA = DWORD; - - PCCSTYLEFLAGA = ^CCSTYLEFLAGA; - - LPCCSTYLEFLAGA = ^CCSTYLEFLAGA; - -{$endif read_interface} - - -{$ifdef read_implementation} - - { was #define dname(params) def_expr } - { argument types are unknown } - function GetBValue(rgb : longint) : BYTE; - begin - GetBValue:=BYTE(rgb shr 16); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - function GetGValue(rgb : longint) : BYTE; - begin - GetGValue:=BYTE((WORD(rgb)) shr 8); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - function GetRValue(rgb : longint) : BYTE; - begin - GetRValue:=BYTE(rgb); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - function RGB(r,g,b : longint) : DWORD; - begin - RGB:=DWORD(((DWORD(BYTE(r))) or ((DWORD(WORD(g))) shl 8)) or ((DWORD(BYTE(b))) shl 16)); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - function HIBYTE(w : longint) : BYTE; - begin - HIBYTE:=BYTE(((WORD(w)) shr 8) and $FF); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - function HIWORD(l : longint) : WORD; - begin - HIWORD:=WORD(((DWORD(l)) shr 16) and $FFFF); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - function LOBYTE(w : longint) : BYTE; - begin - LOBYTE:=BYTE(w); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - function LOWORD(l : longint) : WORD; - begin - LOWORD:=WORD(l); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - function MAKELONG(a,b : longint) : LONG; - begin - MAKELONG:=LONG((WORD(a)) or ((DWORD(WORD(b))) shl 16)); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - function MAKEWORD(a,b : longint) : WORD; - begin - MAKEWORD:=WORD((BYTE(a)) or ((WORD(BYTE(b))) shl 8)); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function SEXT_HIWORD(l : longint) : longint; - { return type might be wrong } - begin - SEXT_HIWORD:=(longint(l)) shr 16; - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function ZEXT_HIWORD(l : longint) : longint; - { return type might be wrong } - begin - ZEXT_HIWORD:=(Cardinal(l)) shr 16; - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - function SEXT_LOWORD(l : longint) : longint; - begin - SEXT_LOWORD:=longint(SHORT(l)); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function INDEXTOOVERLAYMASK(i : longint) : longint; - { return type might be wrong } - begin - INDEXTOOVERLAYMASK:=i shl 8; - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function INDEXTOSTATEIMAGEMASK(i : longint) : longint; - { return type might be wrong } - begin - INDEXTOSTATEIMAGEMASK:=i shl 12; - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - function MAKEINTATOM(i : longint) : LPTSTR; - begin - MAKEINTATOM:=LPTSTR(DWORD(WORD(i))); - end; - - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function MAKELANGID(p,s : longint) : longint; - { return type might be wrong } - begin - MAKELANGID:=((WORD(s)) shl 10) or (WORD(p)); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - function PRIMARYLANGID(lgid : longint) : WORD; - begin - { PRIMARYLANGID:=WORD(lgid(@($3ff))); - h2pas error here corrected by hand PM } - PRIMARYLANGID:=WORD(lgid) and ($3ff); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function SUBLANGID(lgid : longint) : longint; - { return type might be wrong } - begin - SUBLANGID:=(WORD(lgid)) shr 10; - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - function LANGIDFROMLCID(lcid : longint) : WORD; - begin - LANGIDFROMLCID:=WORD(lcid); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - function SORTIDFROMLCID(lcid : longint) : WORD; - begin - SORTIDFROMLCID:=WORD(((DWORD(lcid)) and $000FFFFF) shr 16); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - function MAKELCID(lgid,srtid : longint) : DWORD; - begin - MAKELCID:=DWORD(((DWORD(WORD(srtid))) shl 16) or (DWORD(WORD(lgid)))); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - function MAKELPARAM(l,h : longint) : LPARAM; - begin - MAKELPARAM:=LPARAM(MAKELONG(l,h)); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - function MAKELRESULT(l,h : longint) : LRESULT; - begin - MAKELRESULT:=LRESULT(MAKELONG(l,h)); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - function MAKEROP4(fore,back : longint) : DWORD; - begin - MAKEROP4:=DWORD((DWORD(back shl 8) and $FF000000) or DWORD(fore)); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - function MAKEWPARAM(l,h : longint) : WPARAM; - begin - MAKEWPARAM:=WPARAM(MAKELONG(l,h)); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function max(a,b : longint) : longint; - { return type might be wrong } - var - if_local1 : longint; - (* result types are not known *) - begin - if a > b then - if_local1:=a - else - if_local1:=b; - max:=if_local1; - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function min(a,b : longint) : longint; - { return type might be wrong } - var - if_local1 : longint; - (* result types are not known *) - begin - if a < b then - if_local1:=a - else - if_local1:=b; - min:=if_local1; - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - function PALETTEINDEX(i : longint) : COLORREF; - begin - PALETTEINDEX:=COLORREF($01000000 or (DWORD(WORD(i)))); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function PALETTERGB(r,g,b : longint) : longint; - { return type might be wrong } - begin - PALETTERGB:=$02000000 or (RGB(r,g,b)); - end; - -{$endif read_implementation} - - +{ + This file is part of the Free Pascal run time library. + This unit contains base definition for the Win32 API + Copyright (c) 1999-2000 by Florian Klaempfl, + member of the Free Pascal development team. + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} + +{ + Base.h + + Base definitions + + Copyright (C) 1996, 1997 Free Software Foundation, Inc. + + Author: Scott Christley + + This file is part of the Windows32 API Library. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + If you are interested in a warranty or support for this source code, + contact Scott Christley for more information. + + + You should have received a copy of the GNU Library General Public + License along with this library; see the file COPYING.LIB. + If not, write to the Free Software Foundation, + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + Changes : + + 08/15/2005 update for wince4.2 port,ORO06 +} + +{$ifdef read_interface} + +{$PACKRECORDS C} + const + ANYSIZE_ARRAY = 1; //~winnt, moved from define to compile SID + type + + MAKEINTRESOURCE = pwidechar; + ATOM = word; //windef + TAtom = ATOM; + + WINBOOL = longbool; + BOOL = WINBOOL; //windef + + CALTYPE = cardinal; + CALID = cardinal; + + CCHAR = char; //winnt + + COLORREF = Cardinal; //windef + TCOLORREF = cardinal; + + SHORT = smallint; //winnt + WINT = longint; + LONG = longint; //winnt + DWORD = Cardinal; //windef + + PINTEGER = ^longint; + PBOOL = ^BOOL; //windef + + LONGLONG = int64; //winnt + PLONGLONG = ^LONGLONG; //winnt + ULONGLONG = qword; //+winnt + PULONGLONG = ^ULONGLONG; //+winnt + + DWORDLONG = qword; { was unsigned long } + PDWORDLONG = ^DWORDLONG; + + HANDLE = System.THandle; + HRESULT = System.HResult; //winnt LONG + PHRESULT= ^HRESULT; + + HACCEL = HANDLE; //windef + HBITMAP = HANDLE; //windef + HBRUSH = HANDLE; //windef + HCOLORSPACE = HANDLE; //windef + HCONV = HANDLE; + HCONVLIST = HANDLE; + HCURSOR = HANDLE; //windef + HDBC = HANDLE; + HDC = HANDLE; //windef + HDDEDATA = HANDLE; + HDESK = HANDLE; //windef + HDROP = HANDLE; + HDWP = HANDLE; + HENHMETAFILE = HANDLE; //windef + HENV = HANDLE; + HEVENT = HANDLE; //+windef + HFILE = HANDLE; //windef + HFONT = HANDLE; //windef + HGDIOBJ = HANDLE; //windef + HGLOBAL = HANDLE; //windef + HGLRC = HANDLE; //windef + HHOOK = HANDLE; //windef + HICON = HCURSOR; //~windef + LPHICON = ^HICON; //+tapi + HIMAGELIST = HANDLE; + HINST = HANDLE; { Not HINSTANCE, else it has problems with the var HInstance } + HKEY = HANDLE; //windef + HKL = HANDLE; //windef + HLOCAL = HANDLE; //windef + HMENU = HANDLE; //windef + HMETAFILE = HANDLE; //windef + HMODULE = HANDLE; //windef + HMONITOR = HANDLE; //+windef + HPALETTE = HANDLE; //windef + HPEN = HANDLE; //windef + HRASCONN = HANDLE; + HRGN = HANDLE; //windef + HRSRC = HANDLE; //windef + HSTMT = HANDLE; + HSTR = HANDLE; //windef + HSZ = HANDLE; + HTASK = HANDLE; //windef + HWINSTA = HANDLE; //windef + HWND = HANDLE; //windef + HWINEVENTHOOK = HANDLE; //+windef + + LANGID = word; //winnt + LCID = DWORD; //winnt + PLCID = ^LCID; //+winnt + LCTYPE = DWORD; + LPARAM = longint; //windef LONG_PTR + + LP = ^word; + LPBOOL = ^WINBOOL; //windef + LPBYTE = ^BYTE; //windef + LPCCH = PCHAR; //winnt + LPCH = PCHAR; //winnt + + LPCOLORREF = ^COLORREF; //windef + + LPCSTR = Pchar; //winnt +{$ifdef UNICODE} + LPCTSTR = Pwidechar; //winnt +{$else} + LPCTSTR = Pchar; //winnt +{$endif} + + LPCWCH = Pwidechar; //winnt + LPCWSTR = Pwidechar; //winnt + + LPDWORD = ^DWORD; //windef + + LPHANDLE = ^HANDLE; //windef + LPINT = ^longint; //windef + LPLONG = ^longint; //windef + + LPSTR = Pchar; //winnt +{$ifdef UNICODE} + LPTCH = Pwidechar; + LPTSTR = Pwidechar; +{$else} + LPTCH = Pchar; + LPTSTR = Pchar; +{$endif} + + LRESULT = longint; //windef LONG_PTR + + LPVOID = pointer; //windef + + LPCVOID = pointer; //windef + + LPWCH = Pwidechar; + LPWORD = ^word; //windef + LPWSTR = Pwidechar; //winnt + + // + // Locally Unique Identifier + // + //winnt : declaration moved and changed : was in struct as LUID = TlargeInteger + LUID = record + LowPart : DWORD; + HighPart : LONG ; + end; + TLUID = LUID; + PLUID = ^LUID; + + NWPSTR = Pwidechar; //winnt + + PWINBOOL = ^WINBOOL; + PBOOLEAN = ^BYTE; + + PBYTE = ^BYTE; //windef + + PCCH = PCHAR; //winnt + PCH = PCHAR; //winnt + + PCSTR = Pchar; + + PCWCH = Pwidechar; //winnt + PCWSTR = Pwidechar; //winnt + + PDWORD = ^DWORD; //windef + + PHANDLE = ^HANDLE; //windef + PHKEY = ^HKEY; //windef + + PINT = ^longint; + PLONG = ^longint; //windef + PSHORT = ^SHORT; //windef + LPSHORT = ^SHORT; //+windef + + PSTR = Pchar; + + PSZ = Pchar; //winnt +{$ifdef UNICODE} + PTBYTE = ^word; //winnt + PTCH = Pwidechar; + PTCHAR = Pwidechar; //winnt + PTSTR = Pwidechar; +{$else} + PTBYTE = ^byte; + PTCH = Pchar; + PTCHAR = Pchar; + PTSTR = Pchar; +{$endif} + + PUCHAR = ^byte; //windef + PWCH = Pwidechar; //winnt + PWCHAR = Pwidechar; //winnt + + PWORD = ^word; //windef + PUINT = ^Cardinal; //windef + PULONG = ^Cardinal; //windef + PUSHORT = ^word; //windef + + PVOID = pointer; + + RETCODE = SHORT; + + SC_HANDLE = HANDLE; + SC_LOCK = LPVOID; + LPSC_HANDLE = ^SC_HANDLE; + SPHANDLE = ^HANDLE; //+windef + + SERVICE_STATUS_HANDLE = DWORD; + SIZE_T = Cardinal; //+winnt +{$ifdef UNICODE} + TBYTE = word; + TCHAR = widechar; + BCHAR = word; +{$else} + TBYTE = byte; + TCHAR = char; + BCHAR = BYTE; +{$endif} + + UCHAR = byte; //windef +// WCHAR = WideChar; //winnt + + UINT = Cardinal; //windef + ULONG = Cardinal; //windef + USHORT = word; //windef + + PLPSTR = ^LPSTR; + PLPWStr= ^LPWStr; + + FLOAT = single; //+windef + PFLOAT = ^FLOAT; //+windef + WCHAR_T = USHORT; //+stdlib + WINT_T = WCHAR_T; //+stdlib + WCTYPE_T = WCHAR_T; //+stdlib + TIME_T=ULONG; //+stdlib + WPARAM = Longint; //windef UINT_PTR +{ + Enumerations +} + + ACL_INFORMATION_CLASS = (AclRevisionInformation := 1,AclSizeInformation + ); + + _ACL_INFORMATION_CLASS = ACL_INFORMATION_CLASS; + + MEDIA_TYPE = (Unknown,F5_1Pt2_512,F3_1Pt44_512,F3_2Pt88_512, + F3_20Pt8_512,F3_720_512,F5_360_512,F5_320_512, + F5_320_1024,F5_180_512,F5_160_512,RemovableMedia, + FixedMedia); + + _MEDIA_TYPE = MEDIA_TYPE; + + const + RASCS_DONE = $2000; + RASCS_PAUSED = $1000; + + type + + RASCONNSTATE = (RASCS_OpenPort := 0,RASCS_PortOpened, + RASCS_ConnectDevice,RASCS_DeviceConnected, + RASCS_AllDevicesConnected,RASCS_Authenticate, + RASCS_AuthNotify,RASCS_AuthRetry,RASCS_AuthCallback, + RASCS_AuthChangePassword,RASCS_AuthProject, + RASCS_AuthLinkSpeed,RASCS_AuthAck,RASCS_ReAuthenticate, + RASCS_Authenticated,RASCS_PrepareForCallback, + RASCS_WaitForModemReset,RASCS_WaitForCallback, + RASCS_Projected,RASCS_StartAuthentication, + RASCS_CallbackComplete,RASCS_LogonNetwork, + RASCS_Interactive := RASCS_PAUSED,RASCS_RetryAuthentication, + RASCS_CallbackSetByCaller,RASCS_PasswordExpired, + RASCS_Connected := RASCS_DONE,RASCS_Disconnected + ); + + _RASCONNSTATE = RASCONNSTATE; + + RASPROJECTION = (RASP_PppIp := $8021, RASP_PppIpx := $802B, RASP_PppNbf := $803F, + RASP_Amb := $10000); + + _RASPROJECTION = RASPROJECTION; + + PSECURITY_DESCRIPTO = PVOID; //+winnt + SECURITY_IMPERSONATION_LEVEL = (SecurityAnonymous,SecurityIdentification, + SecurityImpersonation,SecurityDelegation + ); + + _SECURITY_IMPERSONATION_LEVEL = SECURITY_IMPERSONATION_LEVEL; + + SID_IDENTIFIER_AUTHORITY_REC = array[0..5] of BYTE; //~ added for pre-defined SID declaration + SID_IDENTIFIER_AUTHORITY = record //~winnt, moved to declare pre-defined SID + Value : SID_IDENTIFIER_AUTHORITY_REC; + end; + LPSID_IDENTIFIER_AUTHORITY = ^SID_IDENTIFIER_AUTHORITY; + PSID_IDENTIFIER_AUTHORITY = ^SID_IDENTIFIER_AUTHORITY; + _SID_IDENTIFIER_AUTHORITY = SID_IDENTIFIER_AUTHORITY; + TSIDIDENTIFIERAUTHORITY = SID_IDENTIFIER_AUTHORITY; + PSIDIDENTIFIERAUTHORITY = ^SID_IDENTIFIER_AUTHORITY; + + + SID = record //~wint + Revision : Byte; + SubAuthorityCount : Byte; + IdentifierAuthority : SID_IDENTIFIER_AUTHORITY; + SubAuthority : Array [0..ANYSIZE_ARRAY-1] of DWORD; + end; + _SID = SID; + PSID = ^SID; + + SID_NAME_USE = ( //~winnt, added SidTypeComputer + SidTypeUser:= 1, + SidTypeGroup, + SidTypeDomain, + SidTypeAlias, + SidTypeWellKnownGroup, + SidTypeDeletedAccount, + SidTypeInvalid, + SidTypeUnknown, + SidTypeComputer); + + PSID_NAME_USE = ^SID_NAME_USE; //winnt + _SID_NAME_USE = SID_NAME_USE; + + TOKEN_INFORMATION_CLASS = (TokenUser := 1,TokenGroups,TokenPrivileges, + TokenOwner,TokenPrimaryGroup,TokenDefaultDacl, + TokenSource,TokenType,TokenImpersonationLevel, + TokenStatistics); + + _TOKEN_INFORMATION_CLASS = TOKEN_INFORMATION_CLASS; + TTokenInformationClass = TOKEN_INFORMATION_CLASS; + + TOKEN_TYPE = (TokenPrimary := 1,TokenImpersonation + ); + + tagTOKEN_TYPE = TOKEN_TYPE; + + { + Macros + } + + { was #define dname(params) def_expr } + { argument types are unknown } + function GetBValue(rgb : longint) : BYTE; + + { was #define dname(params) def_expr } + { argument types are unknown } + function GetGValue(rgb : longint) : BYTE; + + { was #define dname(params) def_expr } + { argument types are unknown } + function GetRValue(rgb : longint) : BYTE; + + { was #define dname(params) def_expr } + { argument types are unknown } + function RGB(r,g,b : longint) : DWORD; + + { Not convertable by H2PAS + #define HANDLE_WM_NOTIFY(hwnd, wParam, lParam, fn) \ + (fn)((hwnd), (int)(wParam), (NMHDR FAR )(lParam)) + } + + { was #define dname(params) def_expr } + { argument types are unknown } + function HIBYTE(w : longint) : BYTE; //windef + + { was #define dname(params) def_expr } + { argument types are unknown } + function HIWORD(l : longint) : WORD; //windef + + { was #define dname(params) def_expr } + { argument types are unknown } + function LOBYTE(w : longint) : BYTE; //windef + + { was #define dname(params) def_expr } + { argument types are unknown } + function LOWORD(l : longint) : WORD; //windef + + { was #define dname(params) def_expr } + { argument types are unknown } + function MAKELONG(a,b : longint) : LONG; //windef + + { was #define dname(params) def_expr } + { argument types are unknown } + function MAKEWORD(a,b : longint) : WORD; //windef + + { original Cygnus headers also had the following defined: } + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function SEXT_HIWORD(l : longint) : longint; + { return type might be wrong } + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function ZEXT_HIWORD(l : longint) : longint; + { return type might be wrong } + + { was #define dname(params) def_expr } + { argument types are unknown } + function SEXT_LOWORD(l : longint) : longint; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function INDEXTOOVERLAYMASK(i : longint) : longint; + { return type might be wrong } + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function INDEXTOSTATEIMAGEMASK(i : longint) : longint; + { return type might be wrong } + + { was #define dname(params) def_expr } + { argument types are unknown } + function MAKEINTATOM(i : longint) : LPTSTR; + + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function MAKELANGID(p,s : longint) : longint; //winnt + { return type might be wrong } + + { was #define dname(params) def_expr } + { argument types are unknown } + function PRIMARYLANGID(lgid : longint) : WORD; //winnt + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function SUBLANGID(lgid : longint) : longint; //winnt + { return type might be wrong } + + { was #define dname(params) def_expr } + { argument types are unknown } + function LANGIDFROMLCID(lcid : longint) : WORD; + + { was #define dname(params) def_expr } + { argument types are unknown } + function SORTIDFROMLCID(lcid : longint) : WORD; + + { was #define dname(params) def_expr } + { argument types are unknown } + function MAKELCID(lgid,srtid : longint) : DWORD; + + { was #define dname(params) def_expr } + { argument types are unknown } + function MAKELPARAM(l,h : longint) : LPARAM; + + { was #define dname(params) def_expr } + { argument types are unknown } + function MAKELRESULT(l,h : longint) : LRESULT; + + { Not convertable by H2PAS + #define MAKEPOINTS(l) ( ((POINTS FAR ) & (l))) + } + { was #define dname(params) def_expr } + { argument types are unknown } + function MAKEROP4(fore,back : longint) : DWORD; + + { was #define dname(params) def_expr } + { argument types are unknown } + function MAKEWPARAM(l,h : longint) : WPARAM; + +{$ifndef max} + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function max(a,b : longint) : longint; //windef + { return type might be wrong } + +{$endif} +{$ifndef min} + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function min(a,b : longint) : longint; //windef + { return type might be wrong } + +{$endif} + { was #define dname(params) def_expr } + { argument types are unknown } + function PALETTEINDEX(i : longint) : COLORREF; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function PALETTERGB(r,g,b : longint) : longint; + { return type might be wrong } + + (* Not convertable by H2PAS + #define POINTSTOPOINT(pt, pts) {(pt).x = (SHORT) LOWORD(pts); \ + (pt).y = (SHORT) HIWORD(pts);} + #define POINTTOPOINTS(pt) \ + (MAKELONG((short) ((pt).x), (short) ((pt).y))) + *) + { already declared before + #define INDEXTOOVERLAYMASK(i) ((i) << 8) + #define INDEXTOSTATEIMAGEMASK(i) ((i) << 12) + } + { Not convertable by H2PAS + #ifdef UNICODE + #define TEXT(quote) L##quote + #else + #define TEXT(quote) quote + #endif + } + + { + Definitions for callback procedures + } + + type + + BFFCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPARAM; _para4:LPARAM):longint; + + LPCCHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT; + + LPCFHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT; + + PTHREAD_START_ROUTINE = Pointer; + + LPTHREAD_START_ROUTINE = PTHREAD_START_ROUTINE; + + EDITSTREAMCALLBACK = function (_para1:DWORD; _para2:LPBYTE; _para3:LONG; _para4:LONG):DWORD; + + LPFRHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT; + + LPOFNHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT; + + LPPRINTHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT; + + LPSETUPHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT; + + DLGPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):LRESULT; + + PFNPROPSHEETCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPARAM):longint; + + LPSERVICE_MAIN_FUNCTION = procedure (_para1:DWORD; _para2:LPTSTR); + + PFNTVCOMPARE = function (_para1:LPARAM; _para2:LPARAM; _para3:LPARAM):longint; + + WNDPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):LRESULT; + + + FARPROC = pointer; //windef + NEARPROC= FARPROC; //+windef + PROC = FARPROC; //~windef + + ENUMRESTYPEPROC = function (_para1:HANDLE; _para2:LPTSTR; _para3:LONG):WINBOOL; + + ENUMRESNAMEPROC = function (_para1:HANDLE; _para2:LPCTSTR; _para3:LPTSTR; _para4:LONG):WINBOOL; + + ENUMRESLANGPROC = function (_para1:HANDLE; _para2:LPCTSTR; _para3:LPCTSTR; _para4:WORD; _para5:LONG):WINBOOL; + + DESKTOPENUMPROC = FARPROC; + + ENUMWINDOWSPROC = function (_para1:HWND; _para2:LPARAM):WINBOOL; + + ENUMWINDOWSTATIONPROC = function (_para1:LPTSTR; _para2:LPARAM):WINBOOL; + + SENDASYNCPROC = procedure (_para1:HWND; _para2:UINT; _para3:DWORD; _para4:LRESULT); + + TIMERPROC = procedure (_para1:HWND; _para2:UINT; _para3:UINT; _para4:DWORD); + + GRAYSTRINGPROC = FARPROC; + + DRAWSTATEPROC = function (_para1:HDC; _para2:LPARAM; _para3:WPARAM; _para4:longint; _para5:longint):WINBOOL; + + PROPENUMPROCEX = function (_para1:HWND; _para2:LPCTSTR; _para3:HANDLE; _para4:DWORD):WINBOOL; + + PROPENUMPROC = function (_para1:HWND; _para2:LPCTSTR; _para3:HANDLE):WINBOOL; + + HOOKPROC = function (_para1:longint; _para2:WPARAM; _para3:LPARAM):LRESULT; + + ENUMOBJECTSPROC = procedure (_para1:LPVOID; _para2:LPARAM); + + LINEDDAPROC = procedure (_para1:longint; _para2:longint; _para3:LPARAM); + + TABORTPROC = function (_para1:HDC; _para2:longint):WINBOOL; + + LPPAGEPAINTHOOK = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT; + + LPPAGESETUPHOOK = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT; + + ICMENUMPROC = function (_para1:LPTSTR; _para2:LPARAM):longint; + + EDITWORDBREAKPROCEX = function (_para1:pchar; _para2:LONG; _para3:BYTE; _para4:WINT):LONG; + + PFNLVCOMPARE = function (_para1:LPARAM; _para2:LPARAM; _para3:LPARAM):longint; + + LOCALE_ENUMPROC = function (_para1:LPTSTR):WINBOOL; + + CODEPAGE_ENUMPROC = function (_para1:LPTSTR):WINBOOL; + CODEPAGE_ENUMPROCW = function (_para1:LPWSTR):WINBOOL; //+winnls + DATEFMT_ENUMPROC = function (_para1:LPTSTR):WINBOOL; + + TIMEFMT_ENUMPROC = function (_para1:LPTSTR):WINBOOL; + + CALINFO_ENUMPROC = function (_para1:LPTSTR):WINBOOL; + + PHANDLER_ROUTINE = function (_para1:DWORD):WINBOOL; + + LPHANDLER_FUNCTION = function (_para1:DWORD):WINBOOL; + + PFNGETPROFILEPATH = function (_para1:LPCTSTR; _para2:LPSTR; _para3:UINT):UINT; + + PFNRECONCILEPROFILE = function (_para1:LPCTSTR; _para2:LPCTSTR; _para3:DWORD):UINT; + + PFNPROCESSPOLICIES = function (_para1:HWND; _para2:LPCTSTR; _para3:LPCTSTR; _para4:LPCTSTR; _para5:DWORD):WINBOOL; + const + SE_CREATE_TOKEN_NAME = 'SeCreateTokenPrivilege'; + SE_ASSIGNPRIMARYTOKEN_NAME = 'SeAssignPrimaryTokenPrivilege'; + SE_LOCK_MEMORY_NAME = 'SeLockMemoryPrivilege'; + SE_INCREASE_QUOTA_NAME = 'SeIncreaseQuotaPrivilege'; + SE_UNSOLICITED_INPUT_NAME = 'SeUnsolicitedInputPrivilege'; + SE_MACHINE_ACCOUNT_NAME = 'SeMachineAccountPrivilege'; + SE_TCB_NAME = 'SeTcbPrivilege'; + SE_SECURITY_NAME = 'SeSecurityPrivilege'; + SE_TAKE_OWNERSHIP_NAME = 'SeTakeOwnershipPrivilege'; + SE_LOAD_DRIVER_NAME = 'SeLoadDriverPrivilege'; + SE_SYSTEM_PROFILE_NAME = 'SeSystemProfilePrivilege'; + SE_SYSTEMTIME_NAME = 'SeSystemtimePrivilege'; + SE_PROF_SINGLE_PROCESS_NAME = 'SeProfileSingleProcessPrivilege'; + SE_INC_BASE_PRIORITY_NAME = 'SeIncreaseBasePriorityPrivilege'; + SE_CREATE_PAGEFILE_NAME = 'SeCreatePagefilePrivilege'; + SE_CREATE_PERMANENT_NAME = 'SeCreatePermanentPrivilege'; + SE_BACKUP_NAME = 'SeBackupPrivilege'; + SE_RESTORE_NAME = 'SeRestorePrivilege'; + SE_SHUTDOWN_NAME = 'SeShutdownPrivilege'; + SE_DEBUG_NAME = 'SeDebugPrivilege'; + SE_AUDIT_NAME = 'SeAuditPrivilege'; + SE_SYSTEM_ENVIRONMENT_NAME = 'SeSystemEnvironmentPrivilege'; + SE_CHANGE_NOTIFY_NAME = 'SeChangeNotifyPrivilege'; + SE_REMOTE_SHUTDOWN_NAME = 'SeRemoteShutdownPrivilege'; + + //SERVICES_ACTIVE_DATABASEW L"ServicesActive" + //#define SERVICES_FAILED_DATABASEW L"ServicesFailed" + SERVICES_ACTIVE_DATABASEA = 'ServicesActive'; + SERVICES_FAILED_DATABASEA = 'ServicesFailed'; + { Not convertable by H2PAS + #define SC_GROUP_IDENTIFIERW L'+' + } + SC_GROUP_IDENTIFIERA = '+'; +{$ifdef UNICODE} + //temporary removed to compile in unicode, ORO06 08/2005 + //SERVICES_ACTIVE_DATABASE = SERVICES_ACTIVE_DATABASEW; + //SERVICES_FAILED_DATABASE = SERVICES_FAILED_DATABASEW; + //SC_GROUP_IDENTIFIER = SC_GROUP_IDENTIFIERW; + SERVICES_ACTIVE_DATABASE = SERVICES_ACTIVE_DATABASEA; + SERVICES_FAILED_DATABASE = SERVICES_FAILED_DATABASEA; + SC_GROUP_IDENTIFIER = SC_GROUP_IDENTIFIERA; +{$else} + SERVICES_ACTIVE_DATABASE = SERVICES_ACTIVE_DATABASEA; + SERVICES_FAILED_DATABASE = SERVICES_FAILED_DATABASEA; + SC_GROUP_IDENTIFIER = SC_GROUP_IDENTIFIERA; +{$endif} + +type + + { PFNCALLBACK = CALLB; } + PFNCALLBACK = function(_para1, _para2: UINT;_para3: HCONV;_para4, _para5: HSZ; _para6: HDDEDATA;_para7 ,_para8 :DWORD): HDDEData; + { CALLB = procedure ;CDECL; } + CALLB = PFNCALLBACK; + + + SECURITY_CONTEXT_TRACKING_MODE = WINBOOL; + { End of stuff from ddeml.h in old Cygnus headers } + { ----------------------------------------------- } + + WNDENUMPROC = FARPROC; + + ENHMFENUMPROC = FARPROC; + + CCSTYLE = DWORD; + + PCCSTYLE = ^CCSTYLE; + + LPCCSTYLE = ^CCSTYLE; + + CCSTYLEFLAGA = DWORD; + + PCCSTYLEFLAGA = ^CCSTYLEFLAGA; + + LPCCSTYLEFLAGA = ^CCSTYLEFLAGA; + +{$endif read_interface} + + +{$ifdef read_implementation} + + { was #define dname(params) def_expr } + { argument types are unknown } + function GetBValue(rgb : longint) : BYTE; + begin + GetBValue:=BYTE(rgb shr 16); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + function GetGValue(rgb : longint) : BYTE; + begin + GetGValue:=BYTE((WORD(rgb)) shr 8); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + function GetRValue(rgb : longint) : BYTE; + begin + GetRValue:=BYTE(rgb); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + function RGB(r,g,b : longint) : DWORD; + begin + RGB:=DWORD(((DWORD(BYTE(r))) or ((DWORD(WORD(g))) shl 8)) or ((DWORD(BYTE(b))) shl 16)); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + function HIBYTE(w : longint) : BYTE; + begin + HIBYTE:=BYTE(((WORD(w)) shr 8) and $FF); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + function HIWORD(l : longint) : WORD; + begin + HIWORD:=WORD(((DWORD(l)) shr 16) and $FFFF); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + function LOBYTE(w : longint) : BYTE; + begin + LOBYTE:=BYTE(w); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + function LOWORD(l : longint) : WORD; + begin + LOWORD:=WORD(l); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + function MAKELONG(a,b : longint) : LONG; + begin + MAKELONG:=LONG((WORD(a)) or ((DWORD(WORD(b))) shl 16)); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + function MAKEWORD(a,b : longint) : WORD; + begin + MAKEWORD:=WORD((BYTE(a)) or ((WORD(BYTE(b))) shl 8)); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function SEXT_HIWORD(l : longint) : longint; + { return type might be wrong } + begin + SEXT_HIWORD:=(longint(l)) shr 16; + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function ZEXT_HIWORD(l : longint) : longint; + { return type might be wrong } + begin + ZEXT_HIWORD:=(Cardinal(l)) shr 16; + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + function SEXT_LOWORD(l : longint) : longint; + begin + SEXT_LOWORD:=longint(SHORT(l)); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function INDEXTOOVERLAYMASK(i : longint) : longint; + { return type might be wrong } + begin + INDEXTOOVERLAYMASK:=i shl 8; + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function INDEXTOSTATEIMAGEMASK(i : longint) : longint; + { return type might be wrong } + begin + INDEXTOSTATEIMAGEMASK:=i shl 12; + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + function MAKEINTATOM(i : longint) : LPTSTR; + begin + MAKEINTATOM:=LPTSTR(DWORD(WORD(i))); + end; + + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function MAKELANGID(p,s : longint) : longint; + { return type might be wrong } + begin + MAKELANGID:=((WORD(s)) shl 10) or (WORD(p)); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + function PRIMARYLANGID(lgid : longint) : WORD; + begin + { PRIMARYLANGID:=WORD(lgid(@($3ff))); + h2pas error here corrected by hand PM } + PRIMARYLANGID:=WORD(lgid) and ($3ff); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function SUBLANGID(lgid : longint) : longint; + { return type might be wrong } + begin + SUBLANGID:=(WORD(lgid)) shr 10; + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + function LANGIDFROMLCID(lcid : longint) : WORD; + begin + LANGIDFROMLCID:=WORD(lcid); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + function SORTIDFROMLCID(lcid : longint) : WORD; + begin + SORTIDFROMLCID:=WORD(((DWORD(lcid)) and $000FFFFF) shr 16); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + function MAKELCID(lgid,srtid : longint) : DWORD; + begin + MAKELCID:=DWORD(((DWORD(WORD(srtid))) shl 16) or (DWORD(WORD(lgid)))); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + function MAKELPARAM(l,h : longint) : LPARAM; + begin + MAKELPARAM:=LPARAM(MAKELONG(l,h)); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + function MAKELRESULT(l,h : longint) : LRESULT; + begin + MAKELRESULT:=LRESULT(MAKELONG(l,h)); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + function MAKEROP4(fore,back : longint) : DWORD; + begin + MAKEROP4:=DWORD((DWORD(back shl 8) and $FF000000) or DWORD(fore)); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + function MAKEWPARAM(l,h : longint) : WPARAM; + begin + MAKEWPARAM:=WPARAM(MAKELONG(l,h)); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function max(a,b : longint) : longint; + { return type might be wrong } + var + if_local1 : longint; + (* result types are not known *) + begin + if a > b then + if_local1:=a + else + if_local1:=b; + max:=if_local1; + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function min(a,b : longint) : longint; + { return type might be wrong } + var + if_local1 : longint; + (* result types are not known *) + begin + if a < b then + if_local1:=a + else + if_local1:=b; + min:=if_local1; + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + function PALETTEINDEX(i : longint) : COLORREF; + begin + PALETTEINDEX:=COLORREF($01000000 or (DWORD(WORD(i)))); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function PALETTERGB(r,g,b : longint) : longint; + { return type might be wrong } + begin + PALETTERGB:=$02000000 or (RGB(r,g,b)); + end; + +{$endif read_implementation} + + diff --git a/rtl/wince/wininc/commctrl.inc b/rtl/wince/wininc/commctrl.inc index d771456c0e..02813366ac 100644 --- a/rtl/wince/wininc/commctrl.inc +++ b/rtl/wince/wininc/commctrl.inc @@ -1,720 +1,720 @@ -{ - This file is part of the Free Pascal run time library. - Copyright (c) 2006 Free Pascal development team. - - See the file COPYING.FPC, included in this distribution, - for details about the copyright. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - - **********************************************************************} - -{ Declarations for commctrl WinCE API - -} - -{exported functions list = to do, - * please remove functions done * - - Exports - - ordinal name - - 73 AddMRUData - 66 AddMRUStringA - 67 AddMRUStringW - 35 CenterWindow - 11 CommandBar_GetItemWindow - 63 CreateMRUListA - 64 CreateMRUListW - 15 CreateToolbar - 50 DPA_Create - 61 DPA_DeleteAllPtrs - 60 DPA_DeletePtr - 31 DPA_Destroy - 56 DPA_DestroyCallback - 32 DPA_GetPtr - 62 DPA_GetPtrIndex - 54 DPA_Grow - 51 DPA_InsertPtr - 59 DPA_Search - 53 DPA_SetPtr - 52 DPA_Sort - 46 DSA_Clone - 23 DSA_Create - 30 DSA_DeleteAllItems - 29 DSA_DeleteItem - 24 DSA_Destroy - 47 DSA_DestroyCallback - 48 DSA_EnumCallback - 25 DSA_GetItem - 26 DSA_GetItemPtr - 27 DSA_InsertItem - 45 DSA_Search - 28 DSA_SetItem - 58 DSA_SetRange - 57 DSA_Sort - 68 DelMRUString - 49 DoReaderMode - 71 EnumMRUListA - 72 EnumMRUListW - 74 FindMRUData - 69 FindMRUStringA - 70 FindMRUStringW - 65 FreeMRUList - 22 InvertRect - 55 IsCapEditAvailable - ListView_SetItemSpacing - 75 PopulateComboWithMRU - 76 PopulateMenuWithMRU - 80 SHCreateDefaultGradient - 79 SHDrawGradient - 81 SHDrawText - 77 SHGetSysColor - 78 SHGetSystemMetrics - 82 SHSetSysColors - 83 SHSetSystemMetrics - 34 StrToIntW - 33 Str_SetPtrW -} - -{$ifdef read_interface} - -//***************************************************************************** -// consts -//***************************************************************************** -const - ComctlDLL = 'commctrl'; - - COMCTL32_VERSION=$020c; - - // Common control shared messages - CCM_FIRST = $2000; - CCM_LAST = CCM_FIRST + $200; - - CCM_SETBKCOLOR = CCM_FIRST + $1; // lParam is bkColor - CCM_SETVERSION = CCM_FIRST + $7; - CCM_GETVERSION = CCM_FIRST + $8; - - //InitCommonControlEx - //I_IMAGENONE = -2; // Desktop listview uses this same value for I_IMAGENONE when (_WIN32_IE >= 0x0501) - - //ICC_LISTVIEW_CLASSES = $00000001; // listview, header - //ICC_TREEVIEW_CLASSES = $00000002; // treeview, tooltips - //ICC_BAR_CLASSES = $00000004; // toolbar, statusbar, trackbar, tooltips - //ICC_TAB_CLASSES = $00000008; // tab, tooltips - //ICC_UPDOWN_CLASS = $00000010; // updown - //ICC_PROGRESS_CLASS = $00000020; // progress - ICC_ANIMATE_CLASS = $00000080; // animate - //ICC_WIN95_CLASSES = $0000007F; - //ICC_DATE_CLASSES = $00000100; // month picker, date picker, time picker, updown - //ICC_COOL_CLASSES = $00000400; // rebar (coolbar) control - //ICC_INTERNET_CLASSES = $00000800; // IP Address control - //ICC_TOOLTIP_CLASSES = $00001000; // Tooltip static & button - //ICC_CAPEDIT_CLASS = $00002000; // All-caps edit control - //ICC_FE_CLASSES = $40000000; // FE specific input subclasses - - LVM_FIRST = $1000; // ListView messages - TV_FIRST = $1100; // TreeView messages - HDM_FIRST = $1200; // Header messages - - //Ranges for control message IDs - LVN_FIRST = (-100); // listview - LVN_LAST = (-199); - HDN_FIRST = (-300); // header - HDN_LAST = (-399); - TVN_FIRST = (-400); // treeview - TVN_LAST = (-499); - TTN_FIRST = (-520); // tooltips - TTN_LAST = (-549); - TCN_FIRST = (-550); // tab control - TCN_LAST = (-580); - // Shell reserved (0U-580U) - (0U-589U) - CDN_FIRST = (-601); // common dialog (new) - CDN_LAST = (-699); - TBN_FIRST = (-700); // toolbar - TBN_LAST = (-720); - UDN_FIRST = (-721); // updown - UDN_LAST = (-740); - MCN_FIRST = (-750); // monthcal - MCN_LAST = (-759); - RBN_FIRST = (-831); // rebar - RBN_LAST = (-859); - IPN_FIRST = (-860); // internet address - IPN_LAST = (-879); // internet address - SBN_FIRST = (-880); // status bar - SBN_LAST = (-900); - SHN_FIRST = (-1400); // Shell reserved - SHN_LAST = (-1500); - - MSGF_COMMCTRL_BEGINDRAG = $4200; - MSGF_COMMCTRL_SIZEHEADER = $4201; - MSGF_COMMCTRL_DRAGSELECT = $4202; - - //Generic WM_NOTIFY notification codes - NM_FIRST = 0; - NM_LAST = -99; - //NM_OUTOFMEMORY = (NM_FIRST-1); - //NM_CLICK = (NM_FIRST-2); - //NM_DBLCLK = (NM_FIRST-3); - //NM_RETURN = (NM_FIRST-4); - //NM_RCLICK = (NM_FIRST-5); - //NM_RDBLCLK = (NM_FIRST-6); - //NM_SETFOCUS = (NM_FIRST-7); - //NM_KILLFOCUS = (NM_FIRST-8); - NM_CUSTOMDRAW = (NM_FIRST-12); - NM_HOVER = (NM_FIRST-13); - NM_NCHITTEST = (NM_FIRST-14); - NM_KEYDOWN = (NM_FIRST-15); - NM_RECOGNIZEGESTURE = (NM_FIRST-50); - - { Header control } - HDM_DELETEITEM = 4610; - HDM_GETITEMW = 4619; - HDM_INSERTITEMW = 4618; - HDM_SETITEMW = 4620; - - HDM_GETITEM = HDM_GETITEMW; - HDM_INSERTITEM = HDM_INSERTITEMW; - HDM_SETITEM = HDM_SETITEMW; - - HDM_GETITEMCOUNT = 4608; - HDM_HITTEST = 4614; - HDM_LAYOUT = 4613; - { Header control notifications } - HDN_BEGINTRACKW = HDN_FIRST-26; - HDN_DIVIDERDBLCLICKW = HDN_FIRST-25; - HDN_ENDTRACKW = HDN_FIRST-27; - HDN_ITEMCHANGEDW = HDN_FIRST-21; - HDN_ITEMCHANGINGW = HDN_FIRST-20; - HDN_ITEMCLICKW = HDN_FIRST-22; - HDN_ITEMDBLCLICKW = HDN_FIRST-23; - HDN_TRACKW = HDN_FIRST-28; - HDN_GETDISPINFOW = HDN_FIRST-29; - HDN_BEGINDRAG = HDN_FIRST-10; - HDN_ENDDRAG = HDN_FIRST-11; - - HDN_BEGINTRACK = HDN_BEGINTRACKW; - HDN_DIVIDERDBLCLICK = HDN_DIVIDERDBLCLICKW; - HDN_ENDTRACK = HDN_ENDTRACKW; - HDN_ITEMCHANGED = HDN_ITEMCHANGEDW; - HDN_ITEMCHANGING = HDN_ITEMCHANGINGW; - HDN_ITEMCLICK = HDN_ITEMCLICKW; - HDN_ITEMDBLCLICK = HDN_ITEMDBLCLICKW; - HDN_TRACK = HDN_TRACKW; - HDN_GETDISPINFO = HDN_GETDISPINFOW; - - // DATETIMEPICK CONTROL - DATETIMEPICK_CLASS ='SysDateTimePick32'; - DTM_FIRST = $1000; - DTM_GETSYSTEMTIME = DTM_FIRST + 1; - DTM_SETSYSTEMTIME = DTM_FIRST + 2; - DTM_GETRANGE = DTM_FIRST + 3; - DTM_SETRANGE = DTM_FIRST + 4; - DTM_SETFORMATA = DTM_FIRST + 5; - DTM_SETMCCOLOR = DTM_FIRST + 6; - DTM_GETMCCOLOR = DTM_FIRST + 7; - DTM_GETMONTHCAL = DTM_FIRST + 8; - DTM_SETMCFONT = DTM_FIRST + 9; - DTM_GETMCFONT = DTM_FIRST + 10; - DTM_SETFORMATW = DTM_FIRST + 50; - DTM_SETFORMAT = DTM_SETFORMATW; - - - DTS_UPDOWN = $0001; - DTS_SHOWNONE = $0002; - DTS_SHORTDATEFORMAT = $0000; - DTS_LONGDATEFORMAT = $0004; - DTS_SHORTDATECENTURYFORMAT = $000C; - DTS_TIMEFORMAT = $0009; - DTS_APPCANPARSE = $0010; - DTS_RIGHTALIGN = $0020; - DTS_NONEBUTTON = $0080; - - //datetimepick - DTN_FIRST =-760; - DTN_LAST =-799; - DTN_DATETIMECHANGE = DTN_FIRST + 1; - DTN_USERSTRINGA = DTN_FIRST + 2; - DTN_WMKEYDOWNA = DTN_FIRST + 3; - DTN_FORMATA = DTN_FIRST + 4; - DTN_FORMATQUERYA = DTN_FIRST + 5; - DTN_DROPDOWN = DTN_FIRST + 6; - DTN_CLOSEUP = DTN_FIRST + 7; - DTN_USERSTRINGW = DTN_FIRST + 15; - DTN_WMKEYDOWNW = DTN_FIRST + 16; - DTN_FORMATW = DTN_FIRST + 17; - DTN_FORMATQUERYW = DTN_FIRST + 18; - - DTN_USERSTRING = DTN_USERSTRINGW; - - GDTR_MIN = $0001; - GDTR_MAX = $0002; - - GDT_ERROR = -1; - GDT_VALID = 0; - GDT_NONE = 1; - - //TOOLBAR CONTROL - //TOOLBARCLASSNAMEW = 'ToolbarWindow32'; - //TOOLBARCLASSNAME = TOOLBARCLASSNAMEW; - - TBIF_IMAGE = $00000001; - TBIF_TEXT = $00000002; - TBIF_STATE = $00000004; - TBIF_STYLE = $00000008; - TBIF_LPARAM = $00000010; - TBIF_COMMAND = $00000020; - TBIF_SIZE = $00000040; - - // BUTTONINFO APIs - TB_GETBUTTONINFOW = (WM_USER + 63); - TB_SETBUTTONINFOW = (WM_USER + 64); - TB_GETBUTTONINFO = TB_GETBUTTONINFOW; - TB_SETBUTTONINFO = TB_SETBUTTONINFOW; - - TB_INSERTBUTTONW = (WM_USER + 67); - TB_ADDBUTTONSW = (WM_USER + 68); - TB_HITTEST = (WM_USER + 69); - - //TB_INSERTBUTTON = TB_INSERTBUTTONW; - //TB_ADDBUTTONS = TB_ADDBUTTONSW; - - TB_SETDRAWTEXTFLAGS = (WM_USER + 70); - - //TBN_GETBUTTONINFOW = (TBN_FIRST-20); - //TBN_BEGINDRAG = (TBN_FIRST-1); - //TBN_ENDDRAG = (TBN_FIRST-2); - TBN_DROPDOWN = (TBN_FIRST - 10); - TBN_DRAGOUT = (TBN_FIRST - 14); - //TBN_GETBUTTONINFO = TBN_GETBUTTONINFOW; - - // custom draw return flags - // values under 0x00010000 are reserved for global custom draw values. - // above that are for specific controls - CDRF_DODEFAULT = $00000000; - CDRF_NEWFONT = $00000002; - CDRF_SKIPDEFAULT = $00000004; - CDRF_NOTIFYPOSTPAINT = $00000010; - CDRF_NOTIFYITEMDRAW = $00000020; - CDRF_NOTIFYSUBITEMDRAW = $00000020; // flags are the same, we can distinguish by context - CDRF_NOTIFYPOSTERASE = $00000040; - - // drawstage flags - // values under = $00010000 are reserved for global custom draw values. - // above that are for specific controls - CDDS_PREPAINT = $00000001; - CDDS_POSTPAINT = $00000002; - CDDS_PREERASE = $00000003; - CDDS_POSTERASE = $00000004; - // the = $000010000 bit means it's individual item specific - CDDS_ITEM = $00010000; - CDDS_ITEMPREPAINT = CDDS_ITEM or CDDS_PREPAINT; - CDDS_ITEMPOSTPAINT = CDDS_ITEM or CDDS_POSTPAINT; - CDDS_ITEMPREERASE = CDDS_ITEM or CDDS_PREERASE; - CDDS_ITEMPOSTERASE = CDDS_ITEM or CDDS_POSTERASE; - CDDS_SUBITEM = $00020000; - - // Pocket PC special controls - WC_CAPEDIT = 'CAPEDIT'; - WC_TSTATIC = 'TTSTATIC'; - WC_TBUTTON = 'TTBUTTON'; - - // for FE, single byte character edit - WC_SBEDIT = 'sbedit'; - - // REBAR CONTROL - REBARCLASSNAME = 'ReBarWindow'; - - RBIM_IMAGELIST = $00000001; - RBS_VARHEIGHT = $0200; - RBS_BANDBORDERS = $0400; - RBS_FIXEDORDER = $0800; - RBS_SMARTLABELS = $1000; - RBS_AUTOSIZE = $2000; - RBS_VERTICALGRIPPER = $4000; { this always has the vertical gripper (default for horizontal mode) } - - RBBS_BREAK = $00000001; { break to new line } - RBBS_FIXEDSIZE = $00000002; { band can't be sized } - RBBS_CHILDEDGE = $00000004; { edge around top & bottom of child window } - RBBS_HIDDEN = $00000008; { don't show } - RBBS_NOVERT = $00000010; { don't show when vertical } - RBBS_FIXEDBMP = $00000020; { bitmap doesn't move during band resize } - RBBS_VARIABLEHEIGHT = $00000040; { allow autosizing of this child vertically } - RBBS_GRIPPERALWAYS = $00000080; { always show the gripper } - RBBS_NOGRIPPER = $00000100; { never show gripper for this band } - - RBBIM_STYLE = $00000001; - RBBIM_COLORS = $00000002; - RBBIM_TEXT = $00000004; - RBBIM_IMAGE = $00000008; - RBBIM_CHILD = $00000010; - RBBIM_CHILDSIZE = $00000020; - RBBIM_SIZE = $00000040; - RBBIM_BACKGROUND = $00000080; - RBBIM_ID = $00000100; - RBBIM_IDEALSIZE = $00000200; - RBBIM_LPARAM = $00000400; - - RB_DELETEBAND = WM_USER+2; - RB_GETBARINFO = WM_USER+3; - RB_SETBARINFO = WM_USER+4; - RB_SETPARENT = WM_USER+7; - RB_HITTEST = WM_USER+8; - RB_GETRECT = WM_USER+9; - RB_INSERTBANDW = WM_USER+10; - RB_SETBANDINFOW = WM_USER+11; - RB_GETBANDCOUNT = WM_USER+12; - RB_GETROWCOUNT = WM_USER+13; - RB_GETROWHEIGHT = WM_USER+14; - RB_IDTOINDEX = WM_USER+16; { wParam == id } - RB_SETBKCOLOR = WM_USER+19; { sets the default BK color } - RB_GETBKCOLOR = WM_USER+20; { defaults to CLR_NONE } - RB_SETTEXTCOLOR = WM_USER+21; - RB_GETTEXTCOLOR = WM_USER+22; { defaults to 0x00000000 } - RB_SIZETORECT = WM_USER+23; { resize the rebar/break bands and such to this rect (lparam) } - RB_INSERTBAND = RB_INSERTBANDW; - RB_SETBANDINFO = RB_SETBANDINFOW; - RB_BEGINDRAG = WM_USER+24; - RB_ENDDRAG = WM_USER+25; - RB_DRAGMOVE = WM_USER+26; - RB_GETBARHEIGHT = WM_USER+27; - RB_GETBANDINFOW = WM_USER+28; - RB_GETBANDINFO = RB_GETBANDINFOW; - RB_MINIMIZEBAND = WM_USER+30; - RB_MAXIMIZEBAND = WM_USER+31; - RB_GETBANDBORDERS = WM_USER+34; { returns in lparam = lprc the amount of edges added to band wparam } - RB_SHOWBAND = WM_USER+35; { show/hide band } - RB_MOVEBAND = WM_USER+36; - - RBN_HEIGHTCHANGE = RBN_FIRST-0; - RBN_LAYOUTCHANGED = RBN_FIRST-2; - RBN_AUTOSIZE = RBN_FIRST-3; - RBN_BEGINDRAG = RBN_FIRST-4; - RBN_ENDDRAG = RBN_FIRST-5; - - RBHT_NOWHERE = $0001; - RBHT_CAPTION = $0002; - RBHT_CLIENT = $0003; - RBHT_GRABBER = $0004; - -//***************************************************************************** -// types -//***************************************************************************** - -type - // DATETIMEPICK CONTROL - tagNMDATETIMECHANGE = record - nmhdr : NMHDR; - dwFlags : DWORD; - st : SYSTEMTIME; - end; - NMDATETIMECHANGE=tagNMDATETIMECHANGE; - TNMDATETIMECHANGE=tagNMDATETIMECHANGE; - LPNMDATETIMECHANGE=^tagNMDATETIMECHANGE; - - tagNMDATETIMESTRINGW = record - nmhdr : NMHDR; - pszUserString : LPCWSTR; - st : SYSTEMTIME; - dwFlags : DWORD; - end; - NMDATETIMESTRINGW=tagNMDATETIMESTRINGW; - TNMDATETIMESTRINGW=tagNMDATETIMESTRINGW; - LPNMDATETIMESTRINGW=^tagNMDATETIMESTRINGW; - NMDATETIMESTRING=tagNMDATETIMESTRINGW; - TNMDATETIMESTRING=tagNMDATETIMESTRINGW; - PNMDATETIMESTRING=^tagNMDATETIMESTRINGW; - - tagNMDATETIMEWMKEYDOWNA = record - nmhdr : NMHDR; - nVirtKey : integer; - pszFormat : LPCSTR; - st : SYSTEMTIME; - end; - NMDATETIMEWMKEYDOWNA=tagNMDATETIMEWMKEYDOWNA; - TNMDATETIMEWMKEYDOWNA=tagNMDATETIMEWMKEYDOWNA; - LPNMDATETIMEWMKEYDOWNA=^tagNMDATETIMEWMKEYDOWNA; - - tagNMDATETIMEWMKEYDOWNW = record - nmhdr : NMHDR; - nVirtKey : integer; - pszFormat : LPCWSTR; - st : SYSTEMTIME; - end; - NMDATETIMEWMKEYDOWNW=tagNMDATETIMEWMKEYDOWNW; - TNMDATETIMEWMKEYDOWNW=tagNMDATETIMEWMKEYDOWNW; - LPNMDATETIMEWMKEYDOWNW=^tagNMDATETIMEWMKEYDOWNW; - - - tagNMDATETIMEFORMATA = record - nmhdr : NMHDR; - pszFormat : LPCSTR; - st : SYSTEMTIME; - pszDisplay : LPCSTR; - szDisplay : Array[0..63] of CHAR; - end; - NMDATETIMEFORMATA=tagNMDATETIMEFORMATA; - TNMDATETIMEFORMATA=tagNMDATETIMEFORMATA; - LPNMDATETIMEFORMATA=^NMDATETIMEFORMATA; - - tagNMDATETIMEFORMATW = record - nmhdr : NMHDR; - pszFormat : LPCWSTR; - st : SYSTEMTIME; - pszDisplay : LPCWSTR; - szDisplay : Array[0..63] of WCHAR; - end; - NMDATETIMEFORMATW=tagNMDATETIMEFORMATW; - TNMDATETIMEFORMATW=tagNMDATETIMEFORMATW; - LPNMDATETIMEFORMATW=^NMDATETIMEFORMATW; - - - tagNMDATETIMEFORMATQUERYA = record - nmhdr : NMHDR; - pszFormat : LPCSTR; - szMax : SIZE; - end; - NMDATETIMEFORMATQUERYA=tagNMDATETIMEFORMATQUERYA; - TNMDATETIMEFORMATQUERYA=tagNMDATETIMEFORMATQUERYA; - LPNMDATETIMEFORMATQUERYA=^tagNMDATETIMEFORMATQUERYA; - - tagNMDATETIMEFORMATQUERYW = record - nmhdr : NMHDR; - pszFormat : LPCWSTR; - szMax : SIZE; - end; - NMDATETIMEFORMATQUERYW=tagNMDATETIMEFORMATQUERYW; - TNMDATETIMEFORMATQUERYW=tagNMDATETIMEFORMATQUERYW; - LPNMDATETIMEFORMATQUERYW=^tagNMDATETIMEFORMATQUERYW; - - //Generic structure for a key - tagNMKEY = Record - hdr : NMHDR; - wVKey : WORD; - flags : UINT; - end; - NMKEY=tagNMKEY; - LPNMKEY=^NMKEY; - - //Generic WM_NOTIFY notification structures - tagNMMOUSE = Record - hdr : NMHDR; - dwItemSpec : DWORD; - dwItemData : DWORD; - pt : POINT; - end; - NMMOUSE=tagNMMOUSE; - LPNMMOUSE=^NMMOUSE; - PNMMOUSE=^NMMOUSE; - NMCLICK=NMMOUSE; - LPNMCLICK=LPNMMOUSE; - - //TOOLBAR CONTROL - TBBUTTONINFOW = record - cbSize : UINT; - dwMask : DWORD; - idCommand : Longint; - iImage : Longint; - fsState : BYTE; - fsStyle : BYTE; - cx : WORD; - lParam : DWORD; - pszText : LPWSTR; - cchText : Longint; - end; - LPTBBUTTONINFOW=^TBBUTTONINFOW; - TBBUTTONINFO=TBBUTTONINFOW; - TTBButtonInfo=TBBUTTONINFO; - - tagNMCUSTOMDRAWINFO = packed record - hdr: TNMHdr; - dwDrawStage: DWORD; - hdc: HDC; - rc: TRect; - dwItemSpec: DWORD; - uItemState: UINT; - lItemlParam: LPARAM; - end; - PNMCustomDraw = ^TNMCustomDraw; - TNMCustomDraw = tagNMCUSTOMDRAWINFO; - - tagNMLVCUSTOMDRAW = packed record - nmcd: TNMCustomDraw; - clrText: COLORREF; - clrTextBk: COLORREF; - iSubItem: Integer; - end; - PNMLVCustomDraw = ^TNMLVCustomDraw; - TNMLVCustomDraw = tagNMLVCUSTOMDRAW; - - tagNMLVODSTATECHANGE = packed record - hdr: TNMHdr; - iFrom: Integer; - iTo: Integer; - uNewState: UINT; - uOldState: UINT; - end; - PNMLVODStateChange = ^TNMLVODStateChange; - TNMLVODStateChange = tagNMLVODSTATECHANGE; - - tagREBARINFO = record - cbSize : UINT; - fMask : UINT; - himl : HIMAGELIST; - end; - REBARINFO = tagREBARINFO; - LPREBARINFO = ^tagREBARINFO; - - tagREBARBANDINFOW = record - cbSize : UINT; - fMask : UINT; - fStyle : UINT; - clrFore : COLORREF; - clrBack : COLORREF; - lpText : LPWSTR; - cch : UINT; - iImage : longint; - hwndChild : HWND; - cxMinChild : UINT; - cyMinChild : UINT; - cx : UINT; - hbmBack : HBITMAP; - wID : UINT; - cyChild : UINT; - cyMaxChild : UINT; - cyIntegral : UINT; - cxIdeal : UINT; - lParam : LPARAM; - end; - REBARBANDINFOW = tagREBARBANDINFOW; - LPREBARBANDINFOW = ^tagREBARBANDINFOW; - LPCREBARBANDINFOW = REBARBANDINFOW; - REBARBANDINFO = REBARBANDINFOW; - LPREBARBANDINFO = LPREBARBANDINFOW; - LPCREBARBANDINFO = LPCREBARBANDINFOW; - - tagNMREBAR = record - hdr : NMHDR; - uBand : UINT; - wID : UINT; - cyChild : UINT; - cyBand : UINT; - end; - NMREBAR = tagNMREBAR; - LPNMREBAR = ^tagNMREBAR; - - tagNMRBAUTOSIZE = record - hdr : NMHDR; - fChanged : BOOL; - rcTarget : RECT; - rcActual : RECT; - end; - NMRBAUTOSIZE = tagNMRBAUTOSIZE; - LPNMRBAUTOSIZE = ^tagNMRBAUTOSIZE; - - _RB_HITTESTINFO = record - pt : POINT; - flags : UINT; - iBand : longint; - end; - RBHITTESTINFO = _RB_HITTESTINFO; - LPRBHITTESTINFO = ^_RB_HITTESTINFO; - - tagCOMMANDBANDSRESTOREINFO = record - cbSize : UINT; - wID : UINT; - fStyle : UINT; - cxRestored : UINT; - fMaximized : BOOL; - end; - COMMANDBANDSRESTOREINFO = tagCOMMANDBANDSRESTOREINFO; - LPCOMMANDBANDSRESTOREINFO = ^tagCOMMANDBANDSRESTOREINFO; - LPCCOMMANDBANDSRESTOREINFO = COMMANDBANDSRESTOREINFO; - -//***************************************************************************** -// functions -//***************************************************************************** - -function CreatePropertySheetPage(lppsp:LPCPROPSHEETPAGE):HPROPSHEETPAGE; external ComctlDLL name 'CreatePropertySheetPageW'; -function CreatePropertySheetPageW(lppsp:LPCPROPSHEETPAGE):HPROPSHEETPAGE; external ComctlDLL name 'CreatePropertySheetPageW'; -function CreateStatusWindow(style:LONG; lpszText:LPCWSTR; hwndParent:HWND; wID:UINT):HWND; external ComctlDll name 'CreateStatusWindowW'; -function CreateStatusWindowW(style:LONG; lpszText:LPCWSTR; hwndParent:HWND; wID:UINT):HWND; external ComctlDll name 'CreateStatusWindowW'; -function CreateToolbarEx(hwnd:HWND; ws:DWORD; wID:UINT; nBitmaps:longint; hBMInst:HINST;wBMID:UINT; lpButtons:LPCTBBUTTON; iNumButtons:longint; dxButton:longint; dyButton:longint;dxBitmap:longint; - dyBitmap:longint; uStructSize:UINT):HWND; external ComctlDLL name 'CreateToolbarEx'; -function CreateUpDownControl(dwStyle:DWORD; x:longint; y:longint; cx:longint; cy:longint;hParent:HWND; nID:longint; hInst:HINST; hBuddy:HWND; nUpper:longint;nLower:longint; nPos:longint):HWND; external ComctlDLL name 'CreateUpDownControl'; -function DestroyPropertySheetPage(hPSPage:HPROPSHEETPAGE):WINBOOL; external ComctlDLL name 'DestroyPropertySheetPage'; -procedure DrawStatusText(hDC:HDC; lprc:LPRECT; pszText:LPCWSTR; uFlags:UINT); external ComctlDLL name 'DrawStatusTextW'; -procedure DrawStatusTextW(hDC:HDC; lprc:LPRECT; pszText:LPCWSTR; uFlags:UINT); external ComctlDLL name 'DrawStatusTextW'; -procedure InitCommonControls; external ComctlDLL name 'InitCommonControls'; -function InitCommonControlsEx(_para1:LPINITCOMMONCONTROLSEX):WINBOOL; external ComctlDLL name 'InitCommonControlsEx'; -function PropertySheet(lppsph:LPCPROPSHEETHEADER):longint; external ComctlDll name 'PropertySheetW'; -function PropertySheetW(lppsph:LPCPROPSHEETHEADER):longint; external ComctlDll name 'PropertySheetW'; - -function CommandBands_AddAdornments(hwndCmdBands:HWND; hinst:THandle; dwFlags:DWORD; prbbi:LPREBARBANDINFO):BOOL;external ComctlDll name 'CommandBands_AddAdornments'; -function CommandBands_AddBands(hwndCmdBands:HWND; hinst:THandle; cBands:UINT; prbbi:LPREBARBANDINFO):BOOL;external ComctlDll name 'CommandBands_AddBands'; -function CommandBands_Create(hinst:THandle; hwndParent:HWND; wID:UINT; dwStyles:DWORD; himl:HIMAGELIST):HWND;external ComctlDll name 'CommandBands_Create'; -function CommandBands_GetCommandBar(hwndCmdBands:HWND; uBand:UINT):HWND;external ComctlDll name 'CommandBands_GetCommandBar'; -function CommandBands_GetRestoreInformation(hwndCmdBands:HWND; uBand:UINT; pcbri:LPCOMMANDBANDSRESTOREINFO):BOOL;external ComctlDll name 'CommandBands_GetRestoreInformation'; -function CommandBands_Show(hwndCmdBands:HWND; fShow:BOOL):BOOL;external ComctlDll name 'CommandBands_Show'; -function CommandBar_AddAdornments(hwndCB:HWND; dwFlags:DWORD; dwReserved:DWORD):BOOL;external ComctlDll name 'CommandBar_AddAdornments'; -function CommandBar_AddBitmap(hwndCB:HWND; hInst:THandle; idBitmap:longint; iNumImages:longint; iImageWidth:longint; iImageHeight:longint):longint;external ComctlDll name 'CommandBar_AddBitmap'; -function CommandBar_Create(hInst:THandle; hwndParent:HWND; idCmdBar:longint):HWND;external ComctlDll name 'CommandBar_Create'; -function CommandBar_DrawMenuBar(hwndCB:HWND; iButton:WORD):BOOL;external ComctlDll name 'CommandBar_DrawMenuBar'; -function CommandBar_GetMenu(hwndCB:HWND; iButton:WORD):HMENU;external ComctlDll name 'CommandBar_GetMenu'; -function CommandBar_Height(hwndCB:HWND):longint;external ComctlDll name 'CommandBar_Height'; -function CommandBar_InsertComboBox(hwndCB:HWND; THandle:THandle; iWidth:longint; dwStyle:UINT; idComboBox:WORD; iButton:WORD):HWND;external ComctlDll name 'CommandBar_InsertComboBox'; -function CommandBar_InsertMenubar(hwndCB:HWND; hInst:THandle; idMenu:WORD; iButton:WORD):BOOL;external ComctlDll name 'CommandBar_InsertMenubar'; -function CommandBar_InsertMenubarEx(hwndCB:HWND; hinst:THandle; pszMenu:LPTSTR; iButton:WORD):BOOL;external ComctlDll name 'CommandBar_InsertMenubarEx'; -function CommandBar_Show(hwndCB:HWND; fShow:BOOL):BOOL;external ComctlDll name 'CommandBar_Show'; -function IsCommandBarMessage(hwndCB:HWND; lpMsg:LPMSG):BOOL;external ComctlDll name 'IsCommandBarMessage'; -procedure CommandBar_Destroy(hwndCB : HWND); -function CommandBar_IsVisible(hwndCB : HWND) : BOOL; -function CommandBar_AddButtons(hwndCB : HWND; cbButtons : UINT; lpButtons : LPTBBUTTON) : BOOL; -function CommandBar_InsertButton(hwndCB : HWND; iButton : longint; lpButton : LPTBBUTTON) : BOOL; -function CommandBar_AddToolTips(hwndCB: HWND; cbToolTips : UINT; lpToolTipsStrings : LPTSTR) : BOOL; -function CommandBands_Height(hwndCmdBands : HWND) : UINT; -function CommandBands_IsVisible(hwndCmdBands : HWND) : BOOL; - -{$endif read_interface} - -{$ifdef read_implementation} - -procedure CommandBar_Destroy(hwndCB : HWND); -begin - DestroyWindow(hwndCB); -end; - -function CommandBar_IsVisible(hwndCB : HWND) : BOOL; -begin - CommandBar_IsVisible:=IsWindowVisible(hwndCB); -end; - -function CommandBar_AddButtons(hwndCB : HWND; cbButtons : UINT; lpButtons : LPTBBUTTON) : BOOL; -begin - CommandBar_AddButtons:=BOOL(SendMessage(hwndCB,TB_ADDBUTTONS,WPARAM(cbButtons),LPARAM(lpButtons))); -end; - -function CommandBar_InsertButton(hwndCB : HWND; iButton : longint; lpButton : LPTBBUTTON) : BOOL; -begin - CommandBar_InsertButton:=BOOL(SendMessage(hwndCB,TB_INSERTBUTTON,WPARAM(iButton),LPARAM(lpButton))); -end; - -function CommandBar_AddToolTips(hwndCB: HWND; cbToolTips : UINT; lpToolTipsStrings : LPTSTR) : BOOL; -begin - CommandBar_AddToolTips:=BOOL(SendMessage(hwndCB,TB_SETTOOLTIPS,WPARAM(cbToolTips),LPARAM(lpToolTipsStrings))); -end; - -function CommandBands_Height(hwndCmdBands : HWND) : UINT; -begin - CommandBands_Height:=UINT(SendMessage(hwndCmdBands,RB_GETBARHEIGHT,0,0)); -end; - -function CommandBands_IsVisible(hwndCmdBands : HWND) : BOOL; -begin - CommandBands_IsVisible:=IsWindowVisible(hwndCmdBands); -end; - -{$endif read_implementation} +{ + This file is part of the Free Pascal run time library. + Copyright (c) 2006 Free Pascal development team. + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} + +{ Declarations for commctrl WinCE API + +} + +{exported functions list = to do, + * please remove functions done * + + Exports + + ordinal name + + 73 AddMRUData + 66 AddMRUStringA + 67 AddMRUStringW + 35 CenterWindow + 11 CommandBar_GetItemWindow + 63 CreateMRUListA + 64 CreateMRUListW + 15 CreateToolbar + 50 DPA_Create + 61 DPA_DeleteAllPtrs + 60 DPA_DeletePtr + 31 DPA_Destroy + 56 DPA_DestroyCallback + 32 DPA_GetPtr + 62 DPA_GetPtrIndex + 54 DPA_Grow + 51 DPA_InsertPtr + 59 DPA_Search + 53 DPA_SetPtr + 52 DPA_Sort + 46 DSA_Clone + 23 DSA_Create + 30 DSA_DeleteAllItems + 29 DSA_DeleteItem + 24 DSA_Destroy + 47 DSA_DestroyCallback + 48 DSA_EnumCallback + 25 DSA_GetItem + 26 DSA_GetItemPtr + 27 DSA_InsertItem + 45 DSA_Search + 28 DSA_SetItem + 58 DSA_SetRange + 57 DSA_Sort + 68 DelMRUString + 49 DoReaderMode + 71 EnumMRUListA + 72 EnumMRUListW + 74 FindMRUData + 69 FindMRUStringA + 70 FindMRUStringW + 65 FreeMRUList + 22 InvertRect + 55 IsCapEditAvailable + ListView_SetItemSpacing + 75 PopulateComboWithMRU + 76 PopulateMenuWithMRU + 80 SHCreateDefaultGradient + 79 SHDrawGradient + 81 SHDrawText + 77 SHGetSysColor + 78 SHGetSystemMetrics + 82 SHSetSysColors + 83 SHSetSystemMetrics + 34 StrToIntW + 33 Str_SetPtrW +} + +{$ifdef read_interface} + +//***************************************************************************** +// consts +//***************************************************************************** +const + ComctlDLL = 'commctrl'; + + COMCTL32_VERSION=$020c; + + // Common control shared messages + CCM_FIRST = $2000; + CCM_LAST = CCM_FIRST + $200; + + CCM_SETBKCOLOR = CCM_FIRST + $1; // lParam is bkColor + CCM_SETVERSION = CCM_FIRST + $7; + CCM_GETVERSION = CCM_FIRST + $8; + + //InitCommonControlEx + //I_IMAGENONE = -2; // Desktop listview uses this same value for I_IMAGENONE when (_WIN32_IE >= 0x0501) + + //ICC_LISTVIEW_CLASSES = $00000001; // listview, header + //ICC_TREEVIEW_CLASSES = $00000002; // treeview, tooltips + //ICC_BAR_CLASSES = $00000004; // toolbar, statusbar, trackbar, tooltips + //ICC_TAB_CLASSES = $00000008; // tab, tooltips + //ICC_UPDOWN_CLASS = $00000010; // updown + //ICC_PROGRESS_CLASS = $00000020; // progress + ICC_ANIMATE_CLASS = $00000080; // animate + //ICC_WIN95_CLASSES = $0000007F; + //ICC_DATE_CLASSES = $00000100; // month picker, date picker, time picker, updown + //ICC_COOL_CLASSES = $00000400; // rebar (coolbar) control + //ICC_INTERNET_CLASSES = $00000800; // IP Address control + //ICC_TOOLTIP_CLASSES = $00001000; // Tooltip static & button + //ICC_CAPEDIT_CLASS = $00002000; // All-caps edit control + //ICC_FE_CLASSES = $40000000; // FE specific input subclasses + + LVM_FIRST = $1000; // ListView messages + TV_FIRST = $1100; // TreeView messages + HDM_FIRST = $1200; // Header messages + + //Ranges for control message IDs + LVN_FIRST = (-100); // listview + LVN_LAST = (-199); + HDN_FIRST = (-300); // header + HDN_LAST = (-399); + TVN_FIRST = (-400); // treeview + TVN_LAST = (-499); + TTN_FIRST = (-520); // tooltips + TTN_LAST = (-549); + TCN_FIRST = (-550); // tab control + TCN_LAST = (-580); + // Shell reserved (0U-580U) - (0U-589U) + CDN_FIRST = (-601); // common dialog (new) + CDN_LAST = (-699); + TBN_FIRST = (-700); // toolbar + TBN_LAST = (-720); + UDN_FIRST = (-721); // updown + UDN_LAST = (-740); + MCN_FIRST = (-750); // monthcal + MCN_LAST = (-759); + RBN_FIRST = (-831); // rebar + RBN_LAST = (-859); + IPN_FIRST = (-860); // internet address + IPN_LAST = (-879); // internet address + SBN_FIRST = (-880); // status bar + SBN_LAST = (-900); + SHN_FIRST = (-1400); // Shell reserved + SHN_LAST = (-1500); + + MSGF_COMMCTRL_BEGINDRAG = $4200; + MSGF_COMMCTRL_SIZEHEADER = $4201; + MSGF_COMMCTRL_DRAGSELECT = $4202; + + //Generic WM_NOTIFY notification codes + NM_FIRST = 0; + NM_LAST = -99; + //NM_OUTOFMEMORY = (NM_FIRST-1); + //NM_CLICK = (NM_FIRST-2); + //NM_DBLCLK = (NM_FIRST-3); + //NM_RETURN = (NM_FIRST-4); + //NM_RCLICK = (NM_FIRST-5); + //NM_RDBLCLK = (NM_FIRST-6); + //NM_SETFOCUS = (NM_FIRST-7); + //NM_KILLFOCUS = (NM_FIRST-8); + NM_CUSTOMDRAW = (NM_FIRST-12); + NM_HOVER = (NM_FIRST-13); + NM_NCHITTEST = (NM_FIRST-14); + NM_KEYDOWN = (NM_FIRST-15); + NM_RECOGNIZEGESTURE = (NM_FIRST-50); + + { Header control } + HDM_DELETEITEM = 4610; + HDM_GETITEMW = 4619; + HDM_INSERTITEMW = 4618; + HDM_SETITEMW = 4620; + + HDM_GETITEM = HDM_GETITEMW; + HDM_INSERTITEM = HDM_INSERTITEMW; + HDM_SETITEM = HDM_SETITEMW; + + HDM_GETITEMCOUNT = 4608; + HDM_HITTEST = 4614; + HDM_LAYOUT = 4613; + { Header control notifications } + HDN_BEGINTRACKW = HDN_FIRST-26; + HDN_DIVIDERDBLCLICKW = HDN_FIRST-25; + HDN_ENDTRACKW = HDN_FIRST-27; + HDN_ITEMCHANGEDW = HDN_FIRST-21; + HDN_ITEMCHANGINGW = HDN_FIRST-20; + HDN_ITEMCLICKW = HDN_FIRST-22; + HDN_ITEMDBLCLICKW = HDN_FIRST-23; + HDN_TRACKW = HDN_FIRST-28; + HDN_GETDISPINFOW = HDN_FIRST-29; + HDN_BEGINDRAG = HDN_FIRST-10; + HDN_ENDDRAG = HDN_FIRST-11; + + HDN_BEGINTRACK = HDN_BEGINTRACKW; + HDN_DIVIDERDBLCLICK = HDN_DIVIDERDBLCLICKW; + HDN_ENDTRACK = HDN_ENDTRACKW; + HDN_ITEMCHANGED = HDN_ITEMCHANGEDW; + HDN_ITEMCHANGING = HDN_ITEMCHANGINGW; + HDN_ITEMCLICK = HDN_ITEMCLICKW; + HDN_ITEMDBLCLICK = HDN_ITEMDBLCLICKW; + HDN_TRACK = HDN_TRACKW; + HDN_GETDISPINFO = HDN_GETDISPINFOW; + + // DATETIMEPICK CONTROL + DATETIMEPICK_CLASS ='SysDateTimePick32'; + DTM_FIRST = $1000; + DTM_GETSYSTEMTIME = DTM_FIRST + 1; + DTM_SETSYSTEMTIME = DTM_FIRST + 2; + DTM_GETRANGE = DTM_FIRST + 3; + DTM_SETRANGE = DTM_FIRST + 4; + DTM_SETFORMATA = DTM_FIRST + 5; + DTM_SETMCCOLOR = DTM_FIRST + 6; + DTM_GETMCCOLOR = DTM_FIRST + 7; + DTM_GETMONTHCAL = DTM_FIRST + 8; + DTM_SETMCFONT = DTM_FIRST + 9; + DTM_GETMCFONT = DTM_FIRST + 10; + DTM_SETFORMATW = DTM_FIRST + 50; + DTM_SETFORMAT = DTM_SETFORMATW; + + + DTS_UPDOWN = $0001; + DTS_SHOWNONE = $0002; + DTS_SHORTDATEFORMAT = $0000; + DTS_LONGDATEFORMAT = $0004; + DTS_SHORTDATECENTURYFORMAT = $000C; + DTS_TIMEFORMAT = $0009; + DTS_APPCANPARSE = $0010; + DTS_RIGHTALIGN = $0020; + DTS_NONEBUTTON = $0080; + + //datetimepick + DTN_FIRST =-760; + DTN_LAST =-799; + DTN_DATETIMECHANGE = DTN_FIRST + 1; + DTN_USERSTRINGA = DTN_FIRST + 2; + DTN_WMKEYDOWNA = DTN_FIRST + 3; + DTN_FORMATA = DTN_FIRST + 4; + DTN_FORMATQUERYA = DTN_FIRST + 5; + DTN_DROPDOWN = DTN_FIRST + 6; + DTN_CLOSEUP = DTN_FIRST + 7; + DTN_USERSTRINGW = DTN_FIRST + 15; + DTN_WMKEYDOWNW = DTN_FIRST + 16; + DTN_FORMATW = DTN_FIRST + 17; + DTN_FORMATQUERYW = DTN_FIRST + 18; + + DTN_USERSTRING = DTN_USERSTRINGW; + + GDTR_MIN = $0001; + GDTR_MAX = $0002; + + GDT_ERROR = -1; + GDT_VALID = 0; + GDT_NONE = 1; + + //TOOLBAR CONTROL + //TOOLBARCLASSNAMEW = 'ToolbarWindow32'; + //TOOLBARCLASSNAME = TOOLBARCLASSNAMEW; + + TBIF_IMAGE = $00000001; + TBIF_TEXT = $00000002; + TBIF_STATE = $00000004; + TBIF_STYLE = $00000008; + TBIF_LPARAM = $00000010; + TBIF_COMMAND = $00000020; + TBIF_SIZE = $00000040; + + // BUTTONINFO APIs + TB_GETBUTTONINFOW = (WM_USER + 63); + TB_SETBUTTONINFOW = (WM_USER + 64); + TB_GETBUTTONINFO = TB_GETBUTTONINFOW; + TB_SETBUTTONINFO = TB_SETBUTTONINFOW; + + TB_INSERTBUTTONW = (WM_USER + 67); + TB_ADDBUTTONSW = (WM_USER + 68); + TB_HITTEST = (WM_USER + 69); + + //TB_INSERTBUTTON = TB_INSERTBUTTONW; + //TB_ADDBUTTONS = TB_ADDBUTTONSW; + + TB_SETDRAWTEXTFLAGS = (WM_USER + 70); + + //TBN_GETBUTTONINFOW = (TBN_FIRST-20); + //TBN_BEGINDRAG = (TBN_FIRST-1); + //TBN_ENDDRAG = (TBN_FIRST-2); + TBN_DROPDOWN = (TBN_FIRST - 10); + TBN_DRAGOUT = (TBN_FIRST - 14); + //TBN_GETBUTTONINFO = TBN_GETBUTTONINFOW; + + // custom draw return flags + // values under 0x00010000 are reserved for global custom draw values. + // above that are for specific controls + CDRF_DODEFAULT = $00000000; + CDRF_NEWFONT = $00000002; + CDRF_SKIPDEFAULT = $00000004; + CDRF_NOTIFYPOSTPAINT = $00000010; + CDRF_NOTIFYITEMDRAW = $00000020; + CDRF_NOTIFYSUBITEMDRAW = $00000020; // flags are the same, we can distinguish by context + CDRF_NOTIFYPOSTERASE = $00000040; + + // drawstage flags + // values under = $00010000 are reserved for global custom draw values. + // above that are for specific controls + CDDS_PREPAINT = $00000001; + CDDS_POSTPAINT = $00000002; + CDDS_PREERASE = $00000003; + CDDS_POSTERASE = $00000004; + // the = $000010000 bit means it's individual item specific + CDDS_ITEM = $00010000; + CDDS_ITEMPREPAINT = CDDS_ITEM or CDDS_PREPAINT; + CDDS_ITEMPOSTPAINT = CDDS_ITEM or CDDS_POSTPAINT; + CDDS_ITEMPREERASE = CDDS_ITEM or CDDS_PREERASE; + CDDS_ITEMPOSTERASE = CDDS_ITEM or CDDS_POSTERASE; + CDDS_SUBITEM = $00020000; + + // Pocket PC special controls + WC_CAPEDIT = 'CAPEDIT'; + WC_TSTATIC = 'TTSTATIC'; + WC_TBUTTON = 'TTBUTTON'; + + // for FE, single byte character edit + WC_SBEDIT = 'sbedit'; + + // REBAR CONTROL + REBARCLASSNAME = 'ReBarWindow'; + + RBIM_IMAGELIST = $00000001; + RBS_VARHEIGHT = $0200; + RBS_BANDBORDERS = $0400; + RBS_FIXEDORDER = $0800; + RBS_SMARTLABELS = $1000; + RBS_AUTOSIZE = $2000; + RBS_VERTICALGRIPPER = $4000; { this always has the vertical gripper (default for horizontal mode) } + + RBBS_BREAK = $00000001; { break to new line } + RBBS_FIXEDSIZE = $00000002; { band can't be sized } + RBBS_CHILDEDGE = $00000004; { edge around top & bottom of child window } + RBBS_HIDDEN = $00000008; { don't show } + RBBS_NOVERT = $00000010; { don't show when vertical } + RBBS_FIXEDBMP = $00000020; { bitmap doesn't move during band resize } + RBBS_VARIABLEHEIGHT = $00000040; { allow autosizing of this child vertically } + RBBS_GRIPPERALWAYS = $00000080; { always show the gripper } + RBBS_NOGRIPPER = $00000100; { never show gripper for this band } + + RBBIM_STYLE = $00000001; + RBBIM_COLORS = $00000002; + RBBIM_TEXT = $00000004; + RBBIM_IMAGE = $00000008; + RBBIM_CHILD = $00000010; + RBBIM_CHILDSIZE = $00000020; + RBBIM_SIZE = $00000040; + RBBIM_BACKGROUND = $00000080; + RBBIM_ID = $00000100; + RBBIM_IDEALSIZE = $00000200; + RBBIM_LPARAM = $00000400; + + RB_DELETEBAND = WM_USER+2; + RB_GETBARINFO = WM_USER+3; + RB_SETBARINFO = WM_USER+4; + RB_SETPARENT = WM_USER+7; + RB_HITTEST = WM_USER+8; + RB_GETRECT = WM_USER+9; + RB_INSERTBANDW = WM_USER+10; + RB_SETBANDINFOW = WM_USER+11; + RB_GETBANDCOUNT = WM_USER+12; + RB_GETROWCOUNT = WM_USER+13; + RB_GETROWHEIGHT = WM_USER+14; + RB_IDTOINDEX = WM_USER+16; { wParam == id } + RB_SETBKCOLOR = WM_USER+19; { sets the default BK color } + RB_GETBKCOLOR = WM_USER+20; { defaults to CLR_NONE } + RB_SETTEXTCOLOR = WM_USER+21; + RB_GETTEXTCOLOR = WM_USER+22; { defaults to 0x00000000 } + RB_SIZETORECT = WM_USER+23; { resize the rebar/break bands and such to this rect (lparam) } + RB_INSERTBAND = RB_INSERTBANDW; + RB_SETBANDINFO = RB_SETBANDINFOW; + RB_BEGINDRAG = WM_USER+24; + RB_ENDDRAG = WM_USER+25; + RB_DRAGMOVE = WM_USER+26; + RB_GETBARHEIGHT = WM_USER+27; + RB_GETBANDINFOW = WM_USER+28; + RB_GETBANDINFO = RB_GETBANDINFOW; + RB_MINIMIZEBAND = WM_USER+30; + RB_MAXIMIZEBAND = WM_USER+31; + RB_GETBANDBORDERS = WM_USER+34; { returns in lparam = lprc the amount of edges added to band wparam } + RB_SHOWBAND = WM_USER+35; { show/hide band } + RB_MOVEBAND = WM_USER+36; + + RBN_HEIGHTCHANGE = RBN_FIRST-0; + RBN_LAYOUTCHANGED = RBN_FIRST-2; + RBN_AUTOSIZE = RBN_FIRST-3; + RBN_BEGINDRAG = RBN_FIRST-4; + RBN_ENDDRAG = RBN_FIRST-5; + + RBHT_NOWHERE = $0001; + RBHT_CAPTION = $0002; + RBHT_CLIENT = $0003; + RBHT_GRABBER = $0004; + +//***************************************************************************** +// types +//***************************************************************************** + +type + // DATETIMEPICK CONTROL + tagNMDATETIMECHANGE = record + nmhdr : NMHDR; + dwFlags : DWORD; + st : SYSTEMTIME; + end; + NMDATETIMECHANGE=tagNMDATETIMECHANGE; + TNMDATETIMECHANGE=tagNMDATETIMECHANGE; + LPNMDATETIMECHANGE=^tagNMDATETIMECHANGE; + + tagNMDATETIMESTRINGW = record + nmhdr : NMHDR; + pszUserString : LPCWSTR; + st : SYSTEMTIME; + dwFlags : DWORD; + end; + NMDATETIMESTRINGW=tagNMDATETIMESTRINGW; + TNMDATETIMESTRINGW=tagNMDATETIMESTRINGW; + LPNMDATETIMESTRINGW=^tagNMDATETIMESTRINGW; + NMDATETIMESTRING=tagNMDATETIMESTRINGW; + TNMDATETIMESTRING=tagNMDATETIMESTRINGW; + PNMDATETIMESTRING=^tagNMDATETIMESTRINGW; + + tagNMDATETIMEWMKEYDOWNA = record + nmhdr : NMHDR; + nVirtKey : integer; + pszFormat : LPCSTR; + st : SYSTEMTIME; + end; + NMDATETIMEWMKEYDOWNA=tagNMDATETIMEWMKEYDOWNA; + TNMDATETIMEWMKEYDOWNA=tagNMDATETIMEWMKEYDOWNA; + LPNMDATETIMEWMKEYDOWNA=^tagNMDATETIMEWMKEYDOWNA; + + tagNMDATETIMEWMKEYDOWNW = record + nmhdr : NMHDR; + nVirtKey : integer; + pszFormat : LPCWSTR; + st : SYSTEMTIME; + end; + NMDATETIMEWMKEYDOWNW=tagNMDATETIMEWMKEYDOWNW; + TNMDATETIMEWMKEYDOWNW=tagNMDATETIMEWMKEYDOWNW; + LPNMDATETIMEWMKEYDOWNW=^tagNMDATETIMEWMKEYDOWNW; + + + tagNMDATETIMEFORMATA = record + nmhdr : NMHDR; + pszFormat : LPCSTR; + st : SYSTEMTIME; + pszDisplay : LPCSTR; + szDisplay : Array[0..63] of CHAR; + end; + NMDATETIMEFORMATA=tagNMDATETIMEFORMATA; + TNMDATETIMEFORMATA=tagNMDATETIMEFORMATA; + LPNMDATETIMEFORMATA=^NMDATETIMEFORMATA; + + tagNMDATETIMEFORMATW = record + nmhdr : NMHDR; + pszFormat : LPCWSTR; + st : SYSTEMTIME; + pszDisplay : LPCWSTR; + szDisplay : Array[0..63] of WCHAR; + end; + NMDATETIMEFORMATW=tagNMDATETIMEFORMATW; + TNMDATETIMEFORMATW=tagNMDATETIMEFORMATW; + LPNMDATETIMEFORMATW=^NMDATETIMEFORMATW; + + + tagNMDATETIMEFORMATQUERYA = record + nmhdr : NMHDR; + pszFormat : LPCSTR; + szMax : SIZE; + end; + NMDATETIMEFORMATQUERYA=tagNMDATETIMEFORMATQUERYA; + TNMDATETIMEFORMATQUERYA=tagNMDATETIMEFORMATQUERYA; + LPNMDATETIMEFORMATQUERYA=^tagNMDATETIMEFORMATQUERYA; + + tagNMDATETIMEFORMATQUERYW = record + nmhdr : NMHDR; + pszFormat : LPCWSTR; + szMax : SIZE; + end; + NMDATETIMEFORMATQUERYW=tagNMDATETIMEFORMATQUERYW; + TNMDATETIMEFORMATQUERYW=tagNMDATETIMEFORMATQUERYW; + LPNMDATETIMEFORMATQUERYW=^tagNMDATETIMEFORMATQUERYW; + + //Generic structure for a key + tagNMKEY = Record + hdr : NMHDR; + wVKey : WORD; + flags : UINT; + end; + NMKEY=tagNMKEY; + LPNMKEY=^NMKEY; + + //Generic WM_NOTIFY notification structures + tagNMMOUSE = Record + hdr : NMHDR; + dwItemSpec : DWORD; + dwItemData : DWORD; + pt : POINT; + end; + NMMOUSE=tagNMMOUSE; + LPNMMOUSE=^NMMOUSE; + PNMMOUSE=^NMMOUSE; + NMCLICK=NMMOUSE; + LPNMCLICK=LPNMMOUSE; + + //TOOLBAR CONTROL + TBBUTTONINFOW = record + cbSize : UINT; + dwMask : DWORD; + idCommand : Longint; + iImage : Longint; + fsState : BYTE; + fsStyle : BYTE; + cx : WORD; + lParam : DWORD; + pszText : LPWSTR; + cchText : Longint; + end; + LPTBBUTTONINFOW=^TBBUTTONINFOW; + TBBUTTONINFO=TBBUTTONINFOW; + TTBButtonInfo=TBBUTTONINFO; + + tagNMCUSTOMDRAWINFO = packed record + hdr: TNMHdr; + dwDrawStage: DWORD; + hdc: HDC; + rc: TRect; + dwItemSpec: DWORD; + uItemState: UINT; + lItemlParam: LPARAM; + end; + PNMCustomDraw = ^TNMCustomDraw; + TNMCustomDraw = tagNMCUSTOMDRAWINFO; + + tagNMLVCUSTOMDRAW = packed record + nmcd: TNMCustomDraw; + clrText: COLORREF; + clrTextBk: COLORREF; + iSubItem: Integer; + end; + PNMLVCustomDraw = ^TNMLVCustomDraw; + TNMLVCustomDraw = tagNMLVCUSTOMDRAW; + + tagNMLVODSTATECHANGE = packed record + hdr: TNMHdr; + iFrom: Integer; + iTo: Integer; + uNewState: UINT; + uOldState: UINT; + end; + PNMLVODStateChange = ^TNMLVODStateChange; + TNMLVODStateChange = tagNMLVODSTATECHANGE; + + tagREBARINFO = record + cbSize : UINT; + fMask : UINT; + himl : HIMAGELIST; + end; + REBARINFO = tagREBARINFO; + LPREBARINFO = ^tagREBARINFO; + + tagREBARBANDINFOW = record + cbSize : UINT; + fMask : UINT; + fStyle : UINT; + clrFore : COLORREF; + clrBack : COLORREF; + lpText : LPWSTR; + cch : UINT; + iImage : longint; + hwndChild : HWND; + cxMinChild : UINT; + cyMinChild : UINT; + cx : UINT; + hbmBack : HBITMAP; + wID : UINT; + cyChild : UINT; + cyMaxChild : UINT; + cyIntegral : UINT; + cxIdeal : UINT; + lParam : LPARAM; + end; + REBARBANDINFOW = tagREBARBANDINFOW; + LPREBARBANDINFOW = ^tagREBARBANDINFOW; + LPCREBARBANDINFOW = REBARBANDINFOW; + REBARBANDINFO = REBARBANDINFOW; + LPREBARBANDINFO = LPREBARBANDINFOW; + LPCREBARBANDINFO = LPCREBARBANDINFOW; + + tagNMREBAR = record + hdr : NMHDR; + uBand : UINT; + wID : UINT; + cyChild : UINT; + cyBand : UINT; + end; + NMREBAR = tagNMREBAR; + LPNMREBAR = ^tagNMREBAR; + + tagNMRBAUTOSIZE = record + hdr : NMHDR; + fChanged : BOOL; + rcTarget : RECT; + rcActual : RECT; + end; + NMRBAUTOSIZE = tagNMRBAUTOSIZE; + LPNMRBAUTOSIZE = ^tagNMRBAUTOSIZE; + + _RB_HITTESTINFO = record + pt : POINT; + flags : UINT; + iBand : longint; + end; + RBHITTESTINFO = _RB_HITTESTINFO; + LPRBHITTESTINFO = ^_RB_HITTESTINFO; + + tagCOMMANDBANDSRESTOREINFO = record + cbSize : UINT; + wID : UINT; + fStyle : UINT; + cxRestored : UINT; + fMaximized : BOOL; + end; + COMMANDBANDSRESTOREINFO = tagCOMMANDBANDSRESTOREINFO; + LPCOMMANDBANDSRESTOREINFO = ^tagCOMMANDBANDSRESTOREINFO; + LPCCOMMANDBANDSRESTOREINFO = COMMANDBANDSRESTOREINFO; + +//***************************************************************************** +// functions +//***************************************************************************** + +function CreatePropertySheetPage(lppsp:LPCPROPSHEETPAGE):HPROPSHEETPAGE; external ComctlDLL name 'CreatePropertySheetPageW'; +function CreatePropertySheetPageW(lppsp:LPCPROPSHEETPAGE):HPROPSHEETPAGE; external ComctlDLL name 'CreatePropertySheetPageW'; +function CreateStatusWindow(style:LONG; lpszText:LPCWSTR; hwndParent:HWND; wID:UINT):HWND; external ComctlDll name 'CreateStatusWindowW'; +function CreateStatusWindowW(style:LONG; lpszText:LPCWSTR; hwndParent:HWND; wID:UINT):HWND; external ComctlDll name 'CreateStatusWindowW'; +function CreateToolbarEx(hwnd:HWND; ws:DWORD; wID:UINT; nBitmaps:longint; hBMInst:HINST;wBMID:UINT; lpButtons:LPCTBBUTTON; iNumButtons:longint; dxButton:longint; dyButton:longint;dxBitmap:longint; + dyBitmap:longint; uStructSize:UINT):HWND; external ComctlDLL name 'CreateToolbarEx'; +function CreateUpDownControl(dwStyle:DWORD; x:longint; y:longint; cx:longint; cy:longint;hParent:HWND; nID:longint; hInst:HINST; hBuddy:HWND; nUpper:longint;nLower:longint; nPos:longint):HWND; external ComctlDLL name 'CreateUpDownControl'; +function DestroyPropertySheetPage(hPSPage:HPROPSHEETPAGE):WINBOOL; external ComctlDLL name 'DestroyPropertySheetPage'; +procedure DrawStatusText(hDC:HDC; lprc:LPRECT; pszText:LPCWSTR; uFlags:UINT); external ComctlDLL name 'DrawStatusTextW'; +procedure DrawStatusTextW(hDC:HDC; lprc:LPRECT; pszText:LPCWSTR; uFlags:UINT); external ComctlDLL name 'DrawStatusTextW'; +procedure InitCommonControls; external ComctlDLL name 'InitCommonControls'; +function InitCommonControlsEx(_para1:LPINITCOMMONCONTROLSEX):WINBOOL; external ComctlDLL name 'InitCommonControlsEx'; +function PropertySheet(lppsph:LPCPROPSHEETHEADER):longint; external ComctlDll name 'PropertySheetW'; +function PropertySheetW(lppsph:LPCPROPSHEETHEADER):longint; external ComctlDll name 'PropertySheetW'; + +function CommandBands_AddAdornments(hwndCmdBands:HWND; hinst:THandle; dwFlags:DWORD; prbbi:LPREBARBANDINFO):BOOL;external ComctlDll name 'CommandBands_AddAdornments'; +function CommandBands_AddBands(hwndCmdBands:HWND; hinst:THandle; cBands:UINT; prbbi:LPREBARBANDINFO):BOOL;external ComctlDll name 'CommandBands_AddBands'; +function CommandBands_Create(hinst:THandle; hwndParent:HWND; wID:UINT; dwStyles:DWORD; himl:HIMAGELIST):HWND;external ComctlDll name 'CommandBands_Create'; +function CommandBands_GetCommandBar(hwndCmdBands:HWND; uBand:UINT):HWND;external ComctlDll name 'CommandBands_GetCommandBar'; +function CommandBands_GetRestoreInformation(hwndCmdBands:HWND; uBand:UINT; pcbri:LPCOMMANDBANDSRESTOREINFO):BOOL;external ComctlDll name 'CommandBands_GetRestoreInformation'; +function CommandBands_Show(hwndCmdBands:HWND; fShow:BOOL):BOOL;external ComctlDll name 'CommandBands_Show'; +function CommandBar_AddAdornments(hwndCB:HWND; dwFlags:DWORD; dwReserved:DWORD):BOOL;external ComctlDll name 'CommandBar_AddAdornments'; +function CommandBar_AddBitmap(hwndCB:HWND; hInst:THandle; idBitmap:longint; iNumImages:longint; iImageWidth:longint; iImageHeight:longint):longint;external ComctlDll name 'CommandBar_AddBitmap'; +function CommandBar_Create(hInst:THandle; hwndParent:HWND; idCmdBar:longint):HWND;external ComctlDll name 'CommandBar_Create'; +function CommandBar_DrawMenuBar(hwndCB:HWND; iButton:WORD):BOOL;external ComctlDll name 'CommandBar_DrawMenuBar'; +function CommandBar_GetMenu(hwndCB:HWND; iButton:WORD):HMENU;external ComctlDll name 'CommandBar_GetMenu'; +function CommandBar_Height(hwndCB:HWND):longint;external ComctlDll name 'CommandBar_Height'; +function CommandBar_InsertComboBox(hwndCB:HWND; THandle:THandle; iWidth:longint; dwStyle:UINT; idComboBox:WORD; iButton:WORD):HWND;external ComctlDll name 'CommandBar_InsertComboBox'; +function CommandBar_InsertMenubar(hwndCB:HWND; hInst:THandle; idMenu:WORD; iButton:WORD):BOOL;external ComctlDll name 'CommandBar_InsertMenubar'; +function CommandBar_InsertMenubarEx(hwndCB:HWND; hinst:THandle; pszMenu:LPTSTR; iButton:WORD):BOOL;external ComctlDll name 'CommandBar_InsertMenubarEx'; +function CommandBar_Show(hwndCB:HWND; fShow:BOOL):BOOL;external ComctlDll name 'CommandBar_Show'; +function IsCommandBarMessage(hwndCB:HWND; lpMsg:LPMSG):BOOL;external ComctlDll name 'IsCommandBarMessage'; +procedure CommandBar_Destroy(hwndCB : HWND); +function CommandBar_IsVisible(hwndCB : HWND) : BOOL; +function CommandBar_AddButtons(hwndCB : HWND; cbButtons : UINT; lpButtons : LPTBBUTTON) : BOOL; +function CommandBar_InsertButton(hwndCB : HWND; iButton : longint; lpButton : LPTBBUTTON) : BOOL; +function CommandBar_AddToolTips(hwndCB: HWND; cbToolTips : UINT; lpToolTipsStrings : LPTSTR) : BOOL; +function CommandBands_Height(hwndCmdBands : HWND) : UINT; +function CommandBands_IsVisible(hwndCmdBands : HWND) : BOOL; + +{$endif read_interface} + +{$ifdef read_implementation} + +procedure CommandBar_Destroy(hwndCB : HWND); +begin + DestroyWindow(hwndCB); +end; + +function CommandBar_IsVisible(hwndCB : HWND) : BOOL; +begin + CommandBar_IsVisible:=IsWindowVisible(hwndCB); +end; + +function CommandBar_AddButtons(hwndCB : HWND; cbButtons : UINT; lpButtons : LPTBBUTTON) : BOOL; +begin + CommandBar_AddButtons:=BOOL(SendMessage(hwndCB,TB_ADDBUTTONS,WPARAM(cbButtons),LPARAM(lpButtons))); +end; + +function CommandBar_InsertButton(hwndCB : HWND; iButton : longint; lpButton : LPTBBUTTON) : BOOL; +begin + CommandBar_InsertButton:=BOOL(SendMessage(hwndCB,TB_INSERTBUTTON,WPARAM(iButton),LPARAM(lpButton))); +end; + +function CommandBar_AddToolTips(hwndCB: HWND; cbToolTips : UINT; lpToolTipsStrings : LPTSTR) : BOOL; +begin + CommandBar_AddToolTips:=BOOL(SendMessage(hwndCB,TB_SETTOOLTIPS,WPARAM(cbToolTips),LPARAM(lpToolTipsStrings))); +end; + +function CommandBands_Height(hwndCmdBands : HWND) : UINT; +begin + CommandBands_Height:=UINT(SendMessage(hwndCmdBands,RB_GETBARHEIGHT,0,0)); +end; + +function CommandBands_IsVisible(hwndCmdBands : HWND) : BOOL; +begin + CommandBands_IsVisible:=IsWindowVisible(hwndCmdBands); +end; + +{$endif read_implementation} diff --git a/rtl/wince/wininc/defines.inc b/rtl/wince/wininc/defines.inc index ec84800968..d4f94aaa58 100644 --- a/rtl/wince/wininc/defines.inc +++ b/rtl/wince/wininc/defines.inc @@ -1,5766 +1,5766 @@ -{ - This file is part of the Free Pascal run time library. - This unit contains the constant definitions for the Win32 API - Copyright (c) 1999-2000 by Florian Klaempfl, - member of the Free Pascal development team. - - See the file COPYING.FPC, included in this distribution, - for details about the copyright. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - - **********************************************************************} - -{ - Defines.h - - Windows32 API definitions - - Copyright (C) 1996, 1997 Free Software Foundation, Inc. - - Author: Scott Christley - - This file is part of the Windows32 API Library. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - If you are interested in a warranty or support for this source code, - contact Scott Christley for more information. - - License along with this library; see the file COPYING.LIB. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - - -} - - -{$ifdef read_interface} - - -{$PACKRECORDS C} - - - const - UNICODE_NULL = widechar(#0); - NULL=0; //+windef - //FALSE=0; //+windef, removed can't compile - //TRUE=1; //+windef, removed can't compile - MAX_PATH = 260; //windef - LF_FACESIZE = 32; - LF_FULLFACESIZE = 64; - ELF_VENDOR_SIZE = 4; - SECURITY_STATIC_TRACKING = 0; - SECURITY_DYNAMIC_TRACKING = 1; - MAX_DEFAULTCHAR = 2; - MAX_LEADBYTES = 12; - EXCEPTION_MAXIMUM_PARAMETERS = 15; //winnt - CCHDEVICENAME = 32; - CCHFORMNAME = 32; - MENU_TEXT_LEN = 40; - MAX_LANA = 254; - NCBNAMSZ = 16; - NETBIOS_NAME_LEN = 16; - OFS_MAXPATHNAME = 128; - MAX_TAB_STOPS = 32; - RAS_MaxCallbackNumber = 128; - RAS_MaxDeviceName = 128; - RAS_MaxDeviceType = 16; - RAS_MaxEntryName = 256; - RAS_MaxIpAddress = 15; - RAS_MaxIpxAddress = 21; - RAS_MaxPhoneNumber = 128; - UNLEN = 256; - PWLEN = 256; - CNLEN = 15; - DNLEN = 15; - { Unsigned types max } - MAXDWORD = $FFFFFFFF; //winnt - MAXWORD = $FFFF; //winnt - MAXBYTE = $FF; //winnt - { Signed types max/min } - MINCHAR = $80; //winnt - MAXCHAR = $7F; //winnt - MINSHORT = $8000; //winnt - MAXSHORT = $7FFF; //winnt - MINLONG = $80000000; //winnt - MAXLONG = $7FFFFFFF; //winnt - { _llseek } - FILE_BEGIN = 0; - FILE_CURRENT = 1; - FILE_END = 2; - { _lopen, LZOpenFile, OpenFile } - OF_READ = 0; - OF_READWRITE = 2; - OF_WRITE = 1; - OF_SHARE_COMPAT = 0; - OF_SHARE_DENY_NONE = 64; - OF_SHARE_DENY_READ = 48; - OF_SHARE_DENY_WRITE = 32; - OF_SHARE_EXCLUSIVE = 16; - OF_CANCEL = 2048; - OF_CREATE = 4096; - OF_DELETE = 512; - OF_EXIST = 16384; - OF_PARSE = 256; - OF_PROMPT = 8192; - OF_REOPEN = 32768; - OF_VERIFY = 1024; - { ActivateKeyboardLayout, LoadKeyboardLayout } - HKL_NEXT = 1; - HKL_PREV = 0; - KLF_REORDER = 8; - KLF_UNLOADPREVIOUS = 4; - KLF_ACTIVATE = 1; - KLF_NOTELLSHELL = 128; - KLF_REPLACELANG = 16; - KLF_SUBSTITUTE_OK = 2; - { AppendMenu } - MF_BITMAP = $4; - MF_DISABLED = $2; - MF_ENABLED = 0; - MF_GRAYED = $1; - MF_HELP = $4000; - MF_MENUBARBREAK = $20; - MF_MENUBREAK = $40; - MF_MOUSESELECT = $8000; - MF_OWNERDRAW = $100; - MF_POPUP = $10; - MF_SEPARATOR = $800; - MF_STRING = 0; - MF_SYSMENU = $2000; - MF_USECHECKBITMAPS = $200; - { Ternary Raster Operations - BitBlt } - BLACKNESS = $00000042; - NOTSRCERASE = $001100A6; - NOTSRCCOPY = $00330008; - SRCERASE = $00440328; - DSTINVERT = $00550009; - PATINVERT = $005A0049; - SRCINVERT = $00660046; - SRCAND = $008800C6; - MERGEPAINT = $00BB0226; - MERGECOPY = $00C000CA; - SRCCOPY = $00CC0020; - SRCPAINT = $00EE0086; - PATCOPY = $00F00021; - PATPAINT = $00FB0A09; - WHITENESS = $00FF0062; - { Binary Raster Operations } - R2_BLACK = 1; - R2_COPYPEN = 13; - R2_MASKNOTPEN = 3; - R2_MASKPEN = 9; - R2_MASKPENNOT = 5; - R2_MERGENOTPEN = 12; - R2_MERGEPEN = 15; - R2_MERGEPENNOT = 14; - R2_NOP = 11; - R2_NOT = 6; - R2_NOTCOPYPEN = 4; - R2_NOTMASKPEN = 8; - R2_NOTMERGEPEN = 2; - R2_NOTXORPEN = 10; - R2_WHITE = 16; - R2_XORPEN = 7; - { BroadcastSystemMessage } - BSF_FLUSHDISK = 4; - BSF_FORCEIFHUNG = 32; - BSF_IGNORECURRENTTASK = 2; - BSF_NOHANG = 8; - BSF_POSTMESSAGE = 16; - BSF_QUERY = 1; - BSM_ALLCOMPONENTS = 0; - BSM_APPLICATIONS = 8; - BSM_INSTALLABLEDRIVERS = 4; - BSM_NETDRIVER = 2; - BSM_VXDS = 1; - BROADCAST_QUERY_DENY = 1112363332; - { CascadeWindows, TileWindows } - MDITILE_SKIPDISABLED = 2; - MDITILE_HORIZONTAL = 1; - MDITILE_VERTICAL = 0; - { CBTProc } - HCBT_ACTIVATE = 5; - HCBT_CLICKSKIPPED = 6; - HCBT_CREATEWND = 3; - HCBT_DESTROYWND = 4; - HCBT_KEYSKIPPED = 7; - HCBT_MINMAX = 1; - HCBT_MOVESIZE = 0; - HCBT_QS = 2; - HCBT_SETFOCUS = 9; - HCBT_SYSCOMMAND = 8; - { ChangeDisplaySettings } - DM_BITSPERPEL = $40000; - DM_PELSWIDTH = $80000; - DM_PELSHEIGHT = $100000; - DM_DISPLAYFLAGS = $200000; - DM_DISPLAYFREQUENCY = $400000; - DM_DISPLAYORIENTATION = $00800000; - DM_DISPLAYQUERYORIENTATION = $01000000; - { rotation angle for screen rotation } - DMDO_0 = 0; - DMDO_90 = 1; - DMDO_180 = 2; - DMDO_270 = 4; - DMDO_DEFAULT = DMDO_0; - - CDS_UPDATEREGISTRY = 1; - CDS_TEST = 2; - CDS_FULLSCREEN = 4; - CDS_GLOBAL = 8; - CDS_SET_PRIMARY = $10; - CDS_RESET = $40000000; - CDS_SETRECT = $20000000; - CDS_NORESET = $10000000; - DISP_CHANGE_SUCCESSFUL = 0; - DISP_CHANGE_RESTART = 1; - DISP_CHANGE_BADFLAGS = -(4); - DISP_CHANGE_FAILED = -(1); - DISP_CHANGE_BADMODE = -(2); - DISP_CHANGE_NOTUPDATED = -(3); - { ChangeServiceConfig } - SERVICE_NO_CHANGE = -(1); - SERVICE_WIN32_OWN_PROCESS = 16; - SERVICE_WIN32_SHARE_PROCESS = 32; - SERVICE_KERNEL_DRIVER = 1; - SERVICE_FILE_SYSTEM_DRIVER = 2; - SERVICE_INTERACTIVE_PROCESS = 256; - SERVICE_BOOT_START = 0; - SERVICE_SYSTEM_START = 1; - SERVICE_AUTO_START = 2; - SERVICE_DEMAND_START = 3; - SERVICE_DISABLED = 4; - { SERVICE_STATUS structure } - SERVICE_STOPPED = 1; - SERVICE_START_PENDING = 2; - SERVICE_STOP_PENDING = 3; - SERVICE_RUNNING = 4; - SERVICE_CONTINUE_PENDING = 5; - SERVICE_PAUSE_PENDING = 6; - SERVICE_PAUSED = 7; - SERVICE_ACCEPT_STOP = 1; - SERVICE_ACCEPT_PAUSE_CONTINUE = 2; - SERVICE_ACCEPT_SHUTDOWN = 4; - { CheckDlgButton } - BST_CHECKED = 1; - BST_INDETERMINATE = 2; - BST_UNCHECKED = 0; - BST_FOCUS = 8; - BST_PUSHED = 4; - { CheckMenuItem, HiliteMenuItem } - MF_BYCOMMAND = 0; - MF_BYPOSITION = $400; - MF_CHECKED = $8; - MF_UNCHECKED = 0; - MF_HILITE = $80; - MF_UNHILITE = 0; - { ChildWindowFromPointEx } - CWP_ALL = 0; - CWP_SKIPINVISIBLE = 1; - CWP_SKIPDISABLED = 2; - CWP_SKIPTRANSPARENT = 4; - { ClearCommError } - CE_BREAK = 16; - CE_DNS = 2048; - CE_FRAME = 8; - CE_IOE = 1024; - CE_MODE = 32768; - CE_OOP = 4096; - CE_OVERRUN = 2; - CE_PTO = 512; - CE_RXOVER = 1; - CE_RXPARITY = 4; - CE_TXFULL = 256; - { ChooseMatchToTarget } - { CombineRgn } - RGN_AND = 1; - RGN_COPY = 5; - RGN_DIFF = 4; - RGN_OR = 2; - RGN_XOR = 3; - NULLREGION = 1; - SIMPLEREGION = 2; - COMPLEXREGION = 3; - ERROR = 0; - { CommonDlgExtendedError } - CDERR_DIALOGFAILURE = $ffff; - CDERR_FINDRESFAILURE = 6; - CDERR_INITIALIZATION = 2; - CDERR_LOADRESFAILURE = 7; - CDERR_LOADSTRFAILURE = 5; - CDERR_LOCKRESFAILURE = 8; - CDERR_MEMALLOCFAILURE = 9; - CDERR_MEMLOCKFAILURE = 10; - CDERR_NOHINSTANCE = 4; - CDERR_NOHOOK = 11; - CDERR_NOTEMPLATE = 3; - CDERR_REGISTERMSGFAIL = 12; - CDERR_STRUCTSIZE = 1; - PDERR_CREATEICFAILURE = $1000 + 10; - PDERR_DEFAULTDIFFERENT = $1000 + 12; - PDERR_DNDMMISMATCH = $1000 + 9; - PDERR_GETDEVMODEFAIL = $1000 + 5; - PDERR_INITFAILURE = $1000 + 6; - PDERR_LOADDRVFAILURE = $1000 + 4; - PDERR_NODEFAULTPRN = $1000 + 8; - PDERR_NODEVICES = $1000 + 7; - PDERR_PARSEFAILURE = $1000 + 2; - PDERR_PRINTERNOTFOUND = $1000 + 11; - PDERR_RETDEFFAILURE = $1000 + 3; - PDERR_SETUPFAILURE = $1000 + 1; - CFERR_MAXLESSTHANMIN = $2000 + 2; - CFERR_NOFONTS = $2000 + 1; - FNERR_BUFFERTOOSMALL = $3000 + 3; - FNERR_INVALIDFILENAME = $3000 + 2; - FNERR_SUBCLASSFAILURE = $3000 + 1; - FRERR_BUFFERLENGTHZERO = $4000 + 1; - { CompareString, LCMapString } - //LOCALE_SYSTEM_DEFAULT = $800; //-winnt, replaced by function - //LOCALE_USER_DEFAULT = $400; //-winnt, replaced by function - NORM_IGNORECASE = 1; - NORM_IGNOREKANATYPE = 65536; - NORM_IGNORENONSPACE = 2; - NORM_IGNORESYMBOLS = 4; - NORM_IGNOREWIDTH = 131072; - SORT_STRINGSORT = 4096; - LCMAP_BYTEREV = 2048; - LCMAP_FULLWIDTH = 8388608; - LCMAP_HALFWIDTH = 4194304; - LCMAP_HIRAGANA = 1048576; - LCMAP_KATAKANA = 2097152; - LCMAP_LOWERCASE = 256; - LCMAP_SORTKEY = 1024; - LCMAP_UPPERCASE = 512; - { ContinueDebugEvent } - DBG_CONTINUE = $10002; - DBG_CONTROL_BREAK = $40010008; - DBG_CONTROL_C = $40010005; - DBG_EXCEPTION_NOT_HANDLED = $80010001; - DBG_TERMINATE_THREAD = $40010003; - DBG_TERMINATE_PROCESS = $40010004; - { ControlService } - SERVICE_CONTROL_STOP = 1; - SERVICE_CONTROL_PAUSE = 2; - SERVICE_CONTROL_CONTINUE = 3; - SERVICE_CONTROL_INTERROGATE = 4; - SERVICE_CONTROL_SHUTDOWN = 5; - { CopyImage, LoadImage } - IMAGE_BITMAP = 0; - IMAGE_CURSOR = 2; - IMAGE_ENHMETAFILE = 1; - IMAGE_ICON = 1; - LR_COPYDELETEORG = 8; - LR_COPYRETURNORG = 4; - LR_MONOCHROME = 1; - LR_CREATEDIBSECTION = 8192; - LR_DEFAULTSIZE = 64; - { CreateDesktop } - DF_ALLOWOTHERACCOUNTHOOK = $1; - DESKTOP_CREATEMENU = $4; - DESKTOP_CREATEWINDOW = $2; - DESKTOP_ENUMERATE = $40; - DESKTOP_HOOKCONTROL = $8; - DESKTOP_JOURNALPLAYBACK = $20; - DESKTOP_JOURNALRECORD = $10; - DESKTOP_READOBJECTS = $1; - DESKTOP_SWITCHDESKTOP = $100; - DESKTOP_WRITEOBJECTS = $80; - WSF_VISIBLE = $1; - { CreateDIBitmap } - CBM_INIT = $4; - DIB_PAL_COLORS = 1; - DIB_RGB_COLORS = 0; - { file & pipe } - FILE_READ_DATA = $0001; - { directory } - FILE_LIST_DIRECTORY = $0001; - { file & pipe } - FILE_WRITE_DATA = $0002; - { directory } - FILE_ADD_FILE = $0002; - { file } - FILE_APPEND_DATA = $0004; - { directory } - FILE_ADD_SUBDIRECTORY = $0004; - { named pipe } - FILE_CREATE_PIPE_INSTANCE = $0004; - { file & directory } - FILE_READ_EA = $0008; - FILE_READ_PROPERTIES = FILE_READ_EA; - { file & directory } - FILE_WRITE_EA = $0010; - FILE_WRITE_PROPERTIES = FILE_WRITE_EA; - { file } - FILE_EXECUTE = $0020; - { directory } - FILE_TRAVERSE = $0020; - { directory } - FILE_DELETE_CHILD = $0040; - { all } - FILE_READ_ATTRIBUTES = $0080; - { all } - FILE_WRITE_ATTRIBUTES = $0100; - { displaced lower - #define FILE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF) - - #define FILE_GENERIC_READ (STANDARD_RIGHTS_READ |\ - FILE_READ_DATA |\ - FILE_READ_ATTRIBUTES |\ - FILE_READ_EA |\ - SYNCHRONIZE) - - - #define FILE_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\ - FILE_WRITE_DATA |\ - FILE_WRITE_ATTRIBUTES |\ - FILE_WRITE_EA |\ - FILE_APPEND_DATA |\ - SYNCHRONIZE) - - - #define FILE_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE |\ - FILE_READ_ATTRIBUTES |\ - FILE_EXECUTE |\ - SYNCHRONIZE) - } - FILE_SHARE_DELETE = 4; - FILE_SHARE_READ = 1; - FILE_SHARE_WRITE = 2; - CONSOLE_TEXTMODE_BUFFER = 1; - CREATE_NEW = 1; - CREATE_ALWAYS = 2; - OPEN_EXISTING = 3; - OPEN_ALWAYS = 4; - TRUNCATE_EXISTING = 5; - FILE_ATTRIBUTE_ARCHIVE = 32; - FILE_ATTRIBUTE_COMPRESSED = 2048; - FILE_ATTRIBUTE_NORMAL = 128; - FILE_ATTRIBUTE_DIRECTORY = 16; - FILE_ATTRIBUTE_HIDDEN = 2; - FILE_ATTRIBUTE_READONLY = 1; - FILE_ATTRIBUTE_SYSTEM = 4; - FILE_ATTRIBUTE_TEMPORARY = 256; - FILE_FLAG_WRITE_THROUGH = $80000000; - FILE_FLAG_OVERLAPPED = 1073741824; - FILE_FLAG_NO_BUFFERING = 536870912; - FILE_FLAG_RANDOM_ACCESS = 268435456; - FILE_FLAG_SEQUENTIAL_SCAN = 134217728; - FILE_FLAG_DELETE_ON_CLOSE = 67108864; - FILE_FLAG_BACKUP_SEMANTICS = 33554432; - FILE_FLAG_POSIX_SEMANTICS = 16777216; - SECURITY_ANONYMOUS = 0; - SECURITY_IDENTIFICATION = 65536; - SECURITY_IMPERSONATION = 131072; - SECURITY_DELEGATION = 196608; - SECURITY_CONTEXT_TRACKING = 262144; - SECURITY_EFFECTIVE_ONLY = 524288; - SECURITY_SQOS_PRESENT = 1048576; - { CreateFileMapping, VirtualAlloc, VirtualFree, VirtualProtect } - SEC_COMMIT = 134217728; - SEC_IMAGE = 16777216; - SEC_NOCACHE = 268435456; - SEC_RESERVE = 67108864; - PAGE_READONLY = 2; - PAGE_READWRITE = 4; - PAGE_WRITECOPY = 8; - PAGE_EXECUTE = 16; - PAGE_EXECUTE_READ = 32; - PAGE_EXECUTE_READWRITE = 64; - PAGE_EXECUTE_WRITECOPY = 128; - PAGE_GUARD = 256; - PAGE_NOACCESS = 1; - PAGE_NOCACHE = 512; - MEM_COMMIT = 4096; - MEM_FREE = 65536; - MEM_RESERVE = 8192; - MEM_IMAGE = 16777216; - MEM_MAPPED = 262144; - MEM_PRIVATE = 131072; - MEM_DECOMMIT = 16384; - MEM_RELEASE = 32768; - MEM_TOP_DOWN = 1048576; - EXCEPTION_GUARD_PAGE = $80000001; - SECTION_EXTEND_SIZE = $10; - SECTION_MAP_READ = $4; - SECTION_MAP_WRITE = $2; - SECTION_QUERY = $1; - SECTION_ALL_ACCESS = $f001f; - { CreateFont } - FW_DONTCARE = 0; - FW_THIN = 100; - FW_EXTRALIGHT = 200; - FW_LIGHT = 300; - FW_NORMAL = 400; - FW_REGULAR = FW_NORMAL; - FW_MEDIUM = 500; - FW_SEMIBOLD = 600; - FW_BOLD = 700; - FW_EXTRABOLD = 800; - FW_HEAVY = 900; - ANSI_CHARSET = 0; - DEFAULT_CHARSET = 1; - SYMBOL_CHARSET = 2; - SHIFTJIS_CHARSET = 128; - HANGEUL_CHARSET = 129; - GB2312_CHARSET = 134; - CHINESEBIG5_CHARSET = 136; - GREEK_CHARSET = 161; - TURKISH_CHARSET = 162; - HEBREW_CHARSET = 177; - ARABIC_CHARSET = 178; - BALTIC_CHARSET = 186; - RUSSIAN_CHARSET = 204; - THAI_CHARSET = 222; - EASTEUROPE_CHARSET = 238; - - OEM_CHARSET = 255; - OEM_CERTIFY_TRUST = 2; //+windef - OEM_CERTIFY_RUN = 1; //+windef - OEM_CERTIFY_FALSE = 0; //+windef - - OUT_DEFAULT_PRECIS = 0; - OUT_STRING_PRECIS = 1; - OUT_CHARACTER_PRECIS = 2; - OUT_STROKE_PRECIS = 3; - OUT_TT_PRECIS = 4; - OUT_DEVICE_PRECIS = 5; - OUT_RASTER_PRECIS = 6; - OUT_TT_ONLY_PRECIS = 7; - OUT_OUTLINE_PRECIS = 8; - CLIP_DEFAULT_PRECIS = 0; - CLIP_CHARACTER_PRECIS = 1; - CLIP_STROKE_PRECIS = 2; - CLIP_MASK = 15; - CLIP_LH_ANGLES = 16; - CLIP_TT_ALWAYS = 32; - CLIP_EMBEDDED = 128; - DEFAULT_QUALITY = 0; - DRAFT_QUALITY = 1; - PROOF_QUALITY = 2; - NONANTIALIASED_QUALITY = 3; - ANTIALIASED_QUALITY = 4; - DEFAULT_PITCH = 0; - FIXED_PITCH = 1; - VARIABLE_PITCH = 2; - MONO_FONT = 8; - FF_DECORATIVE = 80; - FF_DONTCARE = 0; - FF_MODERN = 48; - FF_ROMAN = 16; - FF_SCRIPT = 64; - FF_SWISS = 32; - { CreateHatchBrush } - HS_BDIAGONAL = 3; - HS_CROSS = 4; - HS_DIAGCROSS = 5; - HS_FDIAGONAL = 2; - HS_HORIZONTAL = 0; - HS_VERTICAL = 1; - { CreateIconFromResourceEx } - LR_DEFAULTCOLOR = 0; - LR_LOADREALSIZE = 128; - { already defined above !! - #define LR_MONOCHROME (1) - } - { CreateMappedBitmap } - CMB_MASKED = 2; - { CreateNamedPipe } - PIPE_ACCESS_DUPLEX = 3; - PIPE_ACCESS_INBOUND = 1; - PIPE_ACCESS_OUTBOUND = 2; - //WRITE_DAC = $40000; //~winnt, moved to ACCESS_TYPES - //WRITE_OWNER = $80000; //~winnt, moved to ACCESS_TYPES - //ACCESS_SYSTEM_SECURITY = $1000000; //~winnt, moved to ACCESS_TYPES - PIPE_TYPE_BYTE = 0; - PIPE_TYPE_MESSAGE = 4; - PIPE_READMODE_BYTE = 0; - PIPE_READMODE_MESSAGE = 2; - PIPE_WAIT = 0; - PIPE_NOWAIT = 1; - { CreatePen, ExtCreatePen } - PS_GEOMETRIC = 65536; - PS_COSMETIC = 0; - PS_ALTERNATE = 8; - PS_SOLID = 0; - PS_DASH = 1; - PS_DOT = 2; - PS_DASHDOT = 3; - PS_DASHDOTDOT = 4; - PS_NULL = 5; - PS_USERSTYLE = 7; - PS_INSIDEFRAME = 6; - PS_ENDCAP_ROUND = 0; - PS_ENDCAP_SQUARE = 256; - PS_ENDCAP_FLAT = 512; - PS_JOIN_BEVEL = 4096; - PS_JOIN_MITER = 8192; - PS_JOIN_ROUND = 0; - PS_STYLE_MASK = 15; - PS_ENDCAP_MASK = 3840; - PS_TYPE_MASK = 983040; - { CreateProcess } - CREATE_DEFAULT_ERROR_MODE = 67108864; - CREATE_NEW_CONSOLE = 16; - CREATE_NEW_PROCESS_GROUP = 512; - CREATE_SEPARATE_WOW_VDM = 2048; - CREATE_SUSPENDED = 4; - CREATE_UNICODE_ENVIRONMENT = 1024; - DEBUG_PROCESS = 1; - DEBUG_ONLY_THIS_PROCESS = 2; - DETACHED_PROCESS = 8; - HIGH_PRIORITY_CLASS = 128; - IDLE_PRIORITY_CLASS = 64; - NORMAL_PRIORITY_CLASS = 32; - REALTIME_PRIORITY_CLASS = 256; - { CreateService } - SERVICE_ALL_ACCESS = $f01ff; - SERVICE_CHANGE_CONFIG = 2; - SERVICE_ENUMERATE_DEPENDENTS = 8; - SERVICE_INTERROGATE = 128; - SERVICE_PAUSE_CONTINUE = 64; - SERVICE_QUERY_CONFIG = 1; - SERVICE_QUERY_STATUS = 4; - SERVICE_START = 16; - SERVICE_STOP = 32; - SERVICE_USER_DEFINED_CONTROL = 256; - SERVICE_DELETE = $10000; - SERVICE_READ_CONTROL = $20000; - SERVICE_GENERIC_EXECUTE = $20000000; - { already defined above !! - #define SERVICE_WIN32_OWN_PROCESS (16) - #define SERVICE_WIN32_SHARE_PROCESS (32) - #define SERVICE_KERNEL_DRIVER (1) - #define SERVICE_FILE_SYSTEM_DRIVER (2) - #define SERVICE_INTERACTIVE_PROCESS (256) - #define SERVICE_BOOT_START (0) - #define SERVICE_SYSTEM_START (1) - #define SERVICE_AUTO_START (2) - #define SERVICE_DEMAND_START (3) - #define SERVICE_DISABLED (4) - } - SERVICE_ERROR_IGNORE = 0; - SERVICE_ERROR_NORMAL = 1; - SERVICE_ERROR_SEVERE = 2; - SERVICE_ERROR_CRITICAL = 3; - { CreateTapePartition, WriteTapemark } - TAPE_FIXED_PARTITIONS = 0; - TAPE_INITIATOR_PARTITIONS = $2; - TAPE_SELECT_PARTITIONS = $1; - TAPE_FILEMARKS = $1; - TAPE_LONG_FILEMARKS = $3; - TAPE_SETMARKS = 0; - TAPE_SHORT_FILEMARKS = $2; - { CreateWindow } - CW_USEDEFAULT = longint($80000000); - WS_BORDER = $800000; - WS_CAPTION = $c00000; - WS_CHILD = $40000000; - WS_CHILDWINDOW = $40000000; - WS_CLIPCHILDREN = $2000000; - WS_CLIPSIBLINGS = $4000000; - WS_DISABLED = $8000000; - WS_DLGFRAME = $400000; - WS_GROUP = $20000; - WS_HSCROLL = $100000; - WS_MAXIMIZEBOX = $20000; - WS_MINIMIZEBOX = $10000; - WS_OVERLAPPED = WS_BORDER or WS_CAPTION; - WS_POPUP = $80000000; - WS_SIZEBOX = $40000; - WS_SYSMENU = $80000; - WS_TABSTOP = $10000; - WS_THICKFRAME = $40000; - WS_VISIBLE = $10000000; - WS_VSCROLL = $200000; - BS_3STATE = $5; - BS_AUTO3STATE = $6; - BS_AUTOCHECKBOX = $3; - BS_AUTORADIOBUTTON = $9; - BS_BITMAP = $80; - BS_BOTTOM = $800; - BS_CENTER = $300; - BS_CHECKBOX = $2; - BS_DEFPUSHBUTTON = $1; - BS_GROUPBOX = $7; - BS_ICON = $40; - BS_LEFT = $100; - BS_LEFTTEXT = $20; - BS_MULTILINE = $2000; - BS_NOTIFY = $4000; - BS_OWNERDRAW = $b; - BS_PUSHBUTTON = 0; - BS_PUSHLIKE = $1000; - BS_RADIOBUTTON = $4; - BS_RIGHT = $200; - BS_RIGHTBUTTON = $20; - BS_TEXT = 0; - BS_TOP = $400; - BS_USERBUTTON = $8; - BS_VCENTER = $c00; - BS_FLAT = $8000; - CBS_AUTOHSCROLL = $40; - CBS_DISABLENOSCROLL = $800; - CBS_DROPDOWN = $2; - CBS_DROPDOWNLIST = $3; - CBS_HASSTRINGS = $200; - CBS_LOWERCASE = $4000; - CBS_NOINTEGRALHEIGHT = $400; - CBS_OEMCONVERT = $80; - CBS_OWNERDRAWFIXED = $10; - CBS_OWNERDRAWVARIABLE = $20; - CBS_SIMPLE = $1; - CBS_SORT = $100; - CBS_UPPERCASE = $2000; - ES_AUTOHSCROLL = $80; - ES_AUTOVSCROLL = $40; - ES_CENTER = $1; - ES_LEFT = 0; - ES_LOWERCASE = $10; - ES_MULTILINE = $4; - ES_NOHIDESEL = $100; - ES_NUMBER = $2000; - ES_OEMCONVERT = $400; - ES_PASSWORD = $20; - ES_READONLY = $800; - ES_RIGHT = $2; - ES_UPPERCASE = $8; - ES_WANTRETURN = $1000; - LBS_DISABLENOSCROLL = $1000; - LBS_EXTENDEDSEL = $800; - LBS_HASSTRINGS = $40; - LBS_MULTICOLUMN = $200; - LBS_MULTIPLESEL = $8; - LBS_NODATA = $2000; - LBS_NOINTEGRALHEIGHT = $100; - LBS_NOREDRAW = $4; - LBS_NOSEL = $4000; - LBS_NOTIFY = $1; - LBS_OWNERDRAWFIXED = $10; - LBS_OWNERDRAWVARIABLE = $20; - LBS_SORT = $2; - LBS_STANDARD = $a00003; - LBS_USETABSTOPS = $80; - LBS_WANTKEYBOARDINPUT = $400; - SBS_BOTTOMALIGN = $4; - SBS_HORZ = 0; - SBS_LEFTALIGN = $2; - SBS_RIGHTALIGN = $4; - SBS_SIZEBOX = $8; - SBS_SIZEBOXBOTTOMRIGHTALIGN = $4; - SBS_SIZEBOXTOPLEFTALIGN = $2; - SBS_SIZEGRIP = $10; - SBS_TOPALIGN = $2; - SBS_VERT = $1; - SS_BITMAP = $e; - SS_BLACKFRAME = $7; - SS_BLACKRECT = $4; - SS_CENTER = $1; - SS_CENTERIMAGE = $200; - SS_ENHMETAFILE = $f; - SS_ETCHEDFRAME = $12; - SS_ETCHEDHORZ = $10; - SS_ETCHEDVERT = $11; - SS_GRAYFRAME = $8; - SS_GRAYRECT = $5; - SS_ICON = $3; - SS_LEFT = 0; - SS_LEFTNOWORDWRAP = $c; - SS_NOPREFIX = $80; - SS_NOTIFY = $100; - SS_OWNERDRAW = $d; - SS_REALSIZEIMAGE = $800; - SS_RIGHT = $2; - SS_RIGHTJUST = $400; - SS_SIMPLE = $b; - SS_SUNKEN = $1000; - SS_USERITEM = $a; - SS_WHITEFRAME = $9; - SS_WHITERECT = $6; - { Dialog styles } - DS_ABSALIGN = $1; - DS_SYSMODAL = $2; - DS_3DLOOK = $4; - DS_FIXEDSYS = $8; - DS_NOFAILCREATE = $10; - DS_LOCALEDIT = $20; - DS_SETFONT = $40; - DS_MODALFRAME = $80; - DS_NOIDLEMSG = $100; - DS_SETFOREGROUND = $200; - DS_CONTROL = $400; - DS_CENTER = $800; - DS_CENTERMOUSE = $1000; - DS_CONTEXTHELP = $2000; - DS_NOCLOSEBTN = $4000; - - { CreateWindowEx } - WS_EX_LEFT = 0; - WS_EX_LTRREADING = 0; - WS_EX_RIGHTSCROLLBAR = 0; - WS_EX_DLGMODALFRAME = $1; - WS_EX_NOPARENTNOTIFY = $4; - WS_EX_TOPMOST = $8; - WS_EX_ACCEPTFILES = $10; - WS_EX_TRANSPARENT = $20; - WS_EX_MDICHILD = $40; - WS_EX_TOOLWINDOW = $80; - WS_EX_PALETTEWINDOW = $188; - WS_EX_WINDOWEDGE = $100; - WS_EX_CLIENTEDGE = $200; - WS_EX_OVERLAPPEDWINDOW = $300; - WS_EX_CONTEXTHELP = $400; - WS_EX_RIGHT = $1000; - WS_EX_RTLREADING = $2000; - WS_EX_LEFTSCROLLBAR = $4000; - WS_EX_CONTROLPARENT = $10000; - WS_EX_STATICEDGE = $20000; - WS_EX_APPWINDOW = $40000; - WS_EX_NOANIMATION = $4000000; - WS_EX_NOACTIVATE = $8000000; - WS_EX_INK = $10000000; - WS_EX_ABOVESTARTUP = $20000000; - WS_EX_NODRAG = $40000000; - WS_EX_CAPTIONOKBTN = $80000000; - - { CreateWindowStation } - WINSTA_ACCESSCLIPBOARD = $4; - WINSTA_ACCESSGLOBALATOMS = $20; - WINSTA_CREATEDESKTOP = $8; - WINSTA_ENUMDESKTOPS = $1; - WINSTA_ENUMERATE = $100; - WINSTA_EXITWINDOWS = $40; - WINSTA_READATTRIBUTES = $2; - WINSTA_READSCREEN = $200; - WINSTA_WRITEATTRIBUTES = $10; - { DdeCallback } - { DdeClientTransaction } - { DdeEnableCallback } - { DdeGetLastError } - { DdeInitialize } - { DdeNameService } - { DebugProc } - WH_CALLWNDPROC = 4; - WH_CALLWNDPROCRET = 12; - WH_CBT = 5; - WH_DEBUG = 9; - WH_GETMESSAGE = 3; - WH_JOURNALPLAYBACK = 1; - WH_JOURNALRECORD = 0; - WH_KEYBOARD = 2; - WH_MOUSE = 7; - WH_MSGFILTER = -(1); - WH_SHELL = 10; - WH_SYSMSGFILTER = 6; - { already defined above !! - #define WH_MSGFILTER (-1) } - WH_FOREGROUNDIDLE = 11; - { DefineDosDevice } - DDD_RAW_TARGET_PATH = 1; - DDD_REMOVE_DEFINITION = 2; - DDD_EXACT_MATCH_ON_REMOVE = 4; - { DeviceCapbilities } - DC_BINNAMES = 12; //windef - DC_BINS = 6; //windef - DC_COPIES = 18; //windef - DC_DRIVER = 11; //windef - DC_DATATYPE_PRODUCED = 21; - DC_DUPLEX = 7; //windef - DC_EMF_COMPLIANT = 20; - DC_ENUMRESOLUTIONS = 13; //windef - DC_EXTRA = 9; //windef - DC_FIELDS = 1; //windef - DC_FILEDEPENDENCIES = 14; //windef - DC_MAXEXTENT = 5; //windef - DC_MINEXTENT = 4; //windef - DC_ORIENTATION = 17; //windef - DC_PAPERNAMES = 16; //windef - DC_PAPERS = 2; //windef - DC_PAPERSIZE = 3; //windef - DC_SIZE = 8; //windef - DC_TRUETYPE = 15; //windef - DCTT_BITMAP = $1; - DCTT_DOWNLOAD = $2; - DCTT_SUBDEV = $4; - DC_VERSION = 10; //windef - DC_BINADJUST = 19; - { already defined above !! - #define DC_DATATYPE_PRODUCED (21) - } - { DeviceIoControl } - { DlgDirList } - DDL_ARCHIVE = 32; - DDL_DIRECTORY = 16; - DDL_DRIVES = 16384; - DDL_EXCLUSIVE = 32768; - DDL_HIDDEN = 2; - DDL_READONLY = 1; - DDL_READWRITE = 0; - DDL_SYSTEM = 4; - DDL_POSTMSGS = 8192; - { DllEntryPoint } - DLL_PROCESS_ATTACH = 1; - DLL_THREAD_ATTACH = 2; - DLL_PROCESS_DETACH = 0; - DLL_THREAD_DETACH = 3; - { DocumentProperties } - DM_IN_BUFFER = 8; //windef - DM_MODIFY = 8; //windef - DM_IN_PROMPT = 4; //windef - DM_PROMPT = 4; //windef - DM_OUT_BUFFER = 2; //windef - DM_COPY = 2; //windef - DM_UPDATE = 1; //windef - { DrawAnimatedRects } - IDANI_OPEN = 1; - IDANI_CLOSE = 2; - { DrawCaption } - DC_ACTIVE = 1; - DC_SMALLCAP = 2; - { DrawEdge } - BDR_RAISEDINNER = 4; - BDR_SUNKENINNER = 8; - BDR_RAISEDOUTER = 1; - BDR_SUNKENOUTER = 1; - EDGE_BUMP = 9; - EDGE_ETCHED = 6; - EDGE_RAISED = 5; - EDGE_SUNKEN = 10; - BF_ADJUST = 8192; - BF_BOTTOM = 8; - BF_BOTTOMLEFT = 9; - BF_BOTTOMRIGHT = 12; - BF_DIAGONAL = 16; - BF_DIAGONAL_ENDBOTTOMLEFT = 25; - BF_DIAGONAL_ENDBOTTOMRIGHT = 28; - BF_DIAGONAL_ENDTOPLEFT = 19; - BF_DIAGONAL_ENDTOPRIGHT = 22; - BF_FLAT = 16384; - BF_LEFT = 1; - BF_MIDDLE = 2048; - BF_MONO = 32768; - BF_RECT = 15; - BF_RIGHT = 4; - BF_SOFT = 4096; - BF_TOP = 2; - BF_TOPLEFT = 3; - BF_TOPRIGHT = 6; - { DrawFrameControl } - DFC_BUTTON = 4; - DFC_CAPTION = 1; - DFC_MENU = 2; - DFC_SCROLL = 3; - DFCS_BUTTON3STATE = 8; - DFCS_BUTTONCHECK = 0; - DFCS_BUTTONPUSH = 16; - DFCS_BUTTONRADIO = 4; - DFCS_BUTTONRADIOIMAGE = 1; - DFCS_BUTTONRADIOMASK = 2; - DFCS_CAPTIONCLOSE = 0; - DFCS_CAPTIONHELP = 4; - DFCS_CAPTIONMAX = 2; - DFCS_CAPTIONMIN = 1; - DFCS_CAPTIONRESTORE = 3; - DFCS_MENUARROW = 0; - DFCS_MENUBULLET = 2; - DFCS_MENUCHECK = 1; - DFCS_SCROLLCOMBOBOX = 5; - DFCS_SCROLLDOWN = 1; - DFCS_SCROLLLEFT = 2; - DFCS_SCROLLRIGHT = 3; - DFCS_SCROLLSIZEGRIP = 8; - DFCS_SCROLLUP = 0; - DFCS_ADJUSTRECT = 8192; - DFCS_CHECKED = 1024; - DFCS_FLAT = 16384; - DFCS_INACTIVE = 256; - DFCS_MONO = 32768; - DFCS_PUSHED = 512; - { DrawIconEx } - DI_COMPAT = 4; - DI_DEFAULTSIZE = 8; - DI_IMAGE = 2; - DI_MASK = 1; - DI_NORMAL = 3; - { DrawState } - DST_BITMAP = 4; - DST_COMPLEX = 0; - DST_ICON = 3; - DST_PREFIXTEXT = 2; - DST_TEXT = 1; - DSS_NORMAL = 0; - DSS_UNION = 16; - DSS_DISABLED = 32; - DSS_MONO = 128; - { DrawStatusText } - SBT_NOBORDERS = 256; - SBT_OWNERDRAW = 4096; - SBT_POPOUT = 512; - SBT_RTLREADING = 1024; - { DrawText, DrawTextEx } - DT_BOTTOM = 8; - DT_CALCRECT = 1024; - DT_CENTER = 1; - DT_EDITCONTROL = 8192; - DT_END_ELLIPSIS = 32768; - DT_PATH_ELLIPSIS = 16384; - DT_EXPANDTABS = 64; - DT_EXTERNALLEADING = 512; - DT_LEFT = 0; - DT_MODIFYSTRING = 65536; - DT_NOCLIP = 256; - DT_NOPREFIX = 2048; - DT_RIGHT = 2; - DT_RTLREADING = 131072; - DT_SINGLELINE = 32; - DT_TABSTOP = 128; - DT_TOP = 0; - DT_VCENTER = 4; - DT_WORDBREAK = 16; - DT_INTERNAL = 4096; - { DuplicateHandle, MapViewOfFile } - DUPLICATE_CLOSE_SOURCE = 1; - DUPLICATE_SAME_ACCESS = 2; - FILE_MAP_ALL_ACCESS = $f001f; - FILE_MAP_READ = 4; - FILE_MAP_WRITE = 2; - FILE_MAP_COPY = 1; - MUTEX_ALL_ACCESS = $1f0001; - MUTEX_MODIFY_STATE = 1; - //SYNCHRONIZE = $100000; //~winnt, move to ACCESS_TYPE - SEMAPHORE_ALL_ACCESS = $1f0003; - SEMAPHORE_MODIFY_STATE = 2; - EVENT_ALL_ACCESS = $1f0003; - EVENT_MODIFY_STATE = 2; - KEY_ALL_ACCESS = $f003f; - KEY_CREATE_LINK = 32; - KEY_CREATE_SUB_KEY = 4; - KEY_ENUMERATE_SUB_KEYS = 8; - KEY_EXECUTE = $20019; - KEY_NOTIFY = 16; - KEY_QUERY_VALUE = 1; - KEY_READ = $20019; - KEY_SET_VALUE = 2; - KEY_WRITE = $20006; - PROCESS_ALL_ACCESS = $1f0fff; - PROCESS_CREATE_PROCESS = 128; - PROCESS_CREATE_THREAD = 2; - PROCESS_DUP_HANDLE = 64; - PROCESS_QUERY_INFORMATION = 1024; - PROCESS_SET_INFORMATION = 512; - PROCESS_TERMINATE = 1; - PROCESS_VM_OPERATION = 8; - PROCESS_VM_READ = 16; - PROCESS_VM_WRITE = 32; - THREAD_ALL_ACCESS = $1f03ff; - THREAD_DIRECT_IMPERSONATION = 512; - THREAD_GET_CONTEXT = 8; - THREAD_IMPERSONATE = 256; - THREAD_QUERY_INFORMATION = 64; - THREAD_SET_CONTEXT = 16; - THREAD_SET_INFORMATION = 32; - THREAD_SET_THREAD_TOKEN = 128; - THREAD_SUSPEND_RESUME = 2; - THREAD_TERMINATE = 1; - { EditWordBreakProc } - WB_ISDELIMITER = 2; - WB_LEFT = 0; - WB_RIGHT = 1; - { EnableScrollBar } - SB_BOTH = 3; - SB_CTL = 2; - SB_HORZ = 0; - SB_VERT = 1; - ESB_DISABLE_BOTH = 3; - ESB_DISABLE_DOWN = 2; - ESB_DISABLE_LEFT = 1; - ESB_DISABLE_LTUP = 1; - ESB_DISABLE_RIGHT = 2; - ESB_DISABLE_RTDN = 2; - ESB_DISABLE_UP = 1; - ESB_ENABLE_BOTH = 0; - { Scroll Bar notifications } - SB_LINEUP = 0; - SB_LINEDOWN = 1; - SB_LINELEFT = 0; - SB_LINERIGHT = 1; - SB_PAGEUP = 2; - SB_PAGEDOWN = 3; - SB_PAGELEFT = 2; - SB_PAGERIGHT = 3; - SB_THUMBPOSITION = 4; - SB_THUMBTRACK = 5; - SB_ENDSCROLL = 8; - SB_LEFT = 6; - SB_RIGHT = 7; - SB_BOTTOM = 7; - SB_TOP = 6; - { EnumCalendarInfo } - ENUM_ALL_CALENDARS = -(1); - { EnumDateFormats } - DATE_SHORTDATE = 1; - DATE_LONGDATE = 2; - { EnumDependentServices } - SERVICE_ACTIVE = 1; - SERVICE_INACTIVE = 2; - { EnumFontFamExProc } - DEVICE_FONTTYPE = 2; - RASTER_FONTTYPE = 1; - TRUETYPE_FONTTYPE = 4; - { EnumObjects, GetCurrentObject, GetObjectType } - OBJ_BRUSH = 2; - OBJ_PEN = 1; - OBJ_PAL = 5; - OBJ_FONT = 6; - OBJ_BITMAP = 7; - OBJ_EXTPEN = 11; - OBJ_REGION = 8; - OBJ_DC = 3; - OBJ_MEMDC = 10; - OBJ_METAFILE = 9; - OBJ_METADC = 4; - OBJ_ENHMETAFILE = 13; - OBJ_ENHMETADC = 12; - { EnumPrinters } - { EnumProtocols } - { EnumResLangProc } - RT_ACCELERATOR = MAKEINTRESOURCE(9); - RT_BITMAP = MAKEINTRESOURCE(2); - RT_DIALOG = MAKEINTRESOURCE(5); - RT_FONT = MAKEINTRESOURCE(8); - RT_FONTDIR = MAKEINTRESOURCE(7); - RT_MENU = MAKEINTRESOURCE(4); - RT_RCDATA = MAKEINTRESOURCE(10); - RT_STRING = MAKEINTRESOURCE(6); - RT_MESSAGETABLE = MAKEINTRESOURCE(11); - RT_CURSOR = MAKEINTRESOURCE(1); - RT_GROUP_CURSOR = MAKEINTRESOURCE(12); - RT_ICON = MAKEINTRESOURCE(3); - RT_GROUP_ICON = MAKEINTRESOURCE(13); - RT_VERSION = MAKEINTRESOURCE(16); - - { EnumServicesStatus } - - const - SERVICE_WIN32 = 48; - SERVICE_DRIVER = 11; - { EnumSystemCodePages } - CP_INSTALLED = 1; - CP_SUPPORTED = 2; - { EnumSystemLocales } - LCID_INSTALLED = 1; - LCID_SUPPORTED = 2; - { EraseTape } - TAPE_ERASE_LONG = $1; - TAPE_ERASE_SHORT = 0; - { Escape } - SP_ERROR = -(1); - SP_OUTOFDISK = -(4); - SP_OUTOFMEMORY = -(5); - SP_USERABORT = -(3); - PHYSICALWIDTH = 110; - PHYSICALHEIGHT = 111; - PHYSICALOFFSETX = 112; - PHYSICALOFFSETY = 113; - SCALINGFACTORX = 114; - SCALINGFACTORY = 115; - QUERYESCSUPPORT = 8; - {ABORTDOC = 2; conflicts with AbortDoc function } - cABORTDOC = 2; - {ENDDOC = 11; conflicts with AbortDoc function } - cENDDOC = 11; - GETPHYSPAGESIZE = 12; - GETPRINTINGOFFSET = 13; - GETSCALINGFACTOR = 14; - NEWFRAME = 1; - NEXTBAND = 3; - PASSTHROUGH = 19; - {SETABORTPROC = 9; conflicts with AbortDoc function } - cSETABORTPROC = 9; - {STARTDOC = 10; conflicts with AbortDoc function } - cSTARTDOC = 10; - { EscapeCommFunction } - CLRDTR = 6; //winbase - CLRRTS = 4; //winbase - SETDTR = 5; //winbase - SETRTS = 3; //winbase - SETXOFF = 1; //winbase - SETXON = 2; //winbase - SETBREAK = 8; //winbase - CLRBREAK = 9; //winbase - // Some CE devices share a UART between an IRDA port and a serial port. - // These escape functions allow control over the mode. - SETIR = 10; // Set the port to IR mode. //+winbase - CLRIR = 11; // Set the port to non-IR mode. //+winbase - { ExitWindowsEx } - EWX_FORCE = 4; - EWX_LOGOFF = 0; - EWX_POWEROFF = 8; - EWX_REBOOT = 2; - EWX_SHUTDOWN = 1; - { ExtFloodFill } - FLOODFILLBORDER = 0; - FLOODFILLSURFACE = 1; - { ExtTextOut } - ETO_CLIPPED = 4; - ETO_GLYPH_INDEX = 16; - ETO_OPAQUE = 2; - ETO_RTLREADING = 128; - { FindFirstChangeNotification } - FILE_NOTIFY_CHANGE_FILE_NAME = 1; - FILE_NOTIFY_CHANGE_DIR_NAME = 2; - FILE_NOTIFY_CHANGE_ATTRIBUTES = 4; - FILE_NOTIFY_CHANGE_SIZE = 8; - FILE_NOTIFY_CHANGE_LAST_WRITE = 16; - FILE_NOTIFY_CHANGE_SECURITY = 256; - { FindFirstPrinterChangeNotification } - { FindNextPrinterNotification } - { FMExtensionProc } - { FoldString } - MAP_FOLDCZONE = 16; - MAP_FOLDDIGITS = 128; - MAP_PRECOMPOSED = 32; - MAP_COMPOSITE = 64; - { ForegroundIdleProc } - HC_ACTION = 0; - { FormatMessage } - FORMAT_MESSAGE_ALLOCATE_BUFFER = 256; - FORMAT_MESSAGE_IGNORE_INSERTS = 512; - FORMAT_MESSAGE_FROM_STRING = 1024; - FORMAT_MESSAGE_FROM_HMODULE = 2048; - FORMAT_MESSAGE_FROM_SYSTEM = 4096; - FORMAT_MESSAGE_ARGUMENT_ARRAY = 8192; - FORMAT_MESSAGE_MAX_WIDTH_MASK = 255; - { GdiComment } - GDICOMMENT_WINDOWS_METAFILE = -(2147483647); - GDICOMMENT_BEGINGROUP = 2; - GDICOMMENT_ENDGROUP = 3; - GDICOMMENT_MULTIFORMATS = 1073741828; - GDICOMMENT_IDENTIFIER = 1128875079; - { GenerateConsoleCtrlEvent, HandlerRoutine } - CTRL_C_EVENT = 0; - CTRL_BREAK_EVENT = 1; - CTRL_CLOSE_EVENT = 2; - CTRL_LOGOFF_EVENT = 5; - CTRL_SHUTDOWN_EVENT = 6; - { GetAddressByName } - { GetArcDirection } - AD_COUNTERCLOCKWISE = 1; - AD_CLOCKWISE = 2; - { GetClassLong, GetClassWord } - GCW_ATOM = -(32); - GCL_CBCLSEXTRA = -(20); - GCL_CBWNDEXTRA = -(18); - GCL_HBRBACKGROUND = -(10); - GCL_HCURSOR = -(12); - GCL_HICON = -(14); - GCL_HICONSM = -(34); - GCL_HMODULE = -(16); - GCL_MENUNAME = -(8); - GCL_STYLE = -(26); - GCL_WNDPROC = -(24); - { GetClipboardFormat, SetClipboardData } - CF_BITMAP = 2; - CF_DIB = 8; - CF_PALETTE = 9; - CF_ENHMETAFILE = 14; - CF_METAFILEPICT = 3; - CF_OEMTEXT = 7; - CF_TEXT = 1; - CF_UNICODETEXT = 13; - CF_DIF = 5; - CF_DSPBITMAP = 130; - CF_DSPENHMETAFILE = 142; - CF_DSPMETAFILEPICT = 131; - CF_DSPTEXT = 129; - CF_GDIOBJFIRST = 768; - CF_GDIOBJLAST = 1023; - CF_HDROP = 15; - CF_LOCALE = 16; - CF_OWNERDISPLAY = 128; - CF_PENDATA = 10; - CF_PRIVATEFIRST = 512; - CF_PRIVATELAST = 767; - CF_RIFF = 11; - CF_SYLK = 4; - CF_WAVE = 12; - CF_TIFF = 6; - { GetCommMask } - EV_BREAK = 64; - EV_CTS = 8; - EV_DSR = 16; - EV_ERR = 128; - EV_EVENT1 = 2048; - EV_EVENT2 = 4096; - EV_PERR = 512; - EV_RING = 256; - EV_RLSD = 32; - EV_RX80FULL = 1024; - EV_RXCHAR = 1; - EV_RXFLAG = 2; - EV_TXEMPTY = 4; - EV_POWER = $2000; // WINCE Power event. //+winbase - - { GetCommModemStatus } - MS_CTS_ON = $10; - MS_DSR_ON = $20; - MS_RING_ON = $40; - MS_RLSD_ON = $80; - { GetComputerName } - MAX_COMPUTERNAME_LENGTH = 15; - { GetCPInfo } - CP_ACP = 0; - CP_MACCP = 2; - CP_OEMCP = 1; - { GetDateFormat } - { already defined above !! - #define DATE_SHORTDATE (1) - #define DATE_LONGDATE (2) - } - DATE_USE_ALT_CALENDAR = 4; - { GetDCEx } - DCX_WINDOW = $1; - DCX_CACHE = $2; - DCX_PARENTCLIP = $20; - DCX_CLIPSIBLINGS = $10; - DCX_CLIPCHILDREN = $8; - DCX_NORESETATTRS = $4; - DCX_LOCKWINDOWUPDATE = $400; - DCX_EXCLUDERGN = $40; - DCX_INTERSECTRGN = $80; - DCX_VALIDATE = $200000; - { GetDeviceCaps } - DRIVERVERSION = 0; - TECHNOLOGY = 2; - DT_PLOTTER = 0; - DT_RASDISPLAY = 1; - DT_RASPRINTER = 2; - DT_RASCAMERA = 3; - DT_CHARSTREAM = 4; - DT_METAFILE = 5; - DT_DISPFILE = 6; - HORZSIZE = 4; - VERTSIZE = 6; - HORZRES = 8; - VERTRES = 10; - LOGPIXELSX = 88; - LOGPIXELSY = 90; - BITSPIXEL = 12; - PLANES = 14; - NUMBRUSHES = 16; - NUMPENS = 18; - NUMFONTS = 22; - NUMCOLORS = 24; - ASPECTX = 40; - ASPECTY = 42; - ASPECTXY = 44; - PDEVICESIZE = 26; - CLIPCAPS = 36; - SIZEPALETTE = 104; - NUMRESERVED = 106; - COLORRES = 108; - { already defined above !! - #define PHYSICALWIDTH (110) - #define PHYSICALHEIGHT (111) - #define PHYSICALOFFSETX (112) - #define PHYSICALOFFSETY (113) - #define SCALINGFACTORX (114) - #define SCALINGFACTORY (115) - } - VREFRESH = 116; - DESKTOPHORZRES = 118; - DESKTOPVERTRES = 117; - BLTALIGNMENT = 119; - RASTERCAPS = 38; - RC_BANDING = 2; - RC_BITBLT = 1; - RC_BITMAP64 = 8; - RC_DI_BITMAP = 128; - RC_DIBTODEV = 512; - RC_FLOODFILL = 4096; - RC_GDI20_OUTPUT = 16; - RC_PALETTE = 256; - RC_SCALING = 4; - RC_STRETCHBLT = 2048; - RC_STRETCHDIB = 8192; - CURVECAPS = 28; - CC_NONE = 0; - CC_CIRCLES = 1; - CC_PIE = 2; - CC_CHORD = 4; - CC_ELLIPSES = 8; - CC_WIDE = 16; - CC_STYLED = 32; - CC_WIDESTYLED = 64; - CC_INTERIORS = 128; - CC_ROUNDRECT = 256; - LINECAPS = 30; - LC_NONE = 0; - LC_POLYLINE = 2; - LC_MARKER = 4; - LC_POLYMARKER = 8; - LC_WIDE = 16; - LC_STYLED = 32; - LC_WIDESTYLED = 64; - LC_INTERIORS = 128; - POLYGONALCAPS = 32; - PC_NONE = 0; - PC_POLYGON = 1; - PC_RECTANGLE = 2; - PC_WINDPOLYGON = 4; - PC_SCANLINE = 8; - PC_WIDE = 16; - PC_STYLED = 32; - PC_WIDESTYLED = 64; - PC_INTERIORS = 128; - TEXTCAPS = 34; - TC_OP_CHARACTER = 1; - TC_OP_STROKE = 2; - TC_CP_STROKE = 4; - TC_CR_90 = 8; - TC_CR_ANY = 16; - TC_SF_X_YINDEP = 32; - TC_SA_DOUBLE = 64; - TC_SA_INTEGER = 128; - TC_SA_CONTIN = 256; - TC_EA_DOUBLE = 512; - TC_IA_ABLE = 1024; - TC_UA_ABLE = 2048; - TC_SO_ABLE = 4096; - TC_RA_ABLE = 8192; - TC_VA_ABLE = 16384; - TC_RESERVED = 32768; - TC_SCROLLBLT = 65536; - PC_PATHS = 512; - { GetDriveType } - DRIVE_REMOVABLE = 2; - DRIVE_FIXED = 3; - DRIVE_REMOTE = 4; - DRIVE_CDROM = 5; - DRIVE_RAMDISK = 6; - DRIVE_UNKNOWN = 0; - DRIVE_NO_ROOT_DIR = 1; - { GetExceptionCode } - EXCEPTION_ACCESS_VIOLATION = $c0000005; - EXCEPTION_BREAKPOINT = $80000003; - EXCEPTION_DATATYPE_MISALIGNMENT = $80000002; - EXCEPTION_SINGLE_STEP = $80000004; - EXCEPTION_ARRAY_BOUNDS_EXCEEDED = $c000008c; - EXCEPTION_FLT_DENORMAL_OPERAND = $c000008d; - EXCEPTION_FLT_DIVIDE_BY_ZERO = $c000008e; - EXCEPTION_FLT_INEXACT_RESULT = $c000008f; - EXCEPTION_FLT_INVALID_OPERATION = $c0000090; - EXCEPTION_FLT_OVERFLOW = $c0000091; - EXCEPTION_FLT_STACK_CHECK = $c0000092; - EXCEPTION_FLT_UNDERFLOW = $c0000093; - EXCEPTION_INT_DIVIDE_BY_ZERO = $c0000094; - EXCEPTION_INT_OVERFLOW = $c0000095; - EXCEPTION_INVALID_HANDLE = $c0000008; - EXCEPTION_PRIV_INSTRUCTION = $c0000096; - EXCEPTION_NONCONTINUABLE_EXCEPTION = $c0000025; - EXCEPTION_NONCONTINUABLE = $1; //winnt - EXCEPTION_UNWINDING = $2; //+winnt - EXCEPTION_EXIT_UNWIND = $4; //+winnt - EXCEPTION_STACK_INVALID = $8; //+winnt - EXCEPTION_NESTED_CALL = $10; //+winnt - EXCEPTION_TARGET_UNWIND = $20; //+winnt - EXCEPTION_COLLIDED_UNWIND = $40; //+winnt - EXCEPTION_UNWIND = EXCEPTION_UNWINDING or EXCEPTION_EXIT_UNWIND or - EXCEPTION_TARGET_UNWIND or EXCEPTION_COLLIDED_UNWIND; //+winnt - EXCEPTION_STACK_OVERFLOW = $c00000fd; - EXCEPTION_INVALID_DISPOSITION = $c0000026; - EXCEPTION_IN_PAGE_ERROR = $c0000006; - EXCEPTION_ILLEGAL_INSTRUCTION = $c000001d; - EXCEPTION_POSSIBLE_DEADLOCK = $c0000194; - - function IS_UNWINDING( Flag : Longint) : boolean; //+winnt - function IS_DISPATCHING( Flag : Longint) : boolean; //+winnt - function IS_TARGET_UNWIND( Flag : Longint) : Longint; //+winnt - - { GetFileType } - const - FILE_TYPE_UNKNOWN = 0; - FILE_TYPE_DISK = 1; - FILE_TYPE_CHAR = 2; - FILE_TYPE_PIPE = 3; - GDI_ERROR = $ffffffff; - { GetGraphicsMode } - GM_COMPATIBLE = 1; - GM_ADVANCED = 2; - { GetIconInfo } - IDC_ARROW = MAKEINTRESOURCE(32512); - IDC_IBEAM = MAKEINTRESOURCE(32513); - IDC_WAIT = MAKEINTRESOURCE(32514); - IDC_CROSS = MAKEINTRESOURCE(32515); - IDC_UPARROW = MAKEINTRESOURCE(32516); - IDC_SIZENWSE = MAKEINTRESOURCE(32642); - IDC_SIZENESW = MAKEINTRESOURCE(32643); - IDC_SIZEWE = MAKEINTRESOURCE(32644); - IDC_SIZENS = MAKEINTRESOURCE(32645); - IDC_SIZEALL = MAKEINTRESOURCE(32646); - IDC_NO = MAKEINTRESOURCE(32648); - IDC_APPSTARTING = MAKEINTRESOURCE(32650); - IDC_HELP = MAKEINTRESOURCE(32651); - IDI_APPLICATION = MAKEINTRESOURCE(32512); - IDI_HAND = MAKEINTRESOURCE(32513); - IDI_QUESTION = MAKEINTRESOURCE(32514); - IDI_EXCLAMATION = MAKEINTRESOURCE(32515); - IDI_ASTERISK = MAKEINTRESOURCE(32516); - IDI_WINLOGO = MAKEINTRESOURCE(32517); - IDC_SIZE = MAKEINTRESOURCE(32640); - IDC_ICON = MAKEINTRESOURCE(32641); - IDC_HAND = MAKEINTRESOURCE(32649); - - { GetMapMode } - - const - MM_ANISOTROPIC = 8; - MM_HIENGLISH = 5; - MM_HIMETRIC = 3; - MM_ISOTROPIC = 7; - MM_LOENGLISH = 4; - MM_LOMETRIC = 2; - MM_TEXT = 1; - MM_TWIPS = 6; - { GetMenuDefaultItem } - GMDI_GOINTOPOPUPS = $2; - GMDI_USEDISABLED = $1; - { PeekMessage } - PM_NOREMOVE = 0; - PM_REMOVE = 1; - PM_NOYIELD = 2; - { GetNextWindow, GetWindow } - GW_HWNDNEXT = 2; - GW_HWNDPREV = 3; - GW_CHILD = 5; - GW_HWNDFIRST = 0; - GW_HWNDLAST = 1; - GW_OWNER = 4; - GW_MAX = 5; //+winuser - - { GetQueueStatus } - QS_ALLEVENTS = 191; - QS_ALLINPUT = 255; - QS_HOTKEY = 128; - QS_INPUT = 7; - QS_KEY = 1; - QS_MOUSE = 6; - QS_MOUSEBUTTON = 4; - QS_MOUSEMOVE = 2; - QS_PAINT = 32; - QS_POSTMESSAGE = 8; - QS_SENDMESSAGE = 64; - QS_TIMER = 16; - { GetScrollInfo, SetScrollInfo } - SIF_ALL = 23; - SIF_PAGE = 2; - SIF_POS = 4; - SIF_RANGE = 1; - SIF_DISABLENOSCROLL = 8; - SIF_TRACKPOS = $10; - { GetStdHandle } - - - { was #define dname def_expr } - STD_INPUT_HANDLE = DWORD(-(10)); - STD_OUTPUT_HANDLE = DWORD(-(11)); - STD_ERROR_HANDLE = DWORD(-(12)); - - { was #define dname def_expr } - INVALID_HANDLE_VALUE = HANDLE(-1); - - { GetStockObject } - - BLACK_BRUSH = 4; - DKGRAY_BRUSH = 3; - GRAY_BRUSH = 2; - HOLLOW_BRUSH = 5; - LTGRAY_BRUSH = 1; - NULL_BRUSH = 5; - WHITE_BRUSH = 0; - BLACK_PEN = 7; - NULL_PEN = 8; - WHITE_PEN = 6; - ANSI_FIXED_FONT = 11; - ANSI_VAR_FONT = 12; - DEVICE_DEFAULT_FONT = 14; - DEFAULT_GUI_FONT = 17; - OEM_FIXED_FONT = 10; - SYSTEM_FONT = 13; - SYSTEM_FIXED_FONT = 16; - DEFAULT_PALETTE = 15; - { GetStringTypeA } - CT_CTYPE1 = 1; - CT_CTYPE2 = 2; - CT_CTYPE3 = 4; - C1_UPPER = 1; - C1_LOWER = 2; - C1_DIGIT = 4; - C1_SPACE = 8; - C1_PUNCT = 16; - C1_CNTRL = 32; - C1_BLANK = 64; - C1_XDIGIT = 128; - C1_ALPHA = 256; - C2_LEFTTORIGHT = 1; - C2_RIGHTTOLEFT = 2; - C2_EUROPENUMBER = 3; - C2_EUROPESEPARATOR = 4; - C2_EUROPETERMINATOR = 5; - C2_ARABICNUMBER = 6; - C2_COMMONSEPARATOR = 7; - C2_BLOCKSEPARATOR = 8; - C2_SEGMENTSEPARATOR = 9; - C2_WHITESPACE = 10; - C2_OTHERNEUTRAL = 11; - C2_NOTAPPLICABLE = 0; - C3_NONSPACING = 1; - C3_DIACRITIC = 2; - C3_VOWELMARK = 4; - C3_SYMBOL = 8; - C3_KATAKANA = 16; - C3_HIRAGANA = 32; - C3_HALFWIDTH = 64; - C3_FULLWIDTH = 128; - C3_IDEOGRAPH = 256; - C3_KASHIDA = 512; - C3_ALPHA = 32768; - C3_NOTAPPLICABLE = 0; - { GetSysColor } -{$IFDEF WINCE} - SYS_COLOR_INDEX_FLAG =$40000000; -{$ELSE} - SYS_COLOR_INDEX_FLAG =0; -{$ENDIF WINCE} - COLOR_SCROLLBAR = 0 or SYS_COLOR_INDEX_FLAG; - COLOR_BACKGROUND = 1 or SYS_COLOR_INDEX_FLAG; - COLOR_ACTIVECAPTION = 2 or SYS_COLOR_INDEX_FLAG; - COLOR_INACTIVECAPTION = 3 or SYS_COLOR_INDEX_FLAG; - COLOR_MENU = 4 or SYS_COLOR_INDEX_FLAG; - COLOR_WINDOW = 5 or SYS_COLOR_INDEX_FLAG; - COLOR_WINDOWFRAME = 6 or SYS_COLOR_INDEX_FLAG; - COLOR_MENUTEXT = 7 or SYS_COLOR_INDEX_FLAG; - COLOR_WINDOWTEXT = 8 or SYS_COLOR_INDEX_FLAG; - COLOR_CAPTIONTEXT = 9 or SYS_COLOR_INDEX_FLAG; - COLOR_ACTIVEBORDER =10 or SYS_COLOR_INDEX_FLAG; - COLOR_INACTIVEBORDER =11 or SYS_COLOR_INDEX_FLAG; - COLOR_APPWORKSPACE =12 or SYS_COLOR_INDEX_FLAG; - COLOR_HIGHLIGHT =13 or SYS_COLOR_INDEX_FLAG; - COLOR_HIGHLIGHTTEXT =14 or SYS_COLOR_INDEX_FLAG; - COLOR_BTNFACE =15 or SYS_COLOR_INDEX_FLAG; - COLOR_BTNSHADOW =16 or SYS_COLOR_INDEX_FLAG; - COLOR_GRAYTEXT =17 or SYS_COLOR_INDEX_FLAG; - COLOR_BTNTEXT =18 or SYS_COLOR_INDEX_FLAG; - COLOR_INACTIVECAPTIONTEXT =19 or SYS_COLOR_INDEX_FLAG; - COLOR_BTNHIGHLIGHT =20 or SYS_COLOR_INDEX_FLAG; - - COLOR_3DDKSHADOW =21 or SYS_COLOR_INDEX_FLAG; - COLOR_3DLIGHT =22 or SYS_COLOR_INDEX_FLAG; - COLOR_INFOTEXT =23 or SYS_COLOR_INDEX_FLAG; - COLOR_INFOBK =24 or SYS_COLOR_INDEX_FLAG; - COLOR_STATIC =25 or SYS_COLOR_INDEX_FLAG; - COLOR_STATICTEXT =26 or SYS_COLOR_INDEX_FLAG; - COLOR_GRADIENTACTIVECAPTION =27 or SYS_COLOR_INDEX_FLAG; - COLOR_GRADIENTINACTIVECAPTION =28 or SYS_COLOR_INDEX_FLAG; - C_SYS_COLOR_TYPES =29; - - COLOR_DESKTOP =COLOR_BACKGROUND; - COLOR_3DFACE =COLOR_BTNFACE; - COLOR_3DSHADOW =COLOR_BTNSHADOW; - COLOR_3DHIGHLIGHT =COLOR_BTNHIGHLIGHT; - COLOR_3DHILIGHT =COLOR_BTNHIGHLIGHT; - - { GetSystemMetrics } - SM_CYMIN = 29; - SM_CXMIN = 28; - SM_ARRANGE = 56; - SM_CLEANBOOT = 67; - { The right value for SM_CEMETRICS for NT 3.5 is 75. For Windows 95 - and NT 4.0, it is 76. The meaning is undocumented, anyhow. } - SM_CMETRICS = 76; - SM_CMOUSEBUTTONS = 43; - SM_CXBORDER = 5; - SM_CYBORDER = 6; - SM_CXCURSOR = 13; - SM_CYCURSOR = 14; - SM_CXDLGFRAME = 7; - SM_CYDLGFRAME = 8; - SM_CXDOUBLECLK = 36; - SM_CYDOUBLECLK = 37; - SM_CXDRAG = 68; - SM_CYDRAG = 69; - SM_CXEDGE = 45; - SM_CYEDGE = 46; - SM_CXFIXEDFRAME = 7; - SM_CYFIXEDFRAME = 8; - SM_CXFRAME = 32; - SM_CYFRAME = 33; - SM_CXFULLSCREEN = 16; - SM_CYFULLSCREEN = 17; - SM_CXHSCROLL = 21; - SM_CYHSCROLL = 3; - SM_CXHTHUMB = 10; - SM_CXICON = 11; - SM_CYICON = 12; - SM_CXICONSPACING = 38; - SM_CYICONSPACING = 39; - SM_CXMAXIMIZED = 61; - SM_CYMAXIMIZED = 62; - SM_CXMAXTRACK = 59; - SM_CYMAXTRACK = 60; - SM_CXMENUCHECK = 71; - SM_CYMENUCHECK = 72; - SM_CXMENUSIZE = 54; - SM_CYMENUSIZE = 55; - SM_CXMINIMIZED = 57; - SM_CYMINIMIZED = 58; - SM_CXMINSPACING = 47; - SM_CYMINSPACING = 48; - SM_CXMINTRACK = 34; - SM_CYMINTRACK = 35; - SM_CXSCREEN = 0; - SM_CYSCREEN = 1; - SM_CXSIZE = 30; - SM_CYSIZE = 31; - SM_CXSIZEFRAME = 32; - SM_CYSIZEFRAME = 33; - SM_CXSMICON = 49; - SM_CYSMICON = 50; - SM_CXSMSIZE = 52; - SM_CYSMSIZE = 53; - SM_CXVSCROLL = 2; - {SM_CYHSCROLL = 3;already above } - {SM_CXHSCROLL = 21;already above } - SM_CYVSCROLL = 20; - SM_CYVTHUMB = 9; - SM_CYCAPTION = 4; - SM_CYKANJIWINDOW = 18; - SM_CYMENU = 15; - SM_CYSMCAPTION = 51; - SM_DBCSENABLED = 42; - SM_DEBUG = 22; - SM_MENUDROPALIGNMENT = 40; - SM_MIDEASTENABLED = 74; - SM_MOUSEPRESENT = 19; - SM_MOUSEWHEELPRESENT = 75; - SM_NETWORK = 63; - SM_PENWINDOWS = 41; - SM_SECURE = 44; - SM_SHOWSOUNDS = 70; - SM_SLOWMACHINE = 73; - SM_SWAPBUTTON = 23; - ARW_BOTTOMLEFT = 0; - ARW_BOTTOMRIGHT = $1; - ARW_HIDE = $8; - ARW_TOPLEFT = $2; - ARW_TOPRIGHT = $3; - ARW_DOWN = $4; - ARW_LEFT = 0; - ARW_RIGHT = 0; - ARW_UP = $4; - { GetSystemPaletteUse } - SYSPAL_NOSTATIC = 2; - SYSPAL_STATIC = 1; - SYSPAL_ERROR = 0; - { GetTextAlign } - TA_BASELINE = 24; - TA_BOTTOM = 8; - TA_TOP = 0; - TA_CENTER = 6; - TA_LEFT = 0; - TA_RIGHT = 2; - TA_RTLREADING = 256; - TA_NOUPDATECP = 0; - TA_UPDATECP = 1; - VTA_BASELINE = 24; - VTA_CENTER = 6; - { GetThreadPriority } - THREAD_PRIORITY_ABOVE_NORMAL = 1; - THREAD_PRIORITY_BELOW_NORMAL = -(1); - THREAD_PRIORITY_HIGHEST = 2; - THREAD_PRIORITY_IDLE = -(15); - THREAD_PRIORITY_LOWEST = -(2); - THREAD_PRIORITY_NORMAL = 0; - THREAD_PRIORITY_TIME_CRITICAL = 15; - THREAD_PRIORITY_ERROR_RETURN = 2147483647; - TLS_MINIMUM_AVAILABLE = 64; - { GetTimeFormat } - TIME_NOMINUTESORSECONDS = 1; - TIME_NOSECONDS = 2; - TIME_NOTIMEMARKER = 4; - TIME_FORCE24HOURFORMAT = 8; - { GetTimeZoneInformation } - { was #define dname def_expr } - - - const - TIME_ZONE_ID_INVALID = DWORD(-1); - TIME_ZONE_ID_UNKNOWN = 0; - TIME_ZONE_ID_STANDARD = 1; - TIME_ZONE_ID_DAYLIGHT = 2; - { GetWindowLong } - GWL_EXSTYLE = -(20); - GWL_STYLE = -(16); - GWL_WNDPROC = -(4); - GWL_HINSTANCE = -(6); - GWL_HWNDPARENT = -(8); - GWL_ID = -(12); - GWL_USERDATA = -(21); - DWL_DLGPROC = 4; - DWL_MSGRESULT = 0; - DWL_USER = 8; - { GlobalAlloc, GlobalFlags } - GMEM_FIXED = 0; - GMEM_MOVEABLE = 2; - GPTR = 64; - GHND = 66; - GMEM_DDESHARE = 8192; - GMEM_DISCARDABLE = 256; - GMEM_LOWER = 4096; - GMEM_NOCOMPACT = 16; - GMEM_NODISCARD = 32; - GMEM_NOT_BANKED = 4096; - GMEM_NOTIFY = 16384; - GMEM_SHARE = 8192; - GMEM_ZEROINIT = 64; - GMEM_DISCARDED = 16384; - GMEM_INVALID_HANDLE = 32768; - GMEM_LOCKCOUNT = 255; - { HeapAlloc, HeapReAlloc } - HEAP_GENERATE_EXCEPTIONS = 4; - HEAP_NO_SERIALIZE = 1; - HEAP_ZERO_MEMORY = 8; - STATUS_NO_MEMORY = $c0000017; - STATUS_ACCESS_VIOLATION = $c0000005; - HEAP_REALLOC_IN_PLACE_ONLY = 16; - { ImageList_Create } - ILC_COLOR = 0; - ILC_COLOR4 = 4; - ILC_COLOR8 = 8; - ILC_COLOR16 = 16; - ILC_COLOR24 = 24; - ILC_COLOR32 = 32; - ILC_COLORDDB = 254; - ILC_MASK = 1; - ILC_PALETTE = 2048; - { ImageList_Draw, ImageList_DrawEx } - ILD_BLEND25 = 2; - ILD_BLEND50 = 4; - ILD_SELECTED = 4; - ILD_BLEND = 4; - ILD_FOCUS = 2; - ILD_MASK = 16; - ILD_NORMAL = 0; - ILD_TRANSPARENT = 1; - CLR_NONE = $ffffffff; - CLR_DEFAULT = $ff000000; - CLR_INVALID = $FFFFFFFF; - { ImageList_LoadImage } - {LR_DEFAULTCOLOR = 0;already above } - LR_LOADFROMFILE = 16; - LR_LOADMAP3DCOLORS = 4096; - LR_LOADTRANSPARENT = 32; - {LR_MONOCHROME = 1;already above } - { ImmConfigureIME } - IME_CONFIG_GENERAL = 1; - IME_CONFIG_REGISTERWORD = 2; - IME_CONFIG_SELECTDICTIONARY = 3; - { ImmGetConversionList } - GCL_CONVERSION = 1; - GCL_REVERSECONVERSION = 2; - GCL_REVERSE_LENGTH = 3; - { ImmGetGuideLine } - GGL_LEVEL = 1; - GGL_INDEX = 2; - GGL_STRING = 3; - GGL_PRIVATE = 4; - GL_LEVEL_ERROR = 2; - GL_LEVEL_FATAL = 1; - GL_LEVEL_INFORMATION = 4; - GL_LEVEL_NOGUIDELINE = 0; - GL_LEVEL_WARNING = 3; - GL_ID_CANNOTSAVE = 17; - GL_ID_NOCONVERT = 32; - GL_ID_NODICTIONARY = 16; - GL_ID_NOMODULE = 1; - GL_ID_READINGCONFLICT = 35; - GL_ID_TOOMANYSTROKE = 34; - GL_ID_TYPINGERROR = 33; - GL_ID_UNKNOWN = 0; - GL_ID_INPUTREADING = 36; - GL_ID_INPUTRADICAL = 37; - GL_ID_INPUTCODE = 38; - GL_ID_CHOOSECANDIDATE = 40; - GL_ID_REVERSECONVERSION = 41; - { ImmGetProperty } - IGP_PROPERTY = 4; - IGP_CONVERSION = 8; - IGP_SENTENCE = 12; - IGP_UI = 16; - IGP_SETCOMPSTR = 20; - IGP_SELECT = 24; - IME_PROP_AT_CARET = 65536; - IME_PROP_SPECIAL_UI = 131072; - IME_PROP_CANDLIST_START_FROM_1 = 262144; - IME_PROP_UNICODE = 524288; - UI_CAP_2700 = 1; - UI_CAP_ROT90 = 2; - UI_CAP_ROTANY = 4; - SCS_CAP_COMPSTR = 1; - SCS_CAP_MAKEREAD = 2; - SELECT_CAP_CONVERSION = 1; - SELECT_CAP_SENTENCE = 2; - { ImmNotifyIME } - NI_CHANGECANDIDATELIST = 19; - NI_CLOSECANDIDATE = 17; - NI_COMPOSITIONSTR = 21; - NI_OPENCANDIDATE = 16; - NI_SELECTCANDIDATESTR = 18; - NI_SETCANDIDATE_PAGESIZE = 23; - NI_SETCANDIDATE_PAGESTART = 22; - CPS_CANCEL = 4; - CPS_COMPLETE = 1; - CPS_CONVERT = 2; - CPS_REVERT = 3; - { ImmSetCompositionString } - SCS_SETSTR = 9; - SCS_CHANGEATTR = 18; - SCS_CHANGECLAUSE = 36; - { ImmUnregisterWord } - IME_REGWORD_STYLE_EUDC = 1; - IME_REGWORD_STYLE_USER_FIRST = $80000000; - IME_REGWORD_STYLE_USER_LAST = -(1); - { InitCommonControlEx } //+commctrl - I_IMAGENONE = -2; // Desktop listview uses this same value for I_IMAGENONE when (_WIN32_IE >= 0x0501) - - ICC_LISTVIEW_CLASSES = $00000001; // listview, header - ICC_TREEVIEW_CLASSES = $00000002; // treeview, tooltips - ICC_BAR_CLASSES = $00000004; // toolbar, statusbar, trackbar, tooltips - ICC_TAB_CLASSES = $00000008; // tab, tooltips - ICC_UPDOWN_CLASS = $00000010; // updown - ICC_PROGRESS_CLASS = $00000020; // progress - ICC_WIN95_CLASSES = $0000007F; // ! was ICC_WIN95_CLASSES = $000000FF - ICC_DATE_CLASSES = $00000100; // month picker, date picker, time picker, updown - ICC_COOL_CLASSES = $00000400; // rebar (coolbar) control - ICC_INTERNET_CLASSES = $00000800; // IP Address control - ICC_TOOLTIP_CLASSES = $00001000; // Tooltip static & button - ICC_CAPEDIT_CLASS = $00002000; // All-caps edit control - ICC_FE_CLASSES = $40000000; // FE specific input subclasses - - { InitializeSecurityDescriptor } - SECURITY_DESCRIPTOR_REVISION = 1; - { IsTextUnicode } - IS_TEXT_UNICODE_ASCII16 = 1; - IS_TEXT_UNICODE_REVERSE_ASCII16 = 16; - IS_TEXT_UNICODE_STATISTICS = 2; - IS_TEXT_UNICODE_REVERSE_STATISTICS = 32; - IS_TEXT_UNICODE_CONTROLS = 4; - IS_TEXT_UNICODE_REVERSE_CONTROLS = 64; - IS_TEXT_UNICODE_SIGNATURE = 8; - IS_TEXT_UNICODE_REVERSE_SIGNATURE = 128; - IS_TEXT_UNICODE_ILLEGAL_CHARS = 256; - IS_TEXT_UNICODE_ODD_LENGTH = 512; - IS_TEXT_UNICODE_NULL_BYTES = 4096; - IS_TEXT_UNICODE_UNICODE_MASK = 15; - IS_TEXT_UNICODE_REVERSE_MASK = 240; - IS_TEXT_UNICODE_NOT_UNICODE_MASK = 3840; - IS_TEXT_UNICODE_NOT_ASCII_MASK = 61440; - { JournalPlaybackProc, KeyboardProc } - HC_GETNEXT = 1; - HC_SKIP = 2; - HC_SYSMODALOFF = 5; - HC_SYSMODALON = 4; - HC_NOREMOVE = 3; - { keybd_event } - KEYEVENTF_EXTENDEDKEY = 1; - KEYEVENTF_KEYUP = 2; - { LoadBitmap } - OBM_BTNCORNERS = 32758; - OBM_BTSIZE = 32761; - OBM_CHECK = 32760; - OBM_CHECKBOXES = 32759; - OBM_CLOSE = 32754; - OBM_COMBO = 32738; - OBM_DNARROW = 32752; - OBM_DNARROWD = 32742; - OBM_DNARROWI = 32736; - OBM_LFARROW = 32750; - OBM_LFARROWI = 32734; - OBM_LFARROWD = 32740; - OBM_MNARROW = 32739; - OBM_OLD_CLOSE = 32767; - OBM_OLD_DNARROW = 32764; - OBM_OLD_LFARROW = 32762; - OBM_OLD_REDUCE = 32757; - OBM_OLD_RESTORE = 32755; - OBM_OLD_RGARROW = 32763; - OBM_OLD_UPARROW = 32765; - OBM_OLD_ZOOM = 32756; - OBM_REDUCE = 32749; - OBM_REDUCED = 32746; - OBM_RESTORE = 32747; - OBM_RESTORED = 32744; - OBM_RGARROW = 32751; - OBM_RGARROWD = 32741; - OBM_RGARROWI = 32735; - OBM_SIZE = 32766; - OBM_UPARROW = 32753; - OBM_UPARROWD = 32743; - OBM_UPARROWI = 32737; - OBM_ZOOM = 32748; - OBM_ZOOMD = 32745; - { LoadLibraryEx } - DONT_RESOLVE_DLL_REFERENCES = 1; - LOAD_LIBRARY_AS_DATAFILE = 2; - LOAD_WITH_ALTERED_SEARCH_PATH = 8; - { LocalAlloc, LocalFlags } - LPTR = 64; - LHND = 66; - NONZEROLHND = 2; - NONZEROLPTR = 0; - LMEM_NONZEROLHND = 2; - LMEM_NONZEROLPTR = 0; - LMEM_FIXED = 0; - LMEM_MOVEABLE = 2; - LMEM_NOCOMPACT = 16; - LMEM_NODISCARD = 32; - LMEM_ZEROINIT = 64; - LMEM_MODIFY = 128; - LMEM_LOCKCOUNT = 255; - LMEM_DISCARDABLE = 3840; - LMEM_DISCARDED = 16384; - LMEM_INVALID_HANDLE = 32768; - LMEM_VALID_FLAGS=$0F72; //+winbase - { MessageBeep, MessageBox } - MB_USERICON = $80; - MB_ICONASTERISK = $40; - MB_ICONEXCLAMATION = $30; - MB_ICONWARNING = $30; - MB_ICONERROR = $10; - MB_ICONHAND = $10; - MB_ICONQUESTION = $20; - MB_OK = 0; - MB_ABORTRETRYIGNORE = $2; - MB_APPLMODAL = 0; - MB_DEFAULT_DESKTOP_ONLY = $20000; - MB_HELP = $4000; - MB_RIGHT = $80000; - MB_RTLREADING = $100000; - MB_TOPMOST = $40000; - MB_DEFBUTTON1 = 0; - MB_DEFBUTTON2 = $100; - MB_DEFBUTTON3 = $200; - MB_DEFBUTTON4 = $300; - MB_ICONINFORMATION = $40; - MB_ICONSTOP = $10; - MB_OKCANCEL = $1; - MB_RETRYCANCEL = $5; - MB_SERVICE_NOTIFICATION = $40000; - MB_SETFOREGROUND = $10000; - MB_SYSTEMMODAL = $1000; - MB_TASKMODAL = $2000; - MB_YESNO = $4; - MB_YESNOCANCEL = $3; - IDABORT = 3; - IDCANCEL = 2; - IDCLOSE = 8; - IDHELP = 9; - IDIGNORE = 5; - IDNO = 7; - IDOK = 1; - IDRETRY = 4; - IDYES = 6; - { MessageProc } - MSGF_DIALOGBOX = 0; - MSGF_MENU = 2; - MSGF_NEXTWINDOW = 6; - MSGF_SCROLLBAR = 5; - MSGF_MAINLOOP = 8; - MSGF_USER = 4096; - { ModifyWorldTransform } - MWT_IDENTITY = 1; - MWT_LEFTMULTIPLY = 2; - MWT_RIGHTMULTIPLY = 3; - { mouse_event } - MOUSEEVENTF_ABSOLUTE = 32768; - MOUSEEVENTF_MOVE = 1; - MOUSEEVENTF_LEFTDOWN = 2; - MOUSEEVENTF_LEFTUP = 4; - MOUSEEVENTF_RIGHTDOWN = 8; - MOUSEEVENTF_RIGHTUP = 16; - MOUSEEVENTF_MIDDLEDOWN = 32; - MOUSEEVENTF_MIDDLEUP = 64; - { MoveFileEx } - MOVEFILE_REPLACE_EXISTING = 1; - MOVEFILE_COPY_ALLOWED = 2; - MOVEFILE_DELAY_UNTIL_REBOOT = 4; - { MsgWaitForMultipleObjects, WaitForMultipleObjectsEx } - WAIT_OBJECT_0 = 0; - WAIT_ABANDONED_0 = $80; - WAIT_TIMEOUT = $102; - WAIT_IO_COMPLETION = $c0; - WAIT_ABANDONED = $80; - WAIT_FAILED = $ffffffff; - MAXIMUM_WAIT_OBJECTS = $40; //winnt - MAXIMUM_SUSPEND_COUNT = MAXCHAR; //~winnt - { MultiByteToWideChar } - MB_PRECOMPOSED = 1; - MB_COMPOSITE = 2; - MB_ERR_INVALID_CHARS = 8; - MB_USEGLYPHCHARS = 4; - { PostMessage } - { was #define dname def_expr } - HWND_BROADCAST = HWND($FFFF); - - const - { PropertySheet } - IS_PSREBOOTSYSTEM = 3; - IS_PSRESTARTWINDOWS = 2; - { PropSheetPageProc } - PSPCB_CREATE = 2; - PSPCB_RELEASE = 1; - { PurgeComm } - PURGE_TXABORT = 1; - PURGE_RXABORT = 2; - PURGE_TXCLEAR = 4; - PURGE_RXCLEAR = 8; - { QueryServiceObjectSecurity } - OWNER_SECURITY_INFORMATION = $1; - GROUP_SECURITY_INFORMATION = $2; - DACL_SECURITY_INFORMATION = $4; - SACL_SECURITY_INFORMATION = $8; - { RedrawWindow } - RDW_ERASE = 4; - RDW_FRAME = 1024; - RDW_INTERNALPAINT = 2; - RDW_INVALIDATE = 1; - RDW_NOERASE = 32; - RDW_NOFRAME = 2048; - RDW_NOINTERNALPAINT = 16; - RDW_VALIDATE = 8; - RDW_ERASENOW = 512; - RDW_UPDATENOW = 256; - RDW_ALLCHILDREN = 128; - RDW_NOCHILDREN = 64; - { RegCreateKey } - HKEY_CLASSES_ROOT = HKEY($80000000); - HKEY_CURRENT_USER = HKEY($80000001); - HKEY_LOCAL_MACHINE = HKEY($80000002); - HKEY_USERS = HKEY($80000003); - HKEY_PERFORMANCE_DATA = HKEY($80000004); - HKEY_CURRENT_CONFIG = HKEY($80000005); - HKEY_DYN_DATA = HKEY($80000006); - - { RegCreateKeyEx } - - const - REG_OPTION_VOLATILE = $1; - REG_OPTION_NON_VOLATILE = 0; - REG_CREATED_NEW_KEY = $1; - REG_OPENED_EXISTING_KEY = $2; - { RegEnumValue } - REG_BINARY = 3; - REG_DWORD = 4; - REG_DWORD_LITTLE_ENDIAN = 4; - REG_DWORD_BIG_ENDIAN = 5; - REG_EXPAND_SZ = 2; - REG_FULL_RESOURCE_DESCRIPTOR = 9; - REG_LINK = 6; - REG_MULTI_SZ = 7; - REG_NONE = 0; - REG_RESOURCE_LIST = 8; - REG_RESOURCE_REQUIREMENTS_LIST = 10; - REG_SZ = 1; - { RegisterHotKey } - MOD_ALT = 1; - MOD_CONTROL = 2; - MOD_SHIFT = 4; - MOD_WIN = 8; - IDHOT_SNAPDESKTOP = -(2); - IDHOT_SNAPWINDOW = -(1); - { RegNotifyChangeKeyValue } - REG_NOTIFY_CHANGE_NAME = $1; - REG_NOTIFY_CHANGE_ATTRIBUTES = $2; - REG_NOTIFY_CHANGE_LAST_SET = $4; - REG_NOTIFY_CHANGE_SECURITY = $8; - { ScrollWindowEx } - SW_ERASE = 4; - SW_INVALIDATE = 2; - SW_SCROLLCHILDREN = 1; - { SendMessageTimeout } - SMTO_ABORTIFHUNG = 2; - SMTO_BLOCK = 1; - SMTO_NORMAL = 0; - { SetBkMode } - OPAQUE = 2; - TRANSPARENT = 1; - { SetDebugErrorLevel } - SLE_ERROR = 1; - SLE_MINORERROR = 2; - SLE_WARNING = 3; - { SetErrorMode } - SEM_FAILCRITICALERRORS = 1; - SEM_NOALIGNMENTFAULTEXCEPT = 4; - SEM_NOGPFAULTERRORBOX = 2; - SEM_NOOPENFILEERRORBOX = 32768; - { SetICMMode } - ICM_ON = 2; - ICM_OFF = 1; - ICM_QUERY = 3; - { SetJob } - { Locale Information } - LOCALE_ILANGUAGE = 1; - LOCALE_SLANGUAGE = 2; - LOCALE_SENGLANGUAGE = 4097; - LOCALE_SABBREVLANGNAME = 3; - LOCALE_SNATIVELANGNAME = 4; - LOCALE_ICOUNTRY = 5; - LOCALE_SCOUNTRY = 6; - LOCALE_SENGCOUNTRY = 4098; - LOCALE_SABBREVCTRYNAME = 7; - LOCALE_SNATIVECTRYNAME = 8; - LOCALE_IDEFAULTLANGUAGE = 9; - LOCALE_IDEFAULTCOUNTRY = 10; - LOCALE_IDEFAULTANSICODEPAGE = 4100; - LOCALE_IDEFAULTCODEPAGE = 11; - LOCALE_SLIST = 12; - LOCALE_IMEASURE = 13; - LOCALE_SDECIMAL = 14; - LOCALE_STHOUSAND = 15; - LOCALE_SGROUPING = 16; - LOCALE_IDIGITS = 17; - LOCALE_ILZERO = 18; - LOCALE_INEGNUMBER = 4112; - LOCALE_SCURRENCY = 20; - LOCALE_SMONDECIMALSEP = 22; - LOCALE_SMONTHOUSANDSEP = 23; - LOCALE_SMONGROUPING = 24; - LOCALE_ICURRDIGITS = 25; - LOCALE_ICURRENCY = 27; - LOCALE_INEGCURR = 28; - LOCALE_SDATE = 29; - LOCALE_STIME = 30; - LOCALE_STIMEFORMAT = 4099; - LOCALE_SSHORTDATE = 31; - LOCALE_SLONGDATE = 32; - LOCALE_IDATE = 33; - LOCALE_ILDATE = 34; - LOCALE_ITIME = 35; - LOCALE_ITLZERO = 37; - LOCALE_IDAYLZERO = 38; - LOCALE_IMONLZERO = 39; - LOCALE_S1159 = 40; - LOCALE_S2359 = 41; - LOCALE_ICALENDARTYPE = 4105; - LOCALE_IOPTIONALCALENDAR = 4107; - LOCALE_IFIRSTDAYOFWEEK = 4108; - LOCALE_IFIRSTWEEKOFYEAR = 4109; - LOCALE_SDAYNAME1 = 42; - LOCALE_SDAYNAME2 = 43; - LOCALE_SDAYNAME3 = 44; - LOCALE_SDAYNAME4 = 45; - LOCALE_SDAYNAME5 = 46; - LOCALE_SDAYNAME6 = 47; - LOCALE_SDAYNAME7 = 48; - LOCALE_SABBREVDAYNAME1 = 49; - LOCALE_SABBREVDAYNAME2 = 50; - LOCALE_SABBREVDAYNAME3 = 51; - LOCALE_SABBREVDAYNAME4 = 52; - LOCALE_SABBREVDAYNAME5 = 53; - LOCALE_SABBREVDAYNAME6 = 54; - LOCALE_SABBREVDAYNAME7 = 55; - LOCALE_SMONTHNAME1 = 56; - LOCALE_SMONTHNAME2 = 57; - LOCALE_SMONTHNAME3 = 58; - LOCALE_SMONTHNAME4 = 59; - LOCALE_SMONTHNAME5 = 60; - LOCALE_SMONTHNAME6 = 61; - LOCALE_SMONTHNAME7 = 62; - LOCALE_SMONTHNAME8 = 63; - LOCALE_SMONTHNAME9 = 64; - LOCALE_SMONTHNAME10 = 65; - LOCALE_SMONTHNAME11 = 66; - LOCALE_SMONTHNAME12 = 67; - LOCALE_SMONTHNAME13 = 4110; - LOCALE_SABBREVMONTHNAME1 = 68; - LOCALE_SABBREVMONTHNAME2 = 69; - LOCALE_SABBREVMONTHNAME3 = 70; - LOCALE_SABBREVMONTHNAME4 = 71; - LOCALE_SABBREVMONTHNAME5 = 72; - LOCALE_SABBREVMONTHNAME6 = 73; - LOCALE_SABBREVMONTHNAME7 = 74; - LOCALE_SABBREVMONTHNAME8 = 75; - LOCALE_SABBREVMONTHNAME9 = 76; - LOCALE_SABBREVMONTHNAME10 = 77; - LOCALE_SABBREVMONTHNAME11 = 78; - LOCALE_SABBREVMONTHNAME12 = 79; - LOCALE_SABBREVMONTHNAME13 = 4111; - LOCALE_SPOSITIVESIGN = 80; - LOCALE_SNEGATIVESIGN = 81; - LOCALE_IPOSSIGNPOSN = 82; - LOCALE_INEGSIGNPOSN = 83; - LOCALE_IPOSSYMPRECEDES = 84; - LOCALE_IPOSSEPBYSPACE = 85; - LOCALE_INEGSYMPRECEDES = 86; - LOCALE_INEGSEPBYSPACE = 87; - LOCALE_NOUSEROVERRIDE = $80000000; - LOCALE_USE_CP_ACP = $40000000; // use the system ACP - LOCALE_RETURN_NUMBER = $20000000; // return number instead - { Calendar Type Information } - CAL_ICALINTVALUE = 1; - CAL_IYEAROFFSETRANGE = 3; - CAL_SABBREVDAYNAME1 = 14; - CAL_SABBREVDAYNAME2 = 15; - CAL_SABBREVDAYNAME3 = 16; - CAL_SABBREVDAYNAME4 = 17; - CAL_SABBREVDAYNAME5 = 18; - CAL_SABBREVDAYNAME6 = 19; - CAL_SABBREVDAYNAME7 = 20; - CAL_SABBREVMONTHNAME1 = 34; - CAL_SABBREVMONTHNAME2 = 35; - CAL_SABBREVMONTHNAME3 = 36; - CAL_SABBREVMONTHNAME4 = 37; - CAL_SABBREVMONTHNAME5 = 38; - CAL_SABBREVMONTHNAME6 = 39; - CAL_SABBREVMONTHNAME7 = 40; - CAL_SABBREVMONTHNAME8 = 41; - CAL_SABBREVMONTHNAME9 = 42; - CAL_SABBREVMONTHNAME10 = 43; - CAL_SABBREVMONTHNAME11 = 44; - CAL_SABBREVMONTHNAME12 = 45; - CAL_SABBREVMONTHNAME13 = 46; - CAL_SCALNAME = 2; - CAL_SDAYNAME1 = 7; - CAL_SDAYNAME2 = 8; - CAL_SDAYNAME3 = 9; - CAL_SDAYNAME4 = 10; - CAL_SDAYNAME5 = 11; - CAL_SDAYNAME6 = 12; - CAL_SDAYNAME7 = 13; - CAL_SERASTRING = 4; - CAL_SLONGDATE = 6; - CAL_SMONTHNAME1 = 21; - CAL_SMONTHNAME2 = 22; - CAL_SMONTHNAME3 = 23; - CAL_SMONTHNAME4 = 24; - CAL_SMONTHNAME5 = 25; - CAL_SMONTHNAME6 = 26; - CAL_SMONTHNAME7 = 27; - CAL_SMONTHNAME8 = 28; - CAL_SMONTHNAME9 = 29; - CAL_SMONTHNAME10 = 30; - CAL_SMONTHNAME11 = 31; - CAL_SMONTHNAME12 = 32; - CAL_SMONTHNAME13 = 33; - CAL_SSHORTDATE = 5; - { SetProcessWorkingSetSize } - PROCESS_SET_QUOTA = 256; - { SetPrinter } - { SetService } - { SetStretchBltMode } - BLACKONWHITE = 1; - COLORONCOLOR = 3; - HALFTONE = 4; - STRETCH_ANDSCANS = 1; - STRETCH_DELETESCANS = 3; - STRETCH_HALFTONE = 4; - STRETCH_ORSCANS = 2; - WHITEONBLACK = 2; - { SetSystemCursor } - OCR_NORMAL = 32512; - OCR_IBEAM = 32513; - OCR_WAIT = 32514; - OCR_CROSS = 32515; - OCR_UP = 32516; - OCR_SIZE = 32640; - OCR_ICON = 32641; - OCR_SIZENWSE = 32642; - OCR_SIZENESW = 32643; - OCR_SIZEWE = 32644; - OCR_SIZENS = 32645; - OCR_SIZEALL = 32646; - OCR_NO = 32648; - OCR_APPSTARTING = 32650; - { SetTapePosition } - TAPE_ABSOLUTE_BLOCK = $1; - TAPE_LOGICAL_BLOCK = $2; - TAPE_REWIND = 0; - TAPE_SPACE_END_OF_DATA = $4; - TAPE_SPACE_FILEMARKS = $6; - TAPE_SPACE_RELATIVE_BLOCKS = $5; - TAPE_SPACE_SEQUENTIAL_FMKS = $7; - TAPE_SPACE_SEQUENTIAL_SMKS = $9; - TAPE_SPACE_SETMARKS = $8; - { SetUnhandledExceptionFilter } - EXCEPTION_EXECUTE_HANDLER = 1; - EXCEPTION_CONTINUE_EXECUTION = -(1); - EXCEPTION_CONTINUE_SEARCH = 0; - { SetWindowPos, DeferWindowPos } - HWND_BOTTOM = HWND(1); - HWND_NOTOPMOST = HWND(-(2)); - HWND_TOP = HWND(0); - HWND_TOPMOST = HWND(-(1)); - - - const - SWP_DRAWFRAME = 32; - SWP_FRAMECHANGED = 32; - SWP_HIDEWINDOW = 128; - SWP_NOACTIVATE = 16; - SWP_NOCOPYBITS = 256; - SWP_NOMOVE = 2; - SWP_NOSIZE = 1; - SWP_NOREDRAW = 8; - SWP_NOZORDER = 4; - SWP_SHOWWINDOW = 64; - SWP_NOOWNERZORDER = 512; - SWP_NOREPOSITION = 512; - SWP_NOSENDCHANGING = 1024; - { SHAddToRecentDocs } - { SHAppBarMessage } - { SHChangeNotify } - { ShellProc } - HSHELL_ACTIVATESHELLWINDOW = 3; - HSHELL_GETMINRECT = 5; - HSHELL_LANGUAGE = 8; - HSHELL_REDRAW = 6; - HSHELL_TASKMAN = 7; - HSHELL_WINDOWACTIVATED = 4; - HSHELL_WINDOWCREATED = 1; - HSHELL_WINDOWDESTROYED = 2; - { SHGetFileInfo } - // supported SHGetFileInfo input flags - SHGFI_ICON = $000000100; // get icon - SHGFI_DISPLAYNAME = $000000200; // get display name - SHGFI_TYPENAME = $000000400; // get type name - SHGFI_ATTRIBUTES = $000000800; // get attributes - SHGFI_SYSICONINDEX = $000004000; // get system icon index - SHGFI_LARGEICON = $000000000; // get large icon - SHGFI_SMALLICON = $000000001; // get small icon - SHGFI_USEFILEATTRIBUTES = $000000010; // use passed dwFileAttribute - SHGFI_PIDL = $000000008; // pszPath is a pidl -// supported SHGetFileInfo output attributes - SFGAO_LINK = $00010000; // Shortcut (link) - SFGAO_READONLY = $00040000; // read-only - SFGAO_FOLDER = $20000000; // It's a folder. - { SHGetSpecialFolderLocation } - { ShowWindow } - SW_HIDE = 0; - SW_MAXIMIZE = 3; - SW_MINIMIZE = 6; - SW_NORMAL = 1; - SW_RESTORE = 9; - SW_SHOW = 5; - SW_SHOWDEFAULT = 10; - SW_SHOWMAXIMIZED = 3; - SW_SHOWMINIMIZED = 2; - SW_SHOWMINNOACTIVE = 7; - SW_SHOWNA = 8; - SW_SHOWNOACTIVATE = 4; - SW_SHOWNORMAL = 1; - WPF_RESTORETOMAXIMIZED = 2; - WPF_SETMINPOSITION = 1; - { SID } - //////////////////////////////////////////////////////////////////////// - // // - // Security Id (SID) // - // // - //////////////////////////////////////////////////////////////////////// - // - // - // Pictorially the structure of an SID is as follows: - // - // 1 1 1 1 1 1 - // 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 - // +---------------------------------------------------------------+ - // | SubAuthorityCount |Reserved1 (SBZ)| Revision | - // +---------------------------------------------------------------+ - // | IdentifierAuthority[0] | - // +---------------------------------------------------------------+ - // | IdentifierAuthority[1] | - // +---------------------------------------------------------------+ - // | IdentifierAuthority[2] | - // +---------------------------------------------------------------+ - // | | - // +- - - - - - - - SubAuthority[] - - - - - - - - -+ - // | | - // +---------------------------------------------------------------+ - // - // - SID_REVISION =1; // Current revision level - SID_MAX_SUB_AUTHORITIES = 15; - SID_RECOMMENDED_SUB_AUTHORITIES = 1; // Will change to around 6 - // in a future release. - - - { Sleep } - INFINITE = $FFFFFFFF; - { SystemParametersInfo } - SPI_GETACCESSTIMEOUT = 60; - SPI_GETANIMATION = 72; - SPI_GETBEEP = 1; - SPI_GETBORDER = 5; - SPI_GETDEFAULTINPUTLANG = 89; - SPI_GETDRAGFULLWINDOWS = 38; - SPI_GETFASTTASKSWITCH = 35; - SPI_GETFILTERKEYS = 50; - SPI_GETFONTSMOOTHING = 74; - SPI_GETGRIDGRANULARITY = 18; - SPI_GETHIGHCONTRAST = 66; - SPI_GETICONMETRICS = 45; - SPI_GETICONTITLELOGFONT = 31; - SPI_GETICONTITLEWRAP = 25; - SPI_GETKEYBOARDDELAY = 22; - SPI_GETKEYBOARDPREF = 68; - SPI_GETKEYBOARDSPEED = 10; - SPI_GETLOWPOWERACTIVE = 83; - SPI_GETLOWPOWERTIMEOUT = 79; - SPI_GETMENUDROPALIGNMENT = 27; - SPI_GETMINIMIZEDMETRICS = 43; - SPI_GETMOUSE = 3; - SPI_GETMOUSEKEYS = 54; - SPI_GETMOUSETRAILS = 94; - SPI_GETNONCLIENTMETRICS = 41; - SPI_GETPOWEROFFACTIVE = 84; - SPI_GETPOWEROFFTIMEOUT = 80; - SPI_GETSCREENREADER = 70; - SPI_GETSCREENSAVEACTIVE = 16; - SPI_GETSCREENSAVETIMEOUT = 14; - SPI_GETSERIALKEYS = 62; - SPI_GETSHOWSOUNDS = 56; - SPI_GETSOUNDSENTRY = 64; - SPI_GETSTICKYKEYS = 58; - SPI_GETTOGGLEKEYS = 52; - SPI_GETWINDOWSEXTENSION = 92; - SPI_GETWORKAREA = 48; - SPI_ICONHORIZONTALSPACING = 13; - SPI_ICONVERTICALSPACING = 24; - SPI_LANGDRIVER = 12; - SPI_SCREENSAVERRUNNING = 97; - SPI_SETACCESSTIMEOUT = 61; - SPI_SETANIMATION = 73; - SPI_SETBEEP = 2; - SPI_SETBORDER = 6; - SPI_SETDEFAULTINPUTLANG = 90; - SPI_SETDESKPATTERN = 21; - SPI_SETDESKWALLPAPER = 20; - SPI_SETDOUBLECLICKTIME = 32; - SPI_SETDOUBLECLKHEIGHT = 30; - SPI_SETDOUBLECLKWIDTH = 29; - SPI_SETDRAGFULLWINDOWS = 37; - SPI_SETDRAGHEIGHT = 77; - SPI_SETDRAGWIDTH = 76; - SPI_SETFASTTASKSWITCH = 36; - SPI_SETFILTERKEYS = 51; - SPI_SETFONTSMOOTHING = 75; - SPI_SETGRIDGRANULARITY = 19; - SPI_SETHANDHELD = 78; - SPI_SETHIGHCONTRAST = 67; - SPI_SETICONMETRICS = 46; - SPI_SETICONTITLELOGFONT = 34; - SPI_SETICONTITLEWRAP = 26; - SPI_SETKEYBOARDDELAY = 23; - SPI_SETKEYBOARDPREF = 69; - SPI_SETKEYBOARDSPEED = 11; - SPI_SETLANGTOGGLE = 91; - SPI_SETLOWPOWERACTIVE = 85; - SPI_SETLOWPOWERTIMEOUT = 81; - SPI_SETMENUDROPALIGNMENT = 28; - SPI_SETMINIMIZEDMETRICS = 44; - SPI_SETMOUSE = 4; - SPI_SETMOUSEBUTTONSWAP = 33; - SPI_SETMOUSEKEYS = 55; - SPI_SETMOUSETRAILS = 93; - SPI_SETNONCLIENTMETRICS = 42; - SPI_SETPENWINDOWS = 49; - SPI_SETPOWEROFFACTIVE = 86; - SPI_SETPOWEROFFTIMEOUT = 82; - SPI_SETSCREENREADER = 71; - SPI_SETSCREENSAVEACTIVE = 17; - SPI_SETSCREENSAVETIMEOUT = 15; - SPI_SETSERIALKEYS = 63; - SPI_SETSHOWSOUNDS = 57; - SPI_SETSOUNDSENTRY = 65; - SPI_SETSTICKYKEYS = 59; - SPI_SETTOGGLEKEYS = 53; - SPI_SETWORKAREA = 47; - SPI_SETBATTERYIDLETIMEOUT = 251; - SPI_GETBATTERYIDLETIMEOUT = 252; - SPI_SETEXTERNALIDLETIMEOUT = 253; - SPI_GETEXTERNALIDLETIMEOUT = 254; - SPI_SETWAKEUPIDLETIMEOUT = 255; - SPI_GETWAKEUPIDLETIMEOUT = 256; - SPI_GETPLATFORMTYPE = 257; - SPI_GETOEMINFO = 258; - - SPIF_UPDATEINIFILE = 1; - SPIF_SENDWININICHANGE = 2; - SPIF_SENDCHANGE = 2; - { TrackPopupMenu, TrackPopMenuEx } - TPM_CENTERALIGN = $4; - TPM_LEFTALIGN = 0; - TPM_RIGHTALIGN = $8; - TPM_LEFTBUTTON = 0; - TPM_RIGHTBUTTON = $2; - TPM_HORIZONTAL = 0; - TPM_BOTTOMALIGN = $20; - TPM_VERTICAL = $40; - { TranslateCharsetInfo } - TCI_SRCCHARSET = 1; - TCI_SRCCODEPAGE = 2; - TCI_SRCFONTSIG = 3; - { WideCharToMultiByte } - WC_COMPOSITECHECK = 512; - WC_DISCARDNS = 16; - WC_SEPCHARS = 32; - WC_DEFAULTCHAR = 64; - { WinHelp } - HELP_COMMAND = $102; - HELP_CONTENTS = $3; - HELP_CONTEXT = $1; - HELP_CONTEXTPOPUP = $8; - HELP_FORCEFILE = $9; - HELP_HELPONHELP = $4; - HELP_INDEX = $3; - HELP_KEY = $101; - HELP_MULTIKEY = $201; - HELP_PARTIALKEY = $105; - HELP_QUIT = $2; - HELP_SETCONTENTS = $5; - HELP_SETINDEX = $5; - HELP_CONTEXTMENU = $a; - HELP_FINDER = $b; - HELP_WM_HELP = $c; - HELP_TCARD = $8000; - HELP_TCARD_DATA = $10; - HELP_TCARD_OTHER_CALLER = $11; - { WNetAddConnectino2 } - CONNECT_UPDATE_PROFILE = 1; - { WNetConnectionDialog, WNetDisconnectDialog, WNetOpenEnum } - RESOURCETYPE_DISK = 1; - RESOURCETYPE_PRINT = 2; - RESOURCETYPE_ANY = 0; - RESOURCE_CONNECTED = 1; - RESOURCE_GLOBALNET = 2; - RESOURCE_REMEMBERED = 3; - RESOURCEUSAGE_CONNECTABLE = 1; - RESOURCEUSAGE_CONTAINER = 2; - { WNetGetResourceInformation, WNetGetResourceParent } - WN_BAD_NETNAME = $43; - WN_EXTENDED_ERROR = $4b8; - WN_MORE_DATA = $ea; - WN_NO_NETWORK = $4c6; - WN_SUCCESS = 0; - WN_ACCESS_DENIED = $5; - WN_BAD_PROVIDER = $4b4; - WN_NOT_AUTHENTICATED = $4dc; - { WNetGetUniversalName } - UNIVERSAL_NAME_INFO_LEVEL = 1; - REMOTE_NAME_INFO_LEVEL = 2; - { GetExitCodeThread } - STILL_ACTIVE = $103; - - { kfuncs consts } //+kfuncs - - {$ifdef CPUARM} - PUserKData = $FFFFC800; - {$else} - PUserKData = $00005800; - {$endif CPUARM} - - EVENT_PULSE = 1; - EVENT_RESET = 2; - EVENT_SET = 3; - - SYSHANDLE_OFFSET = $004; - NUM_SYS_HANDLES = 32; - SYS_HANDLE_BASE = 64; - SH_WIN32 = 0; - SH_CURTHREAD = 1; - SH_CURPROC = 2; - SH_LAST_NOTIFY = 16; // Last set notified on Thread/Process Termination - SH_GDI = 16; - SH_WMGR = 17; - SH_WNET = 18; // WNet APIs for network redirector - SH_COMM = 19; // Communications not "COM" - SH_FILESYS_APIS = 20; // File system APIS - SH_SHELL = 21; - SH_DEVMGR_APIS = 22; // File system device manager - SH_TAPI = 23; - SH_PATCHER = 24; - SH_SERVICES = 26; - SH_LASTRESERVED = 26; - - TLS_FUNCALLOC = 0; - TLS_FUNCFREE = 1; - - { COMMPROP structure } - SP_SERIALCOMM = $1; - BAUD_075 = $1; - BAUD_110 = $2; - BAUD_134_5 = $4; - BAUD_150 = $8; - BAUD_300 = $10; - BAUD_600 = $20; - BAUD_1200 = $40; - BAUD_1800 = $80; - BAUD_2400 = $100; - BAUD_4800 = $200; - BAUD_7200 = $400; - BAUD_9600 = $800; - BAUD_14400 = $1000; - BAUD_19200 = $2000; - BAUD_38400 = $4000; - BAUD_56K = $8000; - BAUD_57600 = $40000; - BAUD_115200 = $20000; - BAUD_128K = $10000; - BAUD_USER = $10000000; - PST_FAX = $21; - PST_LAT = $101; - PST_MODEM = $6; - PST_NETWORK_BRIDGE = $100; - PST_PARALLELPORT = $2; - PST_RS232 = $1; - PST_RS422 = $3; - PST_RS423 = $4; - PST_RS449 = $5; - PST_SCANNER = $22; - PST_TCPIP_TELNET = $102; - PST_UNSPECIFIED = 0; - PST_X25 = $103; - PCF_16BITMODE = $200; - PCF_DTRDSR = $1; - PCF_INTTIMEOUTS = $80; - PCF_PARITY_CHECK = $8; - PCF_RLSD = $4; - PCF_RTSCTS = $2; - PCF_SETXCHAR = $20; - PCF_SPECIALCHARS = $100; - PCF_TOTALTIMEOUTS = $40; - PCF_XONXOFF = $10; - SP_BAUD = $2; - SP_DATABITS = $4; - SP_HANDSHAKING = $10; - SP_PARITY = $1; - SP_PARITY_CHECK = $20; - SP_RLSD = $40; - SP_STOPBITS = $8; - DATABITS_5 = 1; - DATABITS_6 = 2; - DATABITS_7 = 4; - DATABITS_8 = 8; - DATABITS_16 = 16; - DATABITS_16X = 32; - STOPBITS_10 = 1; - STOPBITS_15 = 2; - STOPBITS_20 = 4; - PARITY_NONE = 256; - PARITY_ODD = 512; - PARITY_EVEN = 1024; - PARITY_MARK = 2048; - PARITY_SPACE = 4096; - COMMPROP_INITIALIZED = $e73cf52e; - { DCB structure } - CBR_110 = 110; - CBR_300 = 300; - CBR_600 = 600; - CBR_1200 = 1200; - CBR_2400 = 2400; - CBR_4800 = 4800; - CBR_9600 = 9600; - CBR_14400 = 14400; - CBR_19200 = 19200; - CBR_38400 = 38400; - CBR_56000 = 56000; - CBR_57600 = 57600; - CBR_115200 = 115200; - CBR_128000 = 128000; - CBR_256000 = 256000; - DTR_CONTROL_DISABLE = 0; - DTR_CONTROL_ENABLE = 1; - DTR_CONTROL_HANDSHAKE = 2; - RTS_CONTROL_DISABLE = 0; - RTS_CONTROL_ENABLE = 1; - RTS_CONTROL_HANDSHAKE = 2; - RTS_CONTROL_TOGGLE = 3; - EVENPARITY = 2; - MARKPARITY = 3; - NOPARITY = 0; - ODDPARITY = 1; - SPACEPARITY = 4; - ONESTOPBIT = 0; - ONE5STOPBITS = 1; - TWOSTOPBITS = 2; - { Debugging events } - CREATE_PROCESS_DEBUG_EVENT = 3; - CREATE_THREAD_DEBUG_EVENT = 2; - EXCEPTION_DEBUG_EVENT = 1; - EXIT_PROCESS_DEBUG_EVENT = 5; - EXIT_THREAD_DEBUG_EVENT = 4; - LOAD_DLL_DEBUG_EVENT = 6; - OUTPUT_DEBUG_STRING_EVENT = 8; - UNLOAD_DLL_DEBUG_EVENT = 7; - RIP_EVENT = 9; - { PROCESS_HEAP_ENTRY structure } - PROCESS_HEAP_REGION = 1; - PROCESS_HEAP_UNCOMMITTED_RANGE = 2; - PROCESS_HEAP_ENTRY_BUSY = 4; - PROCESS_HEAP_ENTRY_MOVEABLE = 16; - PROCESS_HEAP_ENTRY_DDESHARE = 32; - { Win32s } - HINSTANCE_ERROR = 32; - { WIN32_STREAM_ID structure } - BACKUP_DATA = 1; - BACKUP_EA_DATA = 2; - BACKUP_SECURITY_DATA = 3; - BACKUP_ALTERNATE_DATA = 4; - BACKUP_LINK = 5; - STREAM_MODIFIED_WHEN_READ = 1; - STREAM_CONTAINS_SECURITY = 2; - { STARTUPINFO structure } - STARTF_USESHOWWINDOW = 1; - STARTF_USEPOSITION = 4; - STARTF_USESIZE = 2; - STARTF_USECOUNTCHARS = 8; - STARTF_USEFILLATTRIBUTE = 16; - STARTF_RUNFULLSCREEN = 32; - STARTF_FORCEONFEEDBACK = 64; - STARTF_FORCEOFFFEEDBACK = 128; - STARTF_USESTDHANDLES = 256; - STARTF_USEHOTKEY = 512; - { OSVERSIONINFO structure } - VER_PLATFORM_WIN32s = 0; - VER_PLATFORM_WIN32_WINDOWS = 1; - VER_PLATFORM_WIN32_NT = 2; - { More versions } - VER_SERVER_NT = $80000000; //winnt - VER_WORKSTATION_NT = $40000000; //winnt - VER_SUITE_SMALLBUSINESS = $00000001; //winnt - VER_SUITE_ENTERPRISE = $00000002; //winnt - VER_SUITE_BACKOFFICE = $00000004; //winnt - VER_SUITE_COMMUNICATIONS = $00000008; //winnt - VER_SUITE_TERMINAL = $00000010; //winnt - VER_SUITE_SMALLBUSINESS_RESTRICTED = $00000020; //winnt - VER_SUITE_EMBEDDEDNT = $00000040; - VER_SUITE_DATACENTER = $00000080; - VER_SUITE_SINGLEUSERTS = $00000100; - VER_SUITE_PERSONAL = $00000200; - VER_SUITE_BLADE = $00000400; - VER_SUITE_EMBEDDED_RESTRICTED = $00000800; - { PROPSHEETPAGE structure } - MAXPROPPAGES = 100; - PSP_DEFAULT = 0; - PSP_DLGINDIRECT = 1; - PSP_HASHELP = 32; - PSP_USECALLBACK = 128; - PSP_USEHICON = 2; - PSP_USEICONID = 4; - PSP_USEREFPARENT = 64; - PSP_USETITLE = 8; - PSP_RTLREADING = 16; - PSP_PREMATURE = $0400; //prsht - - { PROPSHEETHEADER structure } //prsht - PSH_DEFAULT = 0; - PSH_PROPTITLE = 1; - PSH_USEHICON = 2; - PSH_USEICONID = 4; - PSH_PROPSHEETPAGE = 8; - PSH_WIZARDHASFINISH = $0010; - PSH_WIZARD = 32; - PSH_USEPSTARTPAGE = 64; - PSH_NOAPPLYNOW = 128; - PSH_USECALLBACK = 256; - PSH_HASHELP = 512; - PSH_MODELESS = 1024; - PSH_RTLREADING = 2048; - PSH_WIZARDCONTEXTHELP = $1000; - PSH_MAXIMIZE = $2000; - PSH_NOCANCELBUTTON = $80000000; //specific ppc - - PSCB_INITIALIZED = 1; - PSCB_PRECREATE = 2; - PSCB_GETVERSION = 3; - PSCB_GETTITLE = 4; - PSCB_GETLINKTEXT = 5; - - { PSN_APPLY message } //prsht - PSNRET_NOERROR = 0; - PSNRET_INVALID = 1; - PSNRET_INVALID_NOCHANGEPAGE = 2; - - { Property Sheet } - PROP_SM_CXDLG = 212; - PROP_SM_CYDLG = 188; - PROP_MED_CXDLG = 227; - PROP_MED_CYDLG = 215; - PROP_LG_CXDLG = 252; - PROP_LG_CYDLG = 218; - - PSBTN_APPLYNOW = 4; - PSBTN_BACK = 0; - PSBTN_CANCEL = 5; - PSBTN_FINISH = 2; - PSBTN_HELP = 6; - PSBTN_MAX = 6; //prsht - PSBTN_NEXT = 1; - PSBTN_OK = 3; - - PSWIZB_BACK = 1; - PSWIZB_NEXT = 2; - PSWIZB_FINISH = 4; - PSWIZB_DISABLEDFINISH = 8; - - ID_PSREBOOTSYSTEM = 3; - ID_PSRESTARTWINDOWS = 2; - WIZ_BODYCX = 184; - WIZ_BODYX = 92; - WIZ_CXBMP = 80; - WIZ_CXDLG = 276; - WIZ_CYDLG = 140; - - { VX_FIXEDFILEINFO structure } - VS_FILE_INFO = MAKEINTRESOURCE(16); - - - const - VS_VERSION_INFO = 1; - VS_FF_DEBUG = $1; - VS_FF_INFOINFERRED = $10; - VS_FF_PATCHED = $4; - VS_FF_PRERELEASE = $2; - VS_FF_PRIVATEBUILD = $8; - VS_FF_SPECIALBUILD = $20; - VOS_UNKNOWN = 0; - VOS_DOS = $10000; - VOS_OS216 = $20000; - VOS_OS232 = $30000; - VOS_NT = $40000; - VOS_DOS_WINDOWS16 = $10001; - VOS_DOS_WINDOWS32 = $10004; - VOS_OS216_PM16 = $20002; - VOS_OS232_PM32 = $30003; - VOS_NT_WINDOWS32 = $40004; - VFT_UNKNOWN = 0; - VFT_APP = $1; - VFT_DLL = $2; - VFT_DRV = $3; - VFT_FONT = $4; - VFT_VXD = $5; - VFT_STATIC_LIB = $7; - VFT2_UNKNOWN = 0; - VFT2_DRV_PRINTER = $1; - VFT2_DRV_KEYBOARD = $2; - VFT2_DRV_LANGUAGE = $3; - VFT2_DRV_DISPLAY = $4; - VFT2_DRV_MOUSE = $5; - VFT2_DRV_NETWORK = $6; - VFT2_DRV_SYSTEM = $7; - VFT2_DRV_INSTALLABLE = $8; - VFT2_DRV_SOUND = $9; - VFT2_FONT_RASTER = $1; - VFT2_FONT_VECTOR = $2; - VFT2_FONT_TRUETYPE = $3; - { PANOSE structure } - PAN_ANY = 0; - PAN_NO_FIT = 1; - PAN_FAMILY_TEXT_DISPLAY = 2; - PAN_FAMILY_SCRIPT = 3; - PAN_FAMILY_DECORATIVE = 4; - PAN_FAMILY_PICTORIAL = 5; - PAN_SERIF_COVE = 2; - PAN_SERIF_OBTUSE_COVE = 3; - PAN_SERIF_SQUARE_COVE = 4; - PAN_SERIF_OBTUSE_SQUARE_COVE = 5; - PAN_SERIF_SQUARE = 6; - PAN_SERIF_THIN = 7; - PAN_SERIF_BONE = 8; - PAN_SERIF_EXAGGERATED = 9; - PAN_SERIF_TRIANGLE = 10; - PAN_SERIF_NORMAL_SANS = 11; - PAN_SERIF_OBTUSE_SANS = 12; - PAN_SERIF_PERP_SANS = 13; - PAN_SERIF_FLARED = 14; - PAN_SERIF_ROUNDED = 15; - PAN_WEIGHT_VERY_LIGHT = 2; - PAN_WEIGHT_LIGHT = 3; - PAN_WEIGHT_THIN = 4; - PAN_WEIGHT_BOOK = 5; - PAN_WEIGHT_MEDIUM = 6; - PAN_WEIGHT_DEMI = 7; - PAN_WEIGHT_BOLD = 8; - PAN_WEIGHT_HEAVY = 9; - PAN_WEIGHT_BLACK = 10; - PAN_WEIGHT_NORD = 11; - PAN_PROP_OLD_STYLE = 2; - PAN_PROP_MODERN = 3; - PAN_PROP_EVEN_WIDTH = 4; - PAN_PROP_EXPANDED = 5; - PAN_PROP_CONDENSED = 6; - PAN_PROP_VERY_EXPANDED = 7; - PAN_PROP_VERY_CONDENSED = 8; - PAN_PROP_MONOSPACED = 9; - PAN_CONTRAST_NONE = 2; - PAN_CONTRAST_VERY_LOW = 3; - PAN_CONTRAST_LOW = 4; - PAN_CONTRAST_MEDIUM_LOW = 5; - PAN_CONTRAST_MEDIUM = 6; - PAN_CONTRAST_MEDIUM_HIGH = 7; - PAN_CONTRAST_HIGH = 8; - PAN_CONTRAST_VERY_HIGH = 9; - PAN_STROKE_GRADUAL_DIAG = 2; - PAN_STROKE_GRADUAL_TRAN = 3; - PAN_STROKE_GRADUAL_VERT = 4; - PAN_STROKE_GRADUAL_HORZ = 5; - PAN_STROKE_RAPID_VERT = 6; - PAN_STROKE_RAPID_HORZ = 7; - PAN_STROKE_INSTANT_VERT = 8; - PAN_STRAIGHT_ARMS_HORZ = 2; - PAN_STRAIGHT_ARMS_WEDGE = 3; - PAN_STRAIGHT_ARMS_VERT = 4; - PAN_STRAIGHT_ARMS_SINGLE_SERIF = 5; - PAN_STRAIGHT_ARMS_DOUBLE_SERIF = 6; - PAN_BENT_ARMS_HORZ = 7; - PAN_BENT_ARMS_VERT = 9; - PAN_BENT_ARMS_WEDGE = 8; - PAN_BENT_ARMS_SINGLE_SERIF = 10; - PAN_BENT_ARMS_DOUBLE_SERIF = 11; - PAN_LETT_NORMAL_CONTACT = 2; - PAN_LETT_NORMAL_WEIGHTED = 3; - PAN_LETT_NORMAL_BOXED = 4; - PAN_LETT_NORMAL_FLATTENED = 5; - PAN_LETT_NORMAL_ROUNDED = 6; - PAN_LETT_NORMAL_OFF_CENTER = 7; - PAN_LETT_NORMAL_SQUARE = 8; - PAN_LETT_OBLIQUE_CONTACT = 9; - PAN_LETT_OBLIQUE_WEIGHTED = 10; - PAN_LETT_OBLIQUE_BOXED = 11; - PAN_LETT_OBLIQUE_FLATTENED = 12; - PAN_LETT_OBLIQUE_ROUNDED = 13; - PAN_LETT_OBLIQUE_OFF_CENTER = 14; - PAN_LETT_OBLIQUE_SQUARE = 15; - PAN_MIDLINE_STANDARD_TRIMMED = 2; - PAN_MIDLINE_STANDARD_POINTED = 3; - PAN_MIDLINE_STANDARD_SERIFED = 4; - PAN_MIDLINE_HIGH_TRIMMED = 5; - PAN_MIDLINE_HIGH_POINTED = 6; - PAN_MIDLINE_HIGH_SERIFED = 7; - PAN_MIDLINE_CONSTANT_TRIMMED = 8; - PAN_MIDLINE_CONSTANT_POINTED = 9; - PAN_MIDLINE_CONSTANT_SERIFED = 10; - PAN_MIDLINE_LOW_TRIMMED = 11; - PAN_MIDLINE_LOW_POINTED = 12; - PAN_MIDLINE_LOW_SERIFED = 13; - PAN_XHEIGHT_CONSTANT_SMALL = 2; - PAN_XHEIGHT_CONSTANT_STD = 3; - PAN_XHEIGHT_CONSTANT_LARGE = 4; - PAN_XHEIGHT_DUCKING_SMALL = 5; - PAN_XHEIGHT_DUCKING_STD = 6; - PAN_XHEIGHT_DUCKING_LARGE = 7; - { PALETTENTRY structure } - PC_EXPLICIT = 2; - PC_NOCOLLAPSE = 4; - PC_RESERVED = 1; - { LOGBRUSH structure } - BS_DIBPATTERN = 5; - BS_DIBPATTERN8X8 = 8; - BS_DIBPATTERNPT = 6; - BS_HATCHED = 2; - BS_HOLLOW = 1; - BS_NULL = 1; - BS_PATTERN = 3; - BS_PATTERN8X8 = 7; - BS_SOLID = 0; - { DEVMODE structure } - DM_ORIENTATION = $1; - DM_PAPERSIZE = $2; - DM_PAPERLENGTH = $4; - DM_PAPERWIDTH = $8; - DM_SCALE = $10; - DM_COPIES = $100; - DM_DEFAULTSOURCE = $200; - DM_PRINTQUALITY = $400; - DM_COLOR = $800; - DM_DUPLEX = $1000; - DM_YRESOLUTION = $2000; - DM_TTOPTION = $4000; - DM_COLLATE = $8000; - DM_FORMNAME = $10000; - DM_LOGPIXELS = $20000; - {DM_BITSPERPEL = $40000; - DM_PELSWIDTH = $80000; - DM_PELSHEIGHT = $100000; - DM_DISPLAYFLAGS = $200000; - DM_DISPLAYFREQUENCY = $400000;already above } - DM_ICMMETHOD = $800000; - DM_ICMINTENT = $1000000; - DM_MEDIATYPE = $2000000; - DM_DITHERTYPE = $4000000; - { orientation selections } - DMORIENT_LANDSCAPE = 2; - DMORIENT_PORTRAIT = 1; - { paper selections } - DMPAPER_LETTER = 1; - DMPAPER_LEGAL = 5; - DMPAPER_A4 = 9; - DMPAPER_CSHEET = 24; - DMPAPER_DSHEET = 25; - DMPAPER_ESHEET = 26; - DMPAPER_LETTERSMALL = 2; - DMPAPER_TABLOID = 3; - DMPAPER_LEDGER = 4; - DMPAPER_STATEMENT = 6; - DMPAPER_EXECUTIVE = 7; - DMPAPER_A3 = 8; - DMPAPER_A4SMALL = 10; - DMPAPER_A5 = 11; - DMPAPER_B4 = 12; - DMPAPER_B5 = 13; - DMPAPER_FOLIO = 14; - DMPAPER_QUARTO = 15; - DMPAPER_10X14 = 16; - DMPAPER_11X17 = 17; - DMPAPER_NOTE = 18; - DMPAPER_ENV_9 = 19; - DMPAPER_ENV_10 = 20; - DMPAPER_ENV_11 = 21; - DMPAPER_ENV_12 = 22; - DMPAPER_ENV_14 = 23; - DMPAPER_ENV_DL = 27; - DMPAPER_ENV_C5 = 28; - DMPAPER_ENV_C3 = 29; - DMPAPER_ENV_C4 = 30; - DMPAPER_ENV_C6 = 31; - DMPAPER_ENV_C65 = 32; - DMPAPER_ENV_B4 = 33; - DMPAPER_ENV_B5 = 34; - DMPAPER_ENV_B6 = 35; - DMPAPER_ENV_ITALY = 36; - DMPAPER_ENV_MONARCH = 37; - DMPAPER_ENV_PERSONAL = 38; - DMPAPER_FANFOLD_US = 39; - DMPAPER_FANFOLD_STD_GERMAN = 40; - DMPAPER_FANFOLD_LGL_GERMAN = 41; - { print qualities } - DMRES_HIGH = -(4); - DMRES_MEDIUM = -(3); - DMRES_LOW = -(2); - DMRES_DRAFT = -(1); - { color enable/disable for color printers } - DMCOLOR_COLOR = 2; - DMCOLOR_MONOCHROME = 1; - DMDUP_SIMPLEX = 1; - DMDUP_HORIZONTAL = 3; - DMDUP_VERTICAL = 2; - DMTT_BITMAP = 1; - DMTT_DOWNLOAD = 2; - DMTT_SUBDEV = 3; - DMCOLLATE_TRUE = 1; - DMCOLLATE_FALSE = 0; - DM_GRAYSCALE = 1; - DM_INTERLACED = 2; - DMICMMETHOD_NONE = 1; - DMICMMETHOD_SYSTEM = 2; - DMICMMETHOD_DRIVER = 3; - DMICMMETHOD_DEVICE = 4; - DMICMMETHOD_USER = 256; - DMICM_SATURATE = 1; - DMICM_CONTRAST = 2; - DMICM_COLORMETRIC = 3; - DMICM_USER = 256; - DMMEDIA_STANDARD = 1; - DMMEDIA_GLOSSY = 3; - DMMEDIA_TRANSPARENCY = 2; - DMMEDIA_USER = 256; - DMDITHER_NONE = 1; - DMDITHER_COARSE = 2; - DMDITHER_FINE = 3; - DMDITHER_LINEART = 4; - DMDITHER_GRAYSCALE = 10; - DMDITHER_USER = 256; - { RGNDATAHEADER structure } - RDH_RECTANGLES = 1; - { TTPOLYGONHEADER structure } - TT_POLYGON_TYPE = 24; - { TTPOLYCURVE structure } - TT_PRIM_LINE = 1; - TT_PRIM_QSPLINE = 2; - { GCP_RESULTS structure } - GCPCLASS_ARABIC = 2; - GCPCLASS_HEBREW = 2; - GCPCLASS_LATIN = 1; - GCPCLASS_LATINNUMBER = 5; - GCPCLASS_LOCALNUMBER = 4; - GCPCLASS_LATINNUMERICSEPARATOR = 7; - GCPCLASS_LATINNUMERICTERMINATOR = 6; - GCPCLASS_NEUTRAL = 3; - GCPCLASS_NUMERICSEPARATOR = 8; - GCPCLASS_PREBOUNDLTR = 128; - GCPCLASS_PREBOUNDRTL = 64; - GCPCLASS_POSTBOUNDLTR = 32; - GCPCLASS_POSTBOUNDRTL = 16; - GCPGLYPH_LINKBEFORE = 32768; - GCPGLYPH_LINKAFTER = 16384; - { RASTERIZER_STATUS structure } - TT_AVAILABLE = 1; - TT_ENABLED = 2; - { COLORADJUSTMENT structure } - CA_NEGATIVE = 1; - CA_LOG_FILTER = 2; - ILLUMINANT_DEVICE_DEFAULT = 0; - ILLUMINANT_A = 1; - ILLUMINANT_B = 2; - ILLUMINANT_C = 3; - ILLUMINANT_D50 = 4; - ILLUMINANT_D55 = 5; - ILLUMINANT_D65 = 6; - ILLUMINANT_D75 = 7; - ILLUMINANT_F2 = 8; - ILLUMINANT_TUNGSTEN = 1; - ILLUMINANT_DAYLIGHT = 3; - ILLUMINANT_FLUORESCENT = 8; - ILLUMINANT_NTSC = 3; - { DOCINFO structure } - DI_APPBANDING = 1; - { EMRMETAHEADER structure } - EMR_HEADER = 1; - ENHMETA_SIGNATURE = 1179469088; - { RTF event masks } - ENM_CHANGE = 1; - ENM_CORRECTTEXT = 4194304; - ENM_DROPFILES = 1048576; - ENM_KEYEVENTS = 65536; - ENM_MOUSEEVENTS = 131072; - ENM_PROTECTED = 2097152; - ENM_REQUESTRESIZE = 262144; - ENM_SCROLL = 4; - ENM_SELCHANGE = 524288; - ENM_UPDATE = 2; - ENM_NONE = 0; - { RTF styles } - ES_DISABLENOSCROLL = 8192; - ES_EX_NOCALLOLEINIT = 16777216; - ES_NOIME = 524288; - ES_SAVESEL = 32768; - ES_SELFIME = 262144; - ES_SUNKEN = 16384; - ES_VERTICAL = 4194304; - ES_SELECTIONBAR = 16777216; - { EM_SETOPTIONS message } - ECOOP_SET = 1; - ECOOP_OR = 2; - ECOOP_AND = 3; - ECOOP_XOR = 4; - ECO_AUTOWORDSELECTION = 1; - ECO_AUTOVSCROLL = 64; - ECO_AUTOHSCROLL = 128; - ECO_NOHIDESEL = 256; - ECO_READONLY = 2048; - ECO_WANTRETURN = 4096; - ECO_SAVESEL = 32768; - ECO_SELECTIONBAR = 16777216; - ECO_VERTICAL = 4194304; - { EM_SETCHARFORMAT message } - SCF_WORD = 2; - SCF_SELECTION = 1; - { EM_STREAMOUT message } - SF_TEXT = 1; - SF_RTF = 2; - SF_RTFNOOBJS = 3; - SF_TEXTIZED = 4; - SFF_SELECTION = 32768; - SFF_PLAINRTF = 16384; - { EM_FINDWORDBREAK message } - WB_CLASSIFY = 3; - {WB_ISDELIMITER = 2; - WB_LEFT = 0; already above } - WB_LEFTBREAK = 6; - WB_PREVBREAK = 6; - WB_MOVEWORDLEFT = 4; - WB_MOVEWORDPREV = 4; - WB_MOVEWORDRIGHT = 5; - WB_MOVEWORDNEXT = 5; - {WB_RIGHT = 1;already above } - WB_RIGHTBREAK = 7; - WB_NEXTBREAK = 7; - { EM_GETPUNCTUATION message } - PC_LEADING = 2; - PC_FOLLOWING = 1; - PC_DELIMITER = 4; - PC_OVERFLOW = 3; - { EM_SETWORDWRAPMODE message } - WBF_WORDWRAP = 16; - WBF_WORDBREAK = 32; - WBF_OVERFLOW = 64; - WBF_LEVEL1 = 128; - WBF_LEVEL2 = 256; - WBF_CUSTOM = 512; - WBF_BREAKAFTER = 64; - WBF_BREAKLINE = 32; - WBF_ISWHITE = 16; - { CHARFORMAT structure } - CFM_BOLD = 1; - CFM_COLOR = 1073741824; - CFM_FACE = 536870912; - CFM_ITALIC = 2; - CFM_OFFSET = 268435456; - CFM_PROTECTED = 16; - CFM_SIZE = $80000000; - CFM_STRIKEOUT = 8; - CFM_UNDERLINE = 4; - CFE_AUTOCOLOR = 1073741824; - CFE_BOLD = 1; - CFE_ITALIC = 2; - CFE_STRIKEOUT = 8; - CFE_UNDERLINE = 4; - CFE_PROTECTED = 16; - { PARAFORMAT structure } - PFM_ALIGNMENT = 8; - PFM_NUMBERING = 32; - PFM_OFFSET = 4; - PFM_OFFSETINDENT = $80000000; - PFM_RIGHTINDENT = 2; - PFM_STARTINDENT = 1; - PFM_TABSTOPS = 16; - PFN_BULLET = 1; - PFA_LEFT = 1; - PFA_RIGHT = 2; - PFA_CENTER = 3; - { SELCHANGE structure } - SEL_EMPTY = 0; - SEL_TEXT = 1; - SEL_OBJECT = 2; - SEL_MULTICHAR = 4; - SEL_MULTIOBJECT = 8; - { RTF clipboard formats } - CF_RTF = 'Rich Text Format'; - CF_RETEXTOBJ = 'RichEdit Text and Objects'; - { DRAWITEMSTRUCT structure } - ODT_BUTTON = 4; - ODT_COMBOBOX = 3; - ODT_LISTBOX = 2; - ODT_LISTVIEW = 102; - ODT_MENU = 1; - ODT_STATIC = 5; - ODT_TAB = 101; - ODT_HEADER = 100; - ODA_DRAWENTIRE = 1; - ODA_FOCUS = 4; - ODA_SELECT = 2; - ODS_CHECKED = 8; - ODS_COMBOBOXEDIT = 4096; - ODS_DEFAULT = 32; - ODS_DISABLED = 4; - ODS_FOCUS = 16; - ODS_GRAYED = 2; - ODS_SELECTED = 1; - { Common control window classes } - ANIMATE_CLASSW = 'SysAnimate32'; - HOTKEY_CLASSW = 'msctls_hotkey32'; - PROGRESS_CLASSW = 'msctls_progress32'; - STATUSCLASSNAMEW = 'msctls_statusbar32'; - TOOLBARCLASSNAMEW = 'ToolbarWindow32'; - TOOLTIPS_CLASSW = 'tooltips_class32'; - TRACKBAR_CLASSW = 'msctls_trackbar32'; - UPDOWN_CLASSW = 'msctls_updown32'; - WC_HEADERW = 'SysHeader32'; - WC_LISTVIEWW = 'SysListView32'; - WC_TABCONTROLW = 'SysTabControl32'; - WC_TREEVIEWW = 'SysTreeView32'; - { Common control styles } - CCS_ADJUSTABLE = $20; - CCS_BOTTOM = $3; - CCS_NODIVIDER = $40; - CCS_NOMOVEY = $2; - CCS_NOPARENTALIGN = $8; - CCS_NORESIZE = $4; - CCS_TOP = $1; - CCS_VERT = $80; - ANIMATE_CLASSA = 'SysAnimate32'; - HOTKEY_CLASSA = 'msctls_hotkey32'; - PROGRESS_CLASSA = 'msctls_progress32'; - STATUSCLASSNAMEA = 'msctls_statusbar32'; - TOOLBARCLASSNAMEA = 'ToolbarWindow32'; - TOOLTIPS_CLASSA = 'tooltips_class32'; - TRACKBAR_CLASSA = 'msctls_trackbar32'; - UPDOWN_CLASSA = 'msctls_updown32'; - WC_HEADERA = 'SysHeader32'; - WC_LISTVIEWA = 'SysListView32'; - WC_TABCONTROLA = 'SysTabControl32'; - WC_TREEVIEWA = 'SysTreeView32'; -{$ifdef UNICODE} - - const - ANIMATE_CLASS = ANIMATE_CLASSW; - HOTKEY_CLASS = HOTKEY_CLASSW; - PROGRESS_CLASS = PROGRESS_CLASSW; - STATUSCLASSNAME = STATUSCLASSNAMEW; - TOOLBARCLASSNAME = TOOLBARCLASSNAMEW; - TOOLTIPS_CLASS = TOOLTIPS_CLASSW; - TRACKBAR_CLASS = TRACKBAR_CLASSW; - UPDOWN_CLASS = UPDOWN_CLASSW; - WC_HEADER = WC_HEADERW; - WC_LISTVIEW = WC_LISTVIEWW; - WC_TABCONTROL = WC_TABCONTROLW; - WC_TREEVIEW = WC_TREEVIEWW; -{$else} - - const - ANIMATE_CLASS = ANIMATE_CLASSA; - HOTKEY_CLASS = HOTKEY_CLASSA; - PROGRESS_CLASS = PROGRESS_CLASSA; - STATUSCLASSNAME = STATUSCLASSNAMEA; - TOOLBARCLASSNAME = TOOLBARCLASSNAMEA; - TOOLTIPS_CLASS = TOOLTIPS_CLASSA; - TRACKBAR_CLASS = TRACKBAR_CLASSA; - UPDOWN_CLASS = UPDOWN_CLASSA; - WC_HEADER = WC_HEADERA; - WC_LISTVIEW = WC_LISTVIEWA; - WC_TABCONTROL = WC_TABCONTROLA; - WC_TREEVIEW = WC_TREEVIEWA; -{$endif} - { UNICODE } - { Header control styles } - - const - HDS_BUTTONS = 2; - HDS_HIDDEN = 8; - HDS_HORZ = 0; - { HD_ITEM structure } - HDI_BITMAP = 16; - HDI_FORMAT = 4; - HDI_HEIGHT = 1; - HDI_LPARAM = 8; - HDI_TEXT = 2; - HDI_WIDTH = 1; - HDF_CENTER = 2; - HDF_LEFT = 0; - HDF_RIGHT = 1; - HDF_RTLREADING = 4; - HDF_BITMAP = 8192; - HDF_OWNERDRAW = 32768; - HDF_STRING = 16384; - HDF_JUSTIFYMASK = 3; - { HD_HITTESTINFO structure } - HHT_NOWHERE = 1; - HHT_ONDIVIDER = 4; - HHT_ONDIVOPEN = 8; - HHT_ONHEADER = 2; - HHT_TOLEFT = 2048; - HHT_TORIGHT = 1024; - { TBADDBITMAP structure } - HINST_COMMCTRL = HINST(-(1)); - - - const - IDB_STD_LARGE_COLOR = 1; - IDB_STD_SMALL_COLOR = 0; - IDB_VIEW_LARGE_COLOR = 5; - IDB_VIEW_SMALL_COLOR = 4; - STD_COPY = 1; - STD_CUT = 0; - STD_DELETE = 5; - STD_FILENEW = 6; - STD_FILEOPEN = 7; - STD_FILESAVE = 8; - STD_FIND = 12; - STD_HELP = 11; - STD_PASTE = 2; - STD_PRINT = 14; - STD_PRINTPRE = 9; - STD_PROPERTIES = 10; - STD_REDOW = 4; - STD_REPLACE = 13; - STD_UNDO = 3; - VIEW_LARGEICONS = 0; - VIEW_SMALLICONS = 1; - VIEW_LIST = 2; - VIEW_DETAILS = 3; - VIEW_SORTNAME = 4; - VIEW_SORTSIZE = 5; - VIEW_SORTDATE = 6; - VIEW_SORTTYPE = 7; - { Toolbar styles } - TBSTYLE_ALTDRAG = 1024; - TBSTYLE_TOOLTIPS = 256; - TBSTYLE_WRAPABLE = 512; - TBSTYLE_BUTTON = 0; - TBSTYLE_CHECK = 2; - TBSTYLE_CHECKGROUP = 6; - TBSTYLE_GROUP = 4; - TBSTYLE_SEP = 1; - TBSTYLE_DROPDOWN = $0008; - TBSTYLE_AUTOSIZE = $0010; // automatically calculate the cx of the button - TBSTYLE_FLAT = $0800; - TBSTYLE_LIST = $1000; - TBSTYLE_CUSTOMERASE = $2000; - TBSTYLE_TRANSPARENT = $8000; - { Toolbar states } - TBSTATE_CHECKED = 1; - TBSTATE_ENABLED = 4; - TBSTATE_HIDDEN = 8; - TBSTATE_INDETERMINATE = 16; - TBSTATE_PRESSED = 2; - TBSTATE_WRAP = 32; - TBSTATE_ELLIPSES = $40; - TBSTATE_HIGHLIGHTED = $80; - { Tooltip styles } - TTS_ALWAYSTIP = 1; - TTS_NOPREFIX = 2; - { TOOLINFO structure } - TTF_IDISHWND = 1; - TTF_CENTERTIP = 2; - TTF_RTLREADING = 4; - TTF_SUBCLASS = 16; - { TTM_SETDELAYTIME message } - TTDT_AUTOMATIC = 0; - TTDT_AUTOPOP = 2; - TTDT_INITIAL = 3; - TTDT_RESHOW = 1; - { Status window } - SBARS_SIZEGRIP = 256; - {SBARS_SIZEGRIP = 256;already above } - { DL_DRAGGING message } - DL_MOVECURSOR = 3; - DL_COPYCURSOR = 2; - DL_STOPCURSOR = 1; - { Up-down control styles } - UDS_ALIGNLEFT = 8; - UDS_ALIGNRIGHT = 4; - UDS_ARROWKEYS = 32; - UDS_AUTOBUDDY = 16; - UDS_HORZ = 64; - UDS_NOTHOUSANDS = 128; - UDS_SETBUDDYINT = 2; - UDS_WRAP = 1; - { UDM_SETRANGE message } - UD_MAXVAL = 32767; - UD_MINVAL = -(32767); - { HKM_GETHOTKEY message } - HOTKEYF_ALT = 4; - HOTKEYF_CONTROL = 2; - HOTKEYF_EXT = 8; - HOTKEYF_SHIFT = 1; - { HKM_SETRULES message } - HKCOMB_A = 8; - HKCOMB_C = 4; - HKCOMB_CA = 64; - HKCOMB_NONE = 1; - HKCOMB_S = 2; - HKCOMB_SA = 32; - HKCOMB_SC = 16; - HKCOMB_SCA = 128; - { Trackbar styles } - TBS_HORZ = 0; - TBS_VERT = 2; - TBS_AUTOTICKS = 1; - TBS_NOTICKS = 16; - TBS_TOP = 4; - TBS_BOTTOM = 0; - TBS_LEFT = 4; - TBS_RIGHT = 0; - TBS_BOTH = 8; - TBS_ENABLESELRANGE = 32; - TBS_FIXEDLENGTH = 64; - TBS_NOTHUMB = 128; - TB_BOTTOM = 7; - TB_ENDTRACK = 8; - TB_LINEDOWN = 1; - TB_LINEUP = 0; - TB_PAGEDOWN = 3; - TB_PAGEUP = 2; - TB_THUMBPOSITION = 4; - TB_THUMBTRACK = 5; - TB_TOP = 6; - { List view styles } - LVS_ALIGNLEFT = 2048; - LVS_ALIGNTOP = 0; - LVS_AUTOARRANGE = 256; - LVS_EDITLABELS = 512; - LVS_ICON = 0; - LVS_LIST = 3; - LVS_NOCOLUMNHEADER = 16384; - LVS_NOLABELWRAP = 128; - LVS_NOSCROLL = 8192; - LVS_NOSORTHEADER = 32768; - LVS_OWNERDRAWFIXED = 1024; - LVS_OWNERDATA = $1000; - LVS_REPORT = 1; - LVS_SHAREIMAGELISTS = 64; - LVS_SHOWSELALWAYS = 8; - LVS_SINGLESEL = 4; - LVS_SMALLICON = 2; - LVS_SORTASCENDING = 16; - LVS_SORTDESCENDING = 32; - LVS_TYPESTYLEMASK = 64512; - //extended styles - LVS_EX_GRIDLINES = $00000001; - LVS_EX_SUBITEMIMAGES = $00000002; - LVS_EX_CHECKBOXES = $00000004; - LVS_EX_TRACKSELECT = $00000008; - LVS_EX_HEADERDRAGDROP = $00000010; - LVS_EX_FULLROWSELECT = $00000020; // applies to report mode only - LVS_EX_ONECLICKACTIVATE = $00000040; - LVS_EX_NOHSCROLL = $10000000; - LVS_EX_GRADIENT = $20000000; // draw a background gradient - - LVSIL_NORMAL = 0; - LVSIL_SMALL = 1; - LVSIL_STATE = 2; - LVIS_CUT = 4; - LVIS_DROPHILITED = 8; - LVIS_FOCUSED = 1; - LVIS_SELECTED = 2; - LVIS_OVERLAYMASK = 3840; - LVIS_STATEIMAGEMASK = 61440; - - // progress bar styles - PBS_SMOOTH = 01; - PBS_VERTICAL = 04; - - LPSTR_TEXTCALLBACKW = LPWSTR(-(1)); - LPSTR_TEXTCALLBACKA = LPSTR(-(1)); - - - {$ifdef UNICODE} - - {const this is a function in fact !! - LPSTR_TEXTCALLBACK = LPSTR_TEXTCALLBACKW;} - LPSTR_TEXTCALLBACK = LPWSTR(-(1)); - - {$else} - - {const - LPSTR_TEXTCALLBACK = LPSTR_TEXTCALLBACKA; } - LPSTR_TEXTCALLBACK =LPSTR(-(1)); - {$endif} - - { LV_ITEM structure } - - const - LVIF_TEXT = 1; - LVIF_IMAGE = 2; - LVIF_PARAM = 4; - LVIF_STATE = 8; - LVIF_INDENT = $10; - LVIF_DI_SETITEM = 4096; - { LVM_GETNEXTITEM structure } - LVNI_ABOVE = 256; - LVNI_ALL = 0; - LVNI_BELOW = 512; - LVNI_TOLEFT = 1024; - LVNI_TORIGHT = 2048; - LVNI_CUT = 4; - LVNI_DROPHILITED = 8; - LVNI_FOCUSED = 1; - LVNI_SELECTED = 2; - { LV_FINDINFO structure } - LVFI_PARAM = 1; - LVFI_PARTIAL = 8; - LVFI_STRING = 2; - LVFI_WRAP = 32; - LVFI_NEARESTXY = 64; - { LV_HITTESTINFO structure } - LVHT_ABOVE = 8; - LVHT_BELOW = 16; - LVHT_NOWHERE = 1; - LVHT_ONITEMICON = 2; - LVHT_ONITEMLABEL = 4; - LVHT_ONITEMSTATEICON = 8; - LVHT_TOLEFT = 64; - LVHT_TORIGHT = 32; - LVHT_ONITEM = LVHT_ONITEMICON or LVHT_ONITEMLABEL or LVHT_ONITEMSTATEICON; - { LV_COLUMN structure } - LVCF_FMT = 1; - LVCF_SUBITEM = 8; - LVCF_TEXT = 4; - LVCF_WIDTH = 2; - LVCF_IMAGE = $10; - LVCF_ORDER = $20; - LVCFMT_CENTER = 2; - LVCFMT_LEFT = 0; - LVCFMT_RIGHT = 1; - LVCFMT_JUSTIFYMASK = $0003; - LVCFMT_IMAGE = $0800; - LVCFMT_BITMAP_ON_RIGHT = $1000; - { ListView_GetItemRect } - LVIR_BOUNDS = 0; - LVIR_ICON = 1; - LVIR_LABEL = 2; - LVIR_SELECTBOUNDS = 3; - { LVM_ARRANGE message } - LVA_ALIGNLEFT = 1; - LVA_ALIGNTOP = 2; - LVA_DEFAULT = 0; - LVA_SNAPTOGRID = 5; - { LVM_SETCOLUMNWIDTH message } - LVSCW_AUTOSIZE = -(1); - LVSCW_AUTOSIZE_USEHEADER = -(2); - { Tree View styles } - TVS_DISABLEDRAGDROP = 16; - TVS_EDITLABELS = 8; - TVS_HASBUTTONS = 1; - TVS_HASLINES = 2; - TVS_LINESATROOT = 4; - TVS_SHOWSELALWAYS = 32; - TVS_CHECKBOXES = $0100; - TVS_SINGLEEXPAND = $0400; - { Tree View states } - TVIS_BOLD = 16; - TVIS_CUT = 4; - TVIS_DROPHILITED = 8; - TVIS_EXPANDED = 32; - TVIS_EXPANDEDONCE = 64; - TVIS_FOCUSED = 1; - TVIS_OVERLAYMASK = 3840; - TVIS_SELECTED = 2; - TVIS_STATEIMAGEMASK = 61440; - TVIS_USERMASK = 61440; - { TV_ITEM structure } - TVIF_CHILDREN = 64; - TVIF_HANDLE = 16; - TVIF_IMAGE = 2; - TVIF_PARAM = 4; - TVIF_SELECTEDIMAGE = 32; - TVIF_STATE = 8; - TVIF_TEXT = 1; - I_CHILDRENCALLBACK = -(1); - I_IMAGECALLBACK = -(1); - { TV_INSERTSTRUCT structure } - { added manually PM, TREEITEM is not defined in the C headers } - type - HTREEITEM = THandle; - - const - TVI_ROOT = HTREEITEM($FFFF0000); - TVI_FIRST =HTREEITEM($FFFF0001); - TVI_LAST = HTREEITEM($FFFF0002); - TVI_SORT = HTREEITEM($FFFF0003); - - { TV_HITTESTINFO structure } - - const - TVHT_ABOVE = 256; - TVHT_BELOW = 512; - TVHT_NOWHERE = 1; - TVHT_ONITEM = 70; - TVHT_ONITEMBUTTON = 16; - TVHT_ONITEMICON = 2; - TVHT_ONITEMINDENT = 8; - TVHT_ONITEMLABEL = 4; - TVHT_ONITEMRIGHT = 32; - TVHT_ONITEMSTATEICON = 64; - TVHT_TOLEFT = 2048; - TVHT_TORIGHT = 1024; - { TVM_EXPAND message } - TVE_COLLAPSE = 1; - TVE_COLLAPSERESET = 32768; - TVE_EXPAND = 2; - TVE_TOGGLE = 3; - { TVM_GETIMAGELIST message } - TVSIL_NORMAL = 0; - TVSIL_STATE = 2; - { TVM_GETNEXTITEM message } - TVGN_CARET = 9; - TVGN_CHILD = 4; - TVGN_DROPHILITE = 8; - TVGN_FIRSTVISIBLE = 5; - TVGN_NEXT = 1; - TVGN_NEXTVISIBLE = 6; - TVGN_PARENT = 3; - TVGN_PREVIOUS = 2; - TVGN_PREVIOUSVISIBLE = 7; - TVGN_ROOT = 0; - { TVN_SELCHANGED message } - TVC_BYKEYBOARD = 2; - TVC_BYMOUSE = 1; - TVC_UNKNOWN = 0; - { Tab control styles } //commctrl - TCS_RIGHTJUSTIFY = 0; - TCS_SINGLELINE = 0; - TCS_TABS = 0; - TCS_SCROLLOPPOSITE = $0001; // assumes multiline tab - TCS_BOTTOM = $0002; - TCS_RIGHT = $0002; - TCS_MULTISELECT = $0004; // allow multi-select in button mode - TCS_FLATBUTTONS = $0008; - TCS_FORCEICONLEFT = 16; - TCS_FORCELABELLEFT = 32; - TCS_HOTTRACK = $0040; - TCS_VERTICAL = $0080; - TCS_BUTTONS = 256; - TCS_MULTILINE = 512; - TCS_FIXEDWIDTH = 1024; - TCS_RAGGEDRIGHT = 2048; - TCS_FOCUSONBUTTONDOWN = 4096; - TCS_OWNERDRAWFIXED = 8192; - TCS_TOOLTIPS= 16384; - TCS_FOCUSNEVER = 32768; - - TCS_EX_FLATSEPARATORS = $00000001; - - { TC_ITEM structure } - TCIF_TEXT = 1; - TCIF_IMAGE = 2; - TCIF_PARAM = 8; - TCIF_RTLREADING = 4; - { TC_HITTESTINFO structure } - TCHT_NOWHERE = 1; - TCHT_ONITEM = 6; - TCHT_ONITEMICON = 2; - TCHT_ONITEMLABEL = 4; - { Animation control styles } - ACS_AUTOPLAY = 4; - ACS_CENTER = 1; - ACS_TRANSPARENT = 2; - { MODEMDEVCAPS structure } - DIALOPTION_BILLING = 64; - DIALOPTION_QUIET = 128; - DIALOPTION_DIALTONE = 256; - MDMVOLFLAG_LOW = 1; - MDMVOLFLAG_MEDIUM = 2; - MDMVOLFLAG_HIGH = 4; - MDMVOL_LOW = 0; - MDMVOL_MEDIUM = 1; - MDMVOL_HIGH = 2; - MDMSPKRFLAG_OFF = 1; - MDMSPKRFLAG_DIAL = 2; - MDMSPKRFLAG_ON = 4; - MDMSPKRFLAG_CALLSETUP = 8; - MDMSPKR_OFF = 0; - MDMSPKR_DIAL = 1; - MDMSPKR_ON = 2; - MDMSPKR_CALLSETUP = 3; - MDM_BLIND_DIAL = 512; - MDM_CCITT_OVERRIDE = 64; - MDM_CELLULAR = 8; - MDM_COMPRESSION = 1; - MDM_ERROR_CONTROL = 2; - MDM_FLOWCONTROL_HARD = 16; - MDM_FLOWCONTROL_SOFT = 32; - MDM_FORCED_EC = 4; - MDM_SPEED_ADJUST = 128; - MDM_TONE_DIAL = 256; - MDM_V23_OVERRIDE = 1024; - { Languages } - // - // Language IDs. - // - // The following two combinations of primary language ID and - // sublanguage ID have special semantics: - // - // Primary Language ID Sublanguage ID Result - // ------------------- --------------- ------------------------ - // LANG_NEUTRAL SUBLANG_NEUTRAL Language neutral - // LANG_NEUTRAL SUBLANG_DEFAULT User default language - // LANG_NEUTRAL SUBLANG_SYS_DEFAULT System default language - // LANG_INVARIANT SUBLANG_NEUTRAL Invariant locale - // - - // - // Primary language IDs. - // - - LANG_NEUTRAL = $00; - LANG_INVARIANT = $7f; - - LANG_AFRIKAANS = $36; - LANG_ALBANIAN = $1c; - LANG_ARABIC = $01; - LANG_ARMENIAN = $2b; - LANG_ASSAMESE = $4d; - LANG_AZERI = $2c; - LANG_BASQUE = $2d; - LANG_BELARUSIAN = $23; - LANG_BENGALI = $45; - LANG_BULGARIAN = $02; - LANG_CATALAN = $03; - LANG_CHINESE = $04; - LANG_CROATIAN = $1a; - LANG_CZECH = $05; - LANG_DANISH = $06; - LANG_DIVEHI = $65; - LANG_DUTCH = $13; - LANG_ENGLISH = $09; - LANG_ESTONIAN = $25; - LANG_FAEROESE = $38; - LANG_FARSI = $29; - LANG_FINNISH = $0b; - LANG_FRENCH = $0c; - LANG_GALICIAN = $56; - LANG_GEORGIAN = $37; - LANG_GERMAN = $07; - LANG_GREEK = $08; - LANG_GUJARATI = $47; - LANG_HEBREW = $0d; - LANG_HINDI = $39; - LANG_HUNGARIAN = $0e; - LANG_ICELANDIC = $0f; - LANG_INDONESIAN = $21; - LANG_ITALIAN = $10; - LANG_JAPANESE = $11; - LANG_KANNADA = $4b; - LANG_KASHMIRI = $60; - LANG_KAZAK = $3f; - LANG_KONKANI = $57; - LANG_KOREAN = $12; - LANG_KYRGYZ = $40; - LANG_LATVIAN = $26; - LANG_LITHUANIAN = $27; - LANG_MACEDONIAN = $2f; // the Former Yugoslav Republic of Macedonia - LANG_MALAY = $3e; - LANG_MALAYALAM = $4c; - LANG_MANIPURI = $58; - LANG_MARATHI = $4e; - LANG_MONGOLIAN = $50; - LANG_NEPALI = $61; - LANG_NORWEGIAN = $14; - LANG_ORIYA = $48; - LANG_POLISH = $15; - LANG_PORTUGUESE = $16; - LANG_PUNJABI = $46; - LANG_ROMANIAN = $18; - LANG_RUSSIAN = $19; - LANG_SANSKRIT = $4f; - LANG_SERBIAN = $1a; - LANG_SINDHI = $59; - LANG_SLOVAK = $1b; - LANG_SLOVENIAN = $24; - LANG_SPANISH = $0a; - LANG_SWAHILI = $41; - LANG_SWEDISH = $1d; - LANG_SYRIAC = $5a; - LANG_TAMIL = $49; - LANG_TATAR = $44; - LANG_TELUGU = $4a; - LANG_THAI = $1e; - LANG_TURKISH = $1f; - LANG_UKRAINIAN = $22; - LANG_URDU = $20; - LANG_UZBEK = $43; - LANG_VIETNAMESE = $2a; - - // - // Sublanguage IDs. - // - // The name immediately following SUBLANG_ dictates which primary - // language ID that sublanguage ID can be combined with to form a - // valid language ID. - // - - SUBLANG_NEUTRAL = $00; // language neutral - SUBLANG_DEFAULT = $01; // user default - SUBLANG_SYS_DEFAULT = $02; // system default - - SUBLANG_ARABIC_SAUDI_ARABIA = $01; // Arabic (Saudi Arabia) - SUBLANG_ARABIC_IRAQ = $02; // Arabic (Iraq) - SUBLANG_ARABIC_EGYPT = $03; // Arabic (Egypt) - SUBLANG_ARABIC_LIBYA = $04; // Arabic (Libya) - SUBLANG_ARABIC_ALGERIA = $05; // Arabic (Algeria) - SUBLANG_ARABIC_MOROCCO = $06; // Arabic (Morocco) - SUBLANG_ARABIC_TUNISIA = $07; // Arabic (Tunisia) - SUBLANG_ARABIC_OMAN = $08; // Arabic (Oman) - SUBLANG_ARABIC_YEMEN = $09; // Arabic (Yemen) - SUBLANG_ARABIC_SYRIA = $0a; // Arabic (Syria) - SUBLANG_ARABIC_JORDAN = $0b; // Arabic (Jordan) - SUBLANG_ARABIC_LEBANON = $0c; // Arabic (Lebanon) - SUBLANG_ARABIC_KUWAIT = $0d; // Arabic (Kuwait) - SUBLANG_ARABIC_UAE = $0e; // Arabic (U.A.E) - SUBLANG_ARABIC_BAHRAIN = $0f; // Arabic (Bahrain) - SUBLANG_ARABIC_QATAR = $10; // Arabic (Qatar) - SUBLANG_AZERI_LATIN = $01; // Azeri (Latin) - SUBLANG_AZERI_CYRILLIC = $02; // Azeri (Cyrillic) - SUBLANG_CHINESE_TRADITIONAL = $01; // Chinese (Taiwan) - SUBLANG_CHINESE_SIMPLIFIED = $02; // Chinese (PR China) - SUBLANG_CHINESE_HONGKONG = $03; // Chinese (Hong Kong S.A.R., P.R.C.) - SUBLANG_CHINESE_SINGAPORE = $04; // Chinese (Singapore) - SUBLANG_CHINESE_MACAU = $05; // Chinese (Macau S.A.R.) - SUBLANG_DUTCH = $01; // Dutch - SUBLANG_DUTCH_BELGIAN = $02; // Dutch (Belgian) - SUBLANG_ENGLISH_US = $01; // English (USA) - SUBLANG_ENGLISH_UK = $02; // English (UK) - SUBLANG_ENGLISH_AUS = $03; // English (Australian) - SUBLANG_ENGLISH_CAN = $04; // English (Canadian) - SUBLANG_ENGLISH_NZ = $05; // English (New Zealand) - SUBLANG_ENGLISH_EIRE = $06; // English (Irish) - SUBLANG_ENGLISH_SOUTH_AFRICA = $07; // English (South Africa) - SUBLANG_ENGLISH_JAMAICA = $08; // English (Jamaica) - SUBLANG_ENGLISH_CARIBBEAN = $09; // English (Caribbean) - SUBLANG_ENGLISH_BELIZE = $0a; // English (Belize) - SUBLANG_ENGLISH_TRINIDAD = $0b; // English (Trinidad) - SUBLANG_ENGLISH_ZIMBABWE = $0c; // English (Zimbabwe) - SUBLANG_ENGLISH_PHILIPPINES = $0d; // English (Philippines) - SUBLANG_FRENCH = $01; // French - SUBLANG_FRENCH_BELGIAN = $02; // French (Belgian) - SUBLANG_FRENCH_CANADIAN = $03; // French (Canadian) - SUBLANG_FRENCH_SWISS = $04; // French (Swiss) - SUBLANG_FRENCH_LUXEMBOURG = $05; // French (Luxembourg) - SUBLANG_FRENCH_MONACO = $06; // French (Monaco) - SUBLANG_GERMAN = $01; // German - SUBLANG_GERMAN_SWISS = $02; // German (Swiss) - SUBLANG_GERMAN_AUSTRIAN = $03; // German (Austrian) - SUBLANG_GERMAN_LUXEMBOURG = $04; // German (Luxembourg) - SUBLANG_GERMAN_LIECHTENSTEIN = $05; // German (Liechtenstein) - SUBLANG_ITALIAN = $01; // Italian - SUBLANG_ITALIAN_SWISS = $02; // Italian (Swiss) - SUBLANG_KASHMIRI_SASIA = $02; // Kashmiri (South Asia) - SUBLANG_KASHMIRI_INDIA = $02; // For app compatibility only - SUBLANG_KOREAN = $01; // Korean (Extended Wansung) - SUBLANG_LITHUANIAN = $01; // Lithuanian - SUBLANG_MALAY_MALAYSIA = $01; // Malay (Malaysia) - SUBLANG_MALAY_BRUNEI_DARUSSALAM = $02; // Malay (Brunei Darussalam) - SUBLANG_NEPALI_INDIA = $02; // Nepali (India) - SUBLANG_NORWEGIAN_BOKMAL = $01; // Norwegian (Bokmal) - SUBLANG_NORWEGIAN_NYNORSK = $02; // Norwegian (Nynorsk) - SUBLANG_PORTUGUESE = $02; // Portuguese - SUBLANG_PORTUGUESE_BRAZILIAN = $01; // Portuguese (Brazilian) - SUBLANG_SERBIAN_LATIN = $02; // Serbian (Latin) - SUBLANG_SERBIAN_CYRILLIC = $03; // Serbian (Cyrillic) - SUBLANG_SPANISH = $01; // Spanish (Castilian) - SUBLANG_SPANISH_MEXICAN = $02; // Spanish (Mexican) - SUBLANG_SPANISH_MODERN = $03; // Spanish (Spain) - SUBLANG_SPANISH_GUATEMALA = $04; // Spanish (Guatemala) - SUBLANG_SPANISH_COSTA_RICA = $05; // Spanish (Costa Rica) - SUBLANG_SPANISH_PANAMA = $06; // Spanish (Panama) - SUBLANG_SPANISH_DOMINICAN_REPUBLIC = $07; // Spanish (Dominican Republic) - SUBLANG_SPANISH_VENEZUELA = $08; // Spanish (Venezuela) - SUBLANG_SPANISH_COLOMBIA = $09; // Spanish (Colombia) - SUBLANG_SPANISH_PERU = $0a; // Spanish (Peru) - SUBLANG_SPANISH_ARGENTINA = $0b; // Spanish (Argentina) - SUBLANG_SPANISH_ECUADOR = $0c; // Spanish (Ecuador) - SUBLANG_SPANISH_CHILE = $0d; // Spanish (Chile) - SUBLANG_SPANISH_URUGUAY = $0e; // Spanish (Uruguay) - SUBLANG_SPANISH_PARAGUAY = $0f; // Spanish (Paraguay) - SUBLANG_SPANISH_BOLIVIA = $10; // Spanish (Bolivia) - SUBLANG_SPANISH_EL_SALVADOR = $11; // Spanish (El Salvador) - SUBLANG_SPANISH_HONDURAS = $12; // Spanish (Honduras) - SUBLANG_SPANISH_NICARAGUA = $13; // Spanish (Nicaragua) - SUBLANG_SPANISH_PUERTO_RICO = $14; // Spanish (Puerto Rico) - SUBLANG_SWEDISH = $01; // Swedish - SUBLANG_SWEDISH_FINLAND = $02; // Swedish (Finland) - SUBLANG_URDU_PAKISTAN = $01; // Urdu (Pakistan) - SUBLANG_URDU_INDIA = $02; // Urdu (India) - SUBLANG_UZBEK_LATIN = $01; // Uzbek (Latin) - SUBLANG_UZBEK_CYRILLIC = $02; // Uzbek (Cyrillic) - - // - // Sorting IDs. - // - - SORT_DEFAULT = $0; // sorting default - - SORT_JAPANESE_XJIS = $0; // Japanese XJIS order - SORT_JAPANESE_UNICODE = $1; // Japanese Unicode order - - SORT_CHINESE_BIG5 = $0; // Chinese BIG5 order - SORT_CHINESE_PRCP = $0; // PRC Chinese Phonetic order - SORT_CHINESE_UNICODE = $1; // Chinese Unicode order - SORT_CHINESE_PRC = $2; // PRC Chinese Stroke Count order - SORT_CHINESE_BOPOMOFO = $3; // Traditional Chinese Bopomofo order - - SORT_KOREAN_KSC = $0; // Korean KSC order - SORT_KOREAN_UNICODE = $1; // Korean Unicode order - - SORT_GERMAN_PHONE_BOOK = $1; // German Phone Book order - - SORT_HUNGARIAN_DEFAULT = $0; // Hungarian Default order - SORT_HUNGARIAN_TECHNICAL = $1; // Hungarian Technical order - - SORT_GEORGIAN_TRADITIONAL = $0; // Georgian Traditional order - SORT_GEORGIAN_MODERN = $1; // Georgian Modern order - - - { SYSTEM_INFO structure } - PROCESSOR_INTEL_386 = 386; - PROCESSOR_INTEL_486 = 486; - PROCESSOR_INTEL_PENTIUM = 586; - PROCESSOR_MIPS_R4000 = 4000; - PROCESSOR_ALPHA_21064 = 21064; - { FSCTL_SET_COMPRESSION } - COMPRESSION_FORMAT_NONE = 0; - COMPRESSION_FORMAT_DEFAULT = 1; - COMPRESSION_FORMAT_LZNT1 = 2; - { TAPE_GET_DRIVE_PARAMETERS structure } - TAPE_DRIVE_COMPRESSION = 131072; - TAPE_DRIVE_ECC = 65536; - TAPE_DRIVE_ERASE_BOP_ONLY = 64; - TAPE_DRIVE_ERASE_LONG = 32; - TAPE_DRIVE_ERASE_IMMEDIATE = 128; - TAPE_DRIVE_ERASE_SHORT = 16; - TAPE_DRIVE_FIXED = 1; - TAPE_DRIVE_FIXED_BLOCK = 1024; - TAPE_DRIVE_INITIATOR = 4; - TAPE_DRIVE_PADDING = 262144; - TAPE_DRIVE_GET_ABSOLUTE_BLK = 1048576; - TAPE_DRIVE_GET_LOGICAL_BLK = 2097152; - TAPE_DRIVE_REPORT_SMKS = 524288; - TAPE_DRIVE_SELECT = 2; - TAPE_DRIVE_SET_EOT_WZ_SIZE = 4194304; - TAPE_DRIVE_TAPE_CAPACITY = 256; - TAPE_DRIVE_TAPE_REMAINING = 512; - TAPE_DRIVE_VARIABLE_BLOCK = 2048; - TAPE_DRIVE_WRITE_PROTECT = 4096; - TAPE_DRIVE_ABS_BLK_IMMED = -(2147475456); - TAPE_DRIVE_ABSOLUTE_BLK = -(2147479552); - TAPE_DRIVE_END_OF_DATA = -(2147418112); - TAPE_DRIVE_FILEMARKS = -(2147221504); - TAPE_DRIVE_LOAD_UNLOAD = -(2147483647); - TAPE_DRIVE_LOAD_UNLD_IMMED = -(2147483616); - TAPE_DRIVE_LOCK_UNLOCK = -(2147483644); - TAPE_DRIVE_LOCK_UNLK_IMMED = -(2147483520); - TAPE_DRIVE_LOG_BLK_IMMED = -(2147450880); - TAPE_DRIVE_LOGICAL_BLK = -(2147467264); - TAPE_DRIVE_RELATIVE_BLKS = -(2147352576); - TAPE_DRIVE_REVERSE_POSITION = -(2143289344); - TAPE_DRIVE_REWIND_IMMEDIATE = -(2147483640); - TAPE_DRIVE_SEQUENTIAL_FMKS = -(2146959360); - TAPE_DRIVE_SEQUENTIAL_SMKS = -(2145386496); - TAPE_DRIVE_SET_BLOCK_SIZE = -(2147483632); - TAPE_DRIVE_SET_COMPRESSION = -(2147483136); - TAPE_DRIVE_SET_ECC = -(2147483392); - TAPE_DRIVE_SET_PADDING = -(2147482624); - TAPE_DRIVE_SET_REPORT_SMKS = -(2147481600); - TAPE_DRIVE_SETMARKS = -(2146435072); - TAPE_DRIVE_SPACE_IMMEDIATE = -(2139095040); - TAPE_DRIVE_TENSION = -(2147483646); - TAPE_DRIVE_TENSION_IMMED = -(2147483584); - TAPE_DRIVE_WRITE_FILEMARKS = -(2113929216); - TAPE_DRIVE_WRITE_LONG_FMKS = -(2013265920); - TAPE_DRIVE_WRITE_MARK_IMMED = -(1879048192); - TAPE_DRIVE_WRITE_SETMARKS = -(2130706432); - TAPE_DRIVE_WRITE_SHORT_FMKS = -(2080374784); - { ACCESS_MASK, ACCESS TYPES } -// DELETE = $00010000; //+winnt // The name conflicts with Delete procedure - READ_CONTROL = $00020000; //+winnt - WRITE_DAC = $00040000; //winnt - WRITE_OWNER = $00080000; //winnt - SYNCHRONIZE = $00100000; //winnt - // - // MaximumAllowed access type - // - MAXIMUM_ALLOWED = $2000000; //winnt - GENERIC_READ = $80000000; //winnt - GENERIC_WRITE = $40000000; //winnt - GENERIC_EXECUTE = $20000000; //+winnt - GENERIC_ALL = $10000000; //winnt - { Standard rights } - STANDARD_RIGHTS_REQUIRED = $f0000; //winnt - STANDARD_RIGHTS_WRITE = READ_CONTROL; //~winnt - STANDARD_RIGHTS_READ = READ_CONTROL; //~winnt - STANDARD_RIGHTS_EXECUTE = READ_CONTROL; //~winnt - STANDARD_RIGHTS_ALL = $1f0000; - SPECIFIC_RIGHTS_ALL = $ffff; - // - // AccessSystemAcl access type - // - ACCESS_SYSTEM_SECURITY = $1000000; - { SID } - ///////////////////////////////////////////////////////////////////////////// - // // - // Universal well-known SIDs // - // // - // Null SID S-1-0-0 // - // World S-1-1-0 // - // Local S-1-2-0 // - // Creator Owner ID S-1-3-0 // - // Creator Group ID S-1-3-1 // - // Creator Owner Server ID S-1-3-2 // - // Creator Group Server ID S-1-3-3 // - // // - // (Non-unique IDs) S-1-4 // - // // - ///////////////////////////////////////////////////////////////////////////// - - SECURITY_NULL_SID_AUTHORITY : SID_IDENTIFIER_AUTHORITY_REC = ( 0,0,0,0,0,0); //+winnt - SECURITY_WORLD_SID_AUTHORITY : SID_IDENTIFIER_AUTHORITY_REC = (0,0,0,0,0,1); //+winnt - SECURITY_LOCAL_SID_AUTHORITY : SID_IDENTIFIER_AUTHORITY_REC = (0,0,0,0,0,2); //+winnt - SECURITY_CREATOR_SID_AUTHORITY : SID_IDENTIFIER_AUTHORITY_REC = (0,0,0,0,0,3);//+winnt - SECURITY_NON_UNIQUE_AUTHORITY : SID_IDENTIFIER_AUTHORITY_REC = (0,0,0,0,0,4); //+winnt - SECURITY_NULL_RID = 0; //winnt - SECURITY_WORLD_RID = 0; //winnt - SECURITY_LOCAL_RID = 0; //winnt - SECURITY_CREATOR_OWNER_RID = 0; //winnt - SECURITY_CREATOR_GROUP_RID = $1; //winnt - SECURITY_CREATOR_OWNER_SERVER_RID = $2; //+winnt - SECURITY_CREATOR_GROUP_SERVER_RID = $3; //+winnt - ///////////////////////////////////////////////////////////////////////////// - // // - // NT well-known SIDs // - // // - // NT Authority S-1-5 // - // Dialup S-1-5-1 // - // // - // Network S-1-5-2 // - // Batch S-1-5-3 // - // Interactive S-1-5-4 // - // Service S-1-5-6 // - // AnonymousLogon S-1-5-7 (aka null logon session) // - // Proxy S-1-5-8 // - // ServerLogon S-1-5-9 (aka domain controller account) // - // Self S-1-5-10 (self RID) // - // Authenticated User S-1-5-11 (Authenticated user somewhere) // - // Restricted Code S-1-5-12 (Running restricted code) // - // // - // (Logon IDs) S-1-5-5-X-Y // - // // - // (NT non-unique IDs) S-1-5-0x15-... // - // // - // (Built-in domain) s-1-5-0x20 // - // // - ///////////////////////////////////////////////////////////////////////////// - SECURITY_NT_AUTHORITY : SID_IDENTIFIER_AUTHORITY_REC = (0,0,0,0,0,5); //+winnt - - SECURITY_DIALUP_RID = $1; //winnt - SECURITY_NETWORK_RID = $2; //winnt - SECURITY_BATCH_RID = $3; //winnt - SECURITY_INTERACTIVE_RID = $4; //winnt - SECURITY_LOGON_IDS_RID = $5; //winnt - SECURITY_LOGON_IDS_RID_COUNT = $3; //winnt - SECURITY_SERVICE_RID = $6; //winnt - SECURITY_ANONYMOUS_LOGON_RID = $00000007; //+winnt - SECURITY_PROXY_RID = $00000008; //+winnt - SECURITY_ENTERPRISE_CONTROLLERS_RID = $00000009; //+winnt - SECURITY_SERVER_LOGON_RID = SECURITY_ENTERPRISE_CONTROLLERS_RID; //+winnt - SECURITY_PRINCIPAL_SELF_RID = $0000000A; //+winnt - SECURITY_AUTHENTICATED_USER_RID = $0000000B; //+winnt - SECURITY_RESTRICTED_CODE_RID = $0000000C; //+winnt - - SECURITY_LOCAL_SYSTEM_RID = $12; //winnt - SECURITY_NT_NON_UNIQUE = $00000015; //+winnt - SECURITY_BUILTIN_DOMAIN_RID = $20; //winnt - // Well-known users ... - DOMAIN_USER_RID_ADMIN = $1f4; //winnt - DOMAIN_USER_RID_GUEST = $1f5; //winnt - DOMAIN_USER_RID_KRBTGT = $000001F6; //+winnt - // well-known groups ... - DOMAIN_GROUP_RID_ADMINS = $200; //winnt - DOMAIN_GROUP_RID_USERS = $201; //winnt - DOMAIN_GROUP_RID_GUESTS = $00000202; //+winnt - DOMAIN_GROUP_RID_COMPUTERS = $00000203; //+winnt - DOMAIN_GROUP_RID_CONTROLLERS = $00000204; //+winnt - DOMAIN_GROUP_RID_CERT_ADMINS = $00000205; //+winnt - DOMAIN_GROUP_RID_SCHEMA_ADMINS = $00000206; //+winnt - DOMAIN_GROUP_RID_ENTERPRISE_ADMINS = $00000207; //+winnt - // well-known aliases ... - DOMAIN_ALIAS_RID_ADMINS = $220; //winnt - DOMAIN_ALIAS_RID_USERS = $221; //winnt - DOMAIN_ALIAS_RID_GUESTS = $222; //winnt - DOMAIN_ALIAS_RID_POWER_USERS = $223; //winnt - DOMAIN_ALIAS_RID_ACCOUNT_OPS = $224; //winnt - DOMAIN_ALIAS_RID_SYSTEM_OPS = $225; //winnt - DOMAIN_ALIAS_RID_PRINT_OPS = $226; //winnt - DOMAIN_ALIAS_RID_BACKUP_OPS = $227; //winnt - DOMAIN_ALIAS_RID_REPLICATOR = $228; //winnt - - // - // Allocate the System Luid. The first 1000 LUIDs are reserved. - // Use #999 here (0x3E7 = 999) - // - SYSTEM_LUID : LUID = ( LowPart: $3E7; HighPart: $0 ); - ANONYMOUS_LOGON_LUID : LUID = (LowPart: $3e6; HighPart: $0 ); - - // - // Group attributes - // - SE_GROUP_MANDATORY = $1; //winnt - SE_GROUP_ENABLED_BY_DEFAULT = $2; //winnt - SE_GROUP_ENABLED = $4; //winnt - SE_GROUP_OWNER = $8; //winnt - SE_GROUP_USE_FOR_DENY_ONLY = $00000010; //+winnt - SE_GROUP_LOGON_ID = $c0000000; //winnt - - { ACL Defines } - ACL_REVISION = 2; - ACL_REVISION_DS = 4; //+winnt - // This is the history of ACL revisions. Add a new one whenever - // ACL_REVISION is updated - ACL_REVISION1=1; //+winnt - ACL_REVISION2=2; //+winnt - ACL_REVISION3=3; //+winnt - ACL_REVISION4=4; //+winnt - MIN_ACL_REVISION=ACL_REVISION2; //+winnt - MAX_ACL_REVISION=ACL_REVISION4; //+winnt - { ACE_HEADER structure } - ACCESS_MIN_MS_ACE_TYPE = $0; //+winnt - ACCESS_ALLOWED_ACE_TYPE = $0; - ACCESS_DENIED_ACE_TYPE = $1; - SYSTEM_AUDIT_ACE_TYPE = $2; - SYSTEM_ALARM_ACE_TYPE = $3; - ACCESS_MAX_MS_V2_ACE_TYPE = $3; //+winnt - ACCESS_ALLOWED_COMPOUND_ACE_TYPE = $4; //+winnt - ACCESS_MAX_MS_V3_ACE_TYPE = $4; - - ACCESS_MIN_MS_OBJECT_ACE_TYPE = $5; //+winnt - ACCESS_ALLOWED_OBJECT_ACE_TYPE = $5; //+winnt - ACCESS_DENIED_OBJECT_ACE_TYPE = $6; //+winnt - SYSTEM_AUDIT_OBJECT_ACE_TYPE = $7; //+winnt - SYSTEM_ALARM_OBJECT_ACE_TYPE = $8; //+winnt - ACCESS_MAX_MS_OBJECT_ACE_TYPE = $8; //+winnt - - ACCESS_MAX_MS_V4_ACE_TYPE = $8; //+winnt - ACCESS_MAX_MS_ACE_TYPE = $8; //+winnt - - { ACE flags in the ACE_HEADER structure } - // - // The following are the inherit flags that go into the AceFlags field - // of an Ace header. - // - OBJECT_INHERIT_ACE = $1; //winnt - CONTAINER_INHERIT_ACE = $2; //winnt - NO_PROPAGATE_INHERIT_ACE = $4; //winnt - INHERIT_ONLY_ACE = $8; //winnt - INHERITED_ACE = $10; //+winnt - VALID_INHERIT_FLAGS = $1F; //+winnt - // The following are the currently defined ACE flags that go into the - // AceFlags field of an ACE header. Each ACE type has its own set of - // AceFlags. - // - // SUCCESSFUL_ACCESS_ACE_FLAG - used only with system audit and alarm ACE - // types to indicate that a message is generated for successful accesses. - // - // FAILED_ACCESS_ACE_FLAG - used only with system audit and alarm ACE types - // to indicate that a message is generated for failed accesses. - // - // - // SYSTEM_AUDIT and SYSTEM_ALARM AceFlags - // - // These control the signaling of audit and alarms for success or failure. - // - SUCCESSFUL_ACCESS_ACE_FLAG = $40; //winnt - FAILED_ACCESS_ACE_FLAG = $80; //winnt - { SECURITY_DESCRIPTOR_CONTROL } - {SECURITY_DESCRIPTOR_REVISION = 1;already defined above } - SECURITY_DESCRIPTOR_MIN_LENGTH = 20; - SE_OWNER_DEFAULTED = 1; - SE_GROUP_DEFAULTED = 2; - SE_DACL_PRESENT = 4; - SE_DACL_DEFAULTED = 8; - SE_SACL_PRESENT = 16; - SE_SACL_DEFAULTED = 32; - SE_SELF_RELATIVE = 32768; - { PRIVILEGE_SET } - SE_PRIVILEGE_ENABLED_BY_DEFAULT = $1; - SE_PRIVILEGE_ENABLED = $2; - SE_PRIVILEGE_USED_FOR_ACCESS = $80000000; - PRIVILEGE_SET_ALL_NECESSARY = $1; - { OPENFILENAME structure } - OFN_ALLOWMULTISELECT = $200; - OFN_CREATEPROMPT = $2000; - OFN_ENABLEHOOK = $20; - OFN_ENABLETEMPLATE = $40; - OFN_ENABLETEMPLATEHANDLE = $80; - OFN_EXPLORER = $80000; - OFN_EXTENSIONDIFFERENT = $400; - OFN_FILEMUSTEXIST = $1000; - OFN_HIDEREADONLY = $4; - OFN_LONGNAMES = $200000; - OFN_NOCHANGEDIR = $8; - OFN_NODEREFERENCELINKS = $100000; - OFN_NOLONGNAMES = $40000; - OFN_NONETWORKBUTTON = $20000; - OFN_NOREADONLYRETURN = $8000; - OFN_NOTESTFILECREATE = $10000; - OFN_NOVALIDATE = $100; - OFN_OVERWRITEPROMPT = $2; - OFN_PATHMUSTEXIST = $800; - OFN_READONLY = $1; - OFN_SHAREAWARE = $4000; - OFN_SHOWHELP = $10; - OFN_PROJECT = $00400000; - OFN_PROPERTY = $00800000; - OFN_SHOW_ALL = $01000000; - { SHAREVISTRING message } - OFN_SHAREFALLTHROUGH = $2; - OFN_SHARENOWARN = $1; - OFN_SHAREWARN = 0; - { Open/Save notifications } - CDN_INITDONE = $fffffda7; - CDN_SELCHANGE = $fffffda6; - CDN_FOLDERCHANGE = $fffffda5; - CDN_SHAREVIOLATION = $fffffda4; - CDN_HELP = $fffffda3; - CDN_FILEOK = $fffffda2; - CDN_TYPECHANGE = $fffffda1; - { Open/Save messages } - CDM_GETFILEPATH = $465; - CDM_GETFOLDERIDLIST = $467; - CDM_GETFOLDERPATH = $466; - CDM_GETSPEC = $464; - CDM_HIDECONTROL = $469; - CDM_SETCONTROLTEXT = $468; - CDM_SETDEFEXT = $46a; - { CHOOSECOLOR structure } - CC_ENABLEHOOK = $10; - CC_ENABLETEMPLATE = $20; - CC_ENABLETEMPLATEHANDLE = $40; - CC_FULLOPEN = $2; - CC_PREVENTFULLOPEN = $4; - CC_RGBINIT = $1; - CC_SHOWHELP = $8; - CC_SOLIDCOLOR = $80; - { FINDREPLACE structure } - FR_DIALOGTERM = $40; - FR_DOWN = $1; - FR_ENABLEHOOK = $100; - FR_ENABLETEMPLATE = $200; - FR_ENABLETEMPLATEHANDLE = $2000; - FR_FINDNEXT = $8; - FR_HIDEUPDOWN = $4000; - FR_HIDEMATCHCASE = $8000; - FR_HIDEWHOLEWORD = $10000; - FR_MATCHCASE = $4; - FR_NOMATCHCASE = $800; - FR_NOUPDOWN = $400; - FR_NOWHOLEWORD = $1000; - FR_REPLACE = $10; - FR_REPLACEALL = $20; - FR_SHOWHELP = $80; - FR_WHOLEWORD = $2; - { CHOOSEFONT structure } - CF_APPLY = $200; - CF_ANSIONLY = $400; - CF_BOTH = $3; - CF_TTONLY = $40000; - CF_EFFECTS = $100; - CF_ENABLEHOOK = $8; - CF_ENABLETEMPLATE = $10; - CF_ENABLETEMPLATEHANDLE = $20; - CF_FIXEDPITCHONLY = $4000; - CF_FORCEFONTEXIST = $10000; - CF_INITTOLOGFONTSTRUCT = $40; - CF_LIMITSIZE = $2000; - CF_NOOEMFONTS = $800; - CF_NOFACESEL = $80000; - CF_NOSCRIPTSEL = $800000; - CF_NOSTYLESEL = $100000; - CF_NOSIZESEL = $200000; - CF_NOSIMULATIONS = $1000; - CF_NOVECTORFONTS = $800; - CF_NOVERTFONTS = $1000000; - CF_PRINTERFONTS = $2; - CF_SCALABLEONLY = $20000; - CF_SCREENFONTS = $1; - CF_SCRIPTSONLY = $400; - CF_SELECTSCRIPT = $400000; - CF_SHOWHELP = $4; - CF_USESTYLE = $80; - CF_WYSIWYG = $8000; - BOLD_FONTTYPE = $100; - ITALIC_FONTTYPE = $200; - PRINTER_FONTTYPE = $4000; - REGULAR_FONTTYPE = $400; - SCREEN_FONTTYPE = $2000; - SIMULATED_FONTTYPE = $8000; - { Common dialog messages } - COLOROKSTRINGW = 'commdlg_ColorOK'; - FILEOKSTRINGW = 'commdlg_FileNameOK'; - FINDMSGSTRINGW = 'commdlg_FindReplace'; - HELPMSGSTRINGW = 'commdlg_help'; - LBSELCHSTRINGW = 'commdlg_LBSelChangedNotify'; - SETRGBSTRINGW = 'commdlg_SetRGBColor'; - SHAREVISTRINGW = 'commdlg_ShareViolation'; - COLOROKSTRINGA = 'commdlg_ColorOK'; - FILEOKSTRINGA = 'commdlg_FileNameOK'; - FINDMSGSTRINGA = 'commdlg_FindReplace'; - HELPMSGSTRINGA = 'commdlg_help'; - LBSELCHSTRINGA = 'commdlg_LBSelChangedNotify'; - SETRGBSTRINGA = 'commdlg_SetRGBColor'; - SHAREVISTRINGA = 'commdlg_ShareViolation'; -{$ifdef UNICODE} - - const - COLOROKSTRING = COLOROKSTRINGW; - FILEOKSTRING = FILEOKSTRINGW; - FINDMSGSTRING = FINDMSGSTRINGW; - HELPMSGSTRING = HELPMSGSTRINGW; - LBSELCHSTRING = LBSELCHSTRINGW; - SETRGBSTRING = SETRGBSTRINGW; - SHAREVISTRING = SHAREVISTRINGW; -{$else} - - const - COLOROKSTRING = COLOROKSTRINGA; - FILEOKSTRING = FILEOKSTRINGA; - FINDMSGSTRING = FINDMSGSTRINGA; - HELPMSGSTRING = HELPMSGSTRINGA; - LBSELCHSTRING = LBSELCHSTRINGA; - SETRGBSTRING = SETRGBSTRINGA; - SHAREVISTRING = SHAREVISTRINGA; -{$endif} - { LBSELCHSTRING message } - - const - CD_LBSELCHANGE = 0; - CD_LBSELADD = 2; - CD_LBSELSUB = 1; - CD_LBSELNOITEMS = -(1); - { DEVNAMES structure } - DN_DEFAULTPRN = 1; - { PRINTDLG structure } - PD_ALLPAGES = 0; - PD_COLLATE = 16; - PD_DISABLEPRINTTOFILE = 524288; - PD_ENABLEPRINTHOOK = 4096; - PD_ENABLEPRINTTEMPLATE = 16384; - PD_ENABLEPRINTTEMPLATEHANDLE = 65536; - PD_ENABLESETUPHOOK = 8192; - PD_ENABLESETUPTEMPLATE = 32768; - PD_ENABLESETUPTEMPLATEHANDLE = 131072; - PD_HIDEPRINTTOFILE = 1048576; - PD_NOPAGENUMS = 8; - PD_NOSELECTION = 4; - PD_NOWARNING = 128; - PD_PAGENUMS = 2; - PD_PRINTSETUP = 64; - PD_PRINTTOFILE = 32; - PD_RETURNDC = 256; - PD_RETURNDEFAULT = 1024; - PD_RETURNIC = 512; - PD_SELECTION = 1; - PD_SHOWHELP = 2048; - PD_USEDEVMODECOPIES = 262144; - PD_USEDEVMODECOPIESANDCOLLATE = 262144; - { PAGESETUPDLG structure } - PSD_DEFAULTMINMARGINS = 0; - PSD_DISABLEMARGINS = 16; - PSD_DISABLEORIENTATION = 256; - PSD_DISABLEPAGEPAINTING = 524288; - PSD_DISABLEPAPER = 512; - PSD_DISABLEPRINTER = 32; - PSD_ENABLEPAGEPAINTHOOK = 262144; - PSD_ENABLEPAGESETUPHOOK = 8192; - PSD_ENABLEPAGESETUPTEMPLATE = 32768; - PSD_ENABLEPAGESETUPTEMPLATEHANDLE = 131072; - PSD_INHUNDREDTHSOFMILLIMETERS = 8; - PSD_INTHOUSANDTHSOFINCHES = 4; - PSD_INWININIINTLMEASURE = 0; - PSD_MARGINS = 2; - PSD_MINMARGINS = 1; - PSD_NOWARNING = 128; - PSD_RETURNDEFAULT = 1024; - PSD_SHOWHELP = 2048; - { WM_SHOWWINDOW message } - SW_OTHERUNZOOM = 4; - SW_OTHERZOOM = 2; - SW_PARENTCLOSING = 1; - SW_PARENTOPENING = 3; - { Virtual Key codes } - VK_LBUTTON = 1; - VK_RBUTTON = 2; - VK_CANCEL = 3; - VK_MBUTTON = 4; - VK_BACK = 8; - VK_TAB = 9; - VK_CLEAR = 12; - VK_RETURN = 13; - VK_SHIFT = 16; - VK_CONTROL = 17; - VK_MENU = 18; - VK_PAUSE = 19; - VK_CAPITAL = 20; - VK_ESCAPE = 27; - VK_SPACE = 32; - VK_PRIOR = 33; - VK_NEXT = 34; - VK_END = 35; - VK_HOME = 36; - VK_LEFT = 37; - VK_UP = 38; - VK_RIGHT = 39; - VK_DOWN = 40; - VK_SELECT = 41; - VK_PRINT = 42; - VK_EXECUTE = 43; - VK_SNAPSHOT = 44; - VK_INSERT = 45; - VK_DELETE = 46; - VK_HELP = 47; - VK_0 = 48; - VK_1 = 49; - VK_2 = 50; - VK_3 = 51; - VK_4 = 52; - VK_5 = 53; - VK_6 = 54; - VK_7 = 55; - VK_8 = 56; - VK_9 = 57; - VK_A = 65; - VK_B = 66; - VK_C = 67; - VK_D = 68; - VK_E = 69; - VK_F = 70; - VK_G = 71; - VK_H = 72; - VK_I = 73; - VK_J = 74; - VK_K = 75; - VK_L = 76; - VK_M = 77; - VK_N = 78; - VK_O = 79; - VK_P = 80; - VK_Q = 81; - VK_R = 82; - VK_S = 83; - VK_T = 84; - VK_U = 85; - VK_V = 86; - VK_W = 87; - VK_X = 88; - VK_Y = 89; - VK_Z = 90; - VK_LWIN = 91; - VK_RWIN = 92; - VK_APPS = 93; - VK_NUMPAD0 = 96; - VK_NUMPAD1 = 97; - VK_NUMPAD2 = 98; - VK_NUMPAD3 = 99; - VK_NUMPAD4 = 100; - VK_NUMPAD5 = 101; - VK_NUMPAD6 = 102; - VK_NUMPAD7 = 103; - VK_NUMPAD8 = 104; - VK_NUMPAD9 = 105; - VK_MULTIPLY = 106; - VK_ADD = 107; - VK_SEPARATOR = 108; - VK_SUBTRACT = 109; - VK_DECIMAL = 110; - VK_DIVIDE = 111; - VK_F1 = 112; - VK_F2 = 113; - VK_F3 = 114; - VK_F4 = 115; - VK_F5 = 116; - VK_F6 = 117; - VK_F7 = 118; - VK_F8 = 119; - VK_F9 = 120; - VK_F10 = 121; - VK_F11 = 122; - VK_F12 = 123; - VK_F13 = 124; - VK_F14 = 125; - VK_F15 = 126; - VK_F16 = 127; - VK_F17 = 128; - VK_F18 = 129; - VK_F19 = 130; - VK_F20 = 131; - VK_F21 = 132; - VK_F22 = 133; - VK_F23 = 134; - VK_F24 = 135; - { GetAsyncKeyState } - VK_NUMLOCK = 144; - VK_SCROLL = 145; - VK_LSHIFT = 160; - VK_LCONTROL = 162; - VK_LMENU = 164; - VK_RSHIFT = 161; - VK_RCONTROL = 163; - VK_RMENU = 165; - { ImmGetVirtualKey } - VK_PROCESSKEY = 229; - - // these constants are xda-specific: - VK_TOUCHPAD = $01; // VK_LBUTTON - VK_ANSWER = $72; // VK_F5 - VK_HANGUP = $73; // VK_F4 - VK_VOLUME = $75; // VK_F6 - - VK_TOPBUTTONS = $5b; // VK_LWIN - // VK_TOPBUTTONS is sent together with one of these: - VK_CALENDER = $C1; - VK_CONTACTS = $C2; - - // note that when holding the navigator button down continuously, - // occasionally the OS will report no keys pressed down. - - VK_NAVIGATOR_MOVE = $84; // VK_F21 - // VK_NAVIGATOR_MOVE is sent together with one of these: - VK_NAVIGATE_LEFT = $25; // VK_LEFT - VK_NAVIGATE_UP = $26; // VK_UP - VK_NAVIGATE_RIGHT = $27; // VK_RIGHT - VK_NAVIGATE_DOWN = $28; // VK_DOWN - - VK_NAVIGATOR_SELECT = $86; // VK_F23 - - VK_ONOFF = $DF; // VK_OFF - - { Keystroke Message Flags } - KF_ALTDOWN = 8192; - KF_DLGMODE = 2048; - KF_EXTENDED = 256; - KF_MENUMODE = 4096; - KF_REPEAT = 16384; - KF_UP = 32768; - { GetKeyboardLayoutName } - KL_NAMELENGTH = 9; - { WM_ACTIVATE message } - WA_ACTIVE = 1; - WA_CLICKACTIVE = 2; - WA_INACTIVE = 0; - { WM_ACTIVATE message } - PWR_CRITICALRESUME = 3; - PWR_SUSPENDREQUEST = 1; - PWR_SUSPENDRESUME = 2; - PWR_FAIL = -(1); - PWR_OK = 1; - { WM_NOTIFYFORMAT message } - NF_QUERY = 3; - NF_REQUERY = 4; - NFR_ANSI = 1; - NFR_UNICODE = 2; - { WM_SIZING message } - WMSZ_BOTTOM = 6; - WMSZ_BOTTOMLEFT = 7; - WMSZ_BOTTOMRIGHT = 8; - WMSZ_LEFT = 1; - WMSZ_RIGHT = 2; - WMSZ_TOP = 3; - WMSZ_TOPLEFT = 4; - WMSZ_TOPRIGHT = 5; - { WM_MOUSEACTIVATE message } - MA_ACTIVATE = 1; - MA_ACTIVATEANDEAT = 2; - MA_NOACTIVATE = 3; - MA_NOACTIVATEANDEAT = 4; - { WM_SIZE message } - SIZE_MAXHIDE = 4; - SIZE_MAXIMIZED = 2; - SIZE_MAXSHOW = 3; - SIZE_MINIMIZED = 1; - SIZE_RESTORED = 0; - { WM_NCCALCSIZE message } - WVR_ALIGNTOP = 16; - WVR_ALIGNLEFT = 32; - WVR_ALIGNBOTTOM = 64; - WVR_ALIGNRIGHT = 128; - WVR_HREDRAW = 256; - WVR_VREDRAW = 512; - WVR_REDRAW = 768; - WVR_VALIDRECTS = 1024; - { WM_NCHITTEST message } - HTBOTTOM = 15; - HTBOTTOMLEFT = 16; - HTBOTTOMRIGHT = 17; - HTCAPTION = 2; - HTCLIENT = 1; - HTERROR = -(2); - HTGROWBOX = 4; - HTHSCROLL = 6; - HTLEFT = 10; - HTMENU = 5; - HTNOWHERE = 0; - HTREDUCE = 8; - HTRIGHT = 11; - HTSIZE = 4; - HTSYSMENU = 3; - HTTOP = 12; - HTTOPLEFT = 13; - HTTOPRIGHT = 14; - HTTRANSPARENT = -(1); - HTVSCROLL = 7; - HTZOOM = 9; - { Mouse messages } - MK_CONTROL = 8; - MK_LBUTTON = 1; - MK_MBUTTON = 16; - MK_RBUTTON = 2; - MK_SHIFT = 4; - { WNDCLASS structure } - CS_VREDRAW = 1; - CS_HREDRAW = 2; - CS_DBLCLKS = 8; - CS_PARENTDC = 128; - CS_NOCLOSE = 512; - CS_SAVEBITS = 2048; - CS_GLOBALCLASS = 16384; - CS_IME = $10000; - - DLGWINDOWEXTRA = 32; - { ACCEL structure } - FALT = 16; - FCONTROL = 8; - FNOINVERT = 2; - FSHIFT = 4; - FVIRTKEY = 1; - { MENUITEMINFO structure } - MIIM_CHECKMARKS = 8; - MIIM_DATA = 32; - MIIM_ID = 2; - MIIM_STATE = 1; - MIIM_SUBMENU = 4; - MIIM_TYPE = 16; - MFT_BITMAP = $4; - MFT_MENUBARBREAK = $20; - MFT_MENUBREAK = $40; - MFT_OWNERDRAW = $100; - MFT_RADIOCHECK = $200; - MFT_RIGHTJUSTIFY = $4000; - MFT_SEPARATOR = $800; - MFT_STRING = 0; - MFS_CHECKED = $8; - MFS_DEFAULT = $1000; - MFS_DISABLED = $3; - MFS_ENABLED = 0; - MFS_GRAYED = $3; - MFS_HILITE = $80; - MFS_UNCHECKED = 0; - MFS_UNHILITE = 0; - { SERIALKEYS structure } - SERKF_AVAILABLE = 2; - SERKF_INDICATOR = 4; - SERKF_SERIALKEYSON = 1; - { FILTERKEYS structure } - FKF_AVAILABLE = 2; - FKF_CLICKON = 64; - FKF_FILTERKEYSON = 1; - FKF_HOTKEYACTIVE = 4; - FKF_HOTKEYSOUND = 16; - FKF_CONFIRMHOTKEY = 8; - FKF_INDICATOR = 32; - { HELPINFO structure } - HELPINFO_MENUITEM = 2; - HELPINFO_WINDOW = 1; - { WM_PRINT message } - PRF_CHECKVISIBLE = $1; - PRF_CHILDREN = $10; - PRF_CLIENT = $4; - PRF_ERASEBKGND = $8; - PRF_NONCLIENT = $2; - PRF_OWNED = $20; - { MapWindowPoints } - { was #define dname def_expr } - HWND_DESKTOP = HWND(0); - - { WM_SYSCOMMAND message } - - const - SC_CLOSE = 61536; - SC_CONTEXTHELP = 61824; - SC_DEFAULT = 61792; - SC_HOTKEY = 61776; - SC_HSCROLL = 61568; - SC_KEYMENU = 61696; - SC_MAXIMIZE = 61488; - SC_ZOOM = 61488; - SC_MINIMIZE = 61472; - SC_ICON = 61472; - SC_MONITORPOWER = 61808; - SC_MOUSEMENU = 61584; - SC_MOVE = 61456; - SC_NEXTWINDOW = 61504; - SC_PREVWINDOW = 61520; - SC_RESTORE = 61728; - SC_SCREENSAVE = 61760; - SC_SIZE = 61440; - SC_TASKLIST = 61744; - SC_VSCROLL = 61552; - { DM_GETDEFID message } - DC_HASDEFID = 21323; - { WM_GETDLGCODE message } - DLGC_BUTTON = 8192; - DLGC_DEFPUSHBUTTON = 16; - DLGC_HASSETSEL = 8; - DLGC_RADIOBUTTON = 64; - DLGC_STATIC = 256; - DLGC_UNDEFPUSHBUTTON = 32; - DLGC_WANTALLKEYS = 4; - DLGC_WANTARROWS = 1; - DLGC_WANTCHARS = 128; - DLGC_WANTMESSAGE = 4; - DLGC_WANTTAB = 2; - { EM_SETMARGINS message } - EC_LEFTMARGIN = 1; - EC_RIGHTMARGIN = 2; - EC_USEFONTINFO = 65535; - { LB_SETCOUNT message } - LB_ERR = -(1); - LB_ERRSPACE = -(2); - LB_OKAY = 0; - { CB_DIR message } - CB_ERR = -(1); - CB_ERRSPACE = -(2); - { WM_IME_CONTROL message } - IMC_GETCANDIDATEPOS = 7; - IMC_GETCOMPOSITIONFONT = 9; - IMC_GETCOMPOSITIONWINDOW = 11; - IMC_GETSTATUSWINDOWPOS = 15; - IMC_CLOSESTATUSWINDOW = 33; - IMC_OPENSTATUSWINDOW = 34; - IMC_SETCANDIDATEPOS = 8; - IMC_SETCOMPOSITIONFONT = 10; - IMC_SETCOMPOSITIONWINDOW = 12; - IMC_SETSTATUSWINDOWPOS = 16; - { WM_IME_CONTROL message } - IMN_CHANGECANDIDATE = 3; - IMN_CLOSECANDIDATE = 4; - IMN_CLOSESTATUSWINDOW = 1; - IMN_GUIDELINE = 13; - IMN_OPENCANDIDATE = 5; - IMN_OPENSTATUSWINDOW = 2; - IMN_SETCANDIDATEPOS = 9; - IMN_SETCOMPOSITIONFONT = 10; - IMN_SETCOMPOSITIONWINDOW = 11; - IMN_SETCONVERSIONMODE = 6; - IMN_SETOPENSTATUS = 8; - IMN_SETSENTENCEMODE = 7; - IMN_SETSTATUSWINDOWPOS = 12; - IMN_PRIVATE = 14; - { STICKYKEYS structure } - SKF_AUDIBLEFEEDBACK = 64; - SKF_AVAILABLE = 2; - SKF_CONFIRMHOTKEY = 8; - SKF_HOTKEYACTIVE = 4; - SKF_HOTKEYSOUND = 16; - SKF_INDICATOR = 32; - SKF_STICKYKEYSON = 1; - SKF_TRISTATE = 128; - SKF_TWOKEYSOFF = 256; - { MOUSEKEYS structure } - MKF_AVAILABLE = 2; - MKF_CONFIRMHOTKEY = 8; - MKF_HOTKEYACTIVE = 4; - MKF_HOTKEYSOUND = 16; - MKF_INDICATOR = 32; - MKF_MOUSEKEYSON = 1; - MKF_MODIFIERS = 64; - MKF_REPLACENUMBERS = 128; - { SOUNDSENTRY structure } - SSF_AVAILABLE = 2; - SSF_SOUNDSENTRYON = 1; - SSTF_BORDER = 2; - SSTF_CHARS = 1; - SSTF_DISPLAY = 3; - SSTF_NONE = 0; - SSGF_DISPLAY = 3; - SSGF_NONE = 0; - SSWF_CUSTOM = 4; - SSWF_DISPLAY = 3; - SSWF_NONE = 0; - SSWF_TITLE = 1; - SSWF_WINDOW = 2; - { ACCESSTIMEOUT structure } - ATF_ONOFFFEEDBACK = 2; - ATF_TIMEOUTON = 1; - { HIGHCONTRAST structure } - HCF_AVAILABLE = 2; - HCF_CONFIRMHOTKEY = 8; - HCF_HIGHCONTRASTON = 1; - HCF_HOTKEYACTIVE = 4; - HCF_HOTKEYAVAILABLE = 64; - HCF_HOTKEYSOUND = 16; - HCF_INDICATOR = 32; - { TOGGLEKEYS structure } - TKF_AVAILABLE = 2; - TKF_CONFIRMHOTKEY = 8; - TKF_HOTKEYACTIVE = 4; - TKF_HOTKEYSOUND = 16; - TKF_TOGGLEKEYSON = 1; - { Installable Policy } - PP_DISPLAYERRORS = 1; - { SERVICE_INFO structure } - RESOURCEDISPLAYTYPE_DOMAIN = 1; - RESOURCEDISPLAYTYPE_FILE = 4; - RESOURCEDISPLAYTYPE_GENERIC = 0; - RESOURCEDISPLAYTYPE_GROUP = 5; - RESOURCEDISPLAYTYPE_SERVER = 2; - RESOURCEDISPLAYTYPE_SHARE = 3; - { KEY_EVENT_RECORD structure } - CAPSLOCK_ON = 128; - ENHANCED_KEY = 256; - LEFT_ALT_PRESSED = 2; - LEFT_CTRL_PRESSED = 8; - NUMLOCK_ON = 32; - RIGHT_ALT_PRESSED = 1; - RIGHT_CTRL_PRESSED = 4; - SCROLLLOCK_ON = 64; - SHIFT_PRESSED = 16; - { MOUSE_EVENT_RECORD structure } - FROM_LEFT_1ST_BUTTON_PRESSED = 1; - RIGHTMOST_BUTTON_PRESSED = 2; - FROM_LEFT_2ND_BUTTON_PRESSED = 4; - FROM_LEFT_3RD_BUTTON_PRESSED = 8; - FROM_LEFT_4TH_BUTTON_PRESSED = 16; - DOUBLE_CLICK = 2; - MOUSE_MOVED = 1; - { INPUT_RECORD structure } - KEY_EVENT = 1; - _MOUSE_EVENT = 2; {conflict with function mouse_event} - cMOUSE_EVENT = 2; - WINDOW_BUFFER_SIZE_EVENT = 4; - MENU_EVENT = 8; - FOCUS_EVENT = 16; - { BITMAPINFOHEADER structure } - BI_RGB = 0; - BI_RLE8 = 1; - BI_RLE4 = 2; - BI_BITFIELDS = 3; - { Extensions to OpenGL } - { wglUseFontOutlines } - WGL_FONT_LINES = 0; - WGL_FONT_POLYGONS = 1; - { LAYERPLANEDESCRIPTOR structure } - { PIXELFORMATDESCRIPTOR structure } - PFD_GENERIC_FORMAT = $40; - PFD_NEED_PALETTE = $80; - PFD_NEED_SYSTEM_PALETTE = $100; - PFD_SWAP_EXCHANGE = $200; - PFD_SWAP_COPY = $400; - PFD_SWAP_LAYER_BUFFERS = $800; - PFD_GENERIC_ACCELERATED = $1000; - PFD_SUPPORT_DIRECTDRAW = $2000; - { TEXTMETRIC structure } - TMPF_FIXED_PITCH = $1; - TMPF_VECTOR = $2; - TMPF_TRUETYPE = $4; - TMPF_DEVICE = $8; - WM_CTLCOLOR = 25; - - { --------------------- old stuff, need to organize! --------------- } - { BEGINNING of windowsx.h stuff from old headers: } - { Not convertable by H2PAS - #define __CRACK_VOID_F(fn,args) (void)(fn args) - #define __CRACK_BOOL_F(fn,args) (BOOL)(fn args) - #define __CRACK_HMENU_F(fn,args) (HMENU)(fn args) - #define __CRACK_HWND_F(fn,args) (HWND)(fn args) - #define __CRACK_LONG_F(fn, args) (LRESULT)(fn args) - #define __CRACK_ZERO_F(fn, args) (fn args,0) - } - { was #define dname(params) def_expr } - function GetFirstChild(h:HWND):HWND; - - { was #define dname(params) def_expr } - function GetNextSibling(h:HWND):HWND; - - { was #define dname(params) def_expr } - function GetWindowID(h:HWND):longint; - - { was #define dname(params) def_expr } - function SubclassWindow(h:HWND; p:LONG):LONG; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function GET_WM_COMMAND_CMD(w,l : longint) : longint; - { return type might be wrong } - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function GET_WM_COMMAND_ID(w,l : longint) : longint; - { return type might be wrong } - - { was #define dname(params) def_expr } - { argument types are unknown } - function GET_WM_CTLCOLOR_HDC(w,l,msg : longint) : HDC; - - { was #define dname(params) def_expr } - { argument types are unknown } - function GET_WM_CTLCOLOR_HWND(w,l,msg : longint) : HWND; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function GET_WM_HSCROLL_CODE(w,l : longint) : longint; - { return type might be wrong } - - { was #define dname(params) def_expr } - { argument types are unknown } - function GET_WM_HSCROLL_HWND(w,l : longint) : HWND; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function GET_WM_HSCROLL_POS(w,l : longint) : longint; - { return type might be wrong } - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function GET_WM_MDIACTIVATE_FACTIVATE(h,a,b : longint) : longint; - { return type might be wrong } - - { was #define dname(params) def_expr } - { argument types are unknown } - function GET_WM_MDIACTIVATE_HWNDACTIVATE(a,b : longint) : HWND; - - { was #define dname(params) def_expr } - { argument types are unknown } - function GET_WM_MDIACTIVATE_HWNDDEACT(a,b : longint) : HWND; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function GET_WM_VSCROLL_CODE(w,l : longint) : longint; - { return type might be wrong } - - { was #define dname(params) def_expr } - { argument types are unknown } - function GET_WM_VSCROLL_HWND(w,l : longint) : HWND; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function GET_WM_VSCROLL_POS(w,l : longint) : longint; - { return type might be wrong } - - { Not convertable by H2PAS - #define FORWARD_WM_CLOSE(h, fn) __CRACK_VOID_F(fn,(h, WM_CLOSE, 0, 0)) - #define FORWARD_WM_COMMAND(h, id, c, n, fn) __CRACK_VOID_F(fn,(h, WM_COMMAND, MAKEWPARAM(id,n), (LPARAM)c)) - #define FORWARD_WM_CREATE(h, p, fn) __CRACK_BOOL_F(fn,(h, WM_CREATE, 0, (LPARAM)p)) - #define FORWARD_WM_DESTROY(h, fn) __CRACK_VOID_F(fn,(h, WM_DESTROY, 0, 0)) - #define FORWARD_WM_ENABLE(h, e, fn) __CRACK_VOID_F(fn,(h, WM_ENABLE, (WPARAM)e, 0)) - #define FORWARD_WM_INITDIALOG(h, c, l, fn) __CRACK_BOOL_F(fn,(h, WM_INITDIALOG, (WPARAM)c, l)) - #define FORWARD_WM_MDICASCADE(h, c, fn) __CRACK_BOOL_F(fn,(h, WM_MDICASCADE, (WPARAM)c, 0)) - #define FORWARD_WM_MDIDESTROY(h, d, fn) __CRACK_VOID_F(fn,(h, WM_MDIDESTROY, (WPARAM)d, 0)) - #define FORWARD_WM_MDIGETACTIVE(h, fn) __CRACK_HWND_F(fn,(h, WM_MDIGETACTIVE, 0, 0)) - #define FORWARD_WM_MDIICONARRANGE(h, fn) __CRACK_VOID_F(fn,(h, WM_MDIICONARRANGE, 0, 0)) - #define FORWARD_WM_MDISETMENU(h, fr, hf, hw, fn) __CRACK_HMENU_F(fn,(h, WM_MDISETMENU, (WPARAM)((fr) ? (hf) : 0), (LPARAM)(hw))) - #define FORWARD_WM_MDITILE(h, c, fn) __CRACK_BOOL_F(fn,(h, WM_MDITILE, (WPARAM)(c), 0)) - #define FORWARD_WM_PAINT(h, fn) __CRACK_VOID_F(fn,(h, WM_PAINT, 0, 0)) - #define FORWARD_WM_QUERYENDSESSION(h, fn) __CRACK_BOOL_F(fn,(h, WM_QUERYENDSESSION, 0, 0)) - #define FORWARD_WM_SIZE(h, state, cx, cy, fn) __CRACK_VOID_F(fn,(h, WM_SIZE, (WPARAM)state, MAKELPARAM(cx, cy))) - #define FORWARD_WM_SYSCOMMAND(h, c, x, y, fn) __CRACK_VOID_F(fn,(h, WM_SYSCOMMAND, (WPARAM)c, MAKELPARAM(x, y))) - - #define HANDLE_WM_CLOSE(h, w, l, fn) __CRACK_ZERO_F(fn,(h)); - #define HANDLE_WM_COMMAND(h, w, l, fn) __CRACK_ZERO_F(fn,(h, SEXT_LOWORD(w), (HWND)l, HIWORD(w))) - #define HANDLE_WM_CREATE(h, w, l, fn) (LRESULT)((fn(h, (CREATESTRUCT )l)) ? 0 : -1) - #define HANDLE_WM_DESTROY(h, w, l, fn) __CRACK_ZERO_F(fn,(h)) - #define HANDLE_WM_ENABLE(h, w, l, fn) __CRACK_ZERO_F(fn,(h, (BOOL)w)) - #define HANDLE_WM_INITDIALOG(h, w, l, fn) __CRACK_LONG_F(fn,(h, (HWND)w, l)) - #define HANDLE_WM_MDICASCADE(h, w, l, fn) __CRACK_LONG_F(fn, (h, (UINT)w) - #define HANDLE_WM_MDIDESTROY(h, w, l, fn) __CRACK_ZERO_F(fn,(h, (HWND)w)) - #define HANDLE_WM_MDIGETACTIVE(h, w, l, fn) __CRACK_LONG_F(fn,(h)) - #define HANDLE_WM_MDIICONARRANGE(h, w, l, fn) __CRACK_ZERO_F(fn,(h)) - #define HANDLE_WM_MDISETMENU(h, w, l, fn) __CRACK_LONG_F(fn,(h, (BOOL)w, (HMENU)w, (HMENU)l) - #define HANDLE_WM_MDITILE(h, w, l, fn) __CRACK_LONG_F(fn,(h, (UINT)w)) - #define HANDLE_WM_PAINT(h, w, l, fn) __CRACK_ZERO_F(fn,(h)) - #define HANDLE_WM_QUERYENDSESSION(h, w, l, fn) MAKELRESULT(fn(h), 0) - #define HANDLE_WM_SIZE(h, w, l, fn) __CRACK_ZERO_F(fn,(h, (UINT)w, SEXT_LOWORD(l), SEXT_HIWORD(l))) - #define HANDLE_WM_SYSCOMMAND(h, w, l, fn) __CRACK_ZERO_F(fn,(h, (UINT)w, SEXT_LOWORD(l), SEXT_HIWORD(l))) - } - { Totally disgusting! get wParam and lParam from the environment ! } - { Not convertable by H2PAS - #define HANDLE_MSG(h, message, fn) case message: return HANDLE_##message(h, wParam, lParam, fn) - } - { END OF windowsx.h stuff from old headers } - { ------------------------------------------------------------------ } - { BEGINNING of shellapi.h stuff from old headers } - - const - SE_ERR_SHARE = 26; - SE_ERR_ASSOCINCOMPLETE = 27; - SE_ERR_DDETIMEOUT = 28; - SE_ERR_DDEFAIL = 29; - SE_ERR_DDEBUSY = 30; - SE_ERR_NOASSOC = 31; - { END OF shellapi.h stuff from old headers } - { ------------------------------------------------------------------ } - { From ddeml.h in old Cygnus headers } - XCLASS_BOOL = $1000; - XCLASS_DATA = $2000; - XCLASS_FLAGS = $4000; - XCLASS_MASK = $fc00; - XCLASS_NOTIFICATION = $8000; - XTYPF_NOBLOCK = $0002; - XTYP_ADVDATA = $4010; - XTYP_ADVREQ = $2022; - XTYP_ADVSTART = $1030; - XTYP_ADVSTOP = $8040; - XTYP_CONNECT = $1062; - XTYP_CONNECT_CONFIRM = $8072; - XTYP_DISCONNECT = $80c2; - XTYP_EXECUTE = $4050; - XTYP_POKE = $4090; - XTYP_REQUEST = $20b0; - XTYP_WILDCONNECT = $20E2; - XTYP_REGISTER = $80A2; - XTYP_ERROR = $8002; - XTYP_XACT_COMPLETE = $8080; - XTYP_UNREGISTER = $80D2; - DMLERR_DLL_USAGE = $4004; - DMLERR_INVALIDPARAMETER = $4006; - DMLERR_NOTPROCESSED = $4009; - DMLERR_POSTMSG_FAILED = $400c; - DMLERR_SERVER_DIED = $400e; - DMLERR_SYS_ERROR = $400f; - DMLERR_BUSY = $4001; - DMLERR_DATAACKTIMEOUT = $4002; - DMLERR_ADVACKTIMEOUT = $4000; - DMLERR_DLL_NOT_INITIALIZED = $4003; - DMLERR_LOW_MEMORY = $4007; - DMLERR_MEMORY_ERROR = $4008; - DMLERR_POKEACKTIMEOUT = $400b; - DMLERR_NO_CONV_ESTABLISHED = $400a; - DMLERR_REENTRANCY = $400d; - DMLERR_UNFOUND_QUEUE_ID = $4011; - DMLERR_UNADVACKTIMEOUT = $4010; - DMLERR_EXECACKTIMEOUT = $4005; - DDE_FACK = $8000; - DDE_FNOTPROCESSED = $0000; - DNS_REGISTER = $0001; - DNS_UNREGISTER = $0002; - CP_WINANSI = 1004; - CP_WINUNICODE = 1200; - { Not convertable by H2PAS - #define EXPENTRY CALLBACK - } - APPCLASS_STANDARD = $00000000; - { End of stuff from ddeml.h in old Cygnus headers } - { ----------------------------------------------- } - BKMODE_LAST = 2; - CTLCOLOR_MSGBOX = 0; - CTLCOLOR_EDIT = 1; - CTLCOLOR_LISTBOX = 2; - CTLCOLOR_BTN = 3; - CTLCOLOR_DLG = 4; - CTLCOLOR_SCROLLBAR = 5; - CTLCOLOR_STATIC = 6; - CTLCOLOR_MAX = 7; - META_SETMAPMODE = $0103; - META_SETWINDOWORG = $020B; - META_SETWINDOWEXT = $020C; - POLYFILL_LAST = 2; - STATUS_WAIT_0 = $00000000; - STATUS_ABANDONED_WAIT_0 = $00000080; - STATUS_USER_APC = $000000C0; - STATUS_TIMEOUT = $00000102; - STATUS_PENDING = $00000103; - STATUS_GUARD_PAGE_VIOLATION = $80000001; - STATUS_DATATYPE_MISALIGNMENT = $80000002; - STATUS_BREAKPOINT = $80000003; - STATUS_SINGLE_STEP = $80000004; - STATUS_IN_PAGE_ERROR = $C0000006; - STATUS_INVALID_HANDLE = $C0000008; - STATUS_ILLEGAL_INSTRUCTION = $C000001D; - STATUS_NONCONTINUABLE_EXCEPTION = $C0000025; - STATUS_INVALID_DISPOSITION = $C0000026; - STATUS_ARRAY_BOUNDS_EXCEEDED = $C000008C; - STATUS_FLOAT_DENORMAL_OPERAND = $C000008D; - STATUS_FLOAT_DIVIDE_BY_ZERO = $C000008E; - STATUS_FLOAT_INEXACT_RESULT = $C000008F; - STATUS_FLOAT_INVALID_OPERATION = $C0000090; - STATUS_FLOAT_OVERFLOW = $C0000091; - STATUS_FLOAT_STACK_CHECK = $C0000092; - STATUS_FLOAT_UNDERFLOW = $C0000093; - STATUS_INTEGER_DIVIDE_BY_ZERO = $C0000094; - STATUS_INTEGER_OVERFLOW = $C0000095; - STATUS_PRIVILEGED_INSTRUCTION = $C0000096; - STATUS_STACK_OVERFLOW = $C00000FD; - STATUS_CONTROL_C_EXIT = $C000013A; -{$define EXCEPTION_CTRL_C} - PROCESSOR_ARCHITECTURE_INTEL = 0; - PROCESSOR_ARCHITECTURE_MIPS = 1; - PROCESSOR_ARCHITECTURE_ALPHA = 2; - PROCESSOR_ARCHITECTURE_PPC = 3; - { was #define dname(params) def_expr } - function FreeModule(h:HINST):WINBOOL; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function MakeProcInstance(p,i : longint) : longint; - { return type might be wrong } - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function FreeProcInstance(p : longint) : longint; - { return type might be wrong } - - - const - { _fmemcpy = memcpy; these are functions } - { Used by wxwindows. } - SIZEFULLSCREEN = SIZE_MAXIMIZED; - SIZENORMAL = SIZE_RESTORED; - SIZEICONIC = SIZE_MINIMIZED; - { NPLOGPALETTE = PLOGPALETTE; probably a type } - { In the old winnt.h } - (* Not convertable by H2PAS anyhow with if 0 - #if 0 - #ifdef __ANAL__ - #define DECLARE_HANDLE(h) struct h##__ { int dummy; }; typedef struct h##__ h - #else - #define DECLARE_HANDLE(h) typedef void h - #endif - DECLARE_HANDLE(HANDLE); - #endif - *) - -{$ifdef i386} //+winnt - - { x86 } - { The doc refered me to winnt.h, so I had to look... } - - const - SIZE_OF_80387_REGISTERS = 80; //winnt - MAXIMUM_SUPPORTED_EXTENSION = 512; //winnt - { Values for contextflags } - CONTEXT_i386 = $10000; - CONTEXT_i486 = $10000; //+winnt - CONTEXT_CONTROL = CONTEXT_i386 or 1; - CONTEXT_INTEGER = CONTEXT_i386 or 2; - CONTEXT_SEGMENTS = CONTEXT_i386 or 4; - CONTEXT_FLOATING_POINT = CONTEXT_i386 or 8; - CONTEXT_DEBUG_REGISTERS = CONTEXT_i386 or $10; - CONTEXT_EXTENDED_REGISTERS = CONTEXT_i386 or $20; //+winnt - CONTEXT_FULL = (CONTEXT_CONTROL or CONTEXT_INTEGER) or CONTEXT_SEGMENTS; - { our own invention } - FLAG_TRACE_BIT = $100; - CONTEXT_DEBUGGER = CONTEXT_FULL or CONTEXT_FLOATING_POINT; -{$endif i386} - -{$ifdef _MIPS_} //+winnt all block added -// -// Processor Feature Values used in IsProcessorFeaturePresent API -// - PF_MIPS_MIPSII = $81000001; // MIPSII instruction set - PF_MIPS_MIPSIII = $81000002; // MIPSIII instruction set - PF_MIPS_MIPSIV = $81000003; // MIPSIV instruction set - PF_MIPS_SMART_ASE = $81000004; // MIPS smart card arch. specific ext. - PF_MIPS_MIPS16 = $81000005; // MIPS16 instruction set - PF_MIPS_MIPS32 = $81000006; // MIPS32 instruction set - PF_MIPS_MIPS64 = $81000007; // MIPS64 instruction set - PF_MIPS_FPU = $81000008; // FPU support - PF_MIPS_CPU_4KEX = $81000009; // "R4K" exception model - PF_MIPS_CPU_4KTLB = $8100000A; // "R4K" TLB handler - PF_MIPS_CPU_32FPR = $8100000B; // 32 dbl. prec. FP registers - PF_MIPS_CPU_COUNTER = $8100000C; // Cycle count/compare - PF_MIPS_CPU_WATCH = $8100000D; // watchpoint registers - PF_MIPS_CPU_DIVEC = $8100000E; // dedicated interrupt vector - PF_MIPS_CPU_VCE = $8100000F; // virt. coherence conflict possible - PF_MIPS_CPU_CACHE_CDEX = $81000010; // Create_Dirty_Exclusive CACHE op - PF_MIPS_CPU_MCHECK = $81000011; // Machine check exception - PF_MIPS_CPU_EJTAG = $81000012; // EJTAG exception - PF_MIPS_PERF_COUNTER = $81000013; // perf counter - PF_MIPS_ARCH_2 = $81000014; // arch. release 2 - - CONTEXT_R4000 = $00010000; // r4000 context - - CONTEXT_CONTROL = CONTEXT_R4000 or $00000001; - CONTEXT_FLOATING_POINT = CONTEXT_R4000 or $00000002; - CONTEXT_INTEGER = CONTEXT_R4000 or $00000004; - CONTEXT_EXTENDED_FLOAT = CONTEXT_FLOATING_POINT or $00000008; - CONTEXT_EXTENDED_INTEGER = CONTEXT_INTEGER or $00000010; - CONTEXT_FULL = CONTEXT_CONTROL or CONTEXT_FLOATING_POINT or - CONTEXT_INTEGER or CONTEXT_EXTENDED_INTEGER; -{$ifdef _MIPS64} //+winnt - CONTEXT32_LENGTH=$1B8; -{$else} - CONTEXT32_LENGTH=$130; // The original 32-bit Context length (pre NT 4.0) -{$endif _MIPS64} - -{$endif _MIPS_} //+winnt - -{$ifdef _PPC_} //~winnt, now _PPC_ instead of __PPC__, moved after mips - const - CONTEXT_CONTROL = 1; - CONTEXT_FLOATING_POINT = 2; - CONTEXT_INTEGER = 4; - CONTEXT_DEBUG_REGISTERS = 8; - CONTEXT_FULL = (CONTEXT_CONTROL or CONTEXT_FLOATING_POINT) or CONTEXT_INTEGER; - CONTEXT_DEBUGGER = CONTEXT_FULL; -{$endif _PPC_} //~winnt - -{$ifdef _MPPC_} //+winnt all block - const - CONTEXT_CONTROL = 1; - CONTEXT_FLOATING_POINT = 2; - CONTEXT_INTEGER = 4; - CONTEXT_DEBUG_REGISTERS = 8; - CONTEXT_FULL = (CONTEXT_CONTROL or CONTEXT_FLOATING_POINT) or CONTEXT_INTEGER; -{$endif _MPPC_} //+winnt - -{$ifdef _IA64_} //+winnt all block - SIZE_OF_80387_REGISTERS = 80; - CONTEXT_IA64 = $00080000; // IA64 context - CONTEXT_CONTROL = CONTEXT_IA64 or $00000001; - CONTEXT_LOWER_FLOATING_POINT = CONTEXT_IA64 or $00000002; - CONTEXT_HIGHER_FLOATING_POINT = CONTEXT_IA64 or $00000004; - CONTEXT_INTEGER = CONTEXT_IA64 or $00000008; - CONTEXT_DEBUG = CONTEXT_IA64 or $00000010; - - CONTEXT_FLOATING_POINT = CONTEXT_LOWER_FLOATING_POINT or CONTEXT_HIGHER_FLOATING_POINT; - CONTEXT_FULL = CONTEXT_CONTROL or CONTEXT_FLOATING_POINT or CONTEXT_INTEGER; - - CONTEXT_i386 = $00010000; // this assumes that i386 and - CONTEXT_i486 = $00010000; // i486 have identical context records - CONTEXT_X86 = $00010000; // X86 have identical context records - - CONTEXT86_CONTROL = CONTEXT_i386 or $00000001; // SS:SP, CS:IP, FLAGS, BP - CONTEXT86_INTEGER = CONTEXT_i386 or $00000002; // AX, BX, CX, DX, SI, DI - CONTEXT86_SEGMENTS = CONTEXT_i386 or $00000004; // DS, ES, FS, GS - CONTEXT86_FLOATING_POINT = CONTEXT_i386 or $00000008; // 387 state - CONTEXT86_DEBUG_REGISTERS = CONTEXT_i386 or $00000010; // DB 0-3,6,7 - - CONTEXT86_FULL = CONTEXT86_CONTROL or CONTEXT86_INTEGER or CONTEXT86_SEGMENTS; // context corresponding to set flags will be returned. -{$endif _IA64_} //+winnt - -{$ifdef SHx} //+winnt all block added -// -// Processor Feature Values used in IsProcessorFeaturePresent API -// - PF_SHX_SH3 = $82000001; - PF_SHX_SH4 = $82000002; - PF_SHX_SH5 = $82000003; - PF_SHX_DSP = $82000004; - PF_SHX_FPU = $82000005; -// -// The following flags control the contents of the CONTEXT structure. -// - CONTEXT_SH3 = $00000040; - CONTEXT_SH4 = $000000c0; // CONTEXT_SH3 | 0x80 - must contain the SH3 bits - -{$ifdef SH3} - CONTEXT_CONTROL = CONTEXT_SH3 or $00000001; - CONTEXT_INTEGER = CONTEXT_SH3 or $00000002; - CONTEXT_DEBUG_REGISTERS = CONTEXT_SH3 or $00000008; - CONTEXT_DSP_REGISTERS = CONTEXT_SH3 or $00000010; - CONTEXT_FULL = CONTEXT_CONTROL or CONTEXT_INTEGER or CONTEXT_DEBUG_REGISTERS or CONTEXT_DSP_REGISTERS; -{$else} // SH4 - CONTEXT_CONTROL = CONTEXT_SH4 or $00000001; - CONTEXT_INTEGER = CONTEXT_SH4 or $00000002; - CONTEXT_DEBUG_REGISTERS = CONTEXT_SH4 or $00000008; - CONTEXT_FLOATING_POINT = CONTEXT_SH4 or $00000004; - CONTEXT_FULL = CONTEXT_CONTROL or CONTEXT_INTEGER or CONTEXT_DEBUG_REGISTERS or CONTEXT_FLOATING_POINT; -{$endif SH3} - -{$endif SHx} //+winnt - -{$ifdef CPUARM} //+winnt all block added -// -// Processor Feature Values used in IsProcessorFeaturePresent API -// - PF_ARM_V4 = $80000001; - PF_ARM_V5 = $80000002; - PF_ARM_V6 = $80000003; - PF_ARM_V7 = $80000004; - PF_ARM_THUMB = $80000005; - PF_ARM_JAZELLE = $80000006; - PF_ARM_DSP = $80000007; - PF_ARM_MOVE_CP = $80000008; - PF_ARM_VFP10 = $80000009; - PF_ARM_MPU = $8000000A; - PF_ARM_WRITE_BUFFER = $8000000B; - PF_ARM_MBX = $8000000C; - PF_ARM_L2CACHE = $8000000D; - PF_ARM_PHYSICALLY_TAGGED_CACHE = $8000000E; - PF_ARM_VFP_SINGLE_PRECISION = $8000000F; - PF_ARM_VFP_DOUBLE_PRECISION = $80000010; - PF_ARM_ITCM = $80000011; - PF_ARM_DTCM = $80000012; - PF_ARM_UNIFIED_CACHE = $80000013; - PF_ARM_WRITE_BACK_CACHE = $80000014; - PF_ARM_CACHE_CAN_BE_LOCKED_DOWN = $80000015; - PF_ARM_L2CACHE_MEMORY_MAPPED = $80000016; - PF_ARM_L2CACHE_COPROC = $80000017; - - -// Specific OEM extentions - PF_ARM_INTEL_XSCALE = $80010001; - PF_ARM_INTEL_PMU = $80010002; - PF_ARM_INTEL_WMMX = $80010003; - - CONTEXT_ARM = $0000040; - CONTEXT_CONTROL = CONTEXT_ARM or $00000001; - CONTEXT_INTEGER = CONTEXT_ARM or $00000002; - CONTEXT_FLOATING_POINT = CONTEXT_ARM or $00000004; - - CONTEXT_FULL = CONTEXT_CONTROL or CONTEXT_INTEGER or CONTEXT_FLOATING_POINT; - - NUM_VFP_REGS = 32; - NUM_EXTRA_CONTROL_REGS = 8; - -{$endif CPUARM} //+winnt - - const - { ASCIICHAR = AsciiChar; this is the kind of thing that can - make problems for FPC !! } - { ignored in H2PAS - #define FAR - handled in H2PAS - #define PACKED __attribute__((packed)) - } - FILTER_TEMP_DUPLICATE_ACCOUNT = $0001; - FILTER_NORMAL_ACCOUNT = $0002; - FILTER_INTERDOMAIN_TRUST_ACCOUNT = $0008; - FILTER_WORKSTATION_TRUST_ACCOUNT = $0010; - FILTER_SERVER_TRUST_ACCOUNT = $0020; - LOGON32_LOGON_INTERACTIVE = $02; - LOGON32_LOGON_BATCH = $04; - LOGON32_LOGON_SERVICE = $05; - LOGON32_PROVIDER_DEFAULT = $00; - LOGON32_PROVIDER_WINNT35 = $01; - QID_SYNC = $FFFFFFFF; - { Magic numbers in PE executable header. } - { e_magic field } - IMAGE_DOS_SIGNATURE = $5a4d; - { nt_signature field } - IMAGE_NT_SIGNATURE = $4550; - - - { Severity values } - SEVERITY_SUCCESS = 0; - SEVERITY_ERROR = 1; - - { Variant type codes (wtypes.h). - Some, not all though } - VT_EMPTY = 0; - VT_NULL = 1; - VT_I2 = 2; - VT_I4 = 3; - VT_R4 = 4; - VT_R8 = 5; - VT_BSTR = 8; - VT_ERROR = 10; - VT_BOOL = 11; - VT_UI1 = 17; - VT_BYREF = $4000; - VT_RESERVED = $8000; - -{ Define the facility codes } - -const - FACILITY_WINDOWS = 8; - FACILITY_STORAGE = 3; - FACILITY_RPC = 1; - FACILITY_SSPI = 9; - FACILITY_WIN32 = 7; - FACILITY_CONTROL = 10; - FACILITY_NULL = 0; - FACILITY_INTERNET = 12; - FACILITY_ITF = 4; - FACILITY_DISPATCH = 2; - FACILITY_CERT = 11; - -{ Manually added, bug 2672} - ICON_SMALL = 0; - ICON_BIG = 1; - -// Manually added, bug 3270 - COLOR_HOTLIGHT = 26; - //COLOR_GRADIENTACTIVECAPTION = 27; moved to GetSysColor - //COLOR_GRADIENTINACTIVECAPTION = 28; - COLOR_MENUHILIGHT = 29; - COLOR_MENUBAR = 30; - - WM_APP = $8000; - - // ShellExecuteEx mask - SEE_MASK_NOCLOSEPROCESS = $00000040; - SEE_MASK_FLAG_NO_UI = $00000400; - -{$endif read_interface} - - -{$ifdef read_implementation} - - - - - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function IS_UNWINDING( Flag : Longint) : boolean; - begin - IS_UNWINDING:=(Flag and EXCEPTION_UNWIND)<>0; - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function IS_DISPATCHING( Flag : Longint) : boolean; - begin - IS_DISPATCHING:=(Flag and EXCEPTION_UNWIND)=0; - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function IS_TARGET_UNWIND( Flag : Longint) : Longint; - begin - IS_TARGET_UNWIND:=(Flag and EXCEPTION_TARGET_UNWIND); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function MakeProcInstance(p,i : longint) : longint; - { return type might be wrong } - begin - MakeProcInstance:=p; - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function FreeProcInstance(p : longint) : longint; - { return type might be wrong } - begin - FreeProcInstance:=p; - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function GET_WM_COMMAND_CMD(w,l : longint) : longint; - { return type might be wrong } - begin - GET_WM_COMMAND_CMD:=HIWORD(w); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function GET_WM_COMMAND_ID(w,l : longint) : longint; - { return type might be wrong } - begin - GET_WM_COMMAND_ID:=LOWORD(w); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - function GET_WM_CTLCOLOR_HDC(w,l,msg : longint) : HDC; - begin - GET_WM_CTLCOLOR_HDC:=HDC(w); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - function GET_WM_CTLCOLOR_HWND(w,l,msg : longint) : HWND; - begin - GET_WM_CTLCOLOR_HWND:=HWND(l); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function GET_WM_HSCROLL_CODE(w,l : longint) : longint; - { return type might be wrong } - begin - GET_WM_HSCROLL_CODE:=LOWORD(w); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - function GET_WM_HSCROLL_HWND(w,l : longint) : HWND; - begin - GET_WM_HSCROLL_HWND:=HWND(l); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function GET_WM_HSCROLL_POS(w,l : longint) : longint; - { return type might be wrong } - begin - GET_WM_HSCROLL_POS:=HIWORD(w); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function GET_WM_MDIACTIVATE_FACTIVATE(h,a,b : longint) : longint; - { return type might be wrong } - begin - GET_WM_MDIACTIVATE_FACTIVATE:=longint(b = LONG(h)); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - function GET_WM_MDIACTIVATE_HWNDACTIVATE(a,b : longint) : HWND; - begin - GET_WM_MDIACTIVATE_HWNDACTIVATE:=HWND(b); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - function GET_WM_MDIACTIVATE_HWNDDEACT(a,b : longint) : HWND; - begin - GET_WM_MDIACTIVATE_HWNDDEACT:=HWND(a); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function GET_WM_VSCROLL_CODE(w,l : longint) : longint; - { return type might be wrong } - begin - GET_WM_VSCROLL_CODE:=LOWORD(w); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - function GET_WM_VSCROLL_HWND(w,l : longint) : HWND; - begin - GET_WM_VSCROLL_HWND:=HWND(l); - end; - - { was #define dname(params) def_expr } - { argument types are unknown } - { return type might be wrong } - function GET_WM_VSCROLL_POS(w,l : longint) : longint; - { return type might be wrong } - begin - GET_WM_VSCROLL_POS:=HIWORD(w); - end; - - { was #define dname(params) def_expr } - function FreeModule(h:HINST):WINBOOL; - begin - FreeModule:=FreeLibrary(h); - end; - - { was #define dname(params) def_expr } - function GetNextSibling(h:HWND):HWND; - begin - GetNextSibling:=GetWindow(h,GW_HWNDNEXT); - end; - { was #define dname(params) def_expr } - function GetWindowID(h:HWND):longint; - begin - GetWindowID:=GetDlgCtrlID(h); - end; - - { was #define dname(params) def_expr } - function SubclassWindow(h:HWND; p:LONG):LONG; - begin - SubclassWindow:=SetWindowLong(h,GWL_WNDPROC,p); - end; - - { was #define dname(params) def_expr } - function GetFirstChild(h:HWND):HWND; - begin - //GetFirstChild:=GetTopWindow(h); - GetFirstChild:=GetWindow(h,GW_CHILD); - end; - -{$ifdef WINCE} -{$endif WINCE} - -{$ifdef WIN32} -{$endif WIN32} - -{$endif read_implementation} - - +{ + This file is part of the Free Pascal run time library. + This unit contains the constant definitions for the Win32 API + Copyright (c) 1999-2000 by Florian Klaempfl, + member of the Free Pascal development team. + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} + +{ + Defines.h + + Windows32 API definitions + + Copyright (C) 1996, 1997 Free Software Foundation, Inc. + + Author: Scott Christley + + This file is part of the Windows32 API Library. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + If you are interested in a warranty or support for this source code, + contact Scott Christley for more information. + + License along with this library; see the file COPYING.LIB. + If not, write to the Free Software Foundation, + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +} + + +{$ifdef read_interface} + + +{$PACKRECORDS C} + + + const + UNICODE_NULL = widechar(#0); + NULL=0; //+windef + //FALSE=0; //+windef, removed can't compile + //TRUE=1; //+windef, removed can't compile + MAX_PATH = 260; //windef + LF_FACESIZE = 32; + LF_FULLFACESIZE = 64; + ELF_VENDOR_SIZE = 4; + SECURITY_STATIC_TRACKING = 0; + SECURITY_DYNAMIC_TRACKING = 1; + MAX_DEFAULTCHAR = 2; + MAX_LEADBYTES = 12; + EXCEPTION_MAXIMUM_PARAMETERS = 15; //winnt + CCHDEVICENAME = 32; + CCHFORMNAME = 32; + MENU_TEXT_LEN = 40; + MAX_LANA = 254; + NCBNAMSZ = 16; + NETBIOS_NAME_LEN = 16; + OFS_MAXPATHNAME = 128; + MAX_TAB_STOPS = 32; + RAS_MaxCallbackNumber = 128; + RAS_MaxDeviceName = 128; + RAS_MaxDeviceType = 16; + RAS_MaxEntryName = 256; + RAS_MaxIpAddress = 15; + RAS_MaxIpxAddress = 21; + RAS_MaxPhoneNumber = 128; + UNLEN = 256; + PWLEN = 256; + CNLEN = 15; + DNLEN = 15; + { Unsigned types max } + MAXDWORD = $FFFFFFFF; //winnt + MAXWORD = $FFFF; //winnt + MAXBYTE = $FF; //winnt + { Signed types max/min } + MINCHAR = $80; //winnt + MAXCHAR = $7F; //winnt + MINSHORT = $8000; //winnt + MAXSHORT = $7FFF; //winnt + MINLONG = $80000000; //winnt + MAXLONG = $7FFFFFFF; //winnt + { _llseek } + FILE_BEGIN = 0; + FILE_CURRENT = 1; + FILE_END = 2; + { _lopen, LZOpenFile, OpenFile } + OF_READ = 0; + OF_READWRITE = 2; + OF_WRITE = 1; + OF_SHARE_COMPAT = 0; + OF_SHARE_DENY_NONE = 64; + OF_SHARE_DENY_READ = 48; + OF_SHARE_DENY_WRITE = 32; + OF_SHARE_EXCLUSIVE = 16; + OF_CANCEL = 2048; + OF_CREATE = 4096; + OF_DELETE = 512; + OF_EXIST = 16384; + OF_PARSE = 256; + OF_PROMPT = 8192; + OF_REOPEN = 32768; + OF_VERIFY = 1024; + { ActivateKeyboardLayout, LoadKeyboardLayout } + HKL_NEXT = 1; + HKL_PREV = 0; + KLF_REORDER = 8; + KLF_UNLOADPREVIOUS = 4; + KLF_ACTIVATE = 1; + KLF_NOTELLSHELL = 128; + KLF_REPLACELANG = 16; + KLF_SUBSTITUTE_OK = 2; + { AppendMenu } + MF_BITMAP = $4; + MF_DISABLED = $2; + MF_ENABLED = 0; + MF_GRAYED = $1; + MF_HELP = $4000; + MF_MENUBARBREAK = $20; + MF_MENUBREAK = $40; + MF_MOUSESELECT = $8000; + MF_OWNERDRAW = $100; + MF_POPUP = $10; + MF_SEPARATOR = $800; + MF_STRING = 0; + MF_SYSMENU = $2000; + MF_USECHECKBITMAPS = $200; + { Ternary Raster Operations - BitBlt } + BLACKNESS = $00000042; + NOTSRCERASE = $001100A6; + NOTSRCCOPY = $00330008; + SRCERASE = $00440328; + DSTINVERT = $00550009; + PATINVERT = $005A0049; + SRCINVERT = $00660046; + SRCAND = $008800C6; + MERGEPAINT = $00BB0226; + MERGECOPY = $00C000CA; + SRCCOPY = $00CC0020; + SRCPAINT = $00EE0086; + PATCOPY = $00F00021; + PATPAINT = $00FB0A09; + WHITENESS = $00FF0062; + { Binary Raster Operations } + R2_BLACK = 1; + R2_COPYPEN = 13; + R2_MASKNOTPEN = 3; + R2_MASKPEN = 9; + R2_MASKPENNOT = 5; + R2_MERGENOTPEN = 12; + R2_MERGEPEN = 15; + R2_MERGEPENNOT = 14; + R2_NOP = 11; + R2_NOT = 6; + R2_NOTCOPYPEN = 4; + R2_NOTMASKPEN = 8; + R2_NOTMERGEPEN = 2; + R2_NOTXORPEN = 10; + R2_WHITE = 16; + R2_XORPEN = 7; + { BroadcastSystemMessage } + BSF_FLUSHDISK = 4; + BSF_FORCEIFHUNG = 32; + BSF_IGNORECURRENTTASK = 2; + BSF_NOHANG = 8; + BSF_POSTMESSAGE = 16; + BSF_QUERY = 1; + BSM_ALLCOMPONENTS = 0; + BSM_APPLICATIONS = 8; + BSM_INSTALLABLEDRIVERS = 4; + BSM_NETDRIVER = 2; + BSM_VXDS = 1; + BROADCAST_QUERY_DENY = 1112363332; + { CascadeWindows, TileWindows } + MDITILE_SKIPDISABLED = 2; + MDITILE_HORIZONTAL = 1; + MDITILE_VERTICAL = 0; + { CBTProc } + HCBT_ACTIVATE = 5; + HCBT_CLICKSKIPPED = 6; + HCBT_CREATEWND = 3; + HCBT_DESTROYWND = 4; + HCBT_KEYSKIPPED = 7; + HCBT_MINMAX = 1; + HCBT_MOVESIZE = 0; + HCBT_QS = 2; + HCBT_SETFOCUS = 9; + HCBT_SYSCOMMAND = 8; + { ChangeDisplaySettings } + DM_BITSPERPEL = $40000; + DM_PELSWIDTH = $80000; + DM_PELSHEIGHT = $100000; + DM_DISPLAYFLAGS = $200000; + DM_DISPLAYFREQUENCY = $400000; + DM_DISPLAYORIENTATION = $00800000; + DM_DISPLAYQUERYORIENTATION = $01000000; + { rotation angle for screen rotation } + DMDO_0 = 0; + DMDO_90 = 1; + DMDO_180 = 2; + DMDO_270 = 4; + DMDO_DEFAULT = DMDO_0; + + CDS_UPDATEREGISTRY = 1; + CDS_TEST = 2; + CDS_FULLSCREEN = 4; + CDS_GLOBAL = 8; + CDS_SET_PRIMARY = $10; + CDS_RESET = $40000000; + CDS_SETRECT = $20000000; + CDS_NORESET = $10000000; + DISP_CHANGE_SUCCESSFUL = 0; + DISP_CHANGE_RESTART = 1; + DISP_CHANGE_BADFLAGS = -(4); + DISP_CHANGE_FAILED = -(1); + DISP_CHANGE_BADMODE = -(2); + DISP_CHANGE_NOTUPDATED = -(3); + { ChangeServiceConfig } + SERVICE_NO_CHANGE = -(1); + SERVICE_WIN32_OWN_PROCESS = 16; + SERVICE_WIN32_SHARE_PROCESS = 32; + SERVICE_KERNEL_DRIVER = 1; + SERVICE_FILE_SYSTEM_DRIVER = 2; + SERVICE_INTERACTIVE_PROCESS = 256; + SERVICE_BOOT_START = 0; + SERVICE_SYSTEM_START = 1; + SERVICE_AUTO_START = 2; + SERVICE_DEMAND_START = 3; + SERVICE_DISABLED = 4; + { SERVICE_STATUS structure } + SERVICE_STOPPED = 1; + SERVICE_START_PENDING = 2; + SERVICE_STOP_PENDING = 3; + SERVICE_RUNNING = 4; + SERVICE_CONTINUE_PENDING = 5; + SERVICE_PAUSE_PENDING = 6; + SERVICE_PAUSED = 7; + SERVICE_ACCEPT_STOP = 1; + SERVICE_ACCEPT_PAUSE_CONTINUE = 2; + SERVICE_ACCEPT_SHUTDOWN = 4; + { CheckDlgButton } + BST_CHECKED = 1; + BST_INDETERMINATE = 2; + BST_UNCHECKED = 0; + BST_FOCUS = 8; + BST_PUSHED = 4; + { CheckMenuItem, HiliteMenuItem } + MF_BYCOMMAND = 0; + MF_BYPOSITION = $400; + MF_CHECKED = $8; + MF_UNCHECKED = 0; + MF_HILITE = $80; + MF_UNHILITE = 0; + { ChildWindowFromPointEx } + CWP_ALL = 0; + CWP_SKIPINVISIBLE = 1; + CWP_SKIPDISABLED = 2; + CWP_SKIPTRANSPARENT = 4; + { ClearCommError } + CE_BREAK = 16; + CE_DNS = 2048; + CE_FRAME = 8; + CE_IOE = 1024; + CE_MODE = 32768; + CE_OOP = 4096; + CE_OVERRUN = 2; + CE_PTO = 512; + CE_RXOVER = 1; + CE_RXPARITY = 4; + CE_TXFULL = 256; + { ChooseMatchToTarget } + { CombineRgn } + RGN_AND = 1; + RGN_COPY = 5; + RGN_DIFF = 4; + RGN_OR = 2; + RGN_XOR = 3; + NULLREGION = 1; + SIMPLEREGION = 2; + COMPLEXREGION = 3; + ERROR = 0; + { CommonDlgExtendedError } + CDERR_DIALOGFAILURE = $ffff; + CDERR_FINDRESFAILURE = 6; + CDERR_INITIALIZATION = 2; + CDERR_LOADRESFAILURE = 7; + CDERR_LOADSTRFAILURE = 5; + CDERR_LOCKRESFAILURE = 8; + CDERR_MEMALLOCFAILURE = 9; + CDERR_MEMLOCKFAILURE = 10; + CDERR_NOHINSTANCE = 4; + CDERR_NOHOOK = 11; + CDERR_NOTEMPLATE = 3; + CDERR_REGISTERMSGFAIL = 12; + CDERR_STRUCTSIZE = 1; + PDERR_CREATEICFAILURE = $1000 + 10; + PDERR_DEFAULTDIFFERENT = $1000 + 12; + PDERR_DNDMMISMATCH = $1000 + 9; + PDERR_GETDEVMODEFAIL = $1000 + 5; + PDERR_INITFAILURE = $1000 + 6; + PDERR_LOADDRVFAILURE = $1000 + 4; + PDERR_NODEFAULTPRN = $1000 + 8; + PDERR_NODEVICES = $1000 + 7; + PDERR_PARSEFAILURE = $1000 + 2; + PDERR_PRINTERNOTFOUND = $1000 + 11; + PDERR_RETDEFFAILURE = $1000 + 3; + PDERR_SETUPFAILURE = $1000 + 1; + CFERR_MAXLESSTHANMIN = $2000 + 2; + CFERR_NOFONTS = $2000 + 1; + FNERR_BUFFERTOOSMALL = $3000 + 3; + FNERR_INVALIDFILENAME = $3000 + 2; + FNERR_SUBCLASSFAILURE = $3000 + 1; + FRERR_BUFFERLENGTHZERO = $4000 + 1; + { CompareString, LCMapString } + //LOCALE_SYSTEM_DEFAULT = $800; //-winnt, replaced by function + //LOCALE_USER_DEFAULT = $400; //-winnt, replaced by function + NORM_IGNORECASE = 1; + NORM_IGNOREKANATYPE = 65536; + NORM_IGNORENONSPACE = 2; + NORM_IGNORESYMBOLS = 4; + NORM_IGNOREWIDTH = 131072; + SORT_STRINGSORT = 4096; + LCMAP_BYTEREV = 2048; + LCMAP_FULLWIDTH = 8388608; + LCMAP_HALFWIDTH = 4194304; + LCMAP_HIRAGANA = 1048576; + LCMAP_KATAKANA = 2097152; + LCMAP_LOWERCASE = 256; + LCMAP_SORTKEY = 1024; + LCMAP_UPPERCASE = 512; + { ContinueDebugEvent } + DBG_CONTINUE = $10002; + DBG_CONTROL_BREAK = $40010008; + DBG_CONTROL_C = $40010005; + DBG_EXCEPTION_NOT_HANDLED = $80010001; + DBG_TERMINATE_THREAD = $40010003; + DBG_TERMINATE_PROCESS = $40010004; + { ControlService } + SERVICE_CONTROL_STOP = 1; + SERVICE_CONTROL_PAUSE = 2; + SERVICE_CONTROL_CONTINUE = 3; + SERVICE_CONTROL_INTERROGATE = 4; + SERVICE_CONTROL_SHUTDOWN = 5; + { CopyImage, LoadImage } + IMAGE_BITMAP = 0; + IMAGE_CURSOR = 2; + IMAGE_ENHMETAFILE = 1; + IMAGE_ICON = 1; + LR_COPYDELETEORG = 8; + LR_COPYRETURNORG = 4; + LR_MONOCHROME = 1; + LR_CREATEDIBSECTION = 8192; + LR_DEFAULTSIZE = 64; + { CreateDesktop } + DF_ALLOWOTHERACCOUNTHOOK = $1; + DESKTOP_CREATEMENU = $4; + DESKTOP_CREATEWINDOW = $2; + DESKTOP_ENUMERATE = $40; + DESKTOP_HOOKCONTROL = $8; + DESKTOP_JOURNALPLAYBACK = $20; + DESKTOP_JOURNALRECORD = $10; + DESKTOP_READOBJECTS = $1; + DESKTOP_SWITCHDESKTOP = $100; + DESKTOP_WRITEOBJECTS = $80; + WSF_VISIBLE = $1; + { CreateDIBitmap } + CBM_INIT = $4; + DIB_PAL_COLORS = 1; + DIB_RGB_COLORS = 0; + { file & pipe } + FILE_READ_DATA = $0001; + { directory } + FILE_LIST_DIRECTORY = $0001; + { file & pipe } + FILE_WRITE_DATA = $0002; + { directory } + FILE_ADD_FILE = $0002; + { file } + FILE_APPEND_DATA = $0004; + { directory } + FILE_ADD_SUBDIRECTORY = $0004; + { named pipe } + FILE_CREATE_PIPE_INSTANCE = $0004; + { file & directory } + FILE_READ_EA = $0008; + FILE_READ_PROPERTIES = FILE_READ_EA; + { file & directory } + FILE_WRITE_EA = $0010; + FILE_WRITE_PROPERTIES = FILE_WRITE_EA; + { file } + FILE_EXECUTE = $0020; + { directory } + FILE_TRAVERSE = $0020; + { directory } + FILE_DELETE_CHILD = $0040; + { all } + FILE_READ_ATTRIBUTES = $0080; + { all } + FILE_WRITE_ATTRIBUTES = $0100; + { displaced lower + #define FILE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF) + + #define FILE_GENERIC_READ (STANDARD_RIGHTS_READ |\ + FILE_READ_DATA |\ + FILE_READ_ATTRIBUTES |\ + FILE_READ_EA |\ + SYNCHRONIZE) + + + #define FILE_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\ + FILE_WRITE_DATA |\ + FILE_WRITE_ATTRIBUTES |\ + FILE_WRITE_EA |\ + FILE_APPEND_DATA |\ + SYNCHRONIZE) + + + #define FILE_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE |\ + FILE_READ_ATTRIBUTES |\ + FILE_EXECUTE |\ + SYNCHRONIZE) + } + FILE_SHARE_DELETE = 4; + FILE_SHARE_READ = 1; + FILE_SHARE_WRITE = 2; + CONSOLE_TEXTMODE_BUFFER = 1; + CREATE_NEW = 1; + CREATE_ALWAYS = 2; + OPEN_EXISTING = 3; + OPEN_ALWAYS = 4; + TRUNCATE_EXISTING = 5; + FILE_ATTRIBUTE_ARCHIVE = 32; + FILE_ATTRIBUTE_COMPRESSED = 2048; + FILE_ATTRIBUTE_NORMAL = 128; + FILE_ATTRIBUTE_DIRECTORY = 16; + FILE_ATTRIBUTE_HIDDEN = 2; + FILE_ATTRIBUTE_READONLY = 1; + FILE_ATTRIBUTE_SYSTEM = 4; + FILE_ATTRIBUTE_TEMPORARY = 256; + FILE_FLAG_WRITE_THROUGH = $80000000; + FILE_FLAG_OVERLAPPED = 1073741824; + FILE_FLAG_NO_BUFFERING = 536870912; + FILE_FLAG_RANDOM_ACCESS = 268435456; + FILE_FLAG_SEQUENTIAL_SCAN = 134217728; + FILE_FLAG_DELETE_ON_CLOSE = 67108864; + FILE_FLAG_BACKUP_SEMANTICS = 33554432; + FILE_FLAG_POSIX_SEMANTICS = 16777216; + SECURITY_ANONYMOUS = 0; + SECURITY_IDENTIFICATION = 65536; + SECURITY_IMPERSONATION = 131072; + SECURITY_DELEGATION = 196608; + SECURITY_CONTEXT_TRACKING = 262144; + SECURITY_EFFECTIVE_ONLY = 524288; + SECURITY_SQOS_PRESENT = 1048576; + { CreateFileMapping, VirtualAlloc, VirtualFree, VirtualProtect } + SEC_COMMIT = 134217728; + SEC_IMAGE = 16777216; + SEC_NOCACHE = 268435456; + SEC_RESERVE = 67108864; + PAGE_READONLY = 2; + PAGE_READWRITE = 4; + PAGE_WRITECOPY = 8; + PAGE_EXECUTE = 16; + PAGE_EXECUTE_READ = 32; + PAGE_EXECUTE_READWRITE = 64; + PAGE_EXECUTE_WRITECOPY = 128; + PAGE_GUARD = 256; + PAGE_NOACCESS = 1; + PAGE_NOCACHE = 512; + MEM_COMMIT = 4096; + MEM_FREE = 65536; + MEM_RESERVE = 8192; + MEM_IMAGE = 16777216; + MEM_MAPPED = 262144; + MEM_PRIVATE = 131072; + MEM_DECOMMIT = 16384; + MEM_RELEASE = 32768; + MEM_TOP_DOWN = 1048576; + EXCEPTION_GUARD_PAGE = $80000001; + SECTION_EXTEND_SIZE = $10; + SECTION_MAP_READ = $4; + SECTION_MAP_WRITE = $2; + SECTION_QUERY = $1; + SECTION_ALL_ACCESS = $f001f; + { CreateFont } + FW_DONTCARE = 0; + FW_THIN = 100; + FW_EXTRALIGHT = 200; + FW_LIGHT = 300; + FW_NORMAL = 400; + FW_REGULAR = FW_NORMAL; + FW_MEDIUM = 500; + FW_SEMIBOLD = 600; + FW_BOLD = 700; + FW_EXTRABOLD = 800; + FW_HEAVY = 900; + ANSI_CHARSET = 0; + DEFAULT_CHARSET = 1; + SYMBOL_CHARSET = 2; + SHIFTJIS_CHARSET = 128; + HANGEUL_CHARSET = 129; + GB2312_CHARSET = 134; + CHINESEBIG5_CHARSET = 136; + GREEK_CHARSET = 161; + TURKISH_CHARSET = 162; + HEBREW_CHARSET = 177; + ARABIC_CHARSET = 178; + BALTIC_CHARSET = 186; + RUSSIAN_CHARSET = 204; + THAI_CHARSET = 222; + EASTEUROPE_CHARSET = 238; + + OEM_CHARSET = 255; + OEM_CERTIFY_TRUST = 2; //+windef + OEM_CERTIFY_RUN = 1; //+windef + OEM_CERTIFY_FALSE = 0; //+windef + + OUT_DEFAULT_PRECIS = 0; + OUT_STRING_PRECIS = 1; + OUT_CHARACTER_PRECIS = 2; + OUT_STROKE_PRECIS = 3; + OUT_TT_PRECIS = 4; + OUT_DEVICE_PRECIS = 5; + OUT_RASTER_PRECIS = 6; + OUT_TT_ONLY_PRECIS = 7; + OUT_OUTLINE_PRECIS = 8; + CLIP_DEFAULT_PRECIS = 0; + CLIP_CHARACTER_PRECIS = 1; + CLIP_STROKE_PRECIS = 2; + CLIP_MASK = 15; + CLIP_LH_ANGLES = 16; + CLIP_TT_ALWAYS = 32; + CLIP_EMBEDDED = 128; + DEFAULT_QUALITY = 0; + DRAFT_QUALITY = 1; + PROOF_QUALITY = 2; + NONANTIALIASED_QUALITY = 3; + ANTIALIASED_QUALITY = 4; + DEFAULT_PITCH = 0; + FIXED_PITCH = 1; + VARIABLE_PITCH = 2; + MONO_FONT = 8; + FF_DECORATIVE = 80; + FF_DONTCARE = 0; + FF_MODERN = 48; + FF_ROMAN = 16; + FF_SCRIPT = 64; + FF_SWISS = 32; + { CreateHatchBrush } + HS_BDIAGONAL = 3; + HS_CROSS = 4; + HS_DIAGCROSS = 5; + HS_FDIAGONAL = 2; + HS_HORIZONTAL = 0; + HS_VERTICAL = 1; + { CreateIconFromResourceEx } + LR_DEFAULTCOLOR = 0; + LR_LOADREALSIZE = 128; + { already defined above !! + #define LR_MONOCHROME (1) + } + { CreateMappedBitmap } + CMB_MASKED = 2; + { CreateNamedPipe } + PIPE_ACCESS_DUPLEX = 3; + PIPE_ACCESS_INBOUND = 1; + PIPE_ACCESS_OUTBOUND = 2; + //WRITE_DAC = $40000; //~winnt, moved to ACCESS_TYPES + //WRITE_OWNER = $80000; //~winnt, moved to ACCESS_TYPES + //ACCESS_SYSTEM_SECURITY = $1000000; //~winnt, moved to ACCESS_TYPES + PIPE_TYPE_BYTE = 0; + PIPE_TYPE_MESSAGE = 4; + PIPE_READMODE_BYTE = 0; + PIPE_READMODE_MESSAGE = 2; + PIPE_WAIT = 0; + PIPE_NOWAIT = 1; + { CreatePen, ExtCreatePen } + PS_GEOMETRIC = 65536; + PS_COSMETIC = 0; + PS_ALTERNATE = 8; + PS_SOLID = 0; + PS_DASH = 1; + PS_DOT = 2; + PS_DASHDOT = 3; + PS_DASHDOTDOT = 4; + PS_NULL = 5; + PS_USERSTYLE = 7; + PS_INSIDEFRAME = 6; + PS_ENDCAP_ROUND = 0; + PS_ENDCAP_SQUARE = 256; + PS_ENDCAP_FLAT = 512; + PS_JOIN_BEVEL = 4096; + PS_JOIN_MITER = 8192; + PS_JOIN_ROUND = 0; + PS_STYLE_MASK = 15; + PS_ENDCAP_MASK = 3840; + PS_TYPE_MASK = 983040; + { CreateProcess } + CREATE_DEFAULT_ERROR_MODE = 67108864; + CREATE_NEW_CONSOLE = 16; + CREATE_NEW_PROCESS_GROUP = 512; + CREATE_SEPARATE_WOW_VDM = 2048; + CREATE_SUSPENDED = 4; + CREATE_UNICODE_ENVIRONMENT = 1024; + DEBUG_PROCESS = 1; + DEBUG_ONLY_THIS_PROCESS = 2; + DETACHED_PROCESS = 8; + HIGH_PRIORITY_CLASS = 128; + IDLE_PRIORITY_CLASS = 64; + NORMAL_PRIORITY_CLASS = 32; + REALTIME_PRIORITY_CLASS = 256; + { CreateService } + SERVICE_ALL_ACCESS = $f01ff; + SERVICE_CHANGE_CONFIG = 2; + SERVICE_ENUMERATE_DEPENDENTS = 8; + SERVICE_INTERROGATE = 128; + SERVICE_PAUSE_CONTINUE = 64; + SERVICE_QUERY_CONFIG = 1; + SERVICE_QUERY_STATUS = 4; + SERVICE_START = 16; + SERVICE_STOP = 32; + SERVICE_USER_DEFINED_CONTROL = 256; + SERVICE_DELETE = $10000; + SERVICE_READ_CONTROL = $20000; + SERVICE_GENERIC_EXECUTE = $20000000; + { already defined above !! + #define SERVICE_WIN32_OWN_PROCESS (16) + #define SERVICE_WIN32_SHARE_PROCESS (32) + #define SERVICE_KERNEL_DRIVER (1) + #define SERVICE_FILE_SYSTEM_DRIVER (2) + #define SERVICE_INTERACTIVE_PROCESS (256) + #define SERVICE_BOOT_START (0) + #define SERVICE_SYSTEM_START (1) + #define SERVICE_AUTO_START (2) + #define SERVICE_DEMAND_START (3) + #define SERVICE_DISABLED (4) + } + SERVICE_ERROR_IGNORE = 0; + SERVICE_ERROR_NORMAL = 1; + SERVICE_ERROR_SEVERE = 2; + SERVICE_ERROR_CRITICAL = 3; + { CreateTapePartition, WriteTapemark } + TAPE_FIXED_PARTITIONS = 0; + TAPE_INITIATOR_PARTITIONS = $2; + TAPE_SELECT_PARTITIONS = $1; + TAPE_FILEMARKS = $1; + TAPE_LONG_FILEMARKS = $3; + TAPE_SETMARKS = 0; + TAPE_SHORT_FILEMARKS = $2; + { CreateWindow } + CW_USEDEFAULT = longint($80000000); + WS_BORDER = $800000; + WS_CAPTION = $c00000; + WS_CHILD = $40000000; + WS_CHILDWINDOW = $40000000; + WS_CLIPCHILDREN = $2000000; + WS_CLIPSIBLINGS = $4000000; + WS_DISABLED = $8000000; + WS_DLGFRAME = $400000; + WS_GROUP = $20000; + WS_HSCROLL = $100000; + WS_MAXIMIZEBOX = $20000; + WS_MINIMIZEBOX = $10000; + WS_OVERLAPPED = WS_BORDER or WS_CAPTION; + WS_POPUP = $80000000; + WS_SIZEBOX = $40000; + WS_SYSMENU = $80000; + WS_TABSTOP = $10000; + WS_THICKFRAME = $40000; + WS_VISIBLE = $10000000; + WS_VSCROLL = $200000; + BS_3STATE = $5; + BS_AUTO3STATE = $6; + BS_AUTOCHECKBOX = $3; + BS_AUTORADIOBUTTON = $9; + BS_BITMAP = $80; + BS_BOTTOM = $800; + BS_CENTER = $300; + BS_CHECKBOX = $2; + BS_DEFPUSHBUTTON = $1; + BS_GROUPBOX = $7; + BS_ICON = $40; + BS_LEFT = $100; + BS_LEFTTEXT = $20; + BS_MULTILINE = $2000; + BS_NOTIFY = $4000; + BS_OWNERDRAW = $b; + BS_PUSHBUTTON = 0; + BS_PUSHLIKE = $1000; + BS_RADIOBUTTON = $4; + BS_RIGHT = $200; + BS_RIGHTBUTTON = $20; + BS_TEXT = 0; + BS_TOP = $400; + BS_USERBUTTON = $8; + BS_VCENTER = $c00; + BS_FLAT = $8000; + CBS_AUTOHSCROLL = $40; + CBS_DISABLENOSCROLL = $800; + CBS_DROPDOWN = $2; + CBS_DROPDOWNLIST = $3; + CBS_HASSTRINGS = $200; + CBS_LOWERCASE = $4000; + CBS_NOINTEGRALHEIGHT = $400; + CBS_OEMCONVERT = $80; + CBS_OWNERDRAWFIXED = $10; + CBS_OWNERDRAWVARIABLE = $20; + CBS_SIMPLE = $1; + CBS_SORT = $100; + CBS_UPPERCASE = $2000; + ES_AUTOHSCROLL = $80; + ES_AUTOVSCROLL = $40; + ES_CENTER = $1; + ES_LEFT = 0; + ES_LOWERCASE = $10; + ES_MULTILINE = $4; + ES_NOHIDESEL = $100; + ES_NUMBER = $2000; + ES_OEMCONVERT = $400; + ES_PASSWORD = $20; + ES_READONLY = $800; + ES_RIGHT = $2; + ES_UPPERCASE = $8; + ES_WANTRETURN = $1000; + LBS_DISABLENOSCROLL = $1000; + LBS_EXTENDEDSEL = $800; + LBS_HASSTRINGS = $40; + LBS_MULTICOLUMN = $200; + LBS_MULTIPLESEL = $8; + LBS_NODATA = $2000; + LBS_NOINTEGRALHEIGHT = $100; + LBS_NOREDRAW = $4; + LBS_NOSEL = $4000; + LBS_NOTIFY = $1; + LBS_OWNERDRAWFIXED = $10; + LBS_OWNERDRAWVARIABLE = $20; + LBS_SORT = $2; + LBS_STANDARD = $a00003; + LBS_USETABSTOPS = $80; + LBS_WANTKEYBOARDINPUT = $400; + SBS_BOTTOMALIGN = $4; + SBS_HORZ = 0; + SBS_LEFTALIGN = $2; + SBS_RIGHTALIGN = $4; + SBS_SIZEBOX = $8; + SBS_SIZEBOXBOTTOMRIGHTALIGN = $4; + SBS_SIZEBOXTOPLEFTALIGN = $2; + SBS_SIZEGRIP = $10; + SBS_TOPALIGN = $2; + SBS_VERT = $1; + SS_BITMAP = $e; + SS_BLACKFRAME = $7; + SS_BLACKRECT = $4; + SS_CENTER = $1; + SS_CENTERIMAGE = $200; + SS_ENHMETAFILE = $f; + SS_ETCHEDFRAME = $12; + SS_ETCHEDHORZ = $10; + SS_ETCHEDVERT = $11; + SS_GRAYFRAME = $8; + SS_GRAYRECT = $5; + SS_ICON = $3; + SS_LEFT = 0; + SS_LEFTNOWORDWRAP = $c; + SS_NOPREFIX = $80; + SS_NOTIFY = $100; + SS_OWNERDRAW = $d; + SS_REALSIZEIMAGE = $800; + SS_RIGHT = $2; + SS_RIGHTJUST = $400; + SS_SIMPLE = $b; + SS_SUNKEN = $1000; + SS_USERITEM = $a; + SS_WHITEFRAME = $9; + SS_WHITERECT = $6; + { Dialog styles } + DS_ABSALIGN = $1; + DS_SYSMODAL = $2; + DS_3DLOOK = $4; + DS_FIXEDSYS = $8; + DS_NOFAILCREATE = $10; + DS_LOCALEDIT = $20; + DS_SETFONT = $40; + DS_MODALFRAME = $80; + DS_NOIDLEMSG = $100; + DS_SETFOREGROUND = $200; + DS_CONTROL = $400; + DS_CENTER = $800; + DS_CENTERMOUSE = $1000; + DS_CONTEXTHELP = $2000; + DS_NOCLOSEBTN = $4000; + + { CreateWindowEx } + WS_EX_LEFT = 0; + WS_EX_LTRREADING = 0; + WS_EX_RIGHTSCROLLBAR = 0; + WS_EX_DLGMODALFRAME = $1; + WS_EX_NOPARENTNOTIFY = $4; + WS_EX_TOPMOST = $8; + WS_EX_ACCEPTFILES = $10; + WS_EX_TRANSPARENT = $20; + WS_EX_MDICHILD = $40; + WS_EX_TOOLWINDOW = $80; + WS_EX_PALETTEWINDOW = $188; + WS_EX_WINDOWEDGE = $100; + WS_EX_CLIENTEDGE = $200; + WS_EX_OVERLAPPEDWINDOW = $300; + WS_EX_CONTEXTHELP = $400; + WS_EX_RIGHT = $1000; + WS_EX_RTLREADING = $2000; + WS_EX_LEFTSCROLLBAR = $4000; + WS_EX_CONTROLPARENT = $10000; + WS_EX_STATICEDGE = $20000; + WS_EX_APPWINDOW = $40000; + WS_EX_NOANIMATION = $4000000; + WS_EX_NOACTIVATE = $8000000; + WS_EX_INK = $10000000; + WS_EX_ABOVESTARTUP = $20000000; + WS_EX_NODRAG = $40000000; + WS_EX_CAPTIONOKBTN = $80000000; + + { CreateWindowStation } + WINSTA_ACCESSCLIPBOARD = $4; + WINSTA_ACCESSGLOBALATOMS = $20; + WINSTA_CREATEDESKTOP = $8; + WINSTA_ENUMDESKTOPS = $1; + WINSTA_ENUMERATE = $100; + WINSTA_EXITWINDOWS = $40; + WINSTA_READATTRIBUTES = $2; + WINSTA_READSCREEN = $200; + WINSTA_WRITEATTRIBUTES = $10; + { DdeCallback } + { DdeClientTransaction } + { DdeEnableCallback } + { DdeGetLastError } + { DdeInitialize } + { DdeNameService } + { DebugProc } + WH_CALLWNDPROC = 4; + WH_CALLWNDPROCRET = 12; + WH_CBT = 5; + WH_DEBUG = 9; + WH_GETMESSAGE = 3; + WH_JOURNALPLAYBACK = 1; + WH_JOURNALRECORD = 0; + WH_KEYBOARD = 2; + WH_MOUSE = 7; + WH_MSGFILTER = -(1); + WH_SHELL = 10; + WH_SYSMSGFILTER = 6; + { already defined above !! + #define WH_MSGFILTER (-1) } + WH_FOREGROUNDIDLE = 11; + { DefineDosDevice } + DDD_RAW_TARGET_PATH = 1; + DDD_REMOVE_DEFINITION = 2; + DDD_EXACT_MATCH_ON_REMOVE = 4; + { DeviceCapbilities } + DC_BINNAMES = 12; //windef + DC_BINS = 6; //windef + DC_COPIES = 18; //windef + DC_DRIVER = 11; //windef + DC_DATATYPE_PRODUCED = 21; + DC_DUPLEX = 7; //windef + DC_EMF_COMPLIANT = 20; + DC_ENUMRESOLUTIONS = 13; //windef + DC_EXTRA = 9; //windef + DC_FIELDS = 1; //windef + DC_FILEDEPENDENCIES = 14; //windef + DC_MAXEXTENT = 5; //windef + DC_MINEXTENT = 4; //windef + DC_ORIENTATION = 17; //windef + DC_PAPERNAMES = 16; //windef + DC_PAPERS = 2; //windef + DC_PAPERSIZE = 3; //windef + DC_SIZE = 8; //windef + DC_TRUETYPE = 15; //windef + DCTT_BITMAP = $1; + DCTT_DOWNLOAD = $2; + DCTT_SUBDEV = $4; + DC_VERSION = 10; //windef + DC_BINADJUST = 19; + { already defined above !! + #define DC_DATATYPE_PRODUCED (21) + } + { DeviceIoControl } + { DlgDirList } + DDL_ARCHIVE = 32; + DDL_DIRECTORY = 16; + DDL_DRIVES = 16384; + DDL_EXCLUSIVE = 32768; + DDL_HIDDEN = 2; + DDL_READONLY = 1; + DDL_READWRITE = 0; + DDL_SYSTEM = 4; + DDL_POSTMSGS = 8192; + { DllEntryPoint } + DLL_PROCESS_ATTACH = 1; + DLL_THREAD_ATTACH = 2; + DLL_PROCESS_DETACH = 0; + DLL_THREAD_DETACH = 3; + { DocumentProperties } + DM_IN_BUFFER = 8; //windef + DM_MODIFY = 8; //windef + DM_IN_PROMPT = 4; //windef + DM_PROMPT = 4; //windef + DM_OUT_BUFFER = 2; //windef + DM_COPY = 2; //windef + DM_UPDATE = 1; //windef + { DrawAnimatedRects } + IDANI_OPEN = 1; + IDANI_CLOSE = 2; + { DrawCaption } + DC_ACTIVE = 1; + DC_SMALLCAP = 2; + { DrawEdge } + BDR_RAISEDINNER = 4; + BDR_SUNKENINNER = 8; + BDR_RAISEDOUTER = 1; + BDR_SUNKENOUTER = 1; + EDGE_BUMP = 9; + EDGE_ETCHED = 6; + EDGE_RAISED = 5; + EDGE_SUNKEN = 10; + BF_ADJUST = 8192; + BF_BOTTOM = 8; + BF_BOTTOMLEFT = 9; + BF_BOTTOMRIGHT = 12; + BF_DIAGONAL = 16; + BF_DIAGONAL_ENDBOTTOMLEFT = 25; + BF_DIAGONAL_ENDBOTTOMRIGHT = 28; + BF_DIAGONAL_ENDTOPLEFT = 19; + BF_DIAGONAL_ENDTOPRIGHT = 22; + BF_FLAT = 16384; + BF_LEFT = 1; + BF_MIDDLE = 2048; + BF_MONO = 32768; + BF_RECT = 15; + BF_RIGHT = 4; + BF_SOFT = 4096; + BF_TOP = 2; + BF_TOPLEFT = 3; + BF_TOPRIGHT = 6; + { DrawFrameControl } + DFC_BUTTON = 4; + DFC_CAPTION = 1; + DFC_MENU = 2; + DFC_SCROLL = 3; + DFCS_BUTTON3STATE = 8; + DFCS_BUTTONCHECK = 0; + DFCS_BUTTONPUSH = 16; + DFCS_BUTTONRADIO = 4; + DFCS_BUTTONRADIOIMAGE = 1; + DFCS_BUTTONRADIOMASK = 2; + DFCS_CAPTIONCLOSE = 0; + DFCS_CAPTIONHELP = 4; + DFCS_CAPTIONMAX = 2; + DFCS_CAPTIONMIN = 1; + DFCS_CAPTIONRESTORE = 3; + DFCS_MENUARROW = 0; + DFCS_MENUBULLET = 2; + DFCS_MENUCHECK = 1; + DFCS_SCROLLCOMBOBOX = 5; + DFCS_SCROLLDOWN = 1; + DFCS_SCROLLLEFT = 2; + DFCS_SCROLLRIGHT = 3; + DFCS_SCROLLSIZEGRIP = 8; + DFCS_SCROLLUP = 0; + DFCS_ADJUSTRECT = 8192; + DFCS_CHECKED = 1024; + DFCS_FLAT = 16384; + DFCS_INACTIVE = 256; + DFCS_MONO = 32768; + DFCS_PUSHED = 512; + { DrawIconEx } + DI_COMPAT = 4; + DI_DEFAULTSIZE = 8; + DI_IMAGE = 2; + DI_MASK = 1; + DI_NORMAL = 3; + { DrawState } + DST_BITMAP = 4; + DST_COMPLEX = 0; + DST_ICON = 3; + DST_PREFIXTEXT = 2; + DST_TEXT = 1; + DSS_NORMAL = 0; + DSS_UNION = 16; + DSS_DISABLED = 32; + DSS_MONO = 128; + { DrawStatusText } + SBT_NOBORDERS = 256; + SBT_OWNERDRAW = 4096; + SBT_POPOUT = 512; + SBT_RTLREADING = 1024; + { DrawText, DrawTextEx } + DT_BOTTOM = 8; + DT_CALCRECT = 1024; + DT_CENTER = 1; + DT_EDITCONTROL = 8192; + DT_END_ELLIPSIS = 32768; + DT_PATH_ELLIPSIS = 16384; + DT_EXPANDTABS = 64; + DT_EXTERNALLEADING = 512; + DT_LEFT = 0; + DT_MODIFYSTRING = 65536; + DT_NOCLIP = 256; + DT_NOPREFIX = 2048; + DT_RIGHT = 2; + DT_RTLREADING = 131072; + DT_SINGLELINE = 32; + DT_TABSTOP = 128; + DT_TOP = 0; + DT_VCENTER = 4; + DT_WORDBREAK = 16; + DT_INTERNAL = 4096; + { DuplicateHandle, MapViewOfFile } + DUPLICATE_CLOSE_SOURCE = 1; + DUPLICATE_SAME_ACCESS = 2; + FILE_MAP_ALL_ACCESS = $f001f; + FILE_MAP_READ = 4; + FILE_MAP_WRITE = 2; + FILE_MAP_COPY = 1; + MUTEX_ALL_ACCESS = $1f0001; + MUTEX_MODIFY_STATE = 1; + //SYNCHRONIZE = $100000; //~winnt, move to ACCESS_TYPE + SEMAPHORE_ALL_ACCESS = $1f0003; + SEMAPHORE_MODIFY_STATE = 2; + EVENT_ALL_ACCESS = $1f0003; + EVENT_MODIFY_STATE = 2; + KEY_ALL_ACCESS = $f003f; + KEY_CREATE_LINK = 32; + KEY_CREATE_SUB_KEY = 4; + KEY_ENUMERATE_SUB_KEYS = 8; + KEY_EXECUTE = $20019; + KEY_NOTIFY = 16; + KEY_QUERY_VALUE = 1; + KEY_READ = $20019; + KEY_SET_VALUE = 2; + KEY_WRITE = $20006; + PROCESS_ALL_ACCESS = $1f0fff; + PROCESS_CREATE_PROCESS = 128; + PROCESS_CREATE_THREAD = 2; + PROCESS_DUP_HANDLE = 64; + PROCESS_QUERY_INFORMATION = 1024; + PROCESS_SET_INFORMATION = 512; + PROCESS_TERMINATE = 1; + PROCESS_VM_OPERATION = 8; + PROCESS_VM_READ = 16; + PROCESS_VM_WRITE = 32; + THREAD_ALL_ACCESS = $1f03ff; + THREAD_DIRECT_IMPERSONATION = 512; + THREAD_GET_CONTEXT = 8; + THREAD_IMPERSONATE = 256; + THREAD_QUERY_INFORMATION = 64; + THREAD_SET_CONTEXT = 16; + THREAD_SET_INFORMATION = 32; + THREAD_SET_THREAD_TOKEN = 128; + THREAD_SUSPEND_RESUME = 2; + THREAD_TERMINATE = 1; + { EditWordBreakProc } + WB_ISDELIMITER = 2; + WB_LEFT = 0; + WB_RIGHT = 1; + { EnableScrollBar } + SB_BOTH = 3; + SB_CTL = 2; + SB_HORZ = 0; + SB_VERT = 1; + ESB_DISABLE_BOTH = 3; + ESB_DISABLE_DOWN = 2; + ESB_DISABLE_LEFT = 1; + ESB_DISABLE_LTUP = 1; + ESB_DISABLE_RIGHT = 2; + ESB_DISABLE_RTDN = 2; + ESB_DISABLE_UP = 1; + ESB_ENABLE_BOTH = 0; + { Scroll Bar notifications } + SB_LINEUP = 0; + SB_LINEDOWN = 1; + SB_LINELEFT = 0; + SB_LINERIGHT = 1; + SB_PAGEUP = 2; + SB_PAGEDOWN = 3; + SB_PAGELEFT = 2; + SB_PAGERIGHT = 3; + SB_THUMBPOSITION = 4; + SB_THUMBTRACK = 5; + SB_ENDSCROLL = 8; + SB_LEFT = 6; + SB_RIGHT = 7; + SB_BOTTOM = 7; + SB_TOP = 6; + { EnumCalendarInfo } + ENUM_ALL_CALENDARS = -(1); + { EnumDateFormats } + DATE_SHORTDATE = 1; + DATE_LONGDATE = 2; + { EnumDependentServices } + SERVICE_ACTIVE = 1; + SERVICE_INACTIVE = 2; + { EnumFontFamExProc } + DEVICE_FONTTYPE = 2; + RASTER_FONTTYPE = 1; + TRUETYPE_FONTTYPE = 4; + { EnumObjects, GetCurrentObject, GetObjectType } + OBJ_BRUSH = 2; + OBJ_PEN = 1; + OBJ_PAL = 5; + OBJ_FONT = 6; + OBJ_BITMAP = 7; + OBJ_EXTPEN = 11; + OBJ_REGION = 8; + OBJ_DC = 3; + OBJ_MEMDC = 10; + OBJ_METAFILE = 9; + OBJ_METADC = 4; + OBJ_ENHMETAFILE = 13; + OBJ_ENHMETADC = 12; + { EnumPrinters } + { EnumProtocols } + { EnumResLangProc } + RT_ACCELERATOR = MAKEINTRESOURCE(9); + RT_BITMAP = MAKEINTRESOURCE(2); + RT_DIALOG = MAKEINTRESOURCE(5); + RT_FONT = MAKEINTRESOURCE(8); + RT_FONTDIR = MAKEINTRESOURCE(7); + RT_MENU = MAKEINTRESOURCE(4); + RT_RCDATA = MAKEINTRESOURCE(10); + RT_STRING = MAKEINTRESOURCE(6); + RT_MESSAGETABLE = MAKEINTRESOURCE(11); + RT_CURSOR = MAKEINTRESOURCE(1); + RT_GROUP_CURSOR = MAKEINTRESOURCE(12); + RT_ICON = MAKEINTRESOURCE(3); + RT_GROUP_ICON = MAKEINTRESOURCE(13); + RT_VERSION = MAKEINTRESOURCE(16); + + { EnumServicesStatus } + + const + SERVICE_WIN32 = 48; + SERVICE_DRIVER = 11; + { EnumSystemCodePages } + CP_INSTALLED = 1; + CP_SUPPORTED = 2; + { EnumSystemLocales } + LCID_INSTALLED = 1; + LCID_SUPPORTED = 2; + { EraseTape } + TAPE_ERASE_LONG = $1; + TAPE_ERASE_SHORT = 0; + { Escape } + SP_ERROR = -(1); + SP_OUTOFDISK = -(4); + SP_OUTOFMEMORY = -(5); + SP_USERABORT = -(3); + PHYSICALWIDTH = 110; + PHYSICALHEIGHT = 111; + PHYSICALOFFSETX = 112; + PHYSICALOFFSETY = 113; + SCALINGFACTORX = 114; + SCALINGFACTORY = 115; + QUERYESCSUPPORT = 8; + {ABORTDOC = 2; conflicts with AbortDoc function } + cABORTDOC = 2; + {ENDDOC = 11; conflicts with AbortDoc function } + cENDDOC = 11; + GETPHYSPAGESIZE = 12; + GETPRINTINGOFFSET = 13; + GETSCALINGFACTOR = 14; + NEWFRAME = 1; + NEXTBAND = 3; + PASSTHROUGH = 19; + {SETABORTPROC = 9; conflicts with AbortDoc function } + cSETABORTPROC = 9; + {STARTDOC = 10; conflicts with AbortDoc function } + cSTARTDOC = 10; + { EscapeCommFunction } + CLRDTR = 6; //winbase + CLRRTS = 4; //winbase + SETDTR = 5; //winbase + SETRTS = 3; //winbase + SETXOFF = 1; //winbase + SETXON = 2; //winbase + SETBREAK = 8; //winbase + CLRBREAK = 9; //winbase + // Some CE devices share a UART between an IRDA port and a serial port. + // These escape functions allow control over the mode. + SETIR = 10; // Set the port to IR mode. //+winbase + CLRIR = 11; // Set the port to non-IR mode. //+winbase + { ExitWindowsEx } + EWX_FORCE = 4; + EWX_LOGOFF = 0; + EWX_POWEROFF = 8; + EWX_REBOOT = 2; + EWX_SHUTDOWN = 1; + { ExtFloodFill } + FLOODFILLBORDER = 0; + FLOODFILLSURFACE = 1; + { ExtTextOut } + ETO_CLIPPED = 4; + ETO_GLYPH_INDEX = 16; + ETO_OPAQUE = 2; + ETO_RTLREADING = 128; + { FindFirstChangeNotification } + FILE_NOTIFY_CHANGE_FILE_NAME = 1; + FILE_NOTIFY_CHANGE_DIR_NAME = 2; + FILE_NOTIFY_CHANGE_ATTRIBUTES = 4; + FILE_NOTIFY_CHANGE_SIZE = 8; + FILE_NOTIFY_CHANGE_LAST_WRITE = 16; + FILE_NOTIFY_CHANGE_SECURITY = 256; + { FindFirstPrinterChangeNotification } + { FindNextPrinterNotification } + { FMExtensionProc } + { FoldString } + MAP_FOLDCZONE = 16; + MAP_FOLDDIGITS = 128; + MAP_PRECOMPOSED = 32; + MAP_COMPOSITE = 64; + { ForegroundIdleProc } + HC_ACTION = 0; + { FormatMessage } + FORMAT_MESSAGE_ALLOCATE_BUFFER = 256; + FORMAT_MESSAGE_IGNORE_INSERTS = 512; + FORMAT_MESSAGE_FROM_STRING = 1024; + FORMAT_MESSAGE_FROM_HMODULE = 2048; + FORMAT_MESSAGE_FROM_SYSTEM = 4096; + FORMAT_MESSAGE_ARGUMENT_ARRAY = 8192; + FORMAT_MESSAGE_MAX_WIDTH_MASK = 255; + { GdiComment } + GDICOMMENT_WINDOWS_METAFILE = -(2147483647); + GDICOMMENT_BEGINGROUP = 2; + GDICOMMENT_ENDGROUP = 3; + GDICOMMENT_MULTIFORMATS = 1073741828; + GDICOMMENT_IDENTIFIER = 1128875079; + { GenerateConsoleCtrlEvent, HandlerRoutine } + CTRL_C_EVENT = 0; + CTRL_BREAK_EVENT = 1; + CTRL_CLOSE_EVENT = 2; + CTRL_LOGOFF_EVENT = 5; + CTRL_SHUTDOWN_EVENT = 6; + { GetAddressByName } + { GetArcDirection } + AD_COUNTERCLOCKWISE = 1; + AD_CLOCKWISE = 2; + { GetClassLong, GetClassWord } + GCW_ATOM = -(32); + GCL_CBCLSEXTRA = -(20); + GCL_CBWNDEXTRA = -(18); + GCL_HBRBACKGROUND = -(10); + GCL_HCURSOR = -(12); + GCL_HICON = -(14); + GCL_HICONSM = -(34); + GCL_HMODULE = -(16); + GCL_MENUNAME = -(8); + GCL_STYLE = -(26); + GCL_WNDPROC = -(24); + { GetClipboardFormat, SetClipboardData } + CF_BITMAP = 2; + CF_DIB = 8; + CF_PALETTE = 9; + CF_ENHMETAFILE = 14; + CF_METAFILEPICT = 3; + CF_OEMTEXT = 7; + CF_TEXT = 1; + CF_UNICODETEXT = 13; + CF_DIF = 5; + CF_DSPBITMAP = 130; + CF_DSPENHMETAFILE = 142; + CF_DSPMETAFILEPICT = 131; + CF_DSPTEXT = 129; + CF_GDIOBJFIRST = 768; + CF_GDIOBJLAST = 1023; + CF_HDROP = 15; + CF_LOCALE = 16; + CF_OWNERDISPLAY = 128; + CF_PENDATA = 10; + CF_PRIVATEFIRST = 512; + CF_PRIVATELAST = 767; + CF_RIFF = 11; + CF_SYLK = 4; + CF_WAVE = 12; + CF_TIFF = 6; + { GetCommMask } + EV_BREAK = 64; + EV_CTS = 8; + EV_DSR = 16; + EV_ERR = 128; + EV_EVENT1 = 2048; + EV_EVENT2 = 4096; + EV_PERR = 512; + EV_RING = 256; + EV_RLSD = 32; + EV_RX80FULL = 1024; + EV_RXCHAR = 1; + EV_RXFLAG = 2; + EV_TXEMPTY = 4; + EV_POWER = $2000; // WINCE Power event. //+winbase + + { GetCommModemStatus } + MS_CTS_ON = $10; + MS_DSR_ON = $20; + MS_RING_ON = $40; + MS_RLSD_ON = $80; + { GetComputerName } + MAX_COMPUTERNAME_LENGTH = 15; + { GetCPInfo } + CP_ACP = 0; + CP_MACCP = 2; + CP_OEMCP = 1; + { GetDateFormat } + { already defined above !! + #define DATE_SHORTDATE (1) + #define DATE_LONGDATE (2) + } + DATE_USE_ALT_CALENDAR = 4; + { GetDCEx } + DCX_WINDOW = $1; + DCX_CACHE = $2; + DCX_PARENTCLIP = $20; + DCX_CLIPSIBLINGS = $10; + DCX_CLIPCHILDREN = $8; + DCX_NORESETATTRS = $4; + DCX_LOCKWINDOWUPDATE = $400; + DCX_EXCLUDERGN = $40; + DCX_INTERSECTRGN = $80; + DCX_VALIDATE = $200000; + { GetDeviceCaps } + DRIVERVERSION = 0; + TECHNOLOGY = 2; + DT_PLOTTER = 0; + DT_RASDISPLAY = 1; + DT_RASPRINTER = 2; + DT_RASCAMERA = 3; + DT_CHARSTREAM = 4; + DT_METAFILE = 5; + DT_DISPFILE = 6; + HORZSIZE = 4; + VERTSIZE = 6; + HORZRES = 8; + VERTRES = 10; + LOGPIXELSX = 88; + LOGPIXELSY = 90; + BITSPIXEL = 12; + PLANES = 14; + NUMBRUSHES = 16; + NUMPENS = 18; + NUMFONTS = 22; + NUMCOLORS = 24; + ASPECTX = 40; + ASPECTY = 42; + ASPECTXY = 44; + PDEVICESIZE = 26; + CLIPCAPS = 36; + SIZEPALETTE = 104; + NUMRESERVED = 106; + COLORRES = 108; + { already defined above !! + #define PHYSICALWIDTH (110) + #define PHYSICALHEIGHT (111) + #define PHYSICALOFFSETX (112) + #define PHYSICALOFFSETY (113) + #define SCALINGFACTORX (114) + #define SCALINGFACTORY (115) + } + VREFRESH = 116; + DESKTOPHORZRES = 118; + DESKTOPVERTRES = 117; + BLTALIGNMENT = 119; + RASTERCAPS = 38; + RC_BANDING = 2; + RC_BITBLT = 1; + RC_BITMAP64 = 8; + RC_DI_BITMAP = 128; + RC_DIBTODEV = 512; + RC_FLOODFILL = 4096; + RC_GDI20_OUTPUT = 16; + RC_PALETTE = 256; + RC_SCALING = 4; + RC_STRETCHBLT = 2048; + RC_STRETCHDIB = 8192; + CURVECAPS = 28; + CC_NONE = 0; + CC_CIRCLES = 1; + CC_PIE = 2; + CC_CHORD = 4; + CC_ELLIPSES = 8; + CC_WIDE = 16; + CC_STYLED = 32; + CC_WIDESTYLED = 64; + CC_INTERIORS = 128; + CC_ROUNDRECT = 256; + LINECAPS = 30; + LC_NONE = 0; + LC_POLYLINE = 2; + LC_MARKER = 4; + LC_POLYMARKER = 8; + LC_WIDE = 16; + LC_STYLED = 32; + LC_WIDESTYLED = 64; + LC_INTERIORS = 128; + POLYGONALCAPS = 32; + PC_NONE = 0; + PC_POLYGON = 1; + PC_RECTANGLE = 2; + PC_WINDPOLYGON = 4; + PC_SCANLINE = 8; + PC_WIDE = 16; + PC_STYLED = 32; + PC_WIDESTYLED = 64; + PC_INTERIORS = 128; + TEXTCAPS = 34; + TC_OP_CHARACTER = 1; + TC_OP_STROKE = 2; + TC_CP_STROKE = 4; + TC_CR_90 = 8; + TC_CR_ANY = 16; + TC_SF_X_YINDEP = 32; + TC_SA_DOUBLE = 64; + TC_SA_INTEGER = 128; + TC_SA_CONTIN = 256; + TC_EA_DOUBLE = 512; + TC_IA_ABLE = 1024; + TC_UA_ABLE = 2048; + TC_SO_ABLE = 4096; + TC_RA_ABLE = 8192; + TC_VA_ABLE = 16384; + TC_RESERVED = 32768; + TC_SCROLLBLT = 65536; + PC_PATHS = 512; + { GetDriveType } + DRIVE_REMOVABLE = 2; + DRIVE_FIXED = 3; + DRIVE_REMOTE = 4; + DRIVE_CDROM = 5; + DRIVE_RAMDISK = 6; + DRIVE_UNKNOWN = 0; + DRIVE_NO_ROOT_DIR = 1; + { GetExceptionCode } + EXCEPTION_ACCESS_VIOLATION = $c0000005; + EXCEPTION_BREAKPOINT = $80000003; + EXCEPTION_DATATYPE_MISALIGNMENT = $80000002; + EXCEPTION_SINGLE_STEP = $80000004; + EXCEPTION_ARRAY_BOUNDS_EXCEEDED = $c000008c; + EXCEPTION_FLT_DENORMAL_OPERAND = $c000008d; + EXCEPTION_FLT_DIVIDE_BY_ZERO = $c000008e; + EXCEPTION_FLT_INEXACT_RESULT = $c000008f; + EXCEPTION_FLT_INVALID_OPERATION = $c0000090; + EXCEPTION_FLT_OVERFLOW = $c0000091; + EXCEPTION_FLT_STACK_CHECK = $c0000092; + EXCEPTION_FLT_UNDERFLOW = $c0000093; + EXCEPTION_INT_DIVIDE_BY_ZERO = $c0000094; + EXCEPTION_INT_OVERFLOW = $c0000095; + EXCEPTION_INVALID_HANDLE = $c0000008; + EXCEPTION_PRIV_INSTRUCTION = $c0000096; + EXCEPTION_NONCONTINUABLE_EXCEPTION = $c0000025; + EXCEPTION_NONCONTINUABLE = $1; //winnt + EXCEPTION_UNWINDING = $2; //+winnt + EXCEPTION_EXIT_UNWIND = $4; //+winnt + EXCEPTION_STACK_INVALID = $8; //+winnt + EXCEPTION_NESTED_CALL = $10; //+winnt + EXCEPTION_TARGET_UNWIND = $20; //+winnt + EXCEPTION_COLLIDED_UNWIND = $40; //+winnt + EXCEPTION_UNWIND = EXCEPTION_UNWINDING or EXCEPTION_EXIT_UNWIND or + EXCEPTION_TARGET_UNWIND or EXCEPTION_COLLIDED_UNWIND; //+winnt + EXCEPTION_STACK_OVERFLOW = $c00000fd; + EXCEPTION_INVALID_DISPOSITION = $c0000026; + EXCEPTION_IN_PAGE_ERROR = $c0000006; + EXCEPTION_ILLEGAL_INSTRUCTION = $c000001d; + EXCEPTION_POSSIBLE_DEADLOCK = $c0000194; + + function IS_UNWINDING( Flag : Longint) : boolean; //+winnt + function IS_DISPATCHING( Flag : Longint) : boolean; //+winnt + function IS_TARGET_UNWIND( Flag : Longint) : Longint; //+winnt + + { GetFileType } + const + FILE_TYPE_UNKNOWN = 0; + FILE_TYPE_DISK = 1; + FILE_TYPE_CHAR = 2; + FILE_TYPE_PIPE = 3; + GDI_ERROR = $ffffffff; + { GetGraphicsMode } + GM_COMPATIBLE = 1; + GM_ADVANCED = 2; + { GetIconInfo } + IDC_ARROW = MAKEINTRESOURCE(32512); + IDC_IBEAM = MAKEINTRESOURCE(32513); + IDC_WAIT = MAKEINTRESOURCE(32514); + IDC_CROSS = MAKEINTRESOURCE(32515); + IDC_UPARROW = MAKEINTRESOURCE(32516); + IDC_SIZENWSE = MAKEINTRESOURCE(32642); + IDC_SIZENESW = MAKEINTRESOURCE(32643); + IDC_SIZEWE = MAKEINTRESOURCE(32644); + IDC_SIZENS = MAKEINTRESOURCE(32645); + IDC_SIZEALL = MAKEINTRESOURCE(32646); + IDC_NO = MAKEINTRESOURCE(32648); + IDC_APPSTARTING = MAKEINTRESOURCE(32650); + IDC_HELP = MAKEINTRESOURCE(32651); + IDI_APPLICATION = MAKEINTRESOURCE(32512); + IDI_HAND = MAKEINTRESOURCE(32513); + IDI_QUESTION = MAKEINTRESOURCE(32514); + IDI_EXCLAMATION = MAKEINTRESOURCE(32515); + IDI_ASTERISK = MAKEINTRESOURCE(32516); + IDI_WINLOGO = MAKEINTRESOURCE(32517); + IDC_SIZE = MAKEINTRESOURCE(32640); + IDC_ICON = MAKEINTRESOURCE(32641); + IDC_HAND = MAKEINTRESOURCE(32649); + + { GetMapMode } + + const + MM_ANISOTROPIC = 8; + MM_HIENGLISH = 5; + MM_HIMETRIC = 3; + MM_ISOTROPIC = 7; + MM_LOENGLISH = 4; + MM_LOMETRIC = 2; + MM_TEXT = 1; + MM_TWIPS = 6; + { GetMenuDefaultItem } + GMDI_GOINTOPOPUPS = $2; + GMDI_USEDISABLED = $1; + { PeekMessage } + PM_NOREMOVE = 0; + PM_REMOVE = 1; + PM_NOYIELD = 2; + { GetNextWindow, GetWindow } + GW_HWNDNEXT = 2; + GW_HWNDPREV = 3; + GW_CHILD = 5; + GW_HWNDFIRST = 0; + GW_HWNDLAST = 1; + GW_OWNER = 4; + GW_MAX = 5; //+winuser + + { GetQueueStatus } + QS_ALLEVENTS = 191; + QS_ALLINPUT = 255; + QS_HOTKEY = 128; + QS_INPUT = 7; + QS_KEY = 1; + QS_MOUSE = 6; + QS_MOUSEBUTTON = 4; + QS_MOUSEMOVE = 2; + QS_PAINT = 32; + QS_POSTMESSAGE = 8; + QS_SENDMESSAGE = 64; + QS_TIMER = 16; + { GetScrollInfo, SetScrollInfo } + SIF_ALL = 23; + SIF_PAGE = 2; + SIF_POS = 4; + SIF_RANGE = 1; + SIF_DISABLENOSCROLL = 8; + SIF_TRACKPOS = $10; + { GetStdHandle } + + + { was #define dname def_expr } + STD_INPUT_HANDLE = DWORD(-(10)); + STD_OUTPUT_HANDLE = DWORD(-(11)); + STD_ERROR_HANDLE = DWORD(-(12)); + + { was #define dname def_expr } + INVALID_HANDLE_VALUE = HANDLE(-1); + + { GetStockObject } + + BLACK_BRUSH = 4; + DKGRAY_BRUSH = 3; + GRAY_BRUSH = 2; + HOLLOW_BRUSH = 5; + LTGRAY_BRUSH = 1; + NULL_BRUSH = 5; + WHITE_BRUSH = 0; + BLACK_PEN = 7; + NULL_PEN = 8; + WHITE_PEN = 6; + ANSI_FIXED_FONT = 11; + ANSI_VAR_FONT = 12; + DEVICE_DEFAULT_FONT = 14; + DEFAULT_GUI_FONT = 17; + OEM_FIXED_FONT = 10; + SYSTEM_FONT = 13; + SYSTEM_FIXED_FONT = 16; + DEFAULT_PALETTE = 15; + { GetStringTypeA } + CT_CTYPE1 = 1; + CT_CTYPE2 = 2; + CT_CTYPE3 = 4; + C1_UPPER = 1; + C1_LOWER = 2; + C1_DIGIT = 4; + C1_SPACE = 8; + C1_PUNCT = 16; + C1_CNTRL = 32; + C1_BLANK = 64; + C1_XDIGIT = 128; + C1_ALPHA = 256; + C2_LEFTTORIGHT = 1; + C2_RIGHTTOLEFT = 2; + C2_EUROPENUMBER = 3; + C2_EUROPESEPARATOR = 4; + C2_EUROPETERMINATOR = 5; + C2_ARABICNUMBER = 6; + C2_COMMONSEPARATOR = 7; + C2_BLOCKSEPARATOR = 8; + C2_SEGMENTSEPARATOR = 9; + C2_WHITESPACE = 10; + C2_OTHERNEUTRAL = 11; + C2_NOTAPPLICABLE = 0; + C3_NONSPACING = 1; + C3_DIACRITIC = 2; + C3_VOWELMARK = 4; + C3_SYMBOL = 8; + C3_KATAKANA = 16; + C3_HIRAGANA = 32; + C3_HALFWIDTH = 64; + C3_FULLWIDTH = 128; + C3_IDEOGRAPH = 256; + C3_KASHIDA = 512; + C3_ALPHA = 32768; + C3_NOTAPPLICABLE = 0; + { GetSysColor } +{$IFDEF WINCE} + SYS_COLOR_INDEX_FLAG =$40000000; +{$ELSE} + SYS_COLOR_INDEX_FLAG =0; +{$ENDIF WINCE} + COLOR_SCROLLBAR = 0 or SYS_COLOR_INDEX_FLAG; + COLOR_BACKGROUND = 1 or SYS_COLOR_INDEX_FLAG; + COLOR_ACTIVECAPTION = 2 or SYS_COLOR_INDEX_FLAG; + COLOR_INACTIVECAPTION = 3 or SYS_COLOR_INDEX_FLAG; + COLOR_MENU = 4 or SYS_COLOR_INDEX_FLAG; + COLOR_WINDOW = 5 or SYS_COLOR_INDEX_FLAG; + COLOR_WINDOWFRAME = 6 or SYS_COLOR_INDEX_FLAG; + COLOR_MENUTEXT = 7 or SYS_COLOR_INDEX_FLAG; + COLOR_WINDOWTEXT = 8 or SYS_COLOR_INDEX_FLAG; + COLOR_CAPTIONTEXT = 9 or SYS_COLOR_INDEX_FLAG; + COLOR_ACTIVEBORDER =10 or SYS_COLOR_INDEX_FLAG; + COLOR_INACTIVEBORDER =11 or SYS_COLOR_INDEX_FLAG; + COLOR_APPWORKSPACE =12 or SYS_COLOR_INDEX_FLAG; + COLOR_HIGHLIGHT =13 or SYS_COLOR_INDEX_FLAG; + COLOR_HIGHLIGHTTEXT =14 or SYS_COLOR_INDEX_FLAG; + COLOR_BTNFACE =15 or SYS_COLOR_INDEX_FLAG; + COLOR_BTNSHADOW =16 or SYS_COLOR_INDEX_FLAG; + COLOR_GRAYTEXT =17 or SYS_COLOR_INDEX_FLAG; + COLOR_BTNTEXT =18 or SYS_COLOR_INDEX_FLAG; + COLOR_INACTIVECAPTIONTEXT =19 or SYS_COLOR_INDEX_FLAG; + COLOR_BTNHIGHLIGHT =20 or SYS_COLOR_INDEX_FLAG; + + COLOR_3DDKSHADOW =21 or SYS_COLOR_INDEX_FLAG; + COLOR_3DLIGHT =22 or SYS_COLOR_INDEX_FLAG; + COLOR_INFOTEXT =23 or SYS_COLOR_INDEX_FLAG; + COLOR_INFOBK =24 or SYS_COLOR_INDEX_FLAG; + COLOR_STATIC =25 or SYS_COLOR_INDEX_FLAG; + COLOR_STATICTEXT =26 or SYS_COLOR_INDEX_FLAG; + COLOR_GRADIENTACTIVECAPTION =27 or SYS_COLOR_INDEX_FLAG; + COLOR_GRADIENTINACTIVECAPTION =28 or SYS_COLOR_INDEX_FLAG; + C_SYS_COLOR_TYPES =29; + + COLOR_DESKTOP =COLOR_BACKGROUND; + COLOR_3DFACE =COLOR_BTNFACE; + COLOR_3DSHADOW =COLOR_BTNSHADOW; + COLOR_3DHIGHLIGHT =COLOR_BTNHIGHLIGHT; + COLOR_3DHILIGHT =COLOR_BTNHIGHLIGHT; + + { GetSystemMetrics } + SM_CYMIN = 29; + SM_CXMIN = 28; + SM_ARRANGE = 56; + SM_CLEANBOOT = 67; + { The right value for SM_CEMETRICS for NT 3.5 is 75. For Windows 95 + and NT 4.0, it is 76. The meaning is undocumented, anyhow. } + SM_CMETRICS = 76; + SM_CMOUSEBUTTONS = 43; + SM_CXBORDER = 5; + SM_CYBORDER = 6; + SM_CXCURSOR = 13; + SM_CYCURSOR = 14; + SM_CXDLGFRAME = 7; + SM_CYDLGFRAME = 8; + SM_CXDOUBLECLK = 36; + SM_CYDOUBLECLK = 37; + SM_CXDRAG = 68; + SM_CYDRAG = 69; + SM_CXEDGE = 45; + SM_CYEDGE = 46; + SM_CXFIXEDFRAME = 7; + SM_CYFIXEDFRAME = 8; + SM_CXFRAME = 32; + SM_CYFRAME = 33; + SM_CXFULLSCREEN = 16; + SM_CYFULLSCREEN = 17; + SM_CXHSCROLL = 21; + SM_CYHSCROLL = 3; + SM_CXHTHUMB = 10; + SM_CXICON = 11; + SM_CYICON = 12; + SM_CXICONSPACING = 38; + SM_CYICONSPACING = 39; + SM_CXMAXIMIZED = 61; + SM_CYMAXIMIZED = 62; + SM_CXMAXTRACK = 59; + SM_CYMAXTRACK = 60; + SM_CXMENUCHECK = 71; + SM_CYMENUCHECK = 72; + SM_CXMENUSIZE = 54; + SM_CYMENUSIZE = 55; + SM_CXMINIMIZED = 57; + SM_CYMINIMIZED = 58; + SM_CXMINSPACING = 47; + SM_CYMINSPACING = 48; + SM_CXMINTRACK = 34; + SM_CYMINTRACK = 35; + SM_CXSCREEN = 0; + SM_CYSCREEN = 1; + SM_CXSIZE = 30; + SM_CYSIZE = 31; + SM_CXSIZEFRAME = 32; + SM_CYSIZEFRAME = 33; + SM_CXSMICON = 49; + SM_CYSMICON = 50; + SM_CXSMSIZE = 52; + SM_CYSMSIZE = 53; + SM_CXVSCROLL = 2; + {SM_CYHSCROLL = 3;already above } + {SM_CXHSCROLL = 21;already above } + SM_CYVSCROLL = 20; + SM_CYVTHUMB = 9; + SM_CYCAPTION = 4; + SM_CYKANJIWINDOW = 18; + SM_CYMENU = 15; + SM_CYSMCAPTION = 51; + SM_DBCSENABLED = 42; + SM_DEBUG = 22; + SM_MENUDROPALIGNMENT = 40; + SM_MIDEASTENABLED = 74; + SM_MOUSEPRESENT = 19; + SM_MOUSEWHEELPRESENT = 75; + SM_NETWORK = 63; + SM_PENWINDOWS = 41; + SM_SECURE = 44; + SM_SHOWSOUNDS = 70; + SM_SLOWMACHINE = 73; + SM_SWAPBUTTON = 23; + ARW_BOTTOMLEFT = 0; + ARW_BOTTOMRIGHT = $1; + ARW_HIDE = $8; + ARW_TOPLEFT = $2; + ARW_TOPRIGHT = $3; + ARW_DOWN = $4; + ARW_LEFT = 0; + ARW_RIGHT = 0; + ARW_UP = $4; + { GetSystemPaletteUse } + SYSPAL_NOSTATIC = 2; + SYSPAL_STATIC = 1; + SYSPAL_ERROR = 0; + { GetTextAlign } + TA_BASELINE = 24; + TA_BOTTOM = 8; + TA_TOP = 0; + TA_CENTER = 6; + TA_LEFT = 0; + TA_RIGHT = 2; + TA_RTLREADING = 256; + TA_NOUPDATECP = 0; + TA_UPDATECP = 1; + VTA_BASELINE = 24; + VTA_CENTER = 6; + { GetThreadPriority } + THREAD_PRIORITY_ABOVE_NORMAL = 1; + THREAD_PRIORITY_BELOW_NORMAL = -(1); + THREAD_PRIORITY_HIGHEST = 2; + THREAD_PRIORITY_IDLE = -(15); + THREAD_PRIORITY_LOWEST = -(2); + THREAD_PRIORITY_NORMAL = 0; + THREAD_PRIORITY_TIME_CRITICAL = 15; + THREAD_PRIORITY_ERROR_RETURN = 2147483647; + TLS_MINIMUM_AVAILABLE = 64; + { GetTimeFormat } + TIME_NOMINUTESORSECONDS = 1; + TIME_NOSECONDS = 2; + TIME_NOTIMEMARKER = 4; + TIME_FORCE24HOURFORMAT = 8; + { GetTimeZoneInformation } + { was #define dname def_expr } + + + const + TIME_ZONE_ID_INVALID = DWORD(-1); + TIME_ZONE_ID_UNKNOWN = 0; + TIME_ZONE_ID_STANDARD = 1; + TIME_ZONE_ID_DAYLIGHT = 2; + { GetWindowLong } + GWL_EXSTYLE = -(20); + GWL_STYLE = -(16); + GWL_WNDPROC = -(4); + GWL_HINSTANCE = -(6); + GWL_HWNDPARENT = -(8); + GWL_ID = -(12); + GWL_USERDATA = -(21); + DWL_DLGPROC = 4; + DWL_MSGRESULT = 0; + DWL_USER = 8; + { GlobalAlloc, GlobalFlags } + GMEM_FIXED = 0; + GMEM_MOVEABLE = 2; + GPTR = 64; + GHND = 66; + GMEM_DDESHARE = 8192; + GMEM_DISCARDABLE = 256; + GMEM_LOWER = 4096; + GMEM_NOCOMPACT = 16; + GMEM_NODISCARD = 32; + GMEM_NOT_BANKED = 4096; + GMEM_NOTIFY = 16384; + GMEM_SHARE = 8192; + GMEM_ZEROINIT = 64; + GMEM_DISCARDED = 16384; + GMEM_INVALID_HANDLE = 32768; + GMEM_LOCKCOUNT = 255; + { HeapAlloc, HeapReAlloc } + HEAP_GENERATE_EXCEPTIONS = 4; + HEAP_NO_SERIALIZE = 1; + HEAP_ZERO_MEMORY = 8; + STATUS_NO_MEMORY = $c0000017; + STATUS_ACCESS_VIOLATION = $c0000005; + HEAP_REALLOC_IN_PLACE_ONLY = 16; + { ImageList_Create } + ILC_COLOR = 0; + ILC_COLOR4 = 4; + ILC_COLOR8 = 8; + ILC_COLOR16 = 16; + ILC_COLOR24 = 24; + ILC_COLOR32 = 32; + ILC_COLORDDB = 254; + ILC_MASK = 1; + ILC_PALETTE = 2048; + { ImageList_Draw, ImageList_DrawEx } + ILD_BLEND25 = 2; + ILD_BLEND50 = 4; + ILD_SELECTED = 4; + ILD_BLEND = 4; + ILD_FOCUS = 2; + ILD_MASK = 16; + ILD_NORMAL = 0; + ILD_TRANSPARENT = 1; + CLR_NONE = $ffffffff; + CLR_DEFAULT = $ff000000; + CLR_INVALID = $FFFFFFFF; + { ImageList_LoadImage } + {LR_DEFAULTCOLOR = 0;already above } + LR_LOADFROMFILE = 16; + LR_LOADMAP3DCOLORS = 4096; + LR_LOADTRANSPARENT = 32; + {LR_MONOCHROME = 1;already above } + { ImmConfigureIME } + IME_CONFIG_GENERAL = 1; + IME_CONFIG_REGISTERWORD = 2; + IME_CONFIG_SELECTDICTIONARY = 3; + { ImmGetConversionList } + GCL_CONVERSION = 1; + GCL_REVERSECONVERSION = 2; + GCL_REVERSE_LENGTH = 3; + { ImmGetGuideLine } + GGL_LEVEL = 1; + GGL_INDEX = 2; + GGL_STRING = 3; + GGL_PRIVATE = 4; + GL_LEVEL_ERROR = 2; + GL_LEVEL_FATAL = 1; + GL_LEVEL_INFORMATION = 4; + GL_LEVEL_NOGUIDELINE = 0; + GL_LEVEL_WARNING = 3; + GL_ID_CANNOTSAVE = 17; + GL_ID_NOCONVERT = 32; + GL_ID_NODICTIONARY = 16; + GL_ID_NOMODULE = 1; + GL_ID_READINGCONFLICT = 35; + GL_ID_TOOMANYSTROKE = 34; + GL_ID_TYPINGERROR = 33; + GL_ID_UNKNOWN = 0; + GL_ID_INPUTREADING = 36; + GL_ID_INPUTRADICAL = 37; + GL_ID_INPUTCODE = 38; + GL_ID_CHOOSECANDIDATE = 40; + GL_ID_REVERSECONVERSION = 41; + { ImmGetProperty } + IGP_PROPERTY = 4; + IGP_CONVERSION = 8; + IGP_SENTENCE = 12; + IGP_UI = 16; + IGP_SETCOMPSTR = 20; + IGP_SELECT = 24; + IME_PROP_AT_CARET = 65536; + IME_PROP_SPECIAL_UI = 131072; + IME_PROP_CANDLIST_START_FROM_1 = 262144; + IME_PROP_UNICODE = 524288; + UI_CAP_2700 = 1; + UI_CAP_ROT90 = 2; + UI_CAP_ROTANY = 4; + SCS_CAP_COMPSTR = 1; + SCS_CAP_MAKEREAD = 2; + SELECT_CAP_CONVERSION = 1; + SELECT_CAP_SENTENCE = 2; + { ImmNotifyIME } + NI_CHANGECANDIDATELIST = 19; + NI_CLOSECANDIDATE = 17; + NI_COMPOSITIONSTR = 21; + NI_OPENCANDIDATE = 16; + NI_SELECTCANDIDATESTR = 18; + NI_SETCANDIDATE_PAGESIZE = 23; + NI_SETCANDIDATE_PAGESTART = 22; + CPS_CANCEL = 4; + CPS_COMPLETE = 1; + CPS_CONVERT = 2; + CPS_REVERT = 3; + { ImmSetCompositionString } + SCS_SETSTR = 9; + SCS_CHANGEATTR = 18; + SCS_CHANGECLAUSE = 36; + { ImmUnregisterWord } + IME_REGWORD_STYLE_EUDC = 1; + IME_REGWORD_STYLE_USER_FIRST = $80000000; + IME_REGWORD_STYLE_USER_LAST = -(1); + { InitCommonControlEx } //+commctrl + I_IMAGENONE = -2; // Desktop listview uses this same value for I_IMAGENONE when (_WIN32_IE >= 0x0501) + + ICC_LISTVIEW_CLASSES = $00000001; // listview, header + ICC_TREEVIEW_CLASSES = $00000002; // treeview, tooltips + ICC_BAR_CLASSES = $00000004; // toolbar, statusbar, trackbar, tooltips + ICC_TAB_CLASSES = $00000008; // tab, tooltips + ICC_UPDOWN_CLASS = $00000010; // updown + ICC_PROGRESS_CLASS = $00000020; // progress + ICC_WIN95_CLASSES = $0000007F; // ! was ICC_WIN95_CLASSES = $000000FF + ICC_DATE_CLASSES = $00000100; // month picker, date picker, time picker, updown + ICC_COOL_CLASSES = $00000400; // rebar (coolbar) control + ICC_INTERNET_CLASSES = $00000800; // IP Address control + ICC_TOOLTIP_CLASSES = $00001000; // Tooltip static & button + ICC_CAPEDIT_CLASS = $00002000; // All-caps edit control + ICC_FE_CLASSES = $40000000; // FE specific input subclasses + + { InitializeSecurityDescriptor } + SECURITY_DESCRIPTOR_REVISION = 1; + { IsTextUnicode } + IS_TEXT_UNICODE_ASCII16 = 1; + IS_TEXT_UNICODE_REVERSE_ASCII16 = 16; + IS_TEXT_UNICODE_STATISTICS = 2; + IS_TEXT_UNICODE_REVERSE_STATISTICS = 32; + IS_TEXT_UNICODE_CONTROLS = 4; + IS_TEXT_UNICODE_REVERSE_CONTROLS = 64; + IS_TEXT_UNICODE_SIGNATURE = 8; + IS_TEXT_UNICODE_REVERSE_SIGNATURE = 128; + IS_TEXT_UNICODE_ILLEGAL_CHARS = 256; + IS_TEXT_UNICODE_ODD_LENGTH = 512; + IS_TEXT_UNICODE_NULL_BYTES = 4096; + IS_TEXT_UNICODE_UNICODE_MASK = 15; + IS_TEXT_UNICODE_REVERSE_MASK = 240; + IS_TEXT_UNICODE_NOT_UNICODE_MASK = 3840; + IS_TEXT_UNICODE_NOT_ASCII_MASK = 61440; + { JournalPlaybackProc, KeyboardProc } + HC_GETNEXT = 1; + HC_SKIP = 2; + HC_SYSMODALOFF = 5; + HC_SYSMODALON = 4; + HC_NOREMOVE = 3; + { keybd_event } + KEYEVENTF_EXTENDEDKEY = 1; + KEYEVENTF_KEYUP = 2; + { LoadBitmap } + OBM_BTNCORNERS = 32758; + OBM_BTSIZE = 32761; + OBM_CHECK = 32760; + OBM_CHECKBOXES = 32759; + OBM_CLOSE = 32754; + OBM_COMBO = 32738; + OBM_DNARROW = 32752; + OBM_DNARROWD = 32742; + OBM_DNARROWI = 32736; + OBM_LFARROW = 32750; + OBM_LFARROWI = 32734; + OBM_LFARROWD = 32740; + OBM_MNARROW = 32739; + OBM_OLD_CLOSE = 32767; + OBM_OLD_DNARROW = 32764; + OBM_OLD_LFARROW = 32762; + OBM_OLD_REDUCE = 32757; + OBM_OLD_RESTORE = 32755; + OBM_OLD_RGARROW = 32763; + OBM_OLD_UPARROW = 32765; + OBM_OLD_ZOOM = 32756; + OBM_REDUCE = 32749; + OBM_REDUCED = 32746; + OBM_RESTORE = 32747; + OBM_RESTORED = 32744; + OBM_RGARROW = 32751; + OBM_RGARROWD = 32741; + OBM_RGARROWI = 32735; + OBM_SIZE = 32766; + OBM_UPARROW = 32753; + OBM_UPARROWD = 32743; + OBM_UPARROWI = 32737; + OBM_ZOOM = 32748; + OBM_ZOOMD = 32745; + { LoadLibraryEx } + DONT_RESOLVE_DLL_REFERENCES = 1; + LOAD_LIBRARY_AS_DATAFILE = 2; + LOAD_WITH_ALTERED_SEARCH_PATH = 8; + { LocalAlloc, LocalFlags } + LPTR = 64; + LHND = 66; + NONZEROLHND = 2; + NONZEROLPTR = 0; + LMEM_NONZEROLHND = 2; + LMEM_NONZEROLPTR = 0; + LMEM_FIXED = 0; + LMEM_MOVEABLE = 2; + LMEM_NOCOMPACT = 16; + LMEM_NODISCARD = 32; + LMEM_ZEROINIT = 64; + LMEM_MODIFY = 128; + LMEM_LOCKCOUNT = 255; + LMEM_DISCARDABLE = 3840; + LMEM_DISCARDED = 16384; + LMEM_INVALID_HANDLE = 32768; + LMEM_VALID_FLAGS=$0F72; //+winbase + { MessageBeep, MessageBox } + MB_USERICON = $80; + MB_ICONASTERISK = $40; + MB_ICONEXCLAMATION = $30; + MB_ICONWARNING = $30; + MB_ICONERROR = $10; + MB_ICONHAND = $10; + MB_ICONQUESTION = $20; + MB_OK = 0; + MB_ABORTRETRYIGNORE = $2; + MB_APPLMODAL = 0; + MB_DEFAULT_DESKTOP_ONLY = $20000; + MB_HELP = $4000; + MB_RIGHT = $80000; + MB_RTLREADING = $100000; + MB_TOPMOST = $40000; + MB_DEFBUTTON1 = 0; + MB_DEFBUTTON2 = $100; + MB_DEFBUTTON3 = $200; + MB_DEFBUTTON4 = $300; + MB_ICONINFORMATION = $40; + MB_ICONSTOP = $10; + MB_OKCANCEL = $1; + MB_RETRYCANCEL = $5; + MB_SERVICE_NOTIFICATION = $40000; + MB_SETFOREGROUND = $10000; + MB_SYSTEMMODAL = $1000; + MB_TASKMODAL = $2000; + MB_YESNO = $4; + MB_YESNOCANCEL = $3; + IDABORT = 3; + IDCANCEL = 2; + IDCLOSE = 8; + IDHELP = 9; + IDIGNORE = 5; + IDNO = 7; + IDOK = 1; + IDRETRY = 4; + IDYES = 6; + { MessageProc } + MSGF_DIALOGBOX = 0; + MSGF_MENU = 2; + MSGF_NEXTWINDOW = 6; + MSGF_SCROLLBAR = 5; + MSGF_MAINLOOP = 8; + MSGF_USER = 4096; + { ModifyWorldTransform } + MWT_IDENTITY = 1; + MWT_LEFTMULTIPLY = 2; + MWT_RIGHTMULTIPLY = 3; + { mouse_event } + MOUSEEVENTF_ABSOLUTE = 32768; + MOUSEEVENTF_MOVE = 1; + MOUSEEVENTF_LEFTDOWN = 2; + MOUSEEVENTF_LEFTUP = 4; + MOUSEEVENTF_RIGHTDOWN = 8; + MOUSEEVENTF_RIGHTUP = 16; + MOUSEEVENTF_MIDDLEDOWN = 32; + MOUSEEVENTF_MIDDLEUP = 64; + { MoveFileEx } + MOVEFILE_REPLACE_EXISTING = 1; + MOVEFILE_COPY_ALLOWED = 2; + MOVEFILE_DELAY_UNTIL_REBOOT = 4; + { MsgWaitForMultipleObjects, WaitForMultipleObjectsEx } + WAIT_OBJECT_0 = 0; + WAIT_ABANDONED_0 = $80; + WAIT_TIMEOUT = $102; + WAIT_IO_COMPLETION = $c0; + WAIT_ABANDONED = $80; + WAIT_FAILED = $ffffffff; + MAXIMUM_WAIT_OBJECTS = $40; //winnt + MAXIMUM_SUSPEND_COUNT = MAXCHAR; //~winnt + { MultiByteToWideChar } + MB_PRECOMPOSED = 1; + MB_COMPOSITE = 2; + MB_ERR_INVALID_CHARS = 8; + MB_USEGLYPHCHARS = 4; + { PostMessage } + { was #define dname def_expr } + HWND_BROADCAST = HWND($FFFF); + + const + { PropertySheet } + IS_PSREBOOTSYSTEM = 3; + IS_PSRESTARTWINDOWS = 2; + { PropSheetPageProc } + PSPCB_CREATE = 2; + PSPCB_RELEASE = 1; + { PurgeComm } + PURGE_TXABORT = 1; + PURGE_RXABORT = 2; + PURGE_TXCLEAR = 4; + PURGE_RXCLEAR = 8; + { QueryServiceObjectSecurity } + OWNER_SECURITY_INFORMATION = $1; + GROUP_SECURITY_INFORMATION = $2; + DACL_SECURITY_INFORMATION = $4; + SACL_SECURITY_INFORMATION = $8; + { RedrawWindow } + RDW_ERASE = 4; + RDW_FRAME = 1024; + RDW_INTERNALPAINT = 2; + RDW_INVALIDATE = 1; + RDW_NOERASE = 32; + RDW_NOFRAME = 2048; + RDW_NOINTERNALPAINT = 16; + RDW_VALIDATE = 8; + RDW_ERASENOW = 512; + RDW_UPDATENOW = 256; + RDW_ALLCHILDREN = 128; + RDW_NOCHILDREN = 64; + { RegCreateKey } + HKEY_CLASSES_ROOT = HKEY($80000000); + HKEY_CURRENT_USER = HKEY($80000001); + HKEY_LOCAL_MACHINE = HKEY($80000002); + HKEY_USERS = HKEY($80000003); + HKEY_PERFORMANCE_DATA = HKEY($80000004); + HKEY_CURRENT_CONFIG = HKEY($80000005); + HKEY_DYN_DATA = HKEY($80000006); + + { RegCreateKeyEx } + + const + REG_OPTION_VOLATILE = $1; + REG_OPTION_NON_VOLATILE = 0; + REG_CREATED_NEW_KEY = $1; + REG_OPENED_EXISTING_KEY = $2; + { RegEnumValue } + REG_BINARY = 3; + REG_DWORD = 4; + REG_DWORD_LITTLE_ENDIAN = 4; + REG_DWORD_BIG_ENDIAN = 5; + REG_EXPAND_SZ = 2; + REG_FULL_RESOURCE_DESCRIPTOR = 9; + REG_LINK = 6; + REG_MULTI_SZ = 7; + REG_NONE = 0; + REG_RESOURCE_LIST = 8; + REG_RESOURCE_REQUIREMENTS_LIST = 10; + REG_SZ = 1; + { RegisterHotKey } + MOD_ALT = 1; + MOD_CONTROL = 2; + MOD_SHIFT = 4; + MOD_WIN = 8; + IDHOT_SNAPDESKTOP = -(2); + IDHOT_SNAPWINDOW = -(1); + { RegNotifyChangeKeyValue } + REG_NOTIFY_CHANGE_NAME = $1; + REG_NOTIFY_CHANGE_ATTRIBUTES = $2; + REG_NOTIFY_CHANGE_LAST_SET = $4; + REG_NOTIFY_CHANGE_SECURITY = $8; + { ScrollWindowEx } + SW_ERASE = 4; + SW_INVALIDATE = 2; + SW_SCROLLCHILDREN = 1; + { SendMessageTimeout } + SMTO_ABORTIFHUNG = 2; + SMTO_BLOCK = 1; + SMTO_NORMAL = 0; + { SetBkMode } + OPAQUE = 2; + TRANSPARENT = 1; + { SetDebugErrorLevel } + SLE_ERROR = 1; + SLE_MINORERROR = 2; + SLE_WARNING = 3; + { SetErrorMode } + SEM_FAILCRITICALERRORS = 1; + SEM_NOALIGNMENTFAULTEXCEPT = 4; + SEM_NOGPFAULTERRORBOX = 2; + SEM_NOOPENFILEERRORBOX = 32768; + { SetICMMode } + ICM_ON = 2; + ICM_OFF = 1; + ICM_QUERY = 3; + { SetJob } + { Locale Information } + LOCALE_ILANGUAGE = 1; + LOCALE_SLANGUAGE = 2; + LOCALE_SENGLANGUAGE = 4097; + LOCALE_SABBREVLANGNAME = 3; + LOCALE_SNATIVELANGNAME = 4; + LOCALE_ICOUNTRY = 5; + LOCALE_SCOUNTRY = 6; + LOCALE_SENGCOUNTRY = 4098; + LOCALE_SABBREVCTRYNAME = 7; + LOCALE_SNATIVECTRYNAME = 8; + LOCALE_IDEFAULTLANGUAGE = 9; + LOCALE_IDEFAULTCOUNTRY = 10; + LOCALE_IDEFAULTANSICODEPAGE = 4100; + LOCALE_IDEFAULTCODEPAGE = 11; + LOCALE_SLIST = 12; + LOCALE_IMEASURE = 13; + LOCALE_SDECIMAL = 14; + LOCALE_STHOUSAND = 15; + LOCALE_SGROUPING = 16; + LOCALE_IDIGITS = 17; + LOCALE_ILZERO = 18; + LOCALE_INEGNUMBER = 4112; + LOCALE_SCURRENCY = 20; + LOCALE_SMONDECIMALSEP = 22; + LOCALE_SMONTHOUSANDSEP = 23; + LOCALE_SMONGROUPING = 24; + LOCALE_ICURRDIGITS = 25; + LOCALE_ICURRENCY = 27; + LOCALE_INEGCURR = 28; + LOCALE_SDATE = 29; + LOCALE_STIME = 30; + LOCALE_STIMEFORMAT = 4099; + LOCALE_SSHORTDATE = 31; + LOCALE_SLONGDATE = 32; + LOCALE_IDATE = 33; + LOCALE_ILDATE = 34; + LOCALE_ITIME = 35; + LOCALE_ITLZERO = 37; + LOCALE_IDAYLZERO = 38; + LOCALE_IMONLZERO = 39; + LOCALE_S1159 = 40; + LOCALE_S2359 = 41; + LOCALE_ICALENDARTYPE = 4105; + LOCALE_IOPTIONALCALENDAR = 4107; + LOCALE_IFIRSTDAYOFWEEK = 4108; + LOCALE_IFIRSTWEEKOFYEAR = 4109; + LOCALE_SDAYNAME1 = 42; + LOCALE_SDAYNAME2 = 43; + LOCALE_SDAYNAME3 = 44; + LOCALE_SDAYNAME4 = 45; + LOCALE_SDAYNAME5 = 46; + LOCALE_SDAYNAME6 = 47; + LOCALE_SDAYNAME7 = 48; + LOCALE_SABBREVDAYNAME1 = 49; + LOCALE_SABBREVDAYNAME2 = 50; + LOCALE_SABBREVDAYNAME3 = 51; + LOCALE_SABBREVDAYNAME4 = 52; + LOCALE_SABBREVDAYNAME5 = 53; + LOCALE_SABBREVDAYNAME6 = 54; + LOCALE_SABBREVDAYNAME7 = 55; + LOCALE_SMONTHNAME1 = 56; + LOCALE_SMONTHNAME2 = 57; + LOCALE_SMONTHNAME3 = 58; + LOCALE_SMONTHNAME4 = 59; + LOCALE_SMONTHNAME5 = 60; + LOCALE_SMONTHNAME6 = 61; + LOCALE_SMONTHNAME7 = 62; + LOCALE_SMONTHNAME8 = 63; + LOCALE_SMONTHNAME9 = 64; + LOCALE_SMONTHNAME10 = 65; + LOCALE_SMONTHNAME11 = 66; + LOCALE_SMONTHNAME12 = 67; + LOCALE_SMONTHNAME13 = 4110; + LOCALE_SABBREVMONTHNAME1 = 68; + LOCALE_SABBREVMONTHNAME2 = 69; + LOCALE_SABBREVMONTHNAME3 = 70; + LOCALE_SABBREVMONTHNAME4 = 71; + LOCALE_SABBREVMONTHNAME5 = 72; + LOCALE_SABBREVMONTHNAME6 = 73; + LOCALE_SABBREVMONTHNAME7 = 74; + LOCALE_SABBREVMONTHNAME8 = 75; + LOCALE_SABBREVMONTHNAME9 = 76; + LOCALE_SABBREVMONTHNAME10 = 77; + LOCALE_SABBREVMONTHNAME11 = 78; + LOCALE_SABBREVMONTHNAME12 = 79; + LOCALE_SABBREVMONTHNAME13 = 4111; + LOCALE_SPOSITIVESIGN = 80; + LOCALE_SNEGATIVESIGN = 81; + LOCALE_IPOSSIGNPOSN = 82; + LOCALE_INEGSIGNPOSN = 83; + LOCALE_IPOSSYMPRECEDES = 84; + LOCALE_IPOSSEPBYSPACE = 85; + LOCALE_INEGSYMPRECEDES = 86; + LOCALE_INEGSEPBYSPACE = 87; + LOCALE_NOUSEROVERRIDE = $80000000; + LOCALE_USE_CP_ACP = $40000000; // use the system ACP + LOCALE_RETURN_NUMBER = $20000000; // return number instead + { Calendar Type Information } + CAL_ICALINTVALUE = 1; + CAL_IYEAROFFSETRANGE = 3; + CAL_SABBREVDAYNAME1 = 14; + CAL_SABBREVDAYNAME2 = 15; + CAL_SABBREVDAYNAME3 = 16; + CAL_SABBREVDAYNAME4 = 17; + CAL_SABBREVDAYNAME5 = 18; + CAL_SABBREVDAYNAME6 = 19; + CAL_SABBREVDAYNAME7 = 20; + CAL_SABBREVMONTHNAME1 = 34; + CAL_SABBREVMONTHNAME2 = 35; + CAL_SABBREVMONTHNAME3 = 36; + CAL_SABBREVMONTHNAME4 = 37; + CAL_SABBREVMONTHNAME5 = 38; + CAL_SABBREVMONTHNAME6 = 39; + CAL_SABBREVMONTHNAME7 = 40; + CAL_SABBREVMONTHNAME8 = 41; + CAL_SABBREVMONTHNAME9 = 42; + CAL_SABBREVMONTHNAME10 = 43; + CAL_SABBREVMONTHNAME11 = 44; + CAL_SABBREVMONTHNAME12 = 45; + CAL_SABBREVMONTHNAME13 = 46; + CAL_SCALNAME = 2; + CAL_SDAYNAME1 = 7; + CAL_SDAYNAME2 = 8; + CAL_SDAYNAME3 = 9; + CAL_SDAYNAME4 = 10; + CAL_SDAYNAME5 = 11; + CAL_SDAYNAME6 = 12; + CAL_SDAYNAME7 = 13; + CAL_SERASTRING = 4; + CAL_SLONGDATE = 6; + CAL_SMONTHNAME1 = 21; + CAL_SMONTHNAME2 = 22; + CAL_SMONTHNAME3 = 23; + CAL_SMONTHNAME4 = 24; + CAL_SMONTHNAME5 = 25; + CAL_SMONTHNAME6 = 26; + CAL_SMONTHNAME7 = 27; + CAL_SMONTHNAME8 = 28; + CAL_SMONTHNAME9 = 29; + CAL_SMONTHNAME10 = 30; + CAL_SMONTHNAME11 = 31; + CAL_SMONTHNAME12 = 32; + CAL_SMONTHNAME13 = 33; + CAL_SSHORTDATE = 5; + { SetProcessWorkingSetSize } + PROCESS_SET_QUOTA = 256; + { SetPrinter } + { SetService } + { SetStretchBltMode } + BLACKONWHITE = 1; + COLORONCOLOR = 3; + HALFTONE = 4; + STRETCH_ANDSCANS = 1; + STRETCH_DELETESCANS = 3; + STRETCH_HALFTONE = 4; + STRETCH_ORSCANS = 2; + WHITEONBLACK = 2; + { SetSystemCursor } + OCR_NORMAL = 32512; + OCR_IBEAM = 32513; + OCR_WAIT = 32514; + OCR_CROSS = 32515; + OCR_UP = 32516; + OCR_SIZE = 32640; + OCR_ICON = 32641; + OCR_SIZENWSE = 32642; + OCR_SIZENESW = 32643; + OCR_SIZEWE = 32644; + OCR_SIZENS = 32645; + OCR_SIZEALL = 32646; + OCR_NO = 32648; + OCR_APPSTARTING = 32650; + { SetTapePosition } + TAPE_ABSOLUTE_BLOCK = $1; + TAPE_LOGICAL_BLOCK = $2; + TAPE_REWIND = 0; + TAPE_SPACE_END_OF_DATA = $4; + TAPE_SPACE_FILEMARKS = $6; + TAPE_SPACE_RELATIVE_BLOCKS = $5; + TAPE_SPACE_SEQUENTIAL_FMKS = $7; + TAPE_SPACE_SEQUENTIAL_SMKS = $9; + TAPE_SPACE_SETMARKS = $8; + { SetUnhandledExceptionFilter } + EXCEPTION_EXECUTE_HANDLER = 1; + EXCEPTION_CONTINUE_EXECUTION = -(1); + EXCEPTION_CONTINUE_SEARCH = 0; + { SetWindowPos, DeferWindowPos } + HWND_BOTTOM = HWND(1); + HWND_NOTOPMOST = HWND(-(2)); + HWND_TOP = HWND(0); + HWND_TOPMOST = HWND(-(1)); + + + const + SWP_DRAWFRAME = 32; + SWP_FRAMECHANGED = 32; + SWP_HIDEWINDOW = 128; + SWP_NOACTIVATE = 16; + SWP_NOCOPYBITS = 256; + SWP_NOMOVE = 2; + SWP_NOSIZE = 1; + SWP_NOREDRAW = 8; + SWP_NOZORDER = 4; + SWP_SHOWWINDOW = 64; + SWP_NOOWNERZORDER = 512; + SWP_NOREPOSITION = 512; + SWP_NOSENDCHANGING = 1024; + { SHAddToRecentDocs } + { SHAppBarMessage } + { SHChangeNotify } + { ShellProc } + HSHELL_ACTIVATESHELLWINDOW = 3; + HSHELL_GETMINRECT = 5; + HSHELL_LANGUAGE = 8; + HSHELL_REDRAW = 6; + HSHELL_TASKMAN = 7; + HSHELL_WINDOWACTIVATED = 4; + HSHELL_WINDOWCREATED = 1; + HSHELL_WINDOWDESTROYED = 2; + { SHGetFileInfo } + // supported SHGetFileInfo input flags + SHGFI_ICON = $000000100; // get icon + SHGFI_DISPLAYNAME = $000000200; // get display name + SHGFI_TYPENAME = $000000400; // get type name + SHGFI_ATTRIBUTES = $000000800; // get attributes + SHGFI_SYSICONINDEX = $000004000; // get system icon index + SHGFI_LARGEICON = $000000000; // get large icon + SHGFI_SMALLICON = $000000001; // get small icon + SHGFI_USEFILEATTRIBUTES = $000000010; // use passed dwFileAttribute + SHGFI_PIDL = $000000008; // pszPath is a pidl +// supported SHGetFileInfo output attributes + SFGAO_LINK = $00010000; // Shortcut (link) + SFGAO_READONLY = $00040000; // read-only + SFGAO_FOLDER = $20000000; // It's a folder. + { SHGetSpecialFolderLocation } + { ShowWindow } + SW_HIDE = 0; + SW_MAXIMIZE = 3; + SW_MINIMIZE = 6; + SW_NORMAL = 1; + SW_RESTORE = 9; + SW_SHOW = 5; + SW_SHOWDEFAULT = 10; + SW_SHOWMAXIMIZED = 3; + SW_SHOWMINIMIZED = 2; + SW_SHOWMINNOACTIVE = 7; + SW_SHOWNA = 8; + SW_SHOWNOACTIVATE = 4; + SW_SHOWNORMAL = 1; + WPF_RESTORETOMAXIMIZED = 2; + WPF_SETMINPOSITION = 1; + { SID } + //////////////////////////////////////////////////////////////////////// + // // + // Security Id (SID) // + // // + //////////////////////////////////////////////////////////////////////// + // + // + // Pictorially the structure of an SID is as follows: + // + // 1 1 1 1 1 1 + // 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 + // +---------------------------------------------------------------+ + // | SubAuthorityCount |Reserved1 (SBZ)| Revision | + // +---------------------------------------------------------------+ + // | IdentifierAuthority[0] | + // +---------------------------------------------------------------+ + // | IdentifierAuthority[1] | + // +---------------------------------------------------------------+ + // | IdentifierAuthority[2] | + // +---------------------------------------------------------------+ + // | | + // +- - - - - - - - SubAuthority[] - - - - - - - - -+ + // | | + // +---------------------------------------------------------------+ + // + // + SID_REVISION =1; // Current revision level + SID_MAX_SUB_AUTHORITIES = 15; + SID_RECOMMENDED_SUB_AUTHORITIES = 1; // Will change to around 6 + // in a future release. + + + { Sleep } + INFINITE = $FFFFFFFF; + { SystemParametersInfo } + SPI_GETACCESSTIMEOUT = 60; + SPI_GETANIMATION = 72; + SPI_GETBEEP = 1; + SPI_GETBORDER = 5; + SPI_GETDEFAULTINPUTLANG = 89; + SPI_GETDRAGFULLWINDOWS = 38; + SPI_GETFASTTASKSWITCH = 35; + SPI_GETFILTERKEYS = 50; + SPI_GETFONTSMOOTHING = 74; + SPI_GETGRIDGRANULARITY = 18; + SPI_GETHIGHCONTRAST = 66; + SPI_GETICONMETRICS = 45; + SPI_GETICONTITLELOGFONT = 31; + SPI_GETICONTITLEWRAP = 25; + SPI_GETKEYBOARDDELAY = 22; + SPI_GETKEYBOARDPREF = 68; + SPI_GETKEYBOARDSPEED = 10; + SPI_GETLOWPOWERACTIVE = 83; + SPI_GETLOWPOWERTIMEOUT = 79; + SPI_GETMENUDROPALIGNMENT = 27; + SPI_GETMINIMIZEDMETRICS = 43; + SPI_GETMOUSE = 3; + SPI_GETMOUSEKEYS = 54; + SPI_GETMOUSETRAILS = 94; + SPI_GETNONCLIENTMETRICS = 41; + SPI_GETPOWEROFFACTIVE = 84; + SPI_GETPOWEROFFTIMEOUT = 80; + SPI_GETSCREENREADER = 70; + SPI_GETSCREENSAVEACTIVE = 16; + SPI_GETSCREENSAVETIMEOUT = 14; + SPI_GETSERIALKEYS = 62; + SPI_GETSHOWSOUNDS = 56; + SPI_GETSOUNDSENTRY = 64; + SPI_GETSTICKYKEYS = 58; + SPI_GETTOGGLEKEYS = 52; + SPI_GETWINDOWSEXTENSION = 92; + SPI_GETWORKAREA = 48; + SPI_ICONHORIZONTALSPACING = 13; + SPI_ICONVERTICALSPACING = 24; + SPI_LANGDRIVER = 12; + SPI_SCREENSAVERRUNNING = 97; + SPI_SETACCESSTIMEOUT = 61; + SPI_SETANIMATION = 73; + SPI_SETBEEP = 2; + SPI_SETBORDER = 6; + SPI_SETDEFAULTINPUTLANG = 90; + SPI_SETDESKPATTERN = 21; + SPI_SETDESKWALLPAPER = 20; + SPI_SETDOUBLECLICKTIME = 32; + SPI_SETDOUBLECLKHEIGHT = 30; + SPI_SETDOUBLECLKWIDTH = 29; + SPI_SETDRAGFULLWINDOWS = 37; + SPI_SETDRAGHEIGHT = 77; + SPI_SETDRAGWIDTH = 76; + SPI_SETFASTTASKSWITCH = 36; + SPI_SETFILTERKEYS = 51; + SPI_SETFONTSMOOTHING = 75; + SPI_SETGRIDGRANULARITY = 19; + SPI_SETHANDHELD = 78; + SPI_SETHIGHCONTRAST = 67; + SPI_SETICONMETRICS = 46; + SPI_SETICONTITLELOGFONT = 34; + SPI_SETICONTITLEWRAP = 26; + SPI_SETKEYBOARDDELAY = 23; + SPI_SETKEYBOARDPREF = 69; + SPI_SETKEYBOARDSPEED = 11; + SPI_SETLANGTOGGLE = 91; + SPI_SETLOWPOWERACTIVE = 85; + SPI_SETLOWPOWERTIMEOUT = 81; + SPI_SETMENUDROPALIGNMENT = 28; + SPI_SETMINIMIZEDMETRICS = 44; + SPI_SETMOUSE = 4; + SPI_SETMOUSEBUTTONSWAP = 33; + SPI_SETMOUSEKEYS = 55; + SPI_SETMOUSETRAILS = 93; + SPI_SETNONCLIENTMETRICS = 42; + SPI_SETPENWINDOWS = 49; + SPI_SETPOWEROFFACTIVE = 86; + SPI_SETPOWEROFFTIMEOUT = 82; + SPI_SETSCREENREADER = 71; + SPI_SETSCREENSAVEACTIVE = 17; + SPI_SETSCREENSAVETIMEOUT = 15; + SPI_SETSERIALKEYS = 63; + SPI_SETSHOWSOUNDS = 57; + SPI_SETSOUNDSENTRY = 65; + SPI_SETSTICKYKEYS = 59; + SPI_SETTOGGLEKEYS = 53; + SPI_SETWORKAREA = 47; + SPI_SETBATTERYIDLETIMEOUT = 251; + SPI_GETBATTERYIDLETIMEOUT = 252; + SPI_SETEXTERNALIDLETIMEOUT = 253; + SPI_GETEXTERNALIDLETIMEOUT = 254; + SPI_SETWAKEUPIDLETIMEOUT = 255; + SPI_GETWAKEUPIDLETIMEOUT = 256; + SPI_GETPLATFORMTYPE = 257; + SPI_GETOEMINFO = 258; + + SPIF_UPDATEINIFILE = 1; + SPIF_SENDWININICHANGE = 2; + SPIF_SENDCHANGE = 2; + { TrackPopupMenu, TrackPopMenuEx } + TPM_CENTERALIGN = $4; + TPM_LEFTALIGN = 0; + TPM_RIGHTALIGN = $8; + TPM_LEFTBUTTON = 0; + TPM_RIGHTBUTTON = $2; + TPM_HORIZONTAL = 0; + TPM_BOTTOMALIGN = $20; + TPM_VERTICAL = $40; + { TranslateCharsetInfo } + TCI_SRCCHARSET = 1; + TCI_SRCCODEPAGE = 2; + TCI_SRCFONTSIG = 3; + { WideCharToMultiByte } + WC_COMPOSITECHECK = 512; + WC_DISCARDNS = 16; + WC_SEPCHARS = 32; + WC_DEFAULTCHAR = 64; + { WinHelp } + HELP_COMMAND = $102; + HELP_CONTENTS = $3; + HELP_CONTEXT = $1; + HELP_CONTEXTPOPUP = $8; + HELP_FORCEFILE = $9; + HELP_HELPONHELP = $4; + HELP_INDEX = $3; + HELP_KEY = $101; + HELP_MULTIKEY = $201; + HELP_PARTIALKEY = $105; + HELP_QUIT = $2; + HELP_SETCONTENTS = $5; + HELP_SETINDEX = $5; + HELP_CONTEXTMENU = $a; + HELP_FINDER = $b; + HELP_WM_HELP = $c; + HELP_TCARD = $8000; + HELP_TCARD_DATA = $10; + HELP_TCARD_OTHER_CALLER = $11; + { WNetAddConnectino2 } + CONNECT_UPDATE_PROFILE = 1; + { WNetConnectionDialog, WNetDisconnectDialog, WNetOpenEnum } + RESOURCETYPE_DISK = 1; + RESOURCETYPE_PRINT = 2; + RESOURCETYPE_ANY = 0; + RESOURCE_CONNECTED = 1; + RESOURCE_GLOBALNET = 2; + RESOURCE_REMEMBERED = 3; + RESOURCEUSAGE_CONNECTABLE = 1; + RESOURCEUSAGE_CONTAINER = 2; + { WNetGetResourceInformation, WNetGetResourceParent } + WN_BAD_NETNAME = $43; + WN_EXTENDED_ERROR = $4b8; + WN_MORE_DATA = $ea; + WN_NO_NETWORK = $4c6; + WN_SUCCESS = 0; + WN_ACCESS_DENIED = $5; + WN_BAD_PROVIDER = $4b4; + WN_NOT_AUTHENTICATED = $4dc; + { WNetGetUniversalName } + UNIVERSAL_NAME_INFO_LEVEL = 1; + REMOTE_NAME_INFO_LEVEL = 2; + { GetExitCodeThread } + STILL_ACTIVE = $103; + + { kfuncs consts } //+kfuncs + + {$ifdef CPUARM} + PUserKData = $FFFFC800; + {$else} + PUserKData = $00005800; + {$endif CPUARM} + + EVENT_PULSE = 1; + EVENT_RESET = 2; + EVENT_SET = 3; + + SYSHANDLE_OFFSET = $004; + NUM_SYS_HANDLES = 32; + SYS_HANDLE_BASE = 64; + SH_WIN32 = 0; + SH_CURTHREAD = 1; + SH_CURPROC = 2; + SH_LAST_NOTIFY = 16; // Last set notified on Thread/Process Termination + SH_GDI = 16; + SH_WMGR = 17; + SH_WNET = 18; // WNet APIs for network redirector + SH_COMM = 19; // Communications not "COM" + SH_FILESYS_APIS = 20; // File system APIS + SH_SHELL = 21; + SH_DEVMGR_APIS = 22; // File system device manager + SH_TAPI = 23; + SH_PATCHER = 24; + SH_SERVICES = 26; + SH_LASTRESERVED = 26; + + TLS_FUNCALLOC = 0; + TLS_FUNCFREE = 1; + + { COMMPROP structure } + SP_SERIALCOMM = $1; + BAUD_075 = $1; + BAUD_110 = $2; + BAUD_134_5 = $4; + BAUD_150 = $8; + BAUD_300 = $10; + BAUD_600 = $20; + BAUD_1200 = $40; + BAUD_1800 = $80; + BAUD_2400 = $100; + BAUD_4800 = $200; + BAUD_7200 = $400; + BAUD_9600 = $800; + BAUD_14400 = $1000; + BAUD_19200 = $2000; + BAUD_38400 = $4000; + BAUD_56K = $8000; + BAUD_57600 = $40000; + BAUD_115200 = $20000; + BAUD_128K = $10000; + BAUD_USER = $10000000; + PST_FAX = $21; + PST_LAT = $101; + PST_MODEM = $6; + PST_NETWORK_BRIDGE = $100; + PST_PARALLELPORT = $2; + PST_RS232 = $1; + PST_RS422 = $3; + PST_RS423 = $4; + PST_RS449 = $5; + PST_SCANNER = $22; + PST_TCPIP_TELNET = $102; + PST_UNSPECIFIED = 0; + PST_X25 = $103; + PCF_16BITMODE = $200; + PCF_DTRDSR = $1; + PCF_INTTIMEOUTS = $80; + PCF_PARITY_CHECK = $8; + PCF_RLSD = $4; + PCF_RTSCTS = $2; + PCF_SETXCHAR = $20; + PCF_SPECIALCHARS = $100; + PCF_TOTALTIMEOUTS = $40; + PCF_XONXOFF = $10; + SP_BAUD = $2; + SP_DATABITS = $4; + SP_HANDSHAKING = $10; + SP_PARITY = $1; + SP_PARITY_CHECK = $20; + SP_RLSD = $40; + SP_STOPBITS = $8; + DATABITS_5 = 1; + DATABITS_6 = 2; + DATABITS_7 = 4; + DATABITS_8 = 8; + DATABITS_16 = 16; + DATABITS_16X = 32; + STOPBITS_10 = 1; + STOPBITS_15 = 2; + STOPBITS_20 = 4; + PARITY_NONE = 256; + PARITY_ODD = 512; + PARITY_EVEN = 1024; + PARITY_MARK = 2048; + PARITY_SPACE = 4096; + COMMPROP_INITIALIZED = $e73cf52e; + { DCB structure } + CBR_110 = 110; + CBR_300 = 300; + CBR_600 = 600; + CBR_1200 = 1200; + CBR_2400 = 2400; + CBR_4800 = 4800; + CBR_9600 = 9600; + CBR_14400 = 14400; + CBR_19200 = 19200; + CBR_38400 = 38400; + CBR_56000 = 56000; + CBR_57600 = 57600; + CBR_115200 = 115200; + CBR_128000 = 128000; + CBR_256000 = 256000; + DTR_CONTROL_DISABLE = 0; + DTR_CONTROL_ENABLE = 1; + DTR_CONTROL_HANDSHAKE = 2; + RTS_CONTROL_DISABLE = 0; + RTS_CONTROL_ENABLE = 1; + RTS_CONTROL_HANDSHAKE = 2; + RTS_CONTROL_TOGGLE = 3; + EVENPARITY = 2; + MARKPARITY = 3; + NOPARITY = 0; + ODDPARITY = 1; + SPACEPARITY = 4; + ONESTOPBIT = 0; + ONE5STOPBITS = 1; + TWOSTOPBITS = 2; + { Debugging events } + CREATE_PROCESS_DEBUG_EVENT = 3; + CREATE_THREAD_DEBUG_EVENT = 2; + EXCEPTION_DEBUG_EVENT = 1; + EXIT_PROCESS_DEBUG_EVENT = 5; + EXIT_THREAD_DEBUG_EVENT = 4; + LOAD_DLL_DEBUG_EVENT = 6; + OUTPUT_DEBUG_STRING_EVENT = 8; + UNLOAD_DLL_DEBUG_EVENT = 7; + RIP_EVENT = 9; + { PROCESS_HEAP_ENTRY structure } + PROCESS_HEAP_REGION = 1; + PROCESS_HEAP_UNCOMMITTED_RANGE = 2; + PROCESS_HEAP_ENTRY_BUSY = 4; + PROCESS_HEAP_ENTRY_MOVEABLE = 16; + PROCESS_HEAP_ENTRY_DDESHARE = 32; + { Win32s } + HINSTANCE_ERROR = 32; + { WIN32_STREAM_ID structure } + BACKUP_DATA = 1; + BACKUP_EA_DATA = 2; + BACKUP_SECURITY_DATA = 3; + BACKUP_ALTERNATE_DATA = 4; + BACKUP_LINK = 5; + STREAM_MODIFIED_WHEN_READ = 1; + STREAM_CONTAINS_SECURITY = 2; + { STARTUPINFO structure } + STARTF_USESHOWWINDOW = 1; + STARTF_USEPOSITION = 4; + STARTF_USESIZE = 2; + STARTF_USECOUNTCHARS = 8; + STARTF_USEFILLATTRIBUTE = 16; + STARTF_RUNFULLSCREEN = 32; + STARTF_FORCEONFEEDBACK = 64; + STARTF_FORCEOFFFEEDBACK = 128; + STARTF_USESTDHANDLES = 256; + STARTF_USEHOTKEY = 512; + { OSVERSIONINFO structure } + VER_PLATFORM_WIN32s = 0; + VER_PLATFORM_WIN32_WINDOWS = 1; + VER_PLATFORM_WIN32_NT = 2; + { More versions } + VER_SERVER_NT = $80000000; //winnt + VER_WORKSTATION_NT = $40000000; //winnt + VER_SUITE_SMALLBUSINESS = $00000001; //winnt + VER_SUITE_ENTERPRISE = $00000002; //winnt + VER_SUITE_BACKOFFICE = $00000004; //winnt + VER_SUITE_COMMUNICATIONS = $00000008; //winnt + VER_SUITE_TERMINAL = $00000010; //winnt + VER_SUITE_SMALLBUSINESS_RESTRICTED = $00000020; //winnt + VER_SUITE_EMBEDDEDNT = $00000040; + VER_SUITE_DATACENTER = $00000080; + VER_SUITE_SINGLEUSERTS = $00000100; + VER_SUITE_PERSONAL = $00000200; + VER_SUITE_BLADE = $00000400; + VER_SUITE_EMBEDDED_RESTRICTED = $00000800; + { PROPSHEETPAGE structure } + MAXPROPPAGES = 100; + PSP_DEFAULT = 0; + PSP_DLGINDIRECT = 1; + PSP_HASHELP = 32; + PSP_USECALLBACK = 128; + PSP_USEHICON = 2; + PSP_USEICONID = 4; + PSP_USEREFPARENT = 64; + PSP_USETITLE = 8; + PSP_RTLREADING = 16; + PSP_PREMATURE = $0400; //prsht + + { PROPSHEETHEADER structure } //prsht + PSH_DEFAULT = 0; + PSH_PROPTITLE = 1; + PSH_USEHICON = 2; + PSH_USEICONID = 4; + PSH_PROPSHEETPAGE = 8; + PSH_WIZARDHASFINISH = $0010; + PSH_WIZARD = 32; + PSH_USEPSTARTPAGE = 64; + PSH_NOAPPLYNOW = 128; + PSH_USECALLBACK = 256; + PSH_HASHELP = 512; + PSH_MODELESS = 1024; + PSH_RTLREADING = 2048; + PSH_WIZARDCONTEXTHELP = $1000; + PSH_MAXIMIZE = $2000; + PSH_NOCANCELBUTTON = $80000000; //specific ppc + + PSCB_INITIALIZED = 1; + PSCB_PRECREATE = 2; + PSCB_GETVERSION = 3; + PSCB_GETTITLE = 4; + PSCB_GETLINKTEXT = 5; + + { PSN_APPLY message } //prsht + PSNRET_NOERROR = 0; + PSNRET_INVALID = 1; + PSNRET_INVALID_NOCHANGEPAGE = 2; + + { Property Sheet } + PROP_SM_CXDLG = 212; + PROP_SM_CYDLG = 188; + PROP_MED_CXDLG = 227; + PROP_MED_CYDLG = 215; + PROP_LG_CXDLG = 252; + PROP_LG_CYDLG = 218; + + PSBTN_APPLYNOW = 4; + PSBTN_BACK = 0; + PSBTN_CANCEL = 5; + PSBTN_FINISH = 2; + PSBTN_HELP = 6; + PSBTN_MAX = 6; //prsht + PSBTN_NEXT = 1; + PSBTN_OK = 3; + + PSWIZB_BACK = 1; + PSWIZB_NEXT = 2; + PSWIZB_FINISH = 4; + PSWIZB_DISABLEDFINISH = 8; + + ID_PSREBOOTSYSTEM = 3; + ID_PSRESTARTWINDOWS = 2; + WIZ_BODYCX = 184; + WIZ_BODYX = 92; + WIZ_CXBMP = 80; + WIZ_CXDLG = 276; + WIZ_CYDLG = 140; + + { VX_FIXEDFILEINFO structure } + VS_FILE_INFO = MAKEINTRESOURCE(16); + + + const + VS_VERSION_INFO = 1; + VS_FF_DEBUG = $1; + VS_FF_INFOINFERRED = $10; + VS_FF_PATCHED = $4; + VS_FF_PRERELEASE = $2; + VS_FF_PRIVATEBUILD = $8; + VS_FF_SPECIALBUILD = $20; + VOS_UNKNOWN = 0; + VOS_DOS = $10000; + VOS_OS216 = $20000; + VOS_OS232 = $30000; + VOS_NT = $40000; + VOS_DOS_WINDOWS16 = $10001; + VOS_DOS_WINDOWS32 = $10004; + VOS_OS216_PM16 = $20002; + VOS_OS232_PM32 = $30003; + VOS_NT_WINDOWS32 = $40004; + VFT_UNKNOWN = 0; + VFT_APP = $1; + VFT_DLL = $2; + VFT_DRV = $3; + VFT_FONT = $4; + VFT_VXD = $5; + VFT_STATIC_LIB = $7; + VFT2_UNKNOWN = 0; + VFT2_DRV_PRINTER = $1; + VFT2_DRV_KEYBOARD = $2; + VFT2_DRV_LANGUAGE = $3; + VFT2_DRV_DISPLAY = $4; + VFT2_DRV_MOUSE = $5; + VFT2_DRV_NETWORK = $6; + VFT2_DRV_SYSTEM = $7; + VFT2_DRV_INSTALLABLE = $8; + VFT2_DRV_SOUND = $9; + VFT2_FONT_RASTER = $1; + VFT2_FONT_VECTOR = $2; + VFT2_FONT_TRUETYPE = $3; + { PANOSE structure } + PAN_ANY = 0; + PAN_NO_FIT = 1; + PAN_FAMILY_TEXT_DISPLAY = 2; + PAN_FAMILY_SCRIPT = 3; + PAN_FAMILY_DECORATIVE = 4; + PAN_FAMILY_PICTORIAL = 5; + PAN_SERIF_COVE = 2; + PAN_SERIF_OBTUSE_COVE = 3; + PAN_SERIF_SQUARE_COVE = 4; + PAN_SERIF_OBTUSE_SQUARE_COVE = 5; + PAN_SERIF_SQUARE = 6; + PAN_SERIF_THIN = 7; + PAN_SERIF_BONE = 8; + PAN_SERIF_EXAGGERATED = 9; + PAN_SERIF_TRIANGLE = 10; + PAN_SERIF_NORMAL_SANS = 11; + PAN_SERIF_OBTUSE_SANS = 12; + PAN_SERIF_PERP_SANS = 13; + PAN_SERIF_FLARED = 14; + PAN_SERIF_ROUNDED = 15; + PAN_WEIGHT_VERY_LIGHT = 2; + PAN_WEIGHT_LIGHT = 3; + PAN_WEIGHT_THIN = 4; + PAN_WEIGHT_BOOK = 5; + PAN_WEIGHT_MEDIUM = 6; + PAN_WEIGHT_DEMI = 7; + PAN_WEIGHT_BOLD = 8; + PAN_WEIGHT_HEAVY = 9; + PAN_WEIGHT_BLACK = 10; + PAN_WEIGHT_NORD = 11; + PAN_PROP_OLD_STYLE = 2; + PAN_PROP_MODERN = 3; + PAN_PROP_EVEN_WIDTH = 4; + PAN_PROP_EXPANDED = 5; + PAN_PROP_CONDENSED = 6; + PAN_PROP_VERY_EXPANDED = 7; + PAN_PROP_VERY_CONDENSED = 8; + PAN_PROP_MONOSPACED = 9; + PAN_CONTRAST_NONE = 2; + PAN_CONTRAST_VERY_LOW = 3; + PAN_CONTRAST_LOW = 4; + PAN_CONTRAST_MEDIUM_LOW = 5; + PAN_CONTRAST_MEDIUM = 6; + PAN_CONTRAST_MEDIUM_HIGH = 7; + PAN_CONTRAST_HIGH = 8; + PAN_CONTRAST_VERY_HIGH = 9; + PAN_STROKE_GRADUAL_DIAG = 2; + PAN_STROKE_GRADUAL_TRAN = 3; + PAN_STROKE_GRADUAL_VERT = 4; + PAN_STROKE_GRADUAL_HORZ = 5; + PAN_STROKE_RAPID_VERT = 6; + PAN_STROKE_RAPID_HORZ = 7; + PAN_STROKE_INSTANT_VERT = 8; + PAN_STRAIGHT_ARMS_HORZ = 2; + PAN_STRAIGHT_ARMS_WEDGE = 3; + PAN_STRAIGHT_ARMS_VERT = 4; + PAN_STRAIGHT_ARMS_SINGLE_SERIF = 5; + PAN_STRAIGHT_ARMS_DOUBLE_SERIF = 6; + PAN_BENT_ARMS_HORZ = 7; + PAN_BENT_ARMS_VERT = 9; + PAN_BENT_ARMS_WEDGE = 8; + PAN_BENT_ARMS_SINGLE_SERIF = 10; + PAN_BENT_ARMS_DOUBLE_SERIF = 11; + PAN_LETT_NORMAL_CONTACT = 2; + PAN_LETT_NORMAL_WEIGHTED = 3; + PAN_LETT_NORMAL_BOXED = 4; + PAN_LETT_NORMAL_FLATTENED = 5; + PAN_LETT_NORMAL_ROUNDED = 6; + PAN_LETT_NORMAL_OFF_CENTER = 7; + PAN_LETT_NORMAL_SQUARE = 8; + PAN_LETT_OBLIQUE_CONTACT = 9; + PAN_LETT_OBLIQUE_WEIGHTED = 10; + PAN_LETT_OBLIQUE_BOXED = 11; + PAN_LETT_OBLIQUE_FLATTENED = 12; + PAN_LETT_OBLIQUE_ROUNDED = 13; + PAN_LETT_OBLIQUE_OFF_CENTER = 14; + PAN_LETT_OBLIQUE_SQUARE = 15; + PAN_MIDLINE_STANDARD_TRIMMED = 2; + PAN_MIDLINE_STANDARD_POINTED = 3; + PAN_MIDLINE_STANDARD_SERIFED = 4; + PAN_MIDLINE_HIGH_TRIMMED = 5; + PAN_MIDLINE_HIGH_POINTED = 6; + PAN_MIDLINE_HIGH_SERIFED = 7; + PAN_MIDLINE_CONSTANT_TRIMMED = 8; + PAN_MIDLINE_CONSTANT_POINTED = 9; + PAN_MIDLINE_CONSTANT_SERIFED = 10; + PAN_MIDLINE_LOW_TRIMMED = 11; + PAN_MIDLINE_LOW_POINTED = 12; + PAN_MIDLINE_LOW_SERIFED = 13; + PAN_XHEIGHT_CONSTANT_SMALL = 2; + PAN_XHEIGHT_CONSTANT_STD = 3; + PAN_XHEIGHT_CONSTANT_LARGE = 4; + PAN_XHEIGHT_DUCKING_SMALL = 5; + PAN_XHEIGHT_DUCKING_STD = 6; + PAN_XHEIGHT_DUCKING_LARGE = 7; + { PALETTENTRY structure } + PC_EXPLICIT = 2; + PC_NOCOLLAPSE = 4; + PC_RESERVED = 1; + { LOGBRUSH structure } + BS_DIBPATTERN = 5; + BS_DIBPATTERN8X8 = 8; + BS_DIBPATTERNPT = 6; + BS_HATCHED = 2; + BS_HOLLOW = 1; + BS_NULL = 1; + BS_PATTERN = 3; + BS_PATTERN8X8 = 7; + BS_SOLID = 0; + { DEVMODE structure } + DM_ORIENTATION = $1; + DM_PAPERSIZE = $2; + DM_PAPERLENGTH = $4; + DM_PAPERWIDTH = $8; + DM_SCALE = $10; + DM_COPIES = $100; + DM_DEFAULTSOURCE = $200; + DM_PRINTQUALITY = $400; + DM_COLOR = $800; + DM_DUPLEX = $1000; + DM_YRESOLUTION = $2000; + DM_TTOPTION = $4000; + DM_COLLATE = $8000; + DM_FORMNAME = $10000; + DM_LOGPIXELS = $20000; + {DM_BITSPERPEL = $40000; + DM_PELSWIDTH = $80000; + DM_PELSHEIGHT = $100000; + DM_DISPLAYFLAGS = $200000; + DM_DISPLAYFREQUENCY = $400000;already above } + DM_ICMMETHOD = $800000; + DM_ICMINTENT = $1000000; + DM_MEDIATYPE = $2000000; + DM_DITHERTYPE = $4000000; + { orientation selections } + DMORIENT_LANDSCAPE = 2; + DMORIENT_PORTRAIT = 1; + { paper selections } + DMPAPER_LETTER = 1; + DMPAPER_LEGAL = 5; + DMPAPER_A4 = 9; + DMPAPER_CSHEET = 24; + DMPAPER_DSHEET = 25; + DMPAPER_ESHEET = 26; + DMPAPER_LETTERSMALL = 2; + DMPAPER_TABLOID = 3; + DMPAPER_LEDGER = 4; + DMPAPER_STATEMENT = 6; + DMPAPER_EXECUTIVE = 7; + DMPAPER_A3 = 8; + DMPAPER_A4SMALL = 10; + DMPAPER_A5 = 11; + DMPAPER_B4 = 12; + DMPAPER_B5 = 13; + DMPAPER_FOLIO = 14; + DMPAPER_QUARTO = 15; + DMPAPER_10X14 = 16; + DMPAPER_11X17 = 17; + DMPAPER_NOTE = 18; + DMPAPER_ENV_9 = 19; + DMPAPER_ENV_10 = 20; + DMPAPER_ENV_11 = 21; + DMPAPER_ENV_12 = 22; + DMPAPER_ENV_14 = 23; + DMPAPER_ENV_DL = 27; + DMPAPER_ENV_C5 = 28; + DMPAPER_ENV_C3 = 29; + DMPAPER_ENV_C4 = 30; + DMPAPER_ENV_C6 = 31; + DMPAPER_ENV_C65 = 32; + DMPAPER_ENV_B4 = 33; + DMPAPER_ENV_B5 = 34; + DMPAPER_ENV_B6 = 35; + DMPAPER_ENV_ITALY = 36; + DMPAPER_ENV_MONARCH = 37; + DMPAPER_ENV_PERSONAL = 38; + DMPAPER_FANFOLD_US = 39; + DMPAPER_FANFOLD_STD_GERMAN = 40; + DMPAPER_FANFOLD_LGL_GERMAN = 41; + { print qualities } + DMRES_HIGH = -(4); + DMRES_MEDIUM = -(3); + DMRES_LOW = -(2); + DMRES_DRAFT = -(1); + { color enable/disable for color printers } + DMCOLOR_COLOR = 2; + DMCOLOR_MONOCHROME = 1; + DMDUP_SIMPLEX = 1; + DMDUP_HORIZONTAL = 3; + DMDUP_VERTICAL = 2; + DMTT_BITMAP = 1; + DMTT_DOWNLOAD = 2; + DMTT_SUBDEV = 3; + DMCOLLATE_TRUE = 1; + DMCOLLATE_FALSE = 0; + DM_GRAYSCALE = 1; + DM_INTERLACED = 2; + DMICMMETHOD_NONE = 1; + DMICMMETHOD_SYSTEM = 2; + DMICMMETHOD_DRIVER = 3; + DMICMMETHOD_DEVICE = 4; + DMICMMETHOD_USER = 256; + DMICM_SATURATE = 1; + DMICM_CONTRAST = 2; + DMICM_COLORMETRIC = 3; + DMICM_USER = 256; + DMMEDIA_STANDARD = 1; + DMMEDIA_GLOSSY = 3; + DMMEDIA_TRANSPARENCY = 2; + DMMEDIA_USER = 256; + DMDITHER_NONE = 1; + DMDITHER_COARSE = 2; + DMDITHER_FINE = 3; + DMDITHER_LINEART = 4; + DMDITHER_GRAYSCALE = 10; + DMDITHER_USER = 256; + { RGNDATAHEADER structure } + RDH_RECTANGLES = 1; + { TTPOLYGONHEADER structure } + TT_POLYGON_TYPE = 24; + { TTPOLYCURVE structure } + TT_PRIM_LINE = 1; + TT_PRIM_QSPLINE = 2; + { GCP_RESULTS structure } + GCPCLASS_ARABIC = 2; + GCPCLASS_HEBREW = 2; + GCPCLASS_LATIN = 1; + GCPCLASS_LATINNUMBER = 5; + GCPCLASS_LOCALNUMBER = 4; + GCPCLASS_LATINNUMERICSEPARATOR = 7; + GCPCLASS_LATINNUMERICTERMINATOR = 6; + GCPCLASS_NEUTRAL = 3; + GCPCLASS_NUMERICSEPARATOR = 8; + GCPCLASS_PREBOUNDLTR = 128; + GCPCLASS_PREBOUNDRTL = 64; + GCPCLASS_POSTBOUNDLTR = 32; + GCPCLASS_POSTBOUNDRTL = 16; + GCPGLYPH_LINKBEFORE = 32768; + GCPGLYPH_LINKAFTER = 16384; + { RASTERIZER_STATUS structure } + TT_AVAILABLE = 1; + TT_ENABLED = 2; + { COLORADJUSTMENT structure } + CA_NEGATIVE = 1; + CA_LOG_FILTER = 2; + ILLUMINANT_DEVICE_DEFAULT = 0; + ILLUMINANT_A = 1; + ILLUMINANT_B = 2; + ILLUMINANT_C = 3; + ILLUMINANT_D50 = 4; + ILLUMINANT_D55 = 5; + ILLUMINANT_D65 = 6; + ILLUMINANT_D75 = 7; + ILLUMINANT_F2 = 8; + ILLUMINANT_TUNGSTEN = 1; + ILLUMINANT_DAYLIGHT = 3; + ILLUMINANT_FLUORESCENT = 8; + ILLUMINANT_NTSC = 3; + { DOCINFO structure } + DI_APPBANDING = 1; + { EMRMETAHEADER structure } + EMR_HEADER = 1; + ENHMETA_SIGNATURE = 1179469088; + { RTF event masks } + ENM_CHANGE = 1; + ENM_CORRECTTEXT = 4194304; + ENM_DROPFILES = 1048576; + ENM_KEYEVENTS = 65536; + ENM_MOUSEEVENTS = 131072; + ENM_PROTECTED = 2097152; + ENM_REQUESTRESIZE = 262144; + ENM_SCROLL = 4; + ENM_SELCHANGE = 524288; + ENM_UPDATE = 2; + ENM_NONE = 0; + { RTF styles } + ES_DISABLENOSCROLL = 8192; + ES_EX_NOCALLOLEINIT = 16777216; + ES_NOIME = 524288; + ES_SAVESEL = 32768; + ES_SELFIME = 262144; + ES_SUNKEN = 16384; + ES_VERTICAL = 4194304; + ES_SELECTIONBAR = 16777216; + { EM_SETOPTIONS message } + ECOOP_SET = 1; + ECOOP_OR = 2; + ECOOP_AND = 3; + ECOOP_XOR = 4; + ECO_AUTOWORDSELECTION = 1; + ECO_AUTOVSCROLL = 64; + ECO_AUTOHSCROLL = 128; + ECO_NOHIDESEL = 256; + ECO_READONLY = 2048; + ECO_WANTRETURN = 4096; + ECO_SAVESEL = 32768; + ECO_SELECTIONBAR = 16777216; + ECO_VERTICAL = 4194304; + { EM_SETCHARFORMAT message } + SCF_WORD = 2; + SCF_SELECTION = 1; + { EM_STREAMOUT message } + SF_TEXT = 1; + SF_RTF = 2; + SF_RTFNOOBJS = 3; + SF_TEXTIZED = 4; + SFF_SELECTION = 32768; + SFF_PLAINRTF = 16384; + { EM_FINDWORDBREAK message } + WB_CLASSIFY = 3; + {WB_ISDELIMITER = 2; + WB_LEFT = 0; already above } + WB_LEFTBREAK = 6; + WB_PREVBREAK = 6; + WB_MOVEWORDLEFT = 4; + WB_MOVEWORDPREV = 4; + WB_MOVEWORDRIGHT = 5; + WB_MOVEWORDNEXT = 5; + {WB_RIGHT = 1;already above } + WB_RIGHTBREAK = 7; + WB_NEXTBREAK = 7; + { EM_GETPUNCTUATION message } + PC_LEADING = 2; + PC_FOLLOWING = 1; + PC_DELIMITER = 4; + PC_OVERFLOW = 3; + { EM_SETWORDWRAPMODE message } + WBF_WORDWRAP = 16; + WBF_WORDBREAK = 32; + WBF_OVERFLOW = 64; + WBF_LEVEL1 = 128; + WBF_LEVEL2 = 256; + WBF_CUSTOM = 512; + WBF_BREAKAFTER = 64; + WBF_BREAKLINE = 32; + WBF_ISWHITE = 16; + { CHARFORMAT structure } + CFM_BOLD = 1; + CFM_COLOR = 1073741824; + CFM_FACE = 536870912; + CFM_ITALIC = 2; + CFM_OFFSET = 268435456; + CFM_PROTECTED = 16; + CFM_SIZE = $80000000; + CFM_STRIKEOUT = 8; + CFM_UNDERLINE = 4; + CFE_AUTOCOLOR = 1073741824; + CFE_BOLD = 1; + CFE_ITALIC = 2; + CFE_STRIKEOUT = 8; + CFE_UNDERLINE = 4; + CFE_PROTECTED = 16; + { PARAFORMAT structure } + PFM_ALIGNMENT = 8; + PFM_NUMBERING = 32; + PFM_OFFSET = 4; + PFM_OFFSETINDENT = $80000000; + PFM_RIGHTINDENT = 2; + PFM_STARTINDENT = 1; + PFM_TABSTOPS = 16; + PFN_BULLET = 1; + PFA_LEFT = 1; + PFA_RIGHT = 2; + PFA_CENTER = 3; + { SELCHANGE structure } + SEL_EMPTY = 0; + SEL_TEXT = 1; + SEL_OBJECT = 2; + SEL_MULTICHAR = 4; + SEL_MULTIOBJECT = 8; + { RTF clipboard formats } + CF_RTF = 'Rich Text Format'; + CF_RETEXTOBJ = 'RichEdit Text and Objects'; + { DRAWITEMSTRUCT structure } + ODT_BUTTON = 4; + ODT_COMBOBOX = 3; + ODT_LISTBOX = 2; + ODT_LISTVIEW = 102; + ODT_MENU = 1; + ODT_STATIC = 5; + ODT_TAB = 101; + ODT_HEADER = 100; + ODA_DRAWENTIRE = 1; + ODA_FOCUS = 4; + ODA_SELECT = 2; + ODS_CHECKED = 8; + ODS_COMBOBOXEDIT = 4096; + ODS_DEFAULT = 32; + ODS_DISABLED = 4; + ODS_FOCUS = 16; + ODS_GRAYED = 2; + ODS_SELECTED = 1; + { Common control window classes } + ANIMATE_CLASSW = 'SysAnimate32'; + HOTKEY_CLASSW = 'msctls_hotkey32'; + PROGRESS_CLASSW = 'msctls_progress32'; + STATUSCLASSNAMEW = 'msctls_statusbar32'; + TOOLBARCLASSNAMEW = 'ToolbarWindow32'; + TOOLTIPS_CLASSW = 'tooltips_class32'; + TRACKBAR_CLASSW = 'msctls_trackbar32'; + UPDOWN_CLASSW = 'msctls_updown32'; + WC_HEADERW = 'SysHeader32'; + WC_LISTVIEWW = 'SysListView32'; + WC_TABCONTROLW = 'SysTabControl32'; + WC_TREEVIEWW = 'SysTreeView32'; + { Common control styles } + CCS_ADJUSTABLE = $20; + CCS_BOTTOM = $3; + CCS_NODIVIDER = $40; + CCS_NOMOVEY = $2; + CCS_NOPARENTALIGN = $8; + CCS_NORESIZE = $4; + CCS_TOP = $1; + CCS_VERT = $80; + ANIMATE_CLASSA = 'SysAnimate32'; + HOTKEY_CLASSA = 'msctls_hotkey32'; + PROGRESS_CLASSA = 'msctls_progress32'; + STATUSCLASSNAMEA = 'msctls_statusbar32'; + TOOLBARCLASSNAMEA = 'ToolbarWindow32'; + TOOLTIPS_CLASSA = 'tooltips_class32'; + TRACKBAR_CLASSA = 'msctls_trackbar32'; + UPDOWN_CLASSA = 'msctls_updown32'; + WC_HEADERA = 'SysHeader32'; + WC_LISTVIEWA = 'SysListView32'; + WC_TABCONTROLA = 'SysTabControl32'; + WC_TREEVIEWA = 'SysTreeView32'; +{$ifdef UNICODE} + + const + ANIMATE_CLASS = ANIMATE_CLASSW; + HOTKEY_CLASS = HOTKEY_CLASSW; + PROGRESS_CLASS = PROGRESS_CLASSW; + STATUSCLASSNAME = STATUSCLASSNAMEW; + TOOLBARCLASSNAME = TOOLBARCLASSNAMEW; + TOOLTIPS_CLASS = TOOLTIPS_CLASSW; + TRACKBAR_CLASS = TRACKBAR_CLASSW; + UPDOWN_CLASS = UPDOWN_CLASSW; + WC_HEADER = WC_HEADERW; + WC_LISTVIEW = WC_LISTVIEWW; + WC_TABCONTROL = WC_TABCONTROLW; + WC_TREEVIEW = WC_TREEVIEWW; +{$else} + + const + ANIMATE_CLASS = ANIMATE_CLASSA; + HOTKEY_CLASS = HOTKEY_CLASSA; + PROGRESS_CLASS = PROGRESS_CLASSA; + STATUSCLASSNAME = STATUSCLASSNAMEA; + TOOLBARCLASSNAME = TOOLBARCLASSNAMEA; + TOOLTIPS_CLASS = TOOLTIPS_CLASSA; + TRACKBAR_CLASS = TRACKBAR_CLASSA; + UPDOWN_CLASS = UPDOWN_CLASSA; + WC_HEADER = WC_HEADERA; + WC_LISTVIEW = WC_LISTVIEWA; + WC_TABCONTROL = WC_TABCONTROLA; + WC_TREEVIEW = WC_TREEVIEWA; +{$endif} + { UNICODE } + { Header control styles } + + const + HDS_BUTTONS = 2; + HDS_HIDDEN = 8; + HDS_HORZ = 0; + { HD_ITEM structure } + HDI_BITMAP = 16; + HDI_FORMAT = 4; + HDI_HEIGHT = 1; + HDI_LPARAM = 8; + HDI_TEXT = 2; + HDI_WIDTH = 1; + HDF_CENTER = 2; + HDF_LEFT = 0; + HDF_RIGHT = 1; + HDF_RTLREADING = 4; + HDF_BITMAP = 8192; + HDF_OWNERDRAW = 32768; + HDF_STRING = 16384; + HDF_JUSTIFYMASK = 3; + { HD_HITTESTINFO structure } + HHT_NOWHERE = 1; + HHT_ONDIVIDER = 4; + HHT_ONDIVOPEN = 8; + HHT_ONHEADER = 2; + HHT_TOLEFT = 2048; + HHT_TORIGHT = 1024; + { TBADDBITMAP structure } + HINST_COMMCTRL = HINST(-(1)); + + + const + IDB_STD_LARGE_COLOR = 1; + IDB_STD_SMALL_COLOR = 0; + IDB_VIEW_LARGE_COLOR = 5; + IDB_VIEW_SMALL_COLOR = 4; + STD_COPY = 1; + STD_CUT = 0; + STD_DELETE = 5; + STD_FILENEW = 6; + STD_FILEOPEN = 7; + STD_FILESAVE = 8; + STD_FIND = 12; + STD_HELP = 11; + STD_PASTE = 2; + STD_PRINT = 14; + STD_PRINTPRE = 9; + STD_PROPERTIES = 10; + STD_REDOW = 4; + STD_REPLACE = 13; + STD_UNDO = 3; + VIEW_LARGEICONS = 0; + VIEW_SMALLICONS = 1; + VIEW_LIST = 2; + VIEW_DETAILS = 3; + VIEW_SORTNAME = 4; + VIEW_SORTSIZE = 5; + VIEW_SORTDATE = 6; + VIEW_SORTTYPE = 7; + { Toolbar styles } + TBSTYLE_ALTDRAG = 1024; + TBSTYLE_TOOLTIPS = 256; + TBSTYLE_WRAPABLE = 512; + TBSTYLE_BUTTON = 0; + TBSTYLE_CHECK = 2; + TBSTYLE_CHECKGROUP = 6; + TBSTYLE_GROUP = 4; + TBSTYLE_SEP = 1; + TBSTYLE_DROPDOWN = $0008; + TBSTYLE_AUTOSIZE = $0010; // automatically calculate the cx of the button + TBSTYLE_FLAT = $0800; + TBSTYLE_LIST = $1000; + TBSTYLE_CUSTOMERASE = $2000; + TBSTYLE_TRANSPARENT = $8000; + { Toolbar states } + TBSTATE_CHECKED = 1; + TBSTATE_ENABLED = 4; + TBSTATE_HIDDEN = 8; + TBSTATE_INDETERMINATE = 16; + TBSTATE_PRESSED = 2; + TBSTATE_WRAP = 32; + TBSTATE_ELLIPSES = $40; + TBSTATE_HIGHLIGHTED = $80; + { Tooltip styles } + TTS_ALWAYSTIP = 1; + TTS_NOPREFIX = 2; + { TOOLINFO structure } + TTF_IDISHWND = 1; + TTF_CENTERTIP = 2; + TTF_RTLREADING = 4; + TTF_SUBCLASS = 16; + { TTM_SETDELAYTIME message } + TTDT_AUTOMATIC = 0; + TTDT_AUTOPOP = 2; + TTDT_INITIAL = 3; + TTDT_RESHOW = 1; + { Status window } + SBARS_SIZEGRIP = 256; + {SBARS_SIZEGRIP = 256;already above } + { DL_DRAGGING message } + DL_MOVECURSOR = 3; + DL_COPYCURSOR = 2; + DL_STOPCURSOR = 1; + { Up-down control styles } + UDS_ALIGNLEFT = 8; + UDS_ALIGNRIGHT = 4; + UDS_ARROWKEYS = 32; + UDS_AUTOBUDDY = 16; + UDS_HORZ = 64; + UDS_NOTHOUSANDS = 128; + UDS_SETBUDDYINT = 2; + UDS_WRAP = 1; + { UDM_SETRANGE message } + UD_MAXVAL = 32767; + UD_MINVAL = -(32767); + { HKM_GETHOTKEY message } + HOTKEYF_ALT = 4; + HOTKEYF_CONTROL = 2; + HOTKEYF_EXT = 8; + HOTKEYF_SHIFT = 1; + { HKM_SETRULES message } + HKCOMB_A = 8; + HKCOMB_C = 4; + HKCOMB_CA = 64; + HKCOMB_NONE = 1; + HKCOMB_S = 2; + HKCOMB_SA = 32; + HKCOMB_SC = 16; + HKCOMB_SCA = 128; + { Trackbar styles } + TBS_HORZ = 0; + TBS_VERT = 2; + TBS_AUTOTICKS = 1; + TBS_NOTICKS = 16; + TBS_TOP = 4; + TBS_BOTTOM = 0; + TBS_LEFT = 4; + TBS_RIGHT = 0; + TBS_BOTH = 8; + TBS_ENABLESELRANGE = 32; + TBS_FIXEDLENGTH = 64; + TBS_NOTHUMB = 128; + TB_BOTTOM = 7; + TB_ENDTRACK = 8; + TB_LINEDOWN = 1; + TB_LINEUP = 0; + TB_PAGEDOWN = 3; + TB_PAGEUP = 2; + TB_THUMBPOSITION = 4; + TB_THUMBTRACK = 5; + TB_TOP = 6; + { List view styles } + LVS_ALIGNLEFT = 2048; + LVS_ALIGNTOP = 0; + LVS_AUTOARRANGE = 256; + LVS_EDITLABELS = 512; + LVS_ICON = 0; + LVS_LIST = 3; + LVS_NOCOLUMNHEADER = 16384; + LVS_NOLABELWRAP = 128; + LVS_NOSCROLL = 8192; + LVS_NOSORTHEADER = 32768; + LVS_OWNERDRAWFIXED = 1024; + LVS_OWNERDATA = $1000; + LVS_REPORT = 1; + LVS_SHAREIMAGELISTS = 64; + LVS_SHOWSELALWAYS = 8; + LVS_SINGLESEL = 4; + LVS_SMALLICON = 2; + LVS_SORTASCENDING = 16; + LVS_SORTDESCENDING = 32; + LVS_TYPESTYLEMASK = 64512; + //extended styles + LVS_EX_GRIDLINES = $00000001; + LVS_EX_SUBITEMIMAGES = $00000002; + LVS_EX_CHECKBOXES = $00000004; + LVS_EX_TRACKSELECT = $00000008; + LVS_EX_HEADERDRAGDROP = $00000010; + LVS_EX_FULLROWSELECT = $00000020; // applies to report mode only + LVS_EX_ONECLICKACTIVATE = $00000040; + LVS_EX_NOHSCROLL = $10000000; + LVS_EX_GRADIENT = $20000000; // draw a background gradient + + LVSIL_NORMAL = 0; + LVSIL_SMALL = 1; + LVSIL_STATE = 2; + LVIS_CUT = 4; + LVIS_DROPHILITED = 8; + LVIS_FOCUSED = 1; + LVIS_SELECTED = 2; + LVIS_OVERLAYMASK = 3840; + LVIS_STATEIMAGEMASK = 61440; + + // progress bar styles + PBS_SMOOTH = 01; + PBS_VERTICAL = 04; + + LPSTR_TEXTCALLBACKW = LPWSTR(-(1)); + LPSTR_TEXTCALLBACKA = LPSTR(-(1)); + + + {$ifdef UNICODE} + + {const this is a function in fact !! + LPSTR_TEXTCALLBACK = LPSTR_TEXTCALLBACKW;} + LPSTR_TEXTCALLBACK = LPWSTR(-(1)); + + {$else} + + {const + LPSTR_TEXTCALLBACK = LPSTR_TEXTCALLBACKA; } + LPSTR_TEXTCALLBACK =LPSTR(-(1)); + {$endif} + + { LV_ITEM structure } + + const + LVIF_TEXT = 1; + LVIF_IMAGE = 2; + LVIF_PARAM = 4; + LVIF_STATE = 8; + LVIF_INDENT = $10; + LVIF_DI_SETITEM = 4096; + { LVM_GETNEXTITEM structure } + LVNI_ABOVE = 256; + LVNI_ALL = 0; + LVNI_BELOW = 512; + LVNI_TOLEFT = 1024; + LVNI_TORIGHT = 2048; + LVNI_CUT = 4; + LVNI_DROPHILITED = 8; + LVNI_FOCUSED = 1; + LVNI_SELECTED = 2; + { LV_FINDINFO structure } + LVFI_PARAM = 1; + LVFI_PARTIAL = 8; + LVFI_STRING = 2; + LVFI_WRAP = 32; + LVFI_NEARESTXY = 64; + { LV_HITTESTINFO structure } + LVHT_ABOVE = 8; + LVHT_BELOW = 16; + LVHT_NOWHERE = 1; + LVHT_ONITEMICON = 2; + LVHT_ONITEMLABEL = 4; + LVHT_ONITEMSTATEICON = 8; + LVHT_TOLEFT = 64; + LVHT_TORIGHT = 32; + LVHT_ONITEM = LVHT_ONITEMICON or LVHT_ONITEMLABEL or LVHT_ONITEMSTATEICON; + { LV_COLUMN structure } + LVCF_FMT = 1; + LVCF_SUBITEM = 8; + LVCF_TEXT = 4; + LVCF_WIDTH = 2; + LVCF_IMAGE = $10; + LVCF_ORDER = $20; + LVCFMT_CENTER = 2; + LVCFMT_LEFT = 0; + LVCFMT_RIGHT = 1; + LVCFMT_JUSTIFYMASK = $0003; + LVCFMT_IMAGE = $0800; + LVCFMT_BITMAP_ON_RIGHT = $1000; + { ListView_GetItemRect } + LVIR_BOUNDS = 0; + LVIR_ICON = 1; + LVIR_LABEL = 2; + LVIR_SELECTBOUNDS = 3; + { LVM_ARRANGE message } + LVA_ALIGNLEFT = 1; + LVA_ALIGNTOP = 2; + LVA_DEFAULT = 0; + LVA_SNAPTOGRID = 5; + { LVM_SETCOLUMNWIDTH message } + LVSCW_AUTOSIZE = -(1); + LVSCW_AUTOSIZE_USEHEADER = -(2); + { Tree View styles } + TVS_DISABLEDRAGDROP = 16; + TVS_EDITLABELS = 8; + TVS_HASBUTTONS = 1; + TVS_HASLINES = 2; + TVS_LINESATROOT = 4; + TVS_SHOWSELALWAYS = 32; + TVS_CHECKBOXES = $0100; + TVS_SINGLEEXPAND = $0400; + { Tree View states } + TVIS_BOLD = 16; + TVIS_CUT = 4; + TVIS_DROPHILITED = 8; + TVIS_EXPANDED = 32; + TVIS_EXPANDEDONCE = 64; + TVIS_FOCUSED = 1; + TVIS_OVERLAYMASK = 3840; + TVIS_SELECTED = 2; + TVIS_STATEIMAGEMASK = 61440; + TVIS_USERMASK = 61440; + { TV_ITEM structure } + TVIF_CHILDREN = 64; + TVIF_HANDLE = 16; + TVIF_IMAGE = 2; + TVIF_PARAM = 4; + TVIF_SELECTEDIMAGE = 32; + TVIF_STATE = 8; + TVIF_TEXT = 1; + I_CHILDRENCALLBACK = -(1); + I_IMAGECALLBACK = -(1); + { TV_INSERTSTRUCT structure } + { added manually PM, TREEITEM is not defined in the C headers } + type + HTREEITEM = THandle; + + const + TVI_ROOT = HTREEITEM($FFFF0000); + TVI_FIRST =HTREEITEM($FFFF0001); + TVI_LAST = HTREEITEM($FFFF0002); + TVI_SORT = HTREEITEM($FFFF0003); + + { TV_HITTESTINFO structure } + + const + TVHT_ABOVE = 256; + TVHT_BELOW = 512; + TVHT_NOWHERE = 1; + TVHT_ONITEM = 70; + TVHT_ONITEMBUTTON = 16; + TVHT_ONITEMICON = 2; + TVHT_ONITEMINDENT = 8; + TVHT_ONITEMLABEL = 4; + TVHT_ONITEMRIGHT = 32; + TVHT_ONITEMSTATEICON = 64; + TVHT_TOLEFT = 2048; + TVHT_TORIGHT = 1024; + { TVM_EXPAND message } + TVE_COLLAPSE = 1; + TVE_COLLAPSERESET = 32768; + TVE_EXPAND = 2; + TVE_TOGGLE = 3; + { TVM_GETIMAGELIST message } + TVSIL_NORMAL = 0; + TVSIL_STATE = 2; + { TVM_GETNEXTITEM message } + TVGN_CARET = 9; + TVGN_CHILD = 4; + TVGN_DROPHILITE = 8; + TVGN_FIRSTVISIBLE = 5; + TVGN_NEXT = 1; + TVGN_NEXTVISIBLE = 6; + TVGN_PARENT = 3; + TVGN_PREVIOUS = 2; + TVGN_PREVIOUSVISIBLE = 7; + TVGN_ROOT = 0; + { TVN_SELCHANGED message } + TVC_BYKEYBOARD = 2; + TVC_BYMOUSE = 1; + TVC_UNKNOWN = 0; + { Tab control styles } //commctrl + TCS_RIGHTJUSTIFY = 0; + TCS_SINGLELINE = 0; + TCS_TABS = 0; + TCS_SCROLLOPPOSITE = $0001; // assumes multiline tab + TCS_BOTTOM = $0002; + TCS_RIGHT = $0002; + TCS_MULTISELECT = $0004; // allow multi-select in button mode + TCS_FLATBUTTONS = $0008; + TCS_FORCEICONLEFT = 16; + TCS_FORCELABELLEFT = 32; + TCS_HOTTRACK = $0040; + TCS_VERTICAL = $0080; + TCS_BUTTONS = 256; + TCS_MULTILINE = 512; + TCS_FIXEDWIDTH = 1024; + TCS_RAGGEDRIGHT = 2048; + TCS_FOCUSONBUTTONDOWN = 4096; + TCS_OWNERDRAWFIXED = 8192; + TCS_TOOLTIPS= 16384; + TCS_FOCUSNEVER = 32768; + + TCS_EX_FLATSEPARATORS = $00000001; + + { TC_ITEM structure } + TCIF_TEXT = 1; + TCIF_IMAGE = 2; + TCIF_PARAM = 8; + TCIF_RTLREADING = 4; + { TC_HITTESTINFO structure } + TCHT_NOWHERE = 1; + TCHT_ONITEM = 6; + TCHT_ONITEMICON = 2; + TCHT_ONITEMLABEL = 4; + { Animation control styles } + ACS_AUTOPLAY = 4; + ACS_CENTER = 1; + ACS_TRANSPARENT = 2; + { MODEMDEVCAPS structure } + DIALOPTION_BILLING = 64; + DIALOPTION_QUIET = 128; + DIALOPTION_DIALTONE = 256; + MDMVOLFLAG_LOW = 1; + MDMVOLFLAG_MEDIUM = 2; + MDMVOLFLAG_HIGH = 4; + MDMVOL_LOW = 0; + MDMVOL_MEDIUM = 1; + MDMVOL_HIGH = 2; + MDMSPKRFLAG_OFF = 1; + MDMSPKRFLAG_DIAL = 2; + MDMSPKRFLAG_ON = 4; + MDMSPKRFLAG_CALLSETUP = 8; + MDMSPKR_OFF = 0; + MDMSPKR_DIAL = 1; + MDMSPKR_ON = 2; + MDMSPKR_CALLSETUP = 3; + MDM_BLIND_DIAL = 512; + MDM_CCITT_OVERRIDE = 64; + MDM_CELLULAR = 8; + MDM_COMPRESSION = 1; + MDM_ERROR_CONTROL = 2; + MDM_FLOWCONTROL_HARD = 16; + MDM_FLOWCONTROL_SOFT = 32; + MDM_FORCED_EC = 4; + MDM_SPEED_ADJUST = 128; + MDM_TONE_DIAL = 256; + MDM_V23_OVERRIDE = 1024; + { Languages } + // + // Language IDs. + // + // The following two combinations of primary language ID and + // sublanguage ID have special semantics: + // + // Primary Language ID Sublanguage ID Result + // ------------------- --------------- ------------------------ + // LANG_NEUTRAL SUBLANG_NEUTRAL Language neutral + // LANG_NEUTRAL SUBLANG_DEFAULT User default language + // LANG_NEUTRAL SUBLANG_SYS_DEFAULT System default language + // LANG_INVARIANT SUBLANG_NEUTRAL Invariant locale + // + + // + // Primary language IDs. + // + + LANG_NEUTRAL = $00; + LANG_INVARIANT = $7f; + + LANG_AFRIKAANS = $36; + LANG_ALBANIAN = $1c; + LANG_ARABIC = $01; + LANG_ARMENIAN = $2b; + LANG_ASSAMESE = $4d; + LANG_AZERI = $2c; + LANG_BASQUE = $2d; + LANG_BELARUSIAN = $23; + LANG_BENGALI = $45; + LANG_BULGARIAN = $02; + LANG_CATALAN = $03; + LANG_CHINESE = $04; + LANG_CROATIAN = $1a; + LANG_CZECH = $05; + LANG_DANISH = $06; + LANG_DIVEHI = $65; + LANG_DUTCH = $13; + LANG_ENGLISH = $09; + LANG_ESTONIAN = $25; + LANG_FAEROESE = $38; + LANG_FARSI = $29; + LANG_FINNISH = $0b; + LANG_FRENCH = $0c; + LANG_GALICIAN = $56; + LANG_GEORGIAN = $37; + LANG_GERMAN = $07; + LANG_GREEK = $08; + LANG_GUJARATI = $47; + LANG_HEBREW = $0d; + LANG_HINDI = $39; + LANG_HUNGARIAN = $0e; + LANG_ICELANDIC = $0f; + LANG_INDONESIAN = $21; + LANG_ITALIAN = $10; + LANG_JAPANESE = $11; + LANG_KANNADA = $4b; + LANG_KASHMIRI = $60; + LANG_KAZAK = $3f; + LANG_KONKANI = $57; + LANG_KOREAN = $12; + LANG_KYRGYZ = $40; + LANG_LATVIAN = $26; + LANG_LITHUANIAN = $27; + LANG_MACEDONIAN = $2f; // the Former Yugoslav Republic of Macedonia + LANG_MALAY = $3e; + LANG_MALAYALAM = $4c; + LANG_MANIPURI = $58; + LANG_MARATHI = $4e; + LANG_MONGOLIAN = $50; + LANG_NEPALI = $61; + LANG_NORWEGIAN = $14; + LANG_ORIYA = $48; + LANG_POLISH = $15; + LANG_PORTUGUESE = $16; + LANG_PUNJABI = $46; + LANG_ROMANIAN = $18; + LANG_RUSSIAN = $19; + LANG_SANSKRIT = $4f; + LANG_SERBIAN = $1a; + LANG_SINDHI = $59; + LANG_SLOVAK = $1b; + LANG_SLOVENIAN = $24; + LANG_SPANISH = $0a; + LANG_SWAHILI = $41; + LANG_SWEDISH = $1d; + LANG_SYRIAC = $5a; + LANG_TAMIL = $49; + LANG_TATAR = $44; + LANG_TELUGU = $4a; + LANG_THAI = $1e; + LANG_TURKISH = $1f; + LANG_UKRAINIAN = $22; + LANG_URDU = $20; + LANG_UZBEK = $43; + LANG_VIETNAMESE = $2a; + + // + // Sublanguage IDs. + // + // The name immediately following SUBLANG_ dictates which primary + // language ID that sublanguage ID can be combined with to form a + // valid language ID. + // + + SUBLANG_NEUTRAL = $00; // language neutral + SUBLANG_DEFAULT = $01; // user default + SUBLANG_SYS_DEFAULT = $02; // system default + + SUBLANG_ARABIC_SAUDI_ARABIA = $01; // Arabic (Saudi Arabia) + SUBLANG_ARABIC_IRAQ = $02; // Arabic (Iraq) + SUBLANG_ARABIC_EGYPT = $03; // Arabic (Egypt) + SUBLANG_ARABIC_LIBYA = $04; // Arabic (Libya) + SUBLANG_ARABIC_ALGERIA = $05; // Arabic (Algeria) + SUBLANG_ARABIC_MOROCCO = $06; // Arabic (Morocco) + SUBLANG_ARABIC_TUNISIA = $07; // Arabic (Tunisia) + SUBLANG_ARABIC_OMAN = $08; // Arabic (Oman) + SUBLANG_ARABIC_YEMEN = $09; // Arabic (Yemen) + SUBLANG_ARABIC_SYRIA = $0a; // Arabic (Syria) + SUBLANG_ARABIC_JORDAN = $0b; // Arabic (Jordan) + SUBLANG_ARABIC_LEBANON = $0c; // Arabic (Lebanon) + SUBLANG_ARABIC_KUWAIT = $0d; // Arabic (Kuwait) + SUBLANG_ARABIC_UAE = $0e; // Arabic (U.A.E) + SUBLANG_ARABIC_BAHRAIN = $0f; // Arabic (Bahrain) + SUBLANG_ARABIC_QATAR = $10; // Arabic (Qatar) + SUBLANG_AZERI_LATIN = $01; // Azeri (Latin) + SUBLANG_AZERI_CYRILLIC = $02; // Azeri (Cyrillic) + SUBLANG_CHINESE_TRADITIONAL = $01; // Chinese (Taiwan) + SUBLANG_CHINESE_SIMPLIFIED = $02; // Chinese (PR China) + SUBLANG_CHINESE_HONGKONG = $03; // Chinese (Hong Kong S.A.R., P.R.C.) + SUBLANG_CHINESE_SINGAPORE = $04; // Chinese (Singapore) + SUBLANG_CHINESE_MACAU = $05; // Chinese (Macau S.A.R.) + SUBLANG_DUTCH = $01; // Dutch + SUBLANG_DUTCH_BELGIAN = $02; // Dutch (Belgian) + SUBLANG_ENGLISH_US = $01; // English (USA) + SUBLANG_ENGLISH_UK = $02; // English (UK) + SUBLANG_ENGLISH_AUS = $03; // English (Australian) + SUBLANG_ENGLISH_CAN = $04; // English (Canadian) + SUBLANG_ENGLISH_NZ = $05; // English (New Zealand) + SUBLANG_ENGLISH_EIRE = $06; // English (Irish) + SUBLANG_ENGLISH_SOUTH_AFRICA = $07; // English (South Africa) + SUBLANG_ENGLISH_JAMAICA = $08; // English (Jamaica) + SUBLANG_ENGLISH_CARIBBEAN = $09; // English (Caribbean) + SUBLANG_ENGLISH_BELIZE = $0a; // English (Belize) + SUBLANG_ENGLISH_TRINIDAD = $0b; // English (Trinidad) + SUBLANG_ENGLISH_ZIMBABWE = $0c; // English (Zimbabwe) + SUBLANG_ENGLISH_PHILIPPINES = $0d; // English (Philippines) + SUBLANG_FRENCH = $01; // French + SUBLANG_FRENCH_BELGIAN = $02; // French (Belgian) + SUBLANG_FRENCH_CANADIAN = $03; // French (Canadian) + SUBLANG_FRENCH_SWISS = $04; // French (Swiss) + SUBLANG_FRENCH_LUXEMBOURG = $05; // French (Luxembourg) + SUBLANG_FRENCH_MONACO = $06; // French (Monaco) + SUBLANG_GERMAN = $01; // German + SUBLANG_GERMAN_SWISS = $02; // German (Swiss) + SUBLANG_GERMAN_AUSTRIAN = $03; // German (Austrian) + SUBLANG_GERMAN_LUXEMBOURG = $04; // German (Luxembourg) + SUBLANG_GERMAN_LIECHTENSTEIN = $05; // German (Liechtenstein) + SUBLANG_ITALIAN = $01; // Italian + SUBLANG_ITALIAN_SWISS = $02; // Italian (Swiss) + SUBLANG_KASHMIRI_SASIA = $02; // Kashmiri (South Asia) + SUBLANG_KASHMIRI_INDIA = $02; // For app compatibility only + SUBLANG_KOREAN = $01; // Korean (Extended Wansung) + SUBLANG_LITHUANIAN = $01; // Lithuanian + SUBLANG_MALAY_MALAYSIA = $01; // Malay (Malaysia) + SUBLANG_MALAY_BRUNEI_DARUSSALAM = $02; // Malay (Brunei Darussalam) + SUBLANG_NEPALI_INDIA = $02; // Nepali (India) + SUBLANG_NORWEGIAN_BOKMAL = $01; // Norwegian (Bokmal) + SUBLANG_NORWEGIAN_NYNORSK = $02; // Norwegian (Nynorsk) + SUBLANG_PORTUGUESE = $02; // Portuguese + SUBLANG_PORTUGUESE_BRAZILIAN = $01; // Portuguese (Brazilian) + SUBLANG_SERBIAN_LATIN = $02; // Serbian (Latin) + SUBLANG_SERBIAN_CYRILLIC = $03; // Serbian (Cyrillic) + SUBLANG_SPANISH = $01; // Spanish (Castilian) + SUBLANG_SPANISH_MEXICAN = $02; // Spanish (Mexican) + SUBLANG_SPANISH_MODERN = $03; // Spanish (Spain) + SUBLANG_SPANISH_GUATEMALA = $04; // Spanish (Guatemala) + SUBLANG_SPANISH_COSTA_RICA = $05; // Spanish (Costa Rica) + SUBLANG_SPANISH_PANAMA = $06; // Spanish (Panama) + SUBLANG_SPANISH_DOMINICAN_REPUBLIC = $07; // Spanish (Dominican Republic) + SUBLANG_SPANISH_VENEZUELA = $08; // Spanish (Venezuela) + SUBLANG_SPANISH_COLOMBIA = $09; // Spanish (Colombia) + SUBLANG_SPANISH_PERU = $0a; // Spanish (Peru) + SUBLANG_SPANISH_ARGENTINA = $0b; // Spanish (Argentina) + SUBLANG_SPANISH_ECUADOR = $0c; // Spanish (Ecuador) + SUBLANG_SPANISH_CHILE = $0d; // Spanish (Chile) + SUBLANG_SPANISH_URUGUAY = $0e; // Spanish (Uruguay) + SUBLANG_SPANISH_PARAGUAY = $0f; // Spanish (Paraguay) + SUBLANG_SPANISH_BOLIVIA = $10; // Spanish (Bolivia) + SUBLANG_SPANISH_EL_SALVADOR = $11; // Spanish (El Salvador) + SUBLANG_SPANISH_HONDURAS = $12; // Spanish (Honduras) + SUBLANG_SPANISH_NICARAGUA = $13; // Spanish (Nicaragua) + SUBLANG_SPANISH_PUERTO_RICO = $14; // Spanish (Puerto Rico) + SUBLANG_SWEDISH = $01; // Swedish + SUBLANG_SWEDISH_FINLAND = $02; // Swedish (Finland) + SUBLANG_URDU_PAKISTAN = $01; // Urdu (Pakistan) + SUBLANG_URDU_INDIA = $02; // Urdu (India) + SUBLANG_UZBEK_LATIN = $01; // Uzbek (Latin) + SUBLANG_UZBEK_CYRILLIC = $02; // Uzbek (Cyrillic) + + // + // Sorting IDs. + // + + SORT_DEFAULT = $0; // sorting default + + SORT_JAPANESE_XJIS = $0; // Japanese XJIS order + SORT_JAPANESE_UNICODE = $1; // Japanese Unicode order + + SORT_CHINESE_BIG5 = $0; // Chinese BIG5 order + SORT_CHINESE_PRCP = $0; // PRC Chinese Phonetic order + SORT_CHINESE_UNICODE = $1; // Chinese Unicode order + SORT_CHINESE_PRC = $2; // PRC Chinese Stroke Count order + SORT_CHINESE_BOPOMOFO = $3; // Traditional Chinese Bopomofo order + + SORT_KOREAN_KSC = $0; // Korean KSC order + SORT_KOREAN_UNICODE = $1; // Korean Unicode order + + SORT_GERMAN_PHONE_BOOK = $1; // German Phone Book order + + SORT_HUNGARIAN_DEFAULT = $0; // Hungarian Default order + SORT_HUNGARIAN_TECHNICAL = $1; // Hungarian Technical order + + SORT_GEORGIAN_TRADITIONAL = $0; // Georgian Traditional order + SORT_GEORGIAN_MODERN = $1; // Georgian Modern order + + + { SYSTEM_INFO structure } + PROCESSOR_INTEL_386 = 386; + PROCESSOR_INTEL_486 = 486; + PROCESSOR_INTEL_PENTIUM = 586; + PROCESSOR_MIPS_R4000 = 4000; + PROCESSOR_ALPHA_21064 = 21064; + { FSCTL_SET_COMPRESSION } + COMPRESSION_FORMAT_NONE = 0; + COMPRESSION_FORMAT_DEFAULT = 1; + COMPRESSION_FORMAT_LZNT1 = 2; + { TAPE_GET_DRIVE_PARAMETERS structure } + TAPE_DRIVE_COMPRESSION = 131072; + TAPE_DRIVE_ECC = 65536; + TAPE_DRIVE_ERASE_BOP_ONLY = 64; + TAPE_DRIVE_ERASE_LONG = 32; + TAPE_DRIVE_ERASE_IMMEDIATE = 128; + TAPE_DRIVE_ERASE_SHORT = 16; + TAPE_DRIVE_FIXED = 1; + TAPE_DRIVE_FIXED_BLOCK = 1024; + TAPE_DRIVE_INITIATOR = 4; + TAPE_DRIVE_PADDING = 262144; + TAPE_DRIVE_GET_ABSOLUTE_BLK = 1048576; + TAPE_DRIVE_GET_LOGICAL_BLK = 2097152; + TAPE_DRIVE_REPORT_SMKS = 524288; + TAPE_DRIVE_SELECT = 2; + TAPE_DRIVE_SET_EOT_WZ_SIZE = 4194304; + TAPE_DRIVE_TAPE_CAPACITY = 256; + TAPE_DRIVE_TAPE_REMAINING = 512; + TAPE_DRIVE_VARIABLE_BLOCK = 2048; + TAPE_DRIVE_WRITE_PROTECT = 4096; + TAPE_DRIVE_ABS_BLK_IMMED = -(2147475456); + TAPE_DRIVE_ABSOLUTE_BLK = -(2147479552); + TAPE_DRIVE_END_OF_DATA = -(2147418112); + TAPE_DRIVE_FILEMARKS = -(2147221504); + TAPE_DRIVE_LOAD_UNLOAD = -(2147483647); + TAPE_DRIVE_LOAD_UNLD_IMMED = -(2147483616); + TAPE_DRIVE_LOCK_UNLOCK = -(2147483644); + TAPE_DRIVE_LOCK_UNLK_IMMED = -(2147483520); + TAPE_DRIVE_LOG_BLK_IMMED = -(2147450880); + TAPE_DRIVE_LOGICAL_BLK = -(2147467264); + TAPE_DRIVE_RELATIVE_BLKS = -(2147352576); + TAPE_DRIVE_REVERSE_POSITION = -(2143289344); + TAPE_DRIVE_REWIND_IMMEDIATE = -(2147483640); + TAPE_DRIVE_SEQUENTIAL_FMKS = -(2146959360); + TAPE_DRIVE_SEQUENTIAL_SMKS = -(2145386496); + TAPE_DRIVE_SET_BLOCK_SIZE = -(2147483632); + TAPE_DRIVE_SET_COMPRESSION = -(2147483136); + TAPE_DRIVE_SET_ECC = -(2147483392); + TAPE_DRIVE_SET_PADDING = -(2147482624); + TAPE_DRIVE_SET_REPORT_SMKS = -(2147481600); + TAPE_DRIVE_SETMARKS = -(2146435072); + TAPE_DRIVE_SPACE_IMMEDIATE = -(2139095040); + TAPE_DRIVE_TENSION = -(2147483646); + TAPE_DRIVE_TENSION_IMMED = -(2147483584); + TAPE_DRIVE_WRITE_FILEMARKS = -(2113929216); + TAPE_DRIVE_WRITE_LONG_FMKS = -(2013265920); + TAPE_DRIVE_WRITE_MARK_IMMED = -(1879048192); + TAPE_DRIVE_WRITE_SETMARKS = -(2130706432); + TAPE_DRIVE_WRITE_SHORT_FMKS = -(2080374784); + { ACCESS_MASK, ACCESS TYPES } +// DELETE = $00010000; //+winnt // The name conflicts with Delete procedure + READ_CONTROL = $00020000; //+winnt + WRITE_DAC = $00040000; //winnt + WRITE_OWNER = $00080000; //winnt + SYNCHRONIZE = $00100000; //winnt + // + // MaximumAllowed access type + // + MAXIMUM_ALLOWED = $2000000; //winnt + GENERIC_READ = $80000000; //winnt + GENERIC_WRITE = $40000000; //winnt + GENERIC_EXECUTE = $20000000; //+winnt + GENERIC_ALL = $10000000; //winnt + { Standard rights } + STANDARD_RIGHTS_REQUIRED = $f0000; //winnt + STANDARD_RIGHTS_WRITE = READ_CONTROL; //~winnt + STANDARD_RIGHTS_READ = READ_CONTROL; //~winnt + STANDARD_RIGHTS_EXECUTE = READ_CONTROL; //~winnt + STANDARD_RIGHTS_ALL = $1f0000; + SPECIFIC_RIGHTS_ALL = $ffff; + // + // AccessSystemAcl access type + // + ACCESS_SYSTEM_SECURITY = $1000000; + { SID } + ///////////////////////////////////////////////////////////////////////////// + // // + // Universal well-known SIDs // + // // + // Null SID S-1-0-0 // + // World S-1-1-0 // + // Local S-1-2-0 // + // Creator Owner ID S-1-3-0 // + // Creator Group ID S-1-3-1 // + // Creator Owner Server ID S-1-3-2 // + // Creator Group Server ID S-1-3-3 // + // // + // (Non-unique IDs) S-1-4 // + // // + ///////////////////////////////////////////////////////////////////////////// + + SECURITY_NULL_SID_AUTHORITY : SID_IDENTIFIER_AUTHORITY_REC = ( 0,0,0,0,0,0); //+winnt + SECURITY_WORLD_SID_AUTHORITY : SID_IDENTIFIER_AUTHORITY_REC = (0,0,0,0,0,1); //+winnt + SECURITY_LOCAL_SID_AUTHORITY : SID_IDENTIFIER_AUTHORITY_REC = (0,0,0,0,0,2); //+winnt + SECURITY_CREATOR_SID_AUTHORITY : SID_IDENTIFIER_AUTHORITY_REC = (0,0,0,0,0,3);//+winnt + SECURITY_NON_UNIQUE_AUTHORITY : SID_IDENTIFIER_AUTHORITY_REC = (0,0,0,0,0,4); //+winnt + SECURITY_NULL_RID = 0; //winnt + SECURITY_WORLD_RID = 0; //winnt + SECURITY_LOCAL_RID = 0; //winnt + SECURITY_CREATOR_OWNER_RID = 0; //winnt + SECURITY_CREATOR_GROUP_RID = $1; //winnt + SECURITY_CREATOR_OWNER_SERVER_RID = $2; //+winnt + SECURITY_CREATOR_GROUP_SERVER_RID = $3; //+winnt + ///////////////////////////////////////////////////////////////////////////// + // // + // NT well-known SIDs // + // // + // NT Authority S-1-5 // + // Dialup S-1-5-1 // + // // + // Network S-1-5-2 // + // Batch S-1-5-3 // + // Interactive S-1-5-4 // + // Service S-1-5-6 // + // AnonymousLogon S-1-5-7 (aka null logon session) // + // Proxy S-1-5-8 // + // ServerLogon S-1-5-9 (aka domain controller account) // + // Self S-1-5-10 (self RID) // + // Authenticated User S-1-5-11 (Authenticated user somewhere) // + // Restricted Code S-1-5-12 (Running restricted code) // + // // + // (Logon IDs) S-1-5-5-X-Y // + // // + // (NT non-unique IDs) S-1-5-0x15-... // + // // + // (Built-in domain) s-1-5-0x20 // + // // + ///////////////////////////////////////////////////////////////////////////// + SECURITY_NT_AUTHORITY : SID_IDENTIFIER_AUTHORITY_REC = (0,0,0,0,0,5); //+winnt + + SECURITY_DIALUP_RID = $1; //winnt + SECURITY_NETWORK_RID = $2; //winnt + SECURITY_BATCH_RID = $3; //winnt + SECURITY_INTERACTIVE_RID = $4; //winnt + SECURITY_LOGON_IDS_RID = $5; //winnt + SECURITY_LOGON_IDS_RID_COUNT = $3; //winnt + SECURITY_SERVICE_RID = $6; //winnt + SECURITY_ANONYMOUS_LOGON_RID = $00000007; //+winnt + SECURITY_PROXY_RID = $00000008; //+winnt + SECURITY_ENTERPRISE_CONTROLLERS_RID = $00000009; //+winnt + SECURITY_SERVER_LOGON_RID = SECURITY_ENTERPRISE_CONTROLLERS_RID; //+winnt + SECURITY_PRINCIPAL_SELF_RID = $0000000A; //+winnt + SECURITY_AUTHENTICATED_USER_RID = $0000000B; //+winnt + SECURITY_RESTRICTED_CODE_RID = $0000000C; //+winnt + + SECURITY_LOCAL_SYSTEM_RID = $12; //winnt + SECURITY_NT_NON_UNIQUE = $00000015; //+winnt + SECURITY_BUILTIN_DOMAIN_RID = $20; //winnt + // Well-known users ... + DOMAIN_USER_RID_ADMIN = $1f4; //winnt + DOMAIN_USER_RID_GUEST = $1f5; //winnt + DOMAIN_USER_RID_KRBTGT = $000001F6; //+winnt + // well-known groups ... + DOMAIN_GROUP_RID_ADMINS = $200; //winnt + DOMAIN_GROUP_RID_USERS = $201; //winnt + DOMAIN_GROUP_RID_GUESTS = $00000202; //+winnt + DOMAIN_GROUP_RID_COMPUTERS = $00000203; //+winnt + DOMAIN_GROUP_RID_CONTROLLERS = $00000204; //+winnt + DOMAIN_GROUP_RID_CERT_ADMINS = $00000205; //+winnt + DOMAIN_GROUP_RID_SCHEMA_ADMINS = $00000206; //+winnt + DOMAIN_GROUP_RID_ENTERPRISE_ADMINS = $00000207; //+winnt + // well-known aliases ... + DOMAIN_ALIAS_RID_ADMINS = $220; //winnt + DOMAIN_ALIAS_RID_USERS = $221; //winnt + DOMAIN_ALIAS_RID_GUESTS = $222; //winnt + DOMAIN_ALIAS_RID_POWER_USERS = $223; //winnt + DOMAIN_ALIAS_RID_ACCOUNT_OPS = $224; //winnt + DOMAIN_ALIAS_RID_SYSTEM_OPS = $225; //winnt + DOMAIN_ALIAS_RID_PRINT_OPS = $226; //winnt + DOMAIN_ALIAS_RID_BACKUP_OPS = $227; //winnt + DOMAIN_ALIAS_RID_REPLICATOR = $228; //winnt + + // + // Allocate the System Luid. The first 1000 LUIDs are reserved. + // Use #999 here (0x3E7 = 999) + // + SYSTEM_LUID : LUID = ( LowPart: $3E7; HighPart: $0 ); + ANONYMOUS_LOGON_LUID : LUID = (LowPart: $3e6; HighPart: $0 ); + + // + // Group attributes + // + SE_GROUP_MANDATORY = $1; //winnt + SE_GROUP_ENABLED_BY_DEFAULT = $2; //winnt + SE_GROUP_ENABLED = $4; //winnt + SE_GROUP_OWNER = $8; //winnt + SE_GROUP_USE_FOR_DENY_ONLY = $00000010; //+winnt + SE_GROUP_LOGON_ID = $c0000000; //winnt + + { ACL Defines } + ACL_REVISION = 2; + ACL_REVISION_DS = 4; //+winnt + // This is the history of ACL revisions. Add a new one whenever + // ACL_REVISION is updated + ACL_REVISION1=1; //+winnt + ACL_REVISION2=2; //+winnt + ACL_REVISION3=3; //+winnt + ACL_REVISION4=4; //+winnt + MIN_ACL_REVISION=ACL_REVISION2; //+winnt + MAX_ACL_REVISION=ACL_REVISION4; //+winnt + { ACE_HEADER structure } + ACCESS_MIN_MS_ACE_TYPE = $0; //+winnt + ACCESS_ALLOWED_ACE_TYPE = $0; + ACCESS_DENIED_ACE_TYPE = $1; + SYSTEM_AUDIT_ACE_TYPE = $2; + SYSTEM_ALARM_ACE_TYPE = $3; + ACCESS_MAX_MS_V2_ACE_TYPE = $3; //+winnt + ACCESS_ALLOWED_COMPOUND_ACE_TYPE = $4; //+winnt + ACCESS_MAX_MS_V3_ACE_TYPE = $4; + + ACCESS_MIN_MS_OBJECT_ACE_TYPE = $5; //+winnt + ACCESS_ALLOWED_OBJECT_ACE_TYPE = $5; //+winnt + ACCESS_DENIED_OBJECT_ACE_TYPE = $6; //+winnt + SYSTEM_AUDIT_OBJECT_ACE_TYPE = $7; //+winnt + SYSTEM_ALARM_OBJECT_ACE_TYPE = $8; //+winnt + ACCESS_MAX_MS_OBJECT_ACE_TYPE = $8; //+winnt + + ACCESS_MAX_MS_V4_ACE_TYPE = $8; //+winnt + ACCESS_MAX_MS_ACE_TYPE = $8; //+winnt + + { ACE flags in the ACE_HEADER structure } + // + // The following are the inherit flags that go into the AceFlags field + // of an Ace header. + // + OBJECT_INHERIT_ACE = $1; //winnt + CONTAINER_INHERIT_ACE = $2; //winnt + NO_PROPAGATE_INHERIT_ACE = $4; //winnt + INHERIT_ONLY_ACE = $8; //winnt + INHERITED_ACE = $10; //+winnt + VALID_INHERIT_FLAGS = $1F; //+winnt + // The following are the currently defined ACE flags that go into the + // AceFlags field of an ACE header. Each ACE type has its own set of + // AceFlags. + // + // SUCCESSFUL_ACCESS_ACE_FLAG - used only with system audit and alarm ACE + // types to indicate that a message is generated for successful accesses. + // + // FAILED_ACCESS_ACE_FLAG - used only with system audit and alarm ACE types + // to indicate that a message is generated for failed accesses. + // + // + // SYSTEM_AUDIT and SYSTEM_ALARM AceFlags + // + // These control the signaling of audit and alarms for success or failure. + // + SUCCESSFUL_ACCESS_ACE_FLAG = $40; //winnt + FAILED_ACCESS_ACE_FLAG = $80; //winnt + { SECURITY_DESCRIPTOR_CONTROL } + {SECURITY_DESCRIPTOR_REVISION = 1;already defined above } + SECURITY_DESCRIPTOR_MIN_LENGTH = 20; + SE_OWNER_DEFAULTED = 1; + SE_GROUP_DEFAULTED = 2; + SE_DACL_PRESENT = 4; + SE_DACL_DEFAULTED = 8; + SE_SACL_PRESENT = 16; + SE_SACL_DEFAULTED = 32; + SE_SELF_RELATIVE = 32768; + { PRIVILEGE_SET } + SE_PRIVILEGE_ENABLED_BY_DEFAULT = $1; + SE_PRIVILEGE_ENABLED = $2; + SE_PRIVILEGE_USED_FOR_ACCESS = $80000000; + PRIVILEGE_SET_ALL_NECESSARY = $1; + { OPENFILENAME structure } + OFN_ALLOWMULTISELECT = $200; + OFN_CREATEPROMPT = $2000; + OFN_ENABLEHOOK = $20; + OFN_ENABLETEMPLATE = $40; + OFN_ENABLETEMPLATEHANDLE = $80; + OFN_EXPLORER = $80000; + OFN_EXTENSIONDIFFERENT = $400; + OFN_FILEMUSTEXIST = $1000; + OFN_HIDEREADONLY = $4; + OFN_LONGNAMES = $200000; + OFN_NOCHANGEDIR = $8; + OFN_NODEREFERENCELINKS = $100000; + OFN_NOLONGNAMES = $40000; + OFN_NONETWORKBUTTON = $20000; + OFN_NOREADONLYRETURN = $8000; + OFN_NOTESTFILECREATE = $10000; + OFN_NOVALIDATE = $100; + OFN_OVERWRITEPROMPT = $2; + OFN_PATHMUSTEXIST = $800; + OFN_READONLY = $1; + OFN_SHAREAWARE = $4000; + OFN_SHOWHELP = $10; + OFN_PROJECT = $00400000; + OFN_PROPERTY = $00800000; + OFN_SHOW_ALL = $01000000; + { SHAREVISTRING message } + OFN_SHAREFALLTHROUGH = $2; + OFN_SHARENOWARN = $1; + OFN_SHAREWARN = 0; + { Open/Save notifications } + CDN_INITDONE = $fffffda7; + CDN_SELCHANGE = $fffffda6; + CDN_FOLDERCHANGE = $fffffda5; + CDN_SHAREVIOLATION = $fffffda4; + CDN_HELP = $fffffda3; + CDN_FILEOK = $fffffda2; + CDN_TYPECHANGE = $fffffda1; + { Open/Save messages } + CDM_GETFILEPATH = $465; + CDM_GETFOLDERIDLIST = $467; + CDM_GETFOLDERPATH = $466; + CDM_GETSPEC = $464; + CDM_HIDECONTROL = $469; + CDM_SETCONTROLTEXT = $468; + CDM_SETDEFEXT = $46a; + { CHOOSECOLOR structure } + CC_ENABLEHOOK = $10; + CC_ENABLETEMPLATE = $20; + CC_ENABLETEMPLATEHANDLE = $40; + CC_FULLOPEN = $2; + CC_PREVENTFULLOPEN = $4; + CC_RGBINIT = $1; + CC_SHOWHELP = $8; + CC_SOLIDCOLOR = $80; + { FINDREPLACE structure } + FR_DIALOGTERM = $40; + FR_DOWN = $1; + FR_ENABLEHOOK = $100; + FR_ENABLETEMPLATE = $200; + FR_ENABLETEMPLATEHANDLE = $2000; + FR_FINDNEXT = $8; + FR_HIDEUPDOWN = $4000; + FR_HIDEMATCHCASE = $8000; + FR_HIDEWHOLEWORD = $10000; + FR_MATCHCASE = $4; + FR_NOMATCHCASE = $800; + FR_NOUPDOWN = $400; + FR_NOWHOLEWORD = $1000; + FR_REPLACE = $10; + FR_REPLACEALL = $20; + FR_SHOWHELP = $80; + FR_WHOLEWORD = $2; + { CHOOSEFONT structure } + CF_APPLY = $200; + CF_ANSIONLY = $400; + CF_BOTH = $3; + CF_TTONLY = $40000; + CF_EFFECTS = $100; + CF_ENABLEHOOK = $8; + CF_ENABLETEMPLATE = $10; + CF_ENABLETEMPLATEHANDLE = $20; + CF_FIXEDPITCHONLY = $4000; + CF_FORCEFONTEXIST = $10000; + CF_INITTOLOGFONTSTRUCT = $40; + CF_LIMITSIZE = $2000; + CF_NOOEMFONTS = $800; + CF_NOFACESEL = $80000; + CF_NOSCRIPTSEL = $800000; + CF_NOSTYLESEL = $100000; + CF_NOSIZESEL = $200000; + CF_NOSIMULATIONS = $1000; + CF_NOVECTORFONTS = $800; + CF_NOVERTFONTS = $1000000; + CF_PRINTERFONTS = $2; + CF_SCALABLEONLY = $20000; + CF_SCREENFONTS = $1; + CF_SCRIPTSONLY = $400; + CF_SELECTSCRIPT = $400000; + CF_SHOWHELP = $4; + CF_USESTYLE = $80; + CF_WYSIWYG = $8000; + BOLD_FONTTYPE = $100; + ITALIC_FONTTYPE = $200; + PRINTER_FONTTYPE = $4000; + REGULAR_FONTTYPE = $400; + SCREEN_FONTTYPE = $2000; + SIMULATED_FONTTYPE = $8000; + { Common dialog messages } + COLOROKSTRINGW = 'commdlg_ColorOK'; + FILEOKSTRINGW = 'commdlg_FileNameOK'; + FINDMSGSTRINGW = 'commdlg_FindReplace'; + HELPMSGSTRINGW = 'commdlg_help'; + LBSELCHSTRINGW = 'commdlg_LBSelChangedNotify'; + SETRGBSTRINGW = 'commdlg_SetRGBColor'; + SHAREVISTRINGW = 'commdlg_ShareViolation'; + COLOROKSTRINGA = 'commdlg_ColorOK'; + FILEOKSTRINGA = 'commdlg_FileNameOK'; + FINDMSGSTRINGA = 'commdlg_FindReplace'; + HELPMSGSTRINGA = 'commdlg_help'; + LBSELCHSTRINGA = 'commdlg_LBSelChangedNotify'; + SETRGBSTRINGA = 'commdlg_SetRGBColor'; + SHAREVISTRINGA = 'commdlg_ShareViolation'; +{$ifdef UNICODE} + + const + COLOROKSTRING = COLOROKSTRINGW; + FILEOKSTRING = FILEOKSTRINGW; + FINDMSGSTRING = FINDMSGSTRINGW; + HELPMSGSTRING = HELPMSGSTRINGW; + LBSELCHSTRING = LBSELCHSTRINGW; + SETRGBSTRING = SETRGBSTRINGW; + SHAREVISTRING = SHAREVISTRINGW; +{$else} + + const + COLOROKSTRING = COLOROKSTRINGA; + FILEOKSTRING = FILEOKSTRINGA; + FINDMSGSTRING = FINDMSGSTRINGA; + HELPMSGSTRING = HELPMSGSTRINGA; + LBSELCHSTRING = LBSELCHSTRINGA; + SETRGBSTRING = SETRGBSTRINGA; + SHAREVISTRING = SHAREVISTRINGA; +{$endif} + { LBSELCHSTRING message } + + const + CD_LBSELCHANGE = 0; + CD_LBSELADD = 2; + CD_LBSELSUB = 1; + CD_LBSELNOITEMS = -(1); + { DEVNAMES structure } + DN_DEFAULTPRN = 1; + { PRINTDLG structure } + PD_ALLPAGES = 0; + PD_COLLATE = 16; + PD_DISABLEPRINTTOFILE = 524288; + PD_ENABLEPRINTHOOK = 4096; + PD_ENABLEPRINTTEMPLATE = 16384; + PD_ENABLEPRINTTEMPLATEHANDLE = 65536; + PD_ENABLESETUPHOOK = 8192; + PD_ENABLESETUPTEMPLATE = 32768; + PD_ENABLESETUPTEMPLATEHANDLE = 131072; + PD_HIDEPRINTTOFILE = 1048576; + PD_NOPAGENUMS = 8; + PD_NOSELECTION = 4; + PD_NOWARNING = 128; + PD_PAGENUMS = 2; + PD_PRINTSETUP = 64; + PD_PRINTTOFILE = 32; + PD_RETURNDC = 256; + PD_RETURNDEFAULT = 1024; + PD_RETURNIC = 512; + PD_SELECTION = 1; + PD_SHOWHELP = 2048; + PD_USEDEVMODECOPIES = 262144; + PD_USEDEVMODECOPIESANDCOLLATE = 262144; + { PAGESETUPDLG structure } + PSD_DEFAULTMINMARGINS = 0; + PSD_DISABLEMARGINS = 16; + PSD_DISABLEORIENTATION = 256; + PSD_DISABLEPAGEPAINTING = 524288; + PSD_DISABLEPAPER = 512; + PSD_DISABLEPRINTER = 32; + PSD_ENABLEPAGEPAINTHOOK = 262144; + PSD_ENABLEPAGESETUPHOOK = 8192; + PSD_ENABLEPAGESETUPTEMPLATE = 32768; + PSD_ENABLEPAGESETUPTEMPLATEHANDLE = 131072; + PSD_INHUNDREDTHSOFMILLIMETERS = 8; + PSD_INTHOUSANDTHSOFINCHES = 4; + PSD_INWININIINTLMEASURE = 0; + PSD_MARGINS = 2; + PSD_MINMARGINS = 1; + PSD_NOWARNING = 128; + PSD_RETURNDEFAULT = 1024; + PSD_SHOWHELP = 2048; + { WM_SHOWWINDOW message } + SW_OTHERUNZOOM = 4; + SW_OTHERZOOM = 2; + SW_PARENTCLOSING = 1; + SW_PARENTOPENING = 3; + { Virtual Key codes } + VK_LBUTTON = 1; + VK_RBUTTON = 2; + VK_CANCEL = 3; + VK_MBUTTON = 4; + VK_BACK = 8; + VK_TAB = 9; + VK_CLEAR = 12; + VK_RETURN = 13; + VK_SHIFT = 16; + VK_CONTROL = 17; + VK_MENU = 18; + VK_PAUSE = 19; + VK_CAPITAL = 20; + VK_ESCAPE = 27; + VK_SPACE = 32; + VK_PRIOR = 33; + VK_NEXT = 34; + VK_END = 35; + VK_HOME = 36; + VK_LEFT = 37; + VK_UP = 38; + VK_RIGHT = 39; + VK_DOWN = 40; + VK_SELECT = 41; + VK_PRINT = 42; + VK_EXECUTE = 43; + VK_SNAPSHOT = 44; + VK_INSERT = 45; + VK_DELETE = 46; + VK_HELP = 47; + VK_0 = 48; + VK_1 = 49; + VK_2 = 50; + VK_3 = 51; + VK_4 = 52; + VK_5 = 53; + VK_6 = 54; + VK_7 = 55; + VK_8 = 56; + VK_9 = 57; + VK_A = 65; + VK_B = 66; + VK_C = 67; + VK_D = 68; + VK_E = 69; + VK_F = 70; + VK_G = 71; + VK_H = 72; + VK_I = 73; + VK_J = 74; + VK_K = 75; + VK_L = 76; + VK_M = 77; + VK_N = 78; + VK_O = 79; + VK_P = 80; + VK_Q = 81; + VK_R = 82; + VK_S = 83; + VK_T = 84; + VK_U = 85; + VK_V = 86; + VK_W = 87; + VK_X = 88; + VK_Y = 89; + VK_Z = 90; + VK_LWIN = 91; + VK_RWIN = 92; + VK_APPS = 93; + VK_NUMPAD0 = 96; + VK_NUMPAD1 = 97; + VK_NUMPAD2 = 98; + VK_NUMPAD3 = 99; + VK_NUMPAD4 = 100; + VK_NUMPAD5 = 101; + VK_NUMPAD6 = 102; + VK_NUMPAD7 = 103; + VK_NUMPAD8 = 104; + VK_NUMPAD9 = 105; + VK_MULTIPLY = 106; + VK_ADD = 107; + VK_SEPARATOR = 108; + VK_SUBTRACT = 109; + VK_DECIMAL = 110; + VK_DIVIDE = 111; + VK_F1 = 112; + VK_F2 = 113; + VK_F3 = 114; + VK_F4 = 115; + VK_F5 = 116; + VK_F6 = 117; + VK_F7 = 118; + VK_F8 = 119; + VK_F9 = 120; + VK_F10 = 121; + VK_F11 = 122; + VK_F12 = 123; + VK_F13 = 124; + VK_F14 = 125; + VK_F15 = 126; + VK_F16 = 127; + VK_F17 = 128; + VK_F18 = 129; + VK_F19 = 130; + VK_F20 = 131; + VK_F21 = 132; + VK_F22 = 133; + VK_F23 = 134; + VK_F24 = 135; + { GetAsyncKeyState } + VK_NUMLOCK = 144; + VK_SCROLL = 145; + VK_LSHIFT = 160; + VK_LCONTROL = 162; + VK_LMENU = 164; + VK_RSHIFT = 161; + VK_RCONTROL = 163; + VK_RMENU = 165; + { ImmGetVirtualKey } + VK_PROCESSKEY = 229; + + // these constants are xda-specific: + VK_TOUCHPAD = $01; // VK_LBUTTON + VK_ANSWER = $72; // VK_F5 + VK_HANGUP = $73; // VK_F4 + VK_VOLUME = $75; // VK_F6 + + VK_TOPBUTTONS = $5b; // VK_LWIN + // VK_TOPBUTTONS is sent together with one of these: + VK_CALENDER = $C1; + VK_CONTACTS = $C2; + + // note that when holding the navigator button down continuously, + // occasionally the OS will report no keys pressed down. + + VK_NAVIGATOR_MOVE = $84; // VK_F21 + // VK_NAVIGATOR_MOVE is sent together with one of these: + VK_NAVIGATE_LEFT = $25; // VK_LEFT + VK_NAVIGATE_UP = $26; // VK_UP + VK_NAVIGATE_RIGHT = $27; // VK_RIGHT + VK_NAVIGATE_DOWN = $28; // VK_DOWN + + VK_NAVIGATOR_SELECT = $86; // VK_F23 + + VK_ONOFF = $DF; // VK_OFF + + { Keystroke Message Flags } + KF_ALTDOWN = 8192; + KF_DLGMODE = 2048; + KF_EXTENDED = 256; + KF_MENUMODE = 4096; + KF_REPEAT = 16384; + KF_UP = 32768; + { GetKeyboardLayoutName } + KL_NAMELENGTH = 9; + { WM_ACTIVATE message } + WA_ACTIVE = 1; + WA_CLICKACTIVE = 2; + WA_INACTIVE = 0; + { WM_ACTIVATE message } + PWR_CRITICALRESUME = 3; + PWR_SUSPENDREQUEST = 1; + PWR_SUSPENDRESUME = 2; + PWR_FAIL = -(1); + PWR_OK = 1; + { WM_NOTIFYFORMAT message } + NF_QUERY = 3; + NF_REQUERY = 4; + NFR_ANSI = 1; + NFR_UNICODE = 2; + { WM_SIZING message } + WMSZ_BOTTOM = 6; + WMSZ_BOTTOMLEFT = 7; + WMSZ_BOTTOMRIGHT = 8; + WMSZ_LEFT = 1; + WMSZ_RIGHT = 2; + WMSZ_TOP = 3; + WMSZ_TOPLEFT = 4; + WMSZ_TOPRIGHT = 5; + { WM_MOUSEACTIVATE message } + MA_ACTIVATE = 1; + MA_ACTIVATEANDEAT = 2; + MA_NOACTIVATE = 3; + MA_NOACTIVATEANDEAT = 4; + { WM_SIZE message } + SIZE_MAXHIDE = 4; + SIZE_MAXIMIZED = 2; + SIZE_MAXSHOW = 3; + SIZE_MINIMIZED = 1; + SIZE_RESTORED = 0; + { WM_NCCALCSIZE message } + WVR_ALIGNTOP = 16; + WVR_ALIGNLEFT = 32; + WVR_ALIGNBOTTOM = 64; + WVR_ALIGNRIGHT = 128; + WVR_HREDRAW = 256; + WVR_VREDRAW = 512; + WVR_REDRAW = 768; + WVR_VALIDRECTS = 1024; + { WM_NCHITTEST message } + HTBOTTOM = 15; + HTBOTTOMLEFT = 16; + HTBOTTOMRIGHT = 17; + HTCAPTION = 2; + HTCLIENT = 1; + HTERROR = -(2); + HTGROWBOX = 4; + HTHSCROLL = 6; + HTLEFT = 10; + HTMENU = 5; + HTNOWHERE = 0; + HTREDUCE = 8; + HTRIGHT = 11; + HTSIZE = 4; + HTSYSMENU = 3; + HTTOP = 12; + HTTOPLEFT = 13; + HTTOPRIGHT = 14; + HTTRANSPARENT = -(1); + HTVSCROLL = 7; + HTZOOM = 9; + { Mouse messages } + MK_CONTROL = 8; + MK_LBUTTON = 1; + MK_MBUTTON = 16; + MK_RBUTTON = 2; + MK_SHIFT = 4; + { WNDCLASS structure } + CS_VREDRAW = 1; + CS_HREDRAW = 2; + CS_DBLCLKS = 8; + CS_PARENTDC = 128; + CS_NOCLOSE = 512; + CS_SAVEBITS = 2048; + CS_GLOBALCLASS = 16384; + CS_IME = $10000; + + DLGWINDOWEXTRA = 32; + { ACCEL structure } + FALT = 16; + FCONTROL = 8; + FNOINVERT = 2; + FSHIFT = 4; + FVIRTKEY = 1; + { MENUITEMINFO structure } + MIIM_CHECKMARKS = 8; + MIIM_DATA = 32; + MIIM_ID = 2; + MIIM_STATE = 1; + MIIM_SUBMENU = 4; + MIIM_TYPE = 16; + MFT_BITMAP = $4; + MFT_MENUBARBREAK = $20; + MFT_MENUBREAK = $40; + MFT_OWNERDRAW = $100; + MFT_RADIOCHECK = $200; + MFT_RIGHTJUSTIFY = $4000; + MFT_SEPARATOR = $800; + MFT_STRING = 0; + MFS_CHECKED = $8; + MFS_DEFAULT = $1000; + MFS_DISABLED = $3; + MFS_ENABLED = 0; + MFS_GRAYED = $3; + MFS_HILITE = $80; + MFS_UNCHECKED = 0; + MFS_UNHILITE = 0; + { SERIALKEYS structure } + SERKF_AVAILABLE = 2; + SERKF_INDICATOR = 4; + SERKF_SERIALKEYSON = 1; + { FILTERKEYS structure } + FKF_AVAILABLE = 2; + FKF_CLICKON = 64; + FKF_FILTERKEYSON = 1; + FKF_HOTKEYACTIVE = 4; + FKF_HOTKEYSOUND = 16; + FKF_CONFIRMHOTKEY = 8; + FKF_INDICATOR = 32; + { HELPINFO structure } + HELPINFO_MENUITEM = 2; + HELPINFO_WINDOW = 1; + { WM_PRINT message } + PRF_CHECKVISIBLE = $1; + PRF_CHILDREN = $10; + PRF_CLIENT = $4; + PRF_ERASEBKGND = $8; + PRF_NONCLIENT = $2; + PRF_OWNED = $20; + { MapWindowPoints } + { was #define dname def_expr } + HWND_DESKTOP = HWND(0); + + { WM_SYSCOMMAND message } + + const + SC_CLOSE = 61536; + SC_CONTEXTHELP = 61824; + SC_DEFAULT = 61792; + SC_HOTKEY = 61776; + SC_HSCROLL = 61568; + SC_KEYMENU = 61696; + SC_MAXIMIZE = 61488; + SC_ZOOM = 61488; + SC_MINIMIZE = 61472; + SC_ICON = 61472; + SC_MONITORPOWER = 61808; + SC_MOUSEMENU = 61584; + SC_MOVE = 61456; + SC_NEXTWINDOW = 61504; + SC_PREVWINDOW = 61520; + SC_RESTORE = 61728; + SC_SCREENSAVE = 61760; + SC_SIZE = 61440; + SC_TASKLIST = 61744; + SC_VSCROLL = 61552; + { DM_GETDEFID message } + DC_HASDEFID = 21323; + { WM_GETDLGCODE message } + DLGC_BUTTON = 8192; + DLGC_DEFPUSHBUTTON = 16; + DLGC_HASSETSEL = 8; + DLGC_RADIOBUTTON = 64; + DLGC_STATIC = 256; + DLGC_UNDEFPUSHBUTTON = 32; + DLGC_WANTALLKEYS = 4; + DLGC_WANTARROWS = 1; + DLGC_WANTCHARS = 128; + DLGC_WANTMESSAGE = 4; + DLGC_WANTTAB = 2; + { EM_SETMARGINS message } + EC_LEFTMARGIN = 1; + EC_RIGHTMARGIN = 2; + EC_USEFONTINFO = 65535; + { LB_SETCOUNT message } + LB_ERR = -(1); + LB_ERRSPACE = -(2); + LB_OKAY = 0; + { CB_DIR message } + CB_ERR = -(1); + CB_ERRSPACE = -(2); + { WM_IME_CONTROL message } + IMC_GETCANDIDATEPOS = 7; + IMC_GETCOMPOSITIONFONT = 9; + IMC_GETCOMPOSITIONWINDOW = 11; + IMC_GETSTATUSWINDOWPOS = 15; + IMC_CLOSESTATUSWINDOW = 33; + IMC_OPENSTATUSWINDOW = 34; + IMC_SETCANDIDATEPOS = 8; + IMC_SETCOMPOSITIONFONT = 10; + IMC_SETCOMPOSITIONWINDOW = 12; + IMC_SETSTATUSWINDOWPOS = 16; + { WM_IME_CONTROL message } + IMN_CHANGECANDIDATE = 3; + IMN_CLOSECANDIDATE = 4; + IMN_CLOSESTATUSWINDOW = 1; + IMN_GUIDELINE = 13; + IMN_OPENCANDIDATE = 5; + IMN_OPENSTATUSWINDOW = 2; + IMN_SETCANDIDATEPOS = 9; + IMN_SETCOMPOSITIONFONT = 10; + IMN_SETCOMPOSITIONWINDOW = 11; + IMN_SETCONVERSIONMODE = 6; + IMN_SETOPENSTATUS = 8; + IMN_SETSENTENCEMODE = 7; + IMN_SETSTATUSWINDOWPOS = 12; + IMN_PRIVATE = 14; + { STICKYKEYS structure } + SKF_AUDIBLEFEEDBACK = 64; + SKF_AVAILABLE = 2; + SKF_CONFIRMHOTKEY = 8; + SKF_HOTKEYACTIVE = 4; + SKF_HOTKEYSOUND = 16; + SKF_INDICATOR = 32; + SKF_STICKYKEYSON = 1; + SKF_TRISTATE = 128; + SKF_TWOKEYSOFF = 256; + { MOUSEKEYS structure } + MKF_AVAILABLE = 2; + MKF_CONFIRMHOTKEY = 8; + MKF_HOTKEYACTIVE = 4; + MKF_HOTKEYSOUND = 16; + MKF_INDICATOR = 32; + MKF_MOUSEKEYSON = 1; + MKF_MODIFIERS = 64; + MKF_REPLACENUMBERS = 128; + { SOUNDSENTRY structure } + SSF_AVAILABLE = 2; + SSF_SOUNDSENTRYON = 1; + SSTF_BORDER = 2; + SSTF_CHARS = 1; + SSTF_DISPLAY = 3; + SSTF_NONE = 0; + SSGF_DISPLAY = 3; + SSGF_NONE = 0; + SSWF_CUSTOM = 4; + SSWF_DISPLAY = 3; + SSWF_NONE = 0; + SSWF_TITLE = 1; + SSWF_WINDOW = 2; + { ACCESSTIMEOUT structure } + ATF_ONOFFFEEDBACK = 2; + ATF_TIMEOUTON = 1; + { HIGHCONTRAST structure } + HCF_AVAILABLE = 2; + HCF_CONFIRMHOTKEY = 8; + HCF_HIGHCONTRASTON = 1; + HCF_HOTKEYACTIVE = 4; + HCF_HOTKEYAVAILABLE = 64; + HCF_HOTKEYSOUND = 16; + HCF_INDICATOR = 32; + { TOGGLEKEYS structure } + TKF_AVAILABLE = 2; + TKF_CONFIRMHOTKEY = 8; + TKF_HOTKEYACTIVE = 4; + TKF_HOTKEYSOUND = 16; + TKF_TOGGLEKEYSON = 1; + { Installable Policy } + PP_DISPLAYERRORS = 1; + { SERVICE_INFO structure } + RESOURCEDISPLAYTYPE_DOMAIN = 1; + RESOURCEDISPLAYTYPE_FILE = 4; + RESOURCEDISPLAYTYPE_GENERIC = 0; + RESOURCEDISPLAYTYPE_GROUP = 5; + RESOURCEDISPLAYTYPE_SERVER = 2; + RESOURCEDISPLAYTYPE_SHARE = 3; + { KEY_EVENT_RECORD structure } + CAPSLOCK_ON = 128; + ENHANCED_KEY = 256; + LEFT_ALT_PRESSED = 2; + LEFT_CTRL_PRESSED = 8; + NUMLOCK_ON = 32; + RIGHT_ALT_PRESSED = 1; + RIGHT_CTRL_PRESSED = 4; + SCROLLLOCK_ON = 64; + SHIFT_PRESSED = 16; + { MOUSE_EVENT_RECORD structure } + FROM_LEFT_1ST_BUTTON_PRESSED = 1; + RIGHTMOST_BUTTON_PRESSED = 2; + FROM_LEFT_2ND_BUTTON_PRESSED = 4; + FROM_LEFT_3RD_BUTTON_PRESSED = 8; + FROM_LEFT_4TH_BUTTON_PRESSED = 16; + DOUBLE_CLICK = 2; + MOUSE_MOVED = 1; + { INPUT_RECORD structure } + KEY_EVENT = 1; + _MOUSE_EVENT = 2; {conflict with function mouse_event} + cMOUSE_EVENT = 2; + WINDOW_BUFFER_SIZE_EVENT = 4; + MENU_EVENT = 8; + FOCUS_EVENT = 16; + { BITMAPINFOHEADER structure } + BI_RGB = 0; + BI_RLE8 = 1; + BI_RLE4 = 2; + BI_BITFIELDS = 3; + { Extensions to OpenGL } + { wglUseFontOutlines } + WGL_FONT_LINES = 0; + WGL_FONT_POLYGONS = 1; + { LAYERPLANEDESCRIPTOR structure } + { PIXELFORMATDESCRIPTOR structure } + PFD_GENERIC_FORMAT = $40; + PFD_NEED_PALETTE = $80; + PFD_NEED_SYSTEM_PALETTE = $100; + PFD_SWAP_EXCHANGE = $200; + PFD_SWAP_COPY = $400; + PFD_SWAP_LAYER_BUFFERS = $800; + PFD_GENERIC_ACCELERATED = $1000; + PFD_SUPPORT_DIRECTDRAW = $2000; + { TEXTMETRIC structure } + TMPF_FIXED_PITCH = $1; + TMPF_VECTOR = $2; + TMPF_TRUETYPE = $4; + TMPF_DEVICE = $8; + WM_CTLCOLOR = 25; + + { --------------------- old stuff, need to organize! --------------- } + { BEGINNING of windowsx.h stuff from old headers: } + { Not convertable by H2PAS + #define __CRACK_VOID_F(fn,args) (void)(fn args) + #define __CRACK_BOOL_F(fn,args) (BOOL)(fn args) + #define __CRACK_HMENU_F(fn,args) (HMENU)(fn args) + #define __CRACK_HWND_F(fn,args) (HWND)(fn args) + #define __CRACK_LONG_F(fn, args) (LRESULT)(fn args) + #define __CRACK_ZERO_F(fn, args) (fn args,0) + } + { was #define dname(params) def_expr } + function GetFirstChild(h:HWND):HWND; + + { was #define dname(params) def_expr } + function GetNextSibling(h:HWND):HWND; + + { was #define dname(params) def_expr } + function GetWindowID(h:HWND):longint; + + { was #define dname(params) def_expr } + function SubclassWindow(h:HWND; p:LONG):LONG; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function GET_WM_COMMAND_CMD(w,l : longint) : longint; + { return type might be wrong } + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function GET_WM_COMMAND_ID(w,l : longint) : longint; + { return type might be wrong } + + { was #define dname(params) def_expr } + { argument types are unknown } + function GET_WM_CTLCOLOR_HDC(w,l,msg : longint) : HDC; + + { was #define dname(params) def_expr } + { argument types are unknown } + function GET_WM_CTLCOLOR_HWND(w,l,msg : longint) : HWND; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function GET_WM_HSCROLL_CODE(w,l : longint) : longint; + { return type might be wrong } + + { was #define dname(params) def_expr } + { argument types are unknown } + function GET_WM_HSCROLL_HWND(w,l : longint) : HWND; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function GET_WM_HSCROLL_POS(w,l : longint) : longint; + { return type might be wrong } + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function GET_WM_MDIACTIVATE_FACTIVATE(h,a,b : longint) : longint; + { return type might be wrong } + + { was #define dname(params) def_expr } + { argument types are unknown } + function GET_WM_MDIACTIVATE_HWNDACTIVATE(a,b : longint) : HWND; + + { was #define dname(params) def_expr } + { argument types are unknown } + function GET_WM_MDIACTIVATE_HWNDDEACT(a,b : longint) : HWND; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function GET_WM_VSCROLL_CODE(w,l : longint) : longint; + { return type might be wrong } + + { was #define dname(params) def_expr } + { argument types are unknown } + function GET_WM_VSCROLL_HWND(w,l : longint) : HWND; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function GET_WM_VSCROLL_POS(w,l : longint) : longint; + { return type might be wrong } + + { Not convertable by H2PAS + #define FORWARD_WM_CLOSE(h, fn) __CRACK_VOID_F(fn,(h, WM_CLOSE, 0, 0)) + #define FORWARD_WM_COMMAND(h, id, c, n, fn) __CRACK_VOID_F(fn,(h, WM_COMMAND, MAKEWPARAM(id,n), (LPARAM)c)) + #define FORWARD_WM_CREATE(h, p, fn) __CRACK_BOOL_F(fn,(h, WM_CREATE, 0, (LPARAM)p)) + #define FORWARD_WM_DESTROY(h, fn) __CRACK_VOID_F(fn,(h, WM_DESTROY, 0, 0)) + #define FORWARD_WM_ENABLE(h, e, fn) __CRACK_VOID_F(fn,(h, WM_ENABLE, (WPARAM)e, 0)) + #define FORWARD_WM_INITDIALOG(h, c, l, fn) __CRACK_BOOL_F(fn,(h, WM_INITDIALOG, (WPARAM)c, l)) + #define FORWARD_WM_MDICASCADE(h, c, fn) __CRACK_BOOL_F(fn,(h, WM_MDICASCADE, (WPARAM)c, 0)) + #define FORWARD_WM_MDIDESTROY(h, d, fn) __CRACK_VOID_F(fn,(h, WM_MDIDESTROY, (WPARAM)d, 0)) + #define FORWARD_WM_MDIGETACTIVE(h, fn) __CRACK_HWND_F(fn,(h, WM_MDIGETACTIVE, 0, 0)) + #define FORWARD_WM_MDIICONARRANGE(h, fn) __CRACK_VOID_F(fn,(h, WM_MDIICONARRANGE, 0, 0)) + #define FORWARD_WM_MDISETMENU(h, fr, hf, hw, fn) __CRACK_HMENU_F(fn,(h, WM_MDISETMENU, (WPARAM)((fr) ? (hf) : 0), (LPARAM)(hw))) + #define FORWARD_WM_MDITILE(h, c, fn) __CRACK_BOOL_F(fn,(h, WM_MDITILE, (WPARAM)(c), 0)) + #define FORWARD_WM_PAINT(h, fn) __CRACK_VOID_F(fn,(h, WM_PAINT, 0, 0)) + #define FORWARD_WM_QUERYENDSESSION(h, fn) __CRACK_BOOL_F(fn,(h, WM_QUERYENDSESSION, 0, 0)) + #define FORWARD_WM_SIZE(h, state, cx, cy, fn) __CRACK_VOID_F(fn,(h, WM_SIZE, (WPARAM)state, MAKELPARAM(cx, cy))) + #define FORWARD_WM_SYSCOMMAND(h, c, x, y, fn) __CRACK_VOID_F(fn,(h, WM_SYSCOMMAND, (WPARAM)c, MAKELPARAM(x, y))) + + #define HANDLE_WM_CLOSE(h, w, l, fn) __CRACK_ZERO_F(fn,(h)); + #define HANDLE_WM_COMMAND(h, w, l, fn) __CRACK_ZERO_F(fn,(h, SEXT_LOWORD(w), (HWND)l, HIWORD(w))) + #define HANDLE_WM_CREATE(h, w, l, fn) (LRESULT)((fn(h, (CREATESTRUCT )l)) ? 0 : -1) + #define HANDLE_WM_DESTROY(h, w, l, fn) __CRACK_ZERO_F(fn,(h)) + #define HANDLE_WM_ENABLE(h, w, l, fn) __CRACK_ZERO_F(fn,(h, (BOOL)w)) + #define HANDLE_WM_INITDIALOG(h, w, l, fn) __CRACK_LONG_F(fn,(h, (HWND)w, l)) + #define HANDLE_WM_MDICASCADE(h, w, l, fn) __CRACK_LONG_F(fn, (h, (UINT)w) + #define HANDLE_WM_MDIDESTROY(h, w, l, fn) __CRACK_ZERO_F(fn,(h, (HWND)w)) + #define HANDLE_WM_MDIGETACTIVE(h, w, l, fn) __CRACK_LONG_F(fn,(h)) + #define HANDLE_WM_MDIICONARRANGE(h, w, l, fn) __CRACK_ZERO_F(fn,(h)) + #define HANDLE_WM_MDISETMENU(h, w, l, fn) __CRACK_LONG_F(fn,(h, (BOOL)w, (HMENU)w, (HMENU)l) + #define HANDLE_WM_MDITILE(h, w, l, fn) __CRACK_LONG_F(fn,(h, (UINT)w)) + #define HANDLE_WM_PAINT(h, w, l, fn) __CRACK_ZERO_F(fn,(h)) + #define HANDLE_WM_QUERYENDSESSION(h, w, l, fn) MAKELRESULT(fn(h), 0) + #define HANDLE_WM_SIZE(h, w, l, fn) __CRACK_ZERO_F(fn,(h, (UINT)w, SEXT_LOWORD(l), SEXT_HIWORD(l))) + #define HANDLE_WM_SYSCOMMAND(h, w, l, fn) __CRACK_ZERO_F(fn,(h, (UINT)w, SEXT_LOWORD(l), SEXT_HIWORD(l))) + } + { Totally disgusting! get wParam and lParam from the environment ! } + { Not convertable by H2PAS + #define HANDLE_MSG(h, message, fn) case message: return HANDLE_##message(h, wParam, lParam, fn) + } + { END OF windowsx.h stuff from old headers } + { ------------------------------------------------------------------ } + { BEGINNING of shellapi.h stuff from old headers } + + const + SE_ERR_SHARE = 26; + SE_ERR_ASSOCINCOMPLETE = 27; + SE_ERR_DDETIMEOUT = 28; + SE_ERR_DDEFAIL = 29; + SE_ERR_DDEBUSY = 30; + SE_ERR_NOASSOC = 31; + { END OF shellapi.h stuff from old headers } + { ------------------------------------------------------------------ } + { From ddeml.h in old Cygnus headers } + XCLASS_BOOL = $1000; + XCLASS_DATA = $2000; + XCLASS_FLAGS = $4000; + XCLASS_MASK = $fc00; + XCLASS_NOTIFICATION = $8000; + XTYPF_NOBLOCK = $0002; + XTYP_ADVDATA = $4010; + XTYP_ADVREQ = $2022; + XTYP_ADVSTART = $1030; + XTYP_ADVSTOP = $8040; + XTYP_CONNECT = $1062; + XTYP_CONNECT_CONFIRM = $8072; + XTYP_DISCONNECT = $80c2; + XTYP_EXECUTE = $4050; + XTYP_POKE = $4090; + XTYP_REQUEST = $20b0; + XTYP_WILDCONNECT = $20E2; + XTYP_REGISTER = $80A2; + XTYP_ERROR = $8002; + XTYP_XACT_COMPLETE = $8080; + XTYP_UNREGISTER = $80D2; + DMLERR_DLL_USAGE = $4004; + DMLERR_INVALIDPARAMETER = $4006; + DMLERR_NOTPROCESSED = $4009; + DMLERR_POSTMSG_FAILED = $400c; + DMLERR_SERVER_DIED = $400e; + DMLERR_SYS_ERROR = $400f; + DMLERR_BUSY = $4001; + DMLERR_DATAACKTIMEOUT = $4002; + DMLERR_ADVACKTIMEOUT = $4000; + DMLERR_DLL_NOT_INITIALIZED = $4003; + DMLERR_LOW_MEMORY = $4007; + DMLERR_MEMORY_ERROR = $4008; + DMLERR_POKEACKTIMEOUT = $400b; + DMLERR_NO_CONV_ESTABLISHED = $400a; + DMLERR_REENTRANCY = $400d; + DMLERR_UNFOUND_QUEUE_ID = $4011; + DMLERR_UNADVACKTIMEOUT = $4010; + DMLERR_EXECACKTIMEOUT = $4005; + DDE_FACK = $8000; + DDE_FNOTPROCESSED = $0000; + DNS_REGISTER = $0001; + DNS_UNREGISTER = $0002; + CP_WINANSI = 1004; + CP_WINUNICODE = 1200; + { Not convertable by H2PAS + #define EXPENTRY CALLBACK + } + APPCLASS_STANDARD = $00000000; + { End of stuff from ddeml.h in old Cygnus headers } + { ----------------------------------------------- } + BKMODE_LAST = 2; + CTLCOLOR_MSGBOX = 0; + CTLCOLOR_EDIT = 1; + CTLCOLOR_LISTBOX = 2; + CTLCOLOR_BTN = 3; + CTLCOLOR_DLG = 4; + CTLCOLOR_SCROLLBAR = 5; + CTLCOLOR_STATIC = 6; + CTLCOLOR_MAX = 7; + META_SETMAPMODE = $0103; + META_SETWINDOWORG = $020B; + META_SETWINDOWEXT = $020C; + POLYFILL_LAST = 2; + STATUS_WAIT_0 = $00000000; + STATUS_ABANDONED_WAIT_0 = $00000080; + STATUS_USER_APC = $000000C0; + STATUS_TIMEOUT = $00000102; + STATUS_PENDING = $00000103; + STATUS_GUARD_PAGE_VIOLATION = $80000001; + STATUS_DATATYPE_MISALIGNMENT = $80000002; + STATUS_BREAKPOINT = $80000003; + STATUS_SINGLE_STEP = $80000004; + STATUS_IN_PAGE_ERROR = $C0000006; + STATUS_INVALID_HANDLE = $C0000008; + STATUS_ILLEGAL_INSTRUCTION = $C000001D; + STATUS_NONCONTINUABLE_EXCEPTION = $C0000025; + STATUS_INVALID_DISPOSITION = $C0000026; + STATUS_ARRAY_BOUNDS_EXCEEDED = $C000008C; + STATUS_FLOAT_DENORMAL_OPERAND = $C000008D; + STATUS_FLOAT_DIVIDE_BY_ZERO = $C000008E; + STATUS_FLOAT_INEXACT_RESULT = $C000008F; + STATUS_FLOAT_INVALID_OPERATION = $C0000090; + STATUS_FLOAT_OVERFLOW = $C0000091; + STATUS_FLOAT_STACK_CHECK = $C0000092; + STATUS_FLOAT_UNDERFLOW = $C0000093; + STATUS_INTEGER_DIVIDE_BY_ZERO = $C0000094; + STATUS_INTEGER_OVERFLOW = $C0000095; + STATUS_PRIVILEGED_INSTRUCTION = $C0000096; + STATUS_STACK_OVERFLOW = $C00000FD; + STATUS_CONTROL_C_EXIT = $C000013A; +{$define EXCEPTION_CTRL_C} + PROCESSOR_ARCHITECTURE_INTEL = 0; + PROCESSOR_ARCHITECTURE_MIPS = 1; + PROCESSOR_ARCHITECTURE_ALPHA = 2; + PROCESSOR_ARCHITECTURE_PPC = 3; + { was #define dname(params) def_expr } + function FreeModule(h:HINST):WINBOOL; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function MakeProcInstance(p,i : longint) : longint; + { return type might be wrong } + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function FreeProcInstance(p : longint) : longint; + { return type might be wrong } + + + const + { _fmemcpy = memcpy; these are functions } + { Used by wxwindows. } + SIZEFULLSCREEN = SIZE_MAXIMIZED; + SIZENORMAL = SIZE_RESTORED; + SIZEICONIC = SIZE_MINIMIZED; + { NPLOGPALETTE = PLOGPALETTE; probably a type } + { In the old winnt.h } + (* Not convertable by H2PAS anyhow with if 0 + #if 0 + #ifdef __ANAL__ + #define DECLARE_HANDLE(h) struct h##__ { int dummy; }; typedef struct h##__ h + #else + #define DECLARE_HANDLE(h) typedef void h + #endif + DECLARE_HANDLE(HANDLE); + #endif + *) + +{$ifdef i386} //+winnt + + { x86 } + { The doc refered me to winnt.h, so I had to look... } + + const + SIZE_OF_80387_REGISTERS = 80; //winnt + MAXIMUM_SUPPORTED_EXTENSION = 512; //winnt + { Values for contextflags } + CONTEXT_i386 = $10000; + CONTEXT_i486 = $10000; //+winnt + CONTEXT_CONTROL = CONTEXT_i386 or 1; + CONTEXT_INTEGER = CONTEXT_i386 or 2; + CONTEXT_SEGMENTS = CONTEXT_i386 or 4; + CONTEXT_FLOATING_POINT = CONTEXT_i386 or 8; + CONTEXT_DEBUG_REGISTERS = CONTEXT_i386 or $10; + CONTEXT_EXTENDED_REGISTERS = CONTEXT_i386 or $20; //+winnt + CONTEXT_FULL = (CONTEXT_CONTROL or CONTEXT_INTEGER) or CONTEXT_SEGMENTS; + { our own invention } + FLAG_TRACE_BIT = $100; + CONTEXT_DEBUGGER = CONTEXT_FULL or CONTEXT_FLOATING_POINT; +{$endif i386} + +{$ifdef _MIPS_} //+winnt all block added +// +// Processor Feature Values used in IsProcessorFeaturePresent API +// + PF_MIPS_MIPSII = $81000001; // MIPSII instruction set + PF_MIPS_MIPSIII = $81000002; // MIPSIII instruction set + PF_MIPS_MIPSIV = $81000003; // MIPSIV instruction set + PF_MIPS_SMART_ASE = $81000004; // MIPS smart card arch. specific ext. + PF_MIPS_MIPS16 = $81000005; // MIPS16 instruction set + PF_MIPS_MIPS32 = $81000006; // MIPS32 instruction set + PF_MIPS_MIPS64 = $81000007; // MIPS64 instruction set + PF_MIPS_FPU = $81000008; // FPU support + PF_MIPS_CPU_4KEX = $81000009; // "R4K" exception model + PF_MIPS_CPU_4KTLB = $8100000A; // "R4K" TLB handler + PF_MIPS_CPU_32FPR = $8100000B; // 32 dbl. prec. FP registers + PF_MIPS_CPU_COUNTER = $8100000C; // Cycle count/compare + PF_MIPS_CPU_WATCH = $8100000D; // watchpoint registers + PF_MIPS_CPU_DIVEC = $8100000E; // dedicated interrupt vector + PF_MIPS_CPU_VCE = $8100000F; // virt. coherence conflict possible + PF_MIPS_CPU_CACHE_CDEX = $81000010; // Create_Dirty_Exclusive CACHE op + PF_MIPS_CPU_MCHECK = $81000011; // Machine check exception + PF_MIPS_CPU_EJTAG = $81000012; // EJTAG exception + PF_MIPS_PERF_COUNTER = $81000013; // perf counter + PF_MIPS_ARCH_2 = $81000014; // arch. release 2 + + CONTEXT_R4000 = $00010000; // r4000 context + + CONTEXT_CONTROL = CONTEXT_R4000 or $00000001; + CONTEXT_FLOATING_POINT = CONTEXT_R4000 or $00000002; + CONTEXT_INTEGER = CONTEXT_R4000 or $00000004; + CONTEXT_EXTENDED_FLOAT = CONTEXT_FLOATING_POINT or $00000008; + CONTEXT_EXTENDED_INTEGER = CONTEXT_INTEGER or $00000010; + CONTEXT_FULL = CONTEXT_CONTROL or CONTEXT_FLOATING_POINT or + CONTEXT_INTEGER or CONTEXT_EXTENDED_INTEGER; +{$ifdef _MIPS64} //+winnt + CONTEXT32_LENGTH=$1B8; +{$else} + CONTEXT32_LENGTH=$130; // The original 32-bit Context length (pre NT 4.0) +{$endif _MIPS64} + +{$endif _MIPS_} //+winnt + +{$ifdef _PPC_} //~winnt, now _PPC_ instead of __PPC__, moved after mips + const + CONTEXT_CONTROL = 1; + CONTEXT_FLOATING_POINT = 2; + CONTEXT_INTEGER = 4; + CONTEXT_DEBUG_REGISTERS = 8; + CONTEXT_FULL = (CONTEXT_CONTROL or CONTEXT_FLOATING_POINT) or CONTEXT_INTEGER; + CONTEXT_DEBUGGER = CONTEXT_FULL; +{$endif _PPC_} //~winnt + +{$ifdef _MPPC_} //+winnt all block + const + CONTEXT_CONTROL = 1; + CONTEXT_FLOATING_POINT = 2; + CONTEXT_INTEGER = 4; + CONTEXT_DEBUG_REGISTERS = 8; + CONTEXT_FULL = (CONTEXT_CONTROL or CONTEXT_FLOATING_POINT) or CONTEXT_INTEGER; +{$endif _MPPC_} //+winnt + +{$ifdef _IA64_} //+winnt all block + SIZE_OF_80387_REGISTERS = 80; + CONTEXT_IA64 = $00080000; // IA64 context + CONTEXT_CONTROL = CONTEXT_IA64 or $00000001; + CONTEXT_LOWER_FLOATING_POINT = CONTEXT_IA64 or $00000002; + CONTEXT_HIGHER_FLOATING_POINT = CONTEXT_IA64 or $00000004; + CONTEXT_INTEGER = CONTEXT_IA64 or $00000008; + CONTEXT_DEBUG = CONTEXT_IA64 or $00000010; + + CONTEXT_FLOATING_POINT = CONTEXT_LOWER_FLOATING_POINT or CONTEXT_HIGHER_FLOATING_POINT; + CONTEXT_FULL = CONTEXT_CONTROL or CONTEXT_FLOATING_POINT or CONTEXT_INTEGER; + + CONTEXT_i386 = $00010000; // this assumes that i386 and + CONTEXT_i486 = $00010000; // i486 have identical context records + CONTEXT_X86 = $00010000; // X86 have identical context records + + CONTEXT86_CONTROL = CONTEXT_i386 or $00000001; // SS:SP, CS:IP, FLAGS, BP + CONTEXT86_INTEGER = CONTEXT_i386 or $00000002; // AX, BX, CX, DX, SI, DI + CONTEXT86_SEGMENTS = CONTEXT_i386 or $00000004; // DS, ES, FS, GS + CONTEXT86_FLOATING_POINT = CONTEXT_i386 or $00000008; // 387 state + CONTEXT86_DEBUG_REGISTERS = CONTEXT_i386 or $00000010; // DB 0-3,6,7 + + CONTEXT86_FULL = CONTEXT86_CONTROL or CONTEXT86_INTEGER or CONTEXT86_SEGMENTS; // context corresponding to set flags will be returned. +{$endif _IA64_} //+winnt + +{$ifdef SHx} //+winnt all block added +// +// Processor Feature Values used in IsProcessorFeaturePresent API +// + PF_SHX_SH3 = $82000001; + PF_SHX_SH4 = $82000002; + PF_SHX_SH5 = $82000003; + PF_SHX_DSP = $82000004; + PF_SHX_FPU = $82000005; +// +// The following flags control the contents of the CONTEXT structure. +// + CONTEXT_SH3 = $00000040; + CONTEXT_SH4 = $000000c0; // CONTEXT_SH3 | 0x80 - must contain the SH3 bits + +{$ifdef SH3} + CONTEXT_CONTROL = CONTEXT_SH3 or $00000001; + CONTEXT_INTEGER = CONTEXT_SH3 or $00000002; + CONTEXT_DEBUG_REGISTERS = CONTEXT_SH3 or $00000008; + CONTEXT_DSP_REGISTERS = CONTEXT_SH3 or $00000010; + CONTEXT_FULL = CONTEXT_CONTROL or CONTEXT_INTEGER or CONTEXT_DEBUG_REGISTERS or CONTEXT_DSP_REGISTERS; +{$else} // SH4 + CONTEXT_CONTROL = CONTEXT_SH4 or $00000001; + CONTEXT_INTEGER = CONTEXT_SH4 or $00000002; + CONTEXT_DEBUG_REGISTERS = CONTEXT_SH4 or $00000008; + CONTEXT_FLOATING_POINT = CONTEXT_SH4 or $00000004; + CONTEXT_FULL = CONTEXT_CONTROL or CONTEXT_INTEGER or CONTEXT_DEBUG_REGISTERS or CONTEXT_FLOATING_POINT; +{$endif SH3} + +{$endif SHx} //+winnt + +{$ifdef CPUARM} //+winnt all block added +// +// Processor Feature Values used in IsProcessorFeaturePresent API +// + PF_ARM_V4 = $80000001; + PF_ARM_V5 = $80000002; + PF_ARM_V6 = $80000003; + PF_ARM_V7 = $80000004; + PF_ARM_THUMB = $80000005; + PF_ARM_JAZELLE = $80000006; + PF_ARM_DSP = $80000007; + PF_ARM_MOVE_CP = $80000008; + PF_ARM_VFP10 = $80000009; + PF_ARM_MPU = $8000000A; + PF_ARM_WRITE_BUFFER = $8000000B; + PF_ARM_MBX = $8000000C; + PF_ARM_L2CACHE = $8000000D; + PF_ARM_PHYSICALLY_TAGGED_CACHE = $8000000E; + PF_ARM_VFP_SINGLE_PRECISION = $8000000F; + PF_ARM_VFP_DOUBLE_PRECISION = $80000010; + PF_ARM_ITCM = $80000011; + PF_ARM_DTCM = $80000012; + PF_ARM_UNIFIED_CACHE = $80000013; + PF_ARM_WRITE_BACK_CACHE = $80000014; + PF_ARM_CACHE_CAN_BE_LOCKED_DOWN = $80000015; + PF_ARM_L2CACHE_MEMORY_MAPPED = $80000016; + PF_ARM_L2CACHE_COPROC = $80000017; + + +// Specific OEM extentions + PF_ARM_INTEL_XSCALE = $80010001; + PF_ARM_INTEL_PMU = $80010002; + PF_ARM_INTEL_WMMX = $80010003; + + CONTEXT_ARM = $0000040; + CONTEXT_CONTROL = CONTEXT_ARM or $00000001; + CONTEXT_INTEGER = CONTEXT_ARM or $00000002; + CONTEXT_FLOATING_POINT = CONTEXT_ARM or $00000004; + + CONTEXT_FULL = CONTEXT_CONTROL or CONTEXT_INTEGER or CONTEXT_FLOATING_POINT; + + NUM_VFP_REGS = 32; + NUM_EXTRA_CONTROL_REGS = 8; + +{$endif CPUARM} //+winnt + + const + { ASCIICHAR = AsciiChar; this is the kind of thing that can + make problems for FPC !! } + { ignored in H2PAS + #define FAR + handled in H2PAS + #define PACKED __attribute__((packed)) + } + FILTER_TEMP_DUPLICATE_ACCOUNT = $0001; + FILTER_NORMAL_ACCOUNT = $0002; + FILTER_INTERDOMAIN_TRUST_ACCOUNT = $0008; + FILTER_WORKSTATION_TRUST_ACCOUNT = $0010; + FILTER_SERVER_TRUST_ACCOUNT = $0020; + LOGON32_LOGON_INTERACTIVE = $02; + LOGON32_LOGON_BATCH = $04; + LOGON32_LOGON_SERVICE = $05; + LOGON32_PROVIDER_DEFAULT = $00; + LOGON32_PROVIDER_WINNT35 = $01; + QID_SYNC = $FFFFFFFF; + { Magic numbers in PE executable header. } + { e_magic field } + IMAGE_DOS_SIGNATURE = $5a4d; + { nt_signature field } + IMAGE_NT_SIGNATURE = $4550; + + + { Severity values } + SEVERITY_SUCCESS = 0; + SEVERITY_ERROR = 1; + + { Variant type codes (wtypes.h). + Some, not all though } + VT_EMPTY = 0; + VT_NULL = 1; + VT_I2 = 2; + VT_I4 = 3; + VT_R4 = 4; + VT_R8 = 5; + VT_BSTR = 8; + VT_ERROR = 10; + VT_BOOL = 11; + VT_UI1 = 17; + VT_BYREF = $4000; + VT_RESERVED = $8000; + +{ Define the facility codes } + +const + FACILITY_WINDOWS = 8; + FACILITY_STORAGE = 3; + FACILITY_RPC = 1; + FACILITY_SSPI = 9; + FACILITY_WIN32 = 7; + FACILITY_CONTROL = 10; + FACILITY_NULL = 0; + FACILITY_INTERNET = 12; + FACILITY_ITF = 4; + FACILITY_DISPATCH = 2; + FACILITY_CERT = 11; + +{ Manually added, bug 2672} + ICON_SMALL = 0; + ICON_BIG = 1; + +// Manually added, bug 3270 + COLOR_HOTLIGHT = 26; + //COLOR_GRADIENTACTIVECAPTION = 27; moved to GetSysColor + //COLOR_GRADIENTINACTIVECAPTION = 28; + COLOR_MENUHILIGHT = 29; + COLOR_MENUBAR = 30; + + WM_APP = $8000; + + // ShellExecuteEx mask + SEE_MASK_NOCLOSEPROCESS = $00000040; + SEE_MASK_FLAG_NO_UI = $00000400; + +{$endif read_interface} + + +{$ifdef read_implementation} + + + + + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function IS_UNWINDING( Flag : Longint) : boolean; + begin + IS_UNWINDING:=(Flag and EXCEPTION_UNWIND)<>0; + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function IS_DISPATCHING( Flag : Longint) : boolean; + begin + IS_DISPATCHING:=(Flag and EXCEPTION_UNWIND)=0; + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function IS_TARGET_UNWIND( Flag : Longint) : Longint; + begin + IS_TARGET_UNWIND:=(Flag and EXCEPTION_TARGET_UNWIND); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function MakeProcInstance(p,i : longint) : longint; + { return type might be wrong } + begin + MakeProcInstance:=p; + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function FreeProcInstance(p : longint) : longint; + { return type might be wrong } + begin + FreeProcInstance:=p; + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function GET_WM_COMMAND_CMD(w,l : longint) : longint; + { return type might be wrong } + begin + GET_WM_COMMAND_CMD:=HIWORD(w); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function GET_WM_COMMAND_ID(w,l : longint) : longint; + { return type might be wrong } + begin + GET_WM_COMMAND_ID:=LOWORD(w); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + function GET_WM_CTLCOLOR_HDC(w,l,msg : longint) : HDC; + begin + GET_WM_CTLCOLOR_HDC:=HDC(w); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + function GET_WM_CTLCOLOR_HWND(w,l,msg : longint) : HWND; + begin + GET_WM_CTLCOLOR_HWND:=HWND(l); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function GET_WM_HSCROLL_CODE(w,l : longint) : longint; + { return type might be wrong } + begin + GET_WM_HSCROLL_CODE:=LOWORD(w); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + function GET_WM_HSCROLL_HWND(w,l : longint) : HWND; + begin + GET_WM_HSCROLL_HWND:=HWND(l); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function GET_WM_HSCROLL_POS(w,l : longint) : longint; + { return type might be wrong } + begin + GET_WM_HSCROLL_POS:=HIWORD(w); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function GET_WM_MDIACTIVATE_FACTIVATE(h,a,b : longint) : longint; + { return type might be wrong } + begin + GET_WM_MDIACTIVATE_FACTIVATE:=longint(b = LONG(h)); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + function GET_WM_MDIACTIVATE_HWNDACTIVATE(a,b : longint) : HWND; + begin + GET_WM_MDIACTIVATE_HWNDACTIVATE:=HWND(b); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + function GET_WM_MDIACTIVATE_HWNDDEACT(a,b : longint) : HWND; + begin + GET_WM_MDIACTIVATE_HWNDDEACT:=HWND(a); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function GET_WM_VSCROLL_CODE(w,l : longint) : longint; + { return type might be wrong } + begin + GET_WM_VSCROLL_CODE:=LOWORD(w); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + function GET_WM_VSCROLL_HWND(w,l : longint) : HWND; + begin + GET_WM_VSCROLL_HWND:=HWND(l); + end; + + { was #define dname(params) def_expr } + { argument types are unknown } + { return type might be wrong } + function GET_WM_VSCROLL_POS(w,l : longint) : longint; + { return type might be wrong } + begin + GET_WM_VSCROLL_POS:=HIWORD(w); + end; + + { was #define dname(params) def_expr } + function FreeModule(h:HINST):WINBOOL; + begin + FreeModule:=FreeLibrary(h); + end; + + { was #define dname(params) def_expr } + function GetNextSibling(h:HWND):HWND; + begin + GetNextSibling:=GetWindow(h,GW_HWNDNEXT); + end; + { was #define dname(params) def_expr } + function GetWindowID(h:HWND):longint; + begin + GetWindowID:=GetDlgCtrlID(h); + end; + + { was #define dname(params) def_expr } + function SubclassWindow(h:HWND; p:LONG):LONG; + begin + SubclassWindow:=SetWindowLong(h,GWL_WNDPROC,p); + end; + + { was #define dname(params) def_expr } + function GetFirstChild(h:HWND):HWND; + begin + //GetFirstChild:=GetTopWindow(h); + GetFirstChild:=GetWindow(h,GW_CHILD); + end; + +{$ifdef WINCE} +{$endif WINCE} + +{$ifdef WIN32} +{$endif WIN32} + +{$endif read_implementation} + + diff --git a/rtl/wince/wininc/errors.inc b/rtl/wince/wininc/errors.inc index ae2e14d7cb..098ff88ec1 100644 --- a/rtl/wince/wininc/errors.inc +++ b/rtl/wince/wininc/errors.inc @@ -62,7 +62,7 @@ const APPLICATION_ERROR_MASK = $20000000; //+winnt - LZERROR_UNKNOWNALG = -(8); + LZERROR_UNKNOWNALG = -(8); LZERROR_BADVALUE = -(7); LZERROR_GLOBLOCK = -(6); LZERROR_GLOBALLOC = -(5); @@ -745,9 +745,9 @@ ERROR_REC_NON_EXISTENT = 4005; ERROR_RPL_NOT_ALLOWED = 4006; ERROR_SEVERITY_SUCCESS = $00000000; //+winnt - ERROR_SEVERITY_INFORMATIONAL = $40000000; //+winnt - ERROR_SEVERITY_WARNING = $80000000; //+winnt - ERROR_SEVERITY_ERROR = $C0000000; //+winnt + ERROR_SEVERITY_INFORMATIONAL = $40000000; //+winnt + ERROR_SEVERITY_WARNING = $80000000; //+winnt + ERROR_SEVERITY_ERROR = $C0000000; //+winnt {ERROR_NO_BROWSER_SERVERS_FOUND = 6118; already above } E_UNEXPECTED = DWORD($8000FFFF); diff --git a/rtl/wince/wininc/makefile.inc b/rtl/wince/wininc/makefile.inc index b4470406cc..546042eeac 100644 --- a/rtl/wince/wininc/makefile.inc +++ b/rtl/wince/wininc/makefile.inc @@ -1 +1 @@ -WINDOWS_FILES=base errors defines struct redef aygshell cemiss ceshell commctrl coredll iphlpapi oleaut32 +WINDOWS_FILES=base errors defines struct redef aygshell cemiss ceshell commctrl coredll iphlpapi oleaut32 diff --git a/rtl/wince/wininc/messages.inc b/rtl/wince/wininc/messages.inc index 57df1f164c..eb15f7da90 100644 --- a/rtl/wince/wininc/messages.inc +++ b/rtl/wince/wininc/messages.inc @@ -1,1264 +1,1264 @@ -{ - This file is part of the Free Pascal run time library. - Copyright (c) 1999-2000 by Florian Klaempfl, - member of the Free Pascal development team. - - See the file COPYING.FPC, included in this distribution, - for details about the copyright. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - - **********************************************************************} - -{ - Messages.h Windows32 API message definitions - Copyright (C) 1996 Free Software Foundation, Inc. - - Author: Scott Christley - - This file is part of the Windows32 API Library. - - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - - If you are interested in a warranty or support for this source code, - contact Scott Christley for more information. - - - You should have received a copy of the GNU Library General Public - License along with this library; see the file COPYING.LIB. - If not, write to the Free Software Foundation, - - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - - Changes : - - 08-15-2005 : orinaudo@gmail.com, WCE 4.21 SE, First release - 09-02-2006 : updated -} - -{$ifdef read_interface} - - const - ACM_OPENW = 1127; - ACM_OPENA = 1124; - {$ifdef UNICODE} - const - ACM_OPEN = ACM_OPENW; - {$else} - const - ACM_OPEN = ACM_OPENA; - {$endif} - { UNICODE } - - const - - WM_USER = 1024; //keep it first - - ACM_PLAY = 1125; - ACM_STOP = 1126; - ACN_START = 1; - ACN_STOP = 2; - { Buttons } - BM_CLICK = 245; - BM_GETCHECK = 240; - BM_GETIMAGE = 246; - BM_GETSTATE = 242; - BM_SETCHECK = 241; - BM_SETIMAGE = 247; - BM_SETSTATE = 243; - BM_SETSTYLE = 244; - BN_CLICKED = 0; - BN_DBLCLK = 5; - BN_DISABLE = 4; - BN_DOUBLECLICKED = 5; - BN_HILITE = 2; - BN_KILLFOCUS = 7; - BN_PAINT = 1; - BN_PUSHED = 2; - BN_SETFOCUS = 6; - BN_UNHILITE = 3; - BN_UNPUSHED = 3; - { Combo Box } - CB_ADDSTRING = 323; - CB_DELETESTRING = 324; - CB_DIR = 325; - CB_FINDSTRING = 332; - CB_FINDSTRINGEXACT = 344; - CB_GETCOUNT = 326; - CB_GETCURSEL = 327; - CB_GETDROPPEDCONTROLRECT = 338; - CB_GETDROPPEDSTATE = 343; - CB_GETDROPPEDWIDTH = 351; - CB_GETEDITSEL = 320; - CB_GETEXTENDEDUI = 342; - CB_GETHORIZONTALEXTENT = 349; - CB_GETITEMDATA = 336; - CB_GETITEMHEIGHT = 340; - CB_GETLBTEXT = 328; - CB_GETLBTEXTLEN = 329; - CB_GETLOCALE = 346; - CB_GETTOPINDEX = 347; - CB_INITSTORAGE = 353; - CB_INSERTSTRING = 330; - CB_LIMITTEXT = 321; - CB_RESETCONTENT = 331; - CB_SELECTSTRING = 333; - CB_SETCURSEL = 334; - CB_SETDROPPEDWIDTH = 352; - CB_SETEDITSEL = 322; - CB_SETEXTENDEDUI = 341; - CB_SETHORIZONTALEXTENT = 350; - CB_SETITEMDATA = 337; - CB_SETITEMHEIGHT = 339; - CB_SETLOCALE = 345; - CB_SETTOPINDEX = 348; - CB_SHOWDROPDOWN = 335; - { Combo Box notifications } - CBN_CLOSEUP = 8; - CBN_DBLCLK = 2; - CBN_DROPDOWN = 7; - CBN_EDITCHANGE = 5; - CBN_EDITUPDATE = 6; - CBN_ERRSPACE = -(1); - CBN_KILLFOCUS = 4; - CBN_SELCHANGE = 1; - CBN_SELENDCANCEL = 10; - CBN_SELENDOK = 9; - CBN_SETFOCUS = 3; - { Control Panel } - { Device messages } - { Drag list box } - DL_BEGINDRAG = 1157; - DL_CANCELDRAG = 1160; - DL_DRAGGING = 1158; - DL_DROPPED = 1159; - { Default push button } - DM_GETDEFID = 1024; - DM_REPOSITION = 1026; - DM_SETDEFID = 1025; - { RTF control } - EM_CANPASTE = 1074; - EM_CANUNDO = 198; - EM_CHARFROMPOS = 215; - EM_DISPLAYBAND = 1075; - EM_EMPTYUNDOBUFFER = 205; - EM_EXGETSEL = 1076; - EM_EXLIMITTEXT = 1077; - EM_EXLINEFROMCHAR = 1078; - EM_EXSETSEL = 1079; - EM_FINDTEXT = 1080; - EM_FINDTEXTEX = 1103; - EM_FINDWORDBREAK = 1100; - EM_FMTLINES = 200; - EM_FORMATRANGE = 1081; - EM_GETCHARFORMAT = 1082; - EM_GETEVENTMASK = 1083; - EM_GETFIRSTVISIBLELINE = 206; - EM_GETHANDLE = 189; - EM_GETLIMITTEXT = 213; - EM_GETLINE = 196; - EM_GETLINECOUNT = 186; - EM_GETMARGINS = 212; - EM_GETMODIFY = 184; - EM_GETIMECOLOR = 1129; - EM_GETIMEOPTIONS = 1131; - EM_GETOPTIONS = 1102; - EM_GETOLEINTERFACE = 1084; - EM_GETPARAFORMAT = 1085; - EM_GETPASSWORDCHAR = 210; - EM_GETPUNCTUATION = 1125; - EM_GETRECT = 178; - EM_GETSEL = 176; - EM_GETSELTEXT = 1086; - EM_GETTEXTRANGE = 1099; - EM_GETTHUMB = 190; - EM_GETWORDBREAKPROC = 209; - EM_GETWORDBREAKPROCEX = 1104; - EM_GETWORDWRAPMODE = 1127; - EM_HIDESELECTION = 1087; - EM_LIMITTEXT = 197; - EM_LINEFROMCHAR = 201; - EM_LINEINDEX = 187; - EM_LINELENGTH = 193; - EM_LINESCROLL = 182; - EM_PASTESPECIAL = 1088; - EM_POSFROMCHAR = 214; - EM_REPLACESEL = 194; - EM_REQUESTRESIZE = 1089; - EM_SCROLL = 181; - EM_SCROLLCARET = 183; - EM_SELECTIONTYPE = 1090; - EM_SETBKGNDCOLOR = 1091; - EM_SETCHARFORMAT = 1092; - EM_SETEVENTMASK = 1093; - EM_SETHANDLE = 188; - EM_SETIMECOLOR = 1128; - EM_SETIMEOPTIONS = 1130; - EM_SETLIMITTEXT = 197; - EM_SETMARGINS = 211; - EM_SETMODIFY = 185; - EM_SETOLECALLBACK = 1094; - EM_SETOPTIONS = 1101; - EM_SETPARAFORMAT = 1095; - EM_SETPASSWORDCHAR = 204; - EM_SETPUNCTUATION = 1124; - EM_SETREADONLY = 207; - EM_SETRECT = 179; - EM_SETRECTNP = 180; - EM_SETSEL = 177; - EM_SETTABSTOPS = 203; - EM_SETTARGETDEVICE = 1096; - EM_SETWORDBREAKPROC = 208; - EM_SETWORDBREAKPROCEX = 1105; - EM_SETWORDWRAPMODE = 1126; - EM_STREAMIN = 1097; - EM_STREAMOUT = 1098; - EM_UNDO = 199; - { Edit control } - EN_SETFOCUS =$0100; - EN_KILLFOCUS =$0200; - EN_CHANGE =$0300; - EN_UPDATE =$0400; - EN_ERRSPACE =$0500; - EN_MAXTEXT =$0501; - EN_HSCROLL =$0601; - EN_VSCROLL =$0602; - - EN_CORRECTTEXT = 1797; - EN_DROPFILES = 1795; - EN_IMECHANGE = 1799; - EN_MSGFILTER = 1792; - EN_OLEOPFAILED = 1801; - EN_PROTECTED = 1796; - EN_REQUESTRESIZE = 1793; - EN_SAVECLIPBOARD = 1800; - EN_SELCHANGE = 1794; - EN_STOPNOUNDO = 1798; - - { Hot key control } - const - HKM_GETHOTKEY = 1026; - HKM_SETHOTKEY = 1025; - HKM_SETRULES = 1027; - { List box } - LB_ADDFILE = 406; - LB_ADDSTRING = 384; - LB_DELETESTRING = 386; - LB_DIR = 397; - LB_FINDSTRING = 399; - LB_FINDSTRINGEXACT = 418; - LB_GETANCHORINDEX = 413; - LB_GETCARETINDEX = 415; - LB_GETCOUNT = 395; - LB_GETCURSEL = 392; - LB_GETHORIZONTALEXTENT = 403; - LB_GETITEMDATA = 409; - LB_GETITEMHEIGHT = 417; - LB_GETITEMRECT = 408; - LB_GETLOCALE = 422; - LB_GETSEL = 391; - LB_GETSELCOUNT = 400; - LB_GETSELITEMS = 401; - LB_GETTEXT = 393; - LB_GETTEXTLEN = 394; - LB_GETTOPINDEX = 398; - LB_INITSTORAGE = 424; - LB_INSERTSTRING = 385; - LB_ITEMFROMPOINT = 425; - LB_RESETCONTENT = 388; - LB_SELECTSTRING = 396; - LB_SELITEMRANGE = 411; - LB_SELITEMRANGEEX = 387; - LB_SETANCHORINDEX = 412; - LB_SETCARETINDEX = 414; - LB_SETCOLUMNWIDTH = 405; - LB_SETCOUNT = 423; - LB_SETCURSEL = 390; - LB_SETHORIZONTALEXTENT = 404; - LB_SETITEMDATA = 410; - LB_SETITEMHEIGHT = 416; - LB_SETLOCALE = 421; - LB_SETSEL = 389; - LB_SETTABSTOPS = 402; - LB_SETTOPINDEX = 407; - { List box notifications } - LBN_DBLCLK = 2; - LBN_ERRSPACE = -(2); - LBN_KILLFOCUS = 5; - LBN_SELCANCEL = 3; - LBN_SELCHANGE = 1; - LBN_SETFOCUS = 4; - { List view control } - LVM_ARRANGE = 4118; - LVM_CREATEDRAGIMAGE = 4129; - LVM_DELETEALLITEMS = 4105; - LVM_DELETECOLUMN = 4124; - LVM_DELETEITEM = 4104; - LVM_ENSUREVISIBLE = 4115; - LVM_GETBKCOLOR = 4096; - LVM_GETCALLBACKMASK = 4106; - LVM_GETCOLUMNWIDTH = 4125; - LVM_GETCOUNTPERPAGE = 4136; - LVM_GETEDITCONTROL = 4120; - LVM_GETIMAGELIST = 4098; - LVM_EDITLABELW = 4214; - LVM_FINDITEMW = 4179; - LVM_GETCOLUMNW = 4191; - LVM_GETISEARCHSTRINGW = 4213; - LVM_GETITEMW = 4171; - LVM_GETITEMTEXTW = 4211; - LVM_GETSTRINGWIDTHW = 4183; - LVM_INSERTCOLUMNW = 4193; - LVM_INSERTITEMW = 4173; - LVM_SETCOLUMNW = 4192; - LVM_SETITEMW = 4172; - LVM_SETITEMTEXTW = 4212; - LVM_EDITLABELA = 4119; - LVM_FINDITEMA = 4109; - LVM_GETCOLUMNA = 4121; - LVM_GETISEARCHSTRINGA = 4148; - LVM_GETITEMA = 4101; - LVM_GETITEMTEXTA = 4141; - LVM_GETSTRINGWIDTHA = 4113; - LVM_INSERTCOLUMNA = 4123; - LVM_INSERTITEMA = 4103; - LVM_SETCOLUMNA = 4122; - LVM_SETITEMA = 4102; - LVM_SETITEMTEXTA = 4142; - LVM_GETITEMCOUNT = 4100; - LVM_GETITEMPOSITION = 4112; - LVM_GETITEMRECT = 4110; - LVM_GETITEMSPACING = 4147; - LVM_GETITEMSTATE = 4140; - LVM_GETNEXTITEM = 4108; - LVM_GETORIGIN = 4137; - LVM_GETSELECTEDCOUNT = 4146; - LVM_GETTEXTBKCOLOR = 4133; - LVM_GETTEXTCOLOR = 4131; - LVM_GETTOPINDEX = 4135; - LVM_GETVIEWRECT = 4130; - LVM_HITTEST = 4114; - LVM_REDRAWITEMS = 4117; - LVM_SCROLL = 4116; - LVM_SETBKCOLOR = 4097; - LVM_SETCALLBACKMASK = 4107; - LVM_SETCOLUMNWIDTH = 4126; - LVM_SETIMAGELIST = 4099; - LVM_SETITEMCOUNT = 4143; - LVM_SETITEMPOSITION = 4111; - LVM_SETITEMPOSITION32 = 4145; - LVM_SETITEMSTATE = 4139; - LVM_SETTEXTBKCOLOR = 4134; - LVM_SETTEXTCOLOR = 4132; - LVM_SORTITEMS = 4144; - LVM_UPDATE = 4138; - LVM_SETICONSPACING = 4149; //LVM_FIRST + 53 - LVM_SETEXTENDEDLISTVIEWSTYLE = 4150; //LVM_FIRST + 54 - LVM_GETSUBITEMRECT = 4152; //LVM_FIRST + 56 - LVM_SUBITEMHITTEST = 4153; //LVM_FIRST + 57 - LVM_SETCOLUMNORDERARRAY = 4154; //LVM_FIRST + 58 - LVM_GETCOLUMNORDERARRAY = 4155; //LVM_FIRST + 59 - LVM_APPROXIMATEVIEWRECT = 4160; //LVM_FIRST + 64 - LVM_GETSELECTIONMARK = 4162; //LVM_FIRST + 66 - LVM_SETSELECTIONMARK = 4163; //LVM_FIRST + 67 - LVM_GETHEADER = 4127; //LVM_FIRST + 31 - -{$ifdef UNICODE} - - const - LVM_EDITLABEL = LVM_EDITLABELW; - LVM_FINDITEM = LVM_FINDITEMW; - LVM_GETCOLUMN = LVM_GETCOLUMNW; - LVM_GETISEARCHSTRING = LVM_GETISEARCHSTRINGW; - LVM_GETITEM = LVM_GETITEMW; - LVM_GETITEMTEXT = LVM_GETITEMTEXTW; - LVM_GETSTRINGWIDTH = LVM_GETSTRINGWIDTHW; - LVM_INSERTCOLUMN = LVM_INSERTCOLUMNW; - LVM_INSERTITEM = LVM_INSERTITEMW; - LVM_SETCOLUMN = LVM_SETCOLUMNW; - LVM_SETITEM = LVM_SETITEMW; - LVM_SETITEMTEXT = LVM_SETITEMTEXTW; -{$else} - - const - LVM_EDITLABEL = LVM_EDITLABELA; - LVM_FINDITEM = LVM_FINDITEMA; - LVM_GETCOLUMN = LVM_GETCOLUMNA; - LVM_GETISEARCHSTRING = LVM_GETISEARCHSTRINGA; - LVM_GETITEM = LVM_GETITEMA; - LVM_GETITEMTEXT = LVM_GETITEMTEXTA; - LVM_GETSTRINGWIDTH = LVM_GETSTRINGWIDTHA; - LVM_INSERTCOLUMN = LVM_INSERTCOLUMNA; - LVM_INSERTITEM = LVM_INSERTITEMA; - LVM_SETCOLUMN = LVM_SETCOLUMNA; - LVM_SETITEM = LVM_SETITEMA; - LVM_SETITEMTEXT = LVM_SETITEMTEXTA; -{$endif} - { UNICODE } - - { List view control notifications } - LVN_ITEMCHANGING = -(100); - LVN_ITEMCHANGED = -(101); - LVN_INSERTITEM = -(102); - LVN_DELETEITEM = -(103); - LVN_DELETEALLITEMS = -(104); - LVN_BEGINLABELEDITA = -(105); - LVN_ENDLABELEDITA = -(106); - LVN_COLUMNCLICK = -(108); - LVN_BEGINDRAG = -(109); - LVN_BEGINRDRAG = -(111); - LVN_ODCACHEHINT = -(113); //#if (_WIN32_IE >= 0x0300) - LVN_ITEMACTIVATE = -(114); - LVN_ODSTATECHANGED = -(115); - LVN_GETDISPINFOA = -(150); - LVN_SETDISPINFOA = -(151); - LVN_ODFINDITEMA = -(152); //#if (_WIN32_IE >= 0x0300) - LVN_KEYDOWN = -(155); - LVN_MARQUEEBEGIN = -(156); //#if (_WIN32_IE >= 0x0300) - LVN_BEGINLABELEDITW = -(175); - LVN_ENDLABELEDITW = -(176); - LVN_GETDISPINFOW = -(177); - LVN_SETDISPINFOW = -(178); - LVN_ODFINDITEMW = -(179); //#if (_WIN32_IE >= 0x0300) - -{$ifdef UNICODE} - LVN_BEGINLABELEDIT = LVN_BEGINLABELEDITW; - LVN_ENDLABELEDIT = LVN_ENDLABELEDITW; - LVN_GETDISPINFO = LVN_GETDISPINFOW; - LVN_SETDISPINFO = LVN_SETDISPINFOW; - LVN_ODFINDITEM = LVN_ODFINDITEMW; -{$else} - LVN_BEGINLABELEDIT = LVN_BEGINLABELEDITA; - LVN_ENDLABELEDIT = LVN_ENDLABELEDITA; - LVN_GETDISPINFO = LVN_GETDISPINFOA; - LVN_SETDISPINFO = LVN_SETDISPINFOA; - LVN_ODFINDITEM = LVN_ODFINDITEMA; -{$endif} - - { UNICODE } - - { Control notification } - NM_CLICK = -(2); - NM_DBLCLK = -(3); - NM_KILLFOCUS = -(8); - NM_OUTOFMEMORY = -(1); - NM_RCLICK = -(5); - NM_RDBLCLK = -(6); - NM_RETURN = -(4); - NM_SETFOCUS = -(7); - { Power status } - { Progress bar control } - PBM_DELTAPOS = 1027; - PBM_SETPOS = 1026; - PBM_GETPOS = WM_USER+8; - PBM_SETRANGE = 1025; - PBM_SETRANGE32 = WM_USER+6; - PBM_GETRANGE = WM_USER+7; - PBM_SETSTEP = 1028; - PBM_STEPIT = 1029; - { Property sheets } //prsht - PSM_SETCURSEL = (WM_USER + 101); - PSM_REMOVEPAGE = (WM_USER + 102); - PSM_ADDPAGE = (WM_USER + 103); - PSM_CHANGED = (WM_USER + 104); - PSM_RESTARTWINDOWS = (WM_USER + 105); - PSM_REBOOTSYSTEM = (WM_USER + 106); - PSM_CANCELTOCLOSE = (WM_USER + 107); - PSM_QUERYSIBLINGS = (WM_USER + 108); - PSM_UNCHANGED = (WM_USER + 109); - PSM_APPLY = (WM_USER + 110); - PSM_SETTITLEA = (WM_USER + 111); - PSM_SETWIZBUTTONS = (WM_USER + 112); - PSM_SETCURSELID = (WM_USER + 114); - PSM_SETFINISHTEXTA = (WM_USER + 115); - PSM_GETTABCONTROL = (WM_USER + 116); - PSM_ISDIALOGMESSAGE = (WM_USER + 117); - PSM_GETCURRENTPAGEHWND = (WM_USER + 118); - PSM_SETTITLEW = (WM_USER + 120); - PSM_SETFINISHTEXTW = (WM_USER + 121); - PSM_PRESSBUTTON = 1137; -{$ifdef UNICODE} - PSM_SETFINISHTEXT = PSM_SETFINISHTEXTW; - PSM_SETTITLE = PSM_SETTITLEW; -{$else UNICODE} - PSM_SETFINISHTEXT = PSM_SETFINISHTEXTA; - PSM_SETTITLE = PSM_SETTITLEA; -{$endif UNICODE} - - { Property sheet notifications } //prsht - PSN_FIRST = -(200); - PSN_SETACTIVE = (PSN_FIRST-0); - PSN_KILLACTIVE = (PSN_FIRST-1); - PSN_APPLY = (PSN_FIRST-2); - PSN_RESET = (PSN_FIRST-3); - PSN_HELP = (PSN_FIRST-5); - PSN_WIZBACK = (PSN_FIRST-6); - PSN_WIZNEXT = (PSN_FIRST-7); - PSN_WIZFINISH = (PSN_FIRST-8); - PSN_QUERYCANCEL = (PSN_FIRST-9); - - { Status window } - SB_GETBORDERS = 1031; - SB_GETPARTS = 1030; - SB_GETRECT = 1034; - SB_GETTEXTW = 1037; - SB_GETTEXTLENGTHW = 1036; - SB_SETTEXTW = 1035; - SB_GETTEXTA = 1026; - SB_GETTEXTLENGTHA = 1027; - SB_SETTEXTA = 1025; -{$ifdef UNICODE} - - const - SB_GETTEXT = SB_GETTEXTW; - SB_GETTEXTLENGTH = SB_GETTEXTLENGTHW; - SB_SETTEXT = SB_SETTEXTW; -{$else} - - const - SB_GETTEXT = SB_GETTEXTA; - SB_GETTEXTLENGTH = SB_GETTEXTLENGTHA; - SB_SETTEXT = SB_SETTEXTA; -{$endif} - { UNICODE } - - const - SB_SETMINHEIGHT = 1032; - SB_SETPARTS = 1028; - SB_SIMPLE = 1033; - { Scroll bar control } - SBM_ENABLE_ARROWS = 228; - SBM_GETPOS = 225; - SBM_GETRANGE = 227; - SBM_GETSCROLLINFO = 234; - SBM_SETPOS = 224; - SBM_SETRANGE = 226; - SBM_SETRANGEREDRAW = 230; - SBM_SETSCROLLINFO = 233; - { Static control } - STM_GETICON = 369; - STM_GETIMAGE = 371; - STM_SETICON = 368; - STM_SETIMAGE = 370; - { Static control notifications } - STN_CLICKED = 0; - STN_DBLCLK = 1; - STN_DISABLE = 3; - STN_ENABLE = 2; - { Toolbar control } - TB_ADDBITMAP = 1043; - TB_ADDBUTTONS = 1044; - TB_AUTOSIZE = 1057; - TB_BUTTONCOUNT = 1048; - TB_BUTTONSTRUCTSIZE = 1054; - TB_CHANGEBITMAP = 1067; - TB_CHECKBUTTON = 1026; - TB_COMMANDTOINDEX = 1049; - TB_CUSTOMIZE = 1051; - TB_DELETEBUTTON = 1046; - TB_ENABLEBUTTON = 1025; - TB_GETBITMAP = 1068; - TB_GETBITMAPFLAGS = 1065; - TB_GETBUTTON = 1047; - TB_ADDSTRINGW = 1101; - TB_GETBUTTONTEXTW = 1099; - TB_SAVERESTOREW = 1100; - TB_ADDSTRINGA = 1052; - TB_GETBUTTONTEXTA = 1069; - TB_SAVERESTOREA = 1050; - TB_SETINDENT = WM_USER + 47; - TB_SETIMAGELIST = WM_USER + 48; - TB_GETIMAGELIST = WM_USER + 49; - TB_LOADIMAGES = WM_USER + 50; - TB_GETRECT = WM_USER + 51; - TB_SETDISABLEDIMAGELIST = WM_USER + 54; - TB_GETDISABLEDIMAGELIST = WM_USER + 55; - TB_SETSTYLE = WM_USER + 56; - TB_GETSTYLE = WM_USER + 57; - TB_GETBUTTONSIZE = WM_USER + 58; - TB_SETBUTTONWIDTH = WM_USER + 59; - TB_SETMAXTEXTROWS = WM_USER + 60; - TB_GETTEXTROWS = WM_USER + 61; -{$ifdef UNICODE} - - const - TB_ADDSTRING = TB_ADDSTRINGW; - TB_GETBUTTONTEXT = TB_GETBUTTONTEXTW; - TB_SAVERESTORE = TB_SAVERESTOREW; -{$else} - - const - TB_ADDSTRING = TB_ADDSTRINGA; - TB_GETBUTTONTEXT = TB_GETBUTTONTEXTA; - TB_SAVERESTORE = TB_SAVERESTOREA; -{$endif} - { UNICODE } - - const - TB_GETITEMRECT = 1053; - TB_GETROWS = 1064; - TB_GETSTATE = 1042; - TB_GETTOOLTIPS = 1059; - TB_HIDEBUTTON = 1028; - TB_INDETERMINATE = 1029; - TB_INSERTBUTTON = 1045; - TB_ISBUTTONCHECKED = 1034; - TB_ISBUTTONENABLED = 1033; - TB_ISBUTTONHIDDEN = 1036; - TB_ISBUTTONINDETERMINATE = 1037; - TB_ISBUTTONPRESSED = 1035; - TB_PRESSBUTTON = 1027; - TB_SETBITMAPSIZE = 1056; - TB_SETBUTTONSIZE = 1055; - TB_SETCMDID = 1066; - TB_SETPARENT = 1061; - TB_SETROWS = 1063; - TB_SETSTATE = 1041; - TB_SETTOOLTIPS = WM_USER + 81; - { Track bar control } - TBM_CLEARSEL = 1043; - TBM_CLEARTICS = 1033; - TBM_GETCHANNELRECT = 1050; - TBM_GETLINESIZE = 1048; - TBM_GETNUMTICS = 1040; - TBM_GETPAGESIZE = 1046; - TBM_GETPOS = 1024; - TBM_GETPTICS = 1038; - TBM_GETRANGEMAX = 1026; - TBM_GETRANGEMIN = 1025; - TBM_GETSELEND = 1042; - TBM_GETSELSTART = 1041; - TBM_GETTHUMBLENGTH = 1052; - TBM_GETTHUMBRECT = 1049; - TBM_GETTIC = 1027; - TBM_GETTICPOS = 1039; - TBM_SETLINESIZE = 1047; - TBM_SETPAGESIZE = 1045; - TBM_SETPOS = 1029; - TBM_SETRANGE = 1030; - TBM_SETRANGEMAX = 1032; - TBM_SETRANGEMIN = 1031; - TBM_SETSEL = 1034; - TBM_SETSELEND = 1036; - TBM_SETSELSTART = 1035; - TBM_SETTHUMBLENGTH = 1051; - TBM_SETTIC = 1028; - TBM_SETTICFREQ = 1044; - { Tool bar control notifications } - TBN_BEGINADJUST = -(703); - TBN_BEGINDRAG = -(701); - TBN_CUSTHELP = -(709); - TBN_ENDADJUST = -(704); - TBN_ENDDRAG = -(702); - TBN_GETBUTTONINFOW = -(720); - TBN_GETBUTTONINFOA = -(700); - -{$ifdef UNICODE} - - const - TBN_GETBUTTONINFO = TBN_GETBUTTONINFOW; -{$else} - - const - TBN_GETBUTTONINFO = TBN_GETBUTTONINFOA; -{$endif} - { UNICODE } - - const - TBN_QUERYDELETE = -(707); - TBN_QUERYINSERT = -(706); - TBN_RESET = -(705); - TBN_TOOLBARCHANGE = -(708); - { Tab control } - TCM_ADJUSTRECT = 4904; - TCM_DELETEALLITEMS = 4873; - TCM_DELETEITEM = 4872; - TCM_GETCURFOCUS = 4911; - TCM_GETCURSEL = 4875; - TCM_GETIMAGELIST = 4866; - TCM_GETITEMW = 4924; - TCM_INSERTITEMW = 4926; - TCM_SETITEMW = 4925; - TCM_GETITEMA = 4869; - TCM_INSERTITEMA = 4871; - TCM_SETITEMA = 4870; - -{$ifdef UNICODE} - const - TCM_GETITEM = TCM_GETITEMW; //~wint, W was missing - TCM_INSERTITEM = TCM_INSERTITEMW; - TCM_SETITEM = TCM_SETITEMW; -{$else} - - const - TCM_GETITEM = TCM_GETITEMA; - TCM_INSERTITEM = TCM_INSERTITEMA; - TCM_SETITEM = TCM_SETITEMA; -{$endif} - { UNICODE } - - const - TCM_GETITEMCOUNT = 4868; - TCM_GETITEMRECT = 4874; - TCM_GETROWCOUNT = 4908; - TCM_GETTOOLTIPS = 4909; - TCM_HITTEST = 4877; - TCM_REMOVEIMAGE = 4906; - TCM_SETCURFOCUS = 4912; - TCM_SETCURSEL = 4876; - TCM_SETIMAGELIST = 4867; - TCM_SETITEMEXTRA = 4878; - TCM_SETITEMSIZE = 4905; - TCM_SETPADDING = 4907; - TCM_SETTOOLTIPS = 4910; - { Tab control notifications } - TCN_KEYDOWN = -(550); - TCN_SELCHANGE = -(551); - TCN_SELCHANGING = -(552); - { Tool tip control } - TTM_ACTIVATE = 1025; - TTM_ADDTOOLW = 1074; - TTM_DELTOOLW = 1075; - TTM_ENUMTOOLSW = 1082; - TTM_GETCURRENTTOOLW = 1083; - TTM_GETTEXTW = 1080; - TTM_GETTOOLINFOW = 1077; - TTM_HITTESTW = 1079; - TTM_NEWTOOLRECTW = 1076; - TTM_SETTOOLINFOW = 1078; - TTM_UPDATETIPTEXTW = 1081; - TTM_ADDTOOLA = 1028; - TTM_DELTOOLA = 1029; - TTM_ENUMTOOLSA = 1038; - TTM_GETCURRENTTOOLA = 1039; - TTM_GETTEXTA = 1035; - TTM_GETTOOLINFOA = 1032; - TTM_HITTESTA = 1034; - TTM_NEWTOOLRECTA = 1030; - TTM_SETTOOLINFOA = 1033; - TTM_UPDATETIPTEXTA = 1036; -{$ifdef UNICODE} - - const - TTM_ADDTOOL = TTM_ADDTOOLW; - TTM_DELTOOL = TTM_DELTOOLW; - TTM_ENUMTOOLS = TTM_ENUMTOOLSW; - TTM_GETCURRENTTOOL = TTM_GETCURRENTTOOLW; - TTM_GETTEXT = TTM_GETTEXTW; - TTM_GETTOOLINFO = TTM_GETTOOLINFOW; - TTM_HITTEST = TTM_HITTESTW; - TTM_NEWTOOLRECT = TTM_NEWTOOLRECTW; - TTM_SETTOOLINFO = TTM_SETTOOLINFOW; - TTM_UPDATETIPTEXT = TTM_UPDATETIPTEXTW; -{$else} - - const - TTM_ADDTOOL = TTM_ADDTOOLA; - TTM_DELTOOL = TTM_DELTOOLA; - TTM_ENUMTOOLS = TTM_ENUMTOOLSA; - TTM_GETCURRENTTOOL = TTM_GETCURRENTTOOLA; - TTM_GETTEXT = TTM_GETTEXTA; - TTM_GETTOOLINFO = TTM_GETTOOLINFOA; - TTM_HITTEST = TTM_HITTESTA; - TTM_NEWTOOLRECT = TTM_NEWTOOLRECTA; - TTM_SETTOOLINFO = TTM_SETTOOLINFOA; - TTM_UPDATETIPTEXT = TTM_UPDATETIPTEXTA; -{$endif} - { UNICODE } - - const - TTM_GETTOOLCOUNT = 1037; - TTM_RELAYEVENT = 1031; - TTM_SETDELAYTIME = 1027; - TTM_WINDOWFROMPOINT = 1040; - { UNICODE } - - const - TTN_POP = -(522); - TTN_SHOW = -(521); - { Tree view control } - TVM_CREATEDRAGIMAGE = 4370; - TVM_DELETEITEM = 4353; - TVM_ENDEDITLABELNOW = 4374; - TVM_ENSUREVISIBLE = 4372; - TVM_EXPAND = 4354; - TVM_GETCOUNT = 4357; - TVM_GETEDITCONTROL = 4367; - TVM_GETIMAGELIST = 4360; - TVM_GETINDENT = 4358; - TVM_GETITEMRECT = 4356; - TVM_GETNEXTITEM = 4362; - TVM_GETVISIBLECOUNT = 4368; - TVM_HITTEST = 4369; - TVM_EDITLABELW = 4417; - TVM_GETISEARCHSTRINGW = 4416; - TVM_GETITEMW = 4414; - TVM_INSERTITEMW = 4402; - TVM_SETITEMW = 4415; - TVM_EDITLABELA = 4366; - TVM_GETISEARCHSTRINGA = 4375; - TVM_GETITEMA = 4364; - TVM_INSERTITEMA = 4352; - TVM_SETITEMA = 4365; -{$ifdef UNICODE} - - const - TVM_EDITLABEL = TVM_EDITLABELW; - TVM_GETISEARCHSTRING = TVM_GETISEARCHSTRINGW; - TVM_GETITEM = TVM_GETITEMW; - TVM_INSERTITEM = TVM_INSERTITEMW; - TVM_SETITEM = TVM_SETITEMW; -{$else} - - const - TVM_EDITLABEL = TVM_EDITLABELA; - TVM_GETISEARCHSTRING = TVM_GETISEARCHSTRINGA; - TVM_GETITEM = TVM_GETITEMA; - TVM_INSERTITEM = TVM_INSERTITEMA; - TVM_SETITEM = TVM_SETITEMA; -{$endif} - { UNICODE } - - const - TVM_SELECTITEM = 4363; - TVM_SETIMAGELIST = 4361; - TVM_SETINDENT = 4359; - TVM_SORTCHILDREN = 4371; - TVM_SORTCHILDRENCB = 4373; - { Tree view control notification } - TVN_KEYDOWN = -(412); - TVN_BEGINDRAGW = -(456); - TVN_BEGINLABELEDITW = -(459); - TVN_BEGINRDRAGW = -(457); - TVN_DELETEITEMW = -(458); - TVN_ENDLABELEDITW = -(460); - TVN_GETDISPINFOW = -(452); - TVN_ITEMEXPANDEDW = -(455); - TVN_ITEMEXPANDINGW = -(454); - TVN_SELCHANGEDW = -(451); - TVN_SELCHANGINGW = -(450); - TVN_SETDISPINFOW = -(453); - TVN_BEGINDRAGA = -(407); - TVN_BEGINLABELEDITA = -(410); - TVN_BEGINRDRAGA = -(408); - TVN_DELETEITEMA = -(409); - TVN_ENDLABELEDITA = -(411); - TVN_GETDISPINFOA = -(403); - TVN_ITEMEXPANDEDA = -(406); - TVN_ITEMEXPANDINGA = -(405); - TVN_SELCHANGEDA = -(402); - TVN_SELCHANGINGA = -(401); - TVN_SETDISPINFOA = -(404); -{$ifdef UNICODE} - - const - TVN_BEGINDRAG = TVN_BEGINDRAGW; - TVN_BEGINLABELEDIT = TVN_BEGINLABELEDITW; - TVN_BEGINRDRAG = TVN_BEGINRDRAGW; - TVN_DELETEITEM = TVN_DELETEITEMW; - TVN_ENDLABELEDIT = TVN_ENDLABELEDITW; - TVN_GETDISPINFO = TVN_GETDISPINFOW; - TVN_ITEMEXPANDED = TVN_ITEMEXPANDEDW; - TVN_ITEMEXPANDING = TVN_ITEMEXPANDINGW; - TVN_SELCHANGED = TVN_SELCHANGEDW; - TVN_SELCHANGING = TVN_SELCHANGINGW; - TVN_SETDISPINFO = TVN_SETDISPINFOW; -{$else} - - const - TVN_BEGINDRAG = TVN_BEGINDRAGA; - TVN_BEGINLABELEDIT = TVN_BEGINLABELEDITA; - TVN_BEGINRDRAG = TVN_BEGINRDRAGA; - TVN_DELETEITEM = TVN_DELETEITEMA; - TVN_ENDLABELEDIT = TVN_ENDLABELEDITA; - TVN_GETDISPINFO = TVN_GETDISPINFOA; - TVN_ITEMEXPANDED = TVN_ITEMEXPANDEDA; - TVN_ITEMEXPANDING = TVN_ITEMEXPANDINGA; - TVN_SELCHANGED = TVN_SELCHANGEDA; - TVN_SELCHANGING = TVN_SELCHANGINGA; - TVN_SETDISPINFO = TVN_SETDISPINFOA; -{$endif} - { UNICODE } - { Up/down control } - - const - UDM_GETACCEL = 1132; - UDM_GETBASE = 1134; - UDM_GETBUDDY = 1130; - UDM_GETPOS = 1128; - UDM_GETPOS32 = 1138; - UDM_GETRANGE = 1126; - UDM_GETRANGE32 = 1136; - UDM_SETACCEL = 1131; - UDM_SETBASE = 1133; - UDM_SETBUDDY = 1129; - UDM_SETPOS = 1127; - UDM_SETPOS32 = 1137; - UDM_SETRANGE = 1125; - UDM_SETRANGE32 = 1135; - { Up/down control notification } - UDN_DELTAPOS = -(722); - { Window messages } - WM_ACTIVATE = 6; - WM_ACTIVATEAPP = 28; - WM_ASKCBFORMATNAME = 780; - WM_CANCELJOURNAL = 75; - WM_CANCELMODE = 31; - WM_CAPTURECHANGED = 533; - WM_CHANGECBCHAIN = 781; - WM_CHAR = 258; - WM_CHARTOITEM = 47; - WM_CHILDACTIVATE = 34; - WM_CHOOSEFONT_GETLOGFONT = 1025; - WM_CHOOSEFONT_SETLOGFONT = 1125; - WM_CHOOSEFONT_SETFLAGS = 1126; - WM_CLEAR = 771; - WM_CLOSE = 16; - WM_COMMAND = 273; - WM_COMPACTING = 65; - WM_COMPAREITEM = 57; - WM_CONTEXTMENU = 123; - WM_COPY = 769; - WM_COPYDATA = 74; - WM_CREATE = 1; - WM_CTLCOLORBTN = 309; - WM_CTLCOLORDLG = 310; - WM_CTLCOLOREDIT = 307; - WM_CTLCOLORLISTBOX = 308; - WM_CTLCOLORMSGBOX = 306; - WM_CTLCOLORSCROLLBAR = 311; - WM_CTLCOLORSTATIC = 312; - WM_CUT = 768; - WM_DEADCHAR = 259; - WM_DELETEITEM = 45; - WM_DESTROY = 2; - WM_DESTROYCLIPBOARD = 775; - WM_DEVICECHANGE = 537; - WM_DEVMODECHANGE = 27; - WM_DISPLAYCHANGE = 126; - WM_DRAWCLIPBOARD = 776; - WM_DRAWITEM = 43; - WM_DROPFILES = 563; - WM_ENABLE = 10; - WM_ENDSESSION = 22; - WM_ENTERIDLE = 289; - WM_ENTERMENULOOP = 529; - WM_ENTERSIZEMOVE = 561; - WM_ERASEBKGND = 20; - WM_EXITMENULOOP = 530; - WM_EXITSIZEMOVE = 562; - WM_FONTCHANGE = 29; - WM_GETDLGCODE = 135; - WM_GETFONT = 49; - WM_GETHOTKEY = 51; - WM_GETICON = 127; - WM_GETMINMAXINFO = 36; - WM_GETTEXT = 13; - WM_GETTEXTLENGTH = 14; - WM_HELP = 83; - WM_HOTKEY = 786; - WM_HSCROLL = 276; - WM_HSCROLLCLIPBOARD = 782; - WM_ICONERASEBKGND = 39; - WM_IME_CHAR = 646; - WM_IME_COMPOSITION = 271; - WM_IME_COMPOSITIONFULL = 644; - WM_IME_CONTROL = 643; - WM_IME_ENDCOMPOSITION = 270; - WM_IME_KEYDOWN = 656; - WM_IME_KEYUP = 657; - WM_IME_NOTIFY = 642; - WM_IME_SELECT = 645; - WM_IME_SETCONTEXT = 641; - WM_IME_STARTCOMPOSITION = 269; - WM_INITDIALOG = 272; - WM_INITMENU = 278; - WM_INITMENUPOPUP = 279; - WM_INPUTLANGCHANGE = 81; - WM_INPUTLANGCHANGEREQUEST = 80; - WM_KEYDOWN = 256; - WM_KEYUP = 257; - WM_KILLFOCUS = 8; - WM_LBUTTONDBLCLK = 515; - WM_LBUTTONDOWN = 513; - WM_LBUTTONUP = 514; - WM_MBUTTONDBLCLK = 521; - WM_MBUTTONDOWN = 519; - WM_MBUTTONUP = 520; - WM_MDIACTIVATE = 546; - WM_MDICASCADE = 551; - WM_MDICREATE = 544; - WM_MDIDESTROY = 545; - WM_MDIGETACTIVE = 553; - WM_MDIICONARRANGE = 552; - WM_MDIMAXIMIZE = 549; - WM_MDINEXT = 548; - WM_MDIREFRESHMENU = 564; - WM_MDIRESTORE = 547; - WM_MDISETMENU = 560; - WM_MDITILE = 550; - WM_MEASUREITEM = 44; - WM_MENUCHAR = 288; - WM_MENUSELECT = 287; - WM_MOUSEACTIVATE = 33; - WM_MOUSEMOVE = 512; - WM_MOUSEWHEEL = 522; - WM_MOUSEHOVER = 673; - WM_MOUSELEAVE = 675; - WM_MOVE = 3; - WM_MOVING = 534; - WM_NCACTIVATE = 134; - WM_NCCALCSIZE = 131; - WM_NCCREATE = 129; - WM_NCDESTROY = 130; - WM_NCHITTEST = 132; - WM_NCLBUTTONDBLCLK = 163; - WM_NCLBUTTONDOWN = 161; - WM_NCLBUTTONUP = 162; - WM_NCMBUTTONDBLCLK = 169; - WM_NCMBUTTONDOWN = 167; - WM_NCMBUTTONUP = 168; - WM_NCMOUSEMOVE = 160; - WM_NCPAINT = 133; - WM_NCRBUTTONDBLCLK = 166; - WM_NCRBUTTONDOWN = 164; - WM_NCRBUTTONUP = 165; - WM_NEXTDLGCTL = 40; - WM_NOTIFY = 78; - WM_NOTIFYFORMAT = 85; - WM_NULL = 0; - WM_PAINT = 15; - WM_PAINTCLIPBOARD = 777; - WM_PAINTICON = 38; - WM_PALETTECHANGED = 785; - WM_PALETTEISCHANGING = 784; - WM_PARENTNOTIFY = 528; - WM_PASTE = 770; - WM_PENWINFIRST = 896; - WM_PENWINLAST = 911; - WM_POWER = 72; - WM_POWERBROADCAST = 536; - WM_PRINT = 791; - WM_PRINTCLIENT = 792; - WM_PSD_ENVSTAMPRECT = 1029; - WM_PSD_FULLPAGERECT = 1025; - WM_PSD_GREEKTEXTRECT = 1028; - WM_PSD_MARGINRECT = 1027; - WM_PSD_MINMARGINRECT = 1026; - WM_PSD_PAGESETUPDLG = 1024; - WM_PSD_YAFULLPAGERECT = 1030; - WM_QUERYDRAGICON = 55; - WM_QUERYENDSESSION = 17; - WM_QUERYNEWPALETTE = 783; - WM_QUERYOPEN = 19; - WM_QUEUESYNC = 35; - WM_QUIT = 18; - WM_RBUTTONDBLCLK = 518; - WM_RBUTTONDOWN = 516; - WM_RBUTTONUP = 517; - WM_RENDERALLFORMATS = 774; - WM_RENDERFORMAT = 773; - WM_SETCURSOR = 32; - WM_SETFOCUS = 7; - WM_SETFONT = 48; - WM_SETHOTKEY = 50; - WM_SETICON = 128; - WM_SETREDRAW = 11; - WM_SETTEXT = 12; - WM_SETTINGCHANGE = 26; - WM_SHOWWINDOW = 24; - WM_SIZE = 5; - WM_SIZECLIPBOARD = 779; - WM_SIZING = 532; - WM_SPOOLERSTATUS = 42; - WM_STYLECHANGED = 125; - WM_STYLECHANGING = 124; - WM_SYSCHAR = 262; - WM_SYSCOLORCHANGE = 21; - WM_SYSCOMMAND = 274; - WM_SYSDEADCHAR = 263; - WM_SYSKEYDOWN = 260; - WM_SYSKEYUP = 261; - WM_TCARD = 82; - WM_TIMECHANGE = 30; - WM_TIMER = 275; - WM_UNDO = 772; - //WM_USER = 1024; moved at start - WM_USERCHANGED = 84; - WM_VKEYTOITEM = 46; - WM_VSCROLL = 277; - WM_VSCROLLCLIPBOARD = 778; - WM_WINDOWPOSCHANGED = 71; - WM_WINDOWPOSCHANGING = 70; - WM_WININICHANGE = 26; - { Window message ranges } - WM_KEYFIRST = 256; - WM_KEYLAST = 264; - WM_MOUSEFIRST = 512; - WM_MOUSELAST = 525; - WM_XBUTTONDOWN = 523; - WM_XBUTTONUP = 524; - WM_XBUTTONDBLCLK = 525; - -Type -{$ifdef MESSAGESUNIT} - - MSG = Windows.MSG; - TMessage = Windows.TMessage; - TWMSize = Windows.TWMSize; - TWMNoParams = Windows.TWMNoParams; - TWMScroll = Windows.TWMScroll; - TWMGetText = Windows.TWMGetText; - TWMKillFocus = Windows.TWMKillFocus; - TWMSetCursor = Windows.TWMSetCursor; - TWMSetFocus = Windows.TWMSetFocus; - TWMSetFont = Windows.TWMSetFont; - TWMShowWindow = Windows.TWMShowWindow; - TWMEraseBkgnd = Windows.TWMEraseBkgnd; - LPMSG = Windows.MSG; - tagMSG = Windows.tagMSG; - TMSG = Windows.TMSG; - PMSG = Windows.PMSG; - PMessage = Windows.PMessage; - TWMGetDlgCode = TWMNoParams; - TWMFontChange = TWMNoParams; - TWMGetFont = TWMNoParams; - TWMHScroll = TWMScroll; - TWMVScroll = TWMScroll; - TWMGetTextLength = TWMNoParams; - -{$else} - - MSG = record - hwnd : HWND; - message : UINT; - wParam : WPARAM; - lParam : LPARAM; - time : DWORD; - pt : POINT; - end; - - LPMSG = ^MSG; - tagMSG = MSG; - TMSG = MSG; - PMSG = ^MSG; - - - PMessage = ^TMessage; - TMessage = record {fields according to ICS} - msg : UINT; - case longint of - 0: ( - wParam : WPARAM; - lParam : LPARAM; - Result : LRESULT; - ); - 1: ( - wParamlo, - wParamhi : WORD; // Is there Windows type for half an wparam? - lParamlo, - lParamhi : WORD; - Resultlo, - Resulthi : WORD; - ); - end; - - TWMSize = record - Msg: Cardinal; - SizeType : LongInt; - Width : Word; - Height : Word; - Result : LongInt; - End; - - TWMNoParams = record - Msg : Cardinal; - Unused : array[0..3] of Word; - Result : Longint; - end; - - TWMGetDlgCode = TWMNoParams; - TWMFontChange = TWMNoParams; - TWMGetFont = TWMNoParams; - - TWMScroll = record - Msg : Cardinal; - ScrollCode : SmallInt; - Pos : SmallInt; - ScrollBar : HWND; - Result : LongInt; - end; - - TWMHScroll = TWMScroll; - TWMVScroll = TWMScroll; - - TWMGetText = record - Msg : Cardinal; - TextMax : LongInt; - Text : PChar; - Result : LongInt; - end; - - TWMGetTextLength = TWMNoParams; - - TWMKillFocus = record - Msg : Cardinal; - FocusedWnd : HWND; - UnUsed : LongInt; - Result : LongInt; - End; - - TWMSetCursor = record - Msg : Cardinal; - CursorWnd : HWND; - HitTest : Word; - MouseMsg : Word; - Result : LongInt; - end; - - TWMSetFocus = record - Msg : Cardinal; - FocusedWnd : HWND; - Unused : LongInt; - Result : LongInt; - end; - - TWMSetFont = record - Msg : Cardinal; - Font : HFONT; - Redraw : WordBool; - Unused : Word; - Result : LongInt; - end; - - TWMShowWindow = record - Msg : Cardinal; - Show : BOOL; - Status : LongInt; - Result : LongInt; - end; - - TWMEraseBkgnd = record - Msg: Cardinal; - DC: HDC; - Unused: Longint; - Result: Longint; - end; - -{$endif messagesunit} - -{$endif read_interface} - +{ + This file is part of the Free Pascal run time library. + Copyright (c) 1999-2000 by Florian Klaempfl, + member of the Free Pascal development team. + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} + +{ + Messages.h Windows32 API message definitions + Copyright (C) 1996 Free Software Foundation, Inc. + + Author: Scott Christley + + This file is part of the Windows32 API Library. + + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + + If you are interested in a warranty or support for this source code, + contact Scott Christley for more information. + + + You should have received a copy of the GNU Library General Public + License along with this library; see the file COPYING.LIB. + If not, write to the Free Software Foundation, + + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + Changes : + + 08-15-2005 : orinaudo@gmail.com, WCE 4.21 SE, First release + 09-02-2006 : updated +} + +{$ifdef read_interface} + + const + ACM_OPENW = 1127; + ACM_OPENA = 1124; + {$ifdef UNICODE} + const + ACM_OPEN = ACM_OPENW; + {$else} + const + ACM_OPEN = ACM_OPENA; + {$endif} + { UNICODE } + + const + + WM_USER = 1024; //keep it first + + ACM_PLAY = 1125; + ACM_STOP = 1126; + ACN_START = 1; + ACN_STOP = 2; + { Buttons } + BM_CLICK = 245; + BM_GETCHECK = 240; + BM_GETIMAGE = 246; + BM_GETSTATE = 242; + BM_SETCHECK = 241; + BM_SETIMAGE = 247; + BM_SETSTATE = 243; + BM_SETSTYLE = 244; + BN_CLICKED = 0; + BN_DBLCLK = 5; + BN_DISABLE = 4; + BN_DOUBLECLICKED = 5; + BN_HILITE = 2; + BN_KILLFOCUS = 7; + BN_PAINT = 1; + BN_PUSHED = 2; + BN_SETFOCUS = 6; + BN_UNHILITE = 3; + BN_UNPUSHED = 3; + { Combo Box } + CB_ADDSTRING = 323; + CB_DELETESTRING = 324; + CB_DIR = 325; + CB_FINDSTRING = 332; + CB_FINDSTRINGEXACT = 344; + CB_GETCOUNT = 326; + CB_GETCURSEL = 327; + CB_GETDROPPEDCONTROLRECT = 338; + CB_GETDROPPEDSTATE = 343; + CB_GETDROPPEDWIDTH = 351; + CB_GETEDITSEL = 320; + CB_GETEXTENDEDUI = 342; + CB_GETHORIZONTALEXTENT = 349; + CB_GETITEMDATA = 336; + CB_GETITEMHEIGHT = 340; + CB_GETLBTEXT = 328; + CB_GETLBTEXTLEN = 329; + CB_GETLOCALE = 346; + CB_GETTOPINDEX = 347; + CB_INITSTORAGE = 353; + CB_INSERTSTRING = 330; + CB_LIMITTEXT = 321; + CB_RESETCONTENT = 331; + CB_SELECTSTRING = 333; + CB_SETCURSEL = 334; + CB_SETDROPPEDWIDTH = 352; + CB_SETEDITSEL = 322; + CB_SETEXTENDEDUI = 341; + CB_SETHORIZONTALEXTENT = 350; + CB_SETITEMDATA = 337; + CB_SETITEMHEIGHT = 339; + CB_SETLOCALE = 345; + CB_SETTOPINDEX = 348; + CB_SHOWDROPDOWN = 335; + { Combo Box notifications } + CBN_CLOSEUP = 8; + CBN_DBLCLK = 2; + CBN_DROPDOWN = 7; + CBN_EDITCHANGE = 5; + CBN_EDITUPDATE = 6; + CBN_ERRSPACE = -(1); + CBN_KILLFOCUS = 4; + CBN_SELCHANGE = 1; + CBN_SELENDCANCEL = 10; + CBN_SELENDOK = 9; + CBN_SETFOCUS = 3; + { Control Panel } + { Device messages } + { Drag list box } + DL_BEGINDRAG = 1157; + DL_CANCELDRAG = 1160; + DL_DRAGGING = 1158; + DL_DROPPED = 1159; + { Default push button } + DM_GETDEFID = 1024; + DM_REPOSITION = 1026; + DM_SETDEFID = 1025; + { RTF control } + EM_CANPASTE = 1074; + EM_CANUNDO = 198; + EM_CHARFROMPOS = 215; + EM_DISPLAYBAND = 1075; + EM_EMPTYUNDOBUFFER = 205; + EM_EXGETSEL = 1076; + EM_EXLIMITTEXT = 1077; + EM_EXLINEFROMCHAR = 1078; + EM_EXSETSEL = 1079; + EM_FINDTEXT = 1080; + EM_FINDTEXTEX = 1103; + EM_FINDWORDBREAK = 1100; + EM_FMTLINES = 200; + EM_FORMATRANGE = 1081; + EM_GETCHARFORMAT = 1082; + EM_GETEVENTMASK = 1083; + EM_GETFIRSTVISIBLELINE = 206; + EM_GETHANDLE = 189; + EM_GETLIMITTEXT = 213; + EM_GETLINE = 196; + EM_GETLINECOUNT = 186; + EM_GETMARGINS = 212; + EM_GETMODIFY = 184; + EM_GETIMECOLOR = 1129; + EM_GETIMEOPTIONS = 1131; + EM_GETOPTIONS = 1102; + EM_GETOLEINTERFACE = 1084; + EM_GETPARAFORMAT = 1085; + EM_GETPASSWORDCHAR = 210; + EM_GETPUNCTUATION = 1125; + EM_GETRECT = 178; + EM_GETSEL = 176; + EM_GETSELTEXT = 1086; + EM_GETTEXTRANGE = 1099; + EM_GETTHUMB = 190; + EM_GETWORDBREAKPROC = 209; + EM_GETWORDBREAKPROCEX = 1104; + EM_GETWORDWRAPMODE = 1127; + EM_HIDESELECTION = 1087; + EM_LIMITTEXT = 197; + EM_LINEFROMCHAR = 201; + EM_LINEINDEX = 187; + EM_LINELENGTH = 193; + EM_LINESCROLL = 182; + EM_PASTESPECIAL = 1088; + EM_POSFROMCHAR = 214; + EM_REPLACESEL = 194; + EM_REQUESTRESIZE = 1089; + EM_SCROLL = 181; + EM_SCROLLCARET = 183; + EM_SELECTIONTYPE = 1090; + EM_SETBKGNDCOLOR = 1091; + EM_SETCHARFORMAT = 1092; + EM_SETEVENTMASK = 1093; + EM_SETHANDLE = 188; + EM_SETIMECOLOR = 1128; + EM_SETIMEOPTIONS = 1130; + EM_SETLIMITTEXT = 197; + EM_SETMARGINS = 211; + EM_SETMODIFY = 185; + EM_SETOLECALLBACK = 1094; + EM_SETOPTIONS = 1101; + EM_SETPARAFORMAT = 1095; + EM_SETPASSWORDCHAR = 204; + EM_SETPUNCTUATION = 1124; + EM_SETREADONLY = 207; + EM_SETRECT = 179; + EM_SETRECTNP = 180; + EM_SETSEL = 177; + EM_SETTABSTOPS = 203; + EM_SETTARGETDEVICE = 1096; + EM_SETWORDBREAKPROC = 208; + EM_SETWORDBREAKPROCEX = 1105; + EM_SETWORDWRAPMODE = 1126; + EM_STREAMIN = 1097; + EM_STREAMOUT = 1098; + EM_UNDO = 199; + { Edit control } + EN_SETFOCUS =$0100; + EN_KILLFOCUS =$0200; + EN_CHANGE =$0300; + EN_UPDATE =$0400; + EN_ERRSPACE =$0500; + EN_MAXTEXT =$0501; + EN_HSCROLL =$0601; + EN_VSCROLL =$0602; + + EN_CORRECTTEXT = 1797; + EN_DROPFILES = 1795; + EN_IMECHANGE = 1799; + EN_MSGFILTER = 1792; + EN_OLEOPFAILED = 1801; + EN_PROTECTED = 1796; + EN_REQUESTRESIZE = 1793; + EN_SAVECLIPBOARD = 1800; + EN_SELCHANGE = 1794; + EN_STOPNOUNDO = 1798; + + { Hot key control } + const + HKM_GETHOTKEY = 1026; + HKM_SETHOTKEY = 1025; + HKM_SETRULES = 1027; + { List box } + LB_ADDFILE = 406; + LB_ADDSTRING = 384; + LB_DELETESTRING = 386; + LB_DIR = 397; + LB_FINDSTRING = 399; + LB_FINDSTRINGEXACT = 418; + LB_GETANCHORINDEX = 413; + LB_GETCARETINDEX = 415; + LB_GETCOUNT = 395; + LB_GETCURSEL = 392; + LB_GETHORIZONTALEXTENT = 403; + LB_GETITEMDATA = 409; + LB_GETITEMHEIGHT = 417; + LB_GETITEMRECT = 408; + LB_GETLOCALE = 422; + LB_GETSEL = 391; + LB_GETSELCOUNT = 400; + LB_GETSELITEMS = 401; + LB_GETTEXT = 393; + LB_GETTEXTLEN = 394; + LB_GETTOPINDEX = 398; + LB_INITSTORAGE = 424; + LB_INSERTSTRING = 385; + LB_ITEMFROMPOINT = 425; + LB_RESETCONTENT = 388; + LB_SELECTSTRING = 396; + LB_SELITEMRANGE = 411; + LB_SELITEMRANGEEX = 387; + LB_SETANCHORINDEX = 412; + LB_SETCARETINDEX = 414; + LB_SETCOLUMNWIDTH = 405; + LB_SETCOUNT = 423; + LB_SETCURSEL = 390; + LB_SETHORIZONTALEXTENT = 404; + LB_SETITEMDATA = 410; + LB_SETITEMHEIGHT = 416; + LB_SETLOCALE = 421; + LB_SETSEL = 389; + LB_SETTABSTOPS = 402; + LB_SETTOPINDEX = 407; + { List box notifications } + LBN_DBLCLK = 2; + LBN_ERRSPACE = -(2); + LBN_KILLFOCUS = 5; + LBN_SELCANCEL = 3; + LBN_SELCHANGE = 1; + LBN_SETFOCUS = 4; + { List view control } + LVM_ARRANGE = 4118; + LVM_CREATEDRAGIMAGE = 4129; + LVM_DELETEALLITEMS = 4105; + LVM_DELETECOLUMN = 4124; + LVM_DELETEITEM = 4104; + LVM_ENSUREVISIBLE = 4115; + LVM_GETBKCOLOR = 4096; + LVM_GETCALLBACKMASK = 4106; + LVM_GETCOLUMNWIDTH = 4125; + LVM_GETCOUNTPERPAGE = 4136; + LVM_GETEDITCONTROL = 4120; + LVM_GETIMAGELIST = 4098; + LVM_EDITLABELW = 4214; + LVM_FINDITEMW = 4179; + LVM_GETCOLUMNW = 4191; + LVM_GETISEARCHSTRINGW = 4213; + LVM_GETITEMW = 4171; + LVM_GETITEMTEXTW = 4211; + LVM_GETSTRINGWIDTHW = 4183; + LVM_INSERTCOLUMNW = 4193; + LVM_INSERTITEMW = 4173; + LVM_SETCOLUMNW = 4192; + LVM_SETITEMW = 4172; + LVM_SETITEMTEXTW = 4212; + LVM_EDITLABELA = 4119; + LVM_FINDITEMA = 4109; + LVM_GETCOLUMNA = 4121; + LVM_GETISEARCHSTRINGA = 4148; + LVM_GETITEMA = 4101; + LVM_GETITEMTEXTA = 4141; + LVM_GETSTRINGWIDTHA = 4113; + LVM_INSERTCOLUMNA = 4123; + LVM_INSERTITEMA = 4103; + LVM_SETCOLUMNA = 4122; + LVM_SETITEMA = 4102; + LVM_SETITEMTEXTA = 4142; + LVM_GETITEMCOUNT = 4100; + LVM_GETITEMPOSITION = 4112; + LVM_GETITEMRECT = 4110; + LVM_GETITEMSPACING = 4147; + LVM_GETITEMSTATE = 4140; + LVM_GETNEXTITEM = 4108; + LVM_GETORIGIN = 4137; + LVM_GETSELECTEDCOUNT = 4146; + LVM_GETTEXTBKCOLOR = 4133; + LVM_GETTEXTCOLOR = 4131; + LVM_GETTOPINDEX = 4135; + LVM_GETVIEWRECT = 4130; + LVM_HITTEST = 4114; + LVM_REDRAWITEMS = 4117; + LVM_SCROLL = 4116; + LVM_SETBKCOLOR = 4097; + LVM_SETCALLBACKMASK = 4107; + LVM_SETCOLUMNWIDTH = 4126; + LVM_SETIMAGELIST = 4099; + LVM_SETITEMCOUNT = 4143; + LVM_SETITEMPOSITION = 4111; + LVM_SETITEMPOSITION32 = 4145; + LVM_SETITEMSTATE = 4139; + LVM_SETTEXTBKCOLOR = 4134; + LVM_SETTEXTCOLOR = 4132; + LVM_SORTITEMS = 4144; + LVM_UPDATE = 4138; + LVM_SETICONSPACING = 4149; //LVM_FIRST + 53 + LVM_SETEXTENDEDLISTVIEWSTYLE = 4150; //LVM_FIRST + 54 + LVM_GETSUBITEMRECT = 4152; //LVM_FIRST + 56 + LVM_SUBITEMHITTEST = 4153; //LVM_FIRST + 57 + LVM_SETCOLUMNORDERARRAY = 4154; //LVM_FIRST + 58 + LVM_GETCOLUMNORDERARRAY = 4155; //LVM_FIRST + 59 + LVM_APPROXIMATEVIEWRECT = 4160; //LVM_FIRST + 64 + LVM_GETSELECTIONMARK = 4162; //LVM_FIRST + 66 + LVM_SETSELECTIONMARK = 4163; //LVM_FIRST + 67 + LVM_GETHEADER = 4127; //LVM_FIRST + 31 + +{$ifdef UNICODE} + + const + LVM_EDITLABEL = LVM_EDITLABELW; + LVM_FINDITEM = LVM_FINDITEMW; + LVM_GETCOLUMN = LVM_GETCOLUMNW; + LVM_GETISEARCHSTRING = LVM_GETISEARCHSTRINGW; + LVM_GETITEM = LVM_GETITEMW; + LVM_GETITEMTEXT = LVM_GETITEMTEXTW; + LVM_GETSTRINGWIDTH = LVM_GETSTRINGWIDTHW; + LVM_INSERTCOLUMN = LVM_INSERTCOLUMNW; + LVM_INSERTITEM = LVM_INSERTITEMW; + LVM_SETCOLUMN = LVM_SETCOLUMNW; + LVM_SETITEM = LVM_SETITEMW; + LVM_SETITEMTEXT = LVM_SETITEMTEXTW; +{$else} + + const + LVM_EDITLABEL = LVM_EDITLABELA; + LVM_FINDITEM = LVM_FINDITEMA; + LVM_GETCOLUMN = LVM_GETCOLUMNA; + LVM_GETISEARCHSTRING = LVM_GETISEARCHSTRINGA; + LVM_GETITEM = LVM_GETITEMA; + LVM_GETITEMTEXT = LVM_GETITEMTEXTA; + LVM_GETSTRINGWIDTH = LVM_GETSTRINGWIDTHA; + LVM_INSERTCOLUMN = LVM_INSERTCOLUMNA; + LVM_INSERTITEM = LVM_INSERTITEMA; + LVM_SETCOLUMN = LVM_SETCOLUMNA; + LVM_SETITEM = LVM_SETITEMA; + LVM_SETITEMTEXT = LVM_SETITEMTEXTA; +{$endif} + { UNICODE } + + { List view control notifications } + LVN_ITEMCHANGING = -(100); + LVN_ITEMCHANGED = -(101); + LVN_INSERTITEM = -(102); + LVN_DELETEITEM = -(103); + LVN_DELETEALLITEMS = -(104); + LVN_BEGINLABELEDITA = -(105); + LVN_ENDLABELEDITA = -(106); + LVN_COLUMNCLICK = -(108); + LVN_BEGINDRAG = -(109); + LVN_BEGINRDRAG = -(111); + LVN_ODCACHEHINT = -(113); //#if (_WIN32_IE >= 0x0300) + LVN_ITEMACTIVATE = -(114); + LVN_ODSTATECHANGED = -(115); + LVN_GETDISPINFOA = -(150); + LVN_SETDISPINFOA = -(151); + LVN_ODFINDITEMA = -(152); //#if (_WIN32_IE >= 0x0300) + LVN_KEYDOWN = -(155); + LVN_MARQUEEBEGIN = -(156); //#if (_WIN32_IE >= 0x0300) + LVN_BEGINLABELEDITW = -(175); + LVN_ENDLABELEDITW = -(176); + LVN_GETDISPINFOW = -(177); + LVN_SETDISPINFOW = -(178); + LVN_ODFINDITEMW = -(179); //#if (_WIN32_IE >= 0x0300) + +{$ifdef UNICODE} + LVN_BEGINLABELEDIT = LVN_BEGINLABELEDITW; + LVN_ENDLABELEDIT = LVN_ENDLABELEDITW; + LVN_GETDISPINFO = LVN_GETDISPINFOW; + LVN_SETDISPINFO = LVN_SETDISPINFOW; + LVN_ODFINDITEM = LVN_ODFINDITEMW; +{$else} + LVN_BEGINLABELEDIT = LVN_BEGINLABELEDITA; + LVN_ENDLABELEDIT = LVN_ENDLABELEDITA; + LVN_GETDISPINFO = LVN_GETDISPINFOA; + LVN_SETDISPINFO = LVN_SETDISPINFOA; + LVN_ODFINDITEM = LVN_ODFINDITEMA; +{$endif} + + { UNICODE } + + { Control notification } + NM_CLICK = -(2); + NM_DBLCLK = -(3); + NM_KILLFOCUS = -(8); + NM_OUTOFMEMORY = -(1); + NM_RCLICK = -(5); + NM_RDBLCLK = -(6); + NM_RETURN = -(4); + NM_SETFOCUS = -(7); + { Power status } + { Progress bar control } + PBM_DELTAPOS = 1027; + PBM_SETPOS = 1026; + PBM_GETPOS = WM_USER+8; + PBM_SETRANGE = 1025; + PBM_SETRANGE32 = WM_USER+6; + PBM_GETRANGE = WM_USER+7; + PBM_SETSTEP = 1028; + PBM_STEPIT = 1029; + { Property sheets } //prsht + PSM_SETCURSEL = (WM_USER + 101); + PSM_REMOVEPAGE = (WM_USER + 102); + PSM_ADDPAGE = (WM_USER + 103); + PSM_CHANGED = (WM_USER + 104); + PSM_RESTARTWINDOWS = (WM_USER + 105); + PSM_REBOOTSYSTEM = (WM_USER + 106); + PSM_CANCELTOCLOSE = (WM_USER + 107); + PSM_QUERYSIBLINGS = (WM_USER + 108); + PSM_UNCHANGED = (WM_USER + 109); + PSM_APPLY = (WM_USER + 110); + PSM_SETTITLEA = (WM_USER + 111); + PSM_SETWIZBUTTONS = (WM_USER + 112); + PSM_SETCURSELID = (WM_USER + 114); + PSM_SETFINISHTEXTA = (WM_USER + 115); + PSM_GETTABCONTROL = (WM_USER + 116); + PSM_ISDIALOGMESSAGE = (WM_USER + 117); + PSM_GETCURRENTPAGEHWND = (WM_USER + 118); + PSM_SETTITLEW = (WM_USER + 120); + PSM_SETFINISHTEXTW = (WM_USER + 121); + PSM_PRESSBUTTON = 1137; +{$ifdef UNICODE} + PSM_SETFINISHTEXT = PSM_SETFINISHTEXTW; + PSM_SETTITLE = PSM_SETTITLEW; +{$else UNICODE} + PSM_SETFINISHTEXT = PSM_SETFINISHTEXTA; + PSM_SETTITLE = PSM_SETTITLEA; +{$endif UNICODE} + + { Property sheet notifications } //prsht + PSN_FIRST = -(200); + PSN_SETACTIVE = (PSN_FIRST-0); + PSN_KILLACTIVE = (PSN_FIRST-1); + PSN_APPLY = (PSN_FIRST-2); + PSN_RESET = (PSN_FIRST-3); + PSN_HELP = (PSN_FIRST-5); + PSN_WIZBACK = (PSN_FIRST-6); + PSN_WIZNEXT = (PSN_FIRST-7); + PSN_WIZFINISH = (PSN_FIRST-8); + PSN_QUERYCANCEL = (PSN_FIRST-9); + + { Status window } + SB_GETBORDERS = 1031; + SB_GETPARTS = 1030; + SB_GETRECT = 1034; + SB_GETTEXTW = 1037; + SB_GETTEXTLENGTHW = 1036; + SB_SETTEXTW = 1035; + SB_GETTEXTA = 1026; + SB_GETTEXTLENGTHA = 1027; + SB_SETTEXTA = 1025; +{$ifdef UNICODE} + + const + SB_GETTEXT = SB_GETTEXTW; + SB_GETTEXTLENGTH = SB_GETTEXTLENGTHW; + SB_SETTEXT = SB_SETTEXTW; +{$else} + + const + SB_GETTEXT = SB_GETTEXTA; + SB_GETTEXTLENGTH = SB_GETTEXTLENGTHA; + SB_SETTEXT = SB_SETTEXTA; +{$endif} + { UNICODE } + + const + SB_SETMINHEIGHT = 1032; + SB_SETPARTS = 1028; + SB_SIMPLE = 1033; + { Scroll bar control } + SBM_ENABLE_ARROWS = 228; + SBM_GETPOS = 225; + SBM_GETRANGE = 227; + SBM_GETSCROLLINFO = 234; + SBM_SETPOS = 224; + SBM_SETRANGE = 226; + SBM_SETRANGEREDRAW = 230; + SBM_SETSCROLLINFO = 233; + { Static control } + STM_GETICON = 369; + STM_GETIMAGE = 371; + STM_SETICON = 368; + STM_SETIMAGE = 370; + { Static control notifications } + STN_CLICKED = 0; + STN_DBLCLK = 1; + STN_DISABLE = 3; + STN_ENABLE = 2; + { Toolbar control } + TB_ADDBITMAP = 1043; + TB_ADDBUTTONS = 1044; + TB_AUTOSIZE = 1057; + TB_BUTTONCOUNT = 1048; + TB_BUTTONSTRUCTSIZE = 1054; + TB_CHANGEBITMAP = 1067; + TB_CHECKBUTTON = 1026; + TB_COMMANDTOINDEX = 1049; + TB_CUSTOMIZE = 1051; + TB_DELETEBUTTON = 1046; + TB_ENABLEBUTTON = 1025; + TB_GETBITMAP = 1068; + TB_GETBITMAPFLAGS = 1065; + TB_GETBUTTON = 1047; + TB_ADDSTRINGW = 1101; + TB_GETBUTTONTEXTW = 1099; + TB_SAVERESTOREW = 1100; + TB_ADDSTRINGA = 1052; + TB_GETBUTTONTEXTA = 1069; + TB_SAVERESTOREA = 1050; + TB_SETINDENT = WM_USER + 47; + TB_SETIMAGELIST = WM_USER + 48; + TB_GETIMAGELIST = WM_USER + 49; + TB_LOADIMAGES = WM_USER + 50; + TB_GETRECT = WM_USER + 51; + TB_SETDISABLEDIMAGELIST = WM_USER + 54; + TB_GETDISABLEDIMAGELIST = WM_USER + 55; + TB_SETSTYLE = WM_USER + 56; + TB_GETSTYLE = WM_USER + 57; + TB_GETBUTTONSIZE = WM_USER + 58; + TB_SETBUTTONWIDTH = WM_USER + 59; + TB_SETMAXTEXTROWS = WM_USER + 60; + TB_GETTEXTROWS = WM_USER + 61; +{$ifdef UNICODE} + + const + TB_ADDSTRING = TB_ADDSTRINGW; + TB_GETBUTTONTEXT = TB_GETBUTTONTEXTW; + TB_SAVERESTORE = TB_SAVERESTOREW; +{$else} + + const + TB_ADDSTRING = TB_ADDSTRINGA; + TB_GETBUTTONTEXT = TB_GETBUTTONTEXTA; + TB_SAVERESTORE = TB_SAVERESTOREA; +{$endif} + { UNICODE } + + const + TB_GETITEMRECT = 1053; + TB_GETROWS = 1064; + TB_GETSTATE = 1042; + TB_GETTOOLTIPS = 1059; + TB_HIDEBUTTON = 1028; + TB_INDETERMINATE = 1029; + TB_INSERTBUTTON = 1045; + TB_ISBUTTONCHECKED = 1034; + TB_ISBUTTONENABLED = 1033; + TB_ISBUTTONHIDDEN = 1036; + TB_ISBUTTONINDETERMINATE = 1037; + TB_ISBUTTONPRESSED = 1035; + TB_PRESSBUTTON = 1027; + TB_SETBITMAPSIZE = 1056; + TB_SETBUTTONSIZE = 1055; + TB_SETCMDID = 1066; + TB_SETPARENT = 1061; + TB_SETROWS = 1063; + TB_SETSTATE = 1041; + TB_SETTOOLTIPS = WM_USER + 81; + { Track bar control } + TBM_CLEARSEL = 1043; + TBM_CLEARTICS = 1033; + TBM_GETCHANNELRECT = 1050; + TBM_GETLINESIZE = 1048; + TBM_GETNUMTICS = 1040; + TBM_GETPAGESIZE = 1046; + TBM_GETPOS = 1024; + TBM_GETPTICS = 1038; + TBM_GETRANGEMAX = 1026; + TBM_GETRANGEMIN = 1025; + TBM_GETSELEND = 1042; + TBM_GETSELSTART = 1041; + TBM_GETTHUMBLENGTH = 1052; + TBM_GETTHUMBRECT = 1049; + TBM_GETTIC = 1027; + TBM_GETTICPOS = 1039; + TBM_SETLINESIZE = 1047; + TBM_SETPAGESIZE = 1045; + TBM_SETPOS = 1029; + TBM_SETRANGE = 1030; + TBM_SETRANGEMAX = 1032; + TBM_SETRANGEMIN = 1031; + TBM_SETSEL = 1034; + TBM_SETSELEND = 1036; + TBM_SETSELSTART = 1035; + TBM_SETTHUMBLENGTH = 1051; + TBM_SETTIC = 1028; + TBM_SETTICFREQ = 1044; + { Tool bar control notifications } + TBN_BEGINADJUST = -(703); + TBN_BEGINDRAG = -(701); + TBN_CUSTHELP = -(709); + TBN_ENDADJUST = -(704); + TBN_ENDDRAG = -(702); + TBN_GETBUTTONINFOW = -(720); + TBN_GETBUTTONINFOA = -(700); + +{$ifdef UNICODE} + + const + TBN_GETBUTTONINFO = TBN_GETBUTTONINFOW; +{$else} + + const + TBN_GETBUTTONINFO = TBN_GETBUTTONINFOA; +{$endif} + { UNICODE } + + const + TBN_QUERYDELETE = -(707); + TBN_QUERYINSERT = -(706); + TBN_RESET = -(705); + TBN_TOOLBARCHANGE = -(708); + { Tab control } + TCM_ADJUSTRECT = 4904; + TCM_DELETEALLITEMS = 4873; + TCM_DELETEITEM = 4872; + TCM_GETCURFOCUS = 4911; + TCM_GETCURSEL = 4875; + TCM_GETIMAGELIST = 4866; + TCM_GETITEMW = 4924; + TCM_INSERTITEMW = 4926; + TCM_SETITEMW = 4925; + TCM_GETITEMA = 4869; + TCM_INSERTITEMA = 4871; + TCM_SETITEMA = 4870; + +{$ifdef UNICODE} + const + TCM_GETITEM = TCM_GETITEMW; //~wint, W was missing + TCM_INSERTITEM = TCM_INSERTITEMW; + TCM_SETITEM = TCM_SETITEMW; +{$else} + + const + TCM_GETITEM = TCM_GETITEMA; + TCM_INSERTITEM = TCM_INSERTITEMA; + TCM_SETITEM = TCM_SETITEMA; +{$endif} + { UNICODE } + + const + TCM_GETITEMCOUNT = 4868; + TCM_GETITEMRECT = 4874; + TCM_GETROWCOUNT = 4908; + TCM_GETTOOLTIPS = 4909; + TCM_HITTEST = 4877; + TCM_REMOVEIMAGE = 4906; + TCM_SETCURFOCUS = 4912; + TCM_SETCURSEL = 4876; + TCM_SETIMAGELIST = 4867; + TCM_SETITEMEXTRA = 4878; + TCM_SETITEMSIZE = 4905; + TCM_SETPADDING = 4907; + TCM_SETTOOLTIPS = 4910; + { Tab control notifications } + TCN_KEYDOWN = -(550); + TCN_SELCHANGE = -(551); + TCN_SELCHANGING = -(552); + { Tool tip control } + TTM_ACTIVATE = 1025; + TTM_ADDTOOLW = 1074; + TTM_DELTOOLW = 1075; + TTM_ENUMTOOLSW = 1082; + TTM_GETCURRENTTOOLW = 1083; + TTM_GETTEXTW = 1080; + TTM_GETTOOLINFOW = 1077; + TTM_HITTESTW = 1079; + TTM_NEWTOOLRECTW = 1076; + TTM_SETTOOLINFOW = 1078; + TTM_UPDATETIPTEXTW = 1081; + TTM_ADDTOOLA = 1028; + TTM_DELTOOLA = 1029; + TTM_ENUMTOOLSA = 1038; + TTM_GETCURRENTTOOLA = 1039; + TTM_GETTEXTA = 1035; + TTM_GETTOOLINFOA = 1032; + TTM_HITTESTA = 1034; + TTM_NEWTOOLRECTA = 1030; + TTM_SETTOOLINFOA = 1033; + TTM_UPDATETIPTEXTA = 1036; +{$ifdef UNICODE} + + const + TTM_ADDTOOL = TTM_ADDTOOLW; + TTM_DELTOOL = TTM_DELTOOLW; + TTM_ENUMTOOLS = TTM_ENUMTOOLSW; + TTM_GETCURRENTTOOL = TTM_GETCURRENTTOOLW; + TTM_GETTEXT = TTM_GETTEXTW; + TTM_GETTOOLINFO = TTM_GETTOOLINFOW; + TTM_HITTEST = TTM_HITTESTW; + TTM_NEWTOOLRECT = TTM_NEWTOOLRECTW; + TTM_SETTOOLINFO = TTM_SETTOOLINFOW; + TTM_UPDATETIPTEXT = TTM_UPDATETIPTEXTW; +{$else} + + const + TTM_ADDTOOL = TTM_ADDTOOLA; + TTM_DELTOOL = TTM_DELTOOLA; + TTM_ENUMTOOLS = TTM_ENUMTOOLSA; + TTM_GETCURRENTTOOL = TTM_GETCURRENTTOOLA; + TTM_GETTEXT = TTM_GETTEXTA; + TTM_GETTOOLINFO = TTM_GETTOOLINFOA; + TTM_HITTEST = TTM_HITTESTA; + TTM_NEWTOOLRECT = TTM_NEWTOOLRECTA; + TTM_SETTOOLINFO = TTM_SETTOOLINFOA; + TTM_UPDATETIPTEXT = TTM_UPDATETIPTEXTA; +{$endif} + { UNICODE } + + const + TTM_GETTOOLCOUNT = 1037; + TTM_RELAYEVENT = 1031; + TTM_SETDELAYTIME = 1027; + TTM_WINDOWFROMPOINT = 1040; + { UNICODE } + + const + TTN_POP = -(522); + TTN_SHOW = -(521); + { Tree view control } + TVM_CREATEDRAGIMAGE = 4370; + TVM_DELETEITEM = 4353; + TVM_ENDEDITLABELNOW = 4374; + TVM_ENSUREVISIBLE = 4372; + TVM_EXPAND = 4354; + TVM_GETCOUNT = 4357; + TVM_GETEDITCONTROL = 4367; + TVM_GETIMAGELIST = 4360; + TVM_GETINDENT = 4358; + TVM_GETITEMRECT = 4356; + TVM_GETNEXTITEM = 4362; + TVM_GETVISIBLECOUNT = 4368; + TVM_HITTEST = 4369; + TVM_EDITLABELW = 4417; + TVM_GETISEARCHSTRINGW = 4416; + TVM_GETITEMW = 4414; + TVM_INSERTITEMW = 4402; + TVM_SETITEMW = 4415; + TVM_EDITLABELA = 4366; + TVM_GETISEARCHSTRINGA = 4375; + TVM_GETITEMA = 4364; + TVM_INSERTITEMA = 4352; + TVM_SETITEMA = 4365; +{$ifdef UNICODE} + + const + TVM_EDITLABEL = TVM_EDITLABELW; + TVM_GETISEARCHSTRING = TVM_GETISEARCHSTRINGW; + TVM_GETITEM = TVM_GETITEMW; + TVM_INSERTITEM = TVM_INSERTITEMW; + TVM_SETITEM = TVM_SETITEMW; +{$else} + + const + TVM_EDITLABEL = TVM_EDITLABELA; + TVM_GETISEARCHSTRING = TVM_GETISEARCHSTRINGA; + TVM_GETITEM = TVM_GETITEMA; + TVM_INSERTITEM = TVM_INSERTITEMA; + TVM_SETITEM = TVM_SETITEMA; +{$endif} + { UNICODE } + + const + TVM_SELECTITEM = 4363; + TVM_SETIMAGELIST = 4361; + TVM_SETINDENT = 4359; + TVM_SORTCHILDREN = 4371; + TVM_SORTCHILDRENCB = 4373; + { Tree view control notification } + TVN_KEYDOWN = -(412); + TVN_BEGINDRAGW = -(456); + TVN_BEGINLABELEDITW = -(459); + TVN_BEGINRDRAGW = -(457); + TVN_DELETEITEMW = -(458); + TVN_ENDLABELEDITW = -(460); + TVN_GETDISPINFOW = -(452); + TVN_ITEMEXPANDEDW = -(455); + TVN_ITEMEXPANDINGW = -(454); + TVN_SELCHANGEDW = -(451); + TVN_SELCHANGINGW = -(450); + TVN_SETDISPINFOW = -(453); + TVN_BEGINDRAGA = -(407); + TVN_BEGINLABELEDITA = -(410); + TVN_BEGINRDRAGA = -(408); + TVN_DELETEITEMA = -(409); + TVN_ENDLABELEDITA = -(411); + TVN_GETDISPINFOA = -(403); + TVN_ITEMEXPANDEDA = -(406); + TVN_ITEMEXPANDINGA = -(405); + TVN_SELCHANGEDA = -(402); + TVN_SELCHANGINGA = -(401); + TVN_SETDISPINFOA = -(404); +{$ifdef UNICODE} + + const + TVN_BEGINDRAG = TVN_BEGINDRAGW; + TVN_BEGINLABELEDIT = TVN_BEGINLABELEDITW; + TVN_BEGINRDRAG = TVN_BEGINRDRAGW; + TVN_DELETEITEM = TVN_DELETEITEMW; + TVN_ENDLABELEDIT = TVN_ENDLABELEDITW; + TVN_GETDISPINFO = TVN_GETDISPINFOW; + TVN_ITEMEXPANDED = TVN_ITEMEXPANDEDW; + TVN_ITEMEXPANDING = TVN_ITEMEXPANDINGW; + TVN_SELCHANGED = TVN_SELCHANGEDW; + TVN_SELCHANGING = TVN_SELCHANGINGW; + TVN_SETDISPINFO = TVN_SETDISPINFOW; +{$else} + + const + TVN_BEGINDRAG = TVN_BEGINDRAGA; + TVN_BEGINLABELEDIT = TVN_BEGINLABELEDITA; + TVN_BEGINRDRAG = TVN_BEGINRDRAGA; + TVN_DELETEITEM = TVN_DELETEITEMA; + TVN_ENDLABELEDIT = TVN_ENDLABELEDITA; + TVN_GETDISPINFO = TVN_GETDISPINFOA; + TVN_ITEMEXPANDED = TVN_ITEMEXPANDEDA; + TVN_ITEMEXPANDING = TVN_ITEMEXPANDINGA; + TVN_SELCHANGED = TVN_SELCHANGEDA; + TVN_SELCHANGING = TVN_SELCHANGINGA; + TVN_SETDISPINFO = TVN_SETDISPINFOA; +{$endif} + { UNICODE } + { Up/down control } + + const + UDM_GETACCEL = 1132; + UDM_GETBASE = 1134; + UDM_GETBUDDY = 1130; + UDM_GETPOS = 1128; + UDM_GETPOS32 = 1138; + UDM_GETRANGE = 1126; + UDM_GETRANGE32 = 1136; + UDM_SETACCEL = 1131; + UDM_SETBASE = 1133; + UDM_SETBUDDY = 1129; + UDM_SETPOS = 1127; + UDM_SETPOS32 = 1137; + UDM_SETRANGE = 1125; + UDM_SETRANGE32 = 1135; + { Up/down control notification } + UDN_DELTAPOS = -(722); + { Window messages } + WM_ACTIVATE = 6; + WM_ACTIVATEAPP = 28; + WM_ASKCBFORMATNAME = 780; + WM_CANCELJOURNAL = 75; + WM_CANCELMODE = 31; + WM_CAPTURECHANGED = 533; + WM_CHANGECBCHAIN = 781; + WM_CHAR = 258; + WM_CHARTOITEM = 47; + WM_CHILDACTIVATE = 34; + WM_CHOOSEFONT_GETLOGFONT = 1025; + WM_CHOOSEFONT_SETLOGFONT = 1125; + WM_CHOOSEFONT_SETFLAGS = 1126; + WM_CLEAR = 771; + WM_CLOSE = 16; + WM_COMMAND = 273; + WM_COMPACTING = 65; + WM_COMPAREITEM = 57; + WM_CONTEXTMENU = 123; + WM_COPY = 769; + WM_COPYDATA = 74; + WM_CREATE = 1; + WM_CTLCOLORBTN = 309; + WM_CTLCOLORDLG = 310; + WM_CTLCOLOREDIT = 307; + WM_CTLCOLORLISTBOX = 308; + WM_CTLCOLORMSGBOX = 306; + WM_CTLCOLORSCROLLBAR = 311; + WM_CTLCOLORSTATIC = 312; + WM_CUT = 768; + WM_DEADCHAR = 259; + WM_DELETEITEM = 45; + WM_DESTROY = 2; + WM_DESTROYCLIPBOARD = 775; + WM_DEVICECHANGE = 537; + WM_DEVMODECHANGE = 27; + WM_DISPLAYCHANGE = 126; + WM_DRAWCLIPBOARD = 776; + WM_DRAWITEM = 43; + WM_DROPFILES = 563; + WM_ENABLE = 10; + WM_ENDSESSION = 22; + WM_ENTERIDLE = 289; + WM_ENTERMENULOOP = 529; + WM_ENTERSIZEMOVE = 561; + WM_ERASEBKGND = 20; + WM_EXITMENULOOP = 530; + WM_EXITSIZEMOVE = 562; + WM_FONTCHANGE = 29; + WM_GETDLGCODE = 135; + WM_GETFONT = 49; + WM_GETHOTKEY = 51; + WM_GETICON = 127; + WM_GETMINMAXINFO = 36; + WM_GETTEXT = 13; + WM_GETTEXTLENGTH = 14; + WM_HELP = 83; + WM_HOTKEY = 786; + WM_HSCROLL = 276; + WM_HSCROLLCLIPBOARD = 782; + WM_ICONERASEBKGND = 39; + WM_IME_CHAR = 646; + WM_IME_COMPOSITION = 271; + WM_IME_COMPOSITIONFULL = 644; + WM_IME_CONTROL = 643; + WM_IME_ENDCOMPOSITION = 270; + WM_IME_KEYDOWN = 656; + WM_IME_KEYUP = 657; + WM_IME_NOTIFY = 642; + WM_IME_SELECT = 645; + WM_IME_SETCONTEXT = 641; + WM_IME_STARTCOMPOSITION = 269; + WM_INITDIALOG = 272; + WM_INITMENU = 278; + WM_INITMENUPOPUP = 279; + WM_INPUTLANGCHANGE = 81; + WM_INPUTLANGCHANGEREQUEST = 80; + WM_KEYDOWN = 256; + WM_KEYUP = 257; + WM_KILLFOCUS = 8; + WM_LBUTTONDBLCLK = 515; + WM_LBUTTONDOWN = 513; + WM_LBUTTONUP = 514; + WM_MBUTTONDBLCLK = 521; + WM_MBUTTONDOWN = 519; + WM_MBUTTONUP = 520; + WM_MDIACTIVATE = 546; + WM_MDICASCADE = 551; + WM_MDICREATE = 544; + WM_MDIDESTROY = 545; + WM_MDIGETACTIVE = 553; + WM_MDIICONARRANGE = 552; + WM_MDIMAXIMIZE = 549; + WM_MDINEXT = 548; + WM_MDIREFRESHMENU = 564; + WM_MDIRESTORE = 547; + WM_MDISETMENU = 560; + WM_MDITILE = 550; + WM_MEASUREITEM = 44; + WM_MENUCHAR = 288; + WM_MENUSELECT = 287; + WM_MOUSEACTIVATE = 33; + WM_MOUSEMOVE = 512; + WM_MOUSEWHEEL = 522; + WM_MOUSEHOVER = 673; + WM_MOUSELEAVE = 675; + WM_MOVE = 3; + WM_MOVING = 534; + WM_NCACTIVATE = 134; + WM_NCCALCSIZE = 131; + WM_NCCREATE = 129; + WM_NCDESTROY = 130; + WM_NCHITTEST = 132; + WM_NCLBUTTONDBLCLK = 163; + WM_NCLBUTTONDOWN = 161; + WM_NCLBUTTONUP = 162; + WM_NCMBUTTONDBLCLK = 169; + WM_NCMBUTTONDOWN = 167; + WM_NCMBUTTONUP = 168; + WM_NCMOUSEMOVE = 160; + WM_NCPAINT = 133; + WM_NCRBUTTONDBLCLK = 166; + WM_NCRBUTTONDOWN = 164; + WM_NCRBUTTONUP = 165; + WM_NEXTDLGCTL = 40; + WM_NOTIFY = 78; + WM_NOTIFYFORMAT = 85; + WM_NULL = 0; + WM_PAINT = 15; + WM_PAINTCLIPBOARD = 777; + WM_PAINTICON = 38; + WM_PALETTECHANGED = 785; + WM_PALETTEISCHANGING = 784; + WM_PARENTNOTIFY = 528; + WM_PASTE = 770; + WM_PENWINFIRST = 896; + WM_PENWINLAST = 911; + WM_POWER = 72; + WM_POWERBROADCAST = 536; + WM_PRINT = 791; + WM_PRINTCLIENT = 792; + WM_PSD_ENVSTAMPRECT = 1029; + WM_PSD_FULLPAGERECT = 1025; + WM_PSD_GREEKTEXTRECT = 1028; + WM_PSD_MARGINRECT = 1027; + WM_PSD_MINMARGINRECT = 1026; + WM_PSD_PAGESETUPDLG = 1024; + WM_PSD_YAFULLPAGERECT = 1030; + WM_QUERYDRAGICON = 55; + WM_QUERYENDSESSION = 17; + WM_QUERYNEWPALETTE = 783; + WM_QUERYOPEN = 19; + WM_QUEUESYNC = 35; + WM_QUIT = 18; + WM_RBUTTONDBLCLK = 518; + WM_RBUTTONDOWN = 516; + WM_RBUTTONUP = 517; + WM_RENDERALLFORMATS = 774; + WM_RENDERFORMAT = 773; + WM_SETCURSOR = 32; + WM_SETFOCUS = 7; + WM_SETFONT = 48; + WM_SETHOTKEY = 50; + WM_SETICON = 128; + WM_SETREDRAW = 11; + WM_SETTEXT = 12; + WM_SETTINGCHANGE = 26; + WM_SHOWWINDOW = 24; + WM_SIZE = 5; + WM_SIZECLIPBOARD = 779; + WM_SIZING = 532; + WM_SPOOLERSTATUS = 42; + WM_STYLECHANGED = 125; + WM_STYLECHANGING = 124; + WM_SYSCHAR = 262; + WM_SYSCOLORCHANGE = 21; + WM_SYSCOMMAND = 274; + WM_SYSDEADCHAR = 263; + WM_SYSKEYDOWN = 260; + WM_SYSKEYUP = 261; + WM_TCARD = 82; + WM_TIMECHANGE = 30; + WM_TIMER = 275; + WM_UNDO = 772; + //WM_USER = 1024; moved at start + WM_USERCHANGED = 84; + WM_VKEYTOITEM = 46; + WM_VSCROLL = 277; + WM_VSCROLLCLIPBOARD = 778; + WM_WINDOWPOSCHANGED = 71; + WM_WINDOWPOSCHANGING = 70; + WM_WININICHANGE = 26; + { Window message ranges } + WM_KEYFIRST = 256; + WM_KEYLAST = 264; + WM_MOUSEFIRST = 512; + WM_MOUSELAST = 525; + WM_XBUTTONDOWN = 523; + WM_XBUTTONUP = 524; + WM_XBUTTONDBLCLK = 525; + +Type +{$ifdef MESSAGESUNIT} + + MSG = Windows.MSG; + TMessage = Windows.TMessage; + TWMSize = Windows.TWMSize; + TWMNoParams = Windows.TWMNoParams; + TWMScroll = Windows.TWMScroll; + TWMGetText = Windows.TWMGetText; + TWMKillFocus = Windows.TWMKillFocus; + TWMSetCursor = Windows.TWMSetCursor; + TWMSetFocus = Windows.TWMSetFocus; + TWMSetFont = Windows.TWMSetFont; + TWMShowWindow = Windows.TWMShowWindow; + TWMEraseBkgnd = Windows.TWMEraseBkgnd; + LPMSG = Windows.MSG; + tagMSG = Windows.tagMSG; + TMSG = Windows.TMSG; + PMSG = Windows.PMSG; + PMessage = Windows.PMessage; + TWMGetDlgCode = TWMNoParams; + TWMFontChange = TWMNoParams; + TWMGetFont = TWMNoParams; + TWMHScroll = TWMScroll; + TWMVScroll = TWMScroll; + TWMGetTextLength = TWMNoParams; + +{$else} + + MSG = record + hwnd : HWND; + message : UINT; + wParam : WPARAM; + lParam : LPARAM; + time : DWORD; + pt : POINT; + end; + + LPMSG = ^MSG; + tagMSG = MSG; + TMSG = MSG; + PMSG = ^MSG; + + + PMessage = ^TMessage; + TMessage = record {fields according to ICS} + msg : UINT; + case longint of + 0: ( + wParam : WPARAM; + lParam : LPARAM; + Result : LRESULT; + ); + 1: ( + wParamlo, + wParamhi : WORD; // Is there Windows type for half an wparam? + lParamlo, + lParamhi : WORD; + Resultlo, + Resulthi : WORD; + ); + end; + + TWMSize = record + Msg: Cardinal; + SizeType : LongInt; + Width : Word; + Height : Word; + Result : LongInt; + End; + + TWMNoParams = record + Msg : Cardinal; + Unused : array[0..3] of Word; + Result : Longint; + end; + + TWMGetDlgCode = TWMNoParams; + TWMFontChange = TWMNoParams; + TWMGetFont = TWMNoParams; + + TWMScroll = record + Msg : Cardinal; + ScrollCode : SmallInt; + Pos : SmallInt; + ScrollBar : HWND; + Result : LongInt; + end; + + TWMHScroll = TWMScroll; + TWMVScroll = TWMScroll; + + TWMGetText = record + Msg : Cardinal; + TextMax : LongInt; + Text : PChar; + Result : LongInt; + end; + + TWMGetTextLength = TWMNoParams; + + TWMKillFocus = record + Msg : Cardinal; + FocusedWnd : HWND; + UnUsed : LongInt; + Result : LongInt; + End; + + TWMSetCursor = record + Msg : Cardinal; + CursorWnd : HWND; + HitTest : Word; + MouseMsg : Word; + Result : LongInt; + end; + + TWMSetFocus = record + Msg : Cardinal; + FocusedWnd : HWND; + Unused : LongInt; + Result : LongInt; + end; + + TWMSetFont = record + Msg : Cardinal; + Font : HFONT; + Redraw : WordBool; + Unused : Word; + Result : LongInt; + end; + + TWMShowWindow = record + Msg : Cardinal; + Show : BOOL; + Status : LongInt; + Result : LongInt; + end; + + TWMEraseBkgnd = record + Msg: Cardinal; + DC: HDC; + Unused: Longint; + Result: Longint; + end; + +{$endif messagesunit} + +{$endif read_interface} + diff --git a/rtl/wince/wininc/redef.inc b/rtl/wince/wininc/redef.inc index f1495a527a..c58e0ff6a9 100644 --- a/rtl/wince/wininc/redef.inc +++ b/rtl/wince/wininc/redef.inc @@ -1,391 +1,391 @@ -{ - This file is part of the Free Pascal run time library. - Copyright (c) 1999-2001 by the Free Pascal development team - - This file defines type names as they are used by Delphi - - See the file COPYING.FPC, included in this distribution, - for details about the copyright. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - - ********************************************************************** - -} - -{$ifdef read_interface} - -type - PIID = PGUID; - TIID = TGUID; - THANDLE = HANDLE; - - PSmallRect = ^TSmallRect; - TSmallRect = SMALL_RECT; - - PCharInfo = ^TCharInfo; - TCharInfo = _CHAR_INFO; - - TFarProc = FARPROC; - TFNDlgProc = FARPROC; - TFNThreadStartRoutine = FARPROC; - TFNTimerAPCRoutine = FARPROC; - TFNFiberStartRoutine = FARPROC; - - PObjectTypeList = ^TObjectTypeList; - _OBJECT_TYPE_LIST = record - Level: WORD; - Sbz: WORD; - ObjectType: PGUID; - end; - TObjectTypeList = _OBJECT_TYPE_LIST; - OBJECT_TYPE_LIST = _OBJECT_TYPE_LIST; - - AUDIT_EVENT_TYPE = DWORD; - - PBlendFunction = ^TBlendFunction; - _BLENDFUNCTION = packed record - BlendOp: BYTE; - BlendFlags: BYTE; - SourceConstantAlpha: BYTE; - AlphaFormat: BYTE; - end; - TBlendFunction = _BLENDFUNCTION; - BLENDFUNCTION = _BLENDFUNCTION; - - _WIN_CERTIFICATE = Packed Record - dwLength : DWord; - wRevision : Word; - wCertificateType : Word; - bCertificate : Array[0..0] of Byte; - End; - TWinCertificate = _WIN_CERTIFICATE; - PWinCertificate = ^TWinCertificate; - - TMaxLogPalette = Packed Record - palVersion : Word; - palNumEntries : Word; - palPalEntry : array[Byte] of TPaletteEntry; - end; - PMaxLogPalette = ^TMaxLogPalette; - -// -// A language ID is a 16 bit value which is the combination of a -// primary language ID and a secondary language ID. The bits are -// allocated as follows: -// -// +-----------------------+-------------------------+ -// | Sublanguage ID | Primary Language ID | -// +-----------------------+-------------------------+ -// 15 10 9 0 bit -// -// -// Language ID creation/extraction macros: -// -// MAKELANGID - construct language id from a primary language id and -// a sublanguage id. -// PRIMARYLANGID - extract primary language id from a language id. -// SUBLANGID - extract sublanguage id from a language id. -// - -function MAKELANGID(PrimaryLang, SubLang: USHORT): WORD; -function PRIMARYLANGID(LangId: WORD): WORD; -function SUBLANGID(LangId: WORD): WORD; - -// -// A locale ID is a 32 bit value which is the combination of a -// language ID, a sort ID, and a reserved area. The bits are -// allocated as follows: -// -// +-------------+---------+-------------------------+ -// | Reserved | Sort ID | Language ID | -// +-------------+---------+-------------------------+ -// 31 20 19 16 15 0 bit -// -// -// Locale ID creation/extraction macros: -// -// MAKELCID - construct the locale id from a language id and a sort id. -// MAKESORTLCID - construct the locale id from a language id, sort id, and sort version. -// LANGIDFROMLCID - extract the language id from a locale id. -// SORTIDFROMLCID - extract the sort id from a locale id. -// SORTVERSIONFROMLCID - extract the sort version from a locale id. -// - -const - NLS_VALID_LOCALE_MASK = $000fffff; //winnt - -function MAKELCID(LangId, SortId: WORD): DWORD; //winnt -function MAKESORTLCID(LangId, SortId, SortVersion: WORD): DWORD; //winnt -function LANGIDFROMLCID(LocaleId: LCID): WORD; //winnt -function SORTIDFROMLCID(LocaleId: LCID): WORD; //winnt -function SORTVERSIONFROMLCID(LocaleId: LCID): WORD; //winnt - -// -// Default System and User IDs for language and locale. -// - -function LANG_SYSTEM_DEFAULT: WORD; //winnt -function LANG_USER_DEFAULT: WORD; //winnt -function LOCALE_SYSTEM_DEFAULT: DWORD; //+winnt -function LOCALE_USER_DEFAULT: DWORD; //+winnt -function LOCALE_NEUTRAL: DWORD; //winnt -function LOCALE_INVARIANT: DWORD; //winnt - -function BeginPaint(hWnd: HWND; var lpPaint: TPaintStruct): HDC; external KernelDLL name 'BeginPaint'; -function ChangeDisplaySettingsEx(lpszDeviceName: PWideChar; var lpDevMode: TDeviceMode; wnd: HWND; dwFlags: DWORD; lParam: Pointer): Longint;external KernelDLL name 'ChangeDisplaySettingsEx'; -function ClearCommError(hFile: THandle; var lpErrors: DWORD; lpStat: PComStat): BOOL; external KernelDLL name 'ClearCommError'; -function ClientToScreen(hWnd: HWND; var lpPoint: TPoint): BOOL; external KernelDLL name 'ClientToScreen'; -function ClipCursor(var lpRect:RECT):WINBOOL; external KernelDLL name 'ClipCursor'; -function CopyRect(var lprcDst: TRect; const lprcSrc: TRect): BOOL; external KernelDLL name 'CopyRect'; -function CreateAcceleratorTable(var Accel; Count: Integer): HACCEL; external KernelDLL name 'CreateAcceleratorTableW'; -function CreateAcceleratorTableW(var Accel; Count: Integer): HACCEL; external KernelDLL name 'CreateAcceleratorTableW'; -function CreateDialogIndirectParam(hInstance: HINST; const lpTemplate: TDlgTemplate; hWndParent: HWND; lpDialogFunc: TFNDlgProc; dwInitParam: LPARAM): HWND;external KernelDLL name 'CreateDialogIndirectParamW'; -function CreateFontIndirect(const p1: TLogFont): HFONT; external KernelDLL name 'CreateFontIndirectW'; -function CreateFontIndirectW(const p1: TLogFontW): HFONT; external KernelDLL name 'CreateFontIndirectW'; -function CreateIconIndirect(var piconinfo: TIconInfo): HICON; external KernelDLL name 'CreateIconIndirect'; -function CreateProcess(lpApplicationName: LPTSTR; lpCommandLine: LPTSTR; lpProcessAttributes, lpThreadAttributes: PSecurityAttributes; bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: Pointer; lpCurrentDirectory: LPTSTR; - const lpStartupInfo: LPStartupInfo; var lpProcessInformation: TProcessInformation): BOOL;external KernelDLL name 'CreateProcessW'; -function CreateProcess(lpApplicationName: LPTSTR; lpCommandLine: LPTSTR; lpProcessAttributes, lpThreadAttributes: PSecurityAttributes; bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: Pointer; lpCurrentDirectory: LPTSTR; - const lpStartupInfo: TStartupInfo; var lpProcessInformation: TProcessInformation): BOOL;external KernelDLL name 'CreateProcessW'; -function CreateProcessW(lpApplicationName: LPWSTR; lpCommandLine: LPWSTR; lpProcessAttributes, lpThreadAttributes: PSecurityAttributes; bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: Pointer; lpCurrentDirectory: LPWSTR; - const lpStartupInfo: TStartupInfo; var lpProcessInformation: TProcessInformation): BOOL; external KernelDLL name 'CreateProcessW'; -procedure DeleteCriticalSection(var CriticalSection : TRTLCriticalSection); external KernelDLL name 'DeleteCriticalSection'; -function DeviceIoControl(hDevice: THandle; dwIoControlCode: DWORD; lpInBuffer: Pointer; nInBufferSize: DWORD; lpOutBuffer: Pointer; nOutBufferSize: DWORD; var lpBytesReturned: DWORD; lpOverlapped: POverlapped): BOOL; - external KernelDLL name 'DeviceIoControl'; -function DispatchMessage(const lpMsg: TMsg): Longint; external KernelDLL name 'DispatchMessageW'; -function DispatchMessageW(const lpMsg: TMsg): Longint; external KernelDLL name 'DispatchMessageW'; -function DrawEdge(hdc: HDC; var qrc: TRect; edge: UINT; grfFlags: UINT): BOOL; external KernelDLL name 'DrawEdge'; -function DrawFrameControl(DC: HDC; const Rect: TRect; uType, uState: UINT): BOOL; external KernelDLL name 'DrawFrameControl'; -function DrawText(hDC: HDC; lpString: LPWSTR; nCount: Integer; var lpRect: TRect; uFormat: UINT): Integer; external KernelDLL name 'DrawTextW'; -function DrawTextW(hDC: HDC; lpString: LPWSTR; nCount: Integer; var lpRect: TRect; uFormat: UINT): Integer; external KernelDLL name 'DrawTextW'; -function EndPaint(hWnd: HWND; const lpPaint: TPaintStruct): BOOL; external KernelDLL name 'EndPaint'; -procedure EnterCriticalSection(var CriticalSection : TRTLCriticalSection); external KernelDLL name 'EnterCriticalSection'; -function EnumDisplaySettings(lpszDeviceName: PWideChar; iModeNum: DWORD; var lpDevMode: TDeviceMode): BOOL;external KernelDLL name 'EnumDisplaySettings'; -function EnumDisplaySettingsW(lpszDeviceName: PWideChar; iModeNum: DWORD; var lpDevMode: TDeviceModeW): BOOL;external KernelDLL name 'EnumDisplaySettings'; -function ExtCreateRegion(p1: PXForm; p2: DWORD; const p3: TRgnData): HRGN; external KernelDLL name 'ExtCreateRegion'; -function FileTimeToSystemTime(const lpFileTime: TFileTime; var lpSystemTime: TSystemTime): BOOL; external KernelDLL name 'FileTimeToSystemTime'; -function FileTimeToLocalFileTime(const lpFileTime: TFileTime; var lpLocalFileTime: TFileTime): BOOL; external KernelDLL name 'FileTimeToLocalFileTime'; -function FindFirstFile(lpFileName: LPTSTR; var lpFindFileData: TWIN32FindData): THandle; external KernelDLL name 'FindFirstFileW'; -function FindFirstFileW(lpFileName: LPTSTR; var lpFindFileData: TWIN32FindDataW): THandle; external KernelDLL name 'FindFirstFileW'; -function FindNextFile(hFindFile: THandle; var lpFindFileData: TWIN32FindData): BOOL; external KernelDLL name 'FindNextFileW'; -function FindNextFileW(hFindFile: THandle; var lpFindFileData: TWIN32FindDataW): BOOL; external KernelDLL name 'FindNextFileW'; -function GetCaretPos(var lpPoint: TPoint): BOOL; external KernelDLL name 'GetCaretPos'; -function GetCharABCWidths(DC: HDC; p2, p3: UINT; const ABCStructs): BOOL;external KernelDLL name 'GetCharABCWidths'; -function GetCharABCWidthsW(DC: HDC; p2, p3: UINT; const ABCStructs): BOOL;external KernelDLL name 'GetCharABCWidths'; -function GetCharWidth32(DC: HDC; p2, p3: UINT; const Widths): BOOL;external KernelDLL name 'GetCharWidth32'; -function GetCharWidth32W(DC: HDC; p2, p3: UINT; const Widths): BOOL;external KernelDLL name 'GetCharWidth32'; -function GetClassInfo(hInstance: HINST; lpClassName: LPWSTR; var lpWndClass: TWndClassW): BOOL; external KernelDLL name 'GetClassInfoW'; -function GetClassInfoW(hInstance: HINST; lpClassName: LPWSTR; var lpWndClass: TWndClassW): BOOL; external KernelDLL name 'GetClassInfoW'; -function GetClientRect(hWnd: HWND; var lpRect: TRect): BOOL; external KernelDLL name 'GetClientRect'; -function GetClipBox(DC: HDC; var Rect: TRect): Integer; external KernelDLL name 'GetClipBox'; -function GetClipCursor(var lpRect: TRect): BOOL; external KernelDLL name 'GetClipCursor'; -function GetCommModemStatus(hFile: THandle; var lpModemStat: DWORD): BOOL; external KernelDLL name 'GetCommModemStatus'; -function GetCommProperties(hFile: THandle; var lpCommProp: TCommProp): BOOL; external KernelDLL name 'GetCommProperties'; -function GetCommState(hFile: THandle; var lpDCB: TDCB): BOOL; external KernelDLL name 'GetCommState'; -function GetCommTimeouts(hFile: THandle; var lpCommTimeouts: TCommTimeouts): BOOL; external KernelDLL name 'GetCommTimeouts'; -function GetCursorPos(var lpPoint: TPoint): BOOL; external KernelDLL name 'GetCursorPos'; -function GetCPInfo(CodePage: UINT; var lpCPInfo: TCPInfo): BOOL;external KernelDLL name 'GetCPInfo'; -function GetDIBColorTable(DC: HDC; p2, p3: UINT; var RGBQuadStructs): UINT; external KernelDLL name 'GetDIBColorTable'; -function GetDiskFreeSpaceEx(lpDirectoryName: PWideChar; var lpFreeBytesAvailableToCaller, lpTotalNumberOfBytes: TLargeInteger; lpTotalNumberOfFreeBytes: PLargeInteger): BOOL;external KernelDLL name 'GetDiskFreeSpaceExW'; -function GetDiskFreeSpaceExW(lpDirectoryName: PWideChar; var lpFreeBytesAvailableToCaller, lpTotalNumberOfBytes: TLargeInteger; lpTotalNumberOfFreeBytes: PLargeInteger): BOOL;external KernelDLL name 'GetDiskFreeSpaceExW'; -function GetExitCodeProcess(hProcess: THandle; var lpExitCode: DWORD): BOOL; external KernelDLL name 'GetExitCodeProcess'; -function GetExitCodeThread(hThread: THandle; var lpExitCode: DWORD): BOOL; external KernelDLL name 'GetExitCodeThread'; -function GetFileInformationByHandle(hFile: THandle; var lpFileInformation: TByHandleFileInformation): BOOL; external KernelDLL name 'GetFileInformationByHandle'; -function GetKeyboardLayoutList(nBuff: Integer; var List): UINT; external KernelDLL name 'GetKeyboardLayoutList'; -procedure GetLocalTime(var SystemTime: SYSTEMTIME); external KernelDLL name 'GetLocalTime'; -function GetMenuItemInfo(p1: HMENU; p2: UINT; p3: BOOL; var p4: TMenuItemInfo): BOOL; external KernelDLL name 'GetMenuItemInfoW'; -function GetMenuItemInfoW(p1: HMENU; p2: UINT; p3: BOOL; var p4: TMenuItemInfoW): BOOL; external KernelDLL name 'GetMenuItemInfoW'; -function GetMessage(var lpMsg: TMsg; hWnd: HWND; wMsgFilterMin, wMsgFilterMax: UINT): BOOL;external KernelDLL name 'GetMessageW'; -function GetOpenFileName(var OpenFile:TOPENFILENAMEW):WINBOOL; external KernelDLL name 'GetOpenFileNameW'; -function GetOpenFileNameW(var OpenFile:TOPENFILENAMEW):WINBOOL; external KernelDLL name 'GetOpenFileNameW'; -function GetPaletteEntries(Palette: HPALETTE; StartIndex, NumEntries: UINT; var PaletteEntries): UINT; external KernelDLL name 'GetPaletteEntries'; -function GetRgnBox(RGN: HRGN; var p2: TRect): Integer; external KernelDLL name 'GetRgnBox'; -function GetSaveFileName(var OpenFile:TOPENFILENAMEW):WINBOOL; external KernelDLL name 'GetSaveFileNameW'; -function GetSaveFileNameW(var OpenFile:TOPENFILENAMEW):WINBOOL; external KernelDLL name 'GetSaveFileNameW'; -function GetScrollInfo(hWnd: HWND; BarFlag: Integer; var ScrollInfo: TScrollInfo): BOOL; external KernelDLL name 'GetScrollInfo'; -function GetStringType(dwInfoType: DWORD; const lpSrcStr: PWideChar; cchSrc: BOOL; var lpCharType: Word): BOOL;external KernelDLL name 'GetStringTypeW'; -function GetStringTypeW(dwInfoType: DWORD; const lpSrcStr: PWideChar; cchSrc: BOOL; var lpCharType: Word): BOOL;external KernelDLL name 'GetStringTypeW'; -function GetStringTypeEx(Locale: LCID; dwInfoType: DWORD; lpSrcStr: PWideChar; cchSrc: Integer; var lpCharType): BOOL; external KernelDLL name 'GetStringTypeExW'; -function GetStringTypeExW(Locale: LCID; dwInfoType: DWORD; lpSrcStr: PWideChar; cchSrc: Integer; var lpCharType): BOOL; external KernelDLL name 'GetStringTypeExW'; -procedure GetSystemInfo(var SystemInfo:SYSTEM_INFO); external KernelDLL name 'GetSystemInfo'; -function GetSystemPaletteEntries(DC: HDC; StartIndex, NumEntries: UINT; var PaletteEntries): UINT; external KernelDLL name 'GetSystemPaletteEntries'; -procedure GetSystemTime(var lpSystemTime:SYSTEMTIME); external KernelDLL name 'GetSystemTime'; -function GetTextExtentExPoint(DC: HDC; p2: LPWSTR; p3, p4: Integer; p5, p6: PInteger; var p7: TSize): BOOL; external KernelDLL name 'GetTextExtentExPointW'; -function GetTextExtentExPointW(DC: HDC; p2: LPWSTR; p3, p4: Integer; p5, p6: PInteger; var p7: TSize): BOOL; external KernelDLL name 'GetTextExtentExPointW'; -function GetTextExtentPoint32(DC: HDC; Str: LPWSTR; Count: Integer; var Size: TSize): BOOL; -function GetTextExtentPoint32W(DC: HDC; Str: LPWSTR; Count: Integer; var Size: TSize): BOOL; -function GetTextMetrics(DC: HDC; var TM: TTextMetric): BOOL;external KernelDLL name 'GetTextMetricsW'; -function GetThreadContext(hThread: THandle; var lpContext: TContext): BOOL; external KernelDLL name 'GetThreadContext'; -function GetThreadTimes(hThread: THandle; var lpCreationTime, lpExitTime, lpKernelTime, lpUserTime: TFileTime): BOOL; external KernelDLL name 'GetThreadTimes'; -function GetTimeZoneInformation(var lpTimeZoneInformation: TTimeZoneInformation): DWORD; external KernelDLL name 'GetTimeZoneInformation'; -function GetUpdateRect(hWnd: HWND; var lpRect: TRect; bErase: BOOL): BOOL; external KernelDLL name 'GetUpdateRect'; -function GetVersionEx(var lpVersionInformation: TOSVersionInfo): BOOL;external KernelDLL name 'GetVersionExW'; -function GetVersionExW(var lpVersionInformation: TOSVersionInfoW): BOOL; external KernelDLL name 'GetVersionExW'; -function GetWindowRect(hWnd: HWND; var lpRect: TRect): BOOL; external KernelDLL name 'GetWindowRect'; -procedure GlobalMemoryStatus(var Buffer: MEMORYSTATUS); external KernelDLL name 'GlobalMemoryStatus'; -function ImageList_GetDragImage(var ppt:POINT; var pptHotspot:POINT):HIMAGELIST; external KernelDLL name 'ImageList_GetDragImage'; -function InflateRect(var lprc: TRect; dx, dy: Integer): BOOL; external KernelDLL name 'InflateRect'; -procedure InitializeCriticalSection(var CriticalSection : TRTLCriticalSection); external KernelDLL name 'InitializeCriticalSection'; -function IntersectRect(var lprcDst: TRect; const lprcSrc1, lprcSrc2: TRect): BOOL; external KernelDLL name 'IntersectRect'; -function IsDialogMessage(hDlg: HWND; var lpMsg: TMsg): BOOL; external KernelDLL name 'IsDialogMessageW'; -function IsDialogMessageW(hDlg: HWND; var lpMsg: TMsg): BOOL; external KernelDLL name 'IsDialogMessageW'; -procedure LeaveCriticalSection(var CriticalSection : TRTLCriticalSection); external KernelDLL name 'LeaveCriticalSection'; -function LocalFileTimeToFileTime(const lpLocalFileTime: TFileTime; var lpFileTime: TFileTime): BOOL; external KernelDLL name 'LocalFileTimeToFileTime'; -function MapDialogRect(hDlg: HWND; var lpRect: TRect): BOOL; external KernelDLL name 'MapDialogRect'; -function MapWindowPoints(hWndFrom, hWndTo: HWND; var lpPoints; cPoints: UINT): Integer; external KernelDLL name 'MapWindowPoints'; -//redirected to MsgWaitForMultipleObjectsEx -function MsgWaitForMultipleObjects(nCount: DWORD; var pHandles; fWaitAll: BOOL; dwMilliseconds, dwWakeMask: DWORD): DWORD; -function OffsetRect(var lprc: TRect; dx, dy: Integer): BOOL; external KernelDLL name 'OffsetRect'; -function PeekMessage(var lpMsg: TMsg; hWnd: HWND; wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL;external KernelDLL name 'PeekMessageW'; -function PeekMessageW(var lpMsg: TMsg; hWnd: HWND; wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; external KernelDLL name 'PeekMessageW'; -function Polygon(DC: HDC; var Points; Count: Integer): BOOL; external KernelDLL name 'Polygon'; -function Polyline(DC: HDC; var Points; Count: Integer): BOOL; external KernelDLL name 'Polyline'; -function PtInRect(const lprc:TRect; pt:POINT):WINBOOL; external KernelDLL name 'PtInRect'; -function QueryPerformanceCounter(var lpPerformanceCount: TLargeInteger): BOOL; external KernelDLL name 'QueryPerformanceCounter'; -function QueryPerformanceFrequency(var lpFrequency: TLargeInteger): BOOL; external KernelDLL name 'QueryPerformanceFrequency'; -procedure RaiseException(dwExceptionCode:DWORD; dwExceptionFlags:DWORD; nNumberOfArguments:DWORD; var lpArguments:DWORD); external KernelDLL name 'RaiseException'; -function ReadFile(hFile: THandle; var Buffer; nNumberOfBytesToRead: DWORD; var lpNumberOfBytesRead: DWORD; lpOverlapped: POverlapped): BOOL; external KernelDLL name 'ReadFile'; -function ReadProcessMemory(hProcess: THandle; const lpBaseAddress: Pointer; lpBuffer: Pointer; nSize: DWORD; var lpNumberOfBytesRead: DWORD): BOOL; external KernelDLL name 'ReadProcessMemory'; -function RegCreateKeyEx(hKey: HKEY; lpSubKey: LPWSTR; Reserved: DWORD; lpClass: LPWSTR; dwOptions: DWORD; samDesired: REGSAM; lpSecurityAttributes: PSecurityAttributes; var phkResult: HKEY; lpdwDisposition: PDWORD): Longint; external KERNELDLL name 'RegCreateKeyExW'; -function RegCreateKeyExW(hKey: HKEY; lpSubKey: LPWSTR; Reserved: DWORD; lpClass: LPWSTR; dwOptions: DWORD; samDesired: REGSAM; lpSecurityAttributes: PSecurityAttributes; var phkResult: HKEY; lpdwDisposition: PDWORD): Longint; external KERNELDLL name 'RegCreateKeyExW'; -function RegEnumKeyEx(hKey: HKEY; dwIndex: DWORD; lpName: LPWSTR; var lpcbName: DWORD; lpReserved: Pointer; lpClass: LPWSTR; lpcbClass: PDWORD; lpftLastWriteTime: PFileTime): Longint; external KernelDLL name 'RegEnumKeyExW'; -function RegEnumKeyExW(hKey: HKEY; dwIndex: DWORD; lpName: LPWSTR; var lpcbName: DWORD; lpReserved: Pointer; lpClass: LPWSTR; lpcbClass: PDWORD; lpftLastWriteTime: PFileTime): Longint; external KernelDLL name 'RegEnumKeyExW'; -function RegEnumValue(hKey: HKEY; dwIndex: DWORD; lpValueName: LPWSTR; var lpcbValueName: DWORD; lpReserved: Pointer; lpType: PDWORD; lpData: PByte; lpcbData: PDWORD): Longint; external KernelDLL name 'RegEnumValueW'; -function RegEnumValueW(hKey: HKEY; dwIndex: DWORD; lpValueName: LPWSTR; var lpcbValueName: DWORD; lpReserved: Pointer; lpType: PDWORD; lpData: PByte; lpcbData: PDWORD): Longint; external KernelDLL name 'RegEnumValueW'; -function RegisterClass(const lpWndClass: TWndClass): ATOM;external KernelDLL name 'RegisterClassW'; -function RegisterClassW(const lpWndClass: TWndClassW): ATOM; external KernelDLL name 'RegisterClassW'; -function RegOpenKeyEx(hKey: HKEY; lpSubKey: LPWSTR; ulOptions: DWORD; samDesired: REGSAM; var phkResult: HKEY): Longint; external KernelDLL name 'RegOpenKeyExW'; -function RegOpenKeyExW(hKey: HKEY; lpSubKey: LPWSTR; ulOptions: DWORD; samDesired: REGSAM; var phkResult: HKEY): Longint; external KernelDLL name 'RegOpenKeyExW'; -function ScreenToClient(hWnd: HWND; var lpPoint: TPoint): BOOL; external KernelDLL name 'ScreenToClient'; -function ScrollWindowEx(hWnd:HWND; dx:longint; dy:longint; prcScroll:lpRECT; prcClip:lpRECT;hrgnUpdate:HRGN; prcUpdate:LPRECT; flags:UINT):longint; external KernelDLL name 'ScrollWindowEx'; -function SendMessageTimeout(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM; fuFlags, uTimeout: UINT; var lpdwResult: DWORD): LRESULT;external KernelDLL name 'SendMessageTimeout'; -function SendMessageTimeoutW(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM; fuFlags, uTimeout: UINT; var lpdwResult: DWORD): LRESULT;external KernelDLL name 'SendMessageTimeout'; -function SetCommState(hFile: THandle; const lpDCB: TDCB): BOOL; external KernelDLL name 'SetCommState'; -function SetCommTimeouts(hFile: THandle; const lpCommTimeouts: TCommTimeouts): BOOL; external KernelDLL name 'SetCommTimeouts'; -function SetDIBColorTable(DC: HDC; p2, p3: UINT; var RGBQuadSTructs): UINT; external KernelDLL name 'SetDIBColorTable'; -function SetDIBits(DC: HDC; Bitmap: HBITMAP; StartScan, NumScans: UINT; Bits: Pointer; var BitsInfo: TBitmapInfo; Usage: UINT): Integer; external KernelDLL name 'SetDIBits'; -function SetFileTime(hFile:HANDLE; var lpCreationTime:FILETIME; var lpLastAccessTime:FILETIME; var lpLastWriteTime:FILETIME):WINBOOL; external KernelDLL name 'SetFileTime'; -function SetLocalTime(var lpSystemTime:SYSTEMTIME):WINBOOL; external KernelDLL name 'SetLocalTime'; -function SetMenuItemInfo(p1: HMENU; p2: UINT; p3: BOOL; const p4: TMenuItemInfo): BOOL; external KernelDLL name 'SetMenuItemInfoW'; -function SetMenuItemInfoW(p1: HMENU; p2: UINT; p3: BOOL; const p4: TMenuItemInfoW): BOOL; external KernelDLL name 'SetMenuItemInfoW'; -function SetPaletteEntries(Palette: HPALETTE; StartIndex, NumEntries: UINT; var PaletteEntries): UINT; external KernelDLL name 'SetPaletteEntries'; -function SetRect(var lprc:TRect; xLeft:longint; yTop:longint; xRight:longint; yBottom:longint):WINBOOL; external KernelDLL name 'SetRect'; -function SetRectEmpty(var lprc: TRect): BOOL; external KernelDLL name 'SetRectEmpty'; -function SetScrollInfo(hWnd: HWND; BarFlag: Integer; const ScrollInfo: TScrollInfo; Redraw: BOOL): Integer; external KernelDLL name 'SetScrollInfo'; -function SetSysColors(cElements: Integer; const lpaElements; const lpaRgbValues): BOOL; external KernelDLL name 'SetSysColors'; -function SetSystemTime(var lpSystemTime:SYSTEMTIME):WINBOOL; external KernelDLL name 'SetSystemTime'; -function SetThreadContext(hThread: THandle; const lpContext: TContext): BOOL; external KernelDLL name 'SetThreadContext'; -function SHFileOperation(const lpFileOp:SHFILEOPSTRUCTW): longint; external ShellDLL name 'SHFileOperationW'; -function SHFileOperationW(const lpFileOp:SHFILEOPSTRUCTW): longint; external ShellDLL name 'SHFileOperationW'; -function StartDoc(DC: HDC; const p2: TDocInfo): Integer;external KernelDLL name 'StartDocW'; -function StartDocW(DC: HDC; const p2: TDocInfoW): Integer;external KernelDLL name 'StartDocW'; -function SubtractRect(var lprcDst: TRect; const lprcSrc1, lprcSrc2: TRect): BOOL; external KernelDLL name 'SubtractRect'; -function SystemTimeToFileTime(const lpSystemTime: TSystemTime; var lpFileTime: TFileTime): BOOL; external KernelDLL name 'SystemTimeToFileTime'; -function TranslateAccelerator(hWnd: HWND; hAccTable: HACCEL; var lpMsg: TMsg): Integer; external KernelDLL name 'TranslateAcceleratorW'; -function TranslateAcceleratorW(hWnd: HWND; hAccTable: HACCEL; var lpMsg: TMsg): Integer; external KernelDLL name 'TranslateAcceleratorW'; -function TranslateCharsetInfo(var lpSrc: DWORD; var lpCs: TCharsetInfo; dwFlags: DWORD): BOOL; external KernelDLL name 'TranslateCharsetInfo'; -function TranslateMessage(const lpMsg: TMsg): BOOL; external KernelDLL name 'TranslateMessage'; -function TryEnterCriticalSection(var CriticalSection : TRTLCriticalSection) : BOOL; external KernelDLL name 'TryEnterCriticalSection'; -function UnionRect(var lprcDst: TRect; const lprcSrc1, lprcSrc2: TRect): BOOL; external KernelDLL name 'UnionRect'; -function VirtualProtect(lpAddress:LPVOID; dwSize:DWORD; flNewProtect:DWORD; var lpflOldProtect:DWORD):WINBOOL; external KernelDLL name 'VirtualProtect'; -function VirtualQuery(lpAddress: Pointer; var lpBuffer: TMemoryBasicInformation; dwLength: DWORD): DWORD; external KernelDLL name 'VirtualQuery'; -function WaitCommEvent(hFile: THandle; var lpEvtMask: DWORD; lpOverlapped: POverlapped): BOOL; external KernelDLL name 'WaitCommEvent'; -function WaitForDebugEvent(var lpDebugEvent: TDebugEvent; dwMilliseconds: DWORD): BOOL; external KernelDLL name 'WaitForDebugEvent'; -function WriteFile(hFile: THandle; const Buffer; nNumberOfBytesToWrite: DWORD; var lpNumberOfBytesWritten: DWORD; lpOverlapped: POverlapped): BOOL; external KernelDLL name 'WriteFile'; -function WriteProcessMemory(hProcess: THandle; const lpBaseAddress: Pointer; lpBuffer: Pointer; nSize: DWORD; var lpNumberOfBytesWritten: DWORD): BOOL; external KernelDLL name 'WriteProcessMemory'; - -{$endif read_interface} - - -{$ifdef read_implementation} - -function MAKELANGID(PrimaryLang, SubLang: USHORT): WORD; -begin - MAKELANGID := (SubLang shl 10) or PrimaryLang; -end; - -function PRIMARYLANGID(LangId: WORD): WORD; -begin - PRIMARYLANGID := LangId and $3FF; -end; - -function SUBLANGID(LangId: WORD): WORD; -begin - SUBLANGID := LangId shr 10; -end; - -function MAKELCID(LangId, SortId: WORD): DWORD; -begin - MAKELCID := (DWORD(SortId) shl 16) or DWORD(LangId); -end; - -function MAKESORTLCID(LangId, SortId, SortVersion: WORD): DWORD; -begin - MAKESORTLCID := MAKELCID(LangId, SortId) or (SortVersion shl 20); -end; - -function LANGIDFROMLCID(LocaleId: LCID): WORD; -begin - LANGIDFROMLCID := WORD(LocaleId); -end; - -function SORTIDFROMLCID(LocaleId: LCID): WORD; -begin - SORTIDFROMLCID := WORD((DWORD(LocaleId) shr 16) and $F); -end; - -function SORTVERSIONFROMLCID(LocaleId: LCID): WORD; -begin - SORTVERSIONFROMLCID := WORD((DWORD(LocaleId) shr 20) and $F); -end; - -function LANG_SYSTEM_DEFAULT: WORD; -begin - LANG_SYSTEM_DEFAULT := MAKELANGID(LANG_NEUTRAL, SUBLANG_SYS_DEFAULT); -end; - -function LANG_USER_DEFAULT: WORD; -begin - LANG_USER_DEFAULT := MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT); -end; - -function LOCALE_USER_DEFAULT: DWORD; -begin - LOCALE_USER_DEFAULT:= MAKELCID(LANG_USER_DEFAULT, SORT_DEFAULT); -end; - -function LOCALE_SYSTEM_DEFAULT: DWORD; -begin - LOCALE_SYSTEM_DEFAULT:= MAKELCID(LANG_SYSTEM_DEFAULT, SORT_DEFAULT); -end; - -function LOCALE_NEUTRAL: DWORD; -begin - LOCALE_NEUTRAL := MAKELCID(MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), SORT_DEFAULT); -end; - -function LOCALE_INVARIANT: DWORD; -begin - LOCALE_INVARIANT := MAKELCID(MAKELANGID(LANG_INVARIANT, SUBLANG_NEUTRAL), SORT_DEFAULT); -end; - -function MsgWaitForMultipleObjects(nCount: DWORD; var pHandles; fWaitAll: BOOL; dwMilliseconds, dwWakeMask: DWORD): DWORD; -begin - MsgWaitForMultipleObjects:=MsgWaitForMultipleObjectsEx(nCount,@pHandles,dwMilliseconds,dwWakeMask,0); -end; - -function GetTextExtentPoint32(DC: HDC; Str: LPWSTR; Count: Integer; var Size: TSize): BOOL; -begin - Result:=GetTextExtentExPoint(DC, Str, Count, 0, nil, nil, @Size); -end; - -function GetTextExtentPoint32W(DC: HDC; Str: LPWSTR; Count: Integer; var Size: TSize): BOOL; -begin - Result:=GetTextExtentExPoint(DC, Str, Count, 0, nil, nil, @Size); -end; - -{$endif read_implementation} - +{ + This file is part of the Free Pascal run time library. + Copyright (c) 1999-2001 by the Free Pascal development team + + This file defines type names as they are used by Delphi + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + ********************************************************************** + +} + +{$ifdef read_interface} + +type + PIID = PGUID; + TIID = TGUID; + THANDLE = HANDLE; + + PSmallRect = ^TSmallRect; + TSmallRect = SMALL_RECT; + + PCharInfo = ^TCharInfo; + TCharInfo = _CHAR_INFO; + + TFarProc = FARPROC; + TFNDlgProc = FARPROC; + TFNThreadStartRoutine = FARPROC; + TFNTimerAPCRoutine = FARPROC; + TFNFiberStartRoutine = FARPROC; + + PObjectTypeList = ^TObjectTypeList; + _OBJECT_TYPE_LIST = record + Level: WORD; + Sbz: WORD; + ObjectType: PGUID; + end; + TObjectTypeList = _OBJECT_TYPE_LIST; + OBJECT_TYPE_LIST = _OBJECT_TYPE_LIST; + + AUDIT_EVENT_TYPE = DWORD; + + PBlendFunction = ^TBlendFunction; + _BLENDFUNCTION = packed record + BlendOp: BYTE; + BlendFlags: BYTE; + SourceConstantAlpha: BYTE; + AlphaFormat: BYTE; + end; + TBlendFunction = _BLENDFUNCTION; + BLENDFUNCTION = _BLENDFUNCTION; + + _WIN_CERTIFICATE = Packed Record + dwLength : DWord; + wRevision : Word; + wCertificateType : Word; + bCertificate : Array[0..0] of Byte; + End; + TWinCertificate = _WIN_CERTIFICATE; + PWinCertificate = ^TWinCertificate; + + TMaxLogPalette = Packed Record + palVersion : Word; + palNumEntries : Word; + palPalEntry : array[Byte] of TPaletteEntry; + end; + PMaxLogPalette = ^TMaxLogPalette; + +// +// A language ID is a 16 bit value which is the combination of a +// primary language ID and a secondary language ID. The bits are +// allocated as follows: +// +// +-----------------------+-------------------------+ +// | Sublanguage ID | Primary Language ID | +// +-----------------------+-------------------------+ +// 15 10 9 0 bit +// +// +// Language ID creation/extraction macros: +// +// MAKELANGID - construct language id from a primary language id and +// a sublanguage id. +// PRIMARYLANGID - extract primary language id from a language id. +// SUBLANGID - extract sublanguage id from a language id. +// + +function MAKELANGID(PrimaryLang, SubLang: USHORT): WORD; +function PRIMARYLANGID(LangId: WORD): WORD; +function SUBLANGID(LangId: WORD): WORD; + +// +// A locale ID is a 32 bit value which is the combination of a +// language ID, a sort ID, and a reserved area. The bits are +// allocated as follows: +// +// +-------------+---------+-------------------------+ +// | Reserved | Sort ID | Language ID | +// +-------------+---------+-------------------------+ +// 31 20 19 16 15 0 bit +// +// +// Locale ID creation/extraction macros: +// +// MAKELCID - construct the locale id from a language id and a sort id. +// MAKESORTLCID - construct the locale id from a language id, sort id, and sort version. +// LANGIDFROMLCID - extract the language id from a locale id. +// SORTIDFROMLCID - extract the sort id from a locale id. +// SORTVERSIONFROMLCID - extract the sort version from a locale id. +// + +const + NLS_VALID_LOCALE_MASK = $000fffff; //winnt + +function MAKELCID(LangId, SortId: WORD): DWORD; //winnt +function MAKESORTLCID(LangId, SortId, SortVersion: WORD): DWORD; //winnt +function LANGIDFROMLCID(LocaleId: LCID): WORD; //winnt +function SORTIDFROMLCID(LocaleId: LCID): WORD; //winnt +function SORTVERSIONFROMLCID(LocaleId: LCID): WORD; //winnt + +// +// Default System and User IDs for language and locale. +// + +function LANG_SYSTEM_DEFAULT: WORD; //winnt +function LANG_USER_DEFAULT: WORD; //winnt +function LOCALE_SYSTEM_DEFAULT: DWORD; //+winnt +function LOCALE_USER_DEFAULT: DWORD; //+winnt +function LOCALE_NEUTRAL: DWORD; //winnt +function LOCALE_INVARIANT: DWORD; //winnt + +function BeginPaint(hWnd: HWND; var lpPaint: TPaintStruct): HDC; external KernelDLL name 'BeginPaint'; +function ChangeDisplaySettingsEx(lpszDeviceName: PWideChar; var lpDevMode: TDeviceMode; wnd: HWND; dwFlags: DWORD; lParam: Pointer): Longint;external KernelDLL name 'ChangeDisplaySettingsEx'; +function ClearCommError(hFile: THandle; var lpErrors: DWORD; lpStat: PComStat): BOOL; external KernelDLL name 'ClearCommError'; +function ClientToScreen(hWnd: HWND; var lpPoint: TPoint): BOOL; external KernelDLL name 'ClientToScreen'; +function ClipCursor(var lpRect:RECT):WINBOOL; external KernelDLL name 'ClipCursor'; +function CopyRect(var lprcDst: TRect; const lprcSrc: TRect): BOOL; external KernelDLL name 'CopyRect'; +function CreateAcceleratorTable(var Accel; Count: Integer): HACCEL; external KernelDLL name 'CreateAcceleratorTableW'; +function CreateAcceleratorTableW(var Accel; Count: Integer): HACCEL; external KernelDLL name 'CreateAcceleratorTableW'; +function CreateDialogIndirectParam(hInstance: HINST; const lpTemplate: TDlgTemplate; hWndParent: HWND; lpDialogFunc: TFNDlgProc; dwInitParam: LPARAM): HWND;external KernelDLL name 'CreateDialogIndirectParamW'; +function CreateFontIndirect(const p1: TLogFont): HFONT; external KernelDLL name 'CreateFontIndirectW'; +function CreateFontIndirectW(const p1: TLogFontW): HFONT; external KernelDLL name 'CreateFontIndirectW'; +function CreateIconIndirect(var piconinfo: TIconInfo): HICON; external KernelDLL name 'CreateIconIndirect'; +function CreateProcess(lpApplicationName: LPTSTR; lpCommandLine: LPTSTR; lpProcessAttributes, lpThreadAttributes: PSecurityAttributes; bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: Pointer; lpCurrentDirectory: LPTSTR; + const lpStartupInfo: LPStartupInfo; var lpProcessInformation: TProcessInformation): BOOL;external KernelDLL name 'CreateProcessW'; +function CreateProcess(lpApplicationName: LPTSTR; lpCommandLine: LPTSTR; lpProcessAttributes, lpThreadAttributes: PSecurityAttributes; bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: Pointer; lpCurrentDirectory: LPTSTR; + const lpStartupInfo: TStartupInfo; var lpProcessInformation: TProcessInformation): BOOL;external KernelDLL name 'CreateProcessW'; +function CreateProcessW(lpApplicationName: LPWSTR; lpCommandLine: LPWSTR; lpProcessAttributes, lpThreadAttributes: PSecurityAttributes; bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: Pointer; lpCurrentDirectory: LPWSTR; + const lpStartupInfo: TStartupInfo; var lpProcessInformation: TProcessInformation): BOOL; external KernelDLL name 'CreateProcessW'; +procedure DeleteCriticalSection(var CriticalSection : TRTLCriticalSection); external KernelDLL name 'DeleteCriticalSection'; +function DeviceIoControl(hDevice: THandle; dwIoControlCode: DWORD; lpInBuffer: Pointer; nInBufferSize: DWORD; lpOutBuffer: Pointer; nOutBufferSize: DWORD; var lpBytesReturned: DWORD; lpOverlapped: POverlapped): BOOL; + external KernelDLL name 'DeviceIoControl'; +function DispatchMessage(const lpMsg: TMsg): Longint; external KernelDLL name 'DispatchMessageW'; +function DispatchMessageW(const lpMsg: TMsg): Longint; external KernelDLL name 'DispatchMessageW'; +function DrawEdge(hdc: HDC; var qrc: TRect; edge: UINT; grfFlags: UINT): BOOL; external KernelDLL name 'DrawEdge'; +function DrawFrameControl(DC: HDC; const Rect: TRect; uType, uState: UINT): BOOL; external KernelDLL name 'DrawFrameControl'; +function DrawText(hDC: HDC; lpString: LPWSTR; nCount: Integer; var lpRect: TRect; uFormat: UINT): Integer; external KernelDLL name 'DrawTextW'; +function DrawTextW(hDC: HDC; lpString: LPWSTR; nCount: Integer; var lpRect: TRect; uFormat: UINT): Integer; external KernelDLL name 'DrawTextW'; +function EndPaint(hWnd: HWND; const lpPaint: TPaintStruct): BOOL; external KernelDLL name 'EndPaint'; +procedure EnterCriticalSection(var CriticalSection : TRTLCriticalSection); external KernelDLL name 'EnterCriticalSection'; +function EnumDisplaySettings(lpszDeviceName: PWideChar; iModeNum: DWORD; var lpDevMode: TDeviceMode): BOOL;external KernelDLL name 'EnumDisplaySettings'; +function EnumDisplaySettingsW(lpszDeviceName: PWideChar; iModeNum: DWORD; var lpDevMode: TDeviceModeW): BOOL;external KernelDLL name 'EnumDisplaySettings'; +function ExtCreateRegion(p1: PXForm; p2: DWORD; const p3: TRgnData): HRGN; external KernelDLL name 'ExtCreateRegion'; +function FileTimeToSystemTime(const lpFileTime: TFileTime; var lpSystemTime: TSystemTime): BOOL; external KernelDLL name 'FileTimeToSystemTime'; +function FileTimeToLocalFileTime(const lpFileTime: TFileTime; var lpLocalFileTime: TFileTime): BOOL; external KernelDLL name 'FileTimeToLocalFileTime'; +function FindFirstFile(lpFileName: LPTSTR; var lpFindFileData: TWIN32FindData): THandle; external KernelDLL name 'FindFirstFileW'; +function FindFirstFileW(lpFileName: LPTSTR; var lpFindFileData: TWIN32FindDataW): THandle; external KernelDLL name 'FindFirstFileW'; +function FindNextFile(hFindFile: THandle; var lpFindFileData: TWIN32FindData): BOOL; external KernelDLL name 'FindNextFileW'; +function FindNextFileW(hFindFile: THandle; var lpFindFileData: TWIN32FindDataW): BOOL; external KernelDLL name 'FindNextFileW'; +function GetCaretPos(var lpPoint: TPoint): BOOL; external KernelDLL name 'GetCaretPos'; +function GetCharABCWidths(DC: HDC; p2, p3: UINT; const ABCStructs): BOOL;external KernelDLL name 'GetCharABCWidths'; +function GetCharABCWidthsW(DC: HDC; p2, p3: UINT; const ABCStructs): BOOL;external KernelDLL name 'GetCharABCWidths'; +function GetCharWidth32(DC: HDC; p2, p3: UINT; const Widths): BOOL;external KernelDLL name 'GetCharWidth32'; +function GetCharWidth32W(DC: HDC; p2, p3: UINT; const Widths): BOOL;external KernelDLL name 'GetCharWidth32'; +function GetClassInfo(hInstance: HINST; lpClassName: LPWSTR; var lpWndClass: TWndClassW): BOOL; external KernelDLL name 'GetClassInfoW'; +function GetClassInfoW(hInstance: HINST; lpClassName: LPWSTR; var lpWndClass: TWndClassW): BOOL; external KernelDLL name 'GetClassInfoW'; +function GetClientRect(hWnd: HWND; var lpRect: TRect): BOOL; external KernelDLL name 'GetClientRect'; +function GetClipBox(DC: HDC; var Rect: TRect): Integer; external KernelDLL name 'GetClipBox'; +function GetClipCursor(var lpRect: TRect): BOOL; external KernelDLL name 'GetClipCursor'; +function GetCommModemStatus(hFile: THandle; var lpModemStat: DWORD): BOOL; external KernelDLL name 'GetCommModemStatus'; +function GetCommProperties(hFile: THandle; var lpCommProp: TCommProp): BOOL; external KernelDLL name 'GetCommProperties'; +function GetCommState(hFile: THandle; var lpDCB: TDCB): BOOL; external KernelDLL name 'GetCommState'; +function GetCommTimeouts(hFile: THandle; var lpCommTimeouts: TCommTimeouts): BOOL; external KernelDLL name 'GetCommTimeouts'; +function GetCursorPos(var lpPoint: TPoint): BOOL; external KernelDLL name 'GetCursorPos'; +function GetCPInfo(CodePage: UINT; var lpCPInfo: TCPInfo): BOOL;external KernelDLL name 'GetCPInfo'; +function GetDIBColorTable(DC: HDC; p2, p3: UINT; var RGBQuadStructs): UINT; external KernelDLL name 'GetDIBColorTable'; +function GetDiskFreeSpaceEx(lpDirectoryName: PWideChar; var lpFreeBytesAvailableToCaller, lpTotalNumberOfBytes: TLargeInteger; lpTotalNumberOfFreeBytes: PLargeInteger): BOOL;external KernelDLL name 'GetDiskFreeSpaceExW'; +function GetDiskFreeSpaceExW(lpDirectoryName: PWideChar; var lpFreeBytesAvailableToCaller, lpTotalNumberOfBytes: TLargeInteger; lpTotalNumberOfFreeBytes: PLargeInteger): BOOL;external KernelDLL name 'GetDiskFreeSpaceExW'; +function GetExitCodeProcess(hProcess: THandle; var lpExitCode: DWORD): BOOL; external KernelDLL name 'GetExitCodeProcess'; +function GetExitCodeThread(hThread: THandle; var lpExitCode: DWORD): BOOL; external KernelDLL name 'GetExitCodeThread'; +function GetFileInformationByHandle(hFile: THandle; var lpFileInformation: TByHandleFileInformation): BOOL; external KernelDLL name 'GetFileInformationByHandle'; +function GetKeyboardLayoutList(nBuff: Integer; var List): UINT; external KernelDLL name 'GetKeyboardLayoutList'; +procedure GetLocalTime(var SystemTime: SYSTEMTIME); external KernelDLL name 'GetLocalTime'; +function GetMenuItemInfo(p1: HMENU; p2: UINT; p3: BOOL; var p4: TMenuItemInfo): BOOL; external KernelDLL name 'GetMenuItemInfoW'; +function GetMenuItemInfoW(p1: HMENU; p2: UINT; p3: BOOL; var p4: TMenuItemInfoW): BOOL; external KernelDLL name 'GetMenuItemInfoW'; +function GetMessage(var lpMsg: TMsg; hWnd: HWND; wMsgFilterMin, wMsgFilterMax: UINT): BOOL;external KernelDLL name 'GetMessageW'; +function GetOpenFileName(var OpenFile:TOPENFILENAMEW):WINBOOL; external KernelDLL name 'GetOpenFileNameW'; +function GetOpenFileNameW(var OpenFile:TOPENFILENAMEW):WINBOOL; external KernelDLL name 'GetOpenFileNameW'; +function GetPaletteEntries(Palette: HPALETTE; StartIndex, NumEntries: UINT; var PaletteEntries): UINT; external KernelDLL name 'GetPaletteEntries'; +function GetRgnBox(RGN: HRGN; var p2: TRect): Integer; external KernelDLL name 'GetRgnBox'; +function GetSaveFileName(var OpenFile:TOPENFILENAMEW):WINBOOL; external KernelDLL name 'GetSaveFileNameW'; +function GetSaveFileNameW(var OpenFile:TOPENFILENAMEW):WINBOOL; external KernelDLL name 'GetSaveFileNameW'; +function GetScrollInfo(hWnd: HWND; BarFlag: Integer; var ScrollInfo: TScrollInfo): BOOL; external KernelDLL name 'GetScrollInfo'; +function GetStringType(dwInfoType: DWORD; const lpSrcStr: PWideChar; cchSrc: BOOL; var lpCharType: Word): BOOL;external KernelDLL name 'GetStringTypeW'; +function GetStringTypeW(dwInfoType: DWORD; const lpSrcStr: PWideChar; cchSrc: BOOL; var lpCharType: Word): BOOL;external KernelDLL name 'GetStringTypeW'; +function GetStringTypeEx(Locale: LCID; dwInfoType: DWORD; lpSrcStr: PWideChar; cchSrc: Integer; var lpCharType): BOOL; external KernelDLL name 'GetStringTypeExW'; +function GetStringTypeExW(Locale: LCID; dwInfoType: DWORD; lpSrcStr: PWideChar; cchSrc: Integer; var lpCharType): BOOL; external KernelDLL name 'GetStringTypeExW'; +procedure GetSystemInfo(var SystemInfo:SYSTEM_INFO); external KernelDLL name 'GetSystemInfo'; +function GetSystemPaletteEntries(DC: HDC; StartIndex, NumEntries: UINT; var PaletteEntries): UINT; external KernelDLL name 'GetSystemPaletteEntries'; +procedure GetSystemTime(var lpSystemTime:SYSTEMTIME); external KernelDLL name 'GetSystemTime'; +function GetTextExtentExPoint(DC: HDC; p2: LPWSTR; p3, p4: Integer; p5, p6: PInteger; var p7: TSize): BOOL; external KernelDLL name 'GetTextExtentExPointW'; +function GetTextExtentExPointW(DC: HDC; p2: LPWSTR; p3, p4: Integer; p5, p6: PInteger; var p7: TSize): BOOL; external KernelDLL name 'GetTextExtentExPointW'; +function GetTextExtentPoint32(DC: HDC; Str: LPWSTR; Count: Integer; var Size: TSize): BOOL; +function GetTextExtentPoint32W(DC: HDC; Str: LPWSTR; Count: Integer; var Size: TSize): BOOL; +function GetTextMetrics(DC: HDC; var TM: TTextMetric): BOOL;external KernelDLL name 'GetTextMetricsW'; +function GetThreadContext(hThread: THandle; var lpContext: TContext): BOOL; external KernelDLL name 'GetThreadContext'; +function GetThreadTimes(hThread: THandle; var lpCreationTime, lpExitTime, lpKernelTime, lpUserTime: TFileTime): BOOL; external KernelDLL name 'GetThreadTimes'; +function GetTimeZoneInformation(var lpTimeZoneInformation: TTimeZoneInformation): DWORD; external KernelDLL name 'GetTimeZoneInformation'; +function GetUpdateRect(hWnd: HWND; var lpRect: TRect; bErase: BOOL): BOOL; external KernelDLL name 'GetUpdateRect'; +function GetVersionEx(var lpVersionInformation: TOSVersionInfo): BOOL;external KernelDLL name 'GetVersionExW'; +function GetVersionExW(var lpVersionInformation: TOSVersionInfoW): BOOL; external KernelDLL name 'GetVersionExW'; +function GetWindowRect(hWnd: HWND; var lpRect: TRect): BOOL; external KernelDLL name 'GetWindowRect'; +procedure GlobalMemoryStatus(var Buffer: MEMORYSTATUS); external KernelDLL name 'GlobalMemoryStatus'; +function ImageList_GetDragImage(var ppt:POINT; var pptHotspot:POINT):HIMAGELIST; external KernelDLL name 'ImageList_GetDragImage'; +function InflateRect(var lprc: TRect; dx, dy: Integer): BOOL; external KernelDLL name 'InflateRect'; +procedure InitializeCriticalSection(var CriticalSection : TRTLCriticalSection); external KernelDLL name 'InitializeCriticalSection'; +function IntersectRect(var lprcDst: TRect; const lprcSrc1, lprcSrc2: TRect): BOOL; external KernelDLL name 'IntersectRect'; +function IsDialogMessage(hDlg: HWND; var lpMsg: TMsg): BOOL; external KernelDLL name 'IsDialogMessageW'; +function IsDialogMessageW(hDlg: HWND; var lpMsg: TMsg): BOOL; external KernelDLL name 'IsDialogMessageW'; +procedure LeaveCriticalSection(var CriticalSection : TRTLCriticalSection); external KernelDLL name 'LeaveCriticalSection'; +function LocalFileTimeToFileTime(const lpLocalFileTime: TFileTime; var lpFileTime: TFileTime): BOOL; external KernelDLL name 'LocalFileTimeToFileTime'; +function MapDialogRect(hDlg: HWND; var lpRect: TRect): BOOL; external KernelDLL name 'MapDialogRect'; +function MapWindowPoints(hWndFrom, hWndTo: HWND; var lpPoints; cPoints: UINT): Integer; external KernelDLL name 'MapWindowPoints'; +//redirected to MsgWaitForMultipleObjectsEx +function MsgWaitForMultipleObjects(nCount: DWORD; var pHandles; fWaitAll: BOOL; dwMilliseconds, dwWakeMask: DWORD): DWORD; +function OffsetRect(var lprc: TRect; dx, dy: Integer): BOOL; external KernelDLL name 'OffsetRect'; +function PeekMessage(var lpMsg: TMsg; hWnd: HWND; wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL;external KernelDLL name 'PeekMessageW'; +function PeekMessageW(var lpMsg: TMsg; hWnd: HWND; wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; external KernelDLL name 'PeekMessageW'; +function Polygon(DC: HDC; var Points; Count: Integer): BOOL; external KernelDLL name 'Polygon'; +function Polyline(DC: HDC; var Points; Count: Integer): BOOL; external KernelDLL name 'Polyline'; +function PtInRect(const lprc:TRect; pt:POINT):WINBOOL; external KernelDLL name 'PtInRect'; +function QueryPerformanceCounter(var lpPerformanceCount: TLargeInteger): BOOL; external KernelDLL name 'QueryPerformanceCounter'; +function QueryPerformanceFrequency(var lpFrequency: TLargeInteger): BOOL; external KernelDLL name 'QueryPerformanceFrequency'; +procedure RaiseException(dwExceptionCode:DWORD; dwExceptionFlags:DWORD; nNumberOfArguments:DWORD; var lpArguments:DWORD); external KernelDLL name 'RaiseException'; +function ReadFile(hFile: THandle; var Buffer; nNumberOfBytesToRead: DWORD; var lpNumberOfBytesRead: DWORD; lpOverlapped: POverlapped): BOOL; external KernelDLL name 'ReadFile'; +function ReadProcessMemory(hProcess: THandle; const lpBaseAddress: Pointer; lpBuffer: Pointer; nSize: DWORD; var lpNumberOfBytesRead: DWORD): BOOL; external KernelDLL name 'ReadProcessMemory'; +function RegCreateKeyEx(hKey: HKEY; lpSubKey: LPWSTR; Reserved: DWORD; lpClass: LPWSTR; dwOptions: DWORD; samDesired: REGSAM; lpSecurityAttributes: PSecurityAttributes; var phkResult: HKEY; lpdwDisposition: PDWORD): Longint; external KERNELDLL name 'RegCreateKeyExW'; +function RegCreateKeyExW(hKey: HKEY; lpSubKey: LPWSTR; Reserved: DWORD; lpClass: LPWSTR; dwOptions: DWORD; samDesired: REGSAM; lpSecurityAttributes: PSecurityAttributes; var phkResult: HKEY; lpdwDisposition: PDWORD): Longint; external KERNELDLL name 'RegCreateKeyExW'; +function RegEnumKeyEx(hKey: HKEY; dwIndex: DWORD; lpName: LPWSTR; var lpcbName: DWORD; lpReserved: Pointer; lpClass: LPWSTR; lpcbClass: PDWORD; lpftLastWriteTime: PFileTime): Longint; external KernelDLL name 'RegEnumKeyExW'; +function RegEnumKeyExW(hKey: HKEY; dwIndex: DWORD; lpName: LPWSTR; var lpcbName: DWORD; lpReserved: Pointer; lpClass: LPWSTR; lpcbClass: PDWORD; lpftLastWriteTime: PFileTime): Longint; external KernelDLL name 'RegEnumKeyExW'; +function RegEnumValue(hKey: HKEY; dwIndex: DWORD; lpValueName: LPWSTR; var lpcbValueName: DWORD; lpReserved: Pointer; lpType: PDWORD; lpData: PByte; lpcbData: PDWORD): Longint; external KernelDLL name 'RegEnumValueW'; +function RegEnumValueW(hKey: HKEY; dwIndex: DWORD; lpValueName: LPWSTR; var lpcbValueName: DWORD; lpReserved: Pointer; lpType: PDWORD; lpData: PByte; lpcbData: PDWORD): Longint; external KernelDLL name 'RegEnumValueW'; +function RegisterClass(const lpWndClass: TWndClass): ATOM;external KernelDLL name 'RegisterClassW'; +function RegisterClassW(const lpWndClass: TWndClassW): ATOM; external KernelDLL name 'RegisterClassW'; +function RegOpenKeyEx(hKey: HKEY; lpSubKey: LPWSTR; ulOptions: DWORD; samDesired: REGSAM; var phkResult: HKEY): Longint; external KernelDLL name 'RegOpenKeyExW'; +function RegOpenKeyExW(hKey: HKEY; lpSubKey: LPWSTR; ulOptions: DWORD; samDesired: REGSAM; var phkResult: HKEY): Longint; external KernelDLL name 'RegOpenKeyExW'; +function ScreenToClient(hWnd: HWND; var lpPoint: TPoint): BOOL; external KernelDLL name 'ScreenToClient'; +function ScrollWindowEx(hWnd:HWND; dx:longint; dy:longint; prcScroll:lpRECT; prcClip:lpRECT;hrgnUpdate:HRGN; prcUpdate:LPRECT; flags:UINT):longint; external KernelDLL name 'ScrollWindowEx'; +function SendMessageTimeout(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM; fuFlags, uTimeout: UINT; var lpdwResult: DWORD): LRESULT;external KernelDLL name 'SendMessageTimeout'; +function SendMessageTimeoutW(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM; fuFlags, uTimeout: UINT; var lpdwResult: DWORD): LRESULT;external KernelDLL name 'SendMessageTimeout'; +function SetCommState(hFile: THandle; const lpDCB: TDCB): BOOL; external KernelDLL name 'SetCommState'; +function SetCommTimeouts(hFile: THandle; const lpCommTimeouts: TCommTimeouts): BOOL; external KernelDLL name 'SetCommTimeouts'; +function SetDIBColorTable(DC: HDC; p2, p3: UINT; var RGBQuadSTructs): UINT; external KernelDLL name 'SetDIBColorTable'; +function SetDIBits(DC: HDC; Bitmap: HBITMAP; StartScan, NumScans: UINT; Bits: Pointer; var BitsInfo: TBitmapInfo; Usage: UINT): Integer; external KernelDLL name 'SetDIBits'; +function SetFileTime(hFile:HANDLE; var lpCreationTime:FILETIME; var lpLastAccessTime:FILETIME; var lpLastWriteTime:FILETIME):WINBOOL; external KernelDLL name 'SetFileTime'; +function SetLocalTime(var lpSystemTime:SYSTEMTIME):WINBOOL; external KernelDLL name 'SetLocalTime'; +function SetMenuItemInfo(p1: HMENU; p2: UINT; p3: BOOL; const p4: TMenuItemInfo): BOOL; external KernelDLL name 'SetMenuItemInfoW'; +function SetMenuItemInfoW(p1: HMENU; p2: UINT; p3: BOOL; const p4: TMenuItemInfoW): BOOL; external KernelDLL name 'SetMenuItemInfoW'; +function SetPaletteEntries(Palette: HPALETTE; StartIndex, NumEntries: UINT; var PaletteEntries): UINT; external KernelDLL name 'SetPaletteEntries'; +function SetRect(var lprc:TRect; xLeft:longint; yTop:longint; xRight:longint; yBottom:longint):WINBOOL; external KernelDLL name 'SetRect'; +function SetRectEmpty(var lprc: TRect): BOOL; external KernelDLL name 'SetRectEmpty'; +function SetScrollInfo(hWnd: HWND; BarFlag: Integer; const ScrollInfo: TScrollInfo; Redraw: BOOL): Integer; external KernelDLL name 'SetScrollInfo'; +function SetSysColors(cElements: Integer; const lpaElements; const lpaRgbValues): BOOL; external KernelDLL name 'SetSysColors'; +function SetSystemTime(var lpSystemTime:SYSTEMTIME):WINBOOL; external KernelDLL name 'SetSystemTime'; +function SetThreadContext(hThread: THandle; const lpContext: TContext): BOOL; external KernelDLL name 'SetThreadContext'; +function SHFileOperation(const lpFileOp:SHFILEOPSTRUCTW): longint; external ShellDLL name 'SHFileOperationW'; +function SHFileOperationW(const lpFileOp:SHFILEOPSTRUCTW): longint; external ShellDLL name 'SHFileOperationW'; +function StartDoc(DC: HDC; const p2: TDocInfo): Integer;external KernelDLL name 'StartDocW'; +function StartDocW(DC: HDC; const p2: TDocInfoW): Integer;external KernelDLL name 'StartDocW'; +function SubtractRect(var lprcDst: TRect; const lprcSrc1, lprcSrc2: TRect): BOOL; external KernelDLL name 'SubtractRect'; +function SystemTimeToFileTime(const lpSystemTime: TSystemTime; var lpFileTime: TFileTime): BOOL; external KernelDLL name 'SystemTimeToFileTime'; +function TranslateAccelerator(hWnd: HWND; hAccTable: HACCEL; var lpMsg: TMsg): Integer; external KernelDLL name 'TranslateAcceleratorW'; +function TranslateAcceleratorW(hWnd: HWND; hAccTable: HACCEL; var lpMsg: TMsg): Integer; external KernelDLL name 'TranslateAcceleratorW'; +function TranslateCharsetInfo(var lpSrc: DWORD; var lpCs: TCharsetInfo; dwFlags: DWORD): BOOL; external KernelDLL name 'TranslateCharsetInfo'; +function TranslateMessage(const lpMsg: TMsg): BOOL; external KernelDLL name 'TranslateMessage'; +function TryEnterCriticalSection(var CriticalSection : TRTLCriticalSection) : BOOL; external KernelDLL name 'TryEnterCriticalSection'; +function UnionRect(var lprcDst: TRect; const lprcSrc1, lprcSrc2: TRect): BOOL; external KernelDLL name 'UnionRect'; +function VirtualProtect(lpAddress:LPVOID; dwSize:DWORD; flNewProtect:DWORD; var lpflOldProtect:DWORD):WINBOOL; external KernelDLL name 'VirtualProtect'; +function VirtualQuery(lpAddress: Pointer; var lpBuffer: TMemoryBasicInformation; dwLength: DWORD): DWORD; external KernelDLL name 'VirtualQuery'; +function WaitCommEvent(hFile: THandle; var lpEvtMask: DWORD; lpOverlapped: POverlapped): BOOL; external KernelDLL name 'WaitCommEvent'; +function WaitForDebugEvent(var lpDebugEvent: TDebugEvent; dwMilliseconds: DWORD): BOOL; external KernelDLL name 'WaitForDebugEvent'; +function WriteFile(hFile: THandle; const Buffer; nNumberOfBytesToWrite: DWORD; var lpNumberOfBytesWritten: DWORD; lpOverlapped: POverlapped): BOOL; external KernelDLL name 'WriteFile'; +function WriteProcessMemory(hProcess: THandle; const lpBaseAddress: Pointer; lpBuffer: Pointer; nSize: DWORD; var lpNumberOfBytesWritten: DWORD): BOOL; external KernelDLL name 'WriteProcessMemory'; + +{$endif read_interface} + + +{$ifdef read_implementation} + +function MAKELANGID(PrimaryLang, SubLang: USHORT): WORD; +begin + MAKELANGID := (SubLang shl 10) or PrimaryLang; +end; + +function PRIMARYLANGID(LangId: WORD): WORD; +begin + PRIMARYLANGID := LangId and $3FF; +end; + +function SUBLANGID(LangId: WORD): WORD; +begin + SUBLANGID := LangId shr 10; +end; + +function MAKELCID(LangId, SortId: WORD): DWORD; +begin + MAKELCID := (DWORD(SortId) shl 16) or DWORD(LangId); +end; + +function MAKESORTLCID(LangId, SortId, SortVersion: WORD): DWORD; +begin + MAKESORTLCID := MAKELCID(LangId, SortId) or (SortVersion shl 20); +end; + +function LANGIDFROMLCID(LocaleId: LCID): WORD; +begin + LANGIDFROMLCID := WORD(LocaleId); +end; + +function SORTIDFROMLCID(LocaleId: LCID): WORD; +begin + SORTIDFROMLCID := WORD((DWORD(LocaleId) shr 16) and $F); +end; + +function SORTVERSIONFROMLCID(LocaleId: LCID): WORD; +begin + SORTVERSIONFROMLCID := WORD((DWORD(LocaleId) shr 20) and $F); +end; + +function LANG_SYSTEM_DEFAULT: WORD; +begin + LANG_SYSTEM_DEFAULT := MAKELANGID(LANG_NEUTRAL, SUBLANG_SYS_DEFAULT); +end; + +function LANG_USER_DEFAULT: WORD; +begin + LANG_USER_DEFAULT := MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT); +end; + +function LOCALE_USER_DEFAULT: DWORD; +begin + LOCALE_USER_DEFAULT:= MAKELCID(LANG_USER_DEFAULT, SORT_DEFAULT); +end; + +function LOCALE_SYSTEM_DEFAULT: DWORD; +begin + LOCALE_SYSTEM_DEFAULT:= MAKELCID(LANG_SYSTEM_DEFAULT, SORT_DEFAULT); +end; + +function LOCALE_NEUTRAL: DWORD; +begin + LOCALE_NEUTRAL := MAKELCID(MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), SORT_DEFAULT); +end; + +function LOCALE_INVARIANT: DWORD; +begin + LOCALE_INVARIANT := MAKELCID(MAKELANGID(LANG_INVARIANT, SUBLANG_NEUTRAL), SORT_DEFAULT); +end; + +function MsgWaitForMultipleObjects(nCount: DWORD; var pHandles; fWaitAll: BOOL; dwMilliseconds, dwWakeMask: DWORD): DWORD; +begin + MsgWaitForMultipleObjects:=MsgWaitForMultipleObjectsEx(nCount,@pHandles,dwMilliseconds,dwWakeMask,0); +end; + +function GetTextExtentPoint32(DC: HDC; Str: LPWSTR; Count: Integer; var Size: TSize): BOOL; +begin + Result:=GetTextExtentExPoint(DC, Str, Count, 0, nil, nil, @Size); +end; + +function GetTextExtentPoint32W(DC: HDC; Str: LPWSTR; Count: Integer; var Size: TSize): BOOL; +begin + Result:=GetTextExtentExPoint(DC, Str, Count, 0, nil, nil, @Size); +end; + +{$endif read_implementation} + diff --git a/rtl/wince/wininc/simmgr.inc b/rtl/wince/wininc/simmgr.inc index a93bf7539e..0d49f7cfd4 100644 --- a/rtl/wince/wininc/simmgr.inc +++ b/rtl/wince/wininc/simmgr.inc @@ -1,540 +1,540 @@ -{ - This file is part of the Free Pascal run time library. - Copyright (c) 2007 Free Pascal development team. - - See the file COPYING.FPC, included in this distribution, - for details about the copyright. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - - **********************************************************************} - -{ Declarations for tapi WinCE API, note than on WinCE simmgr functions originally - based in coredll.dll - - SIM Manager is an API set that allows access to information stored on the SIM Card - - This port based on Windows Mobile 5 Smartphone Edition SDK - contact S0vNark0m for more information snk_post@mail.ru (en, ru) -} - -{$ifdef read_interface} - -//***************************************************************************** -// consts -//***************************************************************************** - -const - SIM_ERRORCLASS_SIM = $02; // Problem with the SIM - SIM_ERRORCLASS_PASSWORD = $01; // Unspecified phone failure - SIM_ERRORCLASS_STORAGE = $03; // Error relating to storage - SIM_ERRORCLASS_NONE = $00; // Misc error - - FACILITY_SIM = $800; - - ERROR_BASE = Longword(SEVERITY_ERROR) shl 31 or Longword(FACILITY_SIM) shl 16; // C Macros conversion, internal def - - // Internal def = errclass shl 8 - MSE_ERRORCLASS_SIM = ERROR_BASE or Word(SIM_ERRORCLASS_SIM) shl 8; - MSE_ERRORCLASS_PASSWORD = ERROR_BASE or Word(SIM_ERRORCLASS_PASSWORD) shl 8; - MSE_ERRORCLASS_STORAGE = ERROR_BASE or Word(SIM_ERRORCLASS_STORAGE) shl 8; - MSE_ERRERRORCLASS_NONE = ERROR_BASE or Word(SIM_ERRORCLASS_NONE) shl 8; - - // Error | Various errors - SIM_E_SIMFAILURE = MSE_ERRORCLASS_SIM or $01; // SIM failure was detected - SIM_E_SIMBUSY = MSE_ERRORCLASS_SIM or $02; // SIM is busy - SIM_E_SIMWRONG = MSE_ERRORCLASS_SIM or $03; // Inorrect SIM was inserted - SIM_E_NOSIMMSGSTORAGE = MSE_ERRORCLASS_SIM or $04; // SIM isn't capable of storing messages - SIM_E_SIMTOOLKITBUSY = MSE_ERRORCLASS_SIM or $05; // SIM Application Toolkit is busy - SIM_E_SIMDOWNLOADERROR = MSE_ERRORCLASS_SIM or $06; // SIM data download error - SIM_E_SIMNOTINSERTED = MSE_ERRORCLASS_SIM or $07; // SIM isn't inserted into the phone - - SIM_E_PHSIMPINREQUIRED = MSE_ERRORCLASS_PASSWORD or $20; // PH-SIM PIN is required to perform this operation - SIM_E_PHFSIMPINREQUIRED = MSE_ERRORCLASS_PASSWORD or $21; // PH-FSIM PIN is required to perform this operation - SIM_E_PHFSIMPUKREQUIRED = MSE_ERRORCLASS_PASSWORD or $22; // PH-FSIM PUK is required to perform this operation - SIM_E_SIMPINREQUIRED = MSE_ERRORCLASS_PASSWORD or $23; // SIM PIN is required to perform this operation - SIM_E_SIMPUKREQUIRED = MSE_ERRORCLASS_PASSWORD or $24; // SIM PUK is required to perform this operation - SIM_E_INCORRECTPASSWORD = MSE_ERRORCLASS_PASSWORD or $25; // Incorrect password was supplied - SIM_E_SIMPIN2REQUIRED = MSE_ERRORCLASS_PASSWORD or $26; // SIM PIN2 is required to perform this operation - SIM_E_SIMPUK2REQUIRED = MSE_ERRORCLASS_PASSWORD or $27; // SIM PUK2 is required to perform this operation - SIM_E_NETWKPINREQUIRED = MSE_ERRORCLASS_PASSWORD or $28; // Network Personalization PIN is required to perform this operation - SIM_E_NETWKPUKREQUIRED = MSE_ERRORCLASS_PASSWORD or $29; // Network Personalization PUK is required to perform this operation - SIM_E_SUBSETPINREQUIRED = MSE_ERRORCLASS_PASSWORD or $2A; // Network Subset Personalization PIN is required to perform this operation - SIM_E_SUBSETPUKREQUIRED = MSE_ERRORCLASS_PASSWORD or $2B; // Network Subset Personalization PUK is required to perform this operation - SIM_E_SVCPINREQUIRED = MSE_ERRORCLASS_PASSWORD or $2C; // Service Provider Personalization PIN is required to perform this operation - SIM_E_SVCPUKREQUIRED = MSE_ERRORCLASS_PASSWORD or $2D; // Service Provider Personalization PUK is required to perform this operation - SIM_E_CORPPINREQUIRED = MSE_ERRORCLASS_PASSWORD or $2E; // Corporate Personalization PIN is required to perform this operation - SIM_E_CORPPUKREQUIRED = MSE_ERRORCLASS_PASSWORD or $2F; // Corporate Personalization PUK is required to perform this operation - - SIM_E_MEMORYFULL = MSE_ERRORCLASS_STORAGE or $40; // Storage memory is full - SIM_E_INVALIDINDEX = MSE_ERRORCLASS_STORAGE or $41; // Invalid storage index was supplied - SIM_E_NOTFOUND = MSE_ERRORCLASS_STORAGE or $42; // A requested storage entry was not found - SIM_E_MEMORYFAILURE = MSE_ERRORCLASS_STORAGE or $43; // Storage memory failure - SIM_E_SIMMSGSTORAGEFULL = MSE_ERRORCLASS_STORAGE or $44; // Message storage on the SIM is full - SIM_E_EMPTYINDEX = MSE_ERRORCLASS_STORAGE or $45; // Storage location is empty - - SIM_E_NOTREADY = MSE_ERRERRORCLASS_NONE or $60; // SIM isn't yet ready to perform the requested operation - SIM_E_SECURITYFAILURE = MSE_ERRERRORCLASS_NONE or $61; // SIM isn't yet ready to perform the requested operation - SIM_E_BUFFERTOOSMALL = MSE_ERRERRORCLASS_NONE or $62; // Buffer too small - SIM_E_NOTTEXTMESSAGE = MSE_ERRERRORCLASS_NONE or $63; // Requested SMS message is not a text message - SIM_E_NOSIM = MSE_ERRERRORCLASS_NONE or $64; // Device doesn't have a SIM - SIM_E_NETWORKERROR = MSE_ERRERRORCLASS_NONE or $65; // There was a network error - SIM_E_MOBILEERROR = MSE_ERRERRORCLASS_NONE or $66; // Mobile error - SIM_E_UNSUPPORTED = MSE_ERRERRORCLASS_NONE or $67; // The command is unsupported - SIM_E_BADPARAM = MSE_ERRERRORCLASS_NONE or $68; // Bad parameter - SIM_E_UNDETERMINED = MSE_ERRERRORCLASS_NONE or $69; // Undetermined error - SIM_E_RADIONOTPRESENT = MSE_ERRERRORCLASS_NONE or $6A; // The Radio is not present - SIM_E_RADIOOFF = MSE_ERRERRORCLASS_NONE or $6B; // The Radio is off - - // Callback | Various notifications that are passed to the callback - - SIM_NOTIFY_CARD_REMOVED = $100; // SIM card was removed; lpData is NULL - SIM_NOTIFY_FILE_REFRESH = $101; // Files on the SIM were refreshed; lpData points to a SIMFILEREFRESH structure - SIM_NOTIFY_MSG_STORED = $102; // A message was stored to the SIM; lpData points to a SIMMESSAGECHANGE structure - SIM_NOTIFY_MSG_DELETED = $103; // A message was removed from the SIM; lpData points to a SIMMESSAGECHANGE structure - SIM_NOTIFY_PBE_STORED = $104; // A phone book entry was stored to the SIM; lpData points to a SIMPBECHANGE structure - SIM_NOTIFY_PBE_DELETED = $105; // A phone book entry was removed from the SIM; lpData points to a SIMPBECHANGE structure - SIM_NOTIFY_MSG_RECEIVED = $106; // Class 2 SMS was sent directly to the SIM; lpData points to a SIMMESSAGECHANGE structure - SIM_NOTIFY_RADIOOFF = $107; // The Radio has been turned off but AT interpreter is still on; lpData is NULL - SIM_NOTIFY_RADIOON = $108; // The Radio is present and is now on; lpData is NULL - SIM_NOTIFY_RADIOPRESENT = $109; // A Radio Module/Driver has been installed; lpData is points to a DWORD which is 0 if the radio is OFF and 1 if the radio is ON - SIM_NOTIFY_RADIOREMOVED = $10A; // A Radio Module/Driver has been removed; lpData is NULL } - - // Parameter flags for SimInitialize - SIM_INIT_NONE = $00000000; // Do not send any notifications - SIM_INIT_SIMCARD_NOTIFICATIONS = $00000001; // Send SIM card related notifications - - // SIMPHONEBOOKENTRY - - SIM_PARAM_PBE_ADDRESS = $00000001; // lpszAddress field is valid - SIM_PARAM_PBE_ADDRESS_TYPE = $00000002; // dwAddressType field is valid - SIM_PARAM_PBE_NUMPLAN = $00000004; // dwNumPlan field is valid - SIM_PARAM_PBE_TEXT = $00000008; // lpszText field is valid - SIM_PARAM_PBE_ALL = $0000000f; // All fields are valid - - // SIMMESSAGE - - SIM_PARAM_MSG_ADDRESS = $00000001; // lpszAddress field is valid - SIM_PARAM_MSG_ADDRESS_TYPE = $00000002; // dwAddressType field is valid - SIM_PARAM_MSG_NUMPLAN = $00000004; // dwNumPlan field is valid - SIM_PARAM_MSG_RECEIVE_TIME = $00000008; // stReceiveTime field is valid - SIM_PARAM_MSG_HEADER = $00000010; // rgbHeader field is valid - SIM_PARAM_MSG_HEADER_LENGTH = $00000020; // cbHdrLength field is valid - SIM_PARAM_MSG_MESSAGE = $00000040; // lpszMessage field is valid - SIM_PARAM_MSG_ALL = $0000007f; // All fields are valid - - // SIMCAPS } - - SIM_PARAM_CAPS_PBSTORAGES = $00000001; // dwPBStorages field is valid - SIM_PARAM_CAPS_PBEMAXADDRESSLENGTH = $00000002; // dwPBEMaxAddressLength field is valid - SIM_PARAM_CAPS_PBEMAXTEXTLENGTH = $00000004; // dwPBEMaxTextLength field is valid - SIM_PARAM_CAPS_PBEMININDEX = $00000008; // dwMinPBIndex field is valid - SIM_PARAM_CAPS_PBEMAXINDEX = $00000010; // dwMaxPBIndex field is valid - SIM_PARAM_CAPS_LOCKFACILITIES = $00000020; // dwLockFacilities field is valid - SIM_PARAM_CAPS_LOCKINGPWDLENGTH = $00000040; // dwNumLockingPwdLengths and rgLockingPwdLengths fields are valid - SIM_PARAM_CAPS_READMSGSTORAGES = $00000080; // dwReadMsgStorages field is valid - SIM_PARAM_CAPS_WRITEMSGSTORAGES = $00000100; // dwWriteMsgStorages field is valid - SIM_PARAM_CAPS_ALL = $000001ff; // All fields are valid - - // SIMRECORDINFO - - SIM_PARAM_RECORDINFO_RECORDTYPE = $00000001; // dwRecordType field is valid - SIM_PARAM_RECORDINFO_ITEMCOUNT = $00000002; // dwItemCount field is valid - SIM_PARAM_RECORDINFO_SIZE = $00000004; // dwSize field is valid - SIM_PARAM_RECORDINFO_ALL = $00000007; // All fields are valid - - // SIMFILEREFRESH } - - SIM_PARAM_FILEREFRESH_FLAGS = $00000001; // dwFlags field is valid - SIM_PARAM_FILEREFRESH_FILECOUNT = $00000002; // dwFileCount field is valid - SIM_PARAM_FILEREFRESH_FILEARRAY = $00000004; // rgdwAddress field is valid - SIM_PARAM_FILEREFRESH_ALL = $00000007; // All fields are valid - - // Phonebook Storage | Phone book storage locations } - - SIM_PBSTORAGE_EMERGENCY = $00000001; // Emergency dial list - SIM_PBSTORAGE_FIXEDDIALING = $00000002; // SIM fixed dialing list - SIM_PBSTORAGE_LASTDIALING = $00000004; // SIM last dialing list - SIM_PBSTORAGE_OWNNUMBERS = $00000008; // SIM ownnumbers lists - SIM_PBSTORAGE_SIM = $00000010; // General SIM Storage - SIM_NUMPBSTORAGES = 5; // Number of phonebook storages - - // SIM DevCaps | Device Capabilities } - - SIM_CAPSTYPE_PBENTRYLENGTH = $00000001; // Phonebook entry lengths - SIM_CAPSTYPE_PBSTORELOCATIONS = $00000002; // Phonebook storage locations - SIM_CAPSTYPE_LOCKFACILITIES = $00000004; // Lock facilities - SIM_CAPSTYPE_PBINDEXRANGE = $00000008; // Valid phonebook entry indexes - SIM_CAPSTYPE_LOCKINGPWDLENGTHS = $00000010; // Locking password lengths - SIM_CAPSTYPE_MSGMEMORYLOCATIONS = $00000020; // Message memory locations - SIM_CAPSTYPE_ALL = $0000003F; // All of the above - - // SMS Storage | SMS storage locations } - - SIM_SMSSTORAGE_BROADCAST = $00000001; // Broadcast message storage location - SIM_SMSSTORAGE_SIM = $00000002; // SIM storage location - SIM_NUMSMSSTORAGES = 2; // Number of message storage locations - - // Address Type | Defines different address types } - - SIM_ADDRTYPE_UNKNOWN = $00000000; // Unknown - SIM_ADDRTYPE_INTERNATIONAL = $00000001; // International number - SIM_ADDRTYPE_NATIONAL = $00000002; // National number - SIM_ADDRTYPE_NETWKSPECIFIC = $00000003; // Network specific number - SIM_ADDRTYPE_SUBSCRIBER = $00000004; // Subscriber number (protocol-specific) - SIM_ADDRTYPE_ALPHANUM = $00000005; // Alphanumeric address - SIM_ADDRTYPE_ABBREV = $00000006; // Abbreviated number - - // Numbering Plan | Defines different numbering plans for SIM_ADDRTYPE_UNKNOWN, - // SIM_ADDRTYPE_INTERNATIONAL, and SIM_ADDRTYPE_NATIONAL - - SIM_NUMPLAN_UNKNOWN = $00000000; // Unknown - SIM_NUMPLAN_TELEPHONE = $00000001; // ISDN/telephone numbering plan (E.164/E.163) - SIM_NUMPLAN_DATA = $00000002; // Data numbering plan (X.121) - SIM_NUMPLAN_TELEX = $00000003; // Telex numbering plan - SIM_NUMPLAN_NATIONAL = $00000004; // National numbering plan - SIM_NUMPLAN_PRIVATE = $00000005; // Private numbering plan - SIM_NUMPLAN_ERMES = $00000006; // ERMES numbering plan (ETSI DE/PS 3 01-3) - - // Phone Locked | Indicates if the phone is currently locked (i.e. - // awaiting password) and what password to enter - - SIM_LOCKEDSTATE_UNKNOWN = $00000000; // Locking state is unknown - SIM_LOCKEDSTATE_READY = $00000001; // Not awaiting a password (unlocked) - SIM_LOCKEDSTATE_SIM_PIN = $00000002; // Awaiting the SIM PIN - SIM_LOCKEDSTATE_SIM_PUK = $00000003; // Awaiting the SIM PUK - SIM_LOCKEDSTATE_PH_SIM_PIN = $00000004; // Awaiting the Phone to SIM Personalization PIN - SIM_LOCKEDSTATE_PH_FSIM_PIN = $00000005; // Awaiting the Phone to first SIM Personalization PIN - SIM_LOCKEDSTATE_PH_FSIM_PUK = $00000006; // Awaiting the Phone to first SIM Personalization PUK - SIM_LOCKEDSTATE_SIM_PIN2 = $00000007; // Awaiting the SIM PIN2 - SIM_LOCKEDSTATE_SIM_PUK2 = $00000008; // Awaiting the SIM PUK2 - SIM_LOCKEDSTATE_PH_NET_PIN = $00000009; // Awaiting the Network Personalization PIN - SIM_LOCKEDSTATE_PH_NET_PUK = $0000000a; // Awaiting the Network Personalization PUK - SIM_LOCKEDSTATE_PH_NETSUB_PIN = $0000000b; // Awaiting the Network Subset Personalization PIN - SIM_LOCKEDSTATE_PH_NETSUB_PUK = $0000000c; // Awaiting the Network Subset Personalization PUK - SIM_LOCKEDSTATE_PH_SP_PIN = $0000000d; // Awaiting the Service Provider Personalization PIN - SIM_LOCKEDSTATE_PH_SP_PUK = $0000000e; // Awaiting the Service Provider Personalization PUK - SIM_LOCKEDSTATE_PH_CORP_PIN = $0000000f; // Awaiting the Corporate Personalization PIN - SIM_LOCKEDSTATE_PH_CORP_PUK = $00000010; // Awaiting the Corporate Personalization PUK - - // Phonebook Misc | Special phonebook constants } - - SIM_PBINDEX_FIRSTAVAILABLE = $ffffffff; // Use first phonebook storage entry available - - // Phone Locking | Indicates the phone's locking behavior } - - SIM_LOCKFACILITY_CNTRL = $00000001; // Lock control curface - SIM_LOCKFACILITY_PH_SIM = $00000002; // Lock phone to SIM card - SIM_LOCKFACILITY_PH_FSIM = $00000004; // Lock phone to first SIM card - SIM_LOCKFACILITY_SIM = $00000008; // Lock SIM card - SIM_LOCKFACILITY_SIM_PIN2 = $00000010; // Lock SIM card - SIM_LOCKFACILITY_SIM_FIXEDIALING = $00000020; // SIM fixed dialing memory - SIM_LOCKFACILITY_NETWORKPERS = $00000040; // Network personalization - SIM_LOCKFACILITY_NETWORKSUBPERS = $00000080; // Network subset personalization - SIM_LOCKFACILITY_SERVICEPROVPERS = $00000100; // Service provider personalization - SIM_LOCKFACILITY_CORPPERS = $00000200; // Corporate personalization - SIM_NUMLOCKFACILITIES = 10; // Number of locking facilities - - // SIM Record | Different SIM file types - SIM_RECORDTYPE_UNKNOWN = $00000000; // An unknown file type - SIM_RECORDTYPE_TRANSPARENT = $00000001; // A single veriable lengthed record - SIM_RECORDTYPE_CYCLIC = $00000002; // A cyclic set of records, each of the same length - SIM_RECORDTYPE_LINEAR = $00000003; // A linear set of records, each of the same length - SIM_RECORDTYPE_MASTER = $00000004; // Every SIM has a single master record, effectively the head node - SIM_RECORDTYPE_DEDICATED = $00000005; // Effectively a "directory" file which is a parent of other records - - // SIM Record Refresh | Different ways of being notified that SIM - // have been updated - SIMFILE_FULLFILECHANGE = $00000001; // All files have been changed - SIMFILE_FILECHANGE = $00000002; // Only a few files have been changed - SIMFILE_SIMINIT = $00000004; // SIM Initiailization - SIMFILE_SIMRESET = $00000008; // Reset the SIM - - // Max_Length | Maximum length constants } - MAX_LENGTH_ADDRESS = 256; // Maximum length of an address - MAX_LENGTH_PHONEBOOKENTRYTEXT = 256; // Maximum length of text in a phonebook entry - MAX_LENGTH_HEADER = 256; // Maximum length of a SMS header - MAX_LENGTH_MESSAGE = 256; // Maximum length of a SMS message - MAX_FILES = 32; // Maximum number of files in a file change list - -//***************************************************************************** -// types -//***************************************************************************** - -type - - // HSIM | Handle to a SIM } - - HSIM = HANDLE; - LPHSIM = ^HSIM; - - // SIMPHONEBOOKENTRY | A SIM phonebook entry - - simphonebookentry_tag = record - cbSize : DWORD; // Size of the structure in bytes - dwParams : DWORD; // Indicates valid parameter values - lpszAddress : array[0..(MAX_LENGTH_ADDRESS)-1] of TCHAR; // The actual phone number - dwAddressType : DWORD; // A SIM_ADDRTYPE_* constant - dwNumPlan : DWORD; // A SIM_NUMPLAN_* constant - lpszText : array[0..(MAX_LENGTH_PHONEBOOKENTRYTEXT)-1] of TCHAR; // Text assocaited with the entry - end; - TSIMPHONEBOOKENTRY = simphonebookentry_tag; - LPSIMPHONEBOOKENTRY = ^simphonebookentry_tag; - - // SIMMESSAGE | A SIM message entry - - simmessage_tag = record - cbSize : DWORD; // Size of the structure in bytes - dwParams : DWORD; // Indicates valid parameter values - lpszAddress : array[0..(MAX_LENGTH_ADDRESS)-1] of TCHAR; // The actual phone number - dwAddressType : DWORD; // A SIM_ADDRTYPE_* constant - dwNumPlan : DWORD; // A SIM_NUMPLAN_* constant - stReceiveTime : SYSTEMTIME; // Timestamp for the incoming message - cbHdrLength : DWORD; // Header length in bytes - rgbHeader : array[0..(MAX_LENGTH_HEADER)-1] of BYTE; // The actual header data - lpszMessage : array[0..(MAX_LENGTH_MESSAGE)-1] of TCHAR; // The actual message data - end; - TSIMMESSAGE = simmessage_tag; - LPSIMMESSAGE = ^simmessage_tag; - - // SIMLOCKINGPWDLENGTH | Minimum password length } - - simlockingpwdlength = record - dwFacility : DWORD; // The locking facility - dwPasswordLength : DWORD; // The minimum password length - end; - LPSIMLOCKINGPWDLENGTH = ^simlockingpwdlength; - - // SIMCAPS | Capabilities of the SIM - simcaps_tag = record - cbSize : DWORD; // Size of the structure in bytes - dwParams : DWORD; // Indicates valid parameter values - dwPBStorages : DWORD; // Supported phonebook storages - dwMinPBIndex : DWORD; // Minimum phonebook storages - dwMaxPBIndex : DWORD; // Maximum phonebook storages - dwMaxPBEAddressLength : DWORD; // Maximum address length of phonebook entries - dwMaxPBETextLength : DWORD; // Maximum text length of phonebook entries - dwLockFacilities : DWORD; // Supported locking facilities - dwReadMsgStorages : DWORD; // Supported read message stores - dwWriteMsgStorages : DWORD; // Supported write message stores - dwNumLockingPwdLengths : DWORD; // Number of entries in rgLockingPwdLengths - rgLockingPwdLengths : array[0..(SIM_NUMLOCKFACILITIES)-1] of SIMLOCKINGPWDLENGTH; // Password lengths for each facility - end; - TSIMCAPS = simcaps_tag; - LPSIMCAPS = ^simcaps_tag; - - // SIMRECORDINFO | Information about a particular SIM file - - simrecordinfo_tag = record - cbSize : DWORD; // Size of the structure in bytes - dwParams : DWORD; // Indicates valid parameter values - dwRecordType : DWORD; // SIM_RECORDTYPE_* Constant - dwItemCount : DWORD; // Number of items in the record - dwSize : DWORD; // Size in bytes of each item - end; - TSIMRECORDINFO = simrecordinfo_tag; - LPSIMRECORDINFO = ^simrecordinfo_tag; - - // SIMFILEREFRESH | Information about which file(s) have been updated - - simfilerefresh_tag = record - cbSize : DWORD; // Size of the structure in bytes - dwParams : DWORD; // Indicates valid parameter values - dwFlags : DWORD; // Combination of SIMFILE_* constants - dwFileCount : DWORD; // Number of files in the update list - rgdwAddress : array[0..(MAX_FILES)-1] of DWORD; // Array of files - end; - TSIMFILEREFRESH = simfilerefresh_tag; - LPSIMFILEREFRESH = ^simfilerefresh_tag; - - // SIMPBECHANGE | Information about which SIM Phonebook entries have changed - - simpbechange_tag = record - dwEntry : DWORD; // The index of the entry that has changed - dwStorage : DWORD; // SIM_PBSTORAGE_* constant detailing which phonebook this entry is in - end; - TSIMPBECHANGE = simpbechange_tag; - LPSIMPBECHANGE = ^simpbechange_tag; - - // SIMMESSAGECHANGE | Information about which SMS messages on the SIM have changed } - - simmessagechange_tag = record - dwEntry : DWORD; // The index of the entry that has changed - dwStorage : DWORD; // SIM_SMSSTORAGE_* constant details which storage location this entry is in - end; - TSIMMESSAGECHANGE = simmessagechange_tag; - LPSIMMESSAGECHANGE = ^simmessagechange_tag; - - // This is the callback function prototype used by SIM Manager when - // sending notifications. - // - - // Indicates type of notification received - // Points to data structure specific to the notification - // Size of data structure in bytes - // Parameter passed to simInititialize - TSIMCALLBACK = procedure (dwNotifyCode:DWORD; const pData:pointer; dwDataSize:DWORD; dwParam:DWORD); - -//***************************************************************************** -// functions -//***************************************************************************** - -// This function must be called by applications in order to use any of the -// functions in this API. -// Passing in a function callback is required only for applications that -// wish to obtain notifications. -// - -// Indicates which notifications to receive -// Function callback for notifications, may be NULL if notifications are not desired -// Parameter to pass on each notification function call, may be NULL -// Points to a HSIM handle to use on subsequent function calls -function SimInitialize(dwFlags:DWORD; lpfnCallBack:TSIMCALLBACK; dwParam:DWORD; lphSim:LPHSIM):HRESULT;external KernelDLL name 'SimInitialize'; - -// This function deinitializes an HSIM handle. -// - -// A valid HSIM handle to deinitialize -function SimDeinitialize(hSim:HSIM):HRESULT;external KernelDLL name 'SimDeinitialize'; - -// Gets the device capabilities of the SIM. -// - -// Points to a valid HSIM handle -// Which device capabilities are we interested in? -// Capabilities structure -function SimGetDevCaps(hSim:HSIM; dwCapsType:DWORD; lpSimCaps:LPSIMCAPS):HRESULT;external KernelDLL name 'SimGetDevCaps'; - -// Reads a phonebook entry off the SIM card. -// - -// Points to a valid HSIM handle -// A SIMPBSTORAGE_* Constant -// Index of the entry to retrieve -// Points to a phonebook entry structure -function SimReadPhonebookEntry(hSim:HSIM; dwLocation:DWORD; dwIndex:DWORD; lpPhonebookEntry:LPSIMPHONEBOOKENTRY):HRESULT;external KernelDLL name 'SimReadPhonebookEntry'; - -// Gets the status of a phonebook location. -// - -// Points to a valid HSIM handle -// A SIMPBSTORAGE_* Constant -// Nubmer of used locations -// Total number of locations -function SimGetPhonebookStatus(hSim:HSIM; dwLocation:DWORD; lpdwUsed:LPDWORD; lpdwTotal:LPDWORD):HRESULT;external KernelDLL name 'SimGetPhonebookStatus'; - -// Writes a phonebook entry to the SIM card. -// - -// Points to a valid HSIM handle -// A SIMPBSTORAGE_* Constant -// Index of the entry to retrieve (may be SIM_PBINDEX_FIRSTAVAILABLE) -// Points to a phonebook entry structure -function SimWritePhonebookEntry(hSim:HSIM; dwLocation:DWORD; dwIndex:DWORD; lpPhonebookEntry:LPSIMPHONEBOOKENTRY):HRESULT;external KernelDLL name 'SimWritePhonebookEntry'; - -// Deletes a phonebook entry from the SIM card. -// - -// Points to a valid HSIM handle -// A SIMPBSTORAGE_* Constant -// Index of the entry to retrieve -function SimDeletePhonebookEntry(hSim:HSIM; dwLocation:DWORD; dwIndex:DWORD):HRESULT;external KernelDLL name 'SimDeletePhonebookEntry'; - -// Checks if the SIM is currently awaiting a password. -// This is called when powering on the phone. -// - -// Points to a valid HSIM handle -// Points to a SIM_LOCKEDSTATE_* constant -function SimGetPhoneLockedState(hSim:HSIM; lpdwLockedState:LPDWORD):HRESULT;external KernelDLL name 'SimGetPhoneLockedState'; - -// Sends a password to unlock the phone. -// - -// Points to a valid HSIM handle -// Points to password string -// Some locked states require a second password (e.g. PUK requires a new PIN to replace the old, presumably forgotten PIN) -function SimUnlockPhone(hSim:HSIM; lpszPassword:LPTSTR; lpszNewPin:LPTSTR):HRESULT;external KernelDLL name 'SimUnlockPhone'; - -// Gets the locking status of the phone. -// - -// Points to a valid HSIM handle -// A SIMLOCKFACILITY_* constant -// Some facilities require a password -// Enabled or diabled -function SimGetLockingStatus(hSim:HSIM; dwLockingFacility:DWORD; lpszPassword:LPTSTR; var pfEnabled:BOOL):HRESULT;external KernelDLL name 'SimGetLockingStatus'; - -// Sets the locking status of the phone. -// - -// Points to a valid HSIM handle -// A SIMLOCKFACILITY_* constant -// Some facilities require a password -// Enable or diable -function SimSetLockingStatus(hSim:HSIM; dwLockingFacility:DWORD; lpszPassword:LPTSTR; fEnabled:BOOL):HRESULT;external KernelDLL name 'SimSetLockingStatus'; - -// Changes a locking password. -// - -// Points to a valid HSIM handle -// A SIMLOCKFACILITY_* constant -// The old password -// The new password -function SimChangeLockingPassword(hSim:HSIM; dwLockingFacility:DWORD; lpszOldPassword:LPTSTR; lpszNewPassword:LPTSTR):HRESULT;external KernelDLL name 'SimChangeLockingPassword'; - -// Gets the status of a SMS storage location. -// - -// Points to a valid HSIM handle -// A SIM_SMSSTORAGE_* constant -// Nubmer of used locations -// Total number of locations -function SimGetSmsStorageStatus(hSim:HSIM; dwStorage:DWORD; lpdwUsed:LPDWORD; lpdwTotal:LPDWORD):HRESULT;external KernelDLL name 'SimGetSmsStorageStatus'; - -// Reads an SMS from a particular storage location. -// - -// Points to a valid HSIM handle -// A SIM_SMSSTORAGE_* constant -// Index of the entry to retrieve -// Points to an SMS message structure -function SimReadMessage(hSim:HSIM; dwStorage:DWORD; dwIndex:DWORD; lpSimMessage:LPSIMMESSAGE):HRESULT;external KernelDLL name 'SimReadMessage'; - -// Writes an SMS to a particular storage location. -// Note that SMS messages are always written to the first available storage location -// - -// lpdwIndex will be set to the index to which the message was written -// Points to a valid HSIM handle -// A SIM_SMSSTORAGE_* constant -// Set to the index where the message was written -// Points to an SMS message structure -function SimWriteMessage(hSim:HSIM; dwStorage:DWORD; lpdwIndex:LPDWORD; lpSimMessage:LPSIMMESSAGE):HRESULT;external KernelDLL name 'SimWriteMessage'; - -// Deletes an SMS from a particular storage location. -// - -// Points to a valid HSIM handle -// A SIM_SMSSTORAGE_* constant -// Index of the entry to retrieve -function SimDeleteMessage(hSim:HSIM; dwStorage:DWORD; dwIndex:DWORD):HRESULT;external KernelDLL name 'SimDeleteMessage'; - -// Reads a file form the SIM. -// - -// Points to a valid HSIM handle -// SIM address -// A SIM_RECORDTYPE_* constant -// Applies only to SIM_RECORDTYPE_CYCLIC and SIM_RECORDTYPE_LINEAR, otherwise ignored -// Data buffer -// Size of data buffer -// Number of bytes read -function SimReadRecord(hSim:HSIM; dwAddress:DWORD; dwRecordType:DWORD; dwIndex:DWORD; - lpData: LPBYTE; dwBufferSize: DWORD; lpdwBytesRead: LPDWORD):HRESULT;external KernelDLL name 'SimReadRecord'; - -// Writes a file to the SIM. -// - -// Points to a valid HSIM handle -// SIM address -// A SIM_RECORDTYPE_* constant -// Applies only to SIM_RECORDTYPE_CYCLIC and SIM_RECORDTYPE_LINEAR, otherwise ignored -function SimWriteRecord(hSim:HSIM; dwAddress:DWORD; dwRecordType:DWORD; dwIndex:DWORD; - lpData: LPBYTE; dwByteCount: DWORD):HRESULT;external KernelDLL name 'SimWriteRecord'; - -// Gets information about a particular record. -// - -// Points to a valid HSIM handle -// SIM address -// Points to a SIM record information structure -function SimGetRecordInfo(hSim:HSIM; dwAddress:DWORD; lpSimRecordInfo:LPSIMRECORDINFO):HRESULT;external KernelDLL name 'SimGetRecordInfo'; - -{$endif read_interface} - -{$ifdef read_implementation} - -{$endif read_implementation} +{ + This file is part of the Free Pascal run time library. + Copyright (c) 2007 Free Pascal development team. + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} + +{ Declarations for tapi WinCE API, note than on WinCE simmgr functions originally + based in coredll.dll + + SIM Manager is an API set that allows access to information stored on the SIM Card + + This port based on Windows Mobile 5 Smartphone Edition SDK + contact S0vNark0m for more information snk_post@mail.ru (en, ru) +} + +{$ifdef read_interface} + +//***************************************************************************** +// consts +//***************************************************************************** + +const + SIM_ERRORCLASS_SIM = $02; // Problem with the SIM + SIM_ERRORCLASS_PASSWORD = $01; // Unspecified phone failure + SIM_ERRORCLASS_STORAGE = $03; // Error relating to storage + SIM_ERRORCLASS_NONE = $00; // Misc error + + FACILITY_SIM = $800; + + ERROR_BASE = Longword(SEVERITY_ERROR) shl 31 or Longword(FACILITY_SIM) shl 16; // C Macros conversion, internal def + + // Internal def = errclass shl 8 + MSE_ERRORCLASS_SIM = ERROR_BASE or Word(SIM_ERRORCLASS_SIM) shl 8; + MSE_ERRORCLASS_PASSWORD = ERROR_BASE or Word(SIM_ERRORCLASS_PASSWORD) shl 8; + MSE_ERRORCLASS_STORAGE = ERROR_BASE or Word(SIM_ERRORCLASS_STORAGE) shl 8; + MSE_ERRERRORCLASS_NONE = ERROR_BASE or Word(SIM_ERRORCLASS_NONE) shl 8; + + // Error | Various errors + SIM_E_SIMFAILURE = MSE_ERRORCLASS_SIM or $01; // SIM failure was detected + SIM_E_SIMBUSY = MSE_ERRORCLASS_SIM or $02; // SIM is busy + SIM_E_SIMWRONG = MSE_ERRORCLASS_SIM or $03; // Inorrect SIM was inserted + SIM_E_NOSIMMSGSTORAGE = MSE_ERRORCLASS_SIM or $04; // SIM isn't capable of storing messages + SIM_E_SIMTOOLKITBUSY = MSE_ERRORCLASS_SIM or $05; // SIM Application Toolkit is busy + SIM_E_SIMDOWNLOADERROR = MSE_ERRORCLASS_SIM or $06; // SIM data download error + SIM_E_SIMNOTINSERTED = MSE_ERRORCLASS_SIM or $07; // SIM isn't inserted into the phone + + SIM_E_PHSIMPINREQUIRED = MSE_ERRORCLASS_PASSWORD or $20; // PH-SIM PIN is required to perform this operation + SIM_E_PHFSIMPINREQUIRED = MSE_ERRORCLASS_PASSWORD or $21; // PH-FSIM PIN is required to perform this operation + SIM_E_PHFSIMPUKREQUIRED = MSE_ERRORCLASS_PASSWORD or $22; // PH-FSIM PUK is required to perform this operation + SIM_E_SIMPINREQUIRED = MSE_ERRORCLASS_PASSWORD or $23; // SIM PIN is required to perform this operation + SIM_E_SIMPUKREQUIRED = MSE_ERRORCLASS_PASSWORD or $24; // SIM PUK is required to perform this operation + SIM_E_INCORRECTPASSWORD = MSE_ERRORCLASS_PASSWORD or $25; // Incorrect password was supplied + SIM_E_SIMPIN2REQUIRED = MSE_ERRORCLASS_PASSWORD or $26; // SIM PIN2 is required to perform this operation + SIM_E_SIMPUK2REQUIRED = MSE_ERRORCLASS_PASSWORD or $27; // SIM PUK2 is required to perform this operation + SIM_E_NETWKPINREQUIRED = MSE_ERRORCLASS_PASSWORD or $28; // Network Personalization PIN is required to perform this operation + SIM_E_NETWKPUKREQUIRED = MSE_ERRORCLASS_PASSWORD or $29; // Network Personalization PUK is required to perform this operation + SIM_E_SUBSETPINREQUIRED = MSE_ERRORCLASS_PASSWORD or $2A; // Network Subset Personalization PIN is required to perform this operation + SIM_E_SUBSETPUKREQUIRED = MSE_ERRORCLASS_PASSWORD or $2B; // Network Subset Personalization PUK is required to perform this operation + SIM_E_SVCPINREQUIRED = MSE_ERRORCLASS_PASSWORD or $2C; // Service Provider Personalization PIN is required to perform this operation + SIM_E_SVCPUKREQUIRED = MSE_ERRORCLASS_PASSWORD or $2D; // Service Provider Personalization PUK is required to perform this operation + SIM_E_CORPPINREQUIRED = MSE_ERRORCLASS_PASSWORD or $2E; // Corporate Personalization PIN is required to perform this operation + SIM_E_CORPPUKREQUIRED = MSE_ERRORCLASS_PASSWORD or $2F; // Corporate Personalization PUK is required to perform this operation + + SIM_E_MEMORYFULL = MSE_ERRORCLASS_STORAGE or $40; // Storage memory is full + SIM_E_INVALIDINDEX = MSE_ERRORCLASS_STORAGE or $41; // Invalid storage index was supplied + SIM_E_NOTFOUND = MSE_ERRORCLASS_STORAGE or $42; // A requested storage entry was not found + SIM_E_MEMORYFAILURE = MSE_ERRORCLASS_STORAGE or $43; // Storage memory failure + SIM_E_SIMMSGSTORAGEFULL = MSE_ERRORCLASS_STORAGE or $44; // Message storage on the SIM is full + SIM_E_EMPTYINDEX = MSE_ERRORCLASS_STORAGE or $45; // Storage location is empty + + SIM_E_NOTREADY = MSE_ERRERRORCLASS_NONE or $60; // SIM isn't yet ready to perform the requested operation + SIM_E_SECURITYFAILURE = MSE_ERRERRORCLASS_NONE or $61; // SIM isn't yet ready to perform the requested operation + SIM_E_BUFFERTOOSMALL = MSE_ERRERRORCLASS_NONE or $62; // Buffer too small + SIM_E_NOTTEXTMESSAGE = MSE_ERRERRORCLASS_NONE or $63; // Requested SMS message is not a text message + SIM_E_NOSIM = MSE_ERRERRORCLASS_NONE or $64; // Device doesn't have a SIM + SIM_E_NETWORKERROR = MSE_ERRERRORCLASS_NONE or $65; // There was a network error + SIM_E_MOBILEERROR = MSE_ERRERRORCLASS_NONE or $66; // Mobile error + SIM_E_UNSUPPORTED = MSE_ERRERRORCLASS_NONE or $67; // The command is unsupported + SIM_E_BADPARAM = MSE_ERRERRORCLASS_NONE or $68; // Bad parameter + SIM_E_UNDETERMINED = MSE_ERRERRORCLASS_NONE or $69; // Undetermined error + SIM_E_RADIONOTPRESENT = MSE_ERRERRORCLASS_NONE or $6A; // The Radio is not present + SIM_E_RADIOOFF = MSE_ERRERRORCLASS_NONE or $6B; // The Radio is off + + // Callback | Various notifications that are passed to the callback + + SIM_NOTIFY_CARD_REMOVED = $100; // SIM card was removed; lpData is NULL + SIM_NOTIFY_FILE_REFRESH = $101; // Files on the SIM were refreshed; lpData points to a SIMFILEREFRESH structure + SIM_NOTIFY_MSG_STORED = $102; // A message was stored to the SIM; lpData points to a SIMMESSAGECHANGE structure + SIM_NOTIFY_MSG_DELETED = $103; // A message was removed from the SIM; lpData points to a SIMMESSAGECHANGE structure + SIM_NOTIFY_PBE_STORED = $104; // A phone book entry was stored to the SIM; lpData points to a SIMPBECHANGE structure + SIM_NOTIFY_PBE_DELETED = $105; // A phone book entry was removed from the SIM; lpData points to a SIMPBECHANGE structure + SIM_NOTIFY_MSG_RECEIVED = $106; // Class 2 SMS was sent directly to the SIM; lpData points to a SIMMESSAGECHANGE structure + SIM_NOTIFY_RADIOOFF = $107; // The Radio has been turned off but AT interpreter is still on; lpData is NULL + SIM_NOTIFY_RADIOON = $108; // The Radio is present and is now on; lpData is NULL + SIM_NOTIFY_RADIOPRESENT = $109; // A Radio Module/Driver has been installed; lpData is points to a DWORD which is 0 if the radio is OFF and 1 if the radio is ON + SIM_NOTIFY_RADIOREMOVED = $10A; // A Radio Module/Driver has been removed; lpData is NULL } + + // Parameter flags for SimInitialize + SIM_INIT_NONE = $00000000; // Do not send any notifications + SIM_INIT_SIMCARD_NOTIFICATIONS = $00000001; // Send SIM card related notifications + + // SIMPHONEBOOKENTRY + + SIM_PARAM_PBE_ADDRESS = $00000001; // lpszAddress field is valid + SIM_PARAM_PBE_ADDRESS_TYPE = $00000002; // dwAddressType field is valid + SIM_PARAM_PBE_NUMPLAN = $00000004; // dwNumPlan field is valid + SIM_PARAM_PBE_TEXT = $00000008; // lpszText field is valid + SIM_PARAM_PBE_ALL = $0000000f; // All fields are valid + + // SIMMESSAGE + + SIM_PARAM_MSG_ADDRESS = $00000001; // lpszAddress field is valid + SIM_PARAM_MSG_ADDRESS_TYPE = $00000002; // dwAddressType field is valid + SIM_PARAM_MSG_NUMPLAN = $00000004; // dwNumPlan field is valid + SIM_PARAM_MSG_RECEIVE_TIME = $00000008; // stReceiveTime field is valid + SIM_PARAM_MSG_HEADER = $00000010; // rgbHeader field is valid + SIM_PARAM_MSG_HEADER_LENGTH = $00000020; // cbHdrLength field is valid + SIM_PARAM_MSG_MESSAGE = $00000040; // lpszMessage field is valid + SIM_PARAM_MSG_ALL = $0000007f; // All fields are valid + + // SIMCAPS } + + SIM_PARAM_CAPS_PBSTORAGES = $00000001; // dwPBStorages field is valid + SIM_PARAM_CAPS_PBEMAXADDRESSLENGTH = $00000002; // dwPBEMaxAddressLength field is valid + SIM_PARAM_CAPS_PBEMAXTEXTLENGTH = $00000004; // dwPBEMaxTextLength field is valid + SIM_PARAM_CAPS_PBEMININDEX = $00000008; // dwMinPBIndex field is valid + SIM_PARAM_CAPS_PBEMAXINDEX = $00000010; // dwMaxPBIndex field is valid + SIM_PARAM_CAPS_LOCKFACILITIES = $00000020; // dwLockFacilities field is valid + SIM_PARAM_CAPS_LOCKINGPWDLENGTH = $00000040; // dwNumLockingPwdLengths and rgLockingPwdLengths fields are valid + SIM_PARAM_CAPS_READMSGSTORAGES = $00000080; // dwReadMsgStorages field is valid + SIM_PARAM_CAPS_WRITEMSGSTORAGES = $00000100; // dwWriteMsgStorages field is valid + SIM_PARAM_CAPS_ALL = $000001ff; // All fields are valid + + // SIMRECORDINFO + + SIM_PARAM_RECORDINFO_RECORDTYPE = $00000001; // dwRecordType field is valid + SIM_PARAM_RECORDINFO_ITEMCOUNT = $00000002; // dwItemCount field is valid + SIM_PARAM_RECORDINFO_SIZE = $00000004; // dwSize field is valid + SIM_PARAM_RECORDINFO_ALL = $00000007; // All fields are valid + + // SIMFILEREFRESH } + + SIM_PARAM_FILEREFRESH_FLAGS = $00000001; // dwFlags field is valid + SIM_PARAM_FILEREFRESH_FILECOUNT = $00000002; // dwFileCount field is valid + SIM_PARAM_FILEREFRESH_FILEARRAY = $00000004; // rgdwAddress field is valid + SIM_PARAM_FILEREFRESH_ALL = $00000007; // All fields are valid + + // Phonebook Storage | Phone book storage locations } + + SIM_PBSTORAGE_EMERGENCY = $00000001; // Emergency dial list + SIM_PBSTORAGE_FIXEDDIALING = $00000002; // SIM fixed dialing list + SIM_PBSTORAGE_LASTDIALING = $00000004; // SIM last dialing list + SIM_PBSTORAGE_OWNNUMBERS = $00000008; // SIM ownnumbers lists + SIM_PBSTORAGE_SIM = $00000010; // General SIM Storage + SIM_NUMPBSTORAGES = 5; // Number of phonebook storages + + // SIM DevCaps | Device Capabilities } + + SIM_CAPSTYPE_PBENTRYLENGTH = $00000001; // Phonebook entry lengths + SIM_CAPSTYPE_PBSTORELOCATIONS = $00000002; // Phonebook storage locations + SIM_CAPSTYPE_LOCKFACILITIES = $00000004; // Lock facilities + SIM_CAPSTYPE_PBINDEXRANGE = $00000008; // Valid phonebook entry indexes + SIM_CAPSTYPE_LOCKINGPWDLENGTHS = $00000010; // Locking password lengths + SIM_CAPSTYPE_MSGMEMORYLOCATIONS = $00000020; // Message memory locations + SIM_CAPSTYPE_ALL = $0000003F; // All of the above + + // SMS Storage | SMS storage locations } + + SIM_SMSSTORAGE_BROADCAST = $00000001; // Broadcast message storage location + SIM_SMSSTORAGE_SIM = $00000002; // SIM storage location + SIM_NUMSMSSTORAGES = 2; // Number of message storage locations + + // Address Type | Defines different address types } + + SIM_ADDRTYPE_UNKNOWN = $00000000; // Unknown + SIM_ADDRTYPE_INTERNATIONAL = $00000001; // International number + SIM_ADDRTYPE_NATIONAL = $00000002; // National number + SIM_ADDRTYPE_NETWKSPECIFIC = $00000003; // Network specific number + SIM_ADDRTYPE_SUBSCRIBER = $00000004; // Subscriber number (protocol-specific) + SIM_ADDRTYPE_ALPHANUM = $00000005; // Alphanumeric address + SIM_ADDRTYPE_ABBREV = $00000006; // Abbreviated number + + // Numbering Plan | Defines different numbering plans for SIM_ADDRTYPE_UNKNOWN, + // SIM_ADDRTYPE_INTERNATIONAL, and SIM_ADDRTYPE_NATIONAL + + SIM_NUMPLAN_UNKNOWN = $00000000; // Unknown + SIM_NUMPLAN_TELEPHONE = $00000001; // ISDN/telephone numbering plan (E.164/E.163) + SIM_NUMPLAN_DATA = $00000002; // Data numbering plan (X.121) + SIM_NUMPLAN_TELEX = $00000003; // Telex numbering plan + SIM_NUMPLAN_NATIONAL = $00000004; // National numbering plan + SIM_NUMPLAN_PRIVATE = $00000005; // Private numbering plan + SIM_NUMPLAN_ERMES = $00000006; // ERMES numbering plan (ETSI DE/PS 3 01-3) + + // Phone Locked | Indicates if the phone is currently locked (i.e. + // awaiting password) and what password to enter + + SIM_LOCKEDSTATE_UNKNOWN = $00000000; // Locking state is unknown + SIM_LOCKEDSTATE_READY = $00000001; // Not awaiting a password (unlocked) + SIM_LOCKEDSTATE_SIM_PIN = $00000002; // Awaiting the SIM PIN + SIM_LOCKEDSTATE_SIM_PUK = $00000003; // Awaiting the SIM PUK + SIM_LOCKEDSTATE_PH_SIM_PIN = $00000004; // Awaiting the Phone to SIM Personalization PIN + SIM_LOCKEDSTATE_PH_FSIM_PIN = $00000005; // Awaiting the Phone to first SIM Personalization PIN + SIM_LOCKEDSTATE_PH_FSIM_PUK = $00000006; // Awaiting the Phone to first SIM Personalization PUK + SIM_LOCKEDSTATE_SIM_PIN2 = $00000007; // Awaiting the SIM PIN2 + SIM_LOCKEDSTATE_SIM_PUK2 = $00000008; // Awaiting the SIM PUK2 + SIM_LOCKEDSTATE_PH_NET_PIN = $00000009; // Awaiting the Network Personalization PIN + SIM_LOCKEDSTATE_PH_NET_PUK = $0000000a; // Awaiting the Network Personalization PUK + SIM_LOCKEDSTATE_PH_NETSUB_PIN = $0000000b; // Awaiting the Network Subset Personalization PIN + SIM_LOCKEDSTATE_PH_NETSUB_PUK = $0000000c; // Awaiting the Network Subset Personalization PUK + SIM_LOCKEDSTATE_PH_SP_PIN = $0000000d; // Awaiting the Service Provider Personalization PIN + SIM_LOCKEDSTATE_PH_SP_PUK = $0000000e; // Awaiting the Service Provider Personalization PUK + SIM_LOCKEDSTATE_PH_CORP_PIN = $0000000f; // Awaiting the Corporate Personalization PIN + SIM_LOCKEDSTATE_PH_CORP_PUK = $00000010; // Awaiting the Corporate Personalization PUK + + // Phonebook Misc | Special phonebook constants } + + SIM_PBINDEX_FIRSTAVAILABLE = $ffffffff; // Use first phonebook storage entry available + + // Phone Locking | Indicates the phone's locking behavior } + + SIM_LOCKFACILITY_CNTRL = $00000001; // Lock control curface + SIM_LOCKFACILITY_PH_SIM = $00000002; // Lock phone to SIM card + SIM_LOCKFACILITY_PH_FSIM = $00000004; // Lock phone to first SIM card + SIM_LOCKFACILITY_SIM = $00000008; // Lock SIM card + SIM_LOCKFACILITY_SIM_PIN2 = $00000010; // Lock SIM card + SIM_LOCKFACILITY_SIM_FIXEDIALING = $00000020; // SIM fixed dialing memory + SIM_LOCKFACILITY_NETWORKPERS = $00000040; // Network personalization + SIM_LOCKFACILITY_NETWORKSUBPERS = $00000080; // Network subset personalization + SIM_LOCKFACILITY_SERVICEPROVPERS = $00000100; // Service provider personalization + SIM_LOCKFACILITY_CORPPERS = $00000200; // Corporate personalization + SIM_NUMLOCKFACILITIES = 10; // Number of locking facilities + + // SIM Record | Different SIM file types + SIM_RECORDTYPE_UNKNOWN = $00000000; // An unknown file type + SIM_RECORDTYPE_TRANSPARENT = $00000001; // A single veriable lengthed record + SIM_RECORDTYPE_CYCLIC = $00000002; // A cyclic set of records, each of the same length + SIM_RECORDTYPE_LINEAR = $00000003; // A linear set of records, each of the same length + SIM_RECORDTYPE_MASTER = $00000004; // Every SIM has a single master record, effectively the head node + SIM_RECORDTYPE_DEDICATED = $00000005; // Effectively a "directory" file which is a parent of other records + + // SIM Record Refresh | Different ways of being notified that SIM + // have been updated + SIMFILE_FULLFILECHANGE = $00000001; // All files have been changed + SIMFILE_FILECHANGE = $00000002; // Only a few files have been changed + SIMFILE_SIMINIT = $00000004; // SIM Initiailization + SIMFILE_SIMRESET = $00000008; // Reset the SIM + + // Max_Length | Maximum length constants } + MAX_LENGTH_ADDRESS = 256; // Maximum length of an address + MAX_LENGTH_PHONEBOOKENTRYTEXT = 256; // Maximum length of text in a phonebook entry + MAX_LENGTH_HEADER = 256; // Maximum length of a SMS header + MAX_LENGTH_MESSAGE = 256; // Maximum length of a SMS message + MAX_FILES = 32; // Maximum number of files in a file change list + +//***************************************************************************** +// types +//***************************************************************************** + +type + + // HSIM | Handle to a SIM } + + HSIM = HANDLE; + LPHSIM = ^HSIM; + + // SIMPHONEBOOKENTRY | A SIM phonebook entry + + simphonebookentry_tag = record + cbSize : DWORD; // Size of the structure in bytes + dwParams : DWORD; // Indicates valid parameter values + lpszAddress : array[0..(MAX_LENGTH_ADDRESS)-1] of TCHAR; // The actual phone number + dwAddressType : DWORD; // A SIM_ADDRTYPE_* constant + dwNumPlan : DWORD; // A SIM_NUMPLAN_* constant + lpszText : array[0..(MAX_LENGTH_PHONEBOOKENTRYTEXT)-1] of TCHAR; // Text assocaited with the entry + end; + TSIMPHONEBOOKENTRY = simphonebookentry_tag; + LPSIMPHONEBOOKENTRY = ^simphonebookentry_tag; + + // SIMMESSAGE | A SIM message entry + + simmessage_tag = record + cbSize : DWORD; // Size of the structure in bytes + dwParams : DWORD; // Indicates valid parameter values + lpszAddress : array[0..(MAX_LENGTH_ADDRESS)-1] of TCHAR; // The actual phone number + dwAddressType : DWORD; // A SIM_ADDRTYPE_* constant + dwNumPlan : DWORD; // A SIM_NUMPLAN_* constant + stReceiveTime : SYSTEMTIME; // Timestamp for the incoming message + cbHdrLength : DWORD; // Header length in bytes + rgbHeader : array[0..(MAX_LENGTH_HEADER)-1] of BYTE; // The actual header data + lpszMessage : array[0..(MAX_LENGTH_MESSAGE)-1] of TCHAR; // The actual message data + end; + TSIMMESSAGE = simmessage_tag; + LPSIMMESSAGE = ^simmessage_tag; + + // SIMLOCKINGPWDLENGTH | Minimum password length } + + simlockingpwdlength = record + dwFacility : DWORD; // The locking facility + dwPasswordLength : DWORD; // The minimum password length + end; + LPSIMLOCKINGPWDLENGTH = ^simlockingpwdlength; + + // SIMCAPS | Capabilities of the SIM + simcaps_tag = record + cbSize : DWORD; // Size of the structure in bytes + dwParams : DWORD; // Indicates valid parameter values + dwPBStorages : DWORD; // Supported phonebook storages + dwMinPBIndex : DWORD; // Minimum phonebook storages + dwMaxPBIndex : DWORD; // Maximum phonebook storages + dwMaxPBEAddressLength : DWORD; // Maximum address length of phonebook entries + dwMaxPBETextLength : DWORD; // Maximum text length of phonebook entries + dwLockFacilities : DWORD; // Supported locking facilities + dwReadMsgStorages : DWORD; // Supported read message stores + dwWriteMsgStorages : DWORD; // Supported write message stores + dwNumLockingPwdLengths : DWORD; // Number of entries in rgLockingPwdLengths + rgLockingPwdLengths : array[0..(SIM_NUMLOCKFACILITIES)-1] of SIMLOCKINGPWDLENGTH; // Password lengths for each facility + end; + TSIMCAPS = simcaps_tag; + LPSIMCAPS = ^simcaps_tag; + + // SIMRECORDINFO | Information about a particular SIM file + + simrecordinfo_tag = record + cbSize : DWORD; // Size of the structure in bytes + dwParams : DWORD; // Indicates valid parameter values + dwRecordType : DWORD; // SIM_RECORDTYPE_* Constant + dwItemCount : DWORD; // Number of items in the record + dwSize : DWORD; // Size in bytes of each item + end; + TSIMRECORDINFO = simrecordinfo_tag; + LPSIMRECORDINFO = ^simrecordinfo_tag; + + // SIMFILEREFRESH | Information about which file(s) have been updated + + simfilerefresh_tag = record + cbSize : DWORD; // Size of the structure in bytes + dwParams : DWORD; // Indicates valid parameter values + dwFlags : DWORD; // Combination of SIMFILE_* constants + dwFileCount : DWORD; // Number of files in the update list + rgdwAddress : array[0..(MAX_FILES)-1] of DWORD; // Array of files + end; + TSIMFILEREFRESH = simfilerefresh_tag; + LPSIMFILEREFRESH = ^simfilerefresh_tag; + + // SIMPBECHANGE | Information about which SIM Phonebook entries have changed + + simpbechange_tag = record + dwEntry : DWORD; // The index of the entry that has changed + dwStorage : DWORD; // SIM_PBSTORAGE_* constant detailing which phonebook this entry is in + end; + TSIMPBECHANGE = simpbechange_tag; + LPSIMPBECHANGE = ^simpbechange_tag; + + // SIMMESSAGECHANGE | Information about which SMS messages on the SIM have changed } + + simmessagechange_tag = record + dwEntry : DWORD; // The index of the entry that has changed + dwStorage : DWORD; // SIM_SMSSTORAGE_* constant details which storage location this entry is in + end; + TSIMMESSAGECHANGE = simmessagechange_tag; + LPSIMMESSAGECHANGE = ^simmessagechange_tag; + + // This is the callback function prototype used by SIM Manager when + // sending notifications. + // - + // Indicates type of notification received + // Points to data structure specific to the notification + // Size of data structure in bytes + // Parameter passed to simInititialize + TSIMCALLBACK = procedure (dwNotifyCode:DWORD; const pData:pointer; dwDataSize:DWORD; dwParam:DWORD); + +//***************************************************************************** +// functions +//***************************************************************************** + +// This function must be called by applications in order to use any of the +// functions in this API. +// Passing in a function callback is required only for applications that +// wish to obtain notifications. +// - +// Indicates which notifications to receive +// Function callback for notifications, may be NULL if notifications are not desired +// Parameter to pass on each notification function call, may be NULL +// Points to a HSIM handle to use on subsequent function calls +function SimInitialize(dwFlags:DWORD; lpfnCallBack:TSIMCALLBACK; dwParam:DWORD; lphSim:LPHSIM):HRESULT;external KernelDLL name 'SimInitialize'; + +// This function deinitializes an HSIM handle. +// - +// A valid HSIM handle to deinitialize +function SimDeinitialize(hSim:HSIM):HRESULT;external KernelDLL name 'SimDeinitialize'; + +// Gets the device capabilities of the SIM. +// - +// Points to a valid HSIM handle +// Which device capabilities are we interested in? +// Capabilities structure +function SimGetDevCaps(hSim:HSIM; dwCapsType:DWORD; lpSimCaps:LPSIMCAPS):HRESULT;external KernelDLL name 'SimGetDevCaps'; + +// Reads a phonebook entry off the SIM card. +// - +// Points to a valid HSIM handle +// A SIMPBSTORAGE_* Constant +// Index of the entry to retrieve +// Points to a phonebook entry structure +function SimReadPhonebookEntry(hSim:HSIM; dwLocation:DWORD; dwIndex:DWORD; lpPhonebookEntry:LPSIMPHONEBOOKENTRY):HRESULT;external KernelDLL name 'SimReadPhonebookEntry'; + +// Gets the status of a phonebook location. +// - +// Points to a valid HSIM handle +// A SIMPBSTORAGE_* Constant +// Nubmer of used locations +// Total number of locations +function SimGetPhonebookStatus(hSim:HSIM; dwLocation:DWORD; lpdwUsed:LPDWORD; lpdwTotal:LPDWORD):HRESULT;external KernelDLL name 'SimGetPhonebookStatus'; + +// Writes a phonebook entry to the SIM card. +// - +// Points to a valid HSIM handle +// A SIMPBSTORAGE_* Constant +// Index of the entry to retrieve (may be SIM_PBINDEX_FIRSTAVAILABLE) +// Points to a phonebook entry structure +function SimWritePhonebookEntry(hSim:HSIM; dwLocation:DWORD; dwIndex:DWORD; lpPhonebookEntry:LPSIMPHONEBOOKENTRY):HRESULT;external KernelDLL name 'SimWritePhonebookEntry'; + +// Deletes a phonebook entry from the SIM card. +// - +// Points to a valid HSIM handle +// A SIMPBSTORAGE_* Constant +// Index of the entry to retrieve +function SimDeletePhonebookEntry(hSim:HSIM; dwLocation:DWORD; dwIndex:DWORD):HRESULT;external KernelDLL name 'SimDeletePhonebookEntry'; + +// Checks if the SIM is currently awaiting a password. +// This is called when powering on the phone. +// - +// Points to a valid HSIM handle +// Points to a SIM_LOCKEDSTATE_* constant +function SimGetPhoneLockedState(hSim:HSIM; lpdwLockedState:LPDWORD):HRESULT;external KernelDLL name 'SimGetPhoneLockedState'; + +// Sends a password to unlock the phone. +// - +// Points to a valid HSIM handle +// Points to password string +// Some locked states require a second password (e.g. PUK requires a new PIN to replace the old, presumably forgotten PIN) +function SimUnlockPhone(hSim:HSIM; lpszPassword:LPTSTR; lpszNewPin:LPTSTR):HRESULT;external KernelDLL name 'SimUnlockPhone'; + +// Gets the locking status of the phone. +// - +// Points to a valid HSIM handle +// A SIMLOCKFACILITY_* constant +// Some facilities require a password +// Enabled or diabled +function SimGetLockingStatus(hSim:HSIM; dwLockingFacility:DWORD; lpszPassword:LPTSTR; var pfEnabled:BOOL):HRESULT;external KernelDLL name 'SimGetLockingStatus'; + +// Sets the locking status of the phone. +// - +// Points to a valid HSIM handle +// A SIMLOCKFACILITY_* constant +// Some facilities require a password +// Enable or diable +function SimSetLockingStatus(hSim:HSIM; dwLockingFacility:DWORD; lpszPassword:LPTSTR; fEnabled:BOOL):HRESULT;external KernelDLL name 'SimSetLockingStatus'; + +// Changes a locking password. +// - +// Points to a valid HSIM handle +// A SIMLOCKFACILITY_* constant +// The old password +// The new password +function SimChangeLockingPassword(hSim:HSIM; dwLockingFacility:DWORD; lpszOldPassword:LPTSTR; lpszNewPassword:LPTSTR):HRESULT;external KernelDLL name 'SimChangeLockingPassword'; + +// Gets the status of a SMS storage location. +// - +// Points to a valid HSIM handle +// A SIM_SMSSTORAGE_* constant +// Nubmer of used locations +// Total number of locations +function SimGetSmsStorageStatus(hSim:HSIM; dwStorage:DWORD; lpdwUsed:LPDWORD; lpdwTotal:LPDWORD):HRESULT;external KernelDLL name 'SimGetSmsStorageStatus'; + +// Reads an SMS from a particular storage location. +// - +// Points to a valid HSIM handle +// A SIM_SMSSTORAGE_* constant +// Index of the entry to retrieve +// Points to an SMS message structure +function SimReadMessage(hSim:HSIM; dwStorage:DWORD; dwIndex:DWORD; lpSimMessage:LPSIMMESSAGE):HRESULT;external KernelDLL name 'SimReadMessage'; + +// Writes an SMS to a particular storage location. +// Note that SMS messages are always written to the first available storage location +// - +// lpdwIndex will be set to the index to which the message was written +// Points to a valid HSIM handle +// A SIM_SMSSTORAGE_* constant +// Set to the index where the message was written +// Points to an SMS message structure +function SimWriteMessage(hSim:HSIM; dwStorage:DWORD; lpdwIndex:LPDWORD; lpSimMessage:LPSIMMESSAGE):HRESULT;external KernelDLL name 'SimWriteMessage'; + +// Deletes an SMS from a particular storage location. +// - +// Points to a valid HSIM handle +// A SIM_SMSSTORAGE_* constant +// Index of the entry to retrieve +function SimDeleteMessage(hSim:HSIM; dwStorage:DWORD; dwIndex:DWORD):HRESULT;external KernelDLL name 'SimDeleteMessage'; + +// Reads a file form the SIM. +// - +// Points to a valid HSIM handle +// SIM address +// A SIM_RECORDTYPE_* constant +// Applies only to SIM_RECORDTYPE_CYCLIC and SIM_RECORDTYPE_LINEAR, otherwise ignored +// Data buffer +// Size of data buffer +// Number of bytes read +function SimReadRecord(hSim:HSIM; dwAddress:DWORD; dwRecordType:DWORD; dwIndex:DWORD; + lpData: LPBYTE; dwBufferSize: DWORD; lpdwBytesRead: LPDWORD):HRESULT;external KernelDLL name 'SimReadRecord'; + +// Writes a file to the SIM. +// - +// Points to a valid HSIM handle +// SIM address +// A SIM_RECORDTYPE_* constant +// Applies only to SIM_RECORDTYPE_CYCLIC and SIM_RECORDTYPE_LINEAR, otherwise ignored +function SimWriteRecord(hSim:HSIM; dwAddress:DWORD; dwRecordType:DWORD; dwIndex:DWORD; + lpData: LPBYTE; dwByteCount: DWORD):HRESULT;external KernelDLL name 'SimWriteRecord'; + +// Gets information about a particular record. +// - +// Points to a valid HSIM handle +// SIM address +// Points to a SIM record information structure +function SimGetRecordInfo(hSim:HSIM; dwAddress:DWORD; lpSimRecordInfo:LPSIMRECORDINFO):HRESULT;external KernelDLL name 'SimGetRecordInfo'; + +{$endif read_interface} + +{$ifdef read_implementation} + +{$endif read_implementation} diff --git a/rtl/wince/wininc/struct.inc b/rtl/wince/wininc/struct.inc index d4613172de..ae3dbdd531 100644 --- a/rtl/wince/wininc/struct.inc +++ b/rtl/wince/wininc/struct.inc @@ -1,8092 +1,8092 @@ -{ - This file is part of the Free Pascal run time library. - This unit contains the record definition for the Win32 API - Copyright (c) 1999-2000 by Florian KLaempfl, - member of the Free Pascal development team. - - See the file COPYING.FPC, included in this distribution, - for details about the copyright. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - - **********************************************************************} - -{ - Structures.h - - Declarations for all the Windows32 API Structures - - Copyright (C) 1996 Free Software Foundation, Inc. - - Author: Scott Christley - Date: 1996 - - This file is part of the Windows32 API Library. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - If you are interested in a warranty or support for this source code, - contact Scott Christley for more information. - - You should have received a copy of the GNU Library General Public - License along with this library; see the file COPYING.LIB. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - - - Changes : - - 22/15/2005 update for wince4.2 port, orinaudo@gmail.com - -} - -{$ifdef read_interface} - - type - - { WARNING - the variable argument list - is not implemented for FPC - va_list is just a dummy record - MvdV: Nevertheless it should be a pointer type, not a record} - - va_list = pchar; - - ABC = record - abcA : longint; - abcB : UINT; - abcC : longint; - end; - LPABC = ^ABC; - _ABC = ABC; - TABC = ABC; - PABC = ^ABC; - - ABCFLOAT = record - abcfA : Single; - abcfB : Single; - abcfC : Single; - end; - LPABCFLOAT = ^ABCFLOAT; - _ABCFLOAT = ABCFLOAT; - TABCFLOAT = ABCFLOAT; - PABCFLOAT = ^ABCFLOAT; - - ACCEL = record - fVirt : BYTE; - key : WORD; - cmd : WORD; - end; - LPACCEL = ^ACCEL; - _ACCEL = ACCEL; - TACCEL = ACCEL; - PACCEL = ^ACCEL; - - // - // The structure of an ACE is a common ace header followed by ace type - // specific data. Pictorally the structure of the common ace header is - // as follows: - // - // 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 - // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 - // +---------------+-------+-------+---------------+---------------+ - // | AceSize | AceFlags | AceType | - // +---------------+-------+-------+---------------+---------------+ - // - // AceType denotes the type of the ace, there are some predefined ace - // types - // - // AceSize is the size, in bytes, of ace. - // - // AceFlags are the Ace flags for audit and inheritance, defined shortly. - - ACE_HEADER = record //winnt - AceType : BYTE; - AceFlags : BYTE; - AceSize : WORD; - end; - _ACE_HEADER = ACE_HEADER; - TACE_HEADER = ACE_HEADER; - PACE_HEADER = ^ACE_HEADER; - - ACCESS_MASK = DWORD; //winnt - PACCESS_MASK = ^ACCESS_MASK; //+winnt - - REGSAM = ACCESS_MASK; - - ACCESS_ALLOWED_ACE = record - Header : ACE_HEADER; - Mask : ACCESS_MASK; - SidStart : DWORD; - end; - _ACCESS_ALLOWED_ACE = ACCESS_ALLOWED_ACE; - TACCESS_ALLOWED_ACE = ACCESS_ALLOWED_ACE; - PACCESS_ALLOWED_ACE = ^ACCESS_ALLOWED_ACE; - - ACCESS_DENIED_ACE = record - Header : ACE_HEADER; - Mask : ACCESS_MASK; - SidStart : DWORD; - end; - _ACCESS_DENIED_ACE = ACCESS_DENIED_ACE; - TACCESS_DENIED_ACE = ACCESS_DENIED_ACE; - - ACCESSTIMEOUT = record - cbSize : UINT; - dwFlags : DWORD; - iTimeOutMSec : DWORD; - end; - _ACCESSTIMEOUT = ACCESSTIMEOUT; - TACCESSTIMEOUT = ACCESSTIMEOUT; - PACCESSTIMEOUT = ^ACCESSTIMEOUT; - - PACCESS_TOKEN = PVOID; //+winnt - - //////////////////////////////////////////////////////////////////////// - // // - // ACL and ACE // - // // - //////////////////////////////////////////////////////////////////////// - - // - // Define an ACL and the ACE format. The structure of an ACL header - // followed by one or more ACEs. Pictorally the structure of an ACL header - // is as follows: - // - // 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 - // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 - // +-------------------------------+---------------+---------------+ - // | AclSize | Sbz1 | AclRevision | - // +-------------------------------+---------------+---------------+ - // | Sbz2 | AceCount | - // +-------------------------------+-------------------------------+ - // - // The current AclRevision is defined to be ACL_REVISION. - // - // AclSize is the size, in bytes, allocated for the ACL. This includes - // the ACL header, ACES, and remaining free space in the buffer. - // - // AceCount is the number of ACES in the ACL. - // - - ACL = record //winnt - AclRevision : BYTE; - Sbz1 : BYTE; - AclSize : WORD; - AceCount : WORD; - Sbz2 : WORD; - end; - PACL = ^ACL; - _ACL = ACL; - TACL = ACL; - - ACL_REVISION_INFORMATION = record - AclRevision : DWORD; - end; - _ACL_REVISION_INFORMATION = ACL_REVISION_INFORMATION; - TACLREVISIONINFORMATION = ACL_REVISION_INFORMATION; - PACLREVISIONINFORMATION = ^ACL_REVISION_INFORMATION; - - ACL_SIZE_INFORMATION = record - AceCount : DWORD; - AclBytesInUse : DWORD; - AclBytesFree : DWORD; - end; - _ACL_SIZE_INFORMATION = ACL_SIZE_INFORMATION; - TACLSIZEINFORMATION = ACL_SIZE_INFORMATION; - PACLSIZEINFORMATION = ^ACL_SIZE_INFORMATION; - - ACTION_HEADER = record - transport_id : ULONG; - action_code : USHORT; - reserved : USHORT; - end; - _ACTION_HEADER = ACTION_HEADER; - TACTIONHEADER = ACTION_HEADER; - PACTIONHEADER = ^ACTION_HEADER; - - ADAPTER_STATUS = record - adapter_address : array[0..5] of UCHAR; - rev_major : UCHAR; - reserved0 : UCHAR; - adapter_type : UCHAR; - rev_minor : UCHAR; - duration : WORD; - frmr_recv : WORD; - frmr_xmit : WORD; - iframe_recv_err : WORD; - xmit_aborts : WORD; - xmit_success : DWORD; - recv_success : DWORD; - iframe_xmit_err : WORD; - recv_buff_unavail : WORD; - t1_timeouts : WORD; - ti_timeouts : WORD; - reserved1 : DWORD; - free_ncbs : WORD; - max_cfg_ncbs : WORD; - max_ncbs : WORD; - xmit_buf_unavail : WORD; - max_dgram_size : WORD; - pending_sess : WORD; - max_cfg_sess : WORD; - max_sess : WORD; - max_sess_pkt_size : WORD; - name_count : WORD; - end; - _ADAPTER_STATUS = ADAPTER_STATUS; - TADAPTERSTATUS = ADAPTER_STATUS; - PADAPTERSTATUS = ^ADAPTER_STATUS; - - ADDJOB_INFO_1 = record - Path : LPTSTR; - JobId : DWORD; - end; - _ADDJOB_INFO_1 = ADDJOB_INFO_1; - TADDJOB_INFO_1 = ADDJOB_INFO_1; - PADDJOB_INFO_1 = ^ADDJOB_INFO_1; - - ANIMATIONINFO = record - cbSize : UINT; - iMinAnimate : longint; - end; - LPANIMATIONINFO = ^ANIMATIONINFO; - _ANIMATIONINFO = ANIMATIONINFO; - TANIMATIONINFO = ANIMATIONINFO; - PANIMATIONINFO = ^ANIMATIONINFO; - - POINT = record - x : LONG; - y : LONG; - end; - LPPOINT = ^POINT; - tagPOINT = POINT; - TPOINT = POINT; - PPOINT = ^POINT; - - RECT = record - case Integer of - 0: (Left,Top,Right,Bottom : Longint); - 1: (TopLeft,BottomRight : TPoint); - end; - LPRECT = ^RECT; - _RECT = RECT; - TRECT = RECT; - PRECT = ^RECT; - tagRECT = RECT; //+windef - - RECTL = record - left : LONG; - top : LONG; - right : LONG; - bottom : LONG; - end; - _RECTL = RECTL; - TRECTL = RECTL; - PRECTL = ^RECTL; - - APPBARDATA = record - cbSize : DWORD; - hWnd : HWND; - uCallbackMessage : UINT; - uEdge : UINT; - rc : RECT; - lParam : LPARAM; - end; - _AppBarData = APPBARDATA; - TAppBarData = APPBARDATA; - PAppBarData = ^APPBARDATA; - - BITMAP = record - bmType : LONG; - bmWidth : LONG; - bmHeight : LONG; - bmWidthBytes : LONG; - bmPlanes : WORD; - bmBitsPixel : WORD; - bmBits : LPVOID; - end; - PBITMAP = ^BITMAP; - NPBITMAP = ^BITMAP; - LPBITMAP = ^BITMAP; - tagBITMAP = BITMAP; - TBITMAP = BITMAP; - - BITMAPCOREHEADER = record - bcSize : DWORD; - bcWidth : WORD; - bcHeight : WORD; - bcPlanes : WORD; - bcBitCount : WORD; - end; - tagBITMAPCOREHEADER = BITMAPCOREHEADER; - TBITMAPCOREHEADER = BITMAPCOREHEADER; - PBITMAPCOREHEADER = ^BITMAPCOREHEADER; - - RGBTRIPLE = record - rgbtBlue : BYTE; - rgbtGreen : BYTE; - rgbtRed : BYTE; - end; - tagRGBTRIPLE = RGBTRIPLE; - TRGBTRIPLE = RGBTRIPLE; - PRGBTRIPLE = ^RGBTRIPLE; - - BITMAPCOREINFO = record - bmciHeader : BITMAPCOREHEADER; - bmciColors : array[0..0] of RGBTRIPLE; - end; - PBITMAPCOREINFO = ^BITMAPCOREINFO; - LPBITMAPCOREINFO = ^BITMAPCOREINFO; - _BITMAPCOREINFO = BITMAPCOREINFO; - TBITMAPCOREINFO = BITMAPCOREINFO; - -(* error - WORD bfReserved1; - WORD bfReserved2; - in declarator_list *) - - BITMAPINFOHEADER = record - biSize : DWORD; - biWidth : LONG; - biHeight : LONG; - biPlanes : WORD; - biBitCount : WORD; - biCompression : DWORD; - biSizeImage : DWORD; - biXPelsPerMeter : LONG; - biYPelsPerMeter : LONG; - biClrUsed : DWORD; - biClrImportant : DWORD; - end; - LPBITMAPINFOHEADER = ^BITMAPINFOHEADER; - TBITMAPINFOHEADER = BITMAPINFOHEADER; - PBITMAPINFOHEADER = ^BITMAPINFOHEADER; - - RGBQUAD = record - rgbBlue : BYTE; - rgbGreen : BYTE; - rgbRed : BYTE; - rgbReserved : BYTE; - end; - tagRGBQUAD = RGBQUAD; - TRGBQUAD = RGBQUAD; - PRGBQUAD = ^RGBQUAD; - - BITMAPINFO = record - bmiHeader : BITMAPINFOHEADER; - bmiColors : array[0..0] of RGBQUAD; - end; - LPBITMAPINFO = ^BITMAPINFO; - PBITMAPINFO = ^BITMAPINFO; - TBITMAPINFO = BITMAPINFO; - - FXPT2DOT30 = longint; - LPFXPT2DOT30 = ^FXPT2DOT30; - TPFXPT2DOT30 = FXPT2DOT30; - PPFXPT2DOT30 = ^FXPT2DOT30; - - CIEXYZ = record - ciexyzX : FXPT2DOT30; - ciexyzY : FXPT2DOT30; - ciexyzZ : FXPT2DOT30; - end; - tagCIEXYZ = CIEXYZ; - LPCIEXYZ = ^CIEXYZ; - TPCIEXYZ = CIEXYZ; - PCIEXYZ = ^CIEXYZ; - - CIEXYZTRIPLE = record - ciexyzRed : CIEXYZ; - ciexyzGreen : CIEXYZ; - ciexyzBlue : CIEXYZ; - end; - tagCIEXYZTRIPLE = CIEXYZTRIPLE; - LPCIEXYZTRIPLE = ^CIEXYZTRIPLE; - TCIEXYZTRIPLE = CIEXYZTRIPLE; - PCIEXYZTRIPLE = ^CIEXYZTRIPLE; - - BITMAPV4HEADER = record - bV4Size : DWORD; - bV4Width : LONG; - bV4Height : LONG; - bV4Planes : WORD; - bV4BitCount : WORD; - bV4V4Compression : DWORD; - bV4SizeImage : DWORD; - bV4XPelsPerMeter : LONG; - bV4YPelsPerMeter : LONG; - bV4ClrUsed : DWORD; - bV4ClrImportant : DWORD; - bV4RedMask : DWORD; - bV4GreenMask : DWORD; - bV4BlueMask : DWORD; - bV4AlphaMask : DWORD; - bV4CSType : DWORD; - bV4Endpoints : CIEXYZTRIPLE; - bV4GammaRed : DWORD; - bV4GammaGreen : DWORD; - bV4GammaBlue : DWORD; - end; - LPBITMAPV4HEADER = ^BITMAPV4HEADER; - TBITMAPV4HEADER = BITMAPV4HEADER; - PBITMAPV4HEADER = ^BITMAPV4HEADER; - - BITMAPFILEHEADER = packed record - bfType : Word; - bfSize : DWord; - bfReserved1 : Word; - bfReserved2 : Word; - bfOffBits : DWord; - end; - TBitmapFileHeader = BITMAPFILEHEADER; - - BLOB = record - cbSize : ULONG; - pBlobData : ^BYTE; - end; - _BLOB = BLOB; - TBLOB = BLOB; - PBLOB = ^BLOB; - - SHITEMID = record - cb : USHORT; - abID : array[0..0] of BYTE; - end; - LPSHITEMID = ^SHITEMID; - LPCSHITEMID = ^SHITEMID; - _SHITEMID = SHITEMID; - TSHITEMID = SHITEMID; - PSHITEMID = ^SHITEMID; - - ITEMIDLIST = record - mkid : SHITEMID; - end; - LPITEMIDLIST = ^ITEMIDLIST; - LPCITEMIDLIST = ^ITEMIDLIST; - _ITEMIDLIST = ITEMIDLIST; - TITEMIDLIST = ITEMIDLIST; - PITEMIDLIST = ^ITEMIDLIST; - - FILETIME = record - dwLowDateTime : DWORD; - dwHighDateTime : DWORD; - end; - LPFILETIME = ^FILETIME; - _FILETIME = FILETIME; - TFILETIME = FILETIME; - PFILETIME = ^FILETIME; - - _GET_FILEEX_INFO_LEVELS=(GetFileExInfoStandard,GetFileExMaxInfoLevel); //+winbase - GET_FILEEX_INFO_LEVELS=_GET_FILEEX_INFO_LEVELS; //+winbase - - _FINDEX_INFO_LEVELS = (FindExInfoStandard,FindExInfoMaxInfoLevel); //+winbase - FINDEX_INFO_LEVELS = _FINDEX_INFO_LEVELS; //+winbase - - _FINDEX_SEARCH_OPS = ( FindExSearchNameMatch, FindExSearchLimitToDirectories, - FindExSearchLimitToDevices, FindExSearchMaxSearchOp); - FINDEX_SEARCH_OPS=_FINDEX_SEARCH_OPS; - - BY_HANDLE_FILE_INFORMATION = record - dwFileAttributes : DWORD; - ftCreationTime : FILETIME; - ftLastAccessTime : FILETIME; - ftLastWriteTime : FILETIME; - dwVolumeSerialNumber : DWORD; - nFileSizeHigh : DWORD; - nFileSizeLow : DWORD; - nNumberOfLinks : DWORD; - nFileIndexHigh : DWORD; - nFileIndexLow : DWORD; - end; - LPBY_HANDLE_FILE_INFORMATION = ^BY_HANDLE_FILE_INFORMATION; - _BY_HANDLE_FILE_INFORMATION = BY_HANDLE_FILE_INFORMATION; - TBYHANDLEFILEINFORMATION = BY_HANDLE_FILE_INFORMATION; - PBYHANDLEFILEINFORMATION = ^BY_HANDLE_FILE_INFORMATION; - - FIXED = record - fract : WORD; - value : integer; - end; - _FIXED = FIXED; - TFIXED = FIXED; - PFIXED = ^FIXED; - - POINTFX = record - x : FIXED; - y : FIXED; - end; - tagPOINTFX = POINTFX; - TPOINTFX = POINTFX; - PPOINTFX = ^POINTFX; - - POINTL = record - x : LONG; - y : LONG; - end; - _POINTL = POINTL; - TPOINTL = POINTL; - PPOINTL = ^POINTL; - - TSmallPoint = record - X, - Y : SmallInt; - end; - - - POINTS = record - x : SHORT; - y : SHORT; - end; - tagPOINTS = POINTS; //windef - TPOINTS = POINTS; - PPOINTS = ^POINTS; - - CANDIDATEFORM = record - dwIndex : DWORD; - dwStyle : DWORD; - ptCurrentPos : POINT; - rcArea : RECT; - end; - LPCANDIDATEFORM = ^CANDIDATEFORM; - _tagCANDIDATEFORM = CANDIDATEFORM; - TCANDIDATEFORM = CANDIDATEFORM; - PCANDIDATEFORM = ^CANDIDATEFORM; - - CANDIDATELIST = record - dwSize : DWORD; - dwStyle : DWORD; - dwCount : DWORD; - dwSelection : DWORD; - dwPageStart : DWORD; - dwPageSize : DWORD; - dwOffset : array[0..0] of DWORD; - end; - LPCANDIDATELIST = ^CANDIDATELIST; - _tagCANDIDATELIST = CANDIDATELIST; - TCANDIDATELIST = CANDIDATELIST; - PCANDIDATELIST = ^CANDIDATELIST; - - CREATESTRUCT = record - lpCreateParams : LPVOID; - hInstance : HINST; - hMenu : HMENU; - hwndParent : HWND; - cy : longint; - cx : longint; - y : longint; - x : longint; - style : LONG; - lpszName : LPCTSTR; - lpszClass : LPCTSTR; - dwExStyle : DWORD; - end; - LPCREATESTRUCT = ^CREATESTRUCT; - tagCREATESTRUCT = CREATESTRUCT; - TCREATESTRUCT = CREATESTRUCT; - PCREATESTRUCT = ^CREATESTRUCT; - - CBT_CREATEWND = record - lpcs : LPCREATESTRUCT; - hwndInsertAfter : HWND; - end; - tagCBT_CREATEWND = CBT_CREATEWND; - TCBT_CREATEWND = CBT_CREATEWND; - PCBT_CREATEWND = ^CBT_CREATEWND; - - CBTACTIVATESTRUCT = record - fMouse : WINBOOL; - hWndActive : HWND; - end; - tagCBTACTIVATESTRUCT = CBTACTIVATESTRUCT; - TCBTACTIVATESTRUCT = CBTACTIVATESTRUCT; - PCBTACTIVATESTRUCT = ^CBTACTIVATESTRUCT; - - - CHAR_INFO = record - case longint of - 0 : ( UnicodeChar : WCHAR; - Attributes : Word); - 1 : ( AsciiChar : CHAR ); - end; - _CHAR_INFO = CHAR_INFO; - TCHAR_INFO = CHAR_INFO; - PCHAR_INFO = ^CHAR_INFO; - - CHARFORMAT = record - cbSize : UINT; - dwMask : DWORD; - dwEffects : DWORD; - yHeight : LONG; - yOffset : LONG; - crTextColor : COLORREF; - bCharSet : BYTE; - bPitchAndFamily : BYTE; - szFaceName : array[0..(LF_FACESIZE)-1] of TCHAR; - end; - _charformat = CHARFORMAT; - Tcharformat = CHARFORMAT; - Pcharformat = ^CHARFORMAT; - - CHARRANGE = record - cpMin : LONG; - cpMax : LONG; - end; - _charrange = CHARRANGE; - Tcharrange = CHARRANGE; - Pcharrange = ^CHARRANGE; - - CHARSET = record - aflBlock : array[0..2] of DWORD; - flLang : DWORD; - end; - tagCHARSET = CHARSET; - TCHARSET = CHARSET; - PCHARSET = ^CHARSET; - - FONTSIGNATURE = record - fsUsb : array[0..3] of DWORD; - fsCsb : array[0..1] of DWORD; - end; - LPFONTSIGNATURE = ^FONTSIGNATURE; - tagFONTSIGNATURE = FONTSIGNATURE; - TFONTSIGNATURE = FONTSIGNATURE; - PFONTSIGNATURE = ^FONTSIGNATURE; - - FLOAT128 = record //+winnt - LowPart : int64; - HighPart : int64; - end; - PFLOAT128 = ^FLOAT128; - - CHARSETINFO = record - ciCharset : UINT; - ciACP : UINT; - fs : FONTSIGNATURE; - end; - LPCHARSETINFO = ^CHARSETINFO; - TCHARSETINFO = CHARSETINFO; - PCHARSETINFO = ^CHARSETINFO; - - {CHOOSECOLOR = record confilcts with function ChooseColor } - TCHOOSECOLOR = record - lStructSize : DWORD; - hwndOwner : HWND; - hInstance : HWND; - rgbResult : COLORREF; - lpCustColors : ^COLORREF; - Flags : DWORD; - lCustData : LPARAM; - lpfnHook : LPCCHOOKPROC; - lpTemplateName : LPCTSTR; - end; - LPCHOOSECOLOR = ^TCHOOSECOLOR; - PCHOOSECOLOR = ^TCHOOSECOLOR; - - LOGFONTA = record - lfHeight : LONG; - lfWidth : LONG; - lfEscapement : LONG; - lfOrientation : LONG; - lfWeight : LONG; - lfItalic : BYTE; - lfUnderline : BYTE; - lfStrikeOut : BYTE; - lfCharSet : BYTE; - lfOutPrecision : BYTE; - lfClipPrecision : BYTE; - lfQuality : BYTE; - lfPitchAndFamily : BYTE; - lfFaceName : array[0..(LF_FACESIZE)-1] of TCHAR; - end; - TLOGFONTA = LOGFONTA; - tagLOGFONTA = LOGFONTA; - NPLOGFONTA = ^LOGFONTA; - PLOGFONTA = ^LOGFONTA; - - LOGFONTW = record - lfHeight: LONG; - lfWidth: LONG; - lfEscapement: LONG; - lfOrientation: LONG; - lfWeight: LONG; - lfItalic: BYTE; - lfUnderline: BYTE; - lfStrikeOut: BYTE; - lfCharSet: BYTE; - lfOutPrecision: BYTE; - lfClipPrecision: BYTE; - lfQuality: BYTE; - lfPitchAndFamily: BYTE; - lfFaceName: array [0..LF_FACESIZE - 1] of WCHAR; - end; - LPLOGFONTW = ^LOGFONTW; - NPLOGFONTW = ^LOGFONTW; - tagLOGFONTW = LOGFONTW; - TLogFontW = LOGFONTW; - PLogFontW = ^TLogFontW; - - TLOGFONT = LOGFONTW; - LOGFONT = LOGFONTW; - tagLOGFONT = LOGFONTW; - LPLOGFONT = ^LOGFONTW; - PLOGFONT = ^LOGFONTW; - NPLOGFONT = ^LOGFONTW; - - TCHOOSEFONTW = record //+commdlg - lStructSize : DWORD; - hwndOwner : HWND; - hDC : HDC; - lpLogFont : LPLOGFONTW; - iPointSize : Integer; - Flags : DWORD; - rgbColors : DWORD; - lCustData : LPARAM; - lpfnHook : LPCFHOOKPROC; - lpTemplateName : LPCWSTR; - hInstance : HINST; - lpszStyle : LPTSTR; - nFontType : WORD; - ___MISSING_ALIGNMENT__ : WORD; - nSizeMin : Integer; - nSizeMax : Integer; - end; - tagCHOOSEFONTW = TCHOOSEFONTW; //+commdlg - LPCHOOSEFONTW = ^TCHOOSEFONTW; //+commdlg - PCHOOSEFONTW = ^TCHOOSEFONTW; //+commdlg - - {CHOOSEFONT = record conflicts with ChooseFont function } - TCHOOSEFONT = record - lStructSize : DWORD; - hwndOwner : HWND; - hDC : HDC; - lpLogFont : LPLOGFONT; - iPointSize : WINT; - Flags : DWORD; - rgbColors : DWORD; - lCustData : LPARAM; - lpfnHook : LPCFHOOKPROC; - lpTemplateName : LPCTSTR; - hInstance : HINST; - lpszStyle : LPTSTR; - nFontType : WORD; - ___MISSING_ALIGNMENT__ : WORD; - nSizeMin : WINT; - nSizeMax : WINT; - end; - LPCHOOSEFONT = ^TCHOOSEFONT; - PCHOOSEFONT = ^TCHOOSEFONT; - - CIDA = record - cidl : UINT; - aoffset : array[0..0] of UINT; - end; - LPIDA = ^CIDA; - _IDA = CIDA; - TIDA = CIDA; - PIDA = ^CIDA; - - CLIENTCREATESTRUCT = record - hWindowMenu : HANDLE; - idFirstChild : UINT; - end; - LPCLIENTCREATESTRUCT = ^CLIENTCREATESTRUCT; - tagCLIENTCREATESTRUCT = CLIENTCREATESTRUCT; - TCLIENTCREATESTRUCT = CLIENTCREATESTRUCT; - PCLIENTCREATESTRUCT = ^CLIENTCREATESTRUCT; - - CMINVOKECOMMANDINFO = record - cbSize : DWORD; - fMask : DWORD; - hwnd : HWND; - lpVerb : LPCSTR; - lpParameters : LPCSTR; - lpDirectory : LPCSTR; - nShow : longint; - dwHotKey : DWORD; - hIcon : HANDLE; - end; - LPCMINVOKECOMMANDINFO = ^CMINVOKECOMMANDINFO; - _CMInvokeCommandInfo = CMINVOKECOMMANDINFO; - TCMInvokeCommandInfo = CMINVOKECOMMANDINFO; - PCMInvokeCommandInfo = ^CMINVOKECOMMANDINFO; - - COLORADJUSTMENT = record - caSize : WORD; - caFlags : WORD; - caIlluminantIndex : WORD; - caRedGamma : WORD; - caGreenGamma : WORD; - caBlueGamma : WORD; - caReferenceBlack : WORD; - caReferenceWhite : WORD; - caContrast : SHORT; - caBrightness : SHORT; - caColorfulness : SHORT; - caRedGreenTint : SHORT; - end; - LPCOLORADJUSTMENT = ^COLORADJUSTMENT; - tagCOLORADJUSTMENT = COLORADJUSTMENT; - TCOLORADJUSTMENT = COLORADJUSTMENT; - PCOLORADJUSTMENT = ^COLORADJUSTMENT; - - COLORMAP = record - from : COLORREF; - _to : COLORREF; - end; - LPCOLORMAP = ^COLORMAP; - _COLORMAP = COLORMAP; - TCOLORMAP = COLORMAP; - PCOLORMAP = ^COLORMAP; - - DCB = record - DCBlength : DWORD; - BaudRate : DWORD; - flags : DWORD; - wReserved : WORD; - XonLim : WORD; - XoffLim : WORD; - ByteSize : BYTE; - Parity : BYTE; - StopBits : BYTE; - XonChar : char; - XoffChar : char; - ErrorChar : char; - EofChar : char; - EvtChar : char; - wReserved1 : WORD; - end; - LPDCB = ^DCB; - _DCB = DCB; - TDCB = DCB; - PDCB = ^DCB; - - const - bm_DCB_fBinary = $1; - bp_DCB_fBinary = 0; - bm_DCB_fParity = $2; - bp_DCB_fParity = 1; - bm_DCB_fOutxCtsFlow = $4; - bp_DCB_fOutxCtsFlow = 2; - bm_DCB_fOutxDsrFlow = $8; - bp_DCB_fOutxDsrFlow = 3; - bm_DCB_fDtrControl = $30; - bp_DCB_fDtrControl = 4; - bm_DCB_fDsrSensitivity = $40; - bp_DCB_fDsrSensitivity = 6; - bm_DCB_fTXContinueOnXoff = $80; - bp_DCB_fTXContinueOnXoff = 7; - bm_DCB_fOutX = $100; - bp_DCB_fOutX = 8; - bm_DCB_fInX = $200; - bp_DCB_fInX = 9; - bm_DCB_fErrorChar = $400; - bp_DCB_fErrorChar = 10; - bm_DCB_fNull = $800; - bp_DCB_fNull = 11; - bm_DCB_fRtsControl = $3000; - bp_DCB_fRtsControl = 12; - bm_DCB_fAbortOnError = $4000; - bp_DCB_fAbortOnError = 14; - bm_DCB_fDummy2 = $FFFF8000; - bp_DCB_fDummy2 = 15; - function fBinary(var a : DCB) : DWORD; - procedure set_fBinary(var a : DCB; __fBinary : DWORD); - function fParity(var a : DCB) : DWORD; - procedure set_fParity(var a : DCB; __fParity : DWORD); - function fOutxCtsFlow(var a : DCB) : DWORD; - procedure set_fOutxCtsFlow(var a : DCB; __fOutxCtsFlow : DWORD); - function fOutxDsrFlow(var a : DCB) : DWORD; - procedure set_fOutxDsrFlow(var a : DCB; __fOutxDsrFlow : DWORD); - function fDtrControl(var a : DCB) : DWORD; - procedure set_fDtrControl(var a : DCB; __fDtrControl : DWORD); - function fDsrSensitivity(var a : DCB) : DWORD; - procedure set_fDsrSensitivity(var a : DCB; __fDsrSensitivity : DWORD); - function fTXContinueOnXoff(var a : DCB) : DWORD; - procedure set_fTXContinueOnXoff(var a : DCB; __fTXContinueOnXoff : DWORD); - function fOutX(var a : DCB) : DWORD; - procedure set_fOutX(var a : DCB; __fOutX : DWORD); - function fInX(var a : DCB) : DWORD; - procedure set_fInX(var a : DCB; __fInX : DWORD); - function fErrorChar(var a : DCB) : DWORD; - procedure set_fErrorChar(var a : DCB; __fErrorChar : DWORD); - function fNull(var a : DCB) : DWORD; - procedure set_fNull(var a : DCB; __fNull : DWORD); - function fRtsControl(var a : DCB) : DWORD; - procedure set_fRtsControl(var a : DCB; __fRtsControl : DWORD); - function fAbortOnError(var a : DCB) : DWORD; - procedure set_fAbortOnError(var a : DCB; __fAbortOnError : DWORD); - function fDummy2(var a : DCB) : DWORD; - procedure set_fDummy2(var a : DCB; __fDummy2 : DWORD); - - type - - tagINITCOMMONCONTROLSEX = record - dwSize:DWORD; // size of this structure - dwICC:DWORD; // flags indicating which classes to be initialized - end; - TINITCOMMONCONTROLSEX=tagINITCOMMONCONTROLSEX; - LPINITCOMMONCONTROLSEX=^tagINITCOMMONCONTROLSEX; - - COMMCONFIG = record - dwSize : DWORD; - wVersion : WORD; - wReserved : WORD; - dcb : DCB; - dwProviderSubType : DWORD; - dwProviderOffset : DWORD; - dwProviderSize : DWORD; - wcProviderData : array[0..0] of WCHAR; - end; - LPCOMMCONFIG = ^COMMCONFIG; - _COMM_CONFIG = COMMCONFIG; - TCOMMCONFIG = COMMCONFIG; - PCOMMCONFIG = ^COMMCONFIG; - - COMMPROP = record - wPacketLength : WORD; - wPacketVersion : WORD; - dwServiceMask : DWORD; - dwReserved1 : DWORD; - dwMaxTxQueue : DWORD; - dwMaxRxQueue : DWORD; - dwMaxBaud : DWORD; - dwProvSubType : DWORD; - dwProvCapabilities : DWORD; - dwSettableParams : DWORD; - dwSettableBaud : DWORD; - wSettableData : WORD; - wSettableStopParity : WORD; - dwCurrentTxQueue : DWORD; - dwCurrentRxQueue : DWORD; - dwProvSpec1 : DWORD; - dwProvSpec2 : DWORD; - wcProvChar : array[0..0] of WCHAR; - end; - LPCOMMPROP = ^COMMPROP; - _COMMPROP = COMMPROP; - TCOMMPROP = COMMPROP; - PCOMMPROP = ^COMMPROP; - - COMMTIMEOUTS = record - ReadIntervalTimeout : DWORD; - ReadTotalTimeoutMultiplier : DWORD; - ReadTotalTimeoutConstant : DWORD; - WriteTotalTimeoutMultiplier : DWORD; - WriteTotalTimeoutConstant : DWORD; - end; - LPCOMMTIMEOUTS = ^COMMTIMEOUTS; - _COMMTIMEOUTS = COMMTIMEOUTS; - TCOMMTIMEOUTS = COMMTIMEOUTS; - PCOMMTIMEOUTS = ^COMMTIMEOUTS; - - COMPAREITEMSTRUCT = record - CtlType : UINT; - CtlID : UINT; - hwndItem : HWND; - itemID1 : UINT; - itemData1 : DWORD; - itemID2 : UINT; - itemData2 : DWORD; - end; - tagCOMPAREITEMSTRUCT = COMPAREITEMSTRUCT; - TCOMPAREITEMSTRUCT = COMPAREITEMSTRUCT; - PCOMPAREITEMSTRUCT = ^COMPAREITEMSTRUCT; - - COMPCOLOR = record - crText : COLORREF; - crBackground : COLORREF; - dwEffects : DWORD; - end; - TCOMPCOLOR = COMPCOLOR; - PCOMPCOLOR = ^COMPCOLOR; - - COMPOSITIONFORM = record - dwStyle : DWORD; - ptCurrentPos : POINT; - rcArea : RECT; - end; - LPCOMPOSITIONFORM = ^COMPOSITIONFORM; - _tagCOMPOSITIONFORM = COMPOSITIONFORM; - TCOMPOSITIONFORM = COMPOSITIONFORM; - PCOMPOSITIONFORM = ^COMPOSITIONFORM; - -// TComStatFlags = set of (fCtsHold, fDsrHold, fRlsdHold , fXoffHold , -// fXoffSent , fEof , fTxim , fReserved); - - COMSTAT = record - flag0 : DWORD; // can't use tcomstatflags, set packing issues - // and conflicts with macro's - cbInQue : DWORD; - cbOutQue : DWORD; - end; - LPCOMSTAT = ^COMSTAT; - _COMSTAT = COMSTAT; - TCOMSTAT = COMSTAT; - PCOMSTAT = ^COMSTAT; - const - bm_COMSTAT_fCtsHold = $1; - bp_COMSTAT_fCtsHold = 0; - bm_COMSTAT_fDsrHold = $2; - bp_COMSTAT_fDsrHold = 1; - bm_COMSTAT_fRlsdHold = $4; - bp_COMSTAT_fRlsdHold = 2; - bm_COMSTAT_fXoffHold = $8; - bp_COMSTAT_fXoffHold = 3; - bm_COMSTAT_fXoffSent = $10; - bp_COMSTAT_fXoffSent = 4; - bm_COMSTAT_fEof = $20; - bp_COMSTAT_fEof = 5; - bm_COMSTAT_fTxim = $40; - bp_COMSTAT_fTxim = 6; - bm_COMSTAT_fReserved = $FFFFFF80; - bp_COMSTAT_fReserved = 7; - function fCtsHold(var a : COMSTAT) : DWORD; // should be renamed to get_? - procedure set_fCtsHold(var a : COMSTAT; __fCtsHold : DWORD); - function fDsrHold(var a : COMSTAT) : DWORD; - procedure set_fDsrHold(var a : COMSTAT; __fDsrHold : DWORD); - function fRlsdHold(var a : COMSTAT) : DWORD; - procedure set_fRlsdHold(var a : COMSTAT; __fRlsdHold : DWORD); - function fXoffHold(var a : COMSTAT) : DWORD; - procedure set_fXoffHold(var a : COMSTAT; __fXoffHold : DWORD); - function fXoffSent(var a : COMSTAT) : DWORD; - procedure set_fXoffSent(var a : COMSTAT; __fXoffSent : DWORD); - function fEof(var a : COMSTAT) : DWORD; - procedure set_fEof(var a : COMSTAT; __fEof : DWORD); - function fTxim(var a : COMSTAT) : DWORD; - procedure set_fTxim(var a : COMSTAT; __fTxim : DWORD); - function fReserved(var a : COMSTAT) : DWORD; - procedure set_fReserved(var a : COMSTAT; __fReserved : DWORD); - - type - - CONSOLE_CURSOR_INFO = record - dwSize : DWORD; - bVisible : WINBOOL; - end; - PCONSOLE_CURSOR_INFO = ^CONSOLE_CURSOR_INFO; - _CONSOLE_CURSOR_INFO = CONSOLE_CURSOR_INFO; - TCONSOLECURSORINFO = CONSOLE_CURSOR_INFO; - PCONSOLECURSORINFO = ^CONSOLE_CURSOR_INFO; - TCURSORINFO = CONSOLE_CURSOR_INFO; - - COORD = record - X : SHORT; - Y : SHORT; - end; - _COORD = COORD; - TCOORD = COORD; - PCOORD = ^COORD; - - SMALL_RECT = record - Left : SHORT; - Top : SHORT; - Right : SHORT; - Bottom : SHORT; - end; - _SMALL_RECT = SMALL_RECT; - TSMALL_RECT = SMALL_RECT; - PSMALL_RECT = ^SMALL_RECT; - - CONSOLE_SCREEN_BUFFER_INFO = packed record - dwSize : COORD; - dwCursorPosition : COORD; - wAttributes : WORD; - srWindow : SMALL_RECT; - dwMaximumWindowSize : COORD; - end; - PCONSOLE_SCREEN_BUFFER_INFO = ^CONSOLE_SCREEN_BUFFER_INFO; - _CONSOLE_SCREEN_BUFFER_INFO = CONSOLE_SCREEN_BUFFER_INFO; - TCONSOLESCREENBUFFERINFO = CONSOLE_SCREEN_BUFFER_INFO; - PCONSOLESCREENBUFFERINFO = ^CONSOLE_SCREEN_BUFFER_INFO; - -{$ifdef i386} //+winnt - type - FLOATING_SAVE_AREA = record //~winnt - ControlWord : DWORD; - StatusWord : DWORD; - TagWord : DWORD; - ErrorOffset : DWORD; - ErrorSelector : DWORD; - DataOffset : DWORD; - DataSelector : DWORD; - RegisterArea : array[0..SIZE_OF_80387_REGISTERS-1] of BYTE; //~winnt - Cr0NpxState : DWORD; - end; - _FLOATING_SAVE_AREA = FLOATING_SAVE_AREA; //winnt - TFLOATINGSAVEAREA = FLOATING_SAVE_AREA; //winnt - PFLOATING_SAVE_AREA = ^FLOATING_SAVE_AREA; //~winnt - -// -// Context Frame -// -// This frame has a several purposes: 1) it is used as an argument to -// NtContinue, 2) is is used to constuct a call frame for APC delivery, -// and 3) it is used in the user level thread creation routines. -// -// The layout of the record conforms to a standard call frame. -// - - CONTEXT = record //winnt - ContextFlags : DWORD; - Dr0 : DWORD; - Dr1 : DWORD; - Dr2 : DWORD; - Dr3 : DWORD; - Dr6 : DWORD; - Dr7 : DWORD; - FloatSave : FLOATING_SAVE_AREA; - SegGs : DWORD; - SegFs : DWORD; - SegEs : DWORD; - SegDs : DWORD; - Edi : DWORD; - Esi : DWORD; - Ebx : DWORD; - Edx : DWORD; - Ecx : DWORD; - Eax : DWORD; - Ebp : DWORD; - Eip : DWORD; - SegCs : DWORD; - EFlags : DWORD; - Esp : DWORD; - SegSs : DWORD; - end; - - LDT_ENTRY = record //~winnt, moved into _X86_ - LimitLow : WORD; - BaseLow : WORD; - HighWord : record - case longint of - 0 : ( Bytes : record - BaseMid : BYTE; - Flags1 : BYTE; - Flags2 : BYTE; - BaseHi : BYTE; - end ); - 1 : ( Bits : record - flag0 : longint; - end ); - end; - end; - LPLDT_ENTRY = ^LDT_ENTRY; - PLDT_ENTRY = ^LDT_ENTRY; - _LDT_ENTRY = LDT_ENTRY; - TLDTENTRY = LDT_ENTRY; - PLDTENTRY = ^LDT_ENTRY; - -{$endif i386} //+winnt - -{$ifdef _MIPS_} //+winnt all block added -// -// Context Frame -// -// N.B. This frame must be exactly a multiple of 16 bytes in length. -// -// This frame has a several purposes: 1) it is used as an argument to -// NtContinue, 2) it is used to constuct a call frame for APC delivery, -// 3) it is used to construct a call frame for exception dispatching -// in user mode, and 4) it is used in the user level thread creation -// routines. -// -// The layout of the record conforms to a standard call frame. -// - type - {$ifdef _MIPS64} //+winnt - FREG_TYPE = ULONGLONG; - REG_TYPE = ULONGLONG; - {$else} - FREG_TYPE = DWORD; - REG_TYPE = ULONG; - {$endif _MIPS64} - CONTEXT = record //+winnt - Argument : Array[0..3] of REG_TYPE; - FltF0 : FREG_TYPE; - FltF1 : FREG_TYPE; - FltF2 : FREG_TYPE; - FltF3 : FREG_TYPE; - FltF4 : FREG_TYPE; - FltF5 : FREG_TYPE; - FltF6 : FREG_TYPE; - FltF7 : FREG_TYPE; - FltF8 : FREG_TYPE; - FltF9 : FREG_TYPE; - FltF10 : FREG_TYPE; - FltF11 : FREG_TYPE; - FltF12 : FREG_TYPE; - FltF13 : FREG_TYPE; - FltF14 : FREG_TYPE; - FltF15 : FREG_TYPE; - FltF16 : FREG_TYPE; - FltF17 : FREG_TYPE; - FltF18 : FREG_TYPE; - FltF19 : FREG_TYPE; - FltF20 : FREG_TYPE; - FltF21 : FREG_TYPE; - FltF22 : FREG_TYPE; - FltF23 : FREG_TYPE; - FltF24 : FREG_TYPE; - FltF25 : FREG_TYPE; - FltF26 : FREG_TYPE; - FltF27 : FREG_TYPE; - FltF28 : FREG_TYPE; - FltF29 : FREG_TYPE; - FltF30 : FREG_TYPE; - FltF31 : FREG_TYPE; - - IntZero : REG_TYPE; - IntAt : REG_TYPE; - IntV0 : REG_TYPE; - IntV1 : REG_TYPE; - IntA0 : REG_TYPE; - IntA1 : REG_TYPE; - IntA2 : REG_TYPE; - IntA3 : REG_TYPE; - IntT0 : REG_TYPE; - IntT1 : REG_TYPE; - IntT2 : REG_TYPE; - IntT3 : REG_TYPE; - IntT4 : REG_TYPE; - IntT5 : REG_TYPE; - IntT6 : REG_TYPE; - IntT7 : REG_TYPE; - IntS0 : REG_TYPE; - IntS1 : REG_TYPE; - IntS2 : REG_TYPE; - IntS3 : REG_TYPE; - IntS4 : REG_TYPE; - IntS5 : REG_TYPE; - IntS6 : REG_TYPE; - IntS7 : REG_TYPE; - IntT8 : REG_TYPE; - IntT9 : REG_TYPE; - IntK0 : REG_TYPE; - IntK1 : REG_TYPE; - IntGp : REG_TYPE; - IntSp : REG_TYPE; - IntS8 : REG_TYPE; - IntRa : REG_TYPE; - IntLo : REG_TYPE; - IntHi : REG_TYPE; - - Fsr : DWORD; - Fir : DWORD; - Psr : DWORD; - ContextFlags : DWORD; - Fill : Array[0..1] of DWORD; - end; - -{$endif _MIPS_} //+winnt - -{$ifdef _PPC_} //+winnt - { Floating point registers returned when CONTEXT_FLOATING_POINT is set } - { Integer registers returned when CONTEXT_INTEGER is set. } - { Condition register } - { Fixed point exception register } - { The following are set when CONTEXT_CONTROL is set. } - { Machine status register } - { Instruction address register } - { Link register } - { Control register } - { Control which context values are returned } - { Registers returned if CONTEXT_DEBUG_REGISTERS is set. } - { Breakpoint Register 1 } - { Breakpoint Register 2 } - { Breakpoint Register 3 } - { Breakpoint Register 4 } - { Breakpoint Register 5 } - { Breakpoint Register 6 } - { Debug Status Register } - { Debug Control Register } - - type - - CONTEXT = record - Fpr0 : double; - Fpr1 : double; - Fpr2 : double; - Fpr3 : double; - Fpr4 : double; - Fpr5 : double; - Fpr6 : double; - Fpr7 : double; - Fpr8 : double; - Fpr9 : double; - Fpr10 : double; - Fpr11 : double; - Fpr12 : double; - Fpr13 : double; - Fpr14 : double; - Fpr15 : double; - Fpr16 : double; - Fpr17 : double; - Fpr18 : double; - Fpr19 : double; - Fpr20 : double; - Fpr21 : double; - Fpr22 : double; - Fpr23 : double; - Fpr24 : double; - Fpr25 : double; - Fpr26 : double; - Fpr27 : double; - Fpr28 : double; - Fpr29 : double; - Fpr30 : double; - Fpr31 : double; - Fpscr : double; - Gpr0 : DWORD; - Gpr1 : DWORD; - Gpr2 : DWORD; - Gpr3 : DWORD; - Gpr4 : DWORD; - Gpr5 : DWORD; - Gpr6 : DWORD; - Gpr7 : DWORD; - Gpr8 : DWORD; - Gpr9 : DWORD; - Gpr10 : DWORD; - Gpr11 : DWORD; - Gpr12 : DWORD; - Gpr13 : DWORD; - Gpr14 : DWORD; - Gpr15 : DWORD; - Gpr16 : DWORD; - Gpr17 : DWORD; - Gpr18 : DWORD; - Gpr19 : DWORD; - Gpr20 : DWORD; - Gpr21 : DWORD; - Gpr22 : DWORD; - Gpr23 : DWORD; - Gpr24 : DWORD; - Gpr25 : DWORD; - Gpr26 : DWORD; - Gpr27 : DWORD; - Gpr28 : DWORD; - Gpr29 : DWORD; - Gpr30 : DWORD; - Gpr31 : DWORD; - Cr : DWORD; - Xer : DWORD; - Msr : DWORD; - Iar : DWORD; - Lr : DWORD; - Ctr : DWORD; - ContextFlags : DWORD; - Fill : array[0..2] of DWORD; - Dr0 : DWORD; - Dr1 : DWORD; - Dr2 : DWORD; - Dr3 : DWORD; - Dr4 : DWORD; - Dr5 : DWORD; - Dr6 : DWORD; - Dr7 : DWORD; - end; - _STACK_FRAME_HEADER = record // GPR 1 points here - BackChain : DWORD; // Addr of previous frame - Reserved1 : DWORD; // Reserved - - Parameter0 : DWORD; // First 8 parameter words are - Parameter1 : DWORD; // always present - Parameter2 : DWORD; - Parameter3 : DWORD; - Parameter4 : DWORD; - Parameter5 : DWORD; - Parameter6 : DWORD; - Parameter7 : DWORD; - end; - - PSTACK_FRAME_HEADER=^STACK_FRAME_HEADER; - {$endif _PPC_} //~winnt - - {$ifdef _MPPC_} //+winnt all block - type - CONTEXT = record - Fpr0 : double; - Fpr1 : double; - Fpr2 : double; - Fpr3 : double; - Fpr4 : double; - Fpr5 : double; - Fpr6 : double; - Fpr7 : double; - Fpr8 : double; - Fpr9 : double; - Fpr10 : double; - Fpr11 : double; - Fpr12 : double; - Fpr13 : double; - Fpr14 : double; - Fpr15 : double; - Fpr16 : double; - Fpr17 : double; - Fpr18 : double; - Fpr19 : double; - Fpr20 : double; - Fpr21 : double; - Fpr22 : double; - Fpr23 : double; - Fpr24 : double; - Fpr25 : double; - Fpr26 : double; - Fpr27 : double; - Fpr28 : double; - Fpr29 : double; - Fpr30 : double; - Fpr31 : double; - Fpscr : double; - Gpr0 : DWORD; - Gpr1 : DWORD; - Gpr2 : DWORD; - Gpr3 : DWORD; - Gpr4 : DWORD; - Gpr5 : DWORD; - Gpr6 : DWORD; - Gpr7 : DWORD; - Gpr8 : DWORD; - Gpr9 : DWORD; - Gpr10 : DWORD; - Gpr11 : DWORD; - Gpr12 : DWORD; - Gpr13 : DWORD; - Gpr14 : DWORD; - Gpr15 : DWORD; - Gpr16 : DWORD; - Gpr17 : DWORD; - Gpr18 : DWORD; - Gpr19 : DWORD; - Gpr20 : DWORD; - Gpr21 : DWORD; - Gpr22 : DWORD; - Gpr23 : DWORD; - Gpr24 : DWORD; - Gpr25 : DWORD; - Gpr26 : DWORD; - Gpr27 : DWORD; - Gpr28 : DWORD; - Gpr29 : DWORD; - Gpr30 : DWORD; - Gpr31 : DWORD; - Cr : DWORD; - Xer : DWORD; - Msr : DWORD; - Iar : DWORD; - Lr : DWORD; - Ctr : DWORD; - ContextFlags : DWORD; - Fill : array[0..2] of DWORD; - Dr0 : DWORD; - Dr1 : DWORD; - Dr2 : DWORD; - Dr3 : DWORD; - Dr4 : DWORD; - Dr5 : DWORD; - Dr6 : DWORD; - Dr7 : DWORD; - end; - _STACK_FRAME_HEADER = record // GPR 1 points here - BackChain : DWORD; // Addr of previous frame - GlueSaved1 : DWORD; // Used by glue code - GlueSaved2 : DWORD; - Reserved1 : DWORD; - Spare1 : DWORD; - Spare2 : DWORD; - - Parameter0 : DWORD; // First 8 parameter words are - Parameter1 : DWORD; // always present - Parameter2 : DWORD; - Parameter3 : DWORD; - Parameter4 : DWORD; - Parameter5 : DWORD; - Parameter6 : DWORD; - Parameter7 : DWORD; - end; - - PSTACK_FRAME_HEADER=^STACK_FRAME_HEADER; - - {$endif _MPPC_} //+winnt - - {$ifdef _IA64_} //+winnt all block - type - CONTEXT = record - - ContextFlags : DWORD; - Fill1 : array[0..2] of DWORD; - DbI0 : ULONGLONG; // Instruction debug registers - DbI1 : ULONGLONG; - DbI2 : ULONGLONG; - DbI3 : ULONGLONG; - DbI4 : ULONGLONG; - DbI5 : ULONGLONG; - DbI6 : ULONGLONG; - DbI7 : ULONGLONG; - - DbD0 : ULONGLONG; // Data debug registers - DbD1 : ULONGLONG; - DbD2 : ULONGLONG; - DbD3 : ULONGLONG; - DbD4 : ULONGLONG; - DbD5 : ULONGLONG; - DbD6 : ULONGLONG; - DbD7 : ULONGLONG; - - FltS0 : FLOAT128; // Lower floating point (f2-f5) - saved (preserved) - FltS1 : FLOAT128; - FltS2 : FLOAT128; - FltS3 : FLOAT128; - FltT0 : FLOAT128; // Lower floating point (f6-f15) - temporary (volatile) - FltT1 : FLOAT128; - FltT2 : FLOAT128; - FltT3 : FLOAT128; - FltT4 : FLOAT128; - FltT5 : FLOAT128; - FltT6 : FLOAT128; - FltT7 : FLOAT128; - FltT8 : FLOAT128; - FltT9 : FLOAT128; - FltS4 : FLOAT128; // Higher floating point (f16-f31) - saved (preserved) - FltS5 : FLOAT128; - FltS6 : FLOAT128; - FltS7 : FLOAT128; - FltS8 : FLOAT128; - FltS9 : FLOAT128; - FltS10 : FLOAT128; - FltS11 : FLOAT128; - FltS12 : FLOAT128; - FltS13 : FLOAT128; - FltS14 : FLOAT128; - FltS15 : FLOAT128; - FltS16 : FLOAT128; - FltS17 : FLOAT128; - FltS18 : FLOAT128; - FltS19 : FLOAT128; - - FltF32 : FLOAT128; // Higher floating point (f32-f127) - temporary (volatile) - FltF33 : FLOAT128; - FltF34 : FLOAT128; - FltF35 : FLOAT128; - FltF36 : FLOAT128; - FltF37 : FLOAT128; - FltF38 : FLOAT128; - FltF39 : FLOAT128; - - FltF40 : FLOAT128; - FltF41 : FLOAT128; - FltF42 : FLOAT128; - FltF43 : FLOAT128; - FltF44 : FLOAT128; - FltF45 : FLOAT128; - FltF46 : FLOAT128; - FltF47 : FLOAT128; - FltF48 : FLOAT128; - FltF49 : FLOAT128; - - FltF50 : FLOAT128; - FltF51 : FLOAT128; - FltF52 : FLOAT128; - FltF53 : FLOAT128; - FltF54 : FLOAT128; - FltF55 : FLOAT128; - FltF56 : FLOAT128; - FltF57 : FLOAT128; - FltF58 : FLOAT128; - FltF59 : FLOAT128; - - FltF60 : FLOAT128; - FltF61 : FLOAT128; - FltF62 : FLOAT128; - FltF63 : FLOAT128; - FltF64 : FLOAT128; - FltF65 : FLOAT128; - FltF66 : FLOAT128; - FltF67 : FLOAT128; - FltF68 : FLOAT128; - FltF69 : FLOAT128; - - FltF70 : FLOAT128; - FltF71 : FLOAT128; - FltF72 : FLOAT128; - FltF73 : FLOAT128; - FltF74 : FLOAT128; - FltF75 : FLOAT128; - FltF76 : FLOAT128; - FltF77 : FLOAT128; - FltF78 : FLOAT128; - FltF79 : FLOAT128; - - FltF80 : FLOAT128; - FltF81 : FLOAT128; - FltF82 : FLOAT128; - FltF83 : FLOAT128; - FltF84 : FLOAT128; - FltF85 : FLOAT128; - FltF86 : FLOAT128; - FltF87 : FLOAT128; - FltF88 : FLOAT128; - FltF89 : FLOAT128; - - FltF90 : FLOAT128; - FltF91 : FLOAT128; - FltF92 : FLOAT128; - FltF93 : FLOAT128; - FltF94 : FLOAT128; - FltF95 : FLOAT128; - FltF96 : FLOAT128; - FltF97 : FLOAT128; - FltF98 : FLOAT128; - FltF99 : FLOAT128; - - FltF100 : FLOAT128; - FltF101 : FLOAT128; - FltF102 : FLOAT128; - FltF103 : FLOAT128; - FltF104 : FLOAT128; - FltF105 : FLOAT128; - FltF106 : FLOAT128; - FltF107 : FLOAT128; - FltF108 : FLOAT128; - FltF109 : FLOAT128; - - FltF110 : FLOAT128; - FltF111 : FLOAT128; - FltF112 : FLOAT128; - FltF113 : FLOAT128; - FltF114 : FLOAT128; - FltF115 : FLOAT128; - FltF116 : FLOAT128; - FltF117 : FLOAT128; - FltF118 : FLOAT128; - FltF119 : FLOAT128; - - FltF120 : FLOAT128; - FltF121 : FLOAT128; - FltF122 : FLOAT128; - FltF123 : FLOAT128; - FltF124 : FLOAT128; - FltF125 : FLOAT128; - FltF126 : FLOAT128; - FltF127 : FLOAT128; - - StFPSR : ULONGLONG; // FP status - StFSR : ULONGLONG; // x86 FP status (a copy of AR28) - StFIR : ULONGLONG; // x86 FP status (a copy of AR29) - StFDR : ULONGLONG; // x86 FP status (a copy of AR30) - - IntGp : ULONGLONG; // global pointer (r1) - temporary (volatile) - IntT0 : ULONGLONG; // integer registers (r2-r3) - temporary (volatile) - IntT1 : ULONGLONG; - IntS0 : ULONGLONG; // integer registers (r4-r7) - saved (preserved) - IntS1 : ULONGLONG; - IntS2 : ULONGLONG; - IntS3 : ULONGLONG; - IntV0 : ULONGLONG; // return value (r8) - temporary (volatile) - IntT2 : ULONGLONG; // integer registers (r9-r11) - temporary (volatile) - IntT3 : ULONGLONG; - IntT4 : ULONGLONG; - IntSP : ULONGLONG; // stack pointer (r12) - special - IntTeb : ULONGLONG; // teb (r13) - special - IntT5 : ULONGLONG; // integer registers (r14-r31) - temporary (volatile) - IntT6 : ULONGLONG; - IntT7 : ULONGLONG; - IntT8 : ULONGLONG; - IntT9 : ULONGLONG; - IntT10 : ULONGLONG; - IntT11 : ULONGLONG; - IntT12 : ULONGLONG; - IntT13 : ULONGLONG; - IntT14 : ULONGLONG; - IntT15 : ULONGLONG; - IntT16 : ULONGLONG; - IntT17 : ULONGLONG; - IntT18 : ULONGLONG; - IntT19 : ULONGLONG; - IntT20 : ULONGLONG; - IntT21 : ULONGLONG; - IntT22 : ULONGLONG; - - IntNats : ULONGLONG; // Nat bits for general registers - // r1-r31 in bit positions 1 to 31. - Preds : ULONGLONG; // predicates - saved (preserved) - BrRp : ULONGLONG; // return pointer (b0) - saved (preserved) - BrS0 : ULONGLONG; // branch registers (b1-b5) - saved (preserved) - BrS1 : ULONGLONG; - BrS2 : ULONGLONG; - BrS3 : ULONGLONG; - BrS4 : ULONGLONG; - - BrT0 : ULONGLONG; // branch registers (b6-b7) - temporary (volatile) - BrT1 : ULONGLONG; - // iA32 related Interger registers - SegCSD : ULONGLONG; // iA32 CSDescriptor (Ar25) - SegSSD : ULONGLONG; // iA32 SSDescriptor (Ar26) - - // Other application registers - ApUNAT : ULONGLONG; // User Nat collection register - saved (preserved) - ApLC : ULONGLONG; // Loop counter register - saved (preserved) - ApEC : ULONGLONG; // Epilog counter register - saved (preserved) - ApCCV : ULONGLONG; // CMPXCHG value register - temporary (volatile) - ApDCR : ULONGLONG; // Default control register (TBD) - - // Register stack info - RsPFS : ULONGLONG; // Previous function state - saved (preserved) - RsBSP : ULONGLONG; // Backing store pointer - saved (preserved) - RsBSPSTORE : ULONGLONG; // BSP Store - saved (preserved) - RsRSC : ULONGLONG; // RSE configuration - temporary (volatile) - RsRNAT : ULONGLONG; // RSE Nat collection register - saved (preserved) - // iA32 related control registers - Eflag : ULONGLONG; // Eflag copy of Ar24 - Cflag : ULONGLONG; // Cr0+Cr4 copy of Ar27 - - // Trap Status Information - StIPSR : ULONGLONG; // Interruption Processor Status - StIIP : ULONGLONG; // Interruption IP - StIFS : ULONGLONG; // Interruption Function State - - end; - - FLOATING_SAVE_AREA = record - ControlWord : DWORD; - StatusWord : DWORD; - TagWord : DWORD; - ErrorOffset : DWORD; - ErrorSelector : DWORD; - DataOffset : DWORD; - DataSelector : DWORD; - RegisterArea : array[0..SIZE_OF_80387_REGISTERS-1] of BYTE; - Cr0NpxState : DWORD; - end; - _FLOATING_SAVE_AREA = FLOATING_SAVE_AREA; - TFLOATINGSAVEAREA = FLOATING_SAVE_AREA; - PFLOATING_SAVE_AREA = ^FLOATING_SAVE_AREA; - - CONTEXT86 = record - ContextFlags : DWORD; - Dr0 : DWORD; - Dr1 : DWORD; - Dr2 : DWORD; - Dr3 : DWORD; - Dr6 : DWORD; - Dr7 : DWORD; - FloatSave : FLOATING_SAVE_AREA; - SegGs : DWORD; - SegFs : DWORD; - SegEs : DWORD; - SegDs : DWORD; - Edi : DWORD; - Esi : DWORD; - Ebx : DWORD; - Edx : DWORD; - Ecx : DWORD; - Eax : DWORD; - Ebp : DWORD; - Eip : DWORD; - SegCs : DWORD; - EFlags : DWORD; - Esp : DWORD; - SegSs : DWORD; - end; - - LDT_ENTRY = record - LimitLow : WORD; - BaseLow : WORD; - HighWord : record - case longint of - 0 : ( Bytes : record - BaseMid : BYTE; - Flags1 : BYTE; - Flags2 : BYTE; - BaseHi : BYTE; - end ); - 1 : ( Bits : record - flag0 : longint; - end ); - end; - end; - LPLDT_ENTRY = ^LDT_ENTRY; - PLDT_ENTRY = ^LDT_ENTRY; - _LDT_ENTRY = LDT_ENTRY; - TLDTENTRY = LDT_ENTRY; - PLDTENTRY = ^LDT_ENTRY; - - PLABEL_DESCRIPTOR = record - EntryPoint : ULONGLONG; - GlobalPointer : ULONGLONG; - end; - _PLABEL_DESCRIPTOR = PLABEL_DESCRIPTOR; - PPLABEL_DESCRIPTOR = ^PLABEL_DESCRIPTOR; - - - {$endif _IA64_} //+winnt - - {$ifdef SHx} //+winnt all block added - //These are the debug or break registers on the SH3 - DEBUG_REGISTERS = RECORD - BarA : ULONG; - BasrA : UCHAR; - BamrA : UCHAR; - BbrA : USHORT; - BarB : ULONG; - BasrB : UCHAR; - BamrB : UCHAR; - BbrB : USHORT; - BdrB : ULONG; - BdmrB : ULONG; - Brcr : USHORT; - Align : USHORT; - end; - _DEBUG_REGISTERS=DEBUG_REZGISTERS; - PDEBUG_REGISTERS=^DEBUG_REZGISTERS; - - CONTEXT = record - ContextFlags : ULONG; - PR : ULONG; - MACH : ULONG; - MACL : ULONG; - GBR : ULONG; - R0 : ULONG; - R1 : ULONG; - R2 : ULONG; - R3 : ULONG; - R4 : ULONG; - R5 : ULONG; - R6 : ULONG; - R7 : ULONG; - R8 : ULONG; - R9 : ULONG; - R10 : ULONG; - R11 : ULONG; - R12 : ULONG; - R13 : ULONG; - R14 : ULONG; - R15 : ULONG; - - // N.B. The registers r15 and ra are defined in the integer section, - // but are considered part of the control context rather than part of - // the integer context. - // - - Fir : ULONG; - Psr : ULONG; - - {$ifndef SH3e} - {$ifndef SH4} - OldStuff : Array[0..1] of ULONG; - DebugRegisters : DEBUG_REGISTERS; - DSR : ULONG; - MOD_ : ULONG; // MOD replaced by MOD_ - RS : ULONG; - RE : ULONG; - A0 : ULONG; - A1 : ULONG; - M0 : ULONG; - M1 : ULONG; - X0 : ULONG; - X1 : ULONG; - Y0 : ULONG; - Y1 : ULONG; - // The guard bit registers are 8 bits long, but can only be saved and - // restored using 16 or 32 bit moves. Note, the contents of the guard - // bit register are in the upper 8 bits. - A0G : USHORT; - A1G : USHORT; - {$else} - Fpscr : ULONG; - Fpul : ULONG; - FRegs : Array[0..15] of ULONG; - xFRegs : Array[0..15] of ULONG; - {$endif SH4} - {$else} - Fpscr : ULONG; - Fpul : ULONG; - FRegs : Array[0..15] of ULONG; - {$endif SH3e} - end; - - {$endif SHx} //+winnt - - {$ifdef CPUARM} //+winnt all block added - CONTEXT = record - ContextFlags : ULONG; - R0 : ULONG; - R1 : ULONG; - R2 : ULONG; - R3 : ULONG; - R4 : ULONG; - R5 : ULONG; - R6 : ULONG; - R7 : ULONG; - R8 : ULONG; - R9 : ULONG; - R10 : ULONG; - R11 : ULONG; - R12 : ULONG; - - SP : ULONG; - Lr : ULONG; - Pc : ULONG; - Psr : ULONG; - Fpscr : ULONG; - FpExc : ULONG; - S : Array [0..NUM_VFP_REGS] of ULONG; - FpExtra : Array [0..NUM_EXTRA_CONTROL_REGS-1] of ULONG; - end; - {$endif CPUARM} //+winnt - - LPCONTEXT = ^CONTEXT; - _CONTEXT = CONTEXT; - TCONTEXT = CONTEXT; - PCONTEXT = ^CONTEXT; //winnt - - type - - LIST_ENTRY = record //winnt - Flink : ^_LIST_ENTRY; - Blink : ^_LIST_ENTRY; - end; - _LIST_ENTRY = LIST_ENTRY; - TLISTENTRY = LIST_ENTRY; - PLISTENTRY = ^LIST_ENTRY; - - CRITICAL_SECTION_DEBUG = record - _Type : WORD; - CreatorBackTraceIndex : WORD; - CriticalSection : ^_CRITICAL_SECTION; - ProcessLocksList : LIST_ENTRY; - EntryCount : DWORD; - ContentionCount : DWORD; - Depth : DWORD; - OwnerBackTrace : array[0..4] of PVOID; - end; - LPCRITICAL_SECTION_DEBUG = ^CRITICAL_SECTION_DEBUG; - PCRITICAL_SECTION_DEBUG = ^CRITICAL_SECTION_DEBUG; - _CRITICAL_SECTION_DEBUG = CRITICAL_SECTION_DEBUG; - TCRITICALSECTIONDEBUG = CRITICAL_SECTION_DEBUG; - PCRITICALSECTIONDEBUG = ^CRITICAL_SECTION_DEBUG; - - CRITICAL_SECTION = TRTLCriticalSection; - _CRITICAL_SECTION = TRTLCriticalSection; - TCRITICAL_SECTION = TRTLCriticalSection; - PCRITICAL_SECTION = PRTLCriticalSection; - LPCRITICAL_SECTION = PRTLCriticalSection; - TCRITICALSECTION = TRTLCriticalSection; - PCRITICALSECTION = PRTLCriticalSection; - - { SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode; } - - SECURITY_QUALITY_OF_SERVICE = record - Length : DWORD; - ImpersonationLevel : SECURITY_IMPERSONATION_LEVEL; - ContextTrackingMode : WINBOOL; - EffectiveOnly : BOOLEAN; - end; - PSECURITY_QUALITY_OF_SERVICE = ^SECURITY_QUALITY_OF_SERVICE; - _SECURITY_QUALITY_OF_SERVICE = SECURITY_QUALITY_OF_SERVICE; - TSECURITYQUALITYOFSERVICE = SECURITY_QUALITY_OF_SERVICE; - PSECURITYQUALITYOFSERVICE = ^SECURITY_QUALITY_OF_SERVICE; - - CONVCONTEXT = record - cb : UINT; - wFlags : UINT; - wCountryID : UINT; - iCodePage : longint; - dwLangID : DWORD; - dwSecurity : DWORD; - qos : SECURITY_QUALITY_OF_SERVICE; - end; - tagCONVCONTEXT = CONVCONTEXT; - TCONVCONTEXT = CONVCONTEXT; - PCONVCONTEXT = ^CONVCONTEXT; - - CONVINFO = record - cb : DWORD; - hUser : DWORD; - hConvPartner : HCONV; - hszSvcPartner : HSZ; - hszServiceReq : HSZ; - hszTopic : HSZ; - hszItem : HSZ; - wFmt : UINT; - wType : UINT; - wStatus : UINT; - wConvst : UINT; - wLastError : UINT; - hConvList : HCONVLIST; - ConvCtxt : CONVCONTEXT; - _hwnd : HWND; - hwndPartner : HWND; - end; - tagCONVINFO = CONVINFO; - TCONVINFO = CONVINFO; - PCONVINFO = ^CONVINFO; - - COPYDATASTRUCT = record - dwData : DWORD; - cbData : DWORD; - lpData : PVOID; - end; - tagCOPYDATASTRUCT = COPYDATASTRUCT; - TCOPYDATASTRUCT = COPYDATASTRUCT; - PCOPYDATASTRUCT = ^COPYDATASTRUCT; - - CPINFO = record - MaxCharSize : UINT; - DefaultChar : array[0..(MAX_DEFAULTCHAR)-1] of BYTE; - LeadByte : array[0..(MAX_LEADBYTES)-1] of BYTE; - end; - LPCPINFO = ^CPINFO; - _cpinfo = CPINFO; - Tcpinfo = CPINFO; - Pcpinfo = ^CPINFO; - - CPLINFO = record - idIcon : longint; - idName : longint; - idInfo : longint; - lData : LONG; - end; - tagCPLINFO = CPLINFO; - TCPLINFO = CPLINFO; - PCPLINFO = ^CPLINFO; - - CREATE_PROCESS_DEBUG_INFO = record - hFile : HANDLE; - hProcess : HANDLE; - hThread : HANDLE; - lpBaseOfImage : LPVOID; - dwDebugInfoFileOffset : DWORD; - nDebugInfoSize : DWORD; - lpThreadLocalBase : LPVOID; - lpStartAddress : LPTHREAD_START_ROUTINE; - lpImageName : LPVOID; - fUnicode : WORD; - end; - _CREATE_PROCESS_DEBUG_INFO = CREATE_PROCESS_DEBUG_INFO; - TCREATEPROCESSDEBUGINFO = CREATE_PROCESS_DEBUG_INFO; - PCREATEPROCESSDEBUGINFO = ^CREATE_PROCESS_DEBUG_INFO; - - CREATE_THREAD_DEBUG_INFO = record - hThread : HANDLE; - lpThreadLocalBase : LPVOID; - lpStartAddress : LPTHREAD_START_ROUTINE; - end; - _CREATE_THREAD_DEBUG_INFO = CREATE_THREAD_DEBUG_INFO; - TCREATETHREADDEBUGINFO = CREATE_THREAD_DEBUG_INFO; - PCREATETHREADDEBUGINFO = ^CREATE_THREAD_DEBUG_INFO; - (* - TODO: sockets - typedef struct _SOCKET_ADDRESS { - LPSOCKADDR lpSockaddr ; - INT iSockaddrLength ; - } SOCKET_ADDRESS, PSOCKET_ADDRESS, LPSOCKET_ADDRESS; - } - { - typedef struct _CSADDR_INFO { - SOCKET_ADDRESS LocalAddr; - SOCKET_ADDRESS RemoteAddr; - INT iSocketType; - INT iProtocol; - } CSADDR_INFO; - *) - - CURRENCYFMT = record - NumDigits : UINT; - LeadingZero : UINT; - Grouping : UINT; - lpDecimalSep : LPTSTR; - lpThousandSep : LPTSTR; - NegativeOrder : UINT; - PositiveOrder : UINT; - lpCurrencySymbol : LPTSTR; - end; - _currencyfmt = CURRENCYFMT; - Tcurrencyfmt = CURRENCYFMT; - Pcurrencyfmt = ^CURRENCYFMT; - - CURSORSHAPE = record - xHotSpot : longint; - yHotSpot : longint; - cx : longint; - cy : longint; - cbWidth : longint; - Planes : BYTE; - BitsPixel : BYTE; - end; - LPCURSORSHAPE = ^CURSORSHAPE; - tagCURSORSHAPE = CURSORSHAPE; - TCURSORSHAPE = CURSORSHAPE; - PCURSORSHAPE = ^CURSORSHAPE; - - CWPRETSTRUCT = record - lResult : LRESULT; - lParam : LPARAM; - wParam : WPARAM; - message : DWORD; - hwnd : HWND; - end; - tagCWPRETSTRUCT = CWPRETSTRUCT; - TCWPRETSTRUCT = CWPRETSTRUCT; - PCWPRETSTRUCT = ^CWPRETSTRUCT; - - CWPSTRUCT = record - lParam : LPARAM; - wParam : WPARAM; - message : UINT; - hwnd : HWND; - end; - tagCWPSTRUCT = CWPSTRUCT; - TCWPSTRUCT = CWPSTRUCT; - PCWPSTRUCT = ^CWPSTRUCT; - - DATATYPES_INFO_1 = record - pName : LPTSTR; - end; - _DATATYPES_INFO_1 = DATATYPES_INFO_1; - TDATATYPESINFO1 = DATATYPES_INFO_1; - PDATATYPESINFO1 = ^DATATYPES_INFO_1; - - DDEACK = record - flag0 : word; - end; - TDDEACK = DDEACK; - PDDEACK = ^DDEACK; - const - bm_DDEACK_bAppReturnCode = $FF; - bp_DDEACK_bAppReturnCode = 0; - bm_DDEACK_reserved = $3F00; - bp_DDEACK_reserved = 8; - bm_DDEACK_fBusy = $4000; - bp_DDEACK_fBusy = 14; - bm_DDEACK_fAck = $8000; - bp_DDEACK_fAck = 15; - function bAppReturnCode(var a : DDEACK) : word; - procedure set_bAppReturnCode(var a : DDEACK; __bAppReturnCode : word); - function reserved(var a : DDEACK) : word; - procedure set_reserved(var a : DDEACK; __reserved : word); - function fBusy(var a : DDEACK) : word; - procedure set_fBusy(var a : DDEACK; __fBusy : word); - function fAck(var a : DDEACK) : word; - procedure set_fAck(var a : DDEACK; __fAck : word); - - type - - DDEADVISE = record - flag0 : word; - cfFormat : integer; - end; - TDDEADVISE = DDEADVISE; - PDDEADVISE = ^DDEADVISE; - const - bm_DDEADVISE_reserved = $3FFF; - bp_DDEADVISE_reserved = 0; - bm_DDEADVISE_fDeferUpd = $4000; - bp_DDEADVISE_fDeferUpd = 14; - bm_DDEADVISE_fAckReq = $8000; - bp_DDEADVISE_fAckReq = 15; - function reserved(var a : DDEADVISE) : word; - procedure set_reserved(var a : DDEADVISE; __reserved : word); - function fDeferUpd(var a : DDEADVISE) : word; - procedure set_fDeferUpd(var a : DDEADVISE; __fDeferUpd : word); - function fAckReq(var a : DDEADVISE) : word; - procedure set_fAckReq(var a : DDEADVISE; __fAckReq : word); - - type - - DDEDATA = record - flag0 : word; - cfFormat : integer; - Value : array[0..0] of BYTE; - end; - PDDEDATA = ^DDEDATA; - const - bm_DDEDATA_unused = $FFF; - bp_DDEDATA_unused = 0; - bm_DDEDATA_fResponse = $1000; - bp_DDEDATA_fResponse = 12; - bm_DDEDATA_fRelease = $2000; - bp_DDEDATA_fRelease = 13; - bm_DDEDATA_reserved = $4000; - bp_DDEDATA_reserved = 14; - bm_DDEDATA_fAckReq = $8000; - bp_DDEDATA_fAckReq = 15; - function unused(var a : DDEDATA) : word; - procedure set_unused(var a : DDEDATA; __unused : word); - function fResponse(var a : DDEDATA) : word; - procedure set_fResponse(var a : DDEDATA; __fResponse : word); - function fRelease(var a : DDEDATA) : word; - procedure set_fRelease(var a : DDEDATA; __fRelease : word); - function reserved(var a : DDEDATA) : word; - procedure set_reserved(var a : DDEDATA; __reserved : word); - function fAckReq(var a : DDEDATA) : word; - procedure set_fAckReq(var a : DDEDATA; __fAckReq : word); - - type - - DDELN = record - flag0 : word; - cfFormat : integer; - end; - TDDELN = DDELN; - PDDELN = ^DDELN; - const - bm_DDELN_unused = $1FFF; - bp_DDELN_unused = 0; - bm_DDELN_fRelease = $2000; - bp_DDELN_fRelease = 13; - bm_DDELN_fDeferUpd = $4000; - bp_DDELN_fDeferUpd = 14; - bm_DDELN_fAckReq = $8000; - bp_DDELN_fAckReq = 15; - function unused(var a : DDELN) : word; - procedure set_unused(var a : DDELN; __unused : word); - function fRelease(var a : DDELN) : word; - procedure set_fRelease(var a : DDELN; __fRelease : word); - function fDeferUpd(var a : DDELN) : word; - procedure set_fDeferUpd(var a : DDELN; __fDeferUpd : word); - function fAckReq(var a : DDELN) : word; - procedure set_fAckReq(var a : DDELN; __fAckReq : word); - - type - - DDEML_MSG_HOOK_DATA = record - uiLo : UINT; - uiHi : UINT; - cbData : DWORD; - Data : array[0..7] of DWORD; - end; - tagDDEML_MSG_HOOK_DATA = DDEML_MSG_HOOK_DATA; - TDDEMLMSGHOOKDATA = DDEML_MSG_HOOK_DATA; - PDDEMLMSGHOOKDATA = ^DDEML_MSG_HOOK_DATA; - - DDEPOKE = record - flag0 : word; - cfFormat : integer; - Value : array[0..0] of BYTE; - end; - TDDEPOKE = DDEPOKE; - PDDEPOKE = ^DDEPOKE; - const - bm_DDEPOKE_unused = $1FFF; - bp_DDEPOKE_unused = 0; - bm_DDEPOKE_fRelease = $2000; - bp_DDEPOKE_fRelease = 13; - bm_DDEPOKE_fReserved = $C000; - bp_DDEPOKE_fReserved = 14; - function unused(var a : DDEPOKE) : word; - procedure set_unused(var a : DDEPOKE; __unused : word); - function fRelease(var a : DDEPOKE) : word; - procedure set_fRelease(var a : DDEPOKE; __fRelease : word); - function fReserved(var a : DDEPOKE) : word; - procedure set_fReserved(var a : DDEPOKE; __fReserved : word); - - type - - DDEUP = record - flag0 : word; - cfFormat : integer; - rgb : array[0..0] of BYTE; - end; - TDDEUP = DDEUP; - PDDEUP = ^DDEUP; - const - bm_DDEUP_unused = $FFF; - bp_DDEUP_unused = 0; - bm_DDEUP_fAck = $1000; - bp_DDEUP_fAck = 12; - bm_DDEUP_fRelease = $2000; - bp_DDEUP_fRelease = 13; - bm_DDEUP_fReserved = $4000; - bp_DDEUP_fReserved = 14; - bm_DDEUP_fAckReq = $8000; - bp_DDEUP_fAckReq = 15; - function unused(var a : DDEUP) : word; - procedure set_unused(var a : DDEUP; __unused : word); - function fAck(var a : DDEUP) : word; - procedure set_fAck(var a : DDEUP; __fAck : word); - function fRelease(var a : DDEUP) : word; - procedure set_fRelease(var a : DDEUP; __fRelease : word); - function fReserved(var a : DDEUP) : word; - procedure set_fReserved(var a : DDEUP; __fReserved : word); - function fAckReq(var a : DDEUP) : word; - procedure set_fAckReq(var a : DDEUP; __fAckReq : word); - - type - - // definition of _exception struct - this struct is passed to the matherr - // routine when a floating point exception is detected - _EXCEPTION = record //+stdlib - type_ : Integer; //identifier type replaced by Type_ for compilation - Name : PChar; // name of function where error occured - arg1 : double; // first argument to function - arg2 : double; // second argument (if any) to function - retval : double; // value to be returned by function - end; - - EXCEPTION_RECORD = record //winnt - ExceptionCode : DWORD; - ExceptionFlags : DWORD; - ExceptionRecord : ^_EXCEPTION_RECORD; - ExceptionAddress : PVOID; - NumberParameters : DWORD; - ExceptionInformation : array[0..(EXCEPTION_MAXIMUM_PARAMETERS)-1] of Pointer; //~winnt, was DWORD, SDK:ULONG_PTR - end; - PEXCEPTION_RECORD = ^EXCEPTION_RECORD; - _EXCEPTION_RECORD = EXCEPTION_RECORD; - TEXCEPTIONRECORD = EXCEPTION_RECORD; - PEXCEPTIONRECORD = ^EXCEPTION_RECORD; - - EXCEPTION_DEBUG_INFO = record - ExceptionRecord : EXCEPTION_RECORD; - dwFirstChance : DWORD; - end; - PEXCEPTION_DEBUG_INFO = ^EXCEPTION_DEBUG_INFO; - _EXCEPTION_DEBUG_INFO = EXCEPTION_DEBUG_INFO; - TEXCEPTIONDEBUGINFO = EXCEPTION_DEBUG_INFO; - PEXCEPTIONDEBUGINFO = ^EXCEPTION_DEBUG_INFO; - - EXIT_PROCESS_DEBUG_INFO = record - dwExitCode : DWORD; - end; - _EXIT_PROCESS_DEBUG_INFO = EXIT_PROCESS_DEBUG_INFO; - TEXITPROCESSDEBUGINFO = EXIT_PROCESS_DEBUG_INFO; - PEXITPROCESSDEBUGINFO = ^EXIT_PROCESS_DEBUG_INFO; - - - EXIT_THREAD_DEBUG_INFO = record - dwExitCode : DWORD; - end; - _EXIT_THREAD_DEBUG_INFO = EXIT_THREAD_DEBUG_INFO; - TEXITTHREADDEBUGINFO = EXIT_THREAD_DEBUG_INFO; - PEXITTHREADDEBUGINFO = ^EXIT_THREAD_DEBUG_INFO; - - LOAD_DLL_DEBUG_INFO = record - hFile : HANDLE; - lpBaseOfDll : LPVOID; - dwDebugInfoFileOffset : DWORD; - nDebugInfoSize : DWORD; - lpImageName : LPVOID; - fUnicode : WORD; - end; - _LOAD_DLL_DEBUG_INFO = LOAD_DLL_DEBUG_INFO; - TLOADDLLDEBUGINFO = LOAD_DLL_DEBUG_INFO; - PLOADDLLDEBUGINFO = ^LOAD_DLL_DEBUG_INFO; - - UNLOAD_DLL_DEBUG_INFO = record - lpBaseOfDll : LPVOID; - end; - _UNLOAD_DLL_DEBUG_INFO = UNLOAD_DLL_DEBUG_INFO; - TUNLOADDLLDEBUGINFO = UNLOAD_DLL_DEBUG_INFO; - PUNLOADDLLDEBUGINFO = ^UNLOAD_DLL_DEBUG_INFO; - - OUTPUT_DEBUG_STRING_INFO = record - lpDebugStringData : LPSTR; - fUnicode : WORD; - nDebugStringLength : WORD; - end; - _OUTPUT_DEBUG_STRING_INFO = OUTPUT_DEBUG_STRING_INFO; - TOUTPUTDEBUGSTRINGINFO = OUTPUT_DEBUG_STRING_INFO; - POUTPUTDEBUGSTRINGINFO = ^OUTPUT_DEBUG_STRING_INFO; - - RIP_INFO = record - dwError : DWORD; - dwType : DWORD; - end; - _RIP_INFO = RIP_INFO; - TRIPINFO = RIP_INFO; - PRIPINFO = ^RIP_INFO; - - DEBUG_EVENT = record - dwDebugEventCode : DWORD; - dwProcessId : DWORD; - dwThreadId : DWORD; - u : record - case longint of - 0 : ( Exception : EXCEPTION_DEBUG_INFO ); - 1 : ( CreateThread : CREATE_THREAD_DEBUG_INFO ); - 2 : ( CreateProcessInfo : CREATE_PROCESS_DEBUG_INFO ); - 3 : ( ExitThread : EXIT_THREAD_DEBUG_INFO ); - 4 : ( ExitProcess : EXIT_PROCESS_DEBUG_INFO ); - 5 : ( LoadDll : LOAD_DLL_DEBUG_INFO ); - 6 : ( UnloadDll : UNLOAD_DLL_DEBUG_INFO ); - 7 : ( DebugString : OUTPUT_DEBUG_STRING_INFO ); - 8 : ( RipInfo : RIP_INFO ); - end; - end; - LPDEBUG_EVENT = ^DEBUG_EVENT; - _DEBUG_EVENT = DEBUG_EVENT; - TDEBUGEVENT = DEBUG_EVENT; - PDEBUGEVENT = ^DEBUG_EVENT; - - DEBUGHOOKINFO = record - idThread : DWORD; - idThreadInstaller : DWORD; - lParam : LPARAM; - wParam : WPARAM; - code : longint; - end; - tagDEBUGHOOKINFO = DEBUGHOOKINFO; - TDEBUGHOOKINFO = DEBUGHOOKINFO; - PDEBUGHOOKINFO = ^DEBUGHOOKINFO; - - DELETEITEMSTRUCT = record - CtlType : UINT; - CtlID : UINT; - itemID : UINT; - hwndItem : HWND; - itemData : UINT; - end; - tagDELETEITEMSTRUCT = DELETEITEMSTRUCT; - TDELETEITEMSTRUCT = DELETEITEMSTRUCT; - PDELETEITEMSTRUCT = ^DELETEITEMSTRUCT; - - DEV_BROADCAST_HDR = record - dbch_size : ULONG; - dbch_devicetype : ULONG; - dbch_reserved : ULONG; - end; - PDEV_BROADCAST_HDR = ^DEV_BROADCAST_HDR; - _DEV_BROADCAST_HDR = DEV_BROADCAST_HDR; - TDEVBROADCASTHDR = DEV_BROADCAST_HDR; - PDEVBROADCASTHDR = ^DEV_BROADCAST_HDR; - - DEV_BROADCAST_OEM = record - dbco_size : ULONG; - dbco_devicetype : ULONG; - dbco_reserved : ULONG; - dbco_identifier : ULONG; - dbco_suppfunc : ULONG; - end; - PDEV_BROADCAST_OEM = ^DEV_BROADCAST_OEM; - _DEV_BROADCAST_OEM = DEV_BROADCAST_OEM; - TDEVBROADCASTOEM = DEV_BROADCAST_OEM; - PDEVBROADCASTOEM = ^DEV_BROADCAST_OEM; - - DEV_BROADCAST_PORT = record - dbcp_size : ULONG; - dbcp_devicetype : ULONG; - dbcp_reserved : ULONG; - dbcp_name : array[0..0] of char; - end; - PDEV_BROADCAST_PORT = ^DEV_BROADCAST_PORT; - _DEV_BROADCAST_PORT = DEV_BROADCAST_PORT; - TDEVBROADCASTPORT = DEV_BROADCAST_PORT; - PDEVBROADCASTPORT = ^DEV_BROADCAST_PORT; - - _DEV_BROADCAST_USERDEFINED = record - dbud_dbh : _DEV_BROADCAST_HDR; - dbud_szName : array[0..0] of char; - dbud_rgbUserDefined : array[0..0] of BYTE; - end; - TDEVBROADCASTUSERDEFINED = _DEV_BROADCAST_USERDEFINED; - PDEVBROADCASTUSERDEFINED = ^_DEV_BROADCAST_USERDEFINED; - - DEV_BROADCAST_VOLUME = record - dbcv_size : ULONG; - dbcv_devicetype : ULONG; - dbcv_reserved : ULONG; - dbcv_unitmask : ULONG; - dbcv_flags : USHORT; - end; - PDEV_BROADCAST_VOLUME = ^DEV_BROADCAST_VOLUME; - _DEV_BROADCAST_VOLUME = DEV_BROADCAST_VOLUME; - TDEVBROADCASTVOLUME = DEV_BROADCAST_VOLUME; - PDEVBROADCASTVOLUME = ^DEV_BROADCAST_VOLUME; - - DEVMODEA = record - dmDeviceName : array[0.. CCHDEVICENAME-1] of BCHAR; - dmSpecVersion : WORD; - dmDriverVersion: WORD; - dmSize : WORD; - dmDriverExtra : WORD; - dmFields : DWORD; - dmOrientation : short; - dmPaperSize : short; - dmPaperLength : short; - dmPaperWidth : short; - dmScale : short; - dmCopies : short; - dmDefaultSource: short; - dmPrintQuality : short; - dmColor : short; - dmDuplex : short; - dmYResolution : short; - dmTTOption : short; - dmCollate : short; - dmFormName : array [0..CCHFORMNAME-1] of BCHAR; - dmLogPixels : WORD; - dmBitsPerPel : DWORD; - dmPelsWidth : DWORD; - dmPelsHeight : DWORD; - dmDisplayFlags : DWORD; - dmDisplayFrequency : DWORD; - dmICMMethod : DWORD; - dmICMIntent : DWORD; - dmMediaType : DWORD; - dmDitherType : DWORD; - dmReserved1 : DWORD; - dmReserved2 : DWORD; - dmPanningWidth : DWORD; - dmPanningHeight: DWORD; - dmDisplayOrientation : DWORD; - end; - _DEVICEMODE1=DEVMODEA; - PDEVMODEA=^DEVMODEA; - NPDEVMODEA=^DEVMODEA; - LPDEVMODEA=^DEVMODEA; - - DEVMODEW = record - dmDeviceName : array[0.. CCHDEVICENAME-1] of WCHAR; - dmSpecVersion : WORD; - dmDriverVersion: WORD; - dmSize : WORD; - dmDriverExtra : WORD; - dmFields : DWORD; - dmOrientation : short; - dmPaperSize : short; - dmPaperLength : short; - dmPaperWidth : short; - dmScale : short; - dmCopies : short; - dmDefaultSource: short; - dmPrintQuality : short; - dmColor : short; - dmDuplex : short; - dmYResolution : short; - dmTTOption : short; - dmCollate : short; - dmFormName : array [0..CCHFORMNAME-1] of wchar; - dmLogPixels : WORD; - dmBitsPerPel : DWORD; - dmPelsWidth : DWORD; - dmPelsHeight : DWORD; - dmDisplayFlags : DWORD; - dmDisplayFrequency : DWORD; - dmDisplayOrientation : DWORD; - end; - - LPDEVMODEW = ^DEVMODEW; - _devicemodeW = DEVMODEW; - devicemodeW = DEVMODEW; - TDeviceModeW = DEVMODEW; - PDeviceModeW = LPDEVMODEW; - TDEVMODEW = DEVMODEW; - PDEVMODEW = LPDEVMODEW; - -{$IFDEF UNICODE} - DEVMODE=DEVMODEW; - LPDEVMODE = ^DEVMODEW; - _devicemode = DEVMODEW; - devicemode = DEVMODEW; - tdevicemode = DEVMODEW; - tdevicemodeA = DEVMODEW; - PDeviceModeA = LPDEVMODEW; - PDeviceMode = LPDEVMODEW; - TDEVMODE = DEVMODEW; - PDEVMODE = LPDEVMODEW; -{$ELSE UNICODE} - DEVMODE=DEVMODEA; - LPDEVMODE = ^DEVMODEA; - _devicemode = DEVMODEA; - devicemode = DEVMODEA; - tdevicemode = DEVMODEA; - tdevicemodeA = DEVMODEA; - PDeviceModeA = LPDEVMODEA; - PDeviceMode = LPDEVMODEA; - TDEVMODE = DEVMODEA; - PDEVMODE = LPDEVMODEA; -{$ENDIF UNICODE} - - DEVNAMES = record - wDriverOffset : WORD; - wDeviceOffset : WORD; - wOutputOffset : WORD; - wDefault : WORD; - end; - LPDEVNAMES = ^DEVNAMES; - tagDEVNAMES = DEVNAMES; - TDEVNAMES = DEVNAMES; - PDEVNAMES = ^DEVNAMES; - - DIBSECTION = record - dsBm : BITMAP; - dsBmih : BITMAPINFOHEADER; - dsBitfields : array[0..2] of DWORD; - dshSection : HANDLE; - dsOffset : DWORD; - end; - tagDIBSECTION = DIBSECTION; - TDIBSECTION = DIBSECTION; - PDIBSECTION = ^DIBSECTION; - - LARGE_INTEGER = record //winnt - case byte of - 0: (LowPart : DWORD; - HighPart : LONG); - 1: (QuadPart : LONGLONG); - end; - PLARGE_INTEGER = ^LARGE_INTEGER; //winnt - _LARGE_INTEGER = LARGE_INTEGER; //winnt - - TLargeInteger = Int64; - PLargeInteger = ^TLargeInteger; - - ULARGE_INTEGER = record - case byte of - 0: (LowPart : DWORD; - HighPart : DWORD); - 1: (QuadPart : LONGLONG); - end; - PULARGE_INTEGER = ^ULARGE_INTEGER; - _ULARGE_INTEGER = ULARGE_INTEGER; - - TULargeInteger = QWord; - PULargeInteger = ^TULargeInteger; - - DISK_GEOMETRY = record - Cylinders : LARGE_INTEGER; - MediaType : MEDIA_TYPE; - TracksPerCylinder : DWORD; - SectorsPerTrack : DWORD; - BytesPerSector : DWORD; - end; - _DISK_GEOMETRY = DISK_GEOMETRY; - TDISKGEOMETRY = DISK_GEOMETRY; - PDISKGEOMETRY = ^DISK_GEOMETRY; - - DISK_PERFORMANCE = record - BytesRead : LARGE_INTEGER; - BytesWritten : LARGE_INTEGER; - ReadTime : LARGE_INTEGER; - WriteTime : LARGE_INTEGER; - ReadCount : DWORD; - WriteCount : DWORD; - QueueDepth : DWORD; - end; - _DISK_PERFORMANCE = DISK_PERFORMANCE; - TDISKPERFORMANCE = DISK_PERFORMANCE; - PDISKPERFORMANCE = ^DISK_PERFORMANCE; - - DLGITEMTEMPLATE = packed record - style : DWORD; - dwExtendedStyle : DWORD; - x : integer; - y : integer; - cx : integer; - cy : integer; - id : WORD; - end; - LPDLGITEMTEMPLATE = ^DLGITEMTEMPLATE; - TDLGITEMTEMPLATE = DLGITEMTEMPLATE; - PDLGITEMTEMPLATE = ^DLGITEMTEMPLATE; - - DLGTEMPLATE = packed record - style : DWORD; - dwExtendedStyle : DWORD; - cdit : WORD; - x : integer; - y : integer; - cx : integer; - cy : integer; - end; - LPDLGTEMPLATE = ^DLGTEMPLATE; - LPCDLGTEMPLATE = ^DLGTEMPLATE; - LPCDLGTEMPLATEW = ^DLGTEMPLATE; //+winuser - TDLGTEMPLATE = DLGTEMPLATE; - PDLGTEMPLATE = ^DLGTEMPLATE; - - DOC_INFO_1 = record - pDocName : LPTSTR; - pOutputFile : LPTSTR; - pDatatype : LPTSTR; - end; - _DOC_INFO_1 = DOC_INFO_1; - TDOCINFO1 = DOC_INFO_1; - PDOCINFO1 = ^DOC_INFO_1; - - DOC_INFO_2 = record - pDocName : LPTSTR; - pOutputFile : LPTSTR; - pDatatype : LPTSTR; - dwMode : DWORD; - JobId : DWORD; - end; - _DOC_INFO_2 = DOC_INFO_2; - TDOCINFO2 = DOC_INFO_2; - PDOCINFO2 = ^DOC_INFO_2; - - DOCINFO = record //+wingdi - cbSize : Integer; - lpszDocName : LPCWSTR; - lpszOutput : LPCWSTR; - lpszDatatype : LPCWSTR; - fwType : DWORD; - end; - TDOCINFO = DOCINFO; - PDOCINFO = ^DOCINFO; - DOCINFOW = DOCINFO; - TDOCINFOW = DOCINFOW; - _DOCINFOW=DOCINFOW; //+wingdi - LPDOCINFOW=^PDOCINFO; //+wingdi - PDOCINFOW=^PDOCINFO; //+wingdi - - DRAGLISTINFO = record - uNotification : UINT; - hWnd : HWND; - ptCursor : POINT; - end; - LPDRAGLISTINFO = ^DRAGLISTINFO; - TDRAGLISTINFO = DRAGLISTINFO; - PDRAGLISTINFO = ^DRAGLISTINFO; - - DRAWITEMSTRUCT = record - CtlType : UINT; - CtlID : UINT; - itemID : UINT; - itemAction : UINT; - itemState : UINT; - hwndItem : HWND; - hDC : HDC; - rcItem : RECT; - itemData : DWORD; - end; - LPDRAWITEMSTRUCT = ^DRAWITEMSTRUCT; - tagDRAWITEMSTRUCT = DRAWITEMSTRUCT; - TDRAWITEMSTRUCT = DRAWITEMSTRUCT; - PDRAWITEMSTRUCT = ^DRAWITEMSTRUCT; - - DRAWTEXTPARAMS = record - cbSize : UINT; - iTabLength : longint; - iLeftMargin : longint; - iRightMargin : longint; - uiLengthDrawn : UINT; - end; - LPDRAWTEXTPARAMS = ^DRAWTEXTPARAMS; - TDRAWTEXTPARAMS = DRAWTEXTPARAMS; - PDRAWTEXTPARAMS = ^DRAWTEXTPARAMS; - - PARTITION_INFORMATION = record - PartitionType : BYTE; - BootIndicator : BOOLEAN; - RecognizedPartition : BOOLEAN; - RewritePartition : BOOLEAN; - StartingOffset : LARGE_INTEGER; - PartitionLength : LARGE_INTEGER; - HiddenSectors : LARGE_INTEGER; - end; - _PARTITION_INFORMATION = PARTITION_INFORMATION; - TPARTITIONINFORMATION = PARTITION_INFORMATION; - PPARTITIONINFORMATION = ^PARTITION_INFORMATION; - - DRIVE_LAYOUT_INFORMATION = record - PartitionCount : DWORD; - Signature : DWORD; - PartitionEntry : array[0..0] of PARTITION_INFORMATION; - end; - _DRIVE_LAYOUT_INFORMATION = DRIVE_LAYOUT_INFORMATION; - TDRIVELAYOUTINFORMATION = DRIVE_LAYOUT_INFORMATION; - PDRIVELAYOUTINFORMATION = ^DRIVE_LAYOUT_INFORMATION; - - DRIVER_INFO_1 = record - pName : LPTSTR; - end; - _DRIVER_INFO_1 = DRIVER_INFO_1; - TDRIVERINFO1 = DRIVER_INFO_1; - PDRIVERINFO1 = ^DRIVER_INFO_1; - - DRIVER_INFO_2 = record - cVersion : DWORD; - pName : LPTSTR; - pEnvironment : LPTSTR; - pDriverPath : LPTSTR; - pDataFile : LPTSTR; - pConfigFile : LPTSTR; - end; - _DRIVER_INFO_2 = DRIVER_INFO_2; - TDRIVERINFO2 = DRIVER_INFO_2; - PDRIVERINFO2 = ^DRIVER_INFO_2; - - DRIVER_INFO_3 = record - cVersion : DWORD; - pName : LPTSTR; - pEnvironment : LPTSTR; - pDriverPath : LPTSTR; - pDataFile : LPTSTR; - pConfigFile : LPTSTR; - pHelpFile : LPTSTR; - pDependentFiles : LPTSTR; - pMonitorName : LPTSTR; - pDefaultDataType : LPTSTR; - end; - _DRIVER_INFO_3 = DRIVER_INFO_3; - TDRIVERINFO3 = DRIVER_INFO_3; - PDRIVERINFO3 = ^DRIVER_INFO_3; - - EDITSTREAM = record - dwCookie : DWORD; - dwError : DWORD; - pfnCallback : EDITSTREAMCALLBACK; - end; - _editstream = EDITSTREAM; - Teditstream = EDITSTREAM; - Peditstream = ^EDITSTREAM; - - EMR = record - iType : DWORD; - nSize : DWORD; - end; - tagEMR = EMR; - TEMR = EMR; - PEMR = ^EMR; - - EMRANGLEARC = record - emr : EMR; - ptlCenter : POINTL; - nRadius : DWORD; - eStartAngle : Single; - eSweepAngle : Single; - end; - tagEMRANGLEARC = EMRANGLEARC; - TEMRANGLEARC = EMRANGLEARC; - PEMRANGLEARC = ^EMRANGLEARC; - - EMRARC = record - emr : EMR; - rclBox : RECTL; - ptlStart : POINTL; - ptlEnd : POINTL; - end; - tagEMRARC = EMRARC; - TEMRARC = EMRARC; - PEMRARC = ^EMRARC; - - EMRARCTO = EMRARC; - TEMRARCTO = EMRARC; - PEMRARCTO = ^EMRARC; - - EMRCHORD = EMRARC; - TEMRCHORD = EMRARC; - PEMRCHORD = ^EMRARC; - - EMRPIE = EMRARC; - TEMRPIE = EMRARC; - PEMRPIE = ^EMRARC; - - XFORM = record - eM11 : Single; - eM12 : Single; - eM21 : Single; - eM22 : Single; - eDx : Single; - eDy : Single; - end; - LPXFORM = ^XFORM; - _XFORM = XFORM; - TXFORM = XFORM; - PXFORM = ^XFORM; - - EMRBITBLT = record - emr : EMR; - rclBounds : RECTL; - xDest : LONG; - yDest : LONG; - cxDest : LONG; - cyDest : LONG; - dwRop : DWORD; - xSrc : LONG; - ySrc : LONG; - xformSrc : XFORM; - crBkColorSrc : COLORREF; - iUsageSrc : DWORD; - offBmiSrc : DWORD; - offBitsSrc : DWORD; - cbBitsSrc : DWORD; - end; - tagEMRBITBLT = EMRBITBLT; - TEMRBITBLT = EMRBITBLT; - PEMRBITBLT = ^EMRBITBLT; - - LOGBRUSH = record - lbStyle : UINT; - lbColor : COLORREF; - lbHatch : LONG; - end; - tagLOGBRUSH = LOGBRUSH; - TLOGBRUSH = LOGBRUSH; - PLOGBRUSH = ^LOGBRUSH; - - EMRCREATEBRUSHINDIRECT = record - emr : EMR; - ihBrush : DWORD; - lb : LOGBRUSH; - end; - tagEMRCREATEBRUSHINDIRECT = EMRCREATEBRUSHINDIRECT; - TEMRCREATEBRUSHINDIRECT = EMRCREATEBRUSHINDIRECT; - PEMRCREATEBRUSHINDIRECT = ^EMRCREATEBRUSHINDIRECT; - - LCSCSTYPE = LONG; - - LCSGAMUTMATCH = LONG; - - LOGCOLORSPACE = record - lcsSignature : DWORD; - lcsVersion : DWORD; - lcsSize : DWORD; - lcsCSType : LCSCSTYPE; - lcsIntent : LCSGAMUTMATCH; - lcsEndpoints : CIEXYZTRIPLE; - lcsGammaRed : DWORD; - lcsGammaGreen : DWORD; - lcsGammaBlue : DWORD; - lcsFilename : array[0..(MAX_PATH)-1] of TCHAR; - end; - LPLOGCOLORSPACE = ^LOGCOLORSPACE; - tagLOGCOLORSPACE = LOGCOLORSPACE; - TLOGCOLORSPACE = LOGCOLORSPACE; - TLOGCOLORSPACEA = LOGCOLORSPACE; - PLOGCOLORSPACE = ^LOGCOLORSPACE; - - EMRCREATECOLORSPACE = record - emr : EMR; - ihCS : DWORD; - lcs : LOGCOLORSPACE; - end; - tagEMRCREATECOLORSPACE = EMRCREATECOLORSPACE; - TEMRCREATECOLORSPACE = EMRCREATECOLORSPACE; - PEMRCREATECOLORSPACE = ^EMRCREATECOLORSPACE; - - EMRCREATEDIBPATTERNBRUSHPT = record - emr : EMR; - ihBrush : DWORD; - iUsage : DWORD; - offBmi : DWORD; - cbBmi : DWORD; - offBits : DWORD; - cbBits : DWORD; - end; - tagEMRCREATEDIBPATTERNBRUSHPT = EMRCREATEDIBPATTERNBRUSHPT; - TEMRCREATEDIBPATTERNBRUSHPT = EMRCREATEDIBPATTERNBRUSHPT; - PEMRCREATEDIBPATTERNBRUSHPT = EMRCREATEDIBPATTERNBRUSHPT; - - EMRCREATEMONOBRUSH = record - emr : EMR; - ihBrush : DWORD; - iUsage : DWORD; - offBmi : DWORD; - cbBmi : DWORD; - offBits : DWORD; - cbBits : DWORD; - end; - tagEMRCREATEMONOBRUSH = EMRCREATEMONOBRUSH; - TEMRCREATEMONOBRUSH = EMRCREATEMONOBRUSH; - PEMRCREATEMONOBRUSH = ^EMRCREATEMONOBRUSH; - - PALETTEENTRY = record - peRed : BYTE; - peGreen : BYTE; - peBlue : BYTE; - peFlags : BYTE; - end; - LPPALETTEENTRY = ^PALETTEENTRY; - tagPALETTEENTRY = PALETTEENTRY; - TPALETTEENTRY = PALETTEENTRY; - PPALETTEENTRY = ^PALETTEENTRY; - - LOGPALETTE = record - palVersion : WORD; - palNumEntries : WORD; - palPalEntry : array[0..0] of PALETTEENTRY; - end; - LPLOGPALETTE = ^LOGPALETTE; - tagLOGPALETTE = LOGPALETTE; - TLOGPALETTE = LOGPALETTE; - PLOGPALETTE = ^LOGPALETTE; - - EMRCREATEPALETTE = record - emr : EMR; - ihPal : DWORD; - lgpl : LOGPALETTE; - end; - tagEMRCREATEPALETTE = EMRCREATEPALETTE; - TEMRCREATEPALETTE = EMRCREATEPALETTE; - PEMRCREATEPALETTE = ^EMRCREATEPALETTE; - - LOGPEN = record - lopnStyle : UINT; - lopnWidth : POINT; - lopnColor : COLORREF; - end; - tagLOGPEN = LOGPEN; - TLOGPEN = LOGPEN; - PLOGPEN = ^LOGPEN; - - EMRCREATEPEN = record - emr : EMR; - ihPen : DWORD; - lopn : LOGPEN; - end; - tagEMRCREATEPEN = EMRCREATEPEN; - TEMRCREATEPEN = EMRCREATEPEN; - PEMRCREATEPEN = ^EMRCREATEPEN; - - EMRELLIPSE = record - emr : EMR; - rclBox : RECTL; - end; - tagEMRELLIPSE = EMRELLIPSE; - TEMRELLIPSE = EMRELLIPSE; - PEMRELLIPSE = ^EMRELLIPSE; - - EMRRECTANGLE = EMRELLIPSE; - TEMRRECTANGLE = EMRELLIPSE; - PEMRRECTANGLE = ^EMRELLIPSE; - - EMREOF = record - emr : EMR; - nPalEntries : DWORD; - offPalEntries : DWORD; - nSizeLast : DWORD; - end; - tagEMREOF = EMREOF; - TEMREOF = EMREOF; - PEMREOF = ^EMREOF; - - EMREXCLUDECLIPRECT = record - emr : EMR; - rclClip : RECTL; - end; - tagEMREXCLUDECLIPRECT = EMREXCLUDECLIPRECT; - TEMREXCLUDECLIPRECT = EMREXCLUDECLIPRECT; - PEMREXCLUDECLIPRECT = ^EMREXCLUDECLIPRECT; - - EMRINTERSECTCLIPRECT = EMREXCLUDECLIPRECT; - TEMRINTERSECTCLIPRECT = EMREXCLUDECLIPRECT; - PEMRINTERSECTCLIPRECT = ^EMREXCLUDECLIPRECT; - - PANOSE = record - bFamilyType : BYTE; - bSerifStyle : BYTE; - bWeight : BYTE; - bProportion : BYTE; - bContrast : BYTE; - bStrokeVariation : BYTE; - bArmStyle : BYTE; - bLetterform : BYTE; - bMidline : BYTE; - bXHeight : BYTE; - end; - tagPANOSE = PANOSE; - TPANOSE = PANOSE; - PPANOSE = ^PANOSE; - - EXTLOGFONT = record - elfLogFont : LOGFONT; - elfFullName : array[0..(LF_FULLFACESIZE)-1] of BCHAR; - elfStyle : array[0..(LF_FACESIZE)-1] of BCHAR; - elfVersion : DWORD; - elfStyleSize : DWORD; - elfMatch : DWORD; - elfReserved : DWORD; - elfVendorId : array[0..(ELF_VENDOR_SIZE)-1] of BYTE; - elfCulture : DWORD; - elfPanose : PANOSE; - end; - tagEXTLOGFONT = EXTLOGFONT; - TEXTLOGFONT = EXTLOGFONT; - PEXTLOGFONT = ^EXTLOGFONT; - - EMREXTCREATEFONTINDIRECTW = record - emr : EMR; - ihFont : DWORD; - elfw : EXTLOGFONT; - end; - tagEMREXTCREATEFONTINDIRECTW = EMREXTCREATEFONTINDIRECTW; - TEMREXTCREATEFONTINDIRECTW = EMREXTCREATEFONTINDIRECTW; - PEMREXTCREATEFONTINDIRECTW = ^EMREXTCREATEFONTINDIRECTW; - - - EXTLOGPEN = record - elpPenStyle : UINT; - elpWidth : UINT; - elpBrushStyle : UINT; - elpColor : COLORREF; - elpHatch : LONG; - elpNumEntries : DWORD; - elpStyleEntry : array[0..0] of DWORD; - end; - tagEXTLOGPEN = EXTLOGPEN; - TEXTLOGPEN = EXTLOGPEN; - PEXTLOGPEN = ^EXTLOGPEN; - - EMREXTCREATEPEN = record - emr : EMR; - ihPen : DWORD; - offBmi : DWORD; - cbBmi : DWORD; - offBits : DWORD; - cbBits : DWORD; - elp : EXTLOGPEN; - end; - tagEMREXTCREATEPEN = EMREXTCREATEPEN; - TEMREXTCREATEPEN = EMREXTCREATEPEN; - PEMREXTCREATEPEN = ^EMREXTCREATEPEN; - - EMREXTFLOODFILL = record - emr : EMR; - ptlStart : POINTL; - crColor : COLORREF; - iMode : DWORD; - end; - tagEMREXTFLOODFILL = EMREXTFLOODFILL; - TEMREXTFLOODFILL = EMREXTFLOODFILL; - PEMREXTFLOODFILL = ^EMREXTFLOODFILL; - - EMREXTSELECTCLIPRGN = record - emr : EMR; - cbRgnData : DWORD; - iMode : DWORD; - RgnData : array[0..0] of BYTE; - end; - tagEMREXTSELECTCLIPRGN = EMREXTSELECTCLIPRGN; - TEMREXTSELECTCLIPRGN = EMREXTSELECTCLIPRGN; - PEMREXTSELECTCLIPRGN = ^EMREXTSELECTCLIPRGN; - - EMRTEXT = record - ptlReference : POINTL; - nChars : DWORD; - offString : DWORD; - fOptions : DWORD; - rcl : RECTL; - offDx : DWORD; - end; - tagEMRTEXT = EMRTEXT; - TEMRTEXT = EMRTEXT; - PEMRTEXT = ^EMRTEXT; - - EMREXTTEXTOUTA = record - emr : EMR; - rclBounds : RECTL; - iGraphicsMode : DWORD; - exScale : Single; - eyScale : Single; - emrtext : EMRTEXT; - end; - tagEMREXTTEXTOUTA = EMREXTTEXTOUTA; - TEMREXTTEXTOUTA = EMREXTTEXTOUTA; - PEMREXTTEXTOUTA = ^EMREXTTEXTOUTA; - - EMREXTTEXTOUTW = EMREXTTEXTOUTA; - TEMREXTTEXTOUTW = EMREXTTEXTOUTA; - PEMREXTTEXTOUTW = ^EMREXTTEXTOUTA; - - EMRFILLPATH = record - emr : EMR; - rclBounds : RECTL; - end; - tagEMRFILLPATH = EMRFILLPATH; - TEMRFILLPATH = EMRFILLPATH; - PEMRFILLPATH = ^EMRFILLPATH; - - EMRSTROKEANDFILLPATH = EMRFILLPATH; - TEMRSTROKEANDFILLPATH = EMRFILLPATH; - PEMRSTROKEANDFILLPATH = ^EMRFILLPATH; - - EMRSTROKEPATH = EMRFILLPATH; - TEMRSTROKEPATH = EMRFILLPATH; - PEMRSTROKEPATH = ^EMRFILLPATH; - - EMRFILLRGN = record - emr : EMR; - rclBounds : RECTL; - cbRgnData : DWORD; - ihBrush : DWORD; - RgnData : array[0..0] of BYTE; - end; - tagEMRFILLRGN = EMRFILLRGN; - TEMRFILLRGN = EMRFILLRGN; - PEMRFILLRGN = ^EMRFILLRGN; - - EMRFORMAT = record - dSignature : DWORD; - nVersion : DWORD; - cbData : DWORD; - offData : DWORD; - end; - tagEMRFORMAT = EMRFORMAT; - TEMRFORMAT = EMRFORMAT; - PEMRFORMAT = ^EMRFORMAT; - - SIZE = record - cx : LONG; - cy : LONG; - end; - LPSIZE = ^SIZE; - tagSIZE = SIZE; - TSIZE = SIZE; - PSIZE = ^SIZE; - - SIZEL = SIZE; //windef - TSIZEL = SIZE; //windef - PSIZEL = ^SIZE; - LPSIZEL = ^SIZE; - - EMRFRAMERGN = record - emr : EMR; - rclBounds : RECTL; - cbRgnData : DWORD; - ihBrush : DWORD; - szlStroke : SIZEL; - RgnData : array[0..0] of BYTE; - end; - tagEMRFRAMERGN = EMRFRAMERGN; - TEMRFRAMERGN = EMRFRAMERGN; - PEMRFRAMERGN = ^EMRFRAMERGN; - - EMRGDICOMMENT = record - emr : EMR; - cbData : DWORD; - Data : array[0..0] of BYTE; - end; - tagEMRGDICOMMENT = EMRGDICOMMENT; - TEMRGDICOMMENT = EMRGDICOMMENT; - PEMRGDICOMMENT = ^EMRGDICOMMENT; - - EMRINVERTRGN = record - emr : EMR; - rclBounds : RECTL; - cbRgnData : DWORD; - RgnData : array[0..0] of BYTE; - end; - tagEMRINVERTRGN = EMRINVERTRGN; - TEMRINVERTRGN = EMRINVERTRGN; - PEMRINVERTRGN = ^EMRINVERTRGN; - - EMRPAINTRGN = EMRINVERTRGN; - TEMRPAINTRGN = EMRINVERTRGN; - PEMRPAINTRGN = ^EMRINVERTRGN; - - EMRLINETO = record - emr : EMR; - ptl : POINTL; - end; - tagEMRLINETO = EMRLINETO; - TEMRLINETO = EMRLINETO; - PEMRLINETO = ^EMRLINETO; - - EMRMOVETOEX = EMRLINETO; - TEMRMOVETOEX = EMRLINETO; - PEMRMOVETOEX = ^EMRLINETO; - - EMRMASKBLT = record - emr : EMR; - rclBounds : RECTL; - xDest : LONG; - yDest : LONG; - cxDest : LONG; - cyDest : LONG; - dwRop : DWORD; - xSrc : LONG; - ySrc : LONG; - xformSrc : XFORM; - crBkColorSrc : COLORREF; - iUsageSrc : DWORD; - offBmiSrc : DWORD; - cbBmiSrc : DWORD; - offBitsSrc : DWORD; - cbBitsSrc : DWORD; - xMask : LONG; - yMask : LONG; - iUsageMask : DWORD; - offBmiMask : DWORD; - cbBmiMask : DWORD; - offBitsMask : DWORD; - cbBitsMask : DWORD; - end; - tagEMRMASKBLT = EMRMASKBLT; - TEMRMASKBLT = EMRMASKBLT; - PEMRMASKBLT = ^EMRMASKBLT; - - EMRMODIFYWORLDTRANSFORM = record - emr : EMR; - xform : XFORM; - iMode : DWORD; - end; - tagEMRMODIFYWORLDTRANSFORM = EMRMODIFYWORLDTRANSFORM; - TEMRMODIFYWORLDTRANSFORM = EMRMODIFYWORLDTRANSFORM; - PEMRMODIFYWORLDTRANSFORM = EMRMODIFYWORLDTRANSFORM; - - EMROFFSETCLIPRGN = record - emr : EMR; - ptlOffset : POINTL; - end; - tagEMROFFSETCLIPRGN = EMROFFSETCLIPRGN; - TEMROFFSETCLIPRGN = EMROFFSETCLIPRGN; - PEMROFFSETCLIPRGN = ^EMROFFSETCLIPRGN; - - EMRPLGBLT = record - emr : EMR; - rclBounds : RECTL; - aptlDest : array[0..2] of POINTL; - xSrc : LONG; - ySrc : LONG; - cxSrc : LONG; - cySrc : LONG; - xformSrc : XFORM; - crBkColorSrc : COLORREF; - iUsageSrc : DWORD; - offBmiSrc : DWORD; - cbBmiSrc : DWORD; - offBitsSrc : DWORD; - cbBitsSrc : DWORD; - xMask : LONG; - yMask : LONG; - iUsageMask : DWORD; - offBmiMask : DWORD; - cbBmiMask : DWORD; - offBitsMask : DWORD; - cbBitsMask : DWORD; - end; - tagEMRPLGBLT = EMRPLGBLT; - TEMRPLGBLT = EMRPLGBLT; - PEMRPLGBLT = ^EMRPLGBLT; - - EMRPOLYDRAW = record - emr : EMR; - rclBounds : RECTL; - cptl : DWORD; - aptl : array[0..0] of POINTL; - abTypes : array[0..0] of BYTE; - end; - tagEMRPOLYDRAW = EMRPOLYDRAW; - TEMRPOLYDRAW = EMRPOLYDRAW; - PEMRPOLYDRAW = ^EMRPOLYDRAW; - - EMRPOLYDRAW16 = record - emr : EMR; - rclBounds : RECTL; - cpts : DWORD; - apts : array[0..0] of POINTS; - abTypes : array[0..0] of BYTE; - end; - tagEMRPOLYDRAW16 = EMRPOLYDRAW16; - TEMRPOLYDRAW16 = EMRPOLYDRAW16; - PEMRPOLYDRAW16 = ^EMRPOLYDRAW16; - - EMRPOLYLINE = record - emr : EMR; - rclBounds : RECTL; - cptl : DWORD; - aptl : array[0..0] of POINTL; - end; - tagEMRPOLYLINE = EMRPOLYLINE; - TEMRPOLYLINE = EMRPOLYLINE; - PEMRPOLYLINE = ^EMRPOLYLINE; - - EMRPOLYBEZIER = EMRPOLYLINE; - TEMRPOLYBEZIER = EMRPOLYLINE; - PEMRPOLYBEZIER = ^EMRPOLYLINE; - - EMRPOLYGON = EMRPOLYLINE; - TEMRPOLYGON = EMRPOLYLINE; - PEMRPOLYGON = ^EMRPOLYLINE; - - EMRPOLYBEZIERTO = EMRPOLYLINE; - TEMRPOLYBEZIERTO = EMRPOLYLINE; - PEMRPOLYBEZIERTO = ^EMRPOLYLINE; - - EMRPOLYLINETO = EMRPOLYLINE; - TEMRPOLYLINETO = EMRPOLYLINE; - PEMRPOLYLINETO = ^EMRPOLYLINE; - - EMRPOLYLINE16 = record - emr : EMR; - rclBounds : RECTL; - cpts : DWORD; - apts : array[0..0] of POINTL; - end; - tagEMRPOLYLINE16 = EMRPOLYLINE16; - TEMRPOLYLINE16 = EMRPOLYLINE16; - PEMRPOLYLINE16 = ^EMRPOLYLINE16; - - EMRPOLYBEZIER16 = EMRPOLYLINE16; - TEMRPOLYBEZIER16 = EMRPOLYLINE16; - PEMRPOLYBEZIER16 = ^EMRPOLYLINE16; - - EMRPOLYGON16 = EMRPOLYLINE16; - TEMRPOLYGON16 = EMRPOLYLINE16; - PEMRPOLYGON16 = ^EMRPOLYLINE16; - - EMRPOLYBEZIERTO16 = EMRPOLYLINE16; - TEMRPOLYBEZIERTO16 = EMRPOLYLINE16; - PEMRPOLYBEZIERTO16 = ^EMRPOLYLINE16; - - EMRPOLYLINETO16 = EMRPOLYLINE16; - TEMRPOLYLINETO16 = EMRPOLYLINE16; - PEMRPOLYLINETO16 = ^EMRPOLYLINE16; - - EMRPOLYPOLYLINE = record - emr : EMR; - rclBounds : RECTL; - nPolys : DWORD; - cptl : DWORD; - aPolyCounts : array[0..0] of DWORD; - aptl : array[0..0] of POINTL; - end; - tagEMRPOLYPOLYLINE = EMRPOLYPOLYLINE; - TEMRPOLYPOLYLINE = EMRPOLYPOLYLINE; - PEMRPOLYPOLYLINE = ^EMRPOLYPOLYLINE; - - EMRPOLYPOLYGON = EMRPOLYPOLYLINE; - TEMRPOLYPOLYGON = EMRPOLYPOLYLINE; - PEMRPOLYPOLYGON = ^EMRPOLYPOLYLINE; - - EMRPOLYPOLYLINE16 = record - emr : EMR; - rclBounds : RECTL; - nPolys : DWORD; - cpts : DWORD; - aPolyCounts : array[0..0] of DWORD; - apts : array[0..0] of POINTS; - end; - tagEMRPOLYPOLYLINE16 = EMRPOLYPOLYLINE16; - TEMRPOLYPOLYLINE16 = EMRPOLYPOLYLINE16; - PEMRPOLYPOLYLINE16 = ^EMRPOLYPOLYLINE16; - - EMRPOLYPOLYGON16 = EMRPOLYPOLYLINE16; - TEMRPOLYPOLYGON16 = EMRPOLYPOLYLINE16; - PEMRPOLYPOLYGON16 = ^EMRPOLYPOLYLINE16; - - EMRPOLYTEXTOUTA = record - emr : EMR; - rclBounds : RECTL; - iGraphicsMode : DWORD; - exScale : Single; - eyScale : Single; - cStrings : LONG; - aemrtext : array[0..0] of EMRTEXT; - end; - tagEMRPOLYTEXTOUTA = EMRPOLYTEXTOUTA; - TEMRPOLYTEXTOUTA = EMRPOLYTEXTOUTA; - PEMRPOLYTEXTOUTA = ^EMRPOLYTEXTOUTA; - - EMRPOLYTEXTOUTW = EMRPOLYTEXTOUTA; - TEMRPOLYTEXTOUTW = EMRPOLYTEXTOUTA; - PEMRPOLYTEXTOUTW = ^EMRPOLYTEXTOUTA; - - EMRRESIZEPALETTE = record - emr : EMR; - ihPal : DWORD; - cEntries : DWORD; - end; - tagEMRRESIZEPALETTE = EMRRESIZEPALETTE; - TEMRRESIZEPALETTE = EMRRESIZEPALETTE; - PEMRRESIZEPALETTE = ^EMRRESIZEPALETTE; - - EMRRESTOREDC = record - emr : EMR; - iRelative : LONG; - end; - tagEMRRESTOREDC = EMRRESTOREDC; - TEMRRESTOREDC = EMRRESTOREDC; - PEMRRESTOREDC = ^EMRRESTOREDC; - - EMRROUNDRECT = record - emr : EMR; - rclBox : RECTL; - szlCorner : SIZEL; - end; - tagEMRROUNDRECT = EMRROUNDRECT; - TEMRROUNDRECT = EMRROUNDRECT; - PEMRROUNDRECT = ^EMRROUNDRECT; - - EMRSCALEVIEWPORTEXTEX = record - emr : EMR; - xNum : LONG; - xDenom : LONG; - yNum : LONG; - yDenom : LONG; - end; - tagEMRSCALEVIEWPORTEXTEX = EMRSCALEVIEWPORTEXTEX; - TEMRSCALEVIEWPORTEXTEX = EMRSCALEVIEWPORTEXTEX; - PEMRSCALEVIEWPORTEXTEX = ^EMRSCALEVIEWPORTEXTEX; - - EMRSCALEWINDOWEXTEX = EMRSCALEVIEWPORTEXTEX; - TEMRSCALEWINDOWEXTEX = EMRSCALEVIEWPORTEXTEX; - PEMRSCALEWINDOWEXTEX = ^EMRSCALEVIEWPORTEXTEX; - - EMRSELECTCOLORSPACE = record - emr : EMR; - ihCS : DWORD; - end; - tagEMRSELECTCOLORSPACE = EMRSELECTCOLORSPACE; - TEMRSELECTCOLORSPACE = EMRSELECTCOLORSPACE; - PEMRSELECTCOLORSPACE = ^EMRSELECTCOLORSPACE; - - EMRDELETECOLORSPACE = EMRSELECTCOLORSPACE; - TEMRDELETECOLORSPACE = EMRSELECTCOLORSPACE; - PEMRDELETECOLORSPACE = ^EMRSELECTCOLORSPACE; - - EMRSELECTOBJECT = record - emr : EMR; - ihObject : DWORD; - end; - tagEMRSELECTOBJECT = EMRSELECTOBJECT; - TEMRSELECTOBJECT = EMRSELECTOBJECT; - PEMRSELECTOBJECT = ^EMRSELECTOBJECT; - - EMRDELETEOBJECT = EMRSELECTOBJECT; - TEMRDELETEOBJECT = EMRSELECTOBJECT; - PEMRDELETEOBJECT = ^EMRSELECTOBJECT; - - EMRSELECTPALETTE = record - emr : EMR; - ihPal : DWORD; - end; - tagEMRSELECTPALETTE = EMRSELECTPALETTE; - TEMRSELECTPALETTE = EMRSELECTPALETTE; - PEMRSELECTPALETTE = ^EMRSELECTPALETTE; - - EMRSETARCDIRECTION = record - emr : EMR; - iArcDirection : DWORD; - end; - tagEMRSETARCDIRECTION = EMRSETARCDIRECTION; - TEMRSETARCDIRECTION = EMRSETARCDIRECTION; - PEMRSETARCDIRECTION = ^EMRSETARCDIRECTION; - - EMRSETBKCOLOR = record - emr : EMR; - crColor : COLORREF; - end; - tagEMRSETTEXTCOLOR = EMRSETBKCOLOR; - TEMRSETBKCOLOR = EMRSETBKCOLOR; - PEMRSETBKCOLOR = ^EMRSETBKCOLOR; - - EMRSETTEXTCOLOR = EMRSETBKCOLOR; - TEMRSETTEXTCOLOR = EMRSETBKCOLOR; - PEMRSETTEXTCOLOR = ^EMRSETBKCOLOR; - - EMRSETCOLORADJUSTMENT = record - emr : EMR; - ColorAdjustment : COLORADJUSTMENT; - end; - tagEMRSETCOLORADJUSTMENT = EMRSETCOLORADJUSTMENT; - TEMRSETCOLORADJUSTMENT = EMRSETCOLORADJUSTMENT; - PEMRSETCOLORADJUSTMENT = ^EMRSETCOLORADJUSTMENT; - - EMRSETDIBITSTODEVICE = record - emr : EMR; - rclBounds : RECTL; - xDest : LONG; - yDest : LONG; - xSrc : LONG; - ySrc : LONG; - cxSrc : LONG; - cySrc : LONG; - offBmiSrc : DWORD; - cbBmiSrc : DWORD; - offBitsSrc : DWORD; - cbBitsSrc : DWORD; - iUsageSrc : DWORD; - iStartScan : DWORD; - cScans : DWORD; - end; - tagEMRSETDIBITSTODEVICE = EMRSETDIBITSTODEVICE; - TEMRSETDIBITSTODEVICE = EMRSETDIBITSTODEVICE; - PEMRSETDIBITSTODEVICE = ^EMRSETDIBITSTODEVICE; - - EMRSETMAPPERFLAGS = record - emr : EMR; - dwFlags : DWORD; - end; - tagEMRSETMAPPERFLAGS = EMRSETMAPPERFLAGS; - TEMRSETMAPPERFLAGS = EMRSETMAPPERFLAGS; - PEMRSETMAPPERFLAGS = ^EMRSETMAPPERFLAGS; - - EMRSETMITERLIMIT = record - emr : EMR; - eMiterLimit : Single; - end; - tagEMRSETMITERLIMIT = EMRSETMITERLIMIT; - TEMRSETMITERLIMIT = EMRSETMITERLIMIT; - PEMRSETMITERLIMIT = ^EMRSETMITERLIMIT; - - EMRSETPALETTEENTRIES = record - emr : EMR; - ihPal : DWORD; - iStart : DWORD; - cEntries : DWORD; - aPalEntries : array[0..0] of PALETTEENTRY; - end; - tagEMRSETPALETTEENTRIES = EMRSETPALETTEENTRIES; - TEMRSETPALETTEENTRIES = EMRSETPALETTEENTRIES; - PEMRSETPALETTEENTRIES = ^EMRSETPALETTEENTRIES; - - EMRSETPIXELV = record - emr : EMR; - ptlPixel : POINTL; - crColor : COLORREF; - end; - tagEMRSETPIXELV = EMRSETPIXELV; - TEMRSETPIXELV = EMRSETPIXELV; - PEMRSETPIXELV = ^EMRSETPIXELV; - - EMRSETVIEWPORTEXTEX = record - emr : EMR; - szlExtent : SIZEL; - end; - tagEMRSETVIEWPORTEXTEX = EMRSETVIEWPORTEXTEX; - TEMRSETVIEWPORTEXTEX = EMRSETVIEWPORTEXTEX; - PEMRSETVIEWPORTEXTEX = ^EMRSETVIEWPORTEXTEX; - - EMRSETWINDOWEXTEX = EMRSETVIEWPORTEXTEX; - TEMRSETWINDOWEXTEX = EMRSETVIEWPORTEXTEX; - PEMRSETWINDOWEXTEX = ^EMRSETVIEWPORTEXTEX; - - EMRSETVIEWPORTORGEX = record - emr : EMR; - ptlOrigin : POINTL; - end; - tagEMRSETVIEWPORTORGEX = EMRSETVIEWPORTORGEX; - TEMRSETVIEWPORTORGEX = EMRSETVIEWPORTORGEX; - PEMRSETVIEWPORTORGEX = ^EMRSETVIEWPORTORGEX; - - EMRSETWINDOWORGEX = EMRSETVIEWPORTORGEX; - TEMRSETWINDOWORGEX = EMRSETVIEWPORTORGEX; - PEMRSETWINDOWORGEX = ^EMRSETVIEWPORTORGEX; - - EMRSETBRUSHORGEX = EMRSETVIEWPORTORGEX; - TEMRSETBRUSHORGEX = EMRSETVIEWPORTORGEX; - PEMRSETBRUSHORGEX = ^EMRSETVIEWPORTORGEX; - - EMRSETWORLDTRANSFORM = record - emr : EMR; - xform : XFORM; - end; - tagEMRSETWORLDTRANSFORM = EMRSETWORLDTRANSFORM; - TEMRSETWORLDTRANSFORM = EMRSETWORLDTRANSFORM; - PEMRSETWORLDTRANSFORM = ^EMRSETWORLDTRANSFORM; - - EMRSTRETCHBLT = record - emr : EMR; - rclBounds : RECTL; - xDest : LONG; - yDest : LONG; - cxDest : LONG; - cyDest : LONG; - dwRop : DWORD; - xSrc : LONG; - ySrc : LONG; - xformSrc : XFORM; - crBkColorSrc : COLORREF; - iUsageSrc : DWORD; - offBmiSrc : DWORD; - cbBmiSrc : DWORD; - offBitsSrc : DWORD; - cbBitsSrc : DWORD; - cxSrc : LONG; - cySrc : LONG; - end; - tagEMRSTRETCHBLT = EMRSTRETCHBLT; - TEMRSTRETCHBLT = EMRSTRETCHBLT; - PEMRSTRETCHBLT = ^EMRSTRETCHBLT; - - EMRSTRETCHDIBITS = record - emr : EMR; - rclBounds : RECTL; - xDest : LONG; - yDest : LONG; - xSrc : LONG; - ySrc : LONG; - cxSrc : LONG; - cySrc : LONG; - offBmiSrc : DWORD; - cbBmiSrc : DWORD; - offBitsSrc : DWORD; - cbBitsSrc : DWORD; - iUsageSrc : DWORD; - dwRop : DWORD; - cxDest : LONG; - cyDest : LONG; - end; - tagEMRSTRETCHDIBITS = EMRSTRETCHDIBITS; - TEMRSTRETCHDIBITS = EMRSTRETCHDIBITS; - PEMRSTRETCHDIBITS = ^EMRSTRETCHDIBITS; - - EMRABORTPATH = record - emr : EMR; - end; - TEMRABORTPATH = EMRABORTPATH; - PEMRABORTPATH = ^EMRABORTPATH; - - tagABORTPATH = EMRABORTPATH; - TABORTPATH = EMRABORTPATH; - - EMRBEGINPATH = EMRABORTPATH; - TEMRBEGINPATH = EMRABORTPATH; - PEMRBEGINPATH = ^EMRABORTPATH; - - EMRENDPATH = EMRABORTPATH; - TEMRENDPATH = EMRABORTPATH; - PEMRENDPATH = ^EMRABORTPATH; - - EMRCLOSEFIGURE = EMRABORTPATH; - TEMRCLOSEFIGURE = EMRABORTPATH; - PEMRCLOSEFIGURE = ^EMRABORTPATH; - - EMRFLATTENPATH = EMRABORTPATH; - TEMRFLATTENPATH = EMRABORTPATH; - PEMRFLATTENPATH = ^EMRABORTPATH; - - EMRWIDENPATH = EMRABORTPATH; - TEMRWIDENPATH = EMRABORTPATH; - PEMRWIDENPATH = ^EMRABORTPATH; - - EMRSETMETARGN = EMRABORTPATH; - TEMRSETMETARGN = EMRABORTPATH; - PEMRSETMETARGN = ^EMRABORTPATH; - - EMRSAVEDC = EMRABORTPATH; - TEMRSAVEDC = EMRABORTPATH; - PEMRSAVEDC = ^EMRABORTPATH; - - EMRREALIZEPALETTE = EMRABORTPATH; - TEMRREALIZEPALETTE = EMRABORTPATH; - PEMRREALIZEPALETTE = ^EMRABORTPATH; - - EMRSELECTCLIPPATH = record - emr : EMR; - iMode : DWORD; - end; - tagEMRSELECTCLIPPATH = EMRSELECTCLIPPATH; - TEMRSELECTCLIPPATH = EMRSELECTCLIPPATH; - PEMRSELECTCLIPPATH = ^EMRSELECTCLIPPATH; - - EMRSETBKMODE = EMRSELECTCLIPPATH; - TEMRSETBKMODE = EMRSELECTCLIPPATH; - PEMRSETBKMODE = ^EMRSELECTCLIPPATH; - - EMRSETMAPMODE = EMRSELECTCLIPPATH; - TEMRSETMAPMODE = EMRSELECTCLIPPATH; - PEMRSETMAPMODE = ^EMRSELECTCLIPPATH; - - EMRSETPOLYFILLMODE = EMRSELECTCLIPPATH; - TEMRSETPOLYFILLMODE = EMRSELECTCLIPPATH; - PEMRSETPOLYFILLMODE = ^EMRSELECTCLIPPATH; - - EMRSETROP2 = EMRSELECTCLIPPATH; - TEMRSETROP2 = EMRSELECTCLIPPATH; - PEMRSETROP2 = ^EMRSELECTCLIPPATH; - - EMRSETSTRETCHBLTMODE = EMRSELECTCLIPPATH; - TEMRSETSTRETCHBLTMODE = EMRSELECTCLIPPATH; - PEMRSETSTRETCHBLTMODE = ^EMRSELECTCLIPPATH; - - EMRSETTEXTALIGN = EMRSELECTCLIPPATH; - TEMRSETTEXTALIGN = EMRSELECTCLIPPATH; - PEMRSETTEXTALIGN = ^EMRSELECTCLIPPATH; - - EMRENABLEICM = EMRSELECTCLIPPATH; - TEMRENABLEICM = EMRSELECTCLIPPATH; - PEMRENABLEICM = ^EMRSELECTCLIPPATH; - - NMHDR = record - hwndFrom : HWND; - idFrom : UINT; - code : UINT; - end; - tagNMHDR = NMHDR; - TNMHDR = NMHDR; - PNMHDR = ^NMHDR; - - ENCORRECTTEXT = record - nmhdr : NMHDR; - chrg : CHARRANGE; - seltyp : WORD; - end; - _encorrecttext = ENCORRECTTEXT; - Tencorrecttext = ENCORRECTTEXT; - Pencorrecttext = ^ENCORRECTTEXT; - - ENDROPFILES = record - nmhdr : NMHDR; - hDrop : HANDLE; - cp : LONG; - fProtected : WINBOOL; - end; - _endropfiles = ENDROPFILES; - Tendropfiles = ENDROPFILES; - Pendropfiles = ^ENDROPFILES; - - ENSAVECLIPBOARD = record - nmhdr : NMHDR; - cObjectCount : LONG; - cch : LONG; - end; - TENSAVECLIPBOARD = ENSAVECLIPBOARD; - PENSAVECLIPBOARD = ^ENSAVECLIPBOARD; - - ENOLEOPFAILED = record - nmhdr : NMHDR; - iob : LONG; - lOper : LONG; - hr : HRESULT; - end; - TENOLEOPFAILED = ENOLEOPFAILED; - PENOLEOPFAILED = ^ENOLEOPFAILED; - - ENHMETAHEADER = record - iType : DWORD; - nSize : DWORD; - rclBounds : RECTL; - rclFrame : RECTL; - dSignature : DWORD; - nVersion : DWORD; - nBytes : DWORD; - nRecords : DWORD; - nHandles : WORD; - sReserved : WORD; - nDescription : DWORD; - offDescription : DWORD; - nPalEntries : DWORD; - szlDevice : SIZEL; - szlMillimeters : SIZEL; - end; - LPENHMETAHEADER = ^ENHMETAHEADER; - tagENHMETAHEADER = ENHMETAHEADER; - TENHMETAHEADER = ENHMETAHEADER; - PENHMETAHEADER = ^ENHMETAHEADER; - - ENHMETARECORD = record - iType : DWORD; - nSize : DWORD; - dParm : array[0..0] of DWORD; - end; - LPENHMETARECORD = ^ENHMETARECORD; - tagENHMETARECORD = ENHMETARECORD; - TENHMETARECORD = ENHMETARECORD; - PENHMETARECORD = ^ENHMETARECORD; - - ENPROTECTED = record - nmhdr : NMHDR; - msg : UINT; - wParam : WPARAM; - lParam : LPARAM; - chrg : CHARRANGE; - end; - _enprotected = ENPROTECTED; - Tenprotected = ENPROTECTED; - Penprotected = ^ENPROTECTED; - - SERVICE_STATUS = record - dwServiceType : DWORD; - dwCurrentState : DWORD; - dwControlsAccepted : DWORD; - dwWin32ExitCode : DWORD; - dwServiceSpecificExitCode : DWORD; - dwCheckPoint : DWORD; - dwWaitHint : DWORD; - end; - LPSERVICE_STATUS = ^SERVICE_STATUS; - _SERVICE_STATUS = SERVICE_STATUS; - TSERVICESTATUS = SERVICE_STATUS; - PSERVICESTATUS = ^SERVICE_STATUS; - - ENUM_SERVICE_STATUS = record - lpServiceName : LPTSTR; - lpDisplayName : LPTSTR; - ServiceStatus : SERVICE_STATUS; - end; - LPENUM_SERVICE_STATUS = ^ENUM_SERVICE_STATUS; - _ENUM_SERVICE_STATUS = ENUM_SERVICE_STATUS; - TENUMSERVICESTATUS = ENUM_SERVICE_STATUS; - PENUMSERVICESTATUS = ^ENUM_SERVICE_STATUS; - - ENUMLOGFONT = record - elfLogFont : LOGFONT; - elfFullName : array[0..(LF_FULLFACESIZE)-1] of BCHAR; - elfStyle : array[0..(LF_FACESIZE)-1] of BCHAR; - end; - tagENUMLOGFONT = ENUMLOGFONT; - TENUMLOGFONT = ENUMLOGFONT; - PENUMLOGFONT = ^ENUMLOGFONT; - - ENUMLOGFONTEX = record - elfLogFont : LOGFONT; - elfFullName : array[0..(LF_FULLFACESIZE)-1] of BCHAR; - elfStyle : array[0..(LF_FACESIZE)-1] of BCHAR; - elfScript : array[0..(LF_FACESIZE)-1] of BCHAR; - end; - tagENUMLOGFONTEX = ENUMLOGFONTEX; - TENUMLOGFONTEX = ENUMLOGFONTEX; - PENUMLOGFONTEX = ^ENUMLOGFONTEX; - { - Then follow: - - TCHAR SourceName[] - TCHAR Computername[] - SID UserSid - TCHAR Strings[] - BYTE Data[] - CHAR Pad[] - DWORD Length; - } - - EVENTLOGRECORD = record - Length : DWORD; - Reserved : DWORD; - RecordNumber : DWORD; - TimeGenerated : DWORD; - TimeWritten : DWORD; - EventID : DWORD; - EventType : WORD; - NumStrings : WORD; - EventCategory : WORD; - ReservedFlags : WORD; - ClosingRecordNumber : DWORD; - StringOffset : DWORD; - UserSidLength : DWORD; - UserSidOffset : DWORD; - DataLength : DWORD; - DataOffset : DWORD; - end; - _EVENTLOGRECORD = EVENTLOGRECORD; - TEVENTLOGRECORD = EVENTLOGRECORD; - PEVENTLOGRECORD = ^EVENTLOGRECORD; - - EVENTMSG = record - message : UINT; - paramL : UINT; - paramH : UINT; - time : DWORD; - hwnd : HWND; - end; - tagEVENTMSG = EVENTMSG; - TEVENTMSG = EVENTMSG; - PEVENTMSG = ^EVENTMSG; - - EXCEPTION_POINTERS = record //winnt - ExceptionRecord : PEXCEPTION_RECORD; - ContextRecord : PCONTEXT; - end; - LPEXCEPTION_POINTERS = ^EXCEPTION_POINTERS; - PEXCEPTION_POINTERS = ^EXCEPTION_POINTERS; - _EXCEPTION_POINTERS = EXCEPTION_POINTERS; - TEXCEPTIONPOINTERS = EXCEPTION_POINTERS; - PEXCEPTIONPOINTERS = ^EXCEPTION_POINTERS; - - EXT_BUTTON = record - idCommand : WORD; - idsHelp : WORD; - fsStyle : WORD; - end; - LPEXT_BUTTON = ^EXT_BUTTON; - _EXT_BUTTON = EXT_BUTTON; - TEXTBUTTON = EXT_BUTTON; - PEXTBUTTON = ^EXT_BUTTON; - - FILTERKEYS = record - cbSize : UINT; - dwFlags : DWORD; - iWaitMSec : DWORD; - iDelayMSec : DWORD; - iRepeatMSec : DWORD; - iBounceMSec : DWORD; - end; - tagFILTERKEYS = FILTERKEYS; - TFILTERKEYS = FILTERKEYS; - PFILTERKEYS = ^FILTERKEYS; - - FIND_NAME_BUFFER = record - length : UCHAR; - access_control : UCHAR; - frame_control : UCHAR; - destination_addr : array[0..5] of UCHAR; - source_addr : array[0..5] of UCHAR; - routing_info : array[0..17] of UCHAR; - end; - _FIND_NAME_BUFFER = FIND_NAME_BUFFER; - TFINDNAMEBUFFER = FIND_NAME_BUFFER; - PFINDNAMEBUFFER = ^FIND_NAME_BUFFER; - - FIND_NAME_HEADER = record - node_count : WORD; - reserved : UCHAR; - unique_group : UCHAR; - end; - _FIND_NAME_HEADER = FIND_NAME_HEADER; - TFINDNAMEHEADER = FIND_NAME_HEADER; - PFINDNAMEHEADER = ^FIND_NAME_HEADER; - - FINDREPLACE = record - lStructSize : DWORD; - hwndOwner : HWND; - hInstance : HINST; - Flags : DWORD; - lpstrFindWhat : LPTSTR; - lpstrReplaceWith : LPTSTR; - wFindWhatLen : WORD; - wReplaceWithLen : WORD; - lCustData : LPARAM; - lpfnHook : LPFRHOOKPROC; - lpTemplateName : LPCTSTR; - end; - LPFINDREPLACE = ^FINDREPLACE; - TFINDREPLACE = FINDREPLACE; - PFINDREPLACE = ^FINDREPLACE; - - {FINDTEXT = record conflicts with FindText function } - TFINDTEXT = record - chrg : CHARRANGE; - lpstrText : LPSTR; - end; - _findtext = TFINDTEXT; - Pfindtext = ^TFINDTEXT; - - FINDTEXTEX = record - chrg : CHARRANGE; - lpstrText : LPSTR; - chrgText : CHARRANGE; - end; - _findtextex = FINDTEXTEX; - Tfindtextex = FINDTEXTEX; - Pfindtextex = ^FINDTEXTEX; - - FMS_GETDRIVEINFO = record - dwTotalSpace : DWORD; - dwFreeSpace : DWORD; - szPath : array[0..259] of TCHAR; - szVolume : array[0..13] of TCHAR; - szShare : array[0..127] of TCHAR; - end; - _FMS_GETDRIVEINFO = FMS_GETDRIVEINFO; - TFMSGETDRIVEINFO = FMS_GETDRIVEINFO; - PFMSGETDRIVEINFO = ^FMS_GETDRIVEINFO; - - FMS_GETFILESEL = record - ftTime : FILETIME; - dwSize : DWORD; - bAttr : BYTE; - szName : array[0..259] of TCHAR; - end; - _FMS_GETFILESEL = FMS_GETFILESEL; - TFMSGETFILESEL = FMS_GETFILESEL; - PFMSGETFILESEL = ^FMS_GETFILESEL; - - FMS_LOAD = record - dwSize : DWORD; - szMenuName : array[0..(MENU_TEXT_LEN)-1] of TCHAR; - hMenu : HMENU; - wMenuDelta : UINT; - end; - _FMS_LOAD = FMS_LOAD; - TFMSLOAD = FMS_LOAD; - PFMSLOAD = ^FMS_LOAD; - - FMS_TOOLBARLOAD = record - dwSize : DWORD; - lpButtons : LPEXT_BUTTON; - cButtons : WORD; - cBitmaps : WORD; - idBitmap : WORD; - hBitmap : HBITMAP; - end; - _FMS_TOOLBARLOAD = FMS_TOOLBARLOAD; - TFMSTOOLBARLOAD = FMS_TOOLBARLOAD; - PFMSTOOLBARLOAD = ^FMS_TOOLBARLOAD; - - FOCUS_EVENT_RECORD = record - bSetFocus : WINBOOL; - end; - _FOCUS_EVENT_RECORD = FOCUS_EVENT_RECORD; - TFOCUSEVENTRECORD = FOCUS_EVENT_RECORD; - PFOCUSEVENTRECORD = ^FOCUS_EVENT_RECORD; - - FORM_INFO_1 = record - Flags : DWORD; - pName : LPTSTR; - Size : SIZEL; - ImageableArea : RECTL; - end; - _FORM_INFO_1 = FORM_INFO_1; - TFORMINFO1 = FORM_INFO_1; - PFORMINFO1 = ^FORM_INFO_1; - - FORMAT_PARAMETERS = record - MediaType : MEDIA_TYPE; - StartCylinderNumber : DWORD; - EndCylinderNumber : DWORD; - StartHeadNumber : DWORD; - EndHeadNumber : DWORD; - end; - _FORMAT_PARAMETERS = FORMAT_PARAMETERS; - TFORMATPARAMETERS = FORMAT_PARAMETERS; - PFORMATPARAMETERS = ^FORMAT_PARAMETERS; - - FORMATRANGE = record - _hdc : HDC; - hdcTarget : HDC; - rc : RECT; - rcPage : RECT; - chrg : CHARRANGE; - end; - _formatrange = FORMATRANGE; - Tformatrange = FORMATRANGE; - Pformatrange = ^FORMATRANGE; - - GCP_RESULTS = record - lStructSize : DWORD; - lpOutString : LPTSTR; - lpOrder : ^UINT; - lpDx : ^WINT; - lpCaretPos : ^WINT; - lpClass : LPTSTR; - lpGlyphs : ^UINT; - nGlyphs : UINT; - nMaxFit : UINT; - end; - LPGCP_RESULTS = ^GCP_RESULTS; - tagGCP_RESULTS = GCP_RESULTS; - TGCPRESULTS = GCP_RESULTS; - PGCPRESULTS = ^GCP_RESULTS; -// -// Define the generic mapping array. This is used to denote the -// mapping of each generic access right to a specific access mask. -// - GENERIC_MAPPING = record //winnt - GenericRead : ACCESS_MASK; - GenericWrite : ACCESS_MASK; - GenericExecute : ACCESS_MASK; - GenericAll : ACCESS_MASK; - end; - PGENERIC_MAPPING = ^GENERIC_MAPPING; - _GENERIC_MAPPING = GENERIC_MAPPING; - TGENERICMAPPING = GENERIC_MAPPING; - PGENERICMAPPING = ^GENERIC_MAPPING; - - GLYPHMETRICS = record - gmBlackBoxX : UINT; - gmBlackBoxY : UINT; - gmptGlyphOrigin : POINT; - gmCellIncX : integer; - gmCellIncY : integer; - end; - LPGLYPHMETRICS = ^GLYPHMETRICS; - _GLYPHMETRICS = GLYPHMETRICS; - TGLYPHMETRICS = GLYPHMETRICS; - PGLYPHMETRICS = ^GLYPHMETRICS; - - HANDLETABLE = record - objectHandle : array[0..0] of HGDIOBJ; - end; - tagHANDLETABLE = HANDLETABLE; - THANDLETABLE = HANDLETABLE; - LPHANDLETABLE = ^HANDLETABLE; - - HD_HITTESTINFO = record - pt : POINT; - flags : UINT; - iItem : longint; - end; - _HD_HITTESTINFO = HD_HITTESTINFO; - THDHITTESTINFO = HD_HITTESTINFO; - PHDHITTESTINFO = ^HD_HITTESTINFO; - - HD_ITEM = record - mask : UINT; - cxy : longint; - pszText : LPTSTR; - hbm : HBITMAP; - cchTextMax : longint; - fmt : longint; - lParam : LPARAM; - end; - _HD_ITEM = HD_ITEM; - THDITEM = HD_ITEM; - PHDITEM = ^HD_ITEM; - - WINDOWPOS = record - _hwnd : HWND; - hwndInsertAfter : HWND; - x : longint; - y : longint; - cx : longint; - cy : longint; - flags : UINT; - end; - LPWINDOWPOS = ^WINDOWPOS; - _WINDOWPOS = WINDOWPOS; - TWINDOWPOS = WINDOWPOS; - PWINDOWPOS = ^WINDOWPOS; - - HD_LAYOUT = record - prc : ^RECT; - pwpos : ^WINDOWPOS; - end; - _HD_LAYOUT = HD_LAYOUT; - THDLAYOUT = HD_LAYOUT; - PHDLAYOUT = ^HD_LAYOUT; - - HD_NOTIFY = record - hdr : NMHDR; - iItem : longint; - iButton : longint; - pitem : ^HD_ITEM; - end; - _HD_NOTIFY = HD_NOTIFY; - THDNOTIFY = HD_NOTIFY; - PHDNOTIFY = ^HD_NOTIFY; - - HELPINFO = record - cbSize : UINT; - iContextType : longint; - iCtrlId : longint; - hItemHandle : HANDLE; - dwContextId : DWORD; - MousePos : POINT; - end; - LPHELPINFO = ^HELPINFO; - tagHELPINFO = HELPINFO; - THELPINFO = HELPINFO; - PHELPINFO = ^HELPINFO; - - HELPWININFO = record - wStructSize : longint; - x : longint; - y : longint; - dx : longint; - dy : longint; - wMax : longint; - rgchMember : array[0..1] of TCHAR; - end; - THELPWININFO = HELPWININFO; - PHELPWININFO = ^HELPWININFO; - - HIGHCONTRAST = record - cbSize : UINT; - dwFlags : DWORD; - lpszDefaultScheme : LPTSTR; - end; - LPHIGHCONTRAST = ^HIGHCONTRAST; - tagHIGHCONTRAST = HIGHCONTRAST; - THIGHCONTRAST = HIGHCONTRAST; - PHIGHCONTRAST = ^HIGHCONTRAST; - - HSZPAIR = record - hszSvc : HSZ; - hszTopic : HSZ; - end; - tagHSZPAIR = HSZPAIR; - THSZPAIR = HSZPAIR; - PHSZPAIR = ^HSZPAIR; - - ICONINFO = record - fIcon : WINBOOL; - xHotspot : DWORD; - yHotspot : DWORD; - hbmMask : HBITMAP; - hbmColor : HBITMAP; - end; - _ICONINFO = ICONINFO; - TICONINFO = ICONINFO; - PICONINFO = ^ICONINFO; - - ICONMETRICS = record - cbSize : UINT; - iHorzSpacing : longint; - iVertSpacing : longint; - iTitleWrap : longint; - lfFont : LOGFONT; - end; - LPICONMETRICS = ^ICONMETRICS; - tagICONMETRICS = ICONMETRICS; - TICONMETRICS = ICONMETRICS; - PICONMETRICS = ^ICONMETRICS; - - IMAGELISTDRAWPARAMS = record //+commctrl - cbSize : DWORD; - himl : HIMAGELIST; - i : Integer; - hdcDst : HDC; - x : Integer; - y : Integer; - cx : Integer; - cy : Integer; - xBitmap : Integer; // x offest from the upperleft of bitmap - yBitmap : Integer; // y offset from the upperleft of bitmap - rgbBk : COLORREF; - rgbFg : COLORREF; - fStyle : UINT; - dwRop : DWORD; - end; - - _IMAGELISTDRAWPARAMS=IMAGELISTDRAWPARAMS; - PIMAGELISTDRAWPARAMS=^IMAGELISTDRAWPARAMS; - - IMAGEINFO = record - hbmImage : HBITMAP; - hbmMask : HBITMAP; - Unused1 : longint; - Unused2 : longint; - rcImage : RECT; - end; - _IMAGEINFO = IMAGEINFO; - TIMAGEINFO = IMAGEINFO; - PIMAGEINFO = ^IMAGEINFO; - - KEY_EVENT_RECORD = packed record - bKeyDown : WINBOOL; - wRepeatCount : WORD; - wVirtualKeyCode : WORD; - wVirtualScanCode : WORD; - case longint of - 0 : ( UnicodeChar : WCHAR; - dwControlKeyState : DWORD; ); - 1 : ( AsciiChar : CHAR ); - end; - _KEY_EVENT_RECORD = KEY_EVENT_RECORD; - TKEYEVENTRECORD = KEY_EVENT_RECORD; - PKEYEVENTRECORD = ^KEY_EVENT_RECORD; - - MOUSE_EVENT_RECORD = record - dwMousePosition : COORD; - dwButtonState : DWORD; - dwControlKeyState : DWORD; - dwEventFlags : DWORD; - end; - _MOUSE_EVENT_RECORD = MOUSE_EVENT_RECORD; - TMOUSEEVENTRECORD = MOUSE_EVENT_RECORD; - PMOUSEEVENTRECORD = ^MOUSE_EVENT_RECORD; - - WINDOW_BUFFER_SIZE_RECORD = record - dwSize : COORD; - end; - _WINDOW_BUFFER_SIZE_RECORD = WINDOW_BUFFER_SIZE_RECORD; - TWINDOWBUFFERSIZERECORD = WINDOW_BUFFER_SIZE_RECORD; - PWINDOWBUFFERSIZERECORD = ^WINDOW_BUFFER_SIZE_RECORD; - - MENU_EVENT_RECORD = record - dwCommandId : UINT; - end; - PMENU_EVENT_RECORD = ^MENU_EVENT_RECORD; - _MENU_EVENT_RECORD = MENU_EVENT_RECORD; - TMENUEVENTRECORD = MENU_EVENT_RECORD; - PMENUEVENTRECORD = ^MENU_EVENT_RECORD; - - INPUT_RECORD = record - EventType: Word; - Reserved: Word; - Event : record case longint of - 0 : ( KeyEvent : KEY_EVENT_RECORD ); - 1 : ( MouseEvent : MOUSE_EVENT_RECORD ); - 2 : ( WindowBufferSizeEvent : WINDOW_BUFFER_SIZE_RECORD ); - 3 : ( MenuEvent : MENU_EVENT_RECORD ); - 4 : ( FocusEvent : FOCUS_EVENT_RECORD ); - end; - end; - PINPUT_RECORD = ^INPUT_RECORD; - _INPUT_RECORD = INPUT_RECORD; - TINPUTRECORD = INPUT_RECORD; - PINPUTRECORD = ^INPUT_RECORD; - - SYSTEMTIME = record - case integer of - 1 : ( - wYear : WORD; - wMonth : WORD; - wDayOfWeek : WORD; - wDay : WORD; - wHour : WORD; - wMinute : WORD; - wSecond : WORD; - wMilliseconds : WORD; - ); - { Compatibility for FPC } - 2 : ( - Year : WORD; - Month : WORD; - DayOfWeek : WORD; - Day : WORD; - Hour : WORD; - Minute : WORD; - Second : WORD; - Millisecond : WORD; - ); - end; - LPSYSTEMTIME = ^SYSTEMTIME; - _SYSTEMTIME = SYSTEMTIME; - TSYSTEMTIME = SYSTEMTIME; - PSYSTEMTIME = ^SYSTEMTIME; - - JOB_INFO_1 = record - JobId : DWORD; - pPrinterName : LPTSTR; - pMachineName : LPTSTR; - pUserName : LPTSTR; - pDocument : LPTSTR; - pDatatype : LPTSTR; - pStatus : LPTSTR; - Status : DWORD; - Priority : DWORD; - Position : DWORD; - TotalPages : DWORD; - PagesPrinted : DWORD; - Submitted : SYSTEMTIME; - end; - _JOB_INFO_1 = JOB_INFO_1; - TJOBINFO1 = JOB_INFO_1; - PJOBINFO1 = ^JOB_INFO_1; - - SID_AND_ATTRIBUTES = record //~winnt, moved with SID declarations - Sid : PSID; - Attributes : DWORD; - end; - _SID_AND_ATTRIBUTES = SID_AND_ATTRIBUTES; - TSIDANDATTRIBUTES = SID_AND_ATTRIBUTES; - PSIDANDATTRIBUTES = ^SID_AND_ATTRIBUTES; - - SID_AND_ATTRIBUTES_ARRAY = array[0..(ANYSIZE_ARRAY)-1] of SID_AND_ATTRIBUTES; //winnt - PSID_AND_ATTRIBUTES_ARRAY = ^SID_AND_ATTRIBUTES_ARRAY; - TSIDANDATTRIBUTESARRAY = SID_AND_ATTRIBUTES_ARRAY; - PSIDANDATTRIBUTESARRAY = ^SID_AND_ATTRIBUTES_ARRAY; - - SECURITY_DESCRIPTOR_CONTROL = WORD; - PSECURITY_DESCRIPTOR_CONTROL = ^SECURITY_DESCRIPTOR_CONTROL; - TSECURITYDESCRIPTORCONTROL = SECURITY_DESCRIPTOR_CONTROL; - PSECURITYDESCRIPTORCONTROL = ^SECURITY_DESCRIPTOR_CONTROL; - - SECURITY_DESCRIPTOR = record - Revision : BYTE; - Sbz1 : BYTE; - Control : SECURITY_DESCRIPTOR_CONTROL; - Owner : PSID; - Group : PSID; - Sacl : PACL; - Dacl : PACL; - end; - PSECURITY_DESCRIPTOR = ^SECURITY_DESCRIPTOR; - _SECURITY_DESCRIPTOR = SECURITY_DESCRIPTOR; - TSECURITYDESCRIPTOR = SECURITY_DESCRIPTOR; - PSECURITYDESCRIPTOR = ^SECURITY_DESCRIPTOR; - - JOB_INFO_2 = record - JobId : DWORD; - pPrinterName : LPTSTR; - pMachineName : LPTSTR; - pUserName : LPTSTR; - pDocument : LPTSTR; - pNotifyName : LPTSTR; - pDatatype : LPTSTR; - pPrintProcessor : LPTSTR; - pParameters : LPTSTR; - pDriverName : LPTSTR; - pDevMode : LPDEVMODE; - pStatus : LPTSTR; - pSecurityDescriptor : PSECURITY_DESCRIPTOR; - Status : DWORD; - Priority : DWORD; - Position : DWORD; - StartTime : DWORD; - UntilTime : DWORD; - TotalPages : DWORD; - Size : DWORD; - Submitted : SYSTEMTIME; - Time : DWORD; - PagesPrinted : DWORD; - end; - _JOB_INFO_2 = JOB_INFO_2; - TJOBINFO2 = JOB_INFO_2; - PJOBINFO2 = ^JOB_INFO_2; - - KERNINGPAIR = record - wFirst : WORD; - wSecond : WORD; - iKernAmount : longint; - end; - LPKERNINGPAIR = ^KERNINGPAIR; - tagKERNINGPAIR = KERNINGPAIR; - TKERNINGPAIR = KERNINGPAIR; - PKERNINGPAIR = ^KERNINGPAIR; - - LANA_ENUM = record - length : UCHAR; - lana : array[0..(MAX_LANA)-1] of UCHAR; - end; - _LANA_ENUM = LANA_ENUM; - TLANAENUM = LANA_ENUM; - PLANAENUM = ^LANA_ENUM; - const - bm_LDT_ENTRY_BaseMid = $FF; - bp_LDT_ENTRY_BaseMid = 0; - bm_LDT_ENTRY_Type = $1F00; - bp_LDT_ENTRY_Type = 8; - bm_LDT_ENTRY_Dpl = $6000; - bp_LDT_ENTRY_Dpl = 13; - bm_LDT_ENTRY_Pres = $8000; - bp_LDT_ENTRY_Pres = 15; - bm_LDT_ENTRY_LimitHi = $F0000; - bp_LDT_ENTRY_LimitHi = 16; - bm_LDT_ENTRY_Sys = $100000; - bp_LDT_ENTRY_Sys = 20; - bm_LDT_ENTRY_Reserved_0 = $200000; - bp_LDT_ENTRY_Reserved_0 = 21; - bm_LDT_ENTRY_Default_Big = $400000; - bp_LDT_ENTRY_Default_Big = 22; - bm_LDT_ENTRY_Granularity = $800000; - bp_LDT_ENTRY_Granularity = 23; - bm_LDT_ENTRY_BaseHi = $FF000000; - bp_LDT_ENTRY_BaseHi = 24; - - type - - LOCALESIGNATURE = record - lsUsb : array[0..3] of DWORD; - lsCsbDefault : array[0..1] of DWORD; - lsCsbSupported : array[0..1] of DWORD; - end; - tagLOCALESIGNATURE = LOCALESIGNATURE; - TLOCALESIGNATURE = LOCALESIGNATURE; - PLOCALESIGNATURE = ^LOCALESIGNATURE; - - LOCALGROUP_MEMBERS_INFO_0 = record - lgrmi0_sid : PSID; - end; - _LOCALGROUP_MEMBERS_INFO_0 = LOCALGROUP_MEMBERS_INFO_0; - TLOCALGROUPMEMBERSINFO0 = LOCALGROUP_MEMBERS_INFO_0; - PLOCALGROUPMEMBERSINFO0 = ^LOCALGROUP_MEMBERS_INFO_0; - - LOCALGROUP_MEMBERS_INFO_3 = record - lgrmi3_domainandname : LPWSTR; - end; - _LOCALGROUP_MEMBERS_INFO_3 = LOCALGROUP_MEMBERS_INFO_3; - TLOCALGROUPMEMBERSINFO3 = LOCALGROUP_MEMBERS_INFO_3; - PLOCALGROUPMEMBERSINFO3 = ^LOCALGROUP_MEMBERS_INFO_3; - - FXPT16DOT16 = longint; - LPFXPT16DOT16 = ^FXPT16DOT16; - TFXPT16DOT16 = FXPT16DOT16; - PFXPT16DOT16 = ^FXPT16DOT16; - - LUID_AND_ATTRIBUTES = record //winnt - Luid : LUID; - Attributes : DWORD; - end; - _LUID_AND_ATTRIBUTES = LUID_AND_ATTRIBUTES; - TLUIDANDATTRIBUTES = LUID_AND_ATTRIBUTES; - PLUIDANDATTRIBUTES = ^LUID_AND_ATTRIBUTES; - - LUID_AND_ATTRIBUTES_ARRAY = array[0..(ANYSIZE_ARRAY)-1] of LUID_AND_ATTRIBUTES; - PLUID_AND_ATTRIBUTES_ARRAY = ^LUID_AND_ATTRIBUTES_ARRAY; - TLUIDANDATTRIBUTESARRAY = LUID_AND_ATTRIBUTES_ARRAY; - PLUIDANDATTRIBUTESARRAY = ^LUID_AND_ATTRIBUTES_ARRAY; - - LV_COLUMN = record - mask : UINT; - fmt : longint; - cx : longint; -{$IFDEF UNICODE} - pszText : LPWSTR; -{$ELSE UNICODE} - pszText : LPTSTR; -{$ENDIF UNICODE} - cchTextMax : longint; - iSubItem : longint; - iImage : Longint; //#if (_WIN32_IE >= 0x0300) - iOrder : longint; //#if (_WIN32_IE >= 0x0300) - end; - _LV_COLUMN = LV_COLUMN; - TLVCOLUMN = LV_COLUMN; - PLVCOLUMN = ^LV_COLUMN; - - LV_ITEM = record - mask : UINT; - iItem : longint; - iSubItem : longint; - state : UINT; - stateMask : UINT; -{$IFDEF UNICODE} - pszText : LPWSTR; -{$ELSE UNICODE} - pszText : LPTSTR; -{$ENDIF UNICODE} - cchTextMax : longint; - iImage : longint; - lParam : LPARAM; - iIndent: Longint; //#if (_WIN32_IE >= 0x0300) - end; - _LV_ITEM = LV_ITEM; - TLVITEM = LV_ITEM; - PLVITEM = ^LV_ITEM; - - LV_DISPINFO = record - hdr : NMHDR; - item : LV_ITEM; - end; - tagLV_DISPINFO = LV_DISPINFO; - TLVDISPINFO = LV_DISPINFO; - PLVDISPINFO = ^LV_DISPINFO; - - LV_FINDINFO = record - flags : UINT; - psz : LPCTSTR; - lParam : LPARAM; - pt : POINT; - vkDirection : UINT; - end; - _LV_FINDINFO = LV_FINDINFO; - TLVFINDINFO = LV_FINDINFO; - PLVFINDINFO = ^LV_FINDINFO; - - LV_HITTESTINFO = record - pt : POINT; - flags : UINT; - iItem : longint; - end; - _LV_HITTESTINFO = LV_HITTESTINFO; - TLVHITTESTINFO = LV_HITTESTINFO; - PLVHITTESTINFO = ^LV_HITTESTINFO; - - LV_KEYDOWN = record - hdr : NMHDR; - wVKey : WORD; - flags : UINT; - end; - tagLV_KEYDOWN = LV_KEYDOWN; - TLVKEYDOWN = LV_KEYDOWN; - PLVKEYDOWN = ^LV_KEYDOWN; - - MAT2 = record - eM11 : FIXED; - eM12 : FIXED; - eM21 : FIXED; - eM22 : FIXED; - end; - _MAT2 = MAT2; - TMAT2 = MAT2; - PMAT2 = ^MAT2; - - MDICREATESTRUCT = record - szClass : LPCTSTR; - szTitle : LPCTSTR; - hOwner : HANDLE; - x : longint; - y : longint; - cx : longint; - cy : longint; - style : DWORD; - lParam : LPARAM; - end; - LPMDICREATESTRUCT = ^MDICREATESTRUCT; - tagMDICREATESTRUCT = MDICREATESTRUCT; - TMDICREATESTRUCT = MDICREATESTRUCT; - PMDICREATESTRUCT = ^MDICREATESTRUCT; - - MEASUREITEMSTRUCT = record - CtlType : UINT; - CtlID : UINT; - itemID : UINT; - itemWidth : UINT; - itemHeight : UINT; - itemData : DWORD; - end; - LPMEASUREITEMSTRUCT = ^MEASUREITEMSTRUCT; - tagMEASUREITEMSTRUCT = MEASUREITEMSTRUCT; - TMEASUREITEMSTRUCT = MEASUREITEMSTRUCT; - PMEASUREITEMSTRUCT = ^MEASUREITEMSTRUCT; - - MEMORY_BASIC_INFORMATION = record - BaseAddress : PVOID; - AllocationBase : PVOID; - AllocationProtect : DWORD; - RegionSize : DWORD; - State : DWORD; - Protect : DWORD; - _Type : DWORD; - end; - PMEMORY_BASIC_INFORMATION = ^MEMORY_BASIC_INFORMATION; - _MEMORY_BASIC_INFORMATION = MEMORY_BASIC_INFORMATION; - TMEMORYBASICINFORMATION = MEMORY_BASIC_INFORMATION; - PMEMORYBASICINFORMATION = ^MEMORY_BASIC_INFORMATION; - - MEMORYSTATUS = record - dwLength : DWORD; - dwMemoryLoad : DWORD; - dwTotalPhys : DWORD; - dwAvailPhys : DWORD; - dwTotalPageFile : DWORD; - dwAvailPageFile : DWORD; - dwTotalVirtual : DWORD; - dwAvailVirtual : DWORD; - end; - LPMEMORYSTATUS = ^MEMORYSTATUS; - _MEMORYSTATUS = MEMORYSTATUS; - TMEMORYSTATUS = MEMORYSTATUS; - PMEMORYSTATUS = ^MEMORYSTATUS; - - MENUEX_TEMPLATE_HEADER = record - wVersion : WORD; - wOffset : WORD; - dwHelpId : DWORD; - end; - TMENUXTEMPLATEHEADER = MENUEX_TEMPLATE_HEADER; - PMENUXTEMPLATEHEADER = ^MENUEX_TEMPLATE_HEADER; - - MENUEX_TEMPLATE_ITEM = record - dwType : DWORD; - dwState : DWORD; - uId : UINT; - bResInfo : BYTE; - szText : array[0..0] of WCHAR; - dwHelpId : DWORD; - end; - TMENUEXTEMPLATEITEM = MENUEX_TEMPLATE_ITEM; - PMENUEXTEMPLATEITEM = ^MENUEX_TEMPLATE_ITEM; - - MENUITEMINFO = record - cbSize : UINT; - fMask : UINT; - fType : UINT; - fState : UINT; - wID : UINT; - hSubMenu : HMENU; - hbmpChecked : HBITMAP; - hbmpUnchecked : HBITMAP; - dwItemData : DWORD; - dwTypeData : LPTSTR; - cch : UINT; - end; - LPMENUITEMINFO = ^MENUITEMINFO; - LPCMENUITEMINFO = ^MENUITEMINFO; - tagMENUITEMINFO = MENUITEMINFO; - TMENUITEMINFO = MENUITEMINFO; - TMENUITEMINFOW = MENUITEMINFO; - PMENUITEMINFO = ^MENUITEMINFO; - PMENUITEMINFOW = ^MENUITEMINFO; - - MENUITEMTEMPLATE = record - mtOption : WORD; - mtID : WORD; - mtString : array[0..0] of WCHAR; - end; - TMENUITEMTEMPLATE = MENUITEMTEMPLATE; - PMENUITEMTEMPLATE = ^MENUITEMTEMPLATE; - - MENUITEMTEMPLATEHEADER = record - versionNumber : WORD; - offset : WORD; - end; - TMENUITEMTEMPLATEHEADER = MENUITEMTEMPLATEHEADER; - PMENUITEMTEMPLATEHEADER = ^MENUITEMTEMPLATEHEADER; - - MENUTEMPLATE = record - end; - LPMENUTEMPLATE = ^MENUTEMPLATE; - TMENUTEMPLATE = MENUTEMPLATE; - PMENUTEMPLATE = ^MENUTEMPLATE; - - METAFILEPICT = record - mm : LONG; - xExt : LONG; - yExt : LONG; - hMF : HMETAFILE; - end; - LPMETAFILEPICT = ^METAFILEPICT; - tagMETAFILEPICT = METAFILEPICT; - TMETAFILEPICT = METAFILEPICT; - PMETAFILEPICT = ^METAFILEPICT; - - METAHEADER = packed record - mtType : WORD; - mtHeaderSize : WORD; - mtVersion : WORD; - mtSize : DWORD; - mtNoObjects : WORD; - mtMaxRecord : DWORD; - mtNoParameters : WORD; - end; - tagMETAHEADER = METAHEADER; - TMETAHEADER = METAHEADER; - PMETAHEADER = ^METAHEADER; - - METARECORD = record - rdSize : DWORD; - rdFunction : WORD; - rdParm : array[0..0] of WORD; - end; - LPMETARECORD = ^METARECORD; - tagMETARECORD = METARECORD; - TMETARECORD = METARECORD; - PMETARECORD = ^METARECORD; - - MINIMIZEDMETRICS = record - cbSize : UINT; - iWidth : longint; - iHorzGap : longint; - iVertGap : longint; - iArrange : longint; - end; - LPMINIMIZEDMETRICS = ^MINIMIZEDMETRICS; - tagMINIMIZEDMETRICS = MINIMIZEDMETRICS; - TMINIMIZEDMETRICS = MINIMIZEDMETRICS; - PMINIMIZEDMETRICS = ^MINIMIZEDMETRICS; - - MINMAXINFO = record - ptReserved : POINT; - ptMaxSize : POINT; - ptMaxPosition : POINT; - ptMinTrackSize : POINT; - ptMaxTrackSize : POINT; - end; - tagMINMAXINFO = MINMAXINFO; - TMINMAXINFO = MINMAXINFO; - PMINMAXINFO = ^MINMAXINFO; - - MODEMDEVCAPS = record - dwActualSize : DWORD; - dwRequiredSize : DWORD; - dwDevSpecificOffset : DWORD; - dwDevSpecificSize : DWORD; - dwModemProviderVersion : DWORD; - dwModemManufacturerOffset : DWORD; - dwModemManufacturerSize : DWORD; - dwModemModelOffset : DWORD; - dwModemModelSize : DWORD; - dwModemVersionOffset : DWORD; - dwModemVersionSize : DWORD; - dwDialOptions : DWORD; - dwCallSetupFailTimer : DWORD; - dwInactivityTimeout : DWORD; - dwSpeakerVolume : DWORD; - dwSpeakerMode : DWORD; - dwModemOptions : DWORD; - dwMaxDTERate : DWORD; - dwMaxDCERate : DWORD; - abVariablePortion : array[0..0] of BYTE; - end; - LPMODEMDEVCAPS = ^MODEMDEVCAPS; - TMODEMDEVCAPS = MODEMDEVCAPS; - PMODEMDEVCAPS = ^MODEMDEVCAPS; - - modemdevcaps_tag = MODEMDEVCAPS; - - MODEMSETTINGS = record - dwActualSize : DWORD; - dwRequiredSize : DWORD; - dwDevSpecificOffset : DWORD; - dwDevSpecificSize : DWORD; - dwCallSetupFailTimer : DWORD; - dwInactivityTimeout : DWORD; - dwSpeakerVolume : DWORD; - dwSpeakerMode : DWORD; - dwPreferredModemOptions : DWORD; - dwNegotiatedModemOptions : DWORD; - dwNegotiatedDCERate : DWORD; - abVariablePortion : array[0..0] of BYTE; - end; - LPMODEMSETTINGS = ^MODEMSETTINGS; - TMODEMSETTINGS = MODEMSETTINGS; - PMODEMSETTINGS = ^MODEMSETTINGS; - - modemsettings_tag = MODEMSETTINGS; - - MONCBSTRUCT = record - cb : UINT; - dwTime : DWORD; - hTask : HANDLE; - dwRet : DWORD; - wType : UINT; - wFmt : UINT; - hConv : HCONV; - hsz1 : HSZ; - hsz2 : HSZ; - hData : HDDEDATA; - dwData1 : DWORD; - dwData2 : DWORD; - cc : CONVCONTEXT; - cbData : DWORD; - Data : array[0..7] of DWORD; - end; - tagMONCBSTRUCT = MONCBSTRUCT; - TMONCBSTRUCT = MONCBSTRUCT; - PMONCBSTRUCT = ^MONCBSTRUCT; - - MONCONVSTRUCT = record - cb : UINT; - fConnect : WINBOOL; - dwTime : DWORD; - hTask : HANDLE; - hszSvc : HSZ; - hszTopic : HSZ; - hConvClient : HCONV; - hConvServer : HCONV; - end; - tagMONCONVSTRUCT = MONCONVSTRUCT; - TMONCONVSTRUCT = MONCONVSTRUCT; - PMONCONVSTRUCT = ^MONCONVSTRUCT; - - MONERRSTRUCT = record - cb : UINT; - wLastError : UINT; - dwTime : DWORD; - hTask : HANDLE; - end; - tagMONERRSTRUCT = MONERRSTRUCT; - TMONERRSTRUCT = MONERRSTRUCT; - PMONERRSTRUCT = ^MONERRSTRUCT; - - MONHSZSTRUCT = record - cb : UINT; - fsAction : WINBOOL; - dwTime : DWORD; - hsz : HSZ; - hTask : HANDLE; - str : array[0..0] of TCHAR; - end; - tagMONHSZSTRUCT = MONHSZSTRUCT; - TMONHSZSTRUCT = MONHSZSTRUCT; - PMONHSZSTRUCT = ^MONHSZSTRUCT; - - MONITOR_INFO_1 = record - pName : LPTSTR; - end; - _MONITOR_INFO_1 = MONITOR_INFO_1; - TMONITORINFO1 = MONITOR_INFO_1; - PMONITORINFO1 = ^MONITOR_INFO_1; - - MONITOR_INFO_2 = record - pName : LPTSTR; - pEnvironment : LPTSTR; - pDLLName : LPTSTR; - end; - _MONITOR_INFO_2 = MONITOR_INFO_2; - TMONITORINFO2 = MONITOR_INFO_2; - PMONITORINFO2 = ^MONITOR_INFO_2; - - MONLINKSTRUCT = record - cb : UINT; - dwTime : DWORD; - hTask : HANDLE; - fEstablished : WINBOOL; - fNoData : WINBOOL; - hszSvc : HSZ; - hszTopic : HSZ; - hszItem : HSZ; - wFmt : UINT; - fServer : WINBOOL; - hConvServer : HCONV; - hConvClient : HCONV; - end; - tagMONLINKSTRUCT = MONLINKSTRUCT; - TMONLINKSTRUCT = MONLINKSTRUCT; - PMONLINKSTRUCT = ^MONLINKSTRUCT; - - MONMSGSTRUCT = record - cb : UINT; - hwndTo : HWND; - dwTime : DWORD; - hTask : HANDLE; - wMsg : UINT; - wParam : WPARAM; - lParam : LPARAM; - dmhd : DDEML_MSG_HOOK_DATA; - end; - tagMONMSGSTRUCT = MONMSGSTRUCT; - TMONMSGSTRUCT = MONMSGSTRUCT; - PMONMSGSTRUCT = ^MONMSGSTRUCT; - - MOUSEHOOKSTRUCT = record - pt : POINT; - hwnd : HWND; - wHitTestCode : UINT; - dwExtraInfo : DWORD; - end; - LPMOUSEHOOKSTRUCT = ^MOUSEHOOKSTRUCT; - tagMOUSEHOOKSTRUCT = MOUSEHOOKSTRUCT; - TMOUSEHOOKSTRUCT = MOUSEHOOKSTRUCT; - PMOUSEHOOKSTRUCT = ^MOUSEHOOKSTRUCT; - - MOUSEKEYS = record - cbSize : DWORD; - dwFlags : DWORD; - iMaxSpeed : DWORD; - iTimeToMaxSpeed : DWORD; - iCtrlSpeed : DWORD; - dwReserved1 : DWORD; - dwReserved2 : DWORD; - end; - TMOUSEKEYS = MOUSEKEYS; - PMOUSEKEYS = ^MOUSEKEYS; - - MSGBOXCALLBACK = procedure (lpHelpInfo:LPHELPINFO); - TMSGBOXCALLBACK = MSGBOXCALLBACK; - - MSGBOXPARAMS = record - cbSize : UINT; - hwndOwner : HWND; - hInstance : HINST; - lpszText : LPCSTR; - lpszCaption : LPCSTR; - dwStyle : DWORD; - lpszIcon : LPCSTR; - dwContextHelpId : DWORD; - lpfnMsgBoxCallback : MSGBOXCALLBACK; - dwLanguageId : DWORD; - end; - LPMSGBOXPARAMS = ^MSGBOXPARAMS; - TMSGBOXPARAMS = MSGBOXPARAMS; - TMSGBOXPARAMSA = MSGBOXPARAMS; - PMSGBOXPARAMS = ^MSGBOXPARAMS; - - MSGFILTER = record - nmhdr : NMHDR; - msg : UINT; - wParam : WPARAM; - lParam : LPARAM; - end; - _msgfilter = MSGFILTER; - Tmsgfilter = MSGFILTER; - Pmsgfilter = ^MSGFILTER; - - MULTIKEYHELP = record - mkSize : DWORD; - mkKeylist : TCHAR; - szKeyphrase : array[0..0] of TCHAR; - end; - tagMULTIKEYHELP = MULTIKEYHELP; - TMULTIKEYHELP = MULTIKEYHELP; - PMULTIKEYHELP = ^MULTIKEYHELP; - - EXTENDED_NAME_FORMAT=( - // unknown name type - NameUnknown = 0, - // CN=Spencer Katt, OU=Software, OU=Engineering, O=Widget, C=US - NameFullyQualifiedDN = 1, - // Engineering\SpencerK - NameSamCompatible = 2, - // Probably "Spencer Katt" but could be something else. I.e. The - // display name is not necessarily the defining RDN. - NameDisplay = 3, - // xxx@engineering.widget.com where xxx could be "SpencerK" or - // anything else. Could be multi-valued to handle migration and aliasing. - NameDomainSimple = 4, - // xxx@widget.com where xxx could be "SpencerK" or anything else. - // Could be multi-valued to handle migration and aliasing. - NameEnterpriseSimple = 5, - // String-ized GUID as returned by IIDFromString(). - // eg: {4fa050f0-f561-11cf-bdd9-00aa003a77b6} - NameUniqueId = 6, - // engineering.widget.com/software/spencer katt - NameCanonical = 7, - // local logon name - NameWindowsCeLocal = $80000001); //+winbase - PEXTENDED_NAME_FORMAT=^EXTENDED_NAME_FORMAT; //+winbase - - NAME_BUFFER = record - name : array[0..(NCBNAMSZ)-1] of UCHAR; - name_num : UCHAR; - name_flags : UCHAR; - end; - _NAME_BUFFER = NAME_BUFFER; - TNAMEBUFFER = NAME_BUFFER; - PNAMEBUFFER = ^NAME_BUFFER; - - p_NCB = ^_NCB; - NCB = record - ncb_command : UCHAR; - ncb_retcode : UCHAR; - ncb_lsn : UCHAR; - ncb_num : UCHAR; - ncb_buffer : PUCHAR; - ncb_length : WORD; - ncb_callname : array[0..(NCBNAMSZ)-1] of UCHAR; - ncb_name : array[0..(NCBNAMSZ)-1] of UCHAR; - ncb_rto : UCHAR; - ncb_sto : UCHAR; - ncb_post : procedure (_para1:p_NCB);CDECL; - ncb_lana_num : UCHAR; - ncb_cmd_cplt : UCHAR; - ncb_reserve : array[0..9] of UCHAR; - ncb_event : HANDLE; - end; - _NCB = NCB; - TNCB = NCB; - PNCB = ^NCB; - - NCCALCSIZE_PARAMS = record - rgrc : array[0..2] of RECT; - lppos : PWINDOWPOS; - end; - _NCCALCSIZE_PARAMS = NCCALCSIZE_PARAMS; - TNCCALCSIZEPARAMS = NCCALCSIZE_PARAMS; - PNCCALCSIZEPARAMS = ^NCCALCSIZE_PARAMS; - - NDDESHAREINFO = record - lRevision : LONG; - lpszShareName : LPTSTR; - lShareType : LONG; - lpszAppTopicList : LPTSTR; - fSharedFlag : LONG; - fService : LONG; - fStartAppFlag : LONG; - nCmdShow : LONG; - qModifyId : array[0..1] of LONG; - cNumItems : LONG; - lpszItemList : LPTSTR; - end; - _NDDESHAREINFO = NDDESHAREINFO; - TNDDESHAREINFO = NDDESHAREINFO; - PNDDESHAREINFO = ^NDDESHAREINFO; - - NETRESOURCE = record - dwScope : DWORD; - dwType : DWORD; - dwDisplayType : DWORD; - dwUsage : DWORD; - lpLocalName : LPTSTR; - lpRemoteName : LPTSTR; - lpComment : LPTSTR; - lpProvider : LPTSTR; - end; - LPNETRESOURCE = ^NETRESOURCE; - _NETRESOURCE = NETRESOURCE; - TNETRESOURCE = NETRESOURCE; - TNETRESOURCEA = NETRESOURCE; - PNETRESOURCE = ^NETRESOURCE; - PNETRESOURCEA = ^NETRESOURCE; - - NETRESOURCEW = record //+winnetwk - dwScope : DWORD; - dwType : DWORD; - dwDisplayType : DWORD; - dwUsage : DWORD; - lpLocalName : LPWSTR; - lpRemoteName : LPWSTR; - lpComment : LPWSTR; - lpProvider : LPWSTR; - end; - LPNETRESOURCEW = ^NETRESOURCEW; //+winnetwk - _NETRESOURCEW = NETRESOURCEW; //+winnetwk - - NEWCPLINFO = record - dwSize : DWORD; - dwFlags : DWORD; - dwHelpContext : DWORD; - lData : LONG; - hIcon : HICON; - szName : array[0..31] of TCHAR; - szInfo : array[0..63] of TCHAR; - szHelpFile : array[0..127] of TCHAR; - end; - tagNEWCPLINFO = NEWCPLINFO; - TNEWCPLINFO = NEWCPLINFO; - PNEWCPLINFO = ^NEWCPLINFO; - - NEWTEXTMETRIC = record - tmHeight : LONG; - tmAscent : LONG; - tmDescent : LONG; - tmInternalLeading : LONG; - tmExternalLeading : LONG; - tmAveCharWidth : LONG; - tmMaxCharWidth : LONG; - tmWeight : LONG; - tmOverhang : LONG; - tmDigitizedAspectX : LONG; - tmDigitizedAspectY : LONG; - tmFirstChar : BCHAR; - tmLastChar : BCHAR; - tmDefaultChar : BCHAR; - tmBreakChar : BCHAR; - tmItalic : BYTE; - tmUnderlined : BYTE; - tmStruckOut : BYTE; - tmPitchAndFamily : BYTE; - tmCharSet : BYTE; - ntmFlags : DWORD; - ntmSizeEM : UINT; - ntmCellHeight : UINT; - ntmAvgWidth : UINT; - end; - tagNEWTEXTMETRIC = NEWTEXTMETRIC; - TNEWTEXTMETRIC = NEWTEXTMETRIC; - PNEWTEXTMETRIC = ^NEWTEXTMETRIC; - - NEWTEXTMETRICEX = record - ntmentm : NEWTEXTMETRIC; - ntmeFontSignature : FONTSIGNATURE; - end; - tagNEWTEXTMETRICEX = NEWTEXTMETRICEX; - TNEWTEXTMETRICEX = NEWTEXTMETRICEX; - PNEWTEXTMETRICEX = ^NEWTEXTMETRICEX; - - NM_LISTVIEW = record - hdr : NMHDR; - iItem : longint; - iSubItem : longint; - uNewState : UINT; - uOldState : UINT; - uChanged : UINT; - ptAction : POINT; - lParam : LPARAM; - end; - tagNM_LISTVIEW = NM_LISTVIEW; - TNMLISTVIEW = NM_LISTVIEW; - PNMLISTVIEW = ^NM_LISTVIEW; - - TV_ITEM = record - mask : UINT; - hItem : HTREEITEM; - state : UINT; - stateMask : UINT; - pszText : LPTSTR; - cchTextMax : longint; - iImage : longint; - iSelectedImage : longint; - cChildren : longint; - lParam : LPARAM; - end; - LPTV_ITEM = ^TV_ITEM; - _TV_ITEM = TV_ITEM; - TTVITEM = TV_ITEM; - PTVITEM = ^TV_ITEM; - - NM_TREEVIEW = record - hdr : NMHDR; - action : UINT; - itemOld : TV_ITEM; - itemNew : TV_ITEM; - ptDrag : POINT; - end; - LPNM_TREEVIEW = ^NM_TREEVIEW; - _NM_TREEVIEW = NM_TREEVIEW; - TNMTREEVIEW = NM_TREEVIEW; - PNMTREEVIEW = ^NM_TREEVIEW; - - NM_UPDOWNW = record - hdr : NMHDR; - iPos : longint; - iDelta : longint; - end; - _NM_UPDOWN = NM_UPDOWNW; - TNMUPDOWN = NM_UPDOWNW; - PNMUPDOWN = ^NM_UPDOWNW; - - NONCLIENTMETRICS = record - cbSize : UINT; - iBorderWidth : longint; - iScrollWidth : longint; - iScrollHeight : longint; - iCaptionWidth : longint; - iCaptionHeight : longint; - lfCaptionFont : LOGFONT; - iSmCaptionWidth : longint; - iSmCaptionHeight : longint; - lfSmCaptionFont : LOGFONT; - iMenuWidth : longint; - iMenuHeight : longint; - lfMenuFont : LOGFONT; - lfStatusFont : LOGFONT; - lfMessageFont : LOGFONT; - end; - LPNONCLIENTMETRICS = ^NONCLIENTMETRICS; - tagNONCLIENTMETRICS = NONCLIENTMETRICS; - TNONCLIENTMETRICS = NONCLIENTMETRICS; - PNONCLIENTMETRICS = ^NONCLIENTMETRICS; - - SERVICE_ADDRESS = record - dwAddressType : DWORD; - dwAddressFlags : DWORD; - dwAddressLength : DWORD; - dwPrincipalLength : DWORD; - lpAddress : ^BYTE; - lpPrincipal : ^BYTE; - end; - _SERVICE_ADDRESS = SERVICE_ADDRESS; - TSERVICEADDRESS = SERVICE_ADDRESS; - PSERVICEADDRESS = ^SERVICE_ADDRESS; - - SERVICE_ADDRESSES = record - dwAddressCount : DWORD; - Addresses : array[0..0] of SERVICE_ADDRESS; - end; - LPSERVICE_ADDRESSES = ^SERVICE_ADDRESSES; - _SERVICE_ADDRESSES = SERVICE_ADDRESSES; - TSERVICEADDRESSES = SERVICE_ADDRESSES; - PSERVICEADDRESSES = ^SERVICE_ADDRESSES; - - GUID = system.tguid; //winnt - LPGUID = ^GUID; - _GUID = GUID; - TGUID = GUID; - PGUID = ^GUID; - - CLSID = GUID; - LPCLSID = ^CLSID; - TCLSID = CLSID; - PCLSID = ^CLSID; - - SERVICE_INFO = record - lpServiceType : LPGUID; - lpServiceName : LPTSTR; - lpComment : LPTSTR; - lpLocale : LPTSTR; - dwDisplayHint : DWORD; - dwVersion : DWORD; - dwTime : DWORD; - lpMachineName : LPTSTR; - lpServiceAddress : LPSERVICE_ADDRESSES; - ServiceSpecificInfo : BLOB; - end; - _SERVICE_INFO = SERVICE_INFO; - TSERVICEINFO = SERVICE_INFO; - PSERVICEINFO = ^SERVICE_INFO; - - NS_SERVICE_INFO = record - dwNameSpace : DWORD; - ServiceInfo : SERVICE_INFO; - end; - _NS_SERVICE_INFO = NS_SERVICE_INFO; - TNSSERVICEINFO = NS_SERVICE_INFO; - PNSSERVICEINFO = ^NS_SERVICE_INFO; - - NUMBERFMT = record - NumDigits : UINT; - LeadingZero : UINT; - Grouping : UINT; - lpDecimalSep : LPTSTR; - lpThousandSep : LPTSTR; - NegativeOrder : UINT; - end; - _numberfmt = NUMBERFMT; - Tnumberfmt = NUMBERFMT; - Pnumberfmt = ^NUMBERFMT; - - OFSTRUCT = record - cBytes : BYTE; - fFixedDisk : BYTE; - nErrCode : WORD; - Reserved1 : WORD; - Reserved2 : WORD; - szPathName : array[0..(OFS_MAXPATHNAME)-1] of CHAR; - end; - LPOFSTRUCT = ^OFSTRUCT; - _OFSTRUCT = OFSTRUCT; - TOFSTRUCT = OFSTRUCT; - POFSTRUCT = ^OFSTRUCT; - - OPENFILENAMEW = record //+commdlg - lStructSize : DWORD; - hwndOwner : HWND; - hInstance : HINST; - lpstrFilter : LPCWSTR; - lpstrCustomFilter : LPWSTR; - nMaxCustFilter : DWORD; - nFilterIndex : DWORD; - lpstrFile : LPWSTR; - nMaxFile : DWORD; - lpstrFileTitle : LPWSTR; - nMaxFileTitle : DWORD; - lpstrInitialDir : LPCWSTR; - lpstrTitle : LPCWSTR; - Flags : DWORD; - nFileOffset : WORD; - nFileExtension : WORD; - lpstrDefExt : LPCWSTR; - lCustData : LPARAM; - lpfnHook : LPOFNHOOKPROC; - lpTemplateName : LPCWSTR; - end; - LPOPENFILENAMEW = ^OPENFILENAMEW; //+commdlg - tagOFNW = OPENFILENAMEW; //+commdlg - LPOPENFILENAME = ^OPENFILENAMEW; - TOPENFILENAME = OPENFILENAMEW; - POPENFILENAME = ^OPENFILENAMEW; - TOPENFILENAMEW = OPENFILENAMEW; - POPENFILENAMEW = ^OPENFILENAMEW; - - tagOFN = OPENFILENAMEW; - TOFN = OPENFILENAMEW; - POFN = ^OPENFILENAMEW; - - OFNOTIFY = record - hdr : NMHDR; - lpOFN : LPOPENFILENAME; - pszFile : LPTSTR; - end; - LPOFNOTIFY = ^OFNOTIFY; - _OFNOTIFY = OFNOTIFY; - TOFNOTIFY = OFNOTIFY; - POFNOTIFY = ^OFNOTIFY; - - OSVERSIONINFO = record - dwOSVersionInfoSize : DWORD; - dwMajorVersion : DWORD; - dwMinorVersion : DWORD; - dwBuildNumber : DWORD; - dwPlatformId : DWORD; - szCSDVersion : array[0..127] of TCHAR; - end; - LPOSVERSIONINFO = ^OSVERSIONINFO; - _OSVERSIONINFO = OSVERSIONINFO; - TOSVERSIONINFO = OSVERSIONINFO; - POSVERSIONINFO = ^OSVERSIONINFO; - - OSVERSIONINFOW = record - dwOSVersionInfoSize : DWORD; - dwMajorVersion : DWORD; - dwMinorVersion : DWORD; - dwBuildNumber : DWORD; - dwPlatformId : DWORD; - szCSDVersion : array[0..127] of WCHAR; - end; - LPOSVERSIONINFOW = ^OSVERSIONINFOW; - _OSVERSIONINFOW = OSVERSIONINFOW; - TOSVERSIONINFOW = OSVERSIONINFOW; - POSVERSIONINFOW = ^OSVERSIONINFOW; - - - - - - TEXTMETRIC = record - tmHeight : LONG; - tmAscent : LONG; - tmDescent : LONG; - tmInternalLeading : LONG; - tmExternalLeading : LONG; - tmAveCharWidth : LONG; - tmMaxCharWidth : LONG; - tmWeight : LONG; - tmOverhang : LONG; - tmDigitizedAspectX : LONG; - tmDigitizedAspectY : LONG; - tmFirstChar : BCHAR; - tmLastChar : BCHAR; - tmDefaultChar : BCHAR; - tmBreakChar : BCHAR; - tmItalic : BYTE; - tmUnderlined : BYTE; - tmStruckOut : BYTE; - tmPitchAndFamily : BYTE; - tmCharSet : BYTE; - end; - LPTEXTMETRIC = ^TEXTMETRIC; - tagTEXTMETRIC = TEXTMETRIC; - TTEXTMETRIC = TEXTMETRIC; - PTEXTMETRIC = ^TEXTMETRIC; - - TEXTMETRICW = record - tmHeight : LONG; - tmAscent : LONG; - tmDescent : LONG; - tmInternalLeading : LONG; - tmExternalLeading : LONG; - tmAveCharWidth : LONG; - tmMaxCharWidth : LONG; - tmWeight : LONG; - tmOverhang : LONG; - tmDigitizedAspectX : LONG; - tmDigitizedAspectY : LONG; - tmFirstChar : WCHAR; - tmLastChar : WCHAR; - tmDefaultChar : WCHAR; - tmBreakChar : WCHAR; - tmItalic : BYTE; - tmUnderlined : BYTE; - tmStruckOut : BYTE; - tmPitchAndFamily : BYTE; - tmCharSet : BYTE; - end; - LPTEXTMETRICW = ^TEXTMETRICW; - tagTEXTMETRICW = TEXTMETRICW; - TTEXTMETRICW = TEXTMETRICW; - PTEXTMETRICW = ^TEXTMETRICW; - - - OUTLINETEXTMETRIC = record - otmSize : UINT; - otmTextMetrics : TEXTMETRIC; - otmFiller : BYTE; - otmPanoseNumber : PANOSE; - otmfsSelection : UINT; - otmfsType : UINT; - otmsCharSlopeRise : longint; - otmsCharSlopeRun : longint; - otmItalicAngle : longint; - otmEMSquare : UINT; - otmAscent : longint; - otmDescent : longint; - otmLineGap : UINT; - otmsCapEmHeight : UINT; - otmsXHeight : UINT; - otmrcFontBox : RECT; - otmMacAscent : longint; - otmMacDescent : longint; - otmMacLineGap : UINT; - otmusMinimumPPEM : UINT; - otmptSubscriptSize : POINT; - otmptSubscriptOffset : POINT; - otmptSuperscriptSize : POINT; - otmptSuperscriptOffset : POINT; - otmsStrikeoutSize : UINT; - otmsStrikeoutPosition : longint; - otmsUnderscoreSize : longint; - otmsUnderscorePosition : longint; - otmpFamilyName : PSTR; - otmpFaceName : PSTR; - otmpStyleName : PSTR; - otmpFullName : PSTR; - end; - LPOUTLINETEXTMETRIC = ^OUTLINETEXTMETRIC; - _OUTLINETEXTMETRIC = OUTLINETEXTMETRIC; - TOUTLINETEXTMETRIC = OUTLINETEXTMETRIC; - POUTLINETEXTMETRIC = ^OUTLINETEXTMETRIC; - - OVERLAPPED = record - Internal : DWORD; - InternalHigh : DWORD; - Offset : DWORD; - OffsetHigh : DWORD; - hEvent : HANDLE; - end; - LPOVERLAPPED = ^OVERLAPPED; - _OVERLAPPED = OVERLAPPED; - TOVERLAPPED = OVERLAPPED; - POVERLAPPED = ^OVERLAPPED; - - {PAGESETUPDLG = record conflicts with function PageSetupDlg } - TPAGESETUPDLG = record - lStructSize : DWORD; - hwndOwner : HWND; - hDevMode : HGLOBAL; - hDevNames : HGLOBAL; - Flags : DWORD; - ptPaperSize : POINT; - rtMinMargin : RECT; - rtMargin : RECT; - hInstance : HINST; - lCustData : LPARAM; - lpfnPageSetupHook : LPPAGESETUPHOOK; - lpfnPagePaintHook : LPPAGEPAINTHOOK; - lpPageSetupTemplateName : LPCTSTR; - hPageSetupTemplate : HGLOBAL; - end; - LPPAGESETUPDLG = ^TPAGESETUPDLG; - PPAGESETUPDLG = ^TPAGESETUPDLG; - - tagPSD = TPAGESETUPDLG; - TPSD = TPAGESETUPDLG; - PPSD = ^TPAGESETUPDLG; - - TPAGESETUPDLGW = record //+commdlg - lStructSize : DWORD; - hwndOwner : HWND; - hDevMode : HGLOBAL; - hDevNames : HGLOBAL; - Flags : DWORD; - ptPaperSize : POINT; // ignored in CE - rtMinMargin : RECT; - rtMargin : RECT; - hInstance : HINST; - lCustData : LPARAM; - lpfnPageSetupHook : LPPAGESETUPHOOK; - lpfnPagePaintHook : LPPAGEPAINTHOOK; // ignored in CE - lpPageSetupTemplateName : LPCWSTR; - hPageSetupTemplate : HGLOBAL; - end; - LPPAGESETUPDLGW = ^TPAGESETUPDLGW; //+commdlg - tagPSDW = TPAGESETUPDLGW; //+commdlg - - PAINTSTRUCT = record - hdc : HDC; - fErase : WINBOOL; - rcPaint : RECT; - fRestore : WINBOOL; - fIncUpdate : WINBOOL; - rgbReserved : array[0..31] of BYTE; - end; - LPPAINTSTRUCT = ^PAINTSTRUCT; - tagPAINTSTRUCT = PAINTSTRUCT; - TPAINTSTRUCT = PAINTSTRUCT; - PPAINTSTRUCT = ^PAINTSTRUCT; - - PARAFORMAT = record - cbSize : UINT; - dwMask : DWORD; - wNumbering : WORD; - wReserved : WORD; - dxStartIndent : LONG; - dxRightIndent : LONG; - dxOffset : LONG; - wAlignment : WORD; - cTabCount : SHORT; - rgxTabs : array[0..(MAX_TAB_STOPS)-1] of LONG; - end; - _paraformat = PARAFORMAT; - Tparaformat = PARAFORMAT; - Pparaformat = ^PARAFORMAT; - - PERF_COUNTER_BLOCK = record - ByteLength : DWORD; - end; - _PERF_COUNTER_BLOCK = PERF_COUNTER_BLOCK; - TPERFCOUNTERBLOCK = PERF_COUNTER_BLOCK; - PPERFCOUNTERBLOCK = ^PERF_COUNTER_BLOCK; - - PERF_COUNTER_DEFINITION = record - ByteLength : DWORD; - CounterNameTitleIndex : DWORD; - CounterNameTitle : LPWSTR; - CounterHelpTitleIndex : DWORD; - CounterHelpTitle : LPWSTR; - DefaultScale : DWORD; - DetailLevel : DWORD; - CounterType : DWORD; - CounterSize : DWORD; - CounterOffset : DWORD; - end; - _PERF_COUNTER_DEFINITION = PERF_COUNTER_DEFINITION; - TPERFCOUNTERDEFINITION = PERF_COUNTER_DEFINITION; - PPERFCOUNTERDEFINITION = ^PERF_COUNTER_DEFINITION; - - PERF_DATA_BLOCK = record - Signature : array[0..3] of WCHAR; - LittleEndian : DWORD; - Version : DWORD; - Revision : DWORD; - TotalByteLength : DWORD; - HeaderLength : DWORD; - NumObjectTypes : DWORD; - DefaultObject : DWORD; - SystemTime : SYSTEMTIME; - PerfTime : LARGE_INTEGER; - PerfFreq : LARGE_INTEGER; - PerfTime100nSec : LARGE_INTEGER; - SystemNameLength : DWORD; - SystemNameOffset : DWORD; - end; - _PERF_DATA_BLOCK = PERF_DATA_BLOCK; - TPERFDATABLOCK = PERF_DATA_BLOCK; - PPERFDATABLOCK = ^PERF_DATA_BLOCK; - - PERF_INSTANCE_DEFINITION = record - ByteLength : DWORD; - ParentObjectTitleIndex : DWORD; - ParentObjectInstance : DWORD; - UniqueID : DWORD; - NameOffset : DWORD; - NameLength : DWORD; - end; - _PERF_INSTANCE_DEFINITION = PERF_INSTANCE_DEFINITION; - TPERFINSTANCEDEFINITION = PERF_INSTANCE_DEFINITION; - PPERFINSTANCEDEFINITION = PERF_INSTANCE_DEFINITION; - - PERF_OBJECT_TYPE = record - TotalByteLength : DWORD; - DefinitionLength : DWORD; - HeaderLength : DWORD; - ObjectNameTitleIndex : DWORD; - ObjectNameTitle : LPWSTR; - ObjectHelpTitleIndex : DWORD; - ObjectHelpTitle : LPWSTR; - DetailLevel : DWORD; - NumCounters : DWORD; - DefaultCounter : DWORD; - NumInstances : DWORD; - CodePage : DWORD; - PerfTime : LARGE_INTEGER; - PerfFreq : LARGE_INTEGER; - end; - _PERF_OBJECT_TYPE = PERF_OBJECT_TYPE; - TPERFOBJECTTYPE = PERF_OBJECT_TYPE; - PPERFOBJECTTYPE = ^PERF_OBJECT_TYPE; - - POLYTEXT = record - x : longint; - y : longint; - n : UINT; - lpstr : LPCTSTR; - uiFlags : UINT; - rcl : RECT; - pdx : ^longint; - end; - _POLYTEXT = POLYTEXT; - TPOLYTEXT = POLYTEXT; - PPOLYTEXT = ^POLYTEXT; - - PORT_INFO_1 = record - pName : LPTSTR; - end; - _PORT_INFO_1 = PORT_INFO_1; - TPORTINFO1 = PORT_INFO_1; - PPORTINFO1 = ^PORT_INFO_1; - - PORT_INFO_2 = record - pPortName : LPSTR; - pMonitorName : LPSTR; - pDescription : LPSTR; - fPortType : DWORD; - Reserved : DWORD; - end; - _PORT_INFO_2 = PORT_INFO_2; - TPORTINFO2 = PORT_INFO_2; - PPORTINFO2 = ^PORT_INFO_2; - - PREVENT_MEDIA_REMOVAL = record - PreventMediaRemoval : BOOLEAN; - end; - _PREVENT_MEDIA_REMOVAL = PREVENT_MEDIA_REMOVAL; - TPREVENTMEDIAREMOVAL = PREVENT_MEDIA_REMOVAL; - PPREVENTMEDIAREMOVAL = ^PREVENT_MEDIA_REMOVAL; - - {PRINTDLG = record conflicts with PrintDlg function } - TPRINTDLG = packed record - lStructSize : DWORD; - hwndOwner : HWND; - hDevMode : HANDLE; - hDevNames : HANDLE; - hDC : HDC; - Flags : DWORD; - nFromPage : WORD; - nToPage : WORD; - nMinPage : WORD; - nMaxPage : WORD; - nCopies : WORD; - hInstance : HINST; - lCustData : DWORD; - lpfnPrintHook : LPPRINTHOOKPROC; - lpfnSetupHook : LPSETUPHOOKPROC; - lpPrintTemplateName : LPCTSTR; - lpSetupTemplateName : LPCTSTR; - hPrintTemplate : HANDLE; - hSetupTemplate : HANDLE; - end; - LPPRINTDLG = ^TPRINTDLG; - PPRINTDLG = ^TPRINTDLG; - - tagPD = TPRINTDLG; - TPD = TPRINTDLG; - PPD = ^TPRINTDLG; - - PRINTER_DEFAULTS = record - pDatatype : LPTSTR; - pDevMode : LPDEVMODE; - DesiredAccess : ACCESS_MASK; - end; - _PRINTER_DEFAULTS = PRINTER_DEFAULTS; - TPRINTERDEFAULTS = PRINTER_DEFAULTS; - PPRINTERDEFAULTS = ^PRINTER_DEFAULTS; - - PRINTER_INFO_1 = record - Flags : DWORD; - pDescription : LPTSTR; - pName : LPTSTR; - pComment : LPTSTR; - end; - LPPRINTER_INFO_1 = ^PRINTER_INFO_1; - PPRINTER_INFO_1 = ^PRINTER_INFO_1; - _PRINTER_INFO_1 = PRINTER_INFO_1; - TPRINTERINFO1 = PRINTER_INFO_1; - PPRINTERINFO1 = ^PRINTER_INFO_1; - - PRINTER_INFO_2 = record - pServerName : LPTSTR; - pPrinterName : LPTSTR; - pShareName : LPTSTR; - pPortName : LPTSTR; - pDriverName : LPTSTR; - pComment : LPTSTR; - pLocation : LPTSTR; - pDevMode : LPDEVMODE; - pSepFile : LPTSTR; - pPrintProcessor : LPTSTR; - pDatatype : LPTSTR; - pParameters : LPTSTR; - pSecurityDescriptor : PSECURITY_DESCRIPTOR; - Attributes : DWORD; - Priority : DWORD; - DefaultPriority : DWORD; - StartTime : DWORD; - UntilTime : DWORD; - Status : DWORD; - cJobs : DWORD; - AveragePPM : DWORD; - end; - _PRINTER_INFO_2 = PRINTER_INFO_2; - TPRINTERINFO2 = PRINTER_INFO_2; - PPRINTERINFO2 = ^PRINTER_INFO_2; - - PRINTER_INFO_3 = record - pSecurityDescriptor : PSECURITY_DESCRIPTOR; - end; - _PRINTER_INFO_3 = PRINTER_INFO_3; - TPRINTERINFO3 = PRINTER_INFO_3; - PPRINTERINFO3 = ^PRINTER_INFO_3; - - PRINTER_INFO_4 = record - pPrinterName : LPTSTR; - pServerName : LPTSTR; - Attributes : DWORD; - end; - _PRINTER_INFO_4 = PRINTER_INFO_4; - TPRINTERINFO4 = PRINTER_INFO_4; - PPRINTERINFO4 = ^PRINTER_INFO_4; - - PRINTER_INFO_5 = record - pPrinterName : LPTSTR; - pPortName : LPTSTR; - Attributes : DWORD; - DeviceNotSelectedTimeout : DWORD; - TransmissionRetryTimeout : DWORD; - end; - _PRINTER_INFO_5 = PRINTER_INFO_5; - TPRINTERINFO5 = PRINTER_INFO_5; - PPRINTERINFO5 = ^PRINTER_INFO_5; - - PRINTER_NOTIFY_INFO_DATA = record - _Type : WORD; - Field : WORD; - Reserved : DWORD; - Id : DWORD; - NotifyData : record - case longint of - 0 : ( adwData : array[0..1] of DWORD ); - 1 : ( Data : record - cbBuf : DWORD; - pBuf : LPVOID; - end ); - end; - end; - _PRINTER_NOTIFY_INFO_DATA = PRINTER_NOTIFY_INFO_DATA; - TPRINTERNOTIFYINFODATA = PRINTER_NOTIFY_INFO_DATA; - PPRINTERNOTIFYINFODATA = ^PRINTER_NOTIFY_INFO_DATA; - - PRINTER_NOTIFY_INFO = record - Version : DWORD; - Flags : DWORD; - Count : DWORD; - aData : array[0..0] of PRINTER_NOTIFY_INFO_DATA; - end; - _PRINTER_NOTIFY_INFO = PRINTER_NOTIFY_INFO; - TPRINTERNOTIFYINFO = PRINTER_NOTIFY_INFO; - PPRINTERNOTIFYINFO = ^PRINTER_NOTIFY_INFO; - - PRINTER_NOTIFY_OPTIONS_TYPE = record - _Type : WORD; - Reserved0 : WORD; - Reserved1 : DWORD; - Reserved2 : DWORD; - Count : DWORD; - pFields : PWORD; - end; - PPRINTER_NOTIFY_OPTIONS_TYPE = ^PRINTER_NOTIFY_OPTIONS_TYPE; - _PRINTER_NOTIFY_OPTIONS_TYPE = PRINTER_NOTIFY_OPTIONS_TYPE; - TPRINTERNOTIFYOPTIONSTYPE = PRINTER_NOTIFY_OPTIONS_TYPE; - PPRINTERNOTIFYOPTIONSTYPE = ^PRINTER_NOTIFY_OPTIONS_TYPE; - - PRINTER_NOTIFY_OPTIONS = record - Version : DWORD; - Flags : DWORD; - Count : DWORD; - pTypes : PPRINTER_NOTIFY_OPTIONS_TYPE; - end; - _PRINTER_NOTIFY_OPTIONS = PRINTER_NOTIFY_OPTIONS; - TPRINTERNOTIFYOPTIONS = PRINTER_NOTIFY_OPTIONS; - PPRINTERNOTIFYOPTIONS = ^PRINTER_NOTIFY_OPTIONS; - - PRINTPROCESSOR_INFO_1 = record - pName : LPTSTR; - end; - _PRINTPROCESSOR_INFO_1 = PRINTPROCESSOR_INFO_1; - TPRINTPROCESSORINFO1 = PRINTPROCESSOR_INFO_1; - PPRINTPROCESSORINFO1 = ^PRINTPROCESSOR_INFO_1; - - PRIVILEGE_SET = record - PrivilegeCount : DWORD; - Control : DWORD; - Privilege : array[0..(ANYSIZE_ARRAY)-1] of LUID_AND_ATTRIBUTES; - end; - LPPRIVILEGE_SET = ^PRIVILEGE_SET; - PPRIVILEGE_SET = ^PRIVILEGE_SET; - _PRIVILEGE_SET = PRIVILEGE_SET; - TPRIVILEGESET = PRIVILEGE_SET; - PPRIVILEGESET = ^PRIVILEGE_SET; - - PROCESS_HEAPENTRY = record - lpData : PVOID; - cbData : DWORD; - cbOverhead : BYTE; - iRegionIndex : BYTE; - wFlags : WORD; - dwCommittedSize : DWORD; - dwUnCommittedSize : DWORD; - lpFirstBlock : LPVOID; - lpLastBlock : LPVOID; - hMem : HANDLE; - end; - LPPROCESS_HEAP_ENTRY = ^PROCESS_HEAPENTRY; - _PROCESS_HEAP_ENTRY = PROCESS_HEAPENTRY; - TPROCESSHEAPENTRY = PROCESS_HEAPENTRY; - PPROCESSHEAPENTRY = ^PROCESS_HEAPENTRY; - - PROCESS_INFORMATION = record - hProcess : HANDLE; - hThread : HANDLE; - dwProcessId : DWORD; - dwThreadId : DWORD; - end; - LPPROCESS_INFORMATION = ^PROCESS_INFORMATION; - _PROCESS_INFORMATION = PROCESS_INFORMATION; - TPROCESSINFORMATION = PROCESS_INFORMATION; - PPROCESSINFORMATION = ^PROCESS_INFORMATION; - - LPFNPSPCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPVOID):UINT; - TFNPSPCALLBACK = LPFNPSPCALLBACK; - - PROPSHEETPAGEA = record - dwSize : DWORD; - dwFlags : DWORD; - hInstance : HINST; - case longint of - 0 : (pszTemplate : LPCTSTR); - 1 : (pResource : LPCDLGTEMPLATE; - case longint of - 0 : (hIcon : HICON); - 1 : (pszIcon : LPCTSTR; - pszTitle : LPCTSTR; - pfnDlgProc : DLGPROC; - lParam : LPARAM; - pfnCallback : LPFNPSPCALLBACK; - pcRefParent : ^UINT; - ); - ); - end; - LPPROPSHEETPAGEA = ^PROPSHEETPAGEA; - LPCPROPSHEETPAGEA = ^PROPSHEETPAGEA; - - PROPSHEETPAGEW = record - dwSize : DWORD; - dwFlags : DWORD; - hInstance : HINST; - case longint of - 0 : (pszTemplate : LPCWSTR); - 1 : (pResource : LPCDLGTEMPLATE; - case longint of - 0 : (hIcon : HICON); - 1 : (pszIcon : LPCWSTR; - pszTitle : LPCWSTR; - pfnDlgProc : DLGPROC; - lParam : LPARAM; - pfnCallback : LPFNPSPCALLBACK; - pcRefParent : ^UINT; - ); - ); - end; - LPPROPSHEETPAGEW = ^PROPSHEETPAGEW; - LPCPROPSHEETPAGEW = ^PROPSHEETPAGEW; - -{$IFDEF UNICODE} - LPPROPSHEETPAGE = ^PROPSHEETPAGEW; - LPCPROPSHEETPAGE = ^PROPSHEETPAGEW; - _PROPSHEETPAGE = PROPSHEETPAGEW; - PROPSHEETPAGE = PROPSHEETPAGEW; - TPROPSHEETPAGE = PROPSHEETPAGEW; - PPROPSHEETPAGE = ^PROPSHEETPAGEW; -{$ELSE UNICODE} - LPPROPSHEETPAGE = ^PROPSHEETPAGEA; - LPCPROPSHEETPAGE = ^PROPSHEETPAGEA; - _PROPSHEETPAGE = PROPSHEETPAGEA; - PROPSHEETPAGE = PROPSHEETPAGEA; - TPROPSHEETPAGE = PROPSHEETPAGEA; - PPROPSHEETPAGE = ^PROPSHEETPAGEA; -{$ENDIF UNICODE} - - emptyrecord = record - end; - lpemptyrecord = ^emptyrecord; - HPROPSHEETPAGE = ^emptyrecord; - - PROPSHEETHEADERA = record //prsht - dwSize : DWORD; - dwFlags : DWORD; - hwndParent : HWND; - hInstance : HINST; - case longint of - 0 : (hIcon : HICON); - 1 : (pszIcon : LPCTSTR; - pszCaption : LPCTSTR; - nPages : UINT; - case longint of - 0 : (nStartPage : UINT); - 1 : (pStartPage : LPCTSTR; - case longint of - 0 : (ppsp : LPCPROPSHEETPAGE); - 1 : (phpage : ^HPROPSHEETPAGE; - pfnCallback : PFNPROPSHEETCALLBACK; - case longint of - 0 : (hbmWatermark : HBITMAP); - 1 : (pszbmWatermark : LPCTSTR; - hplWatermark : HPALETTE; - case longint of - 0 : (hbmHeader : HBITMAP); - 1 : (pszbmHeader: PAnsiChar); - ); - ); - ); - ); - end; - LPPROPSHEETHEADERA = ^PROPSHEETHEADERA; - LPCPROPSHEETHEADERA = ^PROPSHEETHEADERA; - PPROPSHEETHEADERA = ^PROPSHEETHEADERA; - - PROPSHEETHEADERW = record //prsht - dwSize : DWORD; - dwFlags : DWORD; - hwndParent : HWND; - hInstance : HINST; - case longint of - 0 : (hIcon : HICON); - 1 : (pszIcon : LPCWSTR; - pszCaption : LPCWSTR; - nPages : UINT; - case longint of - 0 : (nStartPage : UINT); - 1 : (pStartPage : LPCWSTR; - case longint of - 0 : (ppsp : LPCPROPSHEETPAGE); - 1 : (phpage : ^HPROPSHEETPAGE; - pfnCallback : PFNPROPSHEETCALLBACK; - ); - ); - ); - end; - - LPPROPSHEETHEADERW = ^PROPSHEETHEADERW; - LPCPROPSHEETHEADERW = ^PROPSHEETHEADERW; - PPROPSHEETHEADERW = ^PROPSHEETHEADERW; - -{$IFDEF UNICODE} - _PROPSHEETHEADER = PROPSHEETHEADERW; - PROPSHEETHEADER = PROPSHEETHEADERW; - TPROPSHEETHEADER = PROPSHEETHEADERW; - PPROPSHEETHEADER = ^PROPSHEETHEADERW; - LPPROPSHEETHEADER = ^PROPSHEETHEADERW; - LPCPROPSHEETHEADER = ^PROPSHEETHEADERW; -{$ELSE UNICODE} - _PROPSHEETHEADER = PROPSHEETHEADERA; - PROPSHEETHEADER = PROPSHEETHEADERA; - TPROPSHEETHEADER = PROPSHEETHEADERA; - PPROPSHEETHEADER = ^PROPSHEETHEADERA; - LPPROPSHEETHEADER = ^PROPSHEETHEADERA; - LPCPROPSHEETHEADER = ^PROPSHEETHEADERA; -{$ENDIF UNICODE} - - - { PropertySheet callbacks } - LPFNADDPROPSHEETPAGE = function (_para1:HPROPSHEETPAGE; _para2:LPARAM):WINBOOL; - TFNADDPROPSHEETPAGE = LPFNADDPROPSHEETPAGE; - - LPFNADDPROPSHEETPAGES = function (_para1:LPVOID; _para2:LPFNADDPROPSHEETPAGE; _para3:LPARAM):WINBOOL; - TFNADDPROPSHEETPAGES = LPFNADDPROPSHEETPAGES; - - PROTOCOL_INFO = record - dwServiceFlags : DWORD; - iAddressFamily : WINT; - iMaxSockAddr : WINT; - iMinSockAddr : WINT; - iSocketType : WINT; - iProtocol : WINT; - dwMessageSize : DWORD; - lpProtocol : LPTSTR; - end; - _PROTOCOL_INFO = PROTOCOL_INFO; - TPROTOCOLINFO = PROTOCOL_INFO; - PPROTOCOLINFO = ^PROTOCOL_INFO; - - PROVIDOR_INFO_1 = record - pName : LPTSTR; - pEnvironment : LPTSTR; - pDLLName : LPTSTR; - end; - _PROVIDOR_INFO_1 = PROVIDOR_INFO_1; - TPROVIDORINFO1 = PROVIDOR_INFO_1; - PPROVIDORINFO1 = ^PROVIDOR_INFO_1; - - PSHNOTIFY = record - hdr : NMHDR; - lParam : LPARAM; - end; - LPPSHNOTIFY = ^PSHNOTIFY; - _PSHNOTIFY = PSHNOTIFY; - TPSHNOTIFY = PSHNOTIFY; - PPSHNOTIFY = ^PSHNOTIFY; - - PUNCTUATION = record - iSize : UINT; - szPunctuation : LPSTR; - end; - _punctuation = PUNCTUATION; - Tpunctuation = PUNCTUATION; - Ppunctuation = ^PUNCTUATION; - - QUERY_SERVICE_CONFIG = record - dwServiceType : DWORD; - dwStartType : DWORD; - dwErrorControl : DWORD; - lpBinaryPathName : LPTSTR; - lpLoadOrderGroup : LPTSTR; - dwTagId : DWORD; - lpDependencies : LPTSTR; - lpServiceStartName : LPTSTR; - lpDisplayName : LPTSTR; - end; - LPQUERY_SERVICE_CONFIG = ^QUERY_SERVICE_CONFIG; - _QUERY_SERVICE_CONFIG = QUERY_SERVICE_CONFIG; - TQUERYSERVICECONFIG = QUERY_SERVICE_CONFIG; - PQUERYSERVICECONFIG = ^QUERY_SERVICE_CONFIG; - - QUERY_SERVICE_LOCK_STATUS = record - fIsLocked : DWORD; - lpLockOwner : LPTSTR; - dwLockDuration : DWORD; - end; - LPQUERY_SERVICE_LOCK_STATUS = ^QUERY_SERVICE_LOCK_STATUS; - _QUERY_SERVICE_LOCK_STATUS = QUERY_SERVICE_LOCK_STATUS; - TQUERYSERVICELOCKSTATUS = QUERY_SERVICE_LOCK_STATUS; - PQUERYSERVICELOCKSTATUS = ^QUERY_SERVICE_LOCK_STATUS; - - RASAMB = record - dwSize : DWORD; - dwError : DWORD; - szNetBiosError : array[0..(NETBIOS_NAME_LEN + 1)-1] of TCHAR; - bLana : BYTE; - end; - _RASAMB = RASAMB; - TRASAMB = RASAMB; - PRASAMB = ^RASAMB; - - RASCONN = record - dwSize : DWORD; - hrasconn : HRASCONN; - szEntryName : array[0..(RAS_MaxEntryName + 1)-1] of TCHAR; - szDeviceType : array[0..(RAS_MaxDeviceType + 1)-1] of CHAR; - szDeviceName : array[0..(RAS_MaxDeviceName + 1)-1] of CHAR; - end; - _RASCONN = RASCONN; - TRASCONN = RASCONN; - PRASCONN = ^RASCONN; - - RASCONNSTATUS = record - dwSize : DWORD; - rasconnstate : RASCONNSTATE; - dwError : DWORD; - szDeviceType : array[0..(RAS_MaxDeviceType + 1)-1] of TCHAR; - szDeviceName : array[0..(RAS_MaxDeviceName + 1)-1] of TCHAR; - end; - _RASCONNSTATUS = RASCONNSTATUS; - TRASCONNSTATUS = RASCONNSTATUS; - PRASCONNSTATUS = ^RASCONNSTATUS; - - RASDIALEXTENSIONS = record - dwSize : DWORD; - dwfOptions : DWORD; - hwndParent : HWND; - reserved : DWORD; - end; - _RASDIALEXTENSIONS = RASDIALEXTENSIONS; - TRASDIALEXTENSIONS = RASDIALEXTENSIONS; - PRASDIALEXTENSIONS = ^RASDIALEXTENSIONS; - - RASDIALPARAMS = record - dwSize : DWORD; - szEntryName : array[0..(RAS_MaxEntryName + 1)-1] of TCHAR; - szPhoneNumber : array[0..(RAS_MaxPhoneNumber + 1)-1] of TCHAR; - szCallbackNumber : array[0..(RAS_MaxCallbackNumber + 1)-1] of TCHAR; - szUserName : array[0..(UNLEN + 1)-1] of TCHAR; - szPassword : array[0..(PWLEN + 1)-1] of TCHAR; - szDomain : array[0..(DNLEN + 1)-1] of TCHAR; - end; - _RASDIALPARAMS = RASDIALPARAMS; - TRASDIALPARAMS = RASDIALPARAMS; - PRASDIALPARAMS = ^RASDIALPARAMS; - - RASENTRYNAME = record - dwSize : DWORD; - szEntryName : array[0..(RAS_MaxEntryName + 1)-1] of TCHAR; - end; - _RASENTRYNAME = RASENTRYNAME; - TRASENTRYNAME = RASENTRYNAME; - PRASENTRYNAME = ^RASENTRYNAME; - - RASPPPIP = record - dwSize : DWORD; - dwError : DWORD; - szIpAddress : array[0..(RAS_MaxIpAddress + 1)-1] of TCHAR; - end; - _RASPPPIP = RASPPPIP; - TRASPPPIP = RASPPPIP; - PRASPPPIP = ^RASPPPIP; - - RASPPPIPX = record - dwSize : DWORD; - dwError : DWORD; - szIpxAddress : array[0..(RAS_MaxIpxAddress + 1)-1] of TCHAR; - end; - _RASPPPIPX = RASPPPIPX; - TRASPPPIPX = RASPPPIPX; - PRASPPPIPX = ^RASPPPIPX; - - RASPPPNBF = record - dwSize : DWORD; - dwError : DWORD; - dwNetBiosError : DWORD; - szNetBiosError : array[0..(NETBIOS_NAME_LEN + 1)-1] of TCHAR; - szWorkstationName : array[0..(NETBIOS_NAME_LEN + 1)-1] of TCHAR; - bLana : BYTE; - end; - _RASPPPNBF = RASPPPNBF; - TRASPPPNBF = RASPPPNBF; - PRASPPPNBF = ^RASPPPNBF; - - RASTERIZER_STATUS = record - nSize : integer; - wFlags : integer; - nLanguageID : integer; - end; - LPRASTERIZER_STATUS = ^RASTERIZER_STATUS; - _RASTERIZER_STATUS = RASTERIZER_STATUS; - TRASTERIZERSTATUS = RASTERIZER_STATUS; - PRASTERIZERSTATUS = ^RASTERIZER_STATUS; - - REASSIGN_BLOCKS = record - Reserved : WORD; - Count : WORD; - BlockNumber : array[0..0] of DWORD; - end; - _REASSIGN_BLOCKS = REASSIGN_BLOCKS; - TREASSIGNBLOCKS = REASSIGN_BLOCKS; - PREASSIGNBLOCKS = ^REASSIGN_BLOCKS; - - REMOTE_NAME_INFO = record - lpUniversalName : LPTSTR; - lpConnectionName : LPTSTR; - lpRemainingPath : LPTSTR; - end; - _REMOTE_NAME_INFO = REMOTE_NAME_INFO; - TREMOTENAMEINFO = REMOTE_NAME_INFO; - PREMOTENAMEINFO = ^REMOTE_NAME_INFO; - - (* - TODO: OLE - typedef struct _reobject { - DWORD cbStruct; - LONG cp; - CLSID clsid; - LPOLEOBJECT poleobj; - LPSTORAGE pstg; - LPOLECLIENTSITE polesite; - SIZEL sizel; - DWORD dvaspect; - DWORD dwFlags; - DWORD dwUser; - } REOBJECT; - *) - - REPASTESPECIAL = record - dwAspect : DWORD; - dwParam : DWORD; - end; - _repastespecial = REPASTESPECIAL; - Trepastespecial = REPASTESPECIAL; - Prepastespecial = ^REPASTESPECIAL; - - REQRESIZE = record - nmhdr : NMHDR; - rc : RECT; - end; - _reqresize = REQRESIZE; - Treqresize = REQRESIZE; - Preqresize = ^REQRESIZE; - - RGNDATAHEADER = record - dwSize : DWORD; - iType : DWORD; - nCount : DWORD; - nRgnSize : DWORD; - rcBound : RECT; - end; - _RGNDATAHEADER = RGNDATAHEADER; - TRGNDATAHEADER = RGNDATAHEADER; - PRGNDATAHEADER = ^RGNDATAHEADER; - - RGNDATA = record - rdh : RGNDATAHEADER; - Buffer : array[0..0] of char; - end; - LPRGNDATA = ^RGNDATA; - _RGNDATA = RGNDATA; - TRGNDATA = RGNDATA; - PRGNDATA = ^RGNDATA; - - SCROLLINFO = record - cbSize : UINT; - fMask : UINT; - nMin : longint; - nMax : longint; - nPage : UINT; - nPos : longint; - nTrackPos : longint; - end; - LPSCROLLINFO = ^SCROLLINFO; - LPCSCROLLINFO = ^SCROLLINFO; - tagSCROLLINFO = SCROLLINFO; - TSCROLLINFO = SCROLLINFO; - PSCROLLINFO = ^SCROLLINFO; - - SECURITY_ATTRIBUTES = record - nLength : DWORD; - lpSecurityDescriptor : LPVOID; - bInheritHandle : WINBOOL; - end; - LPSECURITY_ATTRIBUTES = ^SECURITY_ATTRIBUTES; - _SECURITY_ATTRIBUTES = SECURITY_ATTRIBUTES; - TSECURITYATTRIBUTES = SECURITY_ATTRIBUTES; - PSECURITYATTRIBUTES = ^SECURITY_ATTRIBUTES; - - SECURITY_INFORMATION = DWORD; - PSECURITY_INFORMATION = ^SECURITY_INFORMATION; - TSECURITYINFORMATION = SECURITY_INFORMATION; - PSECURITYINFORMATION = ^SECURITY_INFORMATION; - - SELCHANGE = record - nmhdr : NMHDR; - chrg : CHARRANGE; - seltyp : WORD; - end; - _selchange = SELCHANGE; - Tselchange = SELCHANGE; - Pselchange = ^SELCHANGE; - - SERIALKEYS = record - cbSize : DWORD; - dwFlags : DWORD; - lpszActivePort : LPSTR; - lpszPort : LPSTR; - iBaudRate : DWORD; - iPortState : DWORD; - end; - LPSERIALKEYS = ^SERIALKEYS; - tagSERIALKEYS = SERIALKEYS; - TSERIALKEYS = SERIALKEYS; - PSERIALKEYS = ^SERIALKEYS; - - SERVICE_TABLE_ENTRY = record - lpServiceName : LPTSTR; - lpServiceProc : LPSERVICE_MAIN_FUNCTION; - end; - LPSERVICE_TABLE_ENTRY = ^SERVICE_TABLE_ENTRY; - _SERVICE_TABLE_ENTRY = SERVICE_TABLE_ENTRY; - TSERVICETABLEENTRY = SERVICE_TABLE_ENTRY; - PSERVICETABLEENTRY = ^SERVICE_TABLE_ENTRY; - - SERVICE_TYPE_VALUE_ABS = record - dwNameSpace : DWORD; - dwValueType : DWORD; - dwValueSize : DWORD; - lpValueName : LPTSTR; - lpValue : PVOID; - end; - _SERVICE_TYPE_VALUE_ABS = SERVICE_TYPE_VALUE_ABS; - TSERVICETYPEVALUEABS = SERVICE_TYPE_VALUE_ABS; - PSERVICETYPEVALUEABS = ^SERVICE_TYPE_VALUE_ABS; - - SERVICE_TYPE_INFO_ABS = record - lpTypeName : LPTSTR; - dwValueCount : DWORD; - Values : array[0..0] of SERVICE_TYPE_VALUE_ABS; - end; - _SERVICE_TYPE_INFO_ABS = SERVICE_TYPE_INFO_ABS; - TSERVICETYPEINFOABS = SERVICE_TYPE_INFO_ABS; - PSERVICETYPEINFOABS = ^SERVICE_TYPE_INFO_ABS; - - SESSION_BUFFER = record - lsn : UCHAR; - state : UCHAR; - local_name : array[0..(NCBNAMSZ)-1] of UCHAR; - remote_name : array[0..(NCBNAMSZ)-1] of UCHAR; - rcvs_outstanding : UCHAR; - sends_outstanding : UCHAR; - end; - _SESSION_BUFFER = SESSION_BUFFER; - TSESSIONBUFFER = SESSION_BUFFER; - PSESSIONBUFFER = ^SESSION_BUFFER; - - SESSION_HEADER = record - sess_name : UCHAR; - num_sess : UCHAR; - rcv_dg_outstanding : UCHAR; - rcv_any_outstanding : UCHAR; - end; - _SESSION_HEADER = SESSION_HEADER; - TSESSIONHEADER = SESSION_HEADER; - PSESSIONHEADER = ^SESSION_HEADER; - - SET_PARTITION_INFORMATION = record - PartitionType : BYTE; - end; - _SET_PARTITION_INFORMATION = SET_PARTITION_INFORMATION; - TSETPARTITIONINFORMATION = SET_PARTITION_INFORMATION; - PSETPARTITIONINFORMATION = ^SET_PARTITION_INFORMATION; - - SHELLEXECUTEINFO = record //+shellapi - cbSize: DWORD; - fMask: ULONG; - hwnd: HWND; - lpVerb: LPCTSTR; - lpFile: LPCTSTR; - lpParameters: LPCTSTR; - lpDirectory: LPCTSTR; - nShow: Integer ; - hInstApp: HINST; - // Optional fields - lpIDList: LPVOID; - lpClass: LPCTSTR; - hkeyClass: HKEY; - dwHotKey: DWORD; - hIcon: HANDLE; - hProcess :HANDLE; - end; - _SHELLEXECUTEINFO=SHELLEXECUTEINFO; //+shellapi - LPSHELLEXECUTEINFO=^SHELLEXECUTEINFO; //+shellapi - - SHCONTF = (SHCONTF_FOLDERS := 32,SHCONTF_NONFOLDERS := 64, - SHCONTF_INCLUDEHIDDEN := 128); - tagSHCONTF = SHCONTF; - TSHCONTF = SHCONTF; - - SHFILEINFO = record - hIcon : HICON; - iIcon : longint; - dwAttributes : DWORD; - szDisplayName : array[0..MAX_PATH-1] of TCHAR; - szTypeName : array[0..79] of TCHAR; - end; - _SHFILEINFO = SHFILEINFO; - TSHFILEINFO = SHFILEINFO; - PSHFILEINFO = ^SHFILEINFO; - - FILEOP_FLAGS = WORD; - TFILEOPFLAGS = FILEOP_FLAGS; - PFILEOPFLAGS = ^FILEOP_FLAGS; - - SHFILEOPSTRUCTW = record //+shellapi - wnd : HWND; - wFunc : UINT; - pFrom : LPCWSTR; - pTo : LPCWSTR; - fFlags : FILEOP_FLAGS; - fAnyOperationsAborted : WINBOOL; - hNameMappings : LPVOID; - lpszProgressTitle : LPCWSTR; - end; - LPSHFILEOPSTRUCTW = ^SHFILEOPSTRUCTW; - _SHFILEOPSTRUCT = SHFILEOPSTRUCTW; - TSHFILEOPSTRUCT = SHFILEOPSTRUCTW; - PSHFILEOPSTRUCT = ^SHFILEOPSTRUCTW; - TSHFILEOPSTRUCTW = SHFILEOPSTRUCTW; - PSHFILEOPSTRUCTW = ^SHFILEOPSTRUCTW; - - SHGNO = (SHGDN_NORMAL := 0,SHGDN_INFOLDER := 1, - SHGDN_FORPARSING := $8000); - tagSHGDN = SHGNO; - TSHGDN = SHGNO; - - SHNAMEMAPPING = record - pszOldPath : LPSTR; - pszNewPath : LPSTR; - cchOldPath : longint; - cchNewPath : longint; - end; - LPSHNAMEMAPPING = ^SHNAMEMAPPING; - _SHNAMEMAPPING = SHNAMEMAPPING; - TSHNAMEMAPPING = SHNAMEMAPPING; - PSHNAMEMAPPING = ^SHNAMEMAPPING; - - SINGLE_LIST_ENTRY = record - Next : ^_SINGLE_LIST_ENTRY; - end; - _SINGLE_LIST_ENTRY = SINGLE_LIST_ENTRY; - TSINGLELISTENTRY = SINGLE_LIST_ENTRY; - PSINGLELISTENTRY = ^SINGLE_LIST_ENTRY; - - SOUNDSENTRY = record - cbSize : UINT; - dwFlags : DWORD; - iFSTextEffect : DWORD; - iFSTextEffectMSec : DWORD; - iFSTextEffectColorBits : DWORD; - iFSGrafEffect : DWORD; - iFSGrafEffectMSec : DWORD; - iFSGrafEffectColor : DWORD; - iWindowsEffect : DWORD; - iWindowsEffectMSec : DWORD; - lpszWindowsEffectDLL : LPTSTR; - iWindowsEffectOrdinal : DWORD; - end; - LPSOUNDSENTRY = ^SOUNDSENTRY; - tagSOUNDSENTRY = SOUNDSENTRY; - TSOUNDSENTRY = SOUNDSENTRY; - PSOUNDSENTRY = ^SOUNDSENTRY; - - STARTUPINFO = record - cb : DWORD; - lpReserved : LPTSTR; - lpDesktop : LPTSTR; - lpTitle : LPTSTR; - dwX : DWORD; - dwY : DWORD; - dwXSize : DWORD; - dwYSize : DWORD; - dwXCountChars : DWORD; - dwYCountChars : DWORD; - dwFillAttribute : DWORD; - dwFlags : DWORD; - wShowWindow : WORD; - cbReserved2 : WORD; - lpReserved2 : LPBYTE; - hStdInput : HANDLE; - hStdOutput : HANDLE; - hStdError : HANDLE; - end; - LPSTARTUPINFO = ^STARTUPINFO; - _STARTUPINFO = STARTUPINFO; - TSTARTUPINFO = STARTUPINFO; - PSTARTUPINFO = ^STARTUPINFO; - - STICKYKEYS = record - cbSize : DWORD; - dwFlags : DWORD; - end; - LPSTICKYKEYS = ^STICKYKEYS; - tagSTICKYKEYS = STICKYKEYS; - TSTICKYKEYS = STICKYKEYS; - PSTICKYKEYS = ^STICKYKEYS; - - STRRET = record - uType : UINT; - DUMMYUNIONNAME : record - case longint of - 0 : ( pOleStr : LPWSTR ); - 1 : ( uOffset : UINT ); - 2 : ( cStr : array[0..(MAX_PATH)-1] of char ); - end; - end; - LPSTRRET = ^STRRET; - _STRRET = STRRET; - TSTRRET = STRRET; - PSTRRET = ^STRRET; - - STYLEBUF = record - dwStyle : DWORD; - szDescription : array[0..31] of CHAR; - end; - LPSTYLEBUF = ^STYLEBUF; - _tagSTYLEBUF = STYLEBUF; - TSTYLEBUF = STYLEBUF; - PSTYLEBUF = ^STYLEBUF; - - STYLESTRUCT = record - styleOld : DWORD; - styleNew : DWORD; - end; - LPSTYLESTRUCT = ^STYLESTRUCT; - tagSTYLESTRUCT = STYLESTRUCT; - TSTYLESTRUCT = STYLESTRUCT; - PSTYLESTRUCT = ^STYLESTRUCT; - - SYSTEM_AUDIT_ACE = record - Header : ACE_HEADER; - Mask : ACCESS_MASK; - SidStart : DWORD; - end; - _SYSTEM_AUDIT_ACE = SYSTEM_AUDIT_ACE; - TSYSTEMAUDITACE = SYSTEM_AUDIT_ACE; - PSYSTEMAUDITACE = ^SYSTEM_AUDIT_ACE; - - SYSTEM_INFO = record - u : record - case longint of - 0 : ( dwOemId : DWORD ); - 1 : ( s : record - wProcessorArchitecture : WORD; - wReserved : WORD; - end ); - end; - dwPageSize : DWORD; - lpMinimumApplicationAddress : LPVOID; - lpMaximumApplicationAddress : LPVOID; - dwActiveProcessorMask : DWORD; - dwNumberOfProcessors : DWORD; - dwProcessorType : DWORD; - dwAllocationGranularity : DWORD; - wProcessorLevel : WORD; - wProcessorRevision : WORD; - end; - LPSYSTEM_INFO = ^SYSTEM_INFO; - _SYSTEM_INFO = SYSTEM_INFO; - TSYSTEMINFO = SYSTEM_INFO; - PSYSTEMINFO = ^SYSTEM_INFO; - - SYSTEM_POWER_STATUS = record - ACLineStatus : BYTE; - BatteryFlag : BYTE; - BatteryLifePercent : BYTE; - Reserved1 : BYTE; - BatteryLifeTime : DWORD; - BatteryFullLifeTime : DWORD; - end; - _SYSTEM_POWER_STATUS = SYSTEM_POWER_STATUS; - TSYSTEMPOWERSTATUS = SYSTEM_POWER_STATUS; - PSYSTEMPOWERSTATUS = ^SYSTEM_POWER_STATUS; - - LPSYSTEM_POWER_STATUS = ^emptyrecord; - - TAPE_ERASE = record - _Type : ULONG; - end; - _TAPE_ERASE = TAPE_ERASE; - TTAPEERASE = TAPE_ERASE; - PTAPEERASE = ^TAPE_ERASE; - - TAPE_GET_DRIVE_PARAMETERS = record - ECC : BOOLEAN; - Compression : BOOLEAN; - DataPadding : BOOLEAN; - ReportSetmarks : BOOLEAN; - DefaultBlockSize : ULONG; - MaximumBlockSize : ULONG; - MinimumBlockSize : ULONG; - MaximumPartitionCount : ULONG; - FeaturesLow : ULONG; - FeaturesHigh : ULONG; - EOTWarningZoneSize : ULONG; - end; - _TAPE_GET_DRIVE_PARAMETERS = TAPE_GET_DRIVE_PARAMETERS; - TTAPEGETDRIVEPARAMETERS = TAPE_GET_DRIVE_PARAMETERS; - PTAPEGETDRIVEPARAMETERS = ^TAPE_GET_DRIVE_PARAMETERS; - - TAPE_GET_MEDIA_PARAMETERS = record - Capacity : LARGE_INTEGER; - Remaining : LARGE_INTEGER; - BlockSize : DWORD; - PartitionCount : DWORD; - WriteProtected : BOOLEAN; - end; - _TAPE_GET_MEDIA_PARAMETERS = TAPE_GET_MEDIA_PARAMETERS; - TTAPEGETMEDIAPARAMETERS = TAPE_GET_MEDIA_PARAMETERS; - PTAPEGETMEDIAPARAMETERS = ^TAPE_GET_MEDIA_PARAMETERS; - - TAPE_GET_POSITION = record - _Type : ULONG; - Partition : ULONG; - OffsetLow : ULONG; - OffsetHigh : ULONG; - end; - _TAPE_GET_POSITION = TAPE_GET_POSITION; - TTAPEGETPOSITION = TAPE_GET_POSITION; - PTAPEGETPOSITION = ^TAPE_GET_POSITION; - - TAPE_PREPARE = record - Operation : ULONG; - end; - _TAPE_PREPARE = TAPE_PREPARE; - TTAPEPREPARE = TAPE_PREPARE; - PTAPEPREPARE = ^TAPE_PREPARE; - - TAPE_SET_DRIVE_PARAMETERS = record - ECC : BOOLEAN; - Compression : BOOLEAN; - DataPadding : BOOLEAN; - ReportSetmarks : BOOLEAN; - EOTWarningZoneSize : ULONG; - end; - _TAPE_SET_DRIVE_PARAMETERS = TAPE_SET_DRIVE_PARAMETERS; - TTAPESETDRIVEPARAMETERS = TAPE_SET_DRIVE_PARAMETERS; - PTAPESETDRIVEPARAMETERS = ^TAPE_SET_DRIVE_PARAMETERS; - - TAPE_SET_MEDIA_PARAMETERS = record - BlockSize : ULONG; - end; - _TAPE_SET_MEDIA_PARAMETERS = TAPE_SET_MEDIA_PARAMETERS; - TTAPESETMEDIAPARAMETERS = TAPE_SET_MEDIA_PARAMETERS; - PTAPESETMEDIAPARAMETERS = ^TAPE_SET_MEDIA_PARAMETERS; - - TAPE_SET_POSITION = record - Method : ULONG; - Partition : ULONG; - OffsetLow : ULONG; - OffsetHigh : ULONG; - end; - _TAPE_SET_POSITION = TAPE_SET_POSITION; - TTAPESETPOSITION = TAPE_SET_POSITION; - PTAPESETPOSITION = ^TAPE_SET_POSITION; - - TAPE_WRITE_MARKS = record - _Type : ULONG; - Count : ULONG; - end; - _TAPE_WRITE_MARKS = TAPE_WRITE_MARKS; - TTAPEWRITEMARKS = TAPE_WRITE_MARKS; - PTAPEWRITEMARKS = ^TAPE_WRITE_MARKS; - - TBADDBITMAP = record - hInst : HINST; - nID : UINT; - end; - LPTBADDBITMAP = ^TBADDBITMAP; - TTBADDBITMAP = TBADDBITMAP; - PTBADDBITMAP = ^TBADDBITMAP; - - TBBUTTON = record - iBitmap : longint; - idCommand : longint; - fsState : BYTE; - fsStyle : BYTE; - dwData : DWORD; - iString : longint; - end; - LPTBBUTTON = ^TBBUTTON; - LPCTBBUTTON = ^TBBUTTON; - _TBBUTTON = TBBUTTON; - TTBBUTTON = TBBUTTON; - PTBBUTTON = ^TBBUTTON; - - TBNOTIFY = record - hdr : NMHDR; - iItem : longint; - tbButton : TBBUTTON; - cchText : longint; - pszText : LPTSTR; - end; - LPTBNOTIFY = ^TBNOTIFY; - TTBNOTIFY = TBNOTIFY; - PTBNOTIFY = ^TBNOTIFY; - - TBSAVEPARAMS = record - hkr : HKEY; - pszSubKey : LPCTSTR; - pszValueName : LPCTSTR; - end; - TTBSAVEPARAMS = TBSAVEPARAMS; - PTBSAVEPARAMS = ^TBSAVEPARAMS; - - TC_HITTESTINFO = record - pt : POINT; - flags : UINT; - end; - _TC_HITTESTINFO = TC_HITTESTINFO; - TTCHITTESTINFO = TC_HITTESTINFO; - PTCHITTESTINFO = ^TC_HITTESTINFO; - - TC_ITEM = record - mask : UINT; - lpReserved1 : UINT; - lpReserved2 : UINT; - pszText : LPTSTR; - cchTextMax : longint; - iImage : longint; - lParam : LPARAM; - end; - _TC_ITEM = TC_ITEM; - TTCITEM = TC_ITEM; - PTCITEM = ^TC_ITEM; - - TC_ITEMHEADER = record - mask : UINT; - lpReserved1 : UINT; - lpReserved2 : UINT; - pszText : LPTSTR; - cchTextMax : longint; - iImage : longint; - end; - _TC_ITEMHEADER = TC_ITEMHEADER; - TTCITEMHEADER = TC_ITEMHEADER; - PTCITEMHEADER = ^TC_ITEMHEADER; - - TC_KEYDOWN = record - hdr : NMHDR; - wVKey : WORD; - flags : UINT; - end; - _TC_KEYDOWN = TC_KEYDOWN; - TTCKEYDOWN = TC_KEYDOWN; - PTCKEYDOWN = ^TC_KEYDOWN; - - TEXTRANGE = record - chrg : CHARRANGE; - lpstrText : LPSTR; - end; - _textrange = TEXTRANGE; - Ttextrange = TEXTRANGE; - Ptextrange = ^TEXTRANGE; - - TIME_ZONE_INFORMATION = record - Bias : LONG; - StandardName : array[0..31] of WCHAR; - StandardDate : SYSTEMTIME; - StandardBias : LONG; - DaylightName : array[0..31] of WCHAR; - DaylightDate : SYSTEMTIME; - DaylightBias : LONG; - end; - LPTIME_ZONE_INFORMATION = ^TIME_ZONE_INFORMATION; - _TIME_ZONE_INFORMATION = TIME_ZONE_INFORMATION; - TTIMEZONEINFORMATION = TIME_ZONE_INFORMATION; - PTIMEZONEINFORMATION = ^TIME_ZONE_INFORMATION; - - TOGGLEKEYS = record - cbSize : DWORD; - dwFlags : DWORD; - end; - tagTOGGLEKEYS = TOGGLEKEYS; - TTOGGLEKEYS = TOGGLEKEYS; - PTOGGLEKEYS = ^TOGGLEKEYS; - - TOKEN_SOURCE = record - SourceName : array[0..7] of CHAR; - SourceIdentifier : LUID; - end; - _TOKEN_SOURCE = TOKEN_SOURCE; - TTOKENSOURCE = TOKEN_SOURCE; - PTOKENSOURCE = ^TOKEN_SOURCE; - - TOKEN_CONTROL = record - TokenId : LUID; - AuthenticationId : LUID; - ModifiedId : LUID; - TokenSource : TOKEN_SOURCE; - end; - _TOKEN_CONTROL = TOKEN_CONTROL; - TTOKENCONTROL = TOKEN_CONTROL; - PTOKENCONTROL = ^TOKEN_CONTROL; - - TOKEN_DEFAULT_DACL = record - DefaultDacl : PACL; - end; - _TOKEN_DEFAULT_DACL = TOKEN_DEFAULT_DACL; - TTOKENDEFAULTDACL = TOKEN_DEFAULT_DACL; - PTOKENDEFAULTDACL = ^TOKEN_DEFAULT_DACL; - - TOKEN_GROUPS = record - GroupCount : DWORD; - Groups : array[0..(ANYSIZE_ARRAY)-1] of SID_AND_ATTRIBUTES; - end; - PTOKEN_GROUPS = ^TOKEN_GROUPS; - LPTOKEN_GROUPS = ^TOKEN_GROUPS; - _TOKEN_GROUPS = TOKEN_GROUPS; - TTOKENGROUPS = TOKEN_GROUPS; - PTOKENGROUPS = ^TOKEN_GROUPS; - - TOKEN_OWNER = record - Owner : PSID; - end; - _TOKEN_OWNER = TOKEN_OWNER; - TTOKENOWNER = TOKEN_OWNER; - PTOKENOWNER = ^TOKEN_OWNER; - - TOKEN_PRIMARY_GROUP = record - PrimaryGroup : PSID; - end; - _TOKEN_PRIMARY_GROUP = TOKEN_PRIMARY_GROUP; - TTOKENPRIMARYGROUP = TOKEN_PRIMARY_GROUP; - PTOKENPRIMARYGROUP = ^TOKEN_PRIMARY_GROUP; - - TOKEN_PRIVILEGES = packed record - PrivilegeCount : DWORD; - Privileges : array[0..(ANYSIZE_ARRAY)-1] of LUID_AND_ATTRIBUTES; - end; - - PTOKEN_PRIVILEGES = ^TOKEN_PRIVILEGES; - LPTOKEN_PRIVILEGES = ^TOKEN_PRIVILEGES; - _TOKEN_PRIVILEGES = TOKEN_PRIVILEGES; - TTOKENPRIVILEGES = TOKEN_PRIVILEGES; - PTOKENPRIVILEGES = ^TOKEN_PRIVILEGES; - - TOKEN_STATISTICS = record - TokenId : LUID; - AuthenticationId : LUID; - ExpirationTime : LARGE_INTEGER; - TokenType : TOKEN_TYPE; - ImpersonationLevel : SECURITY_IMPERSONATION_LEVEL; - DynamicCharged : DWORD; - DynamicAvailable : DWORD; - GroupCount : DWORD; - PrivilegeCount : DWORD; - ModifiedId : LUID; - end; - _TOKEN_STATISTICS = TOKEN_STATISTICS; - TTOKENSTATISTICS = TOKEN_STATISTICS; - PTOKENSTATISTICS = ^TOKEN_STATISTICS; - - TOKEN_USER = record - User : SID_AND_ATTRIBUTES; - end; - _TOKEN_USER = TOKEN_USER; - TTOKENUSER = TOKEN_USER; - PTOKENUSER = ^TOKEN_USER; - - TOOLINFO = record - cbSize : UINT; - uFlags : UINT; - hwnd : HWND; - uId : UINT; - rect : RECT; - hinst : HINST; - lpszText : LPTSTR; - end; - LPTOOLINFO = ^TOOLINFO; - TTOOLINFO = TOOLINFO; - PTOOLINFO = ^TOOLINFO; - - TPMPARAMS = record - cbSize : UINT; - rcExclude : RECT; - end; - LPTPMPARAMS = ^TPMPARAMS; - tagTPMPARAMS = TPMPARAMS; - TTPMPARAMS = TPMPARAMS; - PTPMPARAMS = ^TPMPARAMS; - - TRANSMIT_FILE_BUFFERS = record - Head : PVOID; - HeadLength : DWORD; - Tail : PVOID; - TailLength : DWORD; - end; - _TRANSMIT_FILE_BUFFERS = TRANSMIT_FILE_BUFFERS; - TTRANSMITFILEBUFFERS = TRANSMIT_FILE_BUFFERS; - PTRANSMITFILEBUFFERS = ^TRANSMIT_FILE_BUFFERS; - - TTHITTESTINFO = record - hwnd : HWND; - pt : POINT; - ti : TOOLINFO; - end; - LPHITTESTINFO = ^TTHITTESTINFO; - _TT_HITTESTINFO = TTHITTESTINFO; - TTTHITTESTINFO = TTHITTESTINFO; - PTTHITTESTINFO = ^TTHITTESTINFO; - - TTPOLYCURVE = record - wType : WORD; - cpfx : WORD; - apfx : array[0..0] of POINTFX; - end; - LPTTPOLYCURVE = ^TTPOLYCURVE; - tagTTPOLYCURVE = TTPOLYCURVE; - TTTPOLYCURVE = TTPOLYCURVE; - PTTPOLYCURVE = ^TTPOLYCURVE; - - TTPOLYGONHEADER = record - cb : DWORD; - dwType : DWORD; - pfxStart : POINTFX; - end; - LPTTPOLYGONHEADER = ^TTPOLYGONHEADER; - _TTPOLYGONHEADER = TTPOLYGONHEADER; - TTTPOLYGONHEADER = TTPOLYGONHEADER; - PTTPOLYGONHEADER = ^TTPOLYGONHEADER; - - TV_DISPINFO = record - hdr : NMHDR; - item : TV_ITEM; - end; - _TV_DISPINFO = TV_DISPINFO; - TTVDISPINFO = TV_DISPINFO; - PTVDISPINFO = ^TV_DISPINFO; - - TV_HITTESTINFO = record - pt : POINT; - flags : UINT; - hItem : HTREEITEM; - end; - LPTV_HITTESTINFO = ^TV_HITTESTINFO; - _TVHITTESTINFO = TV_HITTESTINFO; - TTVHITTESTINFO = TV_HITTESTINFO; - PTVHITTESTINFO = ^TV_HITTESTINFO; - - TV_INSERTSTRUCT = record - hParent : HTREEITEM; - hInsertAfter : HTREEITEM; - item : TV_ITEM; - end; - LPTV_INSERTSTRUCT = ^TV_INSERTSTRUCT; - _TV_INSERTSTRUCT = TV_INSERTSTRUCT; - TTVINSERTSTRUCT = TV_INSERTSTRUCT; - PTVINSERTSTRUCT = ^TV_INSERTSTRUCT; - - TV_KEYDOWN = record - hdr : NMHDR; - wVKey : WORD; - flags : UINT; - end; - _TV_KEYDOWN = TV_KEYDOWN; - TTVKEYDOWN = TV_KEYDOWN; - PTVKEYDOWN = ^TV_KEYDOWN; - - TV_SORTCB = record - hParent : HTREEITEM; - lpfnCompare : PFNTVCOMPARE; - lParam : LPARAM; - end; - LPTV_SORTCB = ^TV_SORTCB; - _TV_SORTCB = TV_SORTCB; - TTVSORTCB = TV_SORTCB; - PTVSORTCB = ^TV_SORTCB; - - UDACCEL = record - nSec : UINT; - nInc : UINT; - end; - TUDACCEL = UDACCEL; - PUDACCEL = ^UDACCEL; - - - UNIVERSAL_NAME_INFO = record - lpUniversalName : LPTSTR; - end; - _UNIVERSAL_NAME_INFO = UNIVERSAL_NAME_INFO; - TUNIVERSALNAMEINFO = UNIVERSAL_NAME_INFO; - PUNIVERSALNAMEINFO = ^UNIVERSAL_NAME_INFO; - - USEROBJECTFLAGS = record - fInherit : WINBOOL; - fReserved : WINBOOL; - dwFlags : DWORD; - end; - tagUSEROBJECTFLAGS = USEROBJECTFLAGS; - TUSEROBJECTFLAGS = USEROBJECTFLAGS; - PUSEROBJECTFLAGS = ^USEROBJECTFLAGS; - - VALENT = record - ve_valuename : LPTSTR; - ve_valuelen : DWORD; - ve_valueptr : DWORD; - ve_type : DWORD; - end; - TVALENT = VALENT; - PVALENT = ^VALENT; - - value_ent = VALENT; - Tvalue_ent = VALENT; - Pvalue_ent = ^VALENT; - - VERIFY_INFORMATION = record - StartingOffset : LARGE_INTEGER; - Length : DWORD; - end; - _VERIFY_INFORMATION = VERIFY_INFORMATION; - TVERIFYINFORMATION = VERIFY_INFORMATION; - PVERIFYINFORMATION = ^VERIFY_INFORMATION; - - VS_FIXEDFILEINFO = record - dwSignature : DWORD; - dwStrucVersion : DWORD; - dwFileVersionMS : DWORD; - dwFileVersionLS : DWORD; - dwProductVersionMS : DWORD; - dwProductVersionLS : DWORD; - dwFileFlagsMask : DWORD; - dwFileFlags : DWORD; - dwFileOS : DWORD; - dwFileType : DWORD; - dwFileSubtype : DWORD; - dwFileDateMS : DWORD; - dwFileDateLS : DWORD; - end; - _VS_FIXEDFILEINFO = VS_FIXEDFILEINFO; - TVSFIXEDFILEINFO = VS_FIXEDFILEINFO; - PVSFIXEDFILEINFO = ^VS_FIXEDFILEINFO; - - WIN32_FIND_DATAW = record - dwFileAttributes : DWORD; - ftCreationTime : FILETIME; - ftLastAccessTime : FILETIME; - ftLastWriteTime : FILETIME; - nFileSizeHigh : DWORD; - nFileSizeLow : DWORD; - dwOID: DWORD; - cFileName : array[0..MAX_PATH] of WCHAR; - end; - - LPWIN32_FIND_DATAW = ^WIN32_FIND_DATAW; - PWIN32_FIND_DATAW = ^WIN32_FIND_DATAW; - _WIN32_FIND_DATAW = WIN32_FIND_DATAW; - TWIN32FINDDATAW = WIN32_FIND_DATAW; - PWIN32FINDDATAW = ^WIN32_FIND_DATAW; - - WIN32_FIND_DATA = WIN32_FIND_DATAW; - LPWIN32_FIND_DATA = ^WIN32_FIND_DATAW; - PWIN32_FIND_DATA = ^WIN32_FIND_DATAW; - _WIN32_FIND_DATA = WIN32_FIND_DATAW; - TWIN32FINDDATA = WIN32_FIND_DATAW; - PWIN32FINDDATA = ^WIN32_FIND_DATAW; - - WIN32_STREAM_ID = record - dwStreamId : DWORD; - dwStreamAttributes : DWORD; - Size : LARGE_INTEGER; - dwStreamNameSize : DWORD; - cStreamName : ^WCHAR; - end; - _WIN32_STREAM_ID = WIN32_STREAM_ID; - TWIN32STREAMID = WIN32_STREAM_ID; - PWIN32STREAMID = ^WIN32_STREAM_ID; - - WINDOWPLACEMENT = record - length : UINT; - flags : UINT; - showCmd : UINT; - ptMinPosition : POINT; - ptMaxPosition : POINT; - rcNormalPosition : RECT; - end; - _WINDOWPLACEMENT = WINDOWPLACEMENT; - TWINDOWPLACEMENT = WINDOWPLACEMENT; - PWINDOWPLACEMENT = ^WINDOWPLACEMENT; - - WNDCLASS = record - style : UINT; - lpfnWndProc : WNDPROC; - cbClsExtra : longint; - cbWndExtra : longint; - hInstance : HANDLE; - hIcon : HICON; - hCursor : HCURSOR; - hbrBackground : HBRUSH; - lpszMenuName : LPCTSTR; - lpszClassName : LPCTSTR; - end; - LPWNDCLASS = ^WNDCLASS; - _WNDCLASS = WNDCLASS; - TWNDCLASSA = WNDCLASS; - - - WNDCLASSW = record - style : UINT; - lpfnWndProc : WNDPROC; - cbClsExtra : longint; - cbWndExtra : longint; - hInstance : HANDLE; - hIcon : HICON; - hCursor : HCURSOR; - hbrBackground : HBRUSH; - lpszMenuName : LPCWSTR; - lpszClassName : LPCWSTR; - end; - LPWNDCLASSW = ^WNDCLASSW; - _WNDCLASSW = WNDCLASSW; - TWNDCLASSW = WNDCLASSW; - PWNDCLASSW = ^WNDCLASSW; - TWNDCLASS = WNDCLASSW; - PWNDCLASS = ^WNDCLASSW; - - WNDCLASSEX = record - cbSize : UINT; - style : UINT; - lpfnWndProc : WNDPROC; - cbClsExtra : longint; - cbWndExtra : longint; - hInstance : HANDLE; - hIcon : HICON; - hCursor : HCURSOR; - hbrBackground : HBRUSH; - lpszMenuName : LPCTSTR; - lpszClassName : LPCTSTR; - hIconSm : HANDLE; - end; - LPWNDCLASSEX = ^WNDCLASSEX; - _WNDCLASSEX = WNDCLASSEX; - TWNDCLASSEX = WNDCLASSEX; - TWNDCLASSEXA = WNDCLASSEX; - PWNDCLASSEX = ^WNDCLASSEX; - - WNDCLASSEXW = record - cbSize : UINT; - style : UINT; - lpfnWndProc : WNDPROC; - cbClsExtra : longint; - cbWndExtra : longint; - hInstance : HANDLE; - hIcon : HICON; - hCursor : HCURSOR; - hbrBackground : HBRUSH; - lpszMenuName : LPCWSTR; - lpszClassName : LPCWSTR; - hIconSm : HANDLE; - end; - LPWNDCLASSEXW = ^WNDCLASSEXW; - _WNDCLASSEXW = WNDCLASSEXW; - TWNDCLASSEXW = WNDCLASSEXW; - PWNDCLASSEXW = ^WNDCLASSEXW; - - CONNECTDLGSTRUCT = record - cbStructure : DWORD; - hwndOwner : HWND; - lpConnRes : LPNETRESOURCE; - dwFlags : DWORD; - dwDevNum : DWORD; - end; - LPCONNECTDLGSTRUCT = ^CONNECTDLGSTRUCT; - _CONNECTDLGSTRUCT = CONNECTDLGSTRUCT; - TCONNECTDLGSTRUCT = CONNECTDLGSTRUCT; - PCONNECTDLGSTRUCT = ^CONNECTDLGSTRUCT; - - CONNECTDLGSTRUCTW = record //+winnetwk - cbStructure : DWORD; - hwndOwner : HWND; - lpConnRes : LPNETRESOURCEW; - dwFlags : DWORD; - dwDevNum : DWORD; - end; - LPCONNECTDLGSTRUCTW = ^CONNECTDLGSTRUCTW; //+winnetwk - _CONNECTDLGSTRUCTW = CONNECTDLGSTRUCTW; //+winnetwk - - DISCDLGSTRUCT = record - cbStructure : DWORD; - hwndOwner : HWND; - lpLocalName : LPTSTR; - lpRemoteName : LPTSTR; - dwFlags : DWORD; - end; - LPDISCDLGSTRUCT = ^DISCDLGSTRUCT; - _DISCDLGSTRUCT = DISCDLGSTRUCT; - TDISCDLGSTRUCT = DISCDLGSTRUCT; - TDISCDLGSTRUCTA = DISCDLGSTRUCT; - PDISCDLGSTRUCT = ^DISCDLGSTRUCT; - - DISCDLGSTRUCTW = record //+winnetwk - cbStructure : DWORD; - hwndOwner : HWND; - lpLocalName : LPWSTR; - lpRemoteName : LPWSTR; - dwFlags : DWORD; - end; - LPDISCDLGSTRUCTW = ^DISCDLGSTRUCTW; //+winnetwk - _DISCDLGSTRUCTW = DISCDLGSTRUCTW; //+winnetwk - - NETINFOSTRUCT = record - cbStructure : DWORD; - dwProviderVersion : DWORD; - dwStatus : DWORD; - dwCharacteristics : DWORD; - dwHandle : DWORD; - wNetType : WORD; - dwPrinters : DWORD; - dwDrives : DWORD; - end; - LPNETINFOSTRUCT = ^NETINFOSTRUCT; - _NETINFOSTRUCT = NETINFOSTRUCT; - TNETINFOSTRUCT = NETINFOSTRUCT; - PNETINFOSTRUCT = ^NETINFOSTRUCT; - - NETCONNECTINFOSTRUCT = record - cbStructure : DWORD; - dwFlags : DWORD; - dwSpeed : DWORD; - dwDelay : DWORD; - dwOptDataSize : DWORD; - end; - LPNETCONNECTINFOSTRUCT = ^NETCONNECTINFOSTRUCT; - _NETCONNECTINFOSTRUCT = NETCONNECTINFOSTRUCT; - TNETCONNECTINFOSTRUCT = NETCONNECTINFOSTRUCT; - PNETCONNECTINFOSTRUCT = ^NETCONNECTINFOSTRUCT; - - ENUMMETAFILEPROC = function (_para1:HDC; _para2:HANDLETABLE; _para3:METARECORD; _para4:longint; _para5:LPARAM):longint; - - ENHMETAFILEPROC = function (_para1:HDC; _para2:HANDLETABLE; _para3:ENHMETARECORD; _para4:longint; _para5:LPARAM):longint; - - ENUMFONTSPROC = function (_para1:LPLOGFONT; _para2:LPTEXTMETRIC; _para3:DWORD; _para4:LPARAM):longint; - - FONTENUMPROC = function (var _para1:ENUMLOGFONT; var _para2:NEWTEXTMETRIC; _para3:longint; _para4:LPARAM):longint; - - FONTENUMEXPROC = function (var _para1:ENUMLOGFONTEX;var _para2:NEWTEXTMETRICEX; _para3:longint; _para4:LPARAM):longint; - - LPOVERLAPPED_COMPLETION_ROUTINE = procedure (_para1:DWORD; _para2:DWORD; _para3:LPOVERLAPPED); - - { Structures for the extensions to OpenGL } - - POINTFLOAT = record - x : Single; - y : Single; - end; - _POINTFLOAT = POINTFLOAT; - TPOINTFLOAT = POINTFLOAT; - PPOINTFLOAT = ^POINTFLOAT; - - GLYPHMETRICSFLOAT = record - gmfBlackBoxX : Single; - gmfBlackBoxY : Single; - gmfptGlyphOrigin : POINTFLOAT; - gmfCellIncX : Single; - gmfCellIncY : Single; - end; - LPGLYPHMETRICSFLOAT = ^GLYPHMETRICSFLOAT; - _GLYPHMETRICSFLOAT = GLYPHMETRICSFLOAT; - TGLYPHMETRICSFLOAT = GLYPHMETRICSFLOAT; - PGLYPHMETRICSFLOAT = ^GLYPHMETRICSFLOAT; - - LAYERPLANEDESCRIPTOR = record - nSize : WORD; - nVersion : WORD; - dwFlags : DWORD; - iPixelType : BYTE; - cColorBits : BYTE; - cRedBits : BYTE; - cRedShift : BYTE; - cGreenBits : BYTE; - cGreenShift : BYTE; - cBlueBits : BYTE; - cBlueShift : BYTE; - cAlphaBits : BYTE; - cAlphaShift : BYTE; - cAccumBits : BYTE; - cAccumRedBits : BYTE; - cAccumGreenBits : BYTE; - cAccumBlueBits : BYTE; - cAccumAlphaBits : BYTE; - cDepthBits : BYTE; - cStencilBits : BYTE; - cAuxBuffers : BYTE; - iLayerPlane : BYTE; - bReserved : BYTE; - crTransparent : COLORREF; - end; - LPLAYERPLANEDESCRIPTOR = ^LAYERPLANEDESCRIPTOR; - tagLAYERPLANEDESCRIPTOR = LAYERPLANEDESCRIPTOR; - TLAYERPLANEDESCRIPTOR = LAYERPLANEDESCRIPTOR; - PLAYERPLANEDESCRIPTOR = ^LAYERPLANEDESCRIPTOR; - - PIXELFORMATDESCRIPTOR = record - nSize : WORD; - nVersion : WORD; - dwFlags : DWORD; - iPixelType : BYTE; - cColorBits : BYTE; - cRedBits : BYTE; - cRedShift : BYTE; - cGreenBits : BYTE; - cGreenShift : BYTE; - cBlueBits : BYTE; - cBlueShift : BYTE; - cAlphaBits : BYTE; - cAlphaShift : BYTE; - cAccumBits : BYTE; - cAccumRedBits : BYTE; - cAccumGreenBits : BYTE; - cAccumBlueBits : BYTE; - cAccumAlphaBits : BYTE; - cDepthBits : BYTE; - cStencilBits : BYTE; - cAuxBuffers : BYTE; - iLayerType : BYTE; - bReserved : BYTE; - dwLayerMask : DWORD; - dwVisibleMask : DWORD; - dwDamageMask : DWORD; - end; - LPPIXELFORMATDESCRIPTOR = ^PIXELFORMATDESCRIPTOR; - tagPIXELFORMATDESCRIPTOR = PIXELFORMATDESCRIPTOR; - TPIXELFORMATDESCRIPTOR = PIXELFORMATDESCRIPTOR; - PPIXELFORMATDESCRIPTOR = ^PIXELFORMATDESCRIPTOR; - - USER_INFO_2 = record - usri2_name : LPWSTR; - usri2_password : LPWSTR; - usri2_password_age : DWORD; - usri2_priv : DWORD; - usri2_home_dir : LPWSTR; - usri2_comment : LPWSTR; - usri2_flags : DWORD; - usri2_script_path : LPWSTR; - usri2_auth_flags : DWORD; - usri2_full_name : LPWSTR; - usri2_usr_comment : LPWSTR; - usri2_parms : LPWSTR; - usri2_workstations : LPWSTR; - usri2_last_logon : DWORD; - usri2_last_logoff : DWORD; - usri2_acct_expires : DWORD; - usri2_max_storage : DWORD; - usri2_units_per_week : DWORD; - usri2_logon_hours : PBYTE; - usri2_bad_pw_count : DWORD; - usri2_num_logons : DWORD; - usri2_logon_server : LPWSTR; - usri2_country_code : DWORD; - usri2_code_page : DWORD; - end; - PUSER_INFO_2 = ^USER_INFO_2; - LPUSER_INFO_2 = ^USER_INFO_2; - TUSERINFO2 = USER_INFO_2; - PUSERINFO2 = ^USER_INFO_2; - - USER_INFO_0 = record - usri0_name : LPWSTR; - end; - PUSER_INFO_0 = ^USER_INFO_0; - LPUSER_INFO_0 = ^USER_INFO_0; - TUSERINFO0 = USER_INFO_0; - PUSERINFO0 = ^USER_INFO_0; - - USER_INFO_3 = record - usri3_name : LPWSTR; - usri3_password : LPWSTR; - usri3_password_age : DWORD; - usri3_priv : DWORD; - usri3_home_dir : LPWSTR; - usri3_comment : LPWSTR; - usri3_flags : DWORD; - usri3_script_path : LPWSTR; - usri3_auth_flags : DWORD; - usri3_full_name : LPWSTR; - usri3_usr_comment : LPWSTR; - usri3_parms : LPWSTR; - usri3_workstations : LPWSTR; - usri3_last_logon : DWORD; - usri3_last_logoff : DWORD; - usri3_acct_expires : DWORD; - usri3_max_storage : DWORD; - usri3_units_per_week : DWORD; - usri3_logon_hours : PBYTE; - usri3_bad_pw_count : DWORD; - usri3_num_logons : DWORD; - usri3_logon_server : LPWSTR; - usri3_country_code : DWORD; - usri3_code_page : DWORD; - usri3_user_id : DWORD; - usri3_primary_group_id : DWORD; - usri3_profile : LPWSTR; - usri3_home_dir_drive : LPWSTR; - usri3_password_expired : DWORD; - end; - PUSER_INFO_3 = ^USER_INFO_3; - LPUSER_INFO_3 = ^USER_INFO_3; - TUSERINFO3 = USER_INFO_3; - PUSERINFO3 = ^USER_INFO_3; - - GROUP_INFO_2 = record - grpi2_name : LPWSTR; - grpi2_comment : LPWSTR; - grpi2_group_id : DWORD; - grpi2_attributes : DWORD; - end; - PGROUP_INFO_2 = ^GROUP_INFO_2; - TGROUPINFO2 = GROUP_INFO_2; - PGROUPINFO2 = ^GROUP_INFO_2; - - LOCALGROUP_INFO_0 = record - lgrpi0_name : LPWSTR; - end; - PLOCALGROUP_INFO_0 = ^LOCALGROUP_INFO_0; - LPLOCALGROUP_INFO_0 = ^LOCALGROUP_INFO_0; - TLOCALGROUPINFO0 = LOCALGROUP_INFO_0; - PLOCALGROUPINFO0 = ^LOCALGROUP_INFO_0; - - { PE executable header. } - { Magic number, 0x5a4d } - { Bytes on last page of file, 0x90 } - { Pages in file, 0x3 } - { Relocations, 0x0 } - { Size of header in paragraphs, 0x4 } - { Minimum extra paragraphs needed, 0x0 } - { Maximum extra paragraphs needed, 0xFFFF } - { Initial (relative) SS value, 0x0 } - { Initial SP value, 0xb8 } - { Checksum, 0x0 } - { Initial IP value, 0x0 } - { Initial (relative) CS value, 0x0 } - { File address of relocation table, 0x40 } - { Overlay number, 0x0 } - { Reserved words, all 0x0 } - { OEM identifier (for e_oeminfo), 0x0 } - { OEM information; e_oemid specific, 0x0 } - { Reserved words, all 0x0 } - { File address of new exe header, 0x80 } - { We leave out the next two fields, since they aren't in the header file } - { DWORD dos_message[16]; text which always follows dos header } - { DWORD nt_signature; required NT signature, 0x4550 } - - IMAGE_DOS_HEADER = record - e_magic : WORD; - e_cblp : WORD; - e_cp : WORD; - e_crlc : WORD; - e_cparhdr : WORD; - e_minalloc : WORD; - e_maxalloc : WORD; - e_ss : WORD; - e_sp : WORD; - e_csum : WORD; - e_ip : WORD; - e_cs : WORD; - e_lfarlc : WORD; - e_ovno : WORD; - e_res : array[0..3] of WORD; - e_oemid : WORD; - e_oeminfo : WORD; - e_res2 : array[0..9] of WORD; - e_lfanew : LONG; - end; - PIMAGE_DOS_HEADER = ^IMAGE_DOS_HEADER; - TIMAGEDOSHEADER = IMAGE_DOS_HEADER; - PIMAGEDOSHEADER = ^IMAGE_DOS_HEADER; - - _NOTIFYICONDATAA = record - cbSize: DWORD; - Wnd: HWND; - uID: UINT; - uFlags: UINT; - uCallbackMessage: UINT; - hIcon: HICON; - szTip: array [0..63] of Char; - end; - _NOTIFYICONDATA = _NOTIFYICONDATAA; - - _NOTIFYICONDATAW = record - cbSize: DWORD; - Wnd: HWND; - uID: UINT; - uFlags: UINT; - uCallbackMessage: UINT; - hIcon: HICON; - szTip: array [0..63] of Word; - end; - TNotifyIconDataA = _NOTIFYICONDATAA; - TNotifyIconDataW = _NOTIFYICONDATAW; - TNotifyIconData = TNotifyIconDataA; - NOTIFYICONDATAA = _NOTIFYICONDATAA; - NOTIFYICONDATAW = _NOTIFYICONDATAW; - NOTIFYICONDATA = NOTIFYICONDATAA; - PNotifyIconDataA = ^TNotifyIconDataA; - PNotifyIconDataW = ^TNotifyIconDataW; - PNotifyIconData = PNotifyIconDataA; - - TWOHandleArray = array[0..MAXIMUM_WAIT_OBJECTS-1] of HANDLE; - PWOHandleArray = ^TWOHandleArray; - - MMRESULT = Longint; - -type - PWaveFormatEx = ^TWaveFormatEx; - TWaveFormatEx = packed record - wFormatTag: Word; { format type } - nChannels: Word; { number of channels (i.e. mono, stereo, etc.) } - nSamplesPerSec: DWORD; { sample rate } - nAvgBytesPerSec: DWORD; { for buffer estimation } - nBlockAlign: Word; { block size of data } - wBitsPerSample: Word; { number of bits per sample of mono data } - cbSize: Word; { the count in bytes of the size of } - end; - - _WIN32_FILE_ATTRIBUTE_DATA = packed record - dwFileAttributes: DWORD; - ftCreationTime: FILETIME; - ftLastAccessTime: FILETIME; - ftLastWriteTime: FILETIME; - nFileSizeHigh: DWORD; - nFileSizeLow: DWORD; - end; - WIN32_FILE_ATTRIBUTE_DATA = _WIN32_FILE_ATTRIBUTE_DATA ; - LPWIN32_FILE_ATTRIBUTE_DATA = ^_WIN32_FILE_ATTRIBUTE_DATA; - TWIN32FILEATTRIBUTEDATA = _WIN32_FILE_ATTRIBUTE_DATA ; - PWIN32FILEATTRIBUTEDATA = ^_WIN32_FILE_ATTRIBUTE_DATA; - - // TrackMouseEvent. NT or higher only. - TTrackMouseEvent = Record - cbSize : DWORD; - dwFlags : DWORD; - hwndTrack : HWND; - dwHoverTime : DWORD; - end; - PTrackMouseEvent = ^TTrackMouseEvent; - -{$endif read_interface} - - -{$ifdef read_implementation} - - function fBinary(var a : DCB) : DWORD; - begin - fBinary:=(a.flags and bm_DCB_fBinary) shr bp_DCB_fBinary; - end; - - procedure set_fBinary(var a : DCB; __fBinary : DWORD); - begin - a.flags:=a.flags or ((__fBinary shl bp_DCB_fBinary) and bm_DCB_fBinary); - end; - - function fParity(var a : DCB) : DWORD; - begin - fParity:=(a.flags and bm_DCB_fParity) shr bp_DCB_fParity; - end; - - procedure set_fParity(var a : DCB; __fParity : DWORD); - begin - a.flags:=a.flags or ((__fParity shl bp_DCB_fParity) and bm_DCB_fParity); - end; - - function fOutxCtsFlow(var a : DCB) : DWORD; - begin - fOutxCtsFlow:=(a.flags and bm_DCB_fOutxCtsFlow) shr bp_DCB_fOutxCtsFlow; - end; - - procedure set_fOutxCtsFlow(var a : DCB; __fOutxCtsFlow : DWORD); - begin - a.flags:=a.flags or ((__fOutxCtsFlow shl bp_DCB_fOutxCtsFlow) and bm_DCB_fOutxCtsFlow); - end; - - function fOutxDsrFlow(var a : DCB) : DWORD; - begin - fOutxDsrFlow:=(a.flags and bm_DCB_fOutxDsrFlow) shr bp_DCB_fOutxDsrFlow; - end; - - procedure set_fOutxDsrFlow(var a : DCB; __fOutxDsrFlow : DWORD); - begin - a.flags:=a.flags or ((__fOutxDsrFlow shl bp_DCB_fOutxDsrFlow) and bm_DCB_fOutxDsrFlow); - end; - - function fDtrControl(var a : DCB) : DWORD; - begin - fDtrControl:=(a.flags and bm_DCB_fDtrControl) shr bp_DCB_fDtrControl; - end; - - procedure set_fDtrControl(var a : DCB; __fDtrControl : DWORD); - begin - a.flags:=a.flags or ((__fDtrControl shl bp_DCB_fDtrControl) and bm_DCB_fDtrControl); - end; - - function fDsrSensitivity(var a : DCB) : DWORD; - begin - fDsrSensitivity:=(a.flags and bm_DCB_fDsrSensitivity) shr bp_DCB_fDsrSensitivity; - end; - - procedure set_fDsrSensitivity(var a : DCB; __fDsrSensitivity : DWORD); - begin - a.flags:=a.flags or ((__fDsrSensitivity shl bp_DCB_fDsrSensitivity) and bm_DCB_fDsrSensitivity); - end; - - function fTXContinueOnXoff(var a : DCB) : DWORD; - begin - fTXContinueOnXoff:=(a.flags and bm_DCB_fTXContinueOnXoff) shr bp_DCB_fTXContinueOnXoff; - end; - - procedure set_fTXContinueOnXoff(var a : DCB; __fTXContinueOnXoff : DWORD); - begin - a.flags:=a.flags or ((__fTXContinueOnXoff shl bp_DCB_fTXContinueOnXoff) and bm_DCB_fTXContinueOnXoff); - end; - - function fOutX(var a : DCB) : DWORD; - begin - fOutX:=(a.flags and bm_DCB_fOutX) shr bp_DCB_fOutX; - end; - - procedure set_fOutX(var a : DCB; __fOutX : DWORD); - begin - a.flags:=a.flags or ((__fOutX shl bp_DCB_fOutX) and bm_DCB_fOutX); - end; - - function fInX(var a : DCB) : DWORD; - begin - fInX:=(a.flags and bm_DCB_fInX) shr bp_DCB_fInX; - end; - - procedure set_fInX(var a : DCB; __fInX : DWORD); - begin - a.flags:=a.flags or ((__fInX shl bp_DCB_fInX) and bm_DCB_fInX); - end; - - function fErrorChar(var a : DCB) : DWORD; - begin - fErrorChar:=(a.flags and bm_DCB_fErrorChar) shr bp_DCB_fErrorChar; - end; - - procedure set_fErrorChar(var a : DCB; __fErrorChar : DWORD); - begin - a.flags:=a.flags or ((__fErrorChar shl bp_DCB_fErrorChar) and bm_DCB_fErrorChar); - end; - - function fNull(var a : DCB) : DWORD; - begin - fNull:=(a.flags and bm_DCB_fNull) shr bp_DCB_fNull; - end; - - procedure set_fNull(var a : DCB; __fNull : DWORD); - begin - a.flags:=a.flags or ((__fNull shl bp_DCB_fNull) and bm_DCB_fNull); - end; - - function fRtsControl(var a : DCB) : DWORD; - begin - fRtsControl:=(a.flags and bm_DCB_fRtsControl) shr bp_DCB_fRtsControl; - end; - - procedure set_fRtsControl(var a : DCB; __fRtsControl : DWORD); - begin - a.flags:=a.flags or ((__fRtsControl shl bp_DCB_fRtsControl) and bm_DCB_fRtsControl); - end; - - function fAbortOnError(var a : DCB) : DWORD; - begin - fAbortOnError:=(a.flags and bm_DCB_fAbortOnError) shr bp_DCB_fAbortOnError; - end; - - procedure set_fAbortOnError(var a : DCB; __fAbortOnError : DWORD); - begin - a.flags:=a.flags or ((__fAbortOnError shl bp_DCB_fAbortOnError) and bm_DCB_fAbortOnError); - end; - - function fDummy2(var a : DCB) : DWORD; - begin - fDummy2:=(a.flags and bm_DCB_fDummy2) shr bp_DCB_fDummy2; - end; - - procedure set_fDummy2(var a : DCB; __fDummy2 : DWORD); - begin - a.flags:=a.flags or ((__fDummy2 shl bp_DCB_fDummy2) and bm_DCB_fDummy2); - end; - - function fCtsHold(var a : COMSTAT) : DWORD; - begin - fCtsHold:=(a.flag0 and bm_COMSTAT_fCtsHold) shr bp_COMSTAT_fCtsHold; - end; - - procedure set_fCtsHold(var a : COMSTAT; __fCtsHold : DWORD); - begin - a.flag0:=a.flag0 or ((__fCtsHold shl bp_COMSTAT_fCtsHold) and bm_COMSTAT_fCtsHold); - end; - - function fDsrHold(var a : COMSTAT) : DWORD; - begin - fDsrHold:=(a.flag0 and bm_COMSTAT_fDsrHold) shr bp_COMSTAT_fDsrHold; - end; - - procedure set_fDsrHold(var a : COMSTAT; __fDsrHold : DWORD); - begin - a.flag0:=a.flag0 or ((__fDsrHold shl bp_COMSTAT_fDsrHold) and bm_COMSTAT_fDsrHold); - end; - - function fRlsdHold(var a : COMSTAT) : DWORD; - begin - fRlsdHold:=(a.flag0 and bm_COMSTAT_fRlsdHold) shr bp_COMSTAT_fRlsdHold; - end; - - procedure set_fRlsdHold(var a : COMSTAT; __fRlsdHold : DWORD); - begin - a.flag0:=a.flag0 or ((__fRlsdHold shl bp_COMSTAT_fRlsdHold) and bm_COMSTAT_fRlsdHold); - end; - - function fXoffHold(var a : COMSTAT) : DWORD; - begin - fXoffHold:=(a.flag0 and bm_COMSTAT_fXoffHold) shr bp_COMSTAT_fXoffHold; - end; - - procedure set_fXoffHold(var a : COMSTAT; __fXoffHold : DWORD); - begin - a.flag0:=a.flag0 or ((__fXoffHold shl bp_COMSTAT_fXoffHold) and bm_COMSTAT_fXoffHold); - end; - - function fXoffSent(var a : COMSTAT) : DWORD; - begin - fXoffSent:=(a.flag0 and bm_COMSTAT_fXoffSent) shr bp_COMSTAT_fXoffSent; - end; - - procedure set_fXoffSent(var a : COMSTAT; __fXoffSent : DWORD); - begin - a.flag0:=a.flag0 or ((__fXoffSent shl bp_COMSTAT_fXoffSent) and bm_COMSTAT_fXoffSent); - end; - - function fEof(var a : COMSTAT) : DWORD; - begin - fEof:=(a.flag0 and bm_COMSTAT_fEof) shr bp_COMSTAT_fEof; - end; - - procedure set_fEof(var a : COMSTAT; __fEof : DWORD); - begin - a.flag0:=a.flag0 or ((__fEof shl bp_COMSTAT_fEof) and bm_COMSTAT_fEof); - end; - - function fTxim(var a : COMSTAT) : DWORD; - begin - fTxim:=(a.flag0 and bm_COMSTAT_fTxim) shr bp_COMSTAT_fTxim; - end; - - procedure set_fTxim(var a : COMSTAT; __fTxim : DWORD); - begin - a.flag0:=a.flag0 or ((__fTxim shl bp_COMSTAT_fTxim) and bm_COMSTAT_fTxim); - end; - - function fReserved(var a : COMSTAT) : DWORD; - begin - fReserved:=(a.flag0 and bm_COMSTAT_fReserved) shr bp_COMSTAT_fReserved; - end; - - procedure set_fReserved(var a : COMSTAT; __fReserved : DWORD); - begin - a.flag0:=a.flag0 or ((__fReserved shl bp_COMSTAT_fReserved) and bm_COMSTAT_fReserved); - end; - - function bAppReturnCode(var a : DDEACK) : word; - begin - bAppReturnCode:=(a.flag0 and bm_DDEACK_bAppReturnCode) shr bp_DDEACK_bAppReturnCode; - end; - - procedure set_bAppReturnCode(var a : DDEACK; __bAppReturnCode : word); - begin - a.flag0:=a.flag0 or ((__bAppReturnCode shl bp_DDEACK_bAppReturnCode) and bm_DDEACK_bAppReturnCode); - end; - - function reserved(var a : DDEACK) : word; - begin - reserved:=(a.flag0 and bm_DDEACK_reserved) shr bp_DDEACK_reserved; - end; - - procedure set_reserved(var a : DDEACK; __reserved : word); - begin - a.flag0:=a.flag0 or ((__reserved shl bp_DDEACK_reserved) and bm_DDEACK_reserved); - end; - - function fBusy(var a : DDEACK) : word; - begin - fBusy:=(a.flag0 and bm_DDEACK_fBusy) shr bp_DDEACK_fBusy; - end; - - procedure set_fBusy(var a : DDEACK; __fBusy : word); - begin - a.flag0:=a.flag0 or ((__fBusy shl bp_DDEACK_fBusy) and bm_DDEACK_fBusy); - end; - - function fAck(var a : DDEACK) : word; - begin - fAck:=(a.flag0 and bm_DDEACK_fAck) shr bp_DDEACK_fAck; - end; - - procedure set_fAck(var a : DDEACK; __fAck : word); - begin - a.flag0:=a.flag0 or ((__fAck shl bp_DDEACK_fAck) and bm_DDEACK_fAck); - end; - - function reserved(var a : DDEADVISE) : word; - begin - reserved:=(a.flag0 and bm_DDEADVISE_reserved) shr bp_DDEADVISE_reserved; - end; - - procedure set_reserved(var a : DDEADVISE; __reserved : word); - begin - a.flag0:=a.flag0 or ((__reserved shl bp_DDEADVISE_reserved) and bm_DDEADVISE_reserved); - end; - - function fDeferUpd(var a : DDEADVISE) : word; - begin - fDeferUpd:=(a.flag0 and bm_DDEADVISE_fDeferUpd) shr bp_DDEADVISE_fDeferUpd; - end; - - procedure set_fDeferUpd(var a : DDEADVISE; __fDeferUpd : word); - begin - a.flag0:=a.flag0 or ((__fDeferUpd shl bp_DDEADVISE_fDeferUpd) and bm_DDEADVISE_fDeferUpd); - end; - - function fAckReq(var a : DDEADVISE) : word; - begin - fAckReq:=(a.flag0 and bm_DDEADVISE_fAckReq) shr bp_DDEADVISE_fAckReq; - end; - - procedure set_fAckReq(var a : DDEADVISE; __fAckReq : word); - begin - a.flag0:=a.flag0 or ((__fAckReq shl bp_DDEADVISE_fAckReq) and bm_DDEADVISE_fAckReq); - end; - - function unused(var a : DDEDATA) : word; - begin - unused:=(a.flag0 and bm_DDEDATA_unused) shr bp_DDEDATA_unused; - end; - - procedure set_unused(var a : DDEDATA; __unused : word); - begin - a.flag0:=a.flag0 or ((__unused shl bp_DDEDATA_unused) and bm_DDEDATA_unused); - end; - - function fResponse(var a : DDEDATA) : word; - begin - fResponse:=(a.flag0 and bm_DDEDATA_fResponse) shr bp_DDEDATA_fResponse; - end; - - procedure set_fResponse(var a : DDEDATA; __fResponse : word); - begin - a.flag0:=a.flag0 or ((__fResponse shl bp_DDEDATA_fResponse) and bm_DDEDATA_fResponse); - end; - - function fRelease(var a : DDEDATA) : word; - begin - fRelease:=(a.flag0 and bm_DDEDATA_fRelease) shr bp_DDEDATA_fRelease; - end; - - procedure set_fRelease(var a : DDEDATA; __fRelease : word); - begin - a.flag0:=a.flag0 or ((__fRelease shl bp_DDEDATA_fRelease) and bm_DDEDATA_fRelease); - end; - - function reserved(var a : DDEDATA) : word; - begin - reserved:=(a.flag0 and bm_DDEDATA_reserved) shr bp_DDEDATA_reserved; - end; - - procedure set_reserved(var a : DDEDATA; __reserved : word); - begin - a.flag0:=a.flag0 or ((__reserved shl bp_DDEDATA_reserved) and bm_DDEDATA_reserved); - end; - - function fAckReq(var a : DDEDATA) : word; - begin - fAckReq:=(a.flag0 and bm_DDEDATA_fAckReq) shr bp_DDEDATA_fAckReq; - end; - - procedure set_fAckReq(var a : DDEDATA; __fAckReq : word); - begin - a.flag0:=a.flag0 or ((__fAckReq shl bp_DDEDATA_fAckReq) and bm_DDEDATA_fAckReq); - end; - - function unused(var a : DDELN) : word; - begin - unused:=(a.flag0 and bm_DDELN_unused) shr bp_DDELN_unused; - end; - - procedure set_unused(var a : DDELN; __unused : word); - begin - a.flag0:=a.flag0 or ((__unused shl bp_DDELN_unused) and bm_DDELN_unused); - end; - - function fRelease(var a : DDELN) : word; - begin - fRelease:=(a.flag0 and bm_DDELN_fRelease) shr bp_DDELN_fRelease; - end; - - procedure set_fRelease(var a : DDELN; __fRelease : word); - begin - a.flag0:=a.flag0 or ((__fRelease shl bp_DDELN_fRelease) and bm_DDELN_fRelease); - end; - - function fDeferUpd(var a : DDELN) : word; - begin - fDeferUpd:=(a.flag0 and bm_DDELN_fDeferUpd) shr bp_DDELN_fDeferUpd; - end; - - procedure set_fDeferUpd(var a : DDELN; __fDeferUpd : word); - begin - a.flag0:=a.flag0 or ((__fDeferUpd shl bp_DDELN_fDeferUpd) and bm_DDELN_fDeferUpd); - end; - - function fAckReq(var a : DDELN) : word; - begin - fAckReq:=(a.flag0 and bm_DDELN_fAckReq) shr bp_DDELN_fAckReq; - end; - - procedure set_fAckReq(var a : DDELN; __fAckReq : word); - begin - a.flag0:=a.flag0 or ((__fAckReq shl bp_DDELN_fAckReq) and bm_DDELN_fAckReq); - end; - - function unused(var a : DDEPOKE) : word; - begin - unused:=(a.flag0 and bm_DDEPOKE_unused) shr bp_DDEPOKE_unused; - end; - - procedure set_unused(var a : DDEPOKE; __unused : word); - begin - a.flag0:=a.flag0 or ((__unused shl bp_DDEPOKE_unused) and bm_DDEPOKE_unused); - end; - - function fRelease(var a : DDEPOKE) : word; - begin - fRelease:=(a.flag0 and bm_DDEPOKE_fRelease) shr bp_DDEPOKE_fRelease; - end; - - procedure set_fRelease(var a : DDEPOKE; __fRelease : word); - begin - a.flag0:=a.flag0 or ((__fRelease shl bp_DDEPOKE_fRelease) and bm_DDEPOKE_fRelease); - end; - - function fReserved(var a : DDEPOKE) : word; - begin - fReserved:=(a.flag0 and bm_DDEPOKE_fReserved) shr bp_DDEPOKE_fReserved; - end; - - procedure set_fReserved(var a : DDEPOKE; __fReserved : word); - begin - a.flag0:=a.flag0 or ((__fReserved shl bp_DDEPOKE_fReserved) and bm_DDEPOKE_fReserved); - end; - - function unused(var a : DDEUP) : word; - begin - unused:=(a.flag0 and bm_DDEUP_unused) shr bp_DDEUP_unused; - end; - - procedure set_unused(var a : DDEUP; __unused : word); - begin - a.flag0:=a.flag0 or ((__unused shl bp_DDEUP_unused) and bm_DDEUP_unused); - end; - - function fAck(var a : DDEUP) : word; - begin - fAck:=(a.flag0 and bm_DDEUP_fAck) shr bp_DDEUP_fAck; - end; - - procedure set_fAck(var a : DDEUP; __fAck : word); - begin - a.flag0:=a.flag0 or ((__fAck shl bp_DDEUP_fAck) and bm_DDEUP_fAck); - end; - - function fRelease(var a : DDEUP) : word; - begin - fRelease:=(a.flag0 and bm_DDEUP_fRelease) shr bp_DDEUP_fRelease; - end; - - procedure set_fRelease(var a : DDEUP; __fRelease : word); - begin - a.flag0:=a.flag0 or ((__fRelease shl bp_DDEUP_fRelease) and bm_DDEUP_fRelease); - end; - - function fReserved(var a : DDEUP) : word; - begin - fReserved:=(a.flag0 and bm_DDEUP_fReserved) shr bp_DDEUP_fReserved; - end; - - procedure set_fReserved(var a : DDEUP; __fReserved : word); - begin - a.flag0:=a.flag0 or ((__fReserved shl bp_DDEUP_fReserved) and bm_DDEUP_fReserved); - end; - - function fAckReq(var a : DDEUP) : word; - begin - fAckReq:=(a.flag0 and bm_DDEUP_fAckReq) shr bp_DDEUP_fAckReq; - end; - - procedure set_fAckReq(var a : DDEUP; __fAckReq : word); - begin - a.flag0:=a.flag0 or ((__fAckReq shl bp_DDEUP_fAckReq) and bm_DDEUP_fAckReq); - end; - -{$endif read_implementation} - +{ + This file is part of the Free Pascal run time library. + This unit contains the record definition for the Win32 API + Copyright (c) 1999-2000 by Florian KLaempfl, + member of the Free Pascal development team. + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} + +{ + Structures.h + + Declarations for all the Windows32 API Structures + + Copyright (C) 1996 Free Software Foundation, Inc. + + Author: Scott Christley + Date: 1996 + + This file is part of the Windows32 API Library. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + If you are interested in a warranty or support for this source code, + contact Scott Christley for more information. + + You should have received a copy of the GNU Library General Public + License along with this library; see the file COPYING.LIB. + If not, write to the Free Software Foundation, + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + + Changes : + + 22/15/2005 update for wince4.2 port, orinaudo@gmail.com + +} + +{$ifdef read_interface} + + type + + { WARNING + the variable argument list + is not implemented for FPC + va_list is just a dummy record + MvdV: Nevertheless it should be a pointer type, not a record} + + va_list = pchar; + + ABC = record + abcA : longint; + abcB : UINT; + abcC : longint; + end; + LPABC = ^ABC; + _ABC = ABC; + TABC = ABC; + PABC = ^ABC; + + ABCFLOAT = record + abcfA : Single; + abcfB : Single; + abcfC : Single; + end; + LPABCFLOAT = ^ABCFLOAT; + _ABCFLOAT = ABCFLOAT; + TABCFLOAT = ABCFLOAT; + PABCFLOAT = ^ABCFLOAT; + + ACCEL = record + fVirt : BYTE; + key : WORD; + cmd : WORD; + end; + LPACCEL = ^ACCEL; + _ACCEL = ACCEL; + TACCEL = ACCEL; + PACCEL = ^ACCEL; + + // + // The structure of an ACE is a common ace header followed by ace type + // specific data. Pictorally the structure of the common ace header is + // as follows: + // + // 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 + // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 + // +---------------+-------+-------+---------------+---------------+ + // | AceSize | AceFlags | AceType | + // +---------------+-------+-------+---------------+---------------+ + // + // AceType denotes the type of the ace, there are some predefined ace + // types + // + // AceSize is the size, in bytes, of ace. + // + // AceFlags are the Ace flags for audit and inheritance, defined shortly. + + ACE_HEADER = record //winnt + AceType : BYTE; + AceFlags : BYTE; + AceSize : WORD; + end; + _ACE_HEADER = ACE_HEADER; + TACE_HEADER = ACE_HEADER; + PACE_HEADER = ^ACE_HEADER; + + ACCESS_MASK = DWORD; //winnt + PACCESS_MASK = ^ACCESS_MASK; //+winnt + + REGSAM = ACCESS_MASK; + + ACCESS_ALLOWED_ACE = record + Header : ACE_HEADER; + Mask : ACCESS_MASK; + SidStart : DWORD; + end; + _ACCESS_ALLOWED_ACE = ACCESS_ALLOWED_ACE; + TACCESS_ALLOWED_ACE = ACCESS_ALLOWED_ACE; + PACCESS_ALLOWED_ACE = ^ACCESS_ALLOWED_ACE; + + ACCESS_DENIED_ACE = record + Header : ACE_HEADER; + Mask : ACCESS_MASK; + SidStart : DWORD; + end; + _ACCESS_DENIED_ACE = ACCESS_DENIED_ACE; + TACCESS_DENIED_ACE = ACCESS_DENIED_ACE; + + ACCESSTIMEOUT = record + cbSize : UINT; + dwFlags : DWORD; + iTimeOutMSec : DWORD; + end; + _ACCESSTIMEOUT = ACCESSTIMEOUT; + TACCESSTIMEOUT = ACCESSTIMEOUT; + PACCESSTIMEOUT = ^ACCESSTIMEOUT; + + PACCESS_TOKEN = PVOID; //+winnt + + //////////////////////////////////////////////////////////////////////// + // // + // ACL and ACE // + // // + //////////////////////////////////////////////////////////////////////// + + // + // Define an ACL and the ACE format. The structure of an ACL header + // followed by one or more ACEs. Pictorally the structure of an ACL header + // is as follows: + // + // 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 + // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 + // +-------------------------------+---------------+---------------+ + // | AclSize | Sbz1 | AclRevision | + // +-------------------------------+---------------+---------------+ + // | Sbz2 | AceCount | + // +-------------------------------+-------------------------------+ + // + // The current AclRevision is defined to be ACL_REVISION. + // + // AclSize is the size, in bytes, allocated for the ACL. This includes + // the ACL header, ACES, and remaining free space in the buffer. + // + // AceCount is the number of ACES in the ACL. + // + + ACL = record //winnt + AclRevision : BYTE; + Sbz1 : BYTE; + AclSize : WORD; + AceCount : WORD; + Sbz2 : WORD; + end; + PACL = ^ACL; + _ACL = ACL; + TACL = ACL; + + ACL_REVISION_INFORMATION = record + AclRevision : DWORD; + end; + _ACL_REVISION_INFORMATION = ACL_REVISION_INFORMATION; + TACLREVISIONINFORMATION = ACL_REVISION_INFORMATION; + PACLREVISIONINFORMATION = ^ACL_REVISION_INFORMATION; + + ACL_SIZE_INFORMATION = record + AceCount : DWORD; + AclBytesInUse : DWORD; + AclBytesFree : DWORD; + end; + _ACL_SIZE_INFORMATION = ACL_SIZE_INFORMATION; + TACLSIZEINFORMATION = ACL_SIZE_INFORMATION; + PACLSIZEINFORMATION = ^ACL_SIZE_INFORMATION; + + ACTION_HEADER = record + transport_id : ULONG; + action_code : USHORT; + reserved : USHORT; + end; + _ACTION_HEADER = ACTION_HEADER; + TACTIONHEADER = ACTION_HEADER; + PACTIONHEADER = ^ACTION_HEADER; + + ADAPTER_STATUS = record + adapter_address : array[0..5] of UCHAR; + rev_major : UCHAR; + reserved0 : UCHAR; + adapter_type : UCHAR; + rev_minor : UCHAR; + duration : WORD; + frmr_recv : WORD; + frmr_xmit : WORD; + iframe_recv_err : WORD; + xmit_aborts : WORD; + xmit_success : DWORD; + recv_success : DWORD; + iframe_xmit_err : WORD; + recv_buff_unavail : WORD; + t1_timeouts : WORD; + ti_timeouts : WORD; + reserved1 : DWORD; + free_ncbs : WORD; + max_cfg_ncbs : WORD; + max_ncbs : WORD; + xmit_buf_unavail : WORD; + max_dgram_size : WORD; + pending_sess : WORD; + max_cfg_sess : WORD; + max_sess : WORD; + max_sess_pkt_size : WORD; + name_count : WORD; + end; + _ADAPTER_STATUS = ADAPTER_STATUS; + TADAPTERSTATUS = ADAPTER_STATUS; + PADAPTERSTATUS = ^ADAPTER_STATUS; + + ADDJOB_INFO_1 = record + Path : LPTSTR; + JobId : DWORD; + end; + _ADDJOB_INFO_1 = ADDJOB_INFO_1; + TADDJOB_INFO_1 = ADDJOB_INFO_1; + PADDJOB_INFO_1 = ^ADDJOB_INFO_1; + + ANIMATIONINFO = record + cbSize : UINT; + iMinAnimate : longint; + end; + LPANIMATIONINFO = ^ANIMATIONINFO; + _ANIMATIONINFO = ANIMATIONINFO; + TANIMATIONINFO = ANIMATIONINFO; + PANIMATIONINFO = ^ANIMATIONINFO; + + POINT = record + x : LONG; + y : LONG; + end; + LPPOINT = ^POINT; + tagPOINT = POINT; + TPOINT = POINT; + PPOINT = ^POINT; + + RECT = record + case Integer of + 0: (Left,Top,Right,Bottom : Longint); + 1: (TopLeft,BottomRight : TPoint); + end; + LPRECT = ^RECT; + _RECT = RECT; + TRECT = RECT; + PRECT = ^RECT; + tagRECT = RECT; //+windef + + RECTL = record + left : LONG; + top : LONG; + right : LONG; + bottom : LONG; + end; + _RECTL = RECTL; + TRECTL = RECTL; + PRECTL = ^RECTL; + + APPBARDATA = record + cbSize : DWORD; + hWnd : HWND; + uCallbackMessage : UINT; + uEdge : UINT; + rc : RECT; + lParam : LPARAM; + end; + _AppBarData = APPBARDATA; + TAppBarData = APPBARDATA; + PAppBarData = ^APPBARDATA; + + BITMAP = record + bmType : LONG; + bmWidth : LONG; + bmHeight : LONG; + bmWidthBytes : LONG; + bmPlanes : WORD; + bmBitsPixel : WORD; + bmBits : LPVOID; + end; + PBITMAP = ^BITMAP; + NPBITMAP = ^BITMAP; + LPBITMAP = ^BITMAP; + tagBITMAP = BITMAP; + TBITMAP = BITMAP; + + BITMAPCOREHEADER = record + bcSize : DWORD; + bcWidth : WORD; + bcHeight : WORD; + bcPlanes : WORD; + bcBitCount : WORD; + end; + tagBITMAPCOREHEADER = BITMAPCOREHEADER; + TBITMAPCOREHEADER = BITMAPCOREHEADER; + PBITMAPCOREHEADER = ^BITMAPCOREHEADER; + + RGBTRIPLE = record + rgbtBlue : BYTE; + rgbtGreen : BYTE; + rgbtRed : BYTE; + end; + tagRGBTRIPLE = RGBTRIPLE; + TRGBTRIPLE = RGBTRIPLE; + PRGBTRIPLE = ^RGBTRIPLE; + + BITMAPCOREINFO = record + bmciHeader : BITMAPCOREHEADER; + bmciColors : array[0..0] of RGBTRIPLE; + end; + PBITMAPCOREINFO = ^BITMAPCOREINFO; + LPBITMAPCOREINFO = ^BITMAPCOREINFO; + _BITMAPCOREINFO = BITMAPCOREINFO; + TBITMAPCOREINFO = BITMAPCOREINFO; + +(* error + WORD bfReserved1; + WORD bfReserved2; + in declarator_list *) + + BITMAPINFOHEADER = record + biSize : DWORD; + biWidth : LONG; + biHeight : LONG; + biPlanes : WORD; + biBitCount : WORD; + biCompression : DWORD; + biSizeImage : DWORD; + biXPelsPerMeter : LONG; + biYPelsPerMeter : LONG; + biClrUsed : DWORD; + biClrImportant : DWORD; + end; + LPBITMAPINFOHEADER = ^BITMAPINFOHEADER; + TBITMAPINFOHEADER = BITMAPINFOHEADER; + PBITMAPINFOHEADER = ^BITMAPINFOHEADER; + + RGBQUAD = record + rgbBlue : BYTE; + rgbGreen : BYTE; + rgbRed : BYTE; + rgbReserved : BYTE; + end; + tagRGBQUAD = RGBQUAD; + TRGBQUAD = RGBQUAD; + PRGBQUAD = ^RGBQUAD; + + BITMAPINFO = record + bmiHeader : BITMAPINFOHEADER; + bmiColors : array[0..0] of RGBQUAD; + end; + LPBITMAPINFO = ^BITMAPINFO; + PBITMAPINFO = ^BITMAPINFO; + TBITMAPINFO = BITMAPINFO; + + FXPT2DOT30 = longint; + LPFXPT2DOT30 = ^FXPT2DOT30; + TPFXPT2DOT30 = FXPT2DOT30; + PPFXPT2DOT30 = ^FXPT2DOT30; + + CIEXYZ = record + ciexyzX : FXPT2DOT30; + ciexyzY : FXPT2DOT30; + ciexyzZ : FXPT2DOT30; + end; + tagCIEXYZ = CIEXYZ; + LPCIEXYZ = ^CIEXYZ; + TPCIEXYZ = CIEXYZ; + PCIEXYZ = ^CIEXYZ; + + CIEXYZTRIPLE = record + ciexyzRed : CIEXYZ; + ciexyzGreen : CIEXYZ; + ciexyzBlue : CIEXYZ; + end; + tagCIEXYZTRIPLE = CIEXYZTRIPLE; + LPCIEXYZTRIPLE = ^CIEXYZTRIPLE; + TCIEXYZTRIPLE = CIEXYZTRIPLE; + PCIEXYZTRIPLE = ^CIEXYZTRIPLE; + + BITMAPV4HEADER = record + bV4Size : DWORD; + bV4Width : LONG; + bV4Height : LONG; + bV4Planes : WORD; + bV4BitCount : WORD; + bV4V4Compression : DWORD; + bV4SizeImage : DWORD; + bV4XPelsPerMeter : LONG; + bV4YPelsPerMeter : LONG; + bV4ClrUsed : DWORD; + bV4ClrImportant : DWORD; + bV4RedMask : DWORD; + bV4GreenMask : DWORD; + bV4BlueMask : DWORD; + bV4AlphaMask : DWORD; + bV4CSType : DWORD; + bV4Endpoints : CIEXYZTRIPLE; + bV4GammaRed : DWORD; + bV4GammaGreen : DWORD; + bV4GammaBlue : DWORD; + end; + LPBITMAPV4HEADER = ^BITMAPV4HEADER; + TBITMAPV4HEADER = BITMAPV4HEADER; + PBITMAPV4HEADER = ^BITMAPV4HEADER; + + BITMAPFILEHEADER = packed record + bfType : Word; + bfSize : DWord; + bfReserved1 : Word; + bfReserved2 : Word; + bfOffBits : DWord; + end; + TBitmapFileHeader = BITMAPFILEHEADER; + + BLOB = record + cbSize : ULONG; + pBlobData : ^BYTE; + end; + _BLOB = BLOB; + TBLOB = BLOB; + PBLOB = ^BLOB; + + SHITEMID = record + cb : USHORT; + abID : array[0..0] of BYTE; + end; + LPSHITEMID = ^SHITEMID; + LPCSHITEMID = ^SHITEMID; + _SHITEMID = SHITEMID; + TSHITEMID = SHITEMID; + PSHITEMID = ^SHITEMID; + + ITEMIDLIST = record + mkid : SHITEMID; + end; + LPITEMIDLIST = ^ITEMIDLIST; + LPCITEMIDLIST = ^ITEMIDLIST; + _ITEMIDLIST = ITEMIDLIST; + TITEMIDLIST = ITEMIDLIST; + PITEMIDLIST = ^ITEMIDLIST; + + FILETIME = record + dwLowDateTime : DWORD; + dwHighDateTime : DWORD; + end; + LPFILETIME = ^FILETIME; + _FILETIME = FILETIME; + TFILETIME = FILETIME; + PFILETIME = ^FILETIME; + + _GET_FILEEX_INFO_LEVELS=(GetFileExInfoStandard,GetFileExMaxInfoLevel); //+winbase + GET_FILEEX_INFO_LEVELS=_GET_FILEEX_INFO_LEVELS; //+winbase + + _FINDEX_INFO_LEVELS = (FindExInfoStandard,FindExInfoMaxInfoLevel); //+winbase + FINDEX_INFO_LEVELS = _FINDEX_INFO_LEVELS; //+winbase + + _FINDEX_SEARCH_OPS = ( FindExSearchNameMatch, FindExSearchLimitToDirectories, + FindExSearchLimitToDevices, FindExSearchMaxSearchOp); + FINDEX_SEARCH_OPS=_FINDEX_SEARCH_OPS; + + BY_HANDLE_FILE_INFORMATION = record + dwFileAttributes : DWORD; + ftCreationTime : FILETIME; + ftLastAccessTime : FILETIME; + ftLastWriteTime : FILETIME; + dwVolumeSerialNumber : DWORD; + nFileSizeHigh : DWORD; + nFileSizeLow : DWORD; + nNumberOfLinks : DWORD; + nFileIndexHigh : DWORD; + nFileIndexLow : DWORD; + end; + LPBY_HANDLE_FILE_INFORMATION = ^BY_HANDLE_FILE_INFORMATION; + _BY_HANDLE_FILE_INFORMATION = BY_HANDLE_FILE_INFORMATION; + TBYHANDLEFILEINFORMATION = BY_HANDLE_FILE_INFORMATION; + PBYHANDLEFILEINFORMATION = ^BY_HANDLE_FILE_INFORMATION; + + FIXED = record + fract : WORD; + value : integer; + end; + _FIXED = FIXED; + TFIXED = FIXED; + PFIXED = ^FIXED; + + POINTFX = record + x : FIXED; + y : FIXED; + end; + tagPOINTFX = POINTFX; + TPOINTFX = POINTFX; + PPOINTFX = ^POINTFX; + + POINTL = record + x : LONG; + y : LONG; + end; + _POINTL = POINTL; + TPOINTL = POINTL; + PPOINTL = ^POINTL; + + TSmallPoint = record + X, + Y : SmallInt; + end; + + + POINTS = record + x : SHORT; + y : SHORT; + end; + tagPOINTS = POINTS; //windef + TPOINTS = POINTS; + PPOINTS = ^POINTS; + + CANDIDATEFORM = record + dwIndex : DWORD; + dwStyle : DWORD; + ptCurrentPos : POINT; + rcArea : RECT; + end; + LPCANDIDATEFORM = ^CANDIDATEFORM; + _tagCANDIDATEFORM = CANDIDATEFORM; + TCANDIDATEFORM = CANDIDATEFORM; + PCANDIDATEFORM = ^CANDIDATEFORM; + + CANDIDATELIST = record + dwSize : DWORD; + dwStyle : DWORD; + dwCount : DWORD; + dwSelection : DWORD; + dwPageStart : DWORD; + dwPageSize : DWORD; + dwOffset : array[0..0] of DWORD; + end; + LPCANDIDATELIST = ^CANDIDATELIST; + _tagCANDIDATELIST = CANDIDATELIST; + TCANDIDATELIST = CANDIDATELIST; + PCANDIDATELIST = ^CANDIDATELIST; + + CREATESTRUCT = record + lpCreateParams : LPVOID; + hInstance : HINST; + hMenu : HMENU; + hwndParent : HWND; + cy : longint; + cx : longint; + y : longint; + x : longint; + style : LONG; + lpszName : LPCTSTR; + lpszClass : LPCTSTR; + dwExStyle : DWORD; + end; + LPCREATESTRUCT = ^CREATESTRUCT; + tagCREATESTRUCT = CREATESTRUCT; + TCREATESTRUCT = CREATESTRUCT; + PCREATESTRUCT = ^CREATESTRUCT; + + CBT_CREATEWND = record + lpcs : LPCREATESTRUCT; + hwndInsertAfter : HWND; + end; + tagCBT_CREATEWND = CBT_CREATEWND; + TCBT_CREATEWND = CBT_CREATEWND; + PCBT_CREATEWND = ^CBT_CREATEWND; + + CBTACTIVATESTRUCT = record + fMouse : WINBOOL; + hWndActive : HWND; + end; + tagCBTACTIVATESTRUCT = CBTACTIVATESTRUCT; + TCBTACTIVATESTRUCT = CBTACTIVATESTRUCT; + PCBTACTIVATESTRUCT = ^CBTACTIVATESTRUCT; + + + CHAR_INFO = record + case longint of + 0 : ( UnicodeChar : WCHAR; + Attributes : Word); + 1 : ( AsciiChar : CHAR ); + end; + _CHAR_INFO = CHAR_INFO; + TCHAR_INFO = CHAR_INFO; + PCHAR_INFO = ^CHAR_INFO; + + CHARFORMAT = record + cbSize : UINT; + dwMask : DWORD; + dwEffects : DWORD; + yHeight : LONG; + yOffset : LONG; + crTextColor : COLORREF; + bCharSet : BYTE; + bPitchAndFamily : BYTE; + szFaceName : array[0..(LF_FACESIZE)-1] of TCHAR; + end; + _charformat = CHARFORMAT; + Tcharformat = CHARFORMAT; + Pcharformat = ^CHARFORMAT; + + CHARRANGE = record + cpMin : LONG; + cpMax : LONG; + end; + _charrange = CHARRANGE; + Tcharrange = CHARRANGE; + Pcharrange = ^CHARRANGE; + + CHARSET = record + aflBlock : array[0..2] of DWORD; + flLang : DWORD; + end; + tagCHARSET = CHARSET; + TCHARSET = CHARSET; + PCHARSET = ^CHARSET; + + FONTSIGNATURE = record + fsUsb : array[0..3] of DWORD; + fsCsb : array[0..1] of DWORD; + end; + LPFONTSIGNATURE = ^FONTSIGNATURE; + tagFONTSIGNATURE = FONTSIGNATURE; + TFONTSIGNATURE = FONTSIGNATURE; + PFONTSIGNATURE = ^FONTSIGNATURE; + + FLOAT128 = record //+winnt + LowPart : int64; + HighPart : int64; + end; + PFLOAT128 = ^FLOAT128; + + CHARSETINFO = record + ciCharset : UINT; + ciACP : UINT; + fs : FONTSIGNATURE; + end; + LPCHARSETINFO = ^CHARSETINFO; + TCHARSETINFO = CHARSETINFO; + PCHARSETINFO = ^CHARSETINFO; + + {CHOOSECOLOR = record confilcts with function ChooseColor } + TCHOOSECOLOR = record + lStructSize : DWORD; + hwndOwner : HWND; + hInstance : HWND; + rgbResult : COLORREF; + lpCustColors : ^COLORREF; + Flags : DWORD; + lCustData : LPARAM; + lpfnHook : LPCCHOOKPROC; + lpTemplateName : LPCTSTR; + end; + LPCHOOSECOLOR = ^TCHOOSECOLOR; + PCHOOSECOLOR = ^TCHOOSECOLOR; + + LOGFONTA = record + lfHeight : LONG; + lfWidth : LONG; + lfEscapement : LONG; + lfOrientation : LONG; + lfWeight : LONG; + lfItalic : BYTE; + lfUnderline : BYTE; + lfStrikeOut : BYTE; + lfCharSet : BYTE; + lfOutPrecision : BYTE; + lfClipPrecision : BYTE; + lfQuality : BYTE; + lfPitchAndFamily : BYTE; + lfFaceName : array[0..(LF_FACESIZE)-1] of TCHAR; + end; + TLOGFONTA = LOGFONTA; + tagLOGFONTA = LOGFONTA; + NPLOGFONTA = ^LOGFONTA; + PLOGFONTA = ^LOGFONTA; + + LOGFONTW = record + lfHeight: LONG; + lfWidth: LONG; + lfEscapement: LONG; + lfOrientation: LONG; + lfWeight: LONG; + lfItalic: BYTE; + lfUnderline: BYTE; + lfStrikeOut: BYTE; + lfCharSet: BYTE; + lfOutPrecision: BYTE; + lfClipPrecision: BYTE; + lfQuality: BYTE; + lfPitchAndFamily: BYTE; + lfFaceName: array [0..LF_FACESIZE - 1] of WCHAR; + end; + LPLOGFONTW = ^LOGFONTW; + NPLOGFONTW = ^LOGFONTW; + tagLOGFONTW = LOGFONTW; + TLogFontW = LOGFONTW; + PLogFontW = ^TLogFontW; + + TLOGFONT = LOGFONTW; + LOGFONT = LOGFONTW; + tagLOGFONT = LOGFONTW; + LPLOGFONT = ^LOGFONTW; + PLOGFONT = ^LOGFONTW; + NPLOGFONT = ^LOGFONTW; + + TCHOOSEFONTW = record //+commdlg + lStructSize : DWORD; + hwndOwner : HWND; + hDC : HDC; + lpLogFont : LPLOGFONTW; + iPointSize : Integer; + Flags : DWORD; + rgbColors : DWORD; + lCustData : LPARAM; + lpfnHook : LPCFHOOKPROC; + lpTemplateName : LPCWSTR; + hInstance : HINST; + lpszStyle : LPTSTR; + nFontType : WORD; + ___MISSING_ALIGNMENT__ : WORD; + nSizeMin : Integer; + nSizeMax : Integer; + end; + tagCHOOSEFONTW = TCHOOSEFONTW; //+commdlg + LPCHOOSEFONTW = ^TCHOOSEFONTW; //+commdlg + PCHOOSEFONTW = ^TCHOOSEFONTW; //+commdlg + + {CHOOSEFONT = record conflicts with ChooseFont function } + TCHOOSEFONT = record + lStructSize : DWORD; + hwndOwner : HWND; + hDC : HDC; + lpLogFont : LPLOGFONT; + iPointSize : WINT; + Flags : DWORD; + rgbColors : DWORD; + lCustData : LPARAM; + lpfnHook : LPCFHOOKPROC; + lpTemplateName : LPCTSTR; + hInstance : HINST; + lpszStyle : LPTSTR; + nFontType : WORD; + ___MISSING_ALIGNMENT__ : WORD; + nSizeMin : WINT; + nSizeMax : WINT; + end; + LPCHOOSEFONT = ^TCHOOSEFONT; + PCHOOSEFONT = ^TCHOOSEFONT; + + CIDA = record + cidl : UINT; + aoffset : array[0..0] of UINT; + end; + LPIDA = ^CIDA; + _IDA = CIDA; + TIDA = CIDA; + PIDA = ^CIDA; + + CLIENTCREATESTRUCT = record + hWindowMenu : HANDLE; + idFirstChild : UINT; + end; + LPCLIENTCREATESTRUCT = ^CLIENTCREATESTRUCT; + tagCLIENTCREATESTRUCT = CLIENTCREATESTRUCT; + TCLIENTCREATESTRUCT = CLIENTCREATESTRUCT; + PCLIENTCREATESTRUCT = ^CLIENTCREATESTRUCT; + + CMINVOKECOMMANDINFO = record + cbSize : DWORD; + fMask : DWORD; + hwnd : HWND; + lpVerb : LPCSTR; + lpParameters : LPCSTR; + lpDirectory : LPCSTR; + nShow : longint; + dwHotKey : DWORD; + hIcon : HANDLE; + end; + LPCMINVOKECOMMANDINFO = ^CMINVOKECOMMANDINFO; + _CMInvokeCommandInfo = CMINVOKECOMMANDINFO; + TCMInvokeCommandInfo = CMINVOKECOMMANDINFO; + PCMInvokeCommandInfo = ^CMINVOKECOMMANDINFO; + + COLORADJUSTMENT = record + caSize : WORD; + caFlags : WORD; + caIlluminantIndex : WORD; + caRedGamma : WORD; + caGreenGamma : WORD; + caBlueGamma : WORD; + caReferenceBlack : WORD; + caReferenceWhite : WORD; + caContrast : SHORT; + caBrightness : SHORT; + caColorfulness : SHORT; + caRedGreenTint : SHORT; + end; + LPCOLORADJUSTMENT = ^COLORADJUSTMENT; + tagCOLORADJUSTMENT = COLORADJUSTMENT; + TCOLORADJUSTMENT = COLORADJUSTMENT; + PCOLORADJUSTMENT = ^COLORADJUSTMENT; + + COLORMAP = record + from : COLORREF; + _to : COLORREF; + end; + LPCOLORMAP = ^COLORMAP; + _COLORMAP = COLORMAP; + TCOLORMAP = COLORMAP; + PCOLORMAP = ^COLORMAP; + + DCB = record + DCBlength : DWORD; + BaudRate : DWORD; + flags : DWORD; + wReserved : WORD; + XonLim : WORD; + XoffLim : WORD; + ByteSize : BYTE; + Parity : BYTE; + StopBits : BYTE; + XonChar : char; + XoffChar : char; + ErrorChar : char; + EofChar : char; + EvtChar : char; + wReserved1 : WORD; + end; + LPDCB = ^DCB; + _DCB = DCB; + TDCB = DCB; + PDCB = ^DCB; + + const + bm_DCB_fBinary = $1; + bp_DCB_fBinary = 0; + bm_DCB_fParity = $2; + bp_DCB_fParity = 1; + bm_DCB_fOutxCtsFlow = $4; + bp_DCB_fOutxCtsFlow = 2; + bm_DCB_fOutxDsrFlow = $8; + bp_DCB_fOutxDsrFlow = 3; + bm_DCB_fDtrControl = $30; + bp_DCB_fDtrControl = 4; + bm_DCB_fDsrSensitivity = $40; + bp_DCB_fDsrSensitivity = 6; + bm_DCB_fTXContinueOnXoff = $80; + bp_DCB_fTXContinueOnXoff = 7; + bm_DCB_fOutX = $100; + bp_DCB_fOutX = 8; + bm_DCB_fInX = $200; + bp_DCB_fInX = 9; + bm_DCB_fErrorChar = $400; + bp_DCB_fErrorChar = 10; + bm_DCB_fNull = $800; + bp_DCB_fNull = 11; + bm_DCB_fRtsControl = $3000; + bp_DCB_fRtsControl = 12; + bm_DCB_fAbortOnError = $4000; + bp_DCB_fAbortOnError = 14; + bm_DCB_fDummy2 = $FFFF8000; + bp_DCB_fDummy2 = 15; + function fBinary(var a : DCB) : DWORD; + procedure set_fBinary(var a : DCB; __fBinary : DWORD); + function fParity(var a : DCB) : DWORD; + procedure set_fParity(var a : DCB; __fParity : DWORD); + function fOutxCtsFlow(var a : DCB) : DWORD; + procedure set_fOutxCtsFlow(var a : DCB; __fOutxCtsFlow : DWORD); + function fOutxDsrFlow(var a : DCB) : DWORD; + procedure set_fOutxDsrFlow(var a : DCB; __fOutxDsrFlow : DWORD); + function fDtrControl(var a : DCB) : DWORD; + procedure set_fDtrControl(var a : DCB; __fDtrControl : DWORD); + function fDsrSensitivity(var a : DCB) : DWORD; + procedure set_fDsrSensitivity(var a : DCB; __fDsrSensitivity : DWORD); + function fTXContinueOnXoff(var a : DCB) : DWORD; + procedure set_fTXContinueOnXoff(var a : DCB; __fTXContinueOnXoff : DWORD); + function fOutX(var a : DCB) : DWORD; + procedure set_fOutX(var a : DCB; __fOutX : DWORD); + function fInX(var a : DCB) : DWORD; + procedure set_fInX(var a : DCB; __fInX : DWORD); + function fErrorChar(var a : DCB) : DWORD; + procedure set_fErrorChar(var a : DCB; __fErrorChar : DWORD); + function fNull(var a : DCB) : DWORD; + procedure set_fNull(var a : DCB; __fNull : DWORD); + function fRtsControl(var a : DCB) : DWORD; + procedure set_fRtsControl(var a : DCB; __fRtsControl : DWORD); + function fAbortOnError(var a : DCB) : DWORD; + procedure set_fAbortOnError(var a : DCB; __fAbortOnError : DWORD); + function fDummy2(var a : DCB) : DWORD; + procedure set_fDummy2(var a : DCB; __fDummy2 : DWORD); + + type + + tagINITCOMMONCONTROLSEX = record + dwSize:DWORD; // size of this structure + dwICC:DWORD; // flags indicating which classes to be initialized + end; + TINITCOMMONCONTROLSEX=tagINITCOMMONCONTROLSEX; + LPINITCOMMONCONTROLSEX=^tagINITCOMMONCONTROLSEX; + + COMMCONFIG = record + dwSize : DWORD; + wVersion : WORD; + wReserved : WORD; + dcb : DCB; + dwProviderSubType : DWORD; + dwProviderOffset : DWORD; + dwProviderSize : DWORD; + wcProviderData : array[0..0] of WCHAR; + end; + LPCOMMCONFIG = ^COMMCONFIG; + _COMM_CONFIG = COMMCONFIG; + TCOMMCONFIG = COMMCONFIG; + PCOMMCONFIG = ^COMMCONFIG; + + COMMPROP = record + wPacketLength : WORD; + wPacketVersion : WORD; + dwServiceMask : DWORD; + dwReserved1 : DWORD; + dwMaxTxQueue : DWORD; + dwMaxRxQueue : DWORD; + dwMaxBaud : DWORD; + dwProvSubType : DWORD; + dwProvCapabilities : DWORD; + dwSettableParams : DWORD; + dwSettableBaud : DWORD; + wSettableData : WORD; + wSettableStopParity : WORD; + dwCurrentTxQueue : DWORD; + dwCurrentRxQueue : DWORD; + dwProvSpec1 : DWORD; + dwProvSpec2 : DWORD; + wcProvChar : array[0..0] of WCHAR; + end; + LPCOMMPROP = ^COMMPROP; + _COMMPROP = COMMPROP; + TCOMMPROP = COMMPROP; + PCOMMPROP = ^COMMPROP; + + COMMTIMEOUTS = record + ReadIntervalTimeout : DWORD; + ReadTotalTimeoutMultiplier : DWORD; + ReadTotalTimeoutConstant : DWORD; + WriteTotalTimeoutMultiplier : DWORD; + WriteTotalTimeoutConstant : DWORD; + end; + LPCOMMTIMEOUTS = ^COMMTIMEOUTS; + _COMMTIMEOUTS = COMMTIMEOUTS; + TCOMMTIMEOUTS = COMMTIMEOUTS; + PCOMMTIMEOUTS = ^COMMTIMEOUTS; + + COMPAREITEMSTRUCT = record + CtlType : UINT; + CtlID : UINT; + hwndItem : HWND; + itemID1 : UINT; + itemData1 : DWORD; + itemID2 : UINT; + itemData2 : DWORD; + end; + tagCOMPAREITEMSTRUCT = COMPAREITEMSTRUCT; + TCOMPAREITEMSTRUCT = COMPAREITEMSTRUCT; + PCOMPAREITEMSTRUCT = ^COMPAREITEMSTRUCT; + + COMPCOLOR = record + crText : COLORREF; + crBackground : COLORREF; + dwEffects : DWORD; + end; + TCOMPCOLOR = COMPCOLOR; + PCOMPCOLOR = ^COMPCOLOR; + + COMPOSITIONFORM = record + dwStyle : DWORD; + ptCurrentPos : POINT; + rcArea : RECT; + end; + LPCOMPOSITIONFORM = ^COMPOSITIONFORM; + _tagCOMPOSITIONFORM = COMPOSITIONFORM; + TCOMPOSITIONFORM = COMPOSITIONFORM; + PCOMPOSITIONFORM = ^COMPOSITIONFORM; + +// TComStatFlags = set of (fCtsHold, fDsrHold, fRlsdHold , fXoffHold , +// fXoffSent , fEof , fTxim , fReserved); + + COMSTAT = record + flag0 : DWORD; // can't use tcomstatflags, set packing issues + // and conflicts with macro's + cbInQue : DWORD; + cbOutQue : DWORD; + end; + LPCOMSTAT = ^COMSTAT; + _COMSTAT = COMSTAT; + TCOMSTAT = COMSTAT; + PCOMSTAT = ^COMSTAT; + const + bm_COMSTAT_fCtsHold = $1; + bp_COMSTAT_fCtsHold = 0; + bm_COMSTAT_fDsrHold = $2; + bp_COMSTAT_fDsrHold = 1; + bm_COMSTAT_fRlsdHold = $4; + bp_COMSTAT_fRlsdHold = 2; + bm_COMSTAT_fXoffHold = $8; + bp_COMSTAT_fXoffHold = 3; + bm_COMSTAT_fXoffSent = $10; + bp_COMSTAT_fXoffSent = 4; + bm_COMSTAT_fEof = $20; + bp_COMSTAT_fEof = 5; + bm_COMSTAT_fTxim = $40; + bp_COMSTAT_fTxim = 6; + bm_COMSTAT_fReserved = $FFFFFF80; + bp_COMSTAT_fReserved = 7; + function fCtsHold(var a : COMSTAT) : DWORD; // should be renamed to get_? + procedure set_fCtsHold(var a : COMSTAT; __fCtsHold : DWORD); + function fDsrHold(var a : COMSTAT) : DWORD; + procedure set_fDsrHold(var a : COMSTAT; __fDsrHold : DWORD); + function fRlsdHold(var a : COMSTAT) : DWORD; + procedure set_fRlsdHold(var a : COMSTAT; __fRlsdHold : DWORD); + function fXoffHold(var a : COMSTAT) : DWORD; + procedure set_fXoffHold(var a : COMSTAT; __fXoffHold : DWORD); + function fXoffSent(var a : COMSTAT) : DWORD; + procedure set_fXoffSent(var a : COMSTAT; __fXoffSent : DWORD); + function fEof(var a : COMSTAT) : DWORD; + procedure set_fEof(var a : COMSTAT; __fEof : DWORD); + function fTxim(var a : COMSTAT) : DWORD; + procedure set_fTxim(var a : COMSTAT; __fTxim : DWORD); + function fReserved(var a : COMSTAT) : DWORD; + procedure set_fReserved(var a : COMSTAT; __fReserved : DWORD); + + type + + CONSOLE_CURSOR_INFO = record + dwSize : DWORD; + bVisible : WINBOOL; + end; + PCONSOLE_CURSOR_INFO = ^CONSOLE_CURSOR_INFO; + _CONSOLE_CURSOR_INFO = CONSOLE_CURSOR_INFO; + TCONSOLECURSORINFO = CONSOLE_CURSOR_INFO; + PCONSOLECURSORINFO = ^CONSOLE_CURSOR_INFO; + TCURSORINFO = CONSOLE_CURSOR_INFO; + + COORD = record + X : SHORT; + Y : SHORT; + end; + _COORD = COORD; + TCOORD = COORD; + PCOORD = ^COORD; + + SMALL_RECT = record + Left : SHORT; + Top : SHORT; + Right : SHORT; + Bottom : SHORT; + end; + _SMALL_RECT = SMALL_RECT; + TSMALL_RECT = SMALL_RECT; + PSMALL_RECT = ^SMALL_RECT; + + CONSOLE_SCREEN_BUFFER_INFO = packed record + dwSize : COORD; + dwCursorPosition : COORD; + wAttributes : WORD; + srWindow : SMALL_RECT; + dwMaximumWindowSize : COORD; + end; + PCONSOLE_SCREEN_BUFFER_INFO = ^CONSOLE_SCREEN_BUFFER_INFO; + _CONSOLE_SCREEN_BUFFER_INFO = CONSOLE_SCREEN_BUFFER_INFO; + TCONSOLESCREENBUFFERINFO = CONSOLE_SCREEN_BUFFER_INFO; + PCONSOLESCREENBUFFERINFO = ^CONSOLE_SCREEN_BUFFER_INFO; + +{$ifdef i386} //+winnt + type + FLOATING_SAVE_AREA = record //~winnt + ControlWord : DWORD; + StatusWord : DWORD; + TagWord : DWORD; + ErrorOffset : DWORD; + ErrorSelector : DWORD; + DataOffset : DWORD; + DataSelector : DWORD; + RegisterArea : array[0..SIZE_OF_80387_REGISTERS-1] of BYTE; //~winnt + Cr0NpxState : DWORD; + end; + _FLOATING_SAVE_AREA = FLOATING_SAVE_AREA; //winnt + TFLOATINGSAVEAREA = FLOATING_SAVE_AREA; //winnt + PFLOATING_SAVE_AREA = ^FLOATING_SAVE_AREA; //~winnt + +// +// Context Frame +// +// This frame has a several purposes: 1) it is used as an argument to +// NtContinue, 2) is is used to constuct a call frame for APC delivery, +// and 3) it is used in the user level thread creation routines. +// +// The layout of the record conforms to a standard call frame. +// + + CONTEXT = record //winnt + ContextFlags : DWORD; + Dr0 : DWORD; + Dr1 : DWORD; + Dr2 : DWORD; + Dr3 : DWORD; + Dr6 : DWORD; + Dr7 : DWORD; + FloatSave : FLOATING_SAVE_AREA; + SegGs : DWORD; + SegFs : DWORD; + SegEs : DWORD; + SegDs : DWORD; + Edi : DWORD; + Esi : DWORD; + Ebx : DWORD; + Edx : DWORD; + Ecx : DWORD; + Eax : DWORD; + Ebp : DWORD; + Eip : DWORD; + SegCs : DWORD; + EFlags : DWORD; + Esp : DWORD; + SegSs : DWORD; + end; + + LDT_ENTRY = record //~winnt, moved into _X86_ + LimitLow : WORD; + BaseLow : WORD; + HighWord : record + case longint of + 0 : ( Bytes : record + BaseMid : BYTE; + Flags1 : BYTE; + Flags2 : BYTE; + BaseHi : BYTE; + end ); + 1 : ( Bits : record + flag0 : longint; + end ); + end; + end; + LPLDT_ENTRY = ^LDT_ENTRY; + PLDT_ENTRY = ^LDT_ENTRY; + _LDT_ENTRY = LDT_ENTRY; + TLDTENTRY = LDT_ENTRY; + PLDTENTRY = ^LDT_ENTRY; + +{$endif i386} //+winnt + +{$ifdef _MIPS_} //+winnt all block added +// +// Context Frame +// +// N.B. This frame must be exactly a multiple of 16 bytes in length. +// +// This frame has a several purposes: 1) it is used as an argument to +// NtContinue, 2) it is used to constuct a call frame for APC delivery, +// 3) it is used to construct a call frame for exception dispatching +// in user mode, and 4) it is used in the user level thread creation +// routines. +// +// The layout of the record conforms to a standard call frame. +// + type + {$ifdef _MIPS64} //+winnt + FREG_TYPE = ULONGLONG; + REG_TYPE = ULONGLONG; + {$else} + FREG_TYPE = DWORD; + REG_TYPE = ULONG; + {$endif _MIPS64} + CONTEXT = record //+winnt + Argument : Array[0..3] of REG_TYPE; + FltF0 : FREG_TYPE; + FltF1 : FREG_TYPE; + FltF2 : FREG_TYPE; + FltF3 : FREG_TYPE; + FltF4 : FREG_TYPE; + FltF5 : FREG_TYPE; + FltF6 : FREG_TYPE; + FltF7 : FREG_TYPE; + FltF8 : FREG_TYPE; + FltF9 : FREG_TYPE; + FltF10 : FREG_TYPE; + FltF11 : FREG_TYPE; + FltF12 : FREG_TYPE; + FltF13 : FREG_TYPE; + FltF14 : FREG_TYPE; + FltF15 : FREG_TYPE; + FltF16 : FREG_TYPE; + FltF17 : FREG_TYPE; + FltF18 : FREG_TYPE; + FltF19 : FREG_TYPE; + FltF20 : FREG_TYPE; + FltF21 : FREG_TYPE; + FltF22 : FREG_TYPE; + FltF23 : FREG_TYPE; + FltF24 : FREG_TYPE; + FltF25 : FREG_TYPE; + FltF26 : FREG_TYPE; + FltF27 : FREG_TYPE; + FltF28 : FREG_TYPE; + FltF29 : FREG_TYPE; + FltF30 : FREG_TYPE; + FltF31 : FREG_TYPE; + + IntZero : REG_TYPE; + IntAt : REG_TYPE; + IntV0 : REG_TYPE; + IntV1 : REG_TYPE; + IntA0 : REG_TYPE; + IntA1 : REG_TYPE; + IntA2 : REG_TYPE; + IntA3 : REG_TYPE; + IntT0 : REG_TYPE; + IntT1 : REG_TYPE; + IntT2 : REG_TYPE; + IntT3 : REG_TYPE; + IntT4 : REG_TYPE; + IntT5 : REG_TYPE; + IntT6 : REG_TYPE; + IntT7 : REG_TYPE; + IntS0 : REG_TYPE; + IntS1 : REG_TYPE; + IntS2 : REG_TYPE; + IntS3 : REG_TYPE; + IntS4 : REG_TYPE; + IntS5 : REG_TYPE; + IntS6 : REG_TYPE; + IntS7 : REG_TYPE; + IntT8 : REG_TYPE; + IntT9 : REG_TYPE; + IntK0 : REG_TYPE; + IntK1 : REG_TYPE; + IntGp : REG_TYPE; + IntSp : REG_TYPE; + IntS8 : REG_TYPE; + IntRa : REG_TYPE; + IntLo : REG_TYPE; + IntHi : REG_TYPE; + + Fsr : DWORD; + Fir : DWORD; + Psr : DWORD; + ContextFlags : DWORD; + Fill : Array[0..1] of DWORD; + end; + +{$endif _MIPS_} //+winnt + +{$ifdef _PPC_} //+winnt + { Floating point registers returned when CONTEXT_FLOATING_POINT is set } + { Integer registers returned when CONTEXT_INTEGER is set. } + { Condition register } + { Fixed point exception register } + { The following are set when CONTEXT_CONTROL is set. } + { Machine status register } + { Instruction address register } + { Link register } + { Control register } + { Control which context values are returned } + { Registers returned if CONTEXT_DEBUG_REGISTERS is set. } + { Breakpoint Register 1 } + { Breakpoint Register 2 } + { Breakpoint Register 3 } + { Breakpoint Register 4 } + { Breakpoint Register 5 } + { Breakpoint Register 6 } + { Debug Status Register } + { Debug Control Register } + + type + + CONTEXT = record + Fpr0 : double; + Fpr1 : double; + Fpr2 : double; + Fpr3 : double; + Fpr4 : double; + Fpr5 : double; + Fpr6 : double; + Fpr7 : double; + Fpr8 : double; + Fpr9 : double; + Fpr10 : double; + Fpr11 : double; + Fpr12 : double; + Fpr13 : double; + Fpr14 : double; + Fpr15 : double; + Fpr16 : double; + Fpr17 : double; + Fpr18 : double; + Fpr19 : double; + Fpr20 : double; + Fpr21 : double; + Fpr22 : double; + Fpr23 : double; + Fpr24 : double; + Fpr25 : double; + Fpr26 : double; + Fpr27 : double; + Fpr28 : double; + Fpr29 : double; + Fpr30 : double; + Fpr31 : double; + Fpscr : double; + Gpr0 : DWORD; + Gpr1 : DWORD; + Gpr2 : DWORD; + Gpr3 : DWORD; + Gpr4 : DWORD; + Gpr5 : DWORD; + Gpr6 : DWORD; + Gpr7 : DWORD; + Gpr8 : DWORD; + Gpr9 : DWORD; + Gpr10 : DWORD; + Gpr11 : DWORD; + Gpr12 : DWORD; + Gpr13 : DWORD; + Gpr14 : DWORD; + Gpr15 : DWORD; + Gpr16 : DWORD; + Gpr17 : DWORD; + Gpr18 : DWORD; + Gpr19 : DWORD; + Gpr20 : DWORD; + Gpr21 : DWORD; + Gpr22 : DWORD; + Gpr23 : DWORD; + Gpr24 : DWORD; + Gpr25 : DWORD; + Gpr26 : DWORD; + Gpr27 : DWORD; + Gpr28 : DWORD; + Gpr29 : DWORD; + Gpr30 : DWORD; + Gpr31 : DWORD; + Cr : DWORD; + Xer : DWORD; + Msr : DWORD; + Iar : DWORD; + Lr : DWORD; + Ctr : DWORD; + ContextFlags : DWORD; + Fill : array[0..2] of DWORD; + Dr0 : DWORD; + Dr1 : DWORD; + Dr2 : DWORD; + Dr3 : DWORD; + Dr4 : DWORD; + Dr5 : DWORD; + Dr6 : DWORD; + Dr7 : DWORD; + end; + _STACK_FRAME_HEADER = record // GPR 1 points here + BackChain : DWORD; // Addr of previous frame + Reserved1 : DWORD; // Reserved + + Parameter0 : DWORD; // First 8 parameter words are + Parameter1 : DWORD; // always present + Parameter2 : DWORD; + Parameter3 : DWORD; + Parameter4 : DWORD; + Parameter5 : DWORD; + Parameter6 : DWORD; + Parameter7 : DWORD; + end; + + PSTACK_FRAME_HEADER=^STACK_FRAME_HEADER; + {$endif _PPC_} //~winnt + + {$ifdef _MPPC_} //+winnt all block + type + CONTEXT = record + Fpr0 : double; + Fpr1 : double; + Fpr2 : double; + Fpr3 : double; + Fpr4 : double; + Fpr5 : double; + Fpr6 : double; + Fpr7 : double; + Fpr8 : double; + Fpr9 : double; + Fpr10 : double; + Fpr11 : double; + Fpr12 : double; + Fpr13 : double; + Fpr14 : double; + Fpr15 : double; + Fpr16 : double; + Fpr17 : double; + Fpr18 : double; + Fpr19 : double; + Fpr20 : double; + Fpr21 : double; + Fpr22 : double; + Fpr23 : double; + Fpr24 : double; + Fpr25 : double; + Fpr26 : double; + Fpr27 : double; + Fpr28 : double; + Fpr29 : double; + Fpr30 : double; + Fpr31 : double; + Fpscr : double; + Gpr0 : DWORD; + Gpr1 : DWORD; + Gpr2 : DWORD; + Gpr3 : DWORD; + Gpr4 : DWORD; + Gpr5 : DWORD; + Gpr6 : DWORD; + Gpr7 : DWORD; + Gpr8 : DWORD; + Gpr9 : DWORD; + Gpr10 : DWORD; + Gpr11 : DWORD; + Gpr12 : DWORD; + Gpr13 : DWORD; + Gpr14 : DWORD; + Gpr15 : DWORD; + Gpr16 : DWORD; + Gpr17 : DWORD; + Gpr18 : DWORD; + Gpr19 : DWORD; + Gpr20 : DWORD; + Gpr21 : DWORD; + Gpr22 : DWORD; + Gpr23 : DWORD; + Gpr24 : DWORD; + Gpr25 : DWORD; + Gpr26 : DWORD; + Gpr27 : DWORD; + Gpr28 : DWORD; + Gpr29 : DWORD; + Gpr30 : DWORD; + Gpr31 : DWORD; + Cr : DWORD; + Xer : DWORD; + Msr : DWORD; + Iar : DWORD; + Lr : DWORD; + Ctr : DWORD; + ContextFlags : DWORD; + Fill : array[0..2] of DWORD; + Dr0 : DWORD; + Dr1 : DWORD; + Dr2 : DWORD; + Dr3 : DWORD; + Dr4 : DWORD; + Dr5 : DWORD; + Dr6 : DWORD; + Dr7 : DWORD; + end; + _STACK_FRAME_HEADER = record // GPR 1 points here + BackChain : DWORD; // Addr of previous frame + GlueSaved1 : DWORD; // Used by glue code + GlueSaved2 : DWORD; + Reserved1 : DWORD; + Spare1 : DWORD; + Spare2 : DWORD; + + Parameter0 : DWORD; // First 8 parameter words are + Parameter1 : DWORD; // always present + Parameter2 : DWORD; + Parameter3 : DWORD; + Parameter4 : DWORD; + Parameter5 : DWORD; + Parameter6 : DWORD; + Parameter7 : DWORD; + end; + + PSTACK_FRAME_HEADER=^STACK_FRAME_HEADER; + + {$endif _MPPC_} //+winnt + + {$ifdef _IA64_} //+winnt all block + type + CONTEXT = record + + ContextFlags : DWORD; + Fill1 : array[0..2] of DWORD; + DbI0 : ULONGLONG; // Instruction debug registers + DbI1 : ULONGLONG; + DbI2 : ULONGLONG; + DbI3 : ULONGLONG; + DbI4 : ULONGLONG; + DbI5 : ULONGLONG; + DbI6 : ULONGLONG; + DbI7 : ULONGLONG; + + DbD0 : ULONGLONG; // Data debug registers + DbD1 : ULONGLONG; + DbD2 : ULONGLONG; + DbD3 : ULONGLONG; + DbD4 : ULONGLONG; + DbD5 : ULONGLONG; + DbD6 : ULONGLONG; + DbD7 : ULONGLONG; + + FltS0 : FLOAT128; // Lower floating point (f2-f5) - saved (preserved) + FltS1 : FLOAT128; + FltS2 : FLOAT128; + FltS3 : FLOAT128; + FltT0 : FLOAT128; // Lower floating point (f6-f15) - temporary (volatile) + FltT1 : FLOAT128; + FltT2 : FLOAT128; + FltT3 : FLOAT128; + FltT4 : FLOAT128; + FltT5 : FLOAT128; + FltT6 : FLOAT128; + FltT7 : FLOAT128; + FltT8 : FLOAT128; + FltT9 : FLOAT128; + FltS4 : FLOAT128; // Higher floating point (f16-f31) - saved (preserved) + FltS5 : FLOAT128; + FltS6 : FLOAT128; + FltS7 : FLOAT128; + FltS8 : FLOAT128; + FltS9 : FLOAT128; + FltS10 : FLOAT128; + FltS11 : FLOAT128; + FltS12 : FLOAT128; + FltS13 : FLOAT128; + FltS14 : FLOAT128; + FltS15 : FLOAT128; + FltS16 : FLOAT128; + FltS17 : FLOAT128; + FltS18 : FLOAT128; + FltS19 : FLOAT128; + + FltF32 : FLOAT128; // Higher floating point (f32-f127) - temporary (volatile) + FltF33 : FLOAT128; + FltF34 : FLOAT128; + FltF35 : FLOAT128; + FltF36 : FLOAT128; + FltF37 : FLOAT128; + FltF38 : FLOAT128; + FltF39 : FLOAT128; + + FltF40 : FLOAT128; + FltF41 : FLOAT128; + FltF42 : FLOAT128; + FltF43 : FLOAT128; + FltF44 : FLOAT128; + FltF45 : FLOAT128; + FltF46 : FLOAT128; + FltF47 : FLOAT128; + FltF48 : FLOAT128; + FltF49 : FLOAT128; + + FltF50 : FLOAT128; + FltF51 : FLOAT128; + FltF52 : FLOAT128; + FltF53 : FLOAT128; + FltF54 : FLOAT128; + FltF55 : FLOAT128; + FltF56 : FLOAT128; + FltF57 : FLOAT128; + FltF58 : FLOAT128; + FltF59 : FLOAT128; + + FltF60 : FLOAT128; + FltF61 : FLOAT128; + FltF62 : FLOAT128; + FltF63 : FLOAT128; + FltF64 : FLOAT128; + FltF65 : FLOAT128; + FltF66 : FLOAT128; + FltF67 : FLOAT128; + FltF68 : FLOAT128; + FltF69 : FLOAT128; + + FltF70 : FLOAT128; + FltF71 : FLOAT128; + FltF72 : FLOAT128; + FltF73 : FLOAT128; + FltF74 : FLOAT128; + FltF75 : FLOAT128; + FltF76 : FLOAT128; + FltF77 : FLOAT128; + FltF78 : FLOAT128; + FltF79 : FLOAT128; + + FltF80 : FLOAT128; + FltF81 : FLOAT128; + FltF82 : FLOAT128; + FltF83 : FLOAT128; + FltF84 : FLOAT128; + FltF85 : FLOAT128; + FltF86 : FLOAT128; + FltF87 : FLOAT128; + FltF88 : FLOAT128; + FltF89 : FLOAT128; + + FltF90 : FLOAT128; + FltF91 : FLOAT128; + FltF92 : FLOAT128; + FltF93 : FLOAT128; + FltF94 : FLOAT128; + FltF95 : FLOAT128; + FltF96 : FLOAT128; + FltF97 : FLOAT128; + FltF98 : FLOAT128; + FltF99 : FLOAT128; + + FltF100 : FLOAT128; + FltF101 : FLOAT128; + FltF102 : FLOAT128; + FltF103 : FLOAT128; + FltF104 : FLOAT128; + FltF105 : FLOAT128; + FltF106 : FLOAT128; + FltF107 : FLOAT128; + FltF108 : FLOAT128; + FltF109 : FLOAT128; + + FltF110 : FLOAT128; + FltF111 : FLOAT128; + FltF112 : FLOAT128; + FltF113 : FLOAT128; + FltF114 : FLOAT128; + FltF115 : FLOAT128; + FltF116 : FLOAT128; + FltF117 : FLOAT128; + FltF118 : FLOAT128; + FltF119 : FLOAT128; + + FltF120 : FLOAT128; + FltF121 : FLOAT128; + FltF122 : FLOAT128; + FltF123 : FLOAT128; + FltF124 : FLOAT128; + FltF125 : FLOAT128; + FltF126 : FLOAT128; + FltF127 : FLOAT128; + + StFPSR : ULONGLONG; // FP status + StFSR : ULONGLONG; // x86 FP status (a copy of AR28) + StFIR : ULONGLONG; // x86 FP status (a copy of AR29) + StFDR : ULONGLONG; // x86 FP status (a copy of AR30) + + IntGp : ULONGLONG; // global pointer (r1) - temporary (volatile) + IntT0 : ULONGLONG; // integer registers (r2-r3) - temporary (volatile) + IntT1 : ULONGLONG; + IntS0 : ULONGLONG; // integer registers (r4-r7) - saved (preserved) + IntS1 : ULONGLONG; + IntS2 : ULONGLONG; + IntS3 : ULONGLONG; + IntV0 : ULONGLONG; // return value (r8) - temporary (volatile) + IntT2 : ULONGLONG; // integer registers (r9-r11) - temporary (volatile) + IntT3 : ULONGLONG; + IntT4 : ULONGLONG; + IntSP : ULONGLONG; // stack pointer (r12) - special + IntTeb : ULONGLONG; // teb (r13) - special + IntT5 : ULONGLONG; // integer registers (r14-r31) - temporary (volatile) + IntT6 : ULONGLONG; + IntT7 : ULONGLONG; + IntT8 : ULONGLONG; + IntT9 : ULONGLONG; + IntT10 : ULONGLONG; + IntT11 : ULONGLONG; + IntT12 : ULONGLONG; + IntT13 : ULONGLONG; + IntT14 : ULONGLONG; + IntT15 : ULONGLONG; + IntT16 : ULONGLONG; + IntT17 : ULONGLONG; + IntT18 : ULONGLONG; + IntT19 : ULONGLONG; + IntT20 : ULONGLONG; + IntT21 : ULONGLONG; + IntT22 : ULONGLONG; + + IntNats : ULONGLONG; // Nat bits for general registers + // r1-r31 in bit positions 1 to 31. + Preds : ULONGLONG; // predicates - saved (preserved) + BrRp : ULONGLONG; // return pointer (b0) - saved (preserved) + BrS0 : ULONGLONG; // branch registers (b1-b5) - saved (preserved) + BrS1 : ULONGLONG; + BrS2 : ULONGLONG; + BrS3 : ULONGLONG; + BrS4 : ULONGLONG; + + BrT0 : ULONGLONG; // branch registers (b6-b7) - temporary (volatile) + BrT1 : ULONGLONG; + // iA32 related Interger registers + SegCSD : ULONGLONG; // iA32 CSDescriptor (Ar25) + SegSSD : ULONGLONG; // iA32 SSDescriptor (Ar26) + + // Other application registers + ApUNAT : ULONGLONG; // User Nat collection register - saved (preserved) + ApLC : ULONGLONG; // Loop counter register - saved (preserved) + ApEC : ULONGLONG; // Epilog counter register - saved (preserved) + ApCCV : ULONGLONG; // CMPXCHG value register - temporary (volatile) + ApDCR : ULONGLONG; // Default control register (TBD) + + // Register stack info + RsPFS : ULONGLONG; // Previous function state - saved (preserved) + RsBSP : ULONGLONG; // Backing store pointer - saved (preserved) + RsBSPSTORE : ULONGLONG; // BSP Store - saved (preserved) + RsRSC : ULONGLONG; // RSE configuration - temporary (volatile) + RsRNAT : ULONGLONG; // RSE Nat collection register - saved (preserved) + // iA32 related control registers + Eflag : ULONGLONG; // Eflag copy of Ar24 + Cflag : ULONGLONG; // Cr0+Cr4 copy of Ar27 + + // Trap Status Information + StIPSR : ULONGLONG; // Interruption Processor Status + StIIP : ULONGLONG; // Interruption IP + StIFS : ULONGLONG; // Interruption Function State + + end; + + FLOATING_SAVE_AREA = record + ControlWord : DWORD; + StatusWord : DWORD; + TagWord : DWORD; + ErrorOffset : DWORD; + ErrorSelector : DWORD; + DataOffset : DWORD; + DataSelector : DWORD; + RegisterArea : array[0..SIZE_OF_80387_REGISTERS-1] of BYTE; + Cr0NpxState : DWORD; + end; + _FLOATING_SAVE_AREA = FLOATING_SAVE_AREA; + TFLOATINGSAVEAREA = FLOATING_SAVE_AREA; + PFLOATING_SAVE_AREA = ^FLOATING_SAVE_AREA; + + CONTEXT86 = record + ContextFlags : DWORD; + Dr0 : DWORD; + Dr1 : DWORD; + Dr2 : DWORD; + Dr3 : DWORD; + Dr6 : DWORD; + Dr7 : DWORD; + FloatSave : FLOATING_SAVE_AREA; + SegGs : DWORD; + SegFs : DWORD; + SegEs : DWORD; + SegDs : DWORD; + Edi : DWORD; + Esi : DWORD; + Ebx : DWORD; + Edx : DWORD; + Ecx : DWORD; + Eax : DWORD; + Ebp : DWORD; + Eip : DWORD; + SegCs : DWORD; + EFlags : DWORD; + Esp : DWORD; + SegSs : DWORD; + end; + + LDT_ENTRY = record + LimitLow : WORD; + BaseLow : WORD; + HighWord : record + case longint of + 0 : ( Bytes : record + BaseMid : BYTE; + Flags1 : BYTE; + Flags2 : BYTE; + BaseHi : BYTE; + end ); + 1 : ( Bits : record + flag0 : longint; + end ); + end; + end; + LPLDT_ENTRY = ^LDT_ENTRY; + PLDT_ENTRY = ^LDT_ENTRY; + _LDT_ENTRY = LDT_ENTRY; + TLDTENTRY = LDT_ENTRY; + PLDTENTRY = ^LDT_ENTRY; + + PLABEL_DESCRIPTOR = record + EntryPoint : ULONGLONG; + GlobalPointer : ULONGLONG; + end; + _PLABEL_DESCRIPTOR = PLABEL_DESCRIPTOR; + PPLABEL_DESCRIPTOR = ^PLABEL_DESCRIPTOR; + + + {$endif _IA64_} //+winnt + + {$ifdef SHx} //+winnt all block added + //These are the debug or break registers on the SH3 + DEBUG_REGISTERS = RECORD + BarA : ULONG; + BasrA : UCHAR; + BamrA : UCHAR; + BbrA : USHORT; + BarB : ULONG; + BasrB : UCHAR; + BamrB : UCHAR; + BbrB : USHORT; + BdrB : ULONG; + BdmrB : ULONG; + Brcr : USHORT; + Align : USHORT; + end; + _DEBUG_REGISTERS=DEBUG_REZGISTERS; + PDEBUG_REGISTERS=^DEBUG_REZGISTERS; + + CONTEXT = record + ContextFlags : ULONG; + PR : ULONG; + MACH : ULONG; + MACL : ULONG; + GBR : ULONG; + R0 : ULONG; + R1 : ULONG; + R2 : ULONG; + R3 : ULONG; + R4 : ULONG; + R5 : ULONG; + R6 : ULONG; + R7 : ULONG; + R8 : ULONG; + R9 : ULONG; + R10 : ULONG; + R11 : ULONG; + R12 : ULONG; + R13 : ULONG; + R14 : ULONG; + R15 : ULONG; + + // N.B. The registers r15 and ra are defined in the integer section, + // but are considered part of the control context rather than part of + // the integer context. + // + + Fir : ULONG; + Psr : ULONG; + + {$ifndef SH3e} + {$ifndef SH4} + OldStuff : Array[0..1] of ULONG; + DebugRegisters : DEBUG_REGISTERS; + DSR : ULONG; + MOD_ : ULONG; // MOD replaced by MOD_ + RS : ULONG; + RE : ULONG; + A0 : ULONG; + A1 : ULONG; + M0 : ULONG; + M1 : ULONG; + X0 : ULONG; + X1 : ULONG; + Y0 : ULONG; + Y1 : ULONG; + // The guard bit registers are 8 bits long, but can only be saved and + // restored using 16 or 32 bit moves. Note, the contents of the guard + // bit register are in the upper 8 bits. + A0G : USHORT; + A1G : USHORT; + {$else} + Fpscr : ULONG; + Fpul : ULONG; + FRegs : Array[0..15] of ULONG; + xFRegs : Array[0..15] of ULONG; + {$endif SH4} + {$else} + Fpscr : ULONG; + Fpul : ULONG; + FRegs : Array[0..15] of ULONG; + {$endif SH3e} + end; + + {$endif SHx} //+winnt + + {$ifdef CPUARM} //+winnt all block added + CONTEXT = record + ContextFlags : ULONG; + R0 : ULONG; + R1 : ULONG; + R2 : ULONG; + R3 : ULONG; + R4 : ULONG; + R5 : ULONG; + R6 : ULONG; + R7 : ULONG; + R8 : ULONG; + R9 : ULONG; + R10 : ULONG; + R11 : ULONG; + R12 : ULONG; + + SP : ULONG; + Lr : ULONG; + Pc : ULONG; + Psr : ULONG; + Fpscr : ULONG; + FpExc : ULONG; + S : Array [0..NUM_VFP_REGS] of ULONG; + FpExtra : Array [0..NUM_EXTRA_CONTROL_REGS-1] of ULONG; + end; + {$endif CPUARM} //+winnt + + LPCONTEXT = ^CONTEXT; + _CONTEXT = CONTEXT; + TCONTEXT = CONTEXT; + PCONTEXT = ^CONTEXT; //winnt + + type + + LIST_ENTRY = record //winnt + Flink : ^_LIST_ENTRY; + Blink : ^_LIST_ENTRY; + end; + _LIST_ENTRY = LIST_ENTRY; + TLISTENTRY = LIST_ENTRY; + PLISTENTRY = ^LIST_ENTRY; + + CRITICAL_SECTION_DEBUG = record + _Type : WORD; + CreatorBackTraceIndex : WORD; + CriticalSection : ^_CRITICAL_SECTION; + ProcessLocksList : LIST_ENTRY; + EntryCount : DWORD; + ContentionCount : DWORD; + Depth : DWORD; + OwnerBackTrace : array[0..4] of PVOID; + end; + LPCRITICAL_SECTION_DEBUG = ^CRITICAL_SECTION_DEBUG; + PCRITICAL_SECTION_DEBUG = ^CRITICAL_SECTION_DEBUG; + _CRITICAL_SECTION_DEBUG = CRITICAL_SECTION_DEBUG; + TCRITICALSECTIONDEBUG = CRITICAL_SECTION_DEBUG; + PCRITICALSECTIONDEBUG = ^CRITICAL_SECTION_DEBUG; + + CRITICAL_SECTION = TRTLCriticalSection; + _CRITICAL_SECTION = TRTLCriticalSection; + TCRITICAL_SECTION = TRTLCriticalSection; + PCRITICAL_SECTION = PRTLCriticalSection; + LPCRITICAL_SECTION = PRTLCriticalSection; + TCRITICALSECTION = TRTLCriticalSection; + PCRITICALSECTION = PRTLCriticalSection; + + { SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode; } + + SECURITY_QUALITY_OF_SERVICE = record + Length : DWORD; + ImpersonationLevel : SECURITY_IMPERSONATION_LEVEL; + ContextTrackingMode : WINBOOL; + EffectiveOnly : BOOLEAN; + end; + PSECURITY_QUALITY_OF_SERVICE = ^SECURITY_QUALITY_OF_SERVICE; + _SECURITY_QUALITY_OF_SERVICE = SECURITY_QUALITY_OF_SERVICE; + TSECURITYQUALITYOFSERVICE = SECURITY_QUALITY_OF_SERVICE; + PSECURITYQUALITYOFSERVICE = ^SECURITY_QUALITY_OF_SERVICE; + + CONVCONTEXT = record + cb : UINT; + wFlags : UINT; + wCountryID : UINT; + iCodePage : longint; + dwLangID : DWORD; + dwSecurity : DWORD; + qos : SECURITY_QUALITY_OF_SERVICE; + end; + tagCONVCONTEXT = CONVCONTEXT; + TCONVCONTEXT = CONVCONTEXT; + PCONVCONTEXT = ^CONVCONTEXT; + + CONVINFO = record + cb : DWORD; + hUser : DWORD; + hConvPartner : HCONV; + hszSvcPartner : HSZ; + hszServiceReq : HSZ; + hszTopic : HSZ; + hszItem : HSZ; + wFmt : UINT; + wType : UINT; + wStatus : UINT; + wConvst : UINT; + wLastError : UINT; + hConvList : HCONVLIST; + ConvCtxt : CONVCONTEXT; + _hwnd : HWND; + hwndPartner : HWND; + end; + tagCONVINFO = CONVINFO; + TCONVINFO = CONVINFO; + PCONVINFO = ^CONVINFO; + + COPYDATASTRUCT = record + dwData : DWORD; + cbData : DWORD; + lpData : PVOID; + end; + tagCOPYDATASTRUCT = COPYDATASTRUCT; + TCOPYDATASTRUCT = COPYDATASTRUCT; + PCOPYDATASTRUCT = ^COPYDATASTRUCT; + + CPINFO = record + MaxCharSize : UINT; + DefaultChar : array[0..(MAX_DEFAULTCHAR)-1] of BYTE; + LeadByte : array[0..(MAX_LEADBYTES)-1] of BYTE; + end; + LPCPINFO = ^CPINFO; + _cpinfo = CPINFO; + Tcpinfo = CPINFO; + Pcpinfo = ^CPINFO; + + CPLINFO = record + idIcon : longint; + idName : longint; + idInfo : longint; + lData : LONG; + end; + tagCPLINFO = CPLINFO; + TCPLINFO = CPLINFO; + PCPLINFO = ^CPLINFO; + + CREATE_PROCESS_DEBUG_INFO = record + hFile : HANDLE; + hProcess : HANDLE; + hThread : HANDLE; + lpBaseOfImage : LPVOID; + dwDebugInfoFileOffset : DWORD; + nDebugInfoSize : DWORD; + lpThreadLocalBase : LPVOID; + lpStartAddress : LPTHREAD_START_ROUTINE; + lpImageName : LPVOID; + fUnicode : WORD; + end; + _CREATE_PROCESS_DEBUG_INFO = CREATE_PROCESS_DEBUG_INFO; + TCREATEPROCESSDEBUGINFO = CREATE_PROCESS_DEBUG_INFO; + PCREATEPROCESSDEBUGINFO = ^CREATE_PROCESS_DEBUG_INFO; + + CREATE_THREAD_DEBUG_INFO = record + hThread : HANDLE; + lpThreadLocalBase : LPVOID; + lpStartAddress : LPTHREAD_START_ROUTINE; + end; + _CREATE_THREAD_DEBUG_INFO = CREATE_THREAD_DEBUG_INFO; + TCREATETHREADDEBUGINFO = CREATE_THREAD_DEBUG_INFO; + PCREATETHREADDEBUGINFO = ^CREATE_THREAD_DEBUG_INFO; + (* + TODO: sockets + typedef struct _SOCKET_ADDRESS { + LPSOCKADDR lpSockaddr ; + INT iSockaddrLength ; + } SOCKET_ADDRESS, PSOCKET_ADDRESS, LPSOCKET_ADDRESS; + } + { + typedef struct _CSADDR_INFO { + SOCKET_ADDRESS LocalAddr; + SOCKET_ADDRESS RemoteAddr; + INT iSocketType; + INT iProtocol; + } CSADDR_INFO; + *) + + CURRENCYFMT = record + NumDigits : UINT; + LeadingZero : UINT; + Grouping : UINT; + lpDecimalSep : LPTSTR; + lpThousandSep : LPTSTR; + NegativeOrder : UINT; + PositiveOrder : UINT; + lpCurrencySymbol : LPTSTR; + end; + _currencyfmt = CURRENCYFMT; + Tcurrencyfmt = CURRENCYFMT; + Pcurrencyfmt = ^CURRENCYFMT; + + CURSORSHAPE = record + xHotSpot : longint; + yHotSpot : longint; + cx : longint; + cy : longint; + cbWidth : longint; + Planes : BYTE; + BitsPixel : BYTE; + end; + LPCURSORSHAPE = ^CURSORSHAPE; + tagCURSORSHAPE = CURSORSHAPE; + TCURSORSHAPE = CURSORSHAPE; + PCURSORSHAPE = ^CURSORSHAPE; + + CWPRETSTRUCT = record + lResult : LRESULT; + lParam : LPARAM; + wParam : WPARAM; + message : DWORD; + hwnd : HWND; + end; + tagCWPRETSTRUCT = CWPRETSTRUCT; + TCWPRETSTRUCT = CWPRETSTRUCT; + PCWPRETSTRUCT = ^CWPRETSTRUCT; + + CWPSTRUCT = record + lParam : LPARAM; + wParam : WPARAM; + message : UINT; + hwnd : HWND; + end; + tagCWPSTRUCT = CWPSTRUCT; + TCWPSTRUCT = CWPSTRUCT; + PCWPSTRUCT = ^CWPSTRUCT; + + DATATYPES_INFO_1 = record + pName : LPTSTR; + end; + _DATATYPES_INFO_1 = DATATYPES_INFO_1; + TDATATYPESINFO1 = DATATYPES_INFO_1; + PDATATYPESINFO1 = ^DATATYPES_INFO_1; + + DDEACK = record + flag0 : word; + end; + TDDEACK = DDEACK; + PDDEACK = ^DDEACK; + const + bm_DDEACK_bAppReturnCode = $FF; + bp_DDEACK_bAppReturnCode = 0; + bm_DDEACK_reserved = $3F00; + bp_DDEACK_reserved = 8; + bm_DDEACK_fBusy = $4000; + bp_DDEACK_fBusy = 14; + bm_DDEACK_fAck = $8000; + bp_DDEACK_fAck = 15; + function bAppReturnCode(var a : DDEACK) : word; + procedure set_bAppReturnCode(var a : DDEACK; __bAppReturnCode : word); + function reserved(var a : DDEACK) : word; + procedure set_reserved(var a : DDEACK; __reserved : word); + function fBusy(var a : DDEACK) : word; + procedure set_fBusy(var a : DDEACK; __fBusy : word); + function fAck(var a : DDEACK) : word; + procedure set_fAck(var a : DDEACK; __fAck : word); + + type + + DDEADVISE = record + flag0 : word; + cfFormat : integer; + end; + TDDEADVISE = DDEADVISE; + PDDEADVISE = ^DDEADVISE; + const + bm_DDEADVISE_reserved = $3FFF; + bp_DDEADVISE_reserved = 0; + bm_DDEADVISE_fDeferUpd = $4000; + bp_DDEADVISE_fDeferUpd = 14; + bm_DDEADVISE_fAckReq = $8000; + bp_DDEADVISE_fAckReq = 15; + function reserved(var a : DDEADVISE) : word; + procedure set_reserved(var a : DDEADVISE; __reserved : word); + function fDeferUpd(var a : DDEADVISE) : word; + procedure set_fDeferUpd(var a : DDEADVISE; __fDeferUpd : word); + function fAckReq(var a : DDEADVISE) : word; + procedure set_fAckReq(var a : DDEADVISE; __fAckReq : word); + + type + + DDEDATA = record + flag0 : word; + cfFormat : integer; + Value : array[0..0] of BYTE; + end; + PDDEDATA = ^DDEDATA; + const + bm_DDEDATA_unused = $FFF; + bp_DDEDATA_unused = 0; + bm_DDEDATA_fResponse = $1000; + bp_DDEDATA_fResponse = 12; + bm_DDEDATA_fRelease = $2000; + bp_DDEDATA_fRelease = 13; + bm_DDEDATA_reserved = $4000; + bp_DDEDATA_reserved = 14; + bm_DDEDATA_fAckReq = $8000; + bp_DDEDATA_fAckReq = 15; + function unused(var a : DDEDATA) : word; + procedure set_unused(var a : DDEDATA; __unused : word); + function fResponse(var a : DDEDATA) : word; + procedure set_fResponse(var a : DDEDATA; __fResponse : word); + function fRelease(var a : DDEDATA) : word; + procedure set_fRelease(var a : DDEDATA; __fRelease : word); + function reserved(var a : DDEDATA) : word; + procedure set_reserved(var a : DDEDATA; __reserved : word); + function fAckReq(var a : DDEDATA) : word; + procedure set_fAckReq(var a : DDEDATA; __fAckReq : word); + + type + + DDELN = record + flag0 : word; + cfFormat : integer; + end; + TDDELN = DDELN; + PDDELN = ^DDELN; + const + bm_DDELN_unused = $1FFF; + bp_DDELN_unused = 0; + bm_DDELN_fRelease = $2000; + bp_DDELN_fRelease = 13; + bm_DDELN_fDeferUpd = $4000; + bp_DDELN_fDeferUpd = 14; + bm_DDELN_fAckReq = $8000; + bp_DDELN_fAckReq = 15; + function unused(var a : DDELN) : word; + procedure set_unused(var a : DDELN; __unused : word); + function fRelease(var a : DDELN) : word; + procedure set_fRelease(var a : DDELN; __fRelease : word); + function fDeferUpd(var a : DDELN) : word; + procedure set_fDeferUpd(var a : DDELN; __fDeferUpd : word); + function fAckReq(var a : DDELN) : word; + procedure set_fAckReq(var a : DDELN; __fAckReq : word); + + type + + DDEML_MSG_HOOK_DATA = record + uiLo : UINT; + uiHi : UINT; + cbData : DWORD; + Data : array[0..7] of DWORD; + end; + tagDDEML_MSG_HOOK_DATA = DDEML_MSG_HOOK_DATA; + TDDEMLMSGHOOKDATA = DDEML_MSG_HOOK_DATA; + PDDEMLMSGHOOKDATA = ^DDEML_MSG_HOOK_DATA; + + DDEPOKE = record + flag0 : word; + cfFormat : integer; + Value : array[0..0] of BYTE; + end; + TDDEPOKE = DDEPOKE; + PDDEPOKE = ^DDEPOKE; + const + bm_DDEPOKE_unused = $1FFF; + bp_DDEPOKE_unused = 0; + bm_DDEPOKE_fRelease = $2000; + bp_DDEPOKE_fRelease = 13; + bm_DDEPOKE_fReserved = $C000; + bp_DDEPOKE_fReserved = 14; + function unused(var a : DDEPOKE) : word; + procedure set_unused(var a : DDEPOKE; __unused : word); + function fRelease(var a : DDEPOKE) : word; + procedure set_fRelease(var a : DDEPOKE; __fRelease : word); + function fReserved(var a : DDEPOKE) : word; + procedure set_fReserved(var a : DDEPOKE; __fReserved : word); + + type + + DDEUP = record + flag0 : word; + cfFormat : integer; + rgb : array[0..0] of BYTE; + end; + TDDEUP = DDEUP; + PDDEUP = ^DDEUP; + const + bm_DDEUP_unused = $FFF; + bp_DDEUP_unused = 0; + bm_DDEUP_fAck = $1000; + bp_DDEUP_fAck = 12; + bm_DDEUP_fRelease = $2000; + bp_DDEUP_fRelease = 13; + bm_DDEUP_fReserved = $4000; + bp_DDEUP_fReserved = 14; + bm_DDEUP_fAckReq = $8000; + bp_DDEUP_fAckReq = 15; + function unused(var a : DDEUP) : word; + procedure set_unused(var a : DDEUP; __unused : word); + function fAck(var a : DDEUP) : word; + procedure set_fAck(var a : DDEUP; __fAck : word); + function fRelease(var a : DDEUP) : word; + procedure set_fRelease(var a : DDEUP; __fRelease : word); + function fReserved(var a : DDEUP) : word; + procedure set_fReserved(var a : DDEUP; __fReserved : word); + function fAckReq(var a : DDEUP) : word; + procedure set_fAckReq(var a : DDEUP; __fAckReq : word); + + type + + // definition of _exception struct - this struct is passed to the matherr + // routine when a floating point exception is detected + _EXCEPTION = record //+stdlib + type_ : Integer; //identifier type replaced by Type_ for compilation + Name : PChar; // name of function where error occured + arg1 : double; // first argument to function + arg2 : double; // second argument (if any) to function + retval : double; // value to be returned by function + end; + + EXCEPTION_RECORD = record //winnt + ExceptionCode : DWORD; + ExceptionFlags : DWORD; + ExceptionRecord : ^_EXCEPTION_RECORD; + ExceptionAddress : PVOID; + NumberParameters : DWORD; + ExceptionInformation : array[0..(EXCEPTION_MAXIMUM_PARAMETERS)-1] of Pointer; //~winnt, was DWORD, SDK:ULONG_PTR + end; + PEXCEPTION_RECORD = ^EXCEPTION_RECORD; + _EXCEPTION_RECORD = EXCEPTION_RECORD; + TEXCEPTIONRECORD = EXCEPTION_RECORD; + PEXCEPTIONRECORD = ^EXCEPTION_RECORD; + + EXCEPTION_DEBUG_INFO = record + ExceptionRecord : EXCEPTION_RECORD; + dwFirstChance : DWORD; + end; + PEXCEPTION_DEBUG_INFO = ^EXCEPTION_DEBUG_INFO; + _EXCEPTION_DEBUG_INFO = EXCEPTION_DEBUG_INFO; + TEXCEPTIONDEBUGINFO = EXCEPTION_DEBUG_INFO; + PEXCEPTIONDEBUGINFO = ^EXCEPTION_DEBUG_INFO; + + EXIT_PROCESS_DEBUG_INFO = record + dwExitCode : DWORD; + end; + _EXIT_PROCESS_DEBUG_INFO = EXIT_PROCESS_DEBUG_INFO; + TEXITPROCESSDEBUGINFO = EXIT_PROCESS_DEBUG_INFO; + PEXITPROCESSDEBUGINFO = ^EXIT_PROCESS_DEBUG_INFO; + + + EXIT_THREAD_DEBUG_INFO = record + dwExitCode : DWORD; + end; + _EXIT_THREAD_DEBUG_INFO = EXIT_THREAD_DEBUG_INFO; + TEXITTHREADDEBUGINFO = EXIT_THREAD_DEBUG_INFO; + PEXITTHREADDEBUGINFO = ^EXIT_THREAD_DEBUG_INFO; + + LOAD_DLL_DEBUG_INFO = record + hFile : HANDLE; + lpBaseOfDll : LPVOID; + dwDebugInfoFileOffset : DWORD; + nDebugInfoSize : DWORD; + lpImageName : LPVOID; + fUnicode : WORD; + end; + _LOAD_DLL_DEBUG_INFO = LOAD_DLL_DEBUG_INFO; + TLOADDLLDEBUGINFO = LOAD_DLL_DEBUG_INFO; + PLOADDLLDEBUGINFO = ^LOAD_DLL_DEBUG_INFO; + + UNLOAD_DLL_DEBUG_INFO = record + lpBaseOfDll : LPVOID; + end; + _UNLOAD_DLL_DEBUG_INFO = UNLOAD_DLL_DEBUG_INFO; + TUNLOADDLLDEBUGINFO = UNLOAD_DLL_DEBUG_INFO; + PUNLOADDLLDEBUGINFO = ^UNLOAD_DLL_DEBUG_INFO; + + OUTPUT_DEBUG_STRING_INFO = record + lpDebugStringData : LPSTR; + fUnicode : WORD; + nDebugStringLength : WORD; + end; + _OUTPUT_DEBUG_STRING_INFO = OUTPUT_DEBUG_STRING_INFO; + TOUTPUTDEBUGSTRINGINFO = OUTPUT_DEBUG_STRING_INFO; + POUTPUTDEBUGSTRINGINFO = ^OUTPUT_DEBUG_STRING_INFO; + + RIP_INFO = record + dwError : DWORD; + dwType : DWORD; + end; + _RIP_INFO = RIP_INFO; + TRIPINFO = RIP_INFO; + PRIPINFO = ^RIP_INFO; + + DEBUG_EVENT = record + dwDebugEventCode : DWORD; + dwProcessId : DWORD; + dwThreadId : DWORD; + u : record + case longint of + 0 : ( Exception : EXCEPTION_DEBUG_INFO ); + 1 : ( CreateThread : CREATE_THREAD_DEBUG_INFO ); + 2 : ( CreateProcessInfo : CREATE_PROCESS_DEBUG_INFO ); + 3 : ( ExitThread : EXIT_THREAD_DEBUG_INFO ); + 4 : ( ExitProcess : EXIT_PROCESS_DEBUG_INFO ); + 5 : ( LoadDll : LOAD_DLL_DEBUG_INFO ); + 6 : ( UnloadDll : UNLOAD_DLL_DEBUG_INFO ); + 7 : ( DebugString : OUTPUT_DEBUG_STRING_INFO ); + 8 : ( RipInfo : RIP_INFO ); + end; + end; + LPDEBUG_EVENT = ^DEBUG_EVENT; + _DEBUG_EVENT = DEBUG_EVENT; + TDEBUGEVENT = DEBUG_EVENT; + PDEBUGEVENT = ^DEBUG_EVENT; + + DEBUGHOOKINFO = record + idThread : DWORD; + idThreadInstaller : DWORD; + lParam : LPARAM; + wParam : WPARAM; + code : longint; + end; + tagDEBUGHOOKINFO = DEBUGHOOKINFO; + TDEBUGHOOKINFO = DEBUGHOOKINFO; + PDEBUGHOOKINFO = ^DEBUGHOOKINFO; + + DELETEITEMSTRUCT = record + CtlType : UINT; + CtlID : UINT; + itemID : UINT; + hwndItem : HWND; + itemData : UINT; + end; + tagDELETEITEMSTRUCT = DELETEITEMSTRUCT; + TDELETEITEMSTRUCT = DELETEITEMSTRUCT; + PDELETEITEMSTRUCT = ^DELETEITEMSTRUCT; + + DEV_BROADCAST_HDR = record + dbch_size : ULONG; + dbch_devicetype : ULONG; + dbch_reserved : ULONG; + end; + PDEV_BROADCAST_HDR = ^DEV_BROADCAST_HDR; + _DEV_BROADCAST_HDR = DEV_BROADCAST_HDR; + TDEVBROADCASTHDR = DEV_BROADCAST_HDR; + PDEVBROADCASTHDR = ^DEV_BROADCAST_HDR; + + DEV_BROADCAST_OEM = record + dbco_size : ULONG; + dbco_devicetype : ULONG; + dbco_reserved : ULONG; + dbco_identifier : ULONG; + dbco_suppfunc : ULONG; + end; + PDEV_BROADCAST_OEM = ^DEV_BROADCAST_OEM; + _DEV_BROADCAST_OEM = DEV_BROADCAST_OEM; + TDEVBROADCASTOEM = DEV_BROADCAST_OEM; + PDEVBROADCASTOEM = ^DEV_BROADCAST_OEM; + + DEV_BROADCAST_PORT = record + dbcp_size : ULONG; + dbcp_devicetype : ULONG; + dbcp_reserved : ULONG; + dbcp_name : array[0..0] of char; + end; + PDEV_BROADCAST_PORT = ^DEV_BROADCAST_PORT; + _DEV_BROADCAST_PORT = DEV_BROADCAST_PORT; + TDEVBROADCASTPORT = DEV_BROADCAST_PORT; + PDEVBROADCASTPORT = ^DEV_BROADCAST_PORT; + + _DEV_BROADCAST_USERDEFINED = record + dbud_dbh : _DEV_BROADCAST_HDR; + dbud_szName : array[0..0] of char; + dbud_rgbUserDefined : array[0..0] of BYTE; + end; + TDEVBROADCASTUSERDEFINED = _DEV_BROADCAST_USERDEFINED; + PDEVBROADCASTUSERDEFINED = ^_DEV_BROADCAST_USERDEFINED; + + DEV_BROADCAST_VOLUME = record + dbcv_size : ULONG; + dbcv_devicetype : ULONG; + dbcv_reserved : ULONG; + dbcv_unitmask : ULONG; + dbcv_flags : USHORT; + end; + PDEV_BROADCAST_VOLUME = ^DEV_BROADCAST_VOLUME; + _DEV_BROADCAST_VOLUME = DEV_BROADCAST_VOLUME; + TDEVBROADCASTVOLUME = DEV_BROADCAST_VOLUME; + PDEVBROADCASTVOLUME = ^DEV_BROADCAST_VOLUME; + + DEVMODEA = record + dmDeviceName : array[0.. CCHDEVICENAME-1] of BCHAR; + dmSpecVersion : WORD; + dmDriverVersion: WORD; + dmSize : WORD; + dmDriverExtra : WORD; + dmFields : DWORD; + dmOrientation : short; + dmPaperSize : short; + dmPaperLength : short; + dmPaperWidth : short; + dmScale : short; + dmCopies : short; + dmDefaultSource: short; + dmPrintQuality : short; + dmColor : short; + dmDuplex : short; + dmYResolution : short; + dmTTOption : short; + dmCollate : short; + dmFormName : array [0..CCHFORMNAME-1] of BCHAR; + dmLogPixels : WORD; + dmBitsPerPel : DWORD; + dmPelsWidth : DWORD; + dmPelsHeight : DWORD; + dmDisplayFlags : DWORD; + dmDisplayFrequency : DWORD; + dmICMMethod : DWORD; + dmICMIntent : DWORD; + dmMediaType : DWORD; + dmDitherType : DWORD; + dmReserved1 : DWORD; + dmReserved2 : DWORD; + dmPanningWidth : DWORD; + dmPanningHeight: DWORD; + dmDisplayOrientation : DWORD; + end; + _DEVICEMODE1=DEVMODEA; + PDEVMODEA=^DEVMODEA; + NPDEVMODEA=^DEVMODEA; + LPDEVMODEA=^DEVMODEA; + + DEVMODEW = record + dmDeviceName : array[0.. CCHDEVICENAME-1] of WCHAR; + dmSpecVersion : WORD; + dmDriverVersion: WORD; + dmSize : WORD; + dmDriverExtra : WORD; + dmFields : DWORD; + dmOrientation : short; + dmPaperSize : short; + dmPaperLength : short; + dmPaperWidth : short; + dmScale : short; + dmCopies : short; + dmDefaultSource: short; + dmPrintQuality : short; + dmColor : short; + dmDuplex : short; + dmYResolution : short; + dmTTOption : short; + dmCollate : short; + dmFormName : array [0..CCHFORMNAME-1] of wchar; + dmLogPixels : WORD; + dmBitsPerPel : DWORD; + dmPelsWidth : DWORD; + dmPelsHeight : DWORD; + dmDisplayFlags : DWORD; + dmDisplayFrequency : DWORD; + dmDisplayOrientation : DWORD; + end; + + LPDEVMODEW = ^DEVMODEW; + _devicemodeW = DEVMODEW; + devicemodeW = DEVMODEW; + TDeviceModeW = DEVMODEW; + PDeviceModeW = LPDEVMODEW; + TDEVMODEW = DEVMODEW; + PDEVMODEW = LPDEVMODEW; + +{$IFDEF UNICODE} + DEVMODE=DEVMODEW; + LPDEVMODE = ^DEVMODEW; + _devicemode = DEVMODEW; + devicemode = DEVMODEW; + tdevicemode = DEVMODEW; + tdevicemodeA = DEVMODEW; + PDeviceModeA = LPDEVMODEW; + PDeviceMode = LPDEVMODEW; + TDEVMODE = DEVMODEW; + PDEVMODE = LPDEVMODEW; +{$ELSE UNICODE} + DEVMODE=DEVMODEA; + LPDEVMODE = ^DEVMODEA; + _devicemode = DEVMODEA; + devicemode = DEVMODEA; + tdevicemode = DEVMODEA; + tdevicemodeA = DEVMODEA; + PDeviceModeA = LPDEVMODEA; + PDeviceMode = LPDEVMODEA; + TDEVMODE = DEVMODEA; + PDEVMODE = LPDEVMODEA; +{$ENDIF UNICODE} + + DEVNAMES = record + wDriverOffset : WORD; + wDeviceOffset : WORD; + wOutputOffset : WORD; + wDefault : WORD; + end; + LPDEVNAMES = ^DEVNAMES; + tagDEVNAMES = DEVNAMES; + TDEVNAMES = DEVNAMES; + PDEVNAMES = ^DEVNAMES; + + DIBSECTION = record + dsBm : BITMAP; + dsBmih : BITMAPINFOHEADER; + dsBitfields : array[0..2] of DWORD; + dshSection : HANDLE; + dsOffset : DWORD; + end; + tagDIBSECTION = DIBSECTION; + TDIBSECTION = DIBSECTION; + PDIBSECTION = ^DIBSECTION; + + LARGE_INTEGER = record //winnt + case byte of + 0: (LowPart : DWORD; + HighPart : LONG); + 1: (QuadPart : LONGLONG); + end; + PLARGE_INTEGER = ^LARGE_INTEGER; //winnt + _LARGE_INTEGER = LARGE_INTEGER; //winnt + + TLargeInteger = Int64; + PLargeInteger = ^TLargeInteger; + + ULARGE_INTEGER = record + case byte of + 0: (LowPart : DWORD; + HighPart : DWORD); + 1: (QuadPart : LONGLONG); + end; + PULARGE_INTEGER = ^ULARGE_INTEGER; + _ULARGE_INTEGER = ULARGE_INTEGER; + + TULargeInteger = QWord; + PULargeInteger = ^TULargeInteger; + + DISK_GEOMETRY = record + Cylinders : LARGE_INTEGER; + MediaType : MEDIA_TYPE; + TracksPerCylinder : DWORD; + SectorsPerTrack : DWORD; + BytesPerSector : DWORD; + end; + _DISK_GEOMETRY = DISK_GEOMETRY; + TDISKGEOMETRY = DISK_GEOMETRY; + PDISKGEOMETRY = ^DISK_GEOMETRY; + + DISK_PERFORMANCE = record + BytesRead : LARGE_INTEGER; + BytesWritten : LARGE_INTEGER; + ReadTime : LARGE_INTEGER; + WriteTime : LARGE_INTEGER; + ReadCount : DWORD; + WriteCount : DWORD; + QueueDepth : DWORD; + end; + _DISK_PERFORMANCE = DISK_PERFORMANCE; + TDISKPERFORMANCE = DISK_PERFORMANCE; + PDISKPERFORMANCE = ^DISK_PERFORMANCE; + + DLGITEMTEMPLATE = packed record + style : DWORD; + dwExtendedStyle : DWORD; + x : integer; + y : integer; + cx : integer; + cy : integer; + id : WORD; + end; + LPDLGITEMTEMPLATE = ^DLGITEMTEMPLATE; + TDLGITEMTEMPLATE = DLGITEMTEMPLATE; + PDLGITEMTEMPLATE = ^DLGITEMTEMPLATE; + + DLGTEMPLATE = packed record + style : DWORD; + dwExtendedStyle : DWORD; + cdit : WORD; + x : integer; + y : integer; + cx : integer; + cy : integer; + end; + LPDLGTEMPLATE = ^DLGTEMPLATE; + LPCDLGTEMPLATE = ^DLGTEMPLATE; + LPCDLGTEMPLATEW = ^DLGTEMPLATE; //+winuser + TDLGTEMPLATE = DLGTEMPLATE; + PDLGTEMPLATE = ^DLGTEMPLATE; + + DOC_INFO_1 = record + pDocName : LPTSTR; + pOutputFile : LPTSTR; + pDatatype : LPTSTR; + end; + _DOC_INFO_1 = DOC_INFO_1; + TDOCINFO1 = DOC_INFO_1; + PDOCINFO1 = ^DOC_INFO_1; + + DOC_INFO_2 = record + pDocName : LPTSTR; + pOutputFile : LPTSTR; + pDatatype : LPTSTR; + dwMode : DWORD; + JobId : DWORD; + end; + _DOC_INFO_2 = DOC_INFO_2; + TDOCINFO2 = DOC_INFO_2; + PDOCINFO2 = ^DOC_INFO_2; + + DOCINFO = record //+wingdi + cbSize : Integer; + lpszDocName : LPCWSTR; + lpszOutput : LPCWSTR; + lpszDatatype : LPCWSTR; + fwType : DWORD; + end; + TDOCINFO = DOCINFO; + PDOCINFO = ^DOCINFO; + DOCINFOW = DOCINFO; + TDOCINFOW = DOCINFOW; + _DOCINFOW=DOCINFOW; //+wingdi + LPDOCINFOW=^PDOCINFO; //+wingdi + PDOCINFOW=^PDOCINFO; //+wingdi + + DRAGLISTINFO = record + uNotification : UINT; + hWnd : HWND; + ptCursor : POINT; + end; + LPDRAGLISTINFO = ^DRAGLISTINFO; + TDRAGLISTINFO = DRAGLISTINFO; + PDRAGLISTINFO = ^DRAGLISTINFO; + + DRAWITEMSTRUCT = record + CtlType : UINT; + CtlID : UINT; + itemID : UINT; + itemAction : UINT; + itemState : UINT; + hwndItem : HWND; + hDC : HDC; + rcItem : RECT; + itemData : DWORD; + end; + LPDRAWITEMSTRUCT = ^DRAWITEMSTRUCT; + tagDRAWITEMSTRUCT = DRAWITEMSTRUCT; + TDRAWITEMSTRUCT = DRAWITEMSTRUCT; + PDRAWITEMSTRUCT = ^DRAWITEMSTRUCT; + + DRAWTEXTPARAMS = record + cbSize : UINT; + iTabLength : longint; + iLeftMargin : longint; + iRightMargin : longint; + uiLengthDrawn : UINT; + end; + LPDRAWTEXTPARAMS = ^DRAWTEXTPARAMS; + TDRAWTEXTPARAMS = DRAWTEXTPARAMS; + PDRAWTEXTPARAMS = ^DRAWTEXTPARAMS; + + PARTITION_INFORMATION = record + PartitionType : BYTE; + BootIndicator : BOOLEAN; + RecognizedPartition : BOOLEAN; + RewritePartition : BOOLEAN; + StartingOffset : LARGE_INTEGER; + PartitionLength : LARGE_INTEGER; + HiddenSectors : LARGE_INTEGER; + end; + _PARTITION_INFORMATION = PARTITION_INFORMATION; + TPARTITIONINFORMATION = PARTITION_INFORMATION; + PPARTITIONINFORMATION = ^PARTITION_INFORMATION; + + DRIVE_LAYOUT_INFORMATION = record + PartitionCount : DWORD; + Signature : DWORD; + PartitionEntry : array[0..0] of PARTITION_INFORMATION; + end; + _DRIVE_LAYOUT_INFORMATION = DRIVE_LAYOUT_INFORMATION; + TDRIVELAYOUTINFORMATION = DRIVE_LAYOUT_INFORMATION; + PDRIVELAYOUTINFORMATION = ^DRIVE_LAYOUT_INFORMATION; + + DRIVER_INFO_1 = record + pName : LPTSTR; + end; + _DRIVER_INFO_1 = DRIVER_INFO_1; + TDRIVERINFO1 = DRIVER_INFO_1; + PDRIVERINFO1 = ^DRIVER_INFO_1; + + DRIVER_INFO_2 = record + cVersion : DWORD; + pName : LPTSTR; + pEnvironment : LPTSTR; + pDriverPath : LPTSTR; + pDataFile : LPTSTR; + pConfigFile : LPTSTR; + end; + _DRIVER_INFO_2 = DRIVER_INFO_2; + TDRIVERINFO2 = DRIVER_INFO_2; + PDRIVERINFO2 = ^DRIVER_INFO_2; + + DRIVER_INFO_3 = record + cVersion : DWORD; + pName : LPTSTR; + pEnvironment : LPTSTR; + pDriverPath : LPTSTR; + pDataFile : LPTSTR; + pConfigFile : LPTSTR; + pHelpFile : LPTSTR; + pDependentFiles : LPTSTR; + pMonitorName : LPTSTR; + pDefaultDataType : LPTSTR; + end; + _DRIVER_INFO_3 = DRIVER_INFO_3; + TDRIVERINFO3 = DRIVER_INFO_3; + PDRIVERINFO3 = ^DRIVER_INFO_3; + + EDITSTREAM = record + dwCookie : DWORD; + dwError : DWORD; + pfnCallback : EDITSTREAMCALLBACK; + end; + _editstream = EDITSTREAM; + Teditstream = EDITSTREAM; + Peditstream = ^EDITSTREAM; + + EMR = record + iType : DWORD; + nSize : DWORD; + end; + tagEMR = EMR; + TEMR = EMR; + PEMR = ^EMR; + + EMRANGLEARC = record + emr : EMR; + ptlCenter : POINTL; + nRadius : DWORD; + eStartAngle : Single; + eSweepAngle : Single; + end; + tagEMRANGLEARC = EMRANGLEARC; + TEMRANGLEARC = EMRANGLEARC; + PEMRANGLEARC = ^EMRANGLEARC; + + EMRARC = record + emr : EMR; + rclBox : RECTL; + ptlStart : POINTL; + ptlEnd : POINTL; + end; + tagEMRARC = EMRARC; + TEMRARC = EMRARC; + PEMRARC = ^EMRARC; + + EMRARCTO = EMRARC; + TEMRARCTO = EMRARC; + PEMRARCTO = ^EMRARC; + + EMRCHORD = EMRARC; + TEMRCHORD = EMRARC; + PEMRCHORD = ^EMRARC; + + EMRPIE = EMRARC; + TEMRPIE = EMRARC; + PEMRPIE = ^EMRARC; + + XFORM = record + eM11 : Single; + eM12 : Single; + eM21 : Single; + eM22 : Single; + eDx : Single; + eDy : Single; + end; + LPXFORM = ^XFORM; + _XFORM = XFORM; + TXFORM = XFORM; + PXFORM = ^XFORM; + + EMRBITBLT = record + emr : EMR; + rclBounds : RECTL; + xDest : LONG; + yDest : LONG; + cxDest : LONG; + cyDest : LONG; + dwRop : DWORD; + xSrc : LONG; + ySrc : LONG; + xformSrc : XFORM; + crBkColorSrc : COLORREF; + iUsageSrc : DWORD; + offBmiSrc : DWORD; + offBitsSrc : DWORD; + cbBitsSrc : DWORD; + end; + tagEMRBITBLT = EMRBITBLT; + TEMRBITBLT = EMRBITBLT; + PEMRBITBLT = ^EMRBITBLT; + + LOGBRUSH = record + lbStyle : UINT; + lbColor : COLORREF; + lbHatch : LONG; + end; + tagLOGBRUSH = LOGBRUSH; + TLOGBRUSH = LOGBRUSH; + PLOGBRUSH = ^LOGBRUSH; + + EMRCREATEBRUSHINDIRECT = record + emr : EMR; + ihBrush : DWORD; + lb : LOGBRUSH; + end; + tagEMRCREATEBRUSHINDIRECT = EMRCREATEBRUSHINDIRECT; + TEMRCREATEBRUSHINDIRECT = EMRCREATEBRUSHINDIRECT; + PEMRCREATEBRUSHINDIRECT = ^EMRCREATEBRUSHINDIRECT; + + LCSCSTYPE = LONG; + + LCSGAMUTMATCH = LONG; + + LOGCOLORSPACE = record + lcsSignature : DWORD; + lcsVersion : DWORD; + lcsSize : DWORD; + lcsCSType : LCSCSTYPE; + lcsIntent : LCSGAMUTMATCH; + lcsEndpoints : CIEXYZTRIPLE; + lcsGammaRed : DWORD; + lcsGammaGreen : DWORD; + lcsGammaBlue : DWORD; + lcsFilename : array[0..(MAX_PATH)-1] of TCHAR; + end; + LPLOGCOLORSPACE = ^LOGCOLORSPACE; + tagLOGCOLORSPACE = LOGCOLORSPACE; + TLOGCOLORSPACE = LOGCOLORSPACE; + TLOGCOLORSPACEA = LOGCOLORSPACE; + PLOGCOLORSPACE = ^LOGCOLORSPACE; + + EMRCREATECOLORSPACE = record + emr : EMR; + ihCS : DWORD; + lcs : LOGCOLORSPACE; + end; + tagEMRCREATECOLORSPACE = EMRCREATECOLORSPACE; + TEMRCREATECOLORSPACE = EMRCREATECOLORSPACE; + PEMRCREATECOLORSPACE = ^EMRCREATECOLORSPACE; + + EMRCREATEDIBPATTERNBRUSHPT = record + emr : EMR; + ihBrush : DWORD; + iUsage : DWORD; + offBmi : DWORD; + cbBmi : DWORD; + offBits : DWORD; + cbBits : DWORD; + end; + tagEMRCREATEDIBPATTERNBRUSHPT = EMRCREATEDIBPATTERNBRUSHPT; + TEMRCREATEDIBPATTERNBRUSHPT = EMRCREATEDIBPATTERNBRUSHPT; + PEMRCREATEDIBPATTERNBRUSHPT = EMRCREATEDIBPATTERNBRUSHPT; + + EMRCREATEMONOBRUSH = record + emr : EMR; + ihBrush : DWORD; + iUsage : DWORD; + offBmi : DWORD; + cbBmi : DWORD; + offBits : DWORD; + cbBits : DWORD; + end; + tagEMRCREATEMONOBRUSH = EMRCREATEMONOBRUSH; + TEMRCREATEMONOBRUSH = EMRCREATEMONOBRUSH; + PEMRCREATEMONOBRUSH = ^EMRCREATEMONOBRUSH; + + PALETTEENTRY = record + peRed : BYTE; + peGreen : BYTE; + peBlue : BYTE; + peFlags : BYTE; + end; + LPPALETTEENTRY = ^PALETTEENTRY; + tagPALETTEENTRY = PALETTEENTRY; + TPALETTEENTRY = PALETTEENTRY; + PPALETTEENTRY = ^PALETTEENTRY; + + LOGPALETTE = record + palVersion : WORD; + palNumEntries : WORD; + palPalEntry : array[0..0] of PALETTEENTRY; + end; + LPLOGPALETTE = ^LOGPALETTE; + tagLOGPALETTE = LOGPALETTE; + TLOGPALETTE = LOGPALETTE; + PLOGPALETTE = ^LOGPALETTE; + + EMRCREATEPALETTE = record + emr : EMR; + ihPal : DWORD; + lgpl : LOGPALETTE; + end; + tagEMRCREATEPALETTE = EMRCREATEPALETTE; + TEMRCREATEPALETTE = EMRCREATEPALETTE; + PEMRCREATEPALETTE = ^EMRCREATEPALETTE; + + LOGPEN = record + lopnStyle : UINT; + lopnWidth : POINT; + lopnColor : COLORREF; + end; + tagLOGPEN = LOGPEN; + TLOGPEN = LOGPEN; + PLOGPEN = ^LOGPEN; + + EMRCREATEPEN = record + emr : EMR; + ihPen : DWORD; + lopn : LOGPEN; + end; + tagEMRCREATEPEN = EMRCREATEPEN; + TEMRCREATEPEN = EMRCREATEPEN; + PEMRCREATEPEN = ^EMRCREATEPEN; + + EMRELLIPSE = record + emr : EMR; + rclBox : RECTL; + end; + tagEMRELLIPSE = EMRELLIPSE; + TEMRELLIPSE = EMRELLIPSE; + PEMRELLIPSE = ^EMRELLIPSE; + + EMRRECTANGLE = EMRELLIPSE; + TEMRRECTANGLE = EMRELLIPSE; + PEMRRECTANGLE = ^EMRELLIPSE; + + EMREOF = record + emr : EMR; + nPalEntries : DWORD; + offPalEntries : DWORD; + nSizeLast : DWORD; + end; + tagEMREOF = EMREOF; + TEMREOF = EMREOF; + PEMREOF = ^EMREOF; + + EMREXCLUDECLIPRECT = record + emr : EMR; + rclClip : RECTL; + end; + tagEMREXCLUDECLIPRECT = EMREXCLUDECLIPRECT; + TEMREXCLUDECLIPRECT = EMREXCLUDECLIPRECT; + PEMREXCLUDECLIPRECT = ^EMREXCLUDECLIPRECT; + + EMRINTERSECTCLIPRECT = EMREXCLUDECLIPRECT; + TEMRINTERSECTCLIPRECT = EMREXCLUDECLIPRECT; + PEMRINTERSECTCLIPRECT = ^EMREXCLUDECLIPRECT; + + PANOSE = record + bFamilyType : BYTE; + bSerifStyle : BYTE; + bWeight : BYTE; + bProportion : BYTE; + bContrast : BYTE; + bStrokeVariation : BYTE; + bArmStyle : BYTE; + bLetterform : BYTE; + bMidline : BYTE; + bXHeight : BYTE; + end; + tagPANOSE = PANOSE; + TPANOSE = PANOSE; + PPANOSE = ^PANOSE; + + EXTLOGFONT = record + elfLogFont : LOGFONT; + elfFullName : array[0..(LF_FULLFACESIZE)-1] of BCHAR; + elfStyle : array[0..(LF_FACESIZE)-1] of BCHAR; + elfVersion : DWORD; + elfStyleSize : DWORD; + elfMatch : DWORD; + elfReserved : DWORD; + elfVendorId : array[0..(ELF_VENDOR_SIZE)-1] of BYTE; + elfCulture : DWORD; + elfPanose : PANOSE; + end; + tagEXTLOGFONT = EXTLOGFONT; + TEXTLOGFONT = EXTLOGFONT; + PEXTLOGFONT = ^EXTLOGFONT; + + EMREXTCREATEFONTINDIRECTW = record + emr : EMR; + ihFont : DWORD; + elfw : EXTLOGFONT; + end; + tagEMREXTCREATEFONTINDIRECTW = EMREXTCREATEFONTINDIRECTW; + TEMREXTCREATEFONTINDIRECTW = EMREXTCREATEFONTINDIRECTW; + PEMREXTCREATEFONTINDIRECTW = ^EMREXTCREATEFONTINDIRECTW; + + + EXTLOGPEN = record + elpPenStyle : UINT; + elpWidth : UINT; + elpBrushStyle : UINT; + elpColor : COLORREF; + elpHatch : LONG; + elpNumEntries : DWORD; + elpStyleEntry : array[0..0] of DWORD; + end; + tagEXTLOGPEN = EXTLOGPEN; + TEXTLOGPEN = EXTLOGPEN; + PEXTLOGPEN = ^EXTLOGPEN; + + EMREXTCREATEPEN = record + emr : EMR; + ihPen : DWORD; + offBmi : DWORD; + cbBmi : DWORD; + offBits : DWORD; + cbBits : DWORD; + elp : EXTLOGPEN; + end; + tagEMREXTCREATEPEN = EMREXTCREATEPEN; + TEMREXTCREATEPEN = EMREXTCREATEPEN; + PEMREXTCREATEPEN = ^EMREXTCREATEPEN; + + EMREXTFLOODFILL = record + emr : EMR; + ptlStart : POINTL; + crColor : COLORREF; + iMode : DWORD; + end; + tagEMREXTFLOODFILL = EMREXTFLOODFILL; + TEMREXTFLOODFILL = EMREXTFLOODFILL; + PEMREXTFLOODFILL = ^EMREXTFLOODFILL; + + EMREXTSELECTCLIPRGN = record + emr : EMR; + cbRgnData : DWORD; + iMode : DWORD; + RgnData : array[0..0] of BYTE; + end; + tagEMREXTSELECTCLIPRGN = EMREXTSELECTCLIPRGN; + TEMREXTSELECTCLIPRGN = EMREXTSELECTCLIPRGN; + PEMREXTSELECTCLIPRGN = ^EMREXTSELECTCLIPRGN; + + EMRTEXT = record + ptlReference : POINTL; + nChars : DWORD; + offString : DWORD; + fOptions : DWORD; + rcl : RECTL; + offDx : DWORD; + end; + tagEMRTEXT = EMRTEXT; + TEMRTEXT = EMRTEXT; + PEMRTEXT = ^EMRTEXT; + + EMREXTTEXTOUTA = record + emr : EMR; + rclBounds : RECTL; + iGraphicsMode : DWORD; + exScale : Single; + eyScale : Single; + emrtext : EMRTEXT; + end; + tagEMREXTTEXTOUTA = EMREXTTEXTOUTA; + TEMREXTTEXTOUTA = EMREXTTEXTOUTA; + PEMREXTTEXTOUTA = ^EMREXTTEXTOUTA; + + EMREXTTEXTOUTW = EMREXTTEXTOUTA; + TEMREXTTEXTOUTW = EMREXTTEXTOUTA; + PEMREXTTEXTOUTW = ^EMREXTTEXTOUTA; + + EMRFILLPATH = record + emr : EMR; + rclBounds : RECTL; + end; + tagEMRFILLPATH = EMRFILLPATH; + TEMRFILLPATH = EMRFILLPATH; + PEMRFILLPATH = ^EMRFILLPATH; + + EMRSTROKEANDFILLPATH = EMRFILLPATH; + TEMRSTROKEANDFILLPATH = EMRFILLPATH; + PEMRSTROKEANDFILLPATH = ^EMRFILLPATH; + + EMRSTROKEPATH = EMRFILLPATH; + TEMRSTROKEPATH = EMRFILLPATH; + PEMRSTROKEPATH = ^EMRFILLPATH; + + EMRFILLRGN = record + emr : EMR; + rclBounds : RECTL; + cbRgnData : DWORD; + ihBrush : DWORD; + RgnData : array[0..0] of BYTE; + end; + tagEMRFILLRGN = EMRFILLRGN; + TEMRFILLRGN = EMRFILLRGN; + PEMRFILLRGN = ^EMRFILLRGN; + + EMRFORMAT = record + dSignature : DWORD; + nVersion : DWORD; + cbData : DWORD; + offData : DWORD; + end; + tagEMRFORMAT = EMRFORMAT; + TEMRFORMAT = EMRFORMAT; + PEMRFORMAT = ^EMRFORMAT; + + SIZE = record + cx : LONG; + cy : LONG; + end; + LPSIZE = ^SIZE; + tagSIZE = SIZE; + TSIZE = SIZE; + PSIZE = ^SIZE; + + SIZEL = SIZE; //windef + TSIZEL = SIZE; //windef + PSIZEL = ^SIZE; + LPSIZEL = ^SIZE; + + EMRFRAMERGN = record + emr : EMR; + rclBounds : RECTL; + cbRgnData : DWORD; + ihBrush : DWORD; + szlStroke : SIZEL; + RgnData : array[0..0] of BYTE; + end; + tagEMRFRAMERGN = EMRFRAMERGN; + TEMRFRAMERGN = EMRFRAMERGN; + PEMRFRAMERGN = ^EMRFRAMERGN; + + EMRGDICOMMENT = record + emr : EMR; + cbData : DWORD; + Data : array[0..0] of BYTE; + end; + tagEMRGDICOMMENT = EMRGDICOMMENT; + TEMRGDICOMMENT = EMRGDICOMMENT; + PEMRGDICOMMENT = ^EMRGDICOMMENT; + + EMRINVERTRGN = record + emr : EMR; + rclBounds : RECTL; + cbRgnData : DWORD; + RgnData : array[0..0] of BYTE; + end; + tagEMRINVERTRGN = EMRINVERTRGN; + TEMRINVERTRGN = EMRINVERTRGN; + PEMRINVERTRGN = ^EMRINVERTRGN; + + EMRPAINTRGN = EMRINVERTRGN; + TEMRPAINTRGN = EMRINVERTRGN; + PEMRPAINTRGN = ^EMRINVERTRGN; + + EMRLINETO = record + emr : EMR; + ptl : POINTL; + end; + tagEMRLINETO = EMRLINETO; + TEMRLINETO = EMRLINETO; + PEMRLINETO = ^EMRLINETO; + + EMRMOVETOEX = EMRLINETO; + TEMRMOVETOEX = EMRLINETO; + PEMRMOVETOEX = ^EMRLINETO; + + EMRMASKBLT = record + emr : EMR; + rclBounds : RECTL; + xDest : LONG; + yDest : LONG; + cxDest : LONG; + cyDest : LONG; + dwRop : DWORD; + xSrc : LONG; + ySrc : LONG; + xformSrc : XFORM; + crBkColorSrc : COLORREF; + iUsageSrc : DWORD; + offBmiSrc : DWORD; + cbBmiSrc : DWORD; + offBitsSrc : DWORD; + cbBitsSrc : DWORD; + xMask : LONG; + yMask : LONG; + iUsageMask : DWORD; + offBmiMask : DWORD; + cbBmiMask : DWORD; + offBitsMask : DWORD; + cbBitsMask : DWORD; + end; + tagEMRMASKBLT = EMRMASKBLT; + TEMRMASKBLT = EMRMASKBLT; + PEMRMASKBLT = ^EMRMASKBLT; + + EMRMODIFYWORLDTRANSFORM = record + emr : EMR; + xform : XFORM; + iMode : DWORD; + end; + tagEMRMODIFYWORLDTRANSFORM = EMRMODIFYWORLDTRANSFORM; + TEMRMODIFYWORLDTRANSFORM = EMRMODIFYWORLDTRANSFORM; + PEMRMODIFYWORLDTRANSFORM = EMRMODIFYWORLDTRANSFORM; + + EMROFFSETCLIPRGN = record + emr : EMR; + ptlOffset : POINTL; + end; + tagEMROFFSETCLIPRGN = EMROFFSETCLIPRGN; + TEMROFFSETCLIPRGN = EMROFFSETCLIPRGN; + PEMROFFSETCLIPRGN = ^EMROFFSETCLIPRGN; + + EMRPLGBLT = record + emr : EMR; + rclBounds : RECTL; + aptlDest : array[0..2] of POINTL; + xSrc : LONG; + ySrc : LONG; + cxSrc : LONG; + cySrc : LONG; + xformSrc : XFORM; + crBkColorSrc : COLORREF; + iUsageSrc : DWORD; + offBmiSrc : DWORD; + cbBmiSrc : DWORD; + offBitsSrc : DWORD; + cbBitsSrc : DWORD; + xMask : LONG; + yMask : LONG; + iUsageMask : DWORD; + offBmiMask : DWORD; + cbBmiMask : DWORD; + offBitsMask : DWORD; + cbBitsMask : DWORD; + end; + tagEMRPLGBLT = EMRPLGBLT; + TEMRPLGBLT = EMRPLGBLT; + PEMRPLGBLT = ^EMRPLGBLT; + + EMRPOLYDRAW = record + emr : EMR; + rclBounds : RECTL; + cptl : DWORD; + aptl : array[0..0] of POINTL; + abTypes : array[0..0] of BYTE; + end; + tagEMRPOLYDRAW = EMRPOLYDRAW; + TEMRPOLYDRAW = EMRPOLYDRAW; + PEMRPOLYDRAW = ^EMRPOLYDRAW; + + EMRPOLYDRAW16 = record + emr : EMR; + rclBounds : RECTL; + cpts : DWORD; + apts : array[0..0] of POINTS; + abTypes : array[0..0] of BYTE; + end; + tagEMRPOLYDRAW16 = EMRPOLYDRAW16; + TEMRPOLYDRAW16 = EMRPOLYDRAW16; + PEMRPOLYDRAW16 = ^EMRPOLYDRAW16; + + EMRPOLYLINE = record + emr : EMR; + rclBounds : RECTL; + cptl : DWORD; + aptl : array[0..0] of POINTL; + end; + tagEMRPOLYLINE = EMRPOLYLINE; + TEMRPOLYLINE = EMRPOLYLINE; + PEMRPOLYLINE = ^EMRPOLYLINE; + + EMRPOLYBEZIER = EMRPOLYLINE; + TEMRPOLYBEZIER = EMRPOLYLINE; + PEMRPOLYBEZIER = ^EMRPOLYLINE; + + EMRPOLYGON = EMRPOLYLINE; + TEMRPOLYGON = EMRPOLYLINE; + PEMRPOLYGON = ^EMRPOLYLINE; + + EMRPOLYBEZIERTO = EMRPOLYLINE; + TEMRPOLYBEZIERTO = EMRPOLYLINE; + PEMRPOLYBEZIERTO = ^EMRPOLYLINE; + + EMRPOLYLINETO = EMRPOLYLINE; + TEMRPOLYLINETO = EMRPOLYLINE; + PEMRPOLYLINETO = ^EMRPOLYLINE; + + EMRPOLYLINE16 = record + emr : EMR; + rclBounds : RECTL; + cpts : DWORD; + apts : array[0..0] of POINTL; + end; + tagEMRPOLYLINE16 = EMRPOLYLINE16; + TEMRPOLYLINE16 = EMRPOLYLINE16; + PEMRPOLYLINE16 = ^EMRPOLYLINE16; + + EMRPOLYBEZIER16 = EMRPOLYLINE16; + TEMRPOLYBEZIER16 = EMRPOLYLINE16; + PEMRPOLYBEZIER16 = ^EMRPOLYLINE16; + + EMRPOLYGON16 = EMRPOLYLINE16; + TEMRPOLYGON16 = EMRPOLYLINE16; + PEMRPOLYGON16 = ^EMRPOLYLINE16; + + EMRPOLYBEZIERTO16 = EMRPOLYLINE16; + TEMRPOLYBEZIERTO16 = EMRPOLYLINE16; + PEMRPOLYBEZIERTO16 = ^EMRPOLYLINE16; + + EMRPOLYLINETO16 = EMRPOLYLINE16; + TEMRPOLYLINETO16 = EMRPOLYLINE16; + PEMRPOLYLINETO16 = ^EMRPOLYLINE16; + + EMRPOLYPOLYLINE = record + emr : EMR; + rclBounds : RECTL; + nPolys : DWORD; + cptl : DWORD; + aPolyCounts : array[0..0] of DWORD; + aptl : array[0..0] of POINTL; + end; + tagEMRPOLYPOLYLINE = EMRPOLYPOLYLINE; + TEMRPOLYPOLYLINE = EMRPOLYPOLYLINE; + PEMRPOLYPOLYLINE = ^EMRPOLYPOLYLINE; + + EMRPOLYPOLYGON = EMRPOLYPOLYLINE; + TEMRPOLYPOLYGON = EMRPOLYPOLYLINE; + PEMRPOLYPOLYGON = ^EMRPOLYPOLYLINE; + + EMRPOLYPOLYLINE16 = record + emr : EMR; + rclBounds : RECTL; + nPolys : DWORD; + cpts : DWORD; + aPolyCounts : array[0..0] of DWORD; + apts : array[0..0] of POINTS; + end; + tagEMRPOLYPOLYLINE16 = EMRPOLYPOLYLINE16; + TEMRPOLYPOLYLINE16 = EMRPOLYPOLYLINE16; + PEMRPOLYPOLYLINE16 = ^EMRPOLYPOLYLINE16; + + EMRPOLYPOLYGON16 = EMRPOLYPOLYLINE16; + TEMRPOLYPOLYGON16 = EMRPOLYPOLYLINE16; + PEMRPOLYPOLYGON16 = ^EMRPOLYPOLYLINE16; + + EMRPOLYTEXTOUTA = record + emr : EMR; + rclBounds : RECTL; + iGraphicsMode : DWORD; + exScale : Single; + eyScale : Single; + cStrings : LONG; + aemrtext : array[0..0] of EMRTEXT; + end; + tagEMRPOLYTEXTOUTA = EMRPOLYTEXTOUTA; + TEMRPOLYTEXTOUTA = EMRPOLYTEXTOUTA; + PEMRPOLYTEXTOUTA = ^EMRPOLYTEXTOUTA; + + EMRPOLYTEXTOUTW = EMRPOLYTEXTOUTA; + TEMRPOLYTEXTOUTW = EMRPOLYTEXTOUTA; + PEMRPOLYTEXTOUTW = ^EMRPOLYTEXTOUTA; + + EMRRESIZEPALETTE = record + emr : EMR; + ihPal : DWORD; + cEntries : DWORD; + end; + tagEMRRESIZEPALETTE = EMRRESIZEPALETTE; + TEMRRESIZEPALETTE = EMRRESIZEPALETTE; + PEMRRESIZEPALETTE = ^EMRRESIZEPALETTE; + + EMRRESTOREDC = record + emr : EMR; + iRelative : LONG; + end; + tagEMRRESTOREDC = EMRRESTOREDC; + TEMRRESTOREDC = EMRRESTOREDC; + PEMRRESTOREDC = ^EMRRESTOREDC; + + EMRROUNDRECT = record + emr : EMR; + rclBox : RECTL; + szlCorner : SIZEL; + end; + tagEMRROUNDRECT = EMRROUNDRECT; + TEMRROUNDRECT = EMRROUNDRECT; + PEMRROUNDRECT = ^EMRROUNDRECT; + + EMRSCALEVIEWPORTEXTEX = record + emr : EMR; + xNum : LONG; + xDenom : LONG; + yNum : LONG; + yDenom : LONG; + end; + tagEMRSCALEVIEWPORTEXTEX = EMRSCALEVIEWPORTEXTEX; + TEMRSCALEVIEWPORTEXTEX = EMRSCALEVIEWPORTEXTEX; + PEMRSCALEVIEWPORTEXTEX = ^EMRSCALEVIEWPORTEXTEX; + + EMRSCALEWINDOWEXTEX = EMRSCALEVIEWPORTEXTEX; + TEMRSCALEWINDOWEXTEX = EMRSCALEVIEWPORTEXTEX; + PEMRSCALEWINDOWEXTEX = ^EMRSCALEVIEWPORTEXTEX; + + EMRSELECTCOLORSPACE = record + emr : EMR; + ihCS : DWORD; + end; + tagEMRSELECTCOLORSPACE = EMRSELECTCOLORSPACE; + TEMRSELECTCOLORSPACE = EMRSELECTCOLORSPACE; + PEMRSELECTCOLORSPACE = ^EMRSELECTCOLORSPACE; + + EMRDELETECOLORSPACE = EMRSELECTCOLORSPACE; + TEMRDELETECOLORSPACE = EMRSELECTCOLORSPACE; + PEMRDELETECOLORSPACE = ^EMRSELECTCOLORSPACE; + + EMRSELECTOBJECT = record + emr : EMR; + ihObject : DWORD; + end; + tagEMRSELECTOBJECT = EMRSELECTOBJECT; + TEMRSELECTOBJECT = EMRSELECTOBJECT; + PEMRSELECTOBJECT = ^EMRSELECTOBJECT; + + EMRDELETEOBJECT = EMRSELECTOBJECT; + TEMRDELETEOBJECT = EMRSELECTOBJECT; + PEMRDELETEOBJECT = ^EMRSELECTOBJECT; + + EMRSELECTPALETTE = record + emr : EMR; + ihPal : DWORD; + end; + tagEMRSELECTPALETTE = EMRSELECTPALETTE; + TEMRSELECTPALETTE = EMRSELECTPALETTE; + PEMRSELECTPALETTE = ^EMRSELECTPALETTE; + + EMRSETARCDIRECTION = record + emr : EMR; + iArcDirection : DWORD; + end; + tagEMRSETARCDIRECTION = EMRSETARCDIRECTION; + TEMRSETARCDIRECTION = EMRSETARCDIRECTION; + PEMRSETARCDIRECTION = ^EMRSETARCDIRECTION; + + EMRSETBKCOLOR = record + emr : EMR; + crColor : COLORREF; + end; + tagEMRSETTEXTCOLOR = EMRSETBKCOLOR; + TEMRSETBKCOLOR = EMRSETBKCOLOR; + PEMRSETBKCOLOR = ^EMRSETBKCOLOR; + + EMRSETTEXTCOLOR = EMRSETBKCOLOR; + TEMRSETTEXTCOLOR = EMRSETBKCOLOR; + PEMRSETTEXTCOLOR = ^EMRSETBKCOLOR; + + EMRSETCOLORADJUSTMENT = record + emr : EMR; + ColorAdjustment : COLORADJUSTMENT; + end; + tagEMRSETCOLORADJUSTMENT = EMRSETCOLORADJUSTMENT; + TEMRSETCOLORADJUSTMENT = EMRSETCOLORADJUSTMENT; + PEMRSETCOLORADJUSTMENT = ^EMRSETCOLORADJUSTMENT; + + EMRSETDIBITSTODEVICE = record + emr : EMR; + rclBounds : RECTL; + xDest : LONG; + yDest : LONG; + xSrc : LONG; + ySrc : LONG; + cxSrc : LONG; + cySrc : LONG; + offBmiSrc : DWORD; + cbBmiSrc : DWORD; + offBitsSrc : DWORD; + cbBitsSrc : DWORD; + iUsageSrc : DWORD; + iStartScan : DWORD; + cScans : DWORD; + end; + tagEMRSETDIBITSTODEVICE = EMRSETDIBITSTODEVICE; + TEMRSETDIBITSTODEVICE = EMRSETDIBITSTODEVICE; + PEMRSETDIBITSTODEVICE = ^EMRSETDIBITSTODEVICE; + + EMRSETMAPPERFLAGS = record + emr : EMR; + dwFlags : DWORD; + end; + tagEMRSETMAPPERFLAGS = EMRSETMAPPERFLAGS; + TEMRSETMAPPERFLAGS = EMRSETMAPPERFLAGS; + PEMRSETMAPPERFLAGS = ^EMRSETMAPPERFLAGS; + + EMRSETMITERLIMIT = record + emr : EMR; + eMiterLimit : Single; + end; + tagEMRSETMITERLIMIT = EMRSETMITERLIMIT; + TEMRSETMITERLIMIT = EMRSETMITERLIMIT; + PEMRSETMITERLIMIT = ^EMRSETMITERLIMIT; + + EMRSETPALETTEENTRIES = record + emr : EMR; + ihPal : DWORD; + iStart : DWORD; + cEntries : DWORD; + aPalEntries : array[0..0] of PALETTEENTRY; + end; + tagEMRSETPALETTEENTRIES = EMRSETPALETTEENTRIES; + TEMRSETPALETTEENTRIES = EMRSETPALETTEENTRIES; + PEMRSETPALETTEENTRIES = ^EMRSETPALETTEENTRIES; + + EMRSETPIXELV = record + emr : EMR; + ptlPixel : POINTL; + crColor : COLORREF; + end; + tagEMRSETPIXELV = EMRSETPIXELV; + TEMRSETPIXELV = EMRSETPIXELV; + PEMRSETPIXELV = ^EMRSETPIXELV; + + EMRSETVIEWPORTEXTEX = record + emr : EMR; + szlExtent : SIZEL; + end; + tagEMRSETVIEWPORTEXTEX = EMRSETVIEWPORTEXTEX; + TEMRSETVIEWPORTEXTEX = EMRSETVIEWPORTEXTEX; + PEMRSETVIEWPORTEXTEX = ^EMRSETVIEWPORTEXTEX; + + EMRSETWINDOWEXTEX = EMRSETVIEWPORTEXTEX; + TEMRSETWINDOWEXTEX = EMRSETVIEWPORTEXTEX; + PEMRSETWINDOWEXTEX = ^EMRSETVIEWPORTEXTEX; + + EMRSETVIEWPORTORGEX = record + emr : EMR; + ptlOrigin : POINTL; + end; + tagEMRSETVIEWPORTORGEX = EMRSETVIEWPORTORGEX; + TEMRSETVIEWPORTORGEX = EMRSETVIEWPORTORGEX; + PEMRSETVIEWPORTORGEX = ^EMRSETVIEWPORTORGEX; + + EMRSETWINDOWORGEX = EMRSETVIEWPORTORGEX; + TEMRSETWINDOWORGEX = EMRSETVIEWPORTORGEX; + PEMRSETWINDOWORGEX = ^EMRSETVIEWPORTORGEX; + + EMRSETBRUSHORGEX = EMRSETVIEWPORTORGEX; + TEMRSETBRUSHORGEX = EMRSETVIEWPORTORGEX; + PEMRSETBRUSHORGEX = ^EMRSETVIEWPORTORGEX; + + EMRSETWORLDTRANSFORM = record + emr : EMR; + xform : XFORM; + end; + tagEMRSETWORLDTRANSFORM = EMRSETWORLDTRANSFORM; + TEMRSETWORLDTRANSFORM = EMRSETWORLDTRANSFORM; + PEMRSETWORLDTRANSFORM = ^EMRSETWORLDTRANSFORM; + + EMRSTRETCHBLT = record + emr : EMR; + rclBounds : RECTL; + xDest : LONG; + yDest : LONG; + cxDest : LONG; + cyDest : LONG; + dwRop : DWORD; + xSrc : LONG; + ySrc : LONG; + xformSrc : XFORM; + crBkColorSrc : COLORREF; + iUsageSrc : DWORD; + offBmiSrc : DWORD; + cbBmiSrc : DWORD; + offBitsSrc : DWORD; + cbBitsSrc : DWORD; + cxSrc : LONG; + cySrc : LONG; + end; + tagEMRSTRETCHBLT = EMRSTRETCHBLT; + TEMRSTRETCHBLT = EMRSTRETCHBLT; + PEMRSTRETCHBLT = ^EMRSTRETCHBLT; + + EMRSTRETCHDIBITS = record + emr : EMR; + rclBounds : RECTL; + xDest : LONG; + yDest : LONG; + xSrc : LONG; + ySrc : LONG; + cxSrc : LONG; + cySrc : LONG; + offBmiSrc : DWORD; + cbBmiSrc : DWORD; + offBitsSrc : DWORD; + cbBitsSrc : DWORD; + iUsageSrc : DWORD; + dwRop : DWORD; + cxDest : LONG; + cyDest : LONG; + end; + tagEMRSTRETCHDIBITS = EMRSTRETCHDIBITS; + TEMRSTRETCHDIBITS = EMRSTRETCHDIBITS; + PEMRSTRETCHDIBITS = ^EMRSTRETCHDIBITS; + + EMRABORTPATH = record + emr : EMR; + end; + TEMRABORTPATH = EMRABORTPATH; + PEMRABORTPATH = ^EMRABORTPATH; + + tagABORTPATH = EMRABORTPATH; + TABORTPATH = EMRABORTPATH; + + EMRBEGINPATH = EMRABORTPATH; + TEMRBEGINPATH = EMRABORTPATH; + PEMRBEGINPATH = ^EMRABORTPATH; + + EMRENDPATH = EMRABORTPATH; + TEMRENDPATH = EMRABORTPATH; + PEMRENDPATH = ^EMRABORTPATH; + + EMRCLOSEFIGURE = EMRABORTPATH; + TEMRCLOSEFIGURE = EMRABORTPATH; + PEMRCLOSEFIGURE = ^EMRABORTPATH; + + EMRFLATTENPATH = EMRABORTPATH; + TEMRFLATTENPATH = EMRABORTPATH; + PEMRFLATTENPATH = ^EMRABORTPATH; + + EMRWIDENPATH = EMRABORTPATH; + TEMRWIDENPATH = EMRABORTPATH; + PEMRWIDENPATH = ^EMRABORTPATH; + + EMRSETMETARGN = EMRABORTPATH; + TEMRSETMETARGN = EMRABORTPATH; + PEMRSETMETARGN = ^EMRABORTPATH; + + EMRSAVEDC = EMRABORTPATH; + TEMRSAVEDC = EMRABORTPATH; + PEMRSAVEDC = ^EMRABORTPATH; + + EMRREALIZEPALETTE = EMRABORTPATH; + TEMRREALIZEPALETTE = EMRABORTPATH; + PEMRREALIZEPALETTE = ^EMRABORTPATH; + + EMRSELECTCLIPPATH = record + emr : EMR; + iMode : DWORD; + end; + tagEMRSELECTCLIPPATH = EMRSELECTCLIPPATH; + TEMRSELECTCLIPPATH = EMRSELECTCLIPPATH; + PEMRSELECTCLIPPATH = ^EMRSELECTCLIPPATH; + + EMRSETBKMODE = EMRSELECTCLIPPATH; + TEMRSETBKMODE = EMRSELECTCLIPPATH; + PEMRSETBKMODE = ^EMRSELECTCLIPPATH; + + EMRSETMAPMODE = EMRSELECTCLIPPATH; + TEMRSETMAPMODE = EMRSELECTCLIPPATH; + PEMRSETMAPMODE = ^EMRSELECTCLIPPATH; + + EMRSETPOLYFILLMODE = EMRSELECTCLIPPATH; + TEMRSETPOLYFILLMODE = EMRSELECTCLIPPATH; + PEMRSETPOLYFILLMODE = ^EMRSELECTCLIPPATH; + + EMRSETROP2 = EMRSELECTCLIPPATH; + TEMRSETROP2 = EMRSELECTCLIPPATH; + PEMRSETROP2 = ^EMRSELECTCLIPPATH; + + EMRSETSTRETCHBLTMODE = EMRSELECTCLIPPATH; + TEMRSETSTRETCHBLTMODE = EMRSELECTCLIPPATH; + PEMRSETSTRETCHBLTMODE = ^EMRSELECTCLIPPATH; + + EMRSETTEXTALIGN = EMRSELECTCLIPPATH; + TEMRSETTEXTALIGN = EMRSELECTCLIPPATH; + PEMRSETTEXTALIGN = ^EMRSELECTCLIPPATH; + + EMRENABLEICM = EMRSELECTCLIPPATH; + TEMRENABLEICM = EMRSELECTCLIPPATH; + PEMRENABLEICM = ^EMRSELECTCLIPPATH; + + NMHDR = record + hwndFrom : HWND; + idFrom : UINT; + code : UINT; + end; + tagNMHDR = NMHDR; + TNMHDR = NMHDR; + PNMHDR = ^NMHDR; + + ENCORRECTTEXT = record + nmhdr : NMHDR; + chrg : CHARRANGE; + seltyp : WORD; + end; + _encorrecttext = ENCORRECTTEXT; + Tencorrecttext = ENCORRECTTEXT; + Pencorrecttext = ^ENCORRECTTEXT; + + ENDROPFILES = record + nmhdr : NMHDR; + hDrop : HANDLE; + cp : LONG; + fProtected : WINBOOL; + end; + _endropfiles = ENDROPFILES; + Tendropfiles = ENDROPFILES; + Pendropfiles = ^ENDROPFILES; + + ENSAVECLIPBOARD = record + nmhdr : NMHDR; + cObjectCount : LONG; + cch : LONG; + end; + TENSAVECLIPBOARD = ENSAVECLIPBOARD; + PENSAVECLIPBOARD = ^ENSAVECLIPBOARD; + + ENOLEOPFAILED = record + nmhdr : NMHDR; + iob : LONG; + lOper : LONG; + hr : HRESULT; + end; + TENOLEOPFAILED = ENOLEOPFAILED; + PENOLEOPFAILED = ^ENOLEOPFAILED; + + ENHMETAHEADER = record + iType : DWORD; + nSize : DWORD; + rclBounds : RECTL; + rclFrame : RECTL; + dSignature : DWORD; + nVersion : DWORD; + nBytes : DWORD; + nRecords : DWORD; + nHandles : WORD; + sReserved : WORD; + nDescription : DWORD; + offDescription : DWORD; + nPalEntries : DWORD; + szlDevice : SIZEL; + szlMillimeters : SIZEL; + end; + LPENHMETAHEADER = ^ENHMETAHEADER; + tagENHMETAHEADER = ENHMETAHEADER; + TENHMETAHEADER = ENHMETAHEADER; + PENHMETAHEADER = ^ENHMETAHEADER; + + ENHMETARECORD = record + iType : DWORD; + nSize : DWORD; + dParm : array[0..0] of DWORD; + end; + LPENHMETARECORD = ^ENHMETARECORD; + tagENHMETARECORD = ENHMETARECORD; + TENHMETARECORD = ENHMETARECORD; + PENHMETARECORD = ^ENHMETARECORD; + + ENPROTECTED = record + nmhdr : NMHDR; + msg : UINT; + wParam : WPARAM; + lParam : LPARAM; + chrg : CHARRANGE; + end; + _enprotected = ENPROTECTED; + Tenprotected = ENPROTECTED; + Penprotected = ^ENPROTECTED; + + SERVICE_STATUS = record + dwServiceType : DWORD; + dwCurrentState : DWORD; + dwControlsAccepted : DWORD; + dwWin32ExitCode : DWORD; + dwServiceSpecificExitCode : DWORD; + dwCheckPoint : DWORD; + dwWaitHint : DWORD; + end; + LPSERVICE_STATUS = ^SERVICE_STATUS; + _SERVICE_STATUS = SERVICE_STATUS; + TSERVICESTATUS = SERVICE_STATUS; + PSERVICESTATUS = ^SERVICE_STATUS; + + ENUM_SERVICE_STATUS = record + lpServiceName : LPTSTR; + lpDisplayName : LPTSTR; + ServiceStatus : SERVICE_STATUS; + end; + LPENUM_SERVICE_STATUS = ^ENUM_SERVICE_STATUS; + _ENUM_SERVICE_STATUS = ENUM_SERVICE_STATUS; + TENUMSERVICESTATUS = ENUM_SERVICE_STATUS; + PENUMSERVICESTATUS = ^ENUM_SERVICE_STATUS; + + ENUMLOGFONT = record + elfLogFont : LOGFONT; + elfFullName : array[0..(LF_FULLFACESIZE)-1] of BCHAR; + elfStyle : array[0..(LF_FACESIZE)-1] of BCHAR; + end; + tagENUMLOGFONT = ENUMLOGFONT; + TENUMLOGFONT = ENUMLOGFONT; + PENUMLOGFONT = ^ENUMLOGFONT; + + ENUMLOGFONTEX = record + elfLogFont : LOGFONT; + elfFullName : array[0..(LF_FULLFACESIZE)-1] of BCHAR; + elfStyle : array[0..(LF_FACESIZE)-1] of BCHAR; + elfScript : array[0..(LF_FACESIZE)-1] of BCHAR; + end; + tagENUMLOGFONTEX = ENUMLOGFONTEX; + TENUMLOGFONTEX = ENUMLOGFONTEX; + PENUMLOGFONTEX = ^ENUMLOGFONTEX; + { + Then follow: + + TCHAR SourceName[] + TCHAR Computername[] + SID UserSid + TCHAR Strings[] + BYTE Data[] + CHAR Pad[] + DWORD Length; + } + + EVENTLOGRECORD = record + Length : DWORD; + Reserved : DWORD; + RecordNumber : DWORD; + TimeGenerated : DWORD; + TimeWritten : DWORD; + EventID : DWORD; + EventType : WORD; + NumStrings : WORD; + EventCategory : WORD; + ReservedFlags : WORD; + ClosingRecordNumber : DWORD; + StringOffset : DWORD; + UserSidLength : DWORD; + UserSidOffset : DWORD; + DataLength : DWORD; + DataOffset : DWORD; + end; + _EVENTLOGRECORD = EVENTLOGRECORD; + TEVENTLOGRECORD = EVENTLOGRECORD; + PEVENTLOGRECORD = ^EVENTLOGRECORD; + + EVENTMSG = record + message : UINT; + paramL : UINT; + paramH : UINT; + time : DWORD; + hwnd : HWND; + end; + tagEVENTMSG = EVENTMSG; + TEVENTMSG = EVENTMSG; + PEVENTMSG = ^EVENTMSG; + + EXCEPTION_POINTERS = record //winnt + ExceptionRecord : PEXCEPTION_RECORD; + ContextRecord : PCONTEXT; + end; + LPEXCEPTION_POINTERS = ^EXCEPTION_POINTERS; + PEXCEPTION_POINTERS = ^EXCEPTION_POINTERS; + _EXCEPTION_POINTERS = EXCEPTION_POINTERS; + TEXCEPTIONPOINTERS = EXCEPTION_POINTERS; + PEXCEPTIONPOINTERS = ^EXCEPTION_POINTERS; + + EXT_BUTTON = record + idCommand : WORD; + idsHelp : WORD; + fsStyle : WORD; + end; + LPEXT_BUTTON = ^EXT_BUTTON; + _EXT_BUTTON = EXT_BUTTON; + TEXTBUTTON = EXT_BUTTON; + PEXTBUTTON = ^EXT_BUTTON; + + FILTERKEYS = record + cbSize : UINT; + dwFlags : DWORD; + iWaitMSec : DWORD; + iDelayMSec : DWORD; + iRepeatMSec : DWORD; + iBounceMSec : DWORD; + end; + tagFILTERKEYS = FILTERKEYS; + TFILTERKEYS = FILTERKEYS; + PFILTERKEYS = ^FILTERKEYS; + + FIND_NAME_BUFFER = record + length : UCHAR; + access_control : UCHAR; + frame_control : UCHAR; + destination_addr : array[0..5] of UCHAR; + source_addr : array[0..5] of UCHAR; + routing_info : array[0..17] of UCHAR; + end; + _FIND_NAME_BUFFER = FIND_NAME_BUFFER; + TFINDNAMEBUFFER = FIND_NAME_BUFFER; + PFINDNAMEBUFFER = ^FIND_NAME_BUFFER; + + FIND_NAME_HEADER = record + node_count : WORD; + reserved : UCHAR; + unique_group : UCHAR; + end; + _FIND_NAME_HEADER = FIND_NAME_HEADER; + TFINDNAMEHEADER = FIND_NAME_HEADER; + PFINDNAMEHEADER = ^FIND_NAME_HEADER; + + FINDREPLACE = record + lStructSize : DWORD; + hwndOwner : HWND; + hInstance : HINST; + Flags : DWORD; + lpstrFindWhat : LPTSTR; + lpstrReplaceWith : LPTSTR; + wFindWhatLen : WORD; + wReplaceWithLen : WORD; + lCustData : LPARAM; + lpfnHook : LPFRHOOKPROC; + lpTemplateName : LPCTSTR; + end; + LPFINDREPLACE = ^FINDREPLACE; + TFINDREPLACE = FINDREPLACE; + PFINDREPLACE = ^FINDREPLACE; + + {FINDTEXT = record conflicts with FindText function } + TFINDTEXT = record + chrg : CHARRANGE; + lpstrText : LPSTR; + end; + _findtext = TFINDTEXT; + Pfindtext = ^TFINDTEXT; + + FINDTEXTEX = record + chrg : CHARRANGE; + lpstrText : LPSTR; + chrgText : CHARRANGE; + end; + _findtextex = FINDTEXTEX; + Tfindtextex = FINDTEXTEX; + Pfindtextex = ^FINDTEXTEX; + + FMS_GETDRIVEINFO = record + dwTotalSpace : DWORD; + dwFreeSpace : DWORD; + szPath : array[0..259] of TCHAR; + szVolume : array[0..13] of TCHAR; + szShare : array[0..127] of TCHAR; + end; + _FMS_GETDRIVEINFO = FMS_GETDRIVEINFO; + TFMSGETDRIVEINFO = FMS_GETDRIVEINFO; + PFMSGETDRIVEINFO = ^FMS_GETDRIVEINFO; + + FMS_GETFILESEL = record + ftTime : FILETIME; + dwSize : DWORD; + bAttr : BYTE; + szName : array[0..259] of TCHAR; + end; + _FMS_GETFILESEL = FMS_GETFILESEL; + TFMSGETFILESEL = FMS_GETFILESEL; + PFMSGETFILESEL = ^FMS_GETFILESEL; + + FMS_LOAD = record + dwSize : DWORD; + szMenuName : array[0..(MENU_TEXT_LEN)-1] of TCHAR; + hMenu : HMENU; + wMenuDelta : UINT; + end; + _FMS_LOAD = FMS_LOAD; + TFMSLOAD = FMS_LOAD; + PFMSLOAD = ^FMS_LOAD; + + FMS_TOOLBARLOAD = record + dwSize : DWORD; + lpButtons : LPEXT_BUTTON; + cButtons : WORD; + cBitmaps : WORD; + idBitmap : WORD; + hBitmap : HBITMAP; + end; + _FMS_TOOLBARLOAD = FMS_TOOLBARLOAD; + TFMSTOOLBARLOAD = FMS_TOOLBARLOAD; + PFMSTOOLBARLOAD = ^FMS_TOOLBARLOAD; + + FOCUS_EVENT_RECORD = record + bSetFocus : WINBOOL; + end; + _FOCUS_EVENT_RECORD = FOCUS_EVENT_RECORD; + TFOCUSEVENTRECORD = FOCUS_EVENT_RECORD; + PFOCUSEVENTRECORD = ^FOCUS_EVENT_RECORD; + + FORM_INFO_1 = record + Flags : DWORD; + pName : LPTSTR; + Size : SIZEL; + ImageableArea : RECTL; + end; + _FORM_INFO_1 = FORM_INFO_1; + TFORMINFO1 = FORM_INFO_1; + PFORMINFO1 = ^FORM_INFO_1; + + FORMAT_PARAMETERS = record + MediaType : MEDIA_TYPE; + StartCylinderNumber : DWORD; + EndCylinderNumber : DWORD; + StartHeadNumber : DWORD; + EndHeadNumber : DWORD; + end; + _FORMAT_PARAMETERS = FORMAT_PARAMETERS; + TFORMATPARAMETERS = FORMAT_PARAMETERS; + PFORMATPARAMETERS = ^FORMAT_PARAMETERS; + + FORMATRANGE = record + _hdc : HDC; + hdcTarget : HDC; + rc : RECT; + rcPage : RECT; + chrg : CHARRANGE; + end; + _formatrange = FORMATRANGE; + Tformatrange = FORMATRANGE; + Pformatrange = ^FORMATRANGE; + + GCP_RESULTS = record + lStructSize : DWORD; + lpOutString : LPTSTR; + lpOrder : ^UINT; + lpDx : ^WINT; + lpCaretPos : ^WINT; + lpClass : LPTSTR; + lpGlyphs : ^UINT; + nGlyphs : UINT; + nMaxFit : UINT; + end; + LPGCP_RESULTS = ^GCP_RESULTS; + tagGCP_RESULTS = GCP_RESULTS; + TGCPRESULTS = GCP_RESULTS; + PGCPRESULTS = ^GCP_RESULTS; +// +// Define the generic mapping array. This is used to denote the +// mapping of each generic access right to a specific access mask. +// + GENERIC_MAPPING = record //winnt + GenericRead : ACCESS_MASK; + GenericWrite : ACCESS_MASK; + GenericExecute : ACCESS_MASK; + GenericAll : ACCESS_MASK; + end; + PGENERIC_MAPPING = ^GENERIC_MAPPING; + _GENERIC_MAPPING = GENERIC_MAPPING; + TGENERICMAPPING = GENERIC_MAPPING; + PGENERICMAPPING = ^GENERIC_MAPPING; + + GLYPHMETRICS = record + gmBlackBoxX : UINT; + gmBlackBoxY : UINT; + gmptGlyphOrigin : POINT; + gmCellIncX : integer; + gmCellIncY : integer; + end; + LPGLYPHMETRICS = ^GLYPHMETRICS; + _GLYPHMETRICS = GLYPHMETRICS; + TGLYPHMETRICS = GLYPHMETRICS; + PGLYPHMETRICS = ^GLYPHMETRICS; + + HANDLETABLE = record + objectHandle : array[0..0] of HGDIOBJ; + end; + tagHANDLETABLE = HANDLETABLE; + THANDLETABLE = HANDLETABLE; + LPHANDLETABLE = ^HANDLETABLE; + + HD_HITTESTINFO = record + pt : POINT; + flags : UINT; + iItem : longint; + end; + _HD_HITTESTINFO = HD_HITTESTINFO; + THDHITTESTINFO = HD_HITTESTINFO; + PHDHITTESTINFO = ^HD_HITTESTINFO; + + HD_ITEM = record + mask : UINT; + cxy : longint; + pszText : LPTSTR; + hbm : HBITMAP; + cchTextMax : longint; + fmt : longint; + lParam : LPARAM; + end; + _HD_ITEM = HD_ITEM; + THDITEM = HD_ITEM; + PHDITEM = ^HD_ITEM; + + WINDOWPOS = record + _hwnd : HWND; + hwndInsertAfter : HWND; + x : longint; + y : longint; + cx : longint; + cy : longint; + flags : UINT; + end; + LPWINDOWPOS = ^WINDOWPOS; + _WINDOWPOS = WINDOWPOS; + TWINDOWPOS = WINDOWPOS; + PWINDOWPOS = ^WINDOWPOS; + + HD_LAYOUT = record + prc : ^RECT; + pwpos : ^WINDOWPOS; + end; + _HD_LAYOUT = HD_LAYOUT; + THDLAYOUT = HD_LAYOUT; + PHDLAYOUT = ^HD_LAYOUT; + + HD_NOTIFY = record + hdr : NMHDR; + iItem : longint; + iButton : longint; + pitem : ^HD_ITEM; + end; + _HD_NOTIFY = HD_NOTIFY; + THDNOTIFY = HD_NOTIFY; + PHDNOTIFY = ^HD_NOTIFY; + + HELPINFO = record + cbSize : UINT; + iContextType : longint; + iCtrlId : longint; + hItemHandle : HANDLE; + dwContextId : DWORD; + MousePos : POINT; + end; + LPHELPINFO = ^HELPINFO; + tagHELPINFO = HELPINFO; + THELPINFO = HELPINFO; + PHELPINFO = ^HELPINFO; + + HELPWININFO = record + wStructSize : longint; + x : longint; + y : longint; + dx : longint; + dy : longint; + wMax : longint; + rgchMember : array[0..1] of TCHAR; + end; + THELPWININFO = HELPWININFO; + PHELPWININFO = ^HELPWININFO; + + HIGHCONTRAST = record + cbSize : UINT; + dwFlags : DWORD; + lpszDefaultScheme : LPTSTR; + end; + LPHIGHCONTRAST = ^HIGHCONTRAST; + tagHIGHCONTRAST = HIGHCONTRAST; + THIGHCONTRAST = HIGHCONTRAST; + PHIGHCONTRAST = ^HIGHCONTRAST; + + HSZPAIR = record + hszSvc : HSZ; + hszTopic : HSZ; + end; + tagHSZPAIR = HSZPAIR; + THSZPAIR = HSZPAIR; + PHSZPAIR = ^HSZPAIR; + + ICONINFO = record + fIcon : WINBOOL; + xHotspot : DWORD; + yHotspot : DWORD; + hbmMask : HBITMAP; + hbmColor : HBITMAP; + end; + _ICONINFO = ICONINFO; + TICONINFO = ICONINFO; + PICONINFO = ^ICONINFO; + + ICONMETRICS = record + cbSize : UINT; + iHorzSpacing : longint; + iVertSpacing : longint; + iTitleWrap : longint; + lfFont : LOGFONT; + end; + LPICONMETRICS = ^ICONMETRICS; + tagICONMETRICS = ICONMETRICS; + TICONMETRICS = ICONMETRICS; + PICONMETRICS = ^ICONMETRICS; + + IMAGELISTDRAWPARAMS = record //+commctrl + cbSize : DWORD; + himl : HIMAGELIST; + i : Integer; + hdcDst : HDC; + x : Integer; + y : Integer; + cx : Integer; + cy : Integer; + xBitmap : Integer; // x offest from the upperleft of bitmap + yBitmap : Integer; // y offset from the upperleft of bitmap + rgbBk : COLORREF; + rgbFg : COLORREF; + fStyle : UINT; + dwRop : DWORD; + end; + + _IMAGELISTDRAWPARAMS=IMAGELISTDRAWPARAMS; + PIMAGELISTDRAWPARAMS=^IMAGELISTDRAWPARAMS; + + IMAGEINFO = record + hbmImage : HBITMAP; + hbmMask : HBITMAP; + Unused1 : longint; + Unused2 : longint; + rcImage : RECT; + end; + _IMAGEINFO = IMAGEINFO; + TIMAGEINFO = IMAGEINFO; + PIMAGEINFO = ^IMAGEINFO; + + KEY_EVENT_RECORD = packed record + bKeyDown : WINBOOL; + wRepeatCount : WORD; + wVirtualKeyCode : WORD; + wVirtualScanCode : WORD; + case longint of + 0 : ( UnicodeChar : WCHAR; + dwControlKeyState : DWORD; ); + 1 : ( AsciiChar : CHAR ); + end; + _KEY_EVENT_RECORD = KEY_EVENT_RECORD; + TKEYEVENTRECORD = KEY_EVENT_RECORD; + PKEYEVENTRECORD = ^KEY_EVENT_RECORD; + + MOUSE_EVENT_RECORD = record + dwMousePosition : COORD; + dwButtonState : DWORD; + dwControlKeyState : DWORD; + dwEventFlags : DWORD; + end; + _MOUSE_EVENT_RECORD = MOUSE_EVENT_RECORD; + TMOUSEEVENTRECORD = MOUSE_EVENT_RECORD; + PMOUSEEVENTRECORD = ^MOUSE_EVENT_RECORD; + + WINDOW_BUFFER_SIZE_RECORD = record + dwSize : COORD; + end; + _WINDOW_BUFFER_SIZE_RECORD = WINDOW_BUFFER_SIZE_RECORD; + TWINDOWBUFFERSIZERECORD = WINDOW_BUFFER_SIZE_RECORD; + PWINDOWBUFFERSIZERECORD = ^WINDOW_BUFFER_SIZE_RECORD; + + MENU_EVENT_RECORD = record + dwCommandId : UINT; + end; + PMENU_EVENT_RECORD = ^MENU_EVENT_RECORD; + _MENU_EVENT_RECORD = MENU_EVENT_RECORD; + TMENUEVENTRECORD = MENU_EVENT_RECORD; + PMENUEVENTRECORD = ^MENU_EVENT_RECORD; + + INPUT_RECORD = record + EventType: Word; + Reserved: Word; + Event : record case longint of + 0 : ( KeyEvent : KEY_EVENT_RECORD ); + 1 : ( MouseEvent : MOUSE_EVENT_RECORD ); + 2 : ( WindowBufferSizeEvent : WINDOW_BUFFER_SIZE_RECORD ); + 3 : ( MenuEvent : MENU_EVENT_RECORD ); + 4 : ( FocusEvent : FOCUS_EVENT_RECORD ); + end; + end; + PINPUT_RECORD = ^INPUT_RECORD; + _INPUT_RECORD = INPUT_RECORD; + TINPUTRECORD = INPUT_RECORD; + PINPUTRECORD = ^INPUT_RECORD; + + SYSTEMTIME = record + case integer of + 1 : ( + wYear : WORD; + wMonth : WORD; + wDayOfWeek : WORD; + wDay : WORD; + wHour : WORD; + wMinute : WORD; + wSecond : WORD; + wMilliseconds : WORD; + ); + { Compatibility for FPC } + 2 : ( + Year : WORD; + Month : WORD; + DayOfWeek : WORD; + Day : WORD; + Hour : WORD; + Minute : WORD; + Second : WORD; + Millisecond : WORD; + ); + end; + LPSYSTEMTIME = ^SYSTEMTIME; + _SYSTEMTIME = SYSTEMTIME; + TSYSTEMTIME = SYSTEMTIME; + PSYSTEMTIME = ^SYSTEMTIME; + + JOB_INFO_1 = record + JobId : DWORD; + pPrinterName : LPTSTR; + pMachineName : LPTSTR; + pUserName : LPTSTR; + pDocument : LPTSTR; + pDatatype : LPTSTR; + pStatus : LPTSTR; + Status : DWORD; + Priority : DWORD; + Position : DWORD; + TotalPages : DWORD; + PagesPrinted : DWORD; + Submitted : SYSTEMTIME; + end; + _JOB_INFO_1 = JOB_INFO_1; + TJOBINFO1 = JOB_INFO_1; + PJOBINFO1 = ^JOB_INFO_1; + + SID_AND_ATTRIBUTES = record //~winnt, moved with SID declarations + Sid : PSID; + Attributes : DWORD; + end; + _SID_AND_ATTRIBUTES = SID_AND_ATTRIBUTES; + TSIDANDATTRIBUTES = SID_AND_ATTRIBUTES; + PSIDANDATTRIBUTES = ^SID_AND_ATTRIBUTES; + + SID_AND_ATTRIBUTES_ARRAY = array[0..(ANYSIZE_ARRAY)-1] of SID_AND_ATTRIBUTES; //winnt + PSID_AND_ATTRIBUTES_ARRAY = ^SID_AND_ATTRIBUTES_ARRAY; + TSIDANDATTRIBUTESARRAY = SID_AND_ATTRIBUTES_ARRAY; + PSIDANDATTRIBUTESARRAY = ^SID_AND_ATTRIBUTES_ARRAY; + + SECURITY_DESCRIPTOR_CONTROL = WORD; + PSECURITY_DESCRIPTOR_CONTROL = ^SECURITY_DESCRIPTOR_CONTROL; + TSECURITYDESCRIPTORCONTROL = SECURITY_DESCRIPTOR_CONTROL; + PSECURITYDESCRIPTORCONTROL = ^SECURITY_DESCRIPTOR_CONTROL; + + SECURITY_DESCRIPTOR = record + Revision : BYTE; + Sbz1 : BYTE; + Control : SECURITY_DESCRIPTOR_CONTROL; + Owner : PSID; + Group : PSID; + Sacl : PACL; + Dacl : PACL; + end; + PSECURITY_DESCRIPTOR = ^SECURITY_DESCRIPTOR; + _SECURITY_DESCRIPTOR = SECURITY_DESCRIPTOR; + TSECURITYDESCRIPTOR = SECURITY_DESCRIPTOR; + PSECURITYDESCRIPTOR = ^SECURITY_DESCRIPTOR; + + JOB_INFO_2 = record + JobId : DWORD; + pPrinterName : LPTSTR; + pMachineName : LPTSTR; + pUserName : LPTSTR; + pDocument : LPTSTR; + pNotifyName : LPTSTR; + pDatatype : LPTSTR; + pPrintProcessor : LPTSTR; + pParameters : LPTSTR; + pDriverName : LPTSTR; + pDevMode : LPDEVMODE; + pStatus : LPTSTR; + pSecurityDescriptor : PSECURITY_DESCRIPTOR; + Status : DWORD; + Priority : DWORD; + Position : DWORD; + StartTime : DWORD; + UntilTime : DWORD; + TotalPages : DWORD; + Size : DWORD; + Submitted : SYSTEMTIME; + Time : DWORD; + PagesPrinted : DWORD; + end; + _JOB_INFO_2 = JOB_INFO_2; + TJOBINFO2 = JOB_INFO_2; + PJOBINFO2 = ^JOB_INFO_2; + + KERNINGPAIR = record + wFirst : WORD; + wSecond : WORD; + iKernAmount : longint; + end; + LPKERNINGPAIR = ^KERNINGPAIR; + tagKERNINGPAIR = KERNINGPAIR; + TKERNINGPAIR = KERNINGPAIR; + PKERNINGPAIR = ^KERNINGPAIR; + + LANA_ENUM = record + length : UCHAR; + lana : array[0..(MAX_LANA)-1] of UCHAR; + end; + _LANA_ENUM = LANA_ENUM; + TLANAENUM = LANA_ENUM; + PLANAENUM = ^LANA_ENUM; + const + bm_LDT_ENTRY_BaseMid = $FF; + bp_LDT_ENTRY_BaseMid = 0; + bm_LDT_ENTRY_Type = $1F00; + bp_LDT_ENTRY_Type = 8; + bm_LDT_ENTRY_Dpl = $6000; + bp_LDT_ENTRY_Dpl = 13; + bm_LDT_ENTRY_Pres = $8000; + bp_LDT_ENTRY_Pres = 15; + bm_LDT_ENTRY_LimitHi = $F0000; + bp_LDT_ENTRY_LimitHi = 16; + bm_LDT_ENTRY_Sys = $100000; + bp_LDT_ENTRY_Sys = 20; + bm_LDT_ENTRY_Reserved_0 = $200000; + bp_LDT_ENTRY_Reserved_0 = 21; + bm_LDT_ENTRY_Default_Big = $400000; + bp_LDT_ENTRY_Default_Big = 22; + bm_LDT_ENTRY_Granularity = $800000; + bp_LDT_ENTRY_Granularity = 23; + bm_LDT_ENTRY_BaseHi = $FF000000; + bp_LDT_ENTRY_BaseHi = 24; + + type + + LOCALESIGNATURE = record + lsUsb : array[0..3] of DWORD; + lsCsbDefault : array[0..1] of DWORD; + lsCsbSupported : array[0..1] of DWORD; + end; + tagLOCALESIGNATURE = LOCALESIGNATURE; + TLOCALESIGNATURE = LOCALESIGNATURE; + PLOCALESIGNATURE = ^LOCALESIGNATURE; + + LOCALGROUP_MEMBERS_INFO_0 = record + lgrmi0_sid : PSID; + end; + _LOCALGROUP_MEMBERS_INFO_0 = LOCALGROUP_MEMBERS_INFO_0; + TLOCALGROUPMEMBERSINFO0 = LOCALGROUP_MEMBERS_INFO_0; + PLOCALGROUPMEMBERSINFO0 = ^LOCALGROUP_MEMBERS_INFO_0; + + LOCALGROUP_MEMBERS_INFO_3 = record + lgrmi3_domainandname : LPWSTR; + end; + _LOCALGROUP_MEMBERS_INFO_3 = LOCALGROUP_MEMBERS_INFO_3; + TLOCALGROUPMEMBERSINFO3 = LOCALGROUP_MEMBERS_INFO_3; + PLOCALGROUPMEMBERSINFO3 = ^LOCALGROUP_MEMBERS_INFO_3; + + FXPT16DOT16 = longint; + LPFXPT16DOT16 = ^FXPT16DOT16; + TFXPT16DOT16 = FXPT16DOT16; + PFXPT16DOT16 = ^FXPT16DOT16; + + LUID_AND_ATTRIBUTES = record //winnt + Luid : LUID; + Attributes : DWORD; + end; + _LUID_AND_ATTRIBUTES = LUID_AND_ATTRIBUTES; + TLUIDANDATTRIBUTES = LUID_AND_ATTRIBUTES; + PLUIDANDATTRIBUTES = ^LUID_AND_ATTRIBUTES; + + LUID_AND_ATTRIBUTES_ARRAY = array[0..(ANYSIZE_ARRAY)-1] of LUID_AND_ATTRIBUTES; + PLUID_AND_ATTRIBUTES_ARRAY = ^LUID_AND_ATTRIBUTES_ARRAY; + TLUIDANDATTRIBUTESARRAY = LUID_AND_ATTRIBUTES_ARRAY; + PLUIDANDATTRIBUTESARRAY = ^LUID_AND_ATTRIBUTES_ARRAY; + + LV_COLUMN = record + mask : UINT; + fmt : longint; + cx : longint; +{$IFDEF UNICODE} + pszText : LPWSTR; +{$ELSE UNICODE} + pszText : LPTSTR; +{$ENDIF UNICODE} + cchTextMax : longint; + iSubItem : longint; + iImage : Longint; //#if (_WIN32_IE >= 0x0300) + iOrder : longint; //#if (_WIN32_IE >= 0x0300) + end; + _LV_COLUMN = LV_COLUMN; + TLVCOLUMN = LV_COLUMN; + PLVCOLUMN = ^LV_COLUMN; + + LV_ITEM = record + mask : UINT; + iItem : longint; + iSubItem : longint; + state : UINT; + stateMask : UINT; +{$IFDEF UNICODE} + pszText : LPWSTR; +{$ELSE UNICODE} + pszText : LPTSTR; +{$ENDIF UNICODE} + cchTextMax : longint; + iImage : longint; + lParam : LPARAM; + iIndent: Longint; //#if (_WIN32_IE >= 0x0300) + end; + _LV_ITEM = LV_ITEM; + TLVITEM = LV_ITEM; + PLVITEM = ^LV_ITEM; + + LV_DISPINFO = record + hdr : NMHDR; + item : LV_ITEM; + end; + tagLV_DISPINFO = LV_DISPINFO; + TLVDISPINFO = LV_DISPINFO; + PLVDISPINFO = ^LV_DISPINFO; + + LV_FINDINFO = record + flags : UINT; + psz : LPCTSTR; + lParam : LPARAM; + pt : POINT; + vkDirection : UINT; + end; + _LV_FINDINFO = LV_FINDINFO; + TLVFINDINFO = LV_FINDINFO; + PLVFINDINFO = ^LV_FINDINFO; + + LV_HITTESTINFO = record + pt : POINT; + flags : UINT; + iItem : longint; + end; + _LV_HITTESTINFO = LV_HITTESTINFO; + TLVHITTESTINFO = LV_HITTESTINFO; + PLVHITTESTINFO = ^LV_HITTESTINFO; + + LV_KEYDOWN = record + hdr : NMHDR; + wVKey : WORD; + flags : UINT; + end; + tagLV_KEYDOWN = LV_KEYDOWN; + TLVKEYDOWN = LV_KEYDOWN; + PLVKEYDOWN = ^LV_KEYDOWN; + + MAT2 = record + eM11 : FIXED; + eM12 : FIXED; + eM21 : FIXED; + eM22 : FIXED; + end; + _MAT2 = MAT2; + TMAT2 = MAT2; + PMAT2 = ^MAT2; + + MDICREATESTRUCT = record + szClass : LPCTSTR; + szTitle : LPCTSTR; + hOwner : HANDLE; + x : longint; + y : longint; + cx : longint; + cy : longint; + style : DWORD; + lParam : LPARAM; + end; + LPMDICREATESTRUCT = ^MDICREATESTRUCT; + tagMDICREATESTRUCT = MDICREATESTRUCT; + TMDICREATESTRUCT = MDICREATESTRUCT; + PMDICREATESTRUCT = ^MDICREATESTRUCT; + + MEASUREITEMSTRUCT = record + CtlType : UINT; + CtlID : UINT; + itemID : UINT; + itemWidth : UINT; + itemHeight : UINT; + itemData : DWORD; + end; + LPMEASUREITEMSTRUCT = ^MEASUREITEMSTRUCT; + tagMEASUREITEMSTRUCT = MEASUREITEMSTRUCT; + TMEASUREITEMSTRUCT = MEASUREITEMSTRUCT; + PMEASUREITEMSTRUCT = ^MEASUREITEMSTRUCT; + + MEMORY_BASIC_INFORMATION = record + BaseAddress : PVOID; + AllocationBase : PVOID; + AllocationProtect : DWORD; + RegionSize : DWORD; + State : DWORD; + Protect : DWORD; + _Type : DWORD; + end; + PMEMORY_BASIC_INFORMATION = ^MEMORY_BASIC_INFORMATION; + _MEMORY_BASIC_INFORMATION = MEMORY_BASIC_INFORMATION; + TMEMORYBASICINFORMATION = MEMORY_BASIC_INFORMATION; + PMEMORYBASICINFORMATION = ^MEMORY_BASIC_INFORMATION; + + MEMORYSTATUS = record + dwLength : DWORD; + dwMemoryLoad : DWORD; + dwTotalPhys : DWORD; + dwAvailPhys : DWORD; + dwTotalPageFile : DWORD; + dwAvailPageFile : DWORD; + dwTotalVirtual : DWORD; + dwAvailVirtual : DWORD; + end; + LPMEMORYSTATUS = ^MEMORYSTATUS; + _MEMORYSTATUS = MEMORYSTATUS; + TMEMORYSTATUS = MEMORYSTATUS; + PMEMORYSTATUS = ^MEMORYSTATUS; + + MENUEX_TEMPLATE_HEADER = record + wVersion : WORD; + wOffset : WORD; + dwHelpId : DWORD; + end; + TMENUXTEMPLATEHEADER = MENUEX_TEMPLATE_HEADER; + PMENUXTEMPLATEHEADER = ^MENUEX_TEMPLATE_HEADER; + + MENUEX_TEMPLATE_ITEM = record + dwType : DWORD; + dwState : DWORD; + uId : UINT; + bResInfo : BYTE; + szText : array[0..0] of WCHAR; + dwHelpId : DWORD; + end; + TMENUEXTEMPLATEITEM = MENUEX_TEMPLATE_ITEM; + PMENUEXTEMPLATEITEM = ^MENUEX_TEMPLATE_ITEM; + + MENUITEMINFO = record + cbSize : UINT; + fMask : UINT; + fType : UINT; + fState : UINT; + wID : UINT; + hSubMenu : HMENU; + hbmpChecked : HBITMAP; + hbmpUnchecked : HBITMAP; + dwItemData : DWORD; + dwTypeData : LPTSTR; + cch : UINT; + end; + LPMENUITEMINFO = ^MENUITEMINFO; + LPCMENUITEMINFO = ^MENUITEMINFO; + tagMENUITEMINFO = MENUITEMINFO; + TMENUITEMINFO = MENUITEMINFO; + TMENUITEMINFOW = MENUITEMINFO; + PMENUITEMINFO = ^MENUITEMINFO; + PMENUITEMINFOW = ^MENUITEMINFO; + + MENUITEMTEMPLATE = record + mtOption : WORD; + mtID : WORD; + mtString : array[0..0] of WCHAR; + end; + TMENUITEMTEMPLATE = MENUITEMTEMPLATE; + PMENUITEMTEMPLATE = ^MENUITEMTEMPLATE; + + MENUITEMTEMPLATEHEADER = record + versionNumber : WORD; + offset : WORD; + end; + TMENUITEMTEMPLATEHEADER = MENUITEMTEMPLATEHEADER; + PMENUITEMTEMPLATEHEADER = ^MENUITEMTEMPLATEHEADER; + + MENUTEMPLATE = record + end; + LPMENUTEMPLATE = ^MENUTEMPLATE; + TMENUTEMPLATE = MENUTEMPLATE; + PMENUTEMPLATE = ^MENUTEMPLATE; + + METAFILEPICT = record + mm : LONG; + xExt : LONG; + yExt : LONG; + hMF : HMETAFILE; + end; + LPMETAFILEPICT = ^METAFILEPICT; + tagMETAFILEPICT = METAFILEPICT; + TMETAFILEPICT = METAFILEPICT; + PMETAFILEPICT = ^METAFILEPICT; + + METAHEADER = packed record + mtType : WORD; + mtHeaderSize : WORD; + mtVersion : WORD; + mtSize : DWORD; + mtNoObjects : WORD; + mtMaxRecord : DWORD; + mtNoParameters : WORD; + end; + tagMETAHEADER = METAHEADER; + TMETAHEADER = METAHEADER; + PMETAHEADER = ^METAHEADER; + + METARECORD = record + rdSize : DWORD; + rdFunction : WORD; + rdParm : array[0..0] of WORD; + end; + LPMETARECORD = ^METARECORD; + tagMETARECORD = METARECORD; + TMETARECORD = METARECORD; + PMETARECORD = ^METARECORD; + + MINIMIZEDMETRICS = record + cbSize : UINT; + iWidth : longint; + iHorzGap : longint; + iVertGap : longint; + iArrange : longint; + end; + LPMINIMIZEDMETRICS = ^MINIMIZEDMETRICS; + tagMINIMIZEDMETRICS = MINIMIZEDMETRICS; + TMINIMIZEDMETRICS = MINIMIZEDMETRICS; + PMINIMIZEDMETRICS = ^MINIMIZEDMETRICS; + + MINMAXINFO = record + ptReserved : POINT; + ptMaxSize : POINT; + ptMaxPosition : POINT; + ptMinTrackSize : POINT; + ptMaxTrackSize : POINT; + end; + tagMINMAXINFO = MINMAXINFO; + TMINMAXINFO = MINMAXINFO; + PMINMAXINFO = ^MINMAXINFO; + + MODEMDEVCAPS = record + dwActualSize : DWORD; + dwRequiredSize : DWORD; + dwDevSpecificOffset : DWORD; + dwDevSpecificSize : DWORD; + dwModemProviderVersion : DWORD; + dwModemManufacturerOffset : DWORD; + dwModemManufacturerSize : DWORD; + dwModemModelOffset : DWORD; + dwModemModelSize : DWORD; + dwModemVersionOffset : DWORD; + dwModemVersionSize : DWORD; + dwDialOptions : DWORD; + dwCallSetupFailTimer : DWORD; + dwInactivityTimeout : DWORD; + dwSpeakerVolume : DWORD; + dwSpeakerMode : DWORD; + dwModemOptions : DWORD; + dwMaxDTERate : DWORD; + dwMaxDCERate : DWORD; + abVariablePortion : array[0..0] of BYTE; + end; + LPMODEMDEVCAPS = ^MODEMDEVCAPS; + TMODEMDEVCAPS = MODEMDEVCAPS; + PMODEMDEVCAPS = ^MODEMDEVCAPS; + + modemdevcaps_tag = MODEMDEVCAPS; + + MODEMSETTINGS = record + dwActualSize : DWORD; + dwRequiredSize : DWORD; + dwDevSpecificOffset : DWORD; + dwDevSpecificSize : DWORD; + dwCallSetupFailTimer : DWORD; + dwInactivityTimeout : DWORD; + dwSpeakerVolume : DWORD; + dwSpeakerMode : DWORD; + dwPreferredModemOptions : DWORD; + dwNegotiatedModemOptions : DWORD; + dwNegotiatedDCERate : DWORD; + abVariablePortion : array[0..0] of BYTE; + end; + LPMODEMSETTINGS = ^MODEMSETTINGS; + TMODEMSETTINGS = MODEMSETTINGS; + PMODEMSETTINGS = ^MODEMSETTINGS; + + modemsettings_tag = MODEMSETTINGS; + + MONCBSTRUCT = record + cb : UINT; + dwTime : DWORD; + hTask : HANDLE; + dwRet : DWORD; + wType : UINT; + wFmt : UINT; + hConv : HCONV; + hsz1 : HSZ; + hsz2 : HSZ; + hData : HDDEDATA; + dwData1 : DWORD; + dwData2 : DWORD; + cc : CONVCONTEXT; + cbData : DWORD; + Data : array[0..7] of DWORD; + end; + tagMONCBSTRUCT = MONCBSTRUCT; + TMONCBSTRUCT = MONCBSTRUCT; + PMONCBSTRUCT = ^MONCBSTRUCT; + + MONCONVSTRUCT = record + cb : UINT; + fConnect : WINBOOL; + dwTime : DWORD; + hTask : HANDLE; + hszSvc : HSZ; + hszTopic : HSZ; + hConvClient : HCONV; + hConvServer : HCONV; + end; + tagMONCONVSTRUCT = MONCONVSTRUCT; + TMONCONVSTRUCT = MONCONVSTRUCT; + PMONCONVSTRUCT = ^MONCONVSTRUCT; + + MONERRSTRUCT = record + cb : UINT; + wLastError : UINT; + dwTime : DWORD; + hTask : HANDLE; + end; + tagMONERRSTRUCT = MONERRSTRUCT; + TMONERRSTRUCT = MONERRSTRUCT; + PMONERRSTRUCT = ^MONERRSTRUCT; + + MONHSZSTRUCT = record + cb : UINT; + fsAction : WINBOOL; + dwTime : DWORD; + hsz : HSZ; + hTask : HANDLE; + str : array[0..0] of TCHAR; + end; + tagMONHSZSTRUCT = MONHSZSTRUCT; + TMONHSZSTRUCT = MONHSZSTRUCT; + PMONHSZSTRUCT = ^MONHSZSTRUCT; + + MONITOR_INFO_1 = record + pName : LPTSTR; + end; + _MONITOR_INFO_1 = MONITOR_INFO_1; + TMONITORINFO1 = MONITOR_INFO_1; + PMONITORINFO1 = ^MONITOR_INFO_1; + + MONITOR_INFO_2 = record + pName : LPTSTR; + pEnvironment : LPTSTR; + pDLLName : LPTSTR; + end; + _MONITOR_INFO_2 = MONITOR_INFO_2; + TMONITORINFO2 = MONITOR_INFO_2; + PMONITORINFO2 = ^MONITOR_INFO_2; + + MONLINKSTRUCT = record + cb : UINT; + dwTime : DWORD; + hTask : HANDLE; + fEstablished : WINBOOL; + fNoData : WINBOOL; + hszSvc : HSZ; + hszTopic : HSZ; + hszItem : HSZ; + wFmt : UINT; + fServer : WINBOOL; + hConvServer : HCONV; + hConvClient : HCONV; + end; + tagMONLINKSTRUCT = MONLINKSTRUCT; + TMONLINKSTRUCT = MONLINKSTRUCT; + PMONLINKSTRUCT = ^MONLINKSTRUCT; + + MONMSGSTRUCT = record + cb : UINT; + hwndTo : HWND; + dwTime : DWORD; + hTask : HANDLE; + wMsg : UINT; + wParam : WPARAM; + lParam : LPARAM; + dmhd : DDEML_MSG_HOOK_DATA; + end; + tagMONMSGSTRUCT = MONMSGSTRUCT; + TMONMSGSTRUCT = MONMSGSTRUCT; + PMONMSGSTRUCT = ^MONMSGSTRUCT; + + MOUSEHOOKSTRUCT = record + pt : POINT; + hwnd : HWND; + wHitTestCode : UINT; + dwExtraInfo : DWORD; + end; + LPMOUSEHOOKSTRUCT = ^MOUSEHOOKSTRUCT; + tagMOUSEHOOKSTRUCT = MOUSEHOOKSTRUCT; + TMOUSEHOOKSTRUCT = MOUSEHOOKSTRUCT; + PMOUSEHOOKSTRUCT = ^MOUSEHOOKSTRUCT; + + MOUSEKEYS = record + cbSize : DWORD; + dwFlags : DWORD; + iMaxSpeed : DWORD; + iTimeToMaxSpeed : DWORD; + iCtrlSpeed : DWORD; + dwReserved1 : DWORD; + dwReserved2 : DWORD; + end; + TMOUSEKEYS = MOUSEKEYS; + PMOUSEKEYS = ^MOUSEKEYS; + + MSGBOXCALLBACK = procedure (lpHelpInfo:LPHELPINFO); + TMSGBOXCALLBACK = MSGBOXCALLBACK; + + MSGBOXPARAMS = record + cbSize : UINT; + hwndOwner : HWND; + hInstance : HINST; + lpszText : LPCSTR; + lpszCaption : LPCSTR; + dwStyle : DWORD; + lpszIcon : LPCSTR; + dwContextHelpId : DWORD; + lpfnMsgBoxCallback : MSGBOXCALLBACK; + dwLanguageId : DWORD; + end; + LPMSGBOXPARAMS = ^MSGBOXPARAMS; + TMSGBOXPARAMS = MSGBOXPARAMS; + TMSGBOXPARAMSA = MSGBOXPARAMS; + PMSGBOXPARAMS = ^MSGBOXPARAMS; + + MSGFILTER = record + nmhdr : NMHDR; + msg : UINT; + wParam : WPARAM; + lParam : LPARAM; + end; + _msgfilter = MSGFILTER; + Tmsgfilter = MSGFILTER; + Pmsgfilter = ^MSGFILTER; + + MULTIKEYHELP = record + mkSize : DWORD; + mkKeylist : TCHAR; + szKeyphrase : array[0..0] of TCHAR; + end; + tagMULTIKEYHELP = MULTIKEYHELP; + TMULTIKEYHELP = MULTIKEYHELP; + PMULTIKEYHELP = ^MULTIKEYHELP; + + EXTENDED_NAME_FORMAT=( + // unknown name type + NameUnknown = 0, + // CN=Spencer Katt, OU=Software, OU=Engineering, O=Widget, C=US + NameFullyQualifiedDN = 1, + // Engineering\SpencerK + NameSamCompatible = 2, + // Probably "Spencer Katt" but could be something else. I.e. The + // display name is not necessarily the defining RDN. + NameDisplay = 3, + // xxx@engineering.widget.com where xxx could be "SpencerK" or + // anything else. Could be multi-valued to handle migration and aliasing. + NameDomainSimple = 4, + // xxx@widget.com where xxx could be "SpencerK" or anything else. + // Could be multi-valued to handle migration and aliasing. + NameEnterpriseSimple = 5, + // String-ized GUID as returned by IIDFromString(). + // eg: {4fa050f0-f561-11cf-bdd9-00aa003a77b6} + NameUniqueId = 6, + // engineering.widget.com/software/spencer katt + NameCanonical = 7, + // local logon name + NameWindowsCeLocal = $80000001); //+winbase + PEXTENDED_NAME_FORMAT=^EXTENDED_NAME_FORMAT; //+winbase + + NAME_BUFFER = record + name : array[0..(NCBNAMSZ)-1] of UCHAR; + name_num : UCHAR; + name_flags : UCHAR; + end; + _NAME_BUFFER = NAME_BUFFER; + TNAMEBUFFER = NAME_BUFFER; + PNAMEBUFFER = ^NAME_BUFFER; + + p_NCB = ^_NCB; + NCB = record + ncb_command : UCHAR; + ncb_retcode : UCHAR; + ncb_lsn : UCHAR; + ncb_num : UCHAR; + ncb_buffer : PUCHAR; + ncb_length : WORD; + ncb_callname : array[0..(NCBNAMSZ)-1] of UCHAR; + ncb_name : array[0..(NCBNAMSZ)-1] of UCHAR; + ncb_rto : UCHAR; + ncb_sto : UCHAR; + ncb_post : procedure (_para1:p_NCB);CDECL; + ncb_lana_num : UCHAR; + ncb_cmd_cplt : UCHAR; + ncb_reserve : array[0..9] of UCHAR; + ncb_event : HANDLE; + end; + _NCB = NCB; + TNCB = NCB; + PNCB = ^NCB; + + NCCALCSIZE_PARAMS = record + rgrc : array[0..2] of RECT; + lppos : PWINDOWPOS; + end; + _NCCALCSIZE_PARAMS = NCCALCSIZE_PARAMS; + TNCCALCSIZEPARAMS = NCCALCSIZE_PARAMS; + PNCCALCSIZEPARAMS = ^NCCALCSIZE_PARAMS; + + NDDESHAREINFO = record + lRevision : LONG; + lpszShareName : LPTSTR; + lShareType : LONG; + lpszAppTopicList : LPTSTR; + fSharedFlag : LONG; + fService : LONG; + fStartAppFlag : LONG; + nCmdShow : LONG; + qModifyId : array[0..1] of LONG; + cNumItems : LONG; + lpszItemList : LPTSTR; + end; + _NDDESHAREINFO = NDDESHAREINFO; + TNDDESHAREINFO = NDDESHAREINFO; + PNDDESHAREINFO = ^NDDESHAREINFO; + + NETRESOURCE = record + dwScope : DWORD; + dwType : DWORD; + dwDisplayType : DWORD; + dwUsage : DWORD; + lpLocalName : LPTSTR; + lpRemoteName : LPTSTR; + lpComment : LPTSTR; + lpProvider : LPTSTR; + end; + LPNETRESOURCE = ^NETRESOURCE; + _NETRESOURCE = NETRESOURCE; + TNETRESOURCE = NETRESOURCE; + TNETRESOURCEA = NETRESOURCE; + PNETRESOURCE = ^NETRESOURCE; + PNETRESOURCEA = ^NETRESOURCE; + + NETRESOURCEW = record //+winnetwk + dwScope : DWORD; + dwType : DWORD; + dwDisplayType : DWORD; + dwUsage : DWORD; + lpLocalName : LPWSTR; + lpRemoteName : LPWSTR; + lpComment : LPWSTR; + lpProvider : LPWSTR; + end; + LPNETRESOURCEW = ^NETRESOURCEW; //+winnetwk + _NETRESOURCEW = NETRESOURCEW; //+winnetwk + + NEWCPLINFO = record + dwSize : DWORD; + dwFlags : DWORD; + dwHelpContext : DWORD; + lData : LONG; + hIcon : HICON; + szName : array[0..31] of TCHAR; + szInfo : array[0..63] of TCHAR; + szHelpFile : array[0..127] of TCHAR; + end; + tagNEWCPLINFO = NEWCPLINFO; + TNEWCPLINFO = NEWCPLINFO; + PNEWCPLINFO = ^NEWCPLINFO; + + NEWTEXTMETRIC = record + tmHeight : LONG; + tmAscent : LONG; + tmDescent : LONG; + tmInternalLeading : LONG; + tmExternalLeading : LONG; + tmAveCharWidth : LONG; + tmMaxCharWidth : LONG; + tmWeight : LONG; + tmOverhang : LONG; + tmDigitizedAspectX : LONG; + tmDigitizedAspectY : LONG; + tmFirstChar : BCHAR; + tmLastChar : BCHAR; + tmDefaultChar : BCHAR; + tmBreakChar : BCHAR; + tmItalic : BYTE; + tmUnderlined : BYTE; + tmStruckOut : BYTE; + tmPitchAndFamily : BYTE; + tmCharSet : BYTE; + ntmFlags : DWORD; + ntmSizeEM : UINT; + ntmCellHeight : UINT; + ntmAvgWidth : UINT; + end; + tagNEWTEXTMETRIC = NEWTEXTMETRIC; + TNEWTEXTMETRIC = NEWTEXTMETRIC; + PNEWTEXTMETRIC = ^NEWTEXTMETRIC; + + NEWTEXTMETRICEX = record + ntmentm : NEWTEXTMETRIC; + ntmeFontSignature : FONTSIGNATURE; + end; + tagNEWTEXTMETRICEX = NEWTEXTMETRICEX; + TNEWTEXTMETRICEX = NEWTEXTMETRICEX; + PNEWTEXTMETRICEX = ^NEWTEXTMETRICEX; + + NM_LISTVIEW = record + hdr : NMHDR; + iItem : longint; + iSubItem : longint; + uNewState : UINT; + uOldState : UINT; + uChanged : UINT; + ptAction : POINT; + lParam : LPARAM; + end; + tagNM_LISTVIEW = NM_LISTVIEW; + TNMLISTVIEW = NM_LISTVIEW; + PNMLISTVIEW = ^NM_LISTVIEW; + + TV_ITEM = record + mask : UINT; + hItem : HTREEITEM; + state : UINT; + stateMask : UINT; + pszText : LPTSTR; + cchTextMax : longint; + iImage : longint; + iSelectedImage : longint; + cChildren : longint; + lParam : LPARAM; + end; + LPTV_ITEM = ^TV_ITEM; + _TV_ITEM = TV_ITEM; + TTVITEM = TV_ITEM; + PTVITEM = ^TV_ITEM; + + NM_TREEVIEW = record + hdr : NMHDR; + action : UINT; + itemOld : TV_ITEM; + itemNew : TV_ITEM; + ptDrag : POINT; + end; + LPNM_TREEVIEW = ^NM_TREEVIEW; + _NM_TREEVIEW = NM_TREEVIEW; + TNMTREEVIEW = NM_TREEVIEW; + PNMTREEVIEW = ^NM_TREEVIEW; + + NM_UPDOWNW = record + hdr : NMHDR; + iPos : longint; + iDelta : longint; + end; + _NM_UPDOWN = NM_UPDOWNW; + TNMUPDOWN = NM_UPDOWNW; + PNMUPDOWN = ^NM_UPDOWNW; + + NONCLIENTMETRICS = record + cbSize : UINT; + iBorderWidth : longint; + iScrollWidth : longint; + iScrollHeight : longint; + iCaptionWidth : longint; + iCaptionHeight : longint; + lfCaptionFont : LOGFONT; + iSmCaptionWidth : longint; + iSmCaptionHeight : longint; + lfSmCaptionFont : LOGFONT; + iMenuWidth : longint; + iMenuHeight : longint; + lfMenuFont : LOGFONT; + lfStatusFont : LOGFONT; + lfMessageFont : LOGFONT; + end; + LPNONCLIENTMETRICS = ^NONCLIENTMETRICS; + tagNONCLIENTMETRICS = NONCLIENTMETRICS; + TNONCLIENTMETRICS = NONCLIENTMETRICS; + PNONCLIENTMETRICS = ^NONCLIENTMETRICS; + + SERVICE_ADDRESS = record + dwAddressType : DWORD; + dwAddressFlags : DWORD; + dwAddressLength : DWORD; + dwPrincipalLength : DWORD; + lpAddress : ^BYTE; + lpPrincipal : ^BYTE; + end; + _SERVICE_ADDRESS = SERVICE_ADDRESS; + TSERVICEADDRESS = SERVICE_ADDRESS; + PSERVICEADDRESS = ^SERVICE_ADDRESS; + + SERVICE_ADDRESSES = record + dwAddressCount : DWORD; + Addresses : array[0..0] of SERVICE_ADDRESS; + end; + LPSERVICE_ADDRESSES = ^SERVICE_ADDRESSES; + _SERVICE_ADDRESSES = SERVICE_ADDRESSES; + TSERVICEADDRESSES = SERVICE_ADDRESSES; + PSERVICEADDRESSES = ^SERVICE_ADDRESSES; + + GUID = system.tguid; //winnt + LPGUID = ^GUID; + _GUID = GUID; + TGUID = GUID; + PGUID = ^GUID; + + CLSID = GUID; + LPCLSID = ^CLSID; + TCLSID = CLSID; + PCLSID = ^CLSID; + + SERVICE_INFO = record + lpServiceType : LPGUID; + lpServiceName : LPTSTR; + lpComment : LPTSTR; + lpLocale : LPTSTR; + dwDisplayHint : DWORD; + dwVersion : DWORD; + dwTime : DWORD; + lpMachineName : LPTSTR; + lpServiceAddress : LPSERVICE_ADDRESSES; + ServiceSpecificInfo : BLOB; + end; + _SERVICE_INFO = SERVICE_INFO; + TSERVICEINFO = SERVICE_INFO; + PSERVICEINFO = ^SERVICE_INFO; + + NS_SERVICE_INFO = record + dwNameSpace : DWORD; + ServiceInfo : SERVICE_INFO; + end; + _NS_SERVICE_INFO = NS_SERVICE_INFO; + TNSSERVICEINFO = NS_SERVICE_INFO; + PNSSERVICEINFO = ^NS_SERVICE_INFO; + + NUMBERFMT = record + NumDigits : UINT; + LeadingZero : UINT; + Grouping : UINT; + lpDecimalSep : LPTSTR; + lpThousandSep : LPTSTR; + NegativeOrder : UINT; + end; + _numberfmt = NUMBERFMT; + Tnumberfmt = NUMBERFMT; + Pnumberfmt = ^NUMBERFMT; + + OFSTRUCT = record + cBytes : BYTE; + fFixedDisk : BYTE; + nErrCode : WORD; + Reserved1 : WORD; + Reserved2 : WORD; + szPathName : array[0..(OFS_MAXPATHNAME)-1] of CHAR; + end; + LPOFSTRUCT = ^OFSTRUCT; + _OFSTRUCT = OFSTRUCT; + TOFSTRUCT = OFSTRUCT; + POFSTRUCT = ^OFSTRUCT; + + OPENFILENAMEW = record //+commdlg + lStructSize : DWORD; + hwndOwner : HWND; + hInstance : HINST; + lpstrFilter : LPCWSTR; + lpstrCustomFilter : LPWSTR; + nMaxCustFilter : DWORD; + nFilterIndex : DWORD; + lpstrFile : LPWSTR; + nMaxFile : DWORD; + lpstrFileTitle : LPWSTR; + nMaxFileTitle : DWORD; + lpstrInitialDir : LPCWSTR; + lpstrTitle : LPCWSTR; + Flags : DWORD; + nFileOffset : WORD; + nFileExtension : WORD; + lpstrDefExt : LPCWSTR; + lCustData : LPARAM; + lpfnHook : LPOFNHOOKPROC; + lpTemplateName : LPCWSTR; + end; + LPOPENFILENAMEW = ^OPENFILENAMEW; //+commdlg + tagOFNW = OPENFILENAMEW; //+commdlg + LPOPENFILENAME = ^OPENFILENAMEW; + TOPENFILENAME = OPENFILENAMEW; + POPENFILENAME = ^OPENFILENAMEW; + TOPENFILENAMEW = OPENFILENAMEW; + POPENFILENAMEW = ^OPENFILENAMEW; + + tagOFN = OPENFILENAMEW; + TOFN = OPENFILENAMEW; + POFN = ^OPENFILENAMEW; + + OFNOTIFY = record + hdr : NMHDR; + lpOFN : LPOPENFILENAME; + pszFile : LPTSTR; + end; + LPOFNOTIFY = ^OFNOTIFY; + _OFNOTIFY = OFNOTIFY; + TOFNOTIFY = OFNOTIFY; + POFNOTIFY = ^OFNOTIFY; + + OSVERSIONINFO = record + dwOSVersionInfoSize : DWORD; + dwMajorVersion : DWORD; + dwMinorVersion : DWORD; + dwBuildNumber : DWORD; + dwPlatformId : DWORD; + szCSDVersion : array[0..127] of TCHAR; + end; + LPOSVERSIONINFO = ^OSVERSIONINFO; + _OSVERSIONINFO = OSVERSIONINFO; + TOSVERSIONINFO = OSVERSIONINFO; + POSVERSIONINFO = ^OSVERSIONINFO; + + OSVERSIONINFOW = record + dwOSVersionInfoSize : DWORD; + dwMajorVersion : DWORD; + dwMinorVersion : DWORD; + dwBuildNumber : DWORD; + dwPlatformId : DWORD; + szCSDVersion : array[0..127] of WCHAR; + end; + LPOSVERSIONINFOW = ^OSVERSIONINFOW; + _OSVERSIONINFOW = OSVERSIONINFOW; + TOSVERSIONINFOW = OSVERSIONINFOW; + POSVERSIONINFOW = ^OSVERSIONINFOW; + + + + + + TEXTMETRIC = record + tmHeight : LONG; + tmAscent : LONG; + tmDescent : LONG; + tmInternalLeading : LONG; + tmExternalLeading : LONG; + tmAveCharWidth : LONG; + tmMaxCharWidth : LONG; + tmWeight : LONG; + tmOverhang : LONG; + tmDigitizedAspectX : LONG; + tmDigitizedAspectY : LONG; + tmFirstChar : BCHAR; + tmLastChar : BCHAR; + tmDefaultChar : BCHAR; + tmBreakChar : BCHAR; + tmItalic : BYTE; + tmUnderlined : BYTE; + tmStruckOut : BYTE; + tmPitchAndFamily : BYTE; + tmCharSet : BYTE; + end; + LPTEXTMETRIC = ^TEXTMETRIC; + tagTEXTMETRIC = TEXTMETRIC; + TTEXTMETRIC = TEXTMETRIC; + PTEXTMETRIC = ^TEXTMETRIC; + + TEXTMETRICW = record + tmHeight : LONG; + tmAscent : LONG; + tmDescent : LONG; + tmInternalLeading : LONG; + tmExternalLeading : LONG; + tmAveCharWidth : LONG; + tmMaxCharWidth : LONG; + tmWeight : LONG; + tmOverhang : LONG; + tmDigitizedAspectX : LONG; + tmDigitizedAspectY : LONG; + tmFirstChar : WCHAR; + tmLastChar : WCHAR; + tmDefaultChar : WCHAR; + tmBreakChar : WCHAR; + tmItalic : BYTE; + tmUnderlined : BYTE; + tmStruckOut : BYTE; + tmPitchAndFamily : BYTE; + tmCharSet : BYTE; + end; + LPTEXTMETRICW = ^TEXTMETRICW; + tagTEXTMETRICW = TEXTMETRICW; + TTEXTMETRICW = TEXTMETRICW; + PTEXTMETRICW = ^TEXTMETRICW; + + + OUTLINETEXTMETRIC = record + otmSize : UINT; + otmTextMetrics : TEXTMETRIC; + otmFiller : BYTE; + otmPanoseNumber : PANOSE; + otmfsSelection : UINT; + otmfsType : UINT; + otmsCharSlopeRise : longint; + otmsCharSlopeRun : longint; + otmItalicAngle : longint; + otmEMSquare : UINT; + otmAscent : longint; + otmDescent : longint; + otmLineGap : UINT; + otmsCapEmHeight : UINT; + otmsXHeight : UINT; + otmrcFontBox : RECT; + otmMacAscent : longint; + otmMacDescent : longint; + otmMacLineGap : UINT; + otmusMinimumPPEM : UINT; + otmptSubscriptSize : POINT; + otmptSubscriptOffset : POINT; + otmptSuperscriptSize : POINT; + otmptSuperscriptOffset : POINT; + otmsStrikeoutSize : UINT; + otmsStrikeoutPosition : longint; + otmsUnderscoreSize : longint; + otmsUnderscorePosition : longint; + otmpFamilyName : PSTR; + otmpFaceName : PSTR; + otmpStyleName : PSTR; + otmpFullName : PSTR; + end; + LPOUTLINETEXTMETRIC = ^OUTLINETEXTMETRIC; + _OUTLINETEXTMETRIC = OUTLINETEXTMETRIC; + TOUTLINETEXTMETRIC = OUTLINETEXTMETRIC; + POUTLINETEXTMETRIC = ^OUTLINETEXTMETRIC; + + OVERLAPPED = record + Internal : DWORD; + InternalHigh : DWORD; + Offset : DWORD; + OffsetHigh : DWORD; + hEvent : HANDLE; + end; + LPOVERLAPPED = ^OVERLAPPED; + _OVERLAPPED = OVERLAPPED; + TOVERLAPPED = OVERLAPPED; + POVERLAPPED = ^OVERLAPPED; + + {PAGESETUPDLG = record conflicts with function PageSetupDlg } + TPAGESETUPDLG = record + lStructSize : DWORD; + hwndOwner : HWND; + hDevMode : HGLOBAL; + hDevNames : HGLOBAL; + Flags : DWORD; + ptPaperSize : POINT; + rtMinMargin : RECT; + rtMargin : RECT; + hInstance : HINST; + lCustData : LPARAM; + lpfnPageSetupHook : LPPAGESETUPHOOK; + lpfnPagePaintHook : LPPAGEPAINTHOOK; + lpPageSetupTemplateName : LPCTSTR; + hPageSetupTemplate : HGLOBAL; + end; + LPPAGESETUPDLG = ^TPAGESETUPDLG; + PPAGESETUPDLG = ^TPAGESETUPDLG; + + tagPSD = TPAGESETUPDLG; + TPSD = TPAGESETUPDLG; + PPSD = ^TPAGESETUPDLG; + + TPAGESETUPDLGW = record //+commdlg + lStructSize : DWORD; + hwndOwner : HWND; + hDevMode : HGLOBAL; + hDevNames : HGLOBAL; + Flags : DWORD; + ptPaperSize : POINT; // ignored in CE + rtMinMargin : RECT; + rtMargin : RECT; + hInstance : HINST; + lCustData : LPARAM; + lpfnPageSetupHook : LPPAGESETUPHOOK; + lpfnPagePaintHook : LPPAGEPAINTHOOK; // ignored in CE + lpPageSetupTemplateName : LPCWSTR; + hPageSetupTemplate : HGLOBAL; + end; + LPPAGESETUPDLGW = ^TPAGESETUPDLGW; //+commdlg + tagPSDW = TPAGESETUPDLGW; //+commdlg + + PAINTSTRUCT = record + hdc : HDC; + fErase : WINBOOL; + rcPaint : RECT; + fRestore : WINBOOL; + fIncUpdate : WINBOOL; + rgbReserved : array[0..31] of BYTE; + end; + LPPAINTSTRUCT = ^PAINTSTRUCT; + tagPAINTSTRUCT = PAINTSTRUCT; + TPAINTSTRUCT = PAINTSTRUCT; + PPAINTSTRUCT = ^PAINTSTRUCT; + + PARAFORMAT = record + cbSize : UINT; + dwMask : DWORD; + wNumbering : WORD; + wReserved : WORD; + dxStartIndent : LONG; + dxRightIndent : LONG; + dxOffset : LONG; + wAlignment : WORD; + cTabCount : SHORT; + rgxTabs : array[0..(MAX_TAB_STOPS)-1] of LONG; + end; + _paraformat = PARAFORMAT; + Tparaformat = PARAFORMAT; + Pparaformat = ^PARAFORMAT; + + PERF_COUNTER_BLOCK = record + ByteLength : DWORD; + end; + _PERF_COUNTER_BLOCK = PERF_COUNTER_BLOCK; + TPERFCOUNTERBLOCK = PERF_COUNTER_BLOCK; + PPERFCOUNTERBLOCK = ^PERF_COUNTER_BLOCK; + + PERF_COUNTER_DEFINITION = record + ByteLength : DWORD; + CounterNameTitleIndex : DWORD; + CounterNameTitle : LPWSTR; + CounterHelpTitleIndex : DWORD; + CounterHelpTitle : LPWSTR; + DefaultScale : DWORD; + DetailLevel : DWORD; + CounterType : DWORD; + CounterSize : DWORD; + CounterOffset : DWORD; + end; + _PERF_COUNTER_DEFINITION = PERF_COUNTER_DEFINITION; + TPERFCOUNTERDEFINITION = PERF_COUNTER_DEFINITION; + PPERFCOUNTERDEFINITION = ^PERF_COUNTER_DEFINITION; + + PERF_DATA_BLOCK = record + Signature : array[0..3] of WCHAR; + LittleEndian : DWORD; + Version : DWORD; + Revision : DWORD; + TotalByteLength : DWORD; + HeaderLength : DWORD; + NumObjectTypes : DWORD; + DefaultObject : DWORD; + SystemTime : SYSTEMTIME; + PerfTime : LARGE_INTEGER; + PerfFreq : LARGE_INTEGER; + PerfTime100nSec : LARGE_INTEGER; + SystemNameLength : DWORD; + SystemNameOffset : DWORD; + end; + _PERF_DATA_BLOCK = PERF_DATA_BLOCK; + TPERFDATABLOCK = PERF_DATA_BLOCK; + PPERFDATABLOCK = ^PERF_DATA_BLOCK; + + PERF_INSTANCE_DEFINITION = record + ByteLength : DWORD; + ParentObjectTitleIndex : DWORD; + ParentObjectInstance : DWORD; + UniqueID : DWORD; + NameOffset : DWORD; + NameLength : DWORD; + end; + _PERF_INSTANCE_DEFINITION = PERF_INSTANCE_DEFINITION; + TPERFINSTANCEDEFINITION = PERF_INSTANCE_DEFINITION; + PPERFINSTANCEDEFINITION = PERF_INSTANCE_DEFINITION; + + PERF_OBJECT_TYPE = record + TotalByteLength : DWORD; + DefinitionLength : DWORD; + HeaderLength : DWORD; + ObjectNameTitleIndex : DWORD; + ObjectNameTitle : LPWSTR; + ObjectHelpTitleIndex : DWORD; + ObjectHelpTitle : LPWSTR; + DetailLevel : DWORD; + NumCounters : DWORD; + DefaultCounter : DWORD; + NumInstances : DWORD; + CodePage : DWORD; + PerfTime : LARGE_INTEGER; + PerfFreq : LARGE_INTEGER; + end; + _PERF_OBJECT_TYPE = PERF_OBJECT_TYPE; + TPERFOBJECTTYPE = PERF_OBJECT_TYPE; + PPERFOBJECTTYPE = ^PERF_OBJECT_TYPE; + + POLYTEXT = record + x : longint; + y : longint; + n : UINT; + lpstr : LPCTSTR; + uiFlags : UINT; + rcl : RECT; + pdx : ^longint; + end; + _POLYTEXT = POLYTEXT; + TPOLYTEXT = POLYTEXT; + PPOLYTEXT = ^POLYTEXT; + + PORT_INFO_1 = record + pName : LPTSTR; + end; + _PORT_INFO_1 = PORT_INFO_1; + TPORTINFO1 = PORT_INFO_1; + PPORTINFO1 = ^PORT_INFO_1; + + PORT_INFO_2 = record + pPortName : LPSTR; + pMonitorName : LPSTR; + pDescription : LPSTR; + fPortType : DWORD; + Reserved : DWORD; + end; + _PORT_INFO_2 = PORT_INFO_2; + TPORTINFO2 = PORT_INFO_2; + PPORTINFO2 = ^PORT_INFO_2; + + PREVENT_MEDIA_REMOVAL = record + PreventMediaRemoval : BOOLEAN; + end; + _PREVENT_MEDIA_REMOVAL = PREVENT_MEDIA_REMOVAL; + TPREVENTMEDIAREMOVAL = PREVENT_MEDIA_REMOVAL; + PPREVENTMEDIAREMOVAL = ^PREVENT_MEDIA_REMOVAL; + + {PRINTDLG = record conflicts with PrintDlg function } + TPRINTDLG = packed record + lStructSize : DWORD; + hwndOwner : HWND; + hDevMode : HANDLE; + hDevNames : HANDLE; + hDC : HDC; + Flags : DWORD; + nFromPage : WORD; + nToPage : WORD; + nMinPage : WORD; + nMaxPage : WORD; + nCopies : WORD; + hInstance : HINST; + lCustData : DWORD; + lpfnPrintHook : LPPRINTHOOKPROC; + lpfnSetupHook : LPSETUPHOOKPROC; + lpPrintTemplateName : LPCTSTR; + lpSetupTemplateName : LPCTSTR; + hPrintTemplate : HANDLE; + hSetupTemplate : HANDLE; + end; + LPPRINTDLG = ^TPRINTDLG; + PPRINTDLG = ^TPRINTDLG; + + tagPD = TPRINTDLG; + TPD = TPRINTDLG; + PPD = ^TPRINTDLG; + + PRINTER_DEFAULTS = record + pDatatype : LPTSTR; + pDevMode : LPDEVMODE; + DesiredAccess : ACCESS_MASK; + end; + _PRINTER_DEFAULTS = PRINTER_DEFAULTS; + TPRINTERDEFAULTS = PRINTER_DEFAULTS; + PPRINTERDEFAULTS = ^PRINTER_DEFAULTS; + + PRINTER_INFO_1 = record + Flags : DWORD; + pDescription : LPTSTR; + pName : LPTSTR; + pComment : LPTSTR; + end; + LPPRINTER_INFO_1 = ^PRINTER_INFO_1; + PPRINTER_INFO_1 = ^PRINTER_INFO_1; + _PRINTER_INFO_1 = PRINTER_INFO_1; + TPRINTERINFO1 = PRINTER_INFO_1; + PPRINTERINFO1 = ^PRINTER_INFO_1; + + PRINTER_INFO_2 = record + pServerName : LPTSTR; + pPrinterName : LPTSTR; + pShareName : LPTSTR; + pPortName : LPTSTR; + pDriverName : LPTSTR; + pComment : LPTSTR; + pLocation : LPTSTR; + pDevMode : LPDEVMODE; + pSepFile : LPTSTR; + pPrintProcessor : LPTSTR; + pDatatype : LPTSTR; + pParameters : LPTSTR; + pSecurityDescriptor : PSECURITY_DESCRIPTOR; + Attributes : DWORD; + Priority : DWORD; + DefaultPriority : DWORD; + StartTime : DWORD; + UntilTime : DWORD; + Status : DWORD; + cJobs : DWORD; + AveragePPM : DWORD; + end; + _PRINTER_INFO_2 = PRINTER_INFO_2; + TPRINTERINFO2 = PRINTER_INFO_2; + PPRINTERINFO2 = ^PRINTER_INFO_2; + + PRINTER_INFO_3 = record + pSecurityDescriptor : PSECURITY_DESCRIPTOR; + end; + _PRINTER_INFO_3 = PRINTER_INFO_3; + TPRINTERINFO3 = PRINTER_INFO_3; + PPRINTERINFO3 = ^PRINTER_INFO_3; + + PRINTER_INFO_4 = record + pPrinterName : LPTSTR; + pServerName : LPTSTR; + Attributes : DWORD; + end; + _PRINTER_INFO_4 = PRINTER_INFO_4; + TPRINTERINFO4 = PRINTER_INFO_4; + PPRINTERINFO4 = ^PRINTER_INFO_4; + + PRINTER_INFO_5 = record + pPrinterName : LPTSTR; + pPortName : LPTSTR; + Attributes : DWORD; + DeviceNotSelectedTimeout : DWORD; + TransmissionRetryTimeout : DWORD; + end; + _PRINTER_INFO_5 = PRINTER_INFO_5; + TPRINTERINFO5 = PRINTER_INFO_5; + PPRINTERINFO5 = ^PRINTER_INFO_5; + + PRINTER_NOTIFY_INFO_DATA = record + _Type : WORD; + Field : WORD; + Reserved : DWORD; + Id : DWORD; + NotifyData : record + case longint of + 0 : ( adwData : array[0..1] of DWORD ); + 1 : ( Data : record + cbBuf : DWORD; + pBuf : LPVOID; + end ); + end; + end; + _PRINTER_NOTIFY_INFO_DATA = PRINTER_NOTIFY_INFO_DATA; + TPRINTERNOTIFYINFODATA = PRINTER_NOTIFY_INFO_DATA; + PPRINTERNOTIFYINFODATA = ^PRINTER_NOTIFY_INFO_DATA; + + PRINTER_NOTIFY_INFO = record + Version : DWORD; + Flags : DWORD; + Count : DWORD; + aData : array[0..0] of PRINTER_NOTIFY_INFO_DATA; + end; + _PRINTER_NOTIFY_INFO = PRINTER_NOTIFY_INFO; + TPRINTERNOTIFYINFO = PRINTER_NOTIFY_INFO; + PPRINTERNOTIFYINFO = ^PRINTER_NOTIFY_INFO; + + PRINTER_NOTIFY_OPTIONS_TYPE = record + _Type : WORD; + Reserved0 : WORD; + Reserved1 : DWORD; + Reserved2 : DWORD; + Count : DWORD; + pFields : PWORD; + end; + PPRINTER_NOTIFY_OPTIONS_TYPE = ^PRINTER_NOTIFY_OPTIONS_TYPE; + _PRINTER_NOTIFY_OPTIONS_TYPE = PRINTER_NOTIFY_OPTIONS_TYPE; + TPRINTERNOTIFYOPTIONSTYPE = PRINTER_NOTIFY_OPTIONS_TYPE; + PPRINTERNOTIFYOPTIONSTYPE = ^PRINTER_NOTIFY_OPTIONS_TYPE; + + PRINTER_NOTIFY_OPTIONS = record + Version : DWORD; + Flags : DWORD; + Count : DWORD; + pTypes : PPRINTER_NOTIFY_OPTIONS_TYPE; + end; + _PRINTER_NOTIFY_OPTIONS = PRINTER_NOTIFY_OPTIONS; + TPRINTERNOTIFYOPTIONS = PRINTER_NOTIFY_OPTIONS; + PPRINTERNOTIFYOPTIONS = ^PRINTER_NOTIFY_OPTIONS; + + PRINTPROCESSOR_INFO_1 = record + pName : LPTSTR; + end; + _PRINTPROCESSOR_INFO_1 = PRINTPROCESSOR_INFO_1; + TPRINTPROCESSORINFO1 = PRINTPROCESSOR_INFO_1; + PPRINTPROCESSORINFO1 = ^PRINTPROCESSOR_INFO_1; + + PRIVILEGE_SET = record + PrivilegeCount : DWORD; + Control : DWORD; + Privilege : array[0..(ANYSIZE_ARRAY)-1] of LUID_AND_ATTRIBUTES; + end; + LPPRIVILEGE_SET = ^PRIVILEGE_SET; + PPRIVILEGE_SET = ^PRIVILEGE_SET; + _PRIVILEGE_SET = PRIVILEGE_SET; + TPRIVILEGESET = PRIVILEGE_SET; + PPRIVILEGESET = ^PRIVILEGE_SET; + + PROCESS_HEAPENTRY = record + lpData : PVOID; + cbData : DWORD; + cbOverhead : BYTE; + iRegionIndex : BYTE; + wFlags : WORD; + dwCommittedSize : DWORD; + dwUnCommittedSize : DWORD; + lpFirstBlock : LPVOID; + lpLastBlock : LPVOID; + hMem : HANDLE; + end; + LPPROCESS_HEAP_ENTRY = ^PROCESS_HEAPENTRY; + _PROCESS_HEAP_ENTRY = PROCESS_HEAPENTRY; + TPROCESSHEAPENTRY = PROCESS_HEAPENTRY; + PPROCESSHEAPENTRY = ^PROCESS_HEAPENTRY; + + PROCESS_INFORMATION = record + hProcess : HANDLE; + hThread : HANDLE; + dwProcessId : DWORD; + dwThreadId : DWORD; + end; + LPPROCESS_INFORMATION = ^PROCESS_INFORMATION; + _PROCESS_INFORMATION = PROCESS_INFORMATION; + TPROCESSINFORMATION = PROCESS_INFORMATION; + PPROCESSINFORMATION = ^PROCESS_INFORMATION; + + LPFNPSPCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPVOID):UINT; + TFNPSPCALLBACK = LPFNPSPCALLBACK; + + PROPSHEETPAGEA = record + dwSize : DWORD; + dwFlags : DWORD; + hInstance : HINST; + case longint of + 0 : (pszTemplate : LPCTSTR); + 1 : (pResource : LPCDLGTEMPLATE; + case longint of + 0 : (hIcon : HICON); + 1 : (pszIcon : LPCTSTR; + pszTitle : LPCTSTR; + pfnDlgProc : DLGPROC; + lParam : LPARAM; + pfnCallback : LPFNPSPCALLBACK; + pcRefParent : ^UINT; + ); + ); + end; + LPPROPSHEETPAGEA = ^PROPSHEETPAGEA; + LPCPROPSHEETPAGEA = ^PROPSHEETPAGEA; + + PROPSHEETPAGEW = record + dwSize : DWORD; + dwFlags : DWORD; + hInstance : HINST; + case longint of + 0 : (pszTemplate : LPCWSTR); + 1 : (pResource : LPCDLGTEMPLATE; + case longint of + 0 : (hIcon : HICON); + 1 : (pszIcon : LPCWSTR; + pszTitle : LPCWSTR; + pfnDlgProc : DLGPROC; + lParam : LPARAM; + pfnCallback : LPFNPSPCALLBACK; + pcRefParent : ^UINT; + ); + ); + end; + LPPROPSHEETPAGEW = ^PROPSHEETPAGEW; + LPCPROPSHEETPAGEW = ^PROPSHEETPAGEW; + +{$IFDEF UNICODE} + LPPROPSHEETPAGE = ^PROPSHEETPAGEW; + LPCPROPSHEETPAGE = ^PROPSHEETPAGEW; + _PROPSHEETPAGE = PROPSHEETPAGEW; + PROPSHEETPAGE = PROPSHEETPAGEW; + TPROPSHEETPAGE = PROPSHEETPAGEW; + PPROPSHEETPAGE = ^PROPSHEETPAGEW; +{$ELSE UNICODE} + LPPROPSHEETPAGE = ^PROPSHEETPAGEA; + LPCPROPSHEETPAGE = ^PROPSHEETPAGEA; + _PROPSHEETPAGE = PROPSHEETPAGEA; + PROPSHEETPAGE = PROPSHEETPAGEA; + TPROPSHEETPAGE = PROPSHEETPAGEA; + PPROPSHEETPAGE = ^PROPSHEETPAGEA; +{$ENDIF UNICODE} + + emptyrecord = record + end; + lpemptyrecord = ^emptyrecord; + HPROPSHEETPAGE = ^emptyrecord; + + PROPSHEETHEADERA = record //prsht + dwSize : DWORD; + dwFlags : DWORD; + hwndParent : HWND; + hInstance : HINST; + case longint of + 0 : (hIcon : HICON); + 1 : (pszIcon : LPCTSTR; + pszCaption : LPCTSTR; + nPages : UINT; + case longint of + 0 : (nStartPage : UINT); + 1 : (pStartPage : LPCTSTR; + case longint of + 0 : (ppsp : LPCPROPSHEETPAGE); + 1 : (phpage : ^HPROPSHEETPAGE; + pfnCallback : PFNPROPSHEETCALLBACK; + case longint of + 0 : (hbmWatermark : HBITMAP); + 1 : (pszbmWatermark : LPCTSTR; + hplWatermark : HPALETTE; + case longint of + 0 : (hbmHeader : HBITMAP); + 1 : (pszbmHeader: PAnsiChar); + ); + ); + ); + ); + end; + LPPROPSHEETHEADERA = ^PROPSHEETHEADERA; + LPCPROPSHEETHEADERA = ^PROPSHEETHEADERA; + PPROPSHEETHEADERA = ^PROPSHEETHEADERA; + + PROPSHEETHEADERW = record //prsht + dwSize : DWORD; + dwFlags : DWORD; + hwndParent : HWND; + hInstance : HINST; + case longint of + 0 : (hIcon : HICON); + 1 : (pszIcon : LPCWSTR; + pszCaption : LPCWSTR; + nPages : UINT; + case longint of + 0 : (nStartPage : UINT); + 1 : (pStartPage : LPCWSTR; + case longint of + 0 : (ppsp : LPCPROPSHEETPAGE); + 1 : (phpage : ^HPROPSHEETPAGE; + pfnCallback : PFNPROPSHEETCALLBACK; + ); + ); + ); + end; + + LPPROPSHEETHEADERW = ^PROPSHEETHEADERW; + LPCPROPSHEETHEADERW = ^PROPSHEETHEADERW; + PPROPSHEETHEADERW = ^PROPSHEETHEADERW; + +{$IFDEF UNICODE} + _PROPSHEETHEADER = PROPSHEETHEADERW; + PROPSHEETHEADER = PROPSHEETHEADERW; + TPROPSHEETHEADER = PROPSHEETHEADERW; + PPROPSHEETHEADER = ^PROPSHEETHEADERW; + LPPROPSHEETHEADER = ^PROPSHEETHEADERW; + LPCPROPSHEETHEADER = ^PROPSHEETHEADERW; +{$ELSE UNICODE} + _PROPSHEETHEADER = PROPSHEETHEADERA; + PROPSHEETHEADER = PROPSHEETHEADERA; + TPROPSHEETHEADER = PROPSHEETHEADERA; + PPROPSHEETHEADER = ^PROPSHEETHEADERA; + LPPROPSHEETHEADER = ^PROPSHEETHEADERA; + LPCPROPSHEETHEADER = ^PROPSHEETHEADERA; +{$ENDIF UNICODE} + + + { PropertySheet callbacks } + LPFNADDPROPSHEETPAGE = function (_para1:HPROPSHEETPAGE; _para2:LPARAM):WINBOOL; + TFNADDPROPSHEETPAGE = LPFNADDPROPSHEETPAGE; + + LPFNADDPROPSHEETPAGES = function (_para1:LPVOID; _para2:LPFNADDPROPSHEETPAGE; _para3:LPARAM):WINBOOL; + TFNADDPROPSHEETPAGES = LPFNADDPROPSHEETPAGES; + + PROTOCOL_INFO = record + dwServiceFlags : DWORD; + iAddressFamily : WINT; + iMaxSockAddr : WINT; + iMinSockAddr : WINT; + iSocketType : WINT; + iProtocol : WINT; + dwMessageSize : DWORD; + lpProtocol : LPTSTR; + end; + _PROTOCOL_INFO = PROTOCOL_INFO; + TPROTOCOLINFO = PROTOCOL_INFO; + PPROTOCOLINFO = ^PROTOCOL_INFO; + + PROVIDOR_INFO_1 = record + pName : LPTSTR; + pEnvironment : LPTSTR; + pDLLName : LPTSTR; + end; + _PROVIDOR_INFO_1 = PROVIDOR_INFO_1; + TPROVIDORINFO1 = PROVIDOR_INFO_1; + PPROVIDORINFO1 = ^PROVIDOR_INFO_1; + + PSHNOTIFY = record + hdr : NMHDR; + lParam : LPARAM; + end; + LPPSHNOTIFY = ^PSHNOTIFY; + _PSHNOTIFY = PSHNOTIFY; + TPSHNOTIFY = PSHNOTIFY; + PPSHNOTIFY = ^PSHNOTIFY; + + PUNCTUATION = record + iSize : UINT; + szPunctuation : LPSTR; + end; + _punctuation = PUNCTUATION; + Tpunctuation = PUNCTUATION; + Ppunctuation = ^PUNCTUATION; + + QUERY_SERVICE_CONFIG = record + dwServiceType : DWORD; + dwStartType : DWORD; + dwErrorControl : DWORD; + lpBinaryPathName : LPTSTR; + lpLoadOrderGroup : LPTSTR; + dwTagId : DWORD; + lpDependencies : LPTSTR; + lpServiceStartName : LPTSTR; + lpDisplayName : LPTSTR; + end; + LPQUERY_SERVICE_CONFIG = ^QUERY_SERVICE_CONFIG; + _QUERY_SERVICE_CONFIG = QUERY_SERVICE_CONFIG; + TQUERYSERVICECONFIG = QUERY_SERVICE_CONFIG; + PQUERYSERVICECONFIG = ^QUERY_SERVICE_CONFIG; + + QUERY_SERVICE_LOCK_STATUS = record + fIsLocked : DWORD; + lpLockOwner : LPTSTR; + dwLockDuration : DWORD; + end; + LPQUERY_SERVICE_LOCK_STATUS = ^QUERY_SERVICE_LOCK_STATUS; + _QUERY_SERVICE_LOCK_STATUS = QUERY_SERVICE_LOCK_STATUS; + TQUERYSERVICELOCKSTATUS = QUERY_SERVICE_LOCK_STATUS; + PQUERYSERVICELOCKSTATUS = ^QUERY_SERVICE_LOCK_STATUS; + + RASAMB = record + dwSize : DWORD; + dwError : DWORD; + szNetBiosError : array[0..(NETBIOS_NAME_LEN + 1)-1] of TCHAR; + bLana : BYTE; + end; + _RASAMB = RASAMB; + TRASAMB = RASAMB; + PRASAMB = ^RASAMB; + + RASCONN = record + dwSize : DWORD; + hrasconn : HRASCONN; + szEntryName : array[0..(RAS_MaxEntryName + 1)-1] of TCHAR; + szDeviceType : array[0..(RAS_MaxDeviceType + 1)-1] of CHAR; + szDeviceName : array[0..(RAS_MaxDeviceName + 1)-1] of CHAR; + end; + _RASCONN = RASCONN; + TRASCONN = RASCONN; + PRASCONN = ^RASCONN; + + RASCONNSTATUS = record + dwSize : DWORD; + rasconnstate : RASCONNSTATE; + dwError : DWORD; + szDeviceType : array[0..(RAS_MaxDeviceType + 1)-1] of TCHAR; + szDeviceName : array[0..(RAS_MaxDeviceName + 1)-1] of TCHAR; + end; + _RASCONNSTATUS = RASCONNSTATUS; + TRASCONNSTATUS = RASCONNSTATUS; + PRASCONNSTATUS = ^RASCONNSTATUS; + + RASDIALEXTENSIONS = record + dwSize : DWORD; + dwfOptions : DWORD; + hwndParent : HWND; + reserved : DWORD; + end; + _RASDIALEXTENSIONS = RASDIALEXTENSIONS; + TRASDIALEXTENSIONS = RASDIALEXTENSIONS; + PRASDIALEXTENSIONS = ^RASDIALEXTENSIONS; + + RASDIALPARAMS = record + dwSize : DWORD; + szEntryName : array[0..(RAS_MaxEntryName + 1)-1] of TCHAR; + szPhoneNumber : array[0..(RAS_MaxPhoneNumber + 1)-1] of TCHAR; + szCallbackNumber : array[0..(RAS_MaxCallbackNumber + 1)-1] of TCHAR; + szUserName : array[0..(UNLEN + 1)-1] of TCHAR; + szPassword : array[0..(PWLEN + 1)-1] of TCHAR; + szDomain : array[0..(DNLEN + 1)-1] of TCHAR; + end; + _RASDIALPARAMS = RASDIALPARAMS; + TRASDIALPARAMS = RASDIALPARAMS; + PRASDIALPARAMS = ^RASDIALPARAMS; + + RASENTRYNAME = record + dwSize : DWORD; + szEntryName : array[0..(RAS_MaxEntryName + 1)-1] of TCHAR; + end; + _RASENTRYNAME = RASENTRYNAME; + TRASENTRYNAME = RASENTRYNAME; + PRASENTRYNAME = ^RASENTRYNAME; + + RASPPPIP = record + dwSize : DWORD; + dwError : DWORD; + szIpAddress : array[0..(RAS_MaxIpAddress + 1)-1] of TCHAR; + end; + _RASPPPIP = RASPPPIP; + TRASPPPIP = RASPPPIP; + PRASPPPIP = ^RASPPPIP; + + RASPPPIPX = record + dwSize : DWORD; + dwError : DWORD; + szIpxAddress : array[0..(RAS_MaxIpxAddress + 1)-1] of TCHAR; + end; + _RASPPPIPX = RASPPPIPX; + TRASPPPIPX = RASPPPIPX; + PRASPPPIPX = ^RASPPPIPX; + + RASPPPNBF = record + dwSize : DWORD; + dwError : DWORD; + dwNetBiosError : DWORD; + szNetBiosError : array[0..(NETBIOS_NAME_LEN + 1)-1] of TCHAR; + szWorkstationName : array[0..(NETBIOS_NAME_LEN + 1)-1] of TCHAR; + bLana : BYTE; + end; + _RASPPPNBF = RASPPPNBF; + TRASPPPNBF = RASPPPNBF; + PRASPPPNBF = ^RASPPPNBF; + + RASTERIZER_STATUS = record + nSize : integer; + wFlags : integer; + nLanguageID : integer; + end; + LPRASTERIZER_STATUS = ^RASTERIZER_STATUS; + _RASTERIZER_STATUS = RASTERIZER_STATUS; + TRASTERIZERSTATUS = RASTERIZER_STATUS; + PRASTERIZERSTATUS = ^RASTERIZER_STATUS; + + REASSIGN_BLOCKS = record + Reserved : WORD; + Count : WORD; + BlockNumber : array[0..0] of DWORD; + end; + _REASSIGN_BLOCKS = REASSIGN_BLOCKS; + TREASSIGNBLOCKS = REASSIGN_BLOCKS; + PREASSIGNBLOCKS = ^REASSIGN_BLOCKS; + + REMOTE_NAME_INFO = record + lpUniversalName : LPTSTR; + lpConnectionName : LPTSTR; + lpRemainingPath : LPTSTR; + end; + _REMOTE_NAME_INFO = REMOTE_NAME_INFO; + TREMOTENAMEINFO = REMOTE_NAME_INFO; + PREMOTENAMEINFO = ^REMOTE_NAME_INFO; + + (* + TODO: OLE + typedef struct _reobject { + DWORD cbStruct; + LONG cp; + CLSID clsid; + LPOLEOBJECT poleobj; + LPSTORAGE pstg; + LPOLECLIENTSITE polesite; + SIZEL sizel; + DWORD dvaspect; + DWORD dwFlags; + DWORD dwUser; + } REOBJECT; + *) + + REPASTESPECIAL = record + dwAspect : DWORD; + dwParam : DWORD; + end; + _repastespecial = REPASTESPECIAL; + Trepastespecial = REPASTESPECIAL; + Prepastespecial = ^REPASTESPECIAL; + + REQRESIZE = record + nmhdr : NMHDR; + rc : RECT; + end; + _reqresize = REQRESIZE; + Treqresize = REQRESIZE; + Preqresize = ^REQRESIZE; + + RGNDATAHEADER = record + dwSize : DWORD; + iType : DWORD; + nCount : DWORD; + nRgnSize : DWORD; + rcBound : RECT; + end; + _RGNDATAHEADER = RGNDATAHEADER; + TRGNDATAHEADER = RGNDATAHEADER; + PRGNDATAHEADER = ^RGNDATAHEADER; + + RGNDATA = record + rdh : RGNDATAHEADER; + Buffer : array[0..0] of char; + end; + LPRGNDATA = ^RGNDATA; + _RGNDATA = RGNDATA; + TRGNDATA = RGNDATA; + PRGNDATA = ^RGNDATA; + + SCROLLINFO = record + cbSize : UINT; + fMask : UINT; + nMin : longint; + nMax : longint; + nPage : UINT; + nPos : longint; + nTrackPos : longint; + end; + LPSCROLLINFO = ^SCROLLINFO; + LPCSCROLLINFO = ^SCROLLINFO; + tagSCROLLINFO = SCROLLINFO; + TSCROLLINFO = SCROLLINFO; + PSCROLLINFO = ^SCROLLINFO; + + SECURITY_ATTRIBUTES = record + nLength : DWORD; + lpSecurityDescriptor : LPVOID; + bInheritHandle : WINBOOL; + end; + LPSECURITY_ATTRIBUTES = ^SECURITY_ATTRIBUTES; + _SECURITY_ATTRIBUTES = SECURITY_ATTRIBUTES; + TSECURITYATTRIBUTES = SECURITY_ATTRIBUTES; + PSECURITYATTRIBUTES = ^SECURITY_ATTRIBUTES; + + SECURITY_INFORMATION = DWORD; + PSECURITY_INFORMATION = ^SECURITY_INFORMATION; + TSECURITYINFORMATION = SECURITY_INFORMATION; + PSECURITYINFORMATION = ^SECURITY_INFORMATION; + + SELCHANGE = record + nmhdr : NMHDR; + chrg : CHARRANGE; + seltyp : WORD; + end; + _selchange = SELCHANGE; + Tselchange = SELCHANGE; + Pselchange = ^SELCHANGE; + + SERIALKEYS = record + cbSize : DWORD; + dwFlags : DWORD; + lpszActivePort : LPSTR; + lpszPort : LPSTR; + iBaudRate : DWORD; + iPortState : DWORD; + end; + LPSERIALKEYS = ^SERIALKEYS; + tagSERIALKEYS = SERIALKEYS; + TSERIALKEYS = SERIALKEYS; + PSERIALKEYS = ^SERIALKEYS; + + SERVICE_TABLE_ENTRY = record + lpServiceName : LPTSTR; + lpServiceProc : LPSERVICE_MAIN_FUNCTION; + end; + LPSERVICE_TABLE_ENTRY = ^SERVICE_TABLE_ENTRY; + _SERVICE_TABLE_ENTRY = SERVICE_TABLE_ENTRY; + TSERVICETABLEENTRY = SERVICE_TABLE_ENTRY; + PSERVICETABLEENTRY = ^SERVICE_TABLE_ENTRY; + + SERVICE_TYPE_VALUE_ABS = record + dwNameSpace : DWORD; + dwValueType : DWORD; + dwValueSize : DWORD; + lpValueName : LPTSTR; + lpValue : PVOID; + end; + _SERVICE_TYPE_VALUE_ABS = SERVICE_TYPE_VALUE_ABS; + TSERVICETYPEVALUEABS = SERVICE_TYPE_VALUE_ABS; + PSERVICETYPEVALUEABS = ^SERVICE_TYPE_VALUE_ABS; + + SERVICE_TYPE_INFO_ABS = record + lpTypeName : LPTSTR; + dwValueCount : DWORD; + Values : array[0..0] of SERVICE_TYPE_VALUE_ABS; + end; + _SERVICE_TYPE_INFO_ABS = SERVICE_TYPE_INFO_ABS; + TSERVICETYPEINFOABS = SERVICE_TYPE_INFO_ABS; + PSERVICETYPEINFOABS = ^SERVICE_TYPE_INFO_ABS; + + SESSION_BUFFER = record + lsn : UCHAR; + state : UCHAR; + local_name : array[0..(NCBNAMSZ)-1] of UCHAR; + remote_name : array[0..(NCBNAMSZ)-1] of UCHAR; + rcvs_outstanding : UCHAR; + sends_outstanding : UCHAR; + end; + _SESSION_BUFFER = SESSION_BUFFER; + TSESSIONBUFFER = SESSION_BUFFER; + PSESSIONBUFFER = ^SESSION_BUFFER; + + SESSION_HEADER = record + sess_name : UCHAR; + num_sess : UCHAR; + rcv_dg_outstanding : UCHAR; + rcv_any_outstanding : UCHAR; + end; + _SESSION_HEADER = SESSION_HEADER; + TSESSIONHEADER = SESSION_HEADER; + PSESSIONHEADER = ^SESSION_HEADER; + + SET_PARTITION_INFORMATION = record + PartitionType : BYTE; + end; + _SET_PARTITION_INFORMATION = SET_PARTITION_INFORMATION; + TSETPARTITIONINFORMATION = SET_PARTITION_INFORMATION; + PSETPARTITIONINFORMATION = ^SET_PARTITION_INFORMATION; + + SHELLEXECUTEINFO = record //+shellapi + cbSize: DWORD; + fMask: ULONG; + hwnd: HWND; + lpVerb: LPCTSTR; + lpFile: LPCTSTR; + lpParameters: LPCTSTR; + lpDirectory: LPCTSTR; + nShow: Integer ; + hInstApp: HINST; + // Optional fields + lpIDList: LPVOID; + lpClass: LPCTSTR; + hkeyClass: HKEY; + dwHotKey: DWORD; + hIcon: HANDLE; + hProcess :HANDLE; + end; + _SHELLEXECUTEINFO=SHELLEXECUTEINFO; //+shellapi + LPSHELLEXECUTEINFO=^SHELLEXECUTEINFO; //+shellapi + + SHCONTF = (SHCONTF_FOLDERS := 32,SHCONTF_NONFOLDERS := 64, + SHCONTF_INCLUDEHIDDEN := 128); + tagSHCONTF = SHCONTF; + TSHCONTF = SHCONTF; + + SHFILEINFO = record + hIcon : HICON; + iIcon : longint; + dwAttributes : DWORD; + szDisplayName : array[0..MAX_PATH-1] of TCHAR; + szTypeName : array[0..79] of TCHAR; + end; + _SHFILEINFO = SHFILEINFO; + TSHFILEINFO = SHFILEINFO; + PSHFILEINFO = ^SHFILEINFO; + + FILEOP_FLAGS = WORD; + TFILEOPFLAGS = FILEOP_FLAGS; + PFILEOPFLAGS = ^FILEOP_FLAGS; + + SHFILEOPSTRUCTW = record //+shellapi + wnd : HWND; + wFunc : UINT; + pFrom : LPCWSTR; + pTo : LPCWSTR; + fFlags : FILEOP_FLAGS; + fAnyOperationsAborted : WINBOOL; + hNameMappings : LPVOID; + lpszProgressTitle : LPCWSTR; + end; + LPSHFILEOPSTRUCTW = ^SHFILEOPSTRUCTW; + _SHFILEOPSTRUCT = SHFILEOPSTRUCTW; + TSHFILEOPSTRUCT = SHFILEOPSTRUCTW; + PSHFILEOPSTRUCT = ^SHFILEOPSTRUCTW; + TSHFILEOPSTRUCTW = SHFILEOPSTRUCTW; + PSHFILEOPSTRUCTW = ^SHFILEOPSTRUCTW; + + SHGNO = (SHGDN_NORMAL := 0,SHGDN_INFOLDER := 1, + SHGDN_FORPARSING := $8000); + tagSHGDN = SHGNO; + TSHGDN = SHGNO; + + SHNAMEMAPPING = record + pszOldPath : LPSTR; + pszNewPath : LPSTR; + cchOldPath : longint; + cchNewPath : longint; + end; + LPSHNAMEMAPPING = ^SHNAMEMAPPING; + _SHNAMEMAPPING = SHNAMEMAPPING; + TSHNAMEMAPPING = SHNAMEMAPPING; + PSHNAMEMAPPING = ^SHNAMEMAPPING; + + SINGLE_LIST_ENTRY = record + Next : ^_SINGLE_LIST_ENTRY; + end; + _SINGLE_LIST_ENTRY = SINGLE_LIST_ENTRY; + TSINGLELISTENTRY = SINGLE_LIST_ENTRY; + PSINGLELISTENTRY = ^SINGLE_LIST_ENTRY; + + SOUNDSENTRY = record + cbSize : UINT; + dwFlags : DWORD; + iFSTextEffect : DWORD; + iFSTextEffectMSec : DWORD; + iFSTextEffectColorBits : DWORD; + iFSGrafEffect : DWORD; + iFSGrafEffectMSec : DWORD; + iFSGrafEffectColor : DWORD; + iWindowsEffect : DWORD; + iWindowsEffectMSec : DWORD; + lpszWindowsEffectDLL : LPTSTR; + iWindowsEffectOrdinal : DWORD; + end; + LPSOUNDSENTRY = ^SOUNDSENTRY; + tagSOUNDSENTRY = SOUNDSENTRY; + TSOUNDSENTRY = SOUNDSENTRY; + PSOUNDSENTRY = ^SOUNDSENTRY; + + STARTUPINFO = record + cb : DWORD; + lpReserved : LPTSTR; + lpDesktop : LPTSTR; + lpTitle : LPTSTR; + dwX : DWORD; + dwY : DWORD; + dwXSize : DWORD; + dwYSize : DWORD; + dwXCountChars : DWORD; + dwYCountChars : DWORD; + dwFillAttribute : DWORD; + dwFlags : DWORD; + wShowWindow : WORD; + cbReserved2 : WORD; + lpReserved2 : LPBYTE; + hStdInput : HANDLE; + hStdOutput : HANDLE; + hStdError : HANDLE; + end; + LPSTARTUPINFO = ^STARTUPINFO; + _STARTUPINFO = STARTUPINFO; + TSTARTUPINFO = STARTUPINFO; + PSTARTUPINFO = ^STARTUPINFO; + + STICKYKEYS = record + cbSize : DWORD; + dwFlags : DWORD; + end; + LPSTICKYKEYS = ^STICKYKEYS; + tagSTICKYKEYS = STICKYKEYS; + TSTICKYKEYS = STICKYKEYS; + PSTICKYKEYS = ^STICKYKEYS; + + STRRET = record + uType : UINT; + DUMMYUNIONNAME : record + case longint of + 0 : ( pOleStr : LPWSTR ); + 1 : ( uOffset : UINT ); + 2 : ( cStr : array[0..(MAX_PATH)-1] of char ); + end; + end; + LPSTRRET = ^STRRET; + _STRRET = STRRET; + TSTRRET = STRRET; + PSTRRET = ^STRRET; + + STYLEBUF = record + dwStyle : DWORD; + szDescription : array[0..31] of CHAR; + end; + LPSTYLEBUF = ^STYLEBUF; + _tagSTYLEBUF = STYLEBUF; + TSTYLEBUF = STYLEBUF; + PSTYLEBUF = ^STYLEBUF; + + STYLESTRUCT = record + styleOld : DWORD; + styleNew : DWORD; + end; + LPSTYLESTRUCT = ^STYLESTRUCT; + tagSTYLESTRUCT = STYLESTRUCT; + TSTYLESTRUCT = STYLESTRUCT; + PSTYLESTRUCT = ^STYLESTRUCT; + + SYSTEM_AUDIT_ACE = record + Header : ACE_HEADER; + Mask : ACCESS_MASK; + SidStart : DWORD; + end; + _SYSTEM_AUDIT_ACE = SYSTEM_AUDIT_ACE; + TSYSTEMAUDITACE = SYSTEM_AUDIT_ACE; + PSYSTEMAUDITACE = ^SYSTEM_AUDIT_ACE; + + SYSTEM_INFO = record + u : record + case longint of + 0 : ( dwOemId : DWORD ); + 1 : ( s : record + wProcessorArchitecture : WORD; + wReserved : WORD; + end ); + end; + dwPageSize : DWORD; + lpMinimumApplicationAddress : LPVOID; + lpMaximumApplicationAddress : LPVOID; + dwActiveProcessorMask : DWORD; + dwNumberOfProcessors : DWORD; + dwProcessorType : DWORD; + dwAllocationGranularity : DWORD; + wProcessorLevel : WORD; + wProcessorRevision : WORD; + end; + LPSYSTEM_INFO = ^SYSTEM_INFO; + _SYSTEM_INFO = SYSTEM_INFO; + TSYSTEMINFO = SYSTEM_INFO; + PSYSTEMINFO = ^SYSTEM_INFO; + + SYSTEM_POWER_STATUS = record + ACLineStatus : BYTE; + BatteryFlag : BYTE; + BatteryLifePercent : BYTE; + Reserved1 : BYTE; + BatteryLifeTime : DWORD; + BatteryFullLifeTime : DWORD; + end; + _SYSTEM_POWER_STATUS = SYSTEM_POWER_STATUS; + TSYSTEMPOWERSTATUS = SYSTEM_POWER_STATUS; + PSYSTEMPOWERSTATUS = ^SYSTEM_POWER_STATUS; + + LPSYSTEM_POWER_STATUS = ^emptyrecord; + + TAPE_ERASE = record + _Type : ULONG; + end; + _TAPE_ERASE = TAPE_ERASE; + TTAPEERASE = TAPE_ERASE; + PTAPEERASE = ^TAPE_ERASE; + + TAPE_GET_DRIVE_PARAMETERS = record + ECC : BOOLEAN; + Compression : BOOLEAN; + DataPadding : BOOLEAN; + ReportSetmarks : BOOLEAN; + DefaultBlockSize : ULONG; + MaximumBlockSize : ULONG; + MinimumBlockSize : ULONG; + MaximumPartitionCount : ULONG; + FeaturesLow : ULONG; + FeaturesHigh : ULONG; + EOTWarningZoneSize : ULONG; + end; + _TAPE_GET_DRIVE_PARAMETERS = TAPE_GET_DRIVE_PARAMETERS; + TTAPEGETDRIVEPARAMETERS = TAPE_GET_DRIVE_PARAMETERS; + PTAPEGETDRIVEPARAMETERS = ^TAPE_GET_DRIVE_PARAMETERS; + + TAPE_GET_MEDIA_PARAMETERS = record + Capacity : LARGE_INTEGER; + Remaining : LARGE_INTEGER; + BlockSize : DWORD; + PartitionCount : DWORD; + WriteProtected : BOOLEAN; + end; + _TAPE_GET_MEDIA_PARAMETERS = TAPE_GET_MEDIA_PARAMETERS; + TTAPEGETMEDIAPARAMETERS = TAPE_GET_MEDIA_PARAMETERS; + PTAPEGETMEDIAPARAMETERS = ^TAPE_GET_MEDIA_PARAMETERS; + + TAPE_GET_POSITION = record + _Type : ULONG; + Partition : ULONG; + OffsetLow : ULONG; + OffsetHigh : ULONG; + end; + _TAPE_GET_POSITION = TAPE_GET_POSITION; + TTAPEGETPOSITION = TAPE_GET_POSITION; + PTAPEGETPOSITION = ^TAPE_GET_POSITION; + + TAPE_PREPARE = record + Operation : ULONG; + end; + _TAPE_PREPARE = TAPE_PREPARE; + TTAPEPREPARE = TAPE_PREPARE; + PTAPEPREPARE = ^TAPE_PREPARE; + + TAPE_SET_DRIVE_PARAMETERS = record + ECC : BOOLEAN; + Compression : BOOLEAN; + DataPadding : BOOLEAN; + ReportSetmarks : BOOLEAN; + EOTWarningZoneSize : ULONG; + end; + _TAPE_SET_DRIVE_PARAMETERS = TAPE_SET_DRIVE_PARAMETERS; + TTAPESETDRIVEPARAMETERS = TAPE_SET_DRIVE_PARAMETERS; + PTAPESETDRIVEPARAMETERS = ^TAPE_SET_DRIVE_PARAMETERS; + + TAPE_SET_MEDIA_PARAMETERS = record + BlockSize : ULONG; + end; + _TAPE_SET_MEDIA_PARAMETERS = TAPE_SET_MEDIA_PARAMETERS; + TTAPESETMEDIAPARAMETERS = TAPE_SET_MEDIA_PARAMETERS; + PTAPESETMEDIAPARAMETERS = ^TAPE_SET_MEDIA_PARAMETERS; + + TAPE_SET_POSITION = record + Method : ULONG; + Partition : ULONG; + OffsetLow : ULONG; + OffsetHigh : ULONG; + end; + _TAPE_SET_POSITION = TAPE_SET_POSITION; + TTAPESETPOSITION = TAPE_SET_POSITION; + PTAPESETPOSITION = ^TAPE_SET_POSITION; + + TAPE_WRITE_MARKS = record + _Type : ULONG; + Count : ULONG; + end; + _TAPE_WRITE_MARKS = TAPE_WRITE_MARKS; + TTAPEWRITEMARKS = TAPE_WRITE_MARKS; + PTAPEWRITEMARKS = ^TAPE_WRITE_MARKS; + + TBADDBITMAP = record + hInst : HINST; + nID : UINT; + end; + LPTBADDBITMAP = ^TBADDBITMAP; + TTBADDBITMAP = TBADDBITMAP; + PTBADDBITMAP = ^TBADDBITMAP; + + TBBUTTON = record + iBitmap : longint; + idCommand : longint; + fsState : BYTE; + fsStyle : BYTE; + dwData : DWORD; + iString : longint; + end; + LPTBBUTTON = ^TBBUTTON; + LPCTBBUTTON = ^TBBUTTON; + _TBBUTTON = TBBUTTON; + TTBBUTTON = TBBUTTON; + PTBBUTTON = ^TBBUTTON; + + TBNOTIFY = record + hdr : NMHDR; + iItem : longint; + tbButton : TBBUTTON; + cchText : longint; + pszText : LPTSTR; + end; + LPTBNOTIFY = ^TBNOTIFY; + TTBNOTIFY = TBNOTIFY; + PTBNOTIFY = ^TBNOTIFY; + + TBSAVEPARAMS = record + hkr : HKEY; + pszSubKey : LPCTSTR; + pszValueName : LPCTSTR; + end; + TTBSAVEPARAMS = TBSAVEPARAMS; + PTBSAVEPARAMS = ^TBSAVEPARAMS; + + TC_HITTESTINFO = record + pt : POINT; + flags : UINT; + end; + _TC_HITTESTINFO = TC_HITTESTINFO; + TTCHITTESTINFO = TC_HITTESTINFO; + PTCHITTESTINFO = ^TC_HITTESTINFO; + + TC_ITEM = record + mask : UINT; + lpReserved1 : UINT; + lpReserved2 : UINT; + pszText : LPTSTR; + cchTextMax : longint; + iImage : longint; + lParam : LPARAM; + end; + _TC_ITEM = TC_ITEM; + TTCITEM = TC_ITEM; + PTCITEM = ^TC_ITEM; + + TC_ITEMHEADER = record + mask : UINT; + lpReserved1 : UINT; + lpReserved2 : UINT; + pszText : LPTSTR; + cchTextMax : longint; + iImage : longint; + end; + _TC_ITEMHEADER = TC_ITEMHEADER; + TTCITEMHEADER = TC_ITEMHEADER; + PTCITEMHEADER = ^TC_ITEMHEADER; + + TC_KEYDOWN = record + hdr : NMHDR; + wVKey : WORD; + flags : UINT; + end; + _TC_KEYDOWN = TC_KEYDOWN; + TTCKEYDOWN = TC_KEYDOWN; + PTCKEYDOWN = ^TC_KEYDOWN; + + TEXTRANGE = record + chrg : CHARRANGE; + lpstrText : LPSTR; + end; + _textrange = TEXTRANGE; + Ttextrange = TEXTRANGE; + Ptextrange = ^TEXTRANGE; + + TIME_ZONE_INFORMATION = record + Bias : LONG; + StandardName : array[0..31] of WCHAR; + StandardDate : SYSTEMTIME; + StandardBias : LONG; + DaylightName : array[0..31] of WCHAR; + DaylightDate : SYSTEMTIME; + DaylightBias : LONG; + end; + LPTIME_ZONE_INFORMATION = ^TIME_ZONE_INFORMATION; + _TIME_ZONE_INFORMATION = TIME_ZONE_INFORMATION; + TTIMEZONEINFORMATION = TIME_ZONE_INFORMATION; + PTIMEZONEINFORMATION = ^TIME_ZONE_INFORMATION; + + TOGGLEKEYS = record + cbSize : DWORD; + dwFlags : DWORD; + end; + tagTOGGLEKEYS = TOGGLEKEYS; + TTOGGLEKEYS = TOGGLEKEYS; + PTOGGLEKEYS = ^TOGGLEKEYS; + + TOKEN_SOURCE = record + SourceName : array[0..7] of CHAR; + SourceIdentifier : LUID; + end; + _TOKEN_SOURCE = TOKEN_SOURCE; + TTOKENSOURCE = TOKEN_SOURCE; + PTOKENSOURCE = ^TOKEN_SOURCE; + + TOKEN_CONTROL = record + TokenId : LUID; + AuthenticationId : LUID; + ModifiedId : LUID; + TokenSource : TOKEN_SOURCE; + end; + _TOKEN_CONTROL = TOKEN_CONTROL; + TTOKENCONTROL = TOKEN_CONTROL; + PTOKENCONTROL = ^TOKEN_CONTROL; + + TOKEN_DEFAULT_DACL = record + DefaultDacl : PACL; + end; + _TOKEN_DEFAULT_DACL = TOKEN_DEFAULT_DACL; + TTOKENDEFAULTDACL = TOKEN_DEFAULT_DACL; + PTOKENDEFAULTDACL = ^TOKEN_DEFAULT_DACL; + + TOKEN_GROUPS = record + GroupCount : DWORD; + Groups : array[0..(ANYSIZE_ARRAY)-1] of SID_AND_ATTRIBUTES; + end; + PTOKEN_GROUPS = ^TOKEN_GROUPS; + LPTOKEN_GROUPS = ^TOKEN_GROUPS; + _TOKEN_GROUPS = TOKEN_GROUPS; + TTOKENGROUPS = TOKEN_GROUPS; + PTOKENGROUPS = ^TOKEN_GROUPS; + + TOKEN_OWNER = record + Owner : PSID; + end; + _TOKEN_OWNER = TOKEN_OWNER; + TTOKENOWNER = TOKEN_OWNER; + PTOKENOWNER = ^TOKEN_OWNER; + + TOKEN_PRIMARY_GROUP = record + PrimaryGroup : PSID; + end; + _TOKEN_PRIMARY_GROUP = TOKEN_PRIMARY_GROUP; + TTOKENPRIMARYGROUP = TOKEN_PRIMARY_GROUP; + PTOKENPRIMARYGROUP = ^TOKEN_PRIMARY_GROUP; + + TOKEN_PRIVILEGES = packed record + PrivilegeCount : DWORD; + Privileges : array[0..(ANYSIZE_ARRAY)-1] of LUID_AND_ATTRIBUTES; + end; + + PTOKEN_PRIVILEGES = ^TOKEN_PRIVILEGES; + LPTOKEN_PRIVILEGES = ^TOKEN_PRIVILEGES; + _TOKEN_PRIVILEGES = TOKEN_PRIVILEGES; + TTOKENPRIVILEGES = TOKEN_PRIVILEGES; + PTOKENPRIVILEGES = ^TOKEN_PRIVILEGES; + + TOKEN_STATISTICS = record + TokenId : LUID; + AuthenticationId : LUID; + ExpirationTime : LARGE_INTEGER; + TokenType : TOKEN_TYPE; + ImpersonationLevel : SECURITY_IMPERSONATION_LEVEL; + DynamicCharged : DWORD; + DynamicAvailable : DWORD; + GroupCount : DWORD; + PrivilegeCount : DWORD; + ModifiedId : LUID; + end; + _TOKEN_STATISTICS = TOKEN_STATISTICS; + TTOKENSTATISTICS = TOKEN_STATISTICS; + PTOKENSTATISTICS = ^TOKEN_STATISTICS; + + TOKEN_USER = record + User : SID_AND_ATTRIBUTES; + end; + _TOKEN_USER = TOKEN_USER; + TTOKENUSER = TOKEN_USER; + PTOKENUSER = ^TOKEN_USER; + + TOOLINFO = record + cbSize : UINT; + uFlags : UINT; + hwnd : HWND; + uId : UINT; + rect : RECT; + hinst : HINST; + lpszText : LPTSTR; + end; + LPTOOLINFO = ^TOOLINFO; + TTOOLINFO = TOOLINFO; + PTOOLINFO = ^TOOLINFO; + + TPMPARAMS = record + cbSize : UINT; + rcExclude : RECT; + end; + LPTPMPARAMS = ^TPMPARAMS; + tagTPMPARAMS = TPMPARAMS; + TTPMPARAMS = TPMPARAMS; + PTPMPARAMS = ^TPMPARAMS; + + TRANSMIT_FILE_BUFFERS = record + Head : PVOID; + HeadLength : DWORD; + Tail : PVOID; + TailLength : DWORD; + end; + _TRANSMIT_FILE_BUFFERS = TRANSMIT_FILE_BUFFERS; + TTRANSMITFILEBUFFERS = TRANSMIT_FILE_BUFFERS; + PTRANSMITFILEBUFFERS = ^TRANSMIT_FILE_BUFFERS; + + TTHITTESTINFO = record + hwnd : HWND; + pt : POINT; + ti : TOOLINFO; + end; + LPHITTESTINFO = ^TTHITTESTINFO; + _TT_HITTESTINFO = TTHITTESTINFO; + TTTHITTESTINFO = TTHITTESTINFO; + PTTHITTESTINFO = ^TTHITTESTINFO; + + TTPOLYCURVE = record + wType : WORD; + cpfx : WORD; + apfx : array[0..0] of POINTFX; + end; + LPTTPOLYCURVE = ^TTPOLYCURVE; + tagTTPOLYCURVE = TTPOLYCURVE; + TTTPOLYCURVE = TTPOLYCURVE; + PTTPOLYCURVE = ^TTPOLYCURVE; + + TTPOLYGONHEADER = record + cb : DWORD; + dwType : DWORD; + pfxStart : POINTFX; + end; + LPTTPOLYGONHEADER = ^TTPOLYGONHEADER; + _TTPOLYGONHEADER = TTPOLYGONHEADER; + TTTPOLYGONHEADER = TTPOLYGONHEADER; + PTTPOLYGONHEADER = ^TTPOLYGONHEADER; + + TV_DISPINFO = record + hdr : NMHDR; + item : TV_ITEM; + end; + _TV_DISPINFO = TV_DISPINFO; + TTVDISPINFO = TV_DISPINFO; + PTVDISPINFO = ^TV_DISPINFO; + + TV_HITTESTINFO = record + pt : POINT; + flags : UINT; + hItem : HTREEITEM; + end; + LPTV_HITTESTINFO = ^TV_HITTESTINFO; + _TVHITTESTINFO = TV_HITTESTINFO; + TTVHITTESTINFO = TV_HITTESTINFO; + PTVHITTESTINFO = ^TV_HITTESTINFO; + + TV_INSERTSTRUCT = record + hParent : HTREEITEM; + hInsertAfter : HTREEITEM; + item : TV_ITEM; + end; + LPTV_INSERTSTRUCT = ^TV_INSERTSTRUCT; + _TV_INSERTSTRUCT = TV_INSERTSTRUCT; + TTVINSERTSTRUCT = TV_INSERTSTRUCT; + PTVINSERTSTRUCT = ^TV_INSERTSTRUCT; + + TV_KEYDOWN = record + hdr : NMHDR; + wVKey : WORD; + flags : UINT; + end; + _TV_KEYDOWN = TV_KEYDOWN; + TTVKEYDOWN = TV_KEYDOWN; + PTVKEYDOWN = ^TV_KEYDOWN; + + TV_SORTCB = record + hParent : HTREEITEM; + lpfnCompare : PFNTVCOMPARE; + lParam : LPARAM; + end; + LPTV_SORTCB = ^TV_SORTCB; + _TV_SORTCB = TV_SORTCB; + TTVSORTCB = TV_SORTCB; + PTVSORTCB = ^TV_SORTCB; + + UDACCEL = record + nSec : UINT; + nInc : UINT; + end; + TUDACCEL = UDACCEL; + PUDACCEL = ^UDACCEL; + + + UNIVERSAL_NAME_INFO = record + lpUniversalName : LPTSTR; + end; + _UNIVERSAL_NAME_INFO = UNIVERSAL_NAME_INFO; + TUNIVERSALNAMEINFO = UNIVERSAL_NAME_INFO; + PUNIVERSALNAMEINFO = ^UNIVERSAL_NAME_INFO; + + USEROBJECTFLAGS = record + fInherit : WINBOOL; + fReserved : WINBOOL; + dwFlags : DWORD; + end; + tagUSEROBJECTFLAGS = USEROBJECTFLAGS; + TUSEROBJECTFLAGS = USEROBJECTFLAGS; + PUSEROBJECTFLAGS = ^USEROBJECTFLAGS; + + VALENT = record + ve_valuename : LPTSTR; + ve_valuelen : DWORD; + ve_valueptr : DWORD; + ve_type : DWORD; + end; + TVALENT = VALENT; + PVALENT = ^VALENT; + + value_ent = VALENT; + Tvalue_ent = VALENT; + Pvalue_ent = ^VALENT; + + VERIFY_INFORMATION = record + StartingOffset : LARGE_INTEGER; + Length : DWORD; + end; + _VERIFY_INFORMATION = VERIFY_INFORMATION; + TVERIFYINFORMATION = VERIFY_INFORMATION; + PVERIFYINFORMATION = ^VERIFY_INFORMATION; + + VS_FIXEDFILEINFO = record + dwSignature : DWORD; + dwStrucVersion : DWORD; + dwFileVersionMS : DWORD; + dwFileVersionLS : DWORD; + dwProductVersionMS : DWORD; + dwProductVersionLS : DWORD; + dwFileFlagsMask : DWORD; + dwFileFlags : DWORD; + dwFileOS : DWORD; + dwFileType : DWORD; + dwFileSubtype : DWORD; + dwFileDateMS : DWORD; + dwFileDateLS : DWORD; + end; + _VS_FIXEDFILEINFO = VS_FIXEDFILEINFO; + TVSFIXEDFILEINFO = VS_FIXEDFILEINFO; + PVSFIXEDFILEINFO = ^VS_FIXEDFILEINFO; + + WIN32_FIND_DATAW = record + dwFileAttributes : DWORD; + ftCreationTime : FILETIME; + ftLastAccessTime : FILETIME; + ftLastWriteTime : FILETIME; + nFileSizeHigh : DWORD; + nFileSizeLow : DWORD; + dwOID: DWORD; + cFileName : array[0..MAX_PATH] of WCHAR; + end; + + LPWIN32_FIND_DATAW = ^WIN32_FIND_DATAW; + PWIN32_FIND_DATAW = ^WIN32_FIND_DATAW; + _WIN32_FIND_DATAW = WIN32_FIND_DATAW; + TWIN32FINDDATAW = WIN32_FIND_DATAW; + PWIN32FINDDATAW = ^WIN32_FIND_DATAW; + + WIN32_FIND_DATA = WIN32_FIND_DATAW; + LPWIN32_FIND_DATA = ^WIN32_FIND_DATAW; + PWIN32_FIND_DATA = ^WIN32_FIND_DATAW; + _WIN32_FIND_DATA = WIN32_FIND_DATAW; + TWIN32FINDDATA = WIN32_FIND_DATAW; + PWIN32FINDDATA = ^WIN32_FIND_DATAW; + + WIN32_STREAM_ID = record + dwStreamId : DWORD; + dwStreamAttributes : DWORD; + Size : LARGE_INTEGER; + dwStreamNameSize : DWORD; + cStreamName : ^WCHAR; + end; + _WIN32_STREAM_ID = WIN32_STREAM_ID; + TWIN32STREAMID = WIN32_STREAM_ID; + PWIN32STREAMID = ^WIN32_STREAM_ID; + + WINDOWPLACEMENT = record + length : UINT; + flags : UINT; + showCmd : UINT; + ptMinPosition : POINT; + ptMaxPosition : POINT; + rcNormalPosition : RECT; + end; + _WINDOWPLACEMENT = WINDOWPLACEMENT; + TWINDOWPLACEMENT = WINDOWPLACEMENT; + PWINDOWPLACEMENT = ^WINDOWPLACEMENT; + + WNDCLASS = record + style : UINT; + lpfnWndProc : WNDPROC; + cbClsExtra : longint; + cbWndExtra : longint; + hInstance : HANDLE; + hIcon : HICON; + hCursor : HCURSOR; + hbrBackground : HBRUSH; + lpszMenuName : LPCTSTR; + lpszClassName : LPCTSTR; + end; + LPWNDCLASS = ^WNDCLASS; + _WNDCLASS = WNDCLASS; + TWNDCLASSA = WNDCLASS; + + + WNDCLASSW = record + style : UINT; + lpfnWndProc : WNDPROC; + cbClsExtra : longint; + cbWndExtra : longint; + hInstance : HANDLE; + hIcon : HICON; + hCursor : HCURSOR; + hbrBackground : HBRUSH; + lpszMenuName : LPCWSTR; + lpszClassName : LPCWSTR; + end; + LPWNDCLASSW = ^WNDCLASSW; + _WNDCLASSW = WNDCLASSW; + TWNDCLASSW = WNDCLASSW; + PWNDCLASSW = ^WNDCLASSW; + TWNDCLASS = WNDCLASSW; + PWNDCLASS = ^WNDCLASSW; + + WNDCLASSEX = record + cbSize : UINT; + style : UINT; + lpfnWndProc : WNDPROC; + cbClsExtra : longint; + cbWndExtra : longint; + hInstance : HANDLE; + hIcon : HICON; + hCursor : HCURSOR; + hbrBackground : HBRUSH; + lpszMenuName : LPCTSTR; + lpszClassName : LPCTSTR; + hIconSm : HANDLE; + end; + LPWNDCLASSEX = ^WNDCLASSEX; + _WNDCLASSEX = WNDCLASSEX; + TWNDCLASSEX = WNDCLASSEX; + TWNDCLASSEXA = WNDCLASSEX; + PWNDCLASSEX = ^WNDCLASSEX; + + WNDCLASSEXW = record + cbSize : UINT; + style : UINT; + lpfnWndProc : WNDPROC; + cbClsExtra : longint; + cbWndExtra : longint; + hInstance : HANDLE; + hIcon : HICON; + hCursor : HCURSOR; + hbrBackground : HBRUSH; + lpszMenuName : LPCWSTR; + lpszClassName : LPCWSTR; + hIconSm : HANDLE; + end; + LPWNDCLASSEXW = ^WNDCLASSEXW; + _WNDCLASSEXW = WNDCLASSEXW; + TWNDCLASSEXW = WNDCLASSEXW; + PWNDCLASSEXW = ^WNDCLASSEXW; + + CONNECTDLGSTRUCT = record + cbStructure : DWORD; + hwndOwner : HWND; + lpConnRes : LPNETRESOURCE; + dwFlags : DWORD; + dwDevNum : DWORD; + end; + LPCONNECTDLGSTRUCT = ^CONNECTDLGSTRUCT; + _CONNECTDLGSTRUCT = CONNECTDLGSTRUCT; + TCONNECTDLGSTRUCT = CONNECTDLGSTRUCT; + PCONNECTDLGSTRUCT = ^CONNECTDLGSTRUCT; + + CONNECTDLGSTRUCTW = record //+winnetwk + cbStructure : DWORD; + hwndOwner : HWND; + lpConnRes : LPNETRESOURCEW; + dwFlags : DWORD; + dwDevNum : DWORD; + end; + LPCONNECTDLGSTRUCTW = ^CONNECTDLGSTRUCTW; //+winnetwk + _CONNECTDLGSTRUCTW = CONNECTDLGSTRUCTW; //+winnetwk + + DISCDLGSTRUCT = record + cbStructure : DWORD; + hwndOwner : HWND; + lpLocalName : LPTSTR; + lpRemoteName : LPTSTR; + dwFlags : DWORD; + end; + LPDISCDLGSTRUCT = ^DISCDLGSTRUCT; + _DISCDLGSTRUCT = DISCDLGSTRUCT; + TDISCDLGSTRUCT = DISCDLGSTRUCT; + TDISCDLGSTRUCTA = DISCDLGSTRUCT; + PDISCDLGSTRUCT = ^DISCDLGSTRUCT; + + DISCDLGSTRUCTW = record //+winnetwk + cbStructure : DWORD; + hwndOwner : HWND; + lpLocalName : LPWSTR; + lpRemoteName : LPWSTR; + dwFlags : DWORD; + end; + LPDISCDLGSTRUCTW = ^DISCDLGSTRUCTW; //+winnetwk + _DISCDLGSTRUCTW = DISCDLGSTRUCTW; //+winnetwk + + NETINFOSTRUCT = record + cbStructure : DWORD; + dwProviderVersion : DWORD; + dwStatus : DWORD; + dwCharacteristics : DWORD; + dwHandle : DWORD; + wNetType : WORD; + dwPrinters : DWORD; + dwDrives : DWORD; + end; + LPNETINFOSTRUCT = ^NETINFOSTRUCT; + _NETINFOSTRUCT = NETINFOSTRUCT; + TNETINFOSTRUCT = NETINFOSTRUCT; + PNETINFOSTRUCT = ^NETINFOSTRUCT; + + NETCONNECTINFOSTRUCT = record + cbStructure : DWORD; + dwFlags : DWORD; + dwSpeed : DWORD; + dwDelay : DWORD; + dwOptDataSize : DWORD; + end; + LPNETCONNECTINFOSTRUCT = ^NETCONNECTINFOSTRUCT; + _NETCONNECTINFOSTRUCT = NETCONNECTINFOSTRUCT; + TNETCONNECTINFOSTRUCT = NETCONNECTINFOSTRUCT; + PNETCONNECTINFOSTRUCT = ^NETCONNECTINFOSTRUCT; + + ENUMMETAFILEPROC = function (_para1:HDC; _para2:HANDLETABLE; _para3:METARECORD; _para4:longint; _para5:LPARAM):longint; + + ENHMETAFILEPROC = function (_para1:HDC; _para2:HANDLETABLE; _para3:ENHMETARECORD; _para4:longint; _para5:LPARAM):longint; + + ENUMFONTSPROC = function (_para1:LPLOGFONT; _para2:LPTEXTMETRIC; _para3:DWORD; _para4:LPARAM):longint; + + FONTENUMPROC = function (var _para1:ENUMLOGFONT; var _para2:NEWTEXTMETRIC; _para3:longint; _para4:LPARAM):longint; + + FONTENUMEXPROC = function (var _para1:ENUMLOGFONTEX;var _para2:NEWTEXTMETRICEX; _para3:longint; _para4:LPARAM):longint; + + LPOVERLAPPED_COMPLETION_ROUTINE = procedure (_para1:DWORD; _para2:DWORD; _para3:LPOVERLAPPED); + + { Structures for the extensions to OpenGL } + + POINTFLOAT = record + x : Single; + y : Single; + end; + _POINTFLOAT = POINTFLOAT; + TPOINTFLOAT = POINTFLOAT; + PPOINTFLOAT = ^POINTFLOAT; + + GLYPHMETRICSFLOAT = record + gmfBlackBoxX : Single; + gmfBlackBoxY : Single; + gmfptGlyphOrigin : POINTFLOAT; + gmfCellIncX : Single; + gmfCellIncY : Single; + end; + LPGLYPHMETRICSFLOAT = ^GLYPHMETRICSFLOAT; + _GLYPHMETRICSFLOAT = GLYPHMETRICSFLOAT; + TGLYPHMETRICSFLOAT = GLYPHMETRICSFLOAT; + PGLYPHMETRICSFLOAT = ^GLYPHMETRICSFLOAT; + + LAYERPLANEDESCRIPTOR = record + nSize : WORD; + nVersion : WORD; + dwFlags : DWORD; + iPixelType : BYTE; + cColorBits : BYTE; + cRedBits : BYTE; + cRedShift : BYTE; + cGreenBits : BYTE; + cGreenShift : BYTE; + cBlueBits : BYTE; + cBlueShift : BYTE; + cAlphaBits : BYTE; + cAlphaShift : BYTE; + cAccumBits : BYTE; + cAccumRedBits : BYTE; + cAccumGreenBits : BYTE; + cAccumBlueBits : BYTE; + cAccumAlphaBits : BYTE; + cDepthBits : BYTE; + cStencilBits : BYTE; + cAuxBuffers : BYTE; + iLayerPlane : BYTE; + bReserved : BYTE; + crTransparent : COLORREF; + end; + LPLAYERPLANEDESCRIPTOR = ^LAYERPLANEDESCRIPTOR; + tagLAYERPLANEDESCRIPTOR = LAYERPLANEDESCRIPTOR; + TLAYERPLANEDESCRIPTOR = LAYERPLANEDESCRIPTOR; + PLAYERPLANEDESCRIPTOR = ^LAYERPLANEDESCRIPTOR; + + PIXELFORMATDESCRIPTOR = record + nSize : WORD; + nVersion : WORD; + dwFlags : DWORD; + iPixelType : BYTE; + cColorBits : BYTE; + cRedBits : BYTE; + cRedShift : BYTE; + cGreenBits : BYTE; + cGreenShift : BYTE; + cBlueBits : BYTE; + cBlueShift : BYTE; + cAlphaBits : BYTE; + cAlphaShift : BYTE; + cAccumBits : BYTE; + cAccumRedBits : BYTE; + cAccumGreenBits : BYTE; + cAccumBlueBits : BYTE; + cAccumAlphaBits : BYTE; + cDepthBits : BYTE; + cStencilBits : BYTE; + cAuxBuffers : BYTE; + iLayerType : BYTE; + bReserved : BYTE; + dwLayerMask : DWORD; + dwVisibleMask : DWORD; + dwDamageMask : DWORD; + end; + LPPIXELFORMATDESCRIPTOR = ^PIXELFORMATDESCRIPTOR; + tagPIXELFORMATDESCRIPTOR = PIXELFORMATDESCRIPTOR; + TPIXELFORMATDESCRIPTOR = PIXELFORMATDESCRIPTOR; + PPIXELFORMATDESCRIPTOR = ^PIXELFORMATDESCRIPTOR; + + USER_INFO_2 = record + usri2_name : LPWSTR; + usri2_password : LPWSTR; + usri2_password_age : DWORD; + usri2_priv : DWORD; + usri2_home_dir : LPWSTR; + usri2_comment : LPWSTR; + usri2_flags : DWORD; + usri2_script_path : LPWSTR; + usri2_auth_flags : DWORD; + usri2_full_name : LPWSTR; + usri2_usr_comment : LPWSTR; + usri2_parms : LPWSTR; + usri2_workstations : LPWSTR; + usri2_last_logon : DWORD; + usri2_last_logoff : DWORD; + usri2_acct_expires : DWORD; + usri2_max_storage : DWORD; + usri2_units_per_week : DWORD; + usri2_logon_hours : PBYTE; + usri2_bad_pw_count : DWORD; + usri2_num_logons : DWORD; + usri2_logon_server : LPWSTR; + usri2_country_code : DWORD; + usri2_code_page : DWORD; + end; + PUSER_INFO_2 = ^USER_INFO_2; + LPUSER_INFO_2 = ^USER_INFO_2; + TUSERINFO2 = USER_INFO_2; + PUSERINFO2 = ^USER_INFO_2; + + USER_INFO_0 = record + usri0_name : LPWSTR; + end; + PUSER_INFO_0 = ^USER_INFO_0; + LPUSER_INFO_0 = ^USER_INFO_0; + TUSERINFO0 = USER_INFO_0; + PUSERINFO0 = ^USER_INFO_0; + + USER_INFO_3 = record + usri3_name : LPWSTR; + usri3_password : LPWSTR; + usri3_password_age : DWORD; + usri3_priv : DWORD; + usri3_home_dir : LPWSTR; + usri3_comment : LPWSTR; + usri3_flags : DWORD; + usri3_script_path : LPWSTR; + usri3_auth_flags : DWORD; + usri3_full_name : LPWSTR; + usri3_usr_comment : LPWSTR; + usri3_parms : LPWSTR; + usri3_workstations : LPWSTR; + usri3_last_logon : DWORD; + usri3_last_logoff : DWORD; + usri3_acct_expires : DWORD; + usri3_max_storage : DWORD; + usri3_units_per_week : DWORD; + usri3_logon_hours : PBYTE; + usri3_bad_pw_count : DWORD; + usri3_num_logons : DWORD; + usri3_logon_server : LPWSTR; + usri3_country_code : DWORD; + usri3_code_page : DWORD; + usri3_user_id : DWORD; + usri3_primary_group_id : DWORD; + usri3_profile : LPWSTR; + usri3_home_dir_drive : LPWSTR; + usri3_password_expired : DWORD; + end; + PUSER_INFO_3 = ^USER_INFO_3; + LPUSER_INFO_3 = ^USER_INFO_3; + TUSERINFO3 = USER_INFO_3; + PUSERINFO3 = ^USER_INFO_3; + + GROUP_INFO_2 = record + grpi2_name : LPWSTR; + grpi2_comment : LPWSTR; + grpi2_group_id : DWORD; + grpi2_attributes : DWORD; + end; + PGROUP_INFO_2 = ^GROUP_INFO_2; + TGROUPINFO2 = GROUP_INFO_2; + PGROUPINFO2 = ^GROUP_INFO_2; + + LOCALGROUP_INFO_0 = record + lgrpi0_name : LPWSTR; + end; + PLOCALGROUP_INFO_0 = ^LOCALGROUP_INFO_0; + LPLOCALGROUP_INFO_0 = ^LOCALGROUP_INFO_0; + TLOCALGROUPINFO0 = LOCALGROUP_INFO_0; + PLOCALGROUPINFO0 = ^LOCALGROUP_INFO_0; + + { PE executable header. } + { Magic number, 0x5a4d } + { Bytes on last page of file, 0x90 } + { Pages in file, 0x3 } + { Relocations, 0x0 } + { Size of header in paragraphs, 0x4 } + { Minimum extra paragraphs needed, 0x0 } + { Maximum extra paragraphs needed, 0xFFFF } + { Initial (relative) SS value, 0x0 } + { Initial SP value, 0xb8 } + { Checksum, 0x0 } + { Initial IP value, 0x0 } + { Initial (relative) CS value, 0x0 } + { File address of relocation table, 0x40 } + { Overlay number, 0x0 } + { Reserved words, all 0x0 } + { OEM identifier (for e_oeminfo), 0x0 } + { OEM information; e_oemid specific, 0x0 } + { Reserved words, all 0x0 } + { File address of new exe header, 0x80 } + { We leave out the next two fields, since they aren't in the header file } + { DWORD dos_message[16]; text which always follows dos header } + { DWORD nt_signature; required NT signature, 0x4550 } + + IMAGE_DOS_HEADER = record + e_magic : WORD; + e_cblp : WORD; + e_cp : WORD; + e_crlc : WORD; + e_cparhdr : WORD; + e_minalloc : WORD; + e_maxalloc : WORD; + e_ss : WORD; + e_sp : WORD; + e_csum : WORD; + e_ip : WORD; + e_cs : WORD; + e_lfarlc : WORD; + e_ovno : WORD; + e_res : array[0..3] of WORD; + e_oemid : WORD; + e_oeminfo : WORD; + e_res2 : array[0..9] of WORD; + e_lfanew : LONG; + end; + PIMAGE_DOS_HEADER = ^IMAGE_DOS_HEADER; + TIMAGEDOSHEADER = IMAGE_DOS_HEADER; + PIMAGEDOSHEADER = ^IMAGE_DOS_HEADER; + + _NOTIFYICONDATAA = record + cbSize: DWORD; + Wnd: HWND; + uID: UINT; + uFlags: UINT; + uCallbackMessage: UINT; + hIcon: HICON; + szTip: array [0..63] of Char; + end; + _NOTIFYICONDATA = _NOTIFYICONDATAA; + + _NOTIFYICONDATAW = record + cbSize: DWORD; + Wnd: HWND; + uID: UINT; + uFlags: UINT; + uCallbackMessage: UINT; + hIcon: HICON; + szTip: array [0..63] of Word; + end; + TNotifyIconDataA = _NOTIFYICONDATAA; + TNotifyIconDataW = _NOTIFYICONDATAW; + TNotifyIconData = TNotifyIconDataA; + NOTIFYICONDATAA = _NOTIFYICONDATAA; + NOTIFYICONDATAW = _NOTIFYICONDATAW; + NOTIFYICONDATA = NOTIFYICONDATAA; + PNotifyIconDataA = ^TNotifyIconDataA; + PNotifyIconDataW = ^TNotifyIconDataW; + PNotifyIconData = PNotifyIconDataA; + + TWOHandleArray = array[0..MAXIMUM_WAIT_OBJECTS-1] of HANDLE; + PWOHandleArray = ^TWOHandleArray; + + MMRESULT = Longint; + +type + PWaveFormatEx = ^TWaveFormatEx; + TWaveFormatEx = packed record + wFormatTag: Word; { format type } + nChannels: Word; { number of channels (i.e. mono, stereo, etc.) } + nSamplesPerSec: DWORD; { sample rate } + nAvgBytesPerSec: DWORD; { for buffer estimation } + nBlockAlign: Word; { block size of data } + wBitsPerSample: Word; { number of bits per sample of mono data } + cbSize: Word; { the count in bytes of the size of } + end; + + _WIN32_FILE_ATTRIBUTE_DATA = packed record + dwFileAttributes: DWORD; + ftCreationTime: FILETIME; + ftLastAccessTime: FILETIME; + ftLastWriteTime: FILETIME; + nFileSizeHigh: DWORD; + nFileSizeLow: DWORD; + end; + WIN32_FILE_ATTRIBUTE_DATA = _WIN32_FILE_ATTRIBUTE_DATA ; + LPWIN32_FILE_ATTRIBUTE_DATA = ^_WIN32_FILE_ATTRIBUTE_DATA; + TWIN32FILEATTRIBUTEDATA = _WIN32_FILE_ATTRIBUTE_DATA ; + PWIN32FILEATTRIBUTEDATA = ^_WIN32_FILE_ATTRIBUTE_DATA; + + // TrackMouseEvent. NT or higher only. + TTrackMouseEvent = Record + cbSize : DWORD; + dwFlags : DWORD; + hwndTrack : HWND; + dwHoverTime : DWORD; + end; + PTrackMouseEvent = ^TTrackMouseEvent; + +{$endif read_interface} + + +{$ifdef read_implementation} + + function fBinary(var a : DCB) : DWORD; + begin + fBinary:=(a.flags and bm_DCB_fBinary) shr bp_DCB_fBinary; + end; + + procedure set_fBinary(var a : DCB; __fBinary : DWORD); + begin + a.flags:=a.flags or ((__fBinary shl bp_DCB_fBinary) and bm_DCB_fBinary); + end; + + function fParity(var a : DCB) : DWORD; + begin + fParity:=(a.flags and bm_DCB_fParity) shr bp_DCB_fParity; + end; + + procedure set_fParity(var a : DCB; __fParity : DWORD); + begin + a.flags:=a.flags or ((__fParity shl bp_DCB_fParity) and bm_DCB_fParity); + end; + + function fOutxCtsFlow(var a : DCB) : DWORD; + begin + fOutxCtsFlow:=(a.flags and bm_DCB_fOutxCtsFlow) shr bp_DCB_fOutxCtsFlow; + end; + + procedure set_fOutxCtsFlow(var a : DCB; __fOutxCtsFlow : DWORD); + begin + a.flags:=a.flags or ((__fOutxCtsFlow shl bp_DCB_fOutxCtsFlow) and bm_DCB_fOutxCtsFlow); + end; + + function fOutxDsrFlow(var a : DCB) : DWORD; + begin + fOutxDsrFlow:=(a.flags and bm_DCB_fOutxDsrFlow) shr bp_DCB_fOutxDsrFlow; + end; + + procedure set_fOutxDsrFlow(var a : DCB; __fOutxDsrFlow : DWORD); + begin + a.flags:=a.flags or ((__fOutxDsrFlow shl bp_DCB_fOutxDsrFlow) and bm_DCB_fOutxDsrFlow); + end; + + function fDtrControl(var a : DCB) : DWORD; + begin + fDtrControl:=(a.flags and bm_DCB_fDtrControl) shr bp_DCB_fDtrControl; + end; + + procedure set_fDtrControl(var a : DCB; __fDtrControl : DWORD); + begin + a.flags:=a.flags or ((__fDtrControl shl bp_DCB_fDtrControl) and bm_DCB_fDtrControl); + end; + + function fDsrSensitivity(var a : DCB) : DWORD; + begin + fDsrSensitivity:=(a.flags and bm_DCB_fDsrSensitivity) shr bp_DCB_fDsrSensitivity; + end; + + procedure set_fDsrSensitivity(var a : DCB; __fDsrSensitivity : DWORD); + begin + a.flags:=a.flags or ((__fDsrSensitivity shl bp_DCB_fDsrSensitivity) and bm_DCB_fDsrSensitivity); + end; + + function fTXContinueOnXoff(var a : DCB) : DWORD; + begin + fTXContinueOnXoff:=(a.flags and bm_DCB_fTXContinueOnXoff) shr bp_DCB_fTXContinueOnXoff; + end; + + procedure set_fTXContinueOnXoff(var a : DCB; __fTXContinueOnXoff : DWORD); + begin + a.flags:=a.flags or ((__fTXContinueOnXoff shl bp_DCB_fTXContinueOnXoff) and bm_DCB_fTXContinueOnXoff); + end; + + function fOutX(var a : DCB) : DWORD; + begin + fOutX:=(a.flags and bm_DCB_fOutX) shr bp_DCB_fOutX; + end; + + procedure set_fOutX(var a : DCB; __fOutX : DWORD); + begin + a.flags:=a.flags or ((__fOutX shl bp_DCB_fOutX) and bm_DCB_fOutX); + end; + + function fInX(var a : DCB) : DWORD; + begin + fInX:=(a.flags and bm_DCB_fInX) shr bp_DCB_fInX; + end; + + procedure set_fInX(var a : DCB; __fInX : DWORD); + begin + a.flags:=a.flags or ((__fInX shl bp_DCB_fInX) and bm_DCB_fInX); + end; + + function fErrorChar(var a : DCB) : DWORD; + begin + fErrorChar:=(a.flags and bm_DCB_fErrorChar) shr bp_DCB_fErrorChar; + end; + + procedure set_fErrorChar(var a : DCB; __fErrorChar : DWORD); + begin + a.flags:=a.flags or ((__fErrorChar shl bp_DCB_fErrorChar) and bm_DCB_fErrorChar); + end; + + function fNull(var a : DCB) : DWORD; + begin + fNull:=(a.flags and bm_DCB_fNull) shr bp_DCB_fNull; + end; + + procedure set_fNull(var a : DCB; __fNull : DWORD); + begin + a.flags:=a.flags or ((__fNull shl bp_DCB_fNull) and bm_DCB_fNull); + end; + + function fRtsControl(var a : DCB) : DWORD; + begin + fRtsControl:=(a.flags and bm_DCB_fRtsControl) shr bp_DCB_fRtsControl; + end; + + procedure set_fRtsControl(var a : DCB; __fRtsControl : DWORD); + begin + a.flags:=a.flags or ((__fRtsControl shl bp_DCB_fRtsControl) and bm_DCB_fRtsControl); + end; + + function fAbortOnError(var a : DCB) : DWORD; + begin + fAbortOnError:=(a.flags and bm_DCB_fAbortOnError) shr bp_DCB_fAbortOnError; + end; + + procedure set_fAbortOnError(var a : DCB; __fAbortOnError : DWORD); + begin + a.flags:=a.flags or ((__fAbortOnError shl bp_DCB_fAbortOnError) and bm_DCB_fAbortOnError); + end; + + function fDummy2(var a : DCB) : DWORD; + begin + fDummy2:=(a.flags and bm_DCB_fDummy2) shr bp_DCB_fDummy2; + end; + + procedure set_fDummy2(var a : DCB; __fDummy2 : DWORD); + begin + a.flags:=a.flags or ((__fDummy2 shl bp_DCB_fDummy2) and bm_DCB_fDummy2); + end; + + function fCtsHold(var a : COMSTAT) : DWORD; + begin + fCtsHold:=(a.flag0 and bm_COMSTAT_fCtsHold) shr bp_COMSTAT_fCtsHold; + end; + + procedure set_fCtsHold(var a : COMSTAT; __fCtsHold : DWORD); + begin + a.flag0:=a.flag0 or ((__fCtsHold shl bp_COMSTAT_fCtsHold) and bm_COMSTAT_fCtsHold); + end; + + function fDsrHold(var a : COMSTAT) : DWORD; + begin + fDsrHold:=(a.flag0 and bm_COMSTAT_fDsrHold) shr bp_COMSTAT_fDsrHold; + end; + + procedure set_fDsrHold(var a : COMSTAT; __fDsrHold : DWORD); + begin + a.flag0:=a.flag0 or ((__fDsrHold shl bp_COMSTAT_fDsrHold) and bm_COMSTAT_fDsrHold); + end; + + function fRlsdHold(var a : COMSTAT) : DWORD; + begin + fRlsdHold:=(a.flag0 and bm_COMSTAT_fRlsdHold) shr bp_COMSTAT_fRlsdHold; + end; + + procedure set_fRlsdHold(var a : COMSTAT; __fRlsdHold : DWORD); + begin + a.flag0:=a.flag0 or ((__fRlsdHold shl bp_COMSTAT_fRlsdHold) and bm_COMSTAT_fRlsdHold); + end; + + function fXoffHold(var a : COMSTAT) : DWORD; + begin + fXoffHold:=(a.flag0 and bm_COMSTAT_fXoffHold) shr bp_COMSTAT_fXoffHold; + end; + + procedure set_fXoffHold(var a : COMSTAT; __fXoffHold : DWORD); + begin + a.flag0:=a.flag0 or ((__fXoffHold shl bp_COMSTAT_fXoffHold) and bm_COMSTAT_fXoffHold); + end; + + function fXoffSent(var a : COMSTAT) : DWORD; + begin + fXoffSent:=(a.flag0 and bm_COMSTAT_fXoffSent) shr bp_COMSTAT_fXoffSent; + end; + + procedure set_fXoffSent(var a : COMSTAT; __fXoffSent : DWORD); + begin + a.flag0:=a.flag0 or ((__fXoffSent shl bp_COMSTAT_fXoffSent) and bm_COMSTAT_fXoffSent); + end; + + function fEof(var a : COMSTAT) : DWORD; + begin + fEof:=(a.flag0 and bm_COMSTAT_fEof) shr bp_COMSTAT_fEof; + end; + + procedure set_fEof(var a : COMSTAT; __fEof : DWORD); + begin + a.flag0:=a.flag0 or ((__fEof shl bp_COMSTAT_fEof) and bm_COMSTAT_fEof); + end; + + function fTxim(var a : COMSTAT) : DWORD; + begin + fTxim:=(a.flag0 and bm_COMSTAT_fTxim) shr bp_COMSTAT_fTxim; + end; + + procedure set_fTxim(var a : COMSTAT; __fTxim : DWORD); + begin + a.flag0:=a.flag0 or ((__fTxim shl bp_COMSTAT_fTxim) and bm_COMSTAT_fTxim); + end; + + function fReserved(var a : COMSTAT) : DWORD; + begin + fReserved:=(a.flag0 and bm_COMSTAT_fReserved) shr bp_COMSTAT_fReserved; + end; + + procedure set_fReserved(var a : COMSTAT; __fReserved : DWORD); + begin + a.flag0:=a.flag0 or ((__fReserved shl bp_COMSTAT_fReserved) and bm_COMSTAT_fReserved); + end; + + function bAppReturnCode(var a : DDEACK) : word; + begin + bAppReturnCode:=(a.flag0 and bm_DDEACK_bAppReturnCode) shr bp_DDEACK_bAppReturnCode; + end; + + procedure set_bAppReturnCode(var a : DDEACK; __bAppReturnCode : word); + begin + a.flag0:=a.flag0 or ((__bAppReturnCode shl bp_DDEACK_bAppReturnCode) and bm_DDEACK_bAppReturnCode); + end; + + function reserved(var a : DDEACK) : word; + begin + reserved:=(a.flag0 and bm_DDEACK_reserved) shr bp_DDEACK_reserved; + end; + + procedure set_reserved(var a : DDEACK; __reserved : word); + begin + a.flag0:=a.flag0 or ((__reserved shl bp_DDEACK_reserved) and bm_DDEACK_reserved); + end; + + function fBusy(var a : DDEACK) : word; + begin + fBusy:=(a.flag0 and bm_DDEACK_fBusy) shr bp_DDEACK_fBusy; + end; + + procedure set_fBusy(var a : DDEACK; __fBusy : word); + begin + a.flag0:=a.flag0 or ((__fBusy shl bp_DDEACK_fBusy) and bm_DDEACK_fBusy); + end; + + function fAck(var a : DDEACK) : word; + begin + fAck:=(a.flag0 and bm_DDEACK_fAck) shr bp_DDEACK_fAck; + end; + + procedure set_fAck(var a : DDEACK; __fAck : word); + begin + a.flag0:=a.flag0 or ((__fAck shl bp_DDEACK_fAck) and bm_DDEACK_fAck); + end; + + function reserved(var a : DDEADVISE) : word; + begin + reserved:=(a.flag0 and bm_DDEADVISE_reserved) shr bp_DDEADVISE_reserved; + end; + + procedure set_reserved(var a : DDEADVISE; __reserved : word); + begin + a.flag0:=a.flag0 or ((__reserved shl bp_DDEADVISE_reserved) and bm_DDEADVISE_reserved); + end; + + function fDeferUpd(var a : DDEADVISE) : word; + begin + fDeferUpd:=(a.flag0 and bm_DDEADVISE_fDeferUpd) shr bp_DDEADVISE_fDeferUpd; + end; + + procedure set_fDeferUpd(var a : DDEADVISE; __fDeferUpd : word); + begin + a.flag0:=a.flag0 or ((__fDeferUpd shl bp_DDEADVISE_fDeferUpd) and bm_DDEADVISE_fDeferUpd); + end; + + function fAckReq(var a : DDEADVISE) : word; + begin + fAckReq:=(a.flag0 and bm_DDEADVISE_fAckReq) shr bp_DDEADVISE_fAckReq; + end; + + procedure set_fAckReq(var a : DDEADVISE; __fAckReq : word); + begin + a.flag0:=a.flag0 or ((__fAckReq shl bp_DDEADVISE_fAckReq) and bm_DDEADVISE_fAckReq); + end; + + function unused(var a : DDEDATA) : word; + begin + unused:=(a.flag0 and bm_DDEDATA_unused) shr bp_DDEDATA_unused; + end; + + procedure set_unused(var a : DDEDATA; __unused : word); + begin + a.flag0:=a.flag0 or ((__unused shl bp_DDEDATA_unused) and bm_DDEDATA_unused); + end; + + function fResponse(var a : DDEDATA) : word; + begin + fResponse:=(a.flag0 and bm_DDEDATA_fResponse) shr bp_DDEDATA_fResponse; + end; + + procedure set_fResponse(var a : DDEDATA; __fResponse : word); + begin + a.flag0:=a.flag0 or ((__fResponse shl bp_DDEDATA_fResponse) and bm_DDEDATA_fResponse); + end; + + function fRelease(var a : DDEDATA) : word; + begin + fRelease:=(a.flag0 and bm_DDEDATA_fRelease) shr bp_DDEDATA_fRelease; + end; + + procedure set_fRelease(var a : DDEDATA; __fRelease : word); + begin + a.flag0:=a.flag0 or ((__fRelease shl bp_DDEDATA_fRelease) and bm_DDEDATA_fRelease); + end; + + function reserved(var a : DDEDATA) : word; + begin + reserved:=(a.flag0 and bm_DDEDATA_reserved) shr bp_DDEDATA_reserved; + end; + + procedure set_reserved(var a : DDEDATA; __reserved : word); + begin + a.flag0:=a.flag0 or ((__reserved shl bp_DDEDATA_reserved) and bm_DDEDATA_reserved); + end; + + function fAckReq(var a : DDEDATA) : word; + begin + fAckReq:=(a.flag0 and bm_DDEDATA_fAckReq) shr bp_DDEDATA_fAckReq; + end; + + procedure set_fAckReq(var a : DDEDATA; __fAckReq : word); + begin + a.flag0:=a.flag0 or ((__fAckReq shl bp_DDEDATA_fAckReq) and bm_DDEDATA_fAckReq); + end; + + function unused(var a : DDELN) : word; + begin + unused:=(a.flag0 and bm_DDELN_unused) shr bp_DDELN_unused; + end; + + procedure set_unused(var a : DDELN; __unused : word); + begin + a.flag0:=a.flag0 or ((__unused shl bp_DDELN_unused) and bm_DDELN_unused); + end; + + function fRelease(var a : DDELN) : word; + begin + fRelease:=(a.flag0 and bm_DDELN_fRelease) shr bp_DDELN_fRelease; + end; + + procedure set_fRelease(var a : DDELN; __fRelease : word); + begin + a.flag0:=a.flag0 or ((__fRelease shl bp_DDELN_fRelease) and bm_DDELN_fRelease); + end; + + function fDeferUpd(var a : DDELN) : word; + begin + fDeferUpd:=(a.flag0 and bm_DDELN_fDeferUpd) shr bp_DDELN_fDeferUpd; + end; + + procedure set_fDeferUpd(var a : DDELN; __fDeferUpd : word); + begin + a.flag0:=a.flag0 or ((__fDeferUpd shl bp_DDELN_fDeferUpd) and bm_DDELN_fDeferUpd); + end; + + function fAckReq(var a : DDELN) : word; + begin + fAckReq:=(a.flag0 and bm_DDELN_fAckReq) shr bp_DDELN_fAckReq; + end; + + procedure set_fAckReq(var a : DDELN; __fAckReq : word); + begin + a.flag0:=a.flag0 or ((__fAckReq shl bp_DDELN_fAckReq) and bm_DDELN_fAckReq); + end; + + function unused(var a : DDEPOKE) : word; + begin + unused:=(a.flag0 and bm_DDEPOKE_unused) shr bp_DDEPOKE_unused; + end; + + procedure set_unused(var a : DDEPOKE; __unused : word); + begin + a.flag0:=a.flag0 or ((__unused shl bp_DDEPOKE_unused) and bm_DDEPOKE_unused); + end; + + function fRelease(var a : DDEPOKE) : word; + begin + fRelease:=(a.flag0 and bm_DDEPOKE_fRelease) shr bp_DDEPOKE_fRelease; + end; + + procedure set_fRelease(var a : DDEPOKE; __fRelease : word); + begin + a.flag0:=a.flag0 or ((__fRelease shl bp_DDEPOKE_fRelease) and bm_DDEPOKE_fRelease); + end; + + function fReserved(var a : DDEPOKE) : word; + begin + fReserved:=(a.flag0 and bm_DDEPOKE_fReserved) shr bp_DDEPOKE_fReserved; + end; + + procedure set_fReserved(var a : DDEPOKE; __fReserved : word); + begin + a.flag0:=a.flag0 or ((__fReserved shl bp_DDEPOKE_fReserved) and bm_DDEPOKE_fReserved); + end; + + function unused(var a : DDEUP) : word; + begin + unused:=(a.flag0 and bm_DDEUP_unused) shr bp_DDEUP_unused; + end; + + procedure set_unused(var a : DDEUP; __unused : word); + begin + a.flag0:=a.flag0 or ((__unused shl bp_DDEUP_unused) and bm_DDEUP_unused); + end; + + function fAck(var a : DDEUP) : word; + begin + fAck:=(a.flag0 and bm_DDEUP_fAck) shr bp_DDEUP_fAck; + end; + + procedure set_fAck(var a : DDEUP; __fAck : word); + begin + a.flag0:=a.flag0 or ((__fAck shl bp_DDEUP_fAck) and bm_DDEUP_fAck); + end; + + function fRelease(var a : DDEUP) : word; + begin + fRelease:=(a.flag0 and bm_DDEUP_fRelease) shr bp_DDEUP_fRelease; + end; + + procedure set_fRelease(var a : DDEUP; __fRelease : word); + begin + a.flag0:=a.flag0 or ((__fRelease shl bp_DDEUP_fRelease) and bm_DDEUP_fRelease); + end; + + function fReserved(var a : DDEUP) : word; + begin + fReserved:=(a.flag0 and bm_DDEUP_fReserved) shr bp_DDEUP_fReserved; + end; + + procedure set_fReserved(var a : DDEUP; __fReserved : word); + begin + a.flag0:=a.flag0 or ((__fReserved shl bp_DDEUP_fReserved) and bm_DDEUP_fReserved); + end; + + function fAckReq(var a : DDEUP) : word; + begin + fAckReq:=(a.flag0 and bm_DDEUP_fAckReq) shr bp_DDEUP_fAckReq; + end; + + procedure set_fAckReq(var a : DDEUP; __fAckReq : word); + begin + a.flag0:=a.flag0 or ((__fAckReq shl bp_DDEUP_fAckReq) and bm_DDEUP_fAckReq); + end; + +{$endif read_implementation} + diff --git a/rtl/wince/wininc/tapi.inc b/rtl/wince/wininc/tapi.inc index 46041a85ac..223d1a7ae4 100644 --- a/rtl/wince/wininc/tapi.inc +++ b/rtl/wince/wininc/tapi.inc @@ -1,1807 +1,1807 @@ -{ - This file is part of the Free Pascal run time library. - Copyright (c) 2007 Free Pascal development team. - - See the file COPYING.FPC, included in this distribution, - for details about the copyright. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - - **********************************************************************} - -{ Declarations for tapi WinCE API, note than on WinCE tapi functions originally - based in coredll.dll -} - -{ this port based on Windows Mobile 5 Smartphone Edition SDK - contact S0vNark0m for more information snk_post@mail.ru (en, ru) -} - -{$ifdef read_interface} - -//***************************************************************************** -// consts -//***************************************************************************** - -const - - TAPI_CURRENT_VERSION = $00020000; - - { Messages for Phones and Lines } - - LINE_ADDRESSSTATE = 0; - LINE_CALLINFO = 1; - LINE_CALLSTATE = 2; - LINE_CLOSE = 3; - LINE_DEVSPECIFIC = 4; - LINE_DEVSPECIFICFEATURE = 5; - LINE_GATHERDIGITS = 6; - LINE_GENERATE = 7; - LINE_LINEDEVSTATE = 8; - LINE_MONITORDIGITS = 9; - LINE_MONITORMEDIA = 10; - LINE_MONITORTONE = 11; - LINE_REPLY = 12; - LINE_REQUEST = 13; - PHONE_BUTTON = 14; - PHONE_CLOSE = 15; - PHONE_DEVSPECIFIC = 16; - PHONE_REPLY = 17; - PHONE_STATE = 18; - LINE_CREATE = 19; { TAPI v1.4 } - PHONE_CREATE = 20; { TAPI v1.4 } - - LINE_AGENTSPECIFIC = 21; { TAPI v2.0 } - LINE_AGENTSTATUS = 22; { TAPI v2.0 } - LINE_APPNEWCALL = 23; { TAPI v2.0 } - LINE_PROXYREQUEST = 24; { TAPI v2.0 } - LINE_REMOVE = 25; { TAPI v2.0 } - PHONE_REMOVE = 26; { TAPI v2.0 } - - INITIALIZE_NEGOTIATION = $FFFFFFFF; - - LINEADDRCAPFLAGS_FWDNUMRINGS = $00000001; - LINEADDRCAPFLAGS_PICKUPGROUPID = $00000002; - LINEADDRCAPFLAGS_SECURE = $00000004; - LINEADDRCAPFLAGS_BLOCKIDDEFAULT = $00000008; - LINEADDRCAPFLAGS_BLOCKIDOVERRIDE = $00000010; - LINEADDRCAPFLAGS_DIALED = $00000020; - LINEADDRCAPFLAGS_ORIGOFFHOOK = $00000040; - LINEADDRCAPFLAGS_DESTOFFHOOK = $00000080; - LINEADDRCAPFLAGS_FWDCONSULT = $00000100; - LINEADDRCAPFLAGS_SETUPCONFNULL = $00000200; - LINEADDRCAPFLAGS_AUTORECONNECT = $00000400; - LINEADDRCAPFLAGS_COMPLETIONID = $00000800; - LINEADDRCAPFLAGS_TRANSFERHELD = $00001000; - LINEADDRCAPFLAGS_TRANSFERMAKE = $00002000; - LINEADDRCAPFLAGS_CONFERENCEHELD = $00004000; - LINEADDRCAPFLAGS_CONFERENCEMAKE = $00008000; - LINEADDRCAPFLAGS_PARTIALDIAL = $00010000; - LINEADDRCAPFLAGS_FWDSTATUSVALID = $00020000; - LINEADDRCAPFLAGS_FWDINTEXTADDR = $00040000; - LINEADDRCAPFLAGS_FWDBUSYNAADDR = $00080000; - LINEADDRCAPFLAGS_ACCEPTTOALERT = $00100000; - LINEADDRCAPFLAGS_CONFDROP = $00200000; - LINEADDRCAPFLAGS_PICKUPCALLWAIT = $00400000; - LINEADDRCAPFLAGS_PREDICTIVEDIALER = $00800000; { TAPI v2.0 } - LINEADDRCAPFLAGS_QUEUE = $01000000; { TAPI v2.0 } - LINEADDRCAPFLAGS_ROUTEPOINT = $02000000; { TAPI v2.0 } - LINEADDRCAPFLAGS_HOLDMAKESNEW = $04000000; { TAPI v2.0 } - LINEADDRCAPFLAGS_NOINTERNALCALLS = $08000000; { TAPI v2.0 } - LINEADDRCAPFLAGS_NOEXTERNALCALLS = $10000000; { TAPI v2.0 } - LINEADDRCAPFLAGS_SETCALLINGID = $20000000; { TAPI v2.0 } - - LINEADDRESSMODE_ADDRESSID = $00000001; - LINEADDRESSMODE_DIALABLEADDR = $00000002; - - LINEADDRESSSHARING_PRIVATE = $00000001; - LINEADDRESSSHARING_BRIDGEDEXCL = $00000002; - LINEADDRESSSHARING_BRIDGEDNEW = $00000004; - LINEADDRESSSHARING_BRIDGEDSHARED = $00000008; - LINEADDRESSSHARING_MONITORED = $00000010; - - LINEADDRESSSTATE_OTHER = $00000001; - LINEADDRESSSTATE_DEVSPECIFIC = $00000002; - LINEADDRESSSTATE_INUSEZERO = $00000004; - LINEADDRESSSTATE_INUSEONE = $00000008; - LINEADDRESSSTATE_INUSEMANY = $00000010; - LINEADDRESSSTATE_NUMCALLS = $00000020; - LINEADDRESSSTATE_FORWARD = $00000040; - LINEADDRESSSTATE_TERMINALS = $00000080; - LINEADDRESSSTATE_CAPSCHANGE = $00000100; { TAPI v1.4 } - - LINEADDRESSTYPE_PHONENUMBER = $00000001; - LINEADDRESSTYPE_SDP = $00000002; - LINEADDRESSTYPE_EMAILNAME = $00000004; - LINEADDRESSTYPE_DOMAINNAME = $00000008; - LINEADDRESSTYPE_IPADDRESS = $00000010; - - LINEADDRFEATURE_FORWARD = $00000001; - LINEADDRFEATURE_MAKECALL = $00000002; - LINEADDRFEATURE_PICKUP = $00000004; - LINEADDRFEATURE_SETMEDIACONTROL = $00000008; - LINEADDRFEATURE_SETTERMINAL = $00000010; - LINEADDRFEATURE_SETUPCONF = $00000020; - LINEADDRFEATURE_UNCOMPLETECALL = $00000040; - LINEADDRFEATURE_UNPARK = $00000080; - LINEADDRFEATURE_PICKUPHELD = $00000100; { TAPI v2.0 } - LINEADDRFEATURE_PICKUPGROUP = $00000200; { TAPI v2.0 } - LINEADDRFEATURE_PICKUPDIRECT = $00000400; { TAPI v2.0 } - LINEADDRFEATURE_PICKUPWAITING = $00000800; { TAPI v2.0 } - LINEADDRFEATURE_FORWARDFWD = $00001000; { TAPI v2.0 } - LINEADDRFEATURE_FORWARDDND = $00002000; { TAPI v2.0 } - - LINEAGENTFEATURE_SETAGENTGROUP = $00000001; { TAPI v2.0 } - LINEAGENTFEATURE_SETAGENTSTATE = $00000002; { TAPI v2.0 } - LINEAGENTFEATURE_SETAGENTACTIVITY = $00000004; { TAPI v2.0 } - LINEAGENTFEATURE_AGENTSPECIFIC = $00000008; { TAPI v2.0 } - LINEAGENTFEATURE_GETAGENTACTIVITYLIST = $00000010; { TAPI v2.0 } - LINEAGENTFEATURE_GETAGENTGROUP = $00000020; { TAPI v2.0 } - - LINEAGENTSTATE_LOGGEDOFF = $00000001; { TAPI v2.0 } - LINEAGENTSTATE_NOTREADY = $00000002; { TAPI v2.0 } - LINEAGENTSTATE_READY = $00000004; { TAPI v2.0 } - LINEAGENTSTATE_BUSYACD = $00000008; { TAPI v2.0 } - LINEAGENTSTATE_BUSYINCOMING = $00000010; { TAPI v2.0 } - LINEAGENTSTATE_BUSYOUTBOUND = $00000020; { TAPI v2.0 } - LINEAGENTSTATE_BUSYOTHER = $00000040; { TAPI v2.0 } - LINEAGENTSTATE_WORKINGAFTERCALL = $00000080; { TAPI v2.0 } - LINEAGENTSTATE_UNKNOWN = $00000100; { TAPI v2.0 } - LINEAGENTSTATE_UNAVAIL = $00000200; { TAPI v2.0 } - - LINEAGENTSTATUS_GROUP = $00000001; { TAPI v2.0 } - LINEAGENTSTATUS_STATE = $00000002; { TAPI v2.0 } - LINEAGENTSTATUS_NEXTSTATE = $00000004; { TAPI v2.0 } - LINEAGENTSTATUS_ACTIVITY = $00000008; { TAPI v2.0 } - LINEAGENTSTATUS_ACTIVITYLIST = $00000010; { TAPI v2.0 } - LINEAGENTSTATUS_GROUPLIST = $00000020; { TAPI v2.0 } - LINEAGENTSTATUS_CAPSCHANGE = $00000040; { TAPI v2.0 } - LINEAGENTSTATUS_VALIDSTATES = $00000080; { TAPI v2.0 } - LINEAGENTSTATUS_VALIDNEXTSTATES = $00000100; { TAPI v2.0 } - - LINEANSWERMODE_NONE = $00000001; - LINEANSWERMODE_DROP = $00000002; - LINEANSWERMODE_HOLD = $00000004; - LINEBEARERMODE_VOICE = $00000001; - LINEBEARERMODE_SPEECH = $00000002; - LINEBEARERMODE_MULTIUSE = $00000004; - LINEBEARERMODE_DATA = $00000008; - LINEBEARERMODE_ALTSPEECHDATA = $00000010; - LINEBEARERMODE_NONCALLSIGNALING = $00000020; - LINEBEARERMODE_PASSTHROUGH = $00000040; { TAPI v1.4 } - LINEBEARERMODE_RESTRICTEDDATA = $00000080; { TAPI v2.0 } - - LINEBUSYMODE_STATION = $00000001; - LINEBUSYMODE_TRUNK = $00000002; - LINEBUSYMODE_UNKNOWN = $00000004; - LINEBUSYMODE_UNAVAIL = $00000008; - - LINECALLCOMPLCOND_BUSY = $00000001; - LINECALLCOMPLCOND_NOANSWER = $00000002; - - LINECALLCOMPLMODE_CAMPON = $00000001; - LINECALLCOMPLMODE_CALLBACK = $00000002; - LINECALLCOMPLMODE_INTRUDE = $00000004; - LINECALLCOMPLMODE_MESSAGE = $00000008; - - LINECALLFEATURE_ACCEPT = $00000001; - LINECALLFEATURE_ADDTOCONF = $00000002; - LINECALLFEATURE_ANSWER = $00000004; - LINECALLFEATURE_BLINDTRANSFER = $00000008; - LINECALLFEATURE_COMPLETECALL = $00000010; - LINECALLFEATURE_COMPLETETRANSF = $00000020; - LINECALLFEATURE_DIAL = $00000040; - LINECALLFEATURE_DROP = $00000080; - LINECALLFEATURE_GATHERDIGITS = $00000100; - LINECALLFEATURE_GENERATEDIGITS = $00000200; - LINECALLFEATURE_GENERATETONE = $00000400; - LINECALLFEATURE_HOLD = $00000800; - LINECALLFEATURE_MONITORDIGITS = $00001000; - LINECALLFEATURE_MONITORMEDIA = $00002000; - LINECALLFEATURE_MONITORTONES = $00004000; - LINECALLFEATURE_PARK = $00008000; - LINECALLFEATURE_PREPAREADDCONF = $00010000; - LINECALLFEATURE_REDIRECT = $00020000; - LINECALLFEATURE_REMOVEFROMCONF = $00040000; - LINECALLFEATURE_SECURECALL = $00080000; - LINECALLFEATURE_SENDUSERUSER = $00100000; - LINECALLFEATURE_SETCALLPARAMS = $00200000; - LINECALLFEATURE_SETMEDIACONTROL = $00400000; - LINECALLFEATURE_SETTERMINAL = $00800000; - LINECALLFEATURE_SETUPCONF = $01000000; - LINECALLFEATURE_SETUPTRANSFER = $02000000; - LINECALLFEATURE_SWAPHOLD = $04000000; - LINECALLFEATURE_UNHOLD = $08000000; - LINECALLFEATURE_RELEASEUSERUSERINFO = $10000000; { TAPI v1.4 } - LINECALLFEATURE_SETTREATMENT = $20000000; { TAPI v2.0 } - LINECALLFEATURE_SETQOS = $40000000; { TAPI v2.0 } - LINECALLFEATURE_SETCALLDATA = $80000000; { TAPI v2.0 } - - LINECALLFEATURE2_NOHOLDCONFERENCE = $00000001; { TAPI v2.0 } - LINECALLFEATURE2_ONESTEPTRANSFER = $00000002; { TAPI v2.0 } - LINECALLFEATURE2_COMPLCAMPON = $00000004; { TAPI v2.0 } - LINECALLFEATURE2_COMPLCALLBACK = $00000008; { TAPI v2.0 } - LINECALLFEATURE2_COMPLINTRUDE = $00000010; { TAPI v2.0 } - LINECALLFEATURE2_COMPLMESSAGE = $00000020; { TAPI v2.0 } - LINECALLFEATURE2_TRANSFERNORM = $00000040; { TAPI v2.0 } - LINECALLFEATURE2_TRANSFERCONF = $00000080; { TAPI v2.0 } - LINECALLFEATURE2_PARKDIRECT = $00000100; { TAPI v2.0 } - LINECALLFEATURE2_PARKNONDIRECT = $00000200; { TAPI v2.0 } - - LINECALLINFOSTATE_OTHER = $00000001; - LINECALLINFOSTATE_DEVSPECIFIC = $00000002; - LINECALLINFOSTATE_BEARERMODE = $00000004; - LINECALLINFOSTATE_RATE = $00000008; - LINECALLINFOSTATE_MEDIAMODE = $00000010; - LINECALLINFOSTATE_APPSPECIFIC = $00000020; - LINECALLINFOSTATE_CALLID = $00000040; - LINECALLINFOSTATE_RELATEDCALLID = $00000080; - LINECALLINFOSTATE_ORIGIN = $00000100; - LINECALLINFOSTATE_REASON = $00000200; - LINECALLINFOSTATE_COMPLETIONID = $00000400; - LINECALLINFOSTATE_NUMOWNERINCR = $00000800; - LINECALLINFOSTATE_NUMOWNERDECR = $00001000; - LINECALLINFOSTATE_NUMMONITORS = $00002000; - LINECALLINFOSTATE_TRUNK = $00004000; - LINECALLINFOSTATE_CALLERID = $00008000; - LINECALLINFOSTATE_CALLEDID = $00010000; - LINECALLINFOSTATE_CONNECTEDID = $00020000; - LINECALLINFOSTATE_REDIRECTIONID = $00040000; - LINECALLINFOSTATE_REDIRECTINGID = $00080000; - LINECALLINFOSTATE_DISPLAY = $00100000; - LINECALLINFOSTATE_USERUSERINFO = $00200000; - LINECALLINFOSTATE_HIGHLEVELCOMP = $00400000; - LINECALLINFOSTATE_LOWLEVELCOMP = $00800000; - LINECALLINFOSTATE_CHARGINGINFO = $01000000; - LINECALLINFOSTATE_TERMINAL = $02000000; - LINECALLINFOSTATE_DIALPARAMS = $04000000; - LINECALLINFOSTATE_MONITORMODES = $08000000; - LINECALLINFOSTATE_TREATMENT = $10000000; { TAPI v2.0 } - LINECALLINFOSTATE_QOS = $20000000; { TAPI v2.0 } - LINECALLINFOSTATE_CALLDATA = $40000000; { TAPI v2.0 } - - LINECALLORIGIN_OUTBOUND = $00000001; - LINECALLORIGIN_INTERNAL = $00000002; - LINECALLORIGIN_EXTERNAL = $00000004; - LINECALLORIGIN_UNKNOWN = $00000010; - LINECALLORIGIN_UNAVAIL = $00000020; - LINECALLORIGIN_CONFERENCE = $00000040; - LINECALLORIGIN_INBOUND = $00000080; { TAPI v1.4 } - - LINECALLPARAMFLAGS_SECURE = $00000001; - LINECALLPARAMFLAGS_IDLE = $00000002; - LINECALLPARAMFLAGS_BLOCKID = $00000004; - LINECALLPARAMFLAGS_ORIGOFFHOOK = $00000008; - LINECALLPARAMFLAGS_DESTOFFHOOK = $00000010; - LINECALLPARAMFLAGS_NOHOLDCONFERENCE = $00000020; { TAPI v2.0 } - LINECALLPARAMFLAGS_PREDICTIVEDIAL = $00000040; { TAPI v2.0 } - LINECALLPARAMFLAGS_ONESTEPTRANSFER = $00000080; { TAPI v2.0 } - - LINECALLPARTYID_BLOCKED = $00000001; - LINECALLPARTYID_OUTOFAREA = $00000002; - LINECALLPARTYID_NAME = $00000004; - LINECALLPARTYID_ADDRESS = $00000008; - LINECALLPARTYID_PARTIAL = $00000010; - LINECALLPARTYID_UNKNOWN = $00000020; - LINECALLPARTYID_UNAVAIL = $00000040; - - LINECALLPRIVILEGE_NONE = $00000001; - LINECALLPRIVILEGE_MONITOR = $00000002; - LINECALLPRIVILEGE_OWNER = $00000004; - - LINECALLREASON_DIRECT = $00000001; - LINECALLREASON_FWDBUSY = $00000002; - LINECALLREASON_FWDNOANSWER = $00000004; - LINECALLREASON_FWDUNCOND = $00000008; - LINECALLREASON_PICKUP = $00000010; - LINECALLREASON_UNPARK = $00000020; - LINECALLREASON_REDIRECT = $00000040; - LINECALLREASON_CALLCOMPLETION = $00000080; - LINECALLREASON_TRANSFER = $00000100; - LINECALLREASON_REMINDER = $00000200; - LINECALLREASON_UNKNOWN = $00000400; - LINECALLREASON_UNAVAIL = $00000800; - LINECALLREASON_INTRUDE = $00001000; { TAPI v1.4 } - LINECALLREASON_PARKED = $00002000; { TAPI v1.4 } - LINECALLREASON_CAMPEDON = $00004000; { TAPI v2.0 } - LINECALLREASON_ROUTEREQUEST = $00008000; { TAPI v2.0 } - - LINECALLSELECT_LINE = $00000001; - LINECALLSELECT_ADDRESS = $00000002; - LINECALLSELECT_CALL = $00000004; - LINECALLSELECT_DEVICEID = $00000008; { TAPI v2.1 } - LINECALLSELECT_CALLID = $00000010; { TAPI v3.0 } - - LINECALLSTATE_IDLE = $00000001; - LINECALLSTATE_OFFERING = $00000002; - LINECALLSTATE_ACCEPTED = $00000004; - LINECALLSTATE_DIALTONE = $00000008; - LINECALLSTATE_DIALING = $00000010; - LINECALLSTATE_RINGBACK = $00000020; - LINECALLSTATE_BUSY = $00000040; - LINECALLSTATE_SPECIALINFO = $00000080; - LINECALLSTATE_CONNECTED = $00000100; - LINECALLSTATE_PROCEEDING = $00000200; - LINECALLSTATE_ONHOLD = $00000400; - LINECALLSTATE_CONFERENCED = $00000800; - LINECALLSTATE_ONHOLDPENDCONF = $00001000; - LINECALLSTATE_ONHOLDPENDTRANSFER = $00002000; - LINECALLSTATE_DISCONNECTED = $00004000; - LINECALLSTATE_UNKNOWN = $00008000; - - LINECALLTREATMENT_SILENCE = $00000001; { TAPI v2.0 } - LINECALLTREATMENT_RINGBACK = $00000002; { TAPI v2.0 } - LINECALLTREATMENT_BUSY = $00000003; { TAPI v2.0 } - LINECALLTREATMENT_MUSIC = $00000004; { TAPI v2.0 } - - LINECARDOPTION_PREDEFINED = $00000001; { TAPI v1.4 } - LINECARDOPTION_HIDDEN = $00000002; { TAPI v1.4 } - - LINECONNECTEDMODE_ACTIVE = $00000001; { TAPI v1.4 } - LINECONNECTEDMODE_INACTIVE = $00000002; { TAPI v1.4 } - LINECONNECTEDMODE_ACTIVEHELD = $00000004; { TAPI v2.0 } - LINECONNECTEDMODE_INACTIVEHELD = $00000008; { TAPI v2.0 } - LINECONNECTEDMODE_CONFIRMED = $00000010; { TAPI v2.0 } - - LINEDEVCAPFLAGS_CROSSADDRCONF = $00000001; - LINEDEVCAPFLAGS_HIGHLEVCOMP = $00000002; - LINEDEVCAPFLAGS_LOWLEVCOMP = $00000004; - LINEDEVCAPFLAGS_MEDIACONTROL = $00000008; - LINEDEVCAPFLAGS_MULTIPLEADDR = $00000010; - LINEDEVCAPFLAGS_CLOSEDROP = $00000020; - LINEDEVCAPFLAGS_DIALBILLING = $00000040; - LINEDEVCAPFLAGS_DIALQUIET = $00000080; - LINEDEVCAPFLAGS_DIALDIALTONE = $00000100; - LINEDEVCAPFLAGS_MSP = $00000200; { TAPI v3.0 } - LINEDEVCAPFLAGS_CALLHUB = $00000400; { TAPI v3.0 } - LINEDEVCAPFLAGS_CALLHUBTRACKING = $00000800; { TAPI v3.0 } - LINEDEVCAPFLAGS_PRIVATEOBJECTS = $00001000; { TAPI v3.0 } - - LINEDEVSTATE_OTHER = $00000001; - LINEDEVSTATE_RINGING = $00000002; - LINEDEVSTATE_CONNECTED = $00000004; - LINEDEVSTATE_DISCONNECTED = $00000008; - LINEDEVSTATE_MSGWAITON = $00000010; - LINEDEVSTATE_MSGWAITOFF = $00000020; - LINEDEVSTATE_INSERVICE = $00000040; - LINEDEVSTATE_OUTOFSERVICE = $00000080; - LINEDEVSTATE_MAINTENANCE = $00000100; - LINEDEVSTATE_OPEN = $00000200; - LINEDEVSTATE_CLOSE = $00000400; - LINEDEVSTATE_NUMCALLS = $00000800; - LINEDEVSTATE_NUMCOMPLETIONS = $00001000; - LINEDEVSTATE_TERMINALS = $00002000; - LINEDEVSTATE_ROAMMODE = $00004000; - LINEDEVSTATE_BATTERY = $00008000; - LINEDEVSTATE_SIGNAL = $00010000; - LINEDEVSTATE_DEVSPECIFIC = $00020000; - LINEDEVSTATE_REINIT = $00040000; - LINEDEVSTATE_LOCK = $00080000; - LINEDEVSTATE_CAPSCHANGE = $00100000; { TAPI v1.4 } - LINEDEVSTATE_CONFIGCHANGE = $00200000; { TAPI v1.4 } - LINEDEVSTATE_TRANSLATECHANGE = $00400000; { TAPI v1.4 } - LINEDEVSTATE_COMPLCANCEL = $00800000; { TAPI v1.4 } - LINEDEVSTATE_REMOVED = $01000000; { TAPI v1.4 } - - LINEDEVSTATUSFLAGS_CONNECTED = $00000001; - LINEDEVSTATUSFLAGS_MSGWAIT = $00000002; - LINEDEVSTATUSFLAGS_INSERVICE = $00000004; - LINEDEVSTATUSFLAGS_LOCKED = $00000008; - - LINEDIALTONEMODE_NORMAL = $00000001; - LINEDIALTONEMODE_SPECIAL = $00000002; - LINEDIALTONEMODE_INTERNAL = $00000004; - LINEDIALTONEMODE_EXTERNAL = $00000008; - LINEDIALTONEMODE_UNKNOWN = $00000010; - LINEDIALTONEMODE_UNAVAIL = $00000020; - - LINEDIGITMODE_PULSE = $00000001; - LINEDIGITMODE_DTMF = $00000002; - LINEDIGITMODE_DTMFEND = $00000004; - - LINEDISCONNECTMODE_NORMAL = $00000001; - LINEDISCONNECTMODE_UNKNOWN = $00000002; - LINEDISCONNECTMODE_REJECT = $00000004; - LINEDISCONNECTMODE_PICKUP = $00000008; - LINEDISCONNECTMODE_FORWARDED = $00000010; - LINEDISCONNECTMODE_BUSY = $00000020; - LINEDISCONNECTMODE_NOANSWER = $00000040; - LINEDISCONNECTMODE_BADADDRESS = $00000080; - LINEDISCONNECTMODE_UNREACHABLE = $00000100; - LINEDISCONNECTMODE_CONGESTION = $00000200; - LINEDISCONNECTMODE_INCOMPATIBLE = $00000400; - LINEDISCONNECTMODE_UNAVAIL = $00000800; - LINEDISCONNECTMODE_NODIALTONE = $00001000; { TAPI v1.4 } - LINEDISCONNECTMODE_NUMBERCHANGED = $00002000; { TAPI v2.0 } - LINEDISCONNECTMODE_OUTOFORDER = $00004000; { TAPI v2.0 } - LINEDISCONNECTMODE_TEMPFAILURE = $00008000; { TAPI v2.0 } - LINEDISCONNECTMODE_QOSUNAVAIL = $00010000; { TAPI v2.0 } - LINEDISCONNECTMODE_BLOCKED = $00020000; { TAPI v2.0 } - LINEDISCONNECTMODE_DONOTDISTURB = $00040000; { TAPI v2.0 } - LINEDISCONNECTMODE_CANCELLED = $00080000; { TAPI v2.0 } - - LINEERR_ALLOCATED = $80000001; - LINEERR_BADDEVICEID = $80000002; - LINEERR_BEARERMODEUNAVAIL = $80000003; - LINEERR_CALLUNAVAIL = $80000005; - LINEERR_COMPLETIONOVERRUN = $80000006; - LINEERR_CONFERENCEFULL = $80000007; - LINEERR_DIALBILLING = $80000008; - LINEERR_DIALDIALTONE = $80000009; - LINEERR_DIALPROMPT = $8000000A; - LINEERR_DIALQUIET = $8000000B; - LINEERR_INCOMPATIBLEAPIVERSION = $8000000C; - LINEERR_INCOMPATIBLEEXTVERSION = $8000000D; - LINEERR_INIFILECORRUPT = $8000000E; - LINEERR_INUSE = $8000000F; - LINEERR_INVALADDRESS = $80000010; - LINEERR_INVALADDRESSID = $80000011; - LINEERR_INVALADDRESSMODE = $80000012; - LINEERR_INVALADDRESSSTATE = $80000013; - LINEERR_INVALAPPHANDLE = $80000014; - LINEERR_INVALAPPNAME = $80000015; - LINEERR_INVALBEARERMODE = $80000016; - LINEERR_INVALCALLCOMPLMODE = $80000017; - LINEERR_INVALCALLHANDLE = $80000018; - LINEERR_INVALCALLPARAMS = $80000019; - LINEERR_INVALCALLPRIVILEGE = $8000001A; - LINEERR_INVALCALLSELECT = $8000001B; - LINEERR_INVALCALLSTATE = $8000001C; - LINEERR_INVALCALLSTATELIST = $8000001D; - LINEERR_INVALCARD = $8000001E; - LINEERR_INVALCOMPLETIONID = $8000001F; - LINEERR_INVALCONFCALLHANDLE = $80000020; - LINEERR_INVALCONSULTCALLHANDLE = $80000021; - LINEERR_INVALCOUNTRYCODE = $80000022; - LINEERR_INVALDEVICECLASS = $80000023; - LINEERR_INVALDEVICEHANDLE = $80000024; - LINEERR_INVALDIALPARAMS = $80000025; - LINEERR_INVALDIGITLIST = $80000026; - LINEERR_INVALDIGITMODE = $80000027; - LINEERR_INVALDIGITS = $80000028; - LINEERR_INVALEXTVERSION = $80000029; - LINEERR_INVALGROUPID = $8000002A; - LINEERR_INVALLINEHANDLE = $8000002B; - LINEERR_INVALLINESTATE = $8000002C; - LINEERR_INVALLOCATION = $8000002D; - LINEERR_INVALMEDIALIST = $8000002E; - LINEERR_INVALMEDIAMODE = $8000002F; - LINEERR_INVALMESSAGEID = $80000030; - LINEERR_INVALPARAM = $80000032; - LINEERR_INVALPARKID = $80000033; - LINEERR_INVALPARKMODE = $80000034; - LINEERR_INVALPOINTER = $80000035; - LINEERR_INVALPRIVSELECT = $80000036; - LINEERR_INVALRATE = $80000037; - LINEERR_INVALREQUESTMODE = $80000038; - LINEERR_INVALTERMINALID = $80000039; - LINEERR_INVALTERMINALMODE = $8000003A; - LINEERR_INVALTIMEOUT = $8000003B; - LINEERR_INVALTONE = $8000003C; - LINEERR_INVALTONELIST = $8000003D; - LINEERR_INVALTONEMODE = $8000003E; - LINEERR_INVALTRANSFERMODE = $8000003F; - LINEERR_LINEMAPPERFAILED = $80000040; - LINEERR_NOCONFERENCE = $80000041; - LINEERR_NODEVICE = $80000042; - LINEERR_NODRIVER = $80000043; - LINEERR_NOMEM = $80000044; - LINEERR_NOREQUEST = $80000045; - LINEERR_NOTOWNER = $80000046; - LINEERR_NOTREGISTERED = $80000047; - LINEERR_OPERATIONFAILED = $80000048; - LINEERR_OPERATIONUNAVAIL = $80000049; - LINEERR_RATEUNAVAIL = $8000004A; - LINEERR_RESOURCEUNAVAIL = $8000004B; - LINEERR_REQUESTOVERRUN = $8000004C; - LINEERR_STRUCTURETOOSMALL = $8000004D; - LINEERR_TARGETNOTFOUND = $8000004E; - LINEERR_TARGETSELF = $8000004F; - LINEERR_UNINITIALIZED = $80000050; - LINEERR_USERUSERINFOTOOBIG = $80000051; - LINEERR_REINIT = $80000052; - LINEERR_ADDRESSBLOCKED = $80000053; - LINEERR_BILLINGREJECTED = $80000054; - LINEERR_INVALFEATURE = $80000055; - LINEERR_NOMULTIPLEINSTANCE = $80000056; - LINEERR_INVALAGENTID = $80000057; { TAPI v2.0 } - LINEERR_INVALAGENTGROUP = $80000058; { TAPI v2.0 } - LINEERR_INVALPASSWORD = $80000059; { TAPI v2.0 } - LINEERR_INVALAGENTSTATE = $8000005A; { TAPI v2.0 } - LINEERR_INVALAGENTACTIVITY = $8000005B; { TAPI v2.0 } - LINEERR_DIALVOICEDETECT = $8000005C; { TAPI v2.0 } - - LINEFEATURE_DEVSPECIFIC = $00000001; - LINEFEATURE_DEVSPECIFICFEAT = $00000002; - LINEFEATURE_FORWARD = $00000004; - LINEFEATURE_MAKECALL = $00000008; - LINEFEATURE_SETMEDIACONTROL = $00000010; - LINEFEATURE_SETTERMINAL = $00000020; - LINEFEATURE_SETDEVSTATUS = $00000040; { TAPI v2.0 } - LINEFEATURE_FORWARDFWD = $00000080; { TAPI v2.0 } - LINEFEATURE_FORWARDDND = $00000100; { TAPI v2.0 } - - LINEFORWARDMODE_UNCOND = $00000001; - LINEFORWARDMODE_UNCONDINTERNAL = $00000002; - LINEFORWARDMODE_UNCONDEXTERNAL = $00000004; - LINEFORWARDMODE_UNCONDSPECIFIC = $00000008; - LINEFORWARDMODE_BUSY = $00000010; - LINEFORWARDMODE_BUSYINTERNAL = $00000020; - LINEFORWARDMODE_BUSYEXTERNAL = $00000040; - LINEFORWARDMODE_BUSYSPECIFIC = $00000080; - LINEFORWARDMODE_NOANSW = $00000100; - LINEFORWARDMODE_NOANSWINTERNAL = $00000200; - LINEFORWARDMODE_NOANSWEXTERNAL = $00000400; - LINEFORWARDMODE_NOANSWSPECIFIC = $00000800; - LINEFORWARDMODE_BUSYNA = $00001000; - LINEFORWARDMODE_BUSYNAINTERNAL = $00002000; - LINEFORWARDMODE_BUSYNAEXTERNAL = $00004000; - LINEFORWARDMODE_BUSYNASPECIFIC = $00008000; - LINEFORWARDMODE_UNKNOWN = $00010000; { TAPI v1.4 } - LINEFORWARDMODE_UNAVAIL = $00020000; { TAPI v1.4 } - - LINEGATHERTERM_BUFFERFULL = $00000001; - LINEGATHERTERM_TERMDIGIT = $00000002; - LINEGATHERTERM_FIRSTTIMEOUT = $00000004; - LINEGATHERTERM_INTERTIMEOUT = $00000008; - LINEGATHERTERM_CANCEL = $00000010; - - LINEGENERATETERM_DONE = $00000001; - LINEGENERATETERM_CANCEL = $00000002; - - { These constants are mutually exclusive - there's no way to specify more } - { than one at a time (and it doesn't make sense, either) so they're } - { ordinal rather than bits. } - - LINEINITIALIZEEXOPTION_USEHIDDENWINDOW = $00000001; { TAPI v2.0 } - LINEINITIALIZEEXOPTION_USEEVENT = $00000002; { TAPI v2.0 } - LINEINITIALIZEEXOPTION_USECOMPLETIONPORT = $00000003; { TAPI v2.0 } - - LINELOCATIONOPTION_PULSEDIAL = $00000001; { TAPI v1.4 } - - LINEMAPPER = $FFFFFFFF; - - LINEMEDIACONTROL_NONE = $00000001; - LINEMEDIACONTROL_START = $00000002; - LINEMEDIACONTROL_RESET = $00000004; - LINEMEDIACONTROL_PAUSE = $00000008; - LINEMEDIACONTROL_RESUME = $00000010; - LINEMEDIACONTROL_RATEUP = $00000020; - LINEMEDIACONTROL_RATEDOWN = $00000040; - LINEMEDIACONTROL_RATENORMAL = $00000080; - LINEMEDIACONTROL_VOLUMEUP = $00000100; - LINEMEDIACONTROL_VOLUMEDOWN = $00000200; - LINEMEDIACONTROL_VOLUMENORMAL = $00000400; - - LINEMEDIAMODE_UNKNOWN = $00000002; - LINEMEDIAMODE_INTERACTIVEVOICE = $00000004; - LINEMEDIAMODE_AUTOMATEDVOICE = $00000008; - LINEMEDIAMODE_DATAMODEM = $00000010; - LINEMEDIAMODE_G3FAX = $00000020; - LINEMEDIAMODE_TDD = $00000040; - LINEMEDIAMODE_G4FAX = $00000080; - LINEMEDIAMODE_DIGITALDATA = $00000100; - LINEMEDIAMODE_TELETEX = $00000200; - LINEMEDIAMODE_VIDEOTEX = $00000400; - LINEMEDIAMODE_TELEX = $00000800; - LINEMEDIAMODE_MIXED = $00001000; - LINEMEDIAMODE_ADSI = $00002000; - LINEMEDIAMODE_VOICEVIEW = $00004000; { TAPI v1.4 } - LAST_LINEMEDIAMODE = $00004000; - - LINEOFFERINGMODE_ACTIVE = $00000001; { TAPI v1.4 } - LINEOFFERINGMODE_INACTIVE = $00000002; { TAPI v1.4 } - - LINEOPENOPTION_SINGLEADDRESS = $80000000; { TAPI v2.0 } - LINEOPENOPTION_PROXY = $40000000; { TAPI v2.0 } - - LINEPARKMODE_DIRECTED = $00000001; - LINEPARKMODE_NONDIRECTED = $00000002; - - LINEPROXYREQUEST_SETAGENTGROUP = $00000001; { TAPI v2.0 } - LINEPROXYREQUEST_SETAGENTSTATE = $00000002; { TAPI v2.0 } - LINEPROXYREQUEST_SETAGENTACTIVITY = $00000003; { TAPI v2.0 } - LINEPROXYREQUEST_GETAGENTCAPS = $00000004; { TAPI v2.0 } - LINEPROXYREQUEST_GETAGENTSTATUS = $00000005; { TAPI v2.0 } - LINEPROXYREQUEST_AGENTSPECIFIC = $00000006; { TAPI v2.0 } - LINEPROXYREQUEST_GETAGENTACTIVITYLIST = $00000007; { TAPI v2.0 } - LINEPROXYREQUEST_GETAGENTGROUPLIST = $00000008; { TAPI v2.0 } - - LINEREMOVEFROMCONF_NONE = $00000001; - LINEREMOVEFROMCONF_LAST = $00000002; - LINEREMOVEFROMCONF_ANY = $00000003; - - LINEREQUESTMODE_MAKECALL = $00000001; - LINEREQUESTMODE_MEDIACALL = $00000002; - LINEREQUESTMODE_DROP = $00000004; - - LAST_LINEREQUESTMODE = LINEREQUESTMODE_MEDIACALL; - - LINEROAMMODE_UNKNOWN = $00000001; - LINEROAMMODE_UNAVAIL = $00000002; - LINEROAMMODE_HOME = $00000004; - LINEROAMMODE_ROAMA = $00000008; - LINEROAMMODE_ROAMB = $00000010; - - LINESPECIALINFO_NOCIRCUIT = $00000001; - LINESPECIALINFO_CUSTIRREG = $00000002; - LINESPECIALINFO_REORDER = $00000004; - LINESPECIALINFO_UNKNOWN = $00000008; - LINESPECIALINFO_UNAVAIL = $00000010; - - LINETERMDEV_PHONE = $00000001; - LINETERMDEV_HEADSET = $00000002; - LINETERMDEV_SPEAKER = $00000004; - - LINETERMMODE_BUTTONS = $00000001; - LINETERMMODE_LAMPS = $00000002; - LINETERMMODE_DISPLAY = $00000004; - LINETERMMODE_RINGER = $00000008; - LINETERMMODE_HOOKSWITCH = $00000010; - LINETERMMODE_MEDIATOLINE = $00000020; - LINETERMMODE_MEDIAFROMLINE = $00000040; - LINETERMMODE_MEDIABIDIRECT = $00000080; - - LINETERMSHARING_PRIVATE = $00000001; - LINETERMSHARING_SHAREDEXCL = $00000002; - LINETERMSHARING_SHAREDCONF = $00000004; - - LINETOLLLISTOPTION_ADD = $00000001; - LINETOLLLISTOPTION_REMOVE = $00000002; - - LINETONEMODE_CUSTOM = $00000001; - LINETONEMODE_RINGBACK = $00000002; - LINETONEMODE_BUSY = $00000004; - LINETONEMODE_BEEP = $00000008; - LINETONEMODE_BILLING = $00000010; - - LINETRANSFERMODE_TRANSFER = $00000001; - LINETRANSFERMODE_CONFERENCE = $00000002; - - LINETRANSLATEOPTION_CARDOVERRIDE = $00000001; - LINETRANSLATEOPTION_CANCELCALLWAITING = $00000002; { TAPI v1.4 } - LINETRANSLATEOPTION_FORCELOCAL = $00000004; { TAPI v1.4 } - LINETRANSLATEOPTION_FORCELD = $00000008; { TAPI v1.4 } - LINETRANSLATERESULT_CANONICAL = $00000001; - LINETRANSLATERESULT_INTERNATIONAL = $00000002; - LINETRANSLATERESULT_LONGDISTANCE = $00000004; - LINETRANSLATERESULT_LOCAL = $00000008; - LINETRANSLATERESULT_INTOLLLIST = $00000010; - LINETRANSLATERESULT_NOTINTOLLLIST = $00000020; - LINETRANSLATERESULT_DIALBILLING = $00000040; - LINETRANSLATERESULT_DIALQUIET = $00000080; - LINETRANSLATERESULT_DIALDIALTONE = $00000100; - LINETRANSLATERESULT_DIALPROMPT = $00000200; - LINETRANSLATERESULT_VOICEDETECT = $00000400; { TAPI v2.0 } - - PHONEBUTTONFUNCTION_UNKNOWN = $00000000; - PHONEBUTTONFUNCTION_CONFERENCE = $00000001; - PHONEBUTTONFUNCTION_TRANSFER = $00000002; - PHONEBUTTONFUNCTION_DROP = $00000003; - PHONEBUTTONFUNCTION_HOLD = $00000004; - PHONEBUTTONFUNCTION_RECALL = $00000005; - PHONEBUTTONFUNCTION_DISCONNECT = $00000006; - PHONEBUTTONFUNCTION_CONNECT = $00000007; - PHONEBUTTONFUNCTION_MSGWAITON = $00000008; - PHONEBUTTONFUNCTION_MSGWAITOFF = $00000009; - PHONEBUTTONFUNCTION_SELECTRING = $0000000A; - PHONEBUTTONFUNCTION_ABBREVDIAL = $0000000B; - PHONEBUTTONFUNCTION_FORWARD = $0000000C; - PHONEBUTTONFUNCTION_PICKUP = $0000000D; - PHONEBUTTONFUNCTION_RINGAGAIN = $0000000E; - PHONEBUTTONFUNCTION_PARK = $0000000F; - PHONEBUTTONFUNCTION_REJECT = $00000010; - PHONEBUTTONFUNCTION_REDIRECT = $00000011; - PHONEBUTTONFUNCTION_MUTE = $00000012; - PHONEBUTTONFUNCTION_VOLUMEUP = $00000013; - PHONEBUTTONFUNCTION_VOLUMEDOWN = $00000014; - PHONEBUTTONFUNCTION_SPEAKERON = $00000015; - PHONEBUTTONFUNCTION_SPEAKEROFF = $00000016; - PHONEBUTTONFUNCTION_FLASH = $00000017; - PHONEBUTTONFUNCTION_DATAON = $00000018; - PHONEBUTTONFUNCTION_DATAOFF = $00000019; - PHONEBUTTONFUNCTION_DONOTDISTURB = $0000001A; - PHONEBUTTONFUNCTION_INTERCOM = $0000001B; - PHONEBUTTONFUNCTION_BRIDGEDAPP = $0000001C; - PHONEBUTTONFUNCTION_BUSY = $0000001D; - PHONEBUTTONFUNCTION_CALLAPP = $0000001E; - PHONEBUTTONFUNCTION_DATETIME = $0000001F; - PHONEBUTTONFUNCTION_DIRECTORY = $00000020; - PHONEBUTTONFUNCTION_COVER = $00000021; - PHONEBUTTONFUNCTION_CALLID = $00000022; - PHONEBUTTONFUNCTION_LASTNUM = $00000023; - PHONEBUTTONFUNCTION_NIGHTSRV = $00000024; - PHONEBUTTONFUNCTION_SENDCALLS = $00000025; - PHONEBUTTONFUNCTION_MSGINDICATOR = $00000026; - PHONEBUTTONFUNCTION_REPDIAL = $00000027; - PHONEBUTTONFUNCTION_SETREPDIAL = $00000028; - PHONEBUTTONFUNCTION_SYSTEMSPEED = $00000029; - PHONEBUTTONFUNCTION_STATIONSPEED = $0000002A; - PHONEBUTTONFUNCTION_CAMPON = $0000002B; - PHONEBUTTONFUNCTION_SAVEREPEAT = $0000002C; - PHONEBUTTONFUNCTION_QUEUECALL = $0000002D; - PHONEBUTTONFUNCTION_NONE = $0000002E; - - PHONEBUTTONMODE_DUMMY = $00000001; - PHONEBUTTONMODE_CALL = $00000002; - PHONEBUTTONMODE_FEATURE = $00000004; - PHONEBUTTONMODE_KEYPAD = $00000008; - PHONEBUTTONMODE_LOCAL = $00000010; - PHONEBUTTONMODE_DISPLAY = $00000020; - - PHONEBUTTONSTATE_UP = $00000001; - PHONEBUTTONSTATE_DOWN = $00000002; - PHONEBUTTONSTATE_UNKNOWN = $00000004; { TAPI v1.4 } - PHONEBUTTONSTATE_UNAVAIL = $00000008; { TAPI v1.4 } - - PHONEERR_ALLOCATED = $90000001; - PHONEERR_BADDEVICEID = $90000002; - PHONEERR_INCOMPATIBLEAPIVERSION = $90000003; - PHONEERR_INCOMPATIBLEEXTVERSION = $90000004; - PHONEERR_INIFILECORRUPT = $90000005; - PHONEERR_INUSE = $90000006; - PHONEERR_INVALAPPHANDLE = $90000007; - PHONEERR_INVALAPPNAME = $90000008; - PHONEERR_INVALBUTTONLAMPID = $90000009; - PHONEERR_INVALBUTTONMODE = $9000000A; - PHONEERR_INVALBUTTONSTATE = $9000000B; - PHONEERR_INVALDATAID = $9000000C; - PHONEERR_INVALDEVICECLASS = $9000000D; - PHONEERR_INVALEXTVERSION = $9000000E; - PHONEERR_INVALHOOKSWITCHDEV = $9000000F; - PHONEERR_INVALHOOKSWITCHMODE = $90000010; - PHONEERR_INVALLAMPMODE = $90000011; - PHONEERR_INVALPARAM = $90000012; - PHONEERR_INVALPHONEHANDLE = $90000013; - PHONEERR_INVALPHONESTATE = $90000014; - PHONEERR_INVALPOINTER = $90000015; - PHONEERR_INVALPRIVILEGE = $90000016; - PHONEERR_INVALRINGMODE = $90000017; - PHONEERR_NODEVICE = $90000018; - PHONEERR_NODRIVER = $90000019; - PHONEERR_NOMEM = $9000001A; - PHONEERR_NOTOWNER = $9000001B; - PHONEERR_OPERATIONFAILED = $9000001C; - PHONEERR_OPERATIONUNAVAIL = $9000001D; - PHONEERR_RESOURCEUNAVAIL = $9000001F; - PHONEERR_REQUESTOVERRUN = $90000020; - PHONEERR_STRUCTURETOOSMALL = $90000021; - PHONEERR_UNINITIALIZED = $90000022; - PHONEERR_REINIT = $90000023; - - PHONEFEATURE_GETBUTTONINFO = $00000001; { TAPI v2.0 } - PHONEFEATURE_GETDATA = $00000002; { TAPI v2.0 } - PHONEFEATURE_GETDISPLAY = $00000004; { TAPI v2.0 } - PHONEFEATURE_GETGAINHANDSET = $00000008; { TAPI v2.0 } - PHONEFEATURE_GETGAINSPEAKER = $00000010; { TAPI v2.0 } - PHONEFEATURE_GETGAINHEADSET = $00000020; { TAPI v2.0 } - PHONEFEATURE_GETHOOKSWITCHHANDSET = $00000040; { TAPI v2.0 } - PHONEFEATURE_GETHOOKSWITCHSPEAKER = $00000080; { TAPI v2.0 } - PHONEFEATURE_GETHOOKSWITCHHEADSET = $00000100; { TAPI v2.0 } - PHONEFEATURE_GETLAMP = $00000200; { TAPI v2.0 } - PHONEFEATURE_GETRING = $00000400; { TAPI v2.0 } - PHONEFEATURE_GETVOLUMEHANDSET = $00000800; { TAPI v2.0 } - PHONEFEATURE_GETVOLUMESPEAKER = $00001000; { TAPI v2.0 } - PHONEFEATURE_GETVOLUMEHEADSET = $00002000; { TAPI v2.0 } - PHONEFEATURE_SETBUTTONINFO = $00004000; { TAPI v2.0 } - PHONEFEATURE_SETDATA = $00008000; { TAPI v2.0 } - PHONEFEATURE_SETDISPLAY = $00010000; { TAPI v2.0 } - PHONEFEATURE_SETGAINHANDSET = $00020000; { TAPI v2.0 } - PHONEFEATURE_SETGAINSPEAKER = $00040000; { TAPI v2.0 } - PHONEFEATURE_SETGAINHEADSET = $00080000; { TAPI v2.0 } - PHONEFEATURE_SETHOOKSWITCHHANDSET = $00100000; { TAPI v2.0 } - PHONEFEATURE_SETHOOKSWITCHSPEAKER = $00200000; { TAPI v2.0 } - PHONEFEATURE_SETHOOKSWITCHHEADSET = $00400000; { TAPI v2.0 } - PHONEFEATURE_SETLAMP = $00800000; { TAPI v2.0 } - PHONEFEATURE_SETRING = $01000000; { TAPI v2.0 } - PHONEFEATURE_SETVOLUMEHANDSET = $02000000; { TAPI v2.0 } - PHONEFEATURE_SETVOLUMESPEAKER = $04000000; { TAPI v2.0 } - PHONEFEATURE_SETVOLUMEHEADSET = $08000000; { TAPI v2.0 } - - PHONEHOOKSWITCHDEV_HANDSET = $00000001; - PHONEHOOKSWITCHDEV_SPEAKER = $00000002; - PHONEHOOKSWITCHDEV_HEADSET = $00000004; - - PHONEHOOKSWITCHMODE_ONHOOK = $00000001; - PHONEHOOKSWITCHMODE_MIC = $00000002; - PHONEHOOKSWITCHMODE_SPEAKER = $00000004; - PHONEHOOKSWITCHMODE_MICSPEAKER = $00000008; - PHONEHOOKSWITCHMODE_UNKNOWN = $00000010; - - PHONEINITIALIZEEXOPTION_USEHIDDENWINDOW = $00000001; { TAPI v2.0 } - PHONEINITIALIZEEXOPTION_USEEVENT = $00000002; { TAPI v2.0 } - PHONEINITIALIZEEXOPTION_USECOMPLETIONPORT = $00000003; { TAPI v2.0 } - - PHONELAMPMODE_DUMMY = $00000001; - PHONELAMPMODE_OFF = $00000002; - PHONELAMPMODE_STEADY = $00000004; - PHONELAMPMODE_WINK = $00000008; - PHONELAMPMODE_FLASH = $00000010; - PHONELAMPMODE_FLUTTER = $00000020; - PHONELAMPMODE_BROKENFLUTTER = $00000040; - PHONELAMPMODE_UNKNOWN = $00000080; - - PHONEPRIVILEGE_MONITOR = $00000001; - PHONEPRIVILEGE_OWNER = $00000002; - - PHONESTATE_OTHER = $00000001; - PHONESTATE_CONNECTED = $00000002; - PHONESTATE_DISCONNECTED = $00000004; - PHONESTATE_OWNER = $00000008; - PHONESTATE_MONITORS = $00000010; - PHONESTATE_DISPLAY = $00000020; - PHONESTATE_LAMP = $00000040; - PHONESTATE_RINGMODE = $00000080; - PHONESTATE_RINGVOLUME = $00000100; - PHONESTATE_HANDSETHOOKSWITCH = $00000200; - PHONESTATE_HANDSETVOLUME = $00000400; - PHONESTATE_HANDSETGAIN = $00000800; - PHONESTATE_SPEAKERHOOKSWITCH = $00001000; - PHONESTATE_SPEAKERVOLUME = $00002000; - PHONESTATE_SPEAKERGAIN = $00004000; - PHONESTATE_HEADSETHOOKSWITCH = $00008000; - PHONESTATE_HEADSETVOLUME = $00010000; - PHONESTATE_HEADSETGAIN = $00020000; - PHONESTATE_SUSPEND = $00040000; - PHONESTATE_RESUME = $00080000; - PHONESTATE_DEVSPECIFIC = $00100000; - PHONESTATE_REINIT = $00200000; - PHONESTATE_CAPSCHANGE = $00400000; { TAPI v1.4 } - PHONESTATE_REMOVED = $00800000; { TAPI v1.4 } - - PHONESTATUSFLAGS_CONNECTED = $00000001; - PHONESTATUSFLAGS_SUSPENDED = $00000002; - - STRINGFORMAT_ASCII = $00000001; - STRINGFORMAT_DBCS = $00000002; - STRINGFORMAT_UNICODE = $00000003; - STRINGFORMAT_BINARY = $00000004; - - TAPI_REPLY = WM_USER + 99; - - TAPIERR_CONNECTED = 0; - TAPIERR_DROPPED = -(1); - TAPIERR_NOREQUESTRECIPIENT = -(2); - TAPIERR_REQUESTQUEUEFULL = -(3); - TAPIERR_INVALDESTADDRESS = -(4); - TAPIERR_INVALWINDOWHANDLE = -(5); - TAPIERR_INVALDEVICECLASS = -(6); - TAPIERR_INVALDEVICEID = -(7); - TAPIERR_DEVICECLASSUNAVAIL = -(8); - TAPIERR_DEVICEIDUNAVAIL = -(9); - TAPIERR_DEVICEINUSE = -(10); - TAPIERR_DESTBUSY = -(11); - TAPIERR_DESTNOANSWER = -(12); - TAPIERR_DESTUNAVAIL = -(13); - TAPIERR_UNKNOWNWINHANDLE = -(14); - TAPIERR_UNKNOWNREQUESTID = -(15); - TAPIERR_REQUESTFAILED = -(16); - TAPIERR_REQUESTCANCELLED = -(17); - TAPIERR_INVALPOINTER = -(18); - - TAPIMAXDESTADDRESSSIZE = 80; - TAPIMAXAPPNAMESIZE = 40; - TAPIMAXCALLEDPARTYSIZE = 40; - TAPIMAXCOMMENTSIZE = 80; - TAPIMAXDEVICECLASSSIZE = 40; - TAPIMAXDEVICEIDSIZE = 40; - -//***************************************************************************** -// types -//***************************************************************************** - -type - - HCALL = HANDLE; - LPHCALL = ^HCALL; - - HLINE = HANDLE; - LPHLINE = ^HLINE; - - HPHONE = HANDLE; - LPHPHONE = ^HPHONE; - - HLINEAPP = HANDLE; - LPHLINEAPP = ^HLINEAPP; - - HPHONEAPP = HANDLE; - LPHPHONEAPP = ^HPHONEAPP; - - LINECALLBACK = procedure (hDevice:DWORD; dwMessage:DWORD; dwInstance:DWORD; dwParam1:DWORD; dwParam2:DWORD; - dwParam3:DWORD); - - PHONECALLBACK = procedure (hDevice:DWORD; dwMessage:DWORD; dwInstance:DWORD; dwParam1:DWORD; dwParam2:DWORD; - dwParam3:DWORD); - - lineaddresscaps_tag = record - dwTotalSize : DWORD; - dwNeededSize : DWORD; - dwUsedSize : DWORD; - dwLineDeviceID : DWORD; - dwAddressSize : DWORD; - dwAddressOffset : DWORD; - dwDevSpecificSize : DWORD; - dwDevSpecificOffset : DWORD; - dwAddressSharing : DWORD; - dwAddressStates : DWORD; - dwCallInfoStates : DWORD; - dwCallerIDFlags : DWORD; - dwCalledIDFlags : DWORD; - dwConnectedIDFlags : DWORD; - dwRedirectionIDFlags : DWORD; - dwRedirectingIDFlags : DWORD; - dwCallStates : DWORD; - dwDialToneModes : DWORD; - dwBusyModes : DWORD; - dwSpecialInfo : DWORD; - dwDisconnectModes : DWORD; - dwMaxNumActiveCalls : DWORD; - dwMaxNumOnHoldCalls : DWORD; - dwMaxNumOnHoldPendingCalls : DWORD; - dwMaxNumConference : DWORD; - dwMaxNumTransConf : DWORD; - dwAddrCapFlags : DWORD; - dwCallFeatures : DWORD; - dwRemoveFromConfCaps : DWORD; - dwRemoveFromConfState : DWORD; - dwTransferModes : DWORD; - dwParkModes : DWORD; - dwForwardModes : DWORD; - dwMaxForwardEntries : DWORD; - dwMaxSpecificEntries : DWORD; - dwMinFwdNumRings : DWORD; - dwMaxFwdNumRings : DWORD; - dwMaxCallCompletions : DWORD; - dwCallCompletionConds : DWORD; - dwCallCompletionModes : DWORD; - dwNumCompletionMessages : DWORD; - dwCompletionMsgTextEntrySize : DWORD; - dwCompletionMsgTextSize : DWORD; - dwCompletionMsgTextOffset : DWORD; - - dwAddressFeatures : DWORD; // TAPI v1.4 - - dwPredictiveAutoTransferStates : DWORD; // TAPI v2.0 - dwNumCallTreatments : DWORD; // TAPI v2.0 - dwCallTreatmentListSize : DWORD; // TAPI v2.0 - dwCallTreatmentListOffset : DWORD; // TAPI v2.0 - dwDeviceClassesSize : DWORD; // TAPI v2.0 - dwDeviceClassesOffset : DWORD; // TAPI v2.0 - dwMaxCallDataSize : DWORD; // TAPI v2.0 - dwCallFeatures2 : DWORD; // TAPI v2.0 - dwMaxNoAnswerTimeout : DWORD; // TAPI v2.0 - dwConnectedModes : DWORD; // TAPI v2.0 - dwOfferingModes : DWORD; // TAPI v2.0 - dwAvailableMediaModes : DWORD; // TAPI v2.0 - end; - TLINEADDRESSCAPS = lineaddresscaps_tag; - LPLINEADDRESSCAPS = ^lineaddresscaps_tag; - - lineaddressstatus_tag = record - dwTotalSize : DWORD; - dwNeededSize : DWORD; - dwUsedSize : DWORD; - dwNumInUse : DWORD; - dwNumActiveCalls : DWORD; - dwNumOnHoldCalls : DWORD; - dwNumOnHoldPendCalls : DWORD; - dwAddressFeatures : DWORD; - dwNumRingsNoAnswer : DWORD; - dwForwardNumEntries : DWORD; - dwForwardSize : DWORD; - dwForwardOffset : DWORD; - dwTerminalModesSize : DWORD; - dwTerminalModesOffset : DWORD; - dwDevSpecificSize : DWORD; - dwDevSpecificOffset : DWORD; - end; - TLINEADDRESSSTATUS = lineaddressstatus_tag; - LPLINEADDRESSSTATUS = ^lineaddressstatus_tag; - - linedialparams_tag = record - dwDialPause : DWORD; - dwDialSpeed : DWORD; - dwDigitDuration : DWORD; - dwWaitForDialtone : DWORD; - end; - TLINEDIALPARAMS = linedialparams_tag; - LPLINEDIALPARAMS = ^linedialparams_tag; - - linecallinfo_tag = record - dwTotalSize : DWORD; - dwNeededSize : DWORD; - dwUsedSize : DWORD; - hLine : HLINE; - dwLineDeviceID : DWORD; - dwAddressID : DWORD; - dwBearerMode : DWORD; - dwRate : DWORD; - dwMediaMode : DWORD; - dwAppSpecific : DWORD; - dwCallID : DWORD; - dwRelatedCallID : DWORD; - dwCallParamFlags : DWORD; - dwCallStates : DWORD; - dwMonitorDigitModes : DWORD; - dwMonitorMediaModes : DWORD; - DialParams : TLINEDIALPARAMS; - dwOrigin : DWORD; - dwReason : DWORD; - dwCompletionID : DWORD; - dwNumOwners : DWORD; - dwNumMonitors : DWORD; - dwCountryCode : DWORD; - dwTrunk : DWORD; - dwCallerIDFlags : DWORD; - dwCallerIDSize : DWORD; - dwCallerIDOffset : DWORD; - dwCallerIDNameSize : DWORD; - dwCallerIDNameOffset : DWORD; - dwCalledIDFlags : DWORD; - dwCalledIDSize : DWORD; - dwCalledIDOffset : DWORD; - dwCalledIDNameSize : DWORD; - dwCalledIDNameOffset : DWORD; - dwConnectedIDFlags : DWORD; - dwConnectedIDSize : DWORD; - dwConnectedIDOffset : DWORD; - dwConnectedIDNameSize : DWORD; - dwConnectedIDNameOffset : DWORD; - dwRedirectionIDFlags : DWORD; - dwRedirectionIDSize : DWORD; - dwRedirectionIDOffset : DWORD; - dwRedirectionIDNameSize : DWORD; - dwRedirectionIDNameOffset : DWORD; - dwRedirectingIDFlags : DWORD; - dwRedirectingIDSize : DWORD; - dwRedirectingIDOffset : DWORD; - dwRedirectingIDNameSize : DWORD; - dwRedirectingIDNameOffset : DWORD; - dwAppNameSize : DWORD; - dwAppNameOffset : DWORD; - dwDisplayableAddressSize : DWORD; - dwDisplayableAddressOffset : DWORD; - dwCalledPartySize : DWORD; - dwCalledPartyOffset : DWORD; - dwCommentSize : DWORD; - dwCommentOffset : DWORD; - dwDisplaySize : DWORD; - dwDisplayOffset : DWORD; - dwUserUserInfoSize : DWORD; - dwUserUserInfoOffset : DWORD; - dwHighLevelCompSize : DWORD; - dwHighLevelCompOffset : DWORD; - dwLowLevelCompSize : DWORD; - dwLowLevelCompOffset : DWORD; - dwChargingInfoSize : DWORD; - dwChargingInfoOffset : DWORD; - dwTerminalModesSize : DWORD; - dwTerminalModesOffset : DWORD; - dwDevSpecificSize : DWORD; - dwDevSpecificOffset : DWORD; - dwCallTreatment : DWORD; // TAPI v2.0 - dwCallDataSize : DWORD; // TAPI v2.0 - dwCallDataOffset : DWORD; // TAPI v2.0 - dwSendingFlowspecSize : DWORD; // TAPI v2.0 - dwSendingFlowspecOffset : DWORD; // TAPI v2.0 - dwReceivingFlowspecSize : DWORD; // TAPI v2.0 - dwReceivingFlowspecOffset : DWORD; // TAPI v2.0 - dwAddressType : DWORD; // TAPI v3.0 - end; - TLINECALLINFO = linecallinfo_tag; - LPLINECALLINFO = ^linecallinfo_tag; - - linecalllist_tag = record - dwTotalSize : DWORD; - dwNeededSize : DWORD; - dwUsedSize : DWORD; - dwCallsNumEntries : DWORD; - dwCallsSize : DWORD; - dwCallsOffset : DWORD; - end; - TLINECALLLIST = linecalllist_tag; - LPLINECALLLIST = ^linecalllist_tag; - - linecallparams_tag = record // Defaults: - dwTotalSize : DWORD; - dwBearerMode : DWORD; // voice - dwMinRate : DWORD; // (3.1kHz) - dwMaxRate : DWORD; // (3.1kHz) - dwMediaMode : DWORD; // interactiveVoice - dwCallParamFlags : DWORD; // 0 - dwAddressMode : DWORD; - dwAddressID : DWORD; // (any available) - DialParams : TLINEDIALPARAMS; // (0, 0, 0, 0) - dwOrigAddressSize : DWORD; // 0 - dwOrigAddressOffset : DWORD; - dwDisplayableAddressSize : DWORD; - dwDisplayableAddressOffset : DWORD; - dwCalledPartySize : DWORD; // 0 - dwCalledPartyOffset : DWORD; - dwCommentSize : DWORD; // 0 - dwCommentOffset : DWORD; - dwUserUserInfoSize : DWORD; // 0 - dwUserUserInfoOffset : DWORD; - dwHighLevelCompSize : DWORD; // 0 - dwHighLevelCompOffset : DWORD; - dwLowLevelCompSize : DWORD; // 0 - dwLowLevelCompOffset : DWORD; - dwDevSpecificSize : DWORD; // 0 - dwDevSpecificOffset : DWORD; - dwPredictiveAutoTransferStates : DWORD; // TAPI v2.0 - dwTargetAddressSize : DWORD; // TAPI v2.0 - dwTargetAddressOffset : DWORD; // TAPI v2.0 - dwSendingFlowspecSize : DWORD; // TAPI v2.0 - dwSendingFlowspecOffset : DWORD; // TAPI v2.0 - dwReceivingFlowspecSize : DWORD; // TAPI v2.0 - dwReceivingFlowspecOffset : DWORD; // TAPI v2.0 - dwDeviceClassSize : DWORD; // TAPI v2.0 - dwDeviceClassOffset : DWORD; // TAPI v2.0 - dwDeviceConfigSize : DWORD; // TAPI v2.0 - dwDeviceConfigOffset : DWORD; // TAPI v2.0 - dwCallDataSize : DWORD; // TAPI v2.0 - dwCallDataOffset : DWORD; // TAPI v2.0 - dwNoAnswerTimeout : DWORD; // TAPI v2.0 - dwCallingPartyIDSize : DWORD; // TAPI v2.0 - dwCallingPartyIDOffset : DWORD; // TAPI v2.0 - dwAddressType : DWORD; // TAPI v3.0 - end; - TLINECALLPARAMS = linecallparams_tag; - LPLINECALLPARAMS = ^linecallparams_tag; - - linecallstatus_tag = record - dwTotalSize : DWORD; - dwNeededSize : DWORD; - dwUsedSize : DWORD; - dwCallState : DWORD; - dwCallStateMode : DWORD; - dwCallPrivilege : DWORD; - dwCallFeatures : DWORD; - dwDevSpecificSize : DWORD; - dwDevSpecificOffset : DWORD; - - dwCallFeatures2 : DWORD; // TAPI v2.0 - tStateEntryTime : SYSTEMTIME; // TAPI v2.0 - end; - TLINECALLSTATUS = linecallstatus_tag; - LPLINECALLSTATUS = ^linecallstatus_tag; - - linecalltreatmententry_tag = record - dwCallTreatmentID : DWORD; // TAPI v2.0 - dwCallTreatmentNameSize : DWORD; // TAPI v2.0 - dwCallTreatmentNameOffset : DWORD; // TAPI v2.0 - end; - TLINECALLTREATMENTENTRY = linecalltreatmententry_tag; - LPLINECALLTREATMENTENTRY = ^linecalltreatmententry_tag; - - linecardentry_tag = record - dwPermanentCardID : DWORD; - dwCardNameSize : DWORD; - dwCardNameOffset : DWORD; - dwCardNumberDigits : DWORD; // TAPI v1.4 - dwSameAreaRuleSize : DWORD; // TAPI v1.4 - dwSameAreaRuleOffset : DWORD; // TAPI v1.4 - dwLongDistanceRuleSize : DWORD; // TAPI v1.4 - dwLongDistanceRuleOffset : DWORD; // TAPI v1.4 - dwInternationalRuleSize : DWORD; // TAPI v1.4 - dwInternationalRuleOffset : DWORD; // TAPI v1.4 - dwOptions : DWORD; // TAPI v1.4 - end; - TLINECARDENTRY = linecardentry_tag; - LPLINECARDENTRY = ^linecardentry_tag; - - linecountryentry_tag = record // TAPI v1.4 - dwCountryID : DWORD; // TAPI v1.4 - dwCountryCode : DWORD; // TAPI v1.4 - dwNextCountryID : DWORD; // TAPI v1.4 - dwCountryNameSize : DWORD; // TAPI v1.4 - dwCountryNameOffset : DWORD; // TAPI v1.4 - dwSameAreaRuleSize : DWORD; // TAPI v1.4 - dwSameAreaRuleOffset : DWORD; // TAPI v1.4 - dwLongDistanceRuleSize : DWORD; // TAPI v1.4 - dwLongDistanceRuleOffset : DWORD; // TAPI v1.4 - dwInternationalRuleSize : DWORD; // TAPI v1.4 - dwInternationalRuleOffset : DWORD; // TAPI v1.4 - end; - TLINECOUNTRYENTRY = linecountryentry_tag; - LPLINECOUNTRYENTRY = ^linecountryentry_tag; - - linecountrylist_tag = record - dwTotalSize : DWORD; // TAPI v1.4 - dwNeededSize : DWORD; // TAPI v1.4 - dwUsedSize : DWORD; // TAPI v1.4 - dwNumCountries : DWORD; // TAPI v1.4 - dwCountryListSize : DWORD; // TAPI v1.4 - dwCountryListOffset : DWORD; // TAPI v1.4 - end; - TLINECOUNTRYLIST = linecountrylist_tag; - LPLINECOUNTRYLIST = ^linecountrylist_tag; - - linedevcaps_tag = record - dwTotalSize : DWORD; - dwNeededSize : DWORD; - dwUsedSize : DWORD; - dwProviderInfoSize : DWORD; - dwProviderInfoOffset : DWORD; - dwSwitchInfoSize : DWORD; - dwSwitchInfoOffset : DWORD; - dwPermanentLineID : DWORD; - dwLineNameSize : DWORD; - dwLineNameOffset : DWORD; - dwStringFormat : DWORD; - dwAddressModes : DWORD; - dwNumAddresses : DWORD; - dwBearerModes : DWORD; - dwMaxRate : DWORD; - dwMediaModes : DWORD; - dwGenerateToneModes : DWORD; - dwGenerateToneMaxNumFreq : DWORD; - dwGenerateDigitModes : DWORD; - dwMonitorToneMaxNumFreq : DWORD; - dwMonitorToneMaxNumEntries : DWORD; - dwMonitorDigitModes : DWORD; - dwGatherDigitsMinTimeout : DWORD; - dwGatherDigitsMaxTimeout : DWORD; - dwMedCtlDigitMaxListSize : DWORD; - dwMedCtlMediaMaxListSize : DWORD; - dwMedCtlToneMaxListSize : DWORD; - dwMedCtlCallStateMaxListSize : DWORD; - dwDevCapFlags : DWORD; - dwMaxNumActiveCalls : DWORD; - dwAnswerMode : DWORD; - dwRingModes : DWORD; - dwLineStates : DWORD; - dwUUIAcceptSize : DWORD; - dwUUIAnswerSize : DWORD; - dwUUIMakeCallSize : DWORD; - dwUUIDropSize : DWORD; - dwUUISendUserUserInfoSize : DWORD; - dwUUICallInfoSize : DWORD; - MinDialParams : TLINEDIALPARAMS; - MaxDialParams : TLINEDIALPARAMS; - DefaultDialParams : TLINEDIALPARAMS; - dwNumTerminals : DWORD; - dwTerminalCapsSize : DWORD; - dwTerminalCapsOffset : DWORD; - dwTerminalTextEntrySize : DWORD; - dwTerminalTextSize : DWORD; - dwTerminalTextOffset : DWORD; - dwDevSpecificSize : DWORD; - dwDevSpecificOffset : DWORD; - - dwLineFeatures : DWORD; // TAPI v1.4 - - dwSettableDevStatus : DWORD; // TAPI v2.0 - dwDeviceClassesSize : DWORD; // TAPI v2.0 - dwDeviceClassesOffset : DWORD; // TAPI v2.0 - PermanentLineGuid : GUID; // TAPI v2.2 - dwAddressTypes : DWORD; // TAPI v3.0 - ProtocolGuid : GUID; // TAPI v3.0 - dwAvailableTracking : DWORD; // TAPI v3.0 - end; - TLINEDEVCAPS = linedevcaps_tag; - LPLINEDEVCAPS = ^linedevcaps_tag; - - linedevstatus_tag = record - dwTotalSize : DWORD; - dwNeededSize : DWORD; - dwUsedSize : DWORD; - dwNumOpens : DWORD; - dwOpenMediaModes : DWORD; - dwNumActiveCalls : DWORD; - dwNumOnHoldCalls : DWORD; - dwNumOnHoldPendCalls : DWORD; - dwLineFeatures : DWORD; - dwNumCallCompletions : DWORD; - dwRingMode : DWORD; - dwSignalLevel : DWORD; - dwBatteryLevel : DWORD; - dwRoamMode : DWORD; - dwDevStatusFlags : DWORD; - dwTerminalModesSize : DWORD; - dwTerminalModesOffset : DWORD; - dwDevSpecificSize : DWORD; - dwDevSpecificOffset : DWORD; - - dwAvailableMediaModes : DWORD; // TAPI v2.0 - dwAppInfoSize : DWORD; // TAPI v2.0 - dwAppInfoOffset : DWORD; // TAPI v2.0 - end; - LINEDEVSTATUS = linedevstatus_tag; - LPLINEDEVSTATUS = ^linedevstatus_tag; - - lineextensionid_tag = record - dwExtensionID0 : DWORD; - dwExtensionID1 : DWORD; - dwExtensionID2 : DWORD; - dwExtensionID3 : DWORD; - end; - TLINEEXTENSIONID = lineextensionid_tag; - LPLINEEXTENSIONID = ^lineextensionid_tag; - - lineforward_tag = record - dwForwardMode : DWORD; - dwCallerAddressSize : DWORD; - dwCallerAddressOffset : DWORD; - dwDestCountryCode : DWORD; - dwDestAddressSize : DWORD; - dwDestAddressOffset : DWORD; - end; - TLINEFORWARD = lineforward_tag; - LPLINEFORWARD = ^lineforward_tag; - - lineforwardlist_tag = record - dwTotalSize : DWORD; - dwNumEntries : DWORD; - ForwardList : array[0..0] of TLINEFORWARD; - end; - TLINEFORWARDLIST = lineforwardlist_tag; - LPLINEFORWARDLIST = ^lineforwardlist_tag; - - linegeneratetone_tag = record - dwFrequency : DWORD; - dwCadenceOn : DWORD; - dwCadenceOff : DWORD; - dwVolume : DWORD; - end; - TLINEGENERATETONE = linegeneratetone_tag; - LPLINEGENERATETONE = ^linegeneratetone_tag; - - lineinitializeexparams_tag = record - dwTotalSize : DWORD; // TAPI v2.0 - dwNeededSize : DWORD; // TAPI v2.0 - dwUsedSize : DWORD; // TAPI v2.0 - dwOptions : DWORD; // TAPI v2.0 - - Handles : record - case longint of - 0 : ( hEvent : HANDLE ); // TAPI v2.0 - 1 : ( hCompletionPort : HANDLE ); // TAPI v2.0 - end; - dwCompletionKey : DWORD; // TAPI v2.0 - end; - TLINEINITIALIZEEXPARAMS = lineinitializeexparams_tag; - LPLINEINITIALIZEEXPARAMS = ^lineinitializeexparams_tag; - - linelocationentry_tag = record - dwPermanentLocationID : DWORD; - dwLocationNameSize : DWORD; - dwLocationNameOffset : DWORD; - dwCountryCode : DWORD; - dwCityCodeSize : DWORD; - dwCityCodeOffset : DWORD; - dwPreferredCardID : DWORD; - - dwLocalAccessCodeSize : DWORD; // TAPI v1.4 - dwLocalAccessCodeOffset : DWORD; // TAPI v1.4 - dwLongDistanceAccessCodeSize : DWORD; // TAPI v1.4 - dwLongDistanceAccessCodeOffset : DWORD; // TAPI v1.4 - dwTollPrefixListSize : DWORD; // TAPI v1.4 - dwTollPrefixListOffset : DWORD; // TAPI v1.4 - dwCountryID : DWORD; // TAPI v1.4 - dwOptions : DWORD; // TAPI v1.4 - dwCancelCallWaitingSize : DWORD; // TAPI v1.4 - dwCancelCallWaitingOffset : DWORD; // TAPI v1.4 - end; - TLINELOCATIONENTRY = linelocationentry_tag; - LPLINELOCATIONENTRY = ^linelocationentry_tag; - - linemediacontrolcallstate_tag = record - dwCallStates : DWORD; - dwMediaControl : DWORD; - end; - TLINEMEDIACONTROLCALLSTATE = linemediacontrolcallstate_tag; - LPLINEMEDIACONTROLCALLSTATE = ^linemediacontrolcallstate_tag; - - linemediacontroldigit_tag = record - dwDigit : DWORD; - dwDigitModes : DWORD; - dwMediaControl : DWORD; - end; - TLINEMEDIACONTROLDIGIT = linemediacontroldigit_tag; - LPLINEMEDIACONTROLDIGIT = ^linemediacontroldigit_tag; - - linemediacontrolmedia_tag = record - dwMediaModes : DWORD; - dwDuration : DWORD; - dwMediaControl : DWORD; - end; - TLINEMEDIACONTROLMEDIA = linemediacontrolmedia_tag; - LPLINEMEDIACONTROLMEDIA = ^linemediacontrolmedia_tag; - - linemediacontroltone_tag = record - dwAppSpecific : DWORD; - dwDuration : DWORD; - dwFrequency1 : DWORD; - dwFrequency2 : DWORD; - dwFrequency3 : DWORD; - dwMediaControl : DWORD; - end; - TLINEMEDIACONTROLTONE = linemediacontroltone_tag; - LPLINEMEDIACONTROLTONE = ^linemediacontroltone_tag; - - linemessage_tag = record - hDevice : DWORD; // TAPI v2.0 - dwMessageID : DWORD; // TAPI v2.0 - dwCallbackInstance : DWORD; // TAPI v2.0 - dwParam1 : DWORD; // TAPI v2.0 - dwParam2 : DWORD; // TAPI v2.0 - dwParam3 : DWORD; // TAPI v2.0 - end; - TLINEMESSAGE = linemessage_tag; - LPLINEMESSAGE = ^linemessage_tag; - - linemonitortone_tag = record - dwAppSpecific : DWORD; - dwDuration : DWORD; - dwFrequency1 : DWORD; - dwFrequency2 : DWORD; - dwFrequency3 : DWORD; - end; - TLINEMONITORTONE = linemonitortone_tag; - LPLINEMONITORTONE = ^linemonitortone_tag; - - lineproviderentry_tag = record - dwPermanentProviderID : DWORD; // TAPI v1.4 - dwProviderFilenameSize : DWORD; // TAPI v1.4 - dwProviderFilenameOffset : DWORD; // TAPI v1.4 - end; - TLINEPROVIDERENTRY = lineproviderentry_tag; - LPLINEPROVIDERENTRY = ^lineproviderentry_tag; - - lineproviderlist_tag = record - dwTotalSize : DWORD; // TAPI v1.4 - dwNeededSize : DWORD; // TAPI v1.4 - dwUsedSize : DWORD; // TAPI v1.4 - dwNumProviders : DWORD; // TAPI v1.4 - dwProviderListSize : DWORD; // TAPI v1.4 - dwProviderListOffset : DWORD; // TAPI v1.4 - end; - TLINEPROVIDERLIST = lineproviderlist_tag; - LPLINEPROVIDERLIST = ^lineproviderlist_tag; - - linetermcaps_tag = record - dwTermDev : DWORD; - dwTermModes : DWORD; - dwTermSharing : DWORD; - end; - TLINETERMCAPS = linetermcaps_tag; - LPLINETERMCAPS = ^linetermcaps_tag; - - linetranslatecaps_tag = record - dwTotalSize : DWORD; - dwNeededSize : DWORD; - dwUsedSize : DWORD; - dwNumLocations : DWORD; - dwLocationListSize : DWORD; - dwLocationListOffset : DWORD; - dwCurrentLocationID : DWORD; - dwNumCards : DWORD; - dwCardListSize : DWORD; - dwCardListOffset : DWORD; - dwCurrentPreferredCardID : DWORD; - end; - TLINETRANSLATECAPS = linetranslatecaps_tag; - LPLINETRANSLATECAPS = ^linetranslatecaps_tag; - - linetranslateoutput_tag = record - dwTotalSize : DWORD; - dwNeededSize : DWORD; - dwUsedSize : DWORD; - dwDialableStringSize : DWORD; - dwDialableStringOffset : DWORD; - dwDisplayableStringSize : DWORD; - dwDisplayableStringOffset : DWORD; - dwCurrentCountry : DWORD; - dwDestCountry : DWORD; - dwTranslateResults : DWORD; - end; - TLINETRANSLATEOUTPUT = linetranslateoutput_tag; - LPLINETRANSLATEOUTPUT = ^linetranslateoutput_tag; - - phonebuttoninfo_tag = record - dwTotalSize : DWORD; - dwNeededSize : DWORD; - dwUsedSize : DWORD; - dwButtonMode : DWORD; - dwButtonFunction : DWORD; - dwButtonTextSize : DWORD; - dwButtonTextOffset : DWORD; - dwDevSpecificSize : DWORD; - dwDevSpecificOffset : DWORD; - - dwButtonState : DWORD; // TAPI v1.4 - end; - TPHONEBUTTONINFO = phonebuttoninfo_tag; - LPPHONEBUTTONINFO = ^phonebuttoninfo_tag; - - phonecaps_tag = record - dwTotalSize : DWORD; - dwNeededSize : DWORD; - dwUsedSize : DWORD; - dwProviderInfoSize : DWORD; - dwProviderInfoOffset : DWORD; - dwPhoneInfoSize : DWORD; - dwPhoneInfoOffset : DWORD; - dwPermanentPhoneID : DWORD; - dwPhoneNameSize : DWORD; - dwPhoneNameOffset : DWORD; - dwStringFormat : DWORD; - dwPhoneStates : DWORD; - dwHookSwitchDevs : DWORD; - dwHandsetHookSwitchModes : DWORD; - dwSpeakerHookSwitchModes : DWORD; - dwHeadsetHookSwitchModes : DWORD; - dwVolumeFlags : DWORD; - dwGainFlags : DWORD; - dwDisplayNumRows : DWORD; - dwDisplayNumColumns : DWORD; - dwNumRingModes : DWORD; - dwNumButtonLamps : DWORD; - dwButtonModesSize : DWORD; - dwButtonModesOffset : DWORD; - dwButtonFunctionsSize : DWORD; - dwButtonFunctionsOffset : DWORD; - dwLampModesSize : DWORD; - dwLampModesOffset : DWORD; - dwNumSetData : DWORD; - dwSetDataSize : DWORD; - dwSetDataOffset : DWORD; - dwNumGetData : DWORD; - dwGetDataSize : DWORD; - dwGetDataOffset : DWORD; - dwDevSpecificSize : DWORD; - dwDevSpecificOffset : DWORD; - dwDeviceClassesSize : DWORD; // TAPI v2.0 - dwDeviceClassesOffset : DWORD; // TAPI v2.0 - dwPhoneFeatures : DWORD; // TAPI v2.0 - dwSettableHandsetHookSwitchModes : DWORD; // TAPI v2.0 - dwSettableSpeakerHookSwitchModes : DWORD; // TAPI v2.0 - dwSettableHeadsetHookSwitchModes : DWORD; // TAPI v2.0 - dwMonitoredHandsetHookSwitchModes : DWORD; // TAPI v2.0 - dwMonitoredSpeakerHookSwitchModes : DWORD; // TAPI v2.0 - dwMonitoredHeadsetHookSwitchModes : DWORD; // TAPI v2.0 - PermanentPhoneGuid : GUID; // TAPI v2.2 - end; - TPHONECAPS = phonecaps_tag; - LPPHONECAPS = ^phonecaps_tag; - - phoneextensionid_tag = record - dwExtensionID0 : DWORD; - dwExtensionID1 : DWORD; - dwExtensionID2 : DWORD; - dwExtensionID3 : DWORD; - end; - TPHONEEXTENSIONID = phoneextensionid_tag; - LPPHONEEXTENSIONID = ^phoneextensionid_tag; - - phoneinitializeexparams_tag = record - dwTotalSize : DWORD; // TAPI v2.0 - dwNeededSize : DWORD; // TAPI v2.0 - dwUsedSize : DWORD; // TAPI v2.0 - dwOptions : DWORD; // TAPI v2.0 - - Handles : record - case longint of - 0 : ( hEvent : HANDLE ); // TAPI v2.0 - 1 : ( hCompletionPort : HANDLE ); // TAPI v2.0 - end; - - dwCompletionKey : DWORD; // TAPI v2.0 - end; - TPHONEINITIALIZEEXPARAMS = phoneinitializeexparams_tag; - LPPHONEINITIALIZEEXPARAMS = ^phoneinitializeexparams_tag; - - phonemessage_tag = record - hDevice : DWORD; // TAPI v2.0 - dwMessageID : DWORD; // TAPI v2.0 - dwCallbackInstance : DWORD; // TAPI v2.0 - dwParam1 : DWORD; // TAPI v2.0 - dwParam2 : DWORD; // TAPI v2.0 - dwParam3 : DWORD; // TAPI v2.0 - end; - TPHONEMESSAGE = phonemessage_tag; - LPPHONEMESSAGE = ^phonemessage_tag; - - phonestatus_tag = record - dwTotalSize : DWORD; - dwNeededSize : DWORD; - dwUsedSize : DWORD; - dwStatusFlags : DWORD; - dwNumOwners : DWORD; - dwNumMonitors : DWORD; - dwRingMode : DWORD; - dwRingVolume : DWORD; - dwHandsetHookSwitchMode : DWORD; - dwHandsetVolume : DWORD; - dwHandsetGain : DWORD; - dwSpeakerHookSwitchMode : DWORD; - dwSpeakerVolume : DWORD; - dwSpeakerGain : DWORD; - dwHeadsetHookSwitchMode : DWORD; - dwHeadsetVolume : DWORD; - dwHeadsetGain : DWORD; - dwDisplaySize : DWORD; - dwDisplayOffset : DWORD; - dwLampModesSize : DWORD; - dwLampModesOffset : DWORD; - dwOwnerNameSize : DWORD; - dwOwnerNameOffset : DWORD; - dwDevSpecificSize : DWORD; - dwDevSpecificOffset : DWORD; - - dwPhoneFeatures : DWORD; // TAPI v2.0 - end; - TPHONESTATUS = phonestatus_tag; - LPPHONESTATUS = ^phonestatus_tag; - - varstring_tag = record - dwTotalSize : DWORD; - dwNeededSize : DWORD; - dwUsedSize : DWORD; - dwStringFormat : DWORD; - dwStringSize : DWORD; - dwStringOffset : DWORD; - end; - TVARSTRING = varstring_tag; - LPVARSTRING = ^varstring_tag; - -//***************************************************************************** -// functions -//***************************************************************************** - -function lineAccept(hCall:HCALL; lpsUserUserInfo:LPCSTR; dwSize:DWORD):LONG;external KernelDLL name 'lineAccept'; -function lineAddProvider(lpszProviderFilename:LPCWSTR; hwndOwner:HWND; - lpdwPermanentProviderID:LPDWORD):LONG;external KernelDLL name 'lineAddProvider'; -function lineAddToConference(hConfCall:HCALL; hConsultCall:HCALL):LONG;external KernelDLL name 'lineAddToConference'; -function lineAnswer(hCall:HCALL; lpsUserUserInfo:LPCSTR; dwSize:DWORD):LONG;external KernelDLL name 'lineAnswer'; -function lineBlindTransfer(hCall:HCALL; lpszDestAddressW:LPCWSTR; - dwCountryCode:DWORD):LONG;external KernelDLL name 'lineBlindTransfer'; -function lineClose(hLine:HLINE):LONG;external KernelDLL name 'lineClose'; -function lineCompleteTransfer(hCall:HCALL; hConsultCall:HCALL; lphConfCall:LPHCALL; - dwTransferMode:DWORD):LONG;external KernelDLL name 'lineCompleteTransfer'; -function lineConfigDialogEdit(dwDeviceID:DWORD; hwndOwner:HWND; lpszDeviceClass:LPCWSTR; lpDeviceConfigIn:LPVOID; - dwSize:DWORD; lpDeviceConfigOut:LPVARSTRING):LONG;external KernelDLL name 'lineConfigDialogEdit'; -function lineDeallocateCall(hCall:HCALL):LONG;external KernelDLL name 'lineDeallocateCall'; -function lineDevSpecific(hLine:HLINE; dwAddressID:DWORD; hCall:HCALL; lpParams:LPVOID; - dwSize:DWORD):LONG;external KernelDLL name 'lineDevSpecific'; -function lineDial(hCall:HCALL; lpszDestAddress:LPCWSTR; dwCountryCode:DWORD):LONG;external KernelDLL name 'lineDial'; -function lineDrop(hCall:HCALL; lpsUserUserInfo:LPCSTR; dwSize:DWORD):LONG;external KernelDLL name 'lineDrop'; -function lineForward(hLine:HLINE; bAllAddresses:DWORD; dwAddressID:DWORD; lpForwardList:LPLINEFORWARDLIST; - dwNumRingsNoAnswer:DWORD; lphConsultCall:LPHCALL; lpCallParams:LPLINECALLPARAMS):LONG;external KernelDLL name 'lineForward'; -function lineGenerateDigits(hCall:HCALL; dwDigitMode:DWORD; lpszDigits:LPCWSTR; dwDuration:DWORD):LONG; - external KernelDLL name 'lineGenerateDigits'; -function lineGenerateTone(hCall:HCALL; dwToneMode:DWORD; dwDuration:DWORD; dwNumTones:DWORD; lpTones:LPLINEGENERATETONE):LONG; - external KernelDLL name 'lineGenerateTone'; -function lineGetAddressCaps(hLineApp:HLINEAPP; dwDeviceID:DWORD; dwAddressID:DWORD; dwAPIVersion:DWORD; - dwExtVersion:DWORD; lpAddressCaps:LPLINEADDRESSCAPS):LONG;external KernelDLL name 'lineGetAddressCaps'; -function lineGetAddressID(hLine:HLINE; lpdwAddressID:LPDWORD; dwAddressMode:DWORD; lpsAddress:LPCWSTR; - dwSize:DWORD):LONG;external KernelDLL name 'lineGetAddressID'; -function tAddressStatus(hLine:HLINE; dwAddressID:DWORD; lpAddressStatus:LPLINEADDRESSSTATUS):LONG; - external KernelDLL name 'lineGetAddressStatus'; -function lineGetAppPriority(lpszAppFilename:LPCWSTR; dwMediaMode:DWORD; lpExtensionID:LPLINEEXTENSIONID; - dwRequestMode:DWORD; lpExtensionName:LPVARSTRING; lpdwPriority:LPDWORD):LONG;external KernelDLL name 'lineGetAppPriority'; { TAPI v1.4 } -function lineGetCallInfo(hCall:HCALL; lpCallInfo:LPLINECALLINFO):LONG;external KernelDLL name 'lineGetCallInfo'; -function lineGetCallStatus(hCall:HCALL; lpCallStatus:LPLINECALLSTATUS):LONG;external KernelDLL name 'lineGetCallStatus'; -function lineGetConfRelatedCalls(hCall:HCALL; lpCallList:LPLINECALLLIST):LONG;external KernelDLL name 'lineGetConfRelatedCalls'; -function lineGetDevCaps(hLineApp:HLINEAPP; dwDeviceID:DWORD; dwAPIVersion:DWORD; dwExtVersion:DWORD; - lpLineDevCaps:LPLINEDEVCAPS):LONG;external KernelDLL name 'lineGetDevCaps'; -function lineGetDevConfig(dwDeviceID:DWORD; lpDeviceConfig:LPVARSTRING; lpszDeviceClass:LPCWSTR):LONG; - external KernelDLL name 'lineGetDevConfig'; -function lineGetNewCalls(hLine:HLINE; dwAddressID:DWORD; dwSelect:DWORD; lpCallList:LPLINECALLLIST):LONG; - external KernelDLL name 'lineGetNewCalls'; -function lineGetIcon(dwDeviceID:DWORD; lpszDeviceClass:LPCWSTR; lphIcon:LPHICON):LONG;external KernelDLL name 'lineGetIcon'; -function lineGetID(hLine:HLINE; dwAddressID:DWORD; hCall:HCALL; dwSelect:DWORD; lpDeviceID:LPVARSTRING; - lpszDeviceClass:LPCWSTR):LONG;external KernelDLL name 'lineGetID'; -function lineGetLineDevStatus(hLine:HLINE; lpLineDevStatus:LPLINEDEVSTATUS):LONG;external KernelDLL name 'lineGetLineDevStatus'; -function lineGetMessage(hLineApp:HLINEAPP; lpMessage:LPLINEMESSAGE; dwTimeout:DWORD):LONG;external KernelDLL name 'lineGetMessage'; -function lineGetNumRings(hLine:HLINE; dwAddressID:DWORD; lpdwNumRings:LPDWORD):LONG;external KernelDLL name 'lineGetNumRings'; -function lineGetProviderList(dwAPIVersion:DWORD; lpProviderList:LPLINEPROVIDERLIST):LONG; - external KernelDLL name 'lineGetProviderList'; { TAPI v1.4 } -function lineGetStatusMessages(hLine:HLINE; lpdwLineStates:LPDWORD; lpdwAddressStates:LPDWORD):LONG; - external KernelDLL name 'lineGetStatusMessages'; -function lineGetTranslateCaps(hLineApp:HLINEAPP; dwAPIVersion:DWORD; lpTranslateCaps:LPLINETRANSLATECAPS):LONG; - external KernelDLL name 'lineGetTranslateCaps'; -function lineHandoff(hCall:HCALL; lpszFileName:LPCWSTR; dwMediaMode:DWORD):LONG;external KernelDLL name 'lineHandoff'; -function lineHold(hCall:HCALL):LONG;external KernelDLL name 'lineHold'; -function lineInitialize(lphLineApp:LPHLINEAPP; hInstance:HINST; lpfnCallback:LINECALLBACK; lpszAppName:LPCWSTR; - lpdwNumDevs:LPDWORD):LONG;external KernelDLL name 'lineInitialize'; -function lineInitializeEx(lphLineApp:LPHLINEAPP; hInstance:HINST; lpfnCallback:LINECALLBACK; lpszFriendlyAppName:LPCWSTR; - lpdwNumDevs:LPDWORD; lpdwAPIVersion:LPDWORD; lpLineInitializeExParams:LPLINEINITIALIZEEXPARAMS):LONG; - external KernelDLL name 'lineInitializeEx'; -function lineMakeCall(hLine:HLINE; lphCall:LPHCALL; lpszDestAddress:LPCWSTR; dwCountryCode:DWORD; - lpCallParams:LPLINECALLPARAMS):LONG;external KernelDLL name 'lineMakeCall'; -function lineMonitorDigits(hCall:HCALL; dwDigitModes:DWORD):LONG;external KernelDLL name 'lineMonitorDigits'; -function lineMonitorMedia(hCall:HCALL; dwMediaModes:DWORD):LONG;external KernelDLL name 'lineMonitorMedia'; -function lineNegotiateAPIVersion(hLineApp:HLINEAPP; dwDeviceID:DWORD; dwAPILowVersion:DWORD; dwAPIHighVersion:DWORD; - lpdwAPIVersion:LPDWORD; lpExtensionID:LPLINEEXTENSIONID):LONG;external KernelDLL name 'lineNegotiateAPIVersion'; -function lineNegotiateExtVersion(hLineApp:HLINEAPP; dwDeviceID:DWORD; dwAPIVersion:DWORD; dwExtLowVersion:DWORD; - dwExtHighVersion:DWORD; lpdwExtVersion:LPDWORD):LONG;external KernelDLL name 'lineNegotiateExtVersion'; -function lineOpen(hLineApp:HLINEAPP; dwDeviceID:DWORD; lphLine:LPHLINE; dwAPIVersion:DWORD; dwExtVersion:DWORD; - dwCallbackInstance:DWORD; dwPrivileges:DWORD; dwMediaModes:DWORD; lpCallParams:LPLINECALLPARAMS):LONG; - external KernelDLL name 'lineOpen'; -function linePickup(hLine:HLINE; dwAddressID:DWORD; lphCall:LPHCALL; lpszDestAddress:LPCWSTR; lpszGroupID:LPCWSTR):LONG; - external KernelDLL name 'linePickup'; -function linePrepareAddToConference(hConfCall:HCALL; lphConsultCall:LPHCALL; lpCallParams:LPLINECALLPARAMS):LONG; - external KernelDLL name 'linePrepareAddToConference'; -function lineRedirect(hCall:HCALL; lpszDestAddress:LPCWSTR; dwCountryCode:DWORD):LONG;external KernelDLL name 'lineRedirect'; -function lineReleaseUserUserInfo(hCall:HCALL):LONG;external KernelDLL name 'lineReleaseUserUserInfo'; { TAPI v1.4 } -function lineRemoveFromConference(hCall:HCALL):LONG;external KernelDLL name 'lineRemoveFromConference'; -function lineSendUserUserInfo(hCall:HCALL; lpsUserUserInfo:LPCSTR; dwSize:DWORD):LONG;external KernelDLL name 'lineSendUserUserInfo'; -function lineSetAppPriority(lpszAppFilename:LPCWSTR; dwMediaMode:DWORD; lpExtensionID:LPLINEEXTENSIONID; dwRequestMode:DWORD; - lpszExtensionName:LPCWSTR; dwPriority:DWORD):LONG;external KernelDLL name 'lineSetAppPriority'; { TAPI v1.4 } -function lineSetCallParams(hCall:HCALL; dwBearerMode:DWORD; dwMinRate:DWORD; dwMaxRate:DWORD; lpDialParams:LPLINEDIALPARAMS):LONG; - external KernelDLL name 'lineSetCallParams'; -function lineSetCallPrivilege(hCall:HCALL; dwCallPrivilege:DWORD):LONG;external KernelDLL name 'lineSetCallPrivilege'; -function lineSetCurrentLocation(hLineApp:HLINEAPP; dwLocation:DWORD):LONG;external KernelDLL name 'lineSetCurrentLocation'; -function lineSetDevConfig(dwDeviceID:DWORD; lpDeviceConfig:LPVOID; dwSize:DWORD; lpszDeviceClass:LPCWSTR):LONG; - external KernelDLL name 'lineSetDevConfig'; -function lineSetMediaMode(hCall:HCALL; dwMediaModes:DWORD):LONG;external KernelDLL name 'lineSetMediaMode'; -function lineSetNumRings(hLine:HLINE; dwAddressID:DWORD; dwNumRings:DWORD):LONG;external KernelDLL name 'lineSetNumRings'; -function lineSetStatusMessages(hLine:HLINE; dwLineStates:DWORD; dwAddressStates:DWORD):LONG; - external KernelDLL name 'lineSetStatusMessages'; -function lineSetTerminal(hLine:HLINE; dwAddressID:DWORD; hCall:HCALL; dwSelect:DWORD; dwTerminalModes:DWORD; - dwTerminalID:DWORD; bEnable:DWORD):LONG;external KernelDLL name 'lineSetTerminal'; -function lineSetTollList(hLineApp:HLINEAPP; dwDeviceID:DWORD; lpszAddressIn:LPCWSTR; dwTollListOption:DWORD):LONG; - external KernelDLL name 'lineSetTollList'; -function lineSetupConference(hCall:HCALL; hLine:HLINE; lphConfCall:LPHCALL; lphConsultCall:LPHCALL; dwNumParties:DWORD; - lpCallParams:LPLINECALLPARAMS):LONG;external KernelDLL name 'lineSetupConference'; -function lineSetupTransfer(hCall:HCALL; lphConsultCall:LPHCALL; lpCallParams:LPLINECALLPARAMS):LONG; - external KernelDLL name 'lineSetupTransfer'; -function lineShutdown(hLineApp:HLINEAPP):LONG;external KernelDLL name 'lineShutdown'; -function lineSwapHold(hActiveCall:HCALL; hHeldCall:HCALL):LONG;external KernelDLL name 'lineSwapHold'; -function lineTranslateAddress(hLineApp:HLINEAPP; dwDeviceID:DWORD; dwAPIVersion:DWORD; lpszAddressIn:LPCWSTR; dwCard:DWORD; - dwTranslateOptions:DWORD; lpTranslateOutput:LPLINETRANSLATEOUTPUT):LONG;external KernelDLL name 'lineTranslateAddress'; -function lineTranslateDialog(hLineApp:HLINEAPP; dwDeviceID:DWORD; dwAPIVersion:DWORD; hwndOwner:HWND; - lpszAddressIn:LPCWSTR):LONG;external KernelDLL name 'lineTranslateDialog'; { TAPI v1.4 } -function lineUnhold(hCall:HCALL):LONG;external KernelDLL name 'lineUnhold'; - -function phoneClose(hPhone:HPHONE):LONG;external KernelDLL name 'phoneClose'; -function phoneConfigDialog(dwDeviceID:DWORD; hwndOwner:HWND; lpszDeviceClass:LPCWSTR):LONG;external KernelDLL name 'phoneConfigDialog'; -function phoneDevSpecific(hPhone:HPHONE; lpParams:LPVOID; dwSize:DWORD):LONG;external KernelDLL name 'phoneDevSpecific'; -function phoneGetDevCaps(hPhoneApp:HPHONEAPP; dwDeviceID:DWORD; dwAPIVersion:DWORD; dwExtVersion:DWORD; - lpPhoneCaps:LPPHONECAPS):LONG;external KernelDLL name 'phoneGetDevCaps'; -function phoneGetGain(hPhone:HPHONE; dwHookSwitchDev:DWORD; lpdwGain:LPDWORD):LONG;external KernelDLL name 'phoneGetGain'; -function phoneGetHookSwitch(hPhone:HPHONE; lpdwHookSwitchDevs:LPDWORD):LONG;external KernelDLL name 'phoneGetHookSwitch'; -function phoneGetIcon(dwDeviceID:DWORD; lpszDeviceClass:LPCWSTR; lphIcon:LPHICON):LONG;external KernelDLL name 'phoneGetIcon'; -function phoneGetID(hPhone:HPHONE; lpDeviceID:LPVARSTRING; lpszDeviceClass:LPCWSTR):LONG;external KernelDLL name 'phoneGetID'; -function phoneGetMessage(hPhoneApp:HPHONEAPP; lpMessage:LPPHONEMESSAGE; dwTimeout:DWORD):LONG;external KernelDLL name 'phoneGetMessage'; -function phoneGetRing(hPhone:HPHONE; lpdwRingMode:LPDWORD; lpdwVolume:LPDWORD):LONG;external KernelDLL name 'phoneGetRing'; -function phoneGetStatus(hPhone:HPHONE; lpPhoneStatus:LPPHONESTATUS):LONG;external KernelDLL name 'phoneGetStatus'; -function phoneGetStatusMessages(hPhone:HPHONE; lpdwPhoneStates:LPDWORD; lpdwButtonModes:LPDWORD; lpdwButtonStates:LPDWORD):LONG; - external KernelDLL name 'phoneGetStatusMessages'; -function phoneGetVolume(hPhone:HPHONE; dwHookSwitchDev:DWORD; lpdwVolume:LPDWORD):LONG;external KernelDLL name 'phoneGetVolume'; -function phoneInitializeEx(lphPhoneApp:LPHPHONEAPP; hInstance:HINST; lpfnCallback:PHONECALLBACK; lpszFriendlyAppName:LPCWSTR; - lpdwNumDevs:LPDWORD; lpdwAPIVersion:LPDWORD; lpPhoneInitializeExParams:LPPHONEINITIALIZEEXPARAMS):LONG; - external KernelDLL name 'phoneInitializeEx'; -function phoneNegotiateAPIVersion(hPhoneApp:HPHONEAPP; dwDeviceID:DWORD; dwAPILowVersion:DWORD; dwAPIHighVersion:DWORD; - lpdwAPIVersion:LPDWORD; lpExtensionID:LPPHONEEXTENSIONID):LONG;external KernelDLL name 'phoneNegotiateAPIVersion'; -function phoneNegotiateExtVersion(hPhoneApp:HPHONEAPP; dwDeviceID:DWORD; dwAPIVersion:DWORD; dwExtLowVersion:DWORD; - dwExtHighVersion:DWORD; lpdwExtVersion:LPDWORD):LONG;external KernelDLL name 'phoneNegotiateExtVersion'; -function phoneOpen(hPhoneApp:HPHONEAPP; dwDeviceID:DWORD; lphPhone:LPHPHONE; dwAPIVersion:DWORD; dwExtVersion:DWORD; - dwCallbackInstance:DWORD; dwPrivilege:DWORD):LONG;external KernelDLL name 'phoneOpen'; -function phoneSetGain(hPhone:HPHONE; dwHookSwitchDev:DWORD; dwGain:DWORD):LONG;external KernelDLL name 'phoneSetGain'; -function phoneSetHookSwitch(hPhone:HPHONE; dwHookSwitchDevs:DWORD; dwHookSwitchMode:DWORD):LONG; - external KernelDLL name 'phoneSetHookSwitch'; -function phoneSetRing(hPhone:HPHONE; dwRingMode:DWORD; dwVolume:DWORD):LONG;external KernelDLL name 'phoneSetRing'; -function phoneSetStatusMessages(hPhone:HPHONE; dwPhoneStates:DWORD; dwButtonModes:DWORD; dwButtonStates:DWORD):LONG; - external KernelDLL name 'phoneSetStatusMessages'; -function phoneSetVolume(hPhone:HPHONE; dwHookSwitchDev:DWORD; dwVolume:DWORD):LONG;external KernelDLL name 'phoneSetVolume'; -function phoneShutdown(hPhoneApp:HPHONEAPP):LONG;external KernelDLL name 'phoneShutdown'; - -function TAPIERROR_FORMATMESSAGE(const AErrCode: Longword): Longword; // C Macros conversion, may be wrong - -{$endif read_interface} - -{$ifdef read_implementation} - -function TAPIERROR_FORMATMESSAGE(const AErrCode: Longword): Longword; -begin - if AErrCode>$FFFF0000 then Exit(AErrCode and $0000FFFF); - if (AErrCode and $10000000)<>0 then Exit(AErrCode-$90000000+$F000); - Exit(AErrCode-$80000000+$E000); -end; - -{$endif read_implementation} +{ + This file is part of the Free Pascal run time library. + Copyright (c) 2007 Free Pascal development team. + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} + +{ Declarations for tapi WinCE API, note than on WinCE tapi functions originally + based in coredll.dll +} + +{ this port based on Windows Mobile 5 Smartphone Edition SDK + contact S0vNark0m for more information snk_post@mail.ru (en, ru) +} + +{$ifdef read_interface} + +//***************************************************************************** +// consts +//***************************************************************************** + +const + + TAPI_CURRENT_VERSION = $00020000; + + { Messages for Phones and Lines } + + LINE_ADDRESSSTATE = 0; + LINE_CALLINFO = 1; + LINE_CALLSTATE = 2; + LINE_CLOSE = 3; + LINE_DEVSPECIFIC = 4; + LINE_DEVSPECIFICFEATURE = 5; + LINE_GATHERDIGITS = 6; + LINE_GENERATE = 7; + LINE_LINEDEVSTATE = 8; + LINE_MONITORDIGITS = 9; + LINE_MONITORMEDIA = 10; + LINE_MONITORTONE = 11; + LINE_REPLY = 12; + LINE_REQUEST = 13; + PHONE_BUTTON = 14; + PHONE_CLOSE = 15; + PHONE_DEVSPECIFIC = 16; + PHONE_REPLY = 17; + PHONE_STATE = 18; + LINE_CREATE = 19; { TAPI v1.4 } + PHONE_CREATE = 20; { TAPI v1.4 } + + LINE_AGENTSPECIFIC = 21; { TAPI v2.0 } + LINE_AGENTSTATUS = 22; { TAPI v2.0 } + LINE_APPNEWCALL = 23; { TAPI v2.0 } + LINE_PROXYREQUEST = 24; { TAPI v2.0 } + LINE_REMOVE = 25; { TAPI v2.0 } + PHONE_REMOVE = 26; { TAPI v2.0 } + + INITIALIZE_NEGOTIATION = $FFFFFFFF; + + LINEADDRCAPFLAGS_FWDNUMRINGS = $00000001; + LINEADDRCAPFLAGS_PICKUPGROUPID = $00000002; + LINEADDRCAPFLAGS_SECURE = $00000004; + LINEADDRCAPFLAGS_BLOCKIDDEFAULT = $00000008; + LINEADDRCAPFLAGS_BLOCKIDOVERRIDE = $00000010; + LINEADDRCAPFLAGS_DIALED = $00000020; + LINEADDRCAPFLAGS_ORIGOFFHOOK = $00000040; + LINEADDRCAPFLAGS_DESTOFFHOOK = $00000080; + LINEADDRCAPFLAGS_FWDCONSULT = $00000100; + LINEADDRCAPFLAGS_SETUPCONFNULL = $00000200; + LINEADDRCAPFLAGS_AUTORECONNECT = $00000400; + LINEADDRCAPFLAGS_COMPLETIONID = $00000800; + LINEADDRCAPFLAGS_TRANSFERHELD = $00001000; + LINEADDRCAPFLAGS_TRANSFERMAKE = $00002000; + LINEADDRCAPFLAGS_CONFERENCEHELD = $00004000; + LINEADDRCAPFLAGS_CONFERENCEMAKE = $00008000; + LINEADDRCAPFLAGS_PARTIALDIAL = $00010000; + LINEADDRCAPFLAGS_FWDSTATUSVALID = $00020000; + LINEADDRCAPFLAGS_FWDINTEXTADDR = $00040000; + LINEADDRCAPFLAGS_FWDBUSYNAADDR = $00080000; + LINEADDRCAPFLAGS_ACCEPTTOALERT = $00100000; + LINEADDRCAPFLAGS_CONFDROP = $00200000; + LINEADDRCAPFLAGS_PICKUPCALLWAIT = $00400000; + LINEADDRCAPFLAGS_PREDICTIVEDIALER = $00800000; { TAPI v2.0 } + LINEADDRCAPFLAGS_QUEUE = $01000000; { TAPI v2.0 } + LINEADDRCAPFLAGS_ROUTEPOINT = $02000000; { TAPI v2.0 } + LINEADDRCAPFLAGS_HOLDMAKESNEW = $04000000; { TAPI v2.0 } + LINEADDRCAPFLAGS_NOINTERNALCALLS = $08000000; { TAPI v2.0 } + LINEADDRCAPFLAGS_NOEXTERNALCALLS = $10000000; { TAPI v2.0 } + LINEADDRCAPFLAGS_SETCALLINGID = $20000000; { TAPI v2.0 } + + LINEADDRESSMODE_ADDRESSID = $00000001; + LINEADDRESSMODE_DIALABLEADDR = $00000002; + + LINEADDRESSSHARING_PRIVATE = $00000001; + LINEADDRESSSHARING_BRIDGEDEXCL = $00000002; + LINEADDRESSSHARING_BRIDGEDNEW = $00000004; + LINEADDRESSSHARING_BRIDGEDSHARED = $00000008; + LINEADDRESSSHARING_MONITORED = $00000010; + + LINEADDRESSSTATE_OTHER = $00000001; + LINEADDRESSSTATE_DEVSPECIFIC = $00000002; + LINEADDRESSSTATE_INUSEZERO = $00000004; + LINEADDRESSSTATE_INUSEONE = $00000008; + LINEADDRESSSTATE_INUSEMANY = $00000010; + LINEADDRESSSTATE_NUMCALLS = $00000020; + LINEADDRESSSTATE_FORWARD = $00000040; + LINEADDRESSSTATE_TERMINALS = $00000080; + LINEADDRESSSTATE_CAPSCHANGE = $00000100; { TAPI v1.4 } + + LINEADDRESSTYPE_PHONENUMBER = $00000001; + LINEADDRESSTYPE_SDP = $00000002; + LINEADDRESSTYPE_EMAILNAME = $00000004; + LINEADDRESSTYPE_DOMAINNAME = $00000008; + LINEADDRESSTYPE_IPADDRESS = $00000010; + + LINEADDRFEATURE_FORWARD = $00000001; + LINEADDRFEATURE_MAKECALL = $00000002; + LINEADDRFEATURE_PICKUP = $00000004; + LINEADDRFEATURE_SETMEDIACONTROL = $00000008; + LINEADDRFEATURE_SETTERMINAL = $00000010; + LINEADDRFEATURE_SETUPCONF = $00000020; + LINEADDRFEATURE_UNCOMPLETECALL = $00000040; + LINEADDRFEATURE_UNPARK = $00000080; + LINEADDRFEATURE_PICKUPHELD = $00000100; { TAPI v2.0 } + LINEADDRFEATURE_PICKUPGROUP = $00000200; { TAPI v2.0 } + LINEADDRFEATURE_PICKUPDIRECT = $00000400; { TAPI v2.0 } + LINEADDRFEATURE_PICKUPWAITING = $00000800; { TAPI v2.0 } + LINEADDRFEATURE_FORWARDFWD = $00001000; { TAPI v2.0 } + LINEADDRFEATURE_FORWARDDND = $00002000; { TAPI v2.0 } + + LINEAGENTFEATURE_SETAGENTGROUP = $00000001; { TAPI v2.0 } + LINEAGENTFEATURE_SETAGENTSTATE = $00000002; { TAPI v2.0 } + LINEAGENTFEATURE_SETAGENTACTIVITY = $00000004; { TAPI v2.0 } + LINEAGENTFEATURE_AGENTSPECIFIC = $00000008; { TAPI v2.0 } + LINEAGENTFEATURE_GETAGENTACTIVITYLIST = $00000010; { TAPI v2.0 } + LINEAGENTFEATURE_GETAGENTGROUP = $00000020; { TAPI v2.0 } + + LINEAGENTSTATE_LOGGEDOFF = $00000001; { TAPI v2.0 } + LINEAGENTSTATE_NOTREADY = $00000002; { TAPI v2.0 } + LINEAGENTSTATE_READY = $00000004; { TAPI v2.0 } + LINEAGENTSTATE_BUSYACD = $00000008; { TAPI v2.0 } + LINEAGENTSTATE_BUSYINCOMING = $00000010; { TAPI v2.0 } + LINEAGENTSTATE_BUSYOUTBOUND = $00000020; { TAPI v2.0 } + LINEAGENTSTATE_BUSYOTHER = $00000040; { TAPI v2.0 } + LINEAGENTSTATE_WORKINGAFTERCALL = $00000080; { TAPI v2.0 } + LINEAGENTSTATE_UNKNOWN = $00000100; { TAPI v2.0 } + LINEAGENTSTATE_UNAVAIL = $00000200; { TAPI v2.0 } + + LINEAGENTSTATUS_GROUP = $00000001; { TAPI v2.0 } + LINEAGENTSTATUS_STATE = $00000002; { TAPI v2.0 } + LINEAGENTSTATUS_NEXTSTATE = $00000004; { TAPI v2.0 } + LINEAGENTSTATUS_ACTIVITY = $00000008; { TAPI v2.0 } + LINEAGENTSTATUS_ACTIVITYLIST = $00000010; { TAPI v2.0 } + LINEAGENTSTATUS_GROUPLIST = $00000020; { TAPI v2.0 } + LINEAGENTSTATUS_CAPSCHANGE = $00000040; { TAPI v2.0 } + LINEAGENTSTATUS_VALIDSTATES = $00000080; { TAPI v2.0 } + LINEAGENTSTATUS_VALIDNEXTSTATES = $00000100; { TAPI v2.0 } + + LINEANSWERMODE_NONE = $00000001; + LINEANSWERMODE_DROP = $00000002; + LINEANSWERMODE_HOLD = $00000004; + LINEBEARERMODE_VOICE = $00000001; + LINEBEARERMODE_SPEECH = $00000002; + LINEBEARERMODE_MULTIUSE = $00000004; + LINEBEARERMODE_DATA = $00000008; + LINEBEARERMODE_ALTSPEECHDATA = $00000010; + LINEBEARERMODE_NONCALLSIGNALING = $00000020; + LINEBEARERMODE_PASSTHROUGH = $00000040; { TAPI v1.4 } + LINEBEARERMODE_RESTRICTEDDATA = $00000080; { TAPI v2.0 } + + LINEBUSYMODE_STATION = $00000001; + LINEBUSYMODE_TRUNK = $00000002; + LINEBUSYMODE_UNKNOWN = $00000004; + LINEBUSYMODE_UNAVAIL = $00000008; + + LINECALLCOMPLCOND_BUSY = $00000001; + LINECALLCOMPLCOND_NOANSWER = $00000002; + + LINECALLCOMPLMODE_CAMPON = $00000001; + LINECALLCOMPLMODE_CALLBACK = $00000002; + LINECALLCOMPLMODE_INTRUDE = $00000004; + LINECALLCOMPLMODE_MESSAGE = $00000008; + + LINECALLFEATURE_ACCEPT = $00000001; + LINECALLFEATURE_ADDTOCONF = $00000002; + LINECALLFEATURE_ANSWER = $00000004; + LINECALLFEATURE_BLINDTRANSFER = $00000008; + LINECALLFEATURE_COMPLETECALL = $00000010; + LINECALLFEATURE_COMPLETETRANSF = $00000020; + LINECALLFEATURE_DIAL = $00000040; + LINECALLFEATURE_DROP = $00000080; + LINECALLFEATURE_GATHERDIGITS = $00000100; + LINECALLFEATURE_GENERATEDIGITS = $00000200; + LINECALLFEATURE_GENERATETONE = $00000400; + LINECALLFEATURE_HOLD = $00000800; + LINECALLFEATURE_MONITORDIGITS = $00001000; + LINECALLFEATURE_MONITORMEDIA = $00002000; + LINECALLFEATURE_MONITORTONES = $00004000; + LINECALLFEATURE_PARK = $00008000; + LINECALLFEATURE_PREPAREADDCONF = $00010000; + LINECALLFEATURE_REDIRECT = $00020000; + LINECALLFEATURE_REMOVEFROMCONF = $00040000; + LINECALLFEATURE_SECURECALL = $00080000; + LINECALLFEATURE_SENDUSERUSER = $00100000; + LINECALLFEATURE_SETCALLPARAMS = $00200000; + LINECALLFEATURE_SETMEDIACONTROL = $00400000; + LINECALLFEATURE_SETTERMINAL = $00800000; + LINECALLFEATURE_SETUPCONF = $01000000; + LINECALLFEATURE_SETUPTRANSFER = $02000000; + LINECALLFEATURE_SWAPHOLD = $04000000; + LINECALLFEATURE_UNHOLD = $08000000; + LINECALLFEATURE_RELEASEUSERUSERINFO = $10000000; { TAPI v1.4 } + LINECALLFEATURE_SETTREATMENT = $20000000; { TAPI v2.0 } + LINECALLFEATURE_SETQOS = $40000000; { TAPI v2.0 } + LINECALLFEATURE_SETCALLDATA = $80000000; { TAPI v2.0 } + + LINECALLFEATURE2_NOHOLDCONFERENCE = $00000001; { TAPI v2.0 } + LINECALLFEATURE2_ONESTEPTRANSFER = $00000002; { TAPI v2.0 } + LINECALLFEATURE2_COMPLCAMPON = $00000004; { TAPI v2.0 } + LINECALLFEATURE2_COMPLCALLBACK = $00000008; { TAPI v2.0 } + LINECALLFEATURE2_COMPLINTRUDE = $00000010; { TAPI v2.0 } + LINECALLFEATURE2_COMPLMESSAGE = $00000020; { TAPI v2.0 } + LINECALLFEATURE2_TRANSFERNORM = $00000040; { TAPI v2.0 } + LINECALLFEATURE2_TRANSFERCONF = $00000080; { TAPI v2.0 } + LINECALLFEATURE2_PARKDIRECT = $00000100; { TAPI v2.0 } + LINECALLFEATURE2_PARKNONDIRECT = $00000200; { TAPI v2.0 } + + LINECALLINFOSTATE_OTHER = $00000001; + LINECALLINFOSTATE_DEVSPECIFIC = $00000002; + LINECALLINFOSTATE_BEARERMODE = $00000004; + LINECALLINFOSTATE_RATE = $00000008; + LINECALLINFOSTATE_MEDIAMODE = $00000010; + LINECALLINFOSTATE_APPSPECIFIC = $00000020; + LINECALLINFOSTATE_CALLID = $00000040; + LINECALLINFOSTATE_RELATEDCALLID = $00000080; + LINECALLINFOSTATE_ORIGIN = $00000100; + LINECALLINFOSTATE_REASON = $00000200; + LINECALLINFOSTATE_COMPLETIONID = $00000400; + LINECALLINFOSTATE_NUMOWNERINCR = $00000800; + LINECALLINFOSTATE_NUMOWNERDECR = $00001000; + LINECALLINFOSTATE_NUMMONITORS = $00002000; + LINECALLINFOSTATE_TRUNK = $00004000; + LINECALLINFOSTATE_CALLERID = $00008000; + LINECALLINFOSTATE_CALLEDID = $00010000; + LINECALLINFOSTATE_CONNECTEDID = $00020000; + LINECALLINFOSTATE_REDIRECTIONID = $00040000; + LINECALLINFOSTATE_REDIRECTINGID = $00080000; + LINECALLINFOSTATE_DISPLAY = $00100000; + LINECALLINFOSTATE_USERUSERINFO = $00200000; + LINECALLINFOSTATE_HIGHLEVELCOMP = $00400000; + LINECALLINFOSTATE_LOWLEVELCOMP = $00800000; + LINECALLINFOSTATE_CHARGINGINFO = $01000000; + LINECALLINFOSTATE_TERMINAL = $02000000; + LINECALLINFOSTATE_DIALPARAMS = $04000000; + LINECALLINFOSTATE_MONITORMODES = $08000000; + LINECALLINFOSTATE_TREATMENT = $10000000; { TAPI v2.0 } + LINECALLINFOSTATE_QOS = $20000000; { TAPI v2.0 } + LINECALLINFOSTATE_CALLDATA = $40000000; { TAPI v2.0 } + + LINECALLORIGIN_OUTBOUND = $00000001; + LINECALLORIGIN_INTERNAL = $00000002; + LINECALLORIGIN_EXTERNAL = $00000004; + LINECALLORIGIN_UNKNOWN = $00000010; + LINECALLORIGIN_UNAVAIL = $00000020; + LINECALLORIGIN_CONFERENCE = $00000040; + LINECALLORIGIN_INBOUND = $00000080; { TAPI v1.4 } + + LINECALLPARAMFLAGS_SECURE = $00000001; + LINECALLPARAMFLAGS_IDLE = $00000002; + LINECALLPARAMFLAGS_BLOCKID = $00000004; + LINECALLPARAMFLAGS_ORIGOFFHOOK = $00000008; + LINECALLPARAMFLAGS_DESTOFFHOOK = $00000010; + LINECALLPARAMFLAGS_NOHOLDCONFERENCE = $00000020; { TAPI v2.0 } + LINECALLPARAMFLAGS_PREDICTIVEDIAL = $00000040; { TAPI v2.0 } + LINECALLPARAMFLAGS_ONESTEPTRANSFER = $00000080; { TAPI v2.0 } + + LINECALLPARTYID_BLOCKED = $00000001; + LINECALLPARTYID_OUTOFAREA = $00000002; + LINECALLPARTYID_NAME = $00000004; + LINECALLPARTYID_ADDRESS = $00000008; + LINECALLPARTYID_PARTIAL = $00000010; + LINECALLPARTYID_UNKNOWN = $00000020; + LINECALLPARTYID_UNAVAIL = $00000040; + + LINECALLPRIVILEGE_NONE = $00000001; + LINECALLPRIVILEGE_MONITOR = $00000002; + LINECALLPRIVILEGE_OWNER = $00000004; + + LINECALLREASON_DIRECT = $00000001; + LINECALLREASON_FWDBUSY = $00000002; + LINECALLREASON_FWDNOANSWER = $00000004; + LINECALLREASON_FWDUNCOND = $00000008; + LINECALLREASON_PICKUP = $00000010; + LINECALLREASON_UNPARK = $00000020; + LINECALLREASON_REDIRECT = $00000040; + LINECALLREASON_CALLCOMPLETION = $00000080; + LINECALLREASON_TRANSFER = $00000100; + LINECALLREASON_REMINDER = $00000200; + LINECALLREASON_UNKNOWN = $00000400; + LINECALLREASON_UNAVAIL = $00000800; + LINECALLREASON_INTRUDE = $00001000; { TAPI v1.4 } + LINECALLREASON_PARKED = $00002000; { TAPI v1.4 } + LINECALLREASON_CAMPEDON = $00004000; { TAPI v2.0 } + LINECALLREASON_ROUTEREQUEST = $00008000; { TAPI v2.0 } + + LINECALLSELECT_LINE = $00000001; + LINECALLSELECT_ADDRESS = $00000002; + LINECALLSELECT_CALL = $00000004; + LINECALLSELECT_DEVICEID = $00000008; { TAPI v2.1 } + LINECALLSELECT_CALLID = $00000010; { TAPI v3.0 } + + LINECALLSTATE_IDLE = $00000001; + LINECALLSTATE_OFFERING = $00000002; + LINECALLSTATE_ACCEPTED = $00000004; + LINECALLSTATE_DIALTONE = $00000008; + LINECALLSTATE_DIALING = $00000010; + LINECALLSTATE_RINGBACK = $00000020; + LINECALLSTATE_BUSY = $00000040; + LINECALLSTATE_SPECIALINFO = $00000080; + LINECALLSTATE_CONNECTED = $00000100; + LINECALLSTATE_PROCEEDING = $00000200; + LINECALLSTATE_ONHOLD = $00000400; + LINECALLSTATE_CONFERENCED = $00000800; + LINECALLSTATE_ONHOLDPENDCONF = $00001000; + LINECALLSTATE_ONHOLDPENDTRANSFER = $00002000; + LINECALLSTATE_DISCONNECTED = $00004000; + LINECALLSTATE_UNKNOWN = $00008000; + + LINECALLTREATMENT_SILENCE = $00000001; { TAPI v2.0 } + LINECALLTREATMENT_RINGBACK = $00000002; { TAPI v2.0 } + LINECALLTREATMENT_BUSY = $00000003; { TAPI v2.0 } + LINECALLTREATMENT_MUSIC = $00000004; { TAPI v2.0 } + + LINECARDOPTION_PREDEFINED = $00000001; { TAPI v1.4 } + LINECARDOPTION_HIDDEN = $00000002; { TAPI v1.4 } + + LINECONNECTEDMODE_ACTIVE = $00000001; { TAPI v1.4 } + LINECONNECTEDMODE_INACTIVE = $00000002; { TAPI v1.4 } + LINECONNECTEDMODE_ACTIVEHELD = $00000004; { TAPI v2.0 } + LINECONNECTEDMODE_INACTIVEHELD = $00000008; { TAPI v2.0 } + LINECONNECTEDMODE_CONFIRMED = $00000010; { TAPI v2.0 } + + LINEDEVCAPFLAGS_CROSSADDRCONF = $00000001; + LINEDEVCAPFLAGS_HIGHLEVCOMP = $00000002; + LINEDEVCAPFLAGS_LOWLEVCOMP = $00000004; + LINEDEVCAPFLAGS_MEDIACONTROL = $00000008; + LINEDEVCAPFLAGS_MULTIPLEADDR = $00000010; + LINEDEVCAPFLAGS_CLOSEDROP = $00000020; + LINEDEVCAPFLAGS_DIALBILLING = $00000040; + LINEDEVCAPFLAGS_DIALQUIET = $00000080; + LINEDEVCAPFLAGS_DIALDIALTONE = $00000100; + LINEDEVCAPFLAGS_MSP = $00000200; { TAPI v3.0 } + LINEDEVCAPFLAGS_CALLHUB = $00000400; { TAPI v3.0 } + LINEDEVCAPFLAGS_CALLHUBTRACKING = $00000800; { TAPI v3.0 } + LINEDEVCAPFLAGS_PRIVATEOBJECTS = $00001000; { TAPI v3.0 } + + LINEDEVSTATE_OTHER = $00000001; + LINEDEVSTATE_RINGING = $00000002; + LINEDEVSTATE_CONNECTED = $00000004; + LINEDEVSTATE_DISCONNECTED = $00000008; + LINEDEVSTATE_MSGWAITON = $00000010; + LINEDEVSTATE_MSGWAITOFF = $00000020; + LINEDEVSTATE_INSERVICE = $00000040; + LINEDEVSTATE_OUTOFSERVICE = $00000080; + LINEDEVSTATE_MAINTENANCE = $00000100; + LINEDEVSTATE_OPEN = $00000200; + LINEDEVSTATE_CLOSE = $00000400; + LINEDEVSTATE_NUMCALLS = $00000800; + LINEDEVSTATE_NUMCOMPLETIONS = $00001000; + LINEDEVSTATE_TERMINALS = $00002000; + LINEDEVSTATE_ROAMMODE = $00004000; + LINEDEVSTATE_BATTERY = $00008000; + LINEDEVSTATE_SIGNAL = $00010000; + LINEDEVSTATE_DEVSPECIFIC = $00020000; + LINEDEVSTATE_REINIT = $00040000; + LINEDEVSTATE_LOCK = $00080000; + LINEDEVSTATE_CAPSCHANGE = $00100000; { TAPI v1.4 } + LINEDEVSTATE_CONFIGCHANGE = $00200000; { TAPI v1.4 } + LINEDEVSTATE_TRANSLATECHANGE = $00400000; { TAPI v1.4 } + LINEDEVSTATE_COMPLCANCEL = $00800000; { TAPI v1.4 } + LINEDEVSTATE_REMOVED = $01000000; { TAPI v1.4 } + + LINEDEVSTATUSFLAGS_CONNECTED = $00000001; + LINEDEVSTATUSFLAGS_MSGWAIT = $00000002; + LINEDEVSTATUSFLAGS_INSERVICE = $00000004; + LINEDEVSTATUSFLAGS_LOCKED = $00000008; + + LINEDIALTONEMODE_NORMAL = $00000001; + LINEDIALTONEMODE_SPECIAL = $00000002; + LINEDIALTONEMODE_INTERNAL = $00000004; + LINEDIALTONEMODE_EXTERNAL = $00000008; + LINEDIALTONEMODE_UNKNOWN = $00000010; + LINEDIALTONEMODE_UNAVAIL = $00000020; + + LINEDIGITMODE_PULSE = $00000001; + LINEDIGITMODE_DTMF = $00000002; + LINEDIGITMODE_DTMFEND = $00000004; + + LINEDISCONNECTMODE_NORMAL = $00000001; + LINEDISCONNECTMODE_UNKNOWN = $00000002; + LINEDISCONNECTMODE_REJECT = $00000004; + LINEDISCONNECTMODE_PICKUP = $00000008; + LINEDISCONNECTMODE_FORWARDED = $00000010; + LINEDISCONNECTMODE_BUSY = $00000020; + LINEDISCONNECTMODE_NOANSWER = $00000040; + LINEDISCONNECTMODE_BADADDRESS = $00000080; + LINEDISCONNECTMODE_UNREACHABLE = $00000100; + LINEDISCONNECTMODE_CONGESTION = $00000200; + LINEDISCONNECTMODE_INCOMPATIBLE = $00000400; + LINEDISCONNECTMODE_UNAVAIL = $00000800; + LINEDISCONNECTMODE_NODIALTONE = $00001000; { TAPI v1.4 } + LINEDISCONNECTMODE_NUMBERCHANGED = $00002000; { TAPI v2.0 } + LINEDISCONNECTMODE_OUTOFORDER = $00004000; { TAPI v2.0 } + LINEDISCONNECTMODE_TEMPFAILURE = $00008000; { TAPI v2.0 } + LINEDISCONNECTMODE_QOSUNAVAIL = $00010000; { TAPI v2.0 } + LINEDISCONNECTMODE_BLOCKED = $00020000; { TAPI v2.0 } + LINEDISCONNECTMODE_DONOTDISTURB = $00040000; { TAPI v2.0 } + LINEDISCONNECTMODE_CANCELLED = $00080000; { TAPI v2.0 } + + LINEERR_ALLOCATED = $80000001; + LINEERR_BADDEVICEID = $80000002; + LINEERR_BEARERMODEUNAVAIL = $80000003; + LINEERR_CALLUNAVAIL = $80000005; + LINEERR_COMPLETIONOVERRUN = $80000006; + LINEERR_CONFERENCEFULL = $80000007; + LINEERR_DIALBILLING = $80000008; + LINEERR_DIALDIALTONE = $80000009; + LINEERR_DIALPROMPT = $8000000A; + LINEERR_DIALQUIET = $8000000B; + LINEERR_INCOMPATIBLEAPIVERSION = $8000000C; + LINEERR_INCOMPATIBLEEXTVERSION = $8000000D; + LINEERR_INIFILECORRUPT = $8000000E; + LINEERR_INUSE = $8000000F; + LINEERR_INVALADDRESS = $80000010; + LINEERR_INVALADDRESSID = $80000011; + LINEERR_INVALADDRESSMODE = $80000012; + LINEERR_INVALADDRESSSTATE = $80000013; + LINEERR_INVALAPPHANDLE = $80000014; + LINEERR_INVALAPPNAME = $80000015; + LINEERR_INVALBEARERMODE = $80000016; + LINEERR_INVALCALLCOMPLMODE = $80000017; + LINEERR_INVALCALLHANDLE = $80000018; + LINEERR_INVALCALLPARAMS = $80000019; + LINEERR_INVALCALLPRIVILEGE = $8000001A; + LINEERR_INVALCALLSELECT = $8000001B; + LINEERR_INVALCALLSTATE = $8000001C; + LINEERR_INVALCALLSTATELIST = $8000001D; + LINEERR_INVALCARD = $8000001E; + LINEERR_INVALCOMPLETIONID = $8000001F; + LINEERR_INVALCONFCALLHANDLE = $80000020; + LINEERR_INVALCONSULTCALLHANDLE = $80000021; + LINEERR_INVALCOUNTRYCODE = $80000022; + LINEERR_INVALDEVICECLASS = $80000023; + LINEERR_INVALDEVICEHANDLE = $80000024; + LINEERR_INVALDIALPARAMS = $80000025; + LINEERR_INVALDIGITLIST = $80000026; + LINEERR_INVALDIGITMODE = $80000027; + LINEERR_INVALDIGITS = $80000028; + LINEERR_INVALEXTVERSION = $80000029; + LINEERR_INVALGROUPID = $8000002A; + LINEERR_INVALLINEHANDLE = $8000002B; + LINEERR_INVALLINESTATE = $8000002C; + LINEERR_INVALLOCATION = $8000002D; + LINEERR_INVALMEDIALIST = $8000002E; + LINEERR_INVALMEDIAMODE = $8000002F; + LINEERR_INVALMESSAGEID = $80000030; + LINEERR_INVALPARAM = $80000032; + LINEERR_INVALPARKID = $80000033; + LINEERR_INVALPARKMODE = $80000034; + LINEERR_INVALPOINTER = $80000035; + LINEERR_INVALPRIVSELECT = $80000036; + LINEERR_INVALRATE = $80000037; + LINEERR_INVALREQUESTMODE = $80000038; + LINEERR_INVALTERMINALID = $80000039; + LINEERR_INVALTERMINALMODE = $8000003A; + LINEERR_INVALTIMEOUT = $8000003B; + LINEERR_INVALTONE = $8000003C; + LINEERR_INVALTONELIST = $8000003D; + LINEERR_INVALTONEMODE = $8000003E; + LINEERR_INVALTRANSFERMODE = $8000003F; + LINEERR_LINEMAPPERFAILED = $80000040; + LINEERR_NOCONFERENCE = $80000041; + LINEERR_NODEVICE = $80000042; + LINEERR_NODRIVER = $80000043; + LINEERR_NOMEM = $80000044; + LINEERR_NOREQUEST = $80000045; + LINEERR_NOTOWNER = $80000046; + LINEERR_NOTREGISTERED = $80000047; + LINEERR_OPERATIONFAILED = $80000048; + LINEERR_OPERATIONUNAVAIL = $80000049; + LINEERR_RATEUNAVAIL = $8000004A; + LINEERR_RESOURCEUNAVAIL = $8000004B; + LINEERR_REQUESTOVERRUN = $8000004C; + LINEERR_STRUCTURETOOSMALL = $8000004D; + LINEERR_TARGETNOTFOUND = $8000004E; + LINEERR_TARGETSELF = $8000004F; + LINEERR_UNINITIALIZED = $80000050; + LINEERR_USERUSERINFOTOOBIG = $80000051; + LINEERR_REINIT = $80000052; + LINEERR_ADDRESSBLOCKED = $80000053; + LINEERR_BILLINGREJECTED = $80000054; + LINEERR_INVALFEATURE = $80000055; + LINEERR_NOMULTIPLEINSTANCE = $80000056; + LINEERR_INVALAGENTID = $80000057; { TAPI v2.0 } + LINEERR_INVALAGENTGROUP = $80000058; { TAPI v2.0 } + LINEERR_INVALPASSWORD = $80000059; { TAPI v2.0 } + LINEERR_INVALAGENTSTATE = $8000005A; { TAPI v2.0 } + LINEERR_INVALAGENTACTIVITY = $8000005B; { TAPI v2.0 } + LINEERR_DIALVOICEDETECT = $8000005C; { TAPI v2.0 } + + LINEFEATURE_DEVSPECIFIC = $00000001; + LINEFEATURE_DEVSPECIFICFEAT = $00000002; + LINEFEATURE_FORWARD = $00000004; + LINEFEATURE_MAKECALL = $00000008; + LINEFEATURE_SETMEDIACONTROL = $00000010; + LINEFEATURE_SETTERMINAL = $00000020; + LINEFEATURE_SETDEVSTATUS = $00000040; { TAPI v2.0 } + LINEFEATURE_FORWARDFWD = $00000080; { TAPI v2.0 } + LINEFEATURE_FORWARDDND = $00000100; { TAPI v2.0 } + + LINEFORWARDMODE_UNCOND = $00000001; + LINEFORWARDMODE_UNCONDINTERNAL = $00000002; + LINEFORWARDMODE_UNCONDEXTERNAL = $00000004; + LINEFORWARDMODE_UNCONDSPECIFIC = $00000008; + LINEFORWARDMODE_BUSY = $00000010; + LINEFORWARDMODE_BUSYINTERNAL = $00000020; + LINEFORWARDMODE_BUSYEXTERNAL = $00000040; + LINEFORWARDMODE_BUSYSPECIFIC = $00000080; + LINEFORWARDMODE_NOANSW = $00000100; + LINEFORWARDMODE_NOANSWINTERNAL = $00000200; + LINEFORWARDMODE_NOANSWEXTERNAL = $00000400; + LINEFORWARDMODE_NOANSWSPECIFIC = $00000800; + LINEFORWARDMODE_BUSYNA = $00001000; + LINEFORWARDMODE_BUSYNAINTERNAL = $00002000; + LINEFORWARDMODE_BUSYNAEXTERNAL = $00004000; + LINEFORWARDMODE_BUSYNASPECIFIC = $00008000; + LINEFORWARDMODE_UNKNOWN = $00010000; { TAPI v1.4 } + LINEFORWARDMODE_UNAVAIL = $00020000; { TAPI v1.4 } + + LINEGATHERTERM_BUFFERFULL = $00000001; + LINEGATHERTERM_TERMDIGIT = $00000002; + LINEGATHERTERM_FIRSTTIMEOUT = $00000004; + LINEGATHERTERM_INTERTIMEOUT = $00000008; + LINEGATHERTERM_CANCEL = $00000010; + + LINEGENERATETERM_DONE = $00000001; + LINEGENERATETERM_CANCEL = $00000002; + + { These constants are mutually exclusive - there's no way to specify more } + { than one at a time (and it doesn't make sense, either) so they're } + { ordinal rather than bits. } + + LINEINITIALIZEEXOPTION_USEHIDDENWINDOW = $00000001; { TAPI v2.0 } + LINEINITIALIZEEXOPTION_USEEVENT = $00000002; { TAPI v2.0 } + LINEINITIALIZEEXOPTION_USECOMPLETIONPORT = $00000003; { TAPI v2.0 } + + LINELOCATIONOPTION_PULSEDIAL = $00000001; { TAPI v1.4 } + + LINEMAPPER = $FFFFFFFF; + + LINEMEDIACONTROL_NONE = $00000001; + LINEMEDIACONTROL_START = $00000002; + LINEMEDIACONTROL_RESET = $00000004; + LINEMEDIACONTROL_PAUSE = $00000008; + LINEMEDIACONTROL_RESUME = $00000010; + LINEMEDIACONTROL_RATEUP = $00000020; + LINEMEDIACONTROL_RATEDOWN = $00000040; + LINEMEDIACONTROL_RATENORMAL = $00000080; + LINEMEDIACONTROL_VOLUMEUP = $00000100; + LINEMEDIACONTROL_VOLUMEDOWN = $00000200; + LINEMEDIACONTROL_VOLUMENORMAL = $00000400; + + LINEMEDIAMODE_UNKNOWN = $00000002; + LINEMEDIAMODE_INTERACTIVEVOICE = $00000004; + LINEMEDIAMODE_AUTOMATEDVOICE = $00000008; + LINEMEDIAMODE_DATAMODEM = $00000010; + LINEMEDIAMODE_G3FAX = $00000020; + LINEMEDIAMODE_TDD = $00000040; + LINEMEDIAMODE_G4FAX = $00000080; + LINEMEDIAMODE_DIGITALDATA = $00000100; + LINEMEDIAMODE_TELETEX = $00000200; + LINEMEDIAMODE_VIDEOTEX = $00000400; + LINEMEDIAMODE_TELEX = $00000800; + LINEMEDIAMODE_MIXED = $00001000; + LINEMEDIAMODE_ADSI = $00002000; + LINEMEDIAMODE_VOICEVIEW = $00004000; { TAPI v1.4 } + LAST_LINEMEDIAMODE = $00004000; + + LINEOFFERINGMODE_ACTIVE = $00000001; { TAPI v1.4 } + LINEOFFERINGMODE_INACTIVE = $00000002; { TAPI v1.4 } + + LINEOPENOPTION_SINGLEADDRESS = $80000000; { TAPI v2.0 } + LINEOPENOPTION_PROXY = $40000000; { TAPI v2.0 } + + LINEPARKMODE_DIRECTED = $00000001; + LINEPARKMODE_NONDIRECTED = $00000002; + + LINEPROXYREQUEST_SETAGENTGROUP = $00000001; { TAPI v2.0 } + LINEPROXYREQUEST_SETAGENTSTATE = $00000002; { TAPI v2.0 } + LINEPROXYREQUEST_SETAGENTACTIVITY = $00000003; { TAPI v2.0 } + LINEPROXYREQUEST_GETAGENTCAPS = $00000004; { TAPI v2.0 } + LINEPROXYREQUEST_GETAGENTSTATUS = $00000005; { TAPI v2.0 } + LINEPROXYREQUEST_AGENTSPECIFIC = $00000006; { TAPI v2.0 } + LINEPROXYREQUEST_GETAGENTACTIVITYLIST = $00000007; { TAPI v2.0 } + LINEPROXYREQUEST_GETAGENTGROUPLIST = $00000008; { TAPI v2.0 } + + LINEREMOVEFROMCONF_NONE = $00000001; + LINEREMOVEFROMCONF_LAST = $00000002; + LINEREMOVEFROMCONF_ANY = $00000003; + + LINEREQUESTMODE_MAKECALL = $00000001; + LINEREQUESTMODE_MEDIACALL = $00000002; + LINEREQUESTMODE_DROP = $00000004; + + LAST_LINEREQUESTMODE = LINEREQUESTMODE_MEDIACALL; + + LINEROAMMODE_UNKNOWN = $00000001; + LINEROAMMODE_UNAVAIL = $00000002; + LINEROAMMODE_HOME = $00000004; + LINEROAMMODE_ROAMA = $00000008; + LINEROAMMODE_ROAMB = $00000010; + + LINESPECIALINFO_NOCIRCUIT = $00000001; + LINESPECIALINFO_CUSTIRREG = $00000002; + LINESPECIALINFO_REORDER = $00000004; + LINESPECIALINFO_UNKNOWN = $00000008; + LINESPECIALINFO_UNAVAIL = $00000010; + + LINETERMDEV_PHONE = $00000001; + LINETERMDEV_HEADSET = $00000002; + LINETERMDEV_SPEAKER = $00000004; + + LINETERMMODE_BUTTONS = $00000001; + LINETERMMODE_LAMPS = $00000002; + LINETERMMODE_DISPLAY = $00000004; + LINETERMMODE_RINGER = $00000008; + LINETERMMODE_HOOKSWITCH = $00000010; + LINETERMMODE_MEDIATOLINE = $00000020; + LINETERMMODE_MEDIAFROMLINE = $00000040; + LINETERMMODE_MEDIABIDIRECT = $00000080; + + LINETERMSHARING_PRIVATE = $00000001; + LINETERMSHARING_SHAREDEXCL = $00000002; + LINETERMSHARING_SHAREDCONF = $00000004; + + LINETOLLLISTOPTION_ADD = $00000001; + LINETOLLLISTOPTION_REMOVE = $00000002; + + LINETONEMODE_CUSTOM = $00000001; + LINETONEMODE_RINGBACK = $00000002; + LINETONEMODE_BUSY = $00000004; + LINETONEMODE_BEEP = $00000008; + LINETONEMODE_BILLING = $00000010; + + LINETRANSFERMODE_TRANSFER = $00000001; + LINETRANSFERMODE_CONFERENCE = $00000002; + + LINETRANSLATEOPTION_CARDOVERRIDE = $00000001; + LINETRANSLATEOPTION_CANCELCALLWAITING = $00000002; { TAPI v1.4 } + LINETRANSLATEOPTION_FORCELOCAL = $00000004; { TAPI v1.4 } + LINETRANSLATEOPTION_FORCELD = $00000008; { TAPI v1.4 } + LINETRANSLATERESULT_CANONICAL = $00000001; + LINETRANSLATERESULT_INTERNATIONAL = $00000002; + LINETRANSLATERESULT_LONGDISTANCE = $00000004; + LINETRANSLATERESULT_LOCAL = $00000008; + LINETRANSLATERESULT_INTOLLLIST = $00000010; + LINETRANSLATERESULT_NOTINTOLLLIST = $00000020; + LINETRANSLATERESULT_DIALBILLING = $00000040; + LINETRANSLATERESULT_DIALQUIET = $00000080; + LINETRANSLATERESULT_DIALDIALTONE = $00000100; + LINETRANSLATERESULT_DIALPROMPT = $00000200; + LINETRANSLATERESULT_VOICEDETECT = $00000400; { TAPI v2.0 } + + PHONEBUTTONFUNCTION_UNKNOWN = $00000000; + PHONEBUTTONFUNCTION_CONFERENCE = $00000001; + PHONEBUTTONFUNCTION_TRANSFER = $00000002; + PHONEBUTTONFUNCTION_DROP = $00000003; + PHONEBUTTONFUNCTION_HOLD = $00000004; + PHONEBUTTONFUNCTION_RECALL = $00000005; + PHONEBUTTONFUNCTION_DISCONNECT = $00000006; + PHONEBUTTONFUNCTION_CONNECT = $00000007; + PHONEBUTTONFUNCTION_MSGWAITON = $00000008; + PHONEBUTTONFUNCTION_MSGWAITOFF = $00000009; + PHONEBUTTONFUNCTION_SELECTRING = $0000000A; + PHONEBUTTONFUNCTION_ABBREVDIAL = $0000000B; + PHONEBUTTONFUNCTION_FORWARD = $0000000C; + PHONEBUTTONFUNCTION_PICKUP = $0000000D; + PHONEBUTTONFUNCTION_RINGAGAIN = $0000000E; + PHONEBUTTONFUNCTION_PARK = $0000000F; + PHONEBUTTONFUNCTION_REJECT = $00000010; + PHONEBUTTONFUNCTION_REDIRECT = $00000011; + PHONEBUTTONFUNCTION_MUTE = $00000012; + PHONEBUTTONFUNCTION_VOLUMEUP = $00000013; + PHONEBUTTONFUNCTION_VOLUMEDOWN = $00000014; + PHONEBUTTONFUNCTION_SPEAKERON = $00000015; + PHONEBUTTONFUNCTION_SPEAKEROFF = $00000016; + PHONEBUTTONFUNCTION_FLASH = $00000017; + PHONEBUTTONFUNCTION_DATAON = $00000018; + PHONEBUTTONFUNCTION_DATAOFF = $00000019; + PHONEBUTTONFUNCTION_DONOTDISTURB = $0000001A; + PHONEBUTTONFUNCTION_INTERCOM = $0000001B; + PHONEBUTTONFUNCTION_BRIDGEDAPP = $0000001C; + PHONEBUTTONFUNCTION_BUSY = $0000001D; + PHONEBUTTONFUNCTION_CALLAPP = $0000001E; + PHONEBUTTONFUNCTION_DATETIME = $0000001F; + PHONEBUTTONFUNCTION_DIRECTORY = $00000020; + PHONEBUTTONFUNCTION_COVER = $00000021; + PHONEBUTTONFUNCTION_CALLID = $00000022; + PHONEBUTTONFUNCTION_LASTNUM = $00000023; + PHONEBUTTONFUNCTION_NIGHTSRV = $00000024; + PHONEBUTTONFUNCTION_SENDCALLS = $00000025; + PHONEBUTTONFUNCTION_MSGINDICATOR = $00000026; + PHONEBUTTONFUNCTION_REPDIAL = $00000027; + PHONEBUTTONFUNCTION_SETREPDIAL = $00000028; + PHONEBUTTONFUNCTION_SYSTEMSPEED = $00000029; + PHONEBUTTONFUNCTION_STATIONSPEED = $0000002A; + PHONEBUTTONFUNCTION_CAMPON = $0000002B; + PHONEBUTTONFUNCTION_SAVEREPEAT = $0000002C; + PHONEBUTTONFUNCTION_QUEUECALL = $0000002D; + PHONEBUTTONFUNCTION_NONE = $0000002E; + + PHONEBUTTONMODE_DUMMY = $00000001; + PHONEBUTTONMODE_CALL = $00000002; + PHONEBUTTONMODE_FEATURE = $00000004; + PHONEBUTTONMODE_KEYPAD = $00000008; + PHONEBUTTONMODE_LOCAL = $00000010; + PHONEBUTTONMODE_DISPLAY = $00000020; + + PHONEBUTTONSTATE_UP = $00000001; + PHONEBUTTONSTATE_DOWN = $00000002; + PHONEBUTTONSTATE_UNKNOWN = $00000004; { TAPI v1.4 } + PHONEBUTTONSTATE_UNAVAIL = $00000008; { TAPI v1.4 } + + PHONEERR_ALLOCATED = $90000001; + PHONEERR_BADDEVICEID = $90000002; + PHONEERR_INCOMPATIBLEAPIVERSION = $90000003; + PHONEERR_INCOMPATIBLEEXTVERSION = $90000004; + PHONEERR_INIFILECORRUPT = $90000005; + PHONEERR_INUSE = $90000006; + PHONEERR_INVALAPPHANDLE = $90000007; + PHONEERR_INVALAPPNAME = $90000008; + PHONEERR_INVALBUTTONLAMPID = $90000009; + PHONEERR_INVALBUTTONMODE = $9000000A; + PHONEERR_INVALBUTTONSTATE = $9000000B; + PHONEERR_INVALDATAID = $9000000C; + PHONEERR_INVALDEVICECLASS = $9000000D; + PHONEERR_INVALEXTVERSION = $9000000E; + PHONEERR_INVALHOOKSWITCHDEV = $9000000F; + PHONEERR_INVALHOOKSWITCHMODE = $90000010; + PHONEERR_INVALLAMPMODE = $90000011; + PHONEERR_INVALPARAM = $90000012; + PHONEERR_INVALPHONEHANDLE = $90000013; + PHONEERR_INVALPHONESTATE = $90000014; + PHONEERR_INVALPOINTER = $90000015; + PHONEERR_INVALPRIVILEGE = $90000016; + PHONEERR_INVALRINGMODE = $90000017; + PHONEERR_NODEVICE = $90000018; + PHONEERR_NODRIVER = $90000019; + PHONEERR_NOMEM = $9000001A; + PHONEERR_NOTOWNER = $9000001B; + PHONEERR_OPERATIONFAILED = $9000001C; + PHONEERR_OPERATIONUNAVAIL = $9000001D; + PHONEERR_RESOURCEUNAVAIL = $9000001F; + PHONEERR_REQUESTOVERRUN = $90000020; + PHONEERR_STRUCTURETOOSMALL = $90000021; + PHONEERR_UNINITIALIZED = $90000022; + PHONEERR_REINIT = $90000023; + + PHONEFEATURE_GETBUTTONINFO = $00000001; { TAPI v2.0 } + PHONEFEATURE_GETDATA = $00000002; { TAPI v2.0 } + PHONEFEATURE_GETDISPLAY = $00000004; { TAPI v2.0 } + PHONEFEATURE_GETGAINHANDSET = $00000008; { TAPI v2.0 } + PHONEFEATURE_GETGAINSPEAKER = $00000010; { TAPI v2.0 } + PHONEFEATURE_GETGAINHEADSET = $00000020; { TAPI v2.0 } + PHONEFEATURE_GETHOOKSWITCHHANDSET = $00000040; { TAPI v2.0 } + PHONEFEATURE_GETHOOKSWITCHSPEAKER = $00000080; { TAPI v2.0 } + PHONEFEATURE_GETHOOKSWITCHHEADSET = $00000100; { TAPI v2.0 } + PHONEFEATURE_GETLAMP = $00000200; { TAPI v2.0 } + PHONEFEATURE_GETRING = $00000400; { TAPI v2.0 } + PHONEFEATURE_GETVOLUMEHANDSET = $00000800; { TAPI v2.0 } + PHONEFEATURE_GETVOLUMESPEAKER = $00001000; { TAPI v2.0 } + PHONEFEATURE_GETVOLUMEHEADSET = $00002000; { TAPI v2.0 } + PHONEFEATURE_SETBUTTONINFO = $00004000; { TAPI v2.0 } + PHONEFEATURE_SETDATA = $00008000; { TAPI v2.0 } + PHONEFEATURE_SETDISPLAY = $00010000; { TAPI v2.0 } + PHONEFEATURE_SETGAINHANDSET = $00020000; { TAPI v2.0 } + PHONEFEATURE_SETGAINSPEAKER = $00040000; { TAPI v2.0 } + PHONEFEATURE_SETGAINHEADSET = $00080000; { TAPI v2.0 } + PHONEFEATURE_SETHOOKSWITCHHANDSET = $00100000; { TAPI v2.0 } + PHONEFEATURE_SETHOOKSWITCHSPEAKER = $00200000; { TAPI v2.0 } + PHONEFEATURE_SETHOOKSWITCHHEADSET = $00400000; { TAPI v2.0 } + PHONEFEATURE_SETLAMP = $00800000; { TAPI v2.0 } + PHONEFEATURE_SETRING = $01000000; { TAPI v2.0 } + PHONEFEATURE_SETVOLUMEHANDSET = $02000000; { TAPI v2.0 } + PHONEFEATURE_SETVOLUMESPEAKER = $04000000; { TAPI v2.0 } + PHONEFEATURE_SETVOLUMEHEADSET = $08000000; { TAPI v2.0 } + + PHONEHOOKSWITCHDEV_HANDSET = $00000001; + PHONEHOOKSWITCHDEV_SPEAKER = $00000002; + PHONEHOOKSWITCHDEV_HEADSET = $00000004; + + PHONEHOOKSWITCHMODE_ONHOOK = $00000001; + PHONEHOOKSWITCHMODE_MIC = $00000002; + PHONEHOOKSWITCHMODE_SPEAKER = $00000004; + PHONEHOOKSWITCHMODE_MICSPEAKER = $00000008; + PHONEHOOKSWITCHMODE_UNKNOWN = $00000010; + + PHONEINITIALIZEEXOPTION_USEHIDDENWINDOW = $00000001; { TAPI v2.0 } + PHONEINITIALIZEEXOPTION_USEEVENT = $00000002; { TAPI v2.0 } + PHONEINITIALIZEEXOPTION_USECOMPLETIONPORT = $00000003; { TAPI v2.0 } + + PHONELAMPMODE_DUMMY = $00000001; + PHONELAMPMODE_OFF = $00000002; + PHONELAMPMODE_STEADY = $00000004; + PHONELAMPMODE_WINK = $00000008; + PHONELAMPMODE_FLASH = $00000010; + PHONELAMPMODE_FLUTTER = $00000020; + PHONELAMPMODE_BROKENFLUTTER = $00000040; + PHONELAMPMODE_UNKNOWN = $00000080; + + PHONEPRIVILEGE_MONITOR = $00000001; + PHONEPRIVILEGE_OWNER = $00000002; + + PHONESTATE_OTHER = $00000001; + PHONESTATE_CONNECTED = $00000002; + PHONESTATE_DISCONNECTED = $00000004; + PHONESTATE_OWNER = $00000008; + PHONESTATE_MONITORS = $00000010; + PHONESTATE_DISPLAY = $00000020; + PHONESTATE_LAMP = $00000040; + PHONESTATE_RINGMODE = $00000080; + PHONESTATE_RINGVOLUME = $00000100; + PHONESTATE_HANDSETHOOKSWITCH = $00000200; + PHONESTATE_HANDSETVOLUME = $00000400; + PHONESTATE_HANDSETGAIN = $00000800; + PHONESTATE_SPEAKERHOOKSWITCH = $00001000; + PHONESTATE_SPEAKERVOLUME = $00002000; + PHONESTATE_SPEAKERGAIN = $00004000; + PHONESTATE_HEADSETHOOKSWITCH = $00008000; + PHONESTATE_HEADSETVOLUME = $00010000; + PHONESTATE_HEADSETGAIN = $00020000; + PHONESTATE_SUSPEND = $00040000; + PHONESTATE_RESUME = $00080000; + PHONESTATE_DEVSPECIFIC = $00100000; + PHONESTATE_REINIT = $00200000; + PHONESTATE_CAPSCHANGE = $00400000; { TAPI v1.4 } + PHONESTATE_REMOVED = $00800000; { TAPI v1.4 } + + PHONESTATUSFLAGS_CONNECTED = $00000001; + PHONESTATUSFLAGS_SUSPENDED = $00000002; + + STRINGFORMAT_ASCII = $00000001; + STRINGFORMAT_DBCS = $00000002; + STRINGFORMAT_UNICODE = $00000003; + STRINGFORMAT_BINARY = $00000004; + + TAPI_REPLY = WM_USER + 99; + + TAPIERR_CONNECTED = 0; + TAPIERR_DROPPED = -(1); + TAPIERR_NOREQUESTRECIPIENT = -(2); + TAPIERR_REQUESTQUEUEFULL = -(3); + TAPIERR_INVALDESTADDRESS = -(4); + TAPIERR_INVALWINDOWHANDLE = -(5); + TAPIERR_INVALDEVICECLASS = -(6); + TAPIERR_INVALDEVICEID = -(7); + TAPIERR_DEVICECLASSUNAVAIL = -(8); + TAPIERR_DEVICEIDUNAVAIL = -(9); + TAPIERR_DEVICEINUSE = -(10); + TAPIERR_DESTBUSY = -(11); + TAPIERR_DESTNOANSWER = -(12); + TAPIERR_DESTUNAVAIL = -(13); + TAPIERR_UNKNOWNWINHANDLE = -(14); + TAPIERR_UNKNOWNREQUESTID = -(15); + TAPIERR_REQUESTFAILED = -(16); + TAPIERR_REQUESTCANCELLED = -(17); + TAPIERR_INVALPOINTER = -(18); + + TAPIMAXDESTADDRESSSIZE = 80; + TAPIMAXAPPNAMESIZE = 40; + TAPIMAXCALLEDPARTYSIZE = 40; + TAPIMAXCOMMENTSIZE = 80; + TAPIMAXDEVICECLASSSIZE = 40; + TAPIMAXDEVICEIDSIZE = 40; + +//***************************************************************************** +// types +//***************************************************************************** + +type + + HCALL = HANDLE; + LPHCALL = ^HCALL; + + HLINE = HANDLE; + LPHLINE = ^HLINE; + + HPHONE = HANDLE; + LPHPHONE = ^HPHONE; + + HLINEAPP = HANDLE; + LPHLINEAPP = ^HLINEAPP; + + HPHONEAPP = HANDLE; + LPHPHONEAPP = ^HPHONEAPP; + + LINECALLBACK = procedure (hDevice:DWORD; dwMessage:DWORD; dwInstance:DWORD; dwParam1:DWORD; dwParam2:DWORD; + dwParam3:DWORD); + + PHONECALLBACK = procedure (hDevice:DWORD; dwMessage:DWORD; dwInstance:DWORD; dwParam1:DWORD; dwParam2:DWORD; + dwParam3:DWORD); + + lineaddresscaps_tag = record + dwTotalSize : DWORD; + dwNeededSize : DWORD; + dwUsedSize : DWORD; + dwLineDeviceID : DWORD; + dwAddressSize : DWORD; + dwAddressOffset : DWORD; + dwDevSpecificSize : DWORD; + dwDevSpecificOffset : DWORD; + dwAddressSharing : DWORD; + dwAddressStates : DWORD; + dwCallInfoStates : DWORD; + dwCallerIDFlags : DWORD; + dwCalledIDFlags : DWORD; + dwConnectedIDFlags : DWORD; + dwRedirectionIDFlags : DWORD; + dwRedirectingIDFlags : DWORD; + dwCallStates : DWORD; + dwDialToneModes : DWORD; + dwBusyModes : DWORD; + dwSpecialInfo : DWORD; + dwDisconnectModes : DWORD; + dwMaxNumActiveCalls : DWORD; + dwMaxNumOnHoldCalls : DWORD; + dwMaxNumOnHoldPendingCalls : DWORD; + dwMaxNumConference : DWORD; + dwMaxNumTransConf : DWORD; + dwAddrCapFlags : DWORD; + dwCallFeatures : DWORD; + dwRemoveFromConfCaps : DWORD; + dwRemoveFromConfState : DWORD; + dwTransferModes : DWORD; + dwParkModes : DWORD; + dwForwardModes : DWORD; + dwMaxForwardEntries : DWORD; + dwMaxSpecificEntries : DWORD; + dwMinFwdNumRings : DWORD; + dwMaxFwdNumRings : DWORD; + dwMaxCallCompletions : DWORD; + dwCallCompletionConds : DWORD; + dwCallCompletionModes : DWORD; + dwNumCompletionMessages : DWORD; + dwCompletionMsgTextEntrySize : DWORD; + dwCompletionMsgTextSize : DWORD; + dwCompletionMsgTextOffset : DWORD; + + dwAddressFeatures : DWORD; // TAPI v1.4 + + dwPredictiveAutoTransferStates : DWORD; // TAPI v2.0 + dwNumCallTreatments : DWORD; // TAPI v2.0 + dwCallTreatmentListSize : DWORD; // TAPI v2.0 + dwCallTreatmentListOffset : DWORD; // TAPI v2.0 + dwDeviceClassesSize : DWORD; // TAPI v2.0 + dwDeviceClassesOffset : DWORD; // TAPI v2.0 + dwMaxCallDataSize : DWORD; // TAPI v2.0 + dwCallFeatures2 : DWORD; // TAPI v2.0 + dwMaxNoAnswerTimeout : DWORD; // TAPI v2.0 + dwConnectedModes : DWORD; // TAPI v2.0 + dwOfferingModes : DWORD; // TAPI v2.0 + dwAvailableMediaModes : DWORD; // TAPI v2.0 + end; + TLINEADDRESSCAPS = lineaddresscaps_tag; + LPLINEADDRESSCAPS = ^lineaddresscaps_tag; + + lineaddressstatus_tag = record + dwTotalSize : DWORD; + dwNeededSize : DWORD; + dwUsedSize : DWORD; + dwNumInUse : DWORD; + dwNumActiveCalls : DWORD; + dwNumOnHoldCalls : DWORD; + dwNumOnHoldPendCalls : DWORD; + dwAddressFeatures : DWORD; + dwNumRingsNoAnswer : DWORD; + dwForwardNumEntries : DWORD; + dwForwardSize : DWORD; + dwForwardOffset : DWORD; + dwTerminalModesSize : DWORD; + dwTerminalModesOffset : DWORD; + dwDevSpecificSize : DWORD; + dwDevSpecificOffset : DWORD; + end; + TLINEADDRESSSTATUS = lineaddressstatus_tag; + LPLINEADDRESSSTATUS = ^lineaddressstatus_tag; + + linedialparams_tag = record + dwDialPause : DWORD; + dwDialSpeed : DWORD; + dwDigitDuration : DWORD; + dwWaitForDialtone : DWORD; + end; + TLINEDIALPARAMS = linedialparams_tag; + LPLINEDIALPARAMS = ^linedialparams_tag; + + linecallinfo_tag = record + dwTotalSize : DWORD; + dwNeededSize : DWORD; + dwUsedSize : DWORD; + hLine : HLINE; + dwLineDeviceID : DWORD; + dwAddressID : DWORD; + dwBearerMode : DWORD; + dwRate : DWORD; + dwMediaMode : DWORD; + dwAppSpecific : DWORD; + dwCallID : DWORD; + dwRelatedCallID : DWORD; + dwCallParamFlags : DWORD; + dwCallStates : DWORD; + dwMonitorDigitModes : DWORD; + dwMonitorMediaModes : DWORD; + DialParams : TLINEDIALPARAMS; + dwOrigin : DWORD; + dwReason : DWORD; + dwCompletionID : DWORD; + dwNumOwners : DWORD; + dwNumMonitors : DWORD; + dwCountryCode : DWORD; + dwTrunk : DWORD; + dwCallerIDFlags : DWORD; + dwCallerIDSize : DWORD; + dwCallerIDOffset : DWORD; + dwCallerIDNameSize : DWORD; + dwCallerIDNameOffset : DWORD; + dwCalledIDFlags : DWORD; + dwCalledIDSize : DWORD; + dwCalledIDOffset : DWORD; + dwCalledIDNameSize : DWORD; + dwCalledIDNameOffset : DWORD; + dwConnectedIDFlags : DWORD; + dwConnectedIDSize : DWORD; + dwConnectedIDOffset : DWORD; + dwConnectedIDNameSize : DWORD; + dwConnectedIDNameOffset : DWORD; + dwRedirectionIDFlags : DWORD; + dwRedirectionIDSize : DWORD; + dwRedirectionIDOffset : DWORD; + dwRedirectionIDNameSize : DWORD; + dwRedirectionIDNameOffset : DWORD; + dwRedirectingIDFlags : DWORD; + dwRedirectingIDSize : DWORD; + dwRedirectingIDOffset : DWORD; + dwRedirectingIDNameSize : DWORD; + dwRedirectingIDNameOffset : DWORD; + dwAppNameSize : DWORD; + dwAppNameOffset : DWORD; + dwDisplayableAddressSize : DWORD; + dwDisplayableAddressOffset : DWORD; + dwCalledPartySize : DWORD; + dwCalledPartyOffset : DWORD; + dwCommentSize : DWORD; + dwCommentOffset : DWORD; + dwDisplaySize : DWORD; + dwDisplayOffset : DWORD; + dwUserUserInfoSize : DWORD; + dwUserUserInfoOffset : DWORD; + dwHighLevelCompSize : DWORD; + dwHighLevelCompOffset : DWORD; + dwLowLevelCompSize : DWORD; + dwLowLevelCompOffset : DWORD; + dwChargingInfoSize : DWORD; + dwChargingInfoOffset : DWORD; + dwTerminalModesSize : DWORD; + dwTerminalModesOffset : DWORD; + dwDevSpecificSize : DWORD; + dwDevSpecificOffset : DWORD; + dwCallTreatment : DWORD; // TAPI v2.0 + dwCallDataSize : DWORD; // TAPI v2.0 + dwCallDataOffset : DWORD; // TAPI v2.0 + dwSendingFlowspecSize : DWORD; // TAPI v2.0 + dwSendingFlowspecOffset : DWORD; // TAPI v2.0 + dwReceivingFlowspecSize : DWORD; // TAPI v2.0 + dwReceivingFlowspecOffset : DWORD; // TAPI v2.0 + dwAddressType : DWORD; // TAPI v3.0 + end; + TLINECALLINFO = linecallinfo_tag; + LPLINECALLINFO = ^linecallinfo_tag; + + linecalllist_tag = record + dwTotalSize : DWORD; + dwNeededSize : DWORD; + dwUsedSize : DWORD; + dwCallsNumEntries : DWORD; + dwCallsSize : DWORD; + dwCallsOffset : DWORD; + end; + TLINECALLLIST = linecalllist_tag; + LPLINECALLLIST = ^linecalllist_tag; + + linecallparams_tag = record // Defaults: + dwTotalSize : DWORD; + dwBearerMode : DWORD; // voice + dwMinRate : DWORD; // (3.1kHz) + dwMaxRate : DWORD; // (3.1kHz) + dwMediaMode : DWORD; // interactiveVoice + dwCallParamFlags : DWORD; // 0 + dwAddressMode : DWORD; + dwAddressID : DWORD; // (any available) + DialParams : TLINEDIALPARAMS; // (0, 0, 0, 0) + dwOrigAddressSize : DWORD; // 0 + dwOrigAddressOffset : DWORD; + dwDisplayableAddressSize : DWORD; + dwDisplayableAddressOffset : DWORD; + dwCalledPartySize : DWORD; // 0 + dwCalledPartyOffset : DWORD; + dwCommentSize : DWORD; // 0 + dwCommentOffset : DWORD; + dwUserUserInfoSize : DWORD; // 0 + dwUserUserInfoOffset : DWORD; + dwHighLevelCompSize : DWORD; // 0 + dwHighLevelCompOffset : DWORD; + dwLowLevelCompSize : DWORD; // 0 + dwLowLevelCompOffset : DWORD; + dwDevSpecificSize : DWORD; // 0 + dwDevSpecificOffset : DWORD; + dwPredictiveAutoTransferStates : DWORD; // TAPI v2.0 + dwTargetAddressSize : DWORD; // TAPI v2.0 + dwTargetAddressOffset : DWORD; // TAPI v2.0 + dwSendingFlowspecSize : DWORD; // TAPI v2.0 + dwSendingFlowspecOffset : DWORD; // TAPI v2.0 + dwReceivingFlowspecSize : DWORD; // TAPI v2.0 + dwReceivingFlowspecOffset : DWORD; // TAPI v2.0 + dwDeviceClassSize : DWORD; // TAPI v2.0 + dwDeviceClassOffset : DWORD; // TAPI v2.0 + dwDeviceConfigSize : DWORD; // TAPI v2.0 + dwDeviceConfigOffset : DWORD; // TAPI v2.0 + dwCallDataSize : DWORD; // TAPI v2.0 + dwCallDataOffset : DWORD; // TAPI v2.0 + dwNoAnswerTimeout : DWORD; // TAPI v2.0 + dwCallingPartyIDSize : DWORD; // TAPI v2.0 + dwCallingPartyIDOffset : DWORD; // TAPI v2.0 + dwAddressType : DWORD; // TAPI v3.0 + end; + TLINECALLPARAMS = linecallparams_tag; + LPLINECALLPARAMS = ^linecallparams_tag; + + linecallstatus_tag = record + dwTotalSize : DWORD; + dwNeededSize : DWORD; + dwUsedSize : DWORD; + dwCallState : DWORD; + dwCallStateMode : DWORD; + dwCallPrivilege : DWORD; + dwCallFeatures : DWORD; + dwDevSpecificSize : DWORD; + dwDevSpecificOffset : DWORD; + + dwCallFeatures2 : DWORD; // TAPI v2.0 + tStateEntryTime : SYSTEMTIME; // TAPI v2.0 + end; + TLINECALLSTATUS = linecallstatus_tag; + LPLINECALLSTATUS = ^linecallstatus_tag; + + linecalltreatmententry_tag = record + dwCallTreatmentID : DWORD; // TAPI v2.0 + dwCallTreatmentNameSize : DWORD; // TAPI v2.0 + dwCallTreatmentNameOffset : DWORD; // TAPI v2.0 + end; + TLINECALLTREATMENTENTRY = linecalltreatmententry_tag; + LPLINECALLTREATMENTENTRY = ^linecalltreatmententry_tag; + + linecardentry_tag = record + dwPermanentCardID : DWORD; + dwCardNameSize : DWORD; + dwCardNameOffset : DWORD; + dwCardNumberDigits : DWORD; // TAPI v1.4 + dwSameAreaRuleSize : DWORD; // TAPI v1.4 + dwSameAreaRuleOffset : DWORD; // TAPI v1.4 + dwLongDistanceRuleSize : DWORD; // TAPI v1.4 + dwLongDistanceRuleOffset : DWORD; // TAPI v1.4 + dwInternationalRuleSize : DWORD; // TAPI v1.4 + dwInternationalRuleOffset : DWORD; // TAPI v1.4 + dwOptions : DWORD; // TAPI v1.4 + end; + TLINECARDENTRY = linecardentry_tag; + LPLINECARDENTRY = ^linecardentry_tag; + + linecountryentry_tag = record // TAPI v1.4 + dwCountryID : DWORD; // TAPI v1.4 + dwCountryCode : DWORD; // TAPI v1.4 + dwNextCountryID : DWORD; // TAPI v1.4 + dwCountryNameSize : DWORD; // TAPI v1.4 + dwCountryNameOffset : DWORD; // TAPI v1.4 + dwSameAreaRuleSize : DWORD; // TAPI v1.4 + dwSameAreaRuleOffset : DWORD; // TAPI v1.4 + dwLongDistanceRuleSize : DWORD; // TAPI v1.4 + dwLongDistanceRuleOffset : DWORD; // TAPI v1.4 + dwInternationalRuleSize : DWORD; // TAPI v1.4 + dwInternationalRuleOffset : DWORD; // TAPI v1.4 + end; + TLINECOUNTRYENTRY = linecountryentry_tag; + LPLINECOUNTRYENTRY = ^linecountryentry_tag; + + linecountrylist_tag = record + dwTotalSize : DWORD; // TAPI v1.4 + dwNeededSize : DWORD; // TAPI v1.4 + dwUsedSize : DWORD; // TAPI v1.4 + dwNumCountries : DWORD; // TAPI v1.4 + dwCountryListSize : DWORD; // TAPI v1.4 + dwCountryListOffset : DWORD; // TAPI v1.4 + end; + TLINECOUNTRYLIST = linecountrylist_tag; + LPLINECOUNTRYLIST = ^linecountrylist_tag; + + linedevcaps_tag = record + dwTotalSize : DWORD; + dwNeededSize : DWORD; + dwUsedSize : DWORD; + dwProviderInfoSize : DWORD; + dwProviderInfoOffset : DWORD; + dwSwitchInfoSize : DWORD; + dwSwitchInfoOffset : DWORD; + dwPermanentLineID : DWORD; + dwLineNameSize : DWORD; + dwLineNameOffset : DWORD; + dwStringFormat : DWORD; + dwAddressModes : DWORD; + dwNumAddresses : DWORD; + dwBearerModes : DWORD; + dwMaxRate : DWORD; + dwMediaModes : DWORD; + dwGenerateToneModes : DWORD; + dwGenerateToneMaxNumFreq : DWORD; + dwGenerateDigitModes : DWORD; + dwMonitorToneMaxNumFreq : DWORD; + dwMonitorToneMaxNumEntries : DWORD; + dwMonitorDigitModes : DWORD; + dwGatherDigitsMinTimeout : DWORD; + dwGatherDigitsMaxTimeout : DWORD; + dwMedCtlDigitMaxListSize : DWORD; + dwMedCtlMediaMaxListSize : DWORD; + dwMedCtlToneMaxListSize : DWORD; + dwMedCtlCallStateMaxListSize : DWORD; + dwDevCapFlags : DWORD; + dwMaxNumActiveCalls : DWORD; + dwAnswerMode : DWORD; + dwRingModes : DWORD; + dwLineStates : DWORD; + dwUUIAcceptSize : DWORD; + dwUUIAnswerSize : DWORD; + dwUUIMakeCallSize : DWORD; + dwUUIDropSize : DWORD; + dwUUISendUserUserInfoSize : DWORD; + dwUUICallInfoSize : DWORD; + MinDialParams : TLINEDIALPARAMS; + MaxDialParams : TLINEDIALPARAMS; + DefaultDialParams : TLINEDIALPARAMS; + dwNumTerminals : DWORD; + dwTerminalCapsSize : DWORD; + dwTerminalCapsOffset : DWORD; + dwTerminalTextEntrySize : DWORD; + dwTerminalTextSize : DWORD; + dwTerminalTextOffset : DWORD; + dwDevSpecificSize : DWORD; + dwDevSpecificOffset : DWORD; + + dwLineFeatures : DWORD; // TAPI v1.4 + + dwSettableDevStatus : DWORD; // TAPI v2.0 + dwDeviceClassesSize : DWORD; // TAPI v2.0 + dwDeviceClassesOffset : DWORD; // TAPI v2.0 + PermanentLineGuid : GUID; // TAPI v2.2 + dwAddressTypes : DWORD; // TAPI v3.0 + ProtocolGuid : GUID; // TAPI v3.0 + dwAvailableTracking : DWORD; // TAPI v3.0 + end; + TLINEDEVCAPS = linedevcaps_tag; + LPLINEDEVCAPS = ^linedevcaps_tag; + + linedevstatus_tag = record + dwTotalSize : DWORD; + dwNeededSize : DWORD; + dwUsedSize : DWORD; + dwNumOpens : DWORD; + dwOpenMediaModes : DWORD; + dwNumActiveCalls : DWORD; + dwNumOnHoldCalls : DWORD; + dwNumOnHoldPendCalls : DWORD; + dwLineFeatures : DWORD; + dwNumCallCompletions : DWORD; + dwRingMode : DWORD; + dwSignalLevel : DWORD; + dwBatteryLevel : DWORD; + dwRoamMode : DWORD; + dwDevStatusFlags : DWORD; + dwTerminalModesSize : DWORD; + dwTerminalModesOffset : DWORD; + dwDevSpecificSize : DWORD; + dwDevSpecificOffset : DWORD; + + dwAvailableMediaModes : DWORD; // TAPI v2.0 + dwAppInfoSize : DWORD; // TAPI v2.0 + dwAppInfoOffset : DWORD; // TAPI v2.0 + end; + LINEDEVSTATUS = linedevstatus_tag; + LPLINEDEVSTATUS = ^linedevstatus_tag; + + lineextensionid_tag = record + dwExtensionID0 : DWORD; + dwExtensionID1 : DWORD; + dwExtensionID2 : DWORD; + dwExtensionID3 : DWORD; + end; + TLINEEXTENSIONID = lineextensionid_tag; + LPLINEEXTENSIONID = ^lineextensionid_tag; + + lineforward_tag = record + dwForwardMode : DWORD; + dwCallerAddressSize : DWORD; + dwCallerAddressOffset : DWORD; + dwDestCountryCode : DWORD; + dwDestAddressSize : DWORD; + dwDestAddressOffset : DWORD; + end; + TLINEFORWARD = lineforward_tag; + LPLINEFORWARD = ^lineforward_tag; + + lineforwardlist_tag = record + dwTotalSize : DWORD; + dwNumEntries : DWORD; + ForwardList : array[0..0] of TLINEFORWARD; + end; + TLINEFORWARDLIST = lineforwardlist_tag; + LPLINEFORWARDLIST = ^lineforwardlist_tag; + + linegeneratetone_tag = record + dwFrequency : DWORD; + dwCadenceOn : DWORD; + dwCadenceOff : DWORD; + dwVolume : DWORD; + end; + TLINEGENERATETONE = linegeneratetone_tag; + LPLINEGENERATETONE = ^linegeneratetone_tag; + + lineinitializeexparams_tag = record + dwTotalSize : DWORD; // TAPI v2.0 + dwNeededSize : DWORD; // TAPI v2.0 + dwUsedSize : DWORD; // TAPI v2.0 + dwOptions : DWORD; // TAPI v2.0 + + Handles : record + case longint of + 0 : ( hEvent : HANDLE ); // TAPI v2.0 + 1 : ( hCompletionPort : HANDLE ); // TAPI v2.0 + end; + dwCompletionKey : DWORD; // TAPI v2.0 + end; + TLINEINITIALIZEEXPARAMS = lineinitializeexparams_tag; + LPLINEINITIALIZEEXPARAMS = ^lineinitializeexparams_tag; + + linelocationentry_tag = record + dwPermanentLocationID : DWORD; + dwLocationNameSize : DWORD; + dwLocationNameOffset : DWORD; + dwCountryCode : DWORD; + dwCityCodeSize : DWORD; + dwCityCodeOffset : DWORD; + dwPreferredCardID : DWORD; + + dwLocalAccessCodeSize : DWORD; // TAPI v1.4 + dwLocalAccessCodeOffset : DWORD; // TAPI v1.4 + dwLongDistanceAccessCodeSize : DWORD; // TAPI v1.4 + dwLongDistanceAccessCodeOffset : DWORD; // TAPI v1.4 + dwTollPrefixListSize : DWORD; // TAPI v1.4 + dwTollPrefixListOffset : DWORD; // TAPI v1.4 + dwCountryID : DWORD; // TAPI v1.4 + dwOptions : DWORD; // TAPI v1.4 + dwCancelCallWaitingSize : DWORD; // TAPI v1.4 + dwCancelCallWaitingOffset : DWORD; // TAPI v1.4 + end; + TLINELOCATIONENTRY = linelocationentry_tag; + LPLINELOCATIONENTRY = ^linelocationentry_tag; + + linemediacontrolcallstate_tag = record + dwCallStates : DWORD; + dwMediaControl : DWORD; + end; + TLINEMEDIACONTROLCALLSTATE = linemediacontrolcallstate_tag; + LPLINEMEDIACONTROLCALLSTATE = ^linemediacontrolcallstate_tag; + + linemediacontroldigit_tag = record + dwDigit : DWORD; + dwDigitModes : DWORD; + dwMediaControl : DWORD; + end; + TLINEMEDIACONTROLDIGIT = linemediacontroldigit_tag; + LPLINEMEDIACONTROLDIGIT = ^linemediacontroldigit_tag; + + linemediacontrolmedia_tag = record + dwMediaModes : DWORD; + dwDuration : DWORD; + dwMediaControl : DWORD; + end; + TLINEMEDIACONTROLMEDIA = linemediacontrolmedia_tag; + LPLINEMEDIACONTROLMEDIA = ^linemediacontrolmedia_tag; + + linemediacontroltone_tag = record + dwAppSpecific : DWORD; + dwDuration : DWORD; + dwFrequency1 : DWORD; + dwFrequency2 : DWORD; + dwFrequency3 : DWORD; + dwMediaControl : DWORD; + end; + TLINEMEDIACONTROLTONE = linemediacontroltone_tag; + LPLINEMEDIACONTROLTONE = ^linemediacontroltone_tag; + + linemessage_tag = record + hDevice : DWORD; // TAPI v2.0 + dwMessageID : DWORD; // TAPI v2.0 + dwCallbackInstance : DWORD; // TAPI v2.0 + dwParam1 : DWORD; // TAPI v2.0 + dwParam2 : DWORD; // TAPI v2.0 + dwParam3 : DWORD; // TAPI v2.0 + end; + TLINEMESSAGE = linemessage_tag; + LPLINEMESSAGE = ^linemessage_tag; + + linemonitortone_tag = record + dwAppSpecific : DWORD; + dwDuration : DWORD; + dwFrequency1 : DWORD; + dwFrequency2 : DWORD; + dwFrequency3 : DWORD; + end; + TLINEMONITORTONE = linemonitortone_tag; + LPLINEMONITORTONE = ^linemonitortone_tag; + + lineproviderentry_tag = record + dwPermanentProviderID : DWORD; // TAPI v1.4 + dwProviderFilenameSize : DWORD; // TAPI v1.4 + dwProviderFilenameOffset : DWORD; // TAPI v1.4 + end; + TLINEPROVIDERENTRY = lineproviderentry_tag; + LPLINEPROVIDERENTRY = ^lineproviderentry_tag; + + lineproviderlist_tag = record + dwTotalSize : DWORD; // TAPI v1.4 + dwNeededSize : DWORD; // TAPI v1.4 + dwUsedSize : DWORD; // TAPI v1.4 + dwNumProviders : DWORD; // TAPI v1.4 + dwProviderListSize : DWORD; // TAPI v1.4 + dwProviderListOffset : DWORD; // TAPI v1.4 + end; + TLINEPROVIDERLIST = lineproviderlist_tag; + LPLINEPROVIDERLIST = ^lineproviderlist_tag; + + linetermcaps_tag = record + dwTermDev : DWORD; + dwTermModes : DWORD; + dwTermSharing : DWORD; + end; + TLINETERMCAPS = linetermcaps_tag; + LPLINETERMCAPS = ^linetermcaps_tag; + + linetranslatecaps_tag = record + dwTotalSize : DWORD; + dwNeededSize : DWORD; + dwUsedSize : DWORD; + dwNumLocations : DWORD; + dwLocationListSize : DWORD; + dwLocationListOffset : DWORD; + dwCurrentLocationID : DWORD; + dwNumCards : DWORD; + dwCardListSize : DWORD; + dwCardListOffset : DWORD; + dwCurrentPreferredCardID : DWORD; + end; + TLINETRANSLATECAPS = linetranslatecaps_tag; + LPLINETRANSLATECAPS = ^linetranslatecaps_tag; + + linetranslateoutput_tag = record + dwTotalSize : DWORD; + dwNeededSize : DWORD; + dwUsedSize : DWORD; + dwDialableStringSize : DWORD; + dwDialableStringOffset : DWORD; + dwDisplayableStringSize : DWORD; + dwDisplayableStringOffset : DWORD; + dwCurrentCountry : DWORD; + dwDestCountry : DWORD; + dwTranslateResults : DWORD; + end; + TLINETRANSLATEOUTPUT = linetranslateoutput_tag; + LPLINETRANSLATEOUTPUT = ^linetranslateoutput_tag; + + phonebuttoninfo_tag = record + dwTotalSize : DWORD; + dwNeededSize : DWORD; + dwUsedSize : DWORD; + dwButtonMode : DWORD; + dwButtonFunction : DWORD; + dwButtonTextSize : DWORD; + dwButtonTextOffset : DWORD; + dwDevSpecificSize : DWORD; + dwDevSpecificOffset : DWORD; + + dwButtonState : DWORD; // TAPI v1.4 + end; + TPHONEBUTTONINFO = phonebuttoninfo_tag; + LPPHONEBUTTONINFO = ^phonebuttoninfo_tag; + + phonecaps_tag = record + dwTotalSize : DWORD; + dwNeededSize : DWORD; + dwUsedSize : DWORD; + dwProviderInfoSize : DWORD; + dwProviderInfoOffset : DWORD; + dwPhoneInfoSize : DWORD; + dwPhoneInfoOffset : DWORD; + dwPermanentPhoneID : DWORD; + dwPhoneNameSize : DWORD; + dwPhoneNameOffset : DWORD; + dwStringFormat : DWORD; + dwPhoneStates : DWORD; + dwHookSwitchDevs : DWORD; + dwHandsetHookSwitchModes : DWORD; + dwSpeakerHookSwitchModes : DWORD; + dwHeadsetHookSwitchModes : DWORD; + dwVolumeFlags : DWORD; + dwGainFlags : DWORD; + dwDisplayNumRows : DWORD; + dwDisplayNumColumns : DWORD; + dwNumRingModes : DWORD; + dwNumButtonLamps : DWORD; + dwButtonModesSize : DWORD; + dwButtonModesOffset : DWORD; + dwButtonFunctionsSize : DWORD; + dwButtonFunctionsOffset : DWORD; + dwLampModesSize : DWORD; + dwLampModesOffset : DWORD; + dwNumSetData : DWORD; + dwSetDataSize : DWORD; + dwSetDataOffset : DWORD; + dwNumGetData : DWORD; + dwGetDataSize : DWORD; + dwGetDataOffset : DWORD; + dwDevSpecificSize : DWORD; + dwDevSpecificOffset : DWORD; + dwDeviceClassesSize : DWORD; // TAPI v2.0 + dwDeviceClassesOffset : DWORD; // TAPI v2.0 + dwPhoneFeatures : DWORD; // TAPI v2.0 + dwSettableHandsetHookSwitchModes : DWORD; // TAPI v2.0 + dwSettableSpeakerHookSwitchModes : DWORD; // TAPI v2.0 + dwSettableHeadsetHookSwitchModes : DWORD; // TAPI v2.0 + dwMonitoredHandsetHookSwitchModes : DWORD; // TAPI v2.0 + dwMonitoredSpeakerHookSwitchModes : DWORD; // TAPI v2.0 + dwMonitoredHeadsetHookSwitchModes : DWORD; // TAPI v2.0 + PermanentPhoneGuid : GUID; // TAPI v2.2 + end; + TPHONECAPS = phonecaps_tag; + LPPHONECAPS = ^phonecaps_tag; + + phoneextensionid_tag = record + dwExtensionID0 : DWORD; + dwExtensionID1 : DWORD; + dwExtensionID2 : DWORD; + dwExtensionID3 : DWORD; + end; + TPHONEEXTENSIONID = phoneextensionid_tag; + LPPHONEEXTENSIONID = ^phoneextensionid_tag; + + phoneinitializeexparams_tag = record + dwTotalSize : DWORD; // TAPI v2.0 + dwNeededSize : DWORD; // TAPI v2.0 + dwUsedSize : DWORD; // TAPI v2.0 + dwOptions : DWORD; // TAPI v2.0 + + Handles : record + case longint of + 0 : ( hEvent : HANDLE ); // TAPI v2.0 + 1 : ( hCompletionPort : HANDLE ); // TAPI v2.0 + end; + + dwCompletionKey : DWORD; // TAPI v2.0 + end; + TPHONEINITIALIZEEXPARAMS = phoneinitializeexparams_tag; + LPPHONEINITIALIZEEXPARAMS = ^phoneinitializeexparams_tag; + + phonemessage_tag = record + hDevice : DWORD; // TAPI v2.0 + dwMessageID : DWORD; // TAPI v2.0 + dwCallbackInstance : DWORD; // TAPI v2.0 + dwParam1 : DWORD; // TAPI v2.0 + dwParam2 : DWORD; // TAPI v2.0 + dwParam3 : DWORD; // TAPI v2.0 + end; + TPHONEMESSAGE = phonemessage_tag; + LPPHONEMESSAGE = ^phonemessage_tag; + + phonestatus_tag = record + dwTotalSize : DWORD; + dwNeededSize : DWORD; + dwUsedSize : DWORD; + dwStatusFlags : DWORD; + dwNumOwners : DWORD; + dwNumMonitors : DWORD; + dwRingMode : DWORD; + dwRingVolume : DWORD; + dwHandsetHookSwitchMode : DWORD; + dwHandsetVolume : DWORD; + dwHandsetGain : DWORD; + dwSpeakerHookSwitchMode : DWORD; + dwSpeakerVolume : DWORD; + dwSpeakerGain : DWORD; + dwHeadsetHookSwitchMode : DWORD; + dwHeadsetVolume : DWORD; + dwHeadsetGain : DWORD; + dwDisplaySize : DWORD; + dwDisplayOffset : DWORD; + dwLampModesSize : DWORD; + dwLampModesOffset : DWORD; + dwOwnerNameSize : DWORD; + dwOwnerNameOffset : DWORD; + dwDevSpecificSize : DWORD; + dwDevSpecificOffset : DWORD; + + dwPhoneFeatures : DWORD; // TAPI v2.0 + end; + TPHONESTATUS = phonestatus_tag; + LPPHONESTATUS = ^phonestatus_tag; + + varstring_tag = record + dwTotalSize : DWORD; + dwNeededSize : DWORD; + dwUsedSize : DWORD; + dwStringFormat : DWORD; + dwStringSize : DWORD; + dwStringOffset : DWORD; + end; + TVARSTRING = varstring_tag; + LPVARSTRING = ^varstring_tag; + +//***************************************************************************** +// functions +//***************************************************************************** + +function lineAccept(hCall:HCALL; lpsUserUserInfo:LPCSTR; dwSize:DWORD):LONG;external KernelDLL name 'lineAccept'; +function lineAddProvider(lpszProviderFilename:LPCWSTR; hwndOwner:HWND; + lpdwPermanentProviderID:LPDWORD):LONG;external KernelDLL name 'lineAddProvider'; +function lineAddToConference(hConfCall:HCALL; hConsultCall:HCALL):LONG;external KernelDLL name 'lineAddToConference'; +function lineAnswer(hCall:HCALL; lpsUserUserInfo:LPCSTR; dwSize:DWORD):LONG;external KernelDLL name 'lineAnswer'; +function lineBlindTransfer(hCall:HCALL; lpszDestAddressW:LPCWSTR; + dwCountryCode:DWORD):LONG;external KernelDLL name 'lineBlindTransfer'; +function lineClose(hLine:HLINE):LONG;external KernelDLL name 'lineClose'; +function lineCompleteTransfer(hCall:HCALL; hConsultCall:HCALL; lphConfCall:LPHCALL; + dwTransferMode:DWORD):LONG;external KernelDLL name 'lineCompleteTransfer'; +function lineConfigDialogEdit(dwDeviceID:DWORD; hwndOwner:HWND; lpszDeviceClass:LPCWSTR; lpDeviceConfigIn:LPVOID; + dwSize:DWORD; lpDeviceConfigOut:LPVARSTRING):LONG;external KernelDLL name 'lineConfigDialogEdit'; +function lineDeallocateCall(hCall:HCALL):LONG;external KernelDLL name 'lineDeallocateCall'; +function lineDevSpecific(hLine:HLINE; dwAddressID:DWORD; hCall:HCALL; lpParams:LPVOID; + dwSize:DWORD):LONG;external KernelDLL name 'lineDevSpecific'; +function lineDial(hCall:HCALL; lpszDestAddress:LPCWSTR; dwCountryCode:DWORD):LONG;external KernelDLL name 'lineDial'; +function lineDrop(hCall:HCALL; lpsUserUserInfo:LPCSTR; dwSize:DWORD):LONG;external KernelDLL name 'lineDrop'; +function lineForward(hLine:HLINE; bAllAddresses:DWORD; dwAddressID:DWORD; lpForwardList:LPLINEFORWARDLIST; + dwNumRingsNoAnswer:DWORD; lphConsultCall:LPHCALL; lpCallParams:LPLINECALLPARAMS):LONG;external KernelDLL name 'lineForward'; +function lineGenerateDigits(hCall:HCALL; dwDigitMode:DWORD; lpszDigits:LPCWSTR; dwDuration:DWORD):LONG; + external KernelDLL name 'lineGenerateDigits'; +function lineGenerateTone(hCall:HCALL; dwToneMode:DWORD; dwDuration:DWORD; dwNumTones:DWORD; lpTones:LPLINEGENERATETONE):LONG; + external KernelDLL name 'lineGenerateTone'; +function lineGetAddressCaps(hLineApp:HLINEAPP; dwDeviceID:DWORD; dwAddressID:DWORD; dwAPIVersion:DWORD; + dwExtVersion:DWORD; lpAddressCaps:LPLINEADDRESSCAPS):LONG;external KernelDLL name 'lineGetAddressCaps'; +function lineGetAddressID(hLine:HLINE; lpdwAddressID:LPDWORD; dwAddressMode:DWORD; lpsAddress:LPCWSTR; + dwSize:DWORD):LONG;external KernelDLL name 'lineGetAddressID'; +function tAddressStatus(hLine:HLINE; dwAddressID:DWORD; lpAddressStatus:LPLINEADDRESSSTATUS):LONG; + external KernelDLL name 'lineGetAddressStatus'; +function lineGetAppPriority(lpszAppFilename:LPCWSTR; dwMediaMode:DWORD; lpExtensionID:LPLINEEXTENSIONID; + dwRequestMode:DWORD; lpExtensionName:LPVARSTRING; lpdwPriority:LPDWORD):LONG;external KernelDLL name 'lineGetAppPriority'; { TAPI v1.4 } +function lineGetCallInfo(hCall:HCALL; lpCallInfo:LPLINECALLINFO):LONG;external KernelDLL name 'lineGetCallInfo'; +function lineGetCallStatus(hCall:HCALL; lpCallStatus:LPLINECALLSTATUS):LONG;external KernelDLL name 'lineGetCallStatus'; +function lineGetConfRelatedCalls(hCall:HCALL; lpCallList:LPLINECALLLIST):LONG;external KernelDLL name 'lineGetConfRelatedCalls'; +function lineGetDevCaps(hLineApp:HLINEAPP; dwDeviceID:DWORD; dwAPIVersion:DWORD; dwExtVersion:DWORD; + lpLineDevCaps:LPLINEDEVCAPS):LONG;external KernelDLL name 'lineGetDevCaps'; +function lineGetDevConfig(dwDeviceID:DWORD; lpDeviceConfig:LPVARSTRING; lpszDeviceClass:LPCWSTR):LONG; + external KernelDLL name 'lineGetDevConfig'; +function lineGetNewCalls(hLine:HLINE; dwAddressID:DWORD; dwSelect:DWORD; lpCallList:LPLINECALLLIST):LONG; + external KernelDLL name 'lineGetNewCalls'; +function lineGetIcon(dwDeviceID:DWORD; lpszDeviceClass:LPCWSTR; lphIcon:LPHICON):LONG;external KernelDLL name 'lineGetIcon'; +function lineGetID(hLine:HLINE; dwAddressID:DWORD; hCall:HCALL; dwSelect:DWORD; lpDeviceID:LPVARSTRING; + lpszDeviceClass:LPCWSTR):LONG;external KernelDLL name 'lineGetID'; +function lineGetLineDevStatus(hLine:HLINE; lpLineDevStatus:LPLINEDEVSTATUS):LONG;external KernelDLL name 'lineGetLineDevStatus'; +function lineGetMessage(hLineApp:HLINEAPP; lpMessage:LPLINEMESSAGE; dwTimeout:DWORD):LONG;external KernelDLL name 'lineGetMessage'; +function lineGetNumRings(hLine:HLINE; dwAddressID:DWORD; lpdwNumRings:LPDWORD):LONG;external KernelDLL name 'lineGetNumRings'; +function lineGetProviderList(dwAPIVersion:DWORD; lpProviderList:LPLINEPROVIDERLIST):LONG; + external KernelDLL name 'lineGetProviderList'; { TAPI v1.4 } +function lineGetStatusMessages(hLine:HLINE; lpdwLineStates:LPDWORD; lpdwAddressStates:LPDWORD):LONG; + external KernelDLL name 'lineGetStatusMessages'; +function lineGetTranslateCaps(hLineApp:HLINEAPP; dwAPIVersion:DWORD; lpTranslateCaps:LPLINETRANSLATECAPS):LONG; + external KernelDLL name 'lineGetTranslateCaps'; +function lineHandoff(hCall:HCALL; lpszFileName:LPCWSTR; dwMediaMode:DWORD):LONG;external KernelDLL name 'lineHandoff'; +function lineHold(hCall:HCALL):LONG;external KernelDLL name 'lineHold'; +function lineInitialize(lphLineApp:LPHLINEAPP; hInstance:HINST; lpfnCallback:LINECALLBACK; lpszAppName:LPCWSTR; + lpdwNumDevs:LPDWORD):LONG;external KernelDLL name 'lineInitialize'; +function lineInitializeEx(lphLineApp:LPHLINEAPP; hInstance:HINST; lpfnCallback:LINECALLBACK; lpszFriendlyAppName:LPCWSTR; + lpdwNumDevs:LPDWORD; lpdwAPIVersion:LPDWORD; lpLineInitializeExParams:LPLINEINITIALIZEEXPARAMS):LONG; + external KernelDLL name 'lineInitializeEx'; +function lineMakeCall(hLine:HLINE; lphCall:LPHCALL; lpszDestAddress:LPCWSTR; dwCountryCode:DWORD; + lpCallParams:LPLINECALLPARAMS):LONG;external KernelDLL name 'lineMakeCall'; +function lineMonitorDigits(hCall:HCALL; dwDigitModes:DWORD):LONG;external KernelDLL name 'lineMonitorDigits'; +function lineMonitorMedia(hCall:HCALL; dwMediaModes:DWORD):LONG;external KernelDLL name 'lineMonitorMedia'; +function lineNegotiateAPIVersion(hLineApp:HLINEAPP; dwDeviceID:DWORD; dwAPILowVersion:DWORD; dwAPIHighVersion:DWORD; + lpdwAPIVersion:LPDWORD; lpExtensionID:LPLINEEXTENSIONID):LONG;external KernelDLL name 'lineNegotiateAPIVersion'; +function lineNegotiateExtVersion(hLineApp:HLINEAPP; dwDeviceID:DWORD; dwAPIVersion:DWORD; dwExtLowVersion:DWORD; + dwExtHighVersion:DWORD; lpdwExtVersion:LPDWORD):LONG;external KernelDLL name 'lineNegotiateExtVersion'; +function lineOpen(hLineApp:HLINEAPP; dwDeviceID:DWORD; lphLine:LPHLINE; dwAPIVersion:DWORD; dwExtVersion:DWORD; + dwCallbackInstance:DWORD; dwPrivileges:DWORD; dwMediaModes:DWORD; lpCallParams:LPLINECALLPARAMS):LONG; + external KernelDLL name 'lineOpen'; +function linePickup(hLine:HLINE; dwAddressID:DWORD; lphCall:LPHCALL; lpszDestAddress:LPCWSTR; lpszGroupID:LPCWSTR):LONG; + external KernelDLL name 'linePickup'; +function linePrepareAddToConference(hConfCall:HCALL; lphConsultCall:LPHCALL; lpCallParams:LPLINECALLPARAMS):LONG; + external KernelDLL name 'linePrepareAddToConference'; +function lineRedirect(hCall:HCALL; lpszDestAddress:LPCWSTR; dwCountryCode:DWORD):LONG;external KernelDLL name 'lineRedirect'; +function lineReleaseUserUserInfo(hCall:HCALL):LONG;external KernelDLL name 'lineReleaseUserUserInfo'; { TAPI v1.4 } +function lineRemoveFromConference(hCall:HCALL):LONG;external KernelDLL name 'lineRemoveFromConference'; +function lineSendUserUserInfo(hCall:HCALL; lpsUserUserInfo:LPCSTR; dwSize:DWORD):LONG;external KernelDLL name 'lineSendUserUserInfo'; +function lineSetAppPriority(lpszAppFilename:LPCWSTR; dwMediaMode:DWORD; lpExtensionID:LPLINEEXTENSIONID; dwRequestMode:DWORD; + lpszExtensionName:LPCWSTR; dwPriority:DWORD):LONG;external KernelDLL name 'lineSetAppPriority'; { TAPI v1.4 } +function lineSetCallParams(hCall:HCALL; dwBearerMode:DWORD; dwMinRate:DWORD; dwMaxRate:DWORD; lpDialParams:LPLINEDIALPARAMS):LONG; + external KernelDLL name 'lineSetCallParams'; +function lineSetCallPrivilege(hCall:HCALL; dwCallPrivilege:DWORD):LONG;external KernelDLL name 'lineSetCallPrivilege'; +function lineSetCurrentLocation(hLineApp:HLINEAPP; dwLocation:DWORD):LONG;external KernelDLL name 'lineSetCurrentLocation'; +function lineSetDevConfig(dwDeviceID:DWORD; lpDeviceConfig:LPVOID; dwSize:DWORD; lpszDeviceClass:LPCWSTR):LONG; + external KernelDLL name 'lineSetDevConfig'; +function lineSetMediaMode(hCall:HCALL; dwMediaModes:DWORD):LONG;external KernelDLL name 'lineSetMediaMode'; +function lineSetNumRings(hLine:HLINE; dwAddressID:DWORD; dwNumRings:DWORD):LONG;external KernelDLL name 'lineSetNumRings'; +function lineSetStatusMessages(hLine:HLINE; dwLineStates:DWORD; dwAddressStates:DWORD):LONG; + external KernelDLL name 'lineSetStatusMessages'; +function lineSetTerminal(hLine:HLINE; dwAddressID:DWORD; hCall:HCALL; dwSelect:DWORD; dwTerminalModes:DWORD; + dwTerminalID:DWORD; bEnable:DWORD):LONG;external KernelDLL name 'lineSetTerminal'; +function lineSetTollList(hLineApp:HLINEAPP; dwDeviceID:DWORD; lpszAddressIn:LPCWSTR; dwTollListOption:DWORD):LONG; + external KernelDLL name 'lineSetTollList'; +function lineSetupConference(hCall:HCALL; hLine:HLINE; lphConfCall:LPHCALL; lphConsultCall:LPHCALL; dwNumParties:DWORD; + lpCallParams:LPLINECALLPARAMS):LONG;external KernelDLL name 'lineSetupConference'; +function lineSetupTransfer(hCall:HCALL; lphConsultCall:LPHCALL; lpCallParams:LPLINECALLPARAMS):LONG; + external KernelDLL name 'lineSetupTransfer'; +function lineShutdown(hLineApp:HLINEAPP):LONG;external KernelDLL name 'lineShutdown'; +function lineSwapHold(hActiveCall:HCALL; hHeldCall:HCALL):LONG;external KernelDLL name 'lineSwapHold'; +function lineTranslateAddress(hLineApp:HLINEAPP; dwDeviceID:DWORD; dwAPIVersion:DWORD; lpszAddressIn:LPCWSTR; dwCard:DWORD; + dwTranslateOptions:DWORD; lpTranslateOutput:LPLINETRANSLATEOUTPUT):LONG;external KernelDLL name 'lineTranslateAddress'; +function lineTranslateDialog(hLineApp:HLINEAPP; dwDeviceID:DWORD; dwAPIVersion:DWORD; hwndOwner:HWND; + lpszAddressIn:LPCWSTR):LONG;external KernelDLL name 'lineTranslateDialog'; { TAPI v1.4 } +function lineUnhold(hCall:HCALL):LONG;external KernelDLL name 'lineUnhold'; + +function phoneClose(hPhone:HPHONE):LONG;external KernelDLL name 'phoneClose'; +function phoneConfigDialog(dwDeviceID:DWORD; hwndOwner:HWND; lpszDeviceClass:LPCWSTR):LONG;external KernelDLL name 'phoneConfigDialog'; +function phoneDevSpecific(hPhone:HPHONE; lpParams:LPVOID; dwSize:DWORD):LONG;external KernelDLL name 'phoneDevSpecific'; +function phoneGetDevCaps(hPhoneApp:HPHONEAPP; dwDeviceID:DWORD; dwAPIVersion:DWORD; dwExtVersion:DWORD; + lpPhoneCaps:LPPHONECAPS):LONG;external KernelDLL name 'phoneGetDevCaps'; +function phoneGetGain(hPhone:HPHONE; dwHookSwitchDev:DWORD; lpdwGain:LPDWORD):LONG;external KernelDLL name 'phoneGetGain'; +function phoneGetHookSwitch(hPhone:HPHONE; lpdwHookSwitchDevs:LPDWORD):LONG;external KernelDLL name 'phoneGetHookSwitch'; +function phoneGetIcon(dwDeviceID:DWORD; lpszDeviceClass:LPCWSTR; lphIcon:LPHICON):LONG;external KernelDLL name 'phoneGetIcon'; +function phoneGetID(hPhone:HPHONE; lpDeviceID:LPVARSTRING; lpszDeviceClass:LPCWSTR):LONG;external KernelDLL name 'phoneGetID'; +function phoneGetMessage(hPhoneApp:HPHONEAPP; lpMessage:LPPHONEMESSAGE; dwTimeout:DWORD):LONG;external KernelDLL name 'phoneGetMessage'; +function phoneGetRing(hPhone:HPHONE; lpdwRingMode:LPDWORD; lpdwVolume:LPDWORD):LONG;external KernelDLL name 'phoneGetRing'; +function phoneGetStatus(hPhone:HPHONE; lpPhoneStatus:LPPHONESTATUS):LONG;external KernelDLL name 'phoneGetStatus'; +function phoneGetStatusMessages(hPhone:HPHONE; lpdwPhoneStates:LPDWORD; lpdwButtonModes:LPDWORD; lpdwButtonStates:LPDWORD):LONG; + external KernelDLL name 'phoneGetStatusMessages'; +function phoneGetVolume(hPhone:HPHONE; dwHookSwitchDev:DWORD; lpdwVolume:LPDWORD):LONG;external KernelDLL name 'phoneGetVolume'; +function phoneInitializeEx(lphPhoneApp:LPHPHONEAPP; hInstance:HINST; lpfnCallback:PHONECALLBACK; lpszFriendlyAppName:LPCWSTR; + lpdwNumDevs:LPDWORD; lpdwAPIVersion:LPDWORD; lpPhoneInitializeExParams:LPPHONEINITIALIZEEXPARAMS):LONG; + external KernelDLL name 'phoneInitializeEx'; +function phoneNegotiateAPIVersion(hPhoneApp:HPHONEAPP; dwDeviceID:DWORD; dwAPILowVersion:DWORD; dwAPIHighVersion:DWORD; + lpdwAPIVersion:LPDWORD; lpExtensionID:LPPHONEEXTENSIONID):LONG;external KernelDLL name 'phoneNegotiateAPIVersion'; +function phoneNegotiateExtVersion(hPhoneApp:HPHONEAPP; dwDeviceID:DWORD; dwAPIVersion:DWORD; dwExtLowVersion:DWORD; + dwExtHighVersion:DWORD; lpdwExtVersion:LPDWORD):LONG;external KernelDLL name 'phoneNegotiateExtVersion'; +function phoneOpen(hPhoneApp:HPHONEAPP; dwDeviceID:DWORD; lphPhone:LPHPHONE; dwAPIVersion:DWORD; dwExtVersion:DWORD; + dwCallbackInstance:DWORD; dwPrivilege:DWORD):LONG;external KernelDLL name 'phoneOpen'; +function phoneSetGain(hPhone:HPHONE; dwHookSwitchDev:DWORD; dwGain:DWORD):LONG;external KernelDLL name 'phoneSetGain'; +function phoneSetHookSwitch(hPhone:HPHONE; dwHookSwitchDevs:DWORD; dwHookSwitchMode:DWORD):LONG; + external KernelDLL name 'phoneSetHookSwitch'; +function phoneSetRing(hPhone:HPHONE; dwRingMode:DWORD; dwVolume:DWORD):LONG;external KernelDLL name 'phoneSetRing'; +function phoneSetStatusMessages(hPhone:HPHONE; dwPhoneStates:DWORD; dwButtonModes:DWORD; dwButtonStates:DWORD):LONG; + external KernelDLL name 'phoneSetStatusMessages'; +function phoneSetVolume(hPhone:HPHONE; dwHookSwitchDev:DWORD; dwVolume:DWORD):LONG;external KernelDLL name 'phoneSetVolume'; +function phoneShutdown(hPhoneApp:HPHONEAPP):LONG;external KernelDLL name 'phoneShutdown'; + +function TAPIERROR_FORMATMESSAGE(const AErrCode: Longword): Longword; // C Macros conversion, may be wrong + +{$endif read_interface} + +{$ifdef read_implementation} + +function TAPIERROR_FORMATMESSAGE(const AErrCode: Longword): Longword; +begin + if AErrCode>$FFFF0000 then Exit(AErrCode and $0000FFFF); + if (AErrCode and $10000000)<>0 then Exit(AErrCode-$90000000+$F000); + Exit(AErrCode-$80000000+$E000); +end; + +{$endif read_implementation}