📄 jclwin32.pas
字号:
{**************************************************************************************************}
{ WARNING: JEDI preprocessor generated unit. Do not edit. }
{**************************************************************************************************}
{**************************************************************************************************}
{ }
{ Project JEDI Code Library (JCL) }
{ }
{ The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); }
{ you may not use this file except in compliance with the License. You may obtain a copy of the }
{ License at http://www.mozilla.org/MPL/ }
{ }
{ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF }
{ ANY KIND, either express or implied. See the License for the specific language governing rights }
{ and limitations under the License. }
{ }
{ Portions of this code are translated from DelayImp.h. }
{ The Initial Developer of DelayImp.h is Inprise Corporation. Portions created by Inprise }
{ Corporation are Copyright (C) 1999, 2000 by Inprise Corporation. All Rights Reserved. }
{ }
{ The Original Code is JclWin32.pas. }
{ }
{ The Initial Developer of the Original Code is Marcel van Brakel. Portions created by Marcel van }
{ Brakel are Copyright (C) Marcel van Brakel. All Rights Reserved. }
{ }
{ Contributors: }
{ Marcel van Brakel }
{ Peter Friese }
{ Andreas Hausladen (ahuser) }
{ Flier Lu (flier) }
{ Robert Marquardt (marquardt) }
{ Robert Rossmair (rrossmair) }
{ Olivier Sannier (obones) }
{ Matthias Thoma (mthoma) }
{ Petr Vones (pvones) }
{ }
{**************************************************************************************************}
{ }
{ This unit defines various Win32 API declarations which are either missing or incorrect in one or }
{ more of the supported Delphi versions. This unit is not intended for regular code, only API }
{ declarations. }
{ }
{**************************************************************************************************}
// Last modified: $Date: 2005/03/08 08:33:23 $
unit JclWin32;
{$I jcl.inc}
{$MINENUMSIZE 4}
{$ALIGN ON}
{$WARNINGS OFF}
interface
uses
Windows, SysUtils,
{$IFNDEF FPC}
AccCtrl, ActiveX,
{$ENDIF ~FPC}
JclBase;
{$HPPEMIT ''}
{$HPPEMIT '#include "WinDef.h"'}
{$HPPEMIT '#include "WinNT.h"'}
{$HPPEMIT '#include "WinBase.h"'}
{$HPPEMIT '#include "BaseTsd.h"'}
{$HPPEMIT '#include "ImageHlp.h"'}
{$HPPEMIT '#include "lm.h"'}
{$HPPEMIT '#include "Nb30.h"'}
{$HPPEMIT '#include "RasDlg.h"'}
{$HPPEMIT '#include "Reason.h"'}
{$HPPEMIT '#include "ShlWApi.h"'}
{$HPPEMIT '#include "WinError.h"'}
{$HPPEMIT '#include "WinIoCtl.h"'}
{$HPPEMIT '#include "WinUser.h"'}
{$HPPEMIT '#include <delayimp.h>'}
{$HPPEMIT ''}
{$IFDEF FPC}
// include file for FPC compatibility
// JclWin32 include file for FPC compatibility
// from unit Windows
const
// from WinReg.h
HKEY_CLASSES_ROOT = DWORD($80000000);
HKEY_CURRENT_USER = DWORD($80000001);
HKEY_LOCAL_MACHINE = DWORD($80000002);
HKEY_USERS = DWORD($80000003);
HKEY_PERFORMANCE_DATA = DWORD($80000004);
HKEY_CURRENT_CONFIG = DWORD($80000005);
HKEY_DYN_DATA = DWORD($80000006);
// from WinVer.h
VOS__BASE = 0;
VOS__WINDOWS16 = 1;
VOS__PM16 = 2;
VOS__PM32 = 3;
VOS__WINDOWS32 = 4;
{ VS_VERSION.dwFileSubtype for VFT_WINDOWS_DRV }
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_DRV_COMM = 10;
type
// from WinBase.h
_GET_FILEEX_INFO_LEVELS = (GetFileExInfoStandard, GetFileExMaxInfoLevel);
TGetFileExInfoLevels = _GET_FILEEX_INFO_LEVELS;
GET_FILEEX_INFO_LEVELS = _GET_FILEEX_INFO_LEVELS;
type
PKeyboardState = ^TKeyboardState;
TKeyboardState = array [0..255] of Byte;
// from unit AccCtrl
type
SE_OBJECT_TYPE = (
SE_UNKNOWN_OBJECT_TYPE,
SE_FILE_OBJECT,
SE_SERVICE,
SE_PRINTER,
SE_REGISTRY_KEY,
SE_LMSHARE,
SE_KERNEL_OBJECT,
SE_WINDOW_OBJECT,
SE_DS_OBJECT,
SE_DS_OBJECT_ALL,
SE_PROVIDER_DEFINED_OBJECT,
SE_WMIGUID_OBJECT
);
// from ActiveX
const
// from OleIdl.h, OleIdl.Idl
DROPEFFECT_NONE = 0;
DROPEFFECT_COPY = 1;
DROPEFFECT_MOVE = 2;
DROPEFFECT_LINK = 4;
DROPEFFECT_SCROLL = DWORD($80000000);
{$ENDIF FPC}
type
//
// Unsigned Basics
//
USHORT = Word;
{$EXTERNALSYM USHORT}
//==================================================================================================
// presumable from any older WinNT.h or from WinIfs.h
//==================================================================================================
//--------------------------------------------------------------------------------------------------
// NTFS Reparse Points
//--------------------------------------------------------------------------------------------------
// The reparse structure is used by layered drivers to store data in a
// reparse point. The constraints on reparse tags are defined below.
// This version of the reparse data buffer is only for Microsoft tags.
(*$HPPEMIT 'typedef struct _REPARSE_DATA_BUFFER {'*)
(*$HPPEMIT ''*)
(*$HPPEMIT ' DWORD ReparseTag;'*)
(*$HPPEMIT ' WORD ReparseDataLength;'*)
(*$HPPEMIT ' WORD Reserved;'*)
(*$HPPEMIT ''*)
(*$HPPEMIT ' union {'*)
(*$HPPEMIT ''*)
(*$HPPEMIT ' struct {'*)
(*$HPPEMIT ' WORD SubstituteNameOffset;'*)
(*$HPPEMIT ' WORD SubstituteNameLength;'*)
(*$HPPEMIT ' WORD PrintNameOffset;'*)
(*$HPPEMIT ' WORD PrintNameLength;'*)
(*$HPPEMIT ' WCHAR PathBuffer[1];'*)
(*$HPPEMIT ' } SymbolicLinkReparseBuffer;'*)
(*$HPPEMIT ''*)
(*$HPPEMIT ' struct {'*)
(*$HPPEMIT ' WORD SubstituteNameOffset;'*)
(*$HPPEMIT ' WORD SubstituteNameLength;'*)
(*$HPPEMIT ' WORD PrintNameOffset;'*)
(*$HPPEMIT ' WORD PrintNameLength;'*)
(*$HPPEMIT ' WCHAR PathBuffer[1];'*)
(*$HPPEMIT ' } MountPointReparseBuffer;'*)
(*$HPPEMIT ''*)
(*$HPPEMIT ' struct {'*)
(*$HPPEMIT ' UCHAR DataBuffer[1];'*)
(*$HPPEMIT ' } GenericReparseBuffer;'*)
(*$HPPEMIT ' };'*)
(*$HPPEMIT ''*)
(*$HPPEMIT '} REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER;'*)
(*$HPPEMIT ''*)
(*$HPPEMIT '#ifndef REPARSE_DATA_BUFFER_HEADER_SIZE'*)
(*$HPPEMIT '#define REPARSE_DATA_BUFFER_HEADER_SIZE 8'*)
(*$HPPEMIT '#endif'*)
(*$HPPEMIT ''*)
(*$HPPEMIT 'typedef struct _REPARSE_POINT_INFORMATION {'*)
(*$HPPEMIT ' WORD ReparseDataLength;'*)
(*$HPPEMIT ' WORD UnparsedNameLength;'*)
(*$HPPEMIT '} REPARSE_POINT_INFORMATION, *PREPARSE_POINT_INFORMATION;'*)
(*$HPPEMIT ''*)
(*$HPPEMIT '#ifndef IO_REPARSE_TAG_VALID_VALUES'*)
(*$HPPEMIT '#define IO_REPARSE_TAG_VALID_VALUES 0x0E000FFFF'*)
(*$HPPEMIT '#endif'*)
(*$HPPEMIT ''*)
type
{$EXTERNALSYM _REPARSE_DATA_BUFFER}
_REPARSE_DATA_BUFFER = record
ReparseTag: DWORD;
ReparseDataLength: Word;
Reserved: Word;
case Integer of
0: ( // SymbolicLinkReparseBuffer and MountPointReparseBuffer
SubstituteNameOffset: Word;
SubstituteNameLength: Word;
PrintNameOffset: Word;
PrintNameLength: Word;
PathBuffer: array [0..0] of WCHAR);
1: ( // GenericReparseBuffer
DataBuffer: array [0..0] of Byte);
end;
{$EXTERNALSYM REPARSE_DATA_BUFFER}
REPARSE_DATA_BUFFER = _REPARSE_DATA_BUFFER;
{$EXTERNALSYM PREPARSE_DATA_BUFFER}
PREPARSE_DATA_BUFFER = ^_REPARSE_DATA_BUFFER;
TReparseDataBuffer = _REPARSE_DATA_BUFFER;
PReparseDataBuffer = PREPARSE_DATA_BUFFER;
const
{$EXTERNALSYM REPARSE_DATA_BUFFER_HEADER_SIZE}
REPARSE_DATA_BUFFER_HEADER_SIZE = 8;
type
{$EXTERNALSYM _REPARSE_POINT_INFORMATION}
_REPARSE_POINT_INFORMATION = record
ReparseDataLength: Word;
UnparsedNameLength: Word;
end;
{$EXTERNALSYM REPARSE_POINT_INFORMATION}
REPARSE_POINT_INFORMATION = _REPARSE_POINT_INFORMATION;
{$EXTERNALSYM PREPARSE_POINT_INFORMATION}
PREPARSE_POINT_INFORMATION = ^_REPARSE_POINT_INFORMATION;
TReparsePointInformation = _REPARSE_POINT_INFORMATION;
PReparsePointInformation = PREPARSE_POINT_INFORMATION;
const
{$EXTERNALSYM IO_REPARSE_TAG_VALID_VALUES}
IO_REPARSE_TAG_VALID_VALUES = DWORD($E000FFFF);
//==================================================================================================
// from JwaWinNT.pas (few declarations from JwaWinType)
type
ULONGLONG = Int64;
{$EXTERNALSYM ULONGLONG}
const
MAXLONGLONG = $7fffffffffffffff;
{$EXTERNALSYM MAXLONGLONG}
type
PLONGLONG = ^LONGLONG;
{$EXTERNALSYM PLONGLONG}
PULONGLONG = ^ULONGLONG;
{$EXTERNALSYM PULONGLONG}
const
ANYSIZE_ARRAY = 1;
{$EXTERNALSYM ANYSIZE_ARRAY}
MAX_NATURAL_ALIGNMENT = SizeOf(ULONG);
{$EXTERNALSYM MAX_NATURAL_ALIGNMENT}
// line 72
const
VER_SERVER_NT = DWORD($80000000);
{$EXTERNALSYM VER_SERVER_NT}
VER_WORKSTATION_NT = $40000000;
{$EXTERNALSYM VER_WORKSTATION_NT}
VER_SUITE_SMALLBUSINESS = $00000001;
{$EXTERNALSYM VER_SUITE_SMALLBUSINESS}
VER_SUITE_ENTERPRISE = $00000002;
{$EXTERNALSYM VER_SUITE_ENTERPRISE}
VER_SUITE_BACKOFFICE = $00000004;
{$EXTERNALSYM VER_SUITE_BACKOFFICE}
VER_SUITE_COMMUNICATIONS = $00000008;
{$EXTERNALSYM VER_SUITE_COMMUNICATIONS}
VER_SUITE_TERMINAL = $00000010;
{$EXTERNALSYM VER_SUITE_TERMINAL}
VER_SUITE_SMALLBUSINESS_RESTRICTED = $00000020;
{$EXTERNALSYM VER_SUITE_SMALLBUSINESS_RESTRICTED}
VER_SUITE_EMBEDDEDNT = $00000040;
{$EXTERNALSYM VER_SUITE_EMBEDDEDNT}
VER_SUITE_DATACENTER = $00000080;
{$EXTERNALSYM VER_SUITE_DATACENTER}
VER_SUITE_SINGLEUSERTS = $00000100;
{$EXTERNALSYM VER_SUITE_SINGLEUSERTS}
VER_SUITE_PERSONAL = $00000200;
{$EXTERNALSYM VER_SUITE_PERSONAL}
VER_SUITE_BLADE = $00000400;
{$EXTERNALSYM VER_SUITE_BLADE}
VER_SUITE_EMBEDDED_RESTRICTED = $00000800;
{$EXTERNALSYM VER_SUITE_EMBEDDED_RESTRICTED}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -