{******************************************************************}
{ }
{ Borland Delphi Runtime Library }
{ Setup and Device Installer API interface unit }
{ }
{ Portions created by Microsoft are }
{ Copyright (C) 1995-1999 Microsoft Corporation. }
{ All Rights Reserved. }
{ }
{ The original file is: setupapi.h, released March 1999. }
{ The original Pascal code is: SetupApi.pas, released 29 Jan 2000. }
{ The initial developer of the Pascal code is Robert Marquardt }
{ (robert_marquardt att gmx dott de) }
{ }
{ Portions created by Robert Marquardt are }
{ Copyright (C) 1999 Robert Marquardt. }
{ }
{ Contributor(s): Marcel van Brakel (brakelm att bart dott nl) }
{ }
{ Obtained through: }
{ Joint Endeavour of Delphi Innovators (Project JEDI) }
{ }
{ You may retrieve the latest version of this file at the Project }
{ JEDI home page, located at http://delphi-jedi.org }
{ }
{ The contents of this file are used with permission, 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/MPL-1.1.html }
{ }
{ 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. }
{ }
{******************************************************************}
unit SetupApi;
(*{$I windowsversion.inc}*)
interface
{$WEAKPACKAGEUNIT ON}
// (rom) this is the switch to change between static and dynamic linking.
// (rom) it is enabled by default here.
// (rom) To disable simply change the '$' to a '.'.
{$DEFINE SETUPAPI_LINKONREQUEST}
(*$HPPEMIT '#include "setupapi.h"'*)
uses
Windows, CommCtrl,
{$IFDEF SETUPAPI_LINKONREQUEST}
ModuleLoader,
{$ENDIF SETUPAPI_LINKONREQUEST}
WinConvTypes;
const
ANYSIZE_ARRAY = 1;
{$EXTERNALSYM ANYSIZE_ARRAY}
//
// Define maximum string length constants as specified by
// Windows 95.
//
const
LINE_LEN = 256; // Win95-compatible maximum for displayable
{$EXTERNALSYM LINE_LEN}
// strings coming from a device INF.
MAX_INF_STRING_LENGTH = 4096; // Actual maximum size of an INF string
{$EXTERNALSYM MAX_INF_STRING_LENGTH}
// (including string substitutions).
MAX_TITLE_LEN = 60;
{$EXTERNALSYM MAX_TITLE_LEN}
MAX_INSTRUCTION_LEN = 256;
{$EXTERNALSYM MAX_INSTRUCTION_LEN}
MAX_LABEL_LEN = 30;
{$EXTERNALSYM MAX_LABEL_LEN}
MAX_SERVICE_NAME_LEN = 256;
{$EXTERNALSYM MAX_SERVICE_NAME_LEN}
MAX_SUBTITLE_LEN = 256;
{$EXTERNALSYM MAX_SUBTITLE_LEN}
//
// Define maximum length of a machine name in the format expected by ConfigMgr32
// CM_Connect_Machine (i.e., "\\\\MachineName\0").
//
SP_MAX_MACHINENAME_LENGTH = MAX_PATH + 3;
{$EXTERNALSYM SP_MAX_MACHINENAME_LENGTH}
//
// Define type for reference to loaded inf file
//
type
HINF = Pointer;
{$EXTERNALSYM HINF}
//
// Inf context structure. Applications must not interpret or
// overwrite values in these structures.
//
PInfContext = ^TInfContext;
INFCONTEXT = packed record
Inf: Pointer;
CurrentInf: Pointer;
Section: UINT;
Line: UINT;
end;
{$EXTERNALSYM INFCONTEXT}
TInfContext = INFCONTEXT;
//
// Inf file information structure.
//
PSPInfInformation = ^TSPInfInformation;
SP_INF_INFORMATION = packed record
InfStyle: DWORD;
InfCount: DWORD;
VersionData: array [0..ANYSIZE_ARRAY - 1] of Byte;
end;
{$EXTERNALSYM SP_INF_INFORMATION}
TSPInfInformation = SP_INF_INFORMATION;
//
// Define structure for passing alternate platform info into
// SetupSetFileQueueAlternatePlatform and SetupQueryInfOriginalFileInformation.
//
PSPAltPlatformInfoV2 = ^SP_ALTPLATFORM_INFO_V2;
SP_ALTPLATFORM_INFO_V2 = packed record
cbSize: DWORD;
//
// platform to use (VER_PLATFORM_WIN32_WINDOWS or VER_PLATFORM_WIN32_NT)
//
Platform: DWORD;
//
// major and minor version numbers to use
//
MajorVersion: DWORD;
MinorVersion: DWORD;
//
// processor architecture to use (PROCESSOR_ARCHITECTURE_INTEL,
// PROCESSOR_ARCHITECTURE_ALPHA, PROCESSOR_ARCHITECTURE_IA64, or
// PROCESSOR_ARCHITECTURE_ALPHA64)
//
ProcessorArchitecture: WORD;
Flags: WORD;
(*
union {
WORD Reserved; // for compatibility with V1 structure
WORD Flags; // indicates validity of non V1 fields
};
*)
//
// specify SP_ALTPLATFORM_FLAGS_VERSION_RANGE in Flags
// to use FirstValidatedMajorVersion and FirstValidatedMinorVersion
//
// Major and minor versions of the oldest previous OS for which this
// package's digital signature may be considered valid. For example, say
// the alternate platform is VER_PLATFORM_WIN32_NT, version 5.1. However,
// it is wished that driver packages signed with a 5.0 osattr also be
// considered valid. In this case, you'd have a MajorVersion/MinorVersion
// of 5.1, and a FirstValidatedMajorVersion/FirstValidatedMinorVersion of
// 5.0. To validate packages signed for any previous OS release, specify
// 0 for these fields. To only validate against the target alternate
// platform, specify the same values as those in the MajorVersion and
// MinorVersion fields.
//
FirstValidatedMajorVersion: DWORD;
FirstValidatedMinorVersion: DWORD;
end;
{$EXTERNALSYM SP_ALTPLATFORM_INFO_V2}
TSPAltPlatformInfoV2 = SP_ALTPLATFORM_INFO_V2;
PSPAltPlatformInfoV1 = ^TSPAltPlatformInfoV1;
SP_ALTPLATFORM_INFO_V1 = packed record
cbSize: DWORD;
//
// platform to use (VER_PLATFORM_WIN32_WINDOWS or VER_PLATFORM_WIN32_NT)
//
Platform: DWORD;
//
// major and minor version numbers to use
//
MajorVersion: DWORD;
MinorVersion: DWORD;
//
// processor architecture to use (PROCESSOR_ARCHITECTURE_INTEL,
// PROCESSOR_ARCHITECTURE_ALPHA, PROCESSOR_ARCHITECTURE_IA64, or
// PROCESSOR_ARCHITECTURE_ALPHA64)
//
ProcessorArchitecture: Word;
Reserved: Word; // must be zero.
end;
{$EXTERNALSYM SP_ALTPLATFORM_INFO_V1}
TSPAltPlatformInfoV1 = SP_ALTPLATFORM_INFO_V1;
{$IFDEF WINXP_UP}
PSPAltPlatformInfo = PSPAltPlatformInfoV2;
TSPAltPlatformInfo = TSPAltPlatformInfoV2;
{$ELSE}
PSPAltPlatformInfo = PSPAltPlatformInfoV1;
TSPAltPlatformInfo = TSPAltPlatformInfoV1;
{$ENDIF WINXP_UP}
//
// the following flags are available to SP_ALTPLATFORM_INFO_V2
//
const
SP_ALTPLATFORM_FLAGS_VERSION_RANGE = $0001; // FirstValidatedMajor/MinorVersion
{$EXTERNALSYM SP_ALTPLATFORM_FLAGS_VERSION_RANGE}
//
// Define structure that is filled in by SetupQueryInfOriginalFileInformation
// to indicate the INF's original name and the original name of the (potentially
// platform-specific) catalog file specified by that INF.
//
type
PSPOriginalFileInfoA = ^TSPOriginalFileInfoA;
PSPOriginalFileInfoW = ^TSPOriginalFileInfoW;
SP_ORIGINAL_FILE_INFO_A = packed record
cbSize: DWORD;
OriginalInfName: array [0..MAX_PATH - 1] of AnsiChar;
OriginalCatalogName: array [0..MAX_PATH - 1] of AnsiChar;
end;
{$EXTERNALSYM SP_ORIGINAL_FILE_INFO_A}
SP_ORIGINAL_FILE_INFO_W = packed record
cbSize: DWORD;
OriginalInfName: array [0..MAX_PATH - 1] of WideChar;
OriginalCatalogName: array [0..MAX_PATH - 1] of WideChar;
end;
{$EXTERNALSYM SP_ORIGINAL_FILE_INFO_W}
TSPOriginalFileInfoA = SP_ORIGINAL_FILE_INFO_A;
TSPOriginalFileInfoW = SP_ORIGINAL_FILE_INFO_W;
{$IFDEF UNICODE}
PSPOriginalFileInfo = PSPOriginalFileInfoW;
TSPOriginalFileInfo = TSPOriginalFileInfoW;
{$ELSE}
TSPOriginalFileInfo = TSPOriginalFileInfoA;
PSPOriginalFileInfo = PSPOriginalFileInfoA;
{$ENDIF UNICODE}
//
// SP_INF_INFORMATION.InfStyle values
//
const
INF_STYLE_NONE = $00000000; // unrecognized or non-existent
{$EXTERNALSYM INF_STYLE_NONE}
INF_STYLE_OLDNT = $00000001; // winnt 3.x
{$EXTERNALSYM INF_STYLE_OLDNT}
INF_STYLE_WIN4 = $00000002; // Win95
{$EXTERNALSYM INF_STYLE_WIN4}
//
// Additional InfStyle flags that may be specified when calling SetupOpenInfFile.
//
//
INF_STYLE_CACHE_ENABLE = $00000010; // always cache INF, even outside of %windir%\Inf
{$EXTERNALSYM INF_STYLE_CACHE_ENABLE}
INF_STYLE_CACHE_DISABLE = $00000020; // delete cached INF information
{$EXTERNALSYM INF_STYLE_CACHE_DISABLE}
//
// Target directory specs.
//
DIRID_ABSOLUTE = DWORD(-1); // real 32-bit -1
{$EXTERNALSYM DIRID_ABSOLUTE}
DIRID_ABSOLUTE_16BIT = $FFFF; // 16-bit -1 for compat w/setupx
{$EXTERNALSYM DIRID_ABSOLUTE_16BIT}
DIRID_NULL = 0;
{$EXTERNALSYM DIRID_NULL}
DIRID_SRCPATH = 1;
{$EXTERNALSYM DIRID_SRCPATH}
DIRID_WINDOWS = 10;
{$EXTERNALSYM DIRID_WINDOWS}
DIRID_SYSTEM = 11; // system32
{$EXTERNALSYM DIRID_SYSTEM}
DIRID_DRIVERS = 12;
{$EXTERNALSYM DIRID_DRIVERS}
DIRID_IOSUBSYS = DIRID_DRIVERS;
{$EXTERNALSYM DIRID_IOSUBSYS}
DIRID_INF = 17;
{$EXTERNALSYM DIRID_INF}
DIRID_HELP = 18;
{$EXTERNALSYM DIRID_HELP}
DIRID_FONTS = 20;
{$EXTERNALSYM DIRID_FONTS}
DIRID_VIEWERS = 21;
{$EXTERNALSYM DIRID_VIEWERS}
DIRID_COLOR = 23;
{$EXTERNALSYM DIRID_COLOR}
DIRID_APPS = 24;
{$EXTERNALSYM DIRID_APPS}
DIRID_SHARED = 25;
{$EXTERNALSYM DIRID_SHARED}
DIRID_BOOT = 30;
{$EXTERNALSYM DIRID_BOOT}
DIRID_SYSTEM16 = 50;
{$EXTERNALSYM DIRID_SYSTEM16}
DIRID_SPOOL = 51;
{$EXTERNALSYM DIRID_SPOOL}
DIRID_SPOOLDRIVERS = 52;
{$EXTERNALSYM DIRID_SPOOLDRIVERS}
DIRID_USERPROFILE = 53;
{$EXTERNALSYM DIRID_USERPROFILE}
DIRID_LOADER = 54;
{$EXTERNALSYM DIRID_LOADER}
DIRID_PRINTPROCESSOR = 55;
{$EXTERNALSYM DIRID_PRINTPROCESSOR}
DIRID_DEFAULT = DIRID_SYSTEM;
{$EXTERNALSYM DIRID_DEFAULT}
//
// The following DIRIDs are for commonly-used shell "special folders". The
// complete list of such folders is contained in shlobj.h. In that headerfile,
// each folder is assigned a CSIDL_* value. The DIRID values below are created
// by taking the CSIDL value in shlobj.h and OR'ing it with 0x4000. Thus, if
// an INF needs to reference other special folders not defined below, it may
// generate one using the above mechanism, and setupapi will automatically deal
// with it and use the corresponding shell's path where appropriate. (Remember
// that DIRIDs must be specified in decimal, not hex, in an INF when used for
// string substitution.)
//
DIRID_COMMON_STARTMENU = 16406; // All Users\Start Menu
{$EXTERNALSYM DIRID_COMMON_STARTMENU}
DIRID_COMMON_PROGRAMS = 16407; // All Users\Start Menu\Programs
{$EXTERNALSYM DIRID_COMMON_PROGRAMS}
DIRID_COMMON_STARTUP = 16408; // All Users\Start Menu\Programs\Startup
{$EXTERNALSYM DIRID_COMMON_STARTUP}
DIRID_COMMON_DESKTOPDIRECTORY = 16409; // All Users\Desktop
{$EXTERNALSYM DIRID_COMMON_DESKTOPDIRECTORY}
DIRID_COMMON_FAVORITES = 16415; // All Users\Favorites
{$EXTERNALSYM DIRID_COMMON_FAVORITES}
DIRID_COMMON_APPDATA = 16419; // All Users\Application Data
{$EXTERNALSYM DIRID_COMMON_APPDATA}
DIRID_PROGRAM_FILES = 16422; // Program Files
{$EXTERNALSYM DIRID_PROGRAM_FILES}
DIRID_SYSTEM_X86 = 16425; // system32 on RISC
{$EXTERNALSYM DIRID_SYSTEM_X86}
DIRID_PROGRAM_FILES_X86 = 16426; // Program Files on RISC
{$EXTERNALSYM DIRID_PROGRAM_FILES_X86}
DIRID_PROGRAM_FILES_COMMON = 16427; // Program Files\Common
{$EXTERNALSYM DIRID_PROGRAM_FILES_COMMON}
DIRID_PROGRAM_FILES_COMMONX86 = 16428; // x86 Program Files\Common on RISC
{$EXTERNALSYM DIRID_PROGRAM_FILES_COMMONX86}
DIRID_COMMON_TEMPLATES = 16429; // All Users\Templates
{$EXTERNALSYM DIRID_COMMON_TEMPLATES}
DIRID_COMMON_DOCUMENTS = 16430; // All Users\Documents
{$EXTERNALSYM DIRID_COMMON_DOCUMENTS}
//
// First user-definable dirid. See SetupSetDirectoryId().
//
DIRID_USER = $8000;
{$EXTERNALSYM DIRID_USER}
//
// Setup callback notification routine type
//
type
TSPFileCallbackA = function(Context: Pointer; Notification: UINT;
Param1, Param2: UINT_PTR): UINT; stdcall;
TSPFileCallbackW = function(Context: Pointer; Notification: UINT;
Param1, Param2: UINT_PTR): UINT; stdcall;
{$IFDEF UNICODE}
TSPFileCallback = TSPFileCallbackW;
{$ELSE}
TSPFileCallback = TSPFileCallbackA;
{$ENDIF UNICODE}
//
// Operation/queue start/end notification. These are ordinal values.
//
const
SPFILENOTIFY_STARTQUEUE = $00000001;
{$EXTERNALSYM SPFILENOTIFY_STARTQUEUE}
SPFILENOTIFY_ENDQUEUE = $00000002;
{$EXTERNALSYM SPFILENOTIFY_ENDQUEUE}
SPFILENOTIFY_STARTSUBQUEUE = $00000003;
{$EXTERNALSYM SPFILENOTIFY_STARTSUBQUEUE}
SPFILENOTIFY_ENDSUBQUEUE = $00000004;
{$EXTERNALSYM SPFILENOTIFY_ENDSUBQUEUE}
SPFILENOTIFY_STARTDELETE = $00000005;
{$EXTERNALSYM SPFILENOTIFY_STARTDELETE}
SPFILENOTIFY_ENDDELETE = $00000006;
{$EXTERNALSYM SPFILENOTIFY_ENDDELETE}
SPFILENOTIFY_DELETEERROR = $00000007;
{$EXTERNALSYM SPFILENOTIFY_DELETEERROR}
SPFILENOTIFY_STARTRENAME = $00000008;
{$EXTERNALSYM SPFILENOTIFY_STARTRENAME}
SPFILENOTIFY_ENDRENAME = $00000009;
{$EXTERNALSYM SPFILENOTIFY_ENDRENAME}
SPFILENOTIFY_RENAMEERROR = $0000000a;
{$EXTERNALSYM SPFILENOTIFY_RENAMEERROR}
SPFILENOTIFY_STARTCOPY = $0000000b;
{$EXTERNALSYM SPFILENOTIFY_STARTCOPY}
SPFILENOTIFY_ENDCOPY = $0000000c;
{$EXTERNALSYM SPFILENOTIFY_ENDCOPY}
SPFILENOTIFY_COPYERROR = $0000000d;
{$EXTERNALSYM SPFILENOTIFY_COPYERROR}
SPFILENOTIFY_NEEDMEDIA = $0000000e;
{$EXTERNALSYM SPFILENOTIFY_NEEDMEDIA}
SPFILENOTIFY_QUEUESCAN = $0000000f;
{$EXTERNALSYM SPFILENOTIFY_QUEUESCAN}
//
// These are used with SetupIterateCabinet().
//
SPFILENOTIFY_CABINETINFO = $00000010;
{$EXTERNALSYM SPFILENOTIFY_CABINETINFO}
SPFILENOTIFY_FILEINCABINET = $00000011;
{$EXTERNALSYM SPFILENOTIFY_FILEINCABINET}
SPFILENOTIFY_NEEDNEWCABINET = $00000012;
{$EXTERNALSYM SPFILENOTIFY_NEEDNEWCABINET}
SPFILENOTIFY_FILEEXTRACTED = $00000013;
{$EXTERNALSYM SPFILENOTIFY_FILEEXTRACTED}
SPFILENOTIFY_FILEOPDELAYED = $00000014;
{$EXTERNALSYM SPFILENOTIFY_FILEOPDELAYED}
//
// These are used for backup operations
//
SPFILENOTIFY_STARTBACKUP = $00000015;
{$EXTERNALSYM SPFILENOTIFY_STARTBACKUP}
SPFILENOTIFY_BACKUPERROR = $00000016;
{$EXTERNALSYM SPFILENOTIFY_BACKUPERROR}
SPFILENOTIFY_ENDBACKUP = $00000017;
{$EXTERNALSYM SPFILENOTIFY_ENDBACKUP}
//
// Extended notification for SetupScanFileQueue(Flags=SPQ_SCAN_USE_CALLBACKEX)
//
SPFILENOTIFY_QUEUESCAN_EX = $00000018;
{$EXTERNALSYM SPFILENOTIFY_QUEUESCAN_EX}
SPFILENOTIFY_STARTREGISTRATION = $00000019;
SPFILENOTIFY_ENDREGISTRATION = $00000020;
//
// Extended notification for SetupScanFileQueue(Flags=SPQ_SCAN_USE_CALLBACK_SIGNERINFO)
//
SPFILENOTIFY_QUEUESCAN_SIGNERINFO = $00000040;
//
// Copy notification. These are bit flags that may be combined.
//
SPFILENOTIFY_LANGMISMATCH = $00010000;
{$EXTERNALSYM SPFILENOTIFY_LANGMISMATCH}
SPFILENOTIFY_TARGETEXISTS = $00020000;
{$EXTERNALSYM SPFILENOTIFY_TARGETEXISTS}
SPFILENOTIFY_TARGETNEWER = $00040000;
{$EXTERNALSYM SPFILENOTIFY_TARGETNEWER}
//
// File operation codes and callback outcomes.
//
FILEOP_COPY = 0;
{$EXTERNALSYM FILEOP_COPY}
FILEOP_RENAME = 1;
{$EXTERNALSYM FILEOP_RENAME}
FILEOP_DELETE = 2;
{$EXTERNALSYM FILEOP_DELETE}
FILEOP_BACKUP = 3;
{$EXTERNALSYM FILEOP_BACKUP}
FILEOP_ABORT = 0;
{$EXTERNALSYM FILEOP_ABORT}
FILEOP_DOIT = 1;
{$EXTERNALSYM FILEOP_DOIT}
FILEOP_SKIP = 2;
{$EXTERNALSYM FILEOP_SKIP}
FILEOP_RETRY = FILEOP_DOIT;
{$EXTERNALSYM FILEOP_RETRY}
FILEOP_NEWPATH = 4;
{$EXTERNALSYM FILEOP_NEWPATH}
//
// Flags in inf copy sections
//
COPYFLG_WARN_IF_SKIP = $00000001; // warn if user tries to skip file
{$EXTERNALSYM COPYFLG_WARN_IF_SKIP}
COPYFLG_NOSKIP = $00000002; // disallow skipping this file
{$EXTERNALSYM COPYFLG_NOSKIP}
COPYFLG_NOVERSIONCHECK = $00000004; // ignore versions and overwrite target
{$EXTERNALSYM COPYFLG_NOVERSIONCHECK}
COPYFLG_FORCE_FILE_IN_USE = $00000008; // force file-in-use behavior
{$EXTERNALSYM COPYFLG_FORCE_FILE_IN_USE}
COPYFLG_NO_OVERWRITE = $00000010; // do not copy if file exists on target
{$EXTERNALSYM COPYFLG_NO_OVERWRITE}
COPYFLG_NO_VERSION_DIALOG = $00000020; // do not copy if target is newer
{$EXTERNALSYM COPYFLG_NO_VERSION_DIALOG}
COPYFLG_OVERWRITE_OLDER_ONLY = $00000040; // leave target alone if version same as source
{$EXTERNALSYM COPYFLG_OVERWRITE_OLDER_ONLY}
COPYFLG_REPLACEONLY = $00000400; // copy only if file exists on target
{$EXTERNALSYM COPYFLG_REPLACEONLY}
COPYFLG_NODECOMP = $00000800; // don't attempt to decompress file; copy as-is
{$EXTERNALSYM COPYFLG_NODECOMP}
COPYFLG_REPLACE_BOOT_FILE = $00001000; // file must be present upon reboot (i.e., it's
{$EXTERNALSYM COPYFLG_REPLACE_BOOT_FILE} // needed by the loader); this flag implies a reboot
COPYFLG_NOPRUNE = $00002000; // never prune this file
{$EXTERNALSYM COPYFLG_NOPRUNE}
//
// Flags in inf delete sections
// New flags go in high word
//
DELFLG_IN_USE = $00000001; // queue in-use file for delete
{$EXTERNALSYM DELFLG_IN_USE}
DELFLG_IN_USE1 = $00010000; // high-word version of DELFLG_IN_USE
{$EXTERNALSYM DELFLG_IN_USE1}
//
// Source and file paths. Used when notifying queue callback
// of SPFILENOTIFY_STARTxxx, SPFILENOTIFY_ENDxxx, and SPFILENOTIFY_xxxERROR.
//
type
PFilePathsA = ^TFilePathsA;
PFilePathsW = ^TFilePathsW;
FILEPATHS_A = packed record
Target: PAnsiChar;
Source: PAnsiChar; // not used for delete operations
Win32Error: UINT;
Flags: DWORD; // such as SP_COPY_NOSKIP for copy errors
end;
{$EXTERNALSYM FILEPATHS_A}
FILEPATHS_W = packed record
Target: PWideChar;
Source: PWideChar; // not used for delete operations
Win32Error: UINT;
Flags: DWORD; // such as SP_COPY_NOSKIP for copy errors
end;
{$EXTERNALSYM FILEPATHS_W}
TFilePathsA = FILEPATHS_A;
TFilePathsW = FILEPATHS_W;
{$IFDEF UNICODE}
TFilePaths = TFilePathsW;
PFilePaths = PFilePathsW;
{$ELSE}
TFilePaths = TFilePathsA;
PFilePaths = PFilePathsA;
{$ENDIF UNICODE}
{$IFDEF WINXP_UP}
PFilePathsSignerInfoA = ^TFilePathsSignerInfoA;
PFilePathsSignerInfoW = ^TFilePathsSignerInfoW;
FILEPATHS_SIGNERINFO_A = packed record
Target: PAnsiChar;
Source: PAnsiChar; // not used for delete operations
Win32Error: UINT;
Flags: DWORD; // such as SP_COPY_NOSKIP for copy errors
DigitalSigner: PAnsiChar;
Version: PAnsiChar;
CatalogFile: PAnsiChar;
end;
{$EXTERNALSYM FILEPATHS_SIGNERINFO_A}
FILEPATHS_SIGNERINFO_W = packed record
Target: PWideChar;
Source: PWideChar; // not used for delete operations
Win32Error: UINT;
Flags: DWORD; // such as SP_COPY_NOSKIP for copy errors
DigitalSigner: PWideChar;
Version: PWideChar;
CatalogFile: PWideChar;
end;
{$EXTERNALSYM FILEPATHS_SIGNERINFO_W}
TFilePathsSignerInfoA = FILEPATHS_SIGNERINFO_A;
TFilePathsSignerInfoW = FILEPATHS_SIGNERINFO_W;
{$IFDEF UNICODE}
TFilePathsSignerInfo = TFilePathsSignerInfoA;
PFilePathsSignerInfo = PFilePathsSignerInfoW;
{$ELSE}
TFilePathsSignerInfo = TFilePathsSignerInfoA;
PFilePathsSignerInfo = PFilePathsSignerInfoA;
{$ENDIF UNICODE}
{$ENDIF WINXP_UP}
//
// Structure used with SPFILENOTIFY_NEEDMEDIA
//
PSourceMediaA = ^TSourceMediaA;
PSourceMediaW = ^TSourceMediaW;
SOURCE_MEDIA_A = packed record
Reserved: PAnsiChar;
Tagfile: PAnsiChar; // may be NULL
Description: PAnsiChar;
//
// Pathname part and filename part of source file
// that caused us to need the media.
//
SourcePath: PAnsiChar;
SourceFile: PAnsiChar;
Flags: DWORD; // subset of SP_COPY_xxx
end;
{$EXTERNALSYM SOURCE_MEDIA_A}
SOURCE_MEDIA_W = packed record
Reserved: PWideChar;
Tagfile: PWideChar; // may be NULL
Description: PWideChar;
//
// Pathname part and filename part of source file
// that caused us to need the media.
//
SourcePath: PWideChar;
SourceFile: PWideChar;
Flags: DWORD; // subset of SP_COPY_xxx
end;
{$EXTERNALSYM SOURCE_MEDIA_W}
TSourceMediaA = SOURCE_MEDIA_A;
TSourceMediaW = SOURCE_MEDIA_W;
{$IFDEF UNICODE}
TSourceMedia = TSourceMediaW;
PSourceMedia = PSourceMediaW;
{$ELSE}
TSourceMedia = TSourceMediaA;
PSourceMedia = PSourceMediaA;
{$ENDIF UNICODE}
//
// Structure used with SPFILENOTIFY_CABINETINFO and
// SPFILENOTIFY_NEEDNEWCABINET
//
PCabinetInfoA = ^TCabinetInfoA;
PCabinetInfoW = ^TCabinetInfoW;
CABINET_INFO_A = packed record
CabinetPath: PAnsiChar;
CabinetFile: PAnsiChar;
DiskName: PAnsiChar;
SetId: Word;
CabinetNumber: Word;
end;
{$EXTERNALSYM CABINET_INFO_A}
CABINET_INFO_W = packed record
CabinetPath: PWideChar;
CabinetFile: PWideChar;
DiskName: PWideChar;
SetId: Word;
CabinetNumber: Word;
end;
{$EXTERNALSYM CABINET_INFO_W}
TCabinetInfoA = CABINET_INFO_A;
TCabinetInfoW = CABINET_INFO_W;
{$IFDEF UNICODE}
TCabinetInfo = TCabinetInfoW;
PCabinetInfo = PCabinetInfoW;
{$ELSE}
TCabinetInfo = TCabinetInfoA;
PCabinetInfo = PCabinetInfoA;
{$ENDIF UNICODE}
//
// Structure used with SPFILENOTIFY_FILEINCABINET
//
PFileInCabinetInfoA = ^TFileInCabinetInfoA;
PFileInCabinetInfoW = ^TFileInCabinetInfoW;
FILE_IN_CABINET_INFO_A = packed record
NameInCabinet: PAnsiChar;
FileSize: DWORD;
Win32Error: DWORD;
DosDate: Word;
DosTime: Word;
DosAttribs: Word;
FullTargetName: array [0..MAX_PATH - 1] of AnsiChar;
end;
{$EXTERNALSYM FILE_IN_CABINET_INFO_A}
FILE_IN_CABINET_INFO_W = packed record
NameInCabinet: PWideChar;
FileSize: DWORD;
Win32Error: DWORD;
DosDate: Word;
DosTime: Word;
DosAttribs: Word;
FullTargetName: array [0..MAX_PATH - 1] of WideChar;
end;
{$EXTERNALSYM FILE_IN_CABINET_INFO_W}
TFileInCabinetInfoA = FILE_IN_CABINET_INFO_A;
TFileInCabinetInfoW = FILE_IN_CABINET_INFO_W;
{$IFDEF UNICODE}
TFileInCabinetInfo = TFileInCabinetInfoW;
PFileInCabinetInfo = PFileInCabinetInfoW;
{$ELSE}
TFileInCabinetInfo = TFileInCabinetInfoA;
PFileInCabinetInfo = PFileInCabinetInfoA;
{$ENDIF UNICODE}
//
// Structure used for SPFILENOTIFY_***REGISTRATION
// callback
//
{$IFDEF WINXP_UP}
PSPRegisterControlStatusA = ^TSPRegisterControlStatusA;
PSPRegisterControlStatusW = ^TSPRegisterControlStatusW;
SP_REGISTER_CONTROL_STATUSA = packed record
cbSize: DWORD;
FileName: PAnsiChar;
Win32Error: DWORD;
FailureCode: DWORD;
end;
{$EXTERNALSYM SP_REGISTER_CONTROL_STATUSA}
SP_REGISTER_CONTROL_STATUSW = packed record
cbSize: DWORD;
FileName: PWideChar;
Win32Error: DWORD;
FailureCode: DWORD;
end;
{$EXTERNALSYM SP_REGISTER_CONTROL_STATUSW}
TSPRegisterControlStatusA = SP_REGISTER_CONTROL_STATUSA;
TSPRegisterControlStatusW = SP_REGISTER_CONTROL_STATUSW;
{$IFDEF UNICODE}
TSPRegisterControlStatus = TSPRegisterControlStatusW;
PSPRegisterControlStatus = PSPRegisterControlStatusW;
{$ELSE}
TSPRegisterControlStatus = TSPRegisterControlStatusA;
PSPRegisterControlStatus = PSPRegisterControlStatusA;
{$ENDIF UNICODE}
{$ENDIF WINXP_UP}
//
// valid values for SP_REGISTER_CONTROL_STATUS.FailureCode field
//
const
SPREG_SUCCESS = $00000000;
{$EXTERNALSYM SPREG_SUCCESS}
SPREG_LOADLIBRARY = $00000001;
{$EXTERNALSYM SPREG_LOADLIBRARY}
SPREG_GETPROCADDR = $00000002;
{$EXTERNALSYM SPREG_GETPROCADDR}
SPREG_REGSVR = $00000003;
{$EXTERNALSYM SPREG_REGSVR}
SPREG_DLLINSTALL = $00000004;
{$EXTERNALSYM SPREG_DLLINSTALL}
SPREG_TIMEOUT = $00000005;
{$EXTERNALSYM SPREG_TIMEOUT}
SPREG_UNKNOWN = $FFFFFFFF;
{$EXTERNALSYM SPREG_UNKNOWN}
//
// Define type for setup file queue
//
type
HSPFILEQ = Pointer;
{$EXTERNALSYM HSPFILEQ}
//
// Structure used with SetupQueueCopyIndirect
//
PSPFileCopyParamsA = ^TSPFileCopyParamsA;
PSPFileCopyParamsW = ^TSPFileCopyParamsW;
SP_FILE_COPY_PARAMS_A = packed record
cbSize: DWORD;
QueueHandle: HSPFILEQ;
SourceRootPath: PAnsiChar;
SourcePath: PAnsiChar;
SourceFilename: PAnsiChar;
SourceDescription: PAnsiChar;
SourceTagfile: PAnsiChar;
TargetDirectory: PAnsiChar;
TargetFilename: PAnsiChar;
CopyStyle: DWORD;
LayoutInf: HINF;
SecurityDescriptor: PAnsiChar;
end;
{$EXTERNALSYM SP_FILE_COPY_PARAMS_A}
SP_FILE_COPY_PARAMS_W = packed record
cbSize: DWORD;
QueueHandle: HSPFILEQ;
SourceRootPath: PWideChar;
SourcePath: PWideChar;
SourceFilename: PWideChar;
SourceDescription: PWideChar;
SourceTagfile: PWideChar;
TargetDirectory: PWideChar;
TargetFilename: PWideChar;
CopyStyle: DWORD;
LayoutInf: HINF;
SecurityDescriptor: PWideChar;
end;
{$EXTERNALSYM SP_FILE_COPY_PARAMS_W}
TSPFileCopyParamsA = SP_FILE_COPY_PARAMS_A;
TSPFileCopyParamsW = SP_FILE_COPY_PARAMS_W;
{$IFDEF UNICODE}
TSPFileCopyParams = TSPFileCopyParamsW;
PSPFileCopyParams = PSPFileCopyParamsW;
{$ELSE}
TSPFileCopyParams = TSPFileCopyParamsA;
PSPFileCopyParams = PSPFileCopyParamsA;
{$ENDIF UNICODE}
//
// Define type for setup disk space list
//
HDSKSPC = Pointer;
{$EXTERNALSYM HDSKSPC}
//
// Define type for reference to device information set
//
HDEVINFO = Pointer;
{$EXTERNALSYM HDEVINFO}
//
// Device information structure (references a device instance
// that is a member of a device information set)
//
PSPDevInfoData = ^TSPDevInfoData;
SP_DEVINFO_DATA = packed record
cbSize: DWORD;
ClassGuid: TGUID;
DevInst: DWORD; // DEVINST handle
Reserved: ULONG_PTR;
end;
{$EXTERNALSYM SP_DEVINFO_DATA}
TSPDevInfoData = SP_DEVINFO_DATA;
//
// Device interface information structure (references a device
// interface that is associated with the device information
// element that owns it).
//
PSPDeviceInterfaceData = ^TSPDeviceInterfaceData;
SP_DEVICE_INTERFACE_DATA = packed record
cbSize: DWORD;
InterfaceClassGuid: TGUID;
Flags: DWORD;
Reserved: ULONG_PTR;
end;
{$EXTERNALSYM SP_DEVICE_INTERFACE_DATA}
TSPDeviceInterfaceData = SP_DEVICE_INTERFACE_DATA;
//
// Flags for SP_DEVICE_INTERFACE_DATA.Flags field.
//
const
SPINT_ACTIVE = $00000001;
{$EXTERNALSYM SPINT_ACTIVE}
SPINT_DEFAULT = $00000002;
{$EXTERNALSYM SPINT_DEFAULT}
SPINT_REMOVED = $00000004;
{$EXTERNALSYM SPINT_REMOVED}
//
// Backward compatibility--do not use.
//
type
TSPInterfaceDeviceData = TSPDeviceInterfaceData;
PSPInterfaceDeviceData = PSPDeviceInterfaceData;
const
SPID_ACTIVE = SPINT_ACTIVE;
{$EXTERNALSYM SPID_ACTIVE}
SPID_DEFAULT = SPINT_DEFAULT;
{$EXTERNALSYM SPID_DEFAULT}
SPID_REMOVED = SPINT_REMOVED;
{$EXTERNALSYM SPID_REMOVED}
type
PSPDeviceInterfaceDetailDataA = ^TSPDeviceInterfaceDetailDataA;
PSPDeviceInterfaceDetailDataW = ^TSPDeviceInterfaceDetailDataW;
SP_DEVICE_INTERFACE_DETAIL_DATA_A = packed record
cbSize: DWORD;
DevicePath: array [0..ANYSIZE_ARRAY - 1] of AnsiChar;
end;
{$EXTERNALSYM SP_DEVICE_INTERFACE_DETAIL_DATA_A}
SP_DEVICE_INTERFACE_DETAIL_DATA_W = packed record
cbSize: DWORD;
DevicePath: array [0..ANYSIZE_ARRAY - 1] of WideChar;
end;
{$EXTERNALSYM SP_DEVICE_INTERFACE_DETAIL_DATA_W}
TSPDeviceInterfaceDetailDataA = SP_DEVICE_INTERFACE_DETAIL_DATA_A;
TSPDeviceInterfaceDetailDataW = SP_DEVICE_INTERFACE_DETAIL_DATA_W;
{$IFDEF UNICODE}
TSPDeviceInterfaceDetailData = TSPDeviceInterfaceDetailDataW;
PSPDeviceInterfaceDetailData = PSPDeviceInterfaceDetailDataW;
{$ELSE}
TSPDeviceInterfaceDetailData = TSPDeviceInterfaceDetailDataA;
PSPDeviceInterfaceDetailData = PSPDeviceInterfaceDetailDataA;
{$ENDIF UNICODE}
//
// Backward compatibility--do not use.
//
TSPInterfaceDeviceDetailDataA = TSPDeviceInterfaceDetailDataA;
TSPInterfaceDeviceDetailDataW = TSPDeviceInterfaceDetailDataW;
PSPInterfaceDeviceDetailDataA = PSPDeviceInterfaceDetailDataA;
PSPInterfaceDeviceDetailDataW = PSPDeviceInterfaceDetailDataW;
{$IFDEF UNICODE}
TSPInterfaceDeviceDetailData = TSPInterfaceDeviceDetailDataW;
PSPInterfaceDeviceDetailData = PSPInterfaceDeviceDetailDataW;
{$ELSE}
TSPInterfaceDeviceDetailData = TSPInterfaceDeviceDetailDataA;
PSPInterfaceDeviceDetailData = PSPInterfaceDeviceDetailDataA;
{$ENDIF UNICODE}
//
// Structure for detailed information on a device information set (used for
// SetupDiGetDeviceInfoListDetail which supercedes the functionality of
// SetupDiGetDeviceInfoListClass).
//
PSPDevInfoListDetailDataA = ^TSPDevInfoListDetailDataA;
PSPDevInfoListDetailDataW = ^TSPDevInfoListDetailDataW;
SP_DEVINFO_LIST_DETAIL_DATA_A = packed record
cbSize: DWORD;
ClassGuid: TGUID;
RemoteMachineHandle: THandle;
RemoteMachineName: array [0..SP_MAX_MACHINENAME_LENGTH - 1] of AnsiChar;
end;
{$EXTERNALSYM SP_DEVINFO_LIST_DETAIL_DATA_A}
SP_DEVINFO_LIST_DETAIL_DATA_W = packed record
cbSize: DWORD;
ClassGuid: TGUID;
RemoteMachineHandle: THandle;
RemoteMachineName: array [0..SP_MAX_MACHINENAME_LENGTH - 1] of WideChar;
end;
{$EXTERNALSYM SP_DEVINFO_LIST_DETAIL_DATA_W}
TSPDevInfoListDetailDataA = SP_DEVINFO_LIST_DETAIL_DATA_A;
TSPDevInfoListDetailDataW = SP_DEVINFO_LIST_DETAIL_DATA_W;
{$IFDEF UNICODE}
TSPDevInfoListDetailData = TSPDevInfoListDetailDataW;
PSPDevInfoListDetailData = PSPDevInfoListDetailDataW;
{$ELSE}
TSPDevInfoListDetailData = TSPDevInfoListDetailDataA;
PSPDevInfoListDetailData = PSPDevInfoListDetailDataA;
{$ENDIF UNICODE}
//
// Class installer function codes
//
const
DIF_SELECTDEVICE = $00000001;
{$EXTERNALSYM DIF_SELECTDEVICE}
DIF_INSTALLDEVICE = $00000002;
{$EXTERNALSYM DIF_INSTALLDEVICE}
DIF_ASSIGNRESOURCES = $00000003;
{$EXTERNALSYM DIF_ASSIGNRESOURCES}
DIF_PROPERTIES = $00000004;
{$EXTERNALSYM DIF_PROPERTIES}
DIF_REMOVE = $00000005;
{$EXTERNALSYM DIF_REMOVE}
DIF_FIRSTTIMESETUP = $00000006;
{$EXTERNALSYM DIF_FIRSTTIMESETUP}
DIF_FOUNDDEVICE = $00000007;
{$EXTERNALSYM DIF_FOUNDDEVICE}
DIF_SELECTCLASSDRIVERS = $00000008;
{$EXTERNALSYM DIF_SELECTCLASSDRIVERS}
DIF_VALIDATECLASSDRIVERS = $00000009;
{$EXTERNALSYM DIF_VALIDATECLASSDRIVERS}
DIF_INSTALLCLASSDRIVERS = $0000000A;
{$EXTERNALSYM DIF_INSTALLCLASSDRIVERS}
DIF_CALCDISKSPACE = $0000000B;
{$EXTERNALSYM DIF_CALCDISKSPACE}
DIF_DESTROYPRIVATEDATA = $0000000C;
{$EXTERNALSYM DIF_DESTROYPRIVATEDATA}
DIF_VALIDATEDRIVER = $0000000D;
{$EXTERNALSYM DIF_VALIDATEDRIVER}
DIF_MOVEDEVICE = $0000000E;
{$EXTERNALSYM DIF_MOVEDEVICE}
DIF_DETECT = $0000000F;
{$EXTERNALSYM DIF_DETECT}
DIF_INSTALLWIZARD = $00000010;
{$EXTERNALSYM DIF_INSTALLWIZARD}
DIF_DESTROYWIZARDDATA = $00000011;
{$EXTERNALSYM DIF_DESTROYWIZARDDATA}
DIF_PROPERTYCHANGE = $00000012;
{$EXTERNALSYM DIF_PROPERTYCHANGE}
DIF_ENABLECLASS = $00000013;
{$EXTERNALSYM DIF_ENABLECLASS}
DIF_DETECTVERIFY = $00000014;
{$EXTERNALSYM DIF_DETECTVERIFY}
DIF_INSTALLDEVICEFILES = $00000015;
{$EXTERNALSYM DIF_INSTALLDEVICEFILES}
DIF_UNREMOVE = $00000016;
{$EXTERNALSYM DIF_UNREMOVE}
DIF_SELECTBESTCOMPATDRV = $00000017;
{$EXTERNALSYM DIF_SELECTBESTCOMPATDRV}
DIF_ALLOW_INSTALL = $00000018;
{$EXTERNALSYM DIF_ALLOW_INSTALL}
DIF_REGISTERDEVICE = $00000019;
{$EXTERNALSYM DIF_REGISTERDEVICE}
DIF_NEWDEVICEWIZARD_PRESELECT = $0000001A;
{$EXTERNALSYM DIF_NEWDEVICEWIZARD_PRESELECT}
DIF_NEWDEVICEWIZARD_SELECT = $0000001B;
{$EXTERNALSYM DIF_NEWDEVICEWIZARD_SELECT}
DIF_NEWDEVICEWIZARD_PREANALYZE = $0000001C;
{$EXTERNALSYM DIF_NEWDEVICEWIZARD_PREANALYZE}
DIF_NEWDEVICEWIZARD_POSTANALYZE = $0000001D;
{$EXTERNALSYM DIF_NEWDEVICEWIZARD_POSTANALYZE}
DIF_NEWDEVICEWIZARD_FINISHINSTALL = $0000001E;
{$EXTERNALSYM DIF_NEWDEVICEWIZARD_FINISHINSTALL}
DIF_UNUSED1 = $0000001F;
{$EXTERNALSYM DIF_UNUSED1}
DIF_INSTALLINTERFACES = $00000020;
{$EXTERNALSYM DIF_INSTALLINTERFACES}
DIF_DETECTCANCEL = $00000021;
{$EXTERNALSYM DIF_DETECTCANCEL}
DIF_REGISTER_COINSTALLERS = $00000022;
{$EXTERNALSYM DIF_REGISTER_COINSTALLERS}
DIF_ADDPROPERTYPAGE_ADVANCED = $00000023;
{$EXTERNALSYM DIF_ADDPROPERTYPAGE_ADVANCED}
DIF_ADDPROPERTYPAGE_BASIC = $00000024;
{$EXTERNALSYM DIF_ADDPROPERTYPAGE_BASIC}
DIF_RESERVED1 = $00000025;
{$EXTERNALSYM DIF_RESERVED1}
DIF_TROUBLESHOOTER = $00000026;
{$EXTERNALSYM DIF_TROUBLESHOOTER}
DIF_POWERMESSAGEWAKE = $00000027;
{$EXTERNALSYM DIF_POWERMESSAGEWAKE}
DIF_ADDREMOTEPROPERTYPAGE_ADVANCED = $00000028;
{$EXTERNALSYM DIF_ADDREMOTEPROPERTYPAGE_ADVANCED}
DIF_UPDATEDRIVER_UI = $00000029;
{$EXTERNALSYM DIF_UPDATEDRIVER_UI}
DIF_RESERVED2 = $00000030;
{$EXTERNALSYM DIF_RESERVED2}
type
DI_FUNCTION = UINT; // Function type for device installer
{$EXTERNALSYM DI_FUNCTION}
//
// Device installation parameters structure (associated with a
// particular device information element, or globally with a device
// information set)
//
PSPDevInstallParamsA = ^TSPDevInstallParamsA;
PSPDevInstallParamsW = ^TSPDevInstallParamsW;
SP_DEVINSTALL_PARAMS_A = packed record
cbSize: DWORD;
Flags: DWORD;
FlagsEx: DWORD;
hwndParent: HWND;
InstallMsgHandler: TSPFileCallback;
InstallMsgHandlerContext: Pointer;
FileQueue: HSPFILEQ;
ClassInstallReserved: ULONG_PTR;
Reserved: DWORD;
DriverPath: array [0..MAX_PATH - 1] of AnsiChar;
end;
{$EXTERNALSYM SP_DEVINSTALL_PARAMS_A}
SP_DEVINSTALL_PARAMS_W = packed record
cbSize: DWORD;
Flags: DWORD;
FlagsEx: DWORD;
hwndParent: HWND;
InstallMsgHandler: TSPFileCallback;
InstallMsgHandlerContext: Pointer;
FileQueue: HSPFILEQ;
ClassInstallReserved: ULONG_PTR;
Reserved: DWORD;
DriverPath: array [0..MAX_PATH - 1] of WideChar;
end;
{$EXTERNALSYM SP_DEVINSTALL_PARAMS_W}
TSPDevInstallParamsA = SP_DEVINSTALL_PARAMS_A;
TSPDevInstallParamsW = SP_DEVINSTALL_PARAMS_W;
{$IFDEF UNICODE}
TSPDevInstallParams = TSPDevInstallParamsW;
PSPDevInstallParams = PSPDevInstallParamsW;
{$ELSE}
TSPDevInstallParams = TSPDevInstallParamsA;
PSPDevInstallParams = PSPDevInstallParamsA;
{$ENDIF UNICODE}
//
// SP_DEVINSTALL_PARAMS.Flags values
//
// Flags for choosing a device
//
const
DI_SHOWOEM = $00000001; // support Other... button
{$EXTERNALSYM DI_SHOWOEM}
DI_SHOWCOMPAT = $00000002; // show compatibility list
{$EXTERNALSYM DI_SHOWCOMPAT}
DI_SHOWCLASS = $00000004; // show class list
{$EXTERNALSYM DI_SHOWCLASS}
DI_SHOWALL = $00000007; // both class & compat list shown
{$EXTERNALSYM DI_SHOWALL}
DI_NOVCP = $00000008; // don't create a new copy queue--use
{$EXTERNALSYM DI_NOVCP} // caller-supplied FileQueue
DI_DIDCOMPAT = $00000010; // Searched for compatible devices
{$EXTERNALSYM DI_DIDCOMPAT}
DI_DIDCLASS = $00000020; // Searched for class devices
{$EXTERNALSYM DI_DIDCLASS}
DI_AUTOASSIGNRES = $00000040; // No UI for resources if possible
{$EXTERNALSYM DI_AUTOASSIGNRES}
// flags returned by DiInstallDevice to indicate need to reboot/restart
DI_NEEDRESTART = $00000080; // Reboot required to take effect
{$EXTERNALSYM DI_NEEDRESTART}
DI_NEEDREBOOT = $00000100; // ""
{$EXTERNALSYM DI_NEEDREBOOT}
// flags for device installation
DI_NOBROWSE = $00000200; // no Browse... in InsertDisk
{$EXTERNALSYM DI_NOBROWSE}
// Flags set by DiBuildDriverInfoList
DI_MULTMFGS = $00000400; // Set if multiple manufacturers in
{$EXTERNALSYM DI_MULTMFGS} // class driver list
// Flag indicates that device is disabled
DI_DISABLED = $00000800; // Set if device disabled
{$EXTERNALSYM DI_DISABLED}
// Flags for Device/Class Properties
DI_GENERALPAGE_ADDED = $00001000;
{$EXTERNALSYM DI_GENERALPAGE_ADDED}
DI_RESOURCEPAGE_ADDED = $00002000;
{$EXTERNALSYM DI_RESOURCEPAGE_ADDED}
// Flag to indicate the setting properties for this Device (or class) caused a change
// so the Dev Mgr UI probably needs to be updatd.
DI_PROPERTIES_CHANGE = $00004000;
{$EXTERNALSYM DI_PROPERTIES_CHANGE}
// Flag to indicate that the sorting from the INF file should be used.
DI_INF_IS_SORTED = $00008000;
{$EXTERNALSYM DI_INF_IS_SORTED}
// Flag to indicate that only the the INF specified by SP_DEVINSTALL_PARAMS.DriverPath
// should be searched.
DI_ENUMSINGLEINF = $00010000;
{$EXTERNALSYM DI_ENUMSINGLEINF}
// Flag that prevents ConfigMgr from removing/re-enumerating devices during device
// registration, installation, and deletion.
DI_DONOTCALLCONFIGMG = $00020000;
{$EXTERNALSYM DI_DONOTCALLCONFIGMG}
// The following flag can be used to install a device disabled
DI_INSTALLDISABLED = $00040000;
{$EXTERNALSYM DI_INSTALLDISABLED}
// Flag that causes SetupDiBuildDriverInfoList to build a device's compatible driver
// list from its existing class driver list, instead of the normal INF search.
DI_COMPAT_FROM_CLASS = $00080000;
{$EXTERNALSYM DI_COMPAT_FROM_CLASS}
// This flag is set if the Class Install params should be used.
DI_CLASSINSTALLPARAMS = $00100000;
{$EXTERNALSYM DI_CLASSINSTALLPARAMS}
// This flag is set if the caller of DiCallClassInstaller does NOT
// want the internal default action performed if the Class installer
// returns ERROR_DI_DO_DEFAULT.
DI_NODI_DEFAULTACTION = $00200000;
{$EXTERNALSYM DI_NODI_DEFAULTACTION}
// The setupx flag, DI_NOSYNCPROCESSING (0x00400000L) is not support in the Setup APIs.
// flags for device installation
DI_QUIETINSTALL = $00800000; // don't confuse the user with
{$EXTERNALSYM DI_QUIETINSTALL} // questions or excess info
DI_NOFILECOPY = $01000000; // No file Copy necessary
{$EXTERNALSYM DI_NOFILECOPY}
DI_FORCECOPY = $02000000; // Force files to be copied from install path
{$EXTERNALSYM DI_FORCECOPY}
DI_DRIVERPAGE_ADDED = $04000000; // Prop provider added Driver page.
{$EXTERNALSYM DI_DRIVERPAGE_ADDED}
DI_USECI_SELECTSTRINGS = $08000000; // Use Class Installer Provided strings in the Select Device Dlg
{$EXTERNALSYM DI_USECI_SELECTSTRINGS}
DI_OVERRIDE_INFFLAGS = $10000000; // Override INF flags
{$EXTERNALSYM DI_OVERRIDE_INFFLAGS}
DI_PROPS_NOCHANGEUSAGE = $20000000; // No Enable/Disable in General Props
{$EXTERNALSYM DI_PROPS_NOCHANGEUSAGE}
DI_NOSELECTICONS = $40000000; // No small icons in select device dialogs
{$EXTERNALSYM DI_NOSELECTICONS}
DI_NOWRITE_IDS = DWORD($80000000); // Don't write HW & Compat IDs on install
{$EXTERNALSYM DI_NOWRITE_IDS}
//
// SP_DEVINSTALL_PARAMS.FlagsEx values
//
DI_FLAGSEX_USEOLDINFSEARCH = $00000001; // Inf Search functions should not use Index Search
{$EXTERNALSYM DI_FLAGSEX_USEOLDINFSEARCH}
DI_FLAGSEX_AUTOSELECTRANK0 = $00000002; // SetupDiSelectDevice doesn't prompt user if rank 0 match
{$EXTERNALSYM DI_FLAGSEX_AUTOSELECTRANK0}
DI_FLAGSEX_CI_FAILED = $00000004; // Failed to Load/Call class installer
{$EXTERNALSYM DI_FLAGSEX_CI_FAILED}
DI_FLAGSEX_DIDINFOLIST = $00000010; // Did the Class Info List
{$EXTERNALSYM DI_FLAGSEX_DIDINFOLIST}
DI_FLAGSEX_DIDCOMPATINFO = $00000020; // Did the Compat Info List
{$EXTERNALSYM DI_FLAGSEX_DIDCOMPATINFO}
DI_FLAGSEX_FILTERCLASSES = $00000040;
{$EXTERNALSYM DI_FLAGSEX_FILTERCLASSES}
DI_FLAGSEX_SETFAILEDINSTALL = $00000080;
{$EXTERNALSYM DI_FLAGSEX_SETFAILEDINSTALL}
DI_FLAGSEX_DEVICECHANGE = $00000100;
{$EXTERNALSYM DI_FLAGSEX_DEVICECHANGE}
DI_FLAGSEX_ALWAYSWRITEIDS = $00000200;
{$EXTERNALSYM DI_FLAGSEX_ALWAYSWRITEIDS}
DI_FLAGSEX_PROPCHANGE_PENDING = $00000400; // One or more device property sheets have had changes made
{$EXTERNALSYM DI_FLAGSEX_PROPCHANGE_PENDING} // to them, and need to have a DIF_PROPERTYCHANGE occur.
DI_FLAGSEX_ALLOWEXCLUDEDDRVS = $00000800;
{$EXTERNALSYM DI_FLAGSEX_ALLOWEXCLUDEDDRVS}
DI_FLAGSEX_NOUIONQUERYREMOVE = $00001000;
{$EXTERNALSYM DI_FLAGSEX_NOUIONQUERYREMOVE}
DI_FLAGSEX_USECLASSFORCOMPAT = $00002000; // Use the device's class when building compat drv list.
{$EXTERNALSYM DI_FLAGSEX_USECLASSFORCOMPAT} // (Ignored if DI_COMPAT_FROM_CLASS flag is specified.)
DI_FLAGSEX_OLDINF_IN_CLASSLIST = $00004000; // Search legacy INFs when building class driver list.
{$EXTERNALSYM DI_FLAGSEX_OLDINF_IN_CLASSLIST}
DI_FLAGSEX_NO_DRVREG_MODIFY = $00008000; // Don't run AddReg and DelReg for device's software (driver) key.
{$EXTERNALSYM DI_FLAGSEX_NO_DRVREG_MODIFY}
DI_FLAGSEX_IN_SYSTEM_SETUP = $00010000; // Installation is occurring during initial system setup.
{$EXTERNALSYM DI_FLAGSEX_IN_SYSTEM_SETUP}
DI_FLAGSEX_INET_DRIVER = $00020000; // Driver came from Windows Update
{$EXTERNALSYM DI_FLAGSEX_INET_DRIVER}
DI_FLAGSEX_APPENDDRIVERLIST = $00040000; // Cause SetupDiBuildDriverInfoList to append
{$EXTERNALSYM DI_FLAGSEX_APPENDDRIVERLIST} // a new driver list to an existing list.
DI_FLAGSEX_PREINSTALLBACKUP = $00080000; // backup all files required by old inf before install
{$EXTERNALSYM DI_FLAGSEX_PREINSTALLBACKUP}
DI_FLAGSEX_BACKUPONREPLACE = $00100000; // backup files required by old inf as they are replaced
{$EXTERNALSYM DI_FLAGSEX_BACKUPONREPLACE}
DI_FLAGSEX_DRIVERLIST_FROM_URL = $00200000; // build driver list from INF(s) retrieved from URL specified
{$EXTERNALSYM DI_FLAGSEX_DRIVERLIST_FROM_URL}
// in SP_DEVINSTALL_PARAMS.DriverPath (empty string means
// Windows Update website)
DI_FLAGSEX_RESERVED1 = $00400000;
{$EXTERNALSYM DI_FLAGSEX_RESERVED1}
DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS = $00800000; // Don't include old Internet drivers when building
{$EXTERNALSYM DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS}
// a driver list.
DI_FLAGSEX_POWERPAGE_ADDED = $01000000; // class installer added their own power page
{$EXTERNALSYM DI_FLAGSEX_POWERPAGE_ADDED}
DI_FLAGSEX_FILTERSIMILARDRIVERS = $02000000; // only include similar drivers in class list
{$EXTERNALSYM DI_FLAGSEX_FILTERSIMILARDRIVERS}
DI_FLAGSEX_INSTALLEDDRIVER = $04000000; // only add the installed driver to the class or compat
{$EXTERNALSYM DI_FLAGSEX_INSTALLEDDRIVER}
// driver list. Used in calls to SetupDiBuildDriverInfoList
DI_FLAGSEX_NO_CLASSLIST_NODE_MERGE = $08000000; // Don't remove identical driver nodes from the class list
{$EXTERNALSYM DI_FLAGSEX_NO_CLASSLIST_NODE_MERGE}
DI_FLAGSEX_ALTPLATFORM_DRVSEARCH = $10000000; // Build driver list based on alternate platform information
{$EXTERNALSYM DI_FLAGSEX_ALTPLATFORM_DRVSEARCH}
// specified in associated file queue
DI_FLAGSEX_RESTART_DEVICE_ONLY = $20000000; // only restart the device drivers are being installed on as
{$EXTERNALSYM DI_FLAGSEX_RESTART_DEVICE_ONLY}
//
// Class installation parameters header. This must be the first field of any
// class install parameter structure. The InstallFunction field must be set to
// the function code corresponding to the structure, and the cbSize field must
// be set to the size of the header structure. E.g.,
//
// SP_ENABLECLASS_PARAMS EnableClassParams;
//
// EnableClassParams.ClassInstallHeader.cbSize = sizeof(SP_CLASSINSTALL_HEADER);
// EnableClassParams.ClassInstallHeader.InstallFunction = DIF_ENABLECLASS;
//
type
PSPClassInstallHeader = ^TSPClassInstallHeader;
SP_CLASSINSTALL_HEADER = packed record
cbSize: DWORD;
InstallFunction: DI_FUNCTION;
end;
{$EXTERNALSYM SP_CLASSINSTALL_HEADER}
TSPClassInstallHeader = SP_CLASSINSTALL_HEADER;
//
// Structure corresponding to a DIF_ENABLECLASS install function.
//
PSPEnableClassParams = ^TSPEnableClassParams;
SP_ENABLECLASS_PARAMS = packed record
ClassInstallHeader: TSPClassInstallHeader;
ClassGuid: TGUID;
EnableMessage: DWORD;
end;
{$EXTERNALSYM SP_ENABLECLASS_PARAMS}
TSPEnableClassParams = SP_ENABLECLASS_PARAMS;
const
ENABLECLASS_QUERY = 0;
{$EXTERNALSYM ENABLECLASS_QUERY}
ENABLECLASS_SUCCESS = 1;
{$EXTERNALSYM ENABLECLASS_SUCCESS}
ENABLECLASS_FAILURE = 2;
{$EXTERNALSYM ENABLECLASS_FAILURE}
//
// Structure corresponding to a DIF_MOVEDEVICE install function.
//
type
PSPMoveDevParams = ^TSPMoveDevParams;
SP_MOVEDEV_PARAMS = packed record
ClassInstallHeader: TSPClassInstallHeader;
SourceDeviceInfoData: TSPDevInfoData;
end;
{$EXTERNALSYM SP_MOVEDEV_PARAMS}
TSPMoveDevParams = SP_MOVEDEV_PARAMS;
//
// Values indicating a change in a device's state
//
const
DICS_ENABLE = $00000001;
{$EXTERNALSYM DICS_ENABLE}
DICS_DISABLE = $00000002;
{$EXTERNALSYM DICS_DISABLE}
DICS_PROPCHANGE = $00000003;
{$EXTERNALSYM DICS_PROPCHANGE}
DICS_START = $00000004;
{$EXTERNALSYM DICS_START}
DICS_STOP = $00000005;
{$EXTERNALSYM DICS_STOP}
//
// Values specifying the scope of a device property change
//
DICS_FLAG_GLOBAL = $00000001; // make change in all hardware profiles
{$EXTERNALSYM DICS_FLAG_GLOBAL}
DICS_FLAG_CONFIGSPECIFIC = $00000002; // make change in specified profile only
{$EXTERNALSYM DICS_FLAG_CONFIGSPECIFIC}
DICS_FLAG_CONFIGGENERAL = $00000004; // 1 or more hardware profile-specific
{$EXTERNALSYM DICS_FLAG_CONFIGGENERAL} // changes to follow.
//
// Structure corresponding to a DIF_PROPERTYCHANGE install function.
//
type
PSPPropChangeParams = ^TSPPropChangeParams;
SP_PROPCHANGE_PARAMS = packed record
ClassInstallHeader: TSPClassInstallHeader;
StateChange: DWORD;
Scope: DWORD;
HwProfile: DWORD;
end;
{$EXTERNALSYM SP_PROPCHANGE_PARAMS}
TSPPropChangeParams = SP_PROPCHANGE_PARAMS;
//
// Structure corresponding to a DIF_REMOVE install function.
//
PSPRemoveDeviceParams = ^TSPRemoveDeviceParams;
SP_REMOVEDEVICE_PARAMS = packed record
ClassInstallHeader: TSPClassInstallHeader;
Scope: DWORD;
HwProfile: DWORD;
end;
{$EXTERNALSYM SP_REMOVEDEVICE_PARAMS}
TSPRemoveDeviceParams = SP_REMOVEDEVICE_PARAMS;
const
DI_REMOVEDEVICE_GLOBAL = $00000001;
{$EXTERNALSYM DI_REMOVEDEVICE_GLOBAL}
DI_REMOVEDEVICE_CONFIGSPECIFIC = $00000002;
{$EXTERNALSYM DI_REMOVEDEVICE_CONFIGSPECIFIC}
//
// Structure corresponding to a DIF_UNREMOVE install function.
//
type
PSPUnremoveDeviceParams = ^TSPUnremoveDeviceParams;
SP_UNREMOVEDEVICE_PARAMS = packed record
ClassInstallHeader: TSPClassInstallHeader;
Scope: DWORD;
HwProfile: DWORD;
end;
{$EXTERNALSYM SP_UNREMOVEDEVICE_PARAMS}
TSPUnremoveDeviceParams = SP_UNREMOVEDEVICE_PARAMS;
const
DI_UNREMOVEDEVICE_CONFIGSPECIFIC = $00000002;
{$EXTERNALSYM DI_UNREMOVEDEVICE_CONFIGSPECIFIC}
//
// Structure corresponding to a DIF_SELECTDEVICE install function.
//
type
PSPSelectDeviceParamsA = ^TSPSelectDeviceParamsA;
PSPSelectDeviceParamsW = ^TSPSelectDeviceParamsW;
SP_SELECTDEVICE_PARAMS_A = packed record
ClassInstallHeader: TSPClassInstallHeader;
Title: array [0..MAX_TITLE_LEN - 1] of AnsiChar;
Instructions: array [0..MAX_INSTRUCTION_LEN - 1] of AnsiChar;
ListLabel: array [0..MAX_LABEL_LEN - 1] of AnsiChar;
SubTitle: array [0..MAX_SUBTITLE_LEN - 1] of AnsiChar;
Reserved: array [0..1] of Byte; // DWORD size alignment
end;
{$EXTERNALSYM SP_SELECTDEVICE_PARAMS_A}
SP_SELECTDEVICE_PARAMS_W = packed record
ClassInstallHeader: TSPClassInstallHeader;
Title: array [0..MAX_TITLE_LEN - 1] of WideChar;
Instructions: array [0..MAX_INSTRUCTION_LEN - 1] of WideChar;
ListLabel: array [0..MAX_LABEL_LEN - 1] of WideChar;
SubTitle: array [0..MAX_SUBTITLE_LEN - 1] of WideChar;
Reserved: array [0..1] of Byte; // DWORD size alignment
end;
{$EXTERNALSYM SP_SELECTDEVICE_PARAMS_W}
TSPSelectdeviceParamsA = SP_SELECTDEVICE_PARAMS_A;
TSPSelectdeviceParamsW = SP_SELECTDEVICE_PARAMS_W;
{$IFDEF UNICODE}
TSPSelectdeviceParams = TSPSelectdeviceParamsW;
PSPSelectDeviceParams = PSPSelectDeviceParamsW;
{$ELSE}
TSPSelectdeviceParams = TSPSelectdeviceParamsA;
PSPSelectDeviceParams = PSPSelectDeviceParamsA;
{$ENDIF UNICODE}
//
// Callback routine for giving progress notification during detection
//
PDetectProgressNotify = function(ProgressNotifyParam: Pointer; DetectComplete: DWORD): BOOL; stdcall;
// where:
// ProgressNotifyParam - value supplied by caller requesting detection.
// DetectComplete - Percent completion, to be incremented by class
// installer, as it steps thru its detection.
//
// Return Value - If TRUE, then detection is cancelled. Allows caller
// requesting detection to stop detection asap.
//
//
// Structure corresponding to a DIF_DETECT install function.
//
PSPDetectDeviceParams = ^TSPDetectDeviceParams;
SP_DETECTDEVICE_PARAMS = packed record
ClassInstallHeader: TSPClassInstallHeader;
DetectProgressNotify: PDetectProgressNotify;
ProgressNotifyParam: Pointer;
end;
{$EXTERNALSYM SP_DETECTDEVICE_PARAMS}
TSPDetectDeviceParams = SP_DETECTDEVICE_PARAMS;
//
// 'Add New Device' installation wizard structure (backward-compatibility
// only--respond to DIF_NEWDEVICEWIZARD_* requests instead).
//
// Structure corresponding to a DIF_INSTALLWIZARD install function.
// (NOTE: This structure is also applicable for DIF_DESTROYWIZARDDATA,
// but DIF_INSTALLWIZARD is the associated function code in the class
// installation parameter structure in both cases.)
//
// Define maximum number of dynamic wizard pages that can be added to
// hardware install wizard.
//
const
MAX_INSTALLWIZARD_DYNAPAGES = 20;
{$EXTERNALSYM MAX_INSTALLWIZARD_DYNAPAGES}
type
PSPInstallWizardData = ^TSPInstallWizardData;
SP_INSTALLWIZARD_DATA = packed record
ClassInstallHeader: TSPClassInstallHeader;
Flags: DWORD;
DynamicPages: array [0..MAX_INSTALLWIZARD_DYNAPAGES - 1] of HPROPSHEETPAGE;
NumDynamicPages: DWORD;
DynamicPageFlags: DWORD;
PrivateFlags: DWORD;
PrivateData: LPARAM;
hwndWizardDlg: HWND;
end;
{$EXTERNALSYM SP_INSTALLWIZARD_DATA}
TSPInstallWizardData = SP_INSTALLWIZARD_DATA;
//
// SP_INSTALLWIZARD_DATA.Flags values
//
const
NDW_INSTALLFLAG_DIDFACTDEFS = $00000001;
{$EXTERNALSYM NDW_INSTALLFLAG_DIDFACTDEFS}
NDW_INSTALLFLAG_HARDWAREALLREADYIN = $00000002;
{$EXTERNALSYM NDW_INSTALLFLAG_HARDWAREALLREADYIN}
NDW_INSTALLFLAG_NEEDRESTART = DI_NEEDRESTART;
{$EXTERNALSYM NDW_INSTALLFLAG_NEEDRESTART}
NDW_INSTALLFLAG_NEEDREBOOT = DI_NEEDREBOOT;
{$EXTERNALSYM NDW_INSTALLFLAG_NEEDREBOOT}
NDW_INSTALLFLAG_NEEDSHUTDOWN = $00000200;
{$EXTERNALSYM NDW_INSTALLFLAG_NEEDSHUTDOWN}
NDW_INSTALLFLAG_EXPRESSINTRO = $00000400;
{$EXTERNALSYM NDW_INSTALLFLAG_EXPRESSINTRO}
NDW_INSTALLFLAG_SKIPISDEVINSTALLED = $00000800;
{$EXTERNALSYM NDW_INSTALLFLAG_SKIPISDEVINSTALLED}
NDW_INSTALLFLAG_NODETECTEDDEVS = $00001000;
{$EXTERNALSYM NDW_INSTALLFLAG_NODETECTEDDEVS}
NDW_INSTALLFLAG_INSTALLSPECIFIC = $00002000;
{$EXTERNALSYM NDW_INSTALLFLAG_INSTALLSPECIFIC}
NDW_INSTALLFLAG_SKIPCLASSLIST = $00004000;
{$EXTERNALSYM NDW_INSTALLFLAG_SKIPCLASSLIST}
NDW_INSTALLFLAG_CI_PICKED_OEM = $00008000;
{$EXTERNALSYM NDW_INSTALLFLAG_CI_PICKED_OEM}
NDW_INSTALLFLAG_PCMCIAMODE = $00010000;
{$EXTERNALSYM NDW_INSTALLFLAG_PCMCIAMODE}
NDW_INSTALLFLAG_PCMCIADEVICE = $00020000;
{$EXTERNALSYM NDW_INSTALLFLAG_PCMCIADEVICE}
NDW_INSTALLFLAG_USERCANCEL = $00040000;
{$EXTERNALSYM NDW_INSTALLFLAG_USERCANCEL}
NDW_INSTALLFLAG_KNOWNCLASS = $00080000;
{$EXTERNALSYM NDW_INSTALLFLAG_KNOWNCLASS}
//
// SP_INSTALLWIZARD_DATA.DynamicPageFlags values
//
// This flag is set if a Class installer has added pages to the install wizard.
//
DYNAWIZ_FLAG_PAGESADDED = $00000001;
{$EXTERNALSYM DYNAWIZ_FLAG_PAGESADDED}
//
// Set this flag if you jump to the analyze page, and want it to
// handle conflicts for you. NOTE. You will not get control back
// in the event of a conflict if you set this flag.
//
DYNAWIZ_FLAG_ANALYZE_HANDLECONFLICT = $00000008;
{$EXTERNALSYM DYNAWIZ_FLAG_ANALYZE_HANDLECONFLICT}
//
// The following flags are not used by the Windows NT hardware wizard.
//
DYNAWIZ_FLAG_INSTALLDET_NEXT = $00000002;
{$EXTERNALSYM DYNAWIZ_FLAG_INSTALLDET_NEXT}
DYNAWIZ_FLAG_INSTALLDET_PREV = $00000004;
{$EXTERNALSYM DYNAWIZ_FLAG_INSTALLDET_PREV}
//
// Reserve a range of wizard page resource IDs for internal use. Some of
// these IDs are for use by class installers that respond to the obsolete
// DIF_INSTALLWIZARD/DIF_DESTROYWIZARDDATA messages. These IDs are listed
// below.
//
MIN_IDD_DYNAWIZ_RESOURCE_ID = 10000;
{$EXTERNALSYM MIN_IDD_DYNAWIZ_RESOURCE_ID}
MAX_IDD_DYNAWIZ_RESOURCE_ID = 11000;
{$EXTERNALSYM MAX_IDD_DYNAWIZ_RESOURCE_ID}
//
// Define wizard page resource IDs to be used when adding custom pages to the
// hardware install wizard via DIF_INSTALLWIZARD. Pages marked with
// (CLASS INSTALLER PROVIDED) _must_ be supplied by the class installer if it
// responds to the DIF_INSTALLWIZARD request.
//
//
// Resource ID for the first page that the install wizard will go to after
// adding the class installer pages. (CLASS INSTALLER PROVIDED)
//
IDD_DYNAWIZ_FIRSTPAGE = 10000;
{$EXTERNALSYM IDD_DYNAWIZ_FIRSTPAGE}
//
// Resource ID for the page that the Select Device page will go back to.
// (CLASS INSTALLER PROVIDED)
//
IDD_DYNAWIZ_SELECT_PREVPAGE = 10001;
{$EXTERNALSYM IDD_DYNAWIZ_SELECT_PREVPAGE}
//
// Resource ID for the page that the Select Device page will go forward to.
// (CLASS INSTALLER PROVIDED)
//
IDD_DYNAWIZ_SELECT_NEXTPAGE = 10002;
{$EXTERNALSYM IDD_DYNAWIZ_SELECT_NEXTPAGE}
//
// Resource ID for the page that the Analyze dialog should go back to
// This will only be used in the event that there is a problem, and the user
// selects Back from the analyze proc. (CLASS INSTALLER PROVIDED)
//
IDD_DYNAWIZ_ANALYZE_PREVPAGE = 10003;
{$EXTERNALSYM IDD_DYNAWIZ_ANALYZE_PREVPAGE}
//
// Resource ID for the page that the Analyze dialog should go to if it
// continues from the analyze proc. (CLASS INSTALLER PROVIDED)
//
IDD_DYNAWIZ_ANALYZE_NEXTPAGE = 10004;
{$EXTERNALSYM IDD_DYNAWIZ_ANALYZE_NEXTPAGE}
//
// Resource ID of the hardware install wizard's select device page.
// This ID can be used to go directly to the hardware install wizard's select
// device page. (This is the resource ID of the Select Device wizard page
// retrieved via SetupDiGetWizardPage when SPWPT_SELECTDEVICE is the requested
// PageType.)
//
IDD_DYNAWIZ_SELECTDEV_PAGE = 10009;
{$EXTERNALSYM IDD_DYNAWIZ_SELECTDEV_PAGE}
//
// Resource ID of the hardware install wizard's device analysis page.
// This ID can be use to go directly to the hardware install wizard's analysis
// page.
//
IDD_DYNAWIZ_ANALYZEDEV_PAGE = 10010;
{$EXTERNALSYM IDD_DYNAWIZ_ANALYZEDEV_PAGE}
//
// Resource ID of the hardware install wizard's install detected devices page.
// This ID can be use to go directly to the hardware install wizard's install
// detected devices page.
//
IDD_DYNAWIZ_INSTALLDETECTEDDEVS_PAGE = 10011;
{$EXTERNALSYM IDD_DYNAWIZ_INSTALLDETECTEDDEVS_PAGE}
//
// Resource ID of the hardware install wizard's select class page.
// This ID can be use to go directly to the hardware install wizard's select
// class page.
//
IDD_DYNAWIZ_SELECTCLASS_PAGE = 10012;
{$EXTERNALSYM IDD_DYNAWIZ_SELECTCLASS_PAGE}
//
// The following class installer-provided wizard page resource IDs are not used
// by the Windows NT hardware wizard.
//
IDD_DYNAWIZ_INSTALLDETECTED_PREVPAGE = 10006;
{$EXTERNALSYM IDD_DYNAWIZ_INSTALLDETECTED_PREVPAGE}
IDD_DYNAWIZ_INSTALLDETECTED_NEXTPAGE = 10007;
{$EXTERNALSYM IDD_DYNAWIZ_INSTALLDETECTED_NEXTPAGE}
IDD_DYNAWIZ_INSTALLDETECTED_NODEVS = 10008;
{$EXTERNALSYM IDD_DYNAWIZ_INSTALLDETECTED_NODEVS}
//
// Structure corresponding to the following DIF_NEWDEVICEWIZARD_* install
// functions:
//
// DIF_NEWDEVICEWIZARD_PRESELECT
// DIF_NEWDEVICEWIZARD_SELECT
// DIF_NEWDEVICEWIZARD_PREANALYZE
// DIF_NEWDEVICEWIZARD_POSTANALYZE
// DIF_NEWDEVICEWIZARD_FINISHINSTALL
//
type
PSPNewDeviceWizardData = ^TSPNewDeviceWizardData;
SP_NEWDEVICEWIZARD_DATA = packed record
ClassInstallHeader: TSPClassInstallHeader;
Flags: DWORD; // presently unused--must be zero.
DynamicPages: array [0..MAX_INSTALLWIZARD_DYNAPAGES - 1] of HPROPSHEETPAGE;
NumDynamicPages: DWORD;
hwndWizardDlg: HWND;
end;
{$EXTERNALSYM SP_NEWDEVICEWIZARD_DATA}
TSPNewDeviceWizardData = SP_NEWDEVICEWIZARD_DATA;
//
// Structure corresponding to the DIF_TROUBLESHOOTER install function
//
PSPTroubleShooterParamsA = ^TSPTroubleShooterParamsA;
PSPTroubleShooterParamsW = ^TSPTroubleShooterParamsW;
SP_TROUBLESHOOTER_PARAMS_A = packed record
ClassInstallHeader: TSPClassInstallHeader;
ChmFile: array [0..MAX_PATH - 1] of AnsiChar;
HtmlTroubleShooter: array [0..MAX_PATH - 1] of AnsiChar;
end;
{$EXTERNALSYM SP_TROUBLESHOOTER_PARAMS_A}
SP_TROUBLESHOOTER_PARAMS_W = packed record
ClassInstallHeader: TSPClassInstallHeader;
ChmFile: array [0..MAX_PATH - 1] of WideChar;
HtmlTroubleShooter: array [0..MAX_PATH - 1] of WideChar;
end;
{$EXTERNALSYM SP_TROUBLESHOOTER_PARAMS_W}
TSPTroubleShooterParamsA = SP_TROUBLESHOOTER_PARAMS_A;
TSPTroubleShooterParamsW = SP_TROUBLESHOOTER_PARAMS_W;
{$IFDEF UNICODE}
TSPTroubleShooterParams = TSPTroubleShooterParamsW;
PSPTroubleShooterParams = PSPTroubleShooterParamsW;
{$ELSE}
TSPTroubleShooterParams = TSPTroubleShooterParamsA;
PSPTroubleShooterParams = PSPTroubleShooterParamsA;
{$ENDIF UNICODE}
//
// Structure corresponding to the DIF_POWERMESSAGEWAKE install function
//
PSPPowerMessageWakeParamsA = ^TSPPowerMessageWakeParamsA;
PSPPowerMessageWakeParamsW = ^TSPPowerMessageWakeParamsW;
SP_POWERMESSAGEWAKE_PARAMS_A = packed record
ClassInstallHeader: TSPClassInstallHeader;
PowerMessageWake: array [0..(LINE_LEN * 2) - 1] of AnsiChar;
end;
{$EXTERNALSYM SP_POWERMESSAGEWAKE_PARAMS_A}
SP_POWERMESSAGEWAKE_PARAMS_W = packed record
ClassInstallHeader: TSPClassInstallHeader;
PowerMessageWake: array [0..(LINE_LEN * 2) - 1] of WideChar;
end;
{$EXTERNALSYM SP_POWERMESSAGEWAKE_PARAMS_W}
TSPPowerMessageWakeParamsA = SP_POWERMESSAGEWAKE_PARAMS_A;
TSPPowerMessageWakeParamsW = SP_POWERMESSAGEWAKE_PARAMS_W;
{$IFDEF UNICODE}
TSPPowerMessageWakeParams = TSPPowerMessageWakeParamsW;
PSPPowerMessageWakeParams = PSPPowerMessageWakeParamsW;
{$ELSE}
TSPPowerMessageWakeParams = TSPPowerMessageWakeParamsA;
PSPPowerMessageWakeParams = PSPPowerMessageWakeParamsA;
{$ENDIF UNICODE}
//
// Driver information structure (member of a driver info list that may be associated
// with a particular device instance, or (globally) with a device information set)
//
PSPDrvInfoDataV2A = ^TSPDrvInfoDataV2A;
PSPDrvInfoDataV2W = ^TSPDrvInfoDataV2W;
SP_DRVINFO_DATA_V2_A = packed record
cbSize: DWORD;
DriverType: DWORD;
Reserved: ULONG_PTR;
Description: array [0..LINE_LEN - 1] of AnsiChar;
MfgName: array [0..LINE_LEN - 1] of AnsiChar;
ProviderName: array [0..LINE_LEN - 1] of AnsiChar;
DriverDate: TFileTime;
DriverVersion: Int64;
end;
{$EXTERNALSYM SP_DRVINFO_DATA_V2_A}
SP_DRVINFO_DATA_V2_W = packed record
cbSize: DWORD;
DriverType: DWORD;
Reserved: ULONG_PTR;
Description: array [0..LINE_LEN - 1] of WideChar;
MfgName: array [0..LINE_LEN - 1] of WideChar;
ProviderName: array [0..LINE_LEN - 1] of WideChar;
DriverDate: TFileTime;
DriverVersion: Int64;
end;
{$EXTERNALSYM SP_DRVINFO_DATA_V2_W}
TSPDrvInfoDataV2A = SP_DRVINFO_DATA_V2_A;
TSPDrvInfoDataV2W = SP_DRVINFO_DATA_V2_W;
{$IFDEF UNICODE}
TSPDrvInfoDataV2 = TSPDrvInfoDataV2W;
PSPDrvInfoDataV2 = PSPDrvInfoDataV2W;
{$ELSE}
TSPDrvInfoDataV2 = TSPDrvInfoDataV2A;
PSPDrvInfoDataV2 = PSPDrvInfoDataV2A;
{$ENDIF UNICODE}
//
// Version 1 of the SP_DRVINFO_DATA structures, used only for compatibility
// with Windows NT 4.0/Windows 95/98 SETUPAPI.DLL
//
PSPDrvInfoDataV1A = ^TSPDrvInfoDataV1A;
PSPDrvInfoDataV1W = ^TSPDrvInfoDataV1W;
SP_DRVINFO_DATA_V1_A = packed record
cbSize: DWORD;
DriverType: DWORD;
Reserved: ULONG_PTR;
Description: array [0..LINE_LEN - 1] of AnsiChar;
MfgName: array [0..LINE_LEN - 1] of AnsiChar;
ProviderName: array [0..LINE_LEN - 1] of AnsiChar;
end;
{$EXTERNALSYM SP_DRVINFO_DATA_V1_A}
SP_DRVINFO_DATA_V1_W = packed record
cbSize: DWORD;
DriverType: DWORD;
Reserved: ULONG_PTR;
Description: array [0..LINE_LEN - 1] of WideChar;
MfgName: array [0..LINE_LEN - 1] of WideChar;
ProviderName: array [0..LINE_LEN - 1] of WideChar;
end;
{$EXTERNALSYM SP_DRVINFO_DATA_V1_W}
TSPDrvInfoDataV1A = SP_DRVINFO_DATA_V1_A;
TSPDrvInfoDataV1W = SP_DRVINFO_DATA_V1_W;
{$IFDEF UNICODE}
TSPDrvInfoDataV1 = TSPDrvInfoDataV1W;
PSPDrvInfoDataV1 = PSPDrvInfoDataV1W;
{$ELSE}
TSPDrvInfoDataV1 = TSPDrvInfoDataV1A;
PSPDrvInfoDataV1 = PSPDrvInfoDataV1A;
{$ENDIF UNICODE}
{$IFDEF WIN2000_UP}
TSPDrvInfoDataA = TSPDrvInfoDataV2A;
TSPDrvInfoDataW = TSPDrvInfoDataV2W;
PSPDrvInfoDataA = PSPDrvInfoDataV2A;
PSPDrvInfoDataW = PSPDrvInfoDataV2W;
{$IFDEF UNICODE}
TSPDrvInfoData = TSPDrvInfoDataW;
PSPDrvInfoData = PSPDrvInfoDataW;
{$ELSE}
TSPDrvInfoData = TSPDrvInfoDataA;
PSPDrvInfoData = PSPDrvInfoDataA;
{$ENDIF UNICODE}
{$ELSE}
TSPDrvInfoDataA = TSPDrvInfoDataV1A;
TSPDrvInfoDataW = TSPDrvInfoDataV1W;
PSPDrvInfoDataA = PSPDrvInfoDataV1A;
PSPDrvInfoDataW = PSPDrvInfoDataV1W;
{$IFDEF UNICODE}
TSPDrvInfoData = TSPDrvInfoDataW;
PSPDrvInfoData = PSPDrvInfoDataW;
{$ELSE}
TSPDrvInfoData = TSPDrvInfoDataA;
PSPDrvInfoData = PSPDrvInfoDataA;
{$ENDIF UNICODE}
{$ENDIF WIN2000_UP}
//
// Driver information details structure (provides detailed information about a
// particular driver information structure)
//
PSPDrvInfoDetailDataA = ^TSPDrvInfoDetailDataA;
PSPDrvInfoDetailDataW = ^TSPDrvInfoDetailDataW;
SP_DRVINFO_DETAIL_DATA_A = packed record
cbSize: DWORD;
InfDate: TFileTime;
CompatIDsOffset: DWORD;
CompatIDsLength: DWORD;
Reserved: ULONG_PTR;
SectionName: array [0..LINE_LEN - 1] of AnsiChar;
InfFileName: array [0..MAX_PATH - 1] of AnsiChar;
DrvDescription: array [0..LINE_LEN - 1] of AnsiChar;
HardwareID: array [0..ANYSIZE_ARRAY - 1] of AnsiChar;
end;
{$EXTERNALSYM SP_DRVINFO_DETAIL_DATA_A}
SP_DRVINFO_DETAIL_DATA_W = packed record
cbSize: DWORD;
InfDate: TFileTime;
CompatIDsOffset: DWORD;
CompatIDsLength: DWORD;
Reserved: ULONG_PTR;
SectionName: array [0..LINE_LEN - 1] of WideChar;
InfFileName: array [0..MAX_PATH - 1] of WideChar;
DrvDescription: array [0..LINE_LEN - 1] of WideChar;
HardwareID: array [0..ANYSIZE_ARRAY - 1] of WideChar;
end;
{$EXTERNALSYM SP_DRVINFO_DETAIL_DATA_W}
TSPDrvInfoDetailDataA = SP_DRVINFO_DETAIL_DATA_A;
TSPDrvInfoDetailDataW = SP_DRVINFO_DETAIL_DATA_W;
{$IFDEF UNICODE}
TSPDrvInfoDetailData = TSPDrvInfoDetailDataW;
PSPDrvInfoDetailData = PSPDrvInfoDetailDataW;
{$ELSE}
TSPDrvInfoDetailData = TSPDrvInfoDetailDataA;
PSPDrvInfoDetailData = PSPDrvInfoDetailDataA;
{$ENDIF UNICODE}
//
// Driver installation parameters (associated with a particular driver
// information element)
//
PSPDrvInstallParams = ^TSPDrvInstallParams;
SP_DRVINSTALL_PARAMS = packed record
cbSize: DWORD;
Rank: DWORD;
Flags: DWORD;
PrivateData: DWORD_PTR;
Reserved: DWORD;
end;
{$EXTERNALSYM SP_DRVINSTALL_PARAMS}
TSPDrvInstallParams = SP_DRVINSTALL_PARAMS;
//
// SP_DRVINSTALL_PARAMS.Flags values
//
const
DNF_DUPDESC = $00000001; // Multiple providers have same desc
{$EXTERNALSYM DNF_DUPDESC}
DNF_OLDDRIVER = $00000002; // Driver node specifies old/current driver
{$EXTERNALSYM DNF_OLDDRIVER}
DNF_EXCLUDEFROMLIST = $00000004; // If set, this driver node will not be
{$EXTERNALSYM DNF_EXCLUDEFROMLIST} // displayed in any driver select dialogs.
DNF_NODRIVER = $00000008; // if we want to install no driver
{$EXTERNALSYM DNF_NODRIVER} // (e.g no mouse drv)
DNF_LEGACYINF = $00000010; // this driver node comes from an old-style INF
{$EXTERNALSYM DNF_LEGACYINF}
DNF_CLASS_DRIVER = $00000020; // Driver node represents a class driver
{$EXTERNALSYM DNF_CLASS_DRIVER}
DNF_COMPATIBLE_DRIVER = $00000040; // Driver node represents a compatible driver
{$EXTERNALSYM DNF_COMPATIBLE_DRIVER}
DNF_INET_DRIVER = $00000080; // Driver comes from an internet source
{$EXTERNALSYM DNF_INET_DRIVER}
DNF_UNUSED1 = $00000100;
{$EXTERNALSYM DNF_UNUSED1}
DNF_INDEXED_DRIVER = $00000200; // Driver is contained in the Windows Driver Index
{$EXTERNALSYM DNF_INDEXED_DRIVER}
DNF_OLD_INET_DRIVER = $00000400; // Driver came from the Internet, but we don't currently
{$EXTERNALSYM DNF_OLD_INET_DRIVER} // have access to it's source files. Never attempt to
// install a driver with this flag!
DNF_BAD_DRIVER = $00000800; // Driver node should not be used at all
{$EXTERNALSYM DNF_BAD_DRIVER}
DNF_DUPPROVIDER = $00001000; // Multiple drivers have the same provider and desc
{$EXTERNALSYM DNF_DUPPROVIDER}
DNF_INF_IS_SIGNED = $00002000; // If file is digitally signed
{$EXTERNALSYM DNF_INF_IS_SIGNED}
DNF_OEM_F6_INF = $00004000; // INF specified from F6 during textmode setup.
{$EXTERNALSYM DNF_OEM_F6_INF}
DNF_DUPDRIVERVER = $00008000; // Multipe drivers have the same desc, provider, and DriverVer values
{$EXTERNALSYM DNF_DUPDRIVERVER}
DNF_BASIC_DRIVER = $00010000; // Driver provides basic functionality, but should
{$EXTERNALSYM DNF_BASIC_DRIVER}
// not be chosen if other signed drivers exist.
//
// Rank values (the lower the Rank number, the better the Rank)
//
DRIVER_HARDWAREID_RANK = $00000FFF; // Any rank less than or equal to
{$EXTERNALSYM DRIVER_HARDWAREID_RANK} // this value is a trusted
// HardwareID match
DRIVER_COMPATID_RANK = $00003FFF; // Any rank less than or equal to
{$EXTERNALSYM DRIVER_COMPATID_RANK} // this (and greater than
// DRIVER_HARDWAREID_RANK) is a
// trusted CompatibleID match
DRIVER_UNTRUSTED_RANK = $00008000; // Any rank with this bit set is an
{$EXTERNALSYM DRIVER_UNTRUSTED_RANK} // "untrusted" rank, meaning that
// the INF was unsigned.
DRIVER_UNTRUSTED_HARDWAREID_RANK = $00008FFF; // Any rank less than or equal to
{$EXTERNALSYM DRIVER_UNTRUSTED_HARDWAREID_RANK} // this value (and greater than
// or equal to DRIVER_UNTRUSTED_RANK)
// is an untrusted HardwareID match
DRIVER_UNTRUSTED_COMPATID_RANK = $0000BFFF; // Any rank less than or equal to
{$EXTERNALSYM DRIVER_UNTRUSTED_COMPATID_RANK} // this value (and greater than
// DRIVER_UNTRUSTED_HARDWAREID_RANK)
// is an untrusted CompatibleID match
DRIVER_W9X_SUSPECT_RANK = $0000C000; // Any rank that is greater than
{$EXTERNALSYM DRIVER_W9X_SUSPECT_RANK} // or equal to this value, and lesser
// than or equal to 0xFFFF is suspected
// to be a Win9x-only driver, because
// (a) it isn't signed, and (b) there
// is no NT-specific decoration to
// explicitly indicate that the INF
// supports Windows NT/200x
DRIVER_W9X_SUSPECT_HARDWAREID_RANK = $0000CFFF; // Any rank less than or equal to this
{$EXTERNALSYM DRIVER_W9X_SUSPECT_HARDWAREID_RANK} // (and greater than or equal to
// DRIVER_W9X_SUSPECT_RANK) is a
// hardware ID match suspected of being
// only for Windows 9x platforms.
DRIVER_W9X_SUSPECT_COMPATID_RANK = $0000FFFF; // Any rank less than or equal to
{$EXTERNALSYM DRIVER_W9X_SUSPECT_COMPATID_RANK} // this (and greater than
// DRIVER_W9X_SUSPECT_HARDWAREID_RANK)
// is a compatible ID match suspected
// of being only for Windows 9x
// platforms.
//
// Setup callback routine for comparing detection signatures
//
type
TSPDetsigCmpProc = function(DeviceInfoSet: HDEVINFO; NewDeviceData,
ExistingDeviceData: PSPDevInfoData; CompareContext: Pointer): DWORD; stdcall;
//
// Define context structure handed to co-installers
//
PCoInstallerContextData = ^TCoInstallerContextData;
COINSTALLER_CONTEXT_DATA = packed record
PostProcessing: BOOL;
InstallResult: DWORD;
PrivateData: Pointer;
end;
{$EXTERNALSYM COINSTALLER_CONTEXT_DATA}
TCoInstallerContextData = COINSTALLER_CONTEXT_DATA;
//
// Structure containing class image list information.
//
PSPClassImageListData = ^TSPClassImageListData;
SP_CLASSIMAGELIST_DATA = packed record
cbSize: DWORD;
ImageList: HIMAGELIST;
Reserved: ULONG_PTR;
end;
{$EXTERNALSYM SP_CLASSIMAGELIST_DATA}
TSPClassImageListData = SP_CLASSIMAGELIST_DATA;
//
// Structure to be passed as first parameter (LPVOID lpv) to ExtensionPropSheetPageProc
// entry point in setupapi.dll or to "EnumPropPages32" or "BasicProperties32" entry
// points provided by class/device property page providers. Used to retrieve a handle
// (or, potentially, multiple handles) to property pages for a specified property page type.
//
PSPPropSheetPageRequest = ^TSPPropSheetPageRequest;
SP_PROPSHEETPAGE_REQUEST = packed record
cbSize: DWORD;
PageRequested: DWORD;
DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData;
end;
{$EXTERNALSYM SP_PROPSHEETPAGE_REQUEST}
TSPPropSheetPageRequest = SP_PROPSHEETPAGE_REQUEST;
//
// Property sheet codes used in SP_PROPSHEETPAGE_REQUEST.PageRequested
//
const
SPPSR_SELECT_DEVICE_RESOURCES = 1; // supplied by setupapi.dll
{$EXTERNALSYM SPPSR_SELECT_DEVICE_RESOURCES}
SPPSR_ENUM_BASIC_DEVICE_PROPERTIES = 2; // supplied by device's BasicProperties32 provider
{$EXTERNALSYM SPPSR_ENUM_BASIC_DEVICE_PROPERTIES}
SPPSR_ENUM_ADV_DEVICE_PROPERTIES = 3; // supplied by class and/or device's EnumPropPages32 provider
{$EXTERNALSYM SPPSR_ENUM_ADV_DEVICE_PROPERTIES}
//
// Structure used with SetupGetBackupInformation/SetupSetBackupInformation
//
type
PSPBackupQueueParamsV2A = ^TSPBackupQueueParamsV2A;
PSPBackupQueueParamsV2W = ^TSPBackupQueueParamsV2W;
SP_BACKUP_QUEUE_PARAMS_V2_A = packed record
cbSize: DWORD;
FullInfPath: array [0..MAX_PATH - 1] of AnsiChar; // buffer to hold ANSI pathname of INF file
FilenameOffset: Integer; // offset in CHAR's of filename part (after '\')
ReinstallInstance: array [0..MAX_PATH - 1] of AnsiChar; // Instance ID (if present)
end;
{$EXTERNALSYM SP_BACKUP_QUEUE_PARAMS_V2_A}
SP_BACKUP_QUEUE_PARAMS_V2_W = packed record
cbSize: DWORD;
FullInfPath: array [0..MAX_PATH - 1] of WideChar; // buffer to hold ANSI pathname of INF file
FilenameOffset: Integer; // offset in CHAR's of filename part (after '\')
ReinstallInstance: array [0..MAX_PATH - 1] of WideChar; // Instance ID (if present)
end;
{$EXTERNALSYM SP_BACKUP_QUEUE_PARAMS_V2_W}
TSPBackupQueueParamsV2A = SP_BACKUP_QUEUE_PARAMS_V2_A;
TSPBackupQueueParamsV2W = SP_BACKUP_QUEUE_PARAMS_V2_W;
{$IFDEF UNICODE}
TSPBackupQueueParamsV2 = TSPBackupQueueParamsV2W;
PSPBackupQueueParamsV2 = PSPBackupQueueParamsV2W;
{$ELSE}
TSPBackupQueueParamsV2 = TSPBackupQueueParamsV2A;
PSPBackupQueueParamsV2 = PSPBackupQueueParamsV2A;
{$ENDIF UNICODE}
PSPBackupQueueParamsV1A = ^TSPBackupQueueParamsV1A;
PSPBackupQueueParamsV1W = ^TSPBackupQueueParamsV1W;
SP_BACKUP_QUEUE_PARAMS_V1_A = packed record
cbSize: DWORD;
FullInfPath: array [0..MAX_PATH - 1] of AnsiChar; // buffer to hold ANSI pathname of INF file
FilenameOffset: Integer; // offset in CHAR's of filename part (after '\')
end;
{$EXTERNALSYM SP_BACKUP_QUEUE_PARAMS_V1_A}
SP_BACKUP_QUEUE_PARAMS_V1_W = packed record
cbSize: DWORD;
FullInfPath: array [0..MAX_PATH - 1] of WideChar; // buffer to hold ANSI pathname of INF file
FilenameOffset: Integer; // offset in CHAR's of filename part (after '\')
end;
{$EXTERNALSYM SP_BACKUP_QUEUE_PARAMS_V1_W}
TSPBackupQueueParamsV1A = SP_BACKUP_QUEUE_PARAMS_V1_A;
TSPBackupQueueParamsV1W = SP_BACKUP_QUEUE_PARAMS_V1_W;
{$IFDEF UNICODE}
TSPBackupQueueParamsV1 = TSPBackupQueueParamsV1W;
PSPBackupQueueParamsV1 = PSPBackupQueueParamsV1W;
{$ELSE}
TSPBackupQueueParamsV1 = TSPBackupQueueParamsV1A;
PSPBackupQueueParamsV1 = PSPBackupQueueParamsV1A;
{$ENDIF UNICODE}
{$IFDEF USE_SP_BACKUP_QUEUE_PARAMS_V1}
TSPBackupQueueParamsA = TSPBackupQueueParamsV1A;
TSPBackupQueueParamsW = TSPBackupQueueParamsV1W;
TSPBackupQueueParams = TSPBackupQueueParamsV1;
PSPBackupQueueParamsA = PSPBackupQueueParamsV1A;
PSPBackupQueueParamsW = PSPBackupQueueParamsV1W;
PSPBackupQueueParams = PSPBackupQueueParamsV1;
{$ELSE}
TSPBackupQueueParamsA = TSPBackupQueueParamsV2A;
TSPBackupQueueParamsW = TSPBackupQueueParamsV2W;
TSPBackupQueueParams = TSPBackupQueueParamsV2;
PSPBackupQueueParamsA = PSPBackupQueueParamsV2A;
PSPBackupQueueParamsW = PSPBackupQueueParamsV2W;
PSPBackupQueueParams = PSPBackupQueueParamsV2;
{$ENDIF USE_SP_BACKUP_QUEUE_PARAMS_V1}
//
// Setupapi-specific error codes
//
// Inf parse outcomes
//
const
APPLICATION_ERROR_MASK = DWORD($20000000); // from WINNT.h
{$EXTERNALSYM APPLICATION_ERROR_MASK}
ERROR_SEVERITY_ERROR = DWORD($C0000000); // from WINNT.h
{$EXTERNALSYM ERROR_SEVERITY_ERROR}
ERROR_EXPECTED_SECTION_NAME = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0);
{$EXTERNALSYM ERROR_EXPECTED_SECTION_NAME}
ERROR_BAD_SECTION_NAME_LINE = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 1);
{$EXTERNALSYM ERROR_BAD_SECTION_NAME_LINE}
ERROR_SECTION_NAME_TOO_LONG = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 2);
{$EXTERNALSYM ERROR_SECTION_NAME_TOO_LONG}
ERROR_GENERAL_SYNTAX = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 3);
{$EXTERNALSYM ERROR_GENERAL_SYNTAX}
//
// Inf runtime errors
//
ERROR_WRONG_INF_STYLE = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $100);
{$EXTERNALSYM ERROR_WRONG_INF_STYLE}
ERROR_SECTION_NOT_FOUND = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $101);
{$EXTERNALSYM ERROR_SECTION_NOT_FOUND}
ERROR_LINE_NOT_FOUND = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $102);
{$EXTERNALSYM ERROR_LINE_NOT_FOUND}
ERROR_NO_BACKUP = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $103);
{$EXTERNALSYM ERROR_NO_BACKUP}
//
// Device Installer/other errors
//
ERROR_NO_ASSOCIATED_CLASS = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $200);
{$EXTERNALSYM ERROR_NO_ASSOCIATED_CLASS}
ERROR_CLASS_MISMATCH = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $201);
{$EXTERNALSYM ERROR_CLASS_MISMATCH}
ERROR_DUPLICATE_FOUND = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $202);
{$EXTERNALSYM ERROR_DUPLICATE_FOUND}
ERROR_NO_DRIVER_SELECTED = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $203);
{$EXTERNALSYM ERROR_NO_DRIVER_SELECTED}
ERROR_KEY_DOES_NOT_EXIST = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $204);
{$EXTERNALSYM ERROR_KEY_DOES_NOT_EXIST}
ERROR_INVALID_DEVINST_NAME = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $205);
{$EXTERNALSYM ERROR_INVALID_DEVINST_NAME}
ERROR_INVALID_CLASS = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $206);
{$EXTERNALSYM ERROR_INVALID_CLASS}
ERROR_DEVINST_ALREADY_EXISTS = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $207);
{$EXTERNALSYM ERROR_DEVINST_ALREADY_EXISTS}
ERROR_DEVINFO_NOT_REGISTERED = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $208);
{$EXTERNALSYM ERROR_DEVINFO_NOT_REGISTERED}
ERROR_INVALID_REG_PROPERTY = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $209);
{$EXTERNALSYM ERROR_INVALID_REG_PROPERTY}
ERROR_NO_INF = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $20A);
{$EXTERNALSYM ERROR_NO_INF}
ERROR_NO_SUCH_DEVINST = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $20B);
{$EXTERNALSYM ERROR_NO_SUCH_DEVINST}
ERROR_CANT_LOAD_CLASS_ICON = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $20C);
{$EXTERNALSYM ERROR_CANT_LOAD_CLASS_ICON}
ERROR_INVALID_CLASS_INSTALLER = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $20D);
{$EXTERNALSYM ERROR_INVALID_CLASS_INSTALLER}
ERROR_DI_DO_DEFAULT = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $20E);
{$EXTERNALSYM ERROR_DI_DO_DEFAULT}
ERROR_DI_NOFILECOPY = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $20F);
{$EXTERNALSYM ERROR_DI_NOFILECOPY}
ERROR_INVALID_HWPROFILE = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $210);
{$EXTERNALSYM ERROR_INVALID_HWPROFILE}
ERROR_NO_DEVICE_SELECTED = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $211);
{$EXTERNALSYM ERROR_NO_DEVICE_SELECTED}
ERROR_DEVINFO_LIST_LOCKED = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $212);
{$EXTERNALSYM ERROR_DEVINFO_LIST_LOCKED}
ERROR_DEVINFO_DATA_LOCKED = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $213);
{$EXTERNALSYM ERROR_DEVINFO_DATA_LOCKED}
ERROR_DI_BAD_PATH = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $214);
{$EXTERNALSYM ERROR_DI_BAD_PATH}
ERROR_NO_CLASSINSTALL_PARAMS = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $215);
{$EXTERNALSYM ERROR_NO_CLASSINSTALL_PARAMS}
ERROR_FILEQUEUE_LOCKED = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $216);
{$EXTERNALSYM ERROR_FILEQUEUE_LOCKED}
ERROR_BAD_SERVICE_INSTALLSECT = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $217);
{$EXTERNALSYM ERROR_BAD_SERVICE_INSTALLSECT}
ERROR_NO_CLASS_DRIVER_LIST = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $218);
{$EXTERNALSYM ERROR_NO_CLASS_DRIVER_LIST}
ERROR_NO_ASSOCIATED_SERVICE = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $219);
{$EXTERNALSYM ERROR_NO_ASSOCIATED_SERVICE}
ERROR_NO_DEFAULT_DEVICE_INTERFACE = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $21A);
{$EXTERNALSYM ERROR_NO_DEFAULT_DEVICE_INTERFACE}
ERROR_DEVICE_INTERFACE_ACTIVE = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $21B);
{$EXTERNALSYM ERROR_DEVICE_INTERFACE_ACTIVE}
ERROR_DEVICE_INTERFACE_REMOVED = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $21C);
{$EXTERNALSYM ERROR_DEVICE_INTERFACE_REMOVED}
ERROR_BAD_INTERFACE_INSTALLSECT = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $21D);
{$EXTERNALSYM ERROR_BAD_INTERFACE_INSTALLSECT}
ERROR_NO_SUCH_INTERFACE_CLASS = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $21E);
{$EXTERNALSYM ERROR_NO_SUCH_INTERFACE_CLASS}
ERROR_INVALID_REFERENCE_STRING = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $21F);
{$EXTERNALSYM ERROR_INVALID_REFERENCE_STRING}
ERROR_INVALID_MACHINENAME = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $220);
{$EXTERNALSYM ERROR_INVALID_MACHINENAME}
ERROR_REMOTE_COMM_FAILURE = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $221);
{$EXTERNALSYM ERROR_REMOTE_COMM_FAILURE}
ERROR_MACHINE_UNAVAILABLE = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $222);
{$EXTERNALSYM ERROR_MACHINE_UNAVAILABLE}
ERROR_NO_CONFIGMGR_SERVICES = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $223);
{$EXTERNALSYM ERROR_NO_CONFIGMGR_SERVICES}
ERROR_INVALID_PROPPAGE_PROVIDER = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $224);
{$EXTERNALSYM ERROR_INVALID_PROPPAGE_PROVIDER}
ERROR_NO_SUCH_DEVICE_INTERFACE = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $225);
{$EXTERNALSYM ERROR_NO_SUCH_DEVICE_INTERFACE}
ERROR_DI_POSTPROCESSING_REQUIRED = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $226);
{$EXTERNALSYM ERROR_DI_POSTPROCESSING_REQUIRED}
ERROR_INVALID_COINSTALLER = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $227);
{$EXTERNALSYM ERROR_INVALID_COINSTALLER}
ERROR_NO_COMPAT_DRIVERS = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $228);
{$EXTERNALSYM ERROR_NO_COMPAT_DRIVERS}
ERROR_NO_DEVICE_ICON = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $229);
{$EXTERNALSYM ERROR_NO_DEVICE_ICON}
ERROR_INVALID_INF_LOGCONFIG = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $22A);
{$EXTERNALSYM ERROR_INVALID_INF_LOGCONFIG}
ERROR_DI_DONT_INSTALL = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $22B);
{$EXTERNALSYM ERROR_DI_DONT_INSTALL}
ERROR_INVALID_FILTER_DRIVER = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $22C);
{$EXTERNALSYM ERROR_INVALID_FILTER_DRIVER}
ERROR_NON_WINDOWS_NT_DRIVER = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $22D);
{$EXTERNALSYM ERROR_NON_WINDOWS_NT_DRIVER}
ERROR_NON_WINDOWS_DRIVER = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $22E);
{$EXTERNALSYM ERROR_NON_WINDOWS_DRIVER}
ERROR_NO_CATALOG_FOR_OEM_INF = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $22F);
{$EXTERNALSYM ERROR_NO_CATALOG_FOR_OEM_INF}
ERROR_DEVINSTALL_QUEUE_NONNATIVE = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $230);
{$EXTERNALSYM ERROR_DEVINSTALL_QUEUE_NONNATIVE}
ERROR_NOT_DISABLEABLE = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $231);
{$EXTERNALSYM ERROR_NOT_DISABLEABLE}
ERROR_CANT_REMOVE_DEVINST = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $232);
{$EXTERNALSYM ERROR_CANT_REMOVE_DEVINST}
ERROR_INVALID_TARGET = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $233);
{$EXTERNALSYM ERROR_INVALID_TARGET}
ERROR_DRIVER_NONNATIVE = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $234);
{$EXTERNALSYM ERROR_DRIVER_NONNATIVE}
ERROR_IN_WOW64 = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $235);
{$EXTERNALSYM ERROR_IN_WOW64}
ERROR_SET_SYSTEM_RESTORE_POINT = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $236);
{$EXTERNALSYM ERROR_SET_SYSTEM_RESTORE_POINT}
ERROR_INCORRECTLY_COPIED_INF = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $237);
{$EXTERNALSYM ERROR_INCORRECTLY_COPIED_INF}
ERROR_SCE_DISABLED = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $238);
{$EXTERNALSYM ERROR_SCE_DISABLED}
//
// Backward compatibility--do not use.
//
ERROR_NO_DEFAULT_INTERFACE_DEVICE = ERROR_NO_DEFAULT_DEVICE_INTERFACE;
{$EXTERNALSYM ERROR_NO_DEFAULT_INTERFACE_DEVICE}
ERROR_INTERFACE_DEVICE_ACTIVE = ERROR_DEVICE_INTERFACE_ACTIVE;
{$EXTERNALSYM ERROR_INTERFACE_DEVICE_ACTIVE}
ERROR_INTERFACE_DEVICE_REMOVED = ERROR_DEVICE_INTERFACE_REMOVED;
{$EXTERNALSYM ERROR_INTERFACE_DEVICE_REMOVED}
ERROR_NO_SUCH_INTERFACE_DEVICE = ERROR_NO_SUCH_DEVICE_INTERFACE;
{$EXTERNALSYM ERROR_NO_SUCH_INTERFACE_DEVICE}
//
// Win9x migration DLL error code
//
ERROR_NOT_INSTALLED = DWORD(APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $1000);
{$EXTERNALSYM ERROR_NOT_INSTALLED}
// (rom) moved may consts here to allow for dynamic linking
//
// SearchControl flags for SetupGetInfInformation
//
const
INFINFO_INF_SPEC_IS_HINF = 1;
{$EXTERNALSYM INFINFO_INF_SPEC_IS_HINF}
INFINFO_INF_NAME_IS_ABSOLUTE = 2;
{$EXTERNALSYM INFINFO_INF_NAME_IS_ABSOLUTE}
INFINFO_DEFAULT_SEARCH = 3;
{$EXTERNALSYM INFINFO_DEFAULT_SEARCH}
INFINFO_REVERSE_DEFAULT_SEARCH = 4;
{$EXTERNALSYM INFINFO_REVERSE_DEFAULT_SEARCH}
INFINFO_INF_PATH_LIST_SEARCH = 5;
{$EXTERNALSYM INFINFO_INF_PATH_LIST_SEARCH}
//
// Compression types
//
const
FILE_COMPRESSION_NONE = 0;
{$EXTERNALSYM FILE_COMPRESSION_NONE}
FILE_COMPRESSION_WINLZA = 1;
{$EXTERNALSYM FILE_COMPRESSION_WINLZA}
FILE_COMPRESSION_MSZIP = 2;
{$EXTERNALSYM FILE_COMPRESSION_MSZIP}
FILE_COMPRESSION_NTCAB = 3;
{$EXTERNALSYM FILE_COMPRESSION_NTCAB}
//
// Define flags for SourceList APIs.
//
const
SRCLIST_TEMPORARY = $00000001;
{$EXTERNALSYM SRCLIST_TEMPORARY}
SRCLIST_NOBROWSE = $00000002;
{$EXTERNALSYM SRCLIST_NOBROWSE}
SRCLIST_SYSTEM = $00000010;
{$EXTERNALSYM SRCLIST_SYSTEM}
SRCLIST_USER = $00000020;
{$EXTERNALSYM SRCLIST_USER}
SRCLIST_SYSIFADMIN = $00000040;
{$EXTERNALSYM SRCLIST_SYSIFADMIN}
SRCLIST_SUBDIRS = $00000100;
{$EXTERNALSYM SRCLIST_SUBDIRS}
SRCLIST_APPEND = $00000200;
{$EXTERNALSYM SRCLIST_APPEND}
SRCLIST_NOSTRIPPLATFORM = $00000400;
{$EXTERNALSYM SRCLIST_NOSTRIPPLATFORM}
//
// Styles for SetupPromptForDisk, SetupCopyError,
// SetupRenameError, SetupDeleteError
//
const
IDF_NOBROWSE = $00000001;
{$EXTERNALSYM IDF_NOBROWSE}
IDF_NOSKIP = $00000002;
{$EXTERNALSYM IDF_NOSKIP}
IDF_NODETAILS = $00000004;
{$EXTERNALSYM IDF_NODETAILS}
IDF_NOCOMPRESSED = $00000008;
{$EXTERNALSYM IDF_NOCOMPRESSED}
IDF_CHECKFIRST = $00000100;
{$EXTERNALSYM IDF_CHECKFIRST}
IDF_NOBEEP = $00000200;
{$EXTERNALSYM IDF_NOBEEP}
IDF_NOFOREGROUND = $00000400;
{$EXTERNALSYM IDF_NOFOREGROUND}
IDF_WARNIFSKIP = $00000800;
{$EXTERNALSYM IDF_WARNIFSKIP}
IDF_NOREMOVABLEMEDIAPROMPT = $00001000;
{$EXTERNALSYM IDF_NOREMOVABLEMEDIAPROMPT}
IDF_USEDISKNAMEASPROMPT = $00002000;
{$EXTERNALSYM IDF_USEDISKNAMEASPROMPT}
IDF_OEMDISK = DWORD($80000000);
{$EXTERNALSYM IDF_OEMDISK}
//
// Return values for SetupPromptForDisk, SetupCopyError,
// SetupRenameError, SetupDeleteError, SetupBackupError
//
const
DPROMPT_SUCCESS = 0;
{$EXTERNALSYM DPROMPT_SUCCESS}
DPROMPT_CANCEL = 1;
{$EXTERNALSYM DPROMPT_CANCEL}
DPROMPT_SKIPFILE = 2;
{$EXTERNALSYM DPROMPT_SKIPFILE}
DPROMPT_BUFFERTOOSMALL = 3;
{$EXTERNALSYM DPROMPT_BUFFERTOOSMALL}
DPROMPT_OUTOFMEMORY = 4;
{$EXTERNALSYM DPROMPT_OUTOFMEMORY}
//
// Flags for SetupSetDirectoryIdEx
//
const
SETDIRID_NOT_FULL_PATH = $00000001;
{$EXTERNALSYM SETDIRID_NOT_FULL_PATH}
//
// InfoDesired values for SetupGetSourceInfo
//
const
SRCINFO_PATH = 1;
{$EXTERNALSYM SRCINFO_PATH}
SRCINFO_TAGFILE = 2;
{$EXTERNALSYM SRCINFO_TAGFILE}
SRCINFO_DESCRIPTION = 3;
{$EXTERNALSYM SRCINFO_DESCRIPTION}
SRCINFO_FLAGS = 4;
{$EXTERNALSYM SRCINFO_FLAGS}
// SRC_FLAGS allow special treatment of source
// lower 4 bits are reserved for OS use
// the flags may determine what other parameters exist
//
SRCINFO_TAGFILE2 = 5; // alternate tagfile, when SRCINFO_TAGFILE is a cabfile
{$EXTERNALSYM SRCINFO_TAGFILE2}
SRC_FLAGS_CABFILE = $0010; // if set, treat SRCINFO_TAGFILE as a cabfile and specify alternate tagfile
{$EXTERNALSYM SRC_FLAGS_CABFILE}
//
// CopyStyle values for copy and queue-related APIs
//
const
SP_COPY_DELETESOURCE = $0000001; // delete source file on successful copy
{$EXTERNALSYM SP_COPY_DELETESOURCE}
SP_COPY_REPLACEONLY = $0000002; // copy only if target file already present
{$EXTERNALSYM SP_COPY_REPLACEONLY}
SP_COPY_NEWER = $0000004; // copy only if source newer than or same as target
{$EXTERNALSYM SP_COPY_NEWER}
SP_COPY_NEWER_OR_SAME = SP_COPY_NEWER;
{$EXTERNALSYM SP_COPY_NEWER_OR_SAME}
SP_COPY_NOOVERWRITE = $0000008; // copy only if target doesn't exist
{$EXTERNALSYM SP_COPY_NOOVERWRITE}
SP_COPY_NODECOMP = $0000010; // don't decompress source file while copying
{$EXTERNALSYM SP_COPY_NODECOMP}
SP_COPY_LANGUAGEAWARE = $0000020; // don't overwrite file of different language
{$EXTERNALSYM SP_COPY_LANGUAGEAWARE}
SP_COPY_SOURCE_ABSOLUTE = $0000040; // SourceFile is a full source path
{$EXTERNALSYM SP_COPY_SOURCE_ABSOLUTE}
SP_COPY_SOURCEPATH_ABSOLUTE = $0000080; // SourcePathRoot is the full path
{$EXTERNALSYM SP_COPY_SOURCEPATH_ABSOLUTE}
SP_COPY_IN_USE_NEEDS_REBOOT = $0000100; // System needs reboot if file in use
{$EXTERNALSYM SP_COPY_IN_USE_NEEDS_REBOOT}
SP_COPY_FORCE_IN_USE = $0000200; // Force target-in-use behavior
{$EXTERNALSYM SP_COPY_FORCE_IN_USE}
SP_COPY_NOSKIP = $0000400; // Skip is disallowed for this file or section
{$EXTERNALSYM SP_COPY_NOSKIP}
SP_FLAG_CABINETCONTINUATION = $0000800; // Used with need media notification
{$EXTERNALSYM SP_FLAG_CABINETCONTINUATION}
SP_COPY_FORCE_NOOVERWRITE = $0001000; // like NOOVERWRITE but no callback nofitication
{$EXTERNALSYM SP_COPY_FORCE_NOOVERWRITE}
SP_COPY_FORCE_NEWER = $0002000; // like NEWER but no callback nofitication
{$EXTERNALSYM SP_COPY_FORCE_NEWER}
SP_COPY_WARNIFSKIP = $0004000; // system critical file: warn if user tries to skip
{$EXTERNALSYM SP_COPY_WARNIFSKIP}
SP_COPY_NOBROWSE = $0008000; // Browsing is disallowed for this file or section
{$EXTERNALSYM SP_COPY_NOBROWSE}
SP_COPY_NEWER_ONLY = $0010000; // copy only if source file newer than target
{$EXTERNALSYM SP_COPY_NEWER_ONLY}
SP_COPY_SOURCE_SIS_MASTER = $0020000; // source is single-instance store master
{$EXTERNALSYM SP_COPY_SOURCE_SIS_MASTER}
SP_COPY_OEMINF_CATALOG_ONLY = $0040000; // (SetupCopyOEMInf only) don't copy INF--just catalog
{$EXTERNALSYM SP_COPY_OEMINF_CATALOG_ONLY}
SP_COPY_REPLACE_BOOT_FILE = $0080000; // file must be present upon reboot (i.e., it's
{$EXTERNALSYM SP_COPY_REPLACE_BOOT_FILE}// needed by the loader); this flag implies a reboot
SP_COPY_NOPRUNE = $0100000; // never prune this file
{$EXTERNALSYM SP_COPY_NOPRUNE}
SP_COPY_OEM_F6_INF = $0200000; // Used when calling SetupCopyOemInf
{$EXTERNALSYM SP_COPY_OEM_F6_INF}
//
// Flags passed to Backup notification
//
SP_BACKUP_BACKUPPASS = $00000001; // file backed up during backup pass
{$EXTERNALSYM SP_BACKUP_BACKUPPASS}
SP_BACKUP_DEMANDPASS = $00000002; // file backed up on demand
{$EXTERNALSYM SP_BACKUP_DEMANDPASS}
SP_BACKUP_SPECIAL = $00000004; // if set, special type of backup
{$EXTERNALSYM SP_BACKUP_SPECIAL}
SP_BACKUP_BOOTFILE = $00000008; // file marked with COPYFLG_REPLACE_BOOT_FILE
{$EXTERNALSYM SP_BACKUP_BOOTFILE}
//
// Define flags for SetupScanFileQueue.
//
const
SPQ_SCAN_FILE_PRESENCE = $00000001;
{$EXTERNALSYM SPQ_SCAN_FILE_PRESENCE}
SPQ_SCAN_FILE_VALIDITY = $00000002;
{$EXTERNALSYM SPQ_SCAN_FILE_VALIDITY}
SPQ_SCAN_USE_CALLBACK = $00000004;
{$EXTERNALSYM SPQ_SCAN_USE_CALLBACK}
SPQ_SCAN_USE_CALLBACKEX = $00000008;
{$EXTERNALSYM SPQ_SCAN_USE_CALLBACKEX}
SPQ_SCAN_INFORM_USER = $00000010;
{$EXTERNALSYM SPQ_SCAN_INFORM_USER}
SPQ_SCAN_PRUNE_COPY_QUEUE = $00000020;
{$EXTERNALSYM SPQ_SCAN_PRUNE_COPY_QUEUE}
SPQ_SCAN_USE_CALLBACK_SIGNERINFO = $00000040;
{$EXTERNALSYM SPQ_SCAN_USE_CALLBACK_SIGNERINFO}
SPQ_SCAN_PRUNE_DELREN = $00000080; // remote Delete/Rename queue
{$EXTERNALSYM SPQ_SCAN_PRUNE_DELREN}
//
// Define flags used with Param2 for SPFILENOTIFY_QUEUESCAN
//
SPQ_DELAYED_COPY = $00000001; // file was in use; registered for delayed copy
{$EXTERNALSYM SPQ_DELAYED_COPY}
//
// Flags/FlagMask for use with SetupSetFileQueueFlags and returned by SetupGetFileQueueFlags
//
const
SPQ_FLAG_BACKUP_AWARE = $00000001; // If set, SetupCommitFileQueue will
{$EXTERNALSYM SPQ_FLAG_BACKUP_AWARE} // issue backup notifications.
SPQ_FLAG_ABORT_IF_UNSIGNED = $00000002; // If set, SetupCommitFileQueue will
{$EXTERNALSYM SPQ_FLAG_ABORT_IF_UNSIGNED}// fail with ERROR_SET_SYSTEM_RESTORE_POINT
// if the user elects to proceed with an
// unsigned queue committal. This allows
// the caller to set a system restore point,
// then re-commit the file queue.
SPQ_FLAG_FILES_MODIFIED = $00000004; // If set, at least one file was
{$EXTERNALSYM SPQ_FLAG_FILES_MODIFIED} // replaced by a different version
SPQ_FLAG_VALID = $00000007; // mask of valid flags (can be passed as FlagMask)
{$EXTERNALSYM SPQ_FLAG_VALID}
//
// Define OEM Source Type values for use in SetupCopyOEMInf.
//
SPOST_NONE = 0;
{$EXTERNALSYM SPOST_NONE}
SPOST_PATH = 1;
{$EXTERNALSYM SPOST_PATH}
SPOST_URL = 2;
{$EXTERNALSYM SPOST_URL}
SPOST_MAX = 3;
{$EXTERNALSYM SPOST_MAX}
//
// Flags used by SetupUninstallOEMInf
//
SUOI_FORCEDELETE = $00000001;
//
// Flags for SetupCreateDiskSpaceList
//
const
SPDSL_IGNORE_DISK = $00000001; // ignore deletes and on-disk files in copies
{$EXTERNALSYM SPDSL_IGNORE_DISK}
SPDSL_DISALLOW_NEGATIVE_ADJUST = $00000002;
{$EXTERNALSYM SPDSL_DISALLOW_NEGATIVE_ADJUST}
//
// Define flags that are returned by SetupPromptReboot
//
const
SPFILEQ_FILE_IN_USE = $00000001;
{$EXTERNALSYM SPFILEQ_FILE_IN_USE}
SPFILEQ_REBOOT_RECOMMENDED = $00000002;
{$EXTERNALSYM SPFILEQ_REBOOT_RECOMMENDED}
SPFILEQ_REBOOT_IN_PROGRESS = $00000004;
{$EXTERNALSYM SPFILEQ_REBOOT_IN_PROGRESS}
//
// Flags for AddReg section lines in INF. The corresponding value
// is <ValueType> in the AddReg line format given below:
//
// <RegRootString>,<SubKey>,<ValueName>,<ValueType>,<Value>...
//
// The low word contains basic flags concerning the general data type
// and AddReg action. The high word contains values that more specifically
// identify the data type of the registry value. The high word is ignored
// by the 16-bit Windows 95 SETUPX APIs.
//
// If <ValueType> has FLG_ADDREG_DELREG_BIT set, it will be ignored by AddReg
// (not supported by SetupX).
//
const
FLG_ADDREG_DELREG_BIT = $00008000; // if set, interpret as DELREG, see below
{$EXTERNALSYM FLG_ADDREG_DELREG_BIT}
FLG_ADDREG_BINVALUETYPE = $00000001;
{$EXTERNALSYM FLG_ADDREG_BINVALUETYPE}
FLG_ADDREG_NOCLOBBER = $00000002;
{$EXTERNALSYM FLG_ADDREG_NOCLOBBER}
FLG_ADDREG_DELVAL = $00000004;
{$EXTERNALSYM FLG_ADDREG_DELVAL}
FLG_ADDREG_APPEND = $00000008; // Currently supported only
{$EXTERNALSYM FLG_ADDREG_APPEND} // for REG_MULTI_SZ values.
FLG_ADDREG_KEYONLY = $00000010; // Just create the key, ignore value
{$EXTERNALSYM FLG_ADDREG_KEYONLY}
FLG_ADDREG_OVERWRITEONLY = $00000020; // Set only if value already exists
{$EXTERNALSYM FLG_ADDREG_OVERWRITEONLY}
FLG_ADDREG_64BITKEY = $00001000; // make this change in the 64 bit registry.
{$EXTERNALSYM FLG_ADDREG_64BITKEY}
FLG_ADDREG_KEYONLY_COMMON = $00002000; // same as FLG_ADDREG_KEYONLY but also works for DELREG
{$EXTERNALSYM FLG_ADDREG_KEYONLY_COMMON}
FLG_ADDREG_32BITKEY = $00004000; // make this change in the 32 bit registry.
{$EXTERNALSYM FLG_ADDREG_OVERWRITEONLY}
//
// The INF may supply any arbitrary data type ordinal in the highword except
// for the following: REG_NONE, REG_SZ, REG_EXPAND_SZ, REG_MULTI_SZ. If this
// technique is used, then the data is given in binary format, one byte per
// field.
//
FLG_ADDREG_TYPE_MASK = DWORD($FFFF0000 or FLG_ADDREG_BINVALUETYPE);
{$EXTERNALSYM FLG_ADDREG_TYPE_MASK}
FLG_ADDREG_TYPE_SZ = $00000000;
{$EXTERNALSYM FLG_ADDREG_TYPE_SZ}
FLG_ADDREG_TYPE_MULTI_SZ = $00010000;
{$EXTERNALSYM FLG_ADDREG_TYPE_MULTI_SZ}
FLG_ADDREG_TYPE_EXPAND_SZ = $00020000;
{$EXTERNALSYM FLG_ADDREG_TYPE_EXPAND_SZ}
FLG_ADDREG_TYPE_BINARY = $00000000 or FLG_ADDREG_BINVALUETYPE;
{$EXTERNALSYM FLG_ADDREG_TYPE_BINARY}
FLG_ADDREG_TYPE_DWORD = $00010000 or FLG_ADDREG_BINVALUETYPE;
{$EXTERNALSYM FLG_ADDREG_TYPE_DWORD}
FLG_ADDREG_TYPE_NONE = $00020000 or FLG_ADDREG_BINVALUETYPE;
{$EXTERNALSYM FLG_ADDREG_TYPE_NONE}
//
// Flags for DelReg section lines in INF. The corresponding value
// is <Operation> in the extended DelReg line format given below:
//
// <RegRootString>,<SubKey>,<ValueName>,<Operation>[,...]
//
// In SetupX and some versions of SetupAPI, <Operation> will be ignored and <ValueName> will
// be deleted. Use with care.
//
// The bits determined by mask FLG_DELREG_TYPE_MASK indicates type of data expected.
// <Operation> must have FLG_ADDREG_DELREG_BIT set, otherwise it is ignored and specified
// value will be deleted (allowing an AddReg section to also be used as a DelReg section)
// if <Operation> is not specified, <ValueName> will be deleted (if specified) otherwise
// <SubKey> will be deleted.
//
// the compatability flag
//
FLG_DELREG_VALUE = $00000000;
{$EXTERNALSYM FLG_DELREG_VALUE}
FLG_DELREG_TYPE_MASK = FLG_ADDREG_TYPE_MASK; // 0xFFFF0001
{$EXTERNALSYM FLG_DELREG_TYPE_MASK}
FLG_DELREG_TYPE_SZ = FLG_ADDREG_TYPE_SZ; // 0x00000000
{$EXTERNALSYM FLG_DELREG_TYPE_SZ}
FLG_DELREG_TYPE_MULTI_SZ = FLG_ADDREG_TYPE_MULTI_SZ; // 0x00010000
{$EXTERNALSYM FLG_DELREG_TYPE_MULTI_SZ}
FLG_DELREG_TYPE_EXPAND_SZ = FLG_ADDREG_TYPE_EXPAND_SZ; // 0x00020000
{$EXTERNALSYM FLG_DELREG_TYPE_EXPAND_SZ}
FLG_DELREG_TYPE_BINARY = FLG_ADDREG_TYPE_BINARY; // 0x00000001
{$EXTERNALSYM FLG_DELREG_TYPE_BINARY}
FLG_DELREG_TYPE_DWORD = FLG_ADDREG_TYPE_DWORD; // 0x00010001
{$EXTERNALSYM FLG_DELREG_TYPE_DWORD}
FLG_DELREG_TYPE_NONE = FLG_ADDREG_TYPE_NONE; // 0x00020001
{$EXTERNALSYM FLG_DELREG_TYPE_NONE}
FLG_DELREG_64BITKEY = FLG_ADDREG_64BITKEY; // 0x00001000
{$EXTERNALSYM FLG_DELREG_64BITKEY}
FLG_DELREG_KEYONLY_COMMON = FLG_ADDREG_KEYONLY_COMMON; // 0x00002000
{$EXTERNALSYM FLG_DELREG_KEYONLY_COMMON}
FLG_DELREG_32BITKEY = FLG_ADDREG_32BITKEY; // 0x00004000
{$EXTERNALSYM FLG_DELREG_32BITKEY}
//
// <Operation> = FLG_DELREG_MULTI_SZ_DELSTRING
// <RegRootString>,<SubKey>,<ValueName>,0x00018002,<String>
// removes all entries matching <String> (case ignored) from multi-sz registry value
//
FLG_DELREG_OPERATION_MASK = $000000FE;
{$EXTERNALSYM FLG_DELREG_OPERATION_MASK}
FLG_DELREG_MULTI_SZ_DELSTRING = FLG_DELREG_TYPE_MULTI_SZ or FLG_ADDREG_DELREG_BIT or $00000002; // 0x00018002
{$EXTERNALSYM FLG_DELREG_MULTI_SZ_DELSTRING}
//
// Flags for BitReg section lines in INF.
//
FLG_BITREG_CLEARBITS = $00000000;
{$EXTERNALSYM FLG_BITREG_CLEARBITS}
FLG_BITREG_SETBITS = $00000001;
{$EXTERNALSYM FLG_BITREG_SETBITS}
FLG_BITREG_64BITKEY = $00001000;
{$EXTERNALSYM FLG_BITREG_64BITKEY}
FLG_BITREG_32BITKEY = $00004000;
{$EXTERNALSYM FLG_BITREG_32BITKEY}
//
// Flags for Ini2Reg section lines in INF.
//
FLG_INI2REG_64BITKEY = $00001000;
{$EXTERNALSYM FLG_INI2REG_64BITKEY}
FLG_INI2REG_32BITKEY = $00004000;
{$EXTERNALSYM FLG_INI2REG_32BITKEY}
//
// Flags for RegSvr section lines in INF
//
FLG_REGSVR_DLLREGISTER = $00000001;
{$EXTERNALSYM FLG_REGSVR_DLLREGISTER}
FLG_REGSVR_DLLINSTALL = $00000002;
{$EXTERNALSYM FLG_REGSVR_DLLINSTALL}
// Flags for RegSvr section lines in INF
//
FLG_PROFITEM_CURRENTUSER = $00000001;
{$EXTERNALSYM FLG_PROFITEM_CURRENTUSER}
FLG_PROFITEM_DELETE = $00000002;
{$EXTERNALSYM FLG_PROFITEM_DELETE}
FLG_PROFITEM_GROUP = $00000004;
{$EXTERNALSYM FLG_PROFITEM_GROUP}
FLG_PROFITEM_CSIDL = $00000008;
{$EXTERNALSYM FLG_PROFITEM_CSIDL}
//
// Flags for SetupInstallFromInfSection
//
const
SPINST_LOGCONFIG = $00000001;
{$EXTERNALSYM SPINST_LOGCONFIG}
SPINST_INIFILES = $00000002;
{$EXTERNALSYM SPINST_INIFILES}
SPINST_REGISTRY = $00000004;
{$EXTERNALSYM SPINST_REGISTRY}
SPINST_INI2REG = $00000008;
{$EXTERNALSYM SPINST_INI2REG}
SPINST_FILES = $00000010;
{$EXTERNALSYM SPINST_FILES}
SPINST_BITREG = $00000020;
{$EXTERNALSYM SPINST_BITREG}
SPINST_REGSVR = $00000040;
{$EXTERNALSYM SPINST_REGSVR}
SPINST_UNREGSVR = $00000080;
{$EXTERNALSYM SPINST_UNREGSVR}
SPINST_PROFILEITEMS = $00000100;
{$EXTERNALSYM SPINST_PROFILEITEMS}
{$IFDEF WINXP_UP}
SPINST_COPYINF = $00000200;
{$EXTERNALSYM SPINST_COPYINF}
SPINST_ALL = $000003ff;
{$EXTERNALSYM SPINST_ALL}
{$ELSE}
SPINST_ALL = $000001ff;
{$EXTERNALSYM SPINST_ALL}
{$ENDIF WINXP_UP}
SPINST_SINGLESECTION = $00010000;
{$EXTERNALSYM SPINST_SINGLESECTION}
SPINST_LOGCONFIG_IS_FORCED = $00020000;
{$EXTERNALSYM SPINST_LOGCONFIG_IS_FORCED}
SPINST_LOGCONFIGS_ARE_OVERRIDES = $00040000;
{$EXTERNALSYM SPINST_LOGCONFIGS_ARE_OVERRIDES}
SPINST_REGISTERCALLBACKAWARE = $00080000;
{$EXTERNALSYM SPINST_REGISTERCALLBACKAWARE}
//
// Flags for SetupInstallServicesFromInfSection(Ex). These flags are also used
// in the flags field of AddService or DelService lines in a device INF. Some
// of these flags are not permitted in the non-Ex API. These flags are marked
// as such below.
//
//
// (AddService) move service's tag to front of its group order list
//
const
SPSVCINST_TAGTOFRONT = $00000001;
{$EXTERNALSYM SPSVCINST_TAGTOFRONT}
//
// (AddService) **Ex API only** mark this service as the function driver for the
// device being installed
//
SPSVCINST_ASSOCSERVICE = $00000002;
{$EXTERNALSYM SPSVCINST_ASSOCSERVICE}
//
// (DelService) delete the associated event log entry for a service specified in
// a DelService entry
//
SPSVCINST_DELETEEVENTLOGENTRY = $00000004;
{$EXTERNALSYM SPSVCINST_DELETEEVENTLOGENTRY}
//
// (AddService) don't overwrite display name if it already exists
//
SPSVCINST_NOCLOBBER_DISPLAYNAME = $00000008;
{$EXTERNALSYM SPSVCINST_NOCLOBBER_DISPLAYNAME}
//
// (AddService) don't overwrite start type value if service already exists
//
SPSVCINST_NOCLOBBER_STARTTYPE = $00000010;
{$EXTERNALSYM SPSVCINST_NOCLOBBER_STARTTYPE}
//
// (AddService) don't overwrite error control value if service already exists
//
SPSVCINST_NOCLOBBER_ERRORCONTROL = $00000020;
{$EXTERNALSYM SPSVCINST_NOCLOBBER_ERRORCONTROL}
//
// (AddService) don't overwrite load order group if it already exists
//
SPSVCINST_NOCLOBBER_LOADORDERGROUP = $00000040;
{$EXTERNALSYM SPSVCINST_NOCLOBBER_LOADORDERGROUP}
//
// (AddService) don't overwrite dependencies list if it already exists
//
SPSVCINST_NOCLOBBER_DEPENDENCIES = $00000080;
{$EXTERNALSYM SPSVCINST_NOCLOBBER_DEPENDENCIES}
//
// (AddService) don't overwrite description if it already exists
//
SPSVCINST_NOCLOBBER_DESCRIPTION = $00000100;
{$EXTERNALSYM SPSVCINST_NOCLOBBER_DESCRIPTION}
//
// (DelService) stop the associated service specified in
// a DelService entry before deleting the service
//
SPSVCINST_STOPSERVICE = $00000200;
{$EXTERNALSYM SPSVCINST_STOPSERVICE}
//
// (AddService) force overwrite of security settings
//
SPSVCINST_CLOBBER_SECURITY = $00000400;
{$EXTERNALSYM SPSVCINST_CLOBBER_SECURITY}
//
// Flags for SetupInitializeFileLog
//
const
SPFILELOG_SYSTEMLOG = $00000001; // use system log -- must be Administrator
{$EXTERNALSYM SPFILELOG_SYSTEMLOG}
SPFILELOG_FORCENEW = $00000002; // not valid with SPFILELOG_SYSTEMLOG
{$EXTERNALSYM SPFILELOG_FORCENEW}
SPFILELOG_QUERYONLY = $00000004; // allows non-administrators to read system log
{$EXTERNALSYM SPFILELOG_QUERYONLY}
//
// Flags for SetupLogFile
//
const
SPFILELOG_OEMFILE = $00000001;
{$EXTERNALSYM SPFILELOG_OEMFILE}
//
// Items retrievable from SetupQueryFileLog()
//
const
SetupFileLogSourceFilename = $00000000;
{$EXTERNALSYM SetupFileLogSourceFilename}
SetupFileLogChecksum = $00000001;
{$EXTERNALSYM SetupFileLogChecksum}
SetupFileLogDiskTagfile = $00000002;
{$EXTERNALSYM SetupFileLogDiskTagfile}
SetupFileLogDiskDescription = $00000003;
{$EXTERNALSYM SetupFileLogDiskDescription}
SetupFileLogOtherInfo = $00000004;
{$EXTERNALSYM SetupFileLogOtherInfo}
SetupFileLogMax = $00000005;
{$EXTERNALSYM SetupFileLogMax}
type
SetupFileLogInfo = DWORD;
{$EXTERNALSYM SetupFileLogInfo}
const
LogSevInformation = $00000000;
{$EXTERNALSYM LogSevInformation}
LogSevWarning = $00000001;
{$EXTERNALSYM LogSevWarning}
LogSevError = $00000002;
{$EXTERNALSYM LogSevError}
LogSevFatalError = $00000003;
{$EXTERNALSYM LogSevFatalError}
LogSevMaximum = $00000004;
{$EXTERNALSYM LogSevMaximum}
type
LogSeverity = DWORD;
{$EXTERNALSYM LogSeverity}
//
// Flags for SetupDiCreateDeviceInfo
//
const
DICD_GENERATE_ID = $00000001;
{$EXTERNALSYM DICD_GENERATE_ID}
DICD_INHERIT_CLASSDRVS = $00000002;
{$EXTERNALSYM DICD_INHERIT_CLASSDRVS}
//
// Flags for SetupDiOpenDeviceInfo
//
const
DIOD_INHERIT_CLASSDRVS = $00000002;
{$EXTERNALSYM DIOD_INHERIT_CLASSDRVS}
DIOD_CANCEL_REMOVE = $00000004;
{$EXTERNALSYM DIOD_CANCEL_REMOVE}
//
// Flags for SetupDiOpenDeviceInterface
//
const
DIODI_NO_ADD = $00000001;
{$EXTERNALSYM DIODI_NO_ADD}
//
// Flags for SetupDiRegisterDeviceInfo
//
const
SPRDI_FIND_DUPS = $00000001;
{$EXTERNALSYM SPRDI_FIND_DUPS}
//
// Ordinal values distinguishing between class drivers and
// device drivers.
// (Passed in 'DriverType' parameter of driver information list APIs)
//
const
SPDIT_NODRIVER = $00000000;
{$EXTERNALSYM SPDIT_NODRIVER}
SPDIT_CLASSDRIVER = $00000001;
{$EXTERNALSYM SPDIT_CLASSDRIVER}
SPDIT_COMPATDRIVER = $00000002;
{$EXTERNALSYM SPDIT_COMPATDRIVER}
//
// Flags controlling what is included in the device information set built
// by SetupDiGetClassDevs
//
const
DIGCF_DEFAULT = $00000001; // only valid with DIGCF_DEVICEINTERFACE
{$EXTERNALSYM DIGCF_DEFAULT}
DIGCF_PRESENT = $00000002;
{$EXTERNALSYM DIGCF_PRESENT}
DIGCF_ALLCLASSES = $00000004;
{$EXTERNALSYM DIGCF_ALLCLASSES}
DIGCF_PROFILE = $00000008;
{$EXTERNALSYM DIGCF_PROFILE}
DIGCF_DEVICEINTERFACE = $00000010;
{$EXTERNALSYM DIGCF_DEVICEINTERFACE}
//
// Backward compatibility--do not use.
//
const
DIGCF_INTERFACEDEVICE = DIGCF_DEVICEINTERFACE;
{$EXTERNALSYM DIGCF_INTERFACEDEVICE}
//
// Flags controlling exclusion from the class information list built
// by SetupDiBuildClassInfoList(Ex)
//
const
DIBCI_NOINSTALLCLASS = $00000001;
{$EXTERNALSYM DIBCI_NOINSTALLCLASS}
DIBCI_NODISPLAYCLASS = $00000002;
{$EXTERNALSYM DIBCI_NODISPLAYCLASS}
//
// Flags for SetupDiOpenClassRegKeyEx
//
const
DIOCR_INSTALLER = $00000001; // class installer registry branch
{$EXTERNALSYM DIOCR_INSTALLER}
DIOCR_INTERFACE = $00000002; // interface class registry branch
{$EXTERNALSYM DIOCR_INTERFACE}
//
// KeyType values for SetupDiCreateDevRegKey, SetupDiOpenDevRegKey, and
// SetupDiDeleteDevRegKey.
//
const
DIREG_DEV = $00000001; // Open/Create/Delete device key
{$EXTERNALSYM DIREG_DEV}
DIREG_DRV = $00000002; // Open/Create/Delete driver key
{$EXTERNALSYM DIREG_DRV}
DIREG_BOTH = $00000004; // Delete both driver and Device key
{$EXTERNALSYM DIREG_BOTH}
//
// Device registry property codes
// (Codes marked as read-only (R) may only be used for
// SetupDiGetDeviceRegistryProperty)
//
// These values should cover the same set of registry properties
// as defined by the CM_DRP codes in cfgmgr32.h.
//
// Note that SPDRP codes are zero based while CM_DRP codes are one based!
//
const
SPDRP_DEVICEDESC = $00000000; // DeviceDesc (R/W)
{$EXTERNALSYM SPDRP_DEVICEDESC}
SPDRP_HARDWAREID = $00000001; // HardwareID (R/W)
{$EXTERNALSYM SPDRP_HARDWAREID}
SPDRP_COMPATIBLEIDS = $00000002; // CompatibleIDs (R/W)
{$EXTERNALSYM SPDRP_COMPATIBLEIDS}
SPDRP_UNUSED0 = $00000003; // unused
{$EXTERNALSYM SPDRP_UNUSED0}
SPDRP_SERVICE = $00000004; // Service (R/W)
{$EXTERNALSYM SPDRP_SERVICE}
SPDRP_UNUSED1 = $00000005; // unused
{$EXTERNALSYM SPDRP_UNUSED1}
SPDRP_UNUSED2 = $00000006; // unused
{$EXTERNALSYM SPDRP_UNUSED2}
SPDRP_CLASS = $00000007; // Class (R--tied to ClassGUID)
{$EXTERNALSYM SPDRP_CLASS}
SPDRP_CLASSGUID = $00000008; // ClassGUID (R/W)
{$EXTERNALSYM SPDRP_CLASSGUID}
SPDRP_DRIVER = $00000009; // Driver (R/W)
{$EXTERNALSYM SPDRP_DRIVER}
SPDRP_CONFIGFLAGS = $0000000A; // ConfigFlags (R/W)
{$EXTERNALSYM SPDRP_CONFIGFLAGS}
SPDRP_MFG = $0000000B; // Mfg (R/W)
{$EXTERNALSYM SPDRP_MFG}
SPDRP_FRIENDLYNAME = $0000000C; // FriendlyName (R/W)
{$EXTERNALSYM SPDRP_FRIENDLYNAME}
SPDRP_LOCATION_INFORMATION = $0000000D; // LocationInformation (R/W)
{$EXTERNALSYM SPDRP_LOCATION_INFORMATION}
SPDRP_PHYSICAL_DEVICE_OBJECT_NAME = $0000000E; // PhysicalDeviceObjectName (R)
{$EXTERNALSYM SPDRP_PHYSICAL_DEVICE_OBJECT_NAME}
SPDRP_CAPABILITIES = $0000000F; // Capabilities (R)
{$EXTERNALSYM SPDRP_CAPABILITIES}
SPDRP_UI_NUMBER = $00000010; // UiNumber (R)
{$EXTERNALSYM SPDRP_UI_NUMBER}
SPDRP_UPPERFILTERS = $00000011; // UpperFilters (R/W)
{$EXTERNALSYM SPDRP_UPPERFILTERS}
SPDRP_LOWERFILTERS = $00000012; // LowerFilters (R/W)
{$EXTERNALSYM SPDRP_LOWERFILTERS}
SPDRP_BUSTYPEGUID = $00000013; // BusTypeGUID (R)
{$EXTERNALSYM SPDRP_BUSTYPEGUID}
SPDRP_LEGACYBUSTYPE = $00000014; // LegacyBusType (R)
{$EXTERNALSYM SPDRP_LEGACYBUSTYPE}
SPDRP_BUSNUMBER = $00000015; // BusNumber (R)
{$EXTERNALSYM SPDRP_BUSNUMBER}
SPDRP_ENUMERATOR_NAME = $00000016; // Enumerator Name (R)
{$EXTERNALSYM SPDRP_ENUMERATOR_NAME}
SPDRP_SECURITY = $00000017; // Security (R/W, binary form)
{$EXTERNALSYM SPDRP_SECURITY}
SPDRP_SECURITY_SDS = $00000018; // Security (W, SDS form)
{$EXTERNALSYM SPDRP_SECURITY_SDS}
SPDRP_DEVTYPE = $00000019; // Device Type (R/W)
{$EXTERNALSYM SPDRP_DEVTYPE}
SPDRP_EXCLUSIVE = $0000001A; // Device is exclusive-access (R/W)
{$EXTERNALSYM SPDRP_EXCLUSIVE}
SPDRP_CHARACTERISTICS = $0000001B; // Device Characteristics (R/W)
{$EXTERNALSYM SPDRP_CHARACTERISTICS}
SPDRP_ADDRESS = $0000001C; // Device Address (R)
{$EXTERNALSYM SPDRP_ADDRESS}
{$IFDEF WINXP_UP}
SPDRP_UI_NUMBER_DESC_FORMAT = $0000001D; // UiNumberDescFormat (R/W)
{$EXTERNALSYM SPDRP_UI_NUMBER_DESC_FORMAT}
SPDRP_DEVICE_POWER_DATA = $0000001E; // Device Power Data (R)
{$EXTERNALSYM SPDRP_DEVICE_POWER_DATA}
SPDRP_REMOVAL_POLICY = $0000001F; // Removal Policy (R)
{$EXTERNALSYM SPDRP_REMOVAL_POLICY}
SPDRP_REMOVAL_POLICY_HW_DEFAULT = $00000020; // Hardware Removal Policy (R)
{$EXTERNALSYM SPDRP_REMOVAL_POLICY_HW_DEFAULT}
SPDRP_REMOVAL_POLICY_OVERRIDE = $00000021; // Removal Policy Override (RW)
{$EXTERNALSYM SPDRP_REMOVAL_POLICY_OVERRIDE}
SPDRP_INSTALL_STATE = $00000022; // Device Install State (R)
{$EXTERNALSYM SPDRP_INSTALL_STATE}
SPDRP_MAXIMUM_PROPERTY = $00000023; // Upper bound on ordinals
{$EXTERNALSYM SPDRP_MAXIMUM_PROPERTY}
{$ELSE}
SPDRP_UI_NUMBER_DESC_FORMAT = $0000001E; // UiNumberDescFormat (R/W)
{$EXTERNALSYM SPDRP_UI_NUMBER_DESC_FORMAT}
SPDRP_MAXIMUM_PROPERTY = $0000001F; // Upper bound on ordinals
{$EXTERNALSYM SPDRP_MAXIMUM_PROPERTY}
{$ENDIF WINXP_UP}
//
// Class registry property codes
// (Codes marked as read-only (R) may only be used for
// SetupDiGetClassRegistryProperty)
//
// These values should cover the same set of registry properties
// as defined by the CM_CRP codes in cfgmgr32.h.
// they should also have a 1:1 correspondence with Device registers, where applicable
// but no overlap otherwise
//
SPCRP_SECURITY = $00000017; // Security (R/W, binary form)
{$EXTERNALSYM SPCRP_SECURITY}
SPCRP_SECURITY_SDS = $00000018; // Security (W, SDS form)
{$EXTERNALSYM SPCRP_SECURITY_SDS}
SPCRP_DEVTYPE = $00000019; // Device Type (R/W)
{$EXTERNALSYM SPCRP_DEVTYPE}
SPCRP_EXCLUSIVE = $0000001A; // Device is exclusive-access (R/W)
{$EXTERNALSYM SPCRP_EXCLUSIVE}
SPCRP_CHARACTERISTICS = $0000001B; // Device Characteristics (R/W)
{$EXTERNALSYM SPCRP_CHARACTERISTICS}
SPCRP_MAXIMUM_PROPERTY = $0000001C; // Upper bound on ordinals
{$EXTERNALSYM SPCRP_MAXIMUM_PROPERTY}
//
// Flags controlling the drawing of mini-icons
//
const
DMI_MASK = $00000001;
{$EXTERNALSYM DMI_MASK}
DMI_BKCOLOR = $00000002;
{$EXTERNALSYM DMI_BKCOLOR}
DMI_USERECT = $00000004;
{$EXTERNALSYM DMI_USERECT}
//
// PropertySheetType values for the SetupDiGetClassDevPropertySheets API
//
const
DIGCDP_FLAG_BASIC = $00000001;
{$EXTERNALSYM DIGCDP_FLAG_BASIC}
DIGCDP_FLAG_ADVANCED = $00000002;
{$EXTERNALSYM DIGCDP_FLAG_ADVANCED}
DIGCDP_FLAG_REMOTE_BASIC = $00000003;
{$EXTERNALSYM DIGCDP_FLAG_REMOTE_BASIC}
DIGCDP_FLAG_REMOTE_ADVANCED = $00000004;
{$EXTERNALSYM DIGCDP_FLAG_REMOTE_ADVANCED}
//
// Define ICON IDs publicly exposed from setupapi.
//
const
IDI_RESOURCEFIRST = 159;
{$EXTERNALSYM IDI_RESOURCEFIRST}
IDI_RESOURCE = 159;
{$EXTERNALSYM IDI_RESOURCE}
IDI_RESOURCELAST = 161;
{$EXTERNALSYM IDI_RESOURCELAST}
IDI_RESOURCEOVERLAYFIRST = 161;
{$EXTERNALSYM IDI_RESOURCEOVERLAYFIRST}
IDI_RESOURCEOVERLAYLAST = 161;
{$EXTERNALSYM IDI_RESOURCEOVERLAYLAST}
IDI_CONFLICT = 161;
{$EXTERNALSYM IDI_CONFLICT}
IDI_CLASSICON_OVERLAYFIRST = 500;
{$EXTERNALSYM IDI_CLASSICON_OVERLAYFIRST}
IDI_CLASSICON_OVERLAYLAST = 502;
{$EXTERNALSYM IDI_CLASSICON_OVERLAYLAST}
IDI_PROBLEM_OVL = 500;
{$EXTERNALSYM IDI_PROBLEM_OVL}
IDI_DISABLED_OVL = 501;
{$EXTERNALSYM IDI_DISABLED_OVL}
IDI_FORCED_OVL = 502;
{$EXTERNALSYM IDI_FORCED_OVL}
//
// PageType values for SetupDiGetWizardPage API
//
const
SPWPT_SELECTDEVICE = $00000001;
{$EXTERNALSYM SPWPT_SELECTDEVICE}
//
// Flags for SetupDiGetWizardPage API
//
SPWP_USE_DEVINFO_DATA = $00000001;
{$EXTERNALSYM SPWP_USE_DEVINFO_DATA}
{$IFDEF WINXP_UP}
type
PSP_INF_SIGNER_INFO_A = ^SP_INF_SIGNER_INFO_A;
{$EXTERNALSYM PSP_INF_SIGNER_INFO_A}
SP_INF_SIGNER_INFO_A = packed record
cbSize: DWORD;
CatalogFile: array [0..MAX_PATH - 1] of Char;
DigitalSigner: array [0..MAX_PATH - 1] of Char;
DigitalSignerVersion: array [0..MAX_PATH - 1] of Char;
end;
{$EXTERNALSYM SP_INF_SIGNER_INFO_A}
PSP_INF_SIGNER_INFO_W = ^SP_INF_SIGNER_INFO_W;
{$EXTERNALSYM PSP_INF_SIGNER_INFO_A}
SP_INF_SIGNER_INFO_W = packed record
cbSize: DWORD;
CatalogFile: array [0..MAX_PATH - 1] of WideChar;
DigitalSigner: array [0..MAX_PATH - 1] of WideChar;
DigitalSignerVersion: array [0..MAX_PATH - 1] of WideChar;
end;
{$EXTERNALSYM SP_INF_SIGNER_INFO_W}
TSPInfSignerInfoA = SP_INF_SIGNER_INFO_A;
TSPInfSignerInfoW = SP_INF_SIGNER_INFO_W;
PSPInfSignerInfoA = ^TSPInfSignerInfoA;
PSPInfSignerInfoW = ^TSPInfSignerInfoW;
{$IFDEF UNICODE}
TSPInfSignerInfo = TSPInfSignerInfoW;
PSPInfSignerInfo = PSPInfSignerInfoW;
SP_INF_SIGNER_INFO = SP_INF_SIGNER_INFO_W;
{$EXTERNALSYM SP_INF_SIGNER_INFO}
PSP_INF_SIGNER_INFO = PSP_INF_SIGNER_INFO_W;
{$EXTERNALSYM PSP_INF_SIGNER_INFO}
{$ELSE}
TSPInfSignerInfo = TSPInfSignerInfoA;
PSPInfSignerInfo = PSPInfSignerInfoA;
SP_INF_SIGNER_INFO = SP_INF_SIGNER_INFO_A;
{$EXTERNALSYM SP_INF_SIGNER_INFO}
PSP_INF_SIGNER_INFO = PSP_INF_SIGNER_INFO_A;
{$EXTERNALSYM PSP_INF_SIGNER_INFO}
{$ENDIF UNICODE}
//
// Flags for use by SetupDiGetCustomDeviceProperty
//
const
DICUSTOMDEVPROP_MERGE_MULTISZ = $00000001;
{$ENDIF WINXP_UP}
{$IFNDEF SETUPAPI_LINKONREQUEST}
{$IFDEF WINXP_UP}
function SetupGetFileQueueCount(FileQueue: HSPFILEQ; SubQueueFileOp: UINT; var NumOperations: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupGetFileQueueCount}
function SetupGetFileQueueFlags(FileQueue: HSPFILEQ; var Flags: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupGetFileQueueFlags}
function SetupSetFileQueueFlags(FileQueue: HSPFILEQ; FlagMask: DWORD; Flags: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupSetFileQueueFlags}
{$ENDIF WINXP_UP}
function SetupGetInfInformationA(InfSpec: Pointer; SearchControl: DWORD;
ReturnBuffer: PSPInfInformation; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupGetInfInformationA}
function SetupGetInfInformationW(InfSpec: Pointer; SearchControl: DWORD;
ReturnBuffer: PSPInfInformation; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupGetInfInformationW}
function SetupGetInfInformation(InfSpec: Pointer; SearchControl: DWORD;
ReturnBuffer: PSPInfInformation; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupGetInfInformation}
function SetupQueryInfFileInformationA(var InfInformation: TSPInfInformation;
InfIndex: UINT; ReturnBuffer: PAnsiChar; ReturnBufferSize: DWORD;
RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupQueryInfFileInformationA}
function SetupQueryInfFileInformationW(var InfInformation: TSPInfInformation;
InfIndex: UINT; ReturnBuffer: PWideChar; ReturnBufferSize: DWORD;
RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupQueryInfFileInformationW}
function SetupQueryInfFileInformation(var InfInformation: TSPInfInformation;
InfIndex: UINT; ReturnBuffer: PTSTR; ReturnBufferSize: DWORD;
RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupQueryInfFileInformation}
{$IFDEF WIN2000_UP}
function SetupQueryInfOriginalFileInformationA(var InfInformation: TSPInfInformation;
InfIndex: UINT; AlternatePlatformInfo: PSPAltPlatformInfo;
var OriginalFileInfo: TSPOriginalFileInfoA): BOOL; stdcall;
{$EXTERNALSYM SetupQueryInfOriginalFileInformationA}
function SetupQueryInfOriginalFileInformationW(var InfInformation: TSPInfInformation;
InfIndex: UINT; AlternatePlatformInfo: PSPAltPlatformInfo;
var OriginalFileInfo: TSPOriginalFileInfoW): BOOL; stdcall;
{$EXTERNALSYM SetupQueryInfOriginalFileInformationW}
function SetupQueryInfOriginalFileInformation(var InfInformation: TSPInfInformation;
InfIndex: UINT; AlternatePlatformInfo: PSPAltPlatformInfo;
var OriginalFileInfo: TSPOriginalFileInfo): BOOL; stdcall;
{$EXTERNALSYM SetupQueryInfOriginalFileInformation}
{$ENDIF WIN2000_UP}
function SetupQueryInfVersionInformationA(var InfInformation: TSPInfInformation;
InfIndex: UINT; const Key, ReturnBuffer: PAnsiChar; ReturnBufferSize: DWORD;
RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupQueryInfVersionInformationA}
function SetupQueryInfVersionInformationW(var InfInformation: TSPInfInformation;
InfIndex: UINT; const Key, ReturnBuffer: PWideChar; ReturnBufferSize: DWORD;
RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupQueryInfVersionInformationW}
function SetupQueryInfVersionInformation(var InfInformation: TSPInfInformation;
InfIndex: UINT; const Key, ReturnBuffer: PTSTR; ReturnBufferSize: DWORD;
RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupQueryInfVersionInformation}
function SetupGetInfFileListA(const DirectoryPath: PAnsiChar; InfStyle: DWORD;
ReturnBuffer: PAnsiChar; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupGetInfFileListA}
function SetupGetInfFileListW(const DirectoryPath: PWideChar; InfStyle: DWORD;
ReturnBuffer: PWideChar; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupGetInfFileListW}
function SetupGetInfFileList(const DirectoryPath: PTSTR; InfStyle: DWORD;
ReturnBuffer: PTSTR; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupGetInfFileList}
function SetupOpenInfFileA(const FileName: PAnsiChar; const InfClass: PAnsiChar;
InfStyle: DWORD; ErrorLine: PUINT): HINF; stdcall;
{$EXTERNALSYM SetupOpenInfFileA}
function SetupOpenInfFileW(const FileName: PWideChar; const InfClass: PWideChar;
InfStyle: DWORD; ErrorLine: PUINT): HINF; stdcall;
{$EXTERNALSYM SetupOpenInfFileW}
function SetupOpenInfFile(const FileName: PTSTR; const InfClass: PTSTR;
InfStyle: DWORD; ErrorLine: PUINT): HINF; stdcall;
{$EXTERNALSYM SetupOpenInfFile}
function SetupOpenMasterInf: HINF; stdcall;
{$EXTERNALSYM SetupOpenMasterInf}
function SetupOpenAppendInfFileA(const FileName: PAnsiChar; InfHandle: HINF;
ErrorLine: PUINT): BOOL; stdcall;
{$EXTERNALSYM SetupOpenAppendInfFileA}
function SetupOpenAppendInfFileW(const FileName: PWideChar; InfHandle: HINF;
ErrorLine: PUINT): BOOL; stdcall;
{$EXTERNALSYM SetupOpenAppendInfFileW}
function SetupOpenAppendInfFile(const FileName: PTSTR; InfHandle: HINF;
ErrorLine: PUINT): BOOL; stdcall;
{$EXTERNALSYM SetupOpenAppendInfFile}
procedure SetupCloseInfFile(InfHandle: HINF); stdcall;
{$EXTERNALSYM SetupCloseInfFile}
function SetupFindFirstLineA(InfHandle: HINF; Section, Key: PAnsiChar;
var Context: TInfContext): BOOL; stdcall;
{$EXTERNALSYM SetupFindFirstLineA}
function SetupFindFirstLineW(InfHandle: HINF; Section, Key: PWideChar;
var Context: TInfContext): BOOL; stdcall;
{$EXTERNALSYM SetupFindFirstLineW}
function SetupFindFirstLine(InfHandle: HINF; Section, Key: PTSTR;
var Context: TInfContext): BOOL; stdcall;
{$EXTERNALSYM SetupFindFirstLine}
function SetupFindNextLine(var ContextIn, ContextOut: TInfContext): BOOL; stdcall;
{$EXTERNALSYM SetupFindNextLine}
function SetupFindNextMatchLineA(var ContextIn: TInfContext; Key: PAnsiChar;
var ContextOut: TInfContext): BOOL; stdcall;
{$EXTERNALSYM SetupFindNextMatchLineA}
function SetupFindNextMatchLineW(var ContextIn: TInfContext; Key: PWideChar;
var ContextOut: TInfContext): BOOL; stdcall;
{$EXTERNALSYM SetupFindNextMatchLineW}
function SetupFindNextMatchLine(var ContextIn: TInfContext; Key: PTSTR;
var ContextOut: TInfContext): BOOL; stdcall;
{$EXTERNALSYM SetupFindNextMatchLine}
function SetupGetLineByIndexA(InfHandle: HINF; Section: PAnsiChar; Index: DWORD;
var Context: TInfContext): BOOL; stdcall;
{$EXTERNALSYM SetupGetLineByIndexA}
function SetupGetLineByIndexW(InfHandle: HINF; Section: PWideChar; Index: DWORD;
var Context: TInfContext): BOOL; stdcall;
{$EXTERNALSYM SetupGetLineByIndexW}
function SetupGetLineByIndex(InfHandle: HINF; Section: PTSTR; Index: DWORD;
var Context: TInfContext): BOOL; stdcall;
{$EXTERNALSYM SetupGetLineByIndex}
function SetupGetLineCountA(InfHandle: HINF; Section: PAnsiChar): Integer; stdcall;
{$EXTERNALSYM SetupGetLineCountA}
function SetupGetLineCountW(InfHandle: HINF; Section: PWideChar): Integer; stdcall;
{$EXTERNALSYM SetupGetLineCountW}
function SetupGetLineCount(InfHandle: HINF; Section: PTSTR): Integer; stdcall;
{$EXTERNALSYM SetupGetLineCount}
function SetupGetLineTextA(Context: PInfContext; InfHandle: HINF; Section,
Key, ReturnBuffer: PAnsiChar; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupGetLineTextA}
function SetupGetLineTextW(Context: PInfContext; InfHandle: HINF; Section,
Key, ReturnBuffer: PWideChar; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupGetLineTextW}
function SetupGetLineText(Context: PInfContext; InfHandle: HINF; Section,
Key, ReturnBuffer: PTSTR; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupGetLineText}
function SetupGetFieldCount(var Context: TInfContext): DWORD; stdcall;
{$EXTERNALSYM SetupGetFieldCount}
function SetupGetStringFieldA(var Context: TInfContext; FieldIndex: DWORD;
ReturnBuffer: PAnsiChar; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupGetStringFieldA}
function SetupGetStringFieldW(var Context: TInfContext; FieldIndex: DWORD;
ReturnBuffer: PWideChar; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupGetStringFieldW}
function SetupGetStringField(var Context: TInfContext; FieldIndex: DWORD;
ReturnBuffer: PTSTR; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupGetStringField}
function SetupGetIntField(var Context: TInfContext; FieldIndex: DWORD;
var IntegerValue: Integer): BOOL; stdcall;
{$EXTERNALSYM SetupGetIntField}
function SetupGetMultiSzFieldA(var Context: TInfContext; FieldIndex: DWORD;
ReturnBuffer: PAnsiChar; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupGetMultiSzFieldA}
function SetupGetMultiSzFieldW(var Context: TInfContext; FieldIndex: DWORD;
ReturnBuffer: PWideChar; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupGetMultiSzFieldW}
function SetupGetMultiSzField(var Context: TInfContext; FieldIndex: DWORD;
ReturnBuffer: PTSTR; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupGetMultiSzField}
function SetupGetBinaryField(var Context: TInfContext; FieldIndex: DWORD;
ReturnBuffer: PBYTE; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupGetBinaryField}
//
// SetupGetFileCompressionInfo is depreciated
// use SetupGetFileCompressionInfoEx instead
//
// ActualSourceFileName returned by SetupGetFileCompressionInfo
// must be freed by the export setupapi!MyFree (NT4+ Win95+)
// or LocalFree (Win2k+)
//
function SetupGetFileCompressionInfoA(const SourceFileName: PAnsiChar;
var ActualSourceFileName: PAnsiChar; var SourceFileSize: DWORD;
var TargetFileSize: DWORD; var CompressionType: UINT): DWORD; stdcall;
{$EXTERNALSYM SetupGetFileCompressionInfoA}
function SetupGetFileCompressionInfoW(const SourceFileName: PWideChar;
var ActualSourceFileName: PWideChar; var SourceFileSize: DWORD;
var TargetFileSize: DWORD; var CompressionType: UINT): DWORD; stdcall;
{$EXTERNALSYM SetupGetFileCompressionInfoW}
function SetupGetFileCompressionInfo(const SourceFileName: PTSTR;
var ActualSourceFileName: PTSTR; var SourceFileSize: DWORD;
var TargetFileSize: DWORD; var CompressionType: UINT): DWORD; stdcall;
{$EXTERNALSYM SetupGetFileCompressionInfo}
{$IFDEF WINXP_UP}
//
// SetupGetFileCompressionInfoEx is the preferred API over
// SetupGetFileCompressionInfo. It follows the normal
// conventions of returning BOOL and writing to user-supplied
// buffer.
//
function SetupGetFileCompressionInfoExA(const SourceFileName: PAnsiChar;
ActualSourceFileNameBuffer: PAnsiChar; var ActualSourceFileNameBufferLen: DWORD;
RequiredBufferLen: PDWORD; var SourceFileSize: DWORD;
var TargetFileSize: DWORD; var CompressionType: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupGetFileCompressionInfoExA}
function SetupGetFileCompressionInfoExW(const SourceFileName: PWideChar;
ActualSourceFileNameBuffer: PWideChar; var ActualSourceFileNameBufferLen: DWORD;
RequiredBufferLen: PDWORD; var SourceFileSize: DWORD;
var TargetFileSize: DWORD; var CompressionType: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupGetFileCompressionInfoExW}
function SetupGetFileCompressionInfoEx(const SourceFileName: PTSTR;
ActualSourceFileNameBuffer: PTSTR; var ActualSourceFileNameBufferLen: DWORD;
RequiredBufferLen: PDWORD; var SourceFileSize: DWORD;
var TargetFileSize: DWORD; var CompressionType: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupGetFileCompressionInfoEx}
{$ENDIF WINXP_UP}
function SetupDecompressOrCopyFileA(const SourceFileName, TargetFileName: PAnsiChar;
var CompressionType: UINT): DWORD; stdcall;
{$EXTERNALSYM SetupDecompressOrCopyFileA}
function SetupDecompressOrCopyFileW(const SourceFileName, TargetFileName: PWideChar;
var CompressionType: UINT): DWORD; stdcall;
{$EXTERNALSYM SetupDecompressOrCopyFileW}
function SetupDecompressOrCopyFile(const SourceFileName, TargetFileName: PTSTR;
var CompressionType: UINT): DWORD; stdcall;
{$EXTERNALSYM SetupDecompressOrCopyFile}
function SetupGetSourceFileLocationA(InfHandle: HINF; InfContext: PInfContext;
const FileName: PAnsiChar; var SourceId: UINT; ReturnBuffer: PAnsiChar;
ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupGetSourceFileLocationA}
function SetupGetSourceFileLocationW(InfHandle: HINF; InfContext: PInfContext;
const FileName: PWideChar; var SourceId: UINT; ReturnBuffer: PWideChar;
ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupGetSourceFileLocationW}
function SetupGetSourceFileLocation(InfHandle: HINF; InfContext: PInfContext;
const FileName: PTSTR; var SourceId: UINT; ReturnBuffer: PTSTR;
ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupGetSourceFileLocation}
function SetupGetSourceFileSizeA(InfHandle: HINF; InfContext: PInfContext;
const FileName: PAnsiChar; const Section: PAnsiChar; var FileSize: DWORD;
RoundingFactor: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupGetSourceFileSizeA}
function SetupGetSourceFileSizeW(InfHandle: HINF; InfContext: PInfContext;
const FileName: PWideChar; const Section: PWideChar; var FileSize: DWORD;
RoundingFactor: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupGetSourceFileSizeW}
function SetupGetSourceFileSize(InfHandle: HINF; InfContext: PInfContext;
const FileName: PTSTR; const Section: PTSTR; var FileSize: DWORD;
RoundingFactor: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupGetSourceFileSize}
function SetupGetTargetPathA(InfHandle: HINF; InfContext: PInfContext;
const Section: PAnsiChar; ReturnBuffer: PAnsiChar; ReturnBufferSize: DWORD;
RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupGetTargetPathA}
function SetupGetTargetPathW(InfHandle: HINF; InfContext: PInfContext;
const Section: PWideChar; ReturnBuffer: PWideChar; ReturnBufferSize: DWORD;
RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupGetTargetPathW}
function SetupGetTargetPath(InfHandle: HINF; InfContext: PInfContext;
const Section: PTSTR; ReturnBuffer: PTSTR; ReturnBufferSize: DWORD;
RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupGetTargetPath}
function SetupSetSourceListA(Flags: DWORD; SourceList: PPASTR;
SourceCount: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupSetSourceListA}
function SetupSetSourceListW(Flags: DWORD; SourceList: PPWSTR;
SourceCount: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupSetSourceListW}
function SetupSetSourceList(Flags: DWORD; SourceList: PPSTR;
SourceCount: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupSetSourceList}
function SetupCancelTemporarySourceList: BOOL; stdcall;
{$EXTERNALSYM SetupCancelTemporarySourceList}
function SetupAddToSourceListA(Flags: DWORD; const Source: PAnsiChar): BOOL; stdcall;
{$EXTERNALSYM SetupAddToSourceListA}
function SetupAddToSourceListW(Flags: DWORD; const Source: PWideChar): BOOL; stdcall;
{$EXTERNALSYM SetupAddToSourceListW}
function SetupAddToSourceList(Flags: DWORD; const Source: PTSTR): BOOL; stdcall;
{$EXTERNALSYM SetupAddToSourceList}
function SetupRemoveFromSourceListA(Flags: DWORD; const Source: PAnsiChar): BOOL; stdcall;
{$EXTERNALSYM SetupRemoveFromSourceListA}
function SetupRemoveFromSourceListW(Flags: DWORD; const Source: PWideChar): BOOL; stdcall;
{$EXTERNALSYM SetupRemoveFromSourceListW}
function SetupRemoveFromSourceList(Flags: DWORD; const Source: PTSTR): BOOL; stdcall;
{$EXTERNALSYM SetupRemoveFromSourceList}
function SetupQuerySourceListA(Flags: DWORD; var List: PPASTR;
var Count: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupQuerySourceListA}
function SetupQuerySourceListW(Flags: DWORD; var List: PPWSTR;
var Count: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupQuerySourceListW}
function SetupQuerySourceList(Flags: DWORD; var List: PPSTR;
var Count: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupQuerySourceList}
function SetupFreeSourceListA(var List: PPASTR; Count: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupFreeSourceListA}
function SetupFreeSourceListW(var List: PPWSTR; Count: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupFreeSourceListW}
function SetupFreeSourceList(var List: PPSTR; Count: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupFreeSourceList}
function SetupPromptForDiskA(hwndParent: HWND; const DialogTitle, DiskName,
PathToSource, FileSought, TagFile: PAnsiChar; DiskPromptStyle: DWORD;
PathBuffer: PAnsiChar; PathBufferSize: DWORD; var PathRequiredSize: DWORD): UINT; stdcall;
{$EXTERNALSYM SetupPromptForDiskA}
function SetupPromptForDiskW(hwndParent: HWND; const DialogTitle, DiskName,
PathToSource, FileSought, TagFile: PWideChar; DiskPromptStyle: DWORD;
PathBuffer: PWideChar; PathBufferSize: DWORD; var PathRequiredSize: DWORD): UINT; stdcall;
{$EXTERNALSYM SetupPromptForDiskW}
function SetupPromptForDisk(hwndParent: HWND; const DialogTitle, DiskName,
PathToSource, FileSought, TagFile: PTSTR; DiskPromptStyle: DWORD;
PathBuffer: PTSTR; PathBufferSize: DWORD; var PathRequiredSize: DWORD): UINT; stdcall;
{$EXTERNALSYM SetupPromptForDisk}
function SetupCopyErrorA(hwndParent: HWND; const DialogTitle, DiskName,
PathToSource, SourceFile, TargetPathFile: PAnsiChar; Win32ErrorCode: UINT; Style: DWORD;
PathBuffer: PAnsiChar; PathBufferSize: DWORD; PathRequiredSize: PDWORD): UINT; stdcall;
{$EXTERNALSYM SetupCopyErrorA}
function SetupCopyErrorW(hwndParent: HWND; const DialogTitle, DiskName,
PathToSource, SourceFile, TargetPathFile: PWideChar; Win32ErrorCode: UINT; Style: DWORD;
PathBuffer: PWideChar; PathBufferSize: DWORD; PathRequiredSize: PDWORD): UINT; stdcall;
{$EXTERNALSYM SetupCopyErrorW}
function SetupCopyError(hwndParent: HWND; const DialogTitle, DiskName,
PathToSource, SourceFile, TargetPathFile: PTSTR; Win32ErrorCode: UINT; Style: DWORD;
PathBuffer: PTSTR; PathBufferSize: DWORD; PathRequiredSize: PDWORD): UINT; stdcall;
{$EXTERNALSYM SetupCopyError}
function SetupRenameErrorA(hwndParent: HWND; const DialogTitle, SourceFile,
TargetFile: PAnsiChar; Win32ErrorCode: UINT; Style: DWORD): UINT; stdcall;
{$EXTERNALSYM SetupRenameErrorA}
function SetupRenameErrorW(hwndParent: HWND; const DialogTitle, SourceFile,
TargetFile: PWideChar; Win32ErrorCode: UINT; Style: DWORD): UINT; stdcall;
{$EXTERNALSYM SetupRenameErrorW}
function SetupRenameError(hwndParent: HWND; const DialogTitle, SourceFile,
TargetFile: PTSTR; Win32ErrorCode: UINT; Style: DWORD): UINT; stdcall;
{$EXTERNALSYM SetupRenameError}
function SetupDeleteErrorA(hwndParent: HWND; const DialogTitle, File_: PAnsiChar;
Win32ErrorCode: UINT; Style: DWORD): UINT; stdcall;
{$EXTERNALSYM SetupDeleteErrorA}
function SetupDeleteErrorW(hwndParent: HWND; const DialogTitle, File_: PWideChar;
Win32ErrorCode: UINT; Style: DWORD): UINT; stdcall;
{$EXTERNALSYM SetupDeleteErrorW}
function SetupDeleteError(hwndParent: HWND; const DialogTitle, File_: PTSTR;
Win32ErrorCode: UINT; Style: DWORD): UINT; stdcall;
{$EXTERNALSYM SetupDeleteError}
{$IFDEF WIN2000_UP}
function SetupBackupErrorA(hwndParent: HWND; const DialogTitle, SourceFile,
TargetFile: PAnsiChar; Win32ErrorCode: UINT; Style: DWORD): UINT; stdcall;
{$EXTERNALSYM SetupBackupErrorA}
function SetupBackupErrorW(hwndParent: HWND; const DialogTitle, SourceFile,
TargetFile: PWideChar; Win32ErrorCode: UINT; Style: DWORD): UINT; stdcall;
{$EXTERNALSYM SetupBackupErrorW}
function SetupBackupError(hwndParent: HWND; const DialogTitle, SourceFile,
TargetFile: PTSTR; Win32ErrorCode: UINT; Style: DWORD): UINT; stdcall;
{$EXTERNALSYM SetupBackupError}
{$ENDIF WIN2000_UP}
function SetupSetDirectoryIdA(InfHandle: HINF; Id: DWORD; const Directory: PAnsiChar): BOOL; stdcall;
{$EXTERNALSYM SetupSetDirectoryIdA}
function SetupSetDirectoryIdW(InfHandle: HINF; Id: DWORD; const Directory: PWideChar): BOOL; stdcall;
{$EXTERNALSYM SetupSetDirectoryIdW}
function SetupSetDirectoryId(InfHandle: HINF; Id: DWORD; const Directory: PTSTR): BOOL; stdcall;
{$EXTERNALSYM SetupSetDirectoryId}
function SetupSetDirectoryIdExA(InfHandle: HINF; Id: DWORD; const Directory: PAnsiChar;
Flags: DWORD; Reserved1: DWORD; Reserved2: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupSetDirectoryIdExA}
function SetupSetDirectoryIdExW(InfHandle: HINF; Id: DWORD; const Directory: PWideChar;
Flags: DWORD; Reserved1: DWORD; Reserved2: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupSetDirectoryIdExW}
function SetupSetDirectoryIdEx(InfHandle: HINF; Id: DWORD; const Directory: PTSTR;
Flags: DWORD; Reserved1: DWORD; Reserved2: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupSetDirectoryIdEx}
function SetupGetSourceInfoA(InfHandle: HINF; SourceId, InfoDesired: UINT;
ReturnBuffer: PAnsiChar; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupGetSourceInfoA}
function SetupGetSourceInfoW(InfHandle: HINF; SourceId, InfoDesired: UINT;
ReturnBuffer: PWideChar; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupGetSourceInfoW}
function SetupGetSourceInfo(InfHandle: HINF; SourceId, InfoDesired: UINT;
ReturnBuffer: PTSTR; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupGetSourceInfo}
function SetupInstallFileA(InfHandle: HINF; InfContext: PInfContext;
const SourceFile, SourcePathRoot, DestinationName: PAnsiChar; CopyStyle: DWORD;
CopyMsgHandler: TSPFileCallbackA; Context: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupInstallFileA}
function SetupInstallFileW(InfHandle: HINF; InfContext: PInfContext;
const SourceFile, SourcePathRoot, DestinationName: PWideChar; CopyStyle: DWORD;
CopyMsgHandler: TSPFileCallbackW; Context: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupInstallFileW}
function SetupInstallFile(InfHandle: HINF; InfContext: PInfContext;
const SourceFile, SourcePathRoot, DestinationName: PTSTR; CopyStyle: DWORD;
CopyMsgHandler: TSPFileCallback; Context: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupInstallFile}
function SetupInstallFileExA(InfHandle: HINF; InfContext: PInfContext;
const SourceFile, SourcePathRoot, DestinationName: PAnsiChar; CopyStyle: DWORD;
CopyMsgHandler: TSPFileCallbackA; Context: Pointer; var FileWasInUse: BOOL): BOOL; stdcall;
{$EXTERNALSYM SetupInstallFileExA}
function SetupInstallFileExW(InfHandle: HINF; InfContext: PInfContext;
const SourceFile, SourcePathRoot, DestinationName: PWideChar; CopyStyle: DWORD;
CopyMsgHandler: TSPFileCallbackW; Context: Pointer; var FileWasInUse: BOOL): BOOL; stdcall;
{$EXTERNALSYM SetupInstallFileExW}
function SetupInstallFileEx(InfHandle: HINF; InfContext: PInfContext;
const SourceFile, SourcePathRoot, DestinationName: PTSTR; CopyStyle: DWORD;
CopyMsgHandler: TSPFileCallback; Context: Pointer; var FileWasInUse: BOOL): BOOL; stdcall;
{$EXTERNALSYM SetupInstallFileEx}
function SetupOpenFileQueue: HSPFILEQ; stdcall;
{$EXTERNALSYM SetupOpenFileQueue}
function SetupCloseFileQueue(QueueHandle: HSPFILEQ): BOOL; stdcall;
{$EXTERNALSYM SetupCloseFileQueue}
{$IFDEF WIN2000_UP}
function SetupSetFileQueueAlternatePlatformA(QueueHandle: HSPFILEQ;
AlternatePlatformInfo: PSPAltPlatformInfo;
const AlternateDefaultCatalogFile: PAnsiChar): BOOL; stdcall;
{$EXTERNALSYM SetupSetFileQueueAlternatePlatformA}
function SetupSetFileQueueAlternatePlatformW(QueueHandle: HSPFILEQ;
AlternatePlatformInfo: PSPAltPlatformInfo;
const AlternateDefaultCatalogFile: PWideChar): BOOL; stdcall;
{$EXTERNALSYM SetupSetFileQueueAlternatePlatformW}
function SetupSetFileQueueAlternatePlatform(QueueHandle: HSPFILEQ;
AlternatePlatformInfo: PSPAltPlatformInfo;
const AlternateDefaultCatalogFile: PTSTR): BOOL; stdcall;
{$EXTERNALSYM SetupSetFileQueueAlternatePlatform}
{$ENDIF WIN2000_UP}
function SetupSetPlatformPathOverrideA(const Override_: PAnsiChar): BOOL; stdcall;
{$EXTERNALSYM SetupSetPlatformPathOverrideA}
function SetupSetPlatformPathOverrideW(const Override_: PWideChar): BOOL; stdcall;
{$EXTERNALSYM SetupSetPlatformPathOverrideW}
function SetupSetPlatformPathOverride(const Override_: PTSTR): BOOL; stdcall;
{$EXTERNALSYM SetupSetPlatformPathOverride}
function SetupQueueCopyA(QueueHandle: HSPFILEQ; const SourceRootPath, SourcePath,
SourceFilename, SourceDescription, SourceTagfile, TargetDirectory,
TargetFilename: PAnsiChar; CopyStyle: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupQueueCopyA}
function SetupQueueCopyW(QueueHandle: HSPFILEQ; const SourceRootPath, SourcePath,
SourceFilename, SourceDescription, SourceTagfile, TargetDirectory,
TargetFilename: PWideChar; CopyStyle: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupQueueCopyW}
function SetupQueueCopy(QueueHandle: HSPFILEQ; const SourceRootPath, SourcePath,
SourceFilename, SourceDescription, SourceTagfile, TargetDirectory,
TargetFilename: PTSTR; CopyStyle: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupQueueCopy}
{$IFDEF WIN2000_UP}
function SetupQueueCopyIndirectA(var CopyParams: TSPFileCopyParamsA): BOOL; stdcall;
{$EXTERNALSYM SetupQueueCopyIndirectA}
function SetupQueueCopyIndirectW(var CopyParams: TSPFileCopyParamsW): BOOL; stdcall;
{$EXTERNALSYM SetupQueueCopyIndirectW}
function SetupQueueCopyIndirect(var CopyParams: TSPFileCopyParams): BOOL; stdcall;
{$EXTERNALSYM SetupQueueCopyIndirect}
{$ENDIF WIN2000_UP}
function SetupQueueDefaultCopyA(QueueHandle: HSPFILEQ; InfHandle: HINF;
const SourceRootPath, SourceFilename, TargetFilename: PAnsiChar;
CopyStyle: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupQueueDefaultCopyA}
function SetupQueueDefaultCopyW(QueueHandle: HSPFILEQ; InfHandle: HINF;
const SourceRootPath, SourceFilename, TargetFilename: PWideChar;
CopyStyle: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupQueueDefaultCopyW}
function SetupQueueDefaultCopy(QueueHandle: HSPFILEQ; InfHandle: HINF;
const SourceRootPath, SourceFilename, TargetFilename: PTSTR;
CopyStyle: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupQueueDefaultCopy}
function SetupQueueCopySectionA(QueueHandle: HSPFILEQ; const SourceRootPath: PAnsiChar;
InfHandle: HINF; ListInfHandle: HINF; const Section: PAnsiChar; CopyStyle: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupQueueCopySectionA}
function SetupQueueCopySectionW(QueueHandle: HSPFILEQ; const SourceRootPath: PWideChar;
InfHandle: HINF; ListInfHandle: HINF; const Section: PWideChar; CopyStyle: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupQueueCopySectionW}
function SetupQueueCopySection(QueueHandle: HSPFILEQ; const SourceRootPath: PTSTR;
InfHandle: HINF; ListInfHandle: HINF; const Section: PTSTR; CopyStyle: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupQueueCopySection}
function SetupQueueDeleteA(QueueHandle: HSPFILEQ; const PathPart1, PathPart2: PAnsiChar): BOOL; stdcall;
{$EXTERNALSYM SetupQueueDeleteA}
function SetupQueueDeleteW(QueueHandle: HSPFILEQ; const PathPart1, PathPart2: PWideChar): BOOL; stdcall;
{$EXTERNALSYM SetupQueueDeleteW}
function SetupQueueDelete(QueueHandle: HSPFILEQ; const PathPart1, PathPart2: PTSTR): BOOL; stdcall;
{$EXTERNALSYM SetupQueueDelete}
function SetupQueueDeleteSectionA(QueueHandle: HSPFILEQ; InfHandle: HINF;
ListInfHandle: HINF; const Section: PAnsiChar): BOOL; stdcall;
{$EXTERNALSYM SetupQueueDeleteSectionA}
function SetupQueueDeleteSectionW(QueueHandle: HSPFILEQ; InfHandle: HINF;
ListInfHandle: HINF; const Section: PWideChar): BOOL; stdcall;
{$EXTERNALSYM SetupQueueDeleteSectionW}
function SetupQueueDeleteSection(QueueHandle: HSPFILEQ; InfHandle: HINF;
ListInfHandle: HINF; const Section: PTSTR): BOOL; stdcall;
{$EXTERNALSYM SetupQueueDeleteSection}
function SetupQueueRenameA(QueueHandle: HSPFILEQ; const SourcePath,
SourceFilename, TargetPath, TargetFilename: PAnsiChar): BOOL; stdcall;
{$EXTERNALSYM SetupQueueRenameA}
function SetupQueueRenameW(QueueHandle: HSPFILEQ; const SourcePath,
SourceFilename, TargetPath, TargetFilename: PWideChar): BOOL; stdcall;
{$EXTERNALSYM SetupQueueRenameW}
function SetupQueueRename(QueueHandle: HSPFILEQ; const SourcePath,
SourceFilename, TargetPath, TargetFilename: PTSTR): BOOL; stdcall;
{$EXTERNALSYM SetupQueueRename}
function SetupQueueRenameSectionA(QueueHandle: HSPFILEQ; InfHandle: HINF;
ListInfHandle: HINF; const Section: PAnsiChar): BOOL; stdcall;
{$EXTERNALSYM SetupQueueRenameSectionA}
function SetupQueueRenameSectionW(QueueHandle: HSPFILEQ; InfHandle: HINF;
ListInfHandle: HINF; const Section: PWideChar): BOOL; stdcall;
{$EXTERNALSYM SetupQueueRenameSectionW}
function SetupQueueRenameSection(QueueHandle: HSPFILEQ; InfHandle: HINF;
ListInfHandle: HINF; const Section: PTSTR): BOOL; stdcall;
{$EXTERNALSYM SetupQueueRenameSection}
function SetupCommitFileQueueA(Owner: HWND; QueueHandle: HSPFILEQ;
MsgHandler: TSPFileCallbackA; Context: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupCommitFileQueueA}
function SetupCommitFileQueueW(Owner: HWND; QueueHandle: HSPFILEQ;
MsgHandler: TSPFileCallbackW; Context: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupCommitFileQueueW}
function SetupCommitFileQueue(Owner: HWND; QueueHandle: HSPFILEQ;
MsgHandler: TSPFileCallback; Context: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupCommitFileQueue}
function SetupScanFileQueueA(FileQueue: HSPFILEQ; Flags: DWORD; Window: HWND;
CallbackRoutine: TSPFileCallbackA; CallbackContext: Pointer; var Result: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupScanFileQueueA}
function SetupScanFileQueueW(FileQueue: HSPFILEQ; Flags: DWORD; Window: HWND;
CallbackRoutine: TSPFileCallbackW; CallbackContext: Pointer; var Result: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupScanFileQueueW}
function SetupScanFileQueue(FileQueue: HSPFILEQ; Flags: DWORD; Window: HWND;
CallbackRoutine: TSPFileCallback; CallbackContext: Pointer; var Result: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupScanFileQueue}
function SetupCopyOEMInfA(const SourceInfFileName, OEMSourceMediaLocation: PAnsiChar;
OEMSourceMediaType, CopyStyle: DWORD; DestinationInfFileName: PAnsiChar;
DestinationInfFileNameSize: DWORD; RequiredSize: PDWORD;
DestinationInfFileNameComponent: PPASTR): BOOL; stdcall;
{$EXTERNALSYM SetupCopyOEMInfA}
function SetupCopyOEMInfW(const SourceInfFileName, OEMSourceMediaLocation: PWideChar;
OEMSourceMediaType, CopyStyle: DWORD; DestinationInfFileName: PWideChar;
DestinationInfFileNameSize: DWORD; RequiredSize: PDWORD;
DestinationInfFileNameComponent: PPWSTR): BOOL; stdcall;
{$EXTERNALSYM SetupCopyOEMInfW}
function SetupCopyOEMInf(const SourceInfFileName, OEMSourceMediaLocation: PTSTR;
OEMSourceMediaType, CopyStyle: DWORD; DestinationInfFileName: PTSTR;
DestinationInfFileNameSize: DWORD; RequiredSize: PDWORD;
DestinationInfFileNameComponent: PPSTR): BOOL; stdcall;
{$EXTERNALSYM SetupCopyOEMInf}
{$IFDEF WINXP_UP}
function SetupUninstallOEMInfA(const InfFileName: PAnsiChar; Flags: DWORD; Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupUninstallOEMInfA}
function SetupUninstallOEMInfW(const InfFileName: PWideChar; Flags: DWORD; Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupUninstallOEMInfW}
function SetupUninstallOEMInf(const InfFileName: PTSTR; Flags: DWORD; Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupUninstallOEMInf}
function SetupUninstallNewlyCopiedInfs(FileQueue: HSPFILEQ; Flags: DWORD; Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupUninstallNewlyCopiedInfs}
{$ENDIF WINXP_UP}
//
// Disk space list APIs
//
function SetupCreateDiskSpaceListA(Reserved1: Pointer; Reserved2: DWORD;
Flags: UINT): HDSKSPC; stdcall;
{$EXTERNALSYM SetupCreateDiskSpaceListA}
function SetupCreateDiskSpaceListW(Reserved1: Pointer; Reserved2: DWORD;
Flags: UINT): HDSKSPC; stdcall;
{$EXTERNALSYM SetupCreateDiskSpaceListW}
function SetupCreateDiskSpaceList(Reserved1: Pointer; Reserved2: DWORD;
Flags: UINT): HDSKSPC; stdcall;
{$EXTERNALSYM SetupCreateDiskSpaceList}
function SetupDuplicateDiskSpaceListA(DiskSpace: HDSKSPC; Reserved1: Pointer;
Reserved2: DWORD; Flags: UINT): HDSKSPC; stdcall;
{$EXTERNALSYM SetupDuplicateDiskSpaceListA}
function SetupDuplicateDiskSpaceListW(DiskSpace: HDSKSPC; Reserved1: Pointer;
Reserved2: DWORD; Flags: UINT): HDSKSPC; stdcall;
{$EXTERNALSYM SetupDuplicateDiskSpaceListW}
function SetupDuplicateDiskSpaceList(DiskSpace: HDSKSPC; Reserved1: Pointer;
Reserved2: DWORD; Flags: UINT): HDSKSPC; stdcall;
{$EXTERNALSYM SetupDuplicateDiskSpaceList}
function SetupDestroyDiskSpaceList(DiskSpace: HDSKSPC): BOOL; stdcall;
{$EXTERNALSYM SetupDestroyDiskSpaceList}
function SetupQueryDrivesInDiskSpaceListA(DiskSpace: HDSKSPC; ReturnBuffer: PAnsiChar;
ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupQueryDrivesInDiskSpaceListA}
function SetupQueryDrivesInDiskSpaceListW(DiskSpace: HDSKSPC; ReturnBuffer: PWideChar;
ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupQueryDrivesInDiskSpaceListW}
function SetupQueryDrivesInDiskSpaceList(DiskSpace: HDSKSPC; ReturnBuffer: PTSTR;
ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupQueryDrivesInDiskSpaceList}
function SetupQuerySpaceRequiredOnDriveA(DiskSpace: HDSKSPC; const DriveSpec: PAnsiChar;
var SpaceRequired: Int64; Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupQuerySpaceRequiredOnDriveA}
function SetupQuerySpaceRequiredOnDriveW(DiskSpace: HDSKSPC; const DriveSpec: PWideChar;
var SpaceRequired: Int64; Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupQuerySpaceRequiredOnDriveW}
function SetupQuerySpaceRequiredOnDrive(DiskSpace: HDSKSPC; const DriveSpec: PTSTR;
var SpaceRequired: Int64; Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupQuerySpaceRequiredOnDrive}
function SetupAdjustDiskSpaceListA(DiskSpace: HDSKSPC; const DriveRoot: PAnsiChar;
Amount: Int64; Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupAdjustDiskSpaceListA}
function SetupAdjustDiskSpaceListW(DiskSpace: HDSKSPC; const DriveRoot: PWideChar;
Amount: Int64; Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupAdjustDiskSpaceListW}
function SetupAdjustDiskSpaceList(DiskSpace: HDSKSPC; const DriveRoot: PTSTR;
Amount: Int64; Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupAdjustDiskSpaceList}
function SetupAddToDiskSpaceListA(DiskSpace: HDSKSPC; const TargetFilespec: PAnsiChar;
FileSize: Int64; Operation: UINT; Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupAddToDiskSpaceListA}
function SetupAddToDiskSpaceListW(DiskSpace: HDSKSPC; const TargetFilespec: PWideChar;
FileSize: Int64; Operation: UINT; Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupAddToDiskSpaceListW}
function SetupAddToDiskSpaceList(DiskSpace: HDSKSPC; const TargetFilespec: PTSTR;
FileSize: Int64; Operation: UINT; Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupAddToDiskSpaceList}
function SetupAddSectionToDiskSpaceListA(DiskSpace: HDSKSPC; InfHandle: HINF;
ListInfHandle: HINF; const SectionName: PAnsiChar; Operation: UINT;
Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupAddSectionToDiskSpaceListA}
function SetupAddSectionToDiskSpaceListW(DiskSpace: HDSKSPC; InfHandle: HINF;
ListInfHandle: HINF; const SectionName: PWideChar; Operation: UINT;
Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupAddSectionToDiskSpaceListW}
function SetupAddSectionToDiskSpaceList(DiskSpace: HDSKSPC; InfHandle: HINF;
ListInfHandle: HINF; const SectionName: PTSTR; Operation: UINT;
Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupAddSectionToDiskSpaceList}
function SetupAddInstallSectionToDiskSpaceListA(DiskSpace: HDSKSPC;
InfHandle: HINF; LayoutInfHandle: HINF; const SectionName: PAnsiChar;
Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupAddInstallSectionToDiskSpaceListA}
function SetupAddInstallSectionToDiskSpaceListW(DiskSpace: HDSKSPC;
InfHandle: HINF; LayoutInfHandle: HINF; const SectionName: PWideChar;
Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupAddInstallSectionToDiskSpaceListW}
function SetupAddInstallSectionToDiskSpaceList(DiskSpace: HDSKSPC;
InfHandle: HINF; LayoutInfHandle: HINF; const SectionName: PTSTR;
Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupAddInstallSectionToDiskSpaceList}
function SetupRemoveFromDiskSpaceListA(DiskSpace: HDSKSPC; const TargetFilespec: PAnsiChar;
Operation: UINT; Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupRemoveFromDiskSpaceListA}
function SetupRemoveFromDiskSpaceListW(DiskSpace: HDSKSPC; const TargetFilespec: PWideChar;
Operation: UINT; Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupRemoveFromDiskSpaceListW}
function SetupRemoveFromDiskSpaceList(DiskSpace: HDSKSPC; const TargetFilespec: PTSTR;
Operation: UINT; Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupRemoveFromDiskSpaceList}
function SetupRemoveSectionFromDiskSpaceListA(DiskSpace: HDSKSPC; InfHandle: HINF;
ListInfHandle: HINF; const SectionName: PAnsiChar; Operation: UINT; Reserved1: Pointer;
Reserved2: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupRemoveSectionFromDiskSpaceListA}
function SetupRemoveSectionFromDiskSpaceListW(DiskSpace: HDSKSPC; InfHandle: HINF;
ListInfHandle: HINF; const SectionName: PWideChar; Operation: UINT; Reserved1: Pointer;
Reserved2: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupRemoveSectionFromDiskSpaceListW}
function SetupRemoveSectionFromDiskSpaceList(DiskSpace: HDSKSPC; InfHandle: HINF;
ListInfHandle: HINF; const SectionName: PTSTR; Operation: UINT; Reserved1: Pointer;
Reserved2: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupRemoveSectionFromDiskSpaceList}
function SetupRemoveInstallSectionFromDiskSpaceListA(DiskSpace: HDSKSPC;
InfHandle: HINF; LayoutInfHandle: HINF; const SectionName: PAnsiChar;
Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupRemoveInstallSectionFromDiskSpaceListA}
function SetupRemoveInstallSectionFromDiskSpaceListW(DiskSpace: HDSKSPC;
InfHandle: HINF; LayoutInfHandle: HINF; const SectionName: PWideChar;
Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupRemoveInstallSectionFromDiskSpaceListW}
function SetupRemoveInstallSectionFromDiskSpaceList(DiskSpace: HDSKSPC;
InfHandle: HINF; LayoutInfHandle: HINF; const SectionName: PTSTR;
Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupRemoveInstallSectionFromDiskSpaceList}
//
// Cabinet APIs
//
function SetupIterateCabinetA(const CabinetFile: PAnsiChar; Reserved: DWORD;
MsgHandler: TSPFileCallbackA; Context: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupIterateCabinetA}
function SetupIterateCabinetW(const CabinetFile: PWideChar; Reserved: DWORD;
MsgHandler: TSPFileCallbackW; Context: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupIterateCabinetW}
function SetupIterateCabinet(const CabinetFile: PTSTR; Reserved: DWORD;
MsgHandler: TSPFileCallback; Context: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupIterateCabinet}
function SetupPromptReboot(FileQueue: HSPFILEQ; Owner: HWND; ScanOnly: BOOL): Integer; stdcall;
{$EXTERNALSYM SetupPromptReboot}
function SetupInitDefaultQueueCallback(OwnerWindow: HWND): Pointer; stdcall;
{$EXTERNALSYM SetupInitDefaultQueueCallback}
function SetupInitDefaultQueueCallbackEx(OwnerWindow: HWND; AlternateProgressWindow: HWND;
ProgressMessage: UINT; Reserved1: DWORD; Reserved2: Pointer): Pointer; stdcall;
{$EXTERNALSYM SetupInitDefaultQueueCallbackEx}
procedure SetupTermDefaultQueueCallback(Context: Pointer); stdcall;
{$EXTERNALSYM SetupTermDefaultQueueCallback}
function SetupDefaultQueueCallbackA(Context: Pointer; Notification: UINT;
Param1, Param2: UINT_PTR): UINT; stdcall;
{$EXTERNALSYM SetupDefaultQueueCallbackA}
function SetupDefaultQueueCallbackW(Context: Pointer; Notification: UINT;
Param1, Param2: UINT_PTR): UINT; stdcall;
{$EXTERNALSYM SetupDefaultQueueCallbackW}
function SetupDefaultQueueCallback(Context: Pointer; Notification: UINT;
Param1, Param2: UINT_PTR): UINT; stdcall;
{$EXTERNALSYM SetupDefaultQueueCallback}
//
// The INF may supply any arbitrary data type ordinal in the highword except
// for the following: REG_NONE, REG_SZ, REG_EXPAND_SZ, REG_MULTI_SZ. If this
// technique is used, then the data is given in binary format, one byte per
// field.
//
function SetupInstallFromInfSectionA(Owner: HWND; InfHandle: HINF;
const SectionName: PAnsiChar; Flags: UINT; RelativeKeyRoot: HKEY;
const SourceRootPath: PAnsiChar; CopyFlags: UINT; MsgHandler: TSPFileCallbackA;
Context: Pointer; DeviceInfoSet: HDEVINFO; DeviceIn: PSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupInstallFromInfSectionA}
function SetupInstallFromInfSectionW(Owner: HWND; InfHandle: HINF;
const SectionName: PWideChar; Flags: UINT; RelativeKeyRoot: HKEY;
const SourceRootPath: PWideChar; CopyFlags: UINT; MsgHandler: TSPFileCallbackW;
Context: Pointer; DeviceInfoSet: HDEVINFO; DeviceIn: PSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupInstallFromInfSectionW}
function SetupInstallFromInfSection(Owner: HWND; InfHandle: HINF;
const SectionName: PTSTR; Flags: UINT; RelativeKeyRoot: HKEY;
const SourceRootPath: PTSTR; CopyFlags: UINT; MsgHandler: TSPFileCallback;
Context: Pointer; DeviceInfoSet: HDEVINFO; DeviceIn: PSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupInstallFromInfSection}
function SetupInstallFilesFromInfSectionA(InfHandle: HINF; LayoutInfHandle: HINF;
FileQueue: HSPFILEQ; const SectionName, SourceRootPath: PAnsiChar;
CopyFlags: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupInstallFilesFromInfSectionA}
function SetupInstallFilesFromInfSectionW(InfHandle: HINF; LayoutInfHandle: HINF;
FileQueue: HSPFILEQ; const SectionName, SourceRootPath: PWideChar;
CopyFlags: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupInstallFilesFromInfSectionW}
function SetupInstallFilesFromInfSection(InfHandle: HINF; LayoutInfHandle: HINF;
FileQueue: HSPFILEQ; const SectionName, SourceRootPath: PTSTR;
CopyFlags: UINT): BOOL; stdcall;
{$EXTERNALSYM SetupInstallFilesFromInfSection}
function SetupInstallServicesFromInfSectionA(InfHandle: HINF;
const SectionName: PAnsiChar; Flags: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupInstallServicesFromInfSectionA}
function SetupInstallServicesFromInfSectionW(InfHandle: HINF;
const SectionName: PWideChar; Flags: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupInstallServicesFromInfSectionW}
function SetupInstallServicesFromInfSection(InfHandle: HINF;
const SectionName: PTSTR; Flags: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupInstallServicesFromInfSection}
function SetupInstallServicesFromInfSectionExA(InfHandle: HINF;
const SectionName: PAnsiChar; Flags: DWORD; DeviceInfoSet: HDEVINFO;
DeviceInfoData: TSPDevInfoData; Reserved1, Reserved2: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupInstallServicesFromInfSectionExA}
function SetupInstallServicesFromInfSectionExW(InfHandle: HINF;
const SectionName: PWideChar; Flags: DWORD; DeviceInfoSet: HDEVINFO;
DeviceInfoData: TSPDevInfoData; Reserved1, Reserved2: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupInstallServicesFromInfSectionExW}
function SetupInstallServicesFromInfSectionEx(InfHandle: HINF;
const SectionName: PTSTR; Flags: DWORD; DeviceInfoSet: HDEVINFO;
DeviceInfoData: TSPDevInfoData; Reserved1, Reserved2: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupInstallServicesFromInfSectionEx}
{$IFDEF WINXP_UP}
//
// High level routine, usually used via rundll32.dll
// to perform right-click install action on INFs
// May be called directly:
//
// wsprintf(CmdLineBuffer,TEXT("DefaultInstall 132 %s"),InfPath);
// InstallHinfSection(NULL,NULL,CmdLineBuffer,0);
//
procedure InstallHinfSectionA(Window: HWND; ModuleHandle: HINST;
CommandLine: PAnsiChar; ShowCommand: Integer); stdcall;
{$EXTERNALSYM InstallHinfSectionA}
procedure InstallHinfSectionW(Window: HWND; ModuleHandle: HINST;
CommandLine: PWideChar; ShowCommand: Integer); stdcall;
{$EXTERNALSYM InstallHinfSectionW}
procedure InstallHinfSection(Window: HWND; ModuleHandle: HINST;
CommandLine: PTSTR; ShowCommand: Integer); stdcall;
{$EXTERNALSYM InstallHinfSection}
{$ENDIF WINXP_UP}
//
// Define handle type for Setup file log.
//
type
HSPFILELOG = Pointer;
{$EXTERNALSYM HSPFILELOG}
function SetupInitializeFileLogA(const LogFileName: PAnsiChar; Flags: DWORD): HSPFILELOG; stdcall;
{$EXTERNALSYM SetupInitializeFileLogA}
function SetupInitializeFileLogW(const LogFileName: PWideChar; Flags: DWORD): HSPFILELOG; stdcall;
{$EXTERNALSYM SetupInitializeFileLogW}
function SetupInitializeFileLog(const LogFileName: PTSTR; Flags: DWORD): HSPFILELOG; stdcall;
{$EXTERNALSYM SetupInitializeFileLog}
function SetupTerminateFileLog(FileLogHandle: HSPFILELOG): BOOL; stdcall;
{$EXTERNALSYM SetupTerminateFileLog}
function SetupLogFileA(FileLogHandle: HSPFILELOG; const LogSectionName,
SourceFilename, TargetFilename: PAnsiChar; Checksum: DWORD; DiskTagfile,
DiskDescription, OtherInfo: PAnsiChar; Flags: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupLogFileA}
function SetupLogFileW(FileLogHandle: HSPFILELOG; const LogSectionName,
SourceFilename, TargetFilename: PWideChar; Checksum: DWORD; DiskTagfile,
DiskDescription, OtherInfo: PWideChar; Flags: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupLogFileW}
function SetupLogFile(FileLogHandle: HSPFILELOG; const LogSectionName,
SourceFilename, TargetFilename: PTSTR; Checksum: DWORD; DiskTagfile,
DiskDescription, OtherInfo: PTSTR; Flags: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupLogFile}
function SetupRemoveFileLogEntryA(FileLogHandle: HSPFILELOG;
const LogSectionName: PAnsiChar; const TargetFilename: PAnsiChar): BOOL; stdcall;
{$EXTERNALSYM SetupRemoveFileLogEntryA}
function SetupRemoveFileLogEntryW(FileLogHandle: HSPFILELOG;
const LogSectionName: PWideChar; const TargetFilename: PWideChar): BOOL; stdcall;
{$EXTERNALSYM SetupRemoveFileLogEntryW}
function SetupRemoveFileLogEntry(FileLogHandle: HSPFILELOG;
const LogSectionName: PTSTR; const TargetFilename: PTSTR): BOOL; stdcall;
{$EXTERNALSYM SetupRemoveFileLogEntry}
function SetupQueryFileLogA(FileLogHandle: HSPFILELOG; const LogSectionName,
TargetFilename: PAnsiChar; DesiredInfo: SetupFileLogInfo; DataOut: PAnsiChar;
ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupQueryFileLogA}
function SetupQueryFileLogW(FileLogHandle: HSPFILELOG; const LogSectionName,
TargetFilename: PWideChar; DesiredInfo: SetupFileLogInfo; DataOut: PWideChar;
ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupQueryFileLogW}
function SetupQueryFileLog(FileLogHandle: HSPFILELOG; const LogSectionName,
TargetFilename: PTSTR; DesiredInfo: SetupFileLogInfo; DataOut: PTSTR;
ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupQueryFileLog}
//
// Text logging APIs
//
function SetupOpenLog(Erase: BOOL): BOOL; stdcall;
{$EXTERNALSYM SetupOpenLog}
function SetupLogErrorA(const MessageString: PAnsiChar; Severity: LOGSEVERITY): BOOL; stdcall;
{$EXTERNALSYM SetupLogErrorA}
function SetupLogErrorW(const MessageString: PWideChar; Severity: LOGSEVERITY): BOOL; stdcall;
{$EXTERNALSYM SetupLogErrorW}
function SetupLogError(const MessageString: PTSTR; Severity: LOGSEVERITY): BOOL; stdcall;
{$EXTERNALSYM SetupLogError}
procedure SetupCloseLog; stdcall;
{$EXTERNALSYM SetupCloseLog}
//
// Backup Information API's
//
{$IFDEF WIN2000_UP}
function SetupGetBackupInformationA(QueueHandle: HSPFILEQ;
var BackupParams: TSPBackupQueueParamsA): BOOL; stdcall;
{$EXTERNALSYM SetupGetBackupInformationA}
function SetupGetBackupInformationW(QueueHandle: HSPFILEQ;
var BackupParams: TSPBackupQueueParamsW): BOOL; stdcall;
{$EXTERNALSYM SetupGetBackupInformationW}
function SetupGetBackupInformation(QueueHandle: HSPFILEQ;
var BackupParams: TSPBackupQueueParams): BOOL; stdcall;
{$EXTERNALSYM SetupGetBackupInformation}
{$ENDIF WIN2000_UP}
{$IFDEF WINXP_UP}
function SetupPrepareQueueForRestoreA(QueueHandle: HSPFILEQ;
BackupPath: PAnsiChar; RestoreFlags: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupPrepareQueueForRestoreA}
function SetupPrepareQueueForRestoreW(QueueHandle: HSPFILEQ;
BackupPath: PWideChar; RestoreFlags: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupPrepareQueueForRestoreW}
function SetupPrepareQueueForRestore(QueueHandle: HSPFILEQ;
BackupPath: PTSTR; RestoreFlags: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupPrepareQueueForRestore}
//
// Control forcing of Non-Interactive Mode
// Overridden if SetupAPI is run in non-interactive window session
//
function SetupSetNonInteractiveMode(NonInteractiveFlag: BOOL): BOOL; stdcall;
{$EXTERNALSYM SetupSetNonInteractiveMode}
function SetupGetNonInteractiveMode: BOOL; stdcall;
{$EXTERNALSYM SetupGetNonInteractiveMode}
{$ENDIF WINXP_UP}
//
// Device Installer APIs
//
function SetupDiCreateDeviceInfoList(ClassGuid: PGUID; hwndParent: HWND): HDEVINFO; stdcall;
{$EXTERNALSYM SetupDiCreateDeviceInfoList}
function SetupDiCreateDeviceInfoListExA(ClassGuid: PGUID; hwndParent: HWND;
const MachineName: PAnsiChar; Reserved: Pointer): HDEVINFO; stdcall;
{$EXTERNALSYM SetupDiCreateDeviceInfoListExA}
function SetupDiCreateDeviceInfoListExW(ClassGuid: PGUID; hwndParent: HWND;
const MachineName: PWideChar; Reserved: Pointer): HDEVINFO; stdcall;
{$EXTERNALSYM SetupDiCreateDeviceInfoListExW}
function SetupDiCreateDeviceInfoListEx(ClassGuid: PGUID; hwndParent: HWND;
const MachineName: PTSTR; Reserved: Pointer): HDEVINFO; stdcall;
{$EXTERNALSYM SetupDiCreateDeviceInfoListEx}
function SetupDiGetDeviceInfoListClass(DeviceInfoSet: HDEVINFO;
var ClassGuid: TGUID): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetDeviceInfoListClass}
function SetupDiGetDeviceInfoListDetailA(DeviceInfoSet: HDEVINFO;
var DeviceInfoSetDetailData: TSPDevInfoListDetailDataA): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetDeviceInfoListDetailA}
function SetupDiGetDeviceInfoListDetailW(DeviceInfoSet: HDEVINFO;
var DeviceInfoSetDetailData: TSPDevInfoListDetailDataW): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetDeviceInfoListDetailW}
function SetupDiGetDeviceInfoListDetail(DeviceInfoSet: HDEVINFO;
var DeviceInfoSetDetailData: TSPDevInfoListDetailData): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetDeviceInfoListDetail}
function SetupDiCreateDeviceInfoA(DeviceInfoSet: HDEVINFO; const DeviceName: PAnsiChar;
var ClassGuid: TGUID; const DeviceDescription: PAnsiChar; hwndParent: HWND;
CreationFlags: DWORD; DeviceInfoData: PSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiCreateDeviceInfoA}
function SetupDiCreateDeviceInfoW(DeviceInfoSet: HDEVINFO; const DeviceName: PWideChar;
var ClassGuid: TGUID; const DeviceDescription: PWideChar; hwndParent: HWND;
CreationFlags: DWORD; DeviceInfoData: PSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiCreateDeviceInfoW}
function SetupDiCreateDeviceInfo(DeviceInfoSet: HDEVINFO; const DeviceName: PTSTR;
var ClassGuid: TGUID; const DeviceDescription: PTSTR; hwndParent: HWND;
CreationFlags: DWORD; DeviceInfoData: PSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiCreateDeviceInfo}
function SetupDiOpenDeviceInfoA(DeviceInfoSet: HDEVINFO;
const DeviceInstanceId: PAnsiChar; hwndParent: HWND; OpenFlags: DWORD;
DeviceInfoData: PSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiOpenDeviceInfoA}
function SetupDiOpenDeviceInfoW(DeviceInfoSet: HDEVINFO;
const DeviceInstanceId: PWideChar; hwndParent: HWND; OpenFlags: DWORD;
DeviceInfoData: PSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiOpenDeviceInfoW}
function SetupDiOpenDeviceInfo(DeviceInfoSet: HDEVINFO;
const DeviceInstanceId: PTSTR; hwndParent: HWND; OpenFlags: DWORD;
DeviceInfoData: PSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiOpenDeviceInfo}
function SetupDiGetDeviceInstanceIdA(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; DeviceInstanceId: PAnsiChar;
DeviceInstanceIdSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetDeviceInstanceIdA}
function SetupDiGetDeviceInstanceIdW(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; DeviceInstanceId: PWideChar;
DeviceInstanceIdSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetDeviceInstanceIdW}
function SetupDiGetDeviceInstanceId(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; DeviceInstanceId: PTSTR;
DeviceInstanceIdSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetDeviceInstanceId}
function SetupDiDeleteDeviceInfo(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiDeleteDeviceInfo}
function SetupDiEnumDeviceInfo(DeviceInfoSet: HDEVINFO;
MemberIndex: DWORD; var DeviceInfoData: TSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiEnumDeviceInfo}
function SetupDiDestroyDeviceInfoList(DeviceInfoSet: HDEVINFO): BOOL; stdcall;
{$EXTERNALSYM SetupDiDestroyDeviceInfoList}
function SetupDiEnumDeviceInterfaces(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; const InterfaceClassGuid: TGUID;
MemberIndex: DWORD; var DeviceInterfaceData: TSPDeviceInterfaceData): BOOL; stdcall;
{$EXTERNALSYM SetupDiEnumDeviceInterfaces}
//
// Backward compatibility--do not use
//
function SetupDiEnumInterfaceDevice(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; const InterfaceClassGuid: TGUID;
MemberIndex: DWORD; var DeviceInterfaceData: TSPDeviceInterfaceData): BOOL; stdcall;
{$EXTERNALSYM SetupDiEnumDeviceInterfaces}
function SetupDiCreateDeviceInterfaceA(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; var InterfaceClassGuid: TGUID;
const ReferenceString: PAnsiChar; CreationFlags: DWORD;
DeviceInterfaceData: PSPDeviceInterfaceData): BOOL; stdcall;
{$EXTERNALSYM SetupDiCreateDeviceInterfaceA}
function SetupDiCreateDeviceInterfaceW(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; var InterfaceClassGuid: TGUID;
const ReferenceString: PWideChar; CreationFlags: DWORD;
DeviceInterfaceData: PSPDeviceInterfaceData): BOOL; stdcall;
{$EXTERNALSYM SetupDiCreateDeviceInterfaceW}
function SetupDiCreateDeviceInterface(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; var InterfaceClassGuid: TGUID;
const ReferenceString: PTSTR; CreationFlags: DWORD;
DeviceInterfaceData: PSPDeviceInterfaceData): BOOL; stdcall;
{$EXTERNALSYM SetupDiCreateDeviceInterface}
//
// Backward compatibility--do not use.
//
function SetupDiCreateInterfaceDeviceA(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; var InterfaceClassGuid: TGUID;
const ReferenceString: PAnsiChar; CreationFlags: DWORD;
DeviceInterfaceData: PSPDeviceInterfaceData): BOOL; stdcall;
{$EXTERNALSYM SetupDiCreateInterfaceDeviceA}
function SetupDiCreateInterfaceDeviceW(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; var InterfaceClassGuid: TGUID;
const ReferenceString: PWideChar; CreationFlags: DWORD;
DeviceInterfaceData: PSPDeviceInterfaceData): BOOL; stdcall;
{$EXTERNALSYM SetupDiCreateInterfaceDeviceW}
function SetupDiCreateInterfaceDevice(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; var InterfaceClassGuid: TGUID;
const ReferenceString: PTSTR; CreationFlags: DWORD;
DeviceInterfaceData: PSPDeviceInterfaceData): BOOL; stdcall;
{$EXTERNALSYM SetupDiCreateInterfaceDevice}
function SetupDiOpenDeviceInterfaceA(DeviceInfoSet: HDEVINFO;
const DevicePath: PAnsiChar; OpenFlags: DWORD;
DeviceInterfaceData: PSPDeviceInterfaceData): BOOL; stdcall;
{$EXTERNALSYM SetupDiOpenDeviceInterfaceA}
function SetupDiOpenDeviceInterfaceW(DeviceInfoSet: HDEVINFO;
const DevicePath: PWideChar; OpenFlags: DWORD;
DeviceInterfaceData: PSPDeviceInterfaceData): BOOL; stdcall;
{$EXTERNALSYM SetupDiOpenDeviceInterfaceW}
function SetupDiOpenDeviceInterface(DeviceInfoSet: HDEVINFO;
const DevicePath: PTSTR; OpenFlags: DWORD;
DeviceInterfaceData: PSPDeviceInterfaceData): BOOL; stdcall;
{$EXTERNALSYM SetupDiOpenDeviceInterface}
//
// Backward compatibility--do not use
//
function SetupDiOpenInterfaceDeviceA(DeviceInfoSet: HDEVINFO;
const DevicePath: PAnsiChar; OpenFlags: DWORD;
DeviceInterfaceData: PSPDeviceInterfaceData): BOOL; stdcall;
{$EXTERNALSYM SetupDiOpenInterfaceDeviceA}
function SetupDiOpenInterfaceDeviceW(DeviceInfoSet: HDEVINFO;
const DevicePath: PWideChar; OpenFlags: DWORD;
DeviceInterfaceData: PSPDeviceInterfaceData): BOOL; stdcall;
{$EXTERNALSYM SetupDiOpenInterfaceDeviceW}
function SetupDiOpenInterfaceDevice(DeviceInfoSet: HDEVINFO;
const DevicePath: PTSTR; OpenFlags: DWORD;
DeviceInterfaceData: PSPDeviceInterfaceData): BOOL; stdcall;
{$EXTERNALSYM SetupDiOpenInterfaceDevice}
function SetupDiGetDeviceInterfaceAlias(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData; var AliasInterfaceClassGuid: TGUID;
var AliasDeviceInterfaceData: TSPDeviceInterfaceData): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetDeviceInterfaceAlias}
//
// Backward compatibility--do not use.
//
function SetupDiGetInterfaceDeviceAlias(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData;
var AliasInterfaceClassGuid: TGUID;
var AliasDeviceInterfaceData: TSPDeviceInterfaceData): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetInterfaceDeviceAlias}
function SetupDiDeleteDeviceInterfaceData(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData): BOOL; stdcall;
{$EXTERNALSYM SetupDiDeleteDeviceInterfaceData}
//
// Backward compatibility--do not use.
//
function SetupDiDeleteInterfaceDeviceData(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData): BOOL; stdcall;
{$EXTERNALSYM SetupDiDeleteInterfaceDeviceData}
function SetupDiRemoveDeviceInterface(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData): BOOL; stdcall;
{$EXTERNALSYM SetupDiRemoveDeviceInterface}
//
// Backward compatibility--do not use.
//
function SetupDiRemoveInterfaceDevice(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData): BOOL; stdcall;
{$EXTERNALSYM SetupDiRemoveInterfaceDevice}
function SetupDiGetDeviceInterfaceDetailA(DeviceInfoSet: HDEVINFO;
DeviceInterfaceData: PSPDeviceInterfaceData;
DeviceInterfaceDetailData: PSPDeviceInterfaceDetailDataA;
DeviceInterfaceDetailDataSize: DWORD; var RequiredSize: DWORD;
Device: PSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetDeviceInterfaceDetailA}
function SetupDiGetDeviceInterfaceDetailW(DeviceInfoSet: HDEVINFO;
DeviceInterfaceData: PSPDeviceInterfaceData;
DeviceInterfaceDetailData: PSPDeviceInterfaceDetailDataW;
DeviceInterfaceDetailDataSize: DWORD; var RequiredSize: DWORD;
Device: PSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetDeviceInterfaceDetailW}
function SetupDiGetDeviceInterfaceDetail(DeviceInfoSet: HDEVINFO;
DeviceInterfaceData: PSPDeviceInterfaceData;
DeviceInterfaceDetailData: PSPDeviceInterfaceDetailData;
DeviceInterfaceDetailDataSize: DWORD; var RequiredSize: DWORD;
Device: PSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetDeviceInterfaceDetail}
//
// Backward compatibility--do not use.
//
function SetupDiGetInterfaceDeviceDetailA(DeviceInfoSet: HDEVINFO;
DeviceInterfaceData: PSPDeviceInterfaceData;
DeviceInterfaceDetailData: PSPDeviceInterfaceDetailDataA;
DeviceInterfaceDetailDataSize: DWORD; RequiredSize: PDWORD;
Device: PSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetInterfaceDeviceDetailA}
function SetupDiGetInterfaceDeviceDetailW(DeviceInfoSet: HDEVINFO;
DeviceInterfaceData: PSPDeviceInterfaceData;
DeviceInterfaceDetailData: PSPDeviceInterfaceDetailDataW;
DeviceInterfaceDetailDataSize: DWORD; RequiredSize: PDWORD;
Device: PSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetInterfaceDeviceDetailW}
function SetupDiGetInterfaceDeviceDetail(DeviceInfoSet: HDEVINFO;
DeviceInterfaceData: PSPDeviceInterfaceData;
DeviceInterfaceDetailData: PSPDeviceInterfaceDetailData;
DeviceInterfaceDetailDataSize: DWORD; RequiredSize: PDWORD;
Device: PSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetInterfaceDeviceDetail}
//
// Default install handler for DIF_INSTALLINTERFACES.
//
function SetupDiInstallDeviceInterfaces(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiInstallDeviceInterfaces}
//
// Backward compatibility--do not use.
//
function SetupDiInstallInterfaceDevices(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiInstallInterfaceDevices}
{$IFDEF WINXP_UP}
function SetupDiSetDeviceInterfaceDefault(DeviceInfoSet: HDEVINFO
var DeviceInterfaceData: TSPDeviceInterfaceData; Flags: DWORD;
Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiSetDeviceInterfaceDefault}
{$ENDIF WINXP_UP}
//
// Default install handler for DIF_REGISTERDEVICE
//
function SetupDiRegisterDeviceInfo(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; Flags: DWORD; CompareProc: TSPDetSigCmpProc;
CompareContext: Pointer; DupDeviceInfoData: PSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiRegisterDeviceInfo}
function SetupDiBuildDriverInfoList(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; DriverType: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiBuildDriverInfoList}
function SetupDiCancelDriverInfoSearch(DeviceInfoSet: HDEVINFO): BOOL; stdcall;
{$EXTERNALSYM SetupDiCancelDriverInfoSearch}
function SetupDiEnumDriverInfoA(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; DriverType: DWORD; MemberIndex: DWORD;
var DriverInfoData: TSPDrvInfoDataA): BOOL; stdcall;
{$EXTERNALSYM SetupDiEnumDriverInfoA}
function SetupDiEnumDriverInfoW(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; DriverType: DWORD; MemberIndex: DWORD;
var DriverInfoData: TSPDrvInfoDataW): BOOL; stdcall;
{$EXTERNALSYM SetupDiEnumDriverInfoW}
function SetupDiEnumDriverInfo(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; DriverType: DWORD; MemberIndex: DWORD;
var DriverInfoData: TSPDrvInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiEnumDriverInfo}
function SetupDiGetSelectedDriverA(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var DriverInfoData: TSPDrvInfoDataA): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetSelectedDriverA}
function SetupDiGetSelectedDriverW(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var DriverInfoData: TSPDrvInfoDataW): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetSelectedDriverW}
function SetupDiGetSelectedDriver(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var DriverInfoData: TSPDrvInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetSelectedDriver}
function SetupDiSetSelectedDriverA(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; DriverInfoData: PSPDrvInfoDataA): BOOL; stdcall;
{$EXTERNALSYM SetupDiSetSelectedDriverA}
function SetupDiSetSelectedDriverW(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; DriverInfoData: PSPDrvInfoDataW): BOOL; stdcall;
{$EXTERNALSYM SetupDiSetSelectedDriverW}
function SetupDiSetSelectedDriver(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; DriverInfoData: PSPDrvInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiSetSelectedDriver}
function SetupDiGetDriverInfoDetailA(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var DriverInfoData: TSPDrvInfoDataA;
DriverInfoDetailData: PSPDrvInfoDetailDataA; DriverInfoDetailDataSize: DWORD;
RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetDriverInfoDetailA}
function SetupDiGetDriverInfoDetailW(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var DriverInfoData: TSPDrvInfoDataW;
DriverInfoDetailData: PSPDrvInfoDetailDataW; DriverInfoDetailDataSize: DWORD;
RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetDriverInfoDetailW}
function SetupDiGetDriverInfoDetail(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var DriverInfoData: TSPDrvInfoData;
DriverInfoDetailData: PSPDrvInfoDetailData; DriverInfoDetailDataSize: DWORD;
RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetDriverInfoDetail}
function SetupDiDestroyDriverInfoList(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; DriverType: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiDestroyDriverInfoList}
function SetupDiGetClassDevsA(ClassGuid: PGUID; const Enumerator: PAnsiChar;
hwndParent: HWND; Flags: DWORD): HDEVINFO; stdcall;
{$EXTERNALSYM SetupDiGetClassDevsA}
function SetupDiGetClassDevsW(ClassGuid: PGUID; const Enumerator: PWideChar;
hwndParent: HWND; Flags: DWORD): HDEVINFO; stdcall;
{$EXTERNALSYM SetupDiGetClassDevsW}
function SetupDiGetClassDevs(ClassGuid: PGUID; const Enumerator: PTSTR;
hwndParent: HWND; Flags: DWORD): HDEVINFO; stdcall;
{$EXTERNALSYM SetupDiGetClassDevs}
function SetupDiGetClassDevsExA(ClassGuid: PGUID; const Enumerator: PAnsiChar;
hwndParent: HWND; Flags: DWORD; DeviceInfoSet: HDEVINFO; const MachineName: PAnsiChar;
Reserved: Pointer): HDEVINFO; stdcall;
{$EXTERNALSYM SetupDiGetClassDevsExA}
function SetupDiGetClassDevsExW(ClassGuid: PGUID; const Enumerator: PWideChar;
hwndParent: HWND; Flags: DWORD; DeviceInfoSet: HDEVINFO; const MachineName: PWideChar;
Reserved: Pointer): HDEVINFO; stdcall;
{$EXTERNALSYM SetupDiGetClassDevsExW}
function SetupDiGetClassDevsEx(ClassGuid: PGUID; const Enumerator: PTSTR;
hwndParent: HWND; Flags: DWORD; DeviceInfoSet: HDEVINFO; const MachineName: PTSTR;
Reserved: Pointer): HDEVINFO; stdcall;
{$EXTERNALSYM SetupDiGetClassDevsEx}
function SetupDiGetINFClassA(const InfName: PAnsiChar; var ClassGuid: TGUID;
ClassName: PAnsiChar; ClassNameSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetINFClassA}
function SetupDiGetINFClassW(const InfName: PWideChar; var ClassGuid: TGUID;
ClassName: PWideChar; ClassNameSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetINFClassW}
function SetupDiGetINFClass(const InfName: PTSTR; var ClassGuid: TGUID;
ClassName: PTSTR; ClassNameSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetINFClass}
function SetupDiBuildClassInfoList(Flags: DWORD; ClassGuidList: PGUID;
ClassGuidListSize: DWORD; var RequiredSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiBuildClassInfoList}
function SetupDiBuildClassInfoListExA(Flags: DWORD; ClassGuidList: PGUID;
ClassGuidListSize: DWORD; var RequiredSize: DWORD; const MachineName: PAnsiChar;
Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiBuildClassInfoListExA}
function SetupDiBuildClassInfoListExW(Flags: DWORD; ClassGuidList: PGUID;
ClassGuidListSize: DWORD; var RequiredSize: DWORD; const MachineName: PWideChar;
Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiBuildClassInfoListExW}
function SetupDiBuildClassInfoListEx(Flags: DWORD; ClassGuidList: PGUID;
ClassGuidListSize: DWORD; var RequiredSize: DWORD; const MachineName: PTSTR;
Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiBuildClassInfoListEx}
function SetupDiGetClassDescriptionA(var ClassGuid: TGUID; ClassDescription: PAnsiChar;
ClassDescriptionSize: DWORD; var RequiredSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetClassDescriptionA}
function SetupDiGetClassDescriptionW(var ClassGuid: TGUID; ClassDescription: PWideChar;
ClassDescriptionSize: DWORD; var RequiredSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetClassDescriptionW}
function SetupDiGetClassDescription(var ClassGuid: TGUID; ClassDescription: PTSTR;
ClassDescriptionSize: DWORD; var RequiredSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetClassDescription}
function SetupDiGetClassDescriptionExA(var ClassGuid: TGUID;
ClassDescription: PAnsiChar; ClassDescriptionSize: DWORD; var RequiredSize: DWORD;
const MachineName: PAnsiChar; Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetClassDescriptionExA}
function SetupDiGetClassDescriptionExW(var ClassGuid: TGUID;
ClassDescription: PWideChar; ClassDescriptionSize: DWORD; var RequiredSize: DWORD;
const MachineName: PWideChar; Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetClassDescriptionExW}
function SetupDiGetClassDescriptionEx(var ClassGuid: TGUID;
ClassDescription: PTSTR; ClassDescriptionSize: DWORD; var RequiredSize: DWORD;
const MachineName: PTSTR; Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetClassDescriptionEx}
function SetupDiCallClassInstaller(InstallFunction: DI_FUNCTION;
DeviceInfoSet: HDEVINFO; DeviceInfoData: PSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiCallClassInstaller}
//
// Default install handler for DIF_SELECTDEVICE
//
function SetupDiSelectDevice(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiSelectDevice}
//
// Default install handler for DIF_SELECTBESTCOMPATDRV
//
function SetupDiSelectBestCompatDrv(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiSelectBestCompatDrv}
//
// Default install handler for DIF_INSTALLDEVICE
//
function SetupDiInstallDevice(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiInstallDevice}
//
// Default install handler for DIF_INSTALLDEVICEFILES
//
function SetupDiInstallDriverFiles(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiInstallDriverFiles}
//
// Default install handler for DIF_REGISTER_COINSTALLERS
//
function SetupDiRegisterCoDeviceInstallers(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiRegisterCoDeviceInstallers}
//
// Default install handler for DIF_REMOVE
//
function SetupDiRemoveDevice(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiRemoveDevice}
//
// Default install handler for DIF_UNREMOVE
//
function SetupDiUnremoveDevice(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiUnremoveDevice}
//
// Default install handler for DIF_MOVEDEVICE
//
function SetupDiMoveDuplicateDevice(DeviceInfoSet: HDEVINFO;
var DestinationDeviceInfoData: TSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiMoveDuplicateDevice}
//
// Default install handler for DIF_PROPERTYCHANGE
//
function SetupDiChangeState(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiChangeState}
function SetupDiInstallClassA(hwndParent: HWND; const InfFileName: PAnsiChar;
Flags: DWORD; FileQueue: HSPFILEQ): BOOL; stdcall;
{$EXTERNALSYM SetupDiInstallClassA}
function SetupDiInstallClassW(hwndParent: HWND; const InfFileName: PWideChar;
Flags: DWORD; FileQueue: HSPFILEQ): BOOL; stdcall;
{$EXTERNALSYM SetupDiInstallClassW}
function SetupDiInstallClass(hwndParent: HWND; const InfFileName: PTSTR;
Flags: DWORD; FileQueue: HSPFILEQ): BOOL; stdcall;
{$EXTERNALSYM SetupDiInstallClass}
function SetupDiInstallClassExA(hwndParent: HWND; const InfFileName: PAnsiChar;
Flags: DWORD; FileQueue: HSPFILEQ; InterfaceClassGuid: PGUID; Reserved1,
Reserved2: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiInstallClassExA}
function SetupDiInstallClassExW(hwndParent: HWND; const InfFileName: PWideChar;
Flags: DWORD; FileQueue: HSPFILEQ; InterfaceClassGuid: PGUID; Reserved1,
Reserved2: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiInstallClassExW}
function SetupDiInstallClassEx(hwndParent: HWND; const InfFileName: PTSTR;
Flags: DWORD; FileQueue: HSPFILEQ; InterfaceClassGuid: PGUID; Reserved1,
Reserved2: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiInstallClassEx}
function SetupDiOpenClassRegKey(ClassGuid: PGUID; samDesired: REGSAM): HKEY; stdcall;
{$EXTERNALSYM SetupDiOpenClassRegKey}
function SetupDiOpenClassRegKeyExA(ClassGuid: PGUID; samDesired: REGSAM;
Flags: DWORD; const MachineName: PAnsiChar; Reserved: Pointer): HKEY; stdcall;
{$EXTERNALSYM SetupDiOpenClassRegKeyExA}
function SetupDiOpenClassRegKeyExW(ClassGuid: PGUID; samDesired: REGSAM;
Flags: DWORD; const MachineName: PWideChar; Reserved: Pointer): HKEY; stdcall;
{$EXTERNALSYM SetupDiOpenClassRegKeyExW}
function SetupDiOpenClassRegKeyEx(ClassGuid: PGUID; samDesired: REGSAM;
Flags: DWORD; const MachineName: PTSTR; Reserved: Pointer): HKEY; stdcall;
{$EXTERNALSYM SetupDiOpenClassRegKeyEx}
function SetupDiCreateDeviceInterfaceRegKeyA(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData; Reserved: DWORD;
samDesired: REGSAM; InfHandle: HINF; const InfSectionName: PAnsiChar): HKEY; stdcall;
{$EXTERNALSYM SetupDiCreateDeviceInterfaceRegKeyA}
function SetupDiCreateDeviceInterfaceRegKeyW(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData; Reserved: DWORD;
samDesired: REGSAM; InfHandle: HINF; const InfSectionName: PWideChar): HKEY; stdcall;
{$EXTERNALSYM SetupDiCreateDeviceInterfaceRegKeyW}
function SetupDiCreateDeviceInterfaceRegKey(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData; Reserved: DWORD;
samDesired: REGSAM; InfHandle: HINF; const InfSectionName: PTSTR): HKEY; stdcall;
{$EXTERNALSYM SetupDiCreateDeviceInterfaceRegKey}
//
// Backward compatibility--do not use.
//
function SetupDiCreateInterfaceDeviceRegKeyA(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData; Reserved: DWORD;
samDesired: REGSAM; InfHandle: HINF; const InfSectionName: PAnsiChar): HKEY; stdcall;
{$EXTERNALSYM SetupDiCreateInterfaceDeviceRegKeyA}
function SetupDiCreateInterfaceDeviceRegKeyW(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData; Reserved: DWORD;
samDesired: REGSAM; InfHandle: HINF; const InfSectionName: PWideChar): HKEY; stdcall;
{$EXTERNALSYM SetupDiCreateInterfaceDeviceRegKeyW}
function SetupDiCreateInterfaceDeviceRegKey(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData; Reserved: DWORD;
samDesired: REGSAM; InfHandle: HINF; const InfSectionName: PTSTR): HKEY; stdcall;
{$EXTERNALSYM SetupDiCreateInterfaceDeviceRegKey}
function SetupDiOpenDeviceInterfaceRegKey(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData; Reserved: DWORD;
samDesired: REGSAM): HKEY; stdcall;
{$EXTERNALSYM SetupDiOpenDeviceInterfaceRegKey}
//
// Backward compatibility--do not use.
//
function SetupDiOpenInterfaceDeviceRegKey(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData; Reserved: DWORD;
samDesired: REGSAM): HKEY; stdcall;
{$EXTERNALSYM SetupDiOpenInterfaceDeviceRegKey}
function SetupDiDeleteDeviceInterfaceRegKey(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData; Reserved: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiDeleteDeviceInterfaceRegKey}
//
// Backward compatibility--do not use.
//
function SetupDiDeleteInterfaceDeviceRegKey(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData; Reserved: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiDeleteInterfaceDeviceRegKey}
function SetupDiCreateDevRegKeyA(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; Scope, HwProfile, KeyType: DWORD;
InfHandle: HINF; const InfSectionName: PAnsiChar): HKEY; stdcall;
{$EXTERNALSYM SetupDiCreateDevRegKeyA}
function SetupDiCreateDevRegKeyW(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; Scope, HwProfile, KeyType: DWORD;
InfHandle: HINF; const InfSectionName: PWideChar): HKEY; stdcall;
{$EXTERNALSYM SetupDiCreateDevRegKeyW}
function SetupDiCreateDevRegKey(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; Scope, HwProfile, KeyType: DWORD;
InfHandle: HINF; const InfSectionName: PTSTR): HKEY; stdcall;
{$EXTERNALSYM SetupDiCreateDevRegKey}
function SetupDiOpenDevRegKey(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; Scope, HwProfile, KeyType: DWORD;
samDesired: REGSAM): HKEY; stdcall;
{$EXTERNALSYM SetupDiOpenDevRegKey}
function SetupDiDeleteDevRegKey(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; Scope, HwProfile,
KeyType: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiDeleteDevRegKey}
function SetupDiGetHwProfileList(HwProfileList: PDWORD; HwProfileListSize: DWORD;
var RequiredSize: DWORD; CurrentlyActiveIndex: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetHwProfileList}
function SetupDiGetHwProfileListExA(HwProfileList: PDWORD;
HwProfileListSize: DWORD; var RequiredSize: DWORD; CurrentlyActiveIndex: PDWORD;
const MachineName: PAnsiChar; Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetHwProfileListExA}
function SetupDiGetHwProfileListExW(HwProfileList: PDWORD;
HwProfileListSize: DWORD; var RequiredSize: DWORD; CurrentlyActiveIndex: PDWORD;
const MachineName: PWideChar; Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetHwProfileListExW}
function SetupDiGetHwProfileListEx(HwProfileList: PDWORD;
HwProfileListSize: DWORD; var RequiredSize: DWORD; CurrentlyActiveIndex: PDWORD;
const MachineName: PTSTR; Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetHwProfileListEx}
function SetupDiGetDeviceRegistryPropertyA(DeviceInfoSet: HDEVINFO;
const DeviceInfoData: TSPDevInfoData; Property_: DWORD;
var PropertyRegDataType: DWORD; PropertyBuffer: PBYTE; PropertyBufferSize: DWORD;
var RequiredSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetDeviceRegistryPropertyA}
function SetupDiGetDeviceRegistryPropertyW(DeviceInfoSet: HDEVINFO;
const DeviceInfoData: TSPDevInfoData; Property_: DWORD;
var PropertyRegDataType: DWORD; PropertyBuffer: PBYTE; PropertyBufferSize: DWORD;
var RequiredSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetDeviceRegistryPropertyW}
function SetupDiGetDeviceRegistryProperty(DeviceInfoSet: HDEVINFO;
const DeviceInfoData: TSPDevInfoData; Property_: DWORD;
var PropertyRegDataType: DWORD; PropertyBuffer: PBYTE; PropertyBufferSize: DWORD;
var RequiredSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetDeviceRegistryProperty}
{$IFDEF WINXP_UP}
function SetupDiGetClassRegistryPropertyA(const ClassGuid: TGUID;
Property_: DWORD; PropertyRegDataType: PDWORD; PropertyBuffer: PBYTE;
PropertyBufferSize: DWORD; RequiredSize: PDWORD; const MachineName: PAnsiChar;
Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetClassRegistryPropertyA}
function SetupDiGetClassRegistryPropertyW(const ClassGuid: TGUID;
Property_: DWORD; PropertyRegDataType: PDWORD; PropertyBuffer: PBYTE;
PropertyBufferSize: DWORD; RequiredSize: PDWORD; const MachineName: PWideChar;
Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetClassRegistryPropertyW}
function SetupDiGetClassRegistryProperty(const ClassGuid: TGUID;
Property_: DWORD; PropertyRegDataType: PDWORD; PropertyBuffer: PBYTE;
PropertyBufferSize: DWORD; RequiredSize: PDWORD; const MachineName: PTSTR;
Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetClassRegistryProperty}
{$ENDIF WINXP_UP}
function SetupDiSetDeviceRegistryPropertyA(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; Property_: DWORD;
const PropertyBuffer: PBYTE; PropertyBufferSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiSetDeviceRegistryPropertyA}
function SetupDiSetDeviceRegistryPropertyW(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; Property_: DWORD;
const PropertyBuffer: PBYTE; PropertyBufferSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiSetDeviceRegistryPropertyW}
function SetupDiSetDeviceRegistryProperty(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; Property_: DWORD;
const PropertyBuffer: PBYTE; PropertyBufferSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiSetDeviceRegistryProperty}
{$IFDEF WINXP_UP}
function SetupDiSetClassRegistryPropertyA(const ClassGuid: TGUID;
Property_: DWORD; const PropertyBuffer: PBYTE; PropertyBufferSize: DWORD;
const MachineName: PAnsiChar; Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiSetClassRegistryPropertyA}
function SetupDiSetClassRegistryPropertyW(const ClassGuid: TGUID;
Property_: DWORD; const PropertyBuffer: PBYTE; PropertyBufferSize: DWORD;
const MachineName: PWideChar; Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiSetClassRegistryPropertyW}
function SetupDiSetClassRegistryProperty(const ClassGuid: TGUID;
Property_: DWORD; const PropertyBuffer: PBYTE; PropertyBufferSize: DWORD;
const MachineName: PTSTR; Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiSetClassRegistryProperty}
{$ENDIF WINXP_UP}
function SetupDiGetDeviceInstallParamsA(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData;
var DeviceInstallParams: TSPDevInstallParamsA): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetDeviceInstallParamsA}
function SetupDiGetDeviceInstallParamsW(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData;
var DeviceInstallParams: TSPDevInstallParamsW): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetDeviceInstallParamsW}
function SetupDiGetDeviceInstallParams(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData;
var DeviceInstallParams: TSPDevInstallParams): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetDeviceInstallParams}
function SetupDiGetClassInstallParamsA(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; ClassInstallParams: PSPClassInstallHeader;
ClassInstallParamsSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetClassInstallParamsA}
function SetupDiGetClassInstallParamsW(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; ClassInstallParams: PSPClassInstallHeader;
ClassInstallParamsSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetClassInstallParamsW}
function SetupDiGetClassInstallParams(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; ClassInstallParams: PSPClassInstallHeader;
ClassInstallParamsSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetClassInstallParams}
function SetupDiSetDeviceInstallParamsA(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData;
var DeviceInstallParams: TSPDevInstallParamsA): BOOL; stdcall;
{$EXTERNALSYM SetupDiSetDeviceInstallParamsA}
function SetupDiSetDeviceInstallParamsW(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData;
var DeviceInstallParams: TSPDevInstallParamsW): BOOL; stdcall;
{$EXTERNALSYM SetupDiSetDeviceInstallParamsW}
function SetupDiSetDeviceInstallParams(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData;
var DeviceInstallParams: TSPDevInstallParams): BOOL; stdcall;
{$EXTERNALSYM SetupDiSetDeviceInstallParams}
function SetupDiSetClassInstallParamsA(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; ClassInstallParams: PSPClassInstallHeader;
ClassInstallParamsSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiSetClassInstallParamsA}
function SetupDiSetClassInstallParamsW(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; ClassInstallParams: PSPClassInstallHeader;
ClassInstallParamsSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiSetClassInstallParamsW}
function SetupDiSetClassInstallParams(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; ClassInstallParams: PSPClassInstallHeader;
ClassInstallParamsSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiSetClassInstallParams}
function SetupDiGetDriverInstallParamsA(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var DriverInfoData: TSPDrvInfoDataA;
var DriverInstallParams: TSPDrvInstallParams): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetDriverInstallParamsA}
function SetupDiGetDriverInstallParamsW(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var DriverInfoData: TSPDrvInfoDataW;
var DriverInstallParams: TSPDrvInstallParams): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetDriverInstallParamsW}
function SetupDiGetDriverInstallParams(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var DriverInfoData: TSPDrvInfoData;
var DriverInstallParams: TSPDrvInstallParams): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetDriverInstallParams}
function SetupDiSetDriverInstallParamsA(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var DriverInfoData: TSPDrvInfoDataA;
var DriverInstallParams: TSPDrvInstallParams): BOOL; stdcall;
{$EXTERNALSYM SetupDiSetDriverInstallParamsA}
function SetupDiSetDriverInstallParamsW(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var DriverInfoData: TSPDrvInfoDataW;
var DriverInstallParams: TSPDrvInstallParams): BOOL; stdcall;
{$EXTERNALSYM SetupDiSetDriverInstallParamsW}
function SetupDiSetDriverInstallParams(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var DriverInfoData: TSPDrvInfoData;
var DriverInstallParams: TSPDrvInstallParams): BOOL; stdcall;
{$EXTERNALSYM SetupDiSetDriverInstallParams}
function SetupDiLoadClassIcon(var ClassGuid: TGUID; LargeIcon: PHICON;
MiniIconIndex: PINT): BOOL; stdcall;
{$EXTERNALSYM SetupDiLoadClassIcon}
function SetupDiDrawMiniIcon(hdc: HDC; rc: TRect; MiniIconIndex: Integer;
Flags: DWORD): Integer; stdcall;
{$EXTERNALSYM SetupDiDrawMiniIcon}
function SetupDiGetClassBitmapIndex(ClassGuid: PGUID;
var MiniIconIndex: Integer): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetClassBitmapIndex}
function SetupDiGetClassImageList(
var ClassImageListData: TSPClassImageListData): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetClassImageList}
function SetupDiGetClassImageListExA(var ClassImageListData: TSPClassImageListData;
const MachineName: PAnsiChar; Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetClassImageListExA}
function SetupDiGetClassImageListExW(var ClassImageListData: TSPClassImageListData;
const MachineName: PWideChar; Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetClassImageListExW}
function SetupDiGetClassImageListEx(var ClassImageListData: TSPClassImageListData;
const MachineName: PTSTR; Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetClassImageListEx}
function SetupDiGetClassImageIndex(var ClassImageListData: TSPClassImageListData;
var ClassGuid: TGUID; var ImageIndex: Integer): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetClassImageIndex}
function SetupDiDestroyClassImageList(
var ClassImageListData: TSPClassImageListData): BOOL; stdcall;
{$EXTERNALSYM SetupDiDestroyClassImageList}
function SetupDiGetClassDevPropertySheetsA(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var PropertySheetHeader: TPropSheetHeaderA;
PropertySheetHeaderPageListSize: DWORD; RequiredSize: PDWORD;
PropertySheetType: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetClassDevPropertySheetsA}
function SetupDiGetClassDevPropertySheetsW(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var PropertySheetHeader: TPropSheetHeaderW;
PropertySheetHeaderPageListSize: DWORD; RequiredSize: PDWORD;
PropertySheetType: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetClassDevPropertySheetsW}
function SetupDiGetClassDevPropertySheets(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var PropertySheetHeader: TPropSheetHeader;
PropertySheetHeaderPageListSize: DWORD; RequiredSize: PDWORD;
PropertySheetType: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetClassDevPropertySheets}
function SetupDiAskForOEMDisk(DeviceInfoSet: HDEVINFO; DeviceInfoData: PSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiAskForOEMDisk}
function SetupDiSelectOEMDrv(hwndParent: HWND; DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiSelectOEMDrv}
function SetupDiClassNameFromGuidA(var ClassGuid: TGUID; ClassName: PAnsiChar;
ClassNameSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiClassNameFromGuidA}
function SetupDiClassNameFromGuidW(var ClassGuid: TGUID; ClassName: PWideChar;
ClassNameSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiClassNameFromGuidW}
function SetupDiClassNameFromGuid(var ClassGuid: TGUID; ClassName: PTSTR;
ClassNameSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiClassNameFromGuid}
function SetupDiClassNameFromGuidExA(var ClassGuid: TGUID; ClassName: PAnsiChar;
ClassNameSize: DWORD; RequiredSize: PDWORD; const MachineName: PAnsiChar;
Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiClassNameFromGuidExA}
function SetupDiClassNameFromGuidExW(var ClassGuid: TGUID; ClassName: PWideChar;
ClassNameSize: DWORD; RequiredSize: PDWORD; const MachineName: PWideChar;
Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiClassNameFromGuidExW}
function SetupDiClassNameFromGuidEx(var ClassGuid: TGUID; ClassName: PTSTR;
ClassNameSize: DWORD; RequiredSize: PDWORD; const MachineName: PTSTR;
Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiClassNameFromGuidEx}
function SetupDiClassGuidsFromNameA(const ClassName: PAnsiChar; ClassGuidList: PGUID;
ClassGuidListSize: DWORD; var RequiredSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiClassGuidsFromNameA}
function SetupDiClassGuidsFromNameW(const ClassName: PWideChar; ClassGuidList: PGUID;
ClassGuidListSize: DWORD; var RequiredSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiClassGuidsFromNameW}
function SetupDiClassGuidsFromName(const ClassName: PTSTR; ClassGuidList: PGUID;
ClassGuidListSize: DWORD; var RequiredSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiClassGuidsFromName}
function SetupDiClassGuidsFromNameExA(const ClassName: PAnsiChar; ClassGuidList: PGUID;
ClassGuidListSize: DWORD; var RequiredSize: DWORD; const MachineName: PAnsiChar;
Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiClassGuidsFromNameExA}
function SetupDiClassGuidsFromNameExW(const ClassName: PWideChar; ClassGuidList: PGUID;
ClassGuidListSize: DWORD; var RequiredSize: DWORD; const MachineName: PWideChar;
Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiClassGuidsFromNameExW}
function SetupDiClassGuidsFromNameEx(const ClassName: PTSTR; ClassGuidList: PGUID;
ClassGuidListSize: DWORD; var RequiredSize: DWORD; const MachineName: PTSTR;
Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiClassGuidsFromNameEx}
function SetupDiGetHwProfileFriendlyNameA(HwProfile: DWORD; FriendlyName: PAnsiChar;
FriendlyNameSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetHwProfileFriendlyNameA}
function SetupDiGetHwProfileFriendlyNameW(HwProfile: DWORD; FriendlyName: PWideChar;
FriendlyNameSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetHwProfileFriendlyNameW}
function SetupDiGetHwProfileFriendlyName(HwProfile: DWORD; FriendlyName: PTSTR;
FriendlyNameSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetHwProfileFriendlyName}
function SetupDiGetHwProfileFriendlyNameExA(HwProfile: DWORD; FriendlyName: PAnsiChar;
FriendlyNameSize: DWORD; RequiredSize: PDWORD; const MachineName: PAnsiChar;
Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetHwProfileFriendlyNameExA}
function SetupDiGetHwProfileFriendlyNameExW(HwProfile: DWORD; FriendlyName: PWideChar;
FriendlyNameSize: DWORD; RequiredSize: PDWORD; const MachineName: PWideChar;
Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetHwProfileFriendlyNameExW}
function SetupDiGetHwProfileFriendlyNameEx(HwProfile: DWORD; FriendlyName: PTSTR;
FriendlyNameSize: DWORD; RequiredSize: PDWORD; const MachineName: PTSTR;
Reserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetHwProfileFriendlyNameEx}
function SetupDiGetWizardPage(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var InstallWizardData: TSPInstallWizardData;
PageType: DWORD; Flags: DWORD): HPROPSHEETPAGE; stdcall;
{$EXTERNALSYM SetupDiGetWizardPage}
function SetupDiGetSelectedDevice(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetSelectedDevice}
function SetupDiSetSelectedDevice(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData): BOOL; stdcall;
{$EXTERNALSYM SetupDiSetSelectedDevice}
function SetupDiGetActualSectionToInstallA(InfHandle: HINF;
const InfSectionName: PAnsiChar; InfSectionWithExt: PAnsiChar; InfSectionWithExtSize: DWORD;
RequiredSize: PDWORD; Extension: PPASTR): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetActualSectionToInstallA}
function SetupDiGetActualSectionToInstallW(InfHandle: HINF;
const InfSectionName: PWideChar; InfSectionWithExt: PWideChar; InfSectionWithExtSize: DWORD;
RequiredSize: PDWORD; Extension: PPWSTR): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetActualSectionToInstallW}
function SetupDiGetActualSectionToInstall(InfHandle: HINF;
const InfSectionName: PTSTR; InfSectionWithExt: PTSTR; InfSectionWithExtSize: DWORD;
RequiredSize: PDWORD; Extension: PPSTR): BOOL; stdcall;
{$EXTERNALSYM SetupDiGetActualSectionToInstall}
{$IFDEF WINXP_UP}
function SetupDiGetActualSectionToInstallExA(InfHandle: HINF;
InfSectionName: PAnsiChar; AlternatePlatformInfo: PSPAltPlatformInfo;
InfSectionWithExt: PAnsiChar; InfSectionWithExtSize: DWORD;
RequiredSize: PDWORD; Extension: PPASTR; Reserved: Pointer): BOOL; stdcall;
function SetupDiGetActualSectionToInstallExW(InfHandle: HINF;
InfSectionName: PWideChar; AlternatePlatformInfo: PSPAltPlatformInfo;
InfSectionWithExt: PWideChar; InfSectionWithExtSize: DWORD;
RequiredSize: PDWORD; Extension: PPWSTR; Reserved: Pointer): BOOL; stdcall;
function SetupDiGetActualSectionToInstallEx(InfHandle: HINF;
InfSectionName: PTSTR; AlternatePlatformInfo: PSPAltPlatformInfo;
InfSectionWithExt: PTSTR; InfSectionWithExtSize: DWORD;
RequiredSize: PDWORD; Extension: PPSTR; Reserved: Pointer): BOOL; stdcall;
//
// SetupEnumInfSections is for low-level parsing of an INF
//
function SetupEnumInfSectionsA(InfHandle: HINF; Index: UINT;
Buffer: PAnsiChar; Size: UINT; SizeNeeded: PUINT): BOOL; stdcall;
function SetupEnumInfSectionsW(InfHandle: HINF; Index: UINT;
Buffer: PWideChar; Size: UINT; SizeNeeded: PUINT): BOOL; stdcall;
function SetupEnumInfSections(InfHandle: HINF; Index: UINT;
Buffer: PAnsiChar; Size: UINT; SizeNeeded: PUINT): BOOL; stdcall;
function SetupVerifyInfFileA(InfName: PAnsiChar; AltPlatformInfo: PSPAltPlatformInfo;
var InfSignerInfo: TSPInfSignerInfoA): BOOL; stdcall;
function SetupVerifyInfFileW(InfName: PWideChar; AltPlatformInfo: PSPAltPlatformInfo;
var InfSignerInfo: TSPInfSignerInfoW): BOOL; stdcall;
function SetupVerifyInfFile(InfName: PAnsiChar; AltPlatformInfo: PSPAltPlatformInfo;
var InfSignerInfo: TSPInfSignerInfo): BOOL; stdcall;
function SetupDiGetCustomDevicePropertyA(DeviceInfoSet: HDEVINFO;
const DeviceInfoData: TSPDevInfoData; CustomPropertyName: PAnsiChar;
Flags: DWORD; PropertyRegDataType: PDWORD; PropertyBuffer: PBYTE;
PropertyBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
function SetupDiGetCustomDevicePropertyW(DeviceInfoSet: HDEVINFO;
const DeviceInfoData: TSPDevInfoData; CustomPropertyName: PWideChar;
Flags: DWORD; PropertyRegDataType: PDWORD; PropertyBuffer: PBYTE;
PropertyBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
function SetupDiGetCustomDeviceProperty(DeviceInfoSet: HDEVINFO;
const DeviceInfoData: TSPDevInfoData; CustomPropertyName: PAnsiChar;
Flags: DWORD; PropertyRegDataType: PDWORD; PropertyBuffer: PBYTE;
PropertyBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$ENDIF WINXP_UP}
{$ELSE}
// (rom) remove all #defines Microsoft generated in SetupApi.h
// (rom) to handle A/W functions
(*$HPPEMIT '#undef SetupGetInfInformation'*)
(*$HPPEMIT '#undef SetupQueryInfFileInformation'*)
(*$HPPEMIT '#undef SetupQueryInfOriginalFileInformation'*)
(*$HPPEMIT '#undef SetupQueryInfVersionInformation'*)
(*$HPPEMIT '#undef SetupGetInfFileList'*)
(*$HPPEMIT '#undef SetupOpenInfFile'*)
(*$HPPEMIT '#undef SetupOpenAppendInfFile'*)
(*$HPPEMIT '#undef SetupFindFirstLine'*)
(*$HPPEMIT '#undef SetupFindNextMatchLine'*)
(*$HPPEMIT '#undef SetupGetLineByIndex'*)
(*$HPPEMIT '#undef SetupGetLineCount'*)
(*$HPPEMIT '#undef SetupGetLineText'*)
(*$HPPEMIT '#undef SetupGetStringField'*)
(*$HPPEMIT '#undef SetupGetMultiSzField'*)
(*$HPPEMIT '#undef SetupGetFileCompressionInfo'*)
{$IFDEF WINXP_UP}
(*$HPPEMIT '#undef SetupGetFileCompressionInfoEx'*)
{$ENDIF WINXP_UP}
(*$HPPEMIT '#undef SetupDecompressOrCopyFile'*)
(*$HPPEMIT '#undef SetupGetSourceFileLocation'*)
(*$HPPEMIT '#undef SetupGetSourceFileSize'*)
(*$HPPEMIT '#undef SetupGetTargetPath'*)
(*$HPPEMIT '#undef SetupSetSourceList'*)
(*$HPPEMIT '#undef SetupAddToSourceList'*)
(*$HPPEMIT '#undef SetupRemoveFromSourceList'*)
(*$HPPEMIT '#undef SetupQuerySourceList'*)
(*$HPPEMIT '#undef SetupFreeSourceList'*)
(*$HPPEMIT '#undef SetupPromptForDisk'*)
(*$HPPEMIT '#undef SetupCopyError'*)
(*$HPPEMIT '#undef SetupRenameError'*)
(*$HPPEMIT '#undef SetupDeleteError'*)
(*$HPPEMIT '#undef SetupBackupError'*)
(*$HPPEMIT '#undef SetupSetDirectoryId'*)
(*$HPPEMIT '#undef SetupSetDirectoryIdEx'*)
(*$HPPEMIT '#undef SetupGetSourceInfo'*)
(*$HPPEMIT '#undef SetupInstallFile'*)
(*$HPPEMIT '#undef SetupInstallFileEx'*)
(*$HPPEMIT '#undef SetupSetFileQueueAlternatePlatform'*)
(*$HPPEMIT '#undef SetupSetPlatformPathOverride'*)
(*$HPPEMIT '#undef SetupQueueCopy'*)
(*$HPPEMIT '#undef SetupQueueCopyIndirect'*)
(*$HPPEMIT '#undef SetupQueueDefaultCopy'*)
(*$HPPEMIT '#undef SetupQueueCopySection'*)
(*$HPPEMIT '#undef SetupQueueDelete'*)
(*$HPPEMIT '#undef SetupQueueDeleteSection'*)
(*$HPPEMIT '#undef SetupQueueRename'*)
(*$HPPEMIT '#undef SetupQueueRenameSection'*)
(*$HPPEMIT '#undef SetupCommitFileQueue'*)
(*$HPPEMIT '#undef SetupScanFileQueue'*)
(*$HPPEMIT '#undef SetupCopyOEMInf'*)
{$IFDEF WINXP_UP}
(*$HPPEMIT '#undef SetupUninstallOEMInf'*)
{$ENDIF WINXP_UP}
(*$HPPEMIT '#undef SetupCreateDiskSpaceList'*)
(*$HPPEMIT '#undef SetupDuplicateDiskSpaceList'*)
(*$HPPEMIT '#undef SetupQueryDrivesInDiskSpaceList'*)
(*$HPPEMIT '#undef SetupQuerySpaceRequiredOnDrive'*)
(*$HPPEMIT '#undef SetupAdjustDiskSpaceList'*)
(*$HPPEMIT '#undef SetupAddToDiskSpaceList'*)
(*$HPPEMIT '#undef SetupAddSectionToDiskSpaceList'*)
(*$HPPEMIT '#undef SetupAddInstallSectionToDiskSpaceList'*)
(*$HPPEMIT '#undef SetupRemoveFromDiskSpaceList'*)
(*$HPPEMIT '#undef SetupRemoveSectionFromDiskSpaceList'*)
(*$HPPEMIT '#undef SetupRemoveInstallSectionFromDiskSpaceList'*)
(*$HPPEMIT '#undef SetupIterateCabinet'*)
(*$HPPEMIT '#undef SetupDefaultQueueCallback'*)
(*$HPPEMIT '#undef SetupInstallFromInfSection'*)
(*$HPPEMIT '#undef SetupInstallFilesFromInfSection'*)
(*$HPPEMIT '#undef SetupInstallServicesFromInfSection'*)
(*$HPPEMIT '#undef SetupInstallServicesFromInfSectionEx'*)
{$IFDEF WINXP_UP}
(*$HPPEMIT '#undef InstallHinfSection'*)
{$ENDIF WINXP_UP}
(*$HPPEMIT '#undef SetupInitializeFileLog'*)
(*$HPPEMIT '#undef SetupLogFile'*)
(*$HPPEMIT '#undef SetupRemoveFileLogEntry'*)
(*$HPPEMIT '#undef SetupQueryFileLog'*)
(*$HPPEMIT '#undef SetupLogError'*)
(*$HPPEMIT '#undef SetupGetBackupInformation'*)
{$IFDEF WINXP_UP}
(*$HPPEMIT '#undef SetupPrepareQueueForRestore'*)
{$ENDIF WINXP_UP}
(*$HPPEMIT '#undef SetupDiCreateDeviceInfoListEx'*)
(*$HPPEMIT '#undef SetupDiGetDeviceInfoListDetail'*)
(*$HPPEMIT '#undef SetupDiCreateDeviceInfo'*)
(*$HPPEMIT '#undef SetupDiOpenDeviceInfo'*)
(*$HPPEMIT '#undef SetupDiGetDeviceInstanceId'*)
(*$HPPEMIT '#undef SetupDiEnumInterfaceDevice'*)
(*$HPPEMIT '#undef SetupDiCreateDeviceInterface'*)
(*$HPPEMIT '#undef SetupDiCreateInterfaceDeviceA'*)
(*$HPPEMIT '#undef SetupDiCreateInterfaceDeviceW'*)
(*$HPPEMIT '#undef SetupDiCreateInterfaceDevice'*)
(*$HPPEMIT '#undef SetupDiOpenDeviceInterface'*)
(*$HPPEMIT '#undef SetupDiOpenInterfaceDeviceA'*)
(*$HPPEMIT '#undef SetupDiOpenInterfaceDeviceW'*)
(*$HPPEMIT '#undef SetupDiOpenInterfaceDevice'*)
(*$HPPEMIT '#undef SetupDiGetInterfaceDeviceAlias'*)
(*$HPPEMIT '#undef SetupDiDeleteInterfaceDeviceData'*)
(*$HPPEMIT '#undef SetupDiRemoveInterfaceDevice'*)
(*$HPPEMIT '#undef SetupDiGetDeviceInterfaceDetail'*)
(*$HPPEMIT '#undef SetupDiGetInterfaceDeviceDetailA'*)
(*$HPPEMIT '#undef SetupDiGetInterfaceDeviceDetailW'*)
(*$HPPEMIT '#undef SetupDiGetInterfaceDeviceDetail'*)
(*$HPPEMIT '#undef SetupDiInstallInterfaceDevices'*)
(*$HPPEMIT '#undef SetupDiEnumDriverInfo'*)
(*$HPPEMIT '#undef SetupDiGetSelectedDriver'*)
(*$HPPEMIT '#undef SetupDiSetSelectedDriver'*)
(*$HPPEMIT '#undef SetupDiGetDriverInfoDetail'*)
(*$HPPEMIT '#undef SetupDiGetClassDevs'*)
(*$HPPEMIT '#undef SetupDiGetClassDevsEx'*)
(*$HPPEMIT '#undef SetupDiGetINFClass'*)
(*$HPPEMIT '#undef SetupDiBuildClassInfoListEx'*)
(*$HPPEMIT '#undef SetupDiGetClassDescription'*)
(*$HPPEMIT '#undef SetupDiGetClassDescriptionEx'*)
(*$HPPEMIT '#undef SetupDiInstallClass'*)
(*$HPPEMIT '#undef SetupDiInstallClassEx'*)
(*$HPPEMIT '#undef SetupDiOpenClassRegKeyEx'*)
(*$HPPEMIT '#undef SetupDiCreateDeviceInterfaceRegKey'*)
(*$HPPEMIT '#undef SetupDiCreateInterfaceDeviceRegKeyA'*)
(*$HPPEMIT '#undef SetupDiCreateInterfaceDeviceRegKeyW'*)
(*$HPPEMIT '#undef SetupDiCreateInterfaceDeviceRegKey'*)
(*$HPPEMIT '#undef SetupDiOpenInterfaceDeviceRegKey'*)
(*$HPPEMIT '#undef SetupDiDeleteInterfaceDeviceRegKey'*)
(*$HPPEMIT '#undef SetupDiCreateDevRegKey'*)
(*$HPPEMIT '#undef SetupDiGetHwProfileListEx'*)
(*$HPPEMIT '#undef SetupDiGetDeviceRegistryProperty'*)
(*$HPPEMIT '#undef SetupDiGetClassRegistryProperty'*)
(*$HPPEMIT '#undef SetupDiSetDeviceRegistryProperty'*)
(*$HPPEMIT '#undef SetupDiSetClassRegistryProperty'*)
(*$HPPEMIT '#undef SetupDiGetDeviceInstallParams'*)
(*$HPPEMIT '#undef SetupDiGetClassInstallParams'*)
(*$HPPEMIT '#undef SetupDiSetDeviceInstallParams'*)
(*$HPPEMIT '#undef SetupDiSetClassInstallParams'*)
(*$HPPEMIT '#undef SetupDiGetDriverInstallParams'*)
(*$HPPEMIT '#undef SetupDiSetDriverInstallParams'*)
(*$HPPEMIT '#undef SetupDiGetClassImageListEx'*)
(*$HPPEMIT '#undef SetupDiGetClassDevPropertySheets'*)
(*$HPPEMIT '#undef SetupDiClassNameFromGuid'*)
(*$HPPEMIT '#undef SetupDiClassNameFromGuidEx'*)
(*$HPPEMIT '#undef SetupDiClassGuidsFromName'*)
(*$HPPEMIT '#undef SetupDiClassGuidsFromNameEx'*)
(*$HPPEMIT '#undef SetupDiGetHwProfileFriendlyName'*)
(*$HPPEMIT '#undef SetupDiGetHwProfileFriendlyNameEx'*)
(*$HPPEMIT '#undef SetupDiGetActualSectionToInstall'*)
{$IFDEF WINXP_UP}
(*$HPPEMIT '#undef SetupDiGetActualSectionToInstallEx'*)
(*$HPPEMIT '#undef SetupEnumInfSections'*)
(*$HPPEMIT '#undef SetupVerifyInfFile'*)
(*$HPPEMIT '#undef SetupDiGetCustomDeviceProperty'*)
{$ENDIF WINXP_UP}
type
{$IFDEF WINXP_UP}
TSetupGetFileQueueCount = function(FileQueue: HSPFILEQ; SubQueueFileOp: UINT; var NumOperations: UINT): BOOL; stdcall;
TSetupGetFileQueueFlags = function(FileQueue: HSPFILEQ; var Flags: DWORD): BOOL; stdcall;
TSetupSetFileQueueFlags = function(FileQueue: HSPFILEQ; FlagMask: DWORD; Flags: DWORD): BOOL; stdcall;
{$ENDIF WINXP_UP}
TSetupGetInfInformationA = function(InfSpec: Pointer; SearchControl: DWORD;
ReturnBuffer: PSPInfInformation; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupGetInfInformationW = function(InfSpec: Pointer; SearchControl: DWORD;
ReturnBuffer: PSPInfInformation; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$IFDEF UNICODE}
TSetupGetInfInformation = TSetupGetInfInformationW;
{$ELSE}
TSetupGetInfInformation = TSetupGetInfInformationA;
{$ENDIF UNICODE}
TSetupQueryInfFileInformationA = function(var InfInformation: TSPInfInformation;
InfIndex: UINT; ReturnBuffer: PAnsiChar; ReturnBufferSize: DWORD;
RequiredSize: PDWORD): BOOL; stdcall;
TSetupQueryInfFileInformationW = function(var InfInformation: TSPInfInformation;
InfIndex: UINT; ReturnBuffer: PWideChar; ReturnBufferSize: DWORD;
RequiredSize: PDWORD): BOOL; stdcall;
TSetupQueryInfFileInformation = function(var InfInformation: TSPInfInformation;
InfIndex: UINT; ReturnBuffer: PTSTR; ReturnBufferSize: DWORD;
RequiredSize: PDWORD): BOOL; stdcall;
{$IFDEF WIN2000_UP}
TSetupQueryInfOriginalFileInformationA = function(var InfInformation: TSPInfInformation;
InfIndex: UINT; AlternatePlatformInfo: PSPAltPlatformInfo;
var OriginalFileInfo: TSPOriginalFileInfoA): BOOL; stdcall;
TSetupQueryInfOriginalFileInformationW = function(var InfInformation: TSPInfInformation;
InfIndex: UINT; AlternatePlatformInfo: PSPAltPlatformInfo;
var OriginalFileInfo: TSPOriginalFileInfoW): BOOL; stdcall;
TSetupQueryInfOriginalFileInformation = function(var InfInformation: TSPInfInformation;
InfIndex: UINT; AlternatePlatformInfo: PSPAltPlatformInfo;
var OriginalFileInfo: TSPOriginalFileInfo): BOOL; stdcall;
{$ENDIF WIN2000_UP}
TSetupQueryInfVersionInformationA = function(var InfInformation: TSPInfInformation;
InfIndex: UINT; const Key, ReturnBuffer: PAnsiChar; ReturnBufferSize: DWORD;
RequiredSize: PDWORD): BOOL; stdcall;
TSetupQueryInfVersionInformationW = function(var InfInformation: TSPInfInformation;
InfIndex: UINT; const Key, ReturnBuffer: PWideChar; ReturnBufferSize: DWORD;
RequiredSize: PDWORD): BOOL; stdcall;
TSetupQueryInfVersionInformation = function(var InfInformation: TSPInfInformation;
InfIndex: UINT; const Key, ReturnBuffer: PTSTR; ReturnBufferSize: DWORD;
RequiredSize: PDWORD): BOOL; stdcall;
TSetupGetInfFileListA = function(const DirectoryPath: PAnsiChar; InfStyle: DWORD;
ReturnBuffer: PAnsiChar; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupGetInfFileListW = function(const DirectoryPath: PWideChar; InfStyle: DWORD;
ReturnBuffer: PWideChar; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupGetInfFileList = function(const DirectoryPath: PTSTR; InfStyle: DWORD;
ReturnBuffer: PTSTR; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupOpenInfFileA = function(const FileName: PAnsiChar; const InfClass: PAnsiChar;
InfStyle: DWORD; ErrorLine: PUINT): HINF; stdcall;
TSetupOpenInfFileW = function(const FileName: PWideChar; const InfClass: PWideChar;
InfStyle: DWORD; ErrorLine: PUINT): HINF; stdcall;
TSetupOpenInfFile = function(const FileName: PTSTR; const InfClass: PTSTR;
InfStyle: DWORD; ErrorLine: PUINT): HINF; stdcall;
TSetupOpenMasterInf = function: HINF; stdcall;
TSetupOpenAppendInfFileA = function(const FileName: PAnsiChar; InfHandle: HINF;
ErrorLine: PUINT): BOOL; stdcall;
TSetupOpenAppendInfFileW = function(const FileName: PWideChar; InfHandle: HINF;
ErrorLine: PUINT): BOOL; stdcall;
TSetupOpenAppendInfFile = function(const FileName: PTSTR; InfHandle: HINF;
ErrorLine: PUINT): BOOL; stdcall;
TSetupCloseInfFile = procedure(InfHandle: HINF); stdcall;
TSetupFindFirstLineA = function(InfHandle: HINF; Section, Key: PAnsiChar;
var Context: TInfContext): BOOL; stdcall;
TSetupFindFirstLineW = function(InfHandle: HINF; Section, Key: PWideChar;
var Context: TInfContext): BOOL; stdcall;
TSetupFindFirstLine = function(InfHandle: HINF; Section, Key: PTSTR;
var Context: TInfContext): BOOL; stdcall;
TSetupFindNextLine = function(var ContextIn, ContextOut: TInfContext): BOOL; stdcall;
TSetupFindNextMatchLineA = function(var ContextIn: TInfContext; Key: PAnsiChar;
var ContextOut: TInfContext): BOOL; stdcall;
TSetupFindNextMatchLineW = function(var ContextIn: TInfContext; Key: PWideChar;
var ContextOut: TInfContext): BOOL; stdcall;
TSetupFindNextMatchLine = function(var ContextIn: TInfContext; Key: PTSTR;
var ContextOut: TInfContext): BOOL; stdcall;
TSetupGetLineByIndexA = function(InfHandle: HINF; Section: PAnsiChar; Index: DWORD;
var Context: TInfContext): BOOL; stdcall;
TSetupGetLineByIndexW = function(InfHandle: HINF; Section: PWideChar; Index: DWORD;
var Context: TInfContext): BOOL; stdcall;
TSetupGetLineByIndex = function(InfHandle: HINF; Section: PTSTR; Index: DWORD;
var Context: TInfContext): BOOL; stdcall;
TSetupGetLineCountA = function(InfHandle: HINF; Section: PAnsiChar): Integer; stdcall;
TSetupGetLineCountW = function(InfHandle: HINF; Section: PWideChar): Integer; stdcall;
TSetupGetLineCount = function(InfHandle: HINF; Section: PTSTR): Integer; stdcall;
TSetupGetLineTextA = function(Context: PInfContext; InfHandle: HINF; Section,
Key, ReturnBuffer: PAnsiChar; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupGetLineTextW = function(Context: PInfContext; InfHandle: HINF; Section,
Key, ReturnBuffer: PWideChar; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupGetLineText = function(Context: PInfContext; InfHandle: HINF; Section,
Key, ReturnBuffer: PTSTR; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupGetFieldCount = function(var Context: TInfContext): DWORD; stdcall;
TSetupGetStringFieldA = function(var Context: TInfContext; FieldIndex: DWORD;
ReturnBuffer: PAnsiChar; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupGetStringFieldW = function(var Context: TInfContext; FieldIndex: DWORD;
ReturnBuffer: PWideChar; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupGetStringField = function(var Context: TInfContext; FieldIndex: DWORD;
ReturnBuffer: PTSTR; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupGetIntField = function(var Context: TInfContext; FieldIndex: DWORD;
var IntegerValue: Integer): BOOL; stdcall;
TSetupGetMultiSzFieldA = function(var Context: TInfContext; FieldIndex: DWORD;
ReturnBuffer: PAnsiChar; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupGetMultiSzFieldW = function(var Context: TInfContext; FieldIndex: DWORD;
ReturnBuffer: PWideChar; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupGetMultiSzField = function(var Context: TInfContext; FieldIndex: DWORD;
ReturnBuffer: PTSTR; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupGetBinaryField = function(var Context: TInfContext; FieldIndex: DWORD;
ReturnBuffer: PBYTE; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupGetFileCompressionInfoA = function(const SourceFileName: PAnsiChar;
var ActualSourceFileName: PAnsiChar; var SourceFileSize: DWORD;
var TargetFileSize: DWORD; var CompressionType: UINT): DWORD; stdcall;
TSetupGetFileCompressionInfoW = function(const SourceFileName: PWideChar;
var ActualSourceFileName: PWideChar; var SourceFileSize: DWORD;
var TargetFileSize: DWORD; var CompressionType: UINT): DWORD; stdcall;
TSetupGetFileCompressionInfo = function(const SourceFileName: PTSTR;
var ActualSourceFileName: PTSTR; var SourceFileSize: DWORD;
var TargetFileSize: DWORD; var CompressionType: UINT): DWORD; stdcall;
{$IFDEF WINXP_UP}
TSetupGetFileCompressionInfoExA = function(const SourceFileName: PAnsiChar;
ActualSourceFileNameBuffer: PAnsiChar; var ActualSourceFileNameBufferLen: DWORD;
RequiredBufferLen: PDWORD; var SourceFileSize: DWORD;
var TargetFileSize: DWORD; var CompressionType: UINT): BOOL; stdcall;
TSetupGetFileCompressionInfoExW = function(const SourceFileName: PWideChar;
ActualSourceFileNameBuffer: PWideChar; var ActualSourceFileNameBufferLen: DWORD;
RequiredBufferLen: PDWORD; var SourceFileSize: DWORD;
var TargetFileSize: DWORD; var CompressionType: UINT): BOOL; stdcall;
TSetupGetFileCompressionInfoEx = function(const SourceFileName: PTSTR;
ActualSourceFileNameBuffer: PTSTR; var ActualSourceFileNameBufferLen: DWORD;
RequiredBufferLen: PDWORD; var SourceFileSize: DWORD;
var TargetFileSize: DWORD; var CompressionType: UINT): BOOL; stdcall;
{$ENDIF WINXP_UP}
TSetupDecompressOrCopyFileA = function(const SourceFileName, TargetFileName: PAnsiChar;
var CompressionType: UINT): DWORD; stdcall;
TSetupDecompressOrCopyFileW = function(const SourceFileName, TargetFileName: PWideChar;
var CompressionType: UINT): DWORD; stdcall;
TSetupDecompressOrCopyFile = function(const SourceFileName, TargetFileName: PTSTR;
var CompressionType: UINT): DWORD; stdcall;
TSetupGetSourceFileLocationA = function(InfHandle: HINF; InfContext: PInfContext;
const FileName: PAnsiChar; var SourceId: UINT; ReturnBuffer: PAnsiChar;
ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupGetSourceFileLocationW = function(InfHandle: HINF; InfContext: PInfContext;
const FileName: PWideChar; var SourceId: UINT; ReturnBuffer: PWideChar;
ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupGetSourceFileLocation = function(InfHandle: HINF; InfContext: PInfContext;
const FileName: PTSTR; var SourceId: UINT; ReturnBuffer: PTSTR;
ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupGetSourceFileSizeA = function(InfHandle: HINF; InfContext: PInfContext;
const FileName: PAnsiChar; const Section: PAnsiChar; var FileSize: DWORD;
RoundingFactor: UINT): BOOL; stdcall;
TSetupGetSourceFileSizeW = function(InfHandle: HINF; InfContext: PInfContext;
const FileName: PWideChar; const Section: PWideChar; var FileSize: DWORD;
RoundingFactor: UINT): BOOL; stdcall;
TSetupGetSourceFileSize = function(InfHandle: HINF; InfContext: PInfContext;
const FileName: PTSTR; const Section: PTSTR; var FileSize: DWORD;
RoundingFactor: UINT): BOOL; stdcall;
TSetupGetTargetPathA = function(InfHandle: HINF; InfContext: PInfContext;
const Section: PAnsiChar; ReturnBuffer: PAnsiChar; ReturnBufferSize: DWORD;
RequiredSize: PDWORD): BOOL; stdcall;
TSetupGetTargetPathW = function(InfHandle: HINF; InfContext: PInfContext;
const Section: PWideChar; ReturnBuffer: PWideChar; ReturnBufferSize: DWORD;
RequiredSize: PDWORD): BOOL; stdcall;
TSetupGetTargetPath = function(InfHandle: HINF; InfContext: PInfContext;
const Section: PTSTR; ReturnBuffer: PTSTR; ReturnBufferSize: DWORD;
RequiredSize: PDWORD): BOOL; stdcall;
TSetupSetSourceListA = function(Flags: DWORD; SourceList: PPASTR;
SourceCount: UINT): BOOL; stdcall;
TSetupSetSourceListW = function(Flags: DWORD; SourceList: PPWSTR;
SourceCount: UINT): BOOL; stdcall;
TSetupSetSourceList = function(Flags: DWORD; SourceList: PPSTR;
SourceCount: UINT): BOOL; stdcall;
TSetupCancelTemporarySourceList = function: BOOL; stdcall;
TSetupAddToSourceListA = function(Flags: DWORD; const Source: PAnsiChar): BOOL; stdcall;
TSetupAddToSourceListW = function(Flags: DWORD; const Source: PWideChar): BOOL; stdcall;
TSetupAddToSourceList = function(Flags: DWORD; const Source: PTSTR): BOOL; stdcall;
TSetupRemoveFromSourceListA = function(Flags: DWORD; const Source: PAnsiChar): BOOL; stdcall;
TSetupRemoveFromSourceListW = function(Flags: DWORD; const Source: PWideChar): BOOL; stdcall;
TSetupRemoveFromSourceList = function(Flags: DWORD; const Source: PTSTR): BOOL; stdcall;
TSetupQuerySourceListA = function(Flags: DWORD; var List: PPASTR;
var Count: UINT): BOOL; stdcall;
TSetupQuerySourceListW = function(Flags: DWORD; var List: PPWSTR;
var Count: UINT): BOOL; stdcall;
TSetupQuerySourceList = function(Flags: DWORD; var List: PPSTR;
var Count: UINT): BOOL; stdcall;
TSetupFreeSourceListA = function(var List: PPASTR; Count: UINT): BOOL; stdcall;
TSetupFreeSourceListW = function(var List: PPWSTR; Count: UINT): BOOL; stdcall;
TSetupFreeSourceList = function(var List: PPSTR; Count: UINT): BOOL; stdcall;
TSetupPromptForDiskA = function(hwndParent: HWND; const DialogTitle, DiskName,
PathToSource, FileSought, TagFile: PAnsiChar; DiskPromptStyle: DWORD;
PathBuffer: PAnsiChar; PathBufferSize: DWORD; var PathRequiredSize: DWORD): UINT; stdcall;
TSetupPromptForDiskW = function(hwndParent: HWND; const DialogTitle, DiskName,
PathToSource, FileSought, TagFile: PWideChar; DiskPromptStyle: DWORD;
PathBuffer: PWideChar; PathBufferSize: DWORD; var PathRequiredSize: DWORD): UINT; stdcall;
TSetupPromptForDisk = function(hwndParent: HWND; const DialogTitle, DiskName,
PathToSource, FileSought, TagFile: PTSTR; DiskPromptStyle: DWORD;
PathBuffer: PTSTR; PathBufferSize: DWORD; var PathRequiredSize: DWORD): UINT; stdcall;
TSetupCopyErrorA = function(hwndParent: HWND; const DialogTitle, DiskName,
PathToSource, SourceFile, TargetPathFile: PAnsiChar; Win32ErrorCode: UINT; Style: DWORD;
PathBuffer: PAnsiChar; PathBufferSize: DWORD; PathRequiredSize: PDWORD): UINT; stdcall;
TSetupCopyErrorW = function(hwndParent: HWND; const DialogTitle, DiskName,
PathToSource, SourceFile, TargetPathFile: PWideChar; Win32ErrorCode: UINT; Style: DWORD;
PathBuffer: PWideChar; PathBufferSize: DWORD; PathRequiredSize: PDWORD): UINT; stdcall;
TSetupCopyError = function(hwndParent: HWND; const DialogTitle, DiskName,
PathToSource, SourceFile, TargetPathFile: PTSTR; Win32ErrorCode: UINT; Style: DWORD;
PathBuffer: PTSTR; PathBufferSize: DWORD; PathRequiredSize: PDWORD): UINT; stdcall;
TSetupRenameErrorA = function(hwndParent: HWND; const DialogTitle, SourceFile,
TargetFile: PAnsiChar; Win32ErrorCode: UINT; Style: DWORD): UINT; stdcall;
TSetupRenameErrorW = function(hwndParent: HWND; const DialogTitle, SourceFile,
TargetFile: PWideChar; Win32ErrorCode: UINT; Style: DWORD): UINT; stdcall;
TSetupRenameError = function(hwndParent: HWND; const DialogTitle, SourceFile,
TargetFile: PTSTR; Win32ErrorCode: UINT; Style: DWORD): UINT; stdcall;
TSetupDeleteErrorA = function(hwndParent: HWND; const DialogTitle, File_: PAnsiChar;
Win32ErrorCode: UINT; Style: DWORD): UINT; stdcall;
TSetupDeleteErrorW = function(hwndParent: HWND; const DialogTitle, File_: PWideChar;
Win32ErrorCode: UINT; Style: DWORD): UINT; stdcall;
TSetupDeleteError = function(hwndParent: HWND; const DialogTitle, File_: PTSTR;
Win32ErrorCode: UINT; Style: DWORD): UINT; stdcall;
{$IFDEF WIN2000_UP}
TSetupBackupErrorA = function(hwndParent: HWND; const DialogTitle, BackupFile,
TargetFile: PAnsiChar; Win32ErrorCode: UINT; Style: DWORD): UINT; stdcall;
TSetupBackupErrorW = function(hwndParent: HWND; const DialogTitle, BackupFile,
TargetFile: PWideChar; Win32ErrorCode: UINT; Style: DWORD): UINT; stdcall;
TSetupBackupError = function(hwndParent: HWND; const DialogTitle, BackupFile,
TargetFile: PTSTR; Win32ErrorCode: UINT; Style: DWORD): UINT; stdcall;
{$ENDIF WIN2000_UP}
TSetupSetDirectoryIdA = function(InfHandle: HINF; Id: DWORD; const Directory: PAnsiChar): BOOL; stdcall;
TSetupSetDirectoryIdW = function(InfHandle: HINF; Id: DWORD; const Directory: PWideChar): BOOL; stdcall;
TSetupSetDirectoryId = function(InfHandle: HINF; Id: DWORD; const Directory: PTSTR): BOOL; stdcall;
TSetupSetDirectoryIdExA = function(InfHandle: HINF; Id: DWORD; const Directory: PAnsiChar;
Flags: DWORD; Reserved1: DWORD; Reserved2: Pointer): BOOL; stdcall;
TSetupSetDirectoryIdExW = function(InfHandle: HINF; Id: DWORD; const Directory: PWideChar;
Flags: DWORD; Reserved1: DWORD; Reserved2: Pointer): BOOL; stdcall;
TSetupSetDirectoryIdEx = function(InfHandle: HINF; Id: DWORD; const Directory: PTSTR;
Flags: DWORD; Reserved1: DWORD; Reserved2: Pointer): BOOL; stdcall;
TSetupGetSourceInfoA = function(InfHandle: HINF; SourceId, InfoDesired: UINT;
ReturnBuffer: PAnsiChar; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupGetSourceInfoW = function(InfHandle: HINF; SourceId, InfoDesired: UINT;
ReturnBuffer: PWideChar; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupGetSourceInfo = function(InfHandle: HINF; SourceId, InfoDesired: UINT;
ReturnBuffer: PTSTR; ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupInstallFileA = function(InfHandle: HINF; InfContext: PInfContext;
const SourceFile, SourcePathRoot, DestinationName: PAnsiChar; CopyStyle: DWORD;
CopyMsgHandler: TSPFileCallbackA; Context: Pointer): BOOL; stdcall;
TSetupInstallFileW = function(InfHandle: HINF; InfContext: PInfContext;
const SourceFile, SourcePathRoot, DestinationName: PWideChar; CopyStyle: DWORD;
CopyMsgHandler: TSPFileCallbackW; Context: Pointer): BOOL; stdcall;
TSetupInstallFile = function(InfHandle: HINF; InfContext: PInfContext;
const SourceFile, SourcePathRoot, DestinationName: PTSTR; CopyStyle: DWORD;
CopyMsgHandler: TSPFileCallback; Context: Pointer): BOOL; stdcall;
TSetupInstallFileExA = function(InfHandle: HINF; InfContext: PInfContext;
const SourceFile, SourcePathRoot, DestinationName: PAnsiChar; CopyStyle: DWORD;
CopyMsgHandler: TSPFileCallbackA; Context: Pointer; var FileWasInUse: BOOL): BOOL; stdcall;
TSetupInstallFileExW = function(InfHandle: HINF; InfContext: PInfContext;
const SourceFile, SourcePathRoot, DestinationName: PWideChar; CopyStyle: DWORD;
CopyMsgHandler: TSPFileCallbackW; Context: Pointer; var FileWasInUse: BOOL): BOOL; stdcall;
TSetupInstallFileEx = function(InfHandle: HINF; InfContext: PInfContext;
const SourceFile, SourcePathRoot, DestinationName: PTSTR; CopyStyle: DWORD;
CopyMsgHandler: TSPFileCallback; Context: Pointer; var FileWasInUse: BOOL): BOOL; stdcall;
TSetupOpenFileQueue = function: HSPFILEQ; stdcall;
TSetupCloseFileQueue = function(QueueHandle: HSPFILEQ): BOOL; stdcall;
{$IFDEF WIN2000_UP}
TSetupSetFileQueueAlternatePlatformA = function(QueueHandle: HSPFILEQ;
AlternatePlatformInfo: PSPAltPlatformInfo;
const AlternateDefaultCatalogFile: PAnsiChar): BOOL; stdcall;
TSetupSetFileQueueAlternatePlatformW = function(QueueHandle: HSPFILEQ;
AlternatePlatformInfo: PSPAltPlatformInfo;
const AlternateDefaultCatalogFile: PWideChar): BOOL; stdcall;
TSetupSetFileQueueAlternatePlatform = function(QueueHandle: HSPFILEQ;
AlternatePlatformInfo: PSPAltPlatformInfo;
const AlternateDefaultCatalogFile: PTSTR): BOOL; stdcall;
{$ENDIF WIN2000_UP}
TSetupSetPlatformPathOverrideA = function(const Override_: PAnsiChar): BOOL; stdcall;
TSetupSetPlatformPathOverrideW = function(const Override_: PWideChar): BOOL; stdcall;
TSetupSetPlatformPathOverride = function(const Override_: PTSTR): BOOL; stdcall;
TSetupQueueCopyA = function(QueueHandle: HSPFILEQ; const SourceRootPath, SourcePath,
SourceFilename, SourceDescription, SourceTagfile, TargetDirectory,
TargetFilename: PAnsiChar; CopyStyle: DWORD): BOOL; stdcall;
TSetupQueueCopyW = function(QueueHandle: HSPFILEQ; const SourceRootPath, SourcePath,
SourceFilename, SourceDescription, SourceTagfile, TargetDirectory,
TargetFilename: PWideChar; CopyStyle: DWORD): BOOL; stdcall;
TSetupQueueCopy = function(QueueHandle: HSPFILEQ; const SourceRootPath, SourcePath,
SourceFilename, SourceDescription, SourceTagfile, TargetDirectory,
TargetFilename: PTSTR; CopyStyle: DWORD): BOOL; stdcall;
{$IFDEF WIN2000_UP}
TSetupQueueCopyIndirectA = function(var CopyParams: TSPFileCopyParamsA): BOOL; stdcall;
TSetupQueueCopyIndirectW = function(var CopyParams: TSPFileCopyParamsW): BOOL; stdcall;
TSetupQueueCopyIndirect = function(var CopyParams: TSPFileCopyParams): BOOL; stdcall;
{$ENDIF WIN2000_UP}
TSetupQueueDefaultCopyA = function(QueueHandle: HSPFILEQ; InfHandle: HINF;
const SourceRootPath, SourceFilename, TargetFilename: PAnsiChar;
CopyStyle: DWORD): BOOL; stdcall;
TSetupQueueDefaultCopyW = function(QueueHandle: HSPFILEQ; InfHandle: HINF;
const SourceRootPath, SourceFilename, TargetFilename: PWideChar;
CopyStyle: DWORD): BOOL; stdcall;
TSetupQueueDefaultCopy = function(QueueHandle: HSPFILEQ; InfHandle: HINF;
const SourceRootPath, SourceFilename, TargetFilename: PTSTR;
CopyStyle: DWORD): BOOL; stdcall;
TSetupQueueCopySectionA = function(QueueHandle: HSPFILEQ; const SourceRootPath: PAnsiChar;
InfHandle: HINF; ListInfHandle: HINF; const Section: PAnsiChar; CopyStyle: DWORD): BOOL; stdcall;
TSetupQueueCopySectionW = function(QueueHandle: HSPFILEQ; const SourceRootPath: PWideChar;
InfHandle: HINF; ListInfHandle: HINF; const Section: PWideChar; CopyStyle: DWORD): BOOL; stdcall;
TSetupQueueCopySection = function(QueueHandle: HSPFILEQ; const SourceRootPath: PTSTR;
InfHandle: HINF; ListInfHandle: HINF; const Section: PTSTR; CopyStyle: DWORD): BOOL; stdcall;
TSetupQueueDeleteA = function(QueueHandle: HSPFILEQ; const PathPart1, PathPart2: PAnsiChar): BOOL; stdcall;
TSetupQueueDeleteW = function(QueueHandle: HSPFILEQ; const PathPart1, PathPart2: PWideChar): BOOL; stdcall;
TSetupQueueDelete = function(QueueHandle: HSPFILEQ; const PathPart1, PathPart2: PTSTR): BOOL; stdcall;
TSetupQueueDeleteSectionA = function(QueueHandle: HSPFILEQ; InfHandle: HINF;
ListInfHandle: HINF; const Section: PAnsiChar): BOOL; stdcall;
TSetupQueueDeleteSectionW = function(QueueHandle: HSPFILEQ; InfHandle: HINF;
ListInfHandle: HINF; const Section: PWideChar): BOOL; stdcall;
TSetupQueueDeleteSection = function(QueueHandle: HSPFILEQ; InfHandle: HINF;
ListInfHandle: HINF; const Section: PTSTR): BOOL; stdcall;
TSetupQueueRenameA = function(QueueHandle: HSPFILEQ; const SourcePath,
SourceFilename, TargetPath, TargetFilename: PAnsiChar): BOOL; stdcall;
TSetupQueueRenameW = function(QueueHandle: HSPFILEQ; const SourcePath,
SourceFilename, TargetPath, TargetFilename: PWideChar): BOOL; stdcall;
TSetupQueueRename = function(QueueHandle: HSPFILEQ; const SourcePath,
SourceFilename, TargetPath, TargetFilename: PTSTR): BOOL; stdcall;
TSetupQueueRenameSectionA = function(QueueHandle: HSPFILEQ; InfHandle: HINF;
ListInfHandle: HINF; const Section: PAnsiChar): BOOL; stdcall;
TSetupQueueRenameSectionW = function(QueueHandle: HSPFILEQ; InfHandle: HINF;
ListInfHandle: HINF; const Section: PWideChar): BOOL; stdcall;
TSetupQueueRenameSection = function(QueueHandle: HSPFILEQ; InfHandle: HINF;
ListInfHandle: HINF; const Section: PTSTR): BOOL; stdcall;
TSetupCommitFileQueueA = function(Owner: HWND; QueueHandle: HSPFILEQ;
MsgHandler: TSPFileCallbackA; Context: Pointer): BOOL; stdcall;
TSetupCommitFileQueueW = function(Owner: HWND; QueueHandle: HSPFILEQ;
MsgHandler: TSPFileCallbackW; Context: Pointer): BOOL; stdcall;
TSetupCommitFileQueue = function(Owner: HWND; QueueHandle: HSPFILEQ;
MsgHandler: TSPFileCallback; Context: Pointer): BOOL; stdcall;
TSetupScanFileQueueA = function(FileQueue: HSPFILEQ; Flags: DWORD; Window: HWND;
CallbackRoutine: TSPFileCallbackA; CallbackContext: Pointer; var Result: DWORD): BOOL; stdcall;
TSetupScanFileQueueW = function(FileQueue: HSPFILEQ; Flags: DWORD; Window: HWND;
CallbackRoutine: TSPFileCallbackW; CallbackContext: Pointer; var Result: DWORD): BOOL; stdcall;
TSetupScanFileQueue = function(FileQueue: HSPFILEQ; Flags: DWORD; Window: HWND;
CallbackRoutine: TSPFileCallback; CallbackContext: Pointer; var Result: DWORD): BOOL; stdcall;
TSetupCopyOEMInfA = function(const SourceInfFileName, OEMSourceMediaLocation: PAnsiChar;
OEMSourceMediaType, CopyStyle: DWORD; DestinationInfFileName: PAnsiChar;
DestinationInfFileNameSize: DWORD; RequiredSize: PDWORD;
DestinationInfFileNameComponent: PPASTR): BOOL; stdcall;
TSetupCopyOEMInfW = function(const SourceInfFileName, OEMSourceMediaLocation: PWideChar;
OEMSourceMediaType, CopyStyle: DWORD; DestinationInfFileName: PWideChar;
DestinationInfFileNameSize: DWORD; RequiredSize: PDWORD;
DestinationInfFileNameComponent: PPWSTR): BOOL; stdcall;
TSetupCopyOEMInf = function(const SourceInfFileName, OEMSourceMediaLocation: PTSTR;
OEMSourceMediaType, CopyStyle: DWORD; DestinationInfFileName: PTSTR;
DestinationInfFileNameSize: DWORD; RequiredSize: PDWORD;
DestinationInfFileNameComponent: PPSTR): BOOL; stdcall;
{$IFDEF WINXP_UP}
TSetupUninstallOEMInfA = function(const InfFileName: PAnsiChar; Flags: DWORD; Reserved: Pointer): BOOL; stdcall;
TSetupUninstallOEMInfW = function(const InfFileName: PWideChar; Flags: DWORD; Reserved: Pointer): BOOL; stdcall;
TSetupUninstallOEMInf = function(const InfFileName: PTSTR; Flags: DWORD; Reserved: Pointer): BOOL; stdcall;
TSetupUninstallNewlyCopiedInfs = function(FileQueue: HSPFILEQ; Flags: DWORD; Reserved: Pointer): BOOL; stdcall;
{$ENDIF WINXP_UP}
//
// Disk space list APIs
//
TSetupCreateDiskSpaceListA = function(Reserved1: Pointer; Reserved2: DWORD;
Flags: UINT): HDSKSPC; stdcall;
TSetupCreateDiskSpaceListW = function(Reserved1: Pointer; Reserved2: DWORD;
Flags: UINT): HDSKSPC; stdcall;
{$IFDEF UNICODE}
TSetupCreateDiskSpaceList = TSetupCreateDiskSpaceListW;
{$ELSE}
TSetupCreateDiskSpaceList = TSetupCreateDiskSpaceListA;
{$ENDIF UNICODE}
TSetupDuplicateDiskSpaceListA = function(DiskSpace: HDSKSPC; Reserved1: Pointer;
Reserved2: DWORD; Flags: UINT): HDSKSPC; stdcall;
TSetupDuplicateDiskSpaceListW = function(DiskSpace: HDSKSPC; Reserved1: Pointer;
Reserved2: DWORD; Flags: UINT): HDSKSPC; stdcall;
{$IFDEF UNICODE}
TSetupDuplicateDiskSpaceList = TSetupDuplicateDiskSpaceListW;
{$ELSE}
TSetupDuplicateDiskSpaceList = TSetupDuplicateDiskSpaceListA;
{$ENDIF UNICODE}
TSetupDestroyDiskSpaceList = function(DiskSpace: HDSKSPC): BOOL; stdcall;
TSetupQueryDrivesInDiskSpaceListA = function(DiskSpace: HDSKSPC; ReturnBuffer: PAnsiChar;
ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupQueryDrivesInDiskSpaceListW = function(DiskSpace: HDSKSPC; ReturnBuffer: PWideChar;
ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupQueryDrivesInDiskSpaceList = function(DiskSpace: HDSKSPC; ReturnBuffer: PTSTR;
ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupQuerySpaceRequiredOnDriveA = function(DiskSpace: HDSKSPC; const DriveSpec: PAnsiChar;
var SpaceRequired: Int64; Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
TSetupQuerySpaceRequiredOnDriveW = function(DiskSpace: HDSKSPC; const DriveSpec: PWideChar;
var SpaceRequired: Int64; Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
TSetupQuerySpaceRequiredOnDrive = function(DiskSpace: HDSKSPC; const DriveSpec: PTSTR;
var SpaceRequired: Int64; Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
TSetupAdjustDiskSpaceListA = function(DiskSpace: HDSKSPC; const DriveRoot: PAnsiChar;
Amount: Int64; Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
TSetupAdjustDiskSpaceListW = function(DiskSpace: HDSKSPC; const DriveRoot: PWideChar;
Amount: Int64; Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
TSetupAdjustDiskSpaceList = function(DiskSpace: HDSKSPC; const DriveRoot: PTSTR;
Amount: Int64; Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
TSetupAddToDiskSpaceListA = function(DiskSpace: HDSKSPC; const TargetFilespec: PAnsiChar;
FileSize: Int64; Operation: UINT; Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
TSetupAddToDiskSpaceListW = function(DiskSpace: HDSKSPC; const TargetFilespec: PWideChar;
FileSize: Int64; Operation: UINT; Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
TSetupAddToDiskSpaceList = function(DiskSpace: HDSKSPC; const TargetFilespec: PTSTR;
FileSize: Int64; Operation: UINT; Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
TSetupAddSectionToDiskSpaceListA = function(DiskSpace: HDSKSPC; InfHandle: HINF;
ListInfHandle: HINF; const SectionName: PAnsiChar; Operation: UINT;
Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
TSetupAddSectionToDiskSpaceListW = function(DiskSpace: HDSKSPC; InfHandle: HINF;
ListInfHandle: HINF; const SectionName: PWideChar; Operation: UINT;
Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
TSetupAddSectionToDiskSpaceList = function(DiskSpace: HDSKSPC; InfHandle: HINF;
ListInfHandle: HINF; const SectionName: PTSTR; Operation: UINT;
Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
TSetupAddInstallSectionToDiskSpaceListA = function(DiskSpace: HDSKSPC;
InfHandle: HINF; LayoutInfHandle: HINF; const SectionName: PAnsiChar;
Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
TSetupAddInstallSectionToDiskSpaceListW = function(DiskSpace: HDSKSPC;
InfHandle: HINF; LayoutInfHandle: HINF; const SectionName: PWideChar;
Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
TSetupAddInstallSectionToDiskSpaceList = function(DiskSpace: HDSKSPC;
InfHandle: HINF; LayoutInfHandle: HINF; const SectionName: PTSTR;
Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
TSetupRemoveFromDiskSpaceListA = function(DiskSpace: HDSKSPC; const TargetFilespec: PAnsiChar;
Operation: UINT; Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
TSetupRemoveFromDiskSpaceListW = function(DiskSpace: HDSKSPC; const TargetFilespec: PWideChar;
Operation: UINT; Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
TSetupRemoveFromDiskSpaceList = function(DiskSpace: HDSKSPC; const TargetFilespec: PTSTR;
Operation: UINT; Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
TSetupRemoveSectionFromDiskSpaceListA = function(DiskSpace: HDSKSPC; InfHandle: HINF;
ListInfHandle: HINF; const SectionName: PAnsiChar; Operation: UINT; Reserved1: Pointer;
Reserved2: UINT): BOOL; stdcall;
TSetupRemoveSectionFromDiskSpaceListW = function(DiskSpace: HDSKSPC; InfHandle: HINF;
ListInfHandle: HINF; const SectionName: PWideChar; Operation: UINT; Reserved1: Pointer;
Reserved2: UINT): BOOL; stdcall;
TSetupRemoveSectionFromDiskSpaceList = function(DiskSpace: HDSKSPC; InfHandle: HINF;
ListInfHandle: HINF; const SectionName: PTSTR; Operation: UINT; Reserved1: Pointer;
Reserved2: UINT): BOOL; stdcall;
TSetupRemoveInstallSectionFromDiskSpaceListA = function(DiskSpace: HDSKSPC;
InfHandle: HINF; LayoutInfHandle: HINF; const SectionName: PAnsiChar;
Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
TSetupRemoveInstallSectionFromDiskSpaceListW = function(DiskSpace: HDSKSPC;
InfHandle: HINF; LayoutInfHandle: HINF; const SectionName: PWideChar;
Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
TSetupRemoveInstallSectionFromDiskSpaceList = function(DiskSpace: HDSKSPC;
InfHandle: HINF; LayoutInfHandle: HINF; const SectionName: PTSTR;
Reserved1: Pointer; Reserved2: UINT): BOOL; stdcall;
//
// Cabinet APIs
//
TSetupIterateCabinetA = function(const CabinetFile: PAnsiChar; Reserved: DWORD;
MsgHandler: TSPFileCallbackA; Context: Pointer): BOOL; stdcall;
TSetupIterateCabinetW = function(const CabinetFile: PWideChar; Reserved: DWORD;
MsgHandler: TSPFileCallbackW; Context: Pointer): BOOL; stdcall;
TSetupIterateCabinet = function(const CabinetFile: PTSTR; Reserved: DWORD;
MsgHandler: TSPFileCallback; Context: Pointer): BOOL; stdcall;
TSetupPromptReboot = function(FileQueue: HSPFILEQ; Owner: HWND; ScanOnly: BOOL): Integer; stdcall;
TSetupInitDefaultQueueCallback = function(OwnerWindow: HWND): Pointer; stdcall;
TSetupInitDefaultQueueCallbackEx = function(OwnerWindow: HWND; AlternateProgressWindow: HWND;
ProgressMessage: UINT; Reserved1: DWORD; Reserved2: Pointer): Pointer; stdcall;
TSetupTermDefaultQueueCallback = procedure(Context: Pointer); stdcall;
TSetupDefaultQueueCallbackA = function(Context: Pointer; Notification: UINT;
Param1, Param2: UINT_PTR): UINT; stdcall;
TSetupDefaultQueueCallbackW = function(Context: Pointer; Notification: UINT;
Param1, Param2: UINT_PTR): UINT; stdcall;
{$IFDEF UNICODE}
TSetupDefaultQueueCallback = TSetupDefaultQueueCallbackW;
{$ELSE}
TSetupDefaultQueueCallback = TSetupDefaultQueueCallbackA;
{$ENDIF UNICODE}
//
// The INF may supply any arbitrary data type ordinal in the highword except
// for the following: REG_NONE, REG_SZ, REG_EXPAND_SZ, REG_MULTI_SZ. If this
// technique is used, then the data is given in binary format, one byte per
// field.
//
TSetupInstallFromInfSectionA = function(Owner: HWND; InfHandle: HINF;
const SectionName: PAnsiChar; Flags: UINT; RelativeKeyRoot: HKEY;
const SourceRootPath: PAnsiChar; CopyFlags: UINT; MsgHandler: TSPFileCallbackA;
Context: Pointer; DeviceInfoSet: HDEVINFO; DeviceIn: PSPDevInfoData): BOOL; stdcall;
TSetupInstallFromInfSectionW = function(Owner: HWND; InfHandle: HINF;
const SectionName: PWideChar; Flags: UINT; RelativeKeyRoot: HKEY;
const SourceRootPath: PWideChar; CopyFlags: UINT; MsgHandler: TSPFileCallbackW;
Context: Pointer; DeviceInfoSet: HDEVINFO; DeviceIn: PSPDevInfoData): BOOL; stdcall;
TSetupInstallFromInfSection = function(Owner: HWND; InfHandle: HINF;
const SectionName: PTSTR; Flags: UINT; RelativeKeyRoot: HKEY;
const SourceRootPath: PTSTR; CopyFlags: UINT; MsgHandler: TSPFileCallback;
Context: Pointer; DeviceInfoSet: HDEVINFO; DeviceIn: PSPDevInfoData): BOOL; stdcall;
TSetupInstallFilesFromInfSectionA = function(InfHandle: HINF; LayoutInfHandle: HINF;
FileQueue: HSPFILEQ; const SectionName, SourceRootPath: PAnsiChar;
CopyFlags: UINT): BOOL; stdcall;
TSetupInstallFilesFromInfSectionW = function(InfHandle: HINF; LayoutInfHandle: HINF;
FileQueue: HSPFILEQ; const SectionName, SourceRootPath: PWideChar;
CopyFlags: UINT): BOOL; stdcall;
TSetupInstallFilesFromInfSection = function(InfHandle: HINF; LayoutInfHandle: HINF;
FileQueue: HSPFILEQ; const SectionName, SourceRootPath: PTSTR;
CopyFlags: UINT): BOOL; stdcall;
TSetupInstallServicesFromInfSectionA = function(InfHandle: HINF;
const SectionName: PAnsiChar; Flags: DWORD): BOOL; stdcall;
TSetupInstallServicesFromInfSectionW = function(InfHandle: HINF;
const SectionName: PWideChar; Flags: DWORD): BOOL; stdcall;
TSetupInstallServicesFromInfSection = function(InfHandle: HINF;
const SectionName: PTSTR; Flags: DWORD): BOOL; stdcall;
TSetupInstallServicesFromInfSectionExA = function(InfHandle: HINF;
const SectionName: PAnsiChar; Flags: DWORD; DeviceInfoSet: HDEVINFO;
DeviceInfoData: TSPDevInfoData; Reserved1, Reserved2: Pointer): BOOL; stdcall;
TSetupInstallServicesFromInfSectionExW = function(InfHandle: HINF;
const SectionName: PWideChar; Flags: DWORD; DeviceInfoSet: HDEVINFO;
DeviceInfoData: TSPDevInfoData; Reserved1, Reserved2: Pointer): BOOL; stdcall;
TSetupInstallServicesFromInfSectionEx = function(InfHandle: HINF;
const SectionName: PTSTR; Flags: DWORD; DeviceInfoSet: HDEVINFO;
DeviceInfoData: TSPDevInfoData; Reserved1, Reserved2: Pointer): BOOL; stdcall;
{$IFDEF WINXP_UP}
TInstallHinfSectionA = procedure(Window: HWND; ModuleHandle: HINST;
CommandLine: PAnsiChar; ShowCommand: Integer); stdcall;
TInstallHinfSectionW = procedure(Window: HWND; ModuleHandle: HINST;
CommandLine: PWideChar; ShowCommand: Integer); stdcall;
TInstallHinfSection = procedure (Window: HWND; ModuleHandle: HINST;
CommandLine: PTSTR; ShowCommand: Integer); stdcall;
{$ENDIF WINXP_UP}
//
// Define handle type for Setup file log.
//
type
HSPFILELOG = Pointer;
{$EXTERNALSYM HSPFILELOG}
TSetupInitializeFileLogA = function(const LogFileName: PAnsiChar; Flags: DWORD): HSPFILELOG; stdcall;
TSetupInitializeFileLogW = function(const LogFileName: PWideChar; Flags: DWORD): HSPFILELOG; stdcall;
TSetupInitializeFileLog = function(const LogFileName: PTSTR; Flags: DWORD): HSPFILELOG; stdcall;
TSetupTerminateFileLog = function(FileLogHandle: HSPFILELOG): BOOL; stdcall;
TSetupLogFileA = function(FileLogHandle: HSPFILELOG; const LogSectionName,
SourceFilename, TargetFilename: PAnsiChar; Checksum: DWORD; DiskTagfile,
DiskDescription, OtherInfo: PAnsiChar; Flags: DWORD): BOOL; stdcall;
TSetupLogFileW = function(FileLogHandle: HSPFILELOG; const LogSectionName,
SourceFilename, TargetFilename: PWideChar; Checksum: DWORD; DiskTagfile,
DiskDescription, OtherInfo: PWideChar; Flags: DWORD): BOOL; stdcall;
TSetupLogFile = function(FileLogHandle: HSPFILELOG; const LogSectionName,
SourceFilename, TargetFilename: PTSTR; Checksum: DWORD; DiskTagfile,
DiskDescription, OtherInfo: PTSTR; Flags: DWORD): BOOL; stdcall;
TSetupRemoveFileLogEntryA = function(FileLogHandle: HSPFILELOG;
const LogSectionName: PAnsiChar; const TargetFilename: PAnsiChar): BOOL; stdcall;
TSetupRemoveFileLogEntryW = function(FileLogHandle: HSPFILELOG;
const LogSectionName: PWideChar; const TargetFilename: PWideChar): BOOL; stdcall;
TSetupRemoveFileLogEntry = function(FileLogHandle: HSPFILELOG;
const LogSectionName: PTSTR; const TargetFilename: PTSTR): BOOL; stdcall;
TSetupQueryFileLogA = function(FileLogHandle: HSPFILELOG; const LogSectionName,
TargetFilename: PAnsiChar; DesiredInfo: SetupFileLogInfo; DataOut: PAnsiChar;
ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupQueryFileLogW = function(FileLogHandle: HSPFILELOG; const LogSectionName,
TargetFilename: PWideChar; DesiredInfo: SetupFileLogInfo; DataOut: PWideChar;
ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupQueryFileLog = function(FileLogHandle: HSPFILELOG; const LogSectionName,
TargetFilename: PTSTR; DesiredInfo: SetupFileLogInfo; DataOut: PTSTR;
ReturnBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
//
// Text logging APIs
//
TSetupOpenLog = function(Erase: BOOL): BOOL; stdcall;
TSetupLogErrorA = function(const MessageString: PAnsiChar; Severity: LOGSEVERITY): BOOL; stdcall;
TSetupLogErrorW = function(const MessageString: PWideChar; Severity: LOGSEVERITY): BOOL; stdcall;
TSetupLogError = function(const MessageString: PTSTR; Severity: LOGSEVERITY): BOOL; stdcall;
TSetupCloseLog = procedure; stdcall;
//
// Backup Information API
//
{$IFDEF WIN2000_UP}
TSetupGetBackupInformationA = function(QueueHandle: HSPFILEQ;
var BackupParams: TSPBackupQueueParamsA): BOOL; stdcall;
TSetupGetBackupInformationW = function(QueueHandle: HSPFILEQ;
var BackupParams: TSPBackupQueueParamsW): BOOL; stdcall;
TSetupGetBackupInformation = function(QueueHandle: HSPFILEQ;
var BackupParams: TSPBackupQueueParams): BOOL; stdcall;
{$ENDIF WIN2000_UP}
{$IFDEF WINXP_UP}
TSetupPrepareQueueForRestoreA = function(QueueHandle: HSPFILEQ;
BackupPath: PAnsiChar; RestoreFlags: DWORD): BOOL; stdcall;
TSetupPrepareQueueForRestoreW = function(QueueHandle: HSPFILEQ;
BackupPath: PWideChar; RestoreFlags: DWORD): BOOL; stdcall;
TSetupPrepareQueueForRestore = function(QueueHandle: HSPFILEQ;
BackupPath: PTSTR; RestoreFlags: DWORD): BOOL; stdcall;
TSetupSetNonInteractiveMode = function(NonInteractiveFlag: BOOL): BOOL; stdcall;
TSetupGetNonInteractiveMode = function: BOOL; stdcall;
{$ENDIF WINXP_UP}
//
// Device Installer APIs
//
TSetupDiCreateDeviceInfoList = function(ClassGuid: PGUID; hwndParent: HWND): HDEVINFO; stdcall;
TSetupDiCreateDeviceInfoListExA = function(ClassGuid: PGUID; hwndParent: HWND;
const MachineName: PAnsiChar; Reserved: Pointer): HDEVINFO; stdcall;
TSetupDiCreateDeviceInfoListExW = function(ClassGuid: PGUID; hwndParent: HWND;
const MachineName: PWideChar; Reserved: Pointer): HDEVINFO; stdcall;
TSetupDiCreateDeviceInfoListEx = function(ClassGuid: PGUID; hwndParent: HWND;
const MachineName: PTSTR; Reserved: Pointer): HDEVINFO; stdcall;
TSetupDiGetDeviceInfoListClass = function(DeviceInfoSet: HDEVINFO;
var ClassGuid: TGUID): BOOL; stdcall;
TSetupDiGetDeviceInfoListDetailA = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoSetDetailData: TSPDevInfoListDetailDataA): BOOL; stdcall;
TSetupDiGetDeviceInfoListDetailW = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoSetDetailData: TSPDevInfoListDetailDataW): BOOL; stdcall;
TSetupDiGetDeviceInfoListDetail = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoSetDetailData: TSPDevInfoListDetailData): BOOL; stdcall;
TSetupDiCreateDeviceInfoA = function(DeviceInfoSet: HDEVINFO; const DeviceName: PAnsiChar;
var ClassGuid: TGUID; const DeviceDescription: PAnsiChar; hwndParent: HWND;
CreationFlags: DWORD; DeviceInfoData: PSPDevInfoData): BOOL; stdcall;
TSetupDiCreateDeviceInfoW = function(DeviceInfoSet: HDEVINFO; const DeviceName: PWideChar;
var ClassGuid: TGUID; const DeviceDescription: PWideChar; hwndParent: HWND;
CreationFlags: DWORD; DeviceInfoData: PSPDevInfoData): BOOL; stdcall;
TSetupDiCreateDeviceInfo = function(DeviceInfoSet: HDEVINFO; const DeviceName: PTSTR;
var ClassGuid: TGUID; const DeviceDescription: PTSTR; hwndParent: HWND;
CreationFlags: DWORD; DeviceInfoData: PSPDevInfoData): BOOL; stdcall;
TSetupDiOpenDeviceInfoA = function(DeviceInfoSet: HDEVINFO;
const DeviceInstanceId: PAnsiChar; hwndParent: HWND; OpenFlags: DWORD;
var DeviceInfoData: TSPDevInfoData): BOOL; stdcall;
TSetupDiOpenDeviceInfoW = function(DeviceInfoSet: HDEVINFO;
const DeviceInstanceId: PWideChar; hwndParent: HWND; OpenFlags: DWORD;
var DeviceInfoData: TSPDevInfoData): BOOL; stdcall;
TSetupDiOpenDeviceInfo = function(DeviceInfoSet: HDEVINFO;
const DeviceInstanceId: PTSTR; hwndParent: HWND; OpenFlags: DWORD;
var DeviceInfoData: TSPDevInfoData): BOOL; stdcall;
TSetupDiGetDeviceInstanceIdA = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; DeviceInstanceId: PAnsiChar;
DeviceInstanceIdSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupDiGetDeviceInstanceIdW = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; DeviceInstanceId: PWideChar;
DeviceInstanceIdSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupDiGetDeviceInstanceId = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; DeviceInstanceId: PTSTR;
DeviceInstanceIdSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupDiDeleteDeviceInfo = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData): BOOL; stdcall;
TSetupDiEnumDeviceInfo = function(DeviceInfoSet: HDEVINFO;
MemberIndex: DWORD; var DeviceInfoData: TSPDevInfoData): BOOL; stdcall;
TSetupDiDestroyDeviceInfoList = function(DeviceInfoSet: HDEVINFO): BOOL; stdcall;
TSetupDiEnumDeviceInterfaces = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; const InterfaceClassGuid: TGUID;
MemberIndex: DWORD; var DeviceInterfaceData: TSPDeviceInterfaceData): BOOL; stdcall;
//
// Backward compatibility--do not use
//
TSetupDiEnumInterfaceDevice = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var InterfaceClassGuid: TGUID;
MemberIndex: DWORD; var DeviceInterfaceData: TSPDeviceInterfaceData): BOOL; stdcall;
TSetupDiCreateDeviceInterfaceA = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; var InterfaceClassGuid: TGUID;
const ReferenceString: PAnsiChar; CreationFlags: DWORD;
DeviceInterfaceData: PSPDeviceInterfaceData): BOOL; stdcall;
TSetupDiCreateDeviceInterfaceW = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; var InterfaceClassGuid: TGUID;
const ReferenceString: PWideChar; CreationFlags: DWORD;
DeviceInterfaceData: PSPDeviceInterfaceData): BOOL; stdcall;
TSetupDiCreateDeviceInterface = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; var InterfaceClassGuid: TGUID;
const ReferenceString: PTSTR; CreationFlags: DWORD;
DeviceInterfaceData: PSPDeviceInterfaceData): BOOL; stdcall;
//
// Backward compatibility--do not use.
//
TSetupDiCreateInterfaceDeviceA = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; var InterfaceClassGuid: TGUID;
const ReferenceString: PAnsiChar; CreationFlags: DWORD;
DeviceInterfaceData: PSPDeviceInterfaceData): BOOL; stdcall;
TSetupDiCreateInterfaceDeviceW = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; var InterfaceClassGuid: TGUID;
const ReferenceString: PWideChar; CreationFlags: DWORD;
DeviceInterfaceData: PSPDeviceInterfaceData): BOOL; stdcall;
TSetupDiCreateInterfaceDevice = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; var InterfaceClassGuid: TGUID;
const ReferenceString: PTSTR; CreationFlags: DWORD;
DeviceInterfaceData: PSPDeviceInterfaceData): BOOL; stdcall;
TSetupDiOpenDeviceInterfaceA = function(DeviceInfoSet: HDEVINFO;
const DevicePath: PAnsiChar; OpenFlags: DWORD;
DeviceInterfaceData: PSPDeviceInterfaceData): BOOL; stdcall;
TSetupDiOpenDeviceInterfaceW = function(DeviceInfoSet: HDEVINFO;
const DevicePath: PWideChar; OpenFlags: DWORD;
DeviceInterfaceData: PSPDeviceInterfaceData): BOOL; stdcall;
TSetupDiOpenDeviceInterface = function(DeviceInfoSet: HDEVINFO;
const DevicePath: PTSTR; OpenFlags: DWORD;
DeviceInterfaceData: PSPDeviceInterfaceData): BOOL; stdcall;
//
// Backward compatibility--do not use
//
TSetupDiOpenInterfaceDeviceA = function(DeviceInfoSet: HDEVINFO;
const DevicePath: PAnsiChar; OpenFlags: DWORD;
DeviceInterfaceData: PSPDeviceInterfaceData): BOOL; stdcall;
TSetupDiOpenInterfaceDeviceW = function(DeviceInfoSet: HDEVINFO;
const DevicePath: PWideChar; OpenFlags: DWORD;
DeviceInterfaceData: PSPDeviceInterfaceData): BOOL; stdcall;
TSetupDiOpenInterfaceDevice = function(DeviceInfoSet: HDEVINFO;
const DevicePath: PTSTR; OpenFlags: DWORD;
DeviceInterfaceData: PSPDeviceInterfaceData): BOOL; stdcall;
TSetupDiGetDeviceInterfaceAlias = function(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData; var AliasInterfaceClassGuid: TGUID;
var AliasDeviceInterfaceData: TSPDeviceInterfaceData): BOOL; stdcall;
//
// Backward compatibility--do not use.
//
TSetupDiGetInterfaceDeviceAlias = function(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData;
var AliasInterfaceClassGuid: TGUID;
var AliasDeviceInterfaceData: TSPDeviceInterfaceData): BOOL; stdcall;
TSetupDiDeleteDeviceInterfaceData = function(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData): BOOL; stdcall;
//
// Backward compatibility--do not use.
//
TSetupDiDeleteInterfaceDeviceData = function(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData): BOOL; stdcall;
TSetupDiRemoveDeviceInterface = function(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData): BOOL; stdcall;
//
// Backward compatibility--do not use.
//
TSetupDiRemoveInterfaceDevice = function(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData): BOOL; stdcall;
TSetupDiGetDeviceInterfaceDetailA = function(DeviceInfoSet: HDEVINFO;
DeviceInterfaceData: PSPDeviceInterfaceData;
DeviceInterfaceDetailData: PSPDeviceInterfaceDetailDataA;
DeviceInterfaceDetailDataSize: DWORD; var RequiredSize: DWORD;
Device: PSPDevInfoData): BOOL; stdcall;
TSetupDiGetDeviceInterfaceDetailW = function(DeviceInfoSet: HDEVINFO;
DeviceInterfaceData: PSPDeviceInterfaceData;
DeviceInterfaceDetailData: PSPDeviceInterfaceDetailDataW;
DeviceInterfaceDetailDataSize: DWORD; var RequiredSize: DWORD;
Device: PSPDevInfoData): BOOL; stdcall;
TSetupDiGetDeviceInterfaceDetail = function(DeviceInfoSet: HDEVINFO;
DeviceInterfaceData: PSPDeviceInterfaceData;
DeviceInterfaceDetailData: PSPDeviceInterfaceDetailData;
DeviceInterfaceDetailDataSize: DWORD; var RequiredSize: DWORD;
Device: PSPDevInfoData): BOOL; stdcall;
//
// Backward compatibility--do not use.
//
TSetupDiGetInterfaceDeviceDetailA = function(DeviceInfoSet: HDEVINFO;
DeviceInterfaceData: PSPDeviceInterfaceData;
DeviceInterfaceDetailData: PSPDeviceInterfaceDetailDataA;
DeviceInterfaceDetailDataSize: DWORD; RequiredSize: PDWORD;
Device: PSPDevInfoData): BOOL; stdcall;
TSetupDiGetInterfaceDeviceDetailW = function(DeviceInfoSet: HDEVINFO;
DeviceInterfaceData: PSPDeviceInterfaceData;
DeviceInterfaceDetailData: PSPDeviceInterfaceDetailDataW;
DeviceInterfaceDetailDataSize: DWORD; RequiredSize: PDWORD;
Device: PSPDevInfoData): BOOL; stdcall;
TSetupDiGetInterfaceDeviceDetail = function(DeviceInfoSet: HDEVINFO;
DeviceInterfaceData: PSPDeviceInterfaceData;
DeviceInterfaceDetailData: PSPDeviceInterfaceDetailData;
DeviceInterfaceDetailDataSize: DWORD; RequiredSize: PDWORD;
Device: PSPDevInfoData): BOOL; stdcall;
//
// Default install handler for DIF_INSTALLINTERFACES.
//
TSetupDiInstallDeviceInterfaces = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData): BOOL; stdcall;
//
// Backward compatibility--do not use.
//
TSetupDiInstallInterfaceDevices = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData): BOOL; stdcall;
{$IFDEF WINXP_UP}
TSetupDiSetDeviceInterfaceDefault = function(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData; Flags: DWORD;
Reserved: Pointer): BOOL; stdcall;
{$ENDIF WINXP_UP}
//
// Default install handler for DIF_REGISTERDEVICE
//
TSetupDiRegisterDeviceInfo = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; Flags: DWORD; CompareProc: TSPDetSigCmpProc;
CompareContext: Pointer; DupDeviceInfoData: PSPDevInfoData): BOOL; stdcall;
TSetupDiBuildDriverInfoList = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; DriverType: DWORD): BOOL; stdcall;
TSetupDiCancelDriverInfoSearch = function(DeviceInfoSet: HDEVINFO): BOOL; stdcall;
TSetupDiEnumDriverInfoA = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; DriverType: DWORD; MemberIndex: DWORD;
var DriverInfoData: TSPDrvInfoDataA): BOOL; stdcall;
TSetupDiEnumDriverInfoW = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; DriverType: DWORD; MemberIndex: DWORD;
var DriverInfoData: TSPDrvInfoDataW): BOOL; stdcall;
TSetupDiEnumDriverInfo = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; DriverType: DWORD; MemberIndex: DWORD;
var DriverInfoData: TSPDrvInfoData): BOOL; stdcall;
TSetupDiGetSelectedDriverA = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var DriverInfoData: TSPDrvInfoDataA): BOOL; stdcall;
TSetupDiGetSelectedDriverW = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var DriverInfoData: TSPDrvInfoDataW): BOOL; stdcall;
TSetupDiGetSelectedDriver = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var DriverInfoData: TSPDrvInfoData): BOOL; stdcall;
TSetupDiSetSelectedDriverA = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; DriverInfoData: PSPDrvInfoDataA): BOOL; stdcall;
TSetupDiSetSelectedDriverW = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; DriverInfoData: PSPDrvInfoDataW): BOOL; stdcall;
TSetupDiSetSelectedDriver = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; DriverInfoData: PSPDrvInfoData): BOOL; stdcall;
TSetupDiGetDriverInfoDetailA = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var DriverInfoData: TSPDrvInfoDataA;
DriverInfoDetailData: PSPDrvInfoDetailDataA; DriverInfoDetailDataSize: DWORD;
RequiredSize: PDWORD): BOOL; stdcall;
TSetupDiGetDriverInfoDetailW = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var DriverInfoData: TSPDrvInfoDataW;
DriverInfoDetailData: PSPDrvInfoDetailDataW; DriverInfoDetailDataSize: DWORD;
RequiredSize: PDWORD): BOOL; stdcall;
TSetupDiGetDriverInfoDetail = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var DriverInfoData: TSPDrvInfoData;
DriverInfoDetailData: PSPDrvInfoDetailData; DriverInfoDetailDataSize: DWORD;
RequiredSize: PDWORD): BOOL; stdcall;
TSetupDiDestroyDriverInfoList = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; DriverType: DWORD): BOOL; stdcall;
TSetupDiGetClassDevsA = function(ClassGuid: PGUID; const Enumerator: PAnsiChar;
hwndParent: HWND; Flags: DWORD): HDEVINFO; stdcall;
TSetupDiGetClassDevsW = function(ClassGuid: PGUID; const Enumerator: PWideChar;
hwndParent: HWND; Flags: DWORD): HDEVINFO; stdcall;
TSetupDiGetClassDevs = function(ClassGuid: PGUID; const Enumerator: PTSTR;
hwndParent: HWND; Flags: DWORD): HDEVINFO; stdcall;
TSetupDiGetClassDevsExA = function(ClassGuid: PGUID; const Enumerator: PAnsiChar;
hwndParent: HWND; Flags: DWORD; DeviceInfoSet: HDEVINFO; const MachineName: PAnsiChar;
Reserved: Pointer): HDEVINFO; stdcall;
TSetupDiGetClassDevsExW = function(ClassGuid: PGUID; const Enumerator: PWideChar;
hwndParent: HWND; Flags: DWORD; DeviceInfoSet: HDEVINFO; const MachineName: PWideChar;
Reserved: Pointer): HDEVINFO; stdcall;
TSetupDiGetClassDevsEx = function(ClassGuid: PGUID; const Enumerator: PTSTR;
hwndParent: HWND; Flags: DWORD; DeviceInfoSet: HDEVINFO; const MachineName: PTSTR;
Reserved: Pointer): HDEVINFO; stdcall;
TSetupDiGetINFClassA = function(const InfName: PAnsiChar; var ClassGuid: TGUID;
ClassName: PAnsiChar; ClassNameSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupDiGetINFClassW = function(const InfName: PWideChar; var ClassGuid: TGUID;
ClassName: PWideChar; ClassNameSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupDiGetINFClass = function(const InfName: PTSTR; var ClassGuid: TGUID;
ClassName: PTSTR; ClassNameSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupDiBuildClassInfoList = function(Flags: DWORD; ClassGuidList: PGUID;
ClassGuidListSize: DWORD; var RequiredSize: DWORD): BOOL; stdcall;
TSetupDiBuildClassInfoListExA = function(Flags: DWORD; ClassGuidList: PGUID;
ClassGuidListSize: DWORD; var RequiredSize: DWORD; const MachineName: PAnsiChar;
Reserved: Pointer): BOOL; stdcall;
TSetupDiBuildClassInfoListExW = function(Flags: DWORD; ClassGuidList: PGUID;
ClassGuidListSize: DWORD; var RequiredSize: DWORD; const MachineName: PWideChar;
Reserved: Pointer): BOOL; stdcall;
TSetupDiBuildClassInfoListEx = function(Flags: DWORD; ClassGuidList: PGUID;
ClassGuidListSize: DWORD; var RequiredSize: DWORD; const MachineName: PTSTR;
Reserved: Pointer): BOOL; stdcall;
TSetupDiGetClassDescriptionA = function(var ClassGuid: TGUID; ClassDescription: PAnsiChar;
ClassDescriptionSize: DWORD; var RequiredSize: DWORD): BOOL; stdcall;
TSetupDiGetClassDescriptionW = function(var ClassGuid: TGUID; ClassDescription: PWideChar;
ClassDescriptionSize: DWORD; var RequiredSize: DWORD): BOOL; stdcall;
TSetupDiGetClassDescription = function(var ClassGuid: TGUID; ClassDescription: PTSTR;
ClassDescriptionSize: DWORD; var RequiredSize: DWORD): BOOL; stdcall;
TSetupDiGetClassDescriptionExA = function(var ClassGuid: TGUID;
ClassDescription: PAnsiChar; ClassDescriptionSize: DWORD; var RequiredSize: DWORD;
const MachineName: PAnsiChar; Reserved: Pointer): BOOL; stdcall;
TSetupDiGetClassDescriptionExW = function(var ClassGuid: TGUID;
ClassDescription: PWideChar; ClassDescriptionSize: DWORD; var RequiredSize: DWORD;
const MachineName: PWideChar; Reserved: Pointer): BOOL; stdcall;
TSetupDiGetClassDescriptionEx = function(var ClassGuid: TGUID;
ClassDescription: PTSTR; ClassDescriptionSize: DWORD; var RequiredSize: DWORD;
const MachineName: PTSTR; Reserved: Pointer): BOOL; stdcall;
TSetupDiCallClassInstaller = function(InstallFunction: DI_FUNCTION;
DeviceInfoSet: HDEVINFO; DeviceInfoData: PSPDevInfoData): BOOL; stdcall;
//
// Default install handler for DIF_SELECTDEVICE
//
TSetupDiSelectDevice = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData): BOOL; stdcall;
//
// Default install handler for DIF_SELECTBESTCOMPATDRV
//
TSetupDiSelectBestCompatDrv = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData): BOOL; stdcall;
//
// Default install handler for DIF_INSTALLDEVICE
//
TSetupDiInstallDevice = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData): BOOL; stdcall;
//
// Default install handler for DIF_INSTALLDEVICEFILES
//
TSetupDiInstallDriverFiles = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData): BOOL; stdcall;
//
// Default install handler for DIF_REGISTER_COINSTALLERS
//
TSetupDiRegisterCoDeviceInstallers = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData): BOOL; stdcall;
//
// Default install handler for DIF_REMOVE
//
TSetupDiRemoveDevice = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData): BOOL; stdcall;
//
// Default install handler for DIF_UNREMOVE
//
TSetupDiUnremoveDevice = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData): BOOL; stdcall;
//
// Default install handler for DIF_MOVEDEVICE
//
TSetupDiMoveDuplicateDevice = function(DeviceInfoSet: HDEVINFO;
var DestinationDeviceInfoData: TSPDevInfoData): BOOL; stdcall;
//
// Default install handler for DIF_PROPERTYCHANGE
//
TSetupDiChangeState = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData): BOOL; stdcall;
TSetupDiInstallClassA = function(hwndParent: HWND; const InfFileName: PAnsiChar;
Flags: DWORD; FileQueue: HSPFILEQ): BOOL; stdcall;
TSetupDiInstallClassW = function(hwndParent: HWND; const InfFileName: PWideChar;
Flags: DWORD; FileQueue: HSPFILEQ): BOOL; stdcall;
TSetupDiInstallClass = function(hwndParent: HWND; const InfFileName: PTSTR;
Flags: DWORD; FileQueue: HSPFILEQ): BOOL; stdcall;
TSetupDiInstallClassExA = function(hwndParent: HWND; const InfFileName: PAnsiChar;
Flags: DWORD; FileQueue: HSPFILEQ; InterfaceClassGuid: PGUID; Reserved1,
Reserved2: Pointer): BOOL; stdcall;
TSetupDiInstallClassExW = function(hwndParent: HWND; const InfFileName: PWideChar;
Flags: DWORD; FileQueue: HSPFILEQ; InterfaceClassGuid: PGUID; Reserved1,
Reserved2: Pointer): BOOL; stdcall;
TSetupDiInstallClassEx = function(hwndParent: HWND; const InfFileName: PTSTR;
Flags: DWORD; FileQueue: HSPFILEQ; InterfaceClassGuid: PGUID; Reserved1,
Reserved2: Pointer): BOOL; stdcall;
TSetupDiOpenClassRegKey = function(ClassGuid: PGUID; samDesired: REGSAM): HKEY; stdcall;
TSetupDiOpenClassRegKeyExA = function(ClassGuid: PGUID; samDesired: REGSAM;
Flags: DWORD; const MachineName: PAnsiChar; Reserved: Pointer): HKEY; stdcall;
TSetupDiOpenClassRegKeyExW = function(ClassGuid: PGUID; samDesired: REGSAM;
Flags: DWORD; const MachineName: PWideChar; Reserved: Pointer): HKEY; stdcall;
TSetupDiOpenClassRegKeyEx = function(ClassGuid: PGUID; samDesired: REGSAM;
Flags: DWORD; const MachineName: PTSTR; Reserved: Pointer): HKEY; stdcall;
TSetupDiCreateDeviceInterfaceRegKeyA = function(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData; Reserved: DWORD;
samDesired: REGSAM; InfHandle: HINF; const InfSectionName: PAnsiChar): HKEY; stdcall;
TSetupDiCreateDeviceInterfaceRegKeyW = function(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData; Reserved: DWORD;
samDesired: REGSAM; InfHandle: HINF; const InfSectionName: PWideChar): HKEY; stdcall;
TSetupDiCreateDeviceInterfaceRegKey = function(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData; Reserved: DWORD;
samDesired: REGSAM; InfHandle: HINF; const InfSectionName: PTSTR): HKEY; stdcall;
//
// Backward compatibility--do not use.
//
TSetupDiCreateInterfaceDeviceRegKeyA = function(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData; Reserved: DWORD;
samDesired: REGSAM; InfHandle: HINF; const InfSectionName: PAnsiChar): HKEY; stdcall;
TSetupDiCreateInterfaceDeviceRegKeyW = function(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData; Reserved: DWORD;
samDesired: REGSAM; InfHandle: HINF; const InfSectionName: PWideChar): HKEY; stdcall;
TSetupDiCreateInterfaceDeviceRegKey = function(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData; Reserved: DWORD;
samDesired: REGSAM; InfHandle: HINF; const InfSectionName: PTSTR): HKEY; stdcall;
TSetupDiOpenDeviceInterfaceRegKey = function(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData; Reserved: DWORD;
samDesired: REGSAM): HKEY; stdcall;
//
// Backward compatibility--do not use.
//
TSetupDiOpenInterfaceDeviceRegKey = function(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData; Reserved: DWORD;
samDesired: REGSAM): HKEY; stdcall;
TSetupDiDeleteDeviceInterfaceRegKey = function(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData; Reserved: DWORD): BOOL; stdcall;
//
// Backward compatibility--do not use.
//
TSetupDiDeleteInterfaceDeviceRegKey = function(DeviceInfoSet: HDEVINFO;
var DeviceInterfaceData: TSPDeviceInterfaceData; Reserved: DWORD): BOOL; stdcall;
TSetupDiCreateDevRegKeyA = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; Scope, HwProfile, KeyType: DWORD;
InfHandle: HINF; const InfSectionName: PAnsiChar): HKEY; stdcall;
TSetupDiCreateDevRegKeyW = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; Scope, HwProfile, KeyType: DWORD;
InfHandle: HINF; const InfSectionName: PWideChar): HKEY; stdcall;
TSetupDiCreateDevRegKey = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; Scope, HwProfile, KeyType: DWORD;
InfHandle: HINF; const InfSectionName: PTSTR): HKEY; stdcall;
TSetupDiOpenDevRegKey = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; Scope, HwProfile, KeyType: DWORD;
samDesired: REGSAM): HKEY; stdcall;
TSetupDiDeleteDevRegKey = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; Scope, HwProfile,
KeyType: DWORD): BOOL; stdcall;
TSetupDiGetHwProfileList = function(HwProfileList: PDWORD; HwProfileListSize: DWORD;
var RequiredSize: DWORD; CurrentlyActiveIndex: PDWORD): BOOL; stdcall;
TSetupDiGetHwProfileListExA = function(HwProfileList: PDWORD;
HwProfileListSize: DWORD; var RequiredSize: DWORD; CurrentlyActiveIndex: PDWORD;
const MachineName: PAnsiChar; Reserved: Pointer): BOOL; stdcall;
TSetupDiGetHwProfileListExW = function(HwProfileList: PDWORD;
HwProfileListSize: DWORD; var RequiredSize: DWORD; CurrentlyActiveIndex: PDWORD;
const MachineName: PWideChar; Reserved: Pointer): BOOL; stdcall;
TSetupDiGetHwProfileListEx = function(HwProfileList: PDWORD;
HwProfileListSize: DWORD; var RequiredSize: DWORD; CurrentlyActiveIndex: PDWORD;
const MachineName: PTSTR; Reserved: Pointer): BOOL; stdcall;
TSetupDiGetDeviceRegistryPropertyA = function(DeviceInfoSet: HDEVINFO;
const DeviceInfoData: TSPDevInfoData; Property_: DWORD;
var PropertyRegDataType: DWORD; PropertyBuffer: PBYTE; PropertyBufferSize: DWORD;
var RequiredSize: DWORD): BOOL; stdcall;
TSetupDiGetDeviceRegistryPropertyW = function(DeviceInfoSet: HDEVINFO;
const DeviceInfoData: TSPDevInfoData; Property_: DWORD;
var PropertyRegDataType: DWORD; PropertyBuffer: PBYTE; PropertyBufferSize: DWORD;
var RequiredSize: DWORD): BOOL; stdcall;
{$IFDEF UNICODE}
TSetupDiGetDeviceRegistryProperty = TSetupDiGetDeviceRegistryPropertyW;
{$ELSE}
TSetupDiGetDeviceRegistryProperty = TSetupDiGetDeviceRegistryPropertyA;
{$ENDIF UNICODE}
{$IFDEF WINXP_UP}
TSetupDiGetClassRegistryPropertyA = function(var ClassGuid: TGUID;
Property_: DWORD; PropertyRegDataType: PDWORD; PropertyBuffer: PBYTE;
PropertyBufferSize: DWORD; RequiredSize: PDWORD; const MachineName: PAnsiChar;
Reserved: Pointer): BOOL; stdcall;
TSetupDiGetClassRegistryPropertyW = function(var ClassGuid: TGUID;
Property_: DWORD; PropertyRegDataType: PDWORD; PropertyBuffer: PBYTE;
PropertyBufferSize: DWORD; RequiredSize: PDWORD; const MachineName: PWideChar;
Reserved: Pointer): BOOL; stdcall;
TSetupDiGetClassRegistryProperty = function(var ClassGuid: TGUID;
Property_: DWORD; PropertyRegDataType: PDWORD; PropertyBuffer: PBYTE;
PropertyBufferSize: DWORD; RequiredSize: PDWORD; const MachineName: PTSTR;
Reserved: Pointer): BOOL; stdcall;
{$ENDIF WINXP_UP}
TSetupDiSetDeviceRegistryPropertyA = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; Property_: DWORD;
const PropertyBuffer: PBYTE; PropertyBufferSize: DWORD): BOOL; stdcall;
TSetupDiSetDeviceRegistryPropertyW = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData; Property_: DWORD;
const PropertyBuffer: PBYTE; PropertyBufferSize: DWORD): BOOL; stdcall;
{$IFDEF UNICODE}
TSetupDiSetDeviceRegistryProperty = TSetupDiSetDeviceRegistryPropertyW;
{$ELSE}
TSetupDiSetDeviceRegistryProperty = TSetupDiSetDeviceRegistryPropertyA;
{$ENDIF UNICODE}
{$IFDEF WINXP_UP}
TSetupDiSetClassRegistryPropertyA = function(var ClassGuid: TGUID;
Property_: DWORD; const PropertyBuffer: PBYTE; PropertyBufferSize: DWORD;
const MachineName: PAnsiChar; Reserved: Pointer): BOOL; stdcall;
TSetupDiSetClassRegistryPropertyW = function(var ClassGuid: TGUID;
Property_: DWORD; const PropertyBuffer: PBYTE; PropertyBufferSize: DWORD;
const MachineName: PWideChar; Reserved: Pointer): BOOL; stdcall;
TSetupDiSetClassRegistryProperty = function(var ClassGuid: TGUID;
Property_: DWORD; const PropertyBuffer: PBYTE; PropertyBufferSize: DWORD;
const MachineName: PTSTR; Reserved: Pointer): BOOL; stdcall;
{$ENDIF WINXP_UP}
TSetupDiGetDeviceInstallParamsA = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData;
var DeviceInstallParams: TSPDevInstallParamsA): BOOL; stdcall;
TSetupDiGetDeviceInstallParamsW = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData;
var DeviceInstallParams: TSPDevInstallParamsW): BOOL; stdcall;
TSetupDiGetDeviceInstallParams = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData;
var DeviceInstallParams: TSPDevInstallParams): BOOL; stdcall;
TSetupDiGetClassInstallParamsA = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; ClassInstallParams: PSPClassInstallHeader;
ClassInstallParamsSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupDiGetClassInstallParamsW = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; ClassInstallParams: PSPClassInstallHeader;
ClassInstallParamsSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$IFDEF UNICODE}
TSetupDiGetClassInstallParams = TSetupDiGetClassInstallParamsW;
{$ELSE}
TSetupDiGetClassInstallParams = TSetupDiGetClassInstallParamsA;
{$ENDIF UNICODE}
TSetupDiSetDeviceInstallParamsA = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData;
var DeviceInstallParams: TSPDevInstallParamsA): BOOL; stdcall;
TSetupDiSetDeviceInstallParamsW = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData;
var DeviceInstallParams: TSPDevInstallParamsW): BOOL; stdcall;
TSetupDiSetDeviceInstallParams = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData;
var DeviceInstallParams: TSPDevInstallParams): BOOL; stdcall;
TSetupDiSetClassInstallParamsA = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; ClassInstallParams: PSPClassInstallHeader;
ClassInstallParamsSize: DWORD): BOOL; stdcall;
TSetupDiSetClassInstallParamsW = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; ClassInstallParams: PSPClassInstallHeader;
ClassInstallParamsSize: DWORD): BOOL; stdcall;
{$IFDEF UNICODE}
TSetupDiSetClassInstallParams = TSetupDiSetClassInstallParamsW;
{$ELSE}
TSetupDiSetClassInstallParams = TSetupDiSetClassInstallParamsA;
{$ENDIF UNICODE}
TSetupDiGetDriverInstallParamsA = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var DriverInfoData: TSPDrvInfoDataA;
var DriverInstallParams: TSPDrvInstallParams): BOOL; stdcall;
TSetupDiGetDriverInstallParamsW = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var DriverInfoData: TSPDrvInfoDataW;
var DriverInstallParams: TSPDrvInstallParams): BOOL; stdcall;
TSetupDiGetDriverInstallParams = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var DriverInfoData: TSPDrvInfoData;
var DriverInstallParams: TSPDrvInstallParams): BOOL; stdcall;
TSetupDiSetDriverInstallParamsA = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var DriverInfoData: TSPDrvInfoDataA;
var DriverInstallParams: TSPDrvInstallParams): BOOL; stdcall;
TSetupDiSetDriverInstallParamsW = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var DriverInfoData: TSPDrvInfoDataW;
var DriverInstallParams: TSPDrvInstallParams): BOOL; stdcall;
TSetupDiSetDriverInstallParams = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var DriverInfoData: TSPDrvInfoData;
var DriverInstallParams: TSPDrvInstallParams): BOOL; stdcall;
TSetupDiLoadClassIcon = function(var ClassGuid: TGUID; LargeIcon: PHICON;
MiniIconIndex: PINT): BOOL; stdcall;
TSetupDiDrawMiniIcon = function(hdc: HDC; rc: TRect; MiniIconIndex: Integer;
Flags: DWORD): Integer; stdcall;
TSetupDiGetClassBitmapIndex = function(ClassGuid: PGUID;
var MiniIconIndex: Integer): BOOL; stdcall;
TSetupDiGetClassImageList = function(
var ClassImageListData: TSPClassImageListData): BOOL; stdcall;
TSetupDiGetClassImageListExA = function(var ClassImageListData: TSPClassImageListData;
const MachineName: PAnsiChar; Reserved: Pointer): BOOL; stdcall;
TSetupDiGetClassImageListExW = function(var ClassImageListData: TSPClassImageListData;
const MachineName: PWideChar; Reserved: Pointer): BOOL; stdcall;
TSetupDiGetClassImageListEx = function(var ClassImageListData: TSPClassImageListData;
const MachineName: PTSTR; Reserved: Pointer): BOOL; stdcall;
TSetupDiGetClassImageIndex = function(var ClassImageListData: TSPClassImageListData;
var ClassGuid: TGUID; var ImageIndex: Integer): BOOL; stdcall;
TSetupDiDestroyClassImageList = function(
var ClassImageListData: TSPClassImageListData): BOOL; stdcall;
TSetupDiGetClassDevPropertySheetsA = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var PropertySheetHeader: TPropSheetHeaderA;
PropertySheetHeaderPageListSize: DWORD; RequiredSize: PDWORD;
PropertySheetType: DWORD): BOOL; stdcall;
TSetupDiGetClassDevPropertySheetsW = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var PropertySheetHeader: TPropSheetHeaderW;
PropertySheetHeaderPageListSize: DWORD; RequiredSize: PDWORD;
PropertySheetType: DWORD): BOOL; stdcall;
TSetupDiGetClassDevPropertySheets = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var PropertySheetHeader: TPropSheetHeader;
PropertySheetHeaderPageListSize: DWORD; RequiredSize: PDWORD;
PropertySheetType: DWORD): BOOL; stdcall;
TSetupDiAskForOEMDisk = function(DeviceInfoSet: HDEVINFO; DeviceInfoData: PSPDevInfoData): BOOL; stdcall;
TSetupDiSelectOEMDrv = function(hwndParent: HWND; DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData): BOOL; stdcall;
TSetupDiClassNameFromGuidA = function(var ClassGuid: TGUID; ClassName: PAnsiChar;
ClassNameSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupDiClassNameFromGuidW = function(var ClassGuid: TGUID; ClassName: PWideChar;
ClassNameSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupDiClassNameFromGuid = function(var ClassGuid: TGUID; ClassName: PTSTR;
ClassNameSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupDiClassNameFromGuidExA = function(var ClassGuid: TGUID; ClassName: PAnsiChar;
ClassNameSize: DWORD; RequiredSize: PDWORD; const MachineName: PAnsiChar;
Reserved: Pointer): BOOL; stdcall;
TSetupDiClassNameFromGuidExW = function(var ClassGuid: TGUID; ClassName: PWideChar;
ClassNameSize: DWORD; RequiredSize: PDWORD; const MachineName: PWideChar;
Reserved: Pointer): BOOL; stdcall;
TSetupDiClassNameFromGuidEx = function(var ClassGuid: TGUID; ClassName: PTSTR;
ClassNameSize: DWORD; RequiredSize: PDWORD; const MachineName: PTSTR;
Reserved: Pointer): BOOL; stdcall;
TSetupDiClassGuidsFromNameA = function(const ClassName: PAnsiChar; ClassGuidList: PGUID;
ClassGuidListSize: DWORD; var RequiredSize: DWORD): BOOL; stdcall;
TSetupDiClassGuidsFromNameW = function(const ClassName: PWideChar; ClassGuidList: PGUID;
ClassGuidListSize: DWORD; var RequiredSize: DWORD): BOOL; stdcall;
TSetupDiClassGuidsFromName = function(const ClassName: PTSTR; ClassGuidList: PGUID;
ClassGuidListSize: DWORD; var RequiredSize: DWORD): BOOL; stdcall;
TSetupDiClassGuidsFromNameExA = function(const ClassName: PAnsiChar; ClassGuidList: PGUID;
ClassGuidListSize: DWORD; var RequiredSize: DWORD; const MachineName: PAnsiChar;
Reserved: Pointer): BOOL; stdcall;
TSetupDiClassGuidsFromNameExW = function(const ClassName: PWideChar; ClassGuidList: PGUID;
ClassGuidListSize: DWORD; var RequiredSize: DWORD; const MachineName: PWideChar;
Reserved: Pointer): BOOL; stdcall;
TSetupDiClassGuidsFromNameEx = function(const ClassName: PTSTR; ClassGuidList: PGUID;
ClassGuidListSize: DWORD; var RequiredSize: DWORD; const MachineName: PTSTR;
Reserved: Pointer): BOOL; stdcall;
TSetupDiGetHwProfileFriendlyNameA = function(HwProfile: DWORD; FriendlyName: PAnsiChar;
FriendlyNameSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupDiGetHwProfileFriendlyNameW = function(HwProfile: DWORD; FriendlyName: PWideChar;
FriendlyNameSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupDiGetHwProfileFriendlyName = function(HwProfile: DWORD; FriendlyName: PTSTR;
FriendlyNameSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupDiGetHwProfileFriendlyNameExA = function(HwProfile: DWORD; FriendlyName: PAnsiChar;
FriendlyNameSize: DWORD; RequiredSize: PDWORD; const MachineName: PAnsiChar;
Reserved: Pointer): BOOL; stdcall;
TSetupDiGetHwProfileFriendlyNameExW = function(HwProfile: DWORD; FriendlyName: PWideChar;
FriendlyNameSize: DWORD; RequiredSize: PDWORD; const MachineName: PWideChar;
Reserved: Pointer): BOOL; stdcall;
TSetupDiGetHwProfileFriendlyNameEx = function(HwProfile: DWORD; FriendlyName: PTSTR;
FriendlyNameSize: DWORD; RequiredSize: PDWORD; const MachineName: PTSTR;
Reserved: Pointer): BOOL; stdcall;
TSetupDiGetWizardPage = function(DeviceInfoSet: HDEVINFO;
DeviceInfoData: PSPDevInfoData; var InstallWizardData: TSPInstallWizardData;
PageType: DWORD; Flags: DWORD): HPROPSHEETPAGE; stdcall;
TSetupDiGetSelectedDevice = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData): BOOL; stdcall;
TSetupDiSetSelectedDevice = function(DeviceInfoSet: HDEVINFO;
var DeviceInfoData: TSPDevInfoData): BOOL; stdcall;
TSetupDiGetActualSectionToInstallA = function(InfHandle: HINF;
const InfSectionName: PAnsiChar; InfSectionWithExt: PAnsiChar; InfSectionWithExtSize: DWORD;
RequiredSize: PDWORD; Extension: PPASTR): BOOL; stdcall;
TSetupDiGetActualSectionToInstallW = function(InfHandle: HINF;
const InfSectionName: PWideChar; InfSectionWithExt: PWideChar; InfSectionWithExtSize: DWORD;
RequiredSize: PDWORD; Extension: PPWSTR): BOOL; stdcall;
TSetupDiGetActualSectionToInstall = function(InfHandle: HINF;
const InfSectionName: PTSTR; InfSectionWithExt: PTSTR; InfSectionWithExtSize: DWORD;
RequiredSize: PDWORD; Extension: PPWSTR): BOOL; stdcall;
{$IFDEF WINXP_UP}
TSetupDiGetActualSectionToInstallExA = function(InfHandle: HINF;
InfSectionName: PAnsiChar; AlternatePlatformInfo: PSPAltPlatformInfo;
InfSectionWithExt: PAnsiChar; InfSectionWithExtSize: DWORD;
RequiredSize: PDWORD; Extension: PPASTR; Reserved: Pointer): BOOL; stdcall;
TSetupDiGetActualSectionToInstallExW = function(InfHandle: HINF;
InfSectionName: PWideChar; AlternatePlatformInfo: PSPAltPlatformInfo;
InfSectionWithExt: PWideChar; InfSectionWithExtSize: DWORD;
RequiredSize: PDWORD; Extension: PPWSTR; Reserved: Pointer): BOOL; stdcall;
TSetupDiGetActualSectionToInstallEx = function(InfHandle: HINF;
InfSectionName: PTSTR; AlternatePlatformInfo: PSPAltPlatformInfo;
InfSectionWithExt: PTSTR; InfSectionWithExtSize: DWORD;
RequiredSize: PDWORD; Extension: PPSTR; Reserved: Pointer): BOOL; stdcall;
TSetupEnumInfSectionsA = function(InfHandle: HINF; Index: UINT;
Buffer: PAnsiChar; Size: UINT; SizeNeeded: PUINT): BOOL; stdcall;
TSetupEnumInfSectionsW = function(InfHandle: HINF; Index: UINT;
Buffer: PWideChar; Size: UINT; SizeNeeded: PUINT): BOOL; stdcall;
TSetupEnumInfSections = function(InfHandle: HINF; Index: UINT;
Buffer: PTSTR; Size: UINT; SizeNeeded: PUINT): BOOL; stdcall;
TSetupVerifyInfFileA = function(InfName: PAnsiChar; AltPlatformInfo: PSPAltPlatformInfo;
var InfSignerInfo: TSPInfSignerInfoA): BOOL; stdcall;
TSetupVerifyInfFileW = function(InfName: PWideChar; AltPlatformInfo: PSPAltPlatformInfo;
var InfSignerInfo: TSPInfSignerInfoW): BOOL; stdcall;
TSetupVerifyInfFile = function(InfName: PTSTR; AltPlatformInfo: PSPAltPlatformInfo;
var InfSignerInfo: TSPInfSignerInfo): BOOL; stdcall;
TSetupDiGetCustomDevicePropertyA = function(DeviceInfoSet: HDEVINFO;
const DeviceInfoData: TSPDevInfoData; CustomPropertyName: PAnsiChar;
Flags: DWORD; PropertyRegDataType: PDWORD; PropertyBuffer: PBYTE;
PropertyBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupDiGetCustomDevicePropertyW = function(DeviceInfoSet: HDEVINFO;
const DeviceInfoData: TSPDevInfoData; CustomPropertyName: PWideChar;
Flags: DWORD; PropertyRegDataType: PDWORD; PropertyBuffer: PBYTE;
PropertyBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
TSetupDiGetCustomDeviceProperty = function(DeviceInfoSet: HDEVINFO;
const DeviceInfoData: TSPDevInfoData; CustomPropertyName: PTSTR;
Flags: DWORD; PropertyRegDataType: PDWORD; PropertyBuffer: PBYTE;
PropertyBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
{$ENDIF WINXP_UP}
var
{$IFDEF WINXP_UP}
SetupGetFileQueueCount: TSetupGetFileQueueCount;
SetupGetFileQueueFlags: TSetupGetFileQueueFlags;
SetupSetFileQueueFlags: TSetupSetFileQueueFlags;
{$ENDIF WINXP_UP}
SetupGetInfInformationA: TSetupGetInfInformationA;
SetupGetInfInformationW: TSetupGetInfInformationW;
SetupGetInfInformation: TSetupGetInfInformation;
SetupQueryInfFileInformationA: TSetupQueryInfFileInformationA;
SetupQueryInfFileInformationW: TSetupQueryInfFileInformationW;
SetupQueryInfFileInformation: TSetupQueryInfFileInformation;
{$IFDEF WIN2000_UP}
SetupQueryInfOriginalFileInformationA: TSetupQueryInfOriginalFileInformationA;
SetupQueryInfOriginalFileInformationW: TSetupQueryInfOriginalFileInformationW;
SetupQueryInfOriginalFileInformation: TSetupQueryInfOriginalFileInformation;
{$ENDIF WIN2000_UP}
SetupQueryInfVersionInformationA: TSetupQueryInfVersionInformationA;
SetupQueryInfVersionInformationW: TSetupQueryInfVersionInformationW;
SetupQueryInfVersionInformation: TSetupQueryInfVersionInformation;
SetupGetInfFileListA: TSetupGetInfFileListA;
SetupGetInfFileListW: TSetupGetInfFileListW;
SetupGetInfFileList: TSetupGetInfFileList;
SetupOpenInfFileA: TSetupOpenInfFileA;
SetupOpenInfFileW: TSetupOpenInfFileW;
SetupOpenInfFile: TSetupOpenInfFile;
SetupOpenMasterInf: TSetupOpenMasterInf;
SetupOpenAppendInfFileA: TSetupOpenAppendInfFileA;
SetupOpenAppendInfFileW: TSetupOpenAppendInfFileW;
SetupOpenAppendInfFile: TSetupOpenAppendInfFile;
SetupCloseInfFile: TSetupCloseInfFile;
SetupFindFirstLineA: TSetupFindFirstLineA;
SetupFindFirstLineW: TSetupFindFirstLineW;
SetupFindFirstLine: TSetupFindFirstLine;
SetupFindNextLine: TSetupFindNextLine;
SetupFindNextMatchLineA: TSetupFindNextMatchLineA;
SetupFindNextMatchLineW: TSetupFindNextMatchLineW;
SetupFindNextMatchLine: TSetupFindNextMatchLine;
SetupGetLineByIndexA: TSetupGetLineByIndexA;
SetupGetLineByIndexW: TSetupGetLineByIndexW;
SetupGetLineByIndex: TSetupGetLineByIndex;
SetupGetLineCountA: TSetupGetLineCountA;
SetupGetLineCountW: TSetupGetLineCountW;
SetupGetLineCount: TSetupGetLineCount;
SetupGetLineTextA: TSetupGetLineTextA;
SetupGetLineTextW: TSetupGetLineTextW;
SetupGetLineText: TSetupGetLineText;
SetupGetFieldCount: TSetupGetFieldCount;
SetupGetStringFieldA: TSetupGetStringFieldA;
SetupGetStringFieldW: TSetupGetStringFieldW;
SetupGetStringField: TSetupGetStringField;
SetupGetIntField: TSetupGetIntField;
SetupGetMultiSzFieldA: TSetupGetMultiSzFieldA;
SetupGetMultiSzFieldW: TSetupGetMultiSzFieldW;
SetupGetMultiSzField: TSetupGetMultiSzField;
SetupGetBinaryField: TSetupGetBinaryField;
SetupGetFileCompressionInfoA: TSetupGetFileCompressionInfoA;
SetupGetFileCompressionInfoW: TSetupGetFileCompressionInfoW;
SetupGetFileCompressionInfo: TSetupGetFileCompressionInfo;
{$IFDEF WINXP_UP}
SetupGetFileCompressionInfoExA: TSetupGetFileCompressionInfoExA;
SetupGetFileCompressionInfoExW: TSetupGetFileCompressionInfoExW;
SetupGetFileCompressionInfoEx: TSetupGetFileCompressionInfoEx;
{$ENDIF WINXP_UP}
SetupDecompressOrCopyFileA: TSetupDecompressOrCopyFileA;
SetupDecompressOrCopyFileW: TSetupDecompressOrCopyFileW;
SetupDecompressOrCopyFile: TSetupDecompressOrCopyFile;
SetupGetSourceFileLocationA: TSetupGetSourceFileLocationA;
SetupGetSourceFileLocationW: TSetupGetSourceFileLocationW;
SetupGetSourceFileLocation: TSetupGetSourceFileLocation;
SetupGetSourceFileSizeA: TSetupGetSourceFileSizeA;
SetupGetSourceFileSizeW: TSetupGetSourceFileSizeW;
SetupGetSourceFileSize: TSetupGetSourceFileSize;
SetupGetTargetPathA: TSetupGetTargetPathA;
SetupGetTargetPathW: TSetupGetTargetPathW;
SetupGetTargetPath: TSetupGetTargetPath;
SetupSetSourceListA: TSetupSetSourceListA;
SetupSetSourceListW: TSetupSetSourceListW;
SetupSetSourceList: TSetupSetSourceList;
SetupCancelTemporarySourceList: TSetupCancelTemporarySourceList;
SetupAddToSourceListA: TSetupAddToSourceListA;
SetupAddToSourceListW: TSetupAddToSourceListW;
SetupAddToSourceList: TSetupAddToSourceList;
SetupRemoveFromSourceListA: TSetupRemoveFromSourceListA;
SetupRemoveFromSourceListW: TSetupRemoveFromSourceListW;
SetupRemoveFromSourceList: TSetupRemoveFromSourceList;
SetupQuerySourceListA: TSetupQuerySourceListA;
SetupQuerySourceListW: TSetupQuerySourceListW;
SetupQuerySourceList: TSetupQuerySourceList;
SetupFreeSourceListA: TSetupFreeSourceListA;
SetupFreeSourceListW: TSetupFreeSourceListW;
SetupFreeSourceList: TSetupFreeSourceList;
SetupPromptForDiskA: TSetupPromptForDiskA;
SetupPromptForDiskW: TSetupPromptForDiskW;
SetupPromptForDisk: TSetupPromptForDisk;
SetupCopyErrorA: TSetupCopyErrorA;
SetupCopyErrorW: TSetupCopyErrorW;
SetupCopyError: TSetupCopyError;
SetupRenameErrorA: TSetupRenameErrorA;
SetupRenameErrorW: TSetupRenameErrorW;
SetupRenameError: TSetupRenameError;
SetupDeleteErrorA: TSetupDeleteErrorA;
SetupDeleteErrorW: TSetupDeleteErrorW;
SetupDeleteError: TSetupDeleteError;
{$IFDEF WIN2000_UP}
SetupBackupErrorA: TSetupBackupErrorA;
SetupBackupErrorW: TSetupBackupErrorW;
SetupBackupError: TSetupBackupError;
{$ENDIF WIN2000_UP}
SetupSetDirectoryIdA: TSetupSetDirectoryIdA;
SetupSetDirectoryIdW: TSetupSetDirectoryIdW;
SetupSetDirectoryId: TSetupSetDirectoryId;
SetupSetDirectoryIdExA: TSetupSetDirectoryIdExA;
SetupSetDirectoryIdExW: TSetupSetDirectoryIdExW;
SetupSetDirectoryIdEx: TSetupSetDirectoryIdEx;
SetupGetSourceInfoA: TSetupGetSourceInfoA;
SetupGetSourceInfoW: TSetupGetSourceInfoW;
SetupGetSourceInfo: TSetupGetSourceInfo;
SetupInstallFileA: TSetupInstallFileA;
SetupInstallFileW: TSetupInstallFileW;
SetupInstallFile: TSetupInstallFile;
SetupInstallFileExA: TSetupInstallFileExA;
SetupInstallFileExW: TSetupInstallFileExW;
SetupInstallFileEx: TSetupInstallFileEx;
SetupOpenFileQueue: TSetupOpenFileQueue;
SetupCloseFileQueue: TSetupCloseFileQueue;
{$IFDEF WIN2000_UP}
SetupSetFileQueueAlternatePlatformA: TSetupSetFileQueueAlternatePlatformA;
SetupSetFileQueueAlternatePlatformW: TSetupSetFileQueueAlternatePlatformW;
SetupSetFileQueueAlternatePlatform: TSetupSetFileQueueAlternatePlatform;
{$ENDIF WIN2000_UP}
SetupSetPlatformPathOverrideA: TSetupSetPlatformPathOverrideA;
SetupSetPlatformPathOverrideW: TSetupSetPlatformPathOverrideW;
SetupSetPlatformPathOverride: TSetupSetPlatformPathOverride;
SetupQueueCopyA: TSetupQueueCopyA;
SetupQueueCopyW: TSetupQueueCopyW;
SetupQueueCopy: TSetupQueueCopy;
{$IFDEF WIN2000_UP}
SetupQueueCopyIndirectA: TSetupQueueCopyIndirectA;
SetupQueueCopyIndirectW: TSetupQueueCopyIndirectW;
SetupQueueCopyIndirect: TSetupQueueCopyIndirect;
{$ENDIF WIN2000_UP}
SetupQueueDefaultCopyA: TSetupQueueDefaultCopyA;
SetupQueueDefaultCopyW: TSetupQueueDefaultCopyW;
SetupQueueDefaultCopy: TSetupQueueDefaultCopy;
SetupQueueCopySectionA: TSetupQueueCopySectionA;
SetupQueueCopySectionW: TSetupQueueCopySectionW;
SetupQueueCopySection: TSetupQueueCopySection;
SetupQueueDeleteA: TSetupQueueDeleteA;
SetupQueueDeleteW: TSetupQueueDeleteW;
SetupQueueDelete: TSetupQueueDelete;
SetupQueueDeleteSectionA: TSetupQueueDeleteSectionA;
SetupQueueDeleteSectionW: TSetupQueueDeleteSectionW;
SetupQueueDeleteSection: TSetupQueueDeleteSection;
SetupQueueRenameA: TSetupQueueRenameA;
SetupQueueRenameW: TSetupQueueRenameW;
SetupQueueRename: TSetupQueueRename;
SetupQueueRenameSectionA: TSetupQueueRenameSectionA;
SetupQueueRenameSectionW: TSetupQueueRenameSectionW;
SetupQueueRenameSection: TSetupQueueRenameSection;
SetupCommitFileQueueA: TSetupCommitFileQueueA;
SetupCommitFileQueueW: TSetupCommitFileQueueW;
SetupCommitFileQueue: TSetupCommitFileQueue;
SetupScanFileQueueA: TSetupScanFileQueueA;
SetupScanFileQueueW: TSetupScanFileQueueW;
SetupScanFileQueue: TSetupScanFileQueue;
SetupCopyOEMInfA: TSetupCopyOEMInfA;
SetupCopyOEMInfW: TSetupCopyOEMInfW;
SetupCopyOEMInf: TSetupCopyOEMInf;
{$IFDEF WINXP_UP}
SetupUninstallOEMInfA: TSetupUninstallOEMInfA;
SetupUninstallOEMInfW: TSetupUninstallOEMInfW;
SetupUninstallOEMInf: TSetupUninstallOEMInf;
SetupUninstallNewlyCopiedInfs: TSetupUninstallNewlyCopiedInfs;
{$ENDIF WINXP_UP}
SetupCreateDiskSpaceListA: TSetupCreateDiskSpaceListA;
SetupCreateDiskSpaceListW: TSetupCreateDiskSpaceListW;
SetupCreateDiskSpaceList: TSetupCreateDiskSpaceList;
SetupDuplicateDiskSpaceListA: TSetupDuplicateDiskSpaceListA;
SetupDuplicateDiskSpaceListW: TSetupDuplicateDiskSpaceListW;
SetupDuplicateDiskSpaceList: TSetupDuplicateDiskSpaceList;
SetupDestroyDiskSpaceList: TSetupDestroyDiskSpaceList;
SetupQueryDrivesInDiskSpaceListA: TSetupQueryDrivesInDiskSpaceListA;
SetupQueryDrivesInDiskSpaceListW: TSetupQueryDrivesInDiskSpaceListW;
SetupQueryDrivesInDiskSpaceList: TSetupQueryDrivesInDiskSpaceList;
SetupQuerySpaceRequiredOnDriveA: TSetupQuerySpaceRequiredOnDriveA;
SetupQuerySpaceRequiredOnDriveW: TSetupQuerySpaceRequiredOnDriveW;
SetupQuerySpaceRequiredOnDrive: TSetupQuerySpaceRequiredOnDrive;
SetupAdjustDiskSpaceListA: TSetupAdjustDiskSpaceListA;
SetupAdjustDiskSpaceListW: TSetupAdjustDiskSpaceListW;
SetupAdjustDiskSpaceList: TSetupAdjustDiskSpaceList;
SetupAddToDiskSpaceListA: TSetupAddToDiskSpaceListA;
SetupAddToDiskSpaceListW: TSetupAddToDiskSpaceListW;
SetupAddToDiskSpaceList: TSetupAddToDiskSpaceList;
SetupAddSectionToDiskSpaceListA: TSetupAddSectionToDiskSpaceListA;
SetupAddSectionToDiskSpaceListW: TSetupAddSectionToDiskSpaceListW;
SetupAddSectionToDiskSpaceList: TSetupAddSectionToDiskSpaceList;
SetupAddInstallSectionToDiskSpaceListA: TSetupAddInstallSectionToDiskSpaceListA;
SetupAddInstallSectionToDiskSpaceListW: TSetupAddInstallSectionToDiskSpaceListW;
SetupAddInstallSectionToDiskSpaceList: TSetupAddInstallSectionToDiskSpaceList;
SetupRemoveFromDiskSpaceListA: TSetupRemoveFromDiskSpaceListA;
SetupRemoveFromDiskSpaceListW: TSetupRemoveFromDiskSpaceListW;
SetupRemoveFromDiskSpaceList: TSetupRemoveFromDiskSpaceList;
SetupRemoveSectionFromDiskSpaceListA: TSetupRemoveSectionFromDiskSpaceListA;
SetupRemoveSectionFromDiskSpaceListW: TSetupRemoveSectionFromDiskSpaceListW;
SetupRemoveSectionFromDiskSpaceList: TSetupRemoveSectionFromDiskSpaceList;
SetupRemoveInstallSectionFromDiskSpaceListA: TSetupRemoveInstallSectionFromDiskSpaceListA;
SetupRemoveInstallSectionFromDiskSpaceListW: TSetupRemoveInstallSectionFromDiskSpaceListW;
SetupRemoveInstallSectionFromDiskSpaceList: TSetupRemoveInstallSectionFromDiskSpaceList;
SetupIterateCabinetA: TSetupIterateCabinetA;
SetupIterateCabinetW: TSetupIterateCabinetW;
SetupIterateCabinet: TSetupIterateCabinet;
SetupPromptReboot: TSetupPromptReboot;
SetupInitDefaultQueueCallback: TSetupInitDefaultQueueCallback;
SetupInitDefaultQueueCallbackEx: TSetupInitDefaultQueueCallbackEx;
SetupTermDefaultQueueCallback: TSetupTermDefaultQueueCallback;
SetupDefaultQueueCallbackA: TSetupDefaultQueueCallbackA;
SetupDefaultQueueCallbackW: TSetupDefaultQueueCallbackW;
SetupDefaultQueueCallback: TSetupDefaultQueueCallback;
SetupInstallFromInfSectionA: TSetupInstallFromInfSectionA;
SetupInstallFromInfSectionW: TSetupInstallFromInfSectionW;
SetupInstallFromInfSection: TSetupInstallFromInfSection;
SetupInstallFilesFromInfSectionA: TSetupInstallFilesFromInfSectionA;
SetupInstallFilesFromInfSectionW: TSetupInstallFilesFromInfSectionW;
SetupInstallFilesFromInfSection: TSetupInstallFilesFromInfSection;
SetupInstallServicesFromInfSectionA: TSetupInstallServicesFromInfSectionA;
SetupInstallServicesFromInfSectionW: TSetupInstallServicesFromInfSectionW;
SetupInstallServicesFromInfSection: TSetupInstallServicesFromInfSection;
SetupInstallServicesFromInfSectionExA: TSetupInstallServicesFromInfSectionExA;
SetupInstallServicesFromInfSectionExW: TSetupInstallServicesFromInfSectionExW;
SetupInstallServicesFromInfSectionEx: TSetupInstallServicesFromInfSectionEx;
{$IFDEF WINXP_UP}
InstallHinfSectionA: TInstallHinfSectionA;
InstallHinfSectionW: TInstallHinfSectionW;
InstallHinfSection: TInstallHinfSection;
{$ENDIF WINXP_UP}
SetupInitializeFileLogA: TSetupInitializeFileLogA;
SetupInitializeFileLogW: TSetupInitializeFileLogW;
SetupInitializeFileLog: TSetupInitializeFileLog;
SetupTerminateFileLog: TSetupTerminateFileLog;
SetupLogFileA: TSetupLogFileA;
SetupLogFileW: TSetupLogFileW;
SetupLogFile: TSetupLogFile;
SetupRemoveFileLogEntryA: TSetupRemoveFileLogEntryA;
SetupRemoveFileLogEntryW: TSetupRemoveFileLogEntryW;
SetupRemoveFileLogEntry: TSetupRemoveFileLogEntry;
SetupQueryFileLogA: TSetupQueryFileLogA;
SetupQueryFileLogW: TSetupQueryFileLogW;
SetupQueryFileLog: TSetupQueryFileLog;
SetupOpenLog: TSetupOpenLog;
SetupLogErrorA: TSetupLogErrorA;
SetupLogErrorW: TSetupLogErrorW;
SetupLogError: TSetupLogError;
SetupCloseLog: TSetupCloseLog;
{$IFDEF WIN2000_UP}
SetupGetBackupInformationA: TSetupGetBackupInformationA;
SetupGetBackupInformationW: TSetupGetBackupInformationW;
SetupGetBackupInformation: TSetupGetBackupInformation;
{$ENDIF WIN2000_UP}
{$IFDEF WINXP_UP}
SetupPrepareQueueForRestoreA: TSetupPrepareQueueForRestoreA;
SetupPrepareQueueForRestoreW: TSetupPrepareQueueForRestoreW;
SetupPrepareQueueForRestore: TSetupPrepareQueueForRestore;
SetupSetNonInteractiveMode: TSetupSetNonInteractiveMode;
SetupGetNonInteractiveMode: TSetupGetNonInteractiveMode;
{$ENDIF WINXP_UP}
SetupDiCreateDeviceInfoList: TSetupDiCreateDeviceInfoList;
SetupDiCreateDeviceInfoListExA: TSetupDiCreateDeviceInfoListExA;
SetupDiCreateDeviceInfoListExW: TSetupDiCreateDeviceInfoListExW;
SetupDiCreateDeviceInfoListEx: TSetupDiCreateDeviceInfoListEx;
SetupDiGetDeviceInfoListClass: TSetupDiGetDeviceInfoListClass;
SetupDiGetDeviceInfoListDetailA: TSetupDiGetDeviceInfoListDetailA;
SetupDiGetDeviceInfoListDetailW: TSetupDiGetDeviceInfoListDetailW;
SetupDiGetDeviceInfoListDetail: TSetupDiGetDeviceInfoListDetail;
SetupDiCreateDeviceInfoA: TSetupDiCreateDeviceInfoA;
SetupDiCreateDeviceInfoW: TSetupDiCreateDeviceInfoW;
SetupDiCreateDeviceInfo: TSetupDiCreateDeviceInfo;
SetupDiOpenDeviceInfoA: TSetupDiOpenDeviceInfoA;
SetupDiOpenDeviceInfoW: TSetupDiOpenDeviceInfoW;
SetupDiOpenDeviceInfo: TSetupDiOpenDeviceInfo;
SetupDiGetDeviceInstanceIdA: TSetupDiGetDeviceInstanceIdA;
SetupDiGetDeviceInstanceIdW: TSetupDiGetDeviceInstanceIdW;
SetupDiGetDeviceInstanceId: TSetupDiGetDeviceInstanceId;
SetupDiDeleteDeviceInfo: TSetupDiDeleteDeviceInfo;
SetupDiEnumDeviceInfo: TSetupDiEnumDeviceInfo;
SetupDiDestroyDeviceInfoList: TSetupDiDestroyDeviceInfoList;
SetupDiEnumDeviceInterfaces: TSetupDiEnumDeviceInterfaces;
SetupDiEnumInterfaceDevice: TSetupDiEnumDeviceInterfaces;
SetupDiCreateDeviceInterfaceA: TSetupDiCreateDeviceInterfaceA;
SetupDiCreateInterfaceDeviceA: TSetupDiCreateDeviceInterfaceA;
SetupDiCreateDeviceInterfaceW: TSetupDiCreateDeviceInterfaceW;
SetupDiCreateInterfaceDeviceW: TSetupDiCreateDeviceInterfaceW;
SetupDiCreateDeviceInterface: TSetupDiCreateDeviceInterface;
SetupDiCreateInterfaceDevice: TSetupDiCreateInterfaceDevice;
SetupDiOpenDeviceInterfaceA: TSetupDiOpenDeviceInterfaceA;
SetupDiOpenInterfaceDeviceA: TSetupDiOpenDeviceInterfaceA;
SetupDiOpenDeviceInterfaceW: TSetupDiOpenDeviceInterfaceW;
SetupDiOpenInterfaceDeviceW: TSetupDiOpenDeviceInterfaceW;
SetupDiOpenDeviceInterface: TSetupDiOpenDeviceInterface;
SetupDiOpenInterfaceDevice: TSetupDiOpenInterfaceDevice;
SetupDiGetDeviceInterfaceAlias: TSetupDiGetDeviceInterfaceAlias;
SetupDiGetInterfaceDeviceAlias: TSetupDiGetDeviceInterfaceAlias;
SetupDiDeleteDeviceInterfaceData: TSetupDiDeleteDeviceInterfaceData;
SetupDiDeleteInterfaceDeviceData: TSetupDiDeleteDeviceInterfaceData;
SetupDiRemoveDeviceInterface: TSetupDiRemoveDeviceInterface;
SetupDiRemoveInterfaceDevice: TSetupDiRemoveDeviceInterface;
SetupDiGetDeviceInterfaceDetailA: TSetupDiGetDeviceInterfaceDetailA;
SetupDiGetInterfaceDeviceDetailA: TSetupDiGetDeviceInterfaceDetailA;
SetupDiGetDeviceInterfaceDetailW: TSetupDiGetDeviceInterfaceDetailW;
SetupDiGetInterfaceDeviceDetailW: TSetupDiGetDeviceInterfaceDetailW;
SetupDiGetDeviceInterfaceDetail: TSetupDiGetDeviceInterfaceDetail;
SetupDiGetInterfaceDeviceDetail: TSetupDiGetInterfaceDeviceDetail;
SetupDiInstallDeviceInterfaces: TSetupDiInstallDeviceInterfaces;
SetupDiInstallInterfaceDevices: TSetupDiInstallDeviceInterfaces;
{$IFDEF WINXP_UP}
SetupDiSetDeviceInterfaceDefault: TSetupDiSetDeviceInterfaceDefault;
{$ENDIF WINXP_UP}
SetupDiRegisterDeviceInfo: TSetupDiRegisterDeviceInfo;
SetupDiBuildDriverInfoList: TSetupDiBuildDriverInfoList;
SetupDiCancelDriverInfoSearch: TSetupDiCancelDriverInfoSearch;
SetupDiEnumDriverInfoA: TSetupDiEnumDriverInfoA;
SetupDiEnumDriverInfoW: TSetupDiEnumDriverInfoW;
SetupDiEnumDriverInfo: TSetupDiEnumDriverInfo;
SetupDiGetSelectedDriverA: TSetupDiGetSelectedDriverA;
SetupDiGetSelectedDriverW: TSetupDiGetSelectedDriverW;
SetupDiGetSelectedDriver: TSetupDiGetSelectedDriver;
SetupDiSetSelectedDriverA: TSetupDiSetSelectedDriverA;
SetupDiSetSelectedDriverW: TSetupDiSetSelectedDriverW;
SetupDiSetSelectedDriver: TSetupDiSetSelectedDriver;
SetupDiGetDriverInfoDetailA: TSetupDiGetDriverInfoDetailA;
SetupDiGetDriverInfoDetailW: TSetupDiGetDriverInfoDetailW;
SetupDiGetDriverInfoDetail: TSetupDiGetDriverInfoDetail;
SetupDiDestroyDriverInfoList: TSetupDiDestroyDriverInfoList;
SetupDiGetClassDevsA: TSetupDiGetClassDevsA;
SetupDiGetClassDevsW: TSetupDiGetClassDevsW;
SetupDiGetClassDevs: TSetupDiGetClassDevs;
SetupDiGetClassDevsExA: TSetupDiGetClassDevsExA;
SetupDiGetClassDevsExW: TSetupDiGetClassDevsExW;
SetupDiGetClassDevsEx: TSetupDiGetClassDevsEx;
SetupDiGetINFClassA: TSetupDiGetINFClassA;
SetupDiGetINFClassW: TSetupDiGetINFClassW;
SetupDiGetINFClass: TSetupDiGetINFClass;
SetupDiBuildClassInfoList: TSetupDiBuildClassInfoList;
SetupDiBuildClassInfoListExA: TSetupDiBuildClassInfoListExA;
SetupDiBuildClassInfoListExW: TSetupDiBuildClassInfoListExW;
SetupDiBuildClassInfoListEx: TSetupDiBuildClassInfoListEx;
SetupDiGetClassDescriptionA: TSetupDiGetClassDescriptionA;
SetupDiGetClassDescriptionW: TSetupDiGetClassDescriptionW;
SetupDiGetClassDescription: TSetupDiGetClassDescription;
SetupDiGetClassDescriptionExA: TSetupDiGetClassDescriptionExA;
SetupDiGetClassDescriptionExW: TSetupDiGetClassDescriptionExW;
SetupDiGetClassDescriptionEx: TSetupDiGetClassDescriptionEx;
SetupDiCallClassInstaller: TSetupDiCallClassInstaller;
SetupDiSelectDevice: TSetupDiSelectDevice;
SetupDiSelectBestCompatDrv: TSetupDiSelectBestCompatDrv;
SetupDiInstallDevice: TSetupDiInstallDevice;
SetupDiInstallDriverFiles: TSetupDiInstallDriverFiles;
SetupDiRegisterCoDeviceInstallers: TSetupDiRegisterCoDeviceInstallers;
SetupDiRemoveDevice: TSetupDiRemoveDevice;
SetupDiUnremoveDevice: TSetupDiUnremoveDevice;
SetupDiMoveDuplicateDevice: TSetupDiMoveDuplicateDevice;
SetupDiChangeState: TSetupDiChangeState;
SetupDiInstallClassA: TSetupDiInstallClassA;
SetupDiInstallClassW: TSetupDiInstallClassW;
SetupDiInstallClass: TSetupDiInstallClass;
SetupDiInstallClassExA: TSetupDiInstallClassExA;
SetupDiInstallClassExW: TSetupDiInstallClassExW;
SetupDiInstallClassEx: TSetupDiInstallClassEx;
SetupDiOpenClassRegKey: TSetupDiOpenClassRegKey;
SetupDiOpenClassRegKeyExA: TSetupDiOpenClassRegKeyExA;
SetupDiOpenClassRegKeyExW: TSetupDiOpenClassRegKeyExW;
SetupDiOpenClassRegKeyEx: TSetupDiOpenClassRegKeyEx;
SetupDiCreateDeviceInterfaceRegKeyA: TSetupDiCreateDeviceInterfaceRegKeyA;
SetupDiCreateInterfaceDeviceRegKeyA: TSetupDiCreateDeviceInterfaceRegKeyA;
SetupDiCreateDeviceInterfaceRegKeyW: TSetupDiCreateDeviceInterfaceRegKeyW;
SetupDiCreateInterfaceDeviceRegKeyW: TSetupDiCreateDeviceInterfaceRegKeyW;
SetupDiCreateDeviceInterfaceRegKey: TSetupDiCreateDeviceInterfaceRegKey;
SetupDiCreateInterfaceDeviceRegKey: TSetupDiCreateInterfaceDeviceRegKey;
SetupDiOpenDeviceInterfaceRegKey: TSetupDiOpenDeviceInterfaceRegKey;
SetupDiOpenInterfaceDeviceRegKey: TSetupDiOpenDeviceInterfaceRegKey;
SetupDiDeleteDeviceInterfaceRegKey: TSetupDiDeleteDeviceInterfaceRegKey;
SetupDiDeleteInterfaceDeviceRegKey: TSetupDiDeleteDeviceInterfaceRegKey;
SetupDiCreateDevRegKeyA: TSetupDiCreateDevRegKeyA;
SetupDiCreateDevRegKeyW: TSetupDiCreateDevRegKeyW;
SetupDiCreateDevRegKey: TSetupDiCreateDevRegKey;
SetupDiOpenDevRegKey: TSetupDiOpenDevRegKey;
SetupDiDeleteDevRegKey: TSetupDiDeleteDevRegKey;
SetupDiGetHwProfileList: TSetupDiGetHwProfileList;
SetupDiGetHwProfileListExA: TSetupDiGetHwProfileListExA;
SetupDiGetHwProfileListExW: TSetupDiGetHwProfileListExW;
SetupDiGetHwProfileListEx: TSetupDiGetHwProfileListEx;
SetupDiGetDeviceRegistryPropertyA: TSetupDiGetDeviceRegistryPropertyA;
SetupDiGetDeviceRegistryPropertyW: TSetupDiGetDeviceRegistryPropertyW;
SetupDiGetDeviceRegistryProperty: TSetupDiGetDeviceRegistryProperty;
{$IFDEF WINXP_UP}
SetupDiGetClassRegistryPropertyA: TSetupDiGetClassRegistryPropertyA;
SetupDiGetClassRegistryPropertyW: TSetupDiGetClassRegistryPropertyW;
SetupDiGetClassRegistryProperty: TSetupDiGetClassRegistryProperty;
{$ENDIF WINXP_UP}
SetupDiSetDeviceRegistryPropertyA: TSetupDiSetDeviceRegistryPropertyA;
SetupDiSetDeviceRegistryPropertyW: TSetupDiSetDeviceRegistryPropertyW;
SetupDiSetDeviceRegistryProperty: TSetupDiSetDeviceRegistryProperty;
{$IFDEF WINXP_UP}
SetupDiSetClassRegistryPropertyA: TSetupDiSetClassRegistryPropertyA;
SetupDiSetClassRegistryPropertyW: TSetupDiSetClassRegistryPropertyW;
SetupDiSetClassRegistryProperty: TSetupDiSetClassRegistryProperty;
{$ENDIF WINXP_UP}
SetupDiGetDeviceInstallParamsA: TSetupDiGetDeviceInstallParamsA;
SetupDiGetDeviceInstallParamsW: TSetupDiGetDeviceInstallParamsW;
SetupDiGetDeviceInstallParams: TSetupDiGetDeviceInstallParams;
SetupDiGetClassInstallParamsA: TSetupDiGetClassInstallParamsA;
SetupDiGetClassInstallParamsW: TSetupDiGetClassInstallParamsW;
SetupDiGetClassInstallParams: TSetupDiGetClassInstallParams;
SetupDiSetDeviceInstallParamsA: TSetupDiSetDeviceInstallParamsA;
SetupDiSetDeviceInstallParamsW: TSetupDiSetDeviceInstallParamsW;
SetupDiSetDeviceInstallParams: TSetupDiSetDeviceInstallParams;
SetupDiSetClassInstallParamsA: TSetupDiSetClassInstallParamsA;
SetupDiSetClassInstallParamsW: TSetupDiSetClassInstallParamsW;
SetupDiSetClassInstallParams: TSetupDiSetClassInstallParams;
SetupDiGetDriverInstallParamsA: TSetupDiGetDriverInstallParamsA;
SetupDiGetDriverInstallParamsW: TSetupDiGetDriverInstallParamsW;
SetupDiGetDriverInstallParams: TSetupDiGetDriverInstallParams;
SetupDiSetDriverInstallParamsA: TSetupDiSetDriverInstallParamsA;
SetupDiSetDriverInstallParamsW: TSetupDiSetDriverInstallParamsW;
SetupDiSetDriverInstallParams: TSetupDiSetDriverInstallParams;
SetupDiLoadClassIcon: TSetupDiLoadClassIcon;
SetupDiDrawMiniIcon: TSetupDiDrawMiniIcon;
SetupDiGetClassBitmapIndex: TSetupDiGetClassBitmapIndex;
SetupDiGetClassImageList: TSetupDiGetClassImageList;
SetupDiGetClassImageListExA: TSetupDiGetClassImageListExA;
SetupDiGetClassImageListExW: TSetupDiGetClassImageListExW;
SetupDiGetClassImageListEx: TSetupDiGetClassImageListEx;
SetupDiGetClassImageIndex: TSetupDiGetClassImageIndex;
SetupDiDestroyClassImageList: TSetupDiDestroyClassImageList;
SetupDiGetClassDevPropertySheetsA: TSetupDiGetClassDevPropertySheetsA;
SetupDiGetClassDevPropertySheetsW: TSetupDiGetClassDevPropertySheetsW;
SetupDiGetClassDevPropertySheets: TSetupDiGetClassDevPropertySheets;
SetupDiAskForOEMDisk: TSetupDiAskForOEMDisk;
SetupDiSelectOEMDrv: TSetupDiSelectOEMDrv;
SetupDiClassNameFromGuidA: TSetupDiClassNameFromGuidA;
SetupDiClassNameFromGuidW: TSetupDiClassNameFromGuidW;
SetupDiClassNameFromGuid: TSetupDiClassNameFromGuid;
SetupDiClassNameFromGuidExA: TSetupDiClassNameFromGuidExA;
SetupDiClassNameFromGuidExW: TSetupDiClassNameFromGuidExW;
SetupDiClassNameFromGuidEx: TSetupDiClassNameFromGuidEx;
SetupDiClassGuidsFromNameA: TSetupDiClassGuidsFromNameA;
SetupDiClassGuidsFromNameW: TSetupDiClassGuidsFromNameW;
SetupDiClassGuidsFromName: TSetupDiClassGuidsFromName;
SetupDiClassGuidsFromNameExA: TSetupDiClassGuidsFromNameExA;
SetupDiClassGuidsFromNameExW: TSetupDiClassGuidsFromNameExW;
SetupDiClassGuidsFromNameEx: TSetupDiClassGuidsFromNameEx;
SetupDiGetHwProfileFriendlyNameA: TSetupDiGetHwProfileFriendlyNameA;
SetupDiGetHwProfileFriendlyNameW: TSetupDiGetHwProfileFriendlyNameW;
SetupDiGetHwProfileFriendlyName: TSetupDiGetHwProfileFriendlyName;
SetupDiGetHwProfileFriendlyNameExA: TSetupDiGetHwProfileFriendlyNameExA;
SetupDiGetHwProfileFriendlyNameExW: TSetupDiGetHwProfileFriendlyNameExW;
SetupDiGetHwProfileFriendlyNameEx: TSetupDiGetHwProfileFriendlyNameEx;
SetupDiGetWizardPage: TSetupDiGetWizardPage;
SetupDiGetSelectedDevice: TSetupDiGetSelectedDevice;
SetupDiSetSelectedDevice: TSetupDiSetSelectedDevice;
SetupDiGetActualSectionToInstallA: TSetupDiGetActualSectionToInstallA;
SetupDiGetActualSectionToInstallW: TSetupDiGetActualSectionToInstallW;
SetupDiGetActualSectionToInstall: TSetupDiGetActualSectionToInstall;
{$IFDEF WINXP_UP}
SetupDiGetActualSectionToInstallExA: TSetupDiGetActualSectionToInstallExA;
SetupDiGetActualSectionToInstallExW: TSetupDiGetActualSectionToInstallExW;
SetupDiGetActualSectionToInstallEx: TSetupDiGetActualSectionToInstallEx;
SetupEnumInfSectionsA: TSetupEnumInfSectionsA;
SetupEnumInfSectionsW: TSetupEnumInfSectionsW;
SetupEnumInfSections: TSetupEnumInfSections;
SetupVerifyInfFileA: TSetupVerifyInfFileA;
SetupVerifyInfFileW: TSetupVerifyInfFileW;
SetupVerifyInfFile: TSetupVerifyInfFile;
SetupDiGetCustomDevicePropertyA: TSetupDiGetCustomDevicePropertyA;
SetupDiGetCustomDevicePropertyW: TSetupDiGetCustomDevicePropertyW;
SetupDiGetCustomDeviceProperty: TSetupDiGetCustomDeviceProperty;
{$ENDIF WINXP_UP}
{$ENDIF !SETUPAPI_LINKONREQUEST}
{$IFNDEF SETUPAPI_LINKONREQUEST}
type
TModuleHandle = HINST;
{$ENDIF !SETUPAPI_LINKONREQUEST}
function IsSetupApiLoaded: Boolean;
function GetSetupApiModuleHandle: TModuleHandle;
function LoadSetupApi: Boolean;
procedure UnloadSetupApi;
implementation
const
SetupApiModuleName = 'SetupApi.dll';
{$IFDEF UNICODE}
NameSuffix = 'W';
{$ELSE}
NameSuffix = 'A';
{$ENDIF UNICODE}
{$IFDEF SETUPAPI_LINKONREQUEST}
var
SetupApiLib: TModuleHandle = INVALID_MODULEHANDLE_VALUE;
SetupApiLoadCount: Integer = 0;
{$ENDIF SETUPAPI_LINKONREQUEST}
function IsSetupApiLoaded: Boolean;
begin
{$IFDEF SETUPAPI_LINKONREQUEST}
Result := SetupApiLib <> INVALID_MODULEHANDLE_VALUE;
{$ELSE}
Result := True;
{$ENDIF SETUPAPI_LINKONREQUEST}
end;
function GetSetupApiModuleHandle: TModuleHandle;
begin
{$IFDEF SETUPAPI_LINKONREQUEST}
Result := SetupApiLib;
{$ELSE}
Result := TModuleHandle(0);
{$ENDIF SETUPAPI_LINKONREQUEST}
end;
function LoadSetupApi: Boolean;
begin
{$IFDEF SETUPAPI_LINKONREQUEST}
Result := True;
Inc(SetupApiLoadCount);
if SetupApiLoadCount > 1 then
Exit;
Result := ModuleLoader.LoadModule(SetupApiLib, SetupApiModuleName);
if Result then
begin
{$IFDEF WINXP_UP}
@SetupGetFileQueueCount := GetModuleSymbolEx(SetupApiLib, 'SetupGetFileQueueCount', Result);
@SetupGetFileQueueFlags := GetModuleSymbolEx(SetupApiLib, 'SetupGetFileQueueFlags', Result);
@SetupSetFileQueueFlags := GetModuleSymbolEx(SetupApiLib, 'SetupSetFileQueueFlags', Result);
{$ENDIF WINXP_UP}
@SetupGetInfInformationA := GetModuleSymbolEx(SetupApiLib, 'SetupGetInfInformationA', Result);
@SetupGetInfInformationW := GetModuleSymbolEx(SetupApiLib, 'SetupGetInfInformationW', Result);
@SetupGetInfInformation := GetModuleSymbolEx(SetupApiLib, 'SetupGetInfInformation' + NameSuffix, Result);
@SetupQueryInfFileInformationA := GetModuleSymbolEx(SetupApiLib, 'SetupQueryInfFileInformationA', Result);
@SetupQueryInfFileInformationW := GetModuleSymbolEx(SetupApiLib, 'SetupQueryInfFileInformationW', Result);
@SetupQueryInfFileInformation := GetModuleSymbolEx(SetupApiLib, 'SetupQueryInfFileInformation' + NameSuffix, Result);
{$IFDEF WIN2000_UP}
@SetupQueryInfOriginalFileInformationA := GetModuleSymbolEx(SetupApiLib, 'SetupQueryInfOriginalFileInformationA', Result);
@SetupQueryInfOriginalFileInformationW := GetModuleSymbolEx(SetupApiLib, 'SetupQueryInfOriginalFileInformationW', Result);
@SetupQueryInfOriginalFileInformation := GetModuleSymbolEx(SetupApiLib, 'SetupQueryInfOriginalFileInformation' + NameSuffix, Result);
{$ENDIF WIN2000_UP}
@SetupQueryInfVersionInformationA := GetModuleSymbolEx(SetupApiLib, 'SetupQueryInfVersionInformationA', Result);
@SetupQueryInfVersionInformationW := GetModuleSymbolEx(SetupApiLib, 'SetupQueryInfVersionInformationW', Result);
@SetupQueryInfVersionInformation := GetModuleSymbolEx(SetupApiLib, 'SetupQueryInfVersionInformation' + NameSuffix, Result);
@SetupGetInfFileListA := GetModuleSymbolEx(SetupApiLib, 'SetupGetInfFileListA', Result);
@SetupGetInfFileListW := GetModuleSymbolEx(SetupApiLib, 'SetupGetInfFileListW', Result);
@SetupGetInfFileList := GetModuleSymbolEx(SetupApiLib, 'SetupGetInfFileList' + NameSuffix, Result);
@SetupOpenInfFileA := GetModuleSymbolEx(SetupApiLib, 'SetupOpenInfFileA', Result);
@SetupOpenInfFileW := GetModuleSymbolEx(SetupApiLib, 'SetupOpenInfFileW', Result);
@SetupOpenInfFile := GetModuleSymbolEx(SetupApiLib, 'SetupOpenInfFile' + NameSuffix, Result);
@SetupOpenMasterInf := GetModuleSymbolEx(SetupApiLib, 'SetupOpenMasterInf', Result);
@SetupOpenAppendInfFileA := GetModuleSymbolEx(SetupApiLib, 'SetupOpenAppendInfFileA', Result);
@SetupOpenAppendInfFileW := GetModuleSymbolEx(SetupApiLib, 'SetupOpenAppendInfFileW', Result);
@SetupOpenAppendInfFile := GetModuleSymbolEx(SetupApiLib, 'SetupOpenAppendInfFile' + NameSuffix, Result);
@SetupCloseInfFile := GetModuleSymbolEx(SetupApiLib, 'SetupCloseInfFile', Result);
@SetupFindFirstLineA := GetModuleSymbolEx(SetupApiLib, 'SetupFindFirstLineA', Result);
@SetupFindFirstLineW := GetModuleSymbolEx(SetupApiLib, 'SetupFindFirstLineW', Result);
@SetupFindFirstLine := GetModuleSymbolEx(SetupApiLib, 'SetupFindFirstLine' + NameSuffix, Result);
@SetupFindNextLine := GetModuleSymbolEx(SetupApiLib, 'SetupFindNextLine', Result);
@SetupFindNextMatchLineA := GetModuleSymbolEx(SetupApiLib, 'SetupFindNextMatchLineA', Result);
@SetupFindNextMatchLineW := GetModuleSymbolEx(SetupApiLib, 'SetupFindNextMatchLineW', Result);
@SetupFindNextMatchLine := GetModuleSymbolEx(SetupApiLib, 'SetupFindNextMatchLine' + NameSuffix, Result);
@SetupGetLineByIndexA := GetModuleSymbolEx(SetupApiLib, 'SetupGetLineByIndexA', Result);
@SetupGetLineByIndexW := GetModuleSymbolEx(SetupApiLib, 'SetupGetLineByIndexW', Result);
@SetupGetLineByIndex := GetModuleSymbolEx(SetupApiLib, 'SetupGetLineByIndex' + NameSuffix, Result);
@SetupGetLineCountA := GetModuleSymbolEx(SetupApiLib, 'SetupGetLineCountA', Result);
@SetupGetLineCountW := GetModuleSymbolEx(SetupApiLib, 'SetupGetLineCountW', Result);
@SetupGetLineCount := GetModuleSymbolEx(SetupApiLib, 'SetupGetLineCount' + NameSuffix, Result);
@SetupGetLineTextA := GetModuleSymbolEx(SetupApiLib, 'SetupGetLineTextA', Result);
@SetupGetLineTextW := GetModuleSymbolEx(SetupApiLib, 'SetupGetLineTextW', Result);
@SetupGetLineText := GetModuleSymbolEx(SetupApiLib, 'SetupGetLineText' + NameSuffix, Result);
@SetupGetFieldCount := GetModuleSymbolEx(SetupApiLib, 'SetupGetFieldCount', Result);
@SetupGetStringFieldA := GetModuleSymbolEx(SetupApiLib, 'SetupGetStringFieldA', Result);
@SetupGetStringFieldW := GetModuleSymbolEx(SetupApiLib, 'SetupGetStringFieldW', Result);
@SetupGetStringField := GetModuleSymbolEx(SetupApiLib, 'SetupGetStringField' + NameSuffix, Result);
@SetupGetIntField := GetModuleSymbolEx(SetupApiLib, 'SetupGetIntField', Result);
@SetupGetMultiSzFieldA := GetModuleSymbolEx(SetupApiLib, 'SetupGetMultiSzFieldA', Result);
@SetupGetMultiSzFieldW := GetModuleSymbolEx(SetupApiLib, 'SetupGetMultiSzFieldW', Result);
@SetupGetMultiSzField := GetModuleSymbolEx(SetupApiLib, 'SetupGetMultiSzField' + NameSuffix, Result);
@SetupGetBinaryField := GetModuleSymbolEx(SetupApiLib, 'SetupGetBinaryField', Result);
@SetupGetFileCompressionInfoA := GetModuleSymbolEx(SetupApiLib, 'SetupGetFileCompressionInfoA', Result);
@SetupGetFileCompressionInfoW := GetModuleSymbolEx(SetupApiLib, 'SetupGetFileCompressionInfoW', Result);
@SetupGetFileCompressionInfo := GetModuleSymbolEx(SetupApiLib, 'SetupGetFileCompressionInfo' + NameSuffix, Result);
{$IFDEF WINXP_UP}
@SetupGetFileCompressionInfoExA := GetModuleSymbolEx(SetupApiLib, 'SetupGetFileCompressionInfoExA', Result);
@SetupGetFileCompressionInfoExW := GetModuleSymbolEx(SetupApiLib, 'SetupGetFileCompressionInfoExW', Result);
@SetupGetFileCompressionInfoEx := GetModuleSymbolEx(SetupApiLib, 'SetupGetFileCompressionInfoEx' + NameSuffix, Result);
{$ENDIF WINXP_UP}
@SetupDecompressOrCopyFileA := GetModuleSymbolEx(SetupApiLib, 'SetupDecompressOrCopyFileA', Result);
@SetupDecompressOrCopyFileW := GetModuleSymbolEx(SetupApiLib, 'SetupDecompressOrCopyFileW', Result);
@SetupDecompressOrCopyFile := GetModuleSymbolEx(SetupApiLib, 'SetupDecompressOrCopyFile' + NameSuffix, Result);
@SetupGetSourceFileLocationA := GetModuleSymbolEx(SetupApiLib, 'SetupGetSourceFileLocationA', Result);
@SetupGetSourceFileLocationW := GetModuleSymbolEx(SetupApiLib, 'SetupGetSourceFileLocationW', Result);
@SetupGetSourceFileLocation := GetModuleSymbolEx(SetupApiLib, 'SetupGetSourceFileLocation' + NameSuffix, Result);
@SetupGetSourceFileSizeA := GetModuleSymbolEx(SetupApiLib, 'SetupGetSourceFileSizeA', Result);
@SetupGetSourceFileSizeW := GetModuleSymbolEx(SetupApiLib, 'SetupGetSourceFileSizeW', Result);
@SetupGetSourceFileSize := GetModuleSymbolEx(SetupApiLib, 'SetupGetSourceFileSize' + NameSuffix, Result);
@SetupGetTargetPathA := GetModuleSymbolEx(SetupApiLib, 'SetupGetTargetPathA', Result);
@SetupGetTargetPathW := GetModuleSymbolEx(SetupApiLib, 'SetupGetTargetPathW', Result);
@SetupGetTargetPath := GetModuleSymbolEx(SetupApiLib, 'SetupGetTargetPath' + NameSuffix, Result);
@SetupSetSourceListA := GetModuleSymbolEx(SetupApiLib, 'SetupSetSourceListA', Result);
@SetupSetSourceListW := GetModuleSymbolEx(SetupApiLib, 'SetupSetSourceListW', Result);
@SetupSetSourceList := GetModuleSymbolEx(SetupApiLib, 'SetupSetSourceList' + NameSuffix, Result);
@SetupCancelTemporarySourceList := GetModuleSymbolEx(SetupApiLib, 'SetupCancelTemporarySourceList', Result);
@SetupAddToSourceListA := GetModuleSymbolEx(SetupApiLib, 'SetupAddToSourceListA', Result);
@SetupAddToSourceListW := GetModuleSymbolEx(SetupApiLib, 'SetupAddToSourceListW', Result);
@SetupAddToSourceList := GetModuleSymbolEx(SetupApiLib, 'SetupAddToSourceList' + NameSuffix, Result);
@SetupRemoveFromSourceListA := GetModuleSymbolEx(SetupApiLib, 'SetupRemoveFromSourceListA', Result);
@SetupRemoveFromSourceListW := GetModuleSymbolEx(SetupApiLib, 'SetupRemoveFromSourceListW', Result);
@SetupRemoveFromSourceList := GetModuleSymbolEx(SetupApiLib, 'SetupRemoveFromSourceList' + NameSuffix, Result);
@SetupQuerySourceListA := GetModuleSymbolEx(SetupApiLib, 'SetupQuerySourceListA', Result);
@SetupQuerySourceListW := GetModuleSymbolEx(SetupApiLib, 'SetupQuerySourceListW', Result);
@SetupQuerySourceList := GetModuleSymbolEx(SetupApiLib, 'SetupQuerySourceList' + NameSuffix, Result);
@SetupFreeSourceListA := GetModuleSymbolEx(SetupApiLib, 'SetupFreeSourceListA', Result);
@SetupFreeSourceListW := GetModuleSymbolEx(SetupApiLib, 'SetupFreeSourceListW', Result);
@SetupFreeSourceList := GetModuleSymbolEx(SetupApiLib, 'SetupFreeSourceList' + NameSuffix, Result);
@SetupPromptForDiskA := GetModuleSymbolEx(SetupApiLib, 'SetupPromptForDiskA', Result);
@SetupPromptForDiskW := GetModuleSymbolEx(SetupApiLib, 'SetupPromptForDiskW', Result);
@SetupPromptForDisk := GetModuleSymbolEx(SetupApiLib, 'SetupPromptForDisk' + NameSuffix, Result);
@SetupCopyErrorA := GetModuleSymbolEx(SetupApiLib, 'SetupCopyErrorA', Result);
@SetupCopyErrorW := GetModuleSymbolEx(SetupApiLib, 'SetupCopyErrorW', Result);
@SetupCopyError := GetModuleSymbolEx(SetupApiLib, 'SetupCopyError' + NameSuffix, Result);
@SetupRenameErrorA := GetModuleSymbolEx(SetupApiLib, 'SetupRenameErrorA', Result);
@SetupRenameErrorW := GetModuleSymbolEx(SetupApiLib, 'SetupRenameErrorW', Result);
@SetupRenameError := GetModuleSymbolEx(SetupApiLib, 'SetupRenameError' + NameSuffix, Result);
@SetupDeleteErrorA := GetModuleSymbolEx(SetupApiLib, 'SetupDeleteErrorA', Result);
@SetupDeleteErrorW := GetModuleSymbolEx(SetupApiLib, 'SetupDeleteErrorW', Result);
@SetupDeleteError := GetModuleSymbolEx(SetupApiLib, 'SetupDeleteError' + NameSuffix, Result);
{$IFDEF WIN2000_UP}
@SetupBackupErrorA := GetModuleSymbolEx(SetupApiLib, 'SetupBackupErrorA', Result);
@SetupBackupErrorW := GetModuleSymbolEx(SetupApiLib, 'SetupBackupErrorW', Result);
@SetupBackupError := GetModuleSymbolEx(SetupApiLib, 'SetupBackupError' + NameSuffix, Result);
{$ENDIF WIN2000_UP}
@SetupSetDirectoryIdA := GetModuleSymbolEx(SetupApiLib, 'SetupSetDirectoryIdA', Result);
@SetupSetDirectoryIdW := GetModuleSymbolEx(SetupApiLib, 'SetupSetDirectoryIdW', Result);
@SetupSetDirectoryId := GetModuleSymbolEx(SetupApiLib, 'SetupSetDirectoryId' + NameSuffix, Result);
@SetupSetDirectoryIdExA := GetModuleSymbolEx(SetupApiLib, 'SetupSetDirectoryIdExA', Result);
@SetupSetDirectoryIdExW := GetModuleSymbolEx(SetupApiLib, 'SetupSetDirectoryIdExW', Result);
@SetupSetDirectoryIdEx := GetModuleSymbolEx(SetupApiLib, 'SetupSetDirectoryIdEx' + NameSuffix, Result);
@SetupGetSourceInfoA := GetModuleSymbolEx(SetupApiLib, 'SetupGetSourceInfoA', Result);
@SetupGetSourceInfoW := GetModuleSymbolEx(SetupApiLib, 'SetupGetSourceInfoW', Result);
@SetupGetSourceInfo := GetModuleSymbolEx(SetupApiLib, 'SetupGetSourceInfo' + NameSuffix, Result);
@SetupInstallFileA := GetModuleSymbolEx(SetupApiLib, 'SetupInstallFileA', Result);
@SetupInstallFileW := GetModuleSymbolEx(SetupApiLib, 'SetupInstallFileW', Result);
@SetupInstallFile := GetModuleSymbolEx(SetupApiLib, 'SetupInstallFile' + NameSuffix, Result);
@SetupInstallFileExA := GetModuleSymbolEx(SetupApiLib, 'SetupInstallFileExA', Result);
@SetupInstallFileExW := GetModuleSymbolEx(SetupApiLib, 'SetupInstallFileExW', Result);
@SetupInstallFileEx := GetModuleSymbolEx(SetupApiLib, 'SetupInstallFileEx' + NameSuffix, Result);
@SetupOpenFileQueue := GetModuleSymbolEx(SetupApiLib, 'SetupOpenFileQueue', Result);
@SetupCloseFileQueue := GetModuleSymbolEx(SetupApiLib, 'SetupCloseFileQueue', Result);
{$IFDEF WIN2000_UP}
@SetupSetFileQueueAlternatePlatformA := GetModuleSymbolEx(SetupApiLib, 'SetupSetFileQueueAlternatePlatformA', Result);
@SetupSetFileQueueAlternatePlatformW := GetModuleSymbolEx(SetupApiLib, 'SetupSetFileQueueAlternatePlatformW', Result);
@SetupSetFileQueueAlternatePlatform := GetModuleSymbolEx(SetupApiLib, 'SetupSetFileQueueAlternatePlatform' + NameSuffix, Result);
{$ENDIF WIN2000_UP}
@SetupSetPlatformPathOverrideA := GetModuleSymbolEx(SetupApiLib, 'SetupSetPlatformPathOverrideA', Result);
@SetupSetPlatformPathOverrideW := GetModuleSymbolEx(SetupApiLib, 'SetupSetPlatformPathOverrideW', Result);
@SetupSetPlatformPathOverride := GetModuleSymbolEx(SetupApiLib, 'SetupSetPlatformPathOverride' + NameSuffix, Result);
@SetupQueueCopyA := GetModuleSymbolEx(SetupApiLib, 'SetupQueueCopyA', Result);
@SetupQueueCopyW := GetModuleSymbolEx(SetupApiLib, 'SetupQueueCopyW', Result);
@SetupQueueCopy := GetModuleSymbolEx(SetupApiLib, 'SetupQueueCopy' + NameSuffix, Result);
{$IFDEF WIN2000_UP}
@SetupQueueCopyIndirectA := GetModuleSymbolEx(SetupApiLib, 'SetupQueueCopyIndirectA', Result);
@SetupQueueCopyIndirectW := GetModuleSymbolEx(SetupApiLib, 'SetupQueueCopyIndirectW', Result);
@SetupQueueCopyIndirect := GetModuleSymbolEx(SetupApiLib, 'SetupQueueCopyIndirect' + NameSuffix, Result);
{$ENDIF WIN2000_UP}
@SetupQueueDefaultCopyA := GetModuleSymbolEx(SetupApiLib, 'SetupQueueDefaultCopyA', Result);
@SetupQueueDefaultCopyW := GetModuleSymbolEx(SetupApiLib, 'SetupQueueDefaultCopyW', Result);
@SetupQueueDefaultCopy := GetModuleSymbolEx(SetupApiLib, 'SetupQueueDefaultCopy' + NameSuffix, Result);
@SetupQueueCopySectionA := GetModuleSymbolEx(SetupApiLib, 'SetupQueueCopySectionA', Result);
@SetupQueueCopySectionW := GetModuleSymbolEx(SetupApiLib, 'SetupQueueCopySectionW', Result);
@SetupQueueCopySection := GetModuleSymbolEx(SetupApiLib, 'SetupQueueCopySection' + NameSuffix, Result);
@SetupQueueDeleteA := GetModuleSymbolEx(SetupApiLib, 'SetupQueueDeleteA', Result);
@SetupQueueDeleteW := GetModuleSymbolEx(SetupApiLib, 'SetupQueueDeleteW', Result);
@SetupQueueDelete := GetModuleSymbolEx(SetupApiLib, 'SetupQueueDelete' + NameSuffix, Result);
@SetupQueueDeleteSectionA := GetModuleSymbolEx(SetupApiLib, 'SetupQueueDeleteSectionA', Result);
@SetupQueueDeleteSectionW := GetModuleSymbolEx(SetupApiLib, 'SetupQueueDeleteSectionW', Result);
@SetupQueueDeleteSection := GetModuleSymbolEx(SetupApiLib, 'SetupQueueDeleteSection' + NameSuffix, Result);
@SetupQueueRenameA := GetModuleSymbolEx(SetupApiLib, 'SetupQueueRenameA', Result);
@SetupQueueRenameW := GetModuleSymbolEx(SetupApiLib, 'SetupQueueRenameW', Result);
@SetupQueueRename := GetModuleSymbolEx(SetupApiLib, 'SetupQueueRename' + NameSuffix, Result);
@SetupQueueRenameSectionA := GetModuleSymbolEx(SetupApiLib, 'SetupQueueRenameSectionA', Result);
@SetupQueueRenameSectionW := GetModuleSymbolEx(SetupApiLib, 'SetupQueueRenameSectionW', Result);
@SetupQueueRenameSection := GetModuleSymbolEx(SetupApiLib, 'SetupQueueRenameSection' + NameSuffix, Result);
@SetupCommitFileQueueA := GetModuleSymbolEx(SetupApiLib, 'SetupCommitFileQueueA', Result);
@SetupCommitFileQueueW := GetModuleSymbolEx(SetupApiLib, 'SetupCommitFileQueueW', Result);
@SetupCommitFileQueue := GetModuleSymbolEx(SetupApiLib, 'SetupCommitFileQueue' + NameSuffix, Result);
@SetupScanFileQueueA := GetModuleSymbolEx(SetupApiLib, 'SetupScanFileQueueA', Result);
@SetupScanFileQueueW := GetModuleSymbolEx(SetupApiLib, 'SetupScanFileQueueW', Result);
@SetupScanFileQueue := GetModuleSymbolEx(SetupApiLib, 'SetupScanFileQueue' + NameSuffix, Result);
@SetupCopyOEMInfA := GetModuleSymbolEx(SetupApiLib, 'SetupCopyOEMInfA', Result);
@SetupCopyOEMInfW := GetModuleSymbolEx(SetupApiLib, 'SetupCopyOEMInfW', Result);
@SetupCopyOEMInf := GetModuleSymbolEx(SetupApiLib, 'SetupCopyOEMInf' + NameSuffix, Result);
{$IFDEF WINXP_UP}
@SetupUninstallOEMInfA := GetModuleSymbolEx(SetupApiLib, 'SetupUninstallOEMInfA', Result);
@SetupUninstallOEMInfW := GetModuleSymbolEx(SetupApiLib, 'SetupUninstallOEMInfW', Result);
@SetupUninstallOEMInf := GetModuleSymbolEx(SetupApiLib, 'SetupUninstallOEMInf' + NameSuffix, Result);
@SetupUninstallNewlyCopiedInfs := GetModuleSymbolEx(SetupApiLib, 'SetupUninstallNewlyCopiedInfs', Result);
{$ENDIF WINXP_UP}
@SetupCreateDiskSpaceListA := GetModuleSymbolEx(SetupApiLib, 'SetupCreateDiskSpaceListA', Result);
@SetupCreateDiskSpaceListW := GetModuleSymbolEx(SetupApiLib, 'SetupCreateDiskSpaceListW', Result);
@SetupCreateDiskSpaceList := GetModuleSymbolEx(SetupApiLib, 'SetupCreateDiskSpaceList' + NameSuffix, Result);
@SetupDuplicateDiskSpaceListA := GetModuleSymbolEx(SetupApiLib, 'SetupDuplicateDiskSpaceListA', Result);
@SetupDuplicateDiskSpaceListW := GetModuleSymbolEx(SetupApiLib, 'SetupDuplicateDiskSpaceListW', Result);
@SetupDuplicateDiskSpaceList := GetModuleSymbolEx(SetupApiLib, 'SetupDuplicateDiskSpaceList' + NameSuffix, Result);
@SetupDestroyDiskSpaceList := GetModuleSymbolEx(SetupApiLib, 'SetupDestroyDiskSpaceList', Result);
@SetupQueryDrivesInDiskSpaceListA := GetModuleSymbolEx(SetupApiLib, 'SetupQueryDrivesInDiskSpaceListA', Result);
@SetupQueryDrivesInDiskSpaceListW := GetModuleSymbolEx(SetupApiLib, 'SetupQueryDrivesInDiskSpaceListW', Result);
@SetupQueryDrivesInDiskSpaceList := GetModuleSymbolEx(SetupApiLib, 'SetupQueryDrivesInDiskSpaceList' + NameSuffix, Result);
@SetupQuerySpaceRequiredOnDriveA := GetModuleSymbolEx(SetupApiLib, 'SetupQuerySpaceRequiredOnDriveA', Result);
@SetupQuerySpaceRequiredOnDriveW := GetModuleSymbolEx(SetupApiLib, 'SetupQuerySpaceRequiredOnDriveW', Result);
@SetupQuerySpaceRequiredOnDrive := GetModuleSymbolEx(SetupApiLib, 'SetupQuerySpaceRequiredOnDrive' + NameSuffix, Result);
@SetupAdjustDiskSpaceListA := GetModuleSymbolEx(SetupApiLib, 'SetupAdjustDiskSpaceListA', Result);
@SetupAdjustDiskSpaceListW := GetModuleSymbolEx(SetupApiLib, 'SetupAdjustDiskSpaceListW', Result);
@SetupAdjustDiskSpaceList := GetModuleSymbolEx(SetupApiLib, 'SetupAdjustDiskSpaceList' + NameSuffix, Result);
@SetupAddToDiskSpaceListA := GetModuleSymbolEx(SetupApiLib, 'SetupAddToDiskSpaceListA', Result);
@SetupAddToDiskSpaceListW := GetModuleSymbolEx(SetupApiLib, 'SetupAddToDiskSpaceListW', Result);
@SetupAddToDiskSpaceList := GetModuleSymbolEx(SetupApiLib, 'SetupAddToDiskSpaceList' + NameSuffix, Result);
@SetupAddSectionToDiskSpaceListA := GetModuleSymbolEx(SetupApiLib, 'SetupAddSectionToDiskSpaceListA', Result);
@SetupAddSectionToDiskSpaceListW := GetModuleSymbolEx(SetupApiLib, 'SetupAddSectionToDiskSpaceListW', Result);
@SetupAddSectionToDiskSpaceList := GetModuleSymbolEx(SetupApiLib, 'SetupAddSectionToDiskSpaceList' + NameSuffix, Result);
@SetupAddInstallSectionToDiskSpaceListA := GetModuleSymbolEx(SetupApiLib, 'SetupAddInstallSectionToDiskSpaceListA', Result);
@SetupAddInstallSectionToDiskSpaceListW := GetModuleSymbolEx(SetupApiLib, 'SetupAddInstallSectionToDiskSpaceListW', Result);
@SetupAddInstallSectionToDiskSpaceList := GetModuleSymbolEx(SetupApiLib, 'SetupAddInstallSectionToDiskSpaceList' + NameSuffix, Result);
@SetupRemoveFromDiskSpaceListA := GetModuleSymbolEx(SetupApiLib, 'SetupRemoveFromDiskSpaceListA', Result);
@SetupRemoveFromDiskSpaceListW := GetModuleSymbolEx(SetupApiLib, 'SetupRemoveFromDiskSpaceListW', Result);
@SetupRemoveFromDiskSpaceList := GetModuleSymbolEx(SetupApiLib, 'SetupRemoveFromDiskSpaceList' + NameSuffix, Result);
@SetupRemoveSectionFromDiskSpaceListA := GetModuleSymbolEx(SetupApiLib, 'SetupRemoveSectionFromDiskSpaceListA', Result);
@SetupRemoveSectionFromDiskSpaceListW := GetModuleSymbolEx(SetupApiLib, 'SetupRemoveSectionFromDiskSpaceListW', Result);
@SetupRemoveSectionFromDiskSpaceList := GetModuleSymbolEx(SetupApiLib, 'SetupRemoveSectionFromDiskSpaceList' + NameSuffix, Result);
@SetupRemoveInstallSectionFromDiskSpaceListA := GetModuleSymbolEx(SetupApiLib, 'SetupRemoveInstallSectionFromDiskSpaceListA', Result);
@SetupRemoveInstallSectionFromDiskSpaceListW := GetModuleSymbolEx(SetupApiLib, 'SetupRemoveInstallSectionFromDiskSpaceListW', Result);
@SetupRemoveInstallSectionFromDiskSpaceList := GetModuleSymbolEx(SetupApiLib, 'SetupRemoveInstallSectionFromDiskSpaceList' + NameSuffix, Result);
@SetupIterateCabinetA := GetModuleSymbolEx(SetupApiLib, 'SetupIterateCabinetA', Result);
@SetupIterateCabinetW := GetModuleSymbolEx(SetupApiLib, 'SetupIterateCabinetW', Result);
@SetupIterateCabinet := GetModuleSymbolEx(SetupApiLib, 'SetupIterateCabinet' + NameSuffix, Result);
@SetupPromptReboot := GetModuleSymbolEx(SetupApiLib, 'SetupPromptReboot', Result);
@SetupInitDefaultQueueCallback := GetModuleSymbolEx(SetupApiLib, 'SetupInitDefaultQueueCallback', Result);
@SetupInitDefaultQueueCallbackEx := GetModuleSymbolEx(SetupApiLib, 'SetupInitDefaultQueueCallbackEx', Result);
@SetupTermDefaultQueueCallback := GetModuleSymbolEx(SetupApiLib, 'SetupTermDefaultQueueCallback', Result);
@SetupDefaultQueueCallbackA := GetModuleSymbolEx(SetupApiLib, 'SetupDefaultQueueCallbackA', Result);
@SetupDefaultQueueCallbackW := GetModuleSymbolEx(SetupApiLib, 'SetupDefaultQueueCallbackW', Result);
@SetupDefaultQueueCallback := GetModuleSymbolEx(SetupApiLib, 'SetupDefaultQueueCallback' + NameSuffix, Result);
@SetupInstallFromInfSectionA := GetModuleSymbolEx(SetupApiLib, 'SetupInstallFromInfSectionA', Result);
@SetupInstallFromInfSectionW := GetModuleSymbolEx(SetupApiLib, 'SetupInstallFromInfSectionW', Result);
@SetupInstallFromInfSection := GetModuleSymbolEx(SetupApiLib, 'SetupInstallFromInfSection' + NameSuffix, Result);
@SetupInstallFilesFromInfSectionA := GetModuleSymbolEx(SetupApiLib, 'SetupInstallFilesFromInfSectionA', Result);
@SetupInstallFilesFromInfSectionW := GetModuleSymbolEx(SetupApiLib, 'SetupInstallFilesFromInfSectionW', Result);
@SetupInstallFilesFromInfSection := GetModuleSymbolEx(SetupApiLib, 'SetupInstallFilesFromInfSection' + NameSuffix, Result);
@SetupInstallServicesFromInfSectionA := GetModuleSymbolEx(SetupApiLib, 'SetupInstallServicesFromInfSectionA', Result);
@SetupInstallServicesFromInfSectionW := GetModuleSymbolEx(SetupApiLib, 'SetupInstallServicesFromInfSectionW', Result);
@SetupInstallServicesFromInfSection := GetModuleSymbolEx(SetupApiLib, 'SetupInstallServicesFromInfSection' + NameSuffix, Result);
@SetupInstallServicesFromInfSectionExA := GetModuleSymbolEx(SetupApiLib, 'SetupInstallServicesFromInfSectionExA', Result);
@SetupInstallServicesFromInfSectionExW := GetModuleSymbolEx(SetupApiLib, 'SetupInstallServicesFromInfSectionExW', Result);
@SetupInstallServicesFromInfSectionEx := GetModuleSymbolEx(SetupApiLib, 'SetupInstallServicesFromInfSectionEx' + NameSuffix, Result);
{$IFDEF WINXP_UP}
@InstallHinfSectionA := GetModuleSymbolEx(SetupApiLib, 'InstallHinfSectionA', Result);
@InstallHinfSectionW := GetModuleSymbolEx(SetupApiLib, 'InstallHinfSectionW', Result);
@InstallHinfSection := GetModuleSymbolEx(SetupApiLib, 'InstallHinfSection' + NameSuffix, Result);
{$ENDIF WINXP_UP}
@SetupInitializeFileLogA := GetModuleSymbolEx(SetupApiLib, 'SetupInitializeFileLogA', Result);
@SetupInitializeFileLogW := GetModuleSymbolEx(SetupApiLib, 'SetupInitializeFileLogW', Result);
@SetupInitializeFileLog := GetModuleSymbolEx(SetupApiLib, 'SetupInitializeFileLog' + NameSuffix, Result);
@SetupTerminateFileLog := GetModuleSymbolEx(SetupApiLib, 'SetupTerminateFileLog', Result);
@SetupLogFileA := GetModuleSymbolEx(SetupApiLib, 'SetupLogFileA', Result);
@SetupLogFileW := GetModuleSymbolEx(SetupApiLib, 'SetupLogFileW', Result);
@SetupLogFile := GetModuleSymbolEx(SetupApiLib, 'SetupLogFile' + NameSuffix, Result);
@SetupRemoveFileLogEntryA := GetModuleSymbolEx(SetupApiLib, 'SetupRemoveFileLogEntryA', Result);
@SetupRemoveFileLogEntryW := GetModuleSymbolEx(SetupApiLib, 'SetupRemoveFileLogEntryW', Result);
@SetupRemoveFileLogEntry := GetModuleSymbolEx(SetupApiLib, 'SetupRemoveFileLogEntry' + NameSuffix, Result);
@SetupQueryFileLogA := GetModuleSymbolEx(SetupApiLib, 'SetupQueryFileLogA', Result);
@SetupQueryFileLogW := GetModuleSymbolEx(SetupApiLib, 'SetupQueryFileLogW', Result);
@SetupQueryFileLog := GetModuleSymbolEx(SetupApiLib, 'SetupQueryFileLog' + NameSuffix, Result);
@SetupOpenLog := GetModuleSymbolEx(SetupApiLib, 'SetupOpenLog', Result);
@SetupLogErrorA := GetModuleSymbolEx(SetupApiLib, 'SetupLogErrorA', Result);
@SetupLogErrorW := GetModuleSymbolEx(SetupApiLib, 'SetupLogErrorW', Result);
@SetupLogError := GetModuleSymbolEx(SetupApiLib, 'SetupLogError' + NameSuffix, Result);
@SetupCloseLog := GetModuleSymbolEx(SetupApiLib, 'SetupCloseLog', Result);
{$IFDEF WIN2000_UP}
@SetupGetBackupInformationA := GetModuleSymbolEx(SetupApiLib, 'SetupGetBackupInformationA', Result);
@SetupGetBackupInformationW := GetModuleSymbolEx(SetupApiLib, 'SetupGetBackupInformationW', Result);
@SetupGetBackupInformation := GetModuleSymbolEx(SetupApiLib, 'SetupGetBackupInformation' + NameSuffix, Result);
{$ENDIF WIN2000_UP}
{$IFDEF WINXP_UP}
@SetupPrepareQueueForRestoreA := GetModuleSymbolEx(SetupApiLib, 'SetupPrepareQueueForRestoreA', Result);
@SetupPrepareQueueForRestoreW := GetModuleSymbolEx(SetupApiLib, 'SetupPrepareQueueForRestoreW', Result);
@SetupPrepareQueueForRestore := GetModuleSymbolEx(SetupApiLib, 'SetupPrepareQueueForRestore' + NameSuffix, Result);
@SetupSetNonInteractiveMode := GetModuleSymbolEx(SetupApiLib, 'SetupSetNonInteractiveMode', Result);
@SetupGetNonInteractiveMode := GetModuleSymbolEx(SetupApiLib, 'SetupGetNonInteractiveMode', Result);
{$ENDIF WINXP_UP}
@SetupDiCreateDeviceInfoList := GetModuleSymbolEx(SetupApiLib, 'SetupDiCreateDeviceInfoList', Result);
@SetupDiCreateDeviceInfoListExA := GetModuleSymbolEx(SetupApiLib, 'SetupDiCreateDeviceInfoListExA', Result);
@SetupDiCreateDeviceInfoListExW := GetModuleSymbolEx(SetupApiLib, 'SetupDiCreateDeviceInfoListExW', Result);
@SetupDiCreateDeviceInfoListEx := GetModuleSymbolEx(SetupApiLib, 'SetupDiCreateDeviceInfoListEx' + NameSuffix, Result);
@SetupDiGetDeviceInfoListClass := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDeviceInfoListClass', Result);
@SetupDiGetDeviceInfoListDetailA := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDeviceInfoListDetailA', Result);
@SetupDiGetDeviceInfoListDetailW := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDeviceInfoListDetailW', Result);
@SetupDiGetDeviceInfoListDetail := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDeviceInfoListDetail' + NameSuffix, Result);
@SetupDiCreateDeviceInfoA := GetModuleSymbolEx(SetupApiLib, 'SetupDiCreateDeviceInfoA', Result);
@SetupDiCreateDeviceInfoW := GetModuleSymbolEx(SetupApiLib, 'SetupDiCreateDeviceInfoW', Result);
@SetupDiCreateDeviceInfo := GetModuleSymbolEx(SetupApiLib, 'SetupDiCreateDeviceInfo' + NameSuffix, Result);
@SetupDiOpenDeviceInfoA := GetModuleSymbolEx(SetupApiLib, 'SetupDiOpenDeviceInfoA', Result);
@SetupDiOpenDeviceInfoW := GetModuleSymbolEx(SetupApiLib, 'SetupDiOpenDeviceInfoW', Result);
@SetupDiOpenDeviceInfo := GetModuleSymbolEx(SetupApiLib, 'SetupDiOpenDeviceInfo' + NameSuffix, Result);
@SetupDiGetDeviceInstanceIdA := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDeviceInstanceIdA', Result);
@SetupDiGetDeviceInstanceIdW := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDeviceInstanceIdW', Result);
@SetupDiGetDeviceInstanceId := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDeviceInstanceId' + NameSuffix, Result);
@SetupDiDeleteDeviceInfo := GetModuleSymbolEx(SetupApiLib, 'SetupDiDeleteDeviceInfo', Result);
@SetupDiEnumDeviceInfo := GetModuleSymbolEx(SetupApiLib, 'SetupDiEnumDeviceInfo', Result);
@SetupDiDestroyDeviceInfoList := GetModuleSymbolEx(SetupApiLib, 'SetupDiDestroyDeviceInfoList', Result);
@SetupDiEnumDeviceInterfaces := GetModuleSymbolEx(SetupApiLib, 'SetupDiEnumDeviceInterfaces', Result);
@SetupDiEnumInterfaceDevice := GetModuleSymbolEx(SetupApiLib, 'SetupDiEnumDeviceInterfaces', Result);
@SetupDiCreateDeviceInterfaceA := GetModuleSymbolEx(SetupApiLib, 'SetupDiCreateDeviceInterfaceA', Result);
@SetupDiCreateInterfaceDeviceA := GetModuleSymbolEx(SetupApiLib, 'SetupDiCreateDeviceInterfaceA', Result);
@SetupDiCreateDeviceInterfaceW := GetModuleSymbolEx(SetupApiLib, 'SetupDiCreateDeviceInterfaceW', Result);
@SetupDiCreateInterfaceDeviceW := GetModuleSymbolEx(SetupApiLib, 'SetupDiCreateDeviceInterfaceW', Result);
@SetupDiCreateDeviceInterface := GetModuleSymbolEx(SetupApiLib, 'SetupDiCreateDeviceInterface' + NameSuffix, Result);
@SetupDiCreateInterfaceDevice := GetModuleSymbolEx(SetupApiLib, 'SetupDiCreateDeviceInterface' + NameSuffix, Result);
@SetupDiOpenDeviceInterfaceA := GetModuleSymbolEx(SetupApiLib, 'SetupDiOpenDeviceInterfaceA', Result);
@SetupDiOpenInterfaceDeviceA := GetModuleSymbolEx(SetupApiLib, 'SetupDiOpenDeviceInterfaceA', Result);
@SetupDiOpenDeviceInterfaceW := GetModuleSymbolEx(SetupApiLib, 'SetupDiOpenDeviceInterfaceW', Result);
@SetupDiOpenInterfaceDeviceW := GetModuleSymbolEx(SetupApiLib, 'SetupDiOpenDeviceInterfaceW', Result);
@SetupDiOpenDeviceInterface := GetModuleSymbolEx(SetupApiLib, 'SetupDiOpenDeviceInterface' + NameSuffix, Result);
@SetupDiOpenInterfaceDevice := GetModuleSymbolEx(SetupApiLib, 'SetupDiOpenDeviceInterface' + NameSuffix, Result);
@SetupDiGetDeviceInterfaceAlias := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDeviceInterfaceAlias', Result);
@SetupDiGetInterfaceDeviceAlias := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDeviceInterfaceAlias', Result);
@SetupDiDeleteDeviceInterfaceData := GetModuleSymbolEx(SetupApiLib, 'SetupDiDeleteDeviceInterfaceData', Result);
@SetupDiDeleteInterfaceDeviceData := GetModuleSymbolEx(SetupApiLib, 'SetupDiDeleteDeviceInterfaceData', Result);
@SetupDiRemoveDeviceInterface := GetModuleSymbolEx(SetupApiLib, 'SetupDiRemoveDeviceInterface', Result);
@SetupDiRemoveInterfaceDevice := GetModuleSymbolEx(SetupApiLib, 'SetupDiRemoveDeviceInterface', Result);
@SetupDiGetDeviceInterfaceDetailA := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDeviceInterfaceDetailA', Result);
@SetupDiGetInterfaceDeviceDetailA := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDeviceInterfaceDetailA', Result);
@SetupDiGetDeviceInterfaceDetailW := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDeviceInterfaceDetailW', Result);
@SetupDiGetInterfaceDeviceDetailW := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDeviceInterfaceDetailW', Result);
@SetupDiGetDeviceInterfaceDetail := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDeviceInterfaceDetail' + NameSuffix, Result);
@SetupDiGetInterfaceDeviceDetail := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDeviceInterfaceDetail' + NameSuffix, Result);
@SetupDiInstallDeviceInterfaces := GetModuleSymbolEx(SetupApiLib, 'SetupDiInstallDeviceInterfaces', Result);
@SetupDiInstallInterfaceDevices := GetModuleSymbolEx(SetupApiLib, 'SetupDiInstallDeviceInterfaces', Result);
{$IFDEF WINXP_UP}
@SetupDiSetDeviceInterfaceDefault := GetModuleSymbolEx(SetupApiLib, 'SetupDiSetDeviceInterfaceDefault', Result);
{$ENDIF WINXP_UP}
@SetupDiRegisterDeviceInfo := GetModuleSymbolEx(SetupApiLib, 'SetupDiRegisterDeviceInfo', Result);
@SetupDiBuildDriverInfoList := GetModuleSymbolEx(SetupApiLib, 'SetupDiBuildDriverInfoList', Result);
@SetupDiCancelDriverInfoSearch := GetModuleSymbolEx(SetupApiLib, 'SetupDiCancelDriverInfoSearch', Result);
@SetupDiEnumDriverInfoA := GetModuleSymbolEx(SetupApiLib, 'SetupDiEnumDriverInfoA', Result);
@SetupDiEnumDriverInfoW := GetModuleSymbolEx(SetupApiLib, 'SetupDiEnumDriverInfoW', Result);
@SetupDiEnumDriverInfo := GetModuleSymbolEx(SetupApiLib, 'SetupDiEnumDriverInfo' + NameSuffix, Result);
@SetupDiGetSelectedDriverA := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetSelectedDriverA', Result);
@SetupDiGetSelectedDriverW := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetSelectedDriverW', Result);
@SetupDiGetSelectedDriver := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetSelectedDriver' + NameSuffix, Result);
@SetupDiSetSelectedDriverA := GetModuleSymbolEx(SetupApiLib, 'SetupDiSetSelectedDriverA', Result);
@SetupDiSetSelectedDriverW := GetModuleSymbolEx(SetupApiLib, 'SetupDiSetSelectedDriverW', Result);
@SetupDiSetSelectedDriver := GetModuleSymbolEx(SetupApiLib, 'SetupDiSetSelectedDriver' + NameSuffix, Result);
@SetupDiGetDriverInfoDetailA := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDriverInfoDetailA', Result);
@SetupDiGetDriverInfoDetailW := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDriverInfoDetailW', Result);
@SetupDiGetDriverInfoDetail := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDriverInfoDetail' + NameSuffix, Result);
@SetupDiDestroyDriverInfoList := GetModuleSymbolEx(SetupApiLib, 'SetupDiDestroyDriverInfoList', Result);
@SetupDiGetClassDevsA := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassDevsA', Result);
@SetupDiGetClassDevsW := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassDevsW', Result);
@SetupDiGetClassDevs := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassDevs' + NameSuffix, Result);
@SetupDiGetClassDevsExA := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassDevsExA', Result);
@SetupDiGetClassDevsExW := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassDevsExW', Result);
@SetupDiGetClassDevsEx := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassDevsEx' + NameSuffix, Result);
@SetupDiGetINFClassA := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetINFClassA', Result);
@SetupDiGetINFClassW := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetINFClassW', Result);
@SetupDiGetINFClass := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetINFClass' + NameSuffix, Result);
@SetupDiBuildClassInfoList := GetModuleSymbolEx(SetupApiLib, 'SetupDiBuildClassInfoList', Result);
@SetupDiBuildClassInfoListExA := GetModuleSymbolEx(SetupApiLib, 'SetupDiBuildClassInfoListExA', Result);
@SetupDiBuildClassInfoListExW := GetModuleSymbolEx(SetupApiLib, 'SetupDiBuildClassInfoListExW', Result);
@SetupDiBuildClassInfoListEx := GetModuleSymbolEx(SetupApiLib, 'SetupDiBuildClassInfoListEx' + NameSuffix, Result);
@SetupDiGetClassDescriptionA := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassDescriptionA', Result);
@SetupDiGetClassDescriptionW := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassDescriptionW', Result);
@SetupDiGetClassDescription := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassDescription' + NameSuffix, Result);
@SetupDiGetClassDescriptionExA := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassDescriptionExA', Result);
@SetupDiGetClassDescriptionExW := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassDescriptionExW', Result);
@SetupDiGetClassDescriptionEx := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassDescriptionEx' + NameSuffix, Result);
@SetupDiCallClassInstaller := GetModuleSymbolEx(SetupApiLib, 'SetupDiCallClassInstaller', Result);
@SetupDiSelectDevice := GetModuleSymbolEx(SetupApiLib, 'SetupDiSelectDevice', Result);
@SetupDiSelectBestCompatDrv := GetModuleSymbolEx(SetupApiLib, 'SetupDiSelectBestCompatDrv', Result);
@SetupDiInstallDevice := GetModuleSymbolEx(SetupApiLib, 'SetupDiInstallDevice', Result);
@SetupDiInstallDriverFiles := GetModuleSymbolEx(SetupApiLib, 'SetupDiInstallDriverFiles', Result);
@SetupDiRegisterCoDeviceInstallers := GetModuleSymbolEx(SetupApiLib, 'SetupDiRegisterCoDeviceInstallers', Result);
@SetupDiRemoveDevice := GetModuleSymbolEx(SetupApiLib, 'SetupDiRemoveDevice', Result);
@SetupDiUnremoveDevice := GetModuleSymbolEx(SetupApiLib, 'SetupDiUnremoveDevice', Result);
@SetupDiMoveDuplicateDevice := GetModuleSymbolEx(SetupApiLib, 'SetupDiMoveDuplicateDevice', Result);
@SetupDiChangeState := GetModuleSymbolEx(SetupApiLib, 'SetupDiChangeState', Result);
@SetupDiInstallClassA := GetModuleSymbolEx(SetupApiLib, 'SetupDiInstallClassA', Result);
@SetupDiInstallClassW := GetModuleSymbolEx(SetupApiLib, 'SetupDiInstallClassW', Result);
@SetupDiInstallClass := GetModuleSymbolEx(SetupApiLib, 'SetupDiInstallClass' + NameSuffix, Result);
@SetupDiInstallClassExA := GetModuleSymbolEx(SetupApiLib, 'SetupDiInstallClassExA', Result);
@SetupDiInstallClassExW := GetModuleSymbolEx(SetupApiLib, 'SetupDiInstallClassExW', Result);
@SetupDiInstallClassEx := GetModuleSymbolEx(SetupApiLib, 'SetupDiInstallClassEx' + NameSuffix, Result);
@SetupDiOpenClassRegKey := GetModuleSymbolEx(SetupApiLib, 'SetupDiOpenClassRegKey', Result);
@SetupDiOpenClassRegKeyExA := GetModuleSymbolEx(SetupApiLib, 'SetupDiOpenClassRegKeyExA', Result);
@SetupDiOpenClassRegKeyExW := GetModuleSymbolEx(SetupApiLib, 'SetupDiOpenClassRegKeyExW', Result);
@SetupDiOpenClassRegKeyEx := GetModuleSymbolEx(SetupApiLib, 'SetupDiOpenClassRegKeyEx' + NameSuffix, Result);
@SetupDiCreateDeviceInterfaceRegKeyA := GetModuleSymbolEx(SetupApiLib, 'SetupDiCreateDeviceInterfaceRegKeyA', Result);
@SetupDiCreateInterfaceDeviceRegKeyA := GetModuleSymbolEx(SetupApiLib, 'SetupDiCreateDeviceInterfaceRegKeyA', Result);
@SetupDiCreateDeviceInterfaceRegKeyW := GetModuleSymbolEx(SetupApiLib, 'SetupDiCreateDeviceInterfaceRegKeyW', Result);
@SetupDiCreateInterfaceDeviceRegKeyW := GetModuleSymbolEx(SetupApiLib, 'SetupDiCreateDeviceInterfaceRegKeyW', Result);
@SetupDiCreateDeviceInterfaceRegKey := GetModuleSymbolEx(SetupApiLib, 'SetupDiCreateDeviceInterfaceRegKey' + NameSuffix, Result);
@SetupDiCreateInterfaceDeviceRegKey := GetModuleSymbolEx(SetupApiLib, 'SetupDiCreateDeviceInterfaceRegKey' + NameSuffix, Result);
@SetupDiOpenDeviceInterfaceRegKey := GetModuleSymbolEx(SetupApiLib, 'SetupDiOpenDeviceInterfaceRegKey', Result);
@SetupDiOpenInterfaceDeviceRegKey := GetModuleSymbolEx(SetupApiLib, 'SetupDiOpenDeviceInterfaceRegKey', Result);
@SetupDiDeleteDeviceInterfaceRegKey := GetModuleSymbolEx(SetupApiLib, 'SetupDiDeleteDeviceInterfaceRegKey', Result);
@SetupDiDeleteInterfaceDeviceRegKey := GetModuleSymbolEx(SetupApiLib, 'SetupDiDeleteDeviceInterfaceRegKey', Result);
@SetupDiCreateDevRegKeyA := GetModuleSymbolEx(SetupApiLib, 'SetupDiCreateDevRegKeyA', Result);
@SetupDiCreateDevRegKeyW := GetModuleSymbolEx(SetupApiLib, 'SetupDiCreateDevRegKeyW', Result);
@SetupDiCreateDevRegKey := GetModuleSymbolEx(SetupApiLib, 'SetupDiCreateDevRegKey' + NameSuffix, Result);
@SetupDiOpenDevRegKey := GetModuleSymbolEx(SetupApiLib, 'SetupDiOpenDevRegKey', Result);
@SetupDiDeleteDevRegKey := GetModuleSymbolEx(SetupApiLib, 'SetupDiDeleteDevRegKey', Result);
@SetupDiGetHwProfileList := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetHwProfileList', Result);
@SetupDiGetHwProfileListExA := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetHwProfileListExA', Result);
@SetupDiGetHwProfileListExW := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetHwProfileListExW', Result);
@SetupDiGetHwProfileListEx := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetHwProfileListEx' + NameSuffix, Result);
@SetupDiGetDeviceRegistryPropertyA := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDeviceRegistryPropertyA', Result);
@SetupDiGetDeviceRegistryPropertyW := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDeviceRegistryPropertyW', Result);
@SetupDiGetDeviceRegistryProperty := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDeviceRegistryProperty' + NameSuffix, Result);
{$IFDEF WINXP_UP}
@SetupDiGetClassRegistryPropertyA := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassRegistryPropertyA', Result);
@SetupDiGetClassRegistryPropertyW := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassRegistryPropertyW', Result);
@SetupDiGetClassRegistryProperty := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassRegistryProperty' + NameSuffix, Result);
{$ENDIF WINXP_UP}
@SetupDiSetDeviceRegistryPropertyA := GetModuleSymbolEx(SetupApiLib, 'SetupDiSetDeviceRegistryPropertyA', Result);
@SetupDiSetDeviceRegistryPropertyW := GetModuleSymbolEx(SetupApiLib, 'SetupDiSetDeviceRegistryPropertyW', Result);
@SetupDiSetDeviceRegistryProperty := GetModuleSymbolEx(SetupApiLib, 'SetupDiSetDeviceRegistryProperty' + NameSuffix, Result);
{$IFDEF WINXP_UP}
@SetupDiSetClassRegistryPropertyA := GetModuleSymbolEx(SetupApiLib, 'SetupDiSetClassRegistryPropertyA', Result);
@SetupDiSetClassRegistryPropertyW := GetModuleSymbolEx(SetupApiLib, 'SetupDiSetClassRegistryPropertyW', Result);
@SetupDiSetClassRegistryProperty := GetModuleSymbolEx(SetupApiLib, 'SetupDiSetClassRegistryProperty' + NameSuffix, Result);
{$ENDIF WINXP_UP}
@SetupDiGetDeviceInstallParamsA := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDeviceInstallParamsA', Result);
@SetupDiGetDeviceInstallParamsW := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDeviceInstallParamsW', Result);
@SetupDiGetDeviceInstallParams := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDeviceInstallParams' + NameSuffix, Result);
@SetupDiGetClassInstallParamsA := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassInstallParamsA', Result);
@SetupDiGetClassInstallParamsW := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassInstallParamsW', Result);
@SetupDiGetClassInstallParams := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassInstallParams' + NameSuffix, Result);
@SetupDiSetDeviceInstallParamsA := GetModuleSymbolEx(SetupApiLib, 'SetupDiSetDeviceInstallParamsA', Result);
@SetupDiSetDeviceInstallParamsW := GetModuleSymbolEx(SetupApiLib, 'SetupDiSetDeviceInstallParamsW', Result);
@SetupDiSetDeviceInstallParams := GetModuleSymbolEx(SetupApiLib, 'SetupDiSetDeviceInstallParams' + NameSuffix, Result);
@SetupDiSetClassInstallParamsA := GetModuleSymbolEx(SetupApiLib, 'SetupDiSetClassInstallParamsA', Result);
@SetupDiSetClassInstallParamsW := GetModuleSymbolEx(SetupApiLib, 'SetupDiSetClassInstallParamsW', Result);
@SetupDiSetClassInstallParams := GetModuleSymbolEx(SetupApiLib, 'SetupDiSetClassInstallParams' + NameSuffix, Result);
@SetupDiGetDriverInstallParamsA := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDriverInstallParamsA', Result);
@SetupDiGetDriverInstallParamsW := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDriverInstallParamsW', Result);
@SetupDiGetDriverInstallParams := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetDriverInstallParams' + NameSuffix, Result);
@SetupDiSetDriverInstallParamsA := GetModuleSymbolEx(SetupApiLib, 'SetupDiSetDriverInstallParamsA', Result);
@SetupDiSetDriverInstallParamsW := GetModuleSymbolEx(SetupApiLib, 'SetupDiSetDriverInstallParamsW', Result);
@SetupDiSetDriverInstallParams := GetModuleSymbolEx(SetupApiLib, 'SetupDiSetDriverInstallParams' + NameSuffix, Result);
@SetupDiLoadClassIcon := GetModuleSymbolEx(SetupApiLib, 'SetupDiLoadClassIcon', Result);
@SetupDiDrawMiniIcon := GetModuleSymbolEx(SetupApiLib, 'SetupDiDrawMiniIcon', Result);
@SetupDiGetClassBitmapIndex := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassBitmapIndex', Result);
@SetupDiGetClassImageList := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassImageList', Result);
@SetupDiGetClassImageListExA := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassImageListExA', Result);
@SetupDiGetClassImageListExW := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassImageListExW', Result);
@SetupDiGetClassImageListEx := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassImageListEx' + NameSuffix, Result);
@SetupDiGetClassImageIndex := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassImageIndex', Result);
@SetupDiDestroyClassImageList := GetModuleSymbolEx(SetupApiLib, 'SetupDiDestroyClassImageList', Result);
@SetupDiGetClassDevPropertySheetsA := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassDevPropertySheetsA', Result);
@SetupDiGetClassDevPropertySheetsW := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassDevPropertySheetsW', Result);
@SetupDiGetClassDevPropertySheets := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetClassDevPropertySheets' + NameSuffix, Result);
@SetupDiAskForOEMDisk := GetModuleSymbolEx(SetupApiLib, 'SetupDiAskForOEMDisk', Result);
@SetupDiSelectOEMDrv := GetModuleSymbolEx(SetupApiLib, 'SetupDiSelectOEMDrv', Result);
@SetupDiClassNameFromGuidA := GetModuleSymbolEx(SetupApiLib, 'SetupDiClassNameFromGuidA', Result);
@SetupDiClassNameFromGuidW := GetModuleSymbolEx(SetupApiLib, 'SetupDiClassNameFromGuidW', Result);
@SetupDiClassNameFromGuid := GetModuleSymbolEx(SetupApiLib, 'SetupDiClassNameFromGuid' + NameSuffix, Result);
@SetupDiClassNameFromGuidExA := GetModuleSymbolEx(SetupApiLib, 'SetupDiClassNameFromGuidExA', Result);
@SetupDiClassNameFromGuidExW := GetModuleSymbolEx(SetupApiLib, 'SetupDiClassNameFromGuidExW', Result);
@SetupDiClassNameFromGuidEx := GetModuleSymbolEx(SetupApiLib, 'SetupDiClassNameFromGuidEx' + NameSuffix, Result);
@SetupDiClassGuidsFromNameA := GetModuleSymbolEx(SetupApiLib, 'SetupDiClassGuidsFromNameA', Result);
@SetupDiClassGuidsFromNameW := GetModuleSymbolEx(SetupApiLib, 'SetupDiClassGuidsFromNameW', Result);
@SetupDiClassGuidsFromName := GetModuleSymbolEx(SetupApiLib, 'SetupDiClassGuidsFromName' + NameSuffix, Result);
@SetupDiClassGuidsFromNameExA := GetModuleSymbolEx(SetupApiLib, 'SetupDiClassGuidsFromNameExA', Result);
@SetupDiClassGuidsFromNameExW := GetModuleSymbolEx(SetupApiLib, 'SetupDiClassGuidsFromNameExW', Result);
@SetupDiClassGuidsFromNameEx := GetModuleSymbolEx(SetupApiLib, 'SetupDiClassGuidsFromNameEx' + NameSuffix, Result);
@SetupDiGetHwProfileFriendlyNameA := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetHwProfileFriendlyNameA', Result);
@SetupDiGetHwProfileFriendlyNameW := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetHwProfileFriendlyNameW', Result);
@SetupDiGetHwProfileFriendlyName := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetHwProfileFriendlyName' + NameSuffix, Result);
@SetupDiGetHwProfileFriendlyNameExA := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetHwProfileFriendlyNameExA', Result);
@SetupDiGetHwProfileFriendlyNameExW := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetHwProfileFriendlyNameExW', Result);
@SetupDiGetHwProfileFriendlyNameEx := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetHwProfileFriendlyNameEx' + NameSuffix, Result);
@SetupDiGetWizardPage := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetWizardPage', Result);
@SetupDiGetSelectedDevice := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetSelectedDevice', Result);
@SetupDiSetSelectedDevice := GetModuleSymbolEx(SetupApiLib, 'SetupDiSetSelectedDevice', Result);
@SetupDiGetActualSectionToInstallA := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetActualSectionToInstallA', Result);
@SetupDiGetActualSectionToInstallW := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetActualSectionToInstallW', Result);
@SetupDiGetActualSectionToInstall := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetActualSectionToInstall' + NameSuffix, Result);
{$IFDEF WINXP_UP}
@SetupDiGetActualSectionToInstallExA := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetActualSectionToInstallExA', Result);
@SetupDiGetActualSectionToInstallExW := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetActualSectionToInstallExW', Result);
@SetupDiGetActualSectionToInstallEx := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetActualSectionToInstallEx' + NameSuffix, Result);
@SetupEnumInfSectionsA := GetModuleSymbolEx(SetupApiLib, 'SetupEnumInfSectionsA', Result);
@SetupEnumInfSectionsW := GetModuleSymbolEx(SetupApiLib, 'SetupEnumInfSectionsW', Result);
@SetupEnumInfSections := GetModuleSymbolEx(SetupApiLib, 'SetupEnumInfSections' + NameSuffix, Result);
@SetupVerifyInfFileA := GetModuleSymbolEx(SetupApiLib, 'SetupVerifyInfFileA', Result);
@SetupVerifyInfFileW := GetModuleSymbolEx(SetupApiLib, 'SetupVerifyInfFileW', Result);
@SetupVerifyInfFile := GetModuleSymbolEx(SetupApiLib, 'SetupVerifyInfFile' + NameSuffix, Result);
@SetupDiGetCustomDevicePropertyA := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetCustomDevicePropertyA', Result);
@SetupDiGetCustomDevicePropertyW := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetCustomDevicePropertyW', Result);
@SetupDiGetCustomDeviceProperty := GetModuleSymbolEx(SetupApiLib, 'SetupDiGetCustomDeviceProperty' + NameSuffix, Result);
{$ENDIF WINXP_UP}
if not Result then
UnloadSetupApi;
end;
{$ELSE}
Result := True;
{$ENDIF SETUPAPI_LINKONREQUEST}
end;
procedure UnloadSetupApi;
begin
{$IFDEF SETUPAPI_LINKONREQUEST}
Dec(SetupApiLoadCount);
if SetupApiLoadCount > 0 then
Exit;
ModuleLoader.UnloadModule(SetupApiLib);
{$IFDEF WINXP_UP}
SetupGetFileQueueCount := nil;
SetupGetFileQueueFlags := nil;
SetupSetFileQueueFlags := nil;
{$ENDIF WINXP_UP}
SetupGetInfInformationA := nil;
SetupGetInfInformationW := nil;
SetupGetInfInformation := nil;
SetupQueryInfFileInformationA := nil;
SetupQueryInfFileInformationW := nil;
SetupQueryInfFileInformation := nil;
{$IFDEF WIN2000_UP}
SetupQueryInfOriginalFileInformationA := nil;
SetupQueryInfOriginalFileInformationW := nil;
SetupQueryInfOriginalFileInformation := nil;
{$ENDIF WIN2000_UP}
SetupQueryInfVersionInformationA := nil;
SetupQueryInfVersionInformationW := nil;
SetupQueryInfVersionInformation := nil;
SetupGetInfFileListA := nil;
SetupGetInfFileListW := nil;
SetupGetInfFileList := nil;
SetupOpenInfFileA := nil;
SetupOpenInfFileW := nil;
SetupOpenInfFile := nil;
SetupOpenMasterInf := nil;
SetupOpenAppendInfFileA := nil;
SetupOpenAppendInfFileW := nil;
SetupOpenAppendInfFile := nil;
SetupCloseInfFile := nil;
SetupFindFirstLineA := nil;
SetupFindFirstLineW := nil;
SetupFindFirstLine := nil;
SetupFindNextLine := nil;
SetupFindNextMatchLineA := nil;
SetupFindNextMatchLineW := nil;
SetupFindNextMatchLine := nil;
SetupGetLineByIndexA := nil;
SetupGetLineByIndexW := nil;
SetupGetLineByIndex := nil;
SetupGetLineCountA := nil;
SetupGetLineCountW := nil;
SetupGetLineCount := nil;
SetupGetLineTextA := nil;
SetupGetLineTextW := nil;
SetupGetLineText := nil;
SetupGetFieldCount := nil;
SetupGetStringFieldA := nil;
SetupGetStringFieldW := nil;
SetupGetStringField := nil;
SetupGetIntField := nil;
SetupGetMultiSzFieldA := nil;
SetupGetMultiSzFieldW := nil;
SetupGetMultiSzField := nil;
SetupGetBinaryField := nil;
SetupGetFileCompressionInfoA := nil;
SetupGetFileCompressionInfoW := nil;
SetupGetFileCompressionInfo := nil;
{$IFDEF WINXP_UP}
SetupGetFileCompressionInfoExA := nil;
SetupGetFileCompressionInfoExW := nil;
SetupGetFileCompressionInfoEx := nil;
{$ENDIF WINXP_UP}
SetupDecompressOrCopyFileA := nil;
SetupDecompressOrCopyFileW := nil;
SetupDecompressOrCopyFile := nil;
SetupGetSourceFileLocationA := nil;
SetupGetSourceFileLocationW := nil;
SetupGetSourceFileLocation := nil;
SetupGetSourceFileSizeA := nil;
SetupGetSourceFileSizeW := nil;
SetupGetSourceFileSize := nil;
SetupGetTargetPathA := nil;
SetupGetTargetPathW := nil;
SetupGetTargetPath := nil;
SetupSetSourceListA := nil;
SetupSetSourceListW := nil;
SetupSetSourceList := nil;
SetupCancelTemporarySourceList := nil;
SetupAddToSourceListA := nil;
SetupAddToSourceListW := nil;
SetupAddToSourceList := nil;
SetupRemoveFromSourceListA := nil;
SetupRemoveFromSourceListW := nil;
SetupRemoveFromSourceList := nil;
SetupQuerySourceListA := nil;
SetupQuerySourceListW := nil;
SetupQuerySourceList := nil;
SetupFreeSourceListA := nil;
SetupFreeSourceListW := nil;
SetupFreeSourceList := nil;
SetupPromptForDiskA := nil;
SetupPromptForDiskW := nil;
SetupPromptForDisk := nil;
SetupCopyErrorA := nil;
SetupCopyErrorW := nil;
SetupCopyError := nil;
SetupRenameErrorA := nil;
SetupRenameErrorW := nil;
SetupRenameError := nil;
SetupDeleteErrorA := nil;
SetupDeleteErrorW := nil;
SetupDeleteError := nil;
{$IFDEF WIN2000_UP}
SetupBackupErrorA := nil;
SetupBackupErrorW := nil;
SetupBackupError := nil;
{$ENDIF WIN2000_UP}
SetupSetDirectoryIdA := nil;
SetupSetDirectoryIdW := nil;
SetupSetDirectoryId := nil;
SetupSetDirectoryIdExA := nil;
SetupSetDirectoryIdExW := nil;
SetupSetDirectoryIdEx := nil;
SetupGetSourceInfoA := nil;
SetupGetSourceInfoW := nil;
SetupGetSourceInfo := nil;
SetupInstallFileA := nil;
SetupInstallFileW := nil;
SetupInstallFile := nil;
SetupInstallFileExA := nil;
SetupInstallFileExW := nil;
SetupInstallFileEx := nil;
SetupOpenFileQueue := nil;
SetupCloseFileQueue := nil;
{$IFDEF WIN2000_UP}
SetupSetFileQueueAlternatePlatformA := nil;
SetupSetFileQueueAlternatePlatformW := nil;
SetupSetFileQueueAlternatePlatform := nil;
{$ENDIF WIN2000_UP}
SetupSetPlatformPathOverrideA := nil;
SetupSetPlatformPathOverrideW := nil;
SetupSetPlatformPathOverride := nil;
SetupQueueCopyA := nil;
SetupQueueCopyW := nil;
SetupQueueCopy := nil;
{$IFDEF WIN2000_UP}
SetupQueueCopyIndirectA := nil;
SetupQueueCopyIndirectW := nil;
SetupQueueCopyIndirect := nil;
{$ENDIF WIN2000_UP}
SetupQueueDefaultCopyA := nil;
SetupQueueDefaultCopyW := nil;
SetupQueueDefaultCopy := nil;
SetupQueueCopySectionA := nil;
SetupQueueCopySectionW := nil;
SetupQueueCopySection := nil;
SetupQueueDeleteA := nil;
SetupQueueDeleteW := nil;
SetupQueueDelete := nil;
SetupQueueDeleteSectionA := nil;
SetupQueueDeleteSectionW := nil;
SetupQueueDeleteSection := nil;
SetupQueueRenameA := nil;
SetupQueueRenameW := nil;
SetupQueueRename := nil;
SetupQueueRenameSectionA := nil;
SetupQueueRenameSectionW := nil;
SetupQueueRenameSection := nil;
SetupCommitFileQueueA := nil;
SetupCommitFileQueueW := nil;
SetupCommitFileQueue := nil;
SetupScanFileQueueA := nil;
SetupScanFileQueueW := nil;
SetupScanFileQueue := nil;
SetupCopyOEMInfA := nil;
SetupCopyOEMInfW := nil;
SetupCopyOEMInf := nil;
{$IFDEF WINXP_UP}
SetupUninstallOEMInfA := nil;
SetupUninstallOEMInfW := nil;
SetupUninstallOEMInf := nil;
SetupUninstallNewlyCopiedInfs := nil;
{$ENDIF WINXP_UP}
SetupCreateDiskSpaceListA := nil;
SetupCreateDiskSpaceListW := nil;
SetupCreateDiskSpaceList := nil;
SetupDuplicateDiskSpaceListA := nil;
SetupDuplicateDiskSpaceListW := nil;
SetupDuplicateDiskSpaceList := nil;
SetupDestroyDiskSpaceList := nil;
SetupQueryDrivesInDiskSpaceListA := nil;
SetupQueryDrivesInDiskSpaceListW := nil;
SetupQueryDrivesInDiskSpaceList := nil;
SetupQuerySpaceRequiredOnDriveA := nil;
SetupQuerySpaceRequiredOnDriveW := nil;
SetupQuerySpaceRequiredOnDrive := nil;
SetupAdjustDiskSpaceListA := nil;
SetupAdjustDiskSpaceListW := nil;
SetupAdjustDiskSpaceList := nil;
SetupAddToDiskSpaceListA := nil;
SetupAddToDiskSpaceListW := nil;
SetupAddToDiskSpaceList := nil;
SetupAddSectionToDiskSpaceListA := nil;
SetupAddSectionToDiskSpaceListW := nil;
SetupAddSectionToDiskSpaceList := nil;
SetupAddInstallSectionToDiskSpaceListA := nil;
SetupAddInstallSectionToDiskSpaceListW := nil;
SetupAddInstallSectionToDiskSpaceList := nil;
SetupRemoveFromDiskSpaceListA := nil;
SetupRemoveFromDiskSpaceListW := nil;
SetupRemoveFromDiskSpaceList := nil;
SetupRemoveSectionFromDiskSpaceListA := nil;
SetupRemoveSectionFromDiskSpaceListW := nil;
SetupRemoveSectionFromDiskSpaceList := nil;
SetupRemoveInstallSectionFromDiskSpaceListA := nil;
SetupRemoveInstallSectionFromDiskSpaceListW := nil;
SetupRemoveInstallSectionFromDiskSpaceList := nil;
SetupIterateCabinetA := nil;
SetupIterateCabinetW := nil;
SetupIterateCabinet := nil;
SetupPromptReboot := nil;
SetupInitDefaultQueueCallback := nil;
SetupInitDefaultQueueCallbackEx := nil;
SetupTermDefaultQueueCallback := nil;
SetupDefaultQueueCallbackA := nil;
SetupDefaultQueueCallbackW := nil;
SetupDefaultQueueCallback := nil;
SetupInstallFromInfSectionA := nil;
SetupInstallFromInfSectionW := nil;
SetupInstallFromInfSection := nil;
SetupInstallFilesFromInfSectionA := nil;
SetupInstallFilesFromInfSectionW := nil;
SetupInstallFilesFromInfSection := nil;
SetupInstallServicesFromInfSectionA := nil;
SetupInstallServicesFromInfSectionW := nil;
SetupInstallServicesFromInfSection := nil;
SetupInstallServicesFromInfSectionExA := nil;
SetupInstallServicesFromInfSectionExW := nil;
SetupInstallServicesFromInfSectionEx := nil;
{$IFDEF WINXP_UP}
InstallHinfSectionA := nil;
InstallHinfSectionW := nil;
InstallHinfSection := nil;
{$ENDIF WINXP_UP}
SetupInitializeFileLogA := nil;
SetupInitializeFileLogW := nil;
SetupInitializeFileLog := nil;
SetupTerminateFileLog := nil;
SetupLogFileA := nil;
SetupLogFileW := nil;
SetupLogFile := nil;
SetupRemoveFileLogEntryA := nil;
SetupRemoveFileLogEntryW := nil;
SetupRemoveFileLogEntry := nil;
SetupQueryFileLogA := nil;
SetupQueryFileLogW := nil;
SetupQueryFileLog := nil;
SetupOpenLog := nil;
SetupLogErrorA := nil;
SetupLogErrorW := nil;
SetupLogError := nil;
SetupCloseLog := nil;
{$IFDEF WIN2000_UP}
SetupGetBackupInformationA := nil;
SetupGetBackupInformationW := nil;
SetupGetBackupInformation := nil;
{$ENDIF WIN2000_UP}
{$IFDEF WINXP_UP}
SetupPrepareQueueForRestoreA := nil;
SetupPrepareQueueForRestoreW := nil;
SetupPrepareQueueForRestore := nil;
SetupSetNonInteractiveMode := nil;
SetupGetNonInteractiveMode := nil;
{$ENDIF WINXP_UP}
SetupDiCreateDeviceInfoList := nil;
SetupDiCreateDeviceInfoListExA := nil;
SetupDiCreateDeviceInfoListExW := nil;
SetupDiCreateDeviceInfoListEx := nil;
SetupDiGetDeviceInfoListClass := nil;
SetupDiGetDeviceInfoListDetailA := nil;
SetupDiGetDeviceInfoListDetailW := nil;
SetupDiGetDeviceInfoListDetail := nil;
SetupDiCreateDeviceInfoA := nil;
SetupDiCreateDeviceInfoW := nil;
SetupDiCreateDeviceInfo := nil;
SetupDiOpenDeviceInfoA := nil;
SetupDiOpenDeviceInfoW := nil;
SetupDiOpenDeviceInfo := nil;
SetupDiGetDeviceInstanceIdA := nil;
SetupDiGetDeviceInstanceIdW := nil;
SetupDiGetDeviceInstanceId := nil;
SetupDiDeleteDeviceInfo := nil;
SetupDiEnumDeviceInfo := nil;
SetupDiDestroyDeviceInfoList := nil;
SetupDiEnumDeviceInterfaces := nil;
SetupDiEnumInterfaceDevice := nil;
SetupDiCreateDeviceInterfaceA := nil;
SetupDiCreateInterfaceDeviceA := nil;
SetupDiCreateDeviceInterfaceW := nil;
SetupDiCreateInterfaceDeviceW := nil;
SetupDiCreateDeviceInterface := nil;
SetupDiCreateInterfaceDevice := nil;
SetupDiOpenDeviceInterfaceA := nil;
SetupDiOpenInterfaceDeviceA := nil;
SetupDiOpenDeviceInterfaceW := nil;
SetupDiOpenInterfaceDeviceW := nil;
SetupDiOpenDeviceInterface := nil;
SetupDiOpenInterfaceDevice := nil;
SetupDiGetDeviceInterfaceAlias := nil;
SetupDiGetInterfaceDeviceAlias := nil;
SetupDiDeleteDeviceInterfaceData := nil;
SetupDiDeleteInterfaceDeviceData := nil;
SetupDiRemoveDeviceInterface := nil;
SetupDiRemoveInterfaceDevice := nil;
SetupDiGetDeviceInterfaceDetailA := nil;
SetupDiGetInterfaceDeviceDetailA := nil;
SetupDiGetDeviceInterfaceDetailW := nil;
SetupDiGetInterfaceDeviceDetailW := nil;
SetupDiGetDeviceInterfaceDetail := nil;
SetupDiGetInterfaceDeviceDetail := nil;
SetupDiInstallDeviceInterfaces := nil;
SetupDiInstallInterfaceDevices := nil;
{$IFDEF WINXP_UP}
SetupDiSetDeviceInterfaceDefault := nil;
{$ENDIF WINXP_UP}
SetupDiRegisterDeviceInfo := nil;
SetupDiBuildDriverInfoList := nil;
SetupDiCancelDriverInfoSearch := nil;
SetupDiEnumDriverInfoA := nil;
SetupDiEnumDriverInfoW := nil;
SetupDiEnumDriverInfo := nil;
SetupDiGetSelectedDriverA := nil;
SetupDiGetSelectedDriverW := nil;
SetupDiGetSelectedDriver := nil;
SetupDiSetSelectedDriverA := nil;
SetupDiSetSelectedDriverW := nil;
SetupDiSetSelectedDriver := nil;
SetupDiGetDriverInfoDetailA := nil;
SetupDiGetDriverInfoDetailW := nil;
SetupDiGetDriverInfoDetail := nil;
SetupDiDestroyDriverInfoList := nil;
SetupDiGetClassDevsA := nil;
SetupDiGetClassDevsW := nil;
SetupDiGetClassDevs := nil;
SetupDiGetClassDevsExA := nil;
SetupDiGetClassDevsExW := nil;
SetupDiGetClassDevsEx := nil;
SetupDiGetINFClassA := nil;
SetupDiGetINFClassW := nil;
SetupDiGetINFClass := nil;
SetupDiBuildClassInfoList := nil;
SetupDiBuildClassInfoListExA := nil;
SetupDiBuildClassInfoListExW := nil;
SetupDiBuildClassInfoListEx := nil;
SetupDiGetClassDescriptionA := nil;
SetupDiGetClassDescriptionW := nil;
SetupDiGetClassDescription := nil;
SetupDiGetClassDescriptionExA := nil;
SetupDiGetClassDescriptionExW := nil;
SetupDiGetClassDescriptionEx := nil;
SetupDiCallClassInstaller := nil;
SetupDiSelectDevice := nil;
SetupDiSelectBestCompatDrv := nil;
SetupDiInstallDevice := nil;
SetupDiInstallDriverFiles := nil;
SetupDiRegisterCoDeviceInstallers := nil;
SetupDiRemoveDevice := nil;
SetupDiUnremoveDevice := nil;
SetupDiMoveDuplicateDevice := nil;
SetupDiChangeState := nil;
SetupDiInstallClassA := nil;
SetupDiInstallClassW := nil;
SetupDiInstallClass := nil;
SetupDiInstallClassExA := nil;
SetupDiInstallClassExW := nil;
SetupDiInstallClassEx := nil;
SetupDiOpenClassRegKey := nil;
SetupDiOpenClassRegKeyExA := nil;
SetupDiOpenClassRegKeyExW := nil;
SetupDiOpenClassRegKeyEx := nil;
SetupDiCreateDeviceInterfaceRegKeyA := nil;
SetupDiCreateInterfaceDeviceRegKeyA := nil;
SetupDiCreateDeviceInterfaceRegKeyW := nil;
SetupDiCreateInterfaceDeviceRegKeyW := nil;
SetupDiCreateDeviceInterfaceRegKey := nil;
SetupDiCreateInterfaceDeviceRegKey := nil;
SetupDiOpenDeviceInterfaceRegKey := nil;
SetupDiOpenInterfaceDeviceRegKey := nil;
SetupDiDeleteDeviceInterfaceRegKey := nil;
SetupDiDeleteInterfaceDeviceRegKey := nil;
SetupDiCreateDevRegKeyA := nil;
SetupDiCreateDevRegKeyW := nil;
SetupDiCreateDevRegKey := nil;
SetupDiOpenDevRegKey := nil;
SetupDiDeleteDevRegKey := nil;
SetupDiGetHwProfileList := nil;
SetupDiGetHwProfileListExA := nil;
SetupDiGetHwProfileListExW := nil;
SetupDiGetHwProfileListEx := nil;
SetupDiGetDeviceRegistryPropertyA := nil;
SetupDiGetDeviceRegistryPropertyW := nil;
SetupDiGetDeviceRegistryProperty := nil;
{$IFDEF WINXP_UP}
SetupDiGetClassRegistryPropertyA := nil;
SetupDiGetClassRegistryPropertyW := nil;
SetupDiGetClassRegistryProperty := nil;
{$ENDIF WINXP_UP}
SetupDiSetDeviceRegistryPropertyA := nil;
SetupDiSetDeviceRegistryPropertyW := nil;
SetupDiSetDeviceRegistryProperty := nil;
{$IFDEF WINXP_UP}
SetupDiSetClassRegistryPropertyA := nil;
SetupDiSetClassRegistryPropertyW := nil;
SetupDiSetClassRegistryProperty := nil;
{$ENDIF WINXP_UP}
SetupDiGetDeviceInstallParamsA := nil;
SetupDiGetDeviceInstallParamsW := nil;
SetupDiGetDeviceInstallParams := nil;
SetupDiGetClassInstallParamsA := nil;
SetupDiGetClassInstallParamsW := nil;
SetupDiGetClassInstallParams := nil;
SetupDiSetDeviceInstallParamsA := nil;
SetupDiSetDeviceInstallParamsW := nil;
SetupDiSetDeviceInstallParams := nil;
SetupDiSetClassInstallParamsA := nil;
SetupDiSetClassInstallParamsW := nil;
SetupDiSetClassInstallParams := nil;
SetupDiGetDriverInstallParamsA := nil;
SetupDiGetDriverInstallParamsW := nil;
SetupDiGetDriverInstallParams := nil;
SetupDiSetDriverInstallParamsA := nil;
SetupDiSetDriverInstallParamsW := nil;
SetupDiSetDriverInstallParams := nil;
SetupDiLoadClassIcon := nil;
SetupDiDrawMiniIcon := nil;
SetupDiGetClassBitmapIndex := nil;
SetupDiGetClassImageList := nil;
SetupDiGetClassImageListExA := nil;
SetupDiGetClassImageListExW := nil;
SetupDiGetClassImageListEx := nil;
SetupDiGetClassImageIndex := nil;
SetupDiDestroyClassImageList := nil;
SetupDiGetClassDevPropertySheetsA := nil;
SetupDiGetClassDevPropertySheetsW := nil;
SetupDiGetClassDevPropertySheets := nil;
SetupDiAskForOEMDisk := nil;
SetupDiSelectOEMDrv := nil;
SetupDiClassNameFromGuidA := nil;
SetupDiClassNameFromGuidW := nil;
SetupDiClassNameFromGuid := nil;
SetupDiClassNameFromGuidExA := nil;
SetupDiClassNameFromGuidExW := nil;
SetupDiClassNameFromGuidEx := nil;
SetupDiClassGuidsFromNameA := nil;
SetupDiClassGuidsFromNameW := nil;
SetupDiClassGuidsFromName := nil;
SetupDiClassGuidsFromNameExA := nil;
SetupDiClassGuidsFromNameExW := nil;
SetupDiClassGuidsFromNameEx := nil;
SetupDiGetHwProfileFriendlyNameA := nil;
SetupDiGetHwProfileFriendlyNameW := nil;
SetupDiGetHwProfileFriendlyName := nil;
SetupDiGetHwProfileFriendlyNameExA := nil;
SetupDiGetHwProfileFriendlyNameExW := nil;
SetupDiGetHwProfileFriendlyNameEx := nil;
SetupDiGetWizardPage := nil;
SetupDiGetSelectedDevice := nil;
SetupDiSetSelectedDevice := nil;
SetupDiGetActualSectionToInstallA := nil;
SetupDiGetActualSectionToInstallW := nil;
SetupDiGetActualSectionToInstall := nil;
{$IFDEF WINXP_UP}
SetupDiGetActualSectionToInstallExA := nil;
SetupDiGetActualSectionToInstallExW := nil;
SetupDiGetActualSectionToInstallEx := nil;
SetupEnumInfSectionsA := nil;
SetupEnumInfSectionsW := nil;
SetupEnumInfSections := nil;
SetupVerifyInfFileA := nil;
SetupVerifyInfFileW := nil;
SetupVerifyInfFile := nil;
SetupDiGetCustomDevicePropertyA := nil;
SetupDiGetCustomDevicePropertyW := nil;
SetupDiGetCustomDeviceProperty := nil;
{$ENDIF WINXP_UP}
{$ENDIF SETUPAPI_LINKONREQUEST}
end;
{$IFNDEF SETUPAPI_LINKONREQUEST}
{$IFDEF WINXP_UP}
function SetupGetFileQueueCount; external SetupApiModuleName name 'SetupGetFileQueueCount';
function SetupGetFileQueueFlags; external SetupApiModuleName name 'SetupGetFileQueueFlags';
function SetupSetFileQueueFlags; external SetupApiModuleName name 'SetupSetFileQueueFlags';
{$ENDIF WINXP_UP}
function SetupGetInfInformationA; external SetupApiModuleName name 'SetupGetInfInformationA';
function SetupGetInfInformationW; external SetupApiModuleName name 'SetupGetInfInformationW';
function SetupGetInfInformation; external SetupApiModuleName name 'SetupGetInfInformation' + NameSuffix;
function SetupQueryInfFileInformationA; external SetupApiModuleName name 'SetupQueryInfFileInformationA';
function SetupQueryInfFileInformationW; external SetupApiModuleName name 'SetupQueryInfFileInformationW';
function SetupQueryInfFileInformation; external SetupApiModuleName name 'SetupQueryInfFileInformation' + NameSuffix;
{$IFDEF WIN2000_UP}
function SetupQueryInfOriginalFileInformationA; external SetupApiModuleName name 'SetupQueryInfOriginalFileInformationA';
function SetupQueryInfOriginalFileInformationW; external SetupApiModuleName name 'SetupQueryInfOriginalFileInformationW';
function SetupQueryInfOriginalFileInformation; external SetupApiModuleName name 'SetupQueryInfOriginalFileInformation' + NameSuffix;
{$ENDIF WIN2000_UP}
function SetupQueryInfVersionInformationA; external SetupApiModuleName name 'SetupQueryInfVersionInformationA';
function SetupQueryInfVersionInformationW; external SetupApiModuleName name 'SetupQueryInfVersionInformationW';
function SetupQueryInfVersionInformation; external SetupApiModuleName name 'SetupQueryInfVersionInformation' + NameSuffix;
function SetupGetInfFileListA; external SetupApiModuleName name 'SetupGetInfFileListA';
function SetupGetInfFileListW; external SetupApiModuleName name 'SetupGetInfFileListW';
function SetupGetInfFileList; external SetupApiModuleName name 'SetupGetInfFileList' + NameSuffix;
function SetupOpenInfFileA; external SetupApiModuleName name 'SetupOpenInfFileA';
function SetupOpenInfFileW; external SetupApiModuleName name 'SetupOpenInfFileW';
function SetupOpenInfFile; external SetupApiModuleName name 'SetupOpenInfFile' + NameSuffix;
function SetupOpenMasterInf; external SetupApiModuleName name 'SetupOpenMasterInf';
function SetupOpenAppendInfFileA; external SetupApiModuleName name 'SetupOpenAppendInfFileA';
function SetupOpenAppendInfFileW; external SetupApiModuleName name 'SetupOpenAppendInfFileW';
function SetupOpenAppendInfFile; external SetupApiModuleName name 'SetupOpenAppendInfFile' + NameSuffix;
procedure SetupCloseInfFile; external SetupApiModuleName name 'SetupCloseInfFile';
function SetupFindFirstLineA; external SetupApiModuleName name 'SetupFindFirstLineA';
function SetupFindFirstLineW; external SetupApiModuleName name 'SetupFindFirstLineW';
function SetupFindFirstLine; external SetupApiModuleName name 'SetupFindFirstLine' + NameSuffix;
function SetupFindNextLine; external SetupApiModuleName name 'SetupFindNextLine';
function SetupFindNextMatchLineA; external SetupApiModuleName name 'SetupFindNextMatchLineA';
function SetupFindNextMatchLineW; external SetupApiModuleName name 'SetupFindNextMatchLineW';
function SetupFindNextMatchLine; external SetupApiModuleName name 'SetupFindNextMatchLine' + NameSuffix;
function SetupGetLineByIndexA; external SetupApiModuleName name 'SetupGetLineByIndexA';
function SetupGetLineByIndexW; external SetupApiModuleName name 'SetupGetLineByIndexW';
function SetupGetLineByIndex; external SetupApiModuleName name 'SetupGetLineByIndex' + NameSuffix;
function SetupGetLineCountA; external SetupApiModuleName name 'SetupGetLineCountA';
function SetupGetLineCountW; external SetupApiModuleName name 'SetupGetLineCountW';
function SetupGetLineCount; external SetupApiModuleName name 'SetupGetLineCount' + NameSuffix;
function SetupGetLineTextA; external SetupApiModuleName name 'SetupGetLineTextA';
function SetupGetLineTextW; external SetupApiModuleName name 'SetupGetLineTextW';
function SetupGetLineText; external SetupApiModuleName name 'SetupGetLineText' + NameSuffix;
function SetupGetFieldCount; external SetupApiModuleName name 'SetupGetFieldCount';
function SetupGetStringFieldA; external SetupApiModuleName name 'SetupGetStringFieldA';
function SetupGetStringFieldW; external SetupApiModuleName name 'SetupGetStringFieldW';
function SetupGetStringField; external SetupApiModuleName name 'SetupGetStringField' + NameSuffix;
function SetupGetIntField; external SetupApiModuleName name 'SetupGetIntField';
function SetupGetMultiSzFieldA; external SetupApiModuleName name 'SetupGetMultiSzFieldA';
function SetupGetMultiSzFieldW; external SetupApiModuleName name 'SetupGetMultiSzFieldW';
function SetupGetMultiSzField; external SetupApiModuleName name 'SetupGetMultiSzField' + NameSuffix;
function SetupGetBinaryField; external SetupApiModuleName name 'SetupGetBinaryField';
function SetupGetFileCompressionInfoA; external SetupApiModuleName name 'SetupGetFileCompressionInfoA';
function SetupGetFileCompressionInfoW; external SetupApiModuleName name 'SetupGetFileCompressionInfoW';
function SetupGetFileCompressionInfo; external SetupApiModuleName name 'SetupGetFileCompressionInfo' + NameSuffix;
{$IFDEF WINXP_UP}
function SetupGetFileCompressionInfoExA; external SetupApiModuleName name 'SetupGetFileCompressionInfoExA';
function SetupGetFileCompressionInfoExW; external SetupApiModuleName name 'SetupGetFileCompressionInfoExW';
function SetupGetFileCompressionInfoEx; external SetupApiModuleName name 'SetupGetFileCompressionInfoEx' + NameSuffix;
{$ENDIF WINXP_UP}
function SetupDecompressOrCopyFileA; external SetupApiModuleName name 'SetupDecompressOrCopyFileA';
function SetupDecompressOrCopyFileW; external SetupApiModuleName name 'SetupDecompressOrCopyFileW';
function SetupDecompressOrCopyFile; external SetupApiModuleName name 'SetupDecompressOrCopyFile' + NameSuffix;
function SetupGetSourceFileLocationA; external SetupApiModuleName name 'SetupGetSourceFileLocationA';
function SetupGetSourceFileLocationW; external SetupApiModuleName name 'SetupGetSourceFileLocationW';
function SetupGetSourceFileLocation; external SetupApiModuleName name 'SetupGetSourceFileLocation' + NameSuffix;
function SetupGetSourceFileSizeA; external SetupApiModuleName name 'SetupGetSourceFileSizeA';
function SetupGetSourceFileSizeW; external SetupApiModuleName name 'SetupGetSourceFileSizeW';
function SetupGetSourceFileSize; external SetupApiModuleName name 'SetupGetSourceFileSize' + NameSuffix;
function SetupGetTargetPathA; external SetupApiModuleName name 'SetupGetTargetPathA';
function SetupGetTargetPathW; external SetupApiModuleName name 'SetupGetTargetPathW';
function SetupGetTargetPath; external SetupApiModuleName name 'SetupGetTargetPath' + NameSuffix;
function SetupSetSourceListA; external SetupApiModuleName name 'SetupSetSourceListA';
function SetupSetSourceListW; external SetupApiModuleName name 'SetupSetSourceListW';
function SetupSetSourceList; external SetupApiModuleName name 'SetupSetSourceList' + NameSuffix;
function SetupCancelTemporarySourceList; external SetupApiModuleName name 'SetupCancelTemporarySourceList';
function SetupAddToSourceListA; external SetupApiModuleName name 'SetupAddToSourceListA';
function SetupAddToSourceListW; external SetupApiModuleName name 'SetupAddToSourceListW';
function SetupAddToSourceList; external SetupApiModuleName name 'SetupAddToSourceList' + NameSuffix;
function SetupRemoveFromSourceListA; external SetupApiModuleName name 'SetupRemoveFromSourceListA';
function SetupRemoveFromSourceListW; external SetupApiModuleName name 'SetupRemoveFromSourceListW';
function SetupRemoveFromSourceList; external SetupApiModuleName name 'SetupRemoveFromSourceList' + NameSuffix;
function SetupQuerySourceListA; external SetupApiModuleName name 'SetupQuerySourceListA';
function SetupQuerySourceListW; external SetupApiModuleName name 'SetupQuerySourceListW';
function SetupQuerySourceList; external SetupApiModuleName name 'SetupQuerySourceList' + NameSuffix;
function SetupFreeSourceListA; external SetupApiModuleName name 'SetupFreeSourceListA';
function SetupFreeSourceListW; external SetupApiModuleName name 'SetupFreeSourceListW';
function SetupFreeSourceList; external SetupApiModuleName name 'SetupFreeSourceList' + NameSuffix;
function SetupPromptForDiskA; external SetupApiModuleName name 'SetupPromptForDiskA';
function SetupPromptForDiskW; external SetupApiModuleName name 'SetupPromptForDiskW';
function SetupPromptForDisk; external SetupApiModuleName name 'SetupPromptForDisk' + NameSuffix;
function SetupCopyErrorA; external SetupApiModuleName name 'SetupCopyErrorA';
function SetupCopyErrorW; external SetupApiModuleName name 'SetupCopyErrorW';
function SetupCopyError; external SetupApiModuleName name 'SetupCopyError' + NameSuffix;
function SetupRenameErrorA; external SetupApiModuleName name 'SetupRenameErrorA';
function SetupRenameErrorW; external SetupApiModuleName name 'SetupRenameErrorW';
function SetupRenameError; external SetupApiModuleName name 'SetupRenameError' + NameSuffix;
function SetupDeleteErrorA; external SetupApiModuleName name 'SetupDeleteErrorA';
function SetupDeleteErrorW; external SetupApiModuleName name 'SetupDeleteErrorW';
function SetupDeleteError; external SetupApiModuleName name 'SetupDeleteError' + NameSuffix;
{$IFDEF WIN2000_UP}
function SetupBackupErrorA; external SetupApiModuleName name 'SetupBackupErrorA';
function SetupBackupErrorW; external SetupApiModuleName name 'SetupBackupErrorW';
function SetupBackupError; external SetupApiModuleName name 'SetupBackupError' + NameSuffix;
{$ENDIF WIN2000_UP}
function SetupSetDirectoryIdA; external SetupApiModuleName name 'SetupSetDirectoryIdA';
function SetupSetDirectoryIdW; external SetupApiModuleName name 'SetupSetDirectoryIdW';
function SetupSetDirectoryId; external SetupApiModuleName name 'SetupSetDirectoryId' + NameSuffix;
function SetupSetDirectoryIdExA; external SetupApiModuleName name 'SetupSetDirectoryIdExA';
function SetupSetDirectoryIdExW; external SetupApiModuleName name 'SetupSetDirectoryIdExW';
function SetupSetDirectoryIdEx; external SetupApiModuleName name 'SetupSetDirectoryIdEx' + NameSuffix;
function SetupGetSourceInfoA; external SetupApiModuleName name 'SetupGetSourceInfoA';
function SetupGetSourceInfoW; external SetupApiModuleName name 'SetupGetSourceInfoW';
function SetupGetSourceInfo; external SetupApiModuleName name 'SetupGetSourceInfo' + NameSuffix;
function SetupInstallFileA; external SetupApiModuleName name 'SetupInstallFileA';
function SetupInstallFileW; external SetupApiModuleName name 'SetupInstallFileW';
function SetupInstallFile; external SetupApiModuleName name 'SetupInstallFile' + NameSuffix;
function SetupInstallFileExA; external SetupApiModuleName name 'SetupInstallFileExA';
function SetupInstallFileExW; external SetupApiModuleName name 'SetupInstallFileExW';
function SetupInstallFileEx; external SetupApiModuleName name 'SetupInstallFileEx' + NameSuffix;
function SetupOpenFileQueue; external SetupApiModuleName name 'SetupOpenFileQueue';
function SetupCloseFileQueue; external SetupApiModuleName name 'SetupCloseFileQueue';
{$IFDEF WIN2000_UP}
function SetupSetFileQueueAlternatePlatformA; external SetupApiModuleName name 'SetupSetFileQueueAlternatePlatformA';
function SetupSetFileQueueAlternatePlatformW; external SetupApiModuleName name 'SetupSetFileQueueAlternatePlatformW';
function SetupSetFileQueueAlternatePlatform; external SetupApiModuleName name 'SetupSetFileQueueAlternatePlatform' + NameSuffix;
{$ENDIF WIN2000_UP}
function SetupSetPlatformPathOverrideA; external SetupApiModuleName name 'SetupSetPlatformPathOverrideA';
function SetupSetPlatformPathOverrideW; external SetupApiModuleName name 'SetupSetPlatformPathOverrideW';
function SetupSetPlatformPathOverride; external SetupApiModuleName name 'SetupSetPlatformPathOverride' + NameSuffix;
function SetupQueueCopyA; external SetupApiModuleName name 'SetupQueueCopyA';
function SetupQueueCopyW; external SetupApiModuleName name 'SetupQueueCopyW';
function SetupQueueCopy; external SetupApiModuleName name 'SetupQueueCopy' + NameSuffix;
{$IFDEF WIN2000_UP}
function SetupQueueCopyIndirectA; external SetupApiModuleName name 'SetupQueueCopyIndirectA';
function SetupQueueCopyIndirectW; external SetupApiModuleName name 'SetupQueueCopyIndirectW';
function SetupQueueCopyIndirect; external SetupApiModuleName name 'SetupQueueCopyIndirect' + NameSuffix;
{$ENDIF WIN2000_UP}
function SetupQueueDefaultCopyA; external SetupApiModuleName name 'SetupQueueDefaultCopyA';
function SetupQueueDefaultCopyW; external SetupApiModuleName name 'SetupQueueDefaultCopyW';
function SetupQueueDefaultCopy; external SetupApiModuleName name 'SetupQueueDefaultCopy' + NameSuffix;
function SetupQueueCopySectionA; external SetupApiModuleName name 'SetupQueueCopySectionA';
function SetupQueueCopySectionW; external SetupApiModuleName name 'SetupQueueCopySectionW';
function SetupQueueCopySection; external SetupApiModuleName name 'SetupQueueCopySection' + NameSuffix;
function SetupQueueDeleteA; external SetupApiModuleName name 'SetupQueueDeleteA';
function SetupQueueDeleteW; external SetupApiModuleName name 'SetupQueueDeleteW';
function SetupQueueDelete; external SetupApiModuleName name 'SetupQueueDelete' + NameSuffix;
function SetupQueueDeleteSectionA; external SetupApiModuleName name 'SetupQueueDeleteSectionA';
function SetupQueueDeleteSectionW; external SetupApiModuleName name 'SetupQueueDeleteSectionW';
function SetupQueueDeleteSection; external SetupApiModuleName name 'SetupQueueDeleteSection' + NameSuffix;
function SetupQueueRenameA; external SetupApiModuleName name 'SetupQueueRenameA';
function SetupQueueRenameW; external SetupApiModuleName name 'SetupQueueRenameW';
function SetupQueueRename; external SetupApiModuleName name 'SetupQueueRename' + NameSuffix;
function SetupQueueRenameSectionA; external SetupApiModuleName name 'SetupQueueRenameSectionA';
function SetupQueueRenameSectionW; external SetupApiModuleName name 'SetupQueueRenameSectionW';
function SetupQueueRenameSection; external SetupApiModuleName name 'SetupQueueRenameSection' + NameSuffix;
function SetupCommitFileQueueA; external SetupApiModuleName name 'SetupCommitFileQueueA';
function SetupCommitFileQueueW; external SetupApiModuleName name 'SetupCommitFileQueueW';
function SetupCommitFileQueue; external SetupApiModuleName name 'SetupCommitFileQueue' + NameSuffix;
function SetupScanFileQueueA; external SetupApiModuleName name 'SetupScanFileQueueA';
function SetupScanFileQueueW; external SetupApiModuleName name 'SetupScanFileQueueW';
function SetupScanFileQueue; external SetupApiModuleName name 'SetupScanFileQueue' + NameSuffix;
function SetupCopyOEMInfA; external SetupApiModuleName name 'SetupCopyOEMInfA';
function SetupCopyOEMInfW; external SetupApiModuleName name 'SetupCopyOEMInfW';
function SetupCopyOEMInf; external SetupApiModuleName name 'SetupCopyOEMInf' + NameSuffix;
{$IFDEF WINXP_UP}
function SetupUninstallOEMInfA; external SetupApiModuleName name 'SetupUninstallOEMInfA';
function SetupUninstallOEMInfW; external SetupApiModuleName name 'SetupUninstallOEMInfW';
function SetupUninstallOEMInf; external SetupApiModuleName name 'SetupUninstallOEMInf' + NameSuffix;
function SetupUninstallNewlyCopiedInfs; external SetupApiModuleName name 'SetupUninstallNewlyCopiedInfs';
{$ENDIF WINXP_UP}
function SetupCreateDiskSpaceListA; external SetupApiModuleName name 'SetupCreateDiskSpaceListA';
function SetupCreateDiskSpaceListW; external SetupApiModuleName name 'SetupCreateDiskSpaceListW';
function SetupCreateDiskSpaceList; external SetupApiModuleName name 'SetupCreateDiskSpaceList' + NameSuffix;
function SetupDuplicateDiskSpaceListA; external SetupApiModuleName name 'SetupDuplicateDiskSpaceListA';
function SetupDuplicateDiskSpaceListW; external SetupApiModuleName name 'SetupDuplicateDiskSpaceListW';
function SetupDuplicateDiskSpaceList; external SetupApiModuleName name 'SetupDuplicateDiskSpaceList' + NameSuffix;
function SetupDestroyDiskSpaceList; external SetupApiModuleName name 'SetupDestroyDiskSpaceList';
function SetupQueryDrivesInDiskSpaceListA; external SetupApiModuleName name 'SetupQueryDrivesInDiskSpaceListA';
function SetupQueryDrivesInDiskSpaceListW; external SetupApiModuleName name 'SetupQueryDrivesInDiskSpaceListW';
function SetupQueryDrivesInDiskSpaceList; external SetupApiModuleName name 'SetupQueryDrivesInDiskSpaceList' + NameSuffix;
function SetupQuerySpaceRequiredOnDriveA; external SetupApiModuleName name 'SetupQuerySpaceRequiredOnDriveA';
function SetupQuerySpaceRequiredOnDriveW; external SetupApiModuleName name 'SetupQuerySpaceRequiredOnDriveW';
function SetupQuerySpaceRequiredOnDrive; external SetupApiModuleName name 'SetupQuerySpaceRequiredOnDrive' + NameSuffix;
function SetupAdjustDiskSpaceListA; external SetupApiModuleName name 'SetupAdjustDiskSpaceListA';
function SetupAdjustDiskSpaceListW; external SetupApiModuleName name 'SetupAdjustDiskSpaceListW';
function SetupAdjustDiskSpaceList; external SetupApiModuleName name 'SetupAdjustDiskSpaceList' + NameSuffix;
function SetupAddToDiskSpaceListA; external SetupApiModuleName name 'SetupAddToDiskSpaceListA';
function SetupAddToDiskSpaceListW; external SetupApiModuleName name 'SetupAddToDiskSpaceListW';
function SetupAddToDiskSpaceList; external SetupApiModuleName name 'SetupAddToDiskSpaceList' + NameSuffix;
function SetupAddSectionToDiskSpaceListA; external SetupApiModuleName name 'SetupAddSectionToDiskSpaceListA';
function SetupAddSectionToDiskSpaceListW; external SetupApiModuleName name 'SetupAddSectionToDiskSpaceListW';
function SetupAddSectionToDiskSpaceList; external SetupApiModuleName name 'SetupAddSectionToDiskSpaceList' + NameSuffix;
function SetupAddInstallSectionToDiskSpaceListA; external SetupApiModuleName name 'SetupAddInstallSectionToDiskSpaceListA';
function SetupAddInstallSectionToDiskSpaceListW; external SetupApiModuleName name 'SetupAddInstallSectionToDiskSpaceListW';
function SetupAddInstallSectionToDiskSpaceList; external SetupApiModuleName name 'SetupAddInstallSectionToDiskSpaceList' + NameSuffix;
function SetupRemoveFromDiskSpaceListA; external SetupApiModuleName name 'SetupRemoveFromDiskSpaceListA';
function SetupRemoveFromDiskSpaceListW; external SetupApiModuleName name 'SetupRemoveFromDiskSpaceListW';
function SetupRemoveFromDiskSpaceList; external SetupApiModuleName name 'SetupRemoveFromDiskSpaceList' + NameSuffix;
function SetupRemoveSectionFromDiskSpaceListA; external SetupApiModuleName name 'SetupRemoveSectionFromDiskSpaceListA';
function SetupRemoveSectionFromDiskSpaceListW; external SetupApiModuleName name 'SetupRemoveSectionFromDiskSpaceListW';
function SetupRemoveSectionFromDiskSpaceList; external SetupApiModuleName name 'SetupRemoveSectionFromDiskSpaceList' + NameSuffix;
function SetupRemoveInstallSectionFromDiskSpaceListA; external SetupApiModuleName name 'SetupRemoveInstallSectionFromDiskSpaceListA';
function SetupRemoveInstallSectionFromDiskSpaceListW; external SetupApiModuleName name 'SetupRemoveInstallSectionFromDiskSpaceListW';
function SetupRemoveInstallSectionFromDiskSpaceList; external SetupApiModuleName name 'SetupRemoveInstallSectionFromDiskSpaceList' + NameSuffix;
function SetupIterateCabinetA; external SetupApiModuleName name 'SetupIterateCabinetA';
function SetupIterateCabinetW; external SetupApiModuleName name 'SetupIterateCabinetW';
function SetupIterateCabinet; external SetupApiModuleName name 'SetupIterateCabinet' + NameSuffix;
function SetupPromptReboot; external SetupApiModuleName name 'SetupPromptReboot';
function SetupInitDefaultQueueCallback; external SetupApiModuleName name 'SetupInitDefaultQueueCallback';
function SetupInitDefaultQueueCallbackEx; external SetupApiModuleName name 'SetupInitDefaultQueueCallbackEx';
procedure SetupTermDefaultQueueCallback; external SetupApiModuleName name 'SetupTermDefaultQueueCallback';
function SetupDefaultQueueCallbackA; external SetupApiModuleName name 'SetupDefaultQueueCallbackA';
function SetupDefaultQueueCallbackW; external SetupApiModuleName name 'SetupDefaultQueueCallbackW';
function SetupDefaultQueueCallback; external SetupApiModuleName name 'SetupDefaultQueueCallback' + NameSuffix;
function SetupInstallFromInfSectionA; external SetupApiModuleName name 'SetupInstallFromInfSectionA';
function SetupInstallFromInfSectionW; external SetupApiModuleName name 'SetupInstallFromInfSectionW';
function SetupInstallFromInfSection; external SetupApiModuleName name 'SetupInstallFromInfSection' + NameSuffix;
function SetupInstallFilesFromInfSectionA; external SetupApiModuleName name 'SetupInstallFilesFromInfSectionA';
function SetupInstallFilesFromInfSectionW; external SetupApiModuleName name 'SetupInstallFilesFromInfSectionW';
function SetupInstallFilesFromInfSection; external SetupApiModuleName name 'SetupInstallFilesFromInfSection' + NameSuffix;
function SetupInstallServicesFromInfSectionA; external SetupApiModuleName name 'SetupInstallServicesFromInfSectionA';
function SetupInstallServicesFromInfSectionW; external SetupApiModuleName name 'SetupInstallServicesFromInfSectionW';
function SetupInstallServicesFromInfSection; external SetupApiModuleName name 'SetupInstallServicesFromInfSection' + NameSuffix;
function SetupInstallServicesFromInfSectionExA; external SetupApiModuleName name 'SetupInstallServicesFromInfSectionExA';
function SetupInstallServicesFromInfSectionExW; external SetupApiModuleName name 'SetupInstallServicesFromInfSectionExW';
function SetupInstallServicesFromInfSectionEx; external SetupApiModuleName name 'SetupInstallServicesFromInfSectionEx' + NameSuffix;
{$IFDEF WINXP_UP}
function InstallHinfSectionA; external SetupApiModuleName name 'InstallHinfSectionA';
function InstallHinfSectionW; external SetupApiModuleName name 'InstallHinfSectionW';
function InstallHinfSection; external SetupApiModuleName name 'InstallHinfSection' + NameSuffix;
{$ENDIF WINXP_UP}
function SetupInitializeFileLogA; external SetupApiModuleName name 'SetupInitializeFileLogA';
function SetupInitializeFileLogW; external SetupApiModuleName name 'SetupInitializeFileLogW';
function SetupInitializeFileLog; external SetupApiModuleName name 'SetupInitializeFileLog' + NameSuffix;
function SetupTerminateFileLog; external SetupApiModuleName name 'SetupTerminateFileLog';
function SetupLogFileA; external SetupApiModuleName name 'SetupLogFileA';
function SetupLogFileW; external SetupApiModuleName name 'SetupLogFileW';
function SetupLogFile; external SetupApiModuleName name 'SetupLogFile' + NameSuffix;
function SetupRemoveFileLogEntryA; external SetupApiModuleName name 'SetupRemoveFileLogEntryA';
function SetupRemoveFileLogEntryW; external SetupApiModuleName name 'SetupRemoveFileLogEntryW';
function SetupRemoveFileLogEntry; external SetupApiModuleName name 'SetupRemoveFileLogEntry' + NameSuffix;
function SetupQueryFileLogA; external SetupApiModuleName name 'SetupQueryFileLogA';
function SetupQueryFileLogW; external SetupApiModuleName name 'SetupQueryFileLogW';
function SetupQueryFileLog; external SetupApiModuleName name 'SetupQueryFileLog' + NameSuffix;
function SetupOpenLog; external SetupApiModuleName name 'SetupOpenLog';
function SetupLogErrorA; external SetupApiModuleName name 'SetupLogErrorA';
function SetupLogErrorW; external SetupApiModuleName name 'SetupLogErrorW';
function SetupLogError; external SetupApiModuleName name 'SetupLogError' + NameSuffix;
procedure SetupCloseLog; external SetupApiModuleName name 'SetupCloseLog';
{$IFDEF WIN2000_UP}
function SetupGetBackupInformationA; external SetupApiModuleName name 'SetupGetBackupInformationA';
function SetupGetBackupInformationW; external SetupApiModuleName name 'SetupGetBackupInformationW';
function SetupGetBackupInformation; external SetupApiModuleName name 'SetupGetBackupInformation' + NameSuffix;
{$ENDIF WIN2000_UP}
{$IFDEF WINXP_UP}
function SetupPrepareQueueForRestoreA; external SetupApiModuleName name 'SetupPrepareQueueForRestoreA';
function SetupPrepareQueueForRestoreW; external SetupApiModuleName name 'SetupPrepareQueueForRestoreW';
function SetupPrepareQueueForRestore; external SetupApiModuleName name 'SetupPrepareQueueForRestore' + NameSuffix;
function SetupSetNonInteractiveMode; external SetupApiModuleName name 'SetupSetNonInteractiveMode';
function SetupGetNonInteractiveMode; external SetupApiModuleName name 'SetupGetNonInteractiveMode';
{$ENDIF WINXP_UP}
function SetupDiCreateDeviceInfoList; external SetupApiModuleName name 'SetupDiCreateDeviceInfoList';
function SetupDiCreateDeviceInfoListExA; external SetupApiModuleName name 'SetupDiCreateDeviceInfoListExA';
function SetupDiCreateDeviceInfoListExW; external SetupApiModuleName name 'SetupDiCreateDeviceInfoListExW';
function SetupDiCreateDeviceInfoListEx; external SetupApiModuleName name 'SetupDiCreateDeviceInfoListEx' + NameSuffix;
function SetupDiGetDeviceInfoListClass; external SetupApiModuleName name 'SetupDiGetDeviceInfoListClass';
function SetupDiGetDeviceInfoListDetailA; external SetupApiModuleName name 'SetupDiGetDeviceInfoListDetailA';
function SetupDiGetDeviceInfoListDetailW; external SetupApiModuleName name 'SetupDiGetDeviceInfoListDetailW';
function SetupDiGetDeviceInfoListDetail; external SetupApiModuleName name 'SetupDiGetDeviceInfoListDetail' + NameSuffix;
function SetupDiCreateDeviceInfoA; external SetupApiModuleName name 'SetupDiCreateDeviceInfoA';
function SetupDiCreateDeviceInfoW; external SetupApiModuleName name 'SetupDiCreateDeviceInfoW';
function SetupDiCreateDeviceInfo; external SetupApiModuleName name 'SetupDiCreateDeviceInfo' + NameSuffix;
function SetupDiOpenDeviceInfoA; external SetupApiModuleName name 'SetupDiOpenDeviceInfoA';
function SetupDiOpenDeviceInfoW; external SetupApiModuleName name 'SetupDiOpenDeviceInfoW';
function SetupDiOpenDeviceInfo; external SetupApiModuleName name 'SetupDiOpenDeviceInfo' + NameSuffix;
function SetupDiGetDeviceInstanceIdA; external SetupApiModuleName name 'SetupDiGetDeviceInstanceIdA';
function SetupDiGetDeviceInstanceIdW; external SetupApiModuleName name 'SetupDiGetDeviceInstanceIdW';
function SetupDiGetDeviceInstanceId; external SetupApiModuleName name 'SetupDiGetDeviceInstanceId' + NameSuffix;
function SetupDiDeleteDeviceInfo; external SetupApiModuleName name 'SetupDiDeleteDeviceInfo';
function SetupDiEnumDeviceInfo; external SetupApiModuleName name 'SetupDiEnumDeviceInfo';
function SetupDiDestroyDeviceInfoList; external SetupApiModuleName name 'SetupDiDestroyDeviceInfoList';
function SetupDiEnumDeviceInterfaces; external SetupApiModuleName name 'SetupDiEnumDeviceInterfaces';
function SetupDiEnumInterfaceDevice; external SetupApiModuleName name 'SetupDiEnumDeviceInterfaces';
function SetupDiCreateDeviceInterfaceA; external SetupApiModuleName name 'SetupDiCreateDeviceInterfaceA';
function SetupDiCreateInterfaceDeviceA; external SetupApiModuleName name 'SetupDiCreateDeviceInterfaceA';
function SetupDiCreateDeviceInterfaceW; external SetupApiModuleName name 'SetupDiCreateDeviceInterfaceW';
function SetupDiCreateInterfaceDeviceW; external SetupApiModuleName name 'SetupDiCreateDeviceInterfaceW';
function SetupDiCreateDeviceInterface; external SetupApiModuleName name 'SetupDiCreateDeviceInterface' + NameSuffix;
function SetupDiCreateInterfaceDevice; external SetupApiModuleName name 'SetupDiCreateDeviceInterface' + NameSuffix;
function SetupDiOpenDeviceInterfaceA; external SetupApiModuleName name 'SetupDiOpenDeviceInterfaceA';
function SetupDiOpenInterfaceDeviceA; external SetupApiModuleName name 'SetupDiOpenDeviceInterfaceA';
function SetupDiOpenDeviceInterfaceW; external SetupApiModuleName name 'SetupDiOpenDeviceInterfaceW';
function SetupDiOpenInterfaceDeviceW; external SetupApiModuleName name 'SetupDiOpenDeviceInterfaceW';
function SetupDiOpenDeviceInterface; external SetupApiModuleName name 'SetupDiOpenDeviceInterface' + NameSuffix;
function SetupDiOpenInterfaceDevice; external SetupApiModuleName name 'SetupDiOpenDeviceInterface' + NameSuffix;
function SetupDiGetDeviceInterfaceAlias; external SetupApiModuleName name 'SetupDiGetDeviceInterfaceAlias';
function SetupDiGetInterfaceDeviceAlias; external SetupApiModuleName name 'SetupDiGetDeviceInterfaceAlias';
function SetupDiDeleteDeviceInterfaceData; external SetupApiModuleName name 'SetupDiDeleteDeviceInterfaceData';
function SetupDiDeleteInterfaceDeviceData; external SetupApiModuleName name 'SetupDiDeleteDeviceInterfaceData';
function SetupDiRemoveDeviceInterface; external SetupApiModuleName name 'SetupDiRemoveDeviceInterface';
function SetupDiRemoveInterfaceDevice; external SetupApiModuleName name 'SetupDiRemoveDeviceInterface';
function SetupDiGetDeviceInterfaceDetailA; external SetupApiModuleName name 'SetupDiGetDeviceInterfaceDetailA';
function SetupDiGetInterfaceDeviceDetailA; external SetupApiModuleName name 'SetupDiGetDeviceInterfaceDetailA';
function SetupDiGetDeviceInterfaceDetailW; external SetupApiModuleName name 'SetupDiGetDeviceInterfaceDetailW';
function SetupDiGetInterfaceDeviceDetailW; external SetupApiModuleName name 'SetupDiGetDeviceInterfaceDetailW';
function SetupDiGetDeviceInterfaceDetail; external SetupApiModuleName name 'SetupDiGetDeviceInterfaceDetail' + NameSuffix;
function SetupDiGetInterfaceDeviceDetail; external SetupApiModuleName name 'SetupDiGetDeviceInterfaceDetail' + NameSuffix;
function SetupDiInstallDeviceInterfaces; external SetupApiModuleName name 'SetupDiInstallDeviceInterfaces';
function SetupDiInstallInterfaceDevices; external SetupApiModuleName name 'SetupDiInstallDeviceInterfaces';
{$IFDEF WINXP_UP}
function SetupDiSetDeviceInterfaceDefault; external SetupApiModuleName name 'SetupDiSetDeviceInterfaceDefault';
{$ENDIF WINXP_UP}
function SetupDiRegisterDeviceInfo; external SetupApiModuleName name 'SetupDiRegisterDeviceInfo';
function SetupDiBuildDriverInfoList; external SetupApiModuleName name 'SetupDiBuildDriverInfoList';
function SetupDiCancelDriverInfoSearch; external SetupApiModuleName name 'SetupDiCancelDriverInfoSearch';
function SetupDiEnumDriverInfoA; external SetupApiModuleName name 'SetupDiEnumDriverInfoA';
function SetupDiEnumDriverInfoW; external SetupApiModuleName name 'SetupDiEnumDriverInfoW';
function SetupDiEnumDriverInfo; external SetupApiModuleName name 'SetupDiEnumDriverInfo' + NameSuffix;
function SetupDiGetSelectedDriverA; external SetupApiModuleName name 'SetupDiGetSelectedDriverA';
function SetupDiGetSelectedDriverW; external SetupApiModuleName name 'SetupDiGetSelectedDriverW';
function SetupDiGetSelectedDriver; external SetupApiModuleName name 'SetupDiGetSelectedDriver' + NameSuffix;
function SetupDiSetSelectedDriverA; external SetupApiModuleName name 'SetupDiSetSelectedDriverA';
function SetupDiSetSelectedDriverW; external SetupApiModuleName name 'SetupDiSetSelectedDriverW';
function SetupDiSetSelectedDriver; external SetupApiModuleName name 'SetupDiSetSelectedDriver' + NameSuffix;
function SetupDiGetDriverInfoDetailA; external SetupApiModuleName name 'SetupDiGetDriverInfoDetailA';
function SetupDiGetDriverInfoDetailW; external SetupApiModuleName name 'SetupDiGetDriverInfoDetailW';
function SetupDiGetDriverInfoDetail; external SetupApiModuleName name 'SetupDiGetDriverInfoDetail' + NameSuffix;
function SetupDiDestroyDriverInfoList; external SetupApiModuleName name 'SetupDiDestroyDriverInfoList';
function SetupDiGetClassDevsA; external SetupApiModuleName name 'SetupDiGetClassDevsA';
function SetupDiGetClassDevsW; external SetupApiModuleName name 'SetupDiGetClassDevsW';
function SetupDiGetClassDevs; external SetupApiModuleName name 'SetupDiGetClassDevs' + NameSuffix;
function SetupDiGetClassDevsExA; external SetupApiModuleName name 'SetupDiGetClassDevsExA';
function SetupDiGetClassDevsExW; external SetupApiModuleName name 'SetupDiGetClassDevsExW';
function SetupDiGetClassDevsEx; external SetupApiModuleName name 'SetupDiGetClassDevsEx' + NameSuffix;
function SetupDiGetINFClassA; external SetupApiModuleName name 'SetupDiGetINFClassA';
function SetupDiGetINFClassW; external SetupApiModuleName name 'SetupDiGetINFClassW';
function SetupDiGetINFClass; external SetupApiModuleName name 'SetupDiGetINFClass' + NameSuffix;
function SetupDiBuildClassInfoList; external SetupApiModuleName name 'SetupDiBuildClassInfoList';
function SetupDiBuildClassInfoListExA; external SetupApiModuleName name 'SetupDiBuildClassInfoListExA';
function SetupDiBuildClassInfoListExW; external SetupApiModuleName name 'SetupDiBuildClassInfoListExW';
function SetupDiBuildClassInfoListEx; external SetupApiModuleName name 'SetupDiBuildClassInfoListEx' + NameSuffix;
function SetupDiGetClassDescriptionA; external SetupApiModuleName name 'SetupDiGetClassDescriptionA';
function SetupDiGetClassDescriptionW; external SetupApiModuleName name 'SetupDiGetClassDescriptionW';
function SetupDiGetClassDescription; external SetupApiModuleName name 'SetupDiGetClassDescription' + NameSuffix;
function SetupDiGetClassDescriptionExA; external SetupApiModuleName name 'SetupDiGetClassDescriptionExA';
function SetupDiGetClassDescriptionExW; external SetupApiModuleName name 'SetupDiGetClassDescriptionExW';
function SetupDiGetClassDescriptionEx; external SetupApiModuleName name 'SetupDiGetClassDescriptionEx' + NameSuffix;
function SetupDiCallClassInstaller; external SetupApiModuleName name 'SetupDiCallClassInstaller';
function SetupDiSelectDevice; external SetupApiModuleName name 'SetupDiSelectDevice';
function SetupDiSelectBestCompatDrv; external SetupApiModuleName name 'SetupDiSelectBestCompatDrv';
function SetupDiInstallDevice; external SetupApiModuleName name 'SetupDiInstallDevice';
function SetupDiInstallDriverFiles; external SetupApiModuleName name 'SetupDiInstallDriverFiles';
function SetupDiRegisterCoDeviceInstallers; external SetupApiModuleName name 'SetupDiRegisterCoDeviceInstallers';
function SetupDiRemoveDevice; external SetupApiModuleName name 'SetupDiRemoveDevice';
function SetupDiUnremoveDevice; external SetupApiModuleName name 'SetupDiUnremoveDevice';
function SetupDiMoveDuplicateDevice; external SetupApiModuleName name 'SetupDiMoveDuplicateDevice';
function SetupDiChangeState; external SetupApiModuleName name 'SetupDiChangeState';
function SetupDiInstallClassA; external SetupApiModuleName name 'SetupDiInstallClassA';
function SetupDiInstallClassW; external SetupApiModuleName name 'SetupDiInstallClassW';
function SetupDiInstallClass; external SetupApiModuleName name 'SetupDiInstallClass' + NameSuffix;
function SetupDiInstallClassExA; external SetupApiModuleName name 'SetupDiInstallClassExA';
function SetupDiInstallClassExW; external SetupApiModuleName name 'SetupDiInstallClassExW';
function SetupDiInstallClassEx; external SetupApiModuleName name 'SetupDiInstallClassEx' + NameSuffix;
function SetupDiOpenClassRegKey; external SetupApiModuleName name 'SetupDiOpenClassRegKey';
function SetupDiOpenClassRegKeyExA; external SetupApiModuleName name 'SetupDiOpenClassRegKeyExA';
function SetupDiOpenClassRegKeyExW; external SetupApiModuleName name 'SetupDiOpenClassRegKeyExW';
function SetupDiOpenClassRegKeyEx; external SetupApiModuleName name 'SetupDiOpenClassRegKeyEx' + NameSuffix;
function SetupDiCreateDeviceInterfaceRegKeyA; external SetupApiModuleName name 'SetupDiCreateDeviceInterfaceRegKeyA';
function SetupDiCreateInterfaceDeviceRegKeyA; external SetupApiModuleName name 'SetupDiCreateDeviceInterfaceRegKeyA';
function SetupDiCreateDeviceInterfaceRegKeyW; external SetupApiModuleName name 'SetupDiCreateDeviceInterfaceRegKeyW';
function SetupDiCreateInterfaceDeviceRegKeyW; external SetupApiModuleName name 'SetupDiCreateDeviceInterfaceRegKeyW';
function SetupDiCreateDeviceInterfaceRegKey; external SetupApiModuleName name 'SetupDiCreateDeviceInterfaceRegKey' + NameSuffix;
function SetupDiCreateInterfaceDeviceRegKey; external SetupApiModuleName name 'SetupDiCreateDeviceInterfaceRegKey' + NameSuffix;
function SetupDiOpenDeviceInterfaceRegKey; external SetupApiModuleName name 'SetupDiOpenDeviceInterfaceRegKey';
function SetupDiOpenInterfaceDeviceRegKey; external SetupApiModuleName name 'SetupDiOpenDeviceInterfaceRegKey';
function SetupDiDeleteDeviceInterfaceRegKey; external SetupApiModuleName name 'SetupDiDeleteDeviceInterfaceRegKey';
function SetupDiDeleteInterfaceDeviceRegKey; external SetupApiModuleName name 'SetupDiDeleteDeviceInterfaceRegKey';
function SetupDiCreateDevRegKeyA; external SetupApiModuleName name 'SetupDiCreateDevRegKeyA';
function SetupDiCreateDevRegKeyW; external SetupApiModuleName name 'SetupDiCreateDevRegKeyW';
function SetupDiCreateDevRegKey; external SetupApiModuleName name 'SetupDiCreateDevRegKey' + NameSuffix;
function SetupDiOpenDevRegKey; external SetupApiModuleName name 'SetupDiOpenDevRegKey';
function SetupDiDeleteDevRegKey; external SetupApiModuleName name 'SetupDiDeleteDevRegKey';
function SetupDiGetHwProfileList; external SetupApiModuleName name 'SetupDiGetHwProfileList';
function SetupDiGetHwProfileListExA; external SetupApiModuleName name 'SetupDiGetHwProfileListExA';
function SetupDiGetHwProfileListExW; external SetupApiModuleName name 'SetupDiGetHwProfileListExW';
function SetupDiGetHwProfileListEx; external SetupApiModuleName name 'SetupDiGetHwProfileListEx' + NameSuffix;
function SetupDiGetDeviceRegistryPropertyA; external SetupApiModuleName name 'SetupDiGetDeviceRegistryPropertyA';
function SetupDiGetDeviceRegistryPropertyW; external SetupApiModuleName name 'SetupDiGetDeviceRegistryPropertyW';
function SetupDiGetDeviceRegistryProperty; external SetupApiModuleName name 'SetupDiGetDeviceRegistryProperty' + NameSuffix;
{$IFDEF WINXP_UP}
function SetupDiGetClassRegistryPropertyA; external SetupApiModuleName name 'SetupDiGetClassRegistryPropertyA';
function SetupDiGetClassRegistryPropertyW; external SetupApiModuleName name 'SetupDiGetClassRegistryPropertyW';
function SetupDiGetClassRegistryProperty; external SetupApiModuleName name 'SetupDiGetClassRegistryProperty' + NameSuffix;
{$ENDIF WINXP_UP}
function SetupDiSetDeviceRegistryPropertyA; external SetupApiModuleName name 'SetupDiSetDeviceRegistryPropertyA';
function SetupDiSetDeviceRegistryPropertyW; external SetupApiModuleName name 'SetupDiSetDeviceRegistryPropertyW';
function SetupDiSetDeviceRegistryProperty; external SetupApiModuleName name 'SetupDiSetDeviceRegistryProperty' + NameSuffix;
{$IFDEF WINXP_UP}
function SetupDiSetClassRegistryPropertyA; external SetupApiModuleName name 'SetupDiSetClassRegistryPropertyA';
function SetupDiSetClassRegistryPropertyW; external SetupApiModuleName name 'SetupDiSetClassRegistryPropertyW';
function SetupDiSetClassRegistryProperty; external SetupApiModuleName name 'SetupDiSetClassRegistryProperty' + NameSuffix;
{$ENDIF WINXP_UP}
function SetupDiGetDeviceInstallParamsA; external SetupApiModuleName name 'SetupDiGetDeviceInstallParamsA';
function SetupDiGetDeviceInstallParamsW; external SetupApiModuleName name 'SetupDiGetDeviceInstallParamsW';
function SetupDiGetDeviceInstallParams; external SetupApiModuleName name 'SetupDiGetDeviceInstallParams' + NameSuffix;
function SetupDiGetClassInstallParamsA; external SetupApiModuleName name 'SetupDiGetClassInstallParamsA';
function SetupDiGetClassInstallParamsW; external SetupApiModuleName name 'SetupDiGetClassInstallParamsW';
function SetupDiGetClassInstallParams; external SetupApiModuleName name 'SetupDiGetClassInstallParams' + NameSuffix;
function SetupDiSetDeviceInstallParamsA; external SetupApiModuleName name 'SetupDiSetDeviceInstallParamsA';
function SetupDiSetDeviceInstallParamsW; external SetupApiModuleName name 'SetupDiSetDeviceInstallParamsW';
function SetupDiSetDeviceInstallParams; external SetupApiModuleName name 'SetupDiSetDeviceInstallParams' + NameSuffix;
function SetupDiSetClassInstallParamsA; external SetupApiModuleName name 'SetupDiSetClassInstallParamsA';
function SetupDiSetClassInstallParamsW; external SetupApiModuleName name 'SetupDiSetClassInstallParamsW';
function SetupDiSetClassInstallParams; external SetupApiModuleName name 'SetupDiSetClassInstallParams' + NameSuffix;
function SetupDiGetDriverInstallParamsA; external SetupApiModuleName name 'SetupDiGetDriverInstallParamsA';
function SetupDiGetDriverInstallParamsW; external SetupApiModuleName name 'SetupDiGetDriverInstallParamsW';
function SetupDiGetDriverInstallParams; external SetupApiModuleName name 'SetupDiGetDriverInstallParams' + NameSuffix;
function SetupDiSetDriverInstallParamsA; external SetupApiModuleName name 'SetupDiSetDriverInstallParamsA';
function SetupDiSetDriverInstallParamsW; external SetupApiModuleName name 'SetupDiSetDriverInstallParamsW';
function SetupDiSetDriverInstallParams; external SetupApiModuleName name 'SetupDiSetDriverInstallParams' + NameSuffix;
function SetupDiLoadClassIcon; external SetupApiModuleName name 'SetupDiLoadClassIcon';
function SetupDiDrawMiniIcon; external SetupApiModuleName name 'SetupDiDrawMiniIcon';
function SetupDiGetClassBitmapIndex; external SetupApiModuleName name 'SetupDiGetClassBitmapIndex';
function SetupDiGetClassImageList; external SetupApiModuleName name 'SetupDiGetClassImageList';
function SetupDiGetClassImageListExA; external SetupApiModuleName name 'SetupDiGetClassImageListExA';
function SetupDiGetClassImageListExW; external SetupApiModuleName name 'SetupDiGetClassImageListExW';
function SetupDiGetClassImageListEx; external SetupApiModuleName name 'SetupDiGetClassImageListEx' + NameSuffix;
function SetupDiGetClassImageIndex; external SetupApiModuleName name 'SetupDiGetClassImageIndex';
function SetupDiDestroyClassImageList; external SetupApiModuleName name 'SetupDiDestroyClassImageList';
function SetupDiGetClassDevPropertySheetsA; external SetupApiModuleName name 'SetupDiGetClassDevPropertySheetsA';
function SetupDiGetClassDevPropertySheetsW; external SetupApiModuleName name 'SetupDiGetClassDevPropertySheetsW';
function SetupDiGetClassDevPropertySheets; external SetupApiModuleName name 'SetupDiGetClassDevPropertySheets' + NameSuffix;
function SetupDiAskForOEMDisk; external SetupApiModuleName name 'SetupDiAskForOEMDisk';
function SetupDiSelectOEMDrv; external SetupApiModuleName name 'SetupDiSelectOEMDrv';
function SetupDiClassNameFromGuidA; external SetupApiModuleName name 'SetupDiClassNameFromGuidA';
function SetupDiClassNameFromGuidW; external SetupApiModuleName name 'SetupDiClassNameFromGuidW';
function SetupDiClassNameFromGuid; external SetupApiModuleName name 'SetupDiClassNameFromGuid' + NameSuffix;
function SetupDiClassNameFromGuidExA; external SetupApiModuleName name 'SetupDiClassNameFromGuidExA';
function SetupDiClassNameFromGuidExW; external SetupApiModuleName name 'SetupDiClassNameFromGuidExW';
function SetupDiClassNameFromGuidEx; external SetupApiModuleName name 'SetupDiClassNameFromGuidEx' + NameSuffix;
function SetupDiClassGuidsFromNameA; external SetupApiModuleName name 'SetupDiClassGuidsFromNameA';
function SetupDiClassGuidsFromNameW; external SetupApiModuleName name 'SetupDiClassGuidsFromNameW';
function SetupDiClassGuidsFromName; external SetupApiModuleName name 'SetupDiClassGuidsFromName' + NameSuffix;
function SetupDiClassGuidsFromNameExA; external SetupApiModuleName name 'SetupDiClassGuidsFromNameExA';
function SetupDiClassGuidsFromNameExW; external SetupApiModuleName name 'SetupDiClassGuidsFromNameExW';
function SetupDiClassGuidsFromNameEx; external SetupApiModuleName name 'SetupDiClassGuidsFromNameEx' + NameSuffix;
function SetupDiGetHwProfileFriendlyNameA; external SetupApiModuleName name 'SetupDiGetHwProfileFriendlyNameA';
function SetupDiGetHwProfileFriendlyNameW; external SetupApiModuleName name 'SetupDiGetHwProfileFriendlyNameW';
function SetupDiGetHwProfileFriendlyName; external SetupApiModuleName name 'SetupDiGetHwProfileFriendlyName' + NameSuffix;
function SetupDiGetHwProfileFriendlyNameExA; external SetupApiModuleName name 'SetupDiGetHwProfileFriendlyNameExA';
function SetupDiGetHwProfileFriendlyNameExW; external SetupApiModuleName name 'SetupDiGetHwProfileFriendlyNameExW';
function SetupDiGetHwProfileFriendlyNameEx; external SetupApiModuleName name 'SetupDiGetHwProfileFriendlyNameEx' + NameSuffix;
function SetupDiGetWizardPage; external SetupApiModuleName name 'SetupDiGetWizardPage';
function SetupDiGetSelectedDevice; external SetupApiModuleName name 'SetupDiGetSelectedDevice';
function SetupDiSetSelectedDevice; external SetupApiModuleName name 'SetupDiSetSelectedDevice';
function SetupDiGetActualSectionToInstallA; external SetupApiModuleName name 'SetupDiGetActualSectionToInstallA';
function SetupDiGetActualSectionToInstallW; external SetupApiModuleName name 'SetupDiGetActualSectionToInstallW';
function SetupDiGetActualSectionToInstall; external SetupApiModuleName name 'SetupDiGetActualSectionToInstall' + NameSuffix;
{$IFDEF WINXP_UP}
function SetupDiGetActualSectionToInstallExA; external SetupApiModuleName name 'SetupDiGetActualSectionToInstallExA';
function SetupDiGetActualSectionToInstallExW; external SetupApiModuleName name 'SetupDiGetActualSectionToInstallExW';
function SetupDiGetActualSectionToInstallEx; external SetupApiModuleName name 'SetupDiGetActualSectionToInstallEx' + NameSuffix;
function SetupEnumInfSectionsA; external SetupApiModuleName name 'SetupEnumInfSectionsA';
function SetupEnumInfSectionsW; external SetupApiModuleName name 'SetupEnumInfSectionsW';
function SetupEnumInfSections; external SetupApiModuleName name 'SetupEnumInfSections' + NameSuffix;
function SetupVerifyInfFileA; external SetupApiModuleName name 'SetupVerifyInfFileA';
function SetupVerifyInfFileW; external SetupApiModuleName name 'SetupVerifyInfFileW';;
function SetupVerifyInfFile; external SetupApiModuleName name 'SetupVerifyInfFile' + NameSuffix;
function SetupDiGetCustomDevicePropertyA; external SetupApiModuleName name 'SetupDiGetCustomDevicePropertyA';
function SetupDiGetCustomDevicePropertyW; external SetupApiModuleName name 'SetupDiGetCustomDevicePropertyW';
function SetupDiGetCustomDeviceProperty; external SetupApiModuleName name 'SetupDiGetCustomDeviceProperty' + NameSuffix;
{$ENDIF WINXP_UP}
{$ENDIF !SETUPAPI_LINKONREQUEST}
end.