win32.inc 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. {
  2. $Id$
  3. This file is part of the Free Pascal run time library.
  4. Copyright (c) 1993,97 by Florian Klaempfl,
  5. member of the Free Pascal development team.
  6. See the file COPYING.FPC, included in this distribution,
  7. for details about the copyright.
  8. This program is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  11. **********************************************************************}
  12. const
  13. STD_INPUT_HANDLE = $fffffff6;
  14. STD_OUTPUT_HANDLE = $fffffff5;
  15. STD_ERROR_HANDLE = $fffffff4;
  16. INVALID_HANDLE_VALUE = $ffffffff;
  17. LMEM_FIXED = 0;
  18. type
  19. UINT = longint;
  20. LPDWORD = ^DWORD;
  21. BOOL = longint;
  22. {$ifdef UNICODE}
  23. LPTCH = ^word;
  24. LPTSTR = ^word;
  25. LPCTSTR = ^word;
  26. {$else UNICODE}
  27. LPTCH = ^char;
  28. LPTSTR = ^char;
  29. LPCTSTR = ^char;
  30. {$endif UNICODE}
  31. PVOID = pointer;
  32. LPVOID = pointer;
  33. LPCVOID = pointer;
  34. HANDLE = pointer;
  35. HLOCAL = HANDLE;
  36. PSTR = pchar;
  37. OVERLAPPED = record
  38. Internal : DWORD;
  39. InternalHigh : DWORD;
  40. Offset : DWORD;
  41. OffsetHigh : DWORD;
  42. hEvent : HANDLE;
  43. end;
  44. LPOVERLAPPED = ^OVERLAPPED;
  45. { command line/enviroment functions }
  46. function GetCommandLine : LPTSTR;external 'kernel32' name 'GetCommandLineA';
  47. function GetEnvironmentStrings : LPVOID;[C];
  48. { string functions }
  49. function lstrlen(lpString:LPCTSTR):longint;[C];
  50. function lstrcat(lpString1:LPTSTR; lpString2:LPCTSTR):LPTSTR;[C];
  51. function lstrcpy(lpString1:LPTSTR; lpString2:LPCTSTR):LPTSTR;[C];
  52. { process functions }
  53. procedure ExitProcess(uExitCode : UINT);external 'kernel32' name 'ExitProcess';
  54. { file functions }
  55. function GetStdHandle(nStdHandle:DWORD):HANDLE;external 'kernel32' name 'GetStdHandle';
  56. function WriteFile(fh:longint;buf:pointer;len:longint;var loaded:longint;
  57. overlap:pointer):longint;external 'kernel32' name 'WriteFile';
  58. function ReadFile(fh:longint;buf:pointer;len:longint;var loaded:longint;
  59. overlap:pointer):longint;external 'kernel32' name 'ReadFile';
  60. function CloseHandle(h : longint) : longint;external 'kernel32' name 'CloseHandle';
  61. function DeleteFile(p : pchar) : longint;external 'kernel32' name 'DeleteFileA';
  62. function MoveFile(old,_new : pchar) : longint;external 'kernel32' name 'MoveFileA';
  63. function SetFilePointer(l1,l2 : longint;l3 : pointer;l4 : longint) : longint;
  64. external 'kernel32' name 'SetFilePointer';
  65. { module functions }
  66. function GetModuleFileName(l1:longint;p:pointer;l2:longint):longint;external 'kernel32' name 'GetModuleFileNameA';
  67. procedure GetStartupInfo(p : pointer);external 'kernel32' name 'GetStartupInfoA';
  68. function GetModuleHandle(p : pointer) : longint;external 'kernel32' name 'GetModuleHandleA';
  69. { memory functions }
  70. function GlobalAlloc(mode,size:longint):longint;external 'kernel32' name 'GlobalAlloc';
  71. function GlobalHandle(p:pointer):longint;external 'kernel32' name 'GlobalHandle';
  72. function GlobalLock(handle:longint):pointer;external 'kernel32' name 'GlobalLock';
  73. function GlobalUnlock(h:longint):longint;external 'kernel32' name 'GlobalUnlock';
  74. function GlobalFree(h:longint):longint;external 'kernel32' name 'GlobalUnlock';
  75. procedure GlobalMemoryStatus(p:pointer);external 'kernel32' name 'GlobalMemoryStatus';
  76. function LocalAlloc(uFlags : UINT;uBytes :UINT) : HLOCAL;external 'kernel32' name 'LocalAlloc';
  77. function LocalFree(hMem:HLOCAL):HLOCAL;external 'kernel32' name 'LocalFree';
  78. { misc. functions }
  79. function GetLastError : DWORD;external 'kernel32' name 'GetLastError';
  80. function messagebox(w1:longint;l1,l2:pointer;w2:longint):longint;external 'user32' name 'MessageBoxA';
  81. {
  82. $Log$
  83. Revision 1.2 1998-03-27 00:50:22 peter
  84. * small fixes so it compiles
  85. Revision 1.1.1.1 1998/03/25 11:18:47 root
  86. * Restored version
  87. Revision 1.5 1998/03/05 22:37:37 florian
  88. * some stuff added
  89. Revision 1.4 1998/01/26 12:02:33 michael
  90. + Added log at the end
  91. Working file: rtl/win32/win32.inc
  92. description:
  93. ----------------------------
  94. revision 1.3
  95. date: 1997/12/19 11:47:09; author: florian; state: Exp; lines: +2 -2
  96. *** empty log message ***
  97. ----------------------------
  98. revision 1.2
  99. date: 1997/12/01 12:42:45; author: michael; state: Exp; lines: +15 -0
  100. + added copyright reference in header.
  101. ----------------------------
  102. revision 1.1
  103. date: 1997/11/27 10:15:33; author: florian; state: Exp;
  104. Win32 files added (they are untested)
  105. =============================================================================
  106. }