win32.inc 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. {
  2. $Id$
  3. This file contains the Win32-API import declarations
  4. for the system unit and the DOS unit
  5. This file is part of the Free Pascal run time library.
  6. Copyright (c) 1997,98 by Florian Klaempfl,
  7. member of the Free Pascal development team.
  8. See the file COPYING.FPC, included in this distribution,
  9. for details about the copyright.
  10. This program is distributed in the hope that it will be useful,
  11. but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  13. **********************************************************************}
  14. const
  15. { constants for GetStdHandle }
  16. STD_INPUT_HANDLE = $fffffff6;
  17. STD_OUTPUT_HANDLE = $fffffff5;
  18. STD_ERROR_HANDLE = $fffffff4;
  19. INVALID_HANDLE_VALUE = $ffffffff;
  20. { flags for CreateFile }
  21. GENERIC_READ=$80000000;
  22. GENERIC_WRITE=$40000000;
  23. CREATE_NEW = 1;
  24. CREATE_ALWAYS = 2;
  25. OPEN_EXISTING = 3;
  26. OPEN_ALWAYS = 4;
  27. TRUNCATE_EXISTING = 5;
  28. FILE_ATTRIBUTE_ARCHIVE = 32;
  29. FILE_ATTRIBUTE_COMPRESSED = 2048;
  30. FILE_ATTRIBUTE_NORMAL = 128;
  31. FILE_ATTRIBUTE_DIRECTORY = 16;
  32. FILE_ATTRIBUTE_HIDDEN = 2;
  33. FILE_ATTRIBUTE_READONLY = 1;
  34. FILE_ATTRIBUTE_SYSTEM = 4;
  35. FILE_ATTRIBUTE_TEMPORARY = 256;
  36. { flags for SetFilePos }
  37. FILE_BEGIN = 0;
  38. FILE_CURRENT = 1;
  39. FILE_END = 2;
  40. type
  41. UINT = longint;
  42. LPDWORD = ^DWORD;
  43. BOOL = longint;
  44. {$ifdef UNICODE}
  45. LPTCH = ^word;
  46. LPTSTR = ^word;
  47. LPCTSTR = ^word;
  48. {$else UNICODE}
  49. LPTCH = ^char;
  50. LPTSTR = ^char;
  51. LPCTSTR = ^char;
  52. {$endif UNICODE}
  53. PVOID = pointer;
  54. LPVOID = pointer;
  55. LPCVOID = pointer;
  56. HANDLE = pointer;
  57. HLOCAL = HANDLE;
  58. PSTR = pchar;
  59. OVERLAPPED = record
  60. Internal : DWORD;
  61. InternalHigh : DWORD;
  62. Offset : DWORD;
  63. OffsetHigh : DWORD;
  64. hEvent : HANDLE;
  65. end;
  66. LPOVERLAPPED = ^OVERLAPPED;
  67. SYSTEMTIME = record
  68. wYear,wMonth,wDayOfWeek,wDay,
  69. wHour,wMinute,wSecond,WMilliseconds : word;
  70. end;
  71. FILETIME = record
  72. dwLowDateTime : longint;
  73. dwHighDateTime : longint;
  74. end;
  75. PFILETIME = ^FILETIME;
  76. { command line/enviroment functions }
  77. function GetCommandLine : LPTSTR;
  78. external 'kernel32' name 'GetCommandLineA';
  79. function GetEnvironmentStrings : pchar;
  80. external 'kernel32' name 'GetEnvironmentStringsA';
  81. function FreeEnvironmentStrings(p : pchar) : boolean;
  82. external 'kernel32' name 'FreeEnvironmentStringsA';
  83. { string functions
  84. function lstrlen(lpString:LPCTSTR):longint;external;
  85. function lstrcat(lpString1:LPTSTR; lpString2:LPCTSTR):LPTSTR;external;
  86. function lstrcpy(lpString1:LPTSTR; lpString2:LPCTSTR):LPTSTR;external;
  87. }
  88. { process functions }
  89. procedure ExitProcess(uExitCode : UINT);
  90. external 'kernel32' name 'ExitProcess';
  91. { file functions }
  92. function GetStdHandle(nStdHandle:DWORD):HANDLE;
  93. external 'kernel32' name 'GetStdHandle';
  94. function WriteFile(fh:longint;buf:pointer;len:longint;var loaded:longint;
  95. overlap:pointer):longint;
  96. external 'kernel32' name 'WriteFile';
  97. function ReadFile(fh:longint;buf:pointer;len:longint;var loaded:longint;
  98. overlap:pointer):longint;
  99. external 'kernel32' name 'ReadFile';
  100. function CloseHandle(h : longint) : longint;
  101. external 'kernel32' name 'CloseHandle';
  102. function DeleteFile(p : pchar) : longint;
  103. external 'kernel32' name 'DeleteFileA';
  104. function MoveFile(old,_new : pchar) : longint;
  105. external 'kernel32' name 'MoveFileA';
  106. function SetFilePointer(l1,l2 : longint;l3 : pointer;l4 : longint) : longint;
  107. external 'kernel32' name 'SetFilePointer';
  108. function GetFileSize(h:longint;p:pointer) : longint;
  109. external 'kernel32' name 'GetFileSize';
  110. function CreateFile(name : pointer;access,sharing : longint;
  111. security : pointer;how,attr,template : longint) : longint;
  112. external 'kernel32' name 'CreateFileA';
  113. function CreateDirectory(name : pointer;sec : pointer) : longint;
  114. external 'kernel32' name 'CreateDirectoryA';
  115. function RemoveDirectory(name:pointer):longint;
  116. external 'kernel32' name 'RemoveDirectoryA';
  117. function SetCurrentDirectory(name : pointer) : longint;
  118. external 'kernel32' name 'SetCurrentDirectoryA';
  119. function GetCurrentDirectory(bufsize : longint;name : pchar) : longint;
  120. external 'kernel32' name 'GetCurrentDirectoryA';
  121. function SetFileAttributes(lpFileName : pchar;dwFileAttributes : longint) : boolean;
  122. external 'kernel32' name 'SetFileAttributesA';
  123. function GetFileAttributes(lpFileName : pchar) : longint;
  124. external 'kernel32' name 'GetFileAttributesA';
  125. function GetFileTime(h : longint;creation,lastaccess,lastwrite : PFILETIME) : boolean;
  126. external 'kernel32' name 'GetFileTime';
  127. function SetFileTime(h : longint;creation,lastaccess,lastwrite : PFILETIME) : boolean;
  128. external 'kernel32' name 'SetFileTime';
  129. function SetEndOfFile(h : longint) : boolean;
  130. external 'kernel32' name 'SetEndOfFile';
  131. { module functions }
  132. function GetModuleFileName(l1:longint;p:pointer;l2:longint):longint;
  133. external 'kernel32' name 'GetModuleFileNameA';
  134. procedure GetStartupInfo(p : pointer);
  135. external 'kernel32' name 'GetStartupInfoA';
  136. function GetModuleHandle(p : pointer) : longint;
  137. external 'kernel32' name 'GetModuleHandleA';
  138. { memory functions }
  139. function GlobalAlloc(mode,size:longint):longint;
  140. external 'kernel32' name 'GlobalAlloc';
  141. function GlobalHandle(p:pointer):longint;
  142. external 'kernel32' name 'GlobalHandle';
  143. function GlobalLock(handle:longint):pointer;
  144. external 'kernel32' name 'GlobalLock';
  145. function GlobalUnlock(h:longint):longint;
  146. external 'kernel32' name 'GlobalUnlock';
  147. function GlobalFree(h:longint):longint;
  148. external 'kernel32' name 'GlobalUnlock';
  149. procedure GlobalMemoryStatus(p:pointer);
  150. external 'kernel32' name 'GlobalMemoryStatus';
  151. function LocalAlloc(uFlags : UINT;uBytes :UINT) : HLOCAL;
  152. external 'kernel32' name 'LocalAlloc';
  153. function LocalFree(hMem:HLOCAL):HLOCAL;
  154. external 'kernel32' name 'LocalFree';
  155. { time and date functions }
  156. procedure GetLocalTime(var t : SYSTEMTIME);
  157. external 'kernel32' name 'GetLocalTime';
  158. function SetLocalTime(const t : SYSTEMTIME) : boolean;
  159. external 'kernel32' name 'SetLocalTime';
  160. function FileTimeToDosDateTime(const ft : FILETIME;var data,time : word) : boolean;
  161. external 'kernel32' name 'FileTimeToDosDateTime';
  162. function DosDateTimeToFileTime(date,time : word;var ft : FILETIME) : boolean;
  163. external 'kernel32' name 'DosDateTimeToFileTime';
  164. function GetTickCount : longint;
  165. external 'kernel32' name 'GetTickCount';
  166. function FileTimeToLocalFileTime(const ft : FILETIME;var lft : FILETIME) : boolean;
  167. external 'kernel32' name 'FileTimeToLocalFileTime';
  168. function LocalFileTimeToFileTime(const lft : FILETIME;var ft : FILETIME) : boolean;
  169. external 'kernel32' name 'LocalFileTimeToFileTime';
  170. { misc. functions }
  171. function GetLastError : DWORD;
  172. external 'kernel32' name 'GetLastError';
  173. function MessageBox(w1:longint;l1,l2:pointer;w2:longint):longint;
  174. external 'user32' name 'MessageBoxA';
  175. function GetVersion : longint;
  176. external 'kernel32' name 'GetVersion';
  177. {
  178. $Log$
  179. Revision 1.6 1998-05-06 12:37:22 michael
  180. + Removed log from before restored version.
  181. Revision 1.5 1998/04/27 18:25:36 florian
  182. + constants for CreateFile added
  183. Revision 1.4 1998/04/26 22:37:22 florian
  184. * some small extensions
  185. Revision 1.3 1998/04/26 21:49:58 florian
  186. + more stuff added (??dir procedures etc.)
  187. Revision 1.2 1998/03/27 00:50:22 peter
  188. * small fixes so it compiles
  189. Revision 1.1.1.1 1998/03/25 11:18:47 root
  190. * Restored version
  191. }