1{ 2 This file is part of the Free Pascal run time library. 3 This unit contains base definition for the Win32 API 4 Copyright (c) 1999-2000 by Florian Klaempfl, 5 member of the Free Pascal development team. 6 7 See the file COPYING.FPC, included in this distribution, 8 for details about the copyright. 9 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 **********************************************************************} 15 16{ 17 Base.h 18 19 Base definitions 20 21 Copyright (C) 1996, 1997 Free Software Foundation, Inc. 22 23 Author: Scott Christley <scottc@net-community.com> 24 25 This file is part of the Windows32 API Library. 26 27 This library is free software; you can redistribute it and/or 28 modify it under the terms of the GNU Library General Public 29 License as published by the Free Software Foundation; either 30 version 2 of the License, or (at your option) any later version. 31 32 This library is distributed in the hope that it will be useful, 33 but WITHOUT ANY WARRANTY; without even the implied warranty of 34 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 35 Library General Public License for more details. 36 37 If you are interested in a warranty or support for this source code, 38 contact Scott Christley <scottc@net-community.com> for more information. 39 40 You should have received a copy of the GNU Library General Public 41 License along with this library; see the file COPYING.LIB. 42 If not, write to the Free Software Foundation, 43 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 44} 45 46{$ifdef read_interface} 47 48{$PACKRECORDS C} 49 50 type 51 ATOM = word; 52 TAtom = ATOM; 53 54 WINBOOL = longbool; 55 BOOL = WINBOOL; 56 57 CALTYPE = cardinal; 58 CALID = cardinal; 59 60 CCHAR = char; 61 62 COLORREF = cardinal; 63 TCOLORREF = cardinal; 64 65 SHORT = smallint; 66 WINT = longint; 67 LONG = longint; 68 LONG64= int64; 69 ULONG64 = qword; // imagehlp header. 70 ULONG32 = cardinal; 71 DWORD = cardinal; 72 73 PINTEGER = ^longint; 74 PBOOL = ^BOOL; 75 76 LONGLONG = int64; 77 PLONGLONG = ^LONGLONG; 78 LPLONGLONG = ^LONGLONG; 79 ULONGLONG = qword; // used in AMD64 CONTEXT 80 PULONGLONG = ^ULONGLONG; // 81 DWORD64 = qword; // 82 PDWORD64 = ^DWORD64; // 83 84 85 INT_PTR = PtrInt; 86 PINT_PTR = ^INT_PTR; 87 UINT_PTR = PtrUInt; 88 PUINT_PTR = ^UINT_PTR; 89 LONG_PTR = PtrInt; 90 ULONG_PTR = PtrUInt; 91 DWORD_PTR = ULONG_PTR; 92 PDWORD_PTR = ^DWORD_PTR; 93 PULONG64 = ^ULONG64; 94 PULONG32 = ^ULONG32; 95 PULONG_PTR = ^ULONG_PTR; 96 PLONG64 = ^LONG64; 97 98 DWORDLONG = qword; { was unsigned long } 99 PDWORDLONG = ^DWORDLONG; 100 101 HANDLE = System.THandle; 102 HRESULT = System.HResult; 103 PHRESULT= ^HRESULT; 104 105 HACCEL = HANDLE; 106 HBITMAP = HANDLE; 107 HBRUSH = HANDLE; 108 HCOLORSPACE = HANDLE; 109 HCONV = HANDLE; 110 HCONVLIST = HANDLE; 111 HCURSOR = HANDLE; 112 HDBC = HANDLE; 113 HDC = HANDLE; 114 HDDEDATA = HANDLE; 115 HDESK = HANDLE; 116 HDEVNOTIFY = HANDLE; 117 HDROP = HANDLE; 118 HDWP = HANDLE; 119 HENHMETAFILE = HANDLE; 120 HENV = HANDLE; 121 HFILE = HANDLE; 122 HFONT = HANDLE; 123 HGDIOBJ = HANDLE; 124 HGLOBAL = HANDLE; 125 HGLRC = HANDLE; 126 HHOOK = HANDLE; 127 HICON = HANDLE; 128 HIMAGELIST = HANDLE; 129 HINST = HANDLE; { Not HINSTANCE, else it has problems with the var HInstance } 130 HKEY = HANDLE; 131 HKL = HANDLE; 132 HLOCAL = HANDLE; 133 HMENU = HANDLE; 134 HMETAFILE = HANDLE; 135 HMODULE = HANDLE; 136 HMONITOR = HANDLE; 137 HPALETTE = HANDLE; 138 HPEN = HANDLE; 139 HRASCONN = HANDLE; 140 HRGN = HANDLE; 141 HRSRC = HANDLE; 142 HSTMT = HANDLE; 143 HSTR = HANDLE; 144 HSZ = HANDLE; 145 HWINSTA = HANDLE; 146 HWND = HANDLE; 147 HTASK = HANDLE; 148 HRAWINPUT = HANDLE; 149 150 LANGID = word; 151 LCID = DWORD; 152 LCTYPE = DWORD; 153 LPARAM = LONG_PTR; 154 155 LP = ^word; 156 LPBOOL = ^WINBOOL; 157 LPBYTE = pbyte; 158 LPCCH = PCHAR; 159 LPCH = PCHAR; 160 161 LPCOLORREF = ^COLORREF; 162 163 LPCSTR = Pchar; 164{$ifdef UNICODE} 165 LPCTSTR = Pwidechar; 166{$else} 167 LPCTSTR = Pchar; 168{$endif} 169 170 LPCWCH = Pwidechar; 171 LPCWSTR = Pwidechar; 172 173 LPPCSTR = ^LPCSTR; 174 LPPCTSTR = ^LPCTSTR; 175 LPPCWSTR = ^LPCWSTR; 176 177 LPDWORD = ^DWORD; 178 179 LPHANDLE = ^HANDLE; 180 181 LPINT = ^longint; 182 LPLONG = ^longint; 183 184 LPSTR = Pchar; 185{$ifdef UNICODE} 186 LPTCH = Pwidechar; 187 LPTSTR = Pwidechar; 188{$else} 189 LPTCH = Pchar; 190 LPTSTR = Pchar; 191{$endif} 192 193 LRESULT = LONG_PTR; 194 PLRESULT= ^LRESULT; 195 196 LPVOID = pointer; 197 LPCVOID = pointer; 198 199 LPWCH = Pwidechar; 200 LPWORD = ^word; 201 LPWSTR = Pwidechar; 202 NWPSTR = Pwidechar; 203 204 LPPSTR = ^LPSTR; 205 LPPWSTR = ^LPWSTR; 206 LPPTSTR = ^LPTSTR; 207 208 PWINBOOL = ^WINBOOL; 209 210 PBYTE = System.PByte; 211 212 PCCH = PCHAR; 213 PCH = PCHAR; 214 215 PCSTR = Pchar; 216 217 PCWCH = Pwidechar; 218 PCWSTR = Pwidechar; 219 220 PDWORD = System.PDWORD; 221 222 PHANDLE = ^HANDLE; 223 PHKEY = ^HKEY; 224 225 PINT = ^longint; 226 PLONG = ^longint; 227 PSHORT = ^SHORT; 228 229 PSTR = Pchar; 230 PWSTR = LPWSTR; 231 232 PSZ = Pchar; 233{$ifdef UNICODE} 234 PTBYTE = ^word; 235 PTCH = Pwidechar; 236 PTCHAR = Pwidechar; 237 PTSTR = Pwidechar; 238{$else} 239 PTBYTE = ^byte; 240 PTCH = Pchar; 241 PTCHAR = Pchar; 242 PTSTR = Pchar; 243{$endif} 244 245 PUCHAR = ^byte; 246 PWCH = Pwidechar; 247 PWCHAR = Pwidechar; 248 249 PWORD = System.PWord; 250 PUINT = ^cardinal; 251 PULONG = ^cardinal; 252 PUSHORT = ^word; 253 254 PVOID = pointer; 255 256 RETCODE = SHORT; 257 258 SC_HANDLE = HANDLE; 259 SC_LOCK = LPVOID; 260 LPSC_HANDLE = ^SC_HANDLE; 261 262 SERVICE_STATUS_HANDLE = DWORD; 263 264 265{$ifdef UNICODE} 266 TBYTE = word; 267 TCHAR = widechar; 268 BCHAR = word; 269{$else} 270 TBYTE = byte; 271 TCHAR = ansichar; 272 BCHAR = BYTE; 273{$endif} 274 275 UCHAR = byte; 276 WCHAR = WideChar; 277 278 UINT = cardinal; 279 ULONG = cardinal; 280 USHORT = word; 281 282 WPARAM = LONG_PTR; 283 PLPSTR = ^LPSTR; 284 PLPWStr= ^LPWStr; 285 COLOR16 = ushort; 286{ 287 Enumerations 288} 289 290 ACL_INFORMATION_CLASS = (AclRevisionInformation = 1,AclSizeInformation 291 ); 292 293 _ACL_INFORMATION_CLASS = ACL_INFORMATION_CLASS; 294 295 MEDIA_TYPE = (Unknown,F5_1Pt2_512,F3_1Pt44_512,F3_2Pt88_512, 296 F3_20Pt8_512,F3_720_512,F5_360_512,F5_320_512, 297 F5_320_1024,F5_180_512,F5_160_512,RemovableMedia, 298 FixedMedia); 299 300 _MEDIA_TYPE = MEDIA_TYPE; 301 302 const 303 RASCS_DONE = $2000; 304 RASCS_PAUSED = $1000; 305 306 type 307 308 RASCONNSTATE = (RASCS_OpenPort = 0,RASCS_PortOpened, 309 RASCS_ConnectDevice,RASCS_DeviceConnected, 310 RASCS_AllDevicesConnected,RASCS_Authenticate, 311 RASCS_AuthNotify,RASCS_AuthRetry,RASCS_AuthCallback, 312 RASCS_AuthChangePassword,RASCS_AuthProject, 313 RASCS_AuthLinkSpeed,RASCS_AuthAck,RASCS_ReAuthenticate, 314 RASCS_Authenticated,RASCS_PrepareForCallback, 315 RASCS_WaitForModemReset,RASCS_WaitForCallback, 316 RASCS_Projected,RASCS_StartAuthentication, 317 RASCS_CallbackComplete,RASCS_LogonNetwork, 318 RASCS_Interactive = RASCS_PAUSED,RASCS_RetryAuthentication, 319 RASCS_CallbackSetByCaller,RASCS_PasswordExpired, 320 RASCS_Connected = RASCS_DONE,RASCS_Disconnected 321 ); 322 323 _RASCONNSTATE = RASCONNSTATE; 324 325 RASPROJECTION = (RASP_PppIp = $8021, RASP_PppIpx = $802B, RASP_PppNbf = $803F, 326 RASP_Amb = $10000); 327 328 _RASPROJECTION = RASPROJECTION; 329 330 SECURITY_IMPERSONATION_LEVEL = (SecurityAnonymous,SecurityIdentification, 331 SecurityImpersonation,SecurityDelegation 332 ); 333 334 _SECURITY_IMPERSONATION_LEVEL = SECURITY_IMPERSONATION_LEVEL; 335 336 SID_NAME_USE = (SidTypeUser = 1,SidTypeGroup,SidTypeDomain, 337 SidTypeAlias,SidTypeWellKnownGroup,SidTypeDeletedAccount, 338 SidTypeInvalid,SidTypeUnknown); 339 340 PSID_NAME_USE = ^SID_NAME_USE; 341 342 _SID_NAME_USE = SID_NAME_USE; 343 344 TOKEN_TYPE = ( 345 TokenPrimary = 1, 346 TokenImpersonation 347 ); 348 _TOKEN_TYPE = TOKEN_TYPE; 349 TTokenType = TOKEN_TYPE; 350 351 TOKEN_ELEVATION_TYPE = ( 352 TokenElevationTypeDefault = 1, 353 TokenElevationTypeFull, 354 TokenElevationTypeLimited 355 ); 356 _TOKEN_ELEVATION_TYPE = TOKEN_ELEVATION_TYPE; 357 TTokenElevationType = TOKEN_ELEVATION_TYPE; 358 359 TOKEN_INFORMATION_CLASS = ( 360 TokenUser = 1, 361 TokenGroups, 362 TokenPrivileges, 363 TokenOwner, 364 TokenPrimaryGroup, 365 TokenDefaultDacl, 366 TokenSource, 367 TokenType, 368 TokenImpersonationLevel, 369 TokenStatistics, 370 TokenRestrictedSids, 371 TokenSessionId, 372 TokenGroupsAndPrivileges, 373 TokenSessionReference, 374 TokenSandBoxInert, 375 TokenAuditPolicy, 376 TokenOrigin, 377 TokenElevationType, 378 TokenLinkedToken, 379 TokenElevation, 380 TokenHasRestrictions, 381 TokenAccessInformation, 382 TokenVirtualizationAllowed, 383 TokenVirtualizationEnabled, 384 TokenIntegrityLevel, 385 TokenUIAccess, 386 TokenMandatoryPolicy, 387 TokenLogonSid, 388 MaxTokenInfoClass // MaxTokenInfoClass should always be the last enum 389 ); 390 _TOKEN_INFORMATION_CLASS = TOKEN_INFORMATION_CLASS; 391 TTokenInformationClass = TOKEN_INFORMATION_CLASS; 392 393 _TOKEN_ELEVATION = record 394 TokenIsElevated: DWORD; 395 end; 396 TOKEN_ELEVATION = _TOKEN_ELEVATION; 397 TTokenElevation = _TOKEN_ELEVATION; 398 PTokenElevation = ^TTokenElevation; 399 400 _FINDEX_INFO_LEVELS = (FindExInfoStandard,FindExInfoBasic,FindExInfoMaxInfoLevel); 401 _FINDEX_SEARCH_OPS = (FindExSearchNameMatch, FindExSearchLimitToDirectories, 402 FindExSearchLimitToDevices, FindExSearchMaxSearchOp); 403 TFINDEX_INFO_LEVELS = _FINDEX_INFO_LEVELS; 404 FINDEX_INFO_LEVELS = _FINDEX_INFO_LEVELS; 405 PFINDEX_INFO_LEVELS = ^TFINDEX_INFO_LEVELS; 406 TFINDEX_SEARCH_OPS = _FINDEX_SEARCH_OPS; 407 FINDEX_SEARCH_OPS = _FINDEX_SEARCH_OPS; 408 PFINDEX_SEARCH_OPS = ^TFINDEX_SEARCH_OPS; 409 410 PARTITION_STYLE = (PARTITION_STYLE_MBR=0,PARTITION_STYLE_GPT,PARTITION_STYLE_RAW); 411 TPARTITION_STYLE = PARTITION_STYLE; 412 PPARTITION_STYLE = ^TPARTITION_STYLE; 413 414 { 415 Macros 416 } 417 418 MakeIntResourceA = PAnsiChar; 419 MakeIntResourceW = PWideChar; 420 {$ifdef UNICODE} 421 MakeIntResource = MakeIntResourceW; 422 {$else} 423 MakeIntResource = MakeIntResourceA; 424 {$endif} 425 426 { was #define dname(params) def_expr } 427 { argument types are unknown } 428 function GetBValue(rgb : longint) : BYTE; inline; 429 430 { was #define dname(params) def_expr } 431 { argument types are unknown } 432 function GetGValue(rgb : longint) : BYTE; inline; 433 434 { was #define dname(params) def_expr } 435 { argument types are unknown } 436 function GetRValue(rgb : longint) : BYTE; inline; 437 438 { was #define dname(params) def_expr } 439 { argument types are unknown } 440 function RGB(r,g,b : longint) : DWORD; inline; 441 442 { Not convertable by H2PAS 443 #define HANDLE_WM_NOTIFY(hwnd, wParam, lParam, fn) \ 444 (fn)((hwnd), (int)(wParam), (NMHDR FAR )(lParam)) 445 } 446 447 { was #define dname(params) def_expr } 448 { argument types are unknown } 449 function HIBYTE(w : longint) : BYTE; inline; 450 451 { was #define dname(params) def_expr } 452 { argument types are unknown } 453 function HIWORD(l : longint) : WORD; inline; 454 455 { was #define dname(params) def_expr } 456 { argument types are unknown } 457 function LOBYTE(w : longint) : BYTE; inline; 458 459 { was #define dname(params) def_expr } 460 { argument types are unknown } 461 function LOWORD(l : longint) : WORD; inline; 462 463 { was #define dname(params) def_expr } 464 { argument types are unknown } 465 function MAKELONG(a,b : longint) : LONG; inline; 466 467 { was #define dname(params) def_expr } 468 { argument types are unknown } 469 function MAKEWORD(a,b : longint) : WORD; inline; 470 471 { original Cygnus headers also had the following defined: } 472 { was #define dname(params) def_expr } 473 { argument types are unknown } 474 { return type might be wrong } 475 function SEXT_HIWORD(l : longint) : longint; inline; 476 { return type might be wrong } 477 478 { was #define dname(params) def_expr } 479 { argument types are unknown } 480 { return type might be wrong } 481 function ZEXT_HIWORD(l : longint) : longint; inline; 482 { return type might be wrong } 483 484 { was #define dname(params) def_expr } 485 { argument types are unknown } 486 function SEXT_LOWORD(l : longint) : longint; inline; 487 488 { was #define dname(params) def_expr } 489 { argument types are unknown } 490 { return type might be wrong } 491 function INDEXTOOVERLAYMASK(i : longint) : longint; inline; 492 { return type might be wrong } 493 494 { was #define dname(params) def_expr } 495 { argument types are unknown } 496 { return type might be wrong } 497 function INDEXTOSTATEIMAGEMASK(i : longint) : longint; inline; 498 { return type might be wrong } 499 500 { was #define dname(params) def_expr } 501 { argument types are unknown } 502 function MAKEINTATOM(i : longint) : LPTSTR; inline; 503 504 { was #define dname(params) def_expr } 505 { argument types are unknown } 506 { return type might be wrong } 507 function MAKELANGID(p,s : longint) : longint; inline; 508 { return type might be wrong } 509 510 { was #define dname(params) def_expr } 511 { argument types are unknown } 512 function PRIMARYLANGID(lgid : longint) : WORD; inline; 513 514 { was #define dname(params) def_expr } 515 { argument types are unknown } 516 { return type might be wrong } 517 function SUBLANGID(lgid : longint) : longint; inline; 518 { return type might be wrong } 519 520 { was #define dname(params) def_expr } 521 { argument types are unknown } 522 function LANGIDFROMLCID(lcid : longint) : WORD; inline; 523 524 { was #define dname(params) def_expr } 525 { argument types are unknown } 526 function SORTIDFROMLCID(lcid : longint) : WORD; inline; 527 528 { was #define dname(params) def_expr } 529 { argument types are unknown } 530 function MAKELCID(lgid,srtid : longint) : DWORD; inline; 531 532 { was #define dname(params) def_expr } 533 { argument types are unknown } 534 function MAKELPARAM(l,h : longint) : LPARAM; inline; 535 536 { was #define dname(params) def_expr } 537 { argument types are unknown } 538 function MAKELRESULT(l,h : longint) : LRESULT; inline; 539 540 { Not convertable by H2PAS 541 #define MAKEPOINTS(l) ( ((POINTS FAR ) & (l))) 542 } 543 { was #define dname(params) def_expr } 544 { argument types are unknown } 545 function MAKEROP4(fore,back : DWord ) : DWORD; inline; 546 547 { was #define dname(params) def_expr } 548 { argument types are unknown } 549 function MAKEWPARAM(l,h : longint) : WPARAM; inline; 550 551 function GET_X_LPARAM(lp : Windows.LParam) : longint; inline; 552 553 function GET_Y_LPARAM(lp : Windows.LParam) : longint; inline; 554 555 {$ifndef max} 556 { was #define dname(params) def_expr } 557 { argument types are unknown } 558 { return type might be wrong } 559 function max(a,b : longint) : longint; inline; 560 { return type might be wrong } 561 562{$endif} 563{$ifndef min} 564 { was #define dname(params) def_expr } 565 { argument types are unknown } 566 { return type might be wrong } 567 function min(a,b : longint) : longint; inline; 568 { return type might be wrong } 569 570{$endif} 571 { was #define dname(params) def_expr } 572 { argument types are unknown } 573 function PALETTEINDEX(i : longint) : COLORREF; inline; 574 575 { was #define dname(params) def_expr } 576 { argument types are unknown } 577 { return type might be wrong } 578 function PALETTERGB(r,g,b : longint) : longint; inline; 579 { return type might be wrong } 580 581 (* Not convertable by H2PAS 582 #define POINTSTOPOINT(pt, pts) {(pt).x = (SHORT) LOWORD(pts); \ 583 (pt).y = (SHORT) HIWORD(pts);} 584 #define POINTTOPOINTS(pt) \ 585 (MAKELONG((short) ((pt).x), (short) ((pt).y))) 586 *) 587 { already declared before 588 #define INDEXTOOVERLAYMASK(i) ((i) << 8) 589 #define INDEXTOSTATEIMAGEMASK(i) ((i) << 12) 590 } 591 { Not convertable by H2PAS 592 #ifdef UNICODE 593 #define TEXT(quote) L##quote 594 #else 595 #define TEXT(quote) quote 596 #endif 597 } 598 599 600 function IMAGE_ORDINAL64(Ordinal : uint64) : uint64; inline; 601 function IMAGE_ORDINAL32(Ordinal : cardinal) : cardinal;inline; 602 function IMAGE_SNAP_BY_ORDINAL64(Ordinal : uint64) : boolean; inline; 603 function IMAGE_SNAP_BY_ORDINAL32(Ordinal : cardinal) : boolean; inline; 604 {$ifdef WIN64} 605 function IMAGE_ORDINAL(Ordinal : uint64) : uint64; inline; 606 function IMAGE_SNAP_BY_ORDINAL(Ordinal : uint64) : boolean; inline; 607 {$else} 608 function IMAGE_ORDINAL(Ordinal : cardinal) : cardinal; inline; 609 function IMAGE_SNAP_BY_ORDINAL(Ordinal : cardinal) : boolean; inline; 610 {$endif} 611 612 613 614 { 615 Definitions for callback procedures 616 } 617 618 type 619 620 BFFCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPARAM; _para4:LPARAM):longint;stdcall; 621 622 LPCCHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT_PTR;stdcall; 623 624 LPCFHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT_PTR;stdcall; 625 626 PTHREAD_START_ROUTINE = Pointer; 627 628 LPTHREAD_START_ROUTINE = PTHREAD_START_ROUTINE; 629 630 EDITSTREAMCALLBACK = function (_para1:DWORD_PTR; _para2:LPBYTE; _para3:LONG; _para4:PLONG):DWORD;stdcall; 631 632 LPFRHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT_PTR;stdcall; 633 634 LPOFNHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT_PTR;stdcall; 635 636 LPPRINTHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT_PTR;stdcall; 637 638 LPSETUPHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT_PTR;stdcall; 639 640 DLGPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):LRESULT;stdcall; 641 642 PFNPROPSHEETCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPARAM):longint;stdcall; 643 644 LPSERVICE_MAIN_FUNCTION = procedure (_para1:DWORD; _para2:LPPTSTR);stdcall; 645 LPSERVICE_MAIN_FUNCTIONA = procedure (_para1:DWORD; _para2:LPPSTR);stdcall; 646 LPSERVICE_MAIN_FUNCTIONW = procedure (_para1:DWORD; _para2:LPPWSTR);stdcall; 647 648 PFNTVCOMPARE = function (_para1:LPARAM; _para2:LPARAM; _para3:LPARAM):longint;stdcall; 649 650 WNDPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):LRESULT;stdcall; 651 652 FARPROC = pointer; 653 654 TFarProc = FARPROC; 655 656 TFNWndProc = TFarProc; 657 658 PROC = FARPROC; 659 660 ENUMRESTYPEPROC = function (hModule:HMODULE; lpszType:LPTSTR; lParam:LONG_PTR):WINBOOL;stdcall; 661 ENUMRESTYPEPROCA = function (hModule:HMODULE; lpszType:LPSTR; lParam:LONG_PTR):WINBOOL;stdcall; 662 ENUMRESTYPEPROCW = function (hModule:HMODULE; lpszType:LPWSTR; lParam:LONG_PTR):WINBOOL;stdcall; 663 664 ENUMRESNAMEPROC = function (hModule:HMODULE; lpszType:LPCTSTR; lpszName:LPTSTR; lParam:LONG_PTR):WINBOOL;stdcall; 665 ENUMRESNAMEPROCA= function (hModule:HMODULE; lpszType:LPCSTR; lpszName:LPSTR; lParam:LONG_PTR):WINBOOL;stdcall; 666 ENUMRESNAMEPROCW= function (hModule:HMODULE; lpszType:LPCWSTR; lpszName:LPWSTR; lParam:LONG_PTR):WINBOOL;stdcall; 667 668 ENUMRESLANGPROC = function (hModule:HMODULE; lpszType:LPCTSTR; lpszName:LPCTSTR; wIDLanguage:WORD; lParam:LONG_PTR):WINBOOL;stdcall; 669 ENUMRESLANGPROCA= function (hModule:HMODULE; lpszType:LPCSTR; lpszName:LPCSTR; wIDLanguage:WORD; lParam:LONG_PTR):WINBOOL;stdcall; 670 ENUMRESLANGPROCW= function (hModule:HMODULE; lpszType:LPCWSTR; lpszName:LPCWSTR; wIDLanguage:WORD; lParam:LONG_PTR):WINBOOL;stdcall; 671 DESKTOPENUMPROC = FARPROC; 672 673 ENUMWINDOWSPROC = function (_para1:HWND; _para2:LPARAM):WINBOOL;stdcall; 674 675 ENUMWINDOWSTATIONPROC = function (_para1:LPTSTR; _para2:LPARAM):WINBOOL;stdcall; 676 ENUMWINDOWSTATIONPROCA = function (_para1:LPSTR; _para2:LPARAM):WINBOOL;stdcall; 677 ENUMWINDOWSTATIONPROCW = function (_para1:LPWSTR; _para2:LPARAM):WINBOOL;stdcall; 678 679 SENDASYNCPROC = procedure (_para1:HWND; _para2:UINT; _para3:ULONG_PTR; _para4:LRESULT);stdcall; 680 681 TIMERPROC = procedure (hWnd: HWND; uMsg: UINT; idEvent: UINT_PTR; dwTime: DWORD); stdcall; 682 683 GRAYSTRINGPROC = FARPROC; 684 685 DRAWSTATEPROC = function (_para1:HDC; _para2:LPARAM; _para3:WPARAM; _para4:longint; _para5:longint):WINBOOL;stdcall; 686 687 PROPENUMPROCEXA = function (_para1:HWND; _para2:LPCSTR; _para3:HANDLE; _para4:ULONG_PTR):WINBOOL;stdcall; 688 PROPENUMPROCEXW = function (_para1:HWND; _para2:LPCWSTR; _para3:HANDLE; _para4:ULONG_PTR):WINBOOL;stdcall; 689 PROPENUMPROCEX = function (_para1:HWND; _para2:LPCTSTR; _para3:HANDLE; _para4:ULONG_PTR):WINBOOL;stdcall; 690 691 PROPENUMPROCA = function (_para1:HWND; _para2:LPCSTR; _para3:HANDLE):WINBOOL;stdcall; 692 PROPENUMPROCW = function (_para1:HWND; _para2:LPCWSTR; _para3:HANDLE):WINBOOL;stdcall; 693 PROPENUMPROC = function (_para1:HWND; _para2:LPCTSTR; _para3:HANDLE):WINBOOL;stdcall; 694 695 HOOKPROC = function (_para1:longint; _para2:WPARAM; _para3:LPARAM):LRESULT;stdcall; 696 697 ENUMOBJECTSPROC = procedure (_para1:LPVOID; _para2:LPARAM);stdcall; 698 699 LINEDDAPROC = procedure (_para1:longint; _para2:longint; _para3:LPARAM);stdcall; 700 701 TABORTPROC = function (_para1:HDC; _para2:longint):WINBOOL;stdcall; 702 703 LPPAGEPAINTHOOK = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT_PTR;stdcall; 704 705 LPPAGESETUPHOOK = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT_PTR;stdcall; 706 707 ICMENUMPROCA = function (_para1:LPSTR; _para2:LPARAM):longint;stdcall; 708 ICMENUMPROCW = function (_para1:LPWSTR; _para2:LPARAM):longint;stdcall; 709 ICMENUMPROC = function (_para1:LPTSTR; _para2:LPARAM):longint;stdcall; 710 711 EDITWORDBREAKPROCEX = function (_para1:pchar; _para2:LONG; _para3:BYTE; _para4:WINT):LONG;stdcall; 712 713 PFNLVCOMPARE = function (_para1:LPARAM; _para2:LPARAM; _para3:LPARAM):longint;stdcall; 714 715 LOCALE_ENUMPROCA = function (_para1:LPSTR):WINBOOL;stdcall; 716 LOCALE_ENUMPROCW = function (_para1:LPWSTR):WINBOOL;stdcall; 717 LOCALE_ENUMPROC = function (_para1:LPTSTR):WINBOOL;stdcall; 718 719 CODEPAGE_ENUMPROCA = function (_para1:LPSTR):WINBOOL;stdcall; 720 CODEPAGE_ENUMPROCW = function (_para1:LPWSTR):WINBOOL;stdcall; 721 CODEPAGE_ENUMPROC = function (_para1:LPTSTR):WINBOOL;stdcall; 722 723 DATEFMT_ENUMPROCA = function (_para1:LPSTR):WINBOOL;stdcall; 724 DATEFMT_ENUMPROCW = function (_para1:LPWSTR):WINBOOL;stdcall; 725 DATEFMT_ENUMPROC = function (_para1:LPTSTR):WINBOOL;stdcall; 726 727 TIMEFMT_ENUMPROCA = function (_para1:LPSTR):WINBOOL;stdcall; 728 TIMEFMT_ENUMPROCW = function (_para1:LPWSTR):WINBOOL;stdcall; 729 TIMEFMT_ENUMPROC = function (_para1:LPTSTR):WINBOOL;stdcall; 730 731 CALINFO_ENUMPROCA= function (_para1:LPSTR):WINBOOL;stdcall; 732 CALINFO_ENUMPROCW= function (_para1:LPWSTR):WINBOOL;stdcall; 733 CALINFO_ENUMPROC = function (_para1:LPTSTR):WINBOOL;stdcall; 734 735 PHANDLER_ROUTINE = function (_para1:DWORD):WINBOOL;stdcall; 736 737 LPHANDLER_FUNCTION = function (_para1:DWORD):WINBOOL;stdcall; 738 739 PFNGETPROFILEPATHA = function (_para1:LPCSTR; _para2:LPSTR; _para3:UINT):UINT;stdcall; 740 PFNGETPROFILEPATHW = function (_para1:LPCWSTR; _para2:LPSTR; _para3:UINT):UINT;stdcall; 741 PFNGETPROFILEPATH = function (_para1:LPCTSTR; _para2:LPSTR; _para3:UINT):UINT;stdcall; 742 743 PFNRECONCILEPROFILEA = function (_para1:LPCSTR; _para2:LPCSTR; _para3:DWORD):UINT;stdcall; 744 PFNRECONCILEPROFILEW = function (_para1:LPCWSTR; _para2:LPCWSTR; _para3:DWORD):UINT;stdcall; 745 PFNRECONCILEPROFILE = function (_para1:LPCTSTR; _para2:LPCTSTR; _para3:DWORD):UINT;stdcall; 746 747 PFNPROCESSPOLICIESA = function (_para1:HWND; _para2:LPCSTR; _para3:LPCSTR; _para4:LPCSTR; _para5:DWORD):WINBOOL;stdcall; 748 PFNPROCESSPOLICIESW = function (_para1:HWND; _para2:LPCWSTR; _para3:LPCWSTR; _para4:LPCWSTR; _para5:DWORD):WINBOOL;stdcall; 749 PFNPROCESSPOLICIES = function (_para1:HWND; _para2:LPCTSTR; _para3:LPCTSTR; _para4:LPCTSTR; _para5:DWORD):WINBOOL;stdcall; 750 TIMEFMT_ENUMPROCEX = function (TimeFormat : LPWSTR; AppData : LPARAM) : BOOL; stdcall; 751 752 (* Not convertable by H2PAS 753 #define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0} 754 #define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1} 755 #define SECURITY_LOCAL_SID_AUTHORITY {0,0,0,0,0,2} 756 #define SECURITY_CREATOR_SID_AUTHORITY {0,0,0,0,0,3} 757 #define SECURITY_NON_UNIQUE_AUTHORITY {0,0,0,0,0,4} 758 #define SECURITY_NT_AUTHORITY {0,0,0,0,0,5} 759 *) 760 { TEXT("String") replaced by "String" below for H2PAS } 761 762 const 763 SE_CREATE_TOKEN_NAME = 'SeCreateTokenPrivilege'; 764 SE_ASSIGNPRIMARYTOKEN_NAME = 'SeAssignPrimaryTokenPrivilege'; 765 SE_LOCK_MEMORY_NAME = 'SeLockMemoryPrivilege'; 766 SE_INCREASE_QUOTA_NAME = 'SeIncreaseQuotaPrivilege'; 767 SE_UNSOLICITED_INPUT_NAME = 'SeUnsolicitedInputPrivilege'; 768 SE_MACHINE_ACCOUNT_NAME = 'SeMachineAccountPrivilege'; 769 SE_TCB_NAME = 'SeTcbPrivilege'; 770 SE_SECURITY_NAME = 'SeSecurityPrivilege'; 771 SE_TAKE_OWNERSHIP_NAME = 'SeTakeOwnershipPrivilege'; 772 SE_LOAD_DRIVER_NAME = 'SeLoadDriverPrivilege'; 773 SE_SYSTEM_PROFILE_NAME = 'SeSystemProfilePrivilege'; 774 SE_SYSTEMTIME_NAME = 'SeSystemtimePrivilege'; 775 SE_PROF_SINGLE_PROCESS_NAME = 'SeProfileSingleProcessPrivilege'; 776 SE_INC_BASE_PRIORITY_NAME = 'SeIncreaseBasePriorityPrivilege'; 777 SE_CREATE_PAGEFILE_NAME = 'SeCreatePagefilePrivilege'; 778 SE_CREATE_PERMANENT_NAME = 'SeCreatePermanentPrivilege'; 779 SE_BACKUP_NAME = 'SeBackupPrivilege'; 780 SE_RESTORE_NAME = 'SeRestorePrivilege'; 781 SE_SHUTDOWN_NAME = 'SeShutdownPrivilege'; 782 SE_DEBUG_NAME = 'SeDebugPrivilege'; 783 SE_AUDIT_NAME = 'SeAuditPrivilege'; 784 SE_SYSTEM_ENVIRONMENT_NAME = 'SeSystemEnvironmentPrivilege'; 785 SE_CHANGE_NOTIFY_NAME = 'SeChangeNotifyPrivilege'; 786 SE_REMOTE_SHUTDOWN_NAME = 'SeRemoteShutdownPrivilege'; 787 { Not convertable by H2PAS 788 #define SERVICES_ACTIVE_DATABASEW L"ServicesActive" 789 #define SERVICES_FAILED_DATABASEW L"ServicesFailed" 790 } 791 SERVICES_ACTIVE_DATABASEA = 'ServicesActive'; 792 SERVICES_FAILED_DATABASEA = 'ServicesFailed'; 793 SERVICES_ACTIVE_DATABASEW = 'ServicesActive'#0000; 794 SERVICES_FAILED_DATABASEW = 'ServicesFailed'#0000; 795 796 { Not convertable by H2PAS 797 #define SC_GROUP_IDENTIFIERW L'+' 798 } 799 SC_GROUP_IDENTIFIERA = '+'; 800 SC_GROUP_IDENTIFIERW = '+'#0000; 801{$ifdef UNICODE} 802 SERVICES_ACTIVE_DATABASE = SERVICES_ACTIVE_DATABASEW; 803 SERVICES_FAILED_DATABASE = SERVICES_FAILED_DATABASEW; 804 SC_GROUP_IDENTIFIER = SC_GROUP_IDENTIFIERW; 805{$else} 806 SERVICES_ACTIVE_DATABASE = SERVICES_ACTIVE_DATABASEA; 807 SERVICES_FAILED_DATABASE = SERVICES_FAILED_DATABASEA; 808 SC_GROUP_IDENTIFIER = SC_GROUP_IDENTIFIERA; 809{$endif} 810 811type 812 813 { PFNCALLBACK = CALLB; } 814 PFNCALLBACK = function(_para1, _para2: UINT;_para3: HCONV;_para4, _para5: HSZ; _para6: HDDEDATA;_para7 ,_para8 :DWORD): HDDEData;stdcall; 815 { CALLB = procedure ;CDECL; } 816 CALLB = PFNCALLBACK; 817 818 819 SECURITY_CONTEXT_TRACKING_MODE = WINBOOL; 820 { End of stuff from ddeml.h in old Cygnus headers } 821 { ----------------------------------------------- } 822 823 WNDENUMPROC = FARPROC; 824 825 ENHMFENUMPROC = FARPROC; 826 827 CCSTYLE = DWORD; 828 829 PCCSTYLE = ^CCSTYLE; 830 831 LPCCSTYLE = ^CCSTYLE; 832 833 CCSTYLEFLAGA = DWORD; 834 835 PCCSTYLEFLAGA = ^CCSTYLEFLAGA; 836 837 LPCCSTYLEFLAGA = ^CCSTYLEFLAGA; 838 839{$endif read_interface} 840 841 842{$ifdef read_implementation} 843 844 { was #define dname(params) def_expr } 845 { argument types are unknown } 846 function GetBValue(rgb : longint) : BYTE; 847 begin 848 GetBValue:=BYTE(rgb shr 16); 849 end; 850 851 { was #define dname(params) def_expr } 852 { argument types are unknown } 853 function GetGValue(rgb : longint) : BYTE; 854 begin 855 GetGValue:=BYTE((WORD(rgb)) shr 8); 856 end; 857 858 { was #define dname(params) def_expr } 859 { argument types are unknown } 860 function GetRValue(rgb : longint) : BYTE; 861 begin 862 GetRValue:=BYTE(rgb); 863 end; 864 865 { was #define dname(params) def_expr } 866 { argument types are unknown } 867 function RGB(r,g,b : longint) : DWORD; 868 begin 869 RGB:=DWORD(((DWORD(BYTE(r))) or ((DWORD(WORD(g))) shl 8)) or ((DWORD(BYTE(b))) shl 16)); 870 end; 871 872 { was #define dname(params) def_expr } 873 { argument types are unknown } 874 function HIBYTE(w : longint) : BYTE; 875 begin 876 HIBYTE:=BYTE(((WORD(w)) shr 8) and $FF); 877 end; 878 879 { was #define dname(params) def_expr } 880 { argument types are unknown } 881 function HIWORD(l : longint) : WORD; 882 begin 883 HIWORD:=WORD(((DWORD(l)) shr 16) and $FFFF); 884 end; 885 886 { was #define dname(params) def_expr } 887 { argument types are unknown } 888 function LOBYTE(w : longint) : BYTE; 889 begin 890 LOBYTE:=BYTE(w); 891 end; 892 893 { was #define dname(params) def_expr } 894 { argument types are unknown } 895 function LOWORD(l : longint) : WORD; 896 begin 897 LOWORD:=WORD(l); 898 end; 899 900 { was #define dname(params) def_expr } 901 { argument types are unknown } 902 function MAKELONG(a,b : longint) : LONG; 903 begin 904 MAKELONG:=LONG((WORD(a)) or ((DWORD(WORD(b))) shl 16)); 905 end; 906 907 { was #define dname(params) def_expr } 908 { argument types are unknown } 909 function MAKEWORD(a,b : longint) : WORD; 910 begin 911 MAKEWORD:=WORD((BYTE(a)) or ((WORD(BYTE(b))) shl 8)); 912 end; 913 914 { was #define dname(params) def_expr } 915 { argument types are unknown } 916 { return type might be wrong } 917 function SEXT_HIWORD(l : longint) : longint; 918 { return type might be wrong } 919 begin 920 SEXT_HIWORD:=(longint(l)) shr 16; 921 end; 922 923 { was #define dname(params) def_expr } 924 { argument types are unknown } 925 { return type might be wrong } 926 function ZEXT_HIWORD(l : longint) : longint; 927 { return type might be wrong } 928 begin 929 ZEXT_HIWORD:=(cardinal(l)) shr 16; 930 end; 931 932 { was #define dname(params) def_expr } 933 { argument types are unknown } 934 function SEXT_LOWORD(l : longint) : longint; 935 begin 936 SEXT_LOWORD:=longint(SHORT(l)); 937 end; 938 939 { was #define dname(params) def_expr } 940 { argument types are unknown } 941 { return type might be wrong } 942 function INDEXTOOVERLAYMASK(i : longint) : longint; 943 { return type might be wrong } 944 begin 945 INDEXTOOVERLAYMASK:=i shl 8; 946 end; 947 948 { was #define dname(params) def_expr } 949 { argument types are unknown } 950 { return type might be wrong } 951 function INDEXTOSTATEIMAGEMASK(i : longint) : longint; 952 { return type might be wrong } 953 begin 954 INDEXTOSTATEIMAGEMASK:=i shl 12; 955 end; 956 957 { was #define dname(params) def_expr } 958 { argument types are unknown } 959 function MAKEINTATOM(i : longint) : LPTSTR; 960 begin 961 MAKEINTATOM:=LPTSTR(ULONG_PTR(WORD(i))); 962 end; 963 964 965 { was #define dname(params) def_expr } 966 { argument types are unknown } 967 { return type might be wrong } 968 function MAKELANGID(p,s : longint) : longint; 969 { return type might be wrong } 970 begin 971 MAKELANGID:=((WORD(s)) shl 10) or (WORD(p)); 972 end; 973 974 { was #define dname(params) def_expr } 975 { argument types are unknown } 976 function PRIMARYLANGID(lgid : longint) : WORD; 977 begin 978 { PRIMARYLANGID:=WORD(lgid(@($3ff))); 979 h2pas error here corrected by hand PM } 980 PRIMARYLANGID:=WORD(lgid) and ($3ff); 981 end; 982 983 { was #define dname(params) def_expr } 984 { argument types are unknown } 985 { return type might be wrong } 986 function SUBLANGID(lgid : longint) : longint; 987 { return type might be wrong } 988 begin 989 SUBLANGID:=(WORD(lgid)) shr 10; 990 end; 991 992 { was #define dname(params) def_expr } 993 { argument types are unknown } 994 function LANGIDFROMLCID(lcid : longint) : WORD; 995 begin 996 LANGIDFROMLCID:=WORD(lcid); 997 end; 998 999 { was #define dname(params) def_expr } 1000 { argument types are unknown } 1001 function SORTIDFROMLCID(lcid : longint) : WORD; 1002 begin 1003 SORTIDFROMLCID:=WORD(((DWORD(lcid)) and $000FFFFF) shr 16); 1004 end; 1005 1006 { was #define dname(params) def_expr } 1007 { argument types are unknown } 1008 function MAKELCID(lgid,srtid : longint) : DWORD; 1009 begin 1010 MAKELCID:=DWORD(((DWORD(WORD(srtid))) shl 16) or (DWORD(WORD(lgid)))); 1011 end; 1012 1013 { was #define dname(params) def_expr } 1014 { argument types are unknown } 1015 function MAKELPARAM(l,h : longint) : LPARAM; 1016 begin 1017 MAKELPARAM:=LPARAM(MAKELONG(l,h)); 1018 end; 1019 1020 { was #define dname(params) def_expr } 1021 { argument types are unknown } 1022 function MAKELRESULT(l,h : longint) : LRESULT; 1023 begin 1024 MAKELRESULT:=LRESULT(MAKELONG(l,h)); 1025 end; 1026 1027 { was #define dname(params) def_expr } 1028 { argument types are unknown } 1029 function MAKEROP4(fore,back : DWOrd ) : DWORD; 1030 begin 1031 MAKEROP4:=((back shl 8) and $FF000000) or fore; 1032 end; 1033 1034 { was #define dname(params) def_expr } 1035 { argument types are unknown } 1036 function MAKEWPARAM(l,h : longint) : WPARAM; 1037 begin 1038 MAKEWPARAM:=WPARAM(MAKELONG(l,h)); 1039 end; 1040 1041 function GET_X_LPARAM(lp : Windows.LParam) : longint; 1042 begin 1043 result:=smallint(LOWORD(lp)); 1044 end; 1045 1046 function GET_Y_LPARAM(lp : Windows.LParam) : longint; 1047 begin 1048 result:=smallint(HIWORD(lp)); 1049 end; 1050 1051 { was #define dname(params) def_expr } 1052 { argument types are unknown } 1053 { return type might be wrong } 1054 function max(a,b : longint) : longint; 1055 begin 1056 if a > b then 1057 max:=a 1058 else 1059 max:=b; 1060 end; 1061 1062 { was #define dname(params) def_expr } 1063 { argument types are unknown } 1064 { return type might be wrong } 1065 function min(a,b : longint) : longint; 1066 begin 1067 if a < b then 1068 min:=a 1069 else 1070 min:=b; 1071 end; 1072 1073 { was #define dname(params) def_expr } 1074 { argument types are unknown } 1075 function PALETTEINDEX(i : longint) : COLORREF; 1076 begin 1077 PALETTEINDEX:=COLORREF($01000000 or (DWORD(WORD(i)))); 1078 end; 1079 1080 { was #define dname(params) def_expr } 1081 { argument types are unknown } 1082 { return type might be wrong } 1083 function PALETTERGB(r,g,b : longint) : longint; 1084 { return type might be wrong } 1085 begin 1086 PALETTERGB:=$02000000 or (RGB(r,g,b)); 1087 end; 1088 1089 function IMAGE_ORDINAL64(Ordinal : uint64) : uint64; 1090 begin 1091 IMAGE_ORDINAL64:=Ordinal and $ffff; 1092 end; 1093 1094 function IMAGE_ORDINAL32(Ordinal : cardinal) : cardinal; 1095 begin 1096 IMAGE_ORDINAL32:=Ordinal and $ffff; 1097 end; 1098 1099 function IMAGE_SNAP_BY_ORDINAL64(Ordinal : uint64) : boolean; 1100 begin 1101 IMAGE_SNAP_BY_ORDINAL64:=(Ordinal and IMAGE_ORDINAL_FLAG64)<>0; 1102 end; 1103 1104 function IMAGE_SNAP_BY_ORDINAL32(Ordinal : cardinal) : boolean; 1105 begin 1106 IMAGE_SNAP_BY_ORDINAL32:=(Ordinal and IMAGE_ORDINAL_FLAG32)<>0; 1107 end; 1108 1109 {$ifdef win64} 1110 function IMAGE_ORDINAL(Ordinal : uint64) : uint64; 1111 begin 1112 IMAGE_ORDINAL:=IMAGE_ORDINAL64(Ordinal); 1113 end; 1114 1115 1116 function IMAGE_SNAP_BY_ORDINAL(Ordinal : uint64) : boolean; 1117 begin 1118 IMAGE_SNAP_BY_ORDINAL:=IMAGE_SNAP_BY_ORDINAL64(Ordinal); 1119 end; 1120 1121 {$else} 1122 1123 function IMAGE_ORDINAL(Ordinal : cardinal) : cardinal; 1124 begin 1125 IMAGE_ORDINAL:=IMAGE_ORDINAL32(Ordinal); 1126 end; 1127 1128 function IMAGE_SNAP_BY_ORDINAL(Ordinal : cardinal) : boolean; 1129 begin 1130 IMAGE_SNAP_BY_ORDINAL:=IMAGE_SNAP_BY_ORDINAL32(Ordinal); 1131 end; 1132 {$endif} 1133{$endif read_implementation} 1134 1135