操作 INF 文件的问题! ( 积分: 100 )

  • 主题发起人 主题发起人 stevenldj
  • 开始时间 开始时间
S

stevenldj

Unregistered / Unconfirmed
GUEST, unregistred user!
uses<br>&nbsp;&nbsp;SetupApi;<br><br>procedure&nbsp;TForm1.Button1Click(Sender:&nbsp;TObject);<br>var<br>&nbsp;&nbsp;InfHandle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;Pointer;<br>&nbsp;&nbsp;ErrorLine&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;Cardinal;<br>begin<br>&nbsp;&nbsp;InfHandle&nbsp;:=&nbsp;SetupOpenInfFile('usb.inf',&nbsp;'Ports',&nbsp;INF_STYLE_WIN4,&nbsp;@ErrorLine);<br>end;<br><br><br>为什么调用&nbsp;SetupOpenInfFile&nbsp;这个函数老是出现异常:<br><br>---------------------------<br>Debugger&nbsp;Exception&nbsp;Notification<br>---------------------------<br>Project&nbsp;Project2.exe&nbsp;raised&nbsp;exception&nbsp;class&nbsp;EAccessViolation&nbsp;with&nbsp;message&nbsp;'Access&nbsp;violation&nbsp;at&nbsp;address&nbsp;00000000.&nbsp;Read&nbsp;of&nbsp;address&nbsp;00000000'.&nbsp;Process&nbsp;stopped.&nbsp;Use&nbsp;Step&nbsp;or&nbsp;Run&nbsp;to&nbsp;continue.<br>---------------------------<br>OK&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;<br>---------------------------<br><br><br>要怎么样才能读写&nbsp;Inf&nbsp;文件呢?
 
{需要引用的单元之一:SetupApi.pas}<br>{******************************************************************}<br>{&nbsp;}<br>{&nbsp;Borland&nbsp;Delphi&nbsp;Runtime&nbsp;Library&nbsp;}<br>{&nbsp;Setup&nbsp;and&nbsp;Device&nbsp;Installer&nbsp;API&nbsp;interface&nbsp;unit&nbsp;}<br>{&nbsp;}<br>{&nbsp;Portions&nbsp;created&nbsp;by&nbsp;Microsoft&nbsp;are&nbsp;}<br>{&nbsp;Copyright&nbsp;(C)&nbsp;1995-1999&nbsp;Microsoft&nbsp;Corporation.&nbsp;}<br>{&nbsp;All&nbsp;Rights&nbsp;Reserved.&nbsp;}<br>{&nbsp;}<br>{&nbsp;The&nbsp;original&nbsp;file&nbsp;is:&nbsp;setupapi.h,&nbsp;released&nbsp;March&nbsp;1999.&nbsp;}<br>{&nbsp;The&nbsp;original&nbsp;Pascal&nbsp;code&nbsp;is:&nbsp;SetupApi.pas,&nbsp;released&nbsp;29&nbsp;Jan&nbsp;2000.&nbsp;}<br>{&nbsp;The&nbsp;initial&nbsp;developer&nbsp;of&nbsp;the&nbsp;Pascal&nbsp;code&nbsp;is&nbsp;Robert&nbsp;Marquardt&nbsp;}<br>{&nbsp;(robert_marquardt@gmx.de)&nbsp;}<br>{&nbsp;}<br>{&nbsp;Portions&nbsp;created&nbsp;by&nbsp;Robert&nbsp;Marquardt&nbsp;are&nbsp;}<br>{&nbsp;Copyright&nbsp;(C)&nbsp;1999&nbsp;Robert&nbsp;Marquardt.&nbsp;}<br>{&nbsp;}<br>{&nbsp;Contributor(s):&nbsp;Marcel&nbsp;van&nbsp;Brakel&nbsp;(brakelm@bart.nl)&nbsp;}<br>{&nbsp;}<br>{&nbsp;Obtained&nbsp;through:&nbsp;}<br>{&nbsp;Joint&nbsp;Endeavour&nbsp;of&nbsp;Delphi&nbsp;Innovators&nbsp;(Project&nbsp;JEDI)&nbsp;}<br>{&nbsp;}<br>{&nbsp;You&nbsp;may&nbsp;retrieve&nbsp;the&nbsp;latest&nbsp;version&nbsp;of&nbsp;this&nbsp;file&nbsp;at&nbsp;the&nbsp;Project&nbsp;}<br>{&nbsp;JEDI&nbsp;home&nbsp;page,&nbsp;located&nbsp;at&nbsp;http://delphi-jedi.org&nbsp;}<br>{&nbsp;}<br>{&nbsp;The&nbsp;contents&nbsp;of&nbsp;this&nbsp;file&nbsp;are&nbsp;used&nbsp;with&nbsp;permission,&nbsp;subject&nbsp;to&nbsp;}<br>{&nbsp;the&nbsp;Mozilla&nbsp;Public&nbsp;License&nbsp;Version&nbsp;1.1&nbsp;(the&nbsp;&quot;License&quot;);&nbsp;you&nbsp;may&nbsp;}<br>{&nbsp;not&nbsp;use&nbsp;this&nbsp;file&nbsp;except&nbsp;in&nbsp;compliance&nbsp;with&nbsp;the&nbsp;License.&nbsp;You&nbsp;may&nbsp;}<br>{&nbsp;obtain&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;License&nbsp;at&nbsp;}<br>{&nbsp;http://www.mozilla.org/NPL/NPL-1_1Final.html&nbsp;}<br>{&nbsp;}<br>{&nbsp;Software&nbsp;distributed&nbsp;under&nbsp;the&nbsp;License&nbsp;is&nbsp;distributed&nbsp;on&nbsp;an&nbsp;}<br>{&nbsp;&quot;AS&nbsp;IS&quot;&nbsp;basis,&nbsp;WITHOUT&nbsp;WARRANTY&nbsp;OF&nbsp;ANY&nbsp;KIND,&nbsp;either&nbsp;express&nbsp;or&nbsp;}<br>{&nbsp;implied.&nbsp;See&nbsp;the&nbsp;License&nbsp;for&nbsp;the&nbsp;specific&nbsp;language&nbsp;governing&nbsp;}<br>{&nbsp;rights&nbsp;and&nbsp;limitations&nbsp;under&nbsp;the&nbsp;License.&nbsp;}<br>{&nbsp;}<br>{******************************************************************}<br><br>unit&nbsp;SetupApi;<br><br>interface<br><br>{$WEAKPACKAGEUNIT&nbsp;ON}<br><br>//&nbsp;(rom)&nbsp;this&nbsp;is&nbsp;the&nbsp;switch&nbsp;to&nbsp;change&nbsp;between&nbsp;static&nbsp;and&nbsp;dynamic&nbsp;linking.<br>//&nbsp;(rom)&nbsp;it&nbsp;is&nbsp;enabled&nbsp;by&nbsp;default&nbsp;here.<br>//&nbsp;(rom)&nbsp;To&nbsp;disable&nbsp;simply&nbsp;change&nbsp;the&nbsp;'$'&nbsp;to&nbsp;a&nbsp;'.'.<br>{$DEFINE&nbsp;SETUPAPI_LINKONREQUEST}<br><br>(*$HPPEMIT&nbsp;'#include&nbsp;&quot;setupapi.h&quot;'*)<br><br>uses<br>&nbsp;&nbsp;Windows,<br>&nbsp;&nbsp;Commctrl;<br><br>type<br>&nbsp;&nbsp;PPWSTR&nbsp;=&nbsp;^PWideChar;<br>&nbsp;&nbsp;PPASTR&nbsp;=&nbsp;^PAnsiChar;<br>&nbsp;&nbsp;PPSTR&nbsp;=&nbsp;^PChar;<br>&nbsp;&nbsp;PHICON&nbsp;=&nbsp;^HICON;<br>&nbsp;&nbsp;ULONG_PTR&nbsp;=&nbsp;DWORD;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ULONG_PTR}<br>&nbsp;&nbsp;DWORD_PTR&nbsp;=&nbsp;DWORD;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DWORD_PTR}<br>&nbsp;&nbsp;UINT_PTR&nbsp;=&nbsp;DWORD;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;UINT_PTR}<br><br>const<br>&nbsp;&nbsp;ANYSIZE_ARRAY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;1;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ANYSIZE_ARRAY}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Define&nbsp;maximum&nbsp;string&nbsp;length&nbsp;constants&nbsp;as&nbsp;specified&nbsp;by<br>&nbsp;&nbsp;//&nbsp;Windows&nbsp;95.<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;LINE_LEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;256;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Win95-compatible&nbsp;maximum&nbsp;for&nbsp;displayable<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;LINE_LEN}<br>&nbsp;&nbsp;//&nbsp;strings&nbsp;coming&nbsp;from&nbsp;a&nbsp;device&nbsp;INF.<br>&nbsp;&nbsp;MAX_INF_STRING_LENGTH&nbsp;=&nbsp;4096;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Actual&nbsp;maximum&nbsp;size&nbsp;of&nbsp;an&nbsp;INF&nbsp;string<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;MAX_INF_STRING_LENGTH}<br>&nbsp;&nbsp;//&nbsp;(including&nbsp;string&nbsp;substitutions).<br>&nbsp;&nbsp;MAX_TITLE_LEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;60;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;MAX_TITLE_LEN}<br>&nbsp;&nbsp;MAX_INSTRUCTION_LEN&nbsp;=&nbsp;256;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;MAX_INSTRUCTION_LEN}<br>&nbsp;&nbsp;MAX_LABEL_LEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;30;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;MAX_LABEL_LEN}<br>&nbsp;&nbsp;MAX_SERVICE_NAME_LEN&nbsp;=&nbsp;256;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;MAX_SERVICE_NAME_LEN}<br>&nbsp;&nbsp;MAX_SUBTITLE_LEN&nbsp;&nbsp;=&nbsp;256;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;MAX_SUBTITLE_LEN}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Define&nbsp;maximum&nbsp;length&nbsp;of&nbsp;a&nbsp;machine&nbsp;name&nbsp;in&nbsp;the&nbsp;format&nbsp;expected&nbsp;by&nbsp;ConfigMgr32<br>&nbsp;&nbsp;//&nbsp;CM_Connect_Machine&nbsp;(i.e.,&nbsp;&quot;////MachineName/0&quot;).<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;SP_MAX_MACHINENAME_LENGTH&nbsp;=&nbsp;MAX_PATH&nbsp;+&nbsp;3;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_MAX_MACHINENAME_LENGTH}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Define&nbsp;type&nbsp;for&nbsp;reference&nbsp;to&nbsp;loaded&nbsp;inf&nbsp;file<br>&nbsp;&nbsp;//<br><br>type<br>&nbsp;&nbsp;HINF&nbsp;=&nbsp;Pointer;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;HINF}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Inf&nbsp;context&nbsp;structure.&nbsp;Applications&nbsp;must&nbsp;not&nbsp;interpret&nbsp;or<br>&nbsp;&nbsp;//&nbsp;overwrite&nbsp;values&nbsp;in&nbsp;these&nbsp;structures.<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;PInfContext&nbsp;=&nbsp;^TInfContext;<br>&nbsp;&nbsp;INFCONTEXT&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;Inf:&nbsp;Pointer;<br>&nbsp;&nbsp;&nbsp;&nbsp;CurrentInf:&nbsp;Pointer;<br>&nbsp;&nbsp;&nbsp;&nbsp;Section:&nbsp;UINT;<br>&nbsp;&nbsp;&nbsp;&nbsp;Line:&nbsp;UINT;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;INFCONTEXT}<br>&nbsp;&nbsp;TInfContext&nbsp;=&nbsp;INFCONTEXT;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Inf&nbsp;file&nbsp;information&nbsp;structure.<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;PSPInfInformation&nbsp;=&nbsp;^TSPInfInformation;<br>&nbsp;&nbsp;SP_INF_INFORMATION&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;InfStyle:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;InfCount:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;VersionData:&nbsp;array[0..ANYSIZE_ARRAY&nbsp;-&nbsp;1]&nbsp;of&nbsp;Byte;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_INF_INFORMATION}<br>&nbsp;&nbsp;TSPInfInformation&nbsp;=&nbsp;SP_INF_INFORMATION;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Define&nbsp;structure&nbsp;for&nbsp;passing&nbsp;alternate&nbsp;platform&nbsp;info&nbsp;into<br>&nbsp;&nbsp;//&nbsp;SetupSetFileQueueAlternatePlatform&nbsp;and&nbsp;SetupQueryInfOriginalFileInformation.<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;PSPAltPlatformInfo&nbsp;=&nbsp;^TSPAltPlatformInfo;<br>&nbsp;&nbsp;SP_ALTPLATFORM_INFO&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;cbSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;//<br>&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;platform&nbsp;to&nbsp;use&nbsp;(VER_PLATFORM_WIN32_WINDOWS&nbsp;or&nbsp;VER_PLATFORM_WIN32_NT)<br>&nbsp;&nbsp;&nbsp;&nbsp;//<br>&nbsp;&nbsp;&nbsp;&nbsp;Platform:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;//<br>&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;major&nbsp;and&nbsp;minor&nbsp;version&nbsp;numbers&nbsp;to&nbsp;use<br>&nbsp;&nbsp;&nbsp;&nbsp;//<br>&nbsp;&nbsp;&nbsp;&nbsp;MajorVersion:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;MinorVersion:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;//<br>&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;processor&nbsp;architecture&nbsp;to&nbsp;use&nbsp;(PROCESSOR_ARCHITECTURE_INTEL,<br>&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;PROCESSOR_ARCHITECTURE_ALPHA,&nbsp;PROCESSOR_ARCHITECTURE_IA64,&nbsp;or<br>&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;PROCESSOR_ARCHITECTURE_ALPHA64)<br>&nbsp;&nbsp;&nbsp;&nbsp;//<br>&nbsp;&nbsp;&nbsp;&nbsp;ProcessorArchitecture:&nbsp;Word;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;Word;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;must&nbsp;be&nbsp;zero.<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_ALTPLATFORM_INFO}<br>&nbsp;&nbsp;TSPAltPlatformInfo&nbsp;=&nbsp;SP_ALTPLATFORM_INFO;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Define&nbsp;structure&nbsp;that&nbsp;is&nbsp;filled&nbsp;in&nbsp;by&nbsp;SetupQueryInfOriginalFileInformation<br>&nbsp;&nbsp;//&nbsp;to&nbsp;indicate&nbsp;the&nbsp;INF's&nbsp;original&nbsp;name&nbsp;and&nbsp;the&nbsp;original&nbsp;name&nbsp;of&nbsp;the&nbsp;(potentially<br>&nbsp;&nbsp;//&nbsp;platform-specific)&nbsp;catalog&nbsp;file&nbsp;specified&nbsp;by&nbsp;that&nbsp;INF.<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;PSPOriginalFileInfoA&nbsp;=&nbsp;^TSPOriginalFileInfoA;<br>&nbsp;&nbsp;PSPOriginalFileInfoW&nbsp;=&nbsp;^TSPOriginalFileInfoW;<br>&nbsp;&nbsp;PSPOriginalFileInfo&nbsp;=&nbsp;PSPOriginalFileInfoA;<br>&nbsp;&nbsp;SP_ORIGINAL_FILE_INFO_A&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;cbSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;OriginalInfName:&nbsp;array[0..MAX_PATH&nbsp;-&nbsp;1]&nbsp;of&nbsp;AnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;OriginalCatalogName:&nbsp;array[0..MAX_PATH&nbsp;-&nbsp;1]&nbsp;of&nbsp;AnsiChar;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_ORIGINAL_FILE_INFO_A}<br>&nbsp;&nbsp;SP_ORIGINAL_FILE_INFO_W&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;cbSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;OriginalInfName:&nbsp;array[0..MAX_PATH&nbsp;-&nbsp;1]&nbsp;of&nbsp;WideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;OriginalCatalogName:&nbsp;array[0..MAX_PATH&nbsp;-&nbsp;1]&nbsp;of&nbsp;WideChar;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_ORIGINAL_FILE_INFO_W}<br>&nbsp;&nbsp;TSPOriginalFileInfoA&nbsp;=&nbsp;SP_ORIGINAL_FILE_INFO_A;<br>&nbsp;&nbsp;TSPOriginalFileInfoW&nbsp;=&nbsp;SP_ORIGINAL_FILE_INFO_W;<br>&nbsp;&nbsp;TSPOriginalFileInfo&nbsp;=&nbsp;TSPOriginalFileInfoA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;SP_INF_INFORMATION.InfStyle&nbsp;values<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;INF_STYLE_NONE&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;unrecognized&nbsp;or&nbsp;non-existent<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;INF_STYLE_NONE}<br>&nbsp;&nbsp;INF_STYLE_OLDNT&nbsp;&nbsp;&nbsp;=&nbsp;$00000001;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;winnt&nbsp;3.x<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;INF_STYLE_OLDNT}<br>&nbsp;&nbsp;INF_STYLE_WIN4&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000002;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Win95<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;INF_STYLE_WIN4}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Additional&nbsp;InfStyle&nbsp;flags&nbsp;that&nbsp;may&nbsp;be&nbsp;specified&nbsp;when&nbsp;calling&nbsp;SetupOpenInfFile.<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;INF_STYLE_CACHE_ENABLE&nbsp;=&nbsp;$00000010;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;always&nbsp;cache&nbsp;INF,&nbsp;even&nbsp;outside&nbsp;of&nbsp;%windir%/Inf<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;INF_STYLE_CACHE_ENABLE}<br>&nbsp;&nbsp;INF_STYLE_CACHE_DISABLE&nbsp;=&nbsp;$00000020;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;delete&nbsp;cached&nbsp;INF&nbsp;information<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;INF_STYLE_CACHE_DISABLE}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Target&nbsp;directory&nbsp;specs.<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;DIRID_ABSOLUTE&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;DWORD(-1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;real&nbsp;32-bit&nbsp;-1<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_ABSOLUTE}<br>&nbsp;&nbsp;DIRID_ABSOLUTE_16BIT&nbsp;=&nbsp;$FFFF;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;16-bit&nbsp;-1&nbsp;for&nbsp;compat&nbsp;w/setupx<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_ABSOLUTE_16BIT}<br>&nbsp;&nbsp;DIRID_NULL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_NULL}<br>&nbsp;&nbsp;DIRID_SRCPATH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;1;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_SRCPATH}<br>&nbsp;&nbsp;DIRID_WINDOWS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;10;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_WINDOWS}<br>&nbsp;&nbsp;DIRID_SYSTEM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;11;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;system32<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_SYSTEM}<br>&nbsp;&nbsp;DIRID_DRIVERS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;12;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_DRIVERS}<br>&nbsp;&nbsp;DIRID_IOSUBSYS&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;DIRID_DRIVERS;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_IOSUBSYS}<br>&nbsp;&nbsp;DIRID_INF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;17;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_INF}<br>&nbsp;&nbsp;DIRID_HELP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;18;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_HELP}<br>&nbsp;&nbsp;DIRID_FONTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;20;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_FONTS}<br>&nbsp;&nbsp;DIRID_VIEWERS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;21;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_VIEWERS}<br>&nbsp;&nbsp;DIRID_COLOR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;23;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_COLOR}<br>&nbsp;&nbsp;DIRID_APPS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;24;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_APPS}<br>&nbsp;&nbsp;DIRID_SHARED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;25;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_SHARED}<br>&nbsp;&nbsp;DIRID_BOOT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;30;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_BOOT}<br><br>&nbsp;&nbsp;DIRID_SYSTEM16&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;50;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_SYSTEM16}<br>&nbsp;&nbsp;DIRID_SPOOL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;51;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_SPOOL}<br>&nbsp;&nbsp;DIRID_SPOOLDRIVERS&nbsp;=&nbsp;52;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_SPOOLDRIVERS}<br>&nbsp;&nbsp;DIRID_USERPROFILE&nbsp;=&nbsp;53;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_USERPROFILE}<br>&nbsp;&nbsp;DIRID_LOADER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;54;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_LOADER}<br>&nbsp;&nbsp;DIRID_PRINTPROCESSOR&nbsp;=&nbsp;55;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_PRINTPROCESSOR}<br><br>&nbsp;&nbsp;DIRID_DEFAULT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;DIRID_SYSTEM;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_DEFAULT}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;The&nbsp;following&nbsp;DIRIDs&nbsp;are&nbsp;for&nbsp;commonly-used&nbsp;shell&nbsp;&quot;special&nbsp;folders&quot;.&nbsp;The<br>&nbsp;&nbsp;//&nbsp;complete&nbsp;list&nbsp;of&nbsp;such&nbsp;folders&nbsp;is&nbsp;contained&nbsp;in&nbsp;shlobj.h.&nbsp;In&nbsp;that&nbsp;headerfile,<br>&nbsp;&nbsp;//&nbsp;each&nbsp;folder&nbsp;is&nbsp;assigned&nbsp;a&nbsp;CSIDL_*&nbsp;value.&nbsp;The&nbsp;DIRID&nbsp;values&nbsp;below&nbsp;are&nbsp;created<br>&nbsp;&nbsp;//&nbsp;by&nbsp;taking&nbsp;the&nbsp;CSIDL&nbsp;value&nbsp;in&nbsp;shlobj.h&nbsp;and&nbsp;OR'ing&nbsp;it&nbsp;with&nbsp;0x4000.&nbsp;Thus,&nbsp;if<br>&nbsp;&nbsp;//&nbsp;an&nbsp;INF&nbsp;needs&nbsp;to&nbsp;reference&nbsp;other&nbsp;special&nbsp;folders&nbsp;not&nbsp;defined&nbsp;below,&nbsp;it&nbsp;may<br>&nbsp;&nbsp;//&nbsp;generate&nbsp;one&nbsp;using&nbsp;the&nbsp;above&nbsp;mechanism,&nbsp;and&nbsp;setupapi&nbsp;will&nbsp;automatically&nbsp;deal<br>&nbsp;&nbsp;//&nbsp;with&nbsp;it&nbsp;and&nbsp;use&nbsp;the&nbsp;corresponding&nbsp;shell's&nbsp;path&nbsp;where&nbsp;appropriate.&nbsp;(Remember<br>&nbsp;&nbsp;//&nbsp;that&nbsp;DIRIDs&nbsp;must&nbsp;be&nbsp;specified&nbsp;in&nbsp;decimal,&nbsp;not&nbsp;hex,&nbsp;in&nbsp;an&nbsp;INF&nbsp;when&nbsp;used&nbsp;for<br>&nbsp;&nbsp;//&nbsp;string&nbsp;substitution.)<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;DIRID_COMMON_STARTMENU&nbsp;=&nbsp;16406;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;All&nbsp;Users/Start&nbsp;Menu<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_COMMON_STARTMENU}<br>&nbsp;&nbsp;DIRID_COMMON_PROGRAMS&nbsp;=&nbsp;16407;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;All&nbsp;Users/Start&nbsp;Menu/Programs<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_COMMON_PROGRAMS}<br>&nbsp;&nbsp;DIRID_COMMON_STARTUP&nbsp;=&nbsp;16408;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;All&nbsp;Users/Start&nbsp;Menu/Programs/Startup<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_COMMON_STARTUP}<br>&nbsp;&nbsp;DIRID_COMMON_DESKTOPDIRECTORY&nbsp;=&nbsp;16409;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;All&nbsp;Users/Desktop<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_COMMON_DESKTOPDIRECTORY}<br>&nbsp;&nbsp;DIRID_COMMON_FAVORITES&nbsp;=&nbsp;16415;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;All&nbsp;Users/Favorites<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_COMMON_FAVORITES}<br>&nbsp;&nbsp;DIRID_COMMON_APPDATA&nbsp;=&nbsp;16419;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;All&nbsp;Users/Application&nbsp;Data<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_COMMON_APPDATA}<br><br>&nbsp;&nbsp;DIRID_PROGRAM_FILES&nbsp;=&nbsp;16422;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Program&nbsp;Files<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_PROGRAM_FILES}<br>&nbsp;&nbsp;DIRID_SYSTEM_X86&nbsp;&nbsp;=&nbsp;16425;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;system32&nbsp;on&nbsp;RISC<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_SYSTEM_X86}<br>&nbsp;&nbsp;DIRID_PROGRAM_FILES_X86&nbsp;=&nbsp;16426;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Program&nbsp;Files&nbsp;on&nbsp;RISC<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_PROGRAM_FILES_X86}<br>&nbsp;&nbsp;DIRID_PROGRAM_FILES_COMMON&nbsp;=&nbsp;16427;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Program&nbsp;Files/Common<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_PROGRAM_FILES_COMMON}<br>&nbsp;&nbsp;DIRID_PROGRAM_FILES_COMMONX86&nbsp;=&nbsp;16428;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;x86&nbsp;Program&nbsp;Files/Common&nbsp;on&nbsp;RISC<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_PROGRAM_FILES_COMMONX86}<br><br>&nbsp;&nbsp;DIRID_COMMON_TEMPLATES&nbsp;=&nbsp;16429;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;All&nbsp;Users/Templates<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_COMMON_TEMPLATES}<br>&nbsp;&nbsp;DIRID_COMMON_DOCUMENTS&nbsp;=&nbsp;16430;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;All&nbsp;Users/Documents<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_COMMON_DOCUMENTS}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;First&nbsp;user-definable&nbsp;dirid.&nbsp;See&nbsp;SetupSetDirectoryId().<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;DIRID_USER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$8000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIRID_USER}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Setup&nbsp;callback&nbsp;notification&nbsp;routine&nbsp;type<br>&nbsp;&nbsp;//<br>type<br>&nbsp;&nbsp;TSPFileCallbackA&nbsp;=&nbsp;function(Context:&nbsp;Pointer;&nbsp;Notification:&nbsp;UINT;<br>&nbsp;&nbsp;&nbsp;&nbsp;Param1,&nbsp;Param2:&nbsp;UINT_PTR):&nbsp;UINT;&nbsp;stdcall;<br>&nbsp;&nbsp;TSPFileCallbackW&nbsp;=&nbsp;function(Context:&nbsp;Pointer;&nbsp;Notification:&nbsp;UINT;<br>&nbsp;&nbsp;&nbsp;&nbsp;Param1,&nbsp;Param2:&nbsp;UINT_PTR):&nbsp;UINT;&nbsp;stdcall;<br>&nbsp;&nbsp;TSPFileCallback&nbsp;=&nbsp;TSPFileCallbackA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Operation/queue&nbsp;start/end&nbsp;notification.&nbsp;These&nbsp;are&nbsp;ordinal&nbsp;values.<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;SPFILENOTIFY_STARTQUEUE&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_STARTQUEUE}<br>&nbsp;&nbsp;SPFILENOTIFY_ENDQUEUE&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_ENDQUEUE}<br>&nbsp;&nbsp;SPFILENOTIFY_STARTSUBQUEUE&nbsp;=&nbsp;$00000003;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_STARTSUBQUEUE}<br>&nbsp;&nbsp;SPFILENOTIFY_ENDSUBQUEUE&nbsp;=&nbsp;$00000004;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_ENDSUBQUEUE}<br>&nbsp;&nbsp;SPFILENOTIFY_STARTDELETE&nbsp;=&nbsp;$00000005;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_STARTDELETE}<br>&nbsp;&nbsp;SPFILENOTIFY_ENDDELETE&nbsp;=&nbsp;$00000006;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_ENDDELETE}<br>&nbsp;&nbsp;SPFILENOTIFY_DELETEERROR&nbsp;=&nbsp;$00000007;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_DELETEERROR}<br>&nbsp;&nbsp;SPFILENOTIFY_STARTRENAME&nbsp;=&nbsp;$00000008;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_STARTRENAME}<br>&nbsp;&nbsp;SPFILENOTIFY_ENDRENAME&nbsp;=&nbsp;$00000009;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_ENDRENAME}<br>&nbsp;&nbsp;SPFILENOTIFY_RENAMEERROR&nbsp;=&nbsp;$0000000A;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_RENAMEERROR}<br>&nbsp;&nbsp;SPFILENOTIFY_STARTCOPY&nbsp;=&nbsp;$0000000B;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_STARTCOPY}<br>&nbsp;&nbsp;SPFILENOTIFY_ENDCOPY&nbsp;=&nbsp;$0000000C;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_ENDCOPY}<br>&nbsp;&nbsp;SPFILENOTIFY_COPYERROR&nbsp;=&nbsp;$0000000D;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_COPYERROR}<br>&nbsp;&nbsp;SPFILENOTIFY_NEEDMEDIA&nbsp;=&nbsp;$0000000E;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_NEEDMEDIA}<br>&nbsp;&nbsp;SPFILENOTIFY_QUEUESCAN&nbsp;=&nbsp;$0000000F;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_QUEUESCAN}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;These&nbsp;are&nbsp;used&nbsp;with&nbsp;SetupIterateCabinet().<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;SPFILENOTIFY_CABINETINFO&nbsp;=&nbsp;$00000010;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_CABINETINFO}<br>&nbsp;&nbsp;SPFILENOTIFY_FILEINCABINET&nbsp;=&nbsp;$00000011;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_FILEINCABINET}<br>&nbsp;&nbsp;SPFILENOTIFY_NEEDNEWCABINET&nbsp;=&nbsp;$00000012;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_NEEDNEWCABINET}<br>&nbsp;&nbsp;SPFILENOTIFY_FILEEXTRACTED&nbsp;=&nbsp;$00000013;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_FILEEXTRACTED}<br>&nbsp;&nbsp;SPFILENOTIFY_FILEOPDELAYED&nbsp;=&nbsp;$00000014;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_FILEOPDELAYED}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;These&nbsp;are&nbsp;used&nbsp;for&nbsp;backup&nbsp;operations<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;SPFILENOTIFY_STARTBACKUP&nbsp;=&nbsp;$00000015;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_STARTBACKUP}<br>&nbsp;&nbsp;SPFILENOTIFY_BACKUPERROR&nbsp;=&nbsp;$00000016;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_BACKUPERROR}<br>&nbsp;&nbsp;SPFILENOTIFY_ENDBACKUP&nbsp;=&nbsp;$00000017;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_ENDBACKUP}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Extended&nbsp;notification&nbsp;for&nbsp;SetupScanFileQueue(Flags=SPQ_SCAN_USE_CALLBACKEX)<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;SPFILENOTIFY_QUEUESCAN_EX&nbsp;=&nbsp;$00000018;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_QUEUESCAN_EX}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Copy&nbsp;notification.&nbsp;These&nbsp;are&nbsp;bit&nbsp;flags&nbsp;that&nbsp;may&nbsp;be&nbsp;combined.<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;SPFILENOTIFY_LANGMISMATCH&nbsp;=&nbsp;$00010000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_LANGMISMATCH}<br>&nbsp;&nbsp;SPFILENOTIFY_TARGETEXISTS&nbsp;=&nbsp;$00020000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_TARGETEXISTS}<br>&nbsp;&nbsp;SPFILENOTIFY_TARGETNEWER&nbsp;=&nbsp;$00040000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILENOTIFY_TARGETNEWER}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;File&nbsp;operation&nbsp;codes&nbsp;and&nbsp;callback&nbsp;outcomes.<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;FILEOP_COPY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FILEOP_COPY}<br>&nbsp;&nbsp;FILEOP_RENAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;1;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FILEOP_RENAME}<br>&nbsp;&nbsp;FILEOP_DELETE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;2;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FILEOP_DELETE}<br>&nbsp;&nbsp;FILEOP_BACKUP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;3;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FILEOP_BACKUP}<br><br>&nbsp;&nbsp;FILEOP_ABORT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FILEOP_ABORT}<br>&nbsp;&nbsp;FILEOP_DOIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;1;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FILEOP_DOIT}<br>&nbsp;&nbsp;FILEOP_SKIP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;2;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FILEOP_SKIP}<br>&nbsp;&nbsp;FILEOP_RETRY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;FILEOP_DOIT;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FILEOP_RETRY}<br>&nbsp;&nbsp;FILEOP_NEWPATH&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;4;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FILEOP_NEWPATH}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Flags&nbsp;in&nbsp;inf&nbsp;copy&nbsp;sections<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;COPYFLG_WARN_IF_SKIP&nbsp;=&nbsp;$00000001;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;warn&nbsp;if&nbsp;user&nbsp;tries&nbsp;to&nbsp;skip&nbsp;file<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;COPYFLG_WARN_IF_SKIP}<br>&nbsp;&nbsp;COPYFLG_NOSKIP&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000002;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;disallow&nbsp;skipping&nbsp;this&nbsp;file<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;COPYFLG_NOSKIP}<br>&nbsp;&nbsp;COPYFLG_NOVERSIONCHECK&nbsp;=&nbsp;$00000004;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;ignore&nbsp;versions&nbsp;and&nbsp;overwrite&nbsp;target<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;COPYFLG_NOVERSIONCHECK}<br>&nbsp;&nbsp;COPYFLG_FORCE_FILE_IN_USE&nbsp;=&nbsp;$00000008;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;force&nbsp;file-in-use&nbsp;behavior<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;COPYFLG_FORCE_FILE_IN_USE}<br>&nbsp;&nbsp;COPYFLG_NO_OVERWRITE&nbsp;=&nbsp;$00000010;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;do&nbsp;not&nbsp;copy&nbsp;if&nbsp;file&nbsp;exists&nbsp;on&nbsp;target<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;COPYFLG_NO_OVERWRITE}<br>&nbsp;&nbsp;COPYFLG_NO_VERSION_DIALOG&nbsp;=&nbsp;$00000020;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;do&nbsp;not&nbsp;copy&nbsp;if&nbsp;target&nbsp;is&nbsp;newer<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;COPYFLG_NO_VERSION_DIALOG}<br>&nbsp;&nbsp;COPYFLG_OVERWRITE_OLDER_ONLY&nbsp;=&nbsp;$00000040;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;leave&nbsp;target&nbsp;alone&nbsp;if&nbsp;version&nbsp;same&nbsp;as&nbsp;source<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;COPYFLG_OVERWRITE_OLDER_ONLY}<br>&nbsp;&nbsp;COPYFLG_REPLACEONLY&nbsp;=&nbsp;$00000400;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;copy&nbsp;only&nbsp;if&nbsp;file&nbsp;exists&nbsp;on&nbsp;target<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;COPYFLG_REPLACEONLY}<br>&nbsp;&nbsp;COPYFLG_NODECOMP&nbsp;&nbsp;=&nbsp;$00000800;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;don't&nbsp;attempt&nbsp;to&nbsp;decompress&nbsp;file;&nbsp;copy&nbsp;as-is<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;COPYFLG_NODECOMP}<br>&nbsp;&nbsp;COPYFLG_REPLACE_BOOT_FILE&nbsp;=&nbsp;$00001000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;file&nbsp;must&nbsp;be&nbsp;present&nbsp;upon&nbsp;reboot&nbsp;(i.e.,&nbsp;it's<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;COPYFLG_REPLACE_BOOT_FILE}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;needed&nbsp;by&nbsp;the&nbsp;loader);&nbsp;this&nbsp;flag&nbsp;implies&nbsp;a&nbsp;reboot<br>&nbsp;&nbsp;COPYFLG_NOPRUNE&nbsp;&nbsp;&nbsp;=&nbsp;$00002000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;never&nbsp;prune&nbsp;this&nbsp;file<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;COPYFLG_NOPRUNE}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Flags&nbsp;in&nbsp;inf&nbsp;delete&nbsp;sections<br>&nbsp;&nbsp;//&nbsp;New&nbsp;flags&nbsp;go&nbsp;in&nbsp;high&nbsp;word<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;DELFLG_IN_USE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000001;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;queue&nbsp;in-use&nbsp;file&nbsp;for&nbsp;delete<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DELFLG_IN_USE}<br>&nbsp;&nbsp;DELFLG_IN_USE1&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00010000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;high-word&nbsp;version&nbsp;of&nbsp;DELFLG_IN_USE<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DELFLG_IN_USE1}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Source&nbsp;and&nbsp;file&nbsp;paths.&nbsp;Used&nbsp;when&nbsp;notifying&nbsp;queue&nbsp;callback<br>&nbsp;&nbsp;//&nbsp;of&nbsp;SPFILENOTIFY_STARTxxx,&nbsp;SPFILENOTIFY_ENDxxx,&nbsp;and&nbsp;SPFILENOTIFY_xxxERROR.<br>&nbsp;&nbsp;//<br>type<br>&nbsp;&nbsp;PFilePathsA&nbsp;=&nbsp;^TFilePathsA;<br>&nbsp;&nbsp;PFilePathsW&nbsp;=&nbsp;^TFilePathsW;<br>&nbsp;&nbsp;PFilePaths&nbsp;=&nbsp;PFilePathsA;<br>&nbsp;&nbsp;FILEPATHS_A&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;Target:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Source:&nbsp;PAnsiChar;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;not&nbsp;used&nbsp;for&nbsp;delete&nbsp;operations<br>&nbsp;&nbsp;&nbsp;&nbsp;Win32Error:&nbsp;UINT;<br>&nbsp;&nbsp;&nbsp;&nbsp;Flags:&nbsp;DWORD;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;such&nbsp;as&nbsp;SP_COPY_NOSKIP&nbsp;for&nbsp;copy&nbsp;errors<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FILEPATHS_A}<br>&nbsp;&nbsp;FILEPATHS_W&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;Target:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Source:&nbsp;PWideChar;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;not&nbsp;used&nbsp;for&nbsp;delete&nbsp;operations<br>&nbsp;&nbsp;&nbsp;&nbsp;Win32Error:&nbsp;UINT;<br>&nbsp;&nbsp;&nbsp;&nbsp;Flags:&nbsp;DWORD;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;such&nbsp;as&nbsp;SP_COPY_NOSKIP&nbsp;for&nbsp;copy&nbsp;errors<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FILEPATHS_W}<br>&nbsp;&nbsp;TFilePathsA&nbsp;=&nbsp;FILEPATHS_A;<br>&nbsp;&nbsp;TFilePathsW&nbsp;=&nbsp;FILEPATHS_W;<br>&nbsp;&nbsp;TFilePaths&nbsp;=&nbsp;TFilePathsA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Structure&nbsp;used&nbsp;with&nbsp;SPFILENOTIFY_NEEDMEDIA<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;PSourceMediaA&nbsp;=&nbsp;^TSourceMediaA;<br>&nbsp;&nbsp;PSourceMediaW&nbsp;=&nbsp;^TSourceMediaW;<br>&nbsp;&nbsp;PSourceMedia&nbsp;=&nbsp;PSourceMediaA;<br>&nbsp;&nbsp;SOURCE_MEDIA_A&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Tagfile:&nbsp;PAnsiChar;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;may&nbsp;be&nbsp;NULL<br>&nbsp;&nbsp;&nbsp;&nbsp;Description:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;//<br>&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Pathname&nbsp;part&nbsp;and&nbsp;filename&nbsp;part&nbsp;of&nbsp;source&nbsp;file<br>&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;that&nbsp;caused&nbsp;us&nbsp;to&nbsp;need&nbsp;the&nbsp;media.<br>&nbsp;&nbsp;&nbsp;&nbsp;//<br>&nbsp;&nbsp;&nbsp;&nbsp;SourcePath:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;SourceFile:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Flags:&nbsp;DWORD;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;subset&nbsp;of&nbsp;SP_COPY_xxx<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SOURCE_MEDIA_A}<br>&nbsp;&nbsp;SOURCE_MEDIA_W&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Tagfile:&nbsp;PWideChar;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;may&nbsp;be&nbsp;NULL<br>&nbsp;&nbsp;&nbsp;&nbsp;Description:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;//<br>&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Pathname&nbsp;part&nbsp;and&nbsp;filename&nbsp;part&nbsp;of&nbsp;source&nbsp;file<br>&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;that&nbsp;caused&nbsp;us&nbsp;to&nbsp;need&nbsp;the&nbsp;media.<br>&nbsp;&nbsp;&nbsp;&nbsp;//<br>&nbsp;&nbsp;&nbsp;&nbsp;SourcePath:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;SourceFile:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Flags:&nbsp;DWORD;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;subset&nbsp;of&nbsp;SP_COPY_xxx<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SOURCE_MEDIA_W}<br>&nbsp;&nbsp;TSourceMediaA&nbsp;=&nbsp;SOURCE_MEDIA_A;<br>&nbsp;&nbsp;TSourceMediaW&nbsp;=&nbsp;SOURCE_MEDIA_W;<br>&nbsp;&nbsp;TSourceMedia&nbsp;=&nbsp;TSourceMediaA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Structure&nbsp;used&nbsp;with&nbsp;SPFILENOTIFY_CABINETINFO&nbsp;and<br>&nbsp;&nbsp;//&nbsp;SPFILENOTIFY_NEEDNEWCABINET<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;PCabinetInfoA&nbsp;=&nbsp;^TCabinetInfoA;<br>&nbsp;&nbsp;PCabinetInfoW&nbsp;=&nbsp;^TCabinetInfoW;<br>&nbsp;&nbsp;PCabinetInfo&nbsp;=&nbsp;PCabinetInfoA;<br>&nbsp;&nbsp;CABINET_INFO_A&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;CabinetPath:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;CabinetFile:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;DiskName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;SetId:&nbsp;Word;<br>&nbsp;&nbsp;&nbsp;&nbsp;CabinetNumber:&nbsp;Word;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;CABINET_INFO_A}<br>&nbsp;&nbsp;CABINET_INFO_W&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;CabinetPath:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;CabinetFile:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;DiskName:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;SetId:&nbsp;Word;<br>&nbsp;&nbsp;&nbsp;&nbsp;CabinetNumber:&nbsp;Word;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;CABINET_INFO_W}<br>&nbsp;&nbsp;TCabinetInfoA&nbsp;=&nbsp;CABINET_INFO_A;<br>&nbsp;&nbsp;TCabinetInfoW&nbsp;=&nbsp;CABINET_INFO_W;<br>&nbsp;&nbsp;TCabinetInfo&nbsp;=&nbsp;TCabinetInfoA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Structure&nbsp;used&nbsp;with&nbsp;SPFILENOTIFY_FILEINCABINET<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;PFileInCabinetInfoA&nbsp;=&nbsp;^TFileInCabinetInfoA;<br>&nbsp;&nbsp;PFileInCabinetInfoW&nbsp;=&nbsp;^TFileInCabinetInfoW;<br>&nbsp;&nbsp;PFileInCabinetInfo&nbsp;=&nbsp;PFileInCabinetInfoA;<br>&nbsp;&nbsp;FILE_IN_CABINET_INFO_A&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;NameInCabinet:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;FileSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;Win32Error:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;DosDate:&nbsp;Word;<br>&nbsp;&nbsp;&nbsp;&nbsp;DosTime:&nbsp;Word;<br>&nbsp;&nbsp;&nbsp;&nbsp;DosAttribs:&nbsp;Word;<br>&nbsp;&nbsp;&nbsp;&nbsp;FullTargetName:&nbsp;array[0..MAX_PATH&nbsp;-&nbsp;1]&nbsp;of&nbsp;AnsiChar;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FILE_IN_CABINET_INFO_A}<br>&nbsp;&nbsp;FILE_IN_CABINET_INFO_W&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;NameInCabinet:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;FileSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;Win32Error:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;DosDate:&nbsp;Word;<br>&nbsp;&nbsp;&nbsp;&nbsp;DosTime:&nbsp;Word;<br>&nbsp;&nbsp;&nbsp;&nbsp;DosAttribs:&nbsp;Word;<br>&nbsp;&nbsp;&nbsp;&nbsp;FullTargetName:&nbsp;array[0..MAX_PATH&nbsp;-&nbsp;1]&nbsp;of&nbsp;WideChar;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FILE_IN_CABINET_INFO_W}<br>&nbsp;&nbsp;TFileInCabinetInfoA&nbsp;=&nbsp;FILE_IN_CABINET_INFO_A;<br>&nbsp;&nbsp;TFileInCabinetInfoW&nbsp;=&nbsp;FILE_IN_CABINET_INFO_W;<br>&nbsp;&nbsp;TFileInCabinetInfo&nbsp;=&nbsp;TFileInCabinetInfoA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Define&nbsp;type&nbsp;for&nbsp;setup&nbsp;file&nbsp;queue<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;HSPFILEQ&nbsp;=&nbsp;Pointer;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;HSPFILEQ}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Structure&nbsp;used&nbsp;with&nbsp;SetupQueueCopyIndirect<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;PSPFileCopyParamsA&nbsp;=&nbsp;^TSPFileCopyParamsA;<br>&nbsp;&nbsp;PSPFileCopyParamsW&nbsp;=&nbsp;^TSPFileCopyParamsW;<br>&nbsp;&nbsp;PSPFileCopyParams&nbsp;=&nbsp;PSPFileCopyParamsA;<br>&nbsp;&nbsp;SP_FILE_COPY_PARAMS_A&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;cbSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;QueueHandle:&nbsp;HSPFILEQ;<br>&nbsp;&nbsp;&nbsp;&nbsp;SourceRootPath:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;SourcePath:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;SourceFilename:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;SourceDescription:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;SourceTagfile:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;TargetDirectory:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;TargetFilename:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;CopyStyle:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;LayoutInf:&nbsp;HINF;<br>&nbsp;&nbsp;&nbsp;&nbsp;SecurityDescriptor:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_FILE_COPY_PARAMS_A}<br>&nbsp;&nbsp;SP_FILE_COPY_PARAMS_W&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;cbSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;QueueHandle:&nbsp;HSPFILEQ;<br>&nbsp;&nbsp;&nbsp;&nbsp;SourceRootPath:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;SourcePath:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;SourceFilename:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;SourceDescription:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;SourceTagfile:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;TargetDirectory:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;TargetFilename:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;CopyStyle:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;LayoutInf:&nbsp;HINF;<br>&nbsp;&nbsp;&nbsp;&nbsp;SecurityDescriptor:&nbsp;PWideChar;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_FILE_COPY_PARAMS_W}<br>&nbsp;&nbsp;TSPFileCopyParamsA&nbsp;=&nbsp;SP_FILE_COPY_PARAMS_A;<br>&nbsp;&nbsp;TSPFileCopyParamsW&nbsp;=&nbsp;SP_FILE_COPY_PARAMS_W;<br>&nbsp;&nbsp;TSPFileCopyParams&nbsp;=&nbsp;TSPFileCopyParamsA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Define&nbsp;type&nbsp;for&nbsp;setup&nbsp;disk&nbsp;space&nbsp;list<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;HDSKSPC&nbsp;=&nbsp;Pointer;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;HDSKSPC}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Define&nbsp;type&nbsp;for&nbsp;reference&nbsp;to&nbsp;device&nbsp;information&nbsp;set<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;HDEVINFO&nbsp;=&nbsp;Pointer;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;HDEVINFO}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Device&nbsp;information&nbsp;structure&nbsp;(references&nbsp;a&nbsp;device&nbsp;instance<br>&nbsp;&nbsp;//&nbsp;that&nbsp;is&nbsp;a&nbsp;member&nbsp;of&nbsp;a&nbsp;device&nbsp;information&nbsp;set)<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;PSPDevInfoData&nbsp;=&nbsp;^TSPDevInfoData;<br>&nbsp;&nbsp;SP_DEVINFO_DATA&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;cbSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;DevInst:&nbsp;DWORD;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;DEVINST&nbsp;handle<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;ULONG_PTR;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_DEVINFO_DATA}<br>&nbsp;&nbsp;TSPDevInfoData&nbsp;=&nbsp;SP_DEVINFO_DATA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Device&nbsp;interface&nbsp;information&nbsp;structure&nbsp;(references&nbsp;a&nbsp;device<br>&nbsp;&nbsp;//&nbsp;interface&nbsp;that&nbsp;is&nbsp;associated&nbsp;with&nbsp;the&nbsp;device&nbsp;information<br>&nbsp;&nbsp;//&nbsp;element&nbsp;that&nbsp;owns&nbsp;it).<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;PSPDeviceInterfaceData&nbsp;=&nbsp;^TSPDeviceInterfaceData;<br>&nbsp;&nbsp;SP_DEVICE_INTERFACE_DATA&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;cbSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;InterfaceClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;Flags:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;ULONG_PTR;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_DEVICE_INTERFACE_DATA}<br>&nbsp;&nbsp;TSPDeviceInterfaceData&nbsp;=&nbsp;SP_DEVICE_INTERFACE_DATA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Flags&nbsp;for&nbsp;SP_DEVICE_INTERFACE_DATA.Flags&nbsp;field.<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;SPINT_ACTIVE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPINT_ACTIVE}<br>&nbsp;&nbsp;SPINT_DEFAULT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPINT_DEFAULT}<br>&nbsp;&nbsp;SPINT_REMOVED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000004;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPINT_REMOVED}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Backward&nbsp;compatibility--do&nbsp;not&nbsp;use.<br>&nbsp;&nbsp;//<br><br>type<br>&nbsp;&nbsp;TSPInterfaceDeviceData&nbsp;=&nbsp;TSPDeviceInterfaceData;<br>&nbsp;&nbsp;PSPInterfaceDeviceData&nbsp;=&nbsp;PSPDeviceInterfaceData;<br><br>const<br>&nbsp;&nbsp;SPID_ACTIVE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;SPINT_ACTIVE;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPID_ACTIVE}<br>&nbsp;&nbsp;SPID_DEFAULT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;SPINT_DEFAULT;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPID_DEFAULT}<br>&nbsp;&nbsp;SPID_REMOVED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;SPINT_REMOVED;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPID_REMOVED}<br><br>type<br>&nbsp;&nbsp;PSPDeviceInterfaceDetailDataA&nbsp;=&nbsp;^TSPDeviceInterfaceDetailDataA;<br>&nbsp;&nbsp;PSPDeviceInterfaceDetailDataW&nbsp;=&nbsp;^TSPDeviceInterfaceDetailDataW;<br>&nbsp;&nbsp;PSPDeviceInterfaceDetailData&nbsp;=&nbsp;PSPDeviceInterfaceDetailDataA;<br>&nbsp;&nbsp;SP_DEVICE_INTERFACE_DETAIL_DATA_A&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;cbSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;DevicePath:&nbsp;array[0..ANYSIZE_ARRAY&nbsp;-&nbsp;1]&nbsp;of&nbsp;AnsiChar;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_DEVICE_INTERFACE_DETAIL_DATA_A}<br>&nbsp;&nbsp;SP_DEVICE_INTERFACE_DETAIL_DATA_W&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;cbSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;DevicePath:&nbsp;array[0..ANYSIZE_ARRAY&nbsp;-&nbsp;1]&nbsp;of&nbsp;WideChar;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_DEVICE_INTERFACE_DETAIL_DATA_W}<br>&nbsp;&nbsp;TSPDeviceInterfaceDetailDataA&nbsp;=&nbsp;SP_DEVICE_INTERFACE_DETAIL_DATA_A;<br>&nbsp;&nbsp;TSPDeviceInterfaceDetailDataW&nbsp;=&nbsp;SP_DEVICE_INTERFACE_DETAIL_DATA_W;<br>&nbsp;&nbsp;TSPDeviceInterfaceDetailData&nbsp;=&nbsp;TSPDeviceInterfaceDetailDataA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Backward&nbsp;compatibility--do&nbsp;not&nbsp;use.<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;TSPInterfaceDeviceDetailDataA&nbsp;=&nbsp;TSPDeviceInterfaceDetailDataA;<br>&nbsp;&nbsp;TSPInterfaceDeviceDetailDataW&nbsp;=&nbsp;TSPDeviceInterfaceDetailDataW;<br>&nbsp;&nbsp;TSPInterfaceDeviceDetailData&nbsp;=&nbsp;TSPInterfaceDeviceDetailDataA;<br>&nbsp;&nbsp;PSPInterfaceDeviceDetailDataA&nbsp;=&nbsp;PSPDeviceInterfaceDetailDataA;<br>&nbsp;&nbsp;PSPInterfaceDeviceDetailDataW&nbsp;=&nbsp;PSPDeviceInterfaceDetailDataW;<br>&nbsp;&nbsp;PSPInterfaceDeviceDetailData&nbsp;=&nbsp;PSPInterfaceDeviceDetailDataA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Structure&nbsp;for&nbsp;detailed&nbsp;information&nbsp;on&nbsp;a&nbsp;device&nbsp;information&nbsp;set&nbsp;(used&nbsp;for<br>&nbsp;&nbsp;//&nbsp;SetupDiGetDeviceInfoListDetail&nbsp;which&nbsp;supercedes&nbsp;the&nbsp;functionality&nbsp;of<br>&nbsp;&nbsp;//&nbsp;SetupDiGetDeviceInfoListClass).<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;PSPDevInfoListDetailDataA&nbsp;=&nbsp;^TSPDevInfoListDetailDataA;<br>&nbsp;&nbsp;PSPDevInfoListDetailDataW&nbsp;=&nbsp;^TSPDevInfoListDetailDataW;<br>&nbsp;&nbsp;PSPDevInfoListDetailData&nbsp;=&nbsp;PSPDevInfoListDetailDataA;<br>&nbsp;&nbsp;SP_DEVINFO_LIST_DETAIL_DATA_A&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;cbSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;RemoteMachineHandle:&nbsp;THandle;<br>&nbsp;&nbsp;&nbsp;&nbsp;RemoteMachineName:&nbsp;array[0..SP_MAX_MACHINENAME_LENGTH&nbsp;-&nbsp;1]&nbsp;of&nbsp;AnsiChar;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_DEVINFO_LIST_DETAIL_DATA_A}<br>&nbsp;&nbsp;SP_DEVINFO_LIST_DETAIL_DATA_W&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;cbSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;RemoteMachineHandle:&nbsp;THandle;<br>&nbsp;&nbsp;&nbsp;&nbsp;RemoteMachineName:&nbsp;array[0..SP_MAX_MACHINENAME_LENGTH&nbsp;-&nbsp;1]&nbsp;of&nbsp;WideChar;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_DEVINFO_LIST_DETAIL_DATA_W}<br>&nbsp;&nbsp;TSPDevInfoListDetailDataA&nbsp;=&nbsp;SP_DEVINFO_LIST_DETAIL_DATA_A;<br>&nbsp;&nbsp;TSPDevInfoListDetailDataW&nbsp;=&nbsp;SP_DEVINFO_LIST_DETAIL_DATA_W;<br>&nbsp;&nbsp;TSPDevInfoListDetailData&nbsp;=&nbsp;TSPDevInfoListDetailDataA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Class&nbsp;installer&nbsp;function&nbsp;codes<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;DIF_SELECTDEVICE&nbsp;&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_SELECTDEVICE}<br>&nbsp;&nbsp;DIF_INSTALLDEVICE&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_INSTALLDEVICE}<br>&nbsp;&nbsp;DIF_ASSIGNRESOURCES&nbsp;=&nbsp;$00000003;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_ASSIGNRESOURCES}<br>&nbsp;&nbsp;DIF_PROPERTIES&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000004;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_PROPERTIES}<br>&nbsp;&nbsp;DIF_REMOVE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000005;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_REMOVE}<br>&nbsp;&nbsp;DIF_FIRSTTIMESETUP&nbsp;=&nbsp;$00000006;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_FIRSTTIMESETUP}<br>&nbsp;&nbsp;DIF_FOUNDDEVICE&nbsp;&nbsp;&nbsp;=&nbsp;$00000007;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_FOUNDDEVICE}<br>&nbsp;&nbsp;DIF_SELECTCLASSDRIVERS&nbsp;=&nbsp;$00000008;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_SELECTCLASSDRIVERS}<br>&nbsp;&nbsp;DIF_VALIDATECLASSDRIVERS&nbsp;=&nbsp;$00000009;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_VALIDATECLASSDRIVERS}<br>&nbsp;&nbsp;DIF_INSTALLCLASSDRIVERS&nbsp;=&nbsp;$0000000A;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_INSTALLCLASSDRIVERS}<br>&nbsp;&nbsp;DIF_CALCDISKSPACE&nbsp;=&nbsp;$0000000B;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_CALCDISKSPACE}<br>&nbsp;&nbsp;DIF_DESTROYPRIVATEDATA&nbsp;=&nbsp;$0000000C;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_DESTROYPRIVATEDATA}<br>&nbsp;&nbsp;DIF_VALIDATEDRIVER&nbsp;=&nbsp;$0000000D;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_VALIDATEDRIVER}<br>&nbsp;&nbsp;DIF_MOVEDEVICE&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$0000000E;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_MOVEDEVICE}<br>&nbsp;&nbsp;DIF_DETECT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$0000000F;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_DETECT}<br>&nbsp;&nbsp;DIF_INSTALLWIZARD&nbsp;=&nbsp;$00000010;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_INSTALLWIZARD}<br>&nbsp;&nbsp;DIF_DESTROYWIZARDDATA&nbsp;=&nbsp;$00000011;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_DESTROYWIZARDDATA}<br>&nbsp;&nbsp;DIF_PROPERTYCHANGE&nbsp;=&nbsp;$00000012;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_PROPERTYCHANGE}<br>&nbsp;&nbsp;DIF_ENABLECLASS&nbsp;&nbsp;&nbsp;=&nbsp;$00000013;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_ENABLECLASS}<br>&nbsp;&nbsp;DIF_DETECTVERIFY&nbsp;&nbsp;=&nbsp;$00000014;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_DETECTVERIFY}<br>&nbsp;&nbsp;DIF_INSTALLDEVICEFILES&nbsp;=&nbsp;$00000015;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_INSTALLDEVICEFILES}<br>&nbsp;&nbsp;DIF_UNREMOVE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000016;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_UNREMOVE}<br>&nbsp;&nbsp;DIF_SELECTBESTCOMPATDRV&nbsp;=&nbsp;$00000017;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_SELECTBESTCOMPATDRV}<br>&nbsp;&nbsp;DIF_ALLOW_INSTALL&nbsp;=&nbsp;$00000018;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_ALLOW_INSTALL}<br>&nbsp;&nbsp;DIF_REGISTERDEVICE&nbsp;=&nbsp;$00000019;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_REGISTERDEVICE}<br>&nbsp;&nbsp;DIF_NEWDEVICEWIZARD_PRESELECT&nbsp;=&nbsp;$0000001A;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_NEWDEVICEWIZARD_PRESELECT}<br>&nbsp;&nbsp;DIF_NEWDEVICEWIZARD_SELECT&nbsp;=&nbsp;$0000001B;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_NEWDEVICEWIZARD_SELECT}<br>&nbsp;&nbsp;DIF_NEWDEVICEWIZARD_PREANALYZE&nbsp;=&nbsp;$0000001C;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_NEWDEVICEWIZARD_PREANALYZE}<br>&nbsp;&nbsp;DIF_NEWDEVICEWIZARD_POSTANALYZE&nbsp;=&nbsp;$0000001D;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_NEWDEVICEWIZARD_POSTANALYZE}<br>&nbsp;&nbsp;DIF_NEWDEVICEWIZARD_FINISHINSTALL&nbsp;=&nbsp;$0000001E;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_NEWDEVICEWIZARD_FINISHINSTALL}<br>&nbsp;&nbsp;DIF_UNUSED1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$0000001F;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_UNUSED1}<br>&nbsp;&nbsp;DIF_INSTALLINTERFACES&nbsp;=&nbsp;$00000020;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_INSTALLINTERFACES}<br>&nbsp;&nbsp;DIF_DETECTCANCEL&nbsp;&nbsp;=&nbsp;$00000021;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_DETECTCANCEL}<br>&nbsp;&nbsp;DIF_REGISTER_COINSTALLERS&nbsp;=&nbsp;$00000022;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_REGISTER_COINSTALLERS}<br>&nbsp;&nbsp;DIF_ADDPROPERTYPAGE_ADVANCED&nbsp;=&nbsp;$00000023;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_ADDPROPERTYPAGE_ADVANCED}<br>&nbsp;&nbsp;DIF_ADDPROPERTYPAGE_BASIC&nbsp;=&nbsp;$00000024;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_ADDPROPERTYPAGE_BASIC}<br>&nbsp;&nbsp;DIF_RESERVED1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000025;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_RESERVED1}<br>&nbsp;&nbsp;DIF_TROUBLESHOOTER&nbsp;=&nbsp;$00000026;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_TROUBLESHOOTER}<br>&nbsp;&nbsp;DIF_POWERMESSAGEWAKE&nbsp;=&nbsp;$00000027;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIF_POWERMESSAGEWAKE}<br><br>type<br>&nbsp;&nbsp;DI_FUNCTION&nbsp;=&nbsp;UINT;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Function&nbsp;type&nbsp;for&nbsp;device&nbsp;installer<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_FUNCTION}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Device&nbsp;installation&nbsp;parameters&nbsp;structure&nbsp;(associated&nbsp;with&nbsp;a<br>&nbsp;&nbsp;//&nbsp;particular&nbsp;device&nbsp;information&nbsp;element,&nbsp;or&nbsp;globally&nbsp;with&nbsp;a&nbsp;device<br>&nbsp;&nbsp;//&nbsp;information&nbsp;set)<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;PSPDevInstallParamsA&nbsp;=&nbsp;^TSPDevInstallParamsA;<br>&nbsp;&nbsp;PSPDevInstallParamsW&nbsp;=&nbsp;^TSPDevInstallParamsW;<br>&nbsp;&nbsp;PSPDevInstallParams&nbsp;=&nbsp;PSPDevInstallParamsA;<br>&nbsp;&nbsp;SP_DEVINSTALL_PARAMS_A&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;cbSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;Flags:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;FlagsEx:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;hwndParent:&nbsp;HWND;<br>&nbsp;&nbsp;&nbsp;&nbsp;InstallMsgHandler:&nbsp;TSPFileCallback;<br>&nbsp;&nbsp;&nbsp;&nbsp;InstallMsgHandlerContext:&nbsp;Pointer;<br>&nbsp;&nbsp;&nbsp;&nbsp;FileQueue:&nbsp;HSPFILEQ;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassInstallReserved:&nbsp;ULONG_PTR;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;DriverPath:&nbsp;array[0..MAX_PATH&nbsp;-&nbsp;1]&nbsp;of&nbsp;AnsiChar;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_DEVINSTALL_PARAMS_A}<br>&nbsp;&nbsp;SP_DEVINSTALL_PARAMS_W&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;cbSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;Flags:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;FlagsEx:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;hwndParent:&nbsp;HWND;<br>&nbsp;&nbsp;&nbsp;&nbsp;InstallMsgHandler:&nbsp;TSPFileCallback;<br>&nbsp;&nbsp;&nbsp;&nbsp;InstallMsgHandlerContext:&nbsp;Pointer;<br>&nbsp;&nbsp;&nbsp;&nbsp;FileQueue:&nbsp;HSPFILEQ;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassInstallReserved:&nbsp;ULONG_PTR;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;DriverPath:&nbsp;array[0..MAX_PATH&nbsp;-&nbsp;1]&nbsp;of&nbsp;WideChar;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_DEVINSTALL_PARAMS_W}<br>&nbsp;&nbsp;TSPDevInstallParamsA&nbsp;=&nbsp;SP_DEVINSTALL_PARAMS_A;<br>&nbsp;&nbsp;TSPDevInstallParamsW&nbsp;=&nbsp;SP_DEVINSTALL_PARAMS_W;<br>&nbsp;&nbsp;TSPDevInstallParams&nbsp;=&nbsp;TSPDevInstallParamsA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;SP_DEVINSTALL_PARAMS.Flags&nbsp;values<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Flags&nbsp;for&nbsp;choosing&nbsp;a&nbsp;device<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;DI_SHOWOEM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000001;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;support&nbsp;Other...&nbsp;button<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_SHOWOEM}<br>&nbsp;&nbsp;DI_SHOWCOMPAT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000002;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;show&nbsp;compatibility&nbsp;list<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_SHOWCOMPAT}<br>&nbsp;&nbsp;DI_SHOWCLASS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000004;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;show&nbsp;class&nbsp;list<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_SHOWCLASS}<br>&nbsp;&nbsp;DI_SHOWALL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000007;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;both&nbsp;class&nbsp;&amp;&nbsp;compat&nbsp;list&nbsp;shown<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_SHOWALL}<br>&nbsp;&nbsp;DI_NOVCP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000008;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;don't&nbsp;create&nbsp;a&nbsp;new&nbsp;copy&nbsp;queue--use<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_NOVCP}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;caller-supplied&nbsp;FileQueue<br>&nbsp;&nbsp;DI_DIDCOMPAT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000010;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Searched&nbsp;for&nbsp;compatible&nbsp;devices<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_DIDCOMPAT}<br>&nbsp;&nbsp;DI_DIDCLASS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000020;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Searched&nbsp;for&nbsp;class&nbsp;devices<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_DIDCLASS}<br>&nbsp;&nbsp;DI_AUTOASSIGNRES&nbsp;&nbsp;=&nbsp;$00000040;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;No&nbsp;UI&nbsp;for&nbsp;resources&nbsp;if&nbsp;possible<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_AUTOASSIGNRES}<br><br>&nbsp;&nbsp;//&nbsp;flags&nbsp;returned&nbsp;by&nbsp;DiInstallDevice&nbsp;to&nbsp;indicate&nbsp;need&nbsp;to&nbsp;reboot/restart<br>&nbsp;&nbsp;DI_NEEDRESTART&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000080;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Reboot&nbsp;required&nbsp;to&nbsp;take&nbsp;effect<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_NEEDRESTART}<br>&nbsp;&nbsp;DI_NEEDREBOOT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000100;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&quot;&quot;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_NEEDREBOOT}<br><br>&nbsp;&nbsp;//&nbsp;flags&nbsp;for&nbsp;device&nbsp;installation<br>&nbsp;&nbsp;DI_NOBROWSE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000200;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;no&nbsp;Browse...&nbsp;in&nbsp;InsertDisk<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_NOBROWSE}<br><br>&nbsp;&nbsp;//&nbsp;Flags&nbsp;set&nbsp;by&nbsp;DiBuildDriverInfoList<br>&nbsp;&nbsp;DI_MULTMFGS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000400;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Set&nbsp;if&nbsp;multiple&nbsp;manufacturers&nbsp;in<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_MULTMFGS}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;class&nbsp;driver&nbsp;list<br><br>&nbsp;&nbsp;//&nbsp;Flag&nbsp;indicates&nbsp;that&nbsp;device&nbsp;is&nbsp;disabled<br>&nbsp;&nbsp;DI_DISABLED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000800;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Set&nbsp;if&nbsp;device&nbsp;disabled<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_DISABLED}<br><br>&nbsp;&nbsp;//&nbsp;Flags&nbsp;for&nbsp;Device/Class&nbsp;Properties<br>&nbsp;&nbsp;DI_GENERALPAGE_ADDED&nbsp;=&nbsp;$00001000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_GENERALPAGE_ADDED}<br>&nbsp;&nbsp;DI_RESOURCEPAGE_ADDED&nbsp;=&nbsp;$00002000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_RESOURCEPAGE_ADDED}<br><br>&nbsp;&nbsp;//&nbsp;Flag&nbsp;to&nbsp;indicate&nbsp;the&nbsp;setting&nbsp;properties&nbsp;for&nbsp;this&nbsp;Device&nbsp;(or&nbsp;class)&nbsp;caused&nbsp;a&nbsp;change<br>&nbsp;&nbsp;//&nbsp;so&nbsp;the&nbsp;Dev&nbsp;Mgr&nbsp;UI&nbsp;probably&nbsp;needs&nbsp;to&nbsp;be&nbsp;updatd.<br>&nbsp;&nbsp;DI_PROPERTIES_CHANGE&nbsp;=&nbsp;$00004000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_PROPERTIES_CHANGE}<br><br>&nbsp;&nbsp;//&nbsp;Flag&nbsp;to&nbsp;indicate&nbsp;that&nbsp;the&nbsp;sorting&nbsp;from&nbsp;the&nbsp;INF&nbsp;file&nbsp;should&nbsp;be&nbsp;used.<br>&nbsp;&nbsp;DI_INF_IS_SORTED&nbsp;&nbsp;=&nbsp;$00008000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_INF_IS_SORTED}<br><br>&nbsp;&nbsp;//&nbsp;Flag&nbsp;to&nbsp;indicate&nbsp;that&nbsp;only&nbsp;the&nbsp;the&nbsp;INF&nbsp;specified&nbsp;by&nbsp;SP_DEVINSTALL_PARAMS.DriverPath<br>&nbsp;&nbsp;//&nbsp;should&nbsp;be&nbsp;searched.<br>&nbsp;&nbsp;DI_ENUMSINGLEINF&nbsp;&nbsp;=&nbsp;$00010000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_ENUMSINGLEINF}<br><br>&nbsp;&nbsp;//&nbsp;Flag&nbsp;that&nbsp;prevents&nbsp;ConfigMgr&nbsp;from&nbsp;removing/re-enumerating&nbsp;devices&nbsp;during&nbsp;device<br>&nbsp;&nbsp;//&nbsp;registration,&nbsp;installation,&nbsp;and&nbsp;deletion.<br>&nbsp;&nbsp;DI_DONOTCALLCONFIGMG&nbsp;=&nbsp;$00020000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_DONOTCALLCONFIGMG}<br><br>&nbsp;&nbsp;//&nbsp;The&nbsp;following&nbsp;flag&nbsp;can&nbsp;be&nbsp;used&nbsp;to&nbsp;install&nbsp;a&nbsp;device&nbsp;disabled<br>&nbsp;&nbsp;DI_INSTALLDISABLED&nbsp;=&nbsp;$00040000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_INSTALLDISABLED}<br><br>&nbsp;&nbsp;//&nbsp;Flag&nbsp;that&nbsp;causes&nbsp;SetupDiBuildDriverInfoList&nbsp;to&nbsp;build&nbsp;a&nbsp;device's&nbsp;compatible&nbsp;driver<br>&nbsp;&nbsp;//&nbsp;list&nbsp;from&nbsp;its&nbsp;existing&nbsp;class&nbsp;driver&nbsp;list,&nbsp;instead&nbsp;of&nbsp;the&nbsp;normal&nbsp;INF&nbsp;search.<br>&nbsp;&nbsp;DI_COMPAT_FROM_CLASS&nbsp;=&nbsp;$00080000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_COMPAT_FROM_CLASS}<br><br>&nbsp;&nbsp;//&nbsp;This&nbsp;flag&nbsp;is&nbsp;set&nbsp;if&nbsp;the&nbsp;Class&nbsp;Install&nbsp;params&nbsp;should&nbsp;be&nbsp;used.<br>&nbsp;&nbsp;DI_CLASSINSTALLPARAMS&nbsp;=&nbsp;$00100000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_CLASSINSTALLPARAMS}<br><br>&nbsp;&nbsp;//&nbsp;This&nbsp;flag&nbsp;is&nbsp;set&nbsp;if&nbsp;the&nbsp;caller&nbsp;of&nbsp;DiCallClassInstaller&nbsp;does&nbsp;NOT<br>&nbsp;&nbsp;//&nbsp;want&nbsp;the&nbsp;internal&nbsp;default&nbsp;action&nbsp;performed&nbsp;if&nbsp;the&nbsp;Class&nbsp;installer<br>&nbsp;&nbsp;//&nbsp;returns&nbsp;ERROR_DI_DO_DEFAULT.<br>&nbsp;&nbsp;DI_NODI_DEFAULTACTION&nbsp;=&nbsp;$00200000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_NODI_DEFAULTACTION}<br><br>&nbsp;&nbsp;//&nbsp;The&nbsp;setupx&nbsp;flag,&nbsp;DI_NOSYNCPROCESSING&nbsp;(0x00400000L)&nbsp;is&nbsp;not&nbsp;support&nbsp;in&nbsp;the&nbsp;Setup&nbsp;APIs.<br><br>&nbsp;&nbsp;//&nbsp;flags&nbsp;for&nbsp;device&nbsp;installation<br>&nbsp;&nbsp;DI_QUIETINSTALL&nbsp;&nbsp;&nbsp;=&nbsp;$00800000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;don't&nbsp;confuse&nbsp;the&nbsp;user&nbsp;with<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_QUIETINSTALL}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;questions&nbsp;or&nbsp;excess&nbsp;info<br>&nbsp;&nbsp;DI_NOFILECOPY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$01000000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;No&nbsp;file&nbsp;Copy&nbsp;necessary<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_NOFILECOPY}<br>&nbsp;&nbsp;DI_FORCECOPY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$02000000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Force&nbsp;files&nbsp;to&nbsp;be&nbsp;copied&nbsp;from&nbsp;install&nbsp;path<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_FORCECOPY}<br>&nbsp;&nbsp;DI_DRIVERPAGE_ADDED&nbsp;=&nbsp;$04000000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Prop&nbsp;provider&nbsp;added&nbsp;Driver&nbsp;page.<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_DRIVERPAGE_ADDED}<br>&nbsp;&nbsp;DI_USECI_SELECTSTRINGS&nbsp;=&nbsp;$08000000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Use&nbsp;Class&nbsp;Installer&nbsp;Provided&nbsp;strings&nbsp;in&nbsp;the&nbsp;Select&nbsp;Device&nbsp;Dlg<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_USECI_SELECTSTRINGS}<br>&nbsp;&nbsp;DI_OVERRIDE_INFFLAGS&nbsp;=&nbsp;$10000000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Override&nbsp;INF&nbsp;flags<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_OVERRIDE_INFFLAGS}<br>&nbsp;&nbsp;DI_PROPS_NOCHANGEUSAGE&nbsp;=&nbsp;$20000000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;No&nbsp;Enable/Disable&nbsp;in&nbsp;General&nbsp;Props<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_PROPS_NOCHANGEUSAGE}<br><br>&nbsp;&nbsp;DI_NOSELECTICONS&nbsp;&nbsp;=&nbsp;$40000000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;No&nbsp;small&nbsp;icons&nbsp;in&nbsp;select&nbsp;device&nbsp;dialogs<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_NOSELECTICONS}<br><br>&nbsp;&nbsp;DI_NOWRITE_IDS&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;DWORD($80000000);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Don't&nbsp;write&nbsp;HW&nbsp;&amp;&nbsp;Compat&nbsp;IDs&nbsp;on&nbsp;install<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_NOWRITE_IDS}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;SP_DEVINSTALL_PARAMS.FlagsEx&nbsp;values<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;DI_FLAGSEX_USEOLDINFSEARCH&nbsp;=&nbsp;$00000001;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Inf&nbsp;Search&nbsp;functions&nbsp;should&nbsp;not&nbsp;use&nbsp;Index&nbsp;Search<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_FLAGSEX_USEOLDINFSEARCH}<br>&nbsp;&nbsp;DI_FLAGSEX_AUTOSELECTRANK0&nbsp;=&nbsp;$00000002;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;SetupDiSelectDevice&nbsp;doesn't&nbsp;prompt&nbsp;user&nbsp;if&nbsp;rank&nbsp;0&nbsp;match<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_FLAGSEX_AUTOSELECTRANK0}<br>&nbsp;&nbsp;DI_FLAGSEX_CI_FAILED&nbsp;=&nbsp;$00000004;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Failed&nbsp;to&nbsp;Load/Call&nbsp;class&nbsp;installer<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_FLAGSEX_CI_FAILED}<br><br>&nbsp;&nbsp;DI_FLAGSEX_DIDINFOLIST&nbsp;=&nbsp;$00000010;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Did&nbsp;the&nbsp;Class&nbsp;Info&nbsp;List<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_FLAGSEX_DIDINFOLIST}<br>&nbsp;&nbsp;DI_FLAGSEX_DIDCOMPATINFO&nbsp;=&nbsp;$00000020;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Did&nbsp;the&nbsp;Compat&nbsp;Info&nbsp;List<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_FLAGSEX_DIDCOMPATINFO}<br><br>&nbsp;&nbsp;DI_FLAGSEX_FILTERCLASSES&nbsp;=&nbsp;$00000040;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_FLAGSEX_FILTERCLASSES}<br>&nbsp;&nbsp;DI_FLAGSEX_SETFAILEDINSTALL&nbsp;=&nbsp;$00000080;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_FLAGSEX_SETFAILEDINSTALL}<br>&nbsp;&nbsp;DI_FLAGSEX_DEVICECHANGE&nbsp;=&nbsp;$00000100;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_FLAGSEX_DEVICECHANGE}<br>&nbsp;&nbsp;DI_FLAGSEX_ALWAYSWRITEIDS&nbsp;=&nbsp;$00000200;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_FLAGSEX_ALWAYSWRITEIDS}<br>&nbsp;&nbsp;DI_FLAGSEX_PROPCHANGE_PENDING&nbsp;=&nbsp;$00000400;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;One&nbsp;or&nbsp;more&nbsp;device&nbsp;property&nbsp;sheets&nbsp;have&nbsp;had&nbsp;changes&nbsp;made<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_FLAGSEX_PROPCHANGE_PENDING}&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;to&nbsp;them,&nbsp;and&nbsp;need&nbsp;to&nbsp;have&nbsp;a&nbsp;DIF_PROPERTYCHANGE&nbsp;occur.<br><br>&nbsp;&nbsp;DI_FLAGSEX_ALLOWEXCLUDEDDRVS&nbsp;=&nbsp;$00000800;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_FLAGSEX_ALLOWEXCLUDEDDRVS}<br>&nbsp;&nbsp;DI_FLAGSEX_NOUIONQUERYREMOVE&nbsp;=&nbsp;$00001000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_FLAGSEX_NOUIONQUERYREMOVE}<br>&nbsp;&nbsp;DI_FLAGSEX_USECLASSFORCOMPAT&nbsp;=&nbsp;$00002000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Use&nbsp;the&nbsp;device's&nbsp;class&nbsp;when&nbsp;building&nbsp;compat&nbsp;drv&nbsp;list.<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_FLAGSEX_USECLASSFORCOMPAT}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;(Ignored&nbsp;if&nbsp;DI_COMPAT_FROM_CLASS&nbsp;flag&nbsp;is&nbsp;specified.)<br>&nbsp;&nbsp;DI_FLAGSEX_OLDINF_IN_CLASSLIST&nbsp;=&nbsp;$00004000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Search&nbsp;legacy&nbsp;INFs&nbsp;when&nbsp;building&nbsp;class&nbsp;driver&nbsp;list.<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_FLAGSEX_OLDINF_IN_CLASSLIST}<br>&nbsp;&nbsp;DI_FLAGSEX_NO_DRVREG_MODIFY&nbsp;=&nbsp;$00008000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Don't&nbsp;run&nbsp;AddReg&nbsp;and&nbsp;DelReg&nbsp;for&nbsp;device's&nbsp;software&nbsp;(driver)&nbsp;key.<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_FLAGSEX_NO_DRVREG_MODIFY}<br>&nbsp;&nbsp;DI_FLAGSEX_IN_SYSTEM_SETUP&nbsp;=&nbsp;$00010000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Installation&nbsp;is&nbsp;occurring&nbsp;during&nbsp;initial&nbsp;system&nbsp;setup.<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_FLAGSEX_IN_SYSTEM_SETUP}<br>&nbsp;&nbsp;DI_FLAGSEX_INET_DRIVER&nbsp;=&nbsp;$00020000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Driver&nbsp;came&nbsp;from&nbsp;Windows&nbsp;Update<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_FLAGSEX_INET_DRIVER}<br>&nbsp;&nbsp;DI_FLAGSEX_APPENDDRIVERLIST&nbsp;=&nbsp;$00040000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Cause&nbsp;SetupDiBuildDriverInfoList&nbsp;to&nbsp;append<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_FLAGSEX_APPENDDRIVERLIST}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;a&nbsp;new&nbsp;driver&nbsp;list&nbsp;to&nbsp;an&nbsp;existing&nbsp;list.<br>&nbsp;&nbsp;DI_FLAGSEX_PREINSTALLBACKUP&nbsp;=&nbsp;$00080000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;backup&nbsp;all&nbsp;files&nbsp;required&nbsp;by&nbsp;old&nbsp;inf&nbsp;before&nbsp;install<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_FLAGSEX_PREINSTALLBACKUP}<br>&nbsp;&nbsp;DI_FLAGSEX_BACKUPONREPLACE&nbsp;=&nbsp;$00100000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;backup&nbsp;files&nbsp;required&nbsp;by&nbsp;old&nbsp;inf&nbsp;as&nbsp;they&nbsp;are&nbsp;replaced<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_FLAGSEX_BACKUPONREPLACE}<br>&nbsp;&nbsp;DI_FLAGSEX_DRIVERLIST_FROM_URL&nbsp;=&nbsp;$00200000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;build&nbsp;driver&nbsp;list&nbsp;from&nbsp;INF(s)&nbsp;retrieved&nbsp;from&nbsp;URL&nbsp;specified<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_FLAGSEX_DRIVERLIST_FROM_URL}<br>&nbsp;&nbsp;//&nbsp;in&nbsp;SP_DEVINSTALL_PARAMS.DriverPath&nbsp;(empty&nbsp;string&nbsp;means<br>&nbsp;&nbsp;//&nbsp;Windows&nbsp;Update&nbsp;website)<br>&nbsp;&nbsp;DI_FLAGSEX_RESERVED1&nbsp;=&nbsp;$00400000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_FLAGSEX_RESERVED1}<br>&nbsp;&nbsp;DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS&nbsp;=&nbsp;$00800000;&nbsp;//&nbsp;Don't&nbsp;include&nbsp;old&nbsp;Internet&nbsp;drivers&nbsp;when&nbsp;building<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS}<br>&nbsp;&nbsp;//&nbsp;a&nbsp;driver&nbsp;list.<br>&nbsp;&nbsp;DI_FLAGSEX_POWERPAGE_ADDED&nbsp;=&nbsp;$01000000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;class&nbsp;installer&nbsp;added&nbsp;their&nbsp;own&nbsp;power&nbsp;page<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_FLAGSEX_POWERPAGE_ADDED}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Class&nbsp;installation&nbsp;parameters&nbsp;header.&nbsp;This&nbsp;must&nbsp;be&nbsp;the&nbsp;first&nbsp;field&nbsp;of&nbsp;any<br>&nbsp;&nbsp;//&nbsp;class&nbsp;install&nbsp;parameter&nbsp;structure.&nbsp;The&nbsp;InstallFunction&nbsp;field&nbsp;must&nbsp;be&nbsp;set&nbsp;to<br>&nbsp;&nbsp;//&nbsp;the&nbsp;function&nbsp;code&nbsp;corresponding&nbsp;to&nbsp;the&nbsp;structure,&nbsp;and&nbsp;the&nbsp;cbSize&nbsp;field&nbsp;must<br>&nbsp;&nbsp;//&nbsp;be&nbsp;set&nbsp;to&nbsp;the&nbsp;size&nbsp;of&nbsp;the&nbsp;header&nbsp;structure.&nbsp;E.g.,<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;SP_ENABLECLASS_PARAMS&nbsp;EnableClassParams;<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;EnableClassParams.ClassInstallHeader.cbSize&nbsp;=&nbsp;sizeof(SP_CLASSINSTALL_HEADER);<br>&nbsp;&nbsp;//&nbsp;EnableClassParams.ClassInstallHeader.InstallFunction&nbsp;=&nbsp;DIF_ENABLECLASS;<br>&nbsp;&nbsp;//<br>type<br>&nbsp;&nbsp;PSPClassInstallHeader&nbsp;=&nbsp;^TSPClassInstallHeader;<br>&nbsp;&nbsp;SP_CLASSINSTALL_HEADER&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;cbSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;InstallFunction:&nbsp;DI_FUNCTION;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_CLASSINSTALL_HEADER}<br>&nbsp;&nbsp;TSPClassInstallHeader&nbsp;=&nbsp;SP_CLASSINSTALL_HEADER;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Structure&nbsp;corresponding&nbsp;to&nbsp;a&nbsp;DIF_ENABLECLASS&nbsp;install&nbsp;function.<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;PSPEnableClassParams&nbsp;=&nbsp;^TSPEnableClassParams;<br>&nbsp;&nbsp;SP_ENABLECLASS_PARAMS&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassInstallHeader:&nbsp;TSPClassInstallHeader;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;EnableMessage:&nbsp;DWORD;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_ENABLECLASS_PARAMS}<br>&nbsp;&nbsp;TSPEnableClassParams&nbsp;=&nbsp;SP_ENABLECLASS_PARAMS;<br><br>const<br>&nbsp;&nbsp;ENABLECLASS_QUERY&nbsp;=&nbsp;0;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ENABLECLASS_QUERY}<br>&nbsp;&nbsp;ENABLECLASS_SUCCESS&nbsp;=&nbsp;1;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ENABLECLASS_SUCCESS}<br>&nbsp;&nbsp;ENABLECLASS_FAILURE&nbsp;=&nbsp;2;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ENABLECLASS_FAILURE}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Structure&nbsp;corresponding&nbsp;to&nbsp;a&nbsp;DIF_MOVEDEVICE&nbsp;install&nbsp;function.<br>&nbsp;&nbsp;//<br>type<br>&nbsp;&nbsp;PSPMoveDevParams&nbsp;=&nbsp;^TSPMoveDevParams;<br>&nbsp;&nbsp;SP_MOVEDEV_PARAMS&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassInstallHeader:&nbsp;TSPClassInstallHeader;<br>&nbsp;&nbsp;&nbsp;&nbsp;SourceDeviceInfoData:&nbsp;TSPDevInfoData;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_MOVEDEV_PARAMS}<br>&nbsp;&nbsp;TSPMoveDevParams&nbsp;=&nbsp;SP_MOVEDEV_PARAMS;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Values&nbsp;indicating&nbsp;a&nbsp;change&nbsp;in&nbsp;a&nbsp;device's&nbsp;state<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;DICS_ENABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DICS_ENABLE}<br>&nbsp;&nbsp;DICS_DISABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DICS_DISABLE}<br>&nbsp;&nbsp;DICS_PROPCHANGE&nbsp;&nbsp;&nbsp;=&nbsp;$00000003;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DICS_PROPCHANGE}<br>&nbsp;&nbsp;DICS_START&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000004;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DICS_START}<br>&nbsp;&nbsp;DICS_STOP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000005;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DICS_STOP}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Values&nbsp;specifying&nbsp;the&nbsp;scope&nbsp;of&nbsp;a&nbsp;device&nbsp;property&nbsp;change<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;DICS_FLAG_GLOBAL&nbsp;&nbsp;=&nbsp;$00000001;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;make&nbsp;change&nbsp;in&nbsp;all&nbsp;hardware&nbsp;profiles<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DICS_FLAG_GLOBAL}<br>&nbsp;&nbsp;DICS_FLAG_CONFIGSPECIFIC&nbsp;=&nbsp;$00000002;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;make&nbsp;change&nbsp;in&nbsp;specified&nbsp;profile&nbsp;only<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DICS_FLAG_CONFIGSPECIFIC}<br>&nbsp;&nbsp;DICS_FLAG_CONFIGGENERAL&nbsp;=&nbsp;$00000004;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;1&nbsp;or&nbsp;more&nbsp;hardware&nbsp;profile-specific<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DICS_FLAG_CONFIGGENERAL}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;changes&nbsp;to&nbsp;follow.<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Structure&nbsp;corresponding&nbsp;to&nbsp;a&nbsp;DIF_PROPERTYCHANGE&nbsp;install&nbsp;function.<br>&nbsp;&nbsp;//<br>type<br>&nbsp;&nbsp;PSPPropChangeParams&nbsp;=&nbsp;^TSPPropChangeParams;<br>&nbsp;&nbsp;SP_PROPCHANGE_PARAMS&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassInstallHeader:&nbsp;TSPClassInstallHeader;<br>&nbsp;&nbsp;&nbsp;&nbsp;StateChange:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;Scope:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;HwProfile:&nbsp;DWORD;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_PROPCHANGE_PARAMS}<br>&nbsp;&nbsp;TSPPropChangeParams&nbsp;=&nbsp;SP_PROPCHANGE_PARAMS;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Structure&nbsp;corresponding&nbsp;to&nbsp;a&nbsp;DIF_REMOVE&nbsp;install&nbsp;function.<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;PSPRemoveDeviceParams&nbsp;=&nbsp;^TSPRemoveDeviceParams;<br>&nbsp;&nbsp;SP_REMOVEDEVICE_PARAMS&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassInstallHeader:&nbsp;TSPClassInstallHeader;<br>&nbsp;&nbsp;&nbsp;&nbsp;Scope:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;HwProfile:&nbsp;DWORD;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_REMOVEDEVICE_PARAMS}<br>&nbsp;&nbsp;TSPRemoveDeviceParams&nbsp;=&nbsp;SP_REMOVEDEVICE_PARAMS;<br><br>const<br>&nbsp;&nbsp;DI_REMOVEDEVICE_GLOBAL&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_REMOVEDEVICE_GLOBAL}<br>&nbsp;&nbsp;DI_REMOVEDEVICE_CONFIGSPECIFIC&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_REMOVEDEVICE_CONFIGSPECIFIC}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Structure&nbsp;corresponding&nbsp;to&nbsp;a&nbsp;DIF_UNREMOVE&nbsp;install&nbsp;function.<br>&nbsp;&nbsp;//<br>type<br>&nbsp;&nbsp;PSPUnremoveDeviceParams&nbsp;=&nbsp;^TSPUnremoveDeviceParams;<br>&nbsp;&nbsp;SP_UNREMOVEDEVICE_PARAMS&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassInstallHeader:&nbsp;TSPClassInstallHeader;<br>&nbsp;&nbsp;&nbsp;&nbsp;Scope:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;HwProfile:&nbsp;DWORD;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_UNREMOVEDEVICE_PARAMS}<br>&nbsp;&nbsp;TSPUnremoveDeviceParams&nbsp;=&nbsp;SP_UNREMOVEDEVICE_PARAMS;<br><br>const<br>&nbsp;&nbsp;DI_UNREMOVEDEVICE_CONFIGSPECIFIC&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DI_UNREMOVEDEVICE_CONFIGSPECIFIC}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Structure&nbsp;corresponding&nbsp;to&nbsp;a&nbsp;DIF_SELECTDEVICE&nbsp;install&nbsp;function.<br>&nbsp;&nbsp;//<br>type<br>&nbsp;&nbsp;PSPSelectDeviceParamsA&nbsp;=&nbsp;^TSPSelectDeviceParamsA;<br>&nbsp;&nbsp;PSPSelectDeviceParamsW&nbsp;=&nbsp;^TSPSelectDeviceParamsW;<br>&nbsp;&nbsp;PSPSelectDeviceParams&nbsp;=&nbsp;PSPSelectDeviceParamsA;<br>&nbsp;&nbsp;SP_SELECTDEVICE_PARAMS_A&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassInstallHeader:&nbsp;TSPClassInstallHeader;<br>&nbsp;&nbsp;&nbsp;&nbsp;Title:&nbsp;array[0..MAX_TITLE_LEN&nbsp;-&nbsp;1]&nbsp;of&nbsp;AnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Instructions:&nbsp;array[0..MAX_INSTRUCTION_LEN&nbsp;-&nbsp;1]&nbsp;of&nbsp;AnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;ListLabel:&nbsp;array[0..MAX_LABEL_LEN&nbsp;-&nbsp;1]&nbsp;of&nbsp;AnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;SubTitle:&nbsp;array[0..MAX_SUBTITLE_LEN&nbsp;-&nbsp;1]&nbsp;of&nbsp;AnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;array[0..1]&nbsp;of&nbsp;Byte;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;DWORD&nbsp;size&nbsp;alignment<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_SELECTDEVICE_PARAMS_A}<br>&nbsp;&nbsp;SP_SELECTDEVICE_PARAMS_W&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassInstallHeader:&nbsp;TSPClassInstallHeader;<br>&nbsp;&nbsp;&nbsp;&nbsp;Title:&nbsp;array[0..MAX_TITLE_LEN&nbsp;-&nbsp;1]&nbsp;of&nbsp;WideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Instructions:&nbsp;array[0..MAX_INSTRUCTION_LEN&nbsp;-&nbsp;1]&nbsp;of&nbsp;WideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;ListLabel:&nbsp;array[0..MAX_LABEL_LEN&nbsp;-&nbsp;1]&nbsp;of&nbsp;WideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;SubTitle:&nbsp;array[0..MAX_SUBTITLE_LEN&nbsp;-&nbsp;1]&nbsp;of&nbsp;WideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;array[0..1]&nbsp;of&nbsp;Byte;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;DWORD&nbsp;size&nbsp;alignment<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_SELECTDEVICE_PARAMS_W}<br>&nbsp;&nbsp;TSPSelectDeviceParamsA&nbsp;=&nbsp;SP_SELECTDEVICE_PARAMS_A;<br>&nbsp;&nbsp;TSPSelectDeviceParamsW&nbsp;=&nbsp;SP_SELECTDEVICE_PARAMS_W;<br>&nbsp;&nbsp;TSPSelectdeviceParams&nbsp;=&nbsp;TSPSelectDeviceParamsA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Callback&nbsp;routine&nbsp;for&nbsp;giving&nbsp;progress&nbsp;notification&nbsp;during&nbsp;detection<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;PDetectProgressNotify&nbsp;=&nbsp;function(ProgressNotifyParam:&nbsp;Pointer;&nbsp;DetectComplete:&nbsp;DWORD):&nbsp;BOOL;&nbsp;stdcall;<br><br>&nbsp;&nbsp;//&nbsp;where:<br>&nbsp;&nbsp;//&nbsp;ProgressNotifyParam&nbsp;-&nbsp;value&nbsp;supplied&nbsp;by&nbsp;caller&nbsp;requesting&nbsp;detection.<br>&nbsp;&nbsp;//&nbsp;DetectComplete&nbsp;-&nbsp;Percent&nbsp;completion,&nbsp;to&nbsp;be&nbsp;incremented&nbsp;by&nbsp;class<br>&nbsp;&nbsp;//&nbsp;installer,&nbsp;as&nbsp;it&nbsp;steps&nbsp;thru&nbsp;its&nbsp;detection.<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Return&nbsp;Value&nbsp;-&nbsp;If&nbsp;TRUE,&nbsp;then&nbsp;detection&nbsp;is&nbsp;cancelled.&nbsp;Allows&nbsp;caller<br>&nbsp;&nbsp;//&nbsp;requesting&nbsp;detection&nbsp;to&nbsp;stop&nbsp;detection&nbsp;asap.<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Structure&nbsp;corresponding&nbsp;to&nbsp;a&nbsp;DIF_DETECT&nbsp;install&nbsp;function.<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;PSPDetectDeviceParams&nbsp;=&nbsp;^TSPDetectDeviceParams;<br>&nbsp;&nbsp;SP_DETECTDEVICE_PARAMS&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassInstallHeader:&nbsp;TSPClassInstallHeader;<br>&nbsp;&nbsp;&nbsp;&nbsp;DetectProgressNotify:&nbsp;PDetectProgressNotify;<br>&nbsp;&nbsp;&nbsp;&nbsp;ProgressNotifyParam:&nbsp;Pointer;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_DETECTDEVICE_PARAMS}<br>&nbsp;&nbsp;TSPDetectDeviceParams&nbsp;=&nbsp;SP_DETECTDEVICE_PARAMS;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;'Add&nbsp;New&nbsp;Device'&nbsp;installation&nbsp;wizard&nbsp;structure&nbsp;(backward-compatibility<br>&nbsp;&nbsp;//&nbsp;only--respond&nbsp;to&nbsp;DIF_NEWDEVICEWIZARD_*&nbsp;requests&nbsp;instead).<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Structure&nbsp;corresponding&nbsp;to&nbsp;a&nbsp;DIF_INSTALLWIZARD&nbsp;install&nbsp;function.<br>&nbsp;&nbsp;//&nbsp;(NOTE:&nbsp;This&nbsp;structure&nbsp;is&nbsp;also&nbsp;applicable&nbsp;for&nbsp;DIF_DESTROYWIZARDDATA,<br>&nbsp;&nbsp;//&nbsp;but&nbsp;DIF_INSTALLWIZARD&nbsp;is&nbsp;the&nbsp;associated&nbsp;function&nbsp;code&nbsp;in&nbsp;the&nbsp;class<br>&nbsp;&nbsp;//&nbsp;installation&nbsp;parameter&nbsp;structure&nbsp;in&nbsp;both&nbsp;cases.)<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Define&nbsp;maximum&nbsp;number&nbsp;of&nbsp;dynamic&nbsp;wizard&nbsp;pages&nbsp;that&nbsp;can&nbsp;be&nbsp;added&nbsp;to<br>&nbsp;&nbsp;//&nbsp;hardware&nbsp;install&nbsp;wizard.<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;MAX_INSTALLWIZARD_DYNAPAGES&nbsp;=&nbsp;20;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;MAX_INSTALLWIZARD_DYNAPAGES}<br><br>type<br>&nbsp;&nbsp;PSPInstallWizardData&nbsp;=&nbsp;^TSPInstallWizardData;<br>&nbsp;&nbsp;SP_INSTALLWIZARD_DATA&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassInstallHeader:&nbsp;TSPClassInstallHeader;<br>&nbsp;&nbsp;&nbsp;&nbsp;Flags:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;DynamicPages:&nbsp;array[0..MAX_INSTALLWIZARD_DYNAPAGES&nbsp;-&nbsp;1]&nbsp;of&nbsp;HPROPSHEETPAGE;<br>&nbsp;&nbsp;&nbsp;&nbsp;NumDynamicPages:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;DynamicPageFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;PrivateFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;PrivateData:&nbsp;LPARAM;<br>&nbsp;&nbsp;&nbsp;&nbsp;hwndWizardDlg:&nbsp;HWND;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_INSTALLWIZARD_DATA}<br>&nbsp;&nbsp;TSPInstallWizardData&nbsp;=&nbsp;SP_INSTALLWIZARD_DATA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;SP_INSTALLWIZARD_DATA.Flags&nbsp;values<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;NDW_INSTALLFLAG_DIDFACTDEFS&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;NDW_INSTALLFLAG_DIDFACTDEFS}<br>&nbsp;&nbsp;NDW_INSTALLFLAG_HARDWAREALLREADYIN&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;NDW_INSTALLFLAG_HARDWAREALLREADYIN}<br>&nbsp;&nbsp;NDW_INSTALLFLAG_NEEDRESTART&nbsp;=&nbsp;DI_NEEDRESTART;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;NDW_INSTALLFLAG_NEEDRESTART}<br>&nbsp;&nbsp;NDW_INSTALLFLAG_NEEDREBOOT&nbsp;=&nbsp;DI_NEEDREBOOT;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;NDW_INSTALLFLAG_NEEDREBOOT}<br>&nbsp;&nbsp;NDW_INSTALLFLAG_NEEDSHUTDOWN&nbsp;=&nbsp;$00000200;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;NDW_INSTALLFLAG_NEEDSHUTDOWN}<br>&nbsp;&nbsp;NDW_INSTALLFLAG_EXPRESSINTRO&nbsp;=&nbsp;$00000400;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;NDW_INSTALLFLAG_EXPRESSINTRO}<br>&nbsp;&nbsp;NDW_INSTALLFLAG_SKIPISDEVINSTALLED&nbsp;=&nbsp;$00000800;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;NDW_INSTALLFLAG_SKIPISDEVINSTALLED}<br>&nbsp;&nbsp;NDW_INSTALLFLAG_NODETECTEDDEVS&nbsp;=&nbsp;$00001000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;NDW_INSTALLFLAG_NODETECTEDDEVS}<br>&nbsp;&nbsp;NDW_INSTALLFLAG_INSTALLSPECIFIC&nbsp;=&nbsp;$00002000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;NDW_INSTALLFLAG_INSTALLSPECIFIC}<br>&nbsp;&nbsp;NDW_INSTALLFLAG_SKIPCLASSLIST&nbsp;=&nbsp;$00004000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;NDW_INSTALLFLAG_SKIPCLASSLIST}<br>&nbsp;&nbsp;NDW_INSTALLFLAG_CI_PICKED_OEM&nbsp;=&nbsp;$00008000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;NDW_INSTALLFLAG_CI_PICKED_OEM}<br>&nbsp;&nbsp;NDW_INSTALLFLAG_PCMCIAMODE&nbsp;=&nbsp;$00010000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;NDW_INSTALLFLAG_PCMCIAMODE}<br>&nbsp;&nbsp;NDW_INSTALLFLAG_PCMCIADEVICE&nbsp;=&nbsp;$00020000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;NDW_INSTALLFLAG_PCMCIADEVICE}<br>&nbsp;&nbsp;NDW_INSTALLFLAG_USERCANCEL&nbsp;=&nbsp;$00040000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;NDW_INSTALLFLAG_USERCANCEL}<br>&nbsp;&nbsp;NDW_INSTALLFLAG_KNOWNCLASS&nbsp;=&nbsp;$00080000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;NDW_INSTALLFLAG_KNOWNCLASS}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;SP_INSTALLWIZARD_DATA.DynamicPageFlags&nbsp;values<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;This&nbsp;flag&nbsp;is&nbsp;set&nbsp;if&nbsp;a&nbsp;Class&nbsp;installer&nbsp;has&nbsp;added&nbsp;pages&nbsp;to&nbsp;the&nbsp;install&nbsp;wizard.<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;DYNAWIZ_FLAG_PAGESADDED&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DYNAWIZ_FLAG_PAGESADDED}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Set&nbsp;this&nbsp;flag&nbsp;if&nbsp;you&nbsp;jump&nbsp;to&nbsp;the&nbsp;analyze&nbsp;page,&nbsp;and&nbsp;want&nbsp;it&nbsp;to<br>&nbsp;&nbsp;//&nbsp;handle&nbsp;conflicts&nbsp;for&nbsp;you.&nbsp;NOTE.&nbsp;You&nbsp;will&nbsp;not&nbsp;get&nbsp;control&nbsp;back<br>&nbsp;&nbsp;//&nbsp;in&nbsp;the&nbsp;event&nbsp;of&nbsp;a&nbsp;conflict&nbsp;if&nbsp;you&nbsp;set&nbsp;this&nbsp;flag.<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;DYNAWIZ_FLAG_ANALYZE_HANDLECONFLICT&nbsp;=&nbsp;$00000008;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DYNAWIZ_FLAG_ANALYZE_HANDLECONFLICT}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;The&nbsp;following&nbsp;flags&nbsp;are&nbsp;not&nbsp;used&nbsp;by&nbsp;the&nbsp;Windows&nbsp;NT&nbsp;hardware&nbsp;wizard.<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;DYNAWIZ_FLAG_INSTALLDET_NEXT&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DYNAWIZ_FLAG_INSTALLDET_NEXT}<br>&nbsp;&nbsp;DYNAWIZ_FLAG_INSTALLDET_PREV&nbsp;=&nbsp;$00000004;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DYNAWIZ_FLAG_INSTALLDET_PREV}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Reserve&nbsp;a&nbsp;range&nbsp;of&nbsp;wizard&nbsp;page&nbsp;resource&nbsp;IDs&nbsp;for&nbsp;internal&nbsp;use.&nbsp;Some&nbsp;of<br>&nbsp;&nbsp;//&nbsp;these&nbsp;IDs&nbsp;are&nbsp;for&nbsp;use&nbsp;by&nbsp;class&nbsp;installers&nbsp;that&nbsp;respond&nbsp;to&nbsp;the&nbsp;obsolete<br>&nbsp;&nbsp;//&nbsp;DIF_INSTALLWIZARD/DIF_DESTROYWIZARDDATA&nbsp;messages.&nbsp;These&nbsp;IDs&nbsp;are&nbsp;listed<br>&nbsp;&nbsp;//&nbsp;below.<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;MIN_IDD_DYNAWIZ_RESOURCE_ID&nbsp;=&nbsp;10000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;MIN_IDD_DYNAWIZ_RESOURCE_ID}<br>&nbsp;&nbsp;MAX_IDD_DYNAWIZ_RESOURCE_ID&nbsp;=&nbsp;11000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;MAX_IDD_DYNAWIZ_RESOURCE_ID}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Define&nbsp;wizard&nbsp;page&nbsp;resource&nbsp;IDs&nbsp;to&nbsp;be&nbsp;used&nbsp;when&nbsp;adding&nbsp;custom&nbsp;pages&nbsp;to&nbsp;the<br>&nbsp;&nbsp;//&nbsp;hardware&nbsp;install&nbsp;wizard&nbsp;via&nbsp;DIF_INSTALLWIZARD.&nbsp;Pages&nbsp;marked&nbsp;with<br>&nbsp;&nbsp;//&nbsp;(CLASS&nbsp;INSTALLER&nbsp;PROVIDED)&nbsp;_must_&nbsp;be&nbsp;supplied&nbsp;by&nbsp;the&nbsp;class&nbsp;installer&nbsp;if&nbsp;it<br>&nbsp;&nbsp;//&nbsp;responds&nbsp;to&nbsp;the&nbsp;DIF_INSTALLWIZARD&nbsp;request.<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Resource&nbsp;ID&nbsp;for&nbsp;the&nbsp;first&nbsp;page&nbsp;that&nbsp;the&nbsp;install&nbsp;wizard&nbsp;will&nbsp;go&nbsp;to&nbsp;after<br>&nbsp;&nbsp;//&nbsp;adding&nbsp;the&nbsp;class&nbsp;installer&nbsp;pages.&nbsp;(CLASS&nbsp;INSTALLER&nbsp;PROVIDED)<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;IDD_DYNAWIZ_FIRSTPAGE&nbsp;=&nbsp;10000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDD_DYNAWIZ_FIRSTPAGE}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Resource&nbsp;ID&nbsp;for&nbsp;the&nbsp;page&nbsp;that&nbsp;the&nbsp;Select&nbsp;Device&nbsp;page&nbsp;will&nbsp;go&nbsp;back&nbsp;to.<br>&nbsp;&nbsp;//&nbsp;(CLASS&nbsp;INSTALLER&nbsp;PROVIDED)<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;IDD_DYNAWIZ_SELECT_PREVPAGE&nbsp;=&nbsp;10001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDD_DYNAWIZ_SELECT_PREVPAGE}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Resource&nbsp;ID&nbsp;for&nbsp;the&nbsp;page&nbsp;that&nbsp;the&nbsp;Select&nbsp;Device&nbsp;page&nbsp;will&nbsp;go&nbsp;forward&nbsp;to.<br>&nbsp;&nbsp;//&nbsp;(CLASS&nbsp;INSTALLER&nbsp;PROVIDED)<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;IDD_DYNAWIZ_SELECT_NEXTPAGE&nbsp;=&nbsp;10002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDD_DYNAWIZ_SELECT_NEXTPAGE}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Resource&nbsp;ID&nbsp;for&nbsp;the&nbsp;page&nbsp;that&nbsp;the&nbsp;Analyze&nbsp;dialog&nbsp;should&nbsp;go&nbsp;back&nbsp;to<br>&nbsp;&nbsp;//&nbsp;This&nbsp;will&nbsp;only&nbsp;be&nbsp;used&nbsp;in&nbsp;the&nbsp;event&nbsp;that&nbsp;there&nbsp;is&nbsp;a&nbsp;problem,&nbsp;and&nbsp;the&nbsp;user<br>&nbsp;&nbsp;//&nbsp;selects&nbsp;Back&nbsp;from&nbsp;the&nbsp;analyze&nbsp;proc.&nbsp;(CLASS&nbsp;INSTALLER&nbsp;PROVIDED)<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;IDD_DYNAWIZ_ANALYZE_PREVPAGE&nbsp;=&nbsp;10003;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDD_DYNAWIZ_ANALYZE_PREVPAGE}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Resource&nbsp;ID&nbsp;for&nbsp;the&nbsp;page&nbsp;that&nbsp;the&nbsp;Analyze&nbsp;dialog&nbsp;should&nbsp;go&nbsp;to&nbsp;if&nbsp;it<br>&nbsp;&nbsp;//&nbsp;continues&nbsp;from&nbsp;the&nbsp;analyze&nbsp;proc.&nbsp;(CLASS&nbsp;INSTALLER&nbsp;PROVIDED)<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;IDD_DYNAWIZ_ANALYZE_NEXTPAGE&nbsp;=&nbsp;10004;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDD_DYNAWIZ_ANALYZE_NEXTPAGE}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Resource&nbsp;ID&nbsp;of&nbsp;the&nbsp;hardware&nbsp;install&nbsp;wizard's&nbsp;select&nbsp;device&nbsp;page.<br>&nbsp;&nbsp;//&nbsp;This&nbsp;ID&nbsp;can&nbsp;be&nbsp;used&nbsp;to&nbsp;go&nbsp;directly&nbsp;to&nbsp;the&nbsp;hardware&nbsp;install&nbsp;wizard's&nbsp;select<br>&nbsp;&nbsp;//&nbsp;device&nbsp;page.&nbsp;(This&nbsp;is&nbsp;the&nbsp;resource&nbsp;ID&nbsp;of&nbsp;the&nbsp;Select&nbsp;Device&nbsp;wizard&nbsp;page<br>&nbsp;&nbsp;//&nbsp;retrieved&nbsp;via&nbsp;SetupDiGetWizardPage&nbsp;when&nbsp;SPWPT_SELECTDEVICE&nbsp;is&nbsp;the&nbsp;requested<br>&nbsp;&nbsp;//&nbsp;PageType.)<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;IDD_DYNAWIZ_SELECTDEV_PAGE&nbsp;=&nbsp;10009;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDD_DYNAWIZ_SELECTDEV_PAGE}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Resource&nbsp;ID&nbsp;of&nbsp;the&nbsp;hardware&nbsp;install&nbsp;wizard's&nbsp;device&nbsp;analysis&nbsp;page.<br>&nbsp;&nbsp;//&nbsp;This&nbsp;ID&nbsp;can&nbsp;be&nbsp;use&nbsp;to&nbsp;go&nbsp;directly&nbsp;to&nbsp;the&nbsp;hardware&nbsp;install&nbsp;wizard's&nbsp;analysis<br>&nbsp;&nbsp;//&nbsp;page.<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;IDD_DYNAWIZ_ANALYZEDEV_PAGE&nbsp;=&nbsp;10010;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDD_DYNAWIZ_ANALYZEDEV_PAGE}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Resource&nbsp;ID&nbsp;of&nbsp;the&nbsp;hardware&nbsp;install&nbsp;wizard's&nbsp;install&nbsp;detected&nbsp;devices&nbsp;page.<br>&nbsp;&nbsp;//&nbsp;This&nbsp;ID&nbsp;can&nbsp;be&nbsp;use&nbsp;to&nbsp;go&nbsp;directly&nbsp;to&nbsp;the&nbsp;hardware&nbsp;install&nbsp;wizard's&nbsp;install<br>&nbsp;&nbsp;//&nbsp;detected&nbsp;devices&nbsp;page.<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;IDD_DYNAWIZ_INSTALLDETECTEDDEVS_PAGE&nbsp;=&nbsp;10011;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDD_DYNAWIZ_INSTALLDETECTEDDEVS_PAGE}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Resource&nbsp;ID&nbsp;of&nbsp;the&nbsp;hardware&nbsp;install&nbsp;wizard's&nbsp;select&nbsp;class&nbsp;page.<br>&nbsp;&nbsp;//&nbsp;This&nbsp;ID&nbsp;can&nbsp;be&nbsp;use&nbsp;to&nbsp;go&nbsp;directly&nbsp;to&nbsp;the&nbsp;hardware&nbsp;install&nbsp;wizard's&nbsp;select<br>&nbsp;&nbsp;//&nbsp;class&nbsp;page.<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;IDD_DYNAWIZ_SELECTCLASS_PAGE&nbsp;=&nbsp;10012;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDD_DYNAWIZ_SELECTCLASS_PAGE}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;The&nbsp;following&nbsp;class&nbsp;installer-provided&nbsp;wizard&nbsp;page&nbsp;resource&nbsp;IDs&nbsp;are&nbsp;not&nbsp;used<br>&nbsp;&nbsp;//&nbsp;by&nbsp;the&nbsp;Windows&nbsp;NT&nbsp;hardware&nbsp;wizard.<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;IDD_DYNAWIZ_INSTALLDETECTED_PREVPAGE&nbsp;=&nbsp;10006;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDD_DYNAWIZ_INSTALLDETECTED_PREVPAGE}<br>&nbsp;&nbsp;IDD_DYNAWIZ_INSTALLDETECTED_NEXTPAGE&nbsp;=&nbsp;10007;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDD_DYNAWIZ_INSTALLDETECTED_NEXTPAGE}<br>&nbsp;&nbsp;IDD_DYNAWIZ_INSTALLDETECTED_NODEVS&nbsp;=&nbsp;10008;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDD_DYNAWIZ_INSTALLDETECTED_NODEVS}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Structure&nbsp;corresponding&nbsp;to&nbsp;the&nbsp;following&nbsp;DIF_NEWDEVICEWIZARD_*&nbsp;install<br>&nbsp;&nbsp;//&nbsp;functions:<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;DIF_NEWDEVICEWIZARD_PRESELECT<br>&nbsp;&nbsp;//&nbsp;DIF_NEWDEVICEWIZARD_SELECT<br>&nbsp;&nbsp;//&nbsp;DIF_NEWDEVICEWIZARD_PREANALYZE<br>&nbsp;&nbsp;//&nbsp;DIF_NEWDEVICEWIZARD_POSTANALYZE<br>&nbsp;&nbsp;//&nbsp;DIF_NEWDEVICEWIZARD_FINISHINSTALL<br>&nbsp;&nbsp;//<br>type<br>&nbsp;&nbsp;PSPNewDeviceWizardData&nbsp;=&nbsp;^TSPNewDeviceWizardData;<br>&nbsp;&nbsp;SP_NEWDEVICEWIZARD_DATA&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassInstallHeader:&nbsp;TSPClassInstallHeader;<br>&nbsp;&nbsp;&nbsp;&nbsp;Flags:&nbsp;DWORD;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;presently&nbsp;unused--must&nbsp;be&nbsp;zero.<br>&nbsp;&nbsp;&nbsp;&nbsp;DynamicPages:&nbsp;array[0..MAX_INSTALLWIZARD_DYNAPAGES&nbsp;-&nbsp;1]&nbsp;of&nbsp;HPROPSHEETPAGE;<br>&nbsp;&nbsp;&nbsp;&nbsp;NumDynamicPages:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;hwndWizardDlg:&nbsp;HWND;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_NEWDEVICEWIZARD_DATA}<br>&nbsp;&nbsp;TSPNewDeviceWizardData&nbsp;=&nbsp;SP_NEWDEVICEWIZARD_DATA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Structure&nbsp;corresponding&nbsp;to&nbsp;the&nbsp;DIF_TROUBLESHOOTER&nbsp;install&nbsp;function<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;PSPTroubleShooterParamsA&nbsp;=&nbsp;^TSPTroubleShooterParamsA;<br>&nbsp;&nbsp;PSPTroubleShooterParamsW&nbsp;=&nbsp;^TSPTroubleShooterParamsW;<br>&nbsp;&nbsp;PSPTroubleShooterParams&nbsp;=&nbsp;PSPTroubleShooterParamsA;<br>&nbsp;&nbsp;SP_TROUBLESHOOTER_PARAMS_A&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassInstallHeader:&nbsp;TSPClassInstallHeader;<br>&nbsp;&nbsp;&nbsp;&nbsp;ChmFile:&nbsp;array[0..MAX_PATH&nbsp;-&nbsp;1]&nbsp;of&nbsp;AnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;HtmlTroubleShooter:&nbsp;array[0..MAX_PATH&nbsp;-&nbsp;1]&nbsp;of&nbsp;AnsiChar;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_TROUBLESHOOTER_PARAMS_A}<br>&nbsp;&nbsp;SP_TROUBLESHOOTER_PARAMS_W&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassInstallHeader:&nbsp;TSPClassInstallHeader;<br>&nbsp;&nbsp;&nbsp;&nbsp;ChmFile:&nbsp;array[0..MAX_PATH&nbsp;-&nbsp;1]&nbsp;of&nbsp;WideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;HtmlTroubleShooter:&nbsp;array[0..MAX_PATH&nbsp;-&nbsp;1]&nbsp;of&nbsp;WideChar;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_TROUBLESHOOTER_PARAMS_W}<br>&nbsp;&nbsp;TSPTroubleShooterParamsA&nbsp;=&nbsp;SP_TROUBLESHOOTER_PARAMS_A;<br>&nbsp;&nbsp;TSPTroubleShooterParamsW&nbsp;=&nbsp;SP_TROUBLESHOOTER_PARAMS_W;<br>&nbsp;&nbsp;TSPTroubleShooterParams&nbsp;=&nbsp;TSPTroubleShooterParamsA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Structure&nbsp;corresponding&nbsp;to&nbsp;the&nbsp;DIF_POWERMESSAGEWAKE&nbsp;install&nbsp;function<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;PSPPowerMessageWakeParamsA&nbsp;=&nbsp;^TSPPowerMessageWakeParamsA;<br>&nbsp;&nbsp;PSPPowerMessageWakeParamsW&nbsp;=&nbsp;^TSPPowerMessageWakeParamsW;<br>&nbsp;&nbsp;PSPPowerMessageWakeParams&nbsp;=&nbsp;PSPPowerMessageWakeParamsA;<br>&nbsp;&nbsp;SP_POWERMESSAGEWAKE_PARAMS_A&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassInstallHeader:&nbsp;TSPClassInstallHeader;<br>&nbsp;&nbsp;&nbsp;&nbsp;PowerMessageWake:&nbsp;array[0..(LINE_LEN&nbsp;*&nbsp;2)&nbsp;-&nbsp;1]&nbsp;of&nbsp;AnsiChar;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_POWERMESSAGEWAKE_PARAMS_A}<br>&nbsp;&nbsp;SP_POWERMESSAGEWAKE_PARAMS_W&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassInstallHeader:&nbsp;TSPClassInstallHeader;<br>&nbsp;&nbsp;&nbsp;&nbsp;PowerMessageWake:&nbsp;array[0..(LINE_LEN&nbsp;*&nbsp;2)&nbsp;-&nbsp;1]&nbsp;of&nbsp;WideChar;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_POWERMESSAGEWAKE_PARAMS_W}<br>&nbsp;&nbsp;TSPPowerMessageWakeParamsA&nbsp;=&nbsp;SP_POWERMESSAGEWAKE_PARAMS_A;<br>&nbsp;&nbsp;TSPPowerMessageWakeParamsW&nbsp;=&nbsp;SP_POWERMESSAGEWAKE_PARAMS_W;<br>&nbsp;&nbsp;TSPPowerMessageWakeParams&nbsp;=&nbsp;TSPPowerMessageWakeParamsA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Driver&nbsp;information&nbsp;structure&nbsp;(member&nbsp;of&nbsp;a&nbsp;driver&nbsp;info&nbsp;list&nbsp;that&nbsp;may&nbsp;be&nbsp;associated<br>&nbsp;&nbsp;//&nbsp;with&nbsp;a&nbsp;particular&nbsp;device&nbsp;instance,&nbsp;or&nbsp;(globally)&nbsp;with&nbsp;a&nbsp;device&nbsp;information&nbsp;set)<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;PSPDrvInfoDataV2A&nbsp;=&nbsp;^TSPDrvInfoDataV2A;<br>&nbsp;&nbsp;PSPDrvInfoDataV2W&nbsp;=&nbsp;^TSPDrvInfoDataV2W;<br>&nbsp;&nbsp;PSPDrvInfoDataV2&nbsp;=&nbsp;PSPDrvInfoDataV2A;<br>&nbsp;&nbsp;SP_DRVINFO_DATA_V2_A&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;cbSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;DriverType:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;ULONG_PTR;<br>&nbsp;&nbsp;&nbsp;&nbsp;Description:&nbsp;array[0..LINE_LEN&nbsp;-&nbsp;1]&nbsp;of&nbsp;AnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;MfgName:&nbsp;array[0..LINE_LEN&nbsp;-&nbsp;1]&nbsp;of&nbsp;AnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;ProviderName:&nbsp;array[0..LINE_LEN&nbsp;-&nbsp;1]&nbsp;of&nbsp;AnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;DriverDate:&nbsp;TFileTime;<br>&nbsp;&nbsp;&nbsp;&nbsp;DriverVersion:&nbsp;Int64;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_DRVINFO_DATA_V2_A}<br>&nbsp;&nbsp;SP_DRVINFO_DATA_V2_W&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;cbSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;DriverType:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;ULONG_PTR;<br>&nbsp;&nbsp;&nbsp;&nbsp;Description:&nbsp;array[0..LINE_LEN&nbsp;-&nbsp;1]&nbsp;of&nbsp;WideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;MfgName:&nbsp;array[0..LINE_LEN&nbsp;-&nbsp;1]&nbsp;of&nbsp;WideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;ProviderName:&nbsp;array[0..LINE_LEN&nbsp;-&nbsp;1]&nbsp;of&nbsp;WideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;DriverDate:&nbsp;TFileTime;<br>&nbsp;&nbsp;&nbsp;&nbsp;DriverVersion:&nbsp;Int64;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_DRVINFO_DATA_V2_W}<br>&nbsp;&nbsp;TSPDrvInfoDataV2A&nbsp;=&nbsp;SP_DRVINFO_DATA_V2_A;<br>&nbsp;&nbsp;TSPDrvInfoDataV2W&nbsp;=&nbsp;SP_DRVINFO_DATA_V2_W;<br>&nbsp;&nbsp;TSPDrvInfoDataV2&nbsp;=&nbsp;TSPDrvInfoDataV2A;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Version&nbsp;1&nbsp;of&nbsp;the&nbsp;SP_DRVINFO_DATA&nbsp;structures,&nbsp;used&nbsp;only&nbsp;for&nbsp;compatibility<br>&nbsp;&nbsp;//&nbsp;with&nbsp;Windows&nbsp;NT&nbsp;4.0/Windows&nbsp;95/98&nbsp;SETUPAPI.DLL<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;PSPDrvInfoDataV1A&nbsp;=&nbsp;^TSPDrvInfoDataV1A;<br>&nbsp;&nbsp;PSPDrvInfoDataV1W&nbsp;=&nbsp;^TSPDrvInfoDataV1W;<br>&nbsp;&nbsp;PSPDrvInfoDataV1&nbsp;=&nbsp;PSPDrvInfoDataV1A;<br>&nbsp;&nbsp;SP_DRVINFO_DATA_V1_A&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;cbSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;DriverType:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;ULONG_PTR;<br>&nbsp;&nbsp;&nbsp;&nbsp;Description:&nbsp;array[0..LINE_LEN&nbsp;-&nbsp;1]&nbsp;of&nbsp;AnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;MfgName:&nbsp;array[0..LINE_LEN&nbsp;-&nbsp;1]&nbsp;of&nbsp;AnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;ProviderName:&nbsp;array[0..LINE_LEN&nbsp;-&nbsp;1]&nbsp;of&nbsp;AnsiChar;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_DRVINFO_DATA_V1_A}<br>&nbsp;&nbsp;SP_DRVINFO_DATA_V1_W&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;cbSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;DriverType:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;ULONG_PTR;<br>&nbsp;&nbsp;&nbsp;&nbsp;Description:&nbsp;array[0..LINE_LEN&nbsp;-&nbsp;1]&nbsp;of&nbsp;WideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;MfgName:&nbsp;array[0..LINE_LEN&nbsp;-&nbsp;1]&nbsp;of&nbsp;WideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;ProviderName:&nbsp;array[0..LINE_LEN&nbsp;-&nbsp;1]&nbsp;of&nbsp;WideChar;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_DRVINFO_DATA_V1_W}<br>&nbsp;&nbsp;TSPDrvInfoDataV1A&nbsp;=&nbsp;SP_DRVINFO_DATA_V1_A;<br>&nbsp;&nbsp;TSPDrvInfoDataV1W&nbsp;=&nbsp;SP_DRVINFO_DATA_V1_W;<br>&nbsp;&nbsp;TSPDrvInfoDataV1&nbsp;=&nbsp;TSPDrvInfoDataV1A;<br><br>&nbsp;&nbsp;{$IFDEF&nbsp;USE_SP_DRVINFO_DATA_V1}<br>&nbsp;&nbsp;TSPDrvInfoDataA&nbsp;=&nbsp;TSPDrvInfoDataV1A;<br>&nbsp;&nbsp;TSPDrvInfoDataW&nbsp;=&nbsp;TSPDrvInfoDataV1W;<br>&nbsp;&nbsp;TSPDrvInfoData&nbsp;=&nbsp;TSPDrvInfoDataA;<br>&nbsp;&nbsp;PSPDrvInfoDataA&nbsp;=&nbsp;PSPDrvInfoDataV1A;<br>&nbsp;&nbsp;PSPDrvInfoDataW&nbsp;=&nbsp;PSPDrvInfoDataV1W;<br>&nbsp;&nbsp;PSPDrvInfoData&nbsp;=&nbsp;PSPDrvInfoDataA;<br>&nbsp;&nbsp;{$ELSE}<br>&nbsp;&nbsp;TSPDrvInfoDataA&nbsp;=&nbsp;TSPDrvInfoDataV2A;<br>&nbsp;&nbsp;TSPDrvInfoDataW&nbsp;=&nbsp;TSPDrvInfoDataV2W;<br>&nbsp;&nbsp;TSPDrvInfoData&nbsp;=&nbsp;TSPDrvInfoDataA;<br>&nbsp;&nbsp;PSPDrvInfoDataA&nbsp;=&nbsp;PSPDrvInfoDataV2A;<br>&nbsp;&nbsp;PSPDrvInfoDataW&nbsp;=&nbsp;PSPDrvInfoDataV2W;<br>&nbsp;&nbsp;PSPDrvInfoData&nbsp;=&nbsp;PSPDrvInfoDataA;<br>&nbsp;&nbsp;{$ENDIF}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Driver&nbsp;information&nbsp;details&nbsp;structure&nbsp;(provides&nbsp;detailed&nbsp;information&nbsp;about&nbsp;a<br>&nbsp;&nbsp;//&nbsp;particular&nbsp;driver&nbsp;information&nbsp;structure)<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;PSPDrvInfoDetailDataA&nbsp;=&nbsp;^TSPDrvInfoDetailDataA;<br>&nbsp;&nbsp;PSPDrvInfoDetailDataW&nbsp;=&nbsp;^TSPDrvInfoDetailDataW;<br>&nbsp;&nbsp;PSPDrvInfoDetailData&nbsp;=&nbsp;PSPDrvInfoDetailDataA;<br>&nbsp;&nbsp;SP_DRVINFO_DETAIL_DATA_A&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;cbSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;InfDate:&nbsp;TFileTime;<br>&nbsp;&nbsp;&nbsp;&nbsp;CompatIDsOffset:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;CompatIDsLength:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;ULONG_PTR;<br>&nbsp;&nbsp;&nbsp;&nbsp;SectionName:&nbsp;array[0..LINE_LEN&nbsp;-&nbsp;1]&nbsp;of&nbsp;AnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;InfFileName:&nbsp;array[0..MAX_PATH&nbsp;-&nbsp;1]&nbsp;of&nbsp;AnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;DrvDescription:&nbsp;array[0..LINE_LEN&nbsp;-&nbsp;1]&nbsp;of&nbsp;AnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;HardwareID:&nbsp;array[0..ANYSIZE_ARRAY&nbsp;-&nbsp;1]&nbsp;of&nbsp;AnsiChar;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_DRVINFO_DETAIL_DATA_A}<br>&nbsp;&nbsp;SP_DRVINFO_DETAIL_DATA_W&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;cbSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;InfDate:&nbsp;TFileTime;<br>&nbsp;&nbsp;&nbsp;&nbsp;CompatIDsOffset:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;CompatIDsLength:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;ULONG_PTR;<br>&nbsp;&nbsp;&nbsp;&nbsp;SectionName:&nbsp;array[0..LINE_LEN&nbsp;-&nbsp;1]&nbsp;of&nbsp;WideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;InfFileName:&nbsp;array[0..MAX_PATH&nbsp;-&nbsp;1]&nbsp;of&nbsp;WideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;DrvDescription:&nbsp;array[0..LINE_LEN&nbsp;-&nbsp;1]&nbsp;of&nbsp;WideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;HardwareID:&nbsp;array[0..ANYSIZE_ARRAY&nbsp;-&nbsp;1]&nbsp;of&nbsp;WideChar;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_DRVINFO_DETAIL_DATA_W}<br>&nbsp;&nbsp;TSPDrvInfoDetailDataA&nbsp;=&nbsp;SP_DRVINFO_DETAIL_DATA_A;<br>&nbsp;&nbsp;TSPDrvInfoDetailDataW&nbsp;=&nbsp;SP_DRVINFO_DETAIL_DATA_W;<br>&nbsp;&nbsp;TSPDrvInfoDetailData&nbsp;=&nbsp;TSPDrvInfoDetailDataA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Driver&nbsp;installation&nbsp;parameters&nbsp;(associated&nbsp;with&nbsp;a&nbsp;particular&nbsp;driver<br>&nbsp;&nbsp;//&nbsp;information&nbsp;element)<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;PSPDrvInstallParams&nbsp;=&nbsp;^TSPDrvInstallParams;<br>&nbsp;&nbsp;SP_DRVINSTALL_PARAMS&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;cbSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;Rank:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;Flags:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;PrivateData:&nbsp;DWORD_PTR;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;DWORD;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_DRVINSTALL_PARAMS}<br>&nbsp;&nbsp;TSPDrvInstallParams&nbsp;=&nbsp;SP_DRVINSTALL_PARAMS;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;SP_DRVINSTALL_PARAMS.Flags&nbsp;values<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;DNF_DUPDESC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000001;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Multiple&nbsp;providers&nbsp;have&nbsp;same&nbsp;desc<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DNF_DUPDESC}<br>&nbsp;&nbsp;DNF_OLDDRIVER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000002;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Driver&nbsp;node&nbsp;specifies&nbsp;old/current&nbsp;driver<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DNF_OLDDRIVER}<br>&nbsp;&nbsp;DNF_EXCLUDEFROMLIST&nbsp;=&nbsp;$00000004;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;If&nbsp;set,&nbsp;this&nbsp;driver&nbsp;node&nbsp;will&nbsp;not&nbsp;be<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DNF_EXCLUDEFROMLIST}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;displayed&nbsp;in&nbsp;any&nbsp;driver&nbsp;select&nbsp;dialogs.<br>&nbsp;&nbsp;DNF_NODRIVER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000008;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;if&nbsp;we&nbsp;want&nbsp;to&nbsp;install&nbsp;no&nbsp;driver<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DNF_NODRIVER}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;(e.g&nbsp;no&nbsp;mouse&nbsp;drv)<br>&nbsp;&nbsp;DNF_LEGACYINF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000010;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;this&nbsp;driver&nbsp;node&nbsp;comes&nbsp;from&nbsp;an&nbsp;old-style&nbsp;INF<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DNF_LEGACYINF}<br>&nbsp;&nbsp;DNF_CLASS_DRIVER&nbsp;&nbsp;=&nbsp;$00000020;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Driver&nbsp;node&nbsp;represents&nbsp;a&nbsp;class&nbsp;driver<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DNF_CLASS_DRIVER}<br>&nbsp;&nbsp;DNF_COMPATIBLE_DRIVER&nbsp;=&nbsp;$00000040;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Driver&nbsp;node&nbsp;represents&nbsp;a&nbsp;compatible&nbsp;driver<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DNF_COMPATIBLE_DRIVER}<br>&nbsp;&nbsp;DNF_INET_DRIVER&nbsp;&nbsp;&nbsp;=&nbsp;$00000080;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Driver&nbsp;comes&nbsp;from&nbsp;an&nbsp;internet&nbsp;source<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DNF_INET_DRIVER}<br>&nbsp;&nbsp;DNF_UNUSED1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000100;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DNF_UNUSED1}<br>&nbsp;&nbsp;DNF_INDEXED_DRIVER&nbsp;=&nbsp;$00000200;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Driver&nbsp;is&nbsp;contained&nbsp;in&nbsp;the&nbsp;Windows&nbsp;Driver&nbsp;Index<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DNF_INDEXED_DRIVER}<br>&nbsp;&nbsp;DNF_OLD_INET_DRIVER&nbsp;=&nbsp;$00000400;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Driver&nbsp;came&nbsp;from&nbsp;the&nbsp;Internet,&nbsp;but&nbsp;we&nbsp;don't&nbsp;currently<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DNF_OLD_INET_DRIVER}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;have&nbsp;access&nbsp;to&nbsp;it's&nbsp;source&nbsp;files.&nbsp;Never&nbsp;attempt&nbsp;to<br>&nbsp;&nbsp;//&nbsp;install&nbsp;a&nbsp;driver&nbsp;with&nbsp;this&nbsp;flag!<br>&nbsp;&nbsp;DNF_BAD_DRIVER&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000800;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Driver&nbsp;node&nbsp;should&nbsp;not&nbsp;be&nbsp;used&nbsp;at&nbsp;all<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DNF_BAD_DRIVER}<br>&nbsp;&nbsp;DNF_DUPPROVIDER&nbsp;&nbsp;&nbsp;=&nbsp;$00001000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Multiple&nbsp;drivers&nbsp;have&nbsp;the&nbsp;same&nbsp;provider&nbsp;and&nbsp;desc<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DNF_DUPPROVIDER}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//Rank&nbsp;values&nbsp;(the&nbsp;lower&nbsp;the&nbsp;Rank&nbsp;number,&nbsp;the&nbsp;better&nbsp;the&nbsp;Rank)<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;DRIVER_HARDWAREID_RANK&nbsp;=&nbsp;$00000FFF;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Any&nbsp;rank&nbsp;less&nbsp;than&nbsp;or&nbsp;equal&nbsp;to<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DRIVER_HARDWAREID_RANK}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;this&nbsp;value&nbsp;is&nbsp;a&nbsp;HardwareID&nbsp;match<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Setup&nbsp;callback&nbsp;routine&nbsp;for&nbsp;comparing&nbsp;detection&nbsp;signatures<br>&nbsp;&nbsp;//<br>type<br>&nbsp;&nbsp;TSPDetsigCmpProc&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;&nbsp;NewDeviceData,<br>&nbsp;&nbsp;&nbsp;&nbsp;ExistingDeviceData:&nbsp;PSPDevInfoData;&nbsp;CompareContext:&nbsp;Pointer):&nbsp;DWORD;&nbsp;stdcall;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Define&nbsp;context&nbsp;structure&nbsp;handed&nbsp;to&nbsp;co-installers<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;PCoInstallerContextData&nbsp;=&nbsp;^TCoInstallerContextData;<br>&nbsp;&nbsp;COINSTALLER_CONTEXT_DATA&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;PostProcessing:&nbsp;BOOL;<br>&nbsp;&nbsp;&nbsp;&nbsp;InstallResult:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;PrivateData:&nbsp;Pointer;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;COINSTALLER_CONTEXT_DATA}<br>&nbsp;&nbsp;TCoInstallerContextData&nbsp;=&nbsp;COINSTALLER_CONTEXT_DATA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Structure&nbsp;containing&nbsp;class&nbsp;image&nbsp;list&nbsp;information.<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;PSPClassImageListData&nbsp;=&nbsp;^TSPClassImageListData;<br>&nbsp;&nbsp;SP_CLASSIMAGELIST_DATA&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;cbSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;ImageList:&nbsp;HIMAGELIST;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;ULONG_PTR;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_CLASSIMAGELIST_DATA}<br>&nbsp;&nbsp;TSPClassImageListData&nbsp;=&nbsp;SP_CLASSIMAGELIST_DATA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Structure&nbsp;to&nbsp;be&nbsp;passed&nbsp;as&nbsp;first&nbsp;parameter&nbsp;(LPVOID&nbsp;lpv)&nbsp;to&nbsp;ExtensionPropSheetPageProc<br>&nbsp;&nbsp;//&nbsp;entry&nbsp;point&nbsp;in&nbsp;setupapi.dll&nbsp;or&nbsp;to&nbsp;&quot;EnumPropPages32&quot;&nbsp;or&nbsp;&quot;BasicProperties32&quot;&nbsp;entry<br>&nbsp;&nbsp;//&nbsp;points&nbsp;provided&nbsp;by&nbsp;class/device&nbsp;property&nbsp;page&nbsp;providers.&nbsp;Used&nbsp;to&nbsp;retrieve&nbsp;a&nbsp;handle<br>&nbsp;&nbsp;//&nbsp;(or,&nbsp;potentially,&nbsp;multiple&nbsp;handles)&nbsp;to&nbsp;property&nbsp;pages&nbsp;for&nbsp;a&nbsp;specified&nbsp;property&nbsp;page&nbsp;type.<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;PSPPropSheetPageRequest&nbsp;=&nbsp;^TSPPropSheetPageRequest;<br>&nbsp;&nbsp;SP_PROPSHEETPAGE_REQUEST&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;cbSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;PageRequested:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_PROPSHEETPAGE_REQUEST}<br>&nbsp;&nbsp;TSPPropSheetPageRequest&nbsp;=&nbsp;SP_PROPSHEETPAGE_REQUEST;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Property&nbsp;sheet&nbsp;codes&nbsp;used&nbsp;in&nbsp;SP_PROPSHEETPAGE_REQUEST.PageRequested<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;SPPSR_SELECT_DEVICE_RESOURCES&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;supplied&nbsp;by&nbsp;setupapi.dll<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPPSR_SELECT_DEVICE_RESOURCES}<br>&nbsp;&nbsp;SPPSR_ENUM_BASIC_DEVICE_PROPERTIES&nbsp;=&nbsp;2;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;supplied&nbsp;by&nbsp;device's&nbsp;BasicProperties32&nbsp;provider<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPPSR_ENUM_BASIC_DEVICE_PROPERTIES}<br>&nbsp;&nbsp;SPPSR_ENUM_ADV_DEVICE_PROPERTIES&nbsp;=&nbsp;3;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;supplied&nbsp;by&nbsp;class&nbsp;and/or&nbsp;device's&nbsp;EnumPropPages32&nbsp;provider<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPPSR_ENUM_ADV_DEVICE_PROPERTIES}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Structure&nbsp;used&nbsp;with&nbsp;SetupGetBackupQueue<br>&nbsp;&nbsp;//<br>type<br>&nbsp;&nbsp;PSPBackupQueueParamsA&nbsp;=&nbsp;^TSPBackupQueueParamsA;<br>&nbsp;&nbsp;PSPBackupQueueParamsW&nbsp;=&nbsp;^TSPBackupQueueParamsW;<br>&nbsp;&nbsp;PSPBackupQueueParams&nbsp;=&nbsp;PSPBackupQueueParamsA;<br>&nbsp;&nbsp;SP_BACKUP_QUEUE_PARAMS_A&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;cbSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;FullInfPath:&nbsp;array[0..MAX_PATH&nbsp;-&nbsp;1]&nbsp;of&nbsp;AnsiChar;&nbsp;//&nbsp;buffer&nbsp;to&nbsp;hold&nbsp;ANSI&nbsp;pathname&nbsp;of&nbsp;INF&nbsp;file<br>&nbsp;&nbsp;&nbsp;&nbsp;FilenameOffset:&nbsp;Integer;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;offset&nbsp;in&nbsp;CHAR's&nbsp;of&nbsp;filename&nbsp;part&nbsp;(after&nbsp;'/')<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_BACKUP_QUEUE_PARAMS_A}<br>&nbsp;&nbsp;SP_BACKUP_QUEUE_PARAMS_W&nbsp;=&nbsp;packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;cbSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;FullInfPath:&nbsp;array[0..MAX_PATH&nbsp;-&nbsp;1]&nbsp;of&nbsp;WideChar;&nbsp;//&nbsp;buffer&nbsp;to&nbsp;hold&nbsp;ANSI&nbsp;pathname&nbsp;of&nbsp;INF&nbsp;file<br>&nbsp;&nbsp;&nbsp;&nbsp;FilenameOffset:&nbsp;Integer;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;offset&nbsp;in&nbsp;CHAR's&nbsp;of&nbsp;filename&nbsp;part&nbsp;(after&nbsp;'/')<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_BACKUP_QUEUE_PARAMS_W}<br>&nbsp;&nbsp;TSPBackupQueueParamsA&nbsp;=&nbsp;SP_BACKUP_QUEUE_PARAMS_A;<br>&nbsp;&nbsp;TSPBackupQueueParamsW&nbsp;=&nbsp;SP_BACKUP_QUEUE_PARAMS_W;<br>&nbsp;&nbsp;TSPBackupQueueParams&nbsp;=&nbsp;TSPBackupQueueParamsA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Setupapi-specific&nbsp;error&nbsp;codes<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Inf&nbsp;parse&nbsp;outcomes<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;APPLICATION_ERROR_MASK&nbsp;=&nbsp;DWORD($20000000);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;from&nbsp;WINNT.h<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;APPLICATION_ERROR_MASK}<br>&nbsp;&nbsp;ERROR_SEVERITY_ERROR&nbsp;=&nbsp;DWORD($C0000000);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;from&nbsp;WINNT.h<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_SEVERITY_ERROR}<br><br>&nbsp;&nbsp;ERROR_EXPECTED_SECTION_NAME&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;0);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_EXPECTED_SECTION_NAME}<br>&nbsp;&nbsp;ERROR_BAD_SECTION_NAME_LINE&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;1);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_BAD_SECTION_NAME_LINE}<br>&nbsp;&nbsp;ERROR_SECTION_NAME_TOO_LONG&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;2);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_SECTION_NAME_TOO_LONG}<br>&nbsp;&nbsp;ERROR_GENERAL_SYNTAX&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;3);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_GENERAL_SYNTAX}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Inf&nbsp;runtime&nbsp;errors<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;ERROR_WRONG_INF_STYLE&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$100);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_WRONG_INF_STYLE}<br>&nbsp;&nbsp;ERROR_SECTION_NOT_FOUND&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$101);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_SECTION_NOT_FOUND}<br>&nbsp;&nbsp;ERROR_LINE_NOT_FOUND&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$102);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_LINE_NOT_FOUND}<br>&nbsp;&nbsp;ERROR_NO_BACKUP&nbsp;&nbsp;&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$103);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_NO_BACKUP}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Device&nbsp;Installer/other&nbsp;errors<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;ERROR_NO_ASSOCIATED_CLASS&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$200);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_NO_ASSOCIATED_CLASS}<br>&nbsp;&nbsp;ERROR_CLASS_MISMATCH&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$201);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_CLASS_MISMATCH}<br>&nbsp;&nbsp;ERROR_DUPLICATE_FOUND&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$202);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_DUPLICATE_FOUND}<br>&nbsp;&nbsp;ERROR_NO_DRIVER_SELECTED&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$203);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_NO_DRIVER_SELECTED}<br>&nbsp;&nbsp;ERROR_KEY_DOES_NOT_EXIST&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$204);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_KEY_DOES_NOT_EXIST}<br>&nbsp;&nbsp;ERROR_INVALID_DEVINST_NAME&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$205);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_INVALID_DEVINST_NAME}<br>&nbsp;&nbsp;ERROR_INVALID_CLASS&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$206);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_INVALID_CLASS}<br>&nbsp;&nbsp;ERROR_DEVINST_ALREADY_EXISTS&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$207);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_DEVINST_ALREADY_EXISTS}<br>&nbsp;&nbsp;ERROR_DEVINFO_NOT_REGISTERED&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$208);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_DEVINFO_NOT_REGISTERED}<br>&nbsp;&nbsp;ERROR_INVALID_REG_PROPERTY&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$209);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_INVALID_REG_PROPERTY}<br>&nbsp;&nbsp;ERROR_NO_INF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$20A);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_NO_INF}<br>&nbsp;&nbsp;ERROR_NO_SUCH_DEVINST&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$20B);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_NO_SUCH_DEVINST}<br>&nbsp;&nbsp;ERROR_CANT_LOAD_CLASS_ICON&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$20C);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_CANT_LOAD_CLASS_ICON}<br>&nbsp;&nbsp;ERROR_INVALID_CLASS_INSTALLER&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$20D);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_INVALID_CLASS_INSTALLER}<br>&nbsp;&nbsp;ERROR_DI_DO_DEFAULT&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$20E);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_DI_DO_DEFAULT}<br>&nbsp;&nbsp;ERROR_DI_NOFILECOPY&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$20F);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_DI_NOFILECOPY}<br>&nbsp;&nbsp;ERROR_INVALID_HWPROFILE&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$210);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_INVALID_HWPROFILE}<br>&nbsp;&nbsp;ERROR_NO_DEVICE_SELECTED&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$211);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_NO_DEVICE_SELECTED}<br>&nbsp;&nbsp;ERROR_DEVINFO_LIST_LOCKED&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$212);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_DEVINFO_LIST_LOCKED}<br>&nbsp;&nbsp;ERROR_DEVINFO_DATA_LOCKED&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$213);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_DEVINFO_DATA_LOCKED}<br>&nbsp;&nbsp;ERROR_DI_BAD_PATH&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$214);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_DI_BAD_PATH}<br>&nbsp;&nbsp;ERROR_NO_CLASSINSTALL_PARAMS&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$215);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_NO_CLASSINSTALL_PARAMS}<br>&nbsp;&nbsp;ERROR_FILEQUEUE_LOCKED&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$216);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_FILEQUEUE_LOCKED}<br>&nbsp;&nbsp;ERROR_BAD_SERVICE_INSTALLSECT&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$217);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_BAD_SERVICE_INSTALLSECT}<br>&nbsp;&nbsp;ERROR_NO_CLASS_DRIVER_LIST&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$218);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_NO_CLASS_DRIVER_LIST}<br>&nbsp;&nbsp;ERROR_NO_ASSOCIATED_SERVICE&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$219);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_NO_ASSOCIATED_SERVICE}<br>&nbsp;&nbsp;ERROR_NO_DEFAULT_DEVICE_INTERFACE&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$21A);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_NO_DEFAULT_DEVICE_INTERFACE}<br>&nbsp;&nbsp;ERROR_DEVICE_INTERFACE_ACTIVE&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$21B);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_DEVICE_INTERFACE_ACTIVE}<br>&nbsp;&nbsp;ERROR_DEVICE_INTERFACE_REMOVED&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$21C);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_DEVICE_INTERFACE_REMOVED}<br>&nbsp;&nbsp;ERROR_BAD_INTERFACE_INSTALLSECT&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$21D);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_BAD_INTERFACE_INSTALLSECT}<br>&nbsp;&nbsp;ERROR_NO_SUCH_INTERFACE_CLASS&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$21E);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_NO_SUCH_INTERFACE_CLASS}<br>&nbsp;&nbsp;ERROR_INVALID_REFERENCE_STRING&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$21F);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_INVALID_REFERENCE_STRING}<br>&nbsp;&nbsp;ERROR_INVALID_MACHINENAME&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$220);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_INVALID_MACHINENAME}<br>&nbsp;&nbsp;ERROR_REMOTE_COMM_FAILURE&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$221);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_REMOTE_COMM_FAILURE}<br>&nbsp;&nbsp;ERROR_MACHINE_UNAVAILABLE&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$222);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_MACHINE_UNAVAILABLE}<br>&nbsp;&nbsp;ERROR_NO_CONFIGMGR_SERVICES&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$223);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_NO_CONFIGMGR_SERVICES}<br>&nbsp;&nbsp;ERROR_INVALID_PROPPAGE_PROVIDER&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$224);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_INVALID_PROPPAGE_PROVIDER}<br>&nbsp;&nbsp;ERROR_NO_SUCH_DEVICE_INTERFACE&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$225);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_NO_SUCH_DEVICE_INTERFACE}<br>&nbsp;&nbsp;ERROR_DI_POSTPROCESSING_REQUIRED&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$226);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_DI_POSTPROCESSING_REQUIRED}<br>&nbsp;&nbsp;ERROR_INVALID_COINSTALLER&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$227);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_INVALID_COINSTALLER}<br>&nbsp;&nbsp;ERROR_NO_COMPAT_DRIVERS&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$228);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_NO_COMPAT_DRIVERS}<br>&nbsp;&nbsp;ERROR_NO_DEVICE_ICON&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$229);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_NO_DEVICE_ICON}<br>&nbsp;&nbsp;ERROR_INVALID_INF_LOGCONFIG&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$22A);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_INVALID_INF_LOGCONFIG}<br>&nbsp;&nbsp;ERROR_DI_DONT_INSTALL&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$22B);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_DI_DONT_INSTALL}<br>&nbsp;&nbsp;ERROR_INVALID_FILTER_DRIVER&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$22C);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_INVALID_FILTER_DRIVER}<br>&nbsp;&nbsp;ERROR_NON_WINDOWS_NT_DRIVER&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$22D);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_NON_WINDOWS_NT_DRIVER}<br>&nbsp;&nbsp;ERROR_NON_WINDOWS_DRIVER&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$22E);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_NON_WINDOWS_DRIVER}<br>&nbsp;&nbsp;ERROR_NO_CATALOG_FOR_OEM_INF&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$22F);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_NO_CATALOG_FOR_OEM_INF}<br>&nbsp;&nbsp;ERROR_DEVINSTALL_QUEUE_NONNATIVE&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$230);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_DEVINSTALL_QUEUE_NONNATIVE}<br>&nbsp;&nbsp;ERROR_NOT_DISABLEABLE&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$231);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_NOT_DISABLEABLE}<br>&nbsp;&nbsp;ERROR_CANT_REMOVE_DEVINST&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$232);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_CANT_REMOVE_DEVINST}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Backward&nbsp;compatibility--do&nbsp;not&nbsp;use.<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;ERROR_NO_DEFAULT_INTERFACE_DEVICE&nbsp;=&nbsp;ERROR_NO_DEFAULT_DEVICE_INTERFACE;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_NO_DEFAULT_INTERFACE_DEVICE}<br>&nbsp;&nbsp;ERROR_INTERFACE_DEVICE_ACTIVE&nbsp;=&nbsp;ERROR_DEVICE_INTERFACE_ACTIVE;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_INTERFACE_DEVICE_ACTIVE}<br>&nbsp;&nbsp;ERROR_INTERFACE_DEVICE_REMOVED&nbsp;=&nbsp;ERROR_DEVICE_INTERFACE_REMOVED;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_INTERFACE_DEVICE_REMOVED}<br>&nbsp;&nbsp;ERROR_NO_SUCH_INTERFACE_DEVICE&nbsp;=&nbsp;ERROR_NO_SUCH_DEVICE_INTERFACE;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_NO_SUCH_INTERFACE_DEVICE}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Win9x&nbsp;migration&nbsp;DLL&nbsp;error&nbsp;code<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;ERROR_NOT_INSTALLED&nbsp;=&nbsp;DWORD(APPLICATION_ERROR_MASK&nbsp;or&nbsp;ERROR_SEVERITY_ERROR&nbsp;or&nbsp;$1000);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;ERROR_NOT_INSTALLED}<br><br>&nbsp;&nbsp;//&nbsp;(rom)&nbsp;moved&nbsp;may&nbsp;consts&nbsp;here&nbsp;to&nbsp;allow&nbsp;for&nbsp;dynamic&nbsp;linking<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;SearchControl&nbsp;flags&nbsp;for&nbsp;SetupGetInfInformation<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;INFINFO_INF_SPEC_IS_HINF&nbsp;=&nbsp;1;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;INFINFO_INF_SPEC_IS_HINF}<br>&nbsp;&nbsp;INFINFO_INF_NAME_IS_ABSOLUTE&nbsp;=&nbsp;2;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;INFINFO_INF_NAME_IS_ABSOLUTE}<br>&nbsp;&nbsp;INFINFO_DEFAULT_SEARCH&nbsp;=&nbsp;3;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;INFINFO_DEFAULT_SEARCH}<br>&nbsp;&nbsp;INFINFO_REVERSE_DEFAULT_SEARCH&nbsp;=&nbsp;4;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;INFINFO_REVERSE_DEFAULT_SEARCH}<br>&nbsp;&nbsp;INFINFO_INF_PATH_LIST_SEARCH&nbsp;=&nbsp;5;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;INFINFO_INF_PATH_LIST_SEARCH}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Compression&nbsp;types<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;FILE_COMPRESSION_NONE&nbsp;=&nbsp;0;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FILE_COMPRESSION_NONE}<br>&nbsp;&nbsp;FILE_COMPRESSION_WINLZA&nbsp;=&nbsp;1;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FILE_COMPRESSION_WINLZA}<br>&nbsp;&nbsp;FILE_COMPRESSION_MSZIP&nbsp;=&nbsp;2;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FILE_COMPRESSION_MSZIP}<br>&nbsp;&nbsp;FILE_COMPRESSION_NTCAB&nbsp;=&nbsp;3;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FILE_COMPRESSION_NTCAB}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Define&nbsp;flags&nbsp;for&nbsp;SourceList&nbsp;APIs.<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;SRCLIST_TEMPORARY&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SRCLIST_TEMPORARY}<br>&nbsp;&nbsp;SRCLIST_NOBROWSE&nbsp;&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SRCLIST_NOBROWSE}<br>&nbsp;&nbsp;SRCLIST_SYSTEM&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000010;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SRCLIST_SYSTEM}<br>&nbsp;&nbsp;SRCLIST_USER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000020;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SRCLIST_USER}<br>&nbsp;&nbsp;SRCLIST_SYSIFADMIN&nbsp;=&nbsp;$00000040;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SRCLIST_SYSIFADMIN}<br>&nbsp;&nbsp;SRCLIST_SUBDIRS&nbsp;&nbsp;&nbsp;=&nbsp;$00000100;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SRCLIST_SUBDIRS}<br>&nbsp;&nbsp;SRCLIST_APPEND&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000200;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SRCLIST_APPEND}<br>&nbsp;&nbsp;SRCLIST_NOSTRIPPLATFORM&nbsp;=&nbsp;$00000400;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SRCLIST_NOSTRIPPLATFORM}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Styles&nbsp;for&nbsp;SetupPromptForDisk,&nbsp;SetupCopyError,<br>&nbsp;&nbsp;//&nbsp;SetupRenameError,&nbsp;SetupDeleteError<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;IDF_NOBROWSE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDF_NOBROWSE}<br>&nbsp;&nbsp;IDF_NOSKIP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDF_NOSKIP}<br>&nbsp;&nbsp;IDF_NODETAILS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000004;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDF_NODETAILS}<br>&nbsp;&nbsp;IDF_NOCOMPRESSED&nbsp;&nbsp;=&nbsp;$00000008;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDF_NOCOMPRESSED}<br>&nbsp;&nbsp;IDF_CHECKFIRST&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000100;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDF_CHECKFIRST}<br>&nbsp;&nbsp;IDF_NOBEEP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000200;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDF_NOBEEP}<br>&nbsp;&nbsp;IDF_NOFOREGROUND&nbsp;&nbsp;=&nbsp;$00000400;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDF_NOFOREGROUND}<br>&nbsp;&nbsp;IDF_WARNIFSKIP&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000800;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDF_WARNIFSKIP}<br>&nbsp;&nbsp;IDF_OEMDISK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;DWORD($80000000);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDF_OEMDISK}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Return&nbsp;values&nbsp;for&nbsp;SetupPromptForDisk,&nbsp;SetupCopyError,<br>&nbsp;&nbsp;//&nbsp;SetupRenameError,&nbsp;SetupDeleteError,&nbsp;SetupBackupError<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;DPROMPT_SUCCESS&nbsp;&nbsp;&nbsp;=&nbsp;0;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DPROMPT_SUCCESS}<br>&nbsp;&nbsp;DPROMPT_CANCEL&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;1;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DPROMPT_CANCEL}<br>&nbsp;&nbsp;DPROMPT_SKIPFILE&nbsp;&nbsp;=&nbsp;2;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DPROMPT_SKIPFILE}<br>&nbsp;&nbsp;DPROMPT_BUFFERTOOSMALL&nbsp;=&nbsp;3;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DPROMPT_BUFFERTOOSMALL}<br>&nbsp;&nbsp;DPROMPT_OUTOFMEMORY&nbsp;=&nbsp;4;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DPROMPT_OUTOFMEMORY}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Flags&nbsp;for&nbsp;SetupSetDirectoryIdEx<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;SETDIRID_NOT_FULL_PATH&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SETDIRID_NOT_FULL_PATH}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;InfoDesired&nbsp;values&nbsp;for&nbsp;SetupGetSourceInfo<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;SRCINFO_PATH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;1;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SRCINFO_PATH}<br>&nbsp;&nbsp;SRCINFO_TAGFILE&nbsp;&nbsp;&nbsp;=&nbsp;2;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SRCINFO_TAGFILE}<br>&nbsp;&nbsp;SRCINFO_DESCRIPTION&nbsp;=&nbsp;3;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SRCINFO_DESCRIPTION}<br>&nbsp;&nbsp;SRCINFO_FLAGS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;4;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SRCINFO_FLAGS}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;CopyStyle&nbsp;values&nbsp;for&nbsp;copy&nbsp;and&nbsp;queue-related&nbsp;APIs<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;SP_COPY_DELETESOURCE&nbsp;=&nbsp;$0000001;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;delete&nbsp;source&nbsp;file&nbsp;on&nbsp;successful&nbsp;copy<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_COPY_DELETESOURCE}<br>&nbsp;&nbsp;SP_COPY_REPLACEONLY&nbsp;=&nbsp;$0000002;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;copy&nbsp;only&nbsp;if&nbsp;target&nbsp;file&nbsp;already&nbsp;present<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_COPY_REPLACEONLY}<br>&nbsp;&nbsp;SP_COPY_NEWER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$0000004;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;copy&nbsp;only&nbsp;if&nbsp;source&nbsp;newer&nbsp;than&nbsp;or&nbsp;same&nbsp;as&nbsp;target<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_COPY_NEWER}<br>&nbsp;&nbsp;SP_COPY_NEWER_OR_SAME&nbsp;=&nbsp;SP_COPY_NEWER;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_COPY_NEWER_OR_SAME}<br>&nbsp;&nbsp;SP_COPY_NOOVERWRITE&nbsp;=&nbsp;$0000008;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;copy&nbsp;only&nbsp;if&nbsp;target&nbsp;doesn't&nbsp;exist<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_COPY_NOOVERWRITE}<br>&nbsp;&nbsp;SP_COPY_NODECOMP&nbsp;&nbsp;=&nbsp;$0000010;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;don't&nbsp;decompress&nbsp;source&nbsp;file&nbsp;while&nbsp;copying<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_COPY_NODECOMP}<br>&nbsp;&nbsp;SP_COPY_LANGUAGEAWARE&nbsp;=&nbsp;$0000020;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;don't&nbsp;overwrite&nbsp;file&nbsp;of&nbsp;different&nbsp;language<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_COPY_LANGUAGEAWARE}<br>&nbsp;&nbsp;SP_COPY_SOURCE_ABSOLUTE&nbsp;=&nbsp;$0000040;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;SourceFile&nbsp;is&nbsp;a&nbsp;full&nbsp;source&nbsp;path<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_COPY_SOURCE_ABSOLUTE}<br>&nbsp;&nbsp;SP_COPY_SOURCEPATH_ABSOLUTE&nbsp;=&nbsp;$0000080;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;SourcePathRoot&nbsp;is&nbsp;the&nbsp;full&nbsp;path<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_COPY_SOURCEPATH_ABSOLUTE}<br>&nbsp;&nbsp;SP_COPY_IN_USE_NEEDS_REBOOT&nbsp;=&nbsp;$0000100;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;System&nbsp;needs&nbsp;reboot&nbsp;if&nbsp;file&nbsp;in&nbsp;use<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_COPY_IN_USE_NEEDS_REBOOT}<br>&nbsp;&nbsp;SP_COPY_FORCE_IN_USE&nbsp;=&nbsp;$0000200;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Force&nbsp;target-in-use&nbsp;behavior<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_COPY_FORCE_IN_USE}<br>&nbsp;&nbsp;SP_COPY_NOSKIP&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$0000400;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Skip&nbsp;is&nbsp;disallowed&nbsp;for&nbsp;this&nbsp;file&nbsp;or&nbsp;section<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_COPY_NOSKIP}<br>&nbsp;&nbsp;SP_FLAG_CABINETCONTINUATION&nbsp;=&nbsp;$0000800;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Used&nbsp;with&nbsp;need&nbsp;media&nbsp;notification<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_FLAG_CABINETCONTINUATION}<br>&nbsp;&nbsp;SP_COPY_FORCE_NOOVERWRITE&nbsp;=&nbsp;$0001000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;like&nbsp;NOOVERWRITE&nbsp;but&nbsp;no&nbsp;callback&nbsp;nofitication<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_COPY_FORCE_NOOVERWRITE}<br>&nbsp;&nbsp;SP_COPY_FORCE_NEWER&nbsp;=&nbsp;$0002000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;like&nbsp;NEWER&nbsp;but&nbsp;no&nbsp;callback&nbsp;nofitication<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_COPY_FORCE_NEWER}<br>&nbsp;&nbsp;SP_COPY_WARNIFSKIP&nbsp;=&nbsp;$0004000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;system&nbsp;critical&nbsp;file:&nbsp;warn&nbsp;if&nbsp;user&nbsp;tries&nbsp;to&nbsp;skip<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_COPY_WARNIFSKIP}<br>&nbsp;&nbsp;SP_COPY_NOBROWSE&nbsp;&nbsp;=&nbsp;$0008000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Browsing&nbsp;is&nbsp;disallowed&nbsp;for&nbsp;this&nbsp;file&nbsp;or&nbsp;section<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_COPY_NOBROWSE}<br>&nbsp;&nbsp;SP_COPY_NEWER_ONLY&nbsp;=&nbsp;$0010000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;copy&nbsp;only&nbsp;if&nbsp;source&nbsp;file&nbsp;newer&nbsp;than&nbsp;target<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_COPY_NEWER_ONLY}<br>&nbsp;&nbsp;SP_COPY_SOURCE_SIS_MASTER&nbsp;=&nbsp;$0020000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;source&nbsp;is&nbsp;single-instance&nbsp;store&nbsp;master<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_COPY_SOURCE_SIS_MASTER}<br>&nbsp;&nbsp;SP_COPY_OEMINF_CATALOG_ONLY&nbsp;=&nbsp;$0040000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;(SetupCopyOEMInf&nbsp;only)&nbsp;don't&nbsp;copy&nbsp;INF--just&nbsp;catalog<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_COPY_OEMINF_CATALOG_ONLY}<br>&nbsp;&nbsp;SP_COPY_REPLACE_BOOT_FILE&nbsp;=&nbsp;$0080000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;file&nbsp;must&nbsp;be&nbsp;present&nbsp;upon&nbsp;reboot&nbsp;(i.e.,&nbsp;it's<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_COPY_REPLACE_BOOT_FILE}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;needed&nbsp;by&nbsp;the&nbsp;loader);&nbsp;this&nbsp;flag&nbsp;implies&nbsp;a&nbsp;reboot<br>&nbsp;&nbsp;SP_COPY_NOPRUNE&nbsp;&nbsp;&nbsp;=&nbsp;$0100000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;never&nbsp;prune&nbsp;this&nbsp;file<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SP_COPY_NOPRUNE}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Define&nbsp;flags&nbsp;for&nbsp;SetupScanFileQueue.<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;SPQ_SCAN_FILE_PRESENCE&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPQ_SCAN_FILE_PRESENCE}<br>&nbsp;&nbsp;SPQ_SCAN_FILE_VALIDITY&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPQ_SCAN_FILE_VALIDITY}<br>&nbsp;&nbsp;SPQ_SCAN_USE_CALLBACK&nbsp;=&nbsp;$00000004;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPQ_SCAN_USE_CALLBACK}<br>&nbsp;&nbsp;SPQ_SCAN_USE_CALLBACKEX&nbsp;=&nbsp;$00000008;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPQ_SCAN_USE_CALLBACKEX}<br>&nbsp;&nbsp;SPQ_SCAN_INFORM_USER&nbsp;=&nbsp;$00000010;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPQ_SCAN_INFORM_USER}<br>&nbsp;&nbsp;SPQ_SCAN_PRUNE_COPY_QUEUE&nbsp;=&nbsp;$00000020;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPQ_SCAN_PRUNE_COPY_QUEUE}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Define&nbsp;flags&nbsp;used&nbsp;with&nbsp;Param2&nbsp;for&nbsp;SPFILENOTIFY_QUEUESCAN<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;SPQ_DELAYED_COPY&nbsp;&nbsp;=&nbsp;$00000001;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;file&nbsp;was&nbsp;in&nbsp;use;&nbsp;registered&nbsp;for&nbsp;delayed&nbsp;copy<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPQ_DELAYED_COPY}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Define&nbsp;OEM&nbsp;Source&nbsp;Type&nbsp;values&nbsp;for&nbsp;use&nbsp;in&nbsp;SetupCopyOEMInf.<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;SPOST_NONE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPOST_NONE}<br>&nbsp;&nbsp;SPOST_PATH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;1;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPOST_PATH}<br>&nbsp;&nbsp;SPOST_URL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;2;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPOST_URL}<br>&nbsp;&nbsp;SPOST_MAX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;3;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPOST_MAX}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Flags&nbsp;for&nbsp;SetupCreateDiskSpaceList<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;SPDSL_IGNORE_DISK&nbsp;=&nbsp;$00000001;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;ignore&nbsp;deletes&nbsp;and&nbsp;on-disk&nbsp;files&nbsp;in&nbsp;copies<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDSL_IGNORE_DISK}<br>&nbsp;&nbsp;SPDSL_DISALLOW_NEGATIVE_ADJUST&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDSL_DISALLOW_NEGATIVE_ADJUST}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Define&nbsp;flags&nbsp;that&nbsp;are&nbsp;returned&nbsp;by&nbsp;SetupPromptReboot<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;SPFILEQ_FILE_IN_USE&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILEQ_FILE_IN_USE}<br>&nbsp;&nbsp;SPFILEQ_REBOOT_RECOMMENDED&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILEQ_REBOOT_RECOMMENDED}<br>&nbsp;&nbsp;SPFILEQ_REBOOT_IN_PROGRESS&nbsp;=&nbsp;$00000004;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILEQ_REBOOT_IN_PROGRESS}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Flags&nbsp;for&nbsp;AddReg&nbsp;section&nbsp;lines&nbsp;in&nbsp;INF.&nbsp;The&nbsp;corresponding&nbsp;value<br>&nbsp;&nbsp;//&nbsp;is&nbsp;&lt;ValueType&gt;&nbsp;in&nbsp;the&nbsp;AddReg&nbsp;line&nbsp;format&nbsp;given&nbsp;below:<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;&lt;RegRootString&gt;,&lt;SubKey&gt;,&lt;ValueName&gt;,&lt;ValueType&gt;,&lt;Value&gt;...<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;The&nbsp;low&nbsp;word&nbsp;contains&nbsp;basic&nbsp;flags&nbsp;concerning&nbsp;the&nbsp;general&nbsp;data&nbsp;type<br>&nbsp;&nbsp;//&nbsp;and&nbsp;AddReg&nbsp;action.&nbsp;The&nbsp;high&nbsp;word&nbsp;contains&nbsp;values&nbsp;that&nbsp;more&nbsp;specifically<br>&nbsp;&nbsp;//&nbsp;identify&nbsp;the&nbsp;data&nbsp;type&nbsp;of&nbsp;the&nbsp;registry&nbsp;value.&nbsp;The&nbsp;high&nbsp;word&nbsp;is&nbsp;ignored<br>&nbsp;&nbsp;//&nbsp;by&nbsp;the&nbsp;16-bit&nbsp;Windows&nbsp;95&nbsp;SETUPX&nbsp;APIs.<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;FLG_ADDREG_BINVALUETYPE&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FLG_ADDREG_BINVALUETYPE}<br>&nbsp;&nbsp;FLG_ADDREG_NOCLOBBER&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FLG_ADDREG_NOCLOBBER}<br>&nbsp;&nbsp;FLG_ADDREG_DELVAL&nbsp;=&nbsp;$00000004;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FLG_ADDREG_DELVAL}<br>&nbsp;&nbsp;FLG_ADDREG_APPEND&nbsp;=&nbsp;$00000008;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Currently&nbsp;supported&nbsp;only<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FLG_ADDREG_APPEND}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;for&nbsp;REG_MULTI_SZ&nbsp;values.<br>&nbsp;&nbsp;FLG_ADDREG_KEYONLY&nbsp;=&nbsp;$00000010;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Just&nbsp;create&nbsp;the&nbsp;key,&nbsp;ignore&nbsp;value<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FLG_ADDREG_KEYONLY}<br>&nbsp;&nbsp;FLG_ADDREG_OVERWRITEONLY&nbsp;=&nbsp;$00000020;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Set&nbsp;only&nbsp;if&nbsp;value&nbsp;already&nbsp;exists<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FLG_ADDREG_OVERWRITEONLY}<br>&nbsp;&nbsp;FLG_ADDREG_TYPE_MASK&nbsp;=&nbsp;DWORD($FFFF0000&nbsp;or&nbsp;FLG_ADDREG_BINVALUETYPE);<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FLG_ADDREG_TYPE_MASK}<br>&nbsp;&nbsp;FLG_ADDREG_TYPE_SZ&nbsp;=&nbsp;$00000000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FLG_ADDREG_TYPE_SZ}<br>&nbsp;&nbsp;FLG_ADDREG_TYPE_MULTI_SZ&nbsp;=&nbsp;$00010000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FLG_ADDREG_TYPE_MULTI_SZ}<br>&nbsp;&nbsp;FLG_ADDREG_TYPE_EXPAND_SZ&nbsp;=&nbsp;$00020000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FLG_ADDREG_TYPE_EXPAND_SZ}<br>&nbsp;&nbsp;FLG_ADDREG_TYPE_BINARY&nbsp;=&nbsp;$00000000&nbsp;or&nbsp;FLG_ADDREG_BINVALUETYPE;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FLG_ADDREG_TYPE_BINARY}<br>&nbsp;&nbsp;FLG_ADDREG_TYPE_DWORD&nbsp;=&nbsp;$00010000&nbsp;or&nbsp;FLG_ADDREG_BINVALUETYPE;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FLG_ADDREG_TYPE_DWORD}<br>&nbsp;&nbsp;FLG_ADDREG_TYPE_NONE&nbsp;=&nbsp;$00020000&nbsp;or&nbsp;FLG_ADDREG_BINVALUETYPE;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FLG_ADDREG_TYPE_NONE}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Flags&nbsp;for&nbsp;BitReg&nbsp;section&nbsp;lines&nbsp;in&nbsp;INF.<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;FLG_BITREG_CLEARBITS&nbsp;=&nbsp;$00000000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FLG_BITREG_CLEARBITS}<br>&nbsp;&nbsp;FLG_BITREG_SETBITS&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FLG_BITREG_SETBITS}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Flags&nbsp;for&nbsp;RegSvr&nbsp;section&nbsp;lines&nbsp;in&nbsp;INF<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;FLG_REGSVR_DLLREGISTER&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FLG_REGSVR_DLLREGISTER}<br>&nbsp;&nbsp;FLG_REGSVR_DLLINSTALL&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FLG_REGSVR_DLLINSTALL}<br><br>&nbsp;&nbsp;//&nbsp;Flags&nbsp;for&nbsp;RegSvr&nbsp;section&nbsp;lines&nbsp;in&nbsp;INF<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;FLG_PROFITEM_CURRENTUSER&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FLG_PROFITEM_CURRENTUSER}<br>&nbsp;&nbsp;FLG_PROFITEM_DELETE&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FLG_PROFITEM_DELETE}<br>&nbsp;&nbsp;FLG_PROFITEM_GROUP&nbsp;=&nbsp;$00000004;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FLG_PROFITEM_GROUP}<br>&nbsp;&nbsp;FLG_PROFITEM_CSIDL&nbsp;=&nbsp;$00000008;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;FLG_PROFITEM_CSIDL}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Flags&nbsp;for&nbsp;SetupInstallFromInfSection<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;SPINST_LOGCONFIG&nbsp;&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPINST_LOGCONFIG}<br>&nbsp;&nbsp;SPINST_INIFILES&nbsp;&nbsp;&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPINST_INIFILES}<br>&nbsp;&nbsp;SPINST_REGISTRY&nbsp;&nbsp;&nbsp;=&nbsp;$00000004;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPINST_REGISTRY}<br>&nbsp;&nbsp;SPINST_INI2REG&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000008;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPINST_INI2REG}<br>&nbsp;&nbsp;SPINST_FILES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000010;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPINST_FILES}<br>&nbsp;&nbsp;SPINST_BITREG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000020;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPINST_BITREG}<br>&nbsp;&nbsp;SPINST_REGSVR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000040;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPINST_REGSVR}<br>&nbsp;&nbsp;SPINST_UNREGSVR&nbsp;&nbsp;&nbsp;=&nbsp;$00000080;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPINST_UNREGSVR}<br>&nbsp;&nbsp;SPINST_PROFILEITEMS&nbsp;=&nbsp;$00000100;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPINST_PROFILEITEMS}<br>&nbsp;&nbsp;SPINST_ALL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$000001FF;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPINST_ALL}<br>&nbsp;&nbsp;SPINST_SINGLESECTION&nbsp;=&nbsp;$00010000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPINST_SINGLESECTION}<br>&nbsp;&nbsp;SPINST_LOGCONFIG_IS_FORCED&nbsp;=&nbsp;$00020000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPINST_LOGCONFIG_IS_FORCED}<br>&nbsp;&nbsp;SPINST_LOGCONFIGS_ARE_OVERRIDES&nbsp;=&nbsp;$00040000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPINST_LOGCONFIGS_ARE_OVERRIDES}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Flags&nbsp;for&nbsp;SetupInstallServicesFromInfSection(Ex).&nbsp;These&nbsp;flags&nbsp;are&nbsp;also&nbsp;used<br>&nbsp;&nbsp;//&nbsp;in&nbsp;the&nbsp;flags&nbsp;field&nbsp;of&nbsp;AddService&nbsp;or&nbsp;DelService&nbsp;lines&nbsp;in&nbsp;a&nbsp;device&nbsp;INF.&nbsp;Some<br>&nbsp;&nbsp;//&nbsp;of&nbsp;these&nbsp;flags&nbsp;are&nbsp;not&nbsp;permitted&nbsp;in&nbsp;the&nbsp;non-Ex&nbsp;API.&nbsp;These&nbsp;flags&nbsp;are&nbsp;marked<br>&nbsp;&nbsp;//&nbsp;as&nbsp;such&nbsp;below.<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;(AddService)&nbsp;move&nbsp;service's&nbsp;tag&nbsp;to&nbsp;front&nbsp;of&nbsp;its&nbsp;group&nbsp;order&nbsp;list<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;SPSVCINST_TAGTOFRONT&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPSVCINST_TAGTOFRONT}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;(AddService)&nbsp;**Ex&nbsp;API&nbsp;only**&nbsp;mark&nbsp;this&nbsp;service&nbsp;as&nbsp;the&nbsp;function&nbsp;driver&nbsp;for&nbsp;the<br>&nbsp;&nbsp;//&nbsp;device&nbsp;being&nbsp;installed<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;SPSVCINST_ASSOCSERVICE&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPSVCINST_ASSOCSERVICE}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;(DelService)&nbsp;delete&nbsp;the&nbsp;associated&nbsp;event&nbsp;log&nbsp;entry&nbsp;for&nbsp;a&nbsp;service&nbsp;specified&nbsp;in<br>&nbsp;&nbsp;//&nbsp;a&nbsp;DelService&nbsp;entry<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;SPSVCINST_DELETEEVENTLOGENTRY&nbsp;=&nbsp;$00000004;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPSVCINST_DELETEEVENTLOGENTRY}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;(AddService)&nbsp;don't&nbsp;overwrite&nbsp;display&nbsp;name&nbsp;if&nbsp;it&nbsp;already&nbsp;exists<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;SPSVCINST_NOCLOBBER_DISPLAYNAME&nbsp;=&nbsp;$00000008;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPSVCINST_NOCLOBBER_DISPLAYNAME}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;(AddService)&nbsp;don't&nbsp;overwrite&nbsp;start&nbsp;type&nbsp;value&nbsp;if&nbsp;service&nbsp;already&nbsp;exists<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;SPSVCINST_NOCLOBBER_STARTTYPE&nbsp;=&nbsp;$00000010;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPSVCINST_NOCLOBBER_STARTTYPE}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;(AddService)&nbsp;don't&nbsp;overwrite&nbsp;error&nbsp;control&nbsp;value&nbsp;if&nbsp;service&nbsp;already&nbsp;exists<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;SPSVCINST_NOCLOBBER_ERRORCONTROL&nbsp;=&nbsp;$00000020;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPSVCINST_NOCLOBBER_ERRORCONTROL}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;(AddService)&nbsp;don't&nbsp;overwrite&nbsp;load&nbsp;order&nbsp;group&nbsp;if&nbsp;it&nbsp;already&nbsp;exists<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;SPSVCINST_NOCLOBBER_LOADORDERGROUP&nbsp;=&nbsp;$00000040;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPSVCINST_NOCLOBBER_LOADORDERGROUP}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;(AddService)&nbsp;don't&nbsp;overwrite&nbsp;dependencies&nbsp;list&nbsp;if&nbsp;it&nbsp;already&nbsp;exists<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;SPSVCINST_NOCLOBBER_DEPENDENCIES&nbsp;=&nbsp;$00000080;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPSVCINST_NOCLOBBER_DEPENDENCIES}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;(AddService)&nbsp;don't&nbsp;overwrite&nbsp;description&nbsp;if&nbsp;it&nbsp;already&nbsp;exists<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;SPSVCINST_NOCLOBBER_DESCRIPTION&nbsp;=&nbsp;$00000100;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPSVCINST_NOCLOBBER_DESCRIPTION}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;(DelService)&nbsp;stop&nbsp;the&nbsp;associated&nbsp;service&nbsp;specified&nbsp;in<br>&nbsp;&nbsp;//&nbsp;a&nbsp;DelService&nbsp;entry&nbsp;before&nbsp;deleting&nbsp;the&nbsp;service<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;SPSVCINST_STOPSERVICE&nbsp;=&nbsp;$00000200;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPSVCINST_STOPSERVICE}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Flags&nbsp;for&nbsp;SetupInitializeFileLog<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;SPFILELOG_SYSTEMLOG&nbsp;=&nbsp;$00000001;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;use&nbsp;system&nbsp;log&nbsp;--&nbsp;must&nbsp;be&nbsp;Administrator<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILELOG_SYSTEMLOG}<br>&nbsp;&nbsp;SPFILELOG_FORCENEW&nbsp;=&nbsp;$00000002;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;not&nbsp;valid&nbsp;with&nbsp;SPFILELOG_SYSTEMLOG<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILELOG_FORCENEW}<br>&nbsp;&nbsp;SPFILELOG_QUERYONLY&nbsp;=&nbsp;$00000004;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;allows&nbsp;non-administrators&nbsp;to&nbsp;read&nbsp;system&nbsp;log<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILELOG_QUERYONLY}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Flags&nbsp;for&nbsp;SetupLogFile<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;SPFILELOG_OEMFILE&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPFILELOG_OEMFILE}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Items&nbsp;retrievable&nbsp;from&nbsp;SetupQueryFileLog()<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;SetupFileLogSourceFilename&nbsp;=&nbsp;$00000000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SetupFileLogSourceFilename}<br>&nbsp;&nbsp;SetupFileLogChecksum&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SetupFileLogChecksum}<br>&nbsp;&nbsp;SetupFileLogDiskTagfile&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SetupFileLogDiskTagfile}<br>&nbsp;&nbsp;SetupFileLogDiskDescription&nbsp;=&nbsp;$00000003;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SetupFileLogDiskDescription}<br>&nbsp;&nbsp;SetupFileLogOtherInfo&nbsp;=&nbsp;$00000004;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SetupFileLogOtherInfo}<br>&nbsp;&nbsp;SetupFileLogMax&nbsp;&nbsp;&nbsp;=&nbsp;$00000005;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SetupFileLogMax}<br>type<br>&nbsp;&nbsp;SetupFileLogInfo&nbsp;=&nbsp;DWORD;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SetupFileLogInfo}<br><br>const<br>&nbsp;&nbsp;LogSevInformation&nbsp;=&nbsp;$00000000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;LogSevInformation}<br>&nbsp;&nbsp;LogSevWarning&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;LogSevWarning}<br>&nbsp;&nbsp;LogSevError&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;LogSevError}<br>&nbsp;&nbsp;LogSevFatalError&nbsp;&nbsp;=&nbsp;$00000003;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;LogSevFatalError}<br>&nbsp;&nbsp;LogSevMaximum&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000004;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;LogSevMaximum}<br>type<br>&nbsp;&nbsp;LogSeverity&nbsp;=&nbsp;DWORD;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;LogSeverity}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Flags&nbsp;for&nbsp;SetupDiCreateDeviceInfo<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;DICD_GENERATE_ID&nbsp;&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DICD_GENERATE_ID}<br>&nbsp;&nbsp;DICD_INHERIT_CLASSDRVS&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DICD_INHERIT_CLASSDRVS}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Flags&nbsp;for&nbsp;SetupDiOpenDeviceInfo<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;DIOD_INHERIT_CLASSDRVS&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIOD_INHERIT_CLASSDRVS}<br>&nbsp;&nbsp;DIOD_CANCEL_REMOVE&nbsp;=&nbsp;$00000004;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIOD_CANCEL_REMOVE}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Flags&nbsp;for&nbsp;SetupDiOpenDeviceInterface<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;DIODI_NO_ADD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIODI_NO_ADD}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Flags&nbsp;for&nbsp;SetupDiRegisterDeviceInfo<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;SPRDI_FIND_DUPS&nbsp;&nbsp;&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPRDI_FIND_DUPS}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Ordinal&nbsp;values&nbsp;distinguishing&nbsp;between&nbsp;class&nbsp;drivers&nbsp;and<br>&nbsp;&nbsp;//&nbsp;device&nbsp;drivers.<br>&nbsp;&nbsp;//&nbsp;(Passed&nbsp;in&nbsp;'DriverType'&nbsp;parameter&nbsp;of&nbsp;driver&nbsp;information&nbsp;list&nbsp;APIs)<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;SPDIT_NODRIVER&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000000;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDIT_NODRIVER}<br>&nbsp;&nbsp;SPDIT_CLASSDRIVER&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDIT_CLASSDRIVER}<br>&nbsp;&nbsp;SPDIT_COMPATDRIVER&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDIT_COMPATDRIVER}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Flags&nbsp;controlling&nbsp;what&nbsp;is&nbsp;included&nbsp;in&nbsp;the&nbsp;device&nbsp;information&nbsp;set&nbsp;built<br>&nbsp;&nbsp;//&nbsp;by&nbsp;SetupDiGetClassDevs<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;DIGCF_DEFAULT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000001;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;only&nbsp;valid&nbsp;with&nbsp;DIGCF_DEVICEINTERFACE<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIGCF_DEFAULT}<br>&nbsp;&nbsp;DIGCF_PRESENT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIGCF_PRESENT}<br>&nbsp;&nbsp;DIGCF_ALLCLASSES&nbsp;&nbsp;=&nbsp;$00000004;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIGCF_ALLCLASSES}<br>&nbsp;&nbsp;DIGCF_PROFILE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000008;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIGCF_PROFILE}<br>&nbsp;&nbsp;DIGCF_DEVICEINTERFACE&nbsp;=&nbsp;$00000010;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIGCF_DEVICEINTERFACE}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Backward&nbsp;compatibility--do&nbsp;not&nbsp;use.<br>&nbsp;&nbsp;//<br><br>const<br>&nbsp;&nbsp;DIGCF_INTERFACEDEVICE&nbsp;=&nbsp;DIGCF_DEVICEINTERFACE;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIGCF_INTERFACEDEVICE}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Flags&nbsp;controlling&nbsp;exclusion&nbsp;from&nbsp;the&nbsp;class&nbsp;information&nbsp;list&nbsp;built<br>&nbsp;&nbsp;//&nbsp;by&nbsp;SetupDiBuildClassInfoList(Ex)<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;DIBCI_NOINSTALLCLASS&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIBCI_NOINSTALLCLASS}<br>&nbsp;&nbsp;DIBCI_NODISPLAYCLASS&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIBCI_NODISPLAYCLASS}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Flags&nbsp;for&nbsp;SetupDiOpenClassRegKeyEx<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;DIOCR_INSTALLER&nbsp;&nbsp;&nbsp;=&nbsp;$00000001;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;class&nbsp;installer&nbsp;registry&nbsp;branch<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIOCR_INSTALLER}<br>&nbsp;&nbsp;DIOCR_INTERFACE&nbsp;&nbsp;&nbsp;=&nbsp;$00000002;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;interface&nbsp;class&nbsp;registry&nbsp;branch<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIOCR_INTERFACE}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;KeyType&nbsp;values&nbsp;for&nbsp;SetupDiCreateDevRegKey,&nbsp;SetupDiOpenDevRegKey,&nbsp;and<br>&nbsp;&nbsp;//&nbsp;SetupDiDeleteDevRegKey.<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;DIREG_DEV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000001;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Open/Create/Delete&nbsp;device&nbsp;key<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIREG_DEV}<br>&nbsp;&nbsp;DIREG_DRV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000002;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Open/Create/Delete&nbsp;driver&nbsp;key<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIREG_DRV}<br>&nbsp;&nbsp;DIREG_BOTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000004;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Delete&nbsp;both&nbsp;driver&nbsp;and&nbsp;Device&nbsp;key<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIREG_BOTH}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Device&nbsp;registry&nbsp;property&nbsp;codes<br>&nbsp;&nbsp;//&nbsp;(Codes&nbsp;marked&nbsp;as&nbsp;read-only&nbsp;(R)&nbsp;may&nbsp;only&nbsp;be&nbsp;used&nbsp;for<br>&nbsp;&nbsp;//&nbsp;SetupDiGetDeviceRegistryProperty)<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;These&nbsp;values&nbsp;should&nbsp;cover&nbsp;the&nbsp;same&nbsp;set&nbsp;of&nbsp;registry&nbsp;properties<br>&nbsp;&nbsp;//&nbsp;as&nbsp;defined&nbsp;by&nbsp;the&nbsp;CM_DRP&nbsp;codes&nbsp;in&nbsp;cfgmgr32.h.<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;SPDRP_DEVICEDESC&nbsp;&nbsp;=&nbsp;$00000000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;DeviceDesc&nbsp;(R/W)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_DEVICEDESC}<br>&nbsp;&nbsp;SPDRP_HARDWAREID&nbsp;&nbsp;=&nbsp;$00000001;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;HardwareID&nbsp;(R/W)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_HARDWAREID}<br>&nbsp;&nbsp;SPDRP_COMPATIBLEIDS&nbsp;=&nbsp;$00000002;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CompatibleIDs&nbsp;(R/W)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_COMPATIBLEIDS}<br>&nbsp;&nbsp;SPDRP_UNUSED0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000003;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;unused<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_UNUSED0}<br>&nbsp;&nbsp;SPDRP_SERVICE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000004;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Service&nbsp;(R/W)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_SERVICE}<br>&nbsp;&nbsp;SPDRP_UNUSED1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000005;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;unused<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_UNUSED1}<br>&nbsp;&nbsp;SPDRP_UNUSED2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000006;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;unused<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_UNUSED2}<br>&nbsp;&nbsp;SPDRP_CLASS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000007;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Class&nbsp;(R--tied&nbsp;to&nbsp;ClassGUID)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_CLASS}<br>&nbsp;&nbsp;SPDRP_CLASSGUID&nbsp;&nbsp;&nbsp;=&nbsp;$00000008;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;ClassGUID&nbsp;(R/W)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_CLASSGUID}<br>&nbsp;&nbsp;SPDRP_DRIVER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000009;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Driver&nbsp;(R/W)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_DRIVER}<br>&nbsp;&nbsp;SPDRP_CONFIGFLAGS&nbsp;=&nbsp;$0000000A;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;ConfigFlags&nbsp;(R/W)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_CONFIGFLAGS}<br>&nbsp;&nbsp;SPDRP_MFG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$0000000B;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Mfg&nbsp;(R/W)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_MFG}<br>&nbsp;&nbsp;SPDRP_FRIENDLYNAME&nbsp;=&nbsp;$0000000C;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;FriendlyName&nbsp;(R/W)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_FRIENDLYNAME}<br>&nbsp;&nbsp;SPDRP_LOCATION_INFORMATION&nbsp;=&nbsp;$0000000D;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;LocationInformation&nbsp;(R/W)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_LOCATION_INFORMATION}<br>&nbsp;&nbsp;SPDRP_PHYSICAL_DEVICE_OBJECT_NAME&nbsp;=&nbsp;$0000000E;&nbsp;&nbsp;//&nbsp;PhysicalDeviceObjectName&nbsp;(R)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_PHYSICAL_DEVICE_OBJECT_NAME}<br>&nbsp;&nbsp;SPDRP_CAPABILITIES&nbsp;=&nbsp;$0000000F;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Capabilities&nbsp;(R)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_CAPABILITIES}<br>&nbsp;&nbsp;SPDRP_UI_NUMBER&nbsp;&nbsp;&nbsp;=&nbsp;$00000010;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;UiNumber&nbsp;(R)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_UI_NUMBER}<br>&nbsp;&nbsp;SPDRP_UPPERFILTERS&nbsp;=&nbsp;$00000011;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;UpperFilters&nbsp;(R/W)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_UPPERFILTERS}<br>&nbsp;&nbsp;SPDRP_LOWERFILTERS&nbsp;=&nbsp;$00000012;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;LowerFilters&nbsp;(R/W)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_LOWERFILTERS}<br>&nbsp;&nbsp;SPDRP_BUSTYPEGUID&nbsp;=&nbsp;$00000013;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;BusTypeGUID&nbsp;(R)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_BUSTYPEGUID}<br>&nbsp;&nbsp;SPDRP_LEGACYBUSTYPE&nbsp;=&nbsp;$00000014;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;LegacyBusType&nbsp;(R)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_LEGACYBUSTYPE}<br>&nbsp;&nbsp;SPDRP_BUSNUMBER&nbsp;&nbsp;&nbsp;=&nbsp;$00000015;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;BusNumber&nbsp;(R)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_BUSNUMBER}<br>&nbsp;&nbsp;SPDRP_ENUMERATOR_NAME&nbsp;=&nbsp;$00000016;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Enumerator&nbsp;Name&nbsp;(R)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_ENUMERATOR_NAME}<br>&nbsp;&nbsp;SPDRP_SECURITY&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000017;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Security&nbsp;(R/W,&nbsp;binary&nbsp;form)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_SECURITY}<br>&nbsp;&nbsp;SPDRP_SECURITY_SDS&nbsp;=&nbsp;$00000018;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Security&nbsp;(W,&nbsp;SDS&nbsp;form)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_SECURITY_SDS}<br>&nbsp;&nbsp;SPDRP_DEVTYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000019;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Device&nbsp;Type&nbsp;(R/W)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_DEVTYPE}<br>&nbsp;&nbsp;SPDRP_EXCLUSIVE&nbsp;&nbsp;&nbsp;=&nbsp;$0000001A;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Device&nbsp;is&nbsp;exclusive-access&nbsp;(R/W)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_EXCLUSIVE}<br>&nbsp;&nbsp;SPDRP_CHARACTERISTICS&nbsp;=&nbsp;$0000001B;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Device&nbsp;Characteristics&nbsp;(R/W)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_CHARACTERISTICS}<br>&nbsp;&nbsp;SPDRP_ADDRESS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$0000001C;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Device&nbsp;Address&nbsp;(R)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_ADDRESS}<br>&nbsp;&nbsp;SPDRP_UI_NUMBER_DESC_FORMAT&nbsp;=&nbsp;$0000001E;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;UiNumberDescFormat&nbsp;(R/W)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_UI_NUMBER_DESC_FORMAT}<br>&nbsp;&nbsp;SPDRP_MAXIMUM_PROPERTY&nbsp;=&nbsp;$0000001F;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Upper&nbsp;bound&nbsp;on&nbsp;ordinals<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPDRP_MAXIMUM_PROPERTY}<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Class&nbsp;registry&nbsp;property&nbsp;codes<br>&nbsp;&nbsp;//&nbsp;(Codes&nbsp;marked&nbsp;as&nbsp;read-only&nbsp;(R)&nbsp;may&nbsp;only&nbsp;be&nbsp;used&nbsp;for<br>&nbsp;&nbsp;//&nbsp;SetupDiGetClassRegistryProperty)<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;These&nbsp;values&nbsp;should&nbsp;cover&nbsp;the&nbsp;same&nbsp;set&nbsp;of&nbsp;registry&nbsp;properties<br>&nbsp;&nbsp;//&nbsp;as&nbsp;defined&nbsp;by&nbsp;the&nbsp;CM_CRP&nbsp;codes&nbsp;in&nbsp;cfgmgr32.h.<br>&nbsp;&nbsp;//&nbsp;they&nbsp;should&nbsp;also&nbsp;have&nbsp;a&nbsp;1:1&nbsp;correspondence&nbsp;with&nbsp;Device&nbsp;registers,&nbsp;where&nbsp;applicable<br>&nbsp;&nbsp;//&nbsp;but&nbsp;no&nbsp;overlap&nbsp;otherwise<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;SPCRP_SECURITY&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000017;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Security&nbsp;(R/W,&nbsp;binary&nbsp;form)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPCRP_SECURITY}<br>&nbsp;&nbsp;SPCRP_SECURITY_SDS&nbsp;=&nbsp;$00000018;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Security&nbsp;(W,&nbsp;SDS&nbsp;form)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPCRP_SECURITY_SDS}<br>&nbsp;&nbsp;SPCRP_DEVTYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000019;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Device&nbsp;Type&nbsp;(R/W)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPCRP_DEVTYPE}<br>&nbsp;&nbsp;SPCRP_EXCLUSIVE&nbsp;&nbsp;&nbsp;=&nbsp;$0000001A;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Device&nbsp;is&nbsp;exclusive-access&nbsp;(R/W)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPCRP_EXCLUSIVE}<br>&nbsp;&nbsp;SPCRP_CHARACTERISTICS&nbsp;=&nbsp;$0000001B;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Device&nbsp;Characteristics&nbsp;(R/W)<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPCRP_CHARACTERISTICS}<br>&nbsp;&nbsp;SPCRP_MAXIMUM_PROPERTY&nbsp;=&nbsp;$0000001C;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Upper&nbsp;bound&nbsp;on&nbsp;ordinals<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPCRP_MAXIMUM_PROPERTY}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Flags&nbsp;controlling&nbsp;the&nbsp;drawing&nbsp;of&nbsp;mini-icons<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;DMI_MASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DMI_MASK}<br>&nbsp;&nbsp;DMI_BKCOLOR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DMI_BKCOLOR}<br>&nbsp;&nbsp;DMI_USERECT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$00000004;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DMI_USERECT}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;PropertySheetType&nbsp;values&nbsp;for&nbsp;the&nbsp;SetupDiGetClassDevPropertySheets&nbsp;API<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;DIGCDP_FLAG_BASIC&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIGCDP_FLAG_BASIC}<br>&nbsp;&nbsp;DIGCDP_FLAG_ADVANCED&nbsp;=&nbsp;$00000002;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;DIGCDP_FLAG_ADVANCED}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Define&nbsp;ICON&nbsp;IDs&nbsp;publicly&nbsp;exposed&nbsp;from&nbsp;setupapi.<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;IDI_RESOURCEFIRST&nbsp;=&nbsp;159;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDI_RESOURCEFIRST}<br>&nbsp;&nbsp;IDI_RESOURCE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;159;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDI_RESOURCE}<br>&nbsp;&nbsp;IDI_RESOURCELAST&nbsp;&nbsp;=&nbsp;161;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDI_RESOURCELAST}<br>&nbsp;&nbsp;IDI_RESOURCEOVERLAYFIRST&nbsp;=&nbsp;161;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDI_RESOURCEOVERLAYFIRST}<br>&nbsp;&nbsp;IDI_RESOURCEOVERLAYLAST&nbsp;=&nbsp;161;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDI_RESOURCEOVERLAYLAST}<br>&nbsp;&nbsp;IDI_CONFLICT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;161;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDI_CONFLICT}<br><br>&nbsp;&nbsp;IDI_CLASSICON_OVERLAYFIRST&nbsp;=&nbsp;500;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDI_CLASSICON_OVERLAYFIRST}<br>&nbsp;&nbsp;IDI_CLASSICON_OVERLAYLAST&nbsp;=&nbsp;502;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDI_CLASSICON_OVERLAYLAST}<br>&nbsp;&nbsp;IDI_PROBLEM_OVL&nbsp;&nbsp;&nbsp;=&nbsp;500;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDI_PROBLEM_OVL}<br>&nbsp;&nbsp;IDI_DISABLED_OVL&nbsp;&nbsp;=&nbsp;501;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDI_DISABLED_OVL}<br>&nbsp;&nbsp;IDI_FORCED_OVL&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;502;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;IDI_FORCED_OVL}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;PageType&nbsp;values&nbsp;for&nbsp;SetupDiGetWizardPage&nbsp;API<br>&nbsp;&nbsp;//<br>const<br>&nbsp;&nbsp;SPWPT_SELECTDEVICE&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPWPT_SELECTDEVICE}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Flags&nbsp;for&nbsp;SetupDiGetWizardPage&nbsp;API<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;SPWP_USE_DEVINFO_DATA&nbsp;=&nbsp;$00000001;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;SPWP_USE_DEVINFO_DATA}<br><br>&nbsp;&nbsp;{$IFNDEF&nbsp;SETUPAPI_LINKONREQUEST}<br><br>function&nbsp;SetupGetInfInformationA(InfSpec:&nbsp;Pointer;&nbsp;SearchControl:&nbsp;DWORD;<br>&nbsp;&nbsp;ReturnBuffer:&nbsp;PSPInfInformation;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetInfInformationA}<br>function&nbsp;SetupGetInfInformationW(InfSpec:&nbsp;Pointer;&nbsp;SearchControl:&nbsp;DWORD;<br>&nbsp;&nbsp;ReturnBuffer:&nbsp;PSPInfInformation;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetInfInformationW}<br>function&nbsp;SetupGetInfInformation(InfSpec:&nbsp;Pointer;&nbsp;SearchControl:&nbsp;DWORD;<br>&nbsp;&nbsp;ReturnBuffer:&nbsp;PSPInfInformation;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetInfInformation}<br><br>function&nbsp;SetupQueryInfFileInformationA(var&nbsp;InfInformation:&nbsp;TSPInfInformation;<br>&nbsp;&nbsp;InfIndex:&nbsp;UINT;&nbsp;ReturnBuffer:&nbsp;PAnsiChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;<br>&nbsp;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueryInfFileInformationA}<br>function&nbsp;SetupQueryInfFileInformationW(var&nbsp;InfInformation:&nbsp;TSPInfInformation;<br>&nbsp;&nbsp;InfIndex:&nbsp;UINT;&nbsp;ReturnBuffer:&nbsp;PWideChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;<br>&nbsp;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueryInfFileInformationW}<br>function&nbsp;SetupQueryInfFileInformation(var&nbsp;InfInformation:&nbsp;TSPInfInformation;<br>&nbsp;&nbsp;InfIndex:&nbsp;UINT;&nbsp;ReturnBuffer:&nbsp;PChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;<br>&nbsp;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueryInfFileInformation}<br><br>{$IFDEF&nbsp;WIN2000}<br>function&nbsp;SetupQueryInfOriginalFileInformationA(var&nbsp;InfInformation:&nbsp;TSPInfInformation;<br>&nbsp;&nbsp;InfIndex:&nbsp;UINT;&nbsp;AlternatePlatformInfo:&nbsp;PSPAltPlatformInfo;<br>&nbsp;&nbsp;var&nbsp;OriginalFileInfo:&nbsp;TSPOriginalFileInfoA):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueryInfOriginalFileInformationA}<br>function&nbsp;SetupQueryInfOriginalFileInformationW(var&nbsp;InfInformation:&nbsp;TSPInfInformation;<br>&nbsp;&nbsp;InfIndex:&nbsp;UINT;&nbsp;AlternatePlatformInfo:&nbsp;PSPAltPlatformInfo;<br>&nbsp;&nbsp;var&nbsp;OriginalFileInfo:&nbsp;TSPOriginalFileInfoW):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueryInfOriginalFileInformationW}<br>function&nbsp;SetupQueryInfOriginalFileInformation(var&nbsp;InfInformation:&nbsp;TSPInfInformation;<br>&nbsp;&nbsp;InfIndex:&nbsp;UINT;&nbsp;AlternatePlatformInfo:&nbsp;PSPAltPlatformInfo;<br>&nbsp;&nbsp;var&nbsp;OriginalFileInfo:&nbsp;TSPOriginalFileInfoA):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueryInfOriginalFileInformation}<br>{$ENDIF}<br><br>function&nbsp;SetupQueryInfVersionInformationA(var&nbsp;InfInformation:&nbsp;TSPInfInformation;<br>&nbsp;&nbsp;InfIndex:&nbsp;UINT;&nbsp;const&nbsp;Key,&nbsp;ReturnBuffer:&nbsp;PAnsiChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;<br>&nbsp;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueryInfVersionInformationA}<br>function&nbsp;SetupQueryInfVersionInformationW(var&nbsp;InfInformation:&nbsp;TSPInfInformation;<br>&nbsp;&nbsp;InfIndex:&nbsp;UINT;&nbsp;const&nbsp;Key,&nbsp;ReturnBuffer:&nbsp;PWideChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;<br>&nbsp;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueryInfVersionInformationW}<br>function&nbsp;SetupQueryInfVersionInformation(var&nbsp;InfInformation:&nbsp;TSPInfInformation;<br>&nbsp;&nbsp;InfIndex:&nbsp;UINT;&nbsp;const&nbsp;Key,&nbsp;ReturnBuffer:&nbsp;PChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;<br>&nbsp;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueryInfVersionInformation}<br><br>function&nbsp;SetupGetInfFileListA(const&nbsp;DirectoryPath:&nbsp;PAnsiChar;&nbsp;InfStyle:&nbsp;DWORD;<br>&nbsp;&nbsp;ReturnBuffer:&nbsp;PAnsiChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetInfFileListA}<br>function&nbsp;SetupGetInfFileListW(const&nbsp;DirectoryPath:&nbsp;PWideChar;&nbsp;InfStyle:&nbsp;DWORD;<br>&nbsp;&nbsp;ReturnBuffer:&nbsp;PWideChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetInfFileListW}<br>function&nbsp;SetupGetInfFileList(const&nbsp;DirectoryPath:&nbsp;PChar;&nbsp;InfStyle:&nbsp;DWORD;<br>&nbsp;&nbsp;ReturnBuffer:&nbsp;PChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetInfFileList}<br><br>function&nbsp;SetupOpenInfFileA(const&nbsp;FileName:&nbsp;PAnsiChar;&nbsp;const&nbsp;InfClass:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;InfStyle:&nbsp;DWORD;&nbsp;ErrorLine:&nbsp;PUINT):&nbsp;HINF;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupOpenInfFileA}<br>function&nbsp;SetupOpenInfFileW(const&nbsp;FileName:&nbsp;PWideChar;&nbsp;const&nbsp;InfClass:&nbsp;PWideChar;<br>&nbsp;&nbsp;InfStyle:&nbsp;DWORD;&nbsp;ErrorLine:&nbsp;PUINT):&nbsp;HINF;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupOpenInfFileW}<br>function&nbsp;SetupOpenInfFile(const&nbsp;FileName:&nbsp;PChar;&nbsp;const&nbsp;InfClass:&nbsp;PChar;<br>&nbsp;&nbsp;InfStyle:&nbsp;DWORD;&nbsp;ErrorLine:&nbsp;PUINT):&nbsp;HINF;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupOpenInfFile}<br><br>function&nbsp;SetupOpenMasterInf:&nbsp;HINF;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupOpenMasterInf}<br><br>function&nbsp;SetupOpenAppendInfFileA(const&nbsp;FileName:&nbsp;PAnsiChar;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;ErrorLine:&nbsp;PUINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupOpenAppendInfFileA}<br>function&nbsp;SetupOpenAppendInfFileW(const&nbsp;FileName:&nbsp;PWideChar;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;ErrorLine:&nbsp;PUINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupOpenAppendInfFileW}<br>function&nbsp;SetupOpenAppendInfFile(const&nbsp;FileName:&nbsp;PChar;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;ErrorLine:&nbsp;PUINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupOpenAppendInfFile}<br><br>procedure&nbsp;SetupCloseInfFile(InfHandle:&nbsp;HINF);&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupCloseInfFile}<br><br>function&nbsp;SetupFindFirstLineA(InfHandle:&nbsp;HINF;&nbsp;Section,&nbsp;Key:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;var&nbsp;Context:&nbsp;TInfContext):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupFindFirstLineA}<br>function&nbsp;SetupFindFirstLineW(InfHandle:&nbsp;HINF;&nbsp;Section,&nbsp;Key:&nbsp;PWideChar;<br>&nbsp;&nbsp;var&nbsp;Context:&nbsp;TInfContext):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupFindFirstLineW}<br>function&nbsp;SetupFindFirstLine(InfHandle:&nbsp;HINF;&nbsp;Section,&nbsp;Key:&nbsp;PChar;<br>&nbsp;&nbsp;var&nbsp;Context:&nbsp;TInfContext):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupFindFirstLine}<br><br>function&nbsp;SetupFindNextLine(var&nbsp;ContextIn,&nbsp;ContextOut:&nbsp;TInfContext):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupFindNextLine}<br><br>function&nbsp;SetupFindNextMatchLineA(var&nbsp;ContextIn:&nbsp;TInfContext;&nbsp;Key:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;var&nbsp;ContextOut:&nbsp;TInfContext):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupFindNextMatchLineA}<br>function&nbsp;SetupFindNextMatchLineW(var&nbsp;ContextIn:&nbsp;TInfContext;&nbsp;Key:&nbsp;PWideChar;<br>&nbsp;&nbsp;var&nbsp;ContextOut:&nbsp;TInfContext):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupFindNextMatchLineW}<br>function&nbsp;SetupFindNextMatchLine(var&nbsp;ContextIn:&nbsp;TInfContext;&nbsp;Key:&nbsp;PChar;<br>&nbsp;&nbsp;var&nbsp;ContextOut:&nbsp;TInfContext):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupFindNextMatchLine}<br><br>function&nbsp;SetupGetLineByIndexA(InfHandle:&nbsp;HINF;&nbsp;Section:&nbsp;PAnsiChar;&nbsp;Index:&nbsp;DWORD;<br>&nbsp;&nbsp;var&nbsp;Context:&nbsp;TInfContext):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetLineByIndexA}<br>function&nbsp;SetupGetLineByIndexW(InfHandle:&nbsp;HINF;&nbsp;Section:&nbsp;PWideChar;&nbsp;Index:&nbsp;DWORD;<br>&nbsp;&nbsp;var&nbsp;Context:&nbsp;TInfContext):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetLineByIndexW}<br>function&nbsp;SetupGetLineByIndex(InfHandle:&nbsp;HINF;&nbsp;Section:&nbsp;PChar;&nbsp;Index:&nbsp;DWORD;<br>&nbsp;&nbsp;var&nbsp;Context:&nbsp;TInfContext):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetLineByIndex}<br><br>function&nbsp;SetupGetLineCountA(InfHandle:&nbsp;HINF;&nbsp;Section:&nbsp;PAnsiChar):&nbsp;Integer;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetLineCountA}<br>function&nbsp;SetupGetLineCountW(InfHandle:&nbsp;HINF;&nbsp;Section:&nbsp;PWideChar):&nbsp;Integer;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetLineCountW}<br>function&nbsp;SetupGetLineCount(InfHandle:&nbsp;HINF;&nbsp;Section:&nbsp;PChar):&nbsp;Integer;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetLineCount}<br><br>function&nbsp;SetupGetLineTextA(Context:&nbsp;PInfContext;&nbsp;InfHandle:&nbsp;HINF;&nbsp;Section,<br>&nbsp;&nbsp;Key,&nbsp;ReturnBuffer:&nbsp;PAnsiChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetLineTextA}<br>function&nbsp;SetupGetLineTextW(Context:&nbsp;PInfContext;&nbsp;InfHandle:&nbsp;HINF;&nbsp;Section,<br>&nbsp;&nbsp;Key,&nbsp;ReturnBuffer:&nbsp;PWideChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetLineTextW}<br>function&nbsp;SetupGetLineText(Context:&nbsp;PInfContext;&nbsp;InfHandle:&nbsp;HINF;&nbsp;Section,<br>&nbsp;&nbsp;Key,&nbsp;ReturnBuffer:&nbsp;PChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetLineText}<br><br>function&nbsp;SetupGetFieldCount(var&nbsp;Context:&nbsp;TInfContext):&nbsp;DWORD;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetFieldCount}<br><br>function&nbsp;SetupGetStringFieldA(var&nbsp;Context:&nbsp;TInfContext;&nbsp;FieldIndex:&nbsp;DWORD;<br>&nbsp;&nbsp;ReturnBuffer:&nbsp;PAnsiChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetStringFieldA}<br>function&nbsp;SetupGetStringFieldW(var&nbsp;Context:&nbsp;TInfContext;&nbsp;FieldIndex:&nbsp;DWORD;<br>&nbsp;&nbsp;ReturnBuffer:&nbsp;PWideChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetStringFieldW}<br>function&nbsp;SetupGetStringField(var&nbsp;Context:&nbsp;TInfContext;&nbsp;FieldIndex:&nbsp;DWORD;<br>&nbsp;&nbsp;ReturnBuffer:&nbsp;PChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetStringField}<br><br>function&nbsp;SetupGetIntField(var&nbsp;Context:&nbsp;TInfContext;&nbsp;FieldIndex:&nbsp;DWORD;<br>&nbsp;&nbsp;var&nbsp;IntegerValue:&nbsp;Integer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetIntField}<br><br>function&nbsp;SetupGetMultiSzFieldA(var&nbsp;Context:&nbsp;TInfContext;&nbsp;FieldIndex:&nbsp;DWORD;<br>&nbsp;&nbsp;ReturnBuffer:&nbsp;PAnsiChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetMultiSzFieldA}<br>function&nbsp;SetupGetMultiSzFieldW(var&nbsp;Context:&nbsp;TInfContext;&nbsp;FieldIndex:&nbsp;DWORD;<br>&nbsp;&nbsp;ReturnBuffer:&nbsp;PWideChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetMultiSzFieldW}<br>function&nbsp;SetupGetMultiSzField(var&nbsp;Context:&nbsp;TInfContext;&nbsp;FieldIndex:&nbsp;DWORD;<br>&nbsp;&nbsp;ReturnBuffer:&nbsp;PChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetMultiSzField}<br><br>function&nbsp;SetupGetBinaryField(var&nbsp;Context:&nbsp;TInfContext;&nbsp;FieldIndex:&nbsp;DWORD;<br>&nbsp;&nbsp;ReturnBuffer:&nbsp;PBYTE;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetBinaryField}<br><br>function&nbsp;SetupGetFileCompressionInfoA(const&nbsp;SourceFilename:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;var&nbsp;ActualSourceFileName:&nbsp;PAnsiChar;&nbsp;var&nbsp;SourceFileSize:&nbsp;DWORD;<br>&nbsp;&nbsp;var&nbsp;TargetFileSize:&nbsp;DWORD;&nbsp;var&nbsp;CompressionType:&nbsp;UINT):&nbsp;DWORD;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetFileCompressionInfoA}<br>function&nbsp;SetupGetFileCompressionInfoW(const&nbsp;SourceFilename:&nbsp;PWideChar;<br>&nbsp;&nbsp;var&nbsp;ActualSourceFileName:&nbsp;PWideChar;&nbsp;var&nbsp;SourceFileSize:&nbsp;DWORD;<br>&nbsp;&nbsp;var&nbsp;TargetFileSize:&nbsp;DWORD;&nbsp;var&nbsp;CompressionType:&nbsp;UINT):&nbsp;DWORD;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetFileCompressionInfoW}<br>function&nbsp;SetupGetFileCompressionInfo(const&nbsp;SourceFilename:&nbsp;PChar;<br>&nbsp;&nbsp;var&nbsp;ActualSourceFileName:&nbsp;PChar;&nbsp;var&nbsp;SourceFileSize:&nbsp;DWORD;<br>&nbsp;&nbsp;var&nbsp;TargetFileSize:&nbsp;DWORD;&nbsp;var&nbsp;CompressionType:&nbsp;UINT):&nbsp;DWORD;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetFileCompressionInfo}<br><br>function&nbsp;SetupDecompressOrCopyFileA(const&nbsp;SourceFilename,&nbsp;TargetFilename:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;var&nbsp;CompressionType:&nbsp;UINT):&nbsp;DWORD;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDecompressOrCopyFileA}<br>function&nbsp;SetupDecompressOrCopyFileW(const&nbsp;SourceFilename,&nbsp;TargetFilename:&nbsp;PWideChar;<br>&nbsp;&nbsp;var&nbsp;CompressionType:&nbsp;UINT):&nbsp;DWORD;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDecompressOrCopyFileW}<br>function&nbsp;SetupDecompressOrCopyFile(const&nbsp;SourceFilename,&nbsp;TargetFilename:&nbsp;PChar;<br>&nbsp;&nbsp;var&nbsp;CompressionType:&nbsp;UINT):&nbsp;DWORD;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDecompressOrCopyFile}<br><br>function&nbsp;SetupGetSourceFileLocationA(InfHandle:&nbsp;HINF;&nbsp;INFCONTEXT:&nbsp;PInfContext;<br>&nbsp;&nbsp;const&nbsp;FileName:&nbsp;PAnsiChar;&nbsp;var&nbsp;SourceId:&nbsp;UINT;&nbsp;ReturnBuffer:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetSourceFileLocationA}<br>function&nbsp;SetupGetSourceFileLocationW(InfHandle:&nbsp;HINF;&nbsp;INFCONTEXT:&nbsp;PInfContext;<br>&nbsp;&nbsp;const&nbsp;FileName:&nbsp;PWideChar;&nbsp;var&nbsp;SourceId:&nbsp;UINT;&nbsp;ReturnBuffer:&nbsp;PWideChar;<br>&nbsp;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetSourceFileLocationW}<br>function&nbsp;SetupGetSourceFileLocation(InfHandle:&nbsp;HINF;&nbsp;INFCONTEXT:&nbsp;PInfContext;<br>&nbsp;&nbsp;const&nbsp;FileName:&nbsp;PChar;&nbsp;var&nbsp;SourceId:&nbsp;UINT;&nbsp;ReturnBuffer:&nbsp;PChar;<br>&nbsp;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetSourceFileLocation}<br><br>function&nbsp;SetupGetSourceFileSizeA(InfHandle:&nbsp;HINF;&nbsp;INFCONTEXT:&nbsp;PInfContext;<br>&nbsp;&nbsp;const&nbsp;FileName:&nbsp;PAnsiChar;&nbsp;const&nbsp;Section:&nbsp;PAnsiChar;&nbsp;var&nbsp;FileSize:&nbsp;DWORD;<br>&nbsp;&nbsp;RoundingFactor:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetSourceFileSizeA}<br>function&nbsp;SetupGetSourceFileSizeW(InfHandle:&nbsp;HINF;&nbsp;INFCONTEXT:&nbsp;PInfContext;<br>&nbsp;&nbsp;const&nbsp;FileName:&nbsp;PWideChar;&nbsp;const&nbsp;Section:&nbsp;PWideChar;&nbsp;var&nbsp;FileSize:&nbsp;DWORD;<br>&nbsp;&nbsp;RoundingFactor:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetSourceFileSizeW}<br>function&nbsp;SetupGetSourceFileSize(InfHandle:&nbsp;HINF;&nbsp;INFCONTEXT:&nbsp;PInfContext;<br>&nbsp;&nbsp;const&nbsp;FileName:&nbsp;PChar;&nbsp;const&nbsp;Section:&nbsp;PChar;&nbsp;var&nbsp;FileSize:&nbsp;DWORD;<br>&nbsp;&nbsp;RoundingFactor:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetSourceFileSize}<br><br>function&nbsp;SetupGetTargetPathA(InfHandle:&nbsp;HINF;&nbsp;INFCONTEXT:&nbsp;PInfContext;<br>&nbsp;&nbsp;const&nbsp;Section:&nbsp;PAnsiChar;&nbsp;ReturnBuffer:&nbsp;PAnsiChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;<br>&nbsp;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetTargetPathA}<br>function&nbsp;SetupGetTargetPathW(InfHandle:&nbsp;HINF;&nbsp;INFCONTEXT:&nbsp;PInfContext;<br>&nbsp;&nbsp;const&nbsp;Section:&nbsp;PWideChar;&nbsp;ReturnBuffer:&nbsp;PWideChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;<br>&nbsp;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetTargetPathW}<br>function&nbsp;SetupGetTargetPath(InfHandle:&nbsp;HINF;&nbsp;INFCONTEXT:&nbsp;PInfContext;<br>&nbsp;&nbsp;const&nbsp;Section:&nbsp;PChar;&nbsp;ReturnBuffer:&nbsp;PChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;<br>&nbsp;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetTargetPath}<br><br>function&nbsp;SetupSetSourceListA(Flags:&nbsp;DWORD;&nbsp;SourceList:&nbsp;PPASTR;<br>&nbsp;&nbsp;SourceCount:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupSetSourceListA}<br>function&nbsp;SetupSetSourceListW(Flags:&nbsp;DWORD;&nbsp;SourceList:&nbsp;PPWSTR;<br>&nbsp;&nbsp;SourceCount:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupSetSourceListW}<br>function&nbsp;SetupSetSourceList(Flags:&nbsp;DWORD;&nbsp;SourceList:&nbsp;PPSTR;<br>&nbsp;&nbsp;SourceCount:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupSetSourceList}<br><br>function&nbsp;SetupCancelTemporarySourceList:&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupCancelTemporarySourceList}<br><br>function&nbsp;SetupAddToSourceListA(Flags:&nbsp;DWORD;&nbsp;const&nbsp;Source:&nbsp;PAnsiChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupAddToSourceListA}<br>function&nbsp;SetupAddToSourceListW(Flags:&nbsp;DWORD;&nbsp;const&nbsp;Source:&nbsp;PWideChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupAddToSourceListW}<br>function&nbsp;SetupAddToSourceList(Flags:&nbsp;DWORD;&nbsp;const&nbsp;Source:&nbsp;PChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupAddToSourceList}<br><br>function&nbsp;SetupRemoveFromSourceListA(Flags:&nbsp;DWORD;&nbsp;const&nbsp;Source:&nbsp;PAnsiChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupRemoveFromSourceListA}<br>function&nbsp;SetupRemoveFromSourceListW(Flags:&nbsp;DWORD;&nbsp;const&nbsp;Source:&nbsp;PWideChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupRemoveFromSourceListW}<br>function&nbsp;SetupRemoveFromSourceList(Flags:&nbsp;DWORD;&nbsp;const&nbsp;Source:&nbsp;PChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupRemoveFromSourceList}<br><br>function&nbsp;SetupQuerySourceListA(Flags:&nbsp;DWORD;&nbsp;var&nbsp;List:&nbsp;PPASTR;<br>&nbsp;&nbsp;var&nbsp;Count:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQuerySourceListA}<br>function&nbsp;SetupQuerySourceListW(Flags:&nbsp;DWORD;&nbsp;var&nbsp;List:&nbsp;PPWSTR;<br>&nbsp;&nbsp;var&nbsp;Count:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQuerySourceListW}<br>function&nbsp;SetupQuerySourceList(Flags:&nbsp;DWORD;&nbsp;var&nbsp;List:&nbsp;PPSTR;<br>&nbsp;&nbsp;var&nbsp;Count:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQuerySourceList}<br><br>function&nbsp;SetupFreeSourceListA(var&nbsp;List:&nbsp;PPWSTR;&nbsp;Count:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupFreeSourceListA}<br>function&nbsp;SetupFreeSourceListW(var&nbsp;List:&nbsp;PPASTR;&nbsp;Count:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupFreeSourceListW}<br>function&nbsp;SetupFreeSourceList(var&nbsp;List:&nbsp;PPSTR;&nbsp;Count:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupFreeSourceList}<br><br>function&nbsp;SetupPromptForDiskA(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;DialogTitle,&nbsp;DiskName,<br>&nbsp;&nbsp;PathToSource,&nbsp;FileSought,&nbsp;Tagfile:&nbsp;PAnsiChar;&nbsp;DiskPromptStyle:&nbsp;DWORD;<br>&nbsp;&nbsp;PathBuffer:&nbsp;PAnsiChar;&nbsp;PathBufferSize:&nbsp;DWORD;&nbsp;var&nbsp;PathRequiredSize:&nbsp;DWORD):&nbsp;UINT;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupPromptForDiskA}<br>function&nbsp;SetupPromptForDiskW(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;DialogTitle,&nbsp;DiskName,<br>&nbsp;&nbsp;PathToSource,&nbsp;FileSought,&nbsp;Tagfile:&nbsp;PWideChar;&nbsp;DiskPromptStyle:&nbsp;DWORD;<br>&nbsp;&nbsp;PathBuffer:&nbsp;PWideChar;&nbsp;PathBufferSize:&nbsp;DWORD;&nbsp;var&nbsp;PathRequiredSize:&nbsp;DWORD):&nbsp;UINT;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupPromptForDiskW}<br>function&nbsp;SetupPromptForDisk(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;DialogTitle,&nbsp;DiskName,<br>&nbsp;&nbsp;PathToSource,&nbsp;FileSought,&nbsp;Tagfile:&nbsp;PChar;&nbsp;DiskPromptStyle:&nbsp;DWORD;<br>&nbsp;&nbsp;PathBuffer:&nbsp;PChar;&nbsp;PathBufferSize:&nbsp;DWORD;&nbsp;var&nbsp;PathRequiredSize:&nbsp;DWORD):&nbsp;UINT;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupPromptForDisk}<br><br>function&nbsp;SetupCopyErrorA(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;DialogTitle,&nbsp;DiskName,<br>&nbsp;&nbsp;PathToSource,&nbsp;SourceFile,&nbsp;TargetPathFile:&nbsp;PAnsiChar;&nbsp;Win32ErrorCode:&nbsp;UINT;&nbsp;Style:&nbsp;DWORD;<br>&nbsp;&nbsp;PathBuffer:&nbsp;PAnsiChar;&nbsp;PathBufferSize:&nbsp;DWORD;&nbsp;PathRequiredSize:&nbsp;PDWORD):&nbsp;UINT;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupCopyErrorA}<br>function&nbsp;SetupCopyErrorW(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;DialogTitle,&nbsp;DiskName,<br>&nbsp;&nbsp;PathToSource,&nbsp;SourceFile,&nbsp;TargetPathFile:&nbsp;PWideChar;&nbsp;Win32ErrorCode:&nbsp;UINT;&nbsp;Style:&nbsp;DWORD;<br>&nbsp;&nbsp;PathBuffer:&nbsp;PWideChar;&nbsp;PathBufferSize:&nbsp;DWORD;&nbsp;PathRequiredSize:&nbsp;PDWORD):&nbsp;UINT;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupCopyErrorW}<br>function&nbsp;SetupCopyError(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;DialogTitle,&nbsp;DiskName,<br>&nbsp;&nbsp;PathToSource,&nbsp;SourceFile,&nbsp;TargetPathFile:&nbsp;PChar;&nbsp;Win32ErrorCode:&nbsp;UINT;&nbsp;Style:&nbsp;DWORD;<br>&nbsp;&nbsp;PathBuffer:&nbsp;PChar;&nbsp;PathBufferSize:&nbsp;DWORD;&nbsp;PathRequiredSize:&nbsp;PDWORD):&nbsp;UINT;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupCopyError}<br><br>function&nbsp;SetupRenameErrorA(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;DialogTitle,&nbsp;SourceFile,<br>&nbsp;&nbsp;TargetFile:&nbsp;PAnsiChar;&nbsp;Win32ErrorCode:&nbsp;UINT;&nbsp;Style:&nbsp;DWORD):&nbsp;UINT;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupRenameErrorA}<br>function&nbsp;SetupRenameErrorW(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;DialogTitle,&nbsp;SourceFile,<br>&nbsp;&nbsp;TargetFile:&nbsp;PWideChar;&nbsp;Win32ErrorCode:&nbsp;UINT;&nbsp;Style:&nbsp;DWORD):&nbsp;UINT;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupRenameErrorW}<br>function&nbsp;SetupRenameError(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;DialogTitle,&nbsp;SourceFile,<br>&nbsp;&nbsp;TargetFile:&nbsp;PChar;&nbsp;Win32ErrorCode:&nbsp;UINT;&nbsp;Style:&nbsp;DWORD):&nbsp;UINT;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupRenameError}<br><br>function&nbsp;SetupDeleteErrorA(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;DialogTitle,&nbsp;File_:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;Win32ErrorCode:&nbsp;UINT;&nbsp;Style:&nbsp;DWORD):&nbsp;UINT;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDeleteErrorA}<br>function&nbsp;SetupDeleteErrorW(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;DialogTitle,&nbsp;File_:&nbsp;PWideChar;<br>&nbsp;&nbsp;Win32ErrorCode:&nbsp;UINT;&nbsp;Style:&nbsp;DWORD):&nbsp;UINT;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDeleteErrorW}<br>function&nbsp;SetupDeleteError(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;DialogTitle,&nbsp;File_:&nbsp;PChar;<br>&nbsp;&nbsp;Win32ErrorCode:&nbsp;UINT;&nbsp;Style:&nbsp;DWORD):&nbsp;UINT;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDeleteError}<br><br>{$IFDEF&nbsp;WIN2000}<br>function&nbsp;SetupBackupErrorA(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;DialogTitle,&nbsp;BackupFile,<br>&nbsp;&nbsp;TargetFile:&nbsp;PAnsiChar;&nbsp;Win32ErrorCode:&nbsp;UINT;&nbsp;Style:&nbsp;DWORD):&nbsp;UINT;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupBackupErrorA}<br>function&nbsp;SetupBackupErrorW(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;DialogTitle,&nbsp;BackupFile,<br>&nbsp;&nbsp;TargetFile:&nbsp;PWideChar;&nbsp;Win32ErrorCode:&nbsp;UINT;&nbsp;Style:&nbsp;DWORD):&nbsp;UINT;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupBackupErrorW}<br>function&nbsp;SetupBackupError(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;DialogTitle,&nbsp;BackupFile,<br>&nbsp;&nbsp;TargetFile:&nbsp;PChar;&nbsp;Win32ErrorCode:&nbsp;UINT;&nbsp;Style:&nbsp;DWORD):&nbsp;UINT;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupBackupError}<br>{$ENDIF}<br><br>function&nbsp;SetupSetDirectoryIdA(InfHandle:&nbsp;HINF;&nbsp;Id:&nbsp;DWORD;&nbsp;const&nbsp;Directory:&nbsp;PAnsiChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupSetDirectoryIdA}<br>function&nbsp;SetupSetDirectoryIdW(InfHandle:&nbsp;HINF;&nbsp;Id:&nbsp;DWORD;&nbsp;const&nbsp;Directory:&nbsp;PWideChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupSetDirectoryIdW}<br>function&nbsp;SetupSetDirectoryId(InfHandle:&nbsp;HINF;&nbsp;Id:&nbsp;DWORD;&nbsp;const&nbsp;Directory:&nbsp;PChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupSetDirectoryId}<br><br>function&nbsp;SetupSetDirectoryIdExA(InfHandle:&nbsp;HINF;&nbsp;Id:&nbsp;DWORD;&nbsp;const&nbsp;Directory:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;Flags:&nbsp;DWORD;&nbsp;Reserved1:&nbsp;DWORD;&nbsp;Reserved2:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupSetDirectoryIdExA}<br>function&nbsp;SetupSetDirectoryIdExW(InfHandle:&nbsp;HINF;&nbsp;Id:&nbsp;DWORD;&nbsp;const&nbsp;Directory:&nbsp;PWideChar;<br>&nbsp;&nbsp;Flags:&nbsp;DWORD;&nbsp;Reserved1:&nbsp;DWORD;&nbsp;Reserved2:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupSetDirectoryIdExW}<br>function&nbsp;SetupSetDirectoryIdEx(InfHandle:&nbsp;HINF;&nbsp;Id:&nbsp;DWORD;&nbsp;const&nbsp;Directory:&nbsp;PChar;<br>&nbsp;&nbsp;Flags:&nbsp;DWORD;&nbsp;Reserved1:&nbsp;DWORD;&nbsp;Reserved2:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupSetDirectoryIdEx}<br><br>function&nbsp;SetupGetSourceInfoA(InfHandle:&nbsp;HINF;&nbsp;SourceId,&nbsp;InfoDesired:&nbsp;UINT;<br>&nbsp;&nbsp;ReturnBuffer:&nbsp;PAnsiChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetSourceInfoA}<br>function&nbsp;SetupGetSourceInfoW(InfHandle:&nbsp;HINF;&nbsp;SourceId,&nbsp;InfoDesired:&nbsp;UINT;<br>&nbsp;&nbsp;ReturnBuffer:&nbsp;PWideChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetSourceInfoW}<br>function&nbsp;SetupGetSourceInfo(InfHandle:&nbsp;HINF;&nbsp;SourceId,&nbsp;InfoDesired:&nbsp;UINT;<br>&nbsp;&nbsp;ReturnBuffer:&nbsp;PChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetSourceInfo}<br><br>function&nbsp;SetupInstallFileA(InfHandle:&nbsp;HINF;&nbsp;INFCONTEXT:&nbsp;PInfContext;<br>&nbsp;&nbsp;const&nbsp;SourceFile,&nbsp;SourcePathRoot,&nbsp;DestinationName:&nbsp;PAnsiChar;&nbsp;CopyStyle:&nbsp;DWORD;<br>&nbsp;&nbsp;CopyMsgHandler:&nbsp;TSPFileCallbackA;&nbsp;Context:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupInstallFileA}<br>function&nbsp;SetupInstallFileW(InfHandle:&nbsp;HINF;&nbsp;INFCONTEXT:&nbsp;PInfContext;<br>&nbsp;&nbsp;const&nbsp;SourceFile,&nbsp;SourcePathRoot,&nbsp;DestinationName:&nbsp;PWideChar;&nbsp;CopyStyle:&nbsp;DWORD;<br>&nbsp;&nbsp;CopyMsgHandler:&nbsp;TSPFileCallbackW;&nbsp;Context:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupInstallFileW}<br>function&nbsp;SetupInstallFile(InfHandle:&nbsp;HINF;&nbsp;INFCONTEXT:&nbsp;PInfContext;<br>&nbsp;&nbsp;const&nbsp;SourceFile,&nbsp;SourcePathRoot,&nbsp;DestinationName:&nbsp;PChar;&nbsp;CopyStyle:&nbsp;DWORD;<br>&nbsp;&nbsp;CopyMsgHandler:&nbsp;TSPFileCallbackA;&nbsp;Context:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupInstallFile}<br><br>function&nbsp;SetupInstallFileExA(InfHandle:&nbsp;HINF;&nbsp;INFCONTEXT:&nbsp;PInfContext;<br>&nbsp;&nbsp;const&nbsp;SourceFile,&nbsp;SourcePathRoot,&nbsp;DestinationName:&nbsp;PAnsiChar;&nbsp;CopyStyle:&nbsp;DWORD;<br>&nbsp;&nbsp;CopyMsgHandler:&nbsp;TSPFileCallbackA;&nbsp;Context:&nbsp;Pointer;&nbsp;var&nbsp;FileWasInUse:&nbsp;LongBool):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupInstallFileExA}<br>function&nbsp;SetupInstallFileExW(InfHandle:&nbsp;HINF;&nbsp;INFCONTEXT:&nbsp;PInfContext;<br>&nbsp;&nbsp;const&nbsp;SourceFile,&nbsp;SourcePathRoot,&nbsp;DestinationName:&nbsp;PWideChar;&nbsp;CopyStyle:&nbsp;DWORD;<br>&nbsp;&nbsp;CopyMsgHandler:&nbsp;TSPFileCallbackW;&nbsp;Context:&nbsp;Pointer;&nbsp;var&nbsp;FileWasInUse:&nbsp;LongBool):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupInstallFileExW}<br>function&nbsp;SetupInstallFileEx(InfHandle:&nbsp;HINF;&nbsp;INFCONTEXT:&nbsp;PInfContext;<br>&nbsp;&nbsp;const&nbsp;SourceFile,&nbsp;SourcePathRoot,&nbsp;DestinationName:&nbsp;PChar;&nbsp;CopyStyle:&nbsp;DWORD;<br>&nbsp;&nbsp;CopyMsgHandler:&nbsp;TSPFileCallbackA;&nbsp;Context:&nbsp;Pointer;&nbsp;var&nbsp;FileWasInUse:&nbsp;LongBool):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupInstallFileEx}<br><br>function&nbsp;SetupOpenFileQueue:&nbsp;HSPFILEQ;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupOpenFileQueue}<br><br>function&nbsp;SetupCloseFileQueue(QueueHandle:&nbsp;HSPFILEQ):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupCloseFileQueue}<br><br>{$IFDEF&nbsp;WIN2000}<br>function&nbsp;SetupSetFileQueueAlternatePlatformA(QueueHandle:&nbsp;HSPFILEQ;<br>&nbsp;&nbsp;AlternatePlatformInfo:&nbsp;PSPAltPlatformInfo;<br>&nbsp;&nbsp;const&nbsp;AlternateDefaultCatalogFile:&nbsp;PAnsiChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupSetFileQueueAlternatePlatformA}<br>function&nbsp;SetupSetFileQueueAlternatePlatformW(QueueHandle:&nbsp;HSPFILEQ;<br>&nbsp;&nbsp;AlternatePlatformInfo:&nbsp;PSPAltPlatformInfo;<br>&nbsp;&nbsp;const&nbsp;AlternateDefaultCatalogFile:&nbsp;PWideChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupSetFileQueueAlternatePlatformW}<br>function&nbsp;SetupSetFileQueueAlternatePlatform(QueueHandle:&nbsp;HSPFILEQ;<br>&nbsp;&nbsp;AlternatePlatformInfo:&nbsp;PSPAltPlatformInfo;<br>&nbsp;&nbsp;const&nbsp;AlternateDefaultCatalogFile:&nbsp;PChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupSetFileQueueAlternatePlatform}<br>{$ENDIF}<br><br>function&nbsp;SetupSetPlatformPathOverrideA(const&nbsp;Override_:&nbsp;PAnsiChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupSetPlatformPathOverrideA}<br>function&nbsp;SetupSetPlatformPathOverrideW(const&nbsp;Override_:&nbsp;PWideChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupSetPlatformPathOverrideW}<br>function&nbsp;SetupSetPlatformPathOverride(const&nbsp;Override_:&nbsp;PChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupSetPlatformPathOverride}<br><br>function&nbsp;SetupQueueCopyA(QueueHandle:&nbsp;HSPFILEQ;&nbsp;const&nbsp;SourceRootPath,&nbsp;SourcePath,<br>&nbsp;&nbsp;SourceFilename,&nbsp;SourceDescription,&nbsp;SourceTagfile,&nbsp;TargetDirectory,<br>&nbsp;&nbsp;TargetFilename:&nbsp;PAnsiChar;&nbsp;CopyStyle:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueueCopyA}<br>function&nbsp;SetupQueueCopyW(QueueHandle:&nbsp;HSPFILEQ;&nbsp;const&nbsp;SourceRootPath,&nbsp;SourcePath,<br>&nbsp;&nbsp;SourceFilename,&nbsp;SourceDescription,&nbsp;SourceTagfile,&nbsp;TargetDirectory,<br>&nbsp;&nbsp;TargetFilename:&nbsp;PWideChar;&nbsp;CopyStyle:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueueCopyW}<br>function&nbsp;SetupQueueCopy(QueueHandle:&nbsp;HSPFILEQ;&nbsp;const&nbsp;SourceRootPath,&nbsp;SourcePath,<br>&nbsp;&nbsp;SourceFilename,&nbsp;SourceDescription,&nbsp;SourceTagfile,&nbsp;TargetDirectory,<br>&nbsp;&nbsp;TargetFilename:&nbsp;PChar;&nbsp;CopyStyle:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueueCopy}<br><br>{$IFDEF&nbsp;WIN2000}<br>function&nbsp;SetupQueueCopyIndirectA(var&nbsp;CopyParams:&nbsp;TSPFileCopyParamsA):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueueCopyIndirectA}<br>function&nbsp;SetupQueueCopyIndirectW(var&nbsp;CopyParams:&nbsp;TSPFileCopyParamsW):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueueCopyIndirectW}<br>function&nbsp;SetupQueueCopyIndirect(var&nbsp;CopyParams:&nbsp;TSPFileCopyParamsA):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueueCopyIndirect}<br>{$ENDIF}<br><br>function&nbsp;SetupQueueDefaultCopyA(QueueHandle:&nbsp;HSPFILEQ;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;const&nbsp;SourceRootPath,&nbsp;SourceFilename,&nbsp;TargetFilename:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;CopyStyle:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueueDefaultCopyA}<br>function&nbsp;SetupQueueDefaultCopyW(QueueHandle:&nbsp;HSPFILEQ;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;const&nbsp;SourceRootPath,&nbsp;SourceFilename,&nbsp;TargetFilename:&nbsp;PWideChar;<br>&nbsp;&nbsp;CopyStyle:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueueDefaultCopyW}<br>function&nbsp;SetupQueueDefaultCopy(QueueHandle:&nbsp;HSPFILEQ;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;const&nbsp;SourceRootPath,&nbsp;SourceFilename,&nbsp;TargetFilename:&nbsp;PChar;<br>&nbsp;&nbsp;CopyStyle:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueueDefaultCopy}<br><br>function&nbsp;SetupQueueCopySectionA(QueueHandle:&nbsp;HSPFILEQ;&nbsp;const&nbsp;SourceRootPath:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;InfHandle:&nbsp;HINF;&nbsp;ListInfHandle:&nbsp;HINF;&nbsp;const&nbsp;Section:&nbsp;PAnsiChar;&nbsp;CopyStyle:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueueCopySectionA}<br>function&nbsp;SetupQueueCopySectionW(QueueHandle:&nbsp;HSPFILEQ;&nbsp;const&nbsp;SourceRootPath:&nbsp;PWideChar;<br>&nbsp;&nbsp;InfHandle:&nbsp;HINF;&nbsp;ListInfHandle:&nbsp;HINF;&nbsp;const&nbsp;Section:&nbsp;PWideChar;&nbsp;CopyStyle:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueueCopySectionW}<br>function&nbsp;SetupQueueCopySection(QueueHandle:&nbsp;HSPFILEQ;&nbsp;const&nbsp;SourceRootPath:&nbsp;PChar;<br>&nbsp;&nbsp;InfHandle:&nbsp;HINF;&nbsp;ListInfHandle:&nbsp;HINF;&nbsp;const&nbsp;Section:&nbsp;PChar;&nbsp;CopyStyle:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueueCopySection}<br><br>function&nbsp;SetupQueueDeleteA(QueueHandle:&nbsp;HSPFILEQ;&nbsp;const&nbsp;PathPart1,&nbsp;PathPart2:&nbsp;PAnsiChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueueDeleteA}<br>function&nbsp;SetupQueueDeleteW(QueueHandle:&nbsp;HSPFILEQ;&nbsp;const&nbsp;PathPart1,&nbsp;PathPart2:&nbsp;PWideChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueueDeleteW}<br>function&nbsp;SetupQueueDelete(QueueHandle:&nbsp;HSPFILEQ;&nbsp;const&nbsp;PathPart1,&nbsp;PathPart2:&nbsp;PChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueueDelete}<br><br>function&nbsp;SetupQueueDeleteSectionA(QueueHandle:&nbsp;HSPFILEQ;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;ListInfHandle:&nbsp;HINF;&nbsp;const&nbsp;Section:&nbsp;PAnsiChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueueDeleteSectionA}<br>function&nbsp;SetupQueueDeleteSectionW(QueueHandle:&nbsp;HSPFILEQ;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;ListInfHandle:&nbsp;HINF;&nbsp;const&nbsp;Section:&nbsp;PWideChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueueDeleteSectionW}<br>function&nbsp;SetupQueueDeleteSection(QueueHandle:&nbsp;HSPFILEQ;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;ListInfHandle:&nbsp;HINF;&nbsp;const&nbsp;Section:&nbsp;PChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueueDeleteSection}<br><br>function&nbsp;SetupQueueRenameA(QueueHandle:&nbsp;HSPFILEQ;&nbsp;const&nbsp;SourcePath,<br>&nbsp;&nbsp;SourceFilename,&nbsp;TargetPath,&nbsp;TargetFilename:&nbsp;PAnsiChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueueRenameA}<br>function&nbsp;SetupQueueRenameW(QueueHandle:&nbsp;HSPFILEQ;&nbsp;const&nbsp;SourcePath,<br>&nbsp;&nbsp;SourceFilename,&nbsp;TargetPath,&nbsp;TargetFilename:&nbsp;PWideChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueueRenameW}<br>function&nbsp;SetupQueueRename(QueueHandle:&nbsp;HSPFILEQ;&nbsp;const&nbsp;SourcePath,<br>&nbsp;&nbsp;SourceFilename,&nbsp;TargetPath,&nbsp;TargetFilename:&nbsp;PChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueueRename}<br><br>function&nbsp;SetupQueueRenameSectionA(QueueHandle:&nbsp;HSPFILEQ;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;ListInfHandle:&nbsp;HINF;&nbsp;const&nbsp;Section:&nbsp;PAnsiChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueueRenameSectionA}<br>function&nbsp;SetupQueueRenameSectionW(QueueHandle:&nbsp;HSPFILEQ;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;ListInfHandle:&nbsp;HINF;&nbsp;const&nbsp;Section:&nbsp;PWideChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueueRenameSectionW}<br>function&nbsp;SetupQueueRenameSection(QueueHandle:&nbsp;HSPFILEQ;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;ListInfHandle:&nbsp;HINF;&nbsp;const&nbsp;Section:&nbsp;PChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueueRenameSection}<br><br>function&nbsp;SetupCommitFileQueueA(Owner:&nbsp;HWND;&nbsp;QueueHandle:&nbsp;HSPFILEQ;<br>&nbsp;&nbsp;MsgHandler:&nbsp;TSPFileCallbackA;&nbsp;Context:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupCommitFileQueueA}<br>function&nbsp;SetupCommitFileQueueW(Owner:&nbsp;HWND;&nbsp;QueueHandle:&nbsp;HSPFILEQ;<br>&nbsp;&nbsp;MsgHandler:&nbsp;TSPFileCallbackW;&nbsp;Context:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupCommitFileQueueW}<br>function&nbsp;SetupCommitFileQueue(Owner:&nbsp;HWND;&nbsp;QueueHandle:&nbsp;HSPFILEQ;<br>&nbsp;&nbsp;MsgHandler:&nbsp;TSPFileCallbackA;&nbsp;Context:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupCommitFileQueue}<br><br>function&nbsp;SetupScanFileQueueA(FileQueue:&nbsp;HSPFILEQ;&nbsp;Flags:&nbsp;DWORD;&nbsp;Window:&nbsp;HWND;<br>&nbsp;&nbsp;CallbackRoutine:&nbsp;TSPFileCallbackA;&nbsp;CallbackContext:&nbsp;Pointer;&nbsp;var&nbsp;Result:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupScanFileQueueA}<br>function&nbsp;SetupScanFileQueueW(FileQueue:&nbsp;HSPFILEQ;&nbsp;Flags:&nbsp;DWORD;&nbsp;Window:&nbsp;HWND;<br>&nbsp;&nbsp;CallbackRoutine:&nbsp;TSPFileCallbackW;&nbsp;CallbackContext:&nbsp;Pointer;&nbsp;var&nbsp;Result:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupScanFileQueueW}<br>function&nbsp;SetupScanFileQueue(FileQueue:&nbsp;HSPFILEQ;&nbsp;Flags:&nbsp;DWORD;&nbsp;Window:&nbsp;HWND;<br>&nbsp;&nbsp;CallbackRoutine:&nbsp;TSPFileCallbackA;&nbsp;CallbackContext:&nbsp;Pointer;&nbsp;var&nbsp;Result:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupScanFileQueue}<br><br>function&nbsp;SetupCopyOEMInfA(const&nbsp;SourceInfFileName,&nbsp;OEMSourceMediaLocation:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;OEMSourceMediaType,&nbsp;CopyStyle:&nbsp;DWORD;&nbsp;DestinationInfFileName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;DestinationInfFileNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;<br>&nbsp;&nbsp;DestinationInfFileNameComponent:&nbsp;PPASTR):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupCopyOEMInfA}<br>function&nbsp;SetupCopyOEMInfW(const&nbsp;SourceInfFileName,&nbsp;OEMSourceMediaLocation:&nbsp;PWideChar;<br>&nbsp;&nbsp;OEMSourceMediaType,&nbsp;CopyStyle:&nbsp;DWORD;&nbsp;DestinationInfFileName:&nbsp;PWideChar;<br>&nbsp;&nbsp;DestinationInfFileNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;<br>&nbsp;&nbsp;DestinationInfFileNameComponent:&nbsp;PPWSTR):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupCopyOEMInfW}<br>function&nbsp;SetupCopyOEMInf(const&nbsp;SourceInfFileName,&nbsp;OEMSourceMediaLocation:&nbsp;PChar;<br>&nbsp;&nbsp;OEMSourceMediaType,&nbsp;CopyStyle:&nbsp;DWORD;&nbsp;DestinationInfFileName:&nbsp;PChar;<br>&nbsp;&nbsp;DestinationInfFileNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;<br>&nbsp;&nbsp;DestinationInfFileNameComponent:&nbsp;PPSTR):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupCopyOEMInf}<br><br>//<br>//&nbsp;Disk&nbsp;space&nbsp;list&nbsp;APIs<br>//<br>function&nbsp;SetupCreateDiskSpaceListA(Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;DWORD;<br>&nbsp;&nbsp;Flags:&nbsp;UINT):&nbsp;HDSKSPC;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupCreateDiskSpaceListA}<br>function&nbsp;SetupCreateDiskSpaceListW(Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;DWORD;<br>&nbsp;&nbsp;Flags:&nbsp;UINT):&nbsp;HDSKSPC;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupCreateDiskSpaceListW}<br>function&nbsp;SetupCreateDiskSpaceList(Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;DWORD;<br>&nbsp;&nbsp;Flags:&nbsp;UINT):&nbsp;HDSKSPC;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupCreateDiskSpaceList}<br><br>function&nbsp;SetupDuplicateDiskSpaceListA(DiskSpace:&nbsp;HDSKSPC;&nbsp;Reserved1:&nbsp;Pointer;<br>&nbsp;&nbsp;Reserved2:&nbsp;DWORD;&nbsp;Flags:&nbsp;UINT):&nbsp;HDSKSPC;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDuplicateDiskSpaceListA}<br>function&nbsp;SetupDuplicateDiskSpaceListW(DiskSpace:&nbsp;HDSKSPC;&nbsp;Reserved1:&nbsp;Pointer;<br>&nbsp;&nbsp;Reserved2:&nbsp;DWORD;&nbsp;Flags:&nbsp;UINT):&nbsp;HDSKSPC;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDuplicateDiskSpaceListW}<br>function&nbsp;SetupDuplicateDiskSpaceList(DiskSpace:&nbsp;HDSKSPC;&nbsp;Reserved1:&nbsp;Pointer;<br>&nbsp;&nbsp;Reserved2:&nbsp;DWORD;&nbsp;Flags:&nbsp;UINT):&nbsp;HDSKSPC;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDuplicateDiskSpaceList}<br><br>function&nbsp;SetupDestroyDiskSpaceList(DiskSpace:&nbsp;HDSKSPC):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDestroyDiskSpaceList}<br><br>function&nbsp;SetupQueryDrivesInDiskSpaceListA(DiskSpace:&nbsp;HDSKSPC;&nbsp;ReturnBuffer:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueryDrivesInDiskSpaceListA}<br>function&nbsp;SetupQueryDrivesInDiskSpaceListW(DiskSpace:&nbsp;HDSKSPC;&nbsp;ReturnBuffer:&nbsp;PWideChar;<br>&nbsp;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueryDrivesInDiskSpaceListW}<br>function&nbsp;SetupQueryDrivesInDiskSpaceList(DiskSpace:&nbsp;HDSKSPC;&nbsp;ReturnBuffer:&nbsp;PChar;<br>&nbsp;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueryDrivesInDiskSpaceList}<br><br>function&nbsp;SetupQuerySpaceRequiredOnDriveA(DiskSpace:&nbsp;HDSKSPC;&nbsp;const&nbsp;DriveSpec:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;var&nbsp;SpaceRequired:&nbsp;Int64;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQuerySpaceRequiredOnDriveA}<br>function&nbsp;SetupQuerySpaceRequiredOnDriveW(DiskSpace:&nbsp;HDSKSPC;&nbsp;const&nbsp;DriveSpec:&nbsp;PWideChar;<br>&nbsp;&nbsp;var&nbsp;SpaceRequired:&nbsp;Int64;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQuerySpaceRequiredOnDriveW}<br>function&nbsp;SetupQuerySpaceRequiredOnDrive(DiskSpace:&nbsp;HDSKSPC;&nbsp;const&nbsp;DriveSpec:&nbsp;PChar;<br>&nbsp;&nbsp;var&nbsp;SpaceRequired:&nbsp;Int64;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQuerySpaceRequiredOnDrive}<br><br>function&nbsp;SetupAdjustDiskSpaceListA(DiskSpace:&nbsp;HDSKSPC;&nbsp;const&nbsp;DriveRoot:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;Amount:&nbsp;Int64;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupAdjustDiskSpaceListA}<br>function&nbsp;SetupAdjustDiskSpaceListW(DiskSpace:&nbsp;HDSKSPC;&nbsp;const&nbsp;DriveRoot:&nbsp;PWideChar;<br>&nbsp;&nbsp;Amount:&nbsp;Int64;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupAdjustDiskSpaceListW}<br>function&nbsp;SetupAdjustDiskSpaceList(DiskSpace:&nbsp;HDSKSPC;&nbsp;const&nbsp;DriveRoot:&nbsp;PChar;<br>&nbsp;&nbsp;Amount:&nbsp;Int64;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupAdjustDiskSpaceList}<br><br>function&nbsp;SetupAddToDiskSpaceListA(DiskSpace:&nbsp;HDSKSPC;&nbsp;const&nbsp;TargetFilespec:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;FileSize:&nbsp;Int64;&nbsp;Operation:&nbsp;UINT;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupAddToDiskSpaceListA}<br>function&nbsp;SetupAddToDiskSpaceListW(DiskSpace:&nbsp;HDSKSPC;&nbsp;const&nbsp;TargetFilespec:&nbsp;PWideChar;<br>&nbsp;&nbsp;FileSize:&nbsp;Int64;&nbsp;Operation:&nbsp;UINT;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupAddToDiskSpaceListW}<br>function&nbsp;SetupAddToDiskSpaceList(DiskSpace:&nbsp;HDSKSPC;&nbsp;const&nbsp;TargetFilespec:&nbsp;PChar;<br>&nbsp;&nbsp;FileSize:&nbsp;Int64;&nbsp;Operation:&nbsp;UINT;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupAddToDiskSpaceList}<br><br>function&nbsp;SetupAddSectionToDiskSpaceListA(DiskSpace:&nbsp;HDSKSPC;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;ListInfHandle:&nbsp;HINF;&nbsp;const&nbsp;SectionName:&nbsp;PAnsiChar;&nbsp;Operation:&nbsp;UINT;<br>&nbsp;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupAddSectionToDiskSpaceListA}<br>function&nbsp;SetupAddSectionToDiskSpaceListW(DiskSpace:&nbsp;HDSKSPC;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;ListInfHandle:&nbsp;HINF;&nbsp;const&nbsp;SectionName:&nbsp;PWideChar;&nbsp;Operation:&nbsp;UINT;<br>&nbsp;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupAddSectionToDiskSpaceListW}<br>function&nbsp;SetupAddSectionToDiskSpaceList(DiskSpace:&nbsp;HDSKSPC;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;ListInfHandle:&nbsp;HINF;&nbsp;const&nbsp;SectionName:&nbsp;PChar;&nbsp;Operation:&nbsp;UINT;<br>&nbsp;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupAddSectionToDiskSpaceList}<br><br>function&nbsp;SetupAddInstallSectionToDiskSpaceListA(DiskSpace:&nbsp;HDSKSPC;<br>&nbsp;&nbsp;InfHandle:&nbsp;HINF;&nbsp;LayoutInfHandle:&nbsp;HINF;&nbsp;const&nbsp;SectionName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupAddInstallSectionToDiskSpaceListA}<br>function&nbsp;SetupAddInstallSectionToDiskSpaceListW(DiskSpace:&nbsp;HDSKSPC;<br>&nbsp;&nbsp;InfHandle:&nbsp;HINF;&nbsp;LayoutInfHandle:&nbsp;HINF;&nbsp;const&nbsp;SectionName:&nbsp;PWideChar;<br>&nbsp;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupAddInstallSectionToDiskSpaceListW}<br>function&nbsp;SetupAddInstallSectionToDiskSpaceList(DiskSpace:&nbsp;HDSKSPC;<br>&nbsp;&nbsp;InfHandle:&nbsp;HINF;&nbsp;LayoutInfHandle:&nbsp;HINF;&nbsp;const&nbsp;SectionName:&nbsp;PChar;<br>&nbsp;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupAddInstallSectionToDiskSpaceList}<br><br>function&nbsp;SetupRemoveFromDiskSpaceListA(DiskSpace:&nbsp;HDSKSPC;&nbsp;const&nbsp;TargetFilespec:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;Operation:&nbsp;UINT;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupRemoveFromDiskSpaceListA}<br>function&nbsp;SetupRemoveFromDiskSpaceListW(DiskSpace:&nbsp;HDSKSPC;&nbsp;const&nbsp;TargetFilespec:&nbsp;PWideChar;<br>&nbsp;&nbsp;Operation:&nbsp;UINT;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupRemoveFromDiskSpaceListW}<br>function&nbsp;SetupRemoveFromDiskSpaceList(DiskSpace:&nbsp;HDSKSPC;&nbsp;const&nbsp;TargetFilespec:&nbsp;PChar;<br>&nbsp;&nbsp;Operation:&nbsp;UINT;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupRemoveFromDiskSpaceList}<br><br>function&nbsp;SetupRemoveSectionFromDiskSpaceListA(DiskSpace:&nbsp;HDSKSPC;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;ListInfHandle:&nbsp;HINF;&nbsp;const&nbsp;SectionName:&nbsp;PAnsiChar;&nbsp;Operation:&nbsp;UINT;&nbsp;Reserved1:&nbsp;Pointer;<br>&nbsp;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupRemoveSectionFromDiskSpaceListA}<br>function&nbsp;SetupRemoveSectionFromDiskSpaceListW(DiskSpace:&nbsp;HDSKSPC;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;ListInfHandle:&nbsp;HINF;&nbsp;const&nbsp;SectionName:&nbsp;PWideChar;&nbsp;Operation:&nbsp;UINT;&nbsp;Reserved1:&nbsp;Pointer;<br>&nbsp;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupRemoveSectionFromDiskSpaceListW}<br>function&nbsp;SetupRemoveSectionFromDiskSpaceList(DiskSpace:&nbsp;HDSKSPC;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;ListInfHandle:&nbsp;HINF;&nbsp;const&nbsp;SectionName:&nbsp;PChar;&nbsp;Operation:&nbsp;UINT;&nbsp;Reserved1:&nbsp;Pointer;<br>&nbsp;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupRemoveSectionFromDiskSpaceList}<br><br>function&nbsp;SetupRemoveInstallSectionFromDiskSpaceListA(DiskSpace:&nbsp;HDSKSPC;<br>&nbsp;&nbsp;InfHandle:&nbsp;HINF;&nbsp;LayoutInfHandle:&nbsp;HINF;&nbsp;const&nbsp;SectionName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupRemoveInstallSectionFromDiskSpaceListA}<br>function&nbsp;SetupRemoveInstallSectionFromDiskSpaceListW(DiskSpace:&nbsp;HDSKSPC;<br>&nbsp;&nbsp;InfHandle:&nbsp;HINF;&nbsp;LayoutInfHandle:&nbsp;HINF;&nbsp;const&nbsp;SectionName:&nbsp;PWideChar;<br>&nbsp;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupRemoveInstallSectionFromDiskSpaceListW}<br>function&nbsp;SetupRemoveInstallSectionFromDiskSpaceList(DiskSpace:&nbsp;HDSKSPC;<br>&nbsp;&nbsp;InfHandle:&nbsp;HINF;&nbsp;LayoutInfHandle:&nbsp;HINF;&nbsp;const&nbsp;SectionName:&nbsp;PChar;<br>&nbsp;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupRemoveInstallSectionFromDiskSpaceList}<br><br>//<br>//&nbsp;Cabinet&nbsp;APIs<br>//<br><br>function&nbsp;SetupIterateCabinetA(const&nbsp;CabinetFile:&nbsp;PAnsiChar;&nbsp;Reserved:&nbsp;DWORD;<br>&nbsp;&nbsp;MsgHandler:&nbsp;TSPFileCallbackA;&nbsp;Context:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupIterateCabinetA}<br>function&nbsp;SetupIterateCabinetW(const&nbsp;CabinetFile:&nbsp;PWideChar;&nbsp;Reserved:&nbsp;DWORD;<br>&nbsp;&nbsp;MsgHandler:&nbsp;TSPFileCallbackW;&nbsp;Context:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupIterateCabinetW}<br>function&nbsp;SetupIterateCabinet(const&nbsp;CabinetFile:&nbsp;PChar;&nbsp;Reserved:&nbsp;DWORD;<br>&nbsp;&nbsp;MsgHandler:&nbsp;TSPFileCallbackA;&nbsp;Context:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupIterateCabinet}<br><br>function&nbsp;SetupPromptReboot(FileQueue:&nbsp;HSPFILEQ;&nbsp;Owner:&nbsp;HWND;&nbsp;ScanOnly:&nbsp;LongBool):&nbsp;Integer;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupPromptReboot}<br><br>function&nbsp;SetupInitDefaultQueueCallback(OwnerWindow:&nbsp;HWND):&nbsp;Pointer;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupInitDefaultQueueCallback}<br><br>function&nbsp;SetupInitDefaultQueueCallbackEx(OwnerWindow:&nbsp;HWND;&nbsp;AlternateProgressWindow:&nbsp;HWND;<br>&nbsp;&nbsp;ProgressMessage:&nbsp;UINT;&nbsp;Reserved1:&nbsp;DWORD;&nbsp;Reserved2:&nbsp;Pointer):&nbsp;Pointer;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupInitDefaultQueueCallbackEx}<br><br>procedure&nbsp;SetupTermDefaultQueueCallback(Context:&nbsp;Pointer);&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupTermDefaultQueueCallback}<br><br>function&nbsp;SetupDefaultQueueCallbackA(Context:&nbsp;Pointer;&nbsp;Notification:&nbsp;UINT;<br>&nbsp;&nbsp;Param1,&nbsp;Param2:&nbsp;UINT_PTR):&nbsp;UINT;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDefaultQueueCallbackA}<br>function&nbsp;SetupDefaultQueueCallbackW(Context:&nbsp;Pointer;&nbsp;Notification:&nbsp;UINT;<br>&nbsp;&nbsp;Param1,&nbsp;Param2:&nbsp;UINT_PTR):&nbsp;UINT;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDefaultQueueCallbackW}<br>function&nbsp;SetupDefaultQueueCallback(Context:&nbsp;Pointer;&nbsp;Notification:&nbsp;UINT;<br>&nbsp;&nbsp;Param1,&nbsp;Param2:&nbsp;UINT_PTR):&nbsp;UINT;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDefaultQueueCallback}<br><br>//<br>//&nbsp;The&nbsp;INF&nbsp;may&nbsp;supply&nbsp;any&nbsp;arbitrary&nbsp;data&nbsp;type&nbsp;ordinal&nbsp;in&nbsp;the&nbsp;highword&nbsp;except<br>//&nbsp;for&nbsp;the&nbsp;following:&nbsp;REG_NONE,&nbsp;REG_SZ,&nbsp;REG_EXPAND_SZ,&nbsp;REG_MULTI_SZ.&nbsp;If&nbsp;this<br>//&nbsp;technique&nbsp;is&nbsp;used,&nbsp;then&nbsp;the&nbsp;data&nbsp;is&nbsp;given&nbsp;in&nbsp;binary&nbsp;format,&nbsp;one&nbsp;byte&nbsp;per<br>//&nbsp;field.<br>//<br><br>function&nbsp;SetupInstallFromInfSectionA(Owner:&nbsp;HWND;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;const&nbsp;SectionName:&nbsp;PAnsiChar;&nbsp;Flags:&nbsp;UINT;&nbsp;RelativeKeyRoot:&nbsp;HKEY;<br>&nbsp;&nbsp;const&nbsp;SourceRootPath:&nbsp;PAnsiChar;&nbsp;CopyFlags:&nbsp;UINT;&nbsp;MsgHandler:&nbsp;TSPFileCallbackA;<br>&nbsp;&nbsp;Context:&nbsp;Pointer;&nbsp;DeviceInfoSet:&nbsp;HDEVINFO;&nbsp;DeviceIn:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupInstallFromInfSectionA}<br>function&nbsp;SetupInstallFromInfSectionW(Owner:&nbsp;HWND;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;const&nbsp;SectionName:&nbsp;PWideChar;&nbsp;Flags:&nbsp;UINT;&nbsp;RelativeKeyRoot:&nbsp;HKEY;<br>&nbsp;&nbsp;const&nbsp;SourceRootPath:&nbsp;PWideChar;&nbsp;CopyFlags:&nbsp;UINT;&nbsp;MsgHandler:&nbsp;TSPFileCallbackW;<br>&nbsp;&nbsp;Context:&nbsp;Pointer;&nbsp;DeviceInfoSet:&nbsp;HDEVINFO;&nbsp;DeviceIn:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupInstallFromInfSectionW}<br>function&nbsp;SetupInstallFromInfSection(Owner:&nbsp;HWND;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;const&nbsp;SectionName:&nbsp;PChar;&nbsp;Flags:&nbsp;UINT;&nbsp;RelativeKeyRoot:&nbsp;HKEY;<br>&nbsp;&nbsp;const&nbsp;SourceRootPath:&nbsp;PChar;&nbsp;CopyFlags:&nbsp;UINT;&nbsp;MsgHandler:&nbsp;TSPFileCallbackA;<br>&nbsp;&nbsp;Context:&nbsp;Pointer;&nbsp;DeviceInfoSet:&nbsp;HDEVINFO;&nbsp;DeviceIn:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupInstallFromInfSection}<br><br>function&nbsp;SetupInstallFilesFromInfSectionA(InfHandle:&nbsp;HINF;&nbsp;LayoutInfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;FileQueue:&nbsp;HSPFILEQ;&nbsp;const&nbsp;SectionName,&nbsp;SourceRootPath:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;CopyFlags:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupInstallFilesFromInfSectionA}<br>function&nbsp;SetupInstallFilesFromInfSectionW(InfHandle:&nbsp;HINF;&nbsp;LayoutInfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;FileQueue:&nbsp;HSPFILEQ;&nbsp;const&nbsp;SectionName,&nbsp;SourceRootPath:&nbsp;PWideChar;<br>&nbsp;&nbsp;CopyFlags:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupInstallFilesFromInfSectionW}<br>function&nbsp;SetupInstallFilesFromInfSection(InfHandle:&nbsp;HINF;&nbsp;LayoutInfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;FileQueue:&nbsp;HSPFILEQ;&nbsp;const&nbsp;SectionName,&nbsp;SourceRootPath:&nbsp;PChar;<br>&nbsp;&nbsp;CopyFlags:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupInstallFilesFromInfSection}<br><br>function&nbsp;SetupInstallServicesFromInfSectionA(InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;const&nbsp;SectionName:&nbsp;PAnsiChar;&nbsp;Flags:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupInstallServicesFromInfSectionA}<br>function&nbsp;SetupInstallServicesFromInfSectionW(InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;const&nbsp;SectionName:&nbsp;PWideChar;&nbsp;Flags:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupInstallServicesFromInfSectionW}<br>function&nbsp;SetupInstallServicesFromInfSection(InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;const&nbsp;SectionName:&nbsp;PChar;&nbsp;Flags:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupInstallServicesFromInfSection}<br><br>function&nbsp;SetupInstallServicesFromInfSectionExA(InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;const&nbsp;SectionName:&nbsp;PAnsiChar;&nbsp;Flags:&nbsp;DWORD;&nbsp;DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;Reserved1,&nbsp;Reserved2:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupInstallServicesFromInfSectionExA}<br>function&nbsp;SetupInstallServicesFromInfSectionExW(InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;const&nbsp;SectionName:&nbsp;PWideChar;&nbsp;Flags:&nbsp;DWORD;&nbsp;DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;Reserved1,&nbsp;Reserved2:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupInstallServicesFromInfSectionExW}<br>function&nbsp;SetupInstallServicesFromInfSectionEx(InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;const&nbsp;SectionName:&nbsp;PChar;&nbsp;Flags:&nbsp;DWORD;&nbsp;DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;Reserved1,&nbsp;Reserved2:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupInstallServicesFromInfSectionEx}<br><br>//<br>//&nbsp;Define&nbsp;handle&nbsp;type&nbsp;for&nbsp;Setup&nbsp;file&nbsp;log.<br>//<br><br>type<br>&nbsp;&nbsp;HSPFILELOG&nbsp;=&nbsp;Pointer;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;HSPFILELOG}<br><br>function&nbsp;SetupInitializeFileLogA(const&nbsp;LogFileName:&nbsp;PAnsiChar;&nbsp;Flags:&nbsp;DWORD):&nbsp;HSPFILELOG;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupInitializeFileLogA}<br>function&nbsp;SetupInitializeFileLogW(const&nbsp;LogFileName:&nbsp;PWideChar;&nbsp;Flags:&nbsp;DWORD):&nbsp;HSPFILELOG;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupInitializeFileLogW}<br>function&nbsp;SetupInitializeFileLog(const&nbsp;LogFileName:&nbsp;PChar;&nbsp;Flags:&nbsp;DWORD):&nbsp;HSPFILELOG;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupInitializeFileLog}<br><br>function&nbsp;SetupTerminateFileLog(FileLogHandle:&nbsp;HSPFILELOG):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupTerminateFileLog}<br><br>function&nbsp;SetupLogFileA(FileLogHandle:&nbsp;HSPFILELOG;&nbsp;const&nbsp;LogSectionName,<br>&nbsp;&nbsp;SourceFilename,&nbsp;TargetFilename:&nbsp;PAnsiChar;&nbsp;Checksum:&nbsp;DWORD;&nbsp;DiskTagfile,<br>&nbsp;&nbsp;DiskDescription,&nbsp;OtherInfo:&nbsp;PAnsiChar;&nbsp;Flags:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupLogFileA}<br>function&nbsp;SetupLogFileW(FileLogHandle:&nbsp;HSPFILELOG;&nbsp;const&nbsp;LogSectionName,<br>&nbsp;&nbsp;SourceFilename,&nbsp;TargetFilename:&nbsp;PWideChar;&nbsp;Checksum:&nbsp;DWORD;&nbsp;DiskTagfile,<br>&nbsp;&nbsp;DiskDescription,&nbsp;OtherInfo:&nbsp;PWideChar;&nbsp;Flags:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupLogFileW}<br>function&nbsp;SetupLogFile(FileLogHandle:&nbsp;HSPFILELOG;&nbsp;const&nbsp;LogSectionName,<br>&nbsp;&nbsp;SourceFilename,&nbsp;TargetFilename:&nbsp;PChar;&nbsp;Checksum:&nbsp;DWORD;&nbsp;DiskTagfile,<br>&nbsp;&nbsp;DiskDescription,&nbsp;OtherInfo:&nbsp;PChar;&nbsp;Flags:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupLogFile}<br><br>function&nbsp;SetupRemoveFileLogEntryA(FileLogHandle:&nbsp;HSPFILELOG;<br>&nbsp;&nbsp;const&nbsp;LogSectionName:&nbsp;PAnsiChar;&nbsp;const&nbsp;TargetFilename:&nbsp;PAnsiChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupRemoveFileLogEntryA}<br>function&nbsp;SetupRemoveFileLogEntryW(FileLogHandle:&nbsp;HSPFILELOG;<br>&nbsp;&nbsp;const&nbsp;LogSectionName:&nbsp;PWideChar;&nbsp;const&nbsp;TargetFilename:&nbsp;PWideChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupRemoveFileLogEntryW}<br>function&nbsp;SetupRemoveFileLogEntry(FileLogHandle:&nbsp;HSPFILELOG;<br>&nbsp;&nbsp;const&nbsp;LogSectionName:&nbsp;PChar;&nbsp;const&nbsp;TargetFilename:&nbsp;PChar):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupRemoveFileLogEntry}<br><br>function&nbsp;SetupQueryFileLogA(FileLogHandle:&nbsp;HSPFILELOG;&nbsp;const&nbsp;LogSectionName,<br>&nbsp;&nbsp;TargetFilename:&nbsp;PAnsiChar;&nbsp;DesiredInfo:&nbsp;SetupFileLogInfo;&nbsp;DataOut:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueryFileLogA}<br>function&nbsp;SetupQueryFileLogW(FileLogHandle:&nbsp;HSPFILELOG;&nbsp;const&nbsp;LogSectionName,<br>&nbsp;&nbsp;TargetFilename:&nbsp;PWideChar;&nbsp;DesiredInfo:&nbsp;SetupFileLogInfo;&nbsp;DataOut:&nbsp;PWideChar;<br>&nbsp;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueryFileLogW}<br>function&nbsp;SetupQueryFileLog(FileLogHandle:&nbsp;HSPFILELOG;&nbsp;const&nbsp;LogSectionName,<br>&nbsp;&nbsp;TargetFilename:&nbsp;PChar;&nbsp;DesiredInfo:&nbsp;SetupFileLogInfo;&nbsp;DataOut:&nbsp;PChar;<br>&nbsp;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupQueryFileLog}<br><br>//<br>//&nbsp;Text&nbsp;logging&nbsp;APIs<br>//<br><br>function&nbsp;SetupOpenLog(Erase:&nbsp;LongBool):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupOpenLog}<br><br>function&nbsp;SetupLogErrorA(const&nbsp;MessageString:&nbsp;PAnsiChar;&nbsp;Severity:&nbsp;LogSeverity):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupLogErrorA}<br>function&nbsp;SetupLogErrorW(const&nbsp;MessageString:&nbsp;PWideChar;&nbsp;Severity:&nbsp;LogSeverity):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupLogErrorW}<br>function&nbsp;SetupLogError(const&nbsp;MessageString:&nbsp;PChar;&nbsp;Severity:&nbsp;LogSeverity):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupLogError}<br><br>procedure&nbsp;SetupCloseLog;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupCloseLog}<br><br>//<br>//&nbsp;Backup&nbsp;Information&nbsp;API<br>//<br><br>{$IFDEF&nbsp;WIN2000}<br>function&nbsp;SetupGetBackupInformationA(QueueHandle:&nbsp;HSPFILEQ;<br>&nbsp;&nbsp;var&nbsp;BackupParams:&nbsp;TSPBackupQueueParamsA):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetBackupInformationA}<br>function&nbsp;SetupGetBackupInformationW(QueueHandle:&nbsp;HSPFILEQ;<br>&nbsp;&nbsp;var&nbsp;BackupParams:&nbsp;TSPBackupQueueParamsW):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetBackupInformationW}<br>function&nbsp;SetupGetBackupInformation(QueueHandle:&nbsp;HSPFILEQ;<br>&nbsp;&nbsp;var&nbsp;BackupParams:&nbsp;TSPBackupQueueParamsA):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupGetBackupInformation}<br>{$ENDIF}<br><br>//<br>//&nbsp;Device&nbsp;Installer&nbsp;APIs<br>//<br><br>function&nbsp;SetupDiCreateDeviceInfoList(ClassGuid:&nbsp;PGUID;&nbsp;hwndParent:&nbsp;HWND):&nbsp;HDEVINFO;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiCreateDeviceInfoList}<br><br>function&nbsp;SetupDiCreateDeviceInfoListExA(ClassGuid:&nbsp;PGUID;&nbsp;hwndParent:&nbsp;HWND;<br>&nbsp;&nbsp;const&nbsp;MachineName:&nbsp;PAnsiChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;HDEVINFO;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiCreateDeviceInfoListExA}<br>function&nbsp;SetupDiCreateDeviceInfoListExW(ClassGuid:&nbsp;PGUID;&nbsp;hwndParent:&nbsp;HWND;<br>&nbsp;&nbsp;const&nbsp;MachineName:&nbsp;PWideChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;HDEVINFO;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiCreateDeviceInfoListExW}<br>function&nbsp;SetupDiCreateDeviceInfoListEx(ClassGuid:&nbsp;PGUID;&nbsp;hwndParent:&nbsp;HWND;<br>&nbsp;&nbsp;const&nbsp;MachineName:&nbsp;PChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;HDEVINFO;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiCreateDeviceInfoListEx}<br><br>function&nbsp;SetupDiGetDeviceInfoListClass(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;ClassGuid:&nbsp;TGUID):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetDeviceInfoListClass}<br><br>function&nbsp;SetupDiGetDeviceInfoListDetailA(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoSetDetailData:&nbsp;TSPDevInfoListDetailDataA):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetDeviceInfoListDetailA}<br>function&nbsp;SetupDiGetDeviceInfoListDetailW(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoSetDetailData:&nbsp;TSPDevInfoListDetailDataW):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetDeviceInfoListDetailW}<br>function&nbsp;SetupDiGetDeviceInfoListDetail(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoSetDetailData:&nbsp;TSPDevInfoListDetailDataA):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetDeviceInfoListDetail}<br><br>function&nbsp;SetupDiCreateDeviceInfoA(DeviceInfoSet:&nbsp;HDEVINFO;&nbsp;const&nbsp;DeviceName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;var&nbsp;ClassGuid:&nbsp;TGUID;&nbsp;const&nbsp;DeviceDescription:&nbsp;PAnsiChar;&nbsp;hwndParent:&nbsp;HWND;<br>&nbsp;&nbsp;CreationFlags:&nbsp;DWORD;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiCreateDeviceInfoA}<br><br>function&nbsp;SetupDiCreateDeviceInfoW(DeviceInfoSet:&nbsp;HDEVINFO;&nbsp;const&nbsp;DeviceName:&nbsp;PWideChar;<br>&nbsp;&nbsp;var&nbsp;ClassGuid:&nbsp;TGUID;&nbsp;const&nbsp;DeviceDescription:&nbsp;PWideChar;&nbsp;hwndParent:&nbsp;HWND;<br>&nbsp;&nbsp;CreationFlags:&nbsp;DWORD;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiCreateDeviceInfoW}<br><br>function&nbsp;SetupDiCreateDeviceInfo(DeviceInfoSet:&nbsp;HDEVINFO;&nbsp;const&nbsp;DeviceName:&nbsp;PChar;<br>&nbsp;&nbsp;var&nbsp;ClassGuid:&nbsp;TGUID;&nbsp;const&nbsp;DeviceDescription:&nbsp;PChar;&nbsp;hwndParent:&nbsp;HWND;<br>&nbsp;&nbsp;CreationFlags:&nbsp;DWORD;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiCreateDeviceInfo}<br><br>function&nbsp;SetupDiOpenDeviceInfoA(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;const&nbsp;DeviceInstanceId:&nbsp;PAnsiChar;&nbsp;hwndParent:&nbsp;HWND;&nbsp;OpenFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiOpenDeviceInfoA}<br>function&nbsp;SetupDiOpenDeviceInfoW(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;const&nbsp;DeviceInstanceId:&nbsp;PWideChar;&nbsp;hwndParent:&nbsp;HWND;&nbsp;OpenFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiOpenDeviceInfoW}<br>function&nbsp;SetupDiOpenDeviceInfo(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;const&nbsp;DeviceInstanceId:&nbsp;PChar;&nbsp;hwndParent:&nbsp;HWND;&nbsp;OpenFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiOpenDeviceInfo}<br><br>function&nbsp;SetupDiGetDeviceInstanceIdA(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;DeviceInstanceId:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;DeviceInstanceIdSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetDeviceInstanceIdA}<br>function&nbsp;SetupDiGetDeviceInstanceIdW(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;DeviceInstanceId:&nbsp;PWideChar;<br>&nbsp;&nbsp;DeviceInstanceIdSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetDeviceInstanceIdW}<br>function&nbsp;SetupDiGetDeviceInstanceId(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;DeviceInstanceId:&nbsp;PChar;<br>&nbsp;&nbsp;DeviceInstanceIdSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetDeviceInstanceId}<br><br>function&nbsp;SetupDiDeleteDeviceInfo(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiDeleteDeviceInfo}<br><br>function&nbsp;SetupDiEnumDeviceInfo(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;MemberIndex:&nbsp;DWORD;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiEnumDeviceInfo}<br><br>function&nbsp;SetupDiDestroyDeviceInfoList(DeviceInfoSet:&nbsp;HDEVINFO):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiDestroyDeviceInfoList}<br><br>function&nbsp;SetupDiEnumDeviceInterfaces(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;const&nbsp;InterfaceClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;MemberIndex:&nbsp;DWORD;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiEnumDeviceInterfaces}<br><br>//<br>//&nbsp;Backward&nbsp;compatibility--do&nbsp;not&nbsp;use<br>//<br><br>function&nbsp;SetupDiEnumInterfaceDevice(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;const&nbsp;InterfaceClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;MemberIndex:&nbsp;DWORD;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiEnumDeviceInterfaces}<br><br>function&nbsp;SetupDiCreateDeviceInterfaceA(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;var&nbsp;InterfaceClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;const&nbsp;ReferenceString:&nbsp;PAnsiChar;&nbsp;CreationFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiCreateDeviceInterfaceA}<br>function&nbsp;SetupDiCreateDeviceInterfaceW(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;var&nbsp;InterfaceClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;const&nbsp;ReferenceString:&nbsp;PWideChar;&nbsp;CreationFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiCreateDeviceInterfaceW}<br>function&nbsp;SetupDiCreateDeviceInterface(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;var&nbsp;InterfaceClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;const&nbsp;ReferenceString:&nbsp;PChar;&nbsp;CreationFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiCreateDeviceInterface}<br><br>//<br>//&nbsp;Backward&nbsp;compatibility--do&nbsp;not&nbsp;use.<br>//<br><br>function&nbsp;SetupDiCreateInterfaceDeviceA(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;var&nbsp;InterfaceClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;const&nbsp;ReferenceString:&nbsp;PAnsiChar;&nbsp;CreationFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiCreateInterfaceDeviceA}<br>function&nbsp;SetupDiCreateInterfaceDeviceW(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;var&nbsp;InterfaceClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;const&nbsp;ReferenceString:&nbsp;PWideChar;&nbsp;CreationFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiCreateInterfaceDeviceW}<br>function&nbsp;SetupDiCreateInterfaceDevice(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;var&nbsp;InterfaceClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;const&nbsp;ReferenceString:&nbsp;PChar;&nbsp;CreationFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiCreateInterfaceDevice}<br><br>function&nbsp;SetupDiOpenDeviceInterfaceA(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;const&nbsp;DevicePath:&nbsp;PAnsiChar;&nbsp;OpenFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiOpenDeviceInterfaceA}<br>function&nbsp;SetupDiOpenDeviceInterfaceW(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;const&nbsp;DevicePath:&nbsp;PWideChar;&nbsp;OpenFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiOpenDeviceInterfaceW}<br>function&nbsp;SetupDiOpenDeviceInterface(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;const&nbsp;DevicePath:&nbsp;PChar;&nbsp;OpenFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiOpenDeviceInterface}<br><br>//<br>//&nbsp;Backward&nbsp;compatibility--do&nbsp;not&nbsp;use<br>//<br><br>function&nbsp;SetupDiOpenInterfaceDeviceA(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;const&nbsp;DevicePath:&nbsp;PAnsiChar;&nbsp;OpenFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiOpenInterfaceDeviceA}<br>function&nbsp;SetupDiOpenInterfaceDeviceW(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;const&nbsp;DevicePath:&nbsp;PWideChar;&nbsp;OpenFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiOpenInterfaceDeviceW}<br>function&nbsp;SetupDiOpenInterfaceDevice(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;const&nbsp;DevicePath:&nbsp;PChar;&nbsp;OpenFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiOpenInterfaceDevice}<br><br>function&nbsp;SetupDiGetDeviceInterfaceAlias(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData;&nbsp;var&nbsp;AliasInterfaceClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;var&nbsp;AliasDeviceInterfaceData:&nbsp;TSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetDeviceInterfaceAlias}<br><br>//<br>//&nbsp;Backward&nbsp;compatibility--do&nbsp;not&nbsp;use.<br>//<br><br>function&nbsp;SetupDiGetInterfaceDeviceAlias(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData;<br>&nbsp;&nbsp;var&nbsp;AliasInterfaceClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;var&nbsp;AliasDeviceInterfaceData:&nbsp;TSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetInterfaceDeviceAlias}<br><br>function&nbsp;SetupDiDeleteDeviceInterfaceData(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiDeleteDeviceInterfaceData}<br><br>//<br>//&nbsp;Backward&nbsp;compatibility--do&nbsp;not&nbsp;use.<br>//<br><br>function&nbsp;SetupDiDeleteInterfaceDeviceData(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiDeleteInterfaceDeviceData}<br><br>function&nbsp;SetupDiRemoveDeviceInterface(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiRemoveDeviceInterface}<br><br>//<br>//&nbsp;Backward&nbsp;compatibility--do&nbsp;not&nbsp;use.<br>//<br><br>function&nbsp;SetupDiRemoveInterfaceDevice(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiRemoveInterfaceDevice}<br><br>function&nbsp;SetupDiGetDeviceInterfaceDetailA(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData;<br>&nbsp;&nbsp;DeviceInterfaceDetailData:&nbsp;PSPDeviceInterfaceDetailDataA;<br>&nbsp;&nbsp;DeviceInterfaceDetailDataSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD;<br>&nbsp;&nbsp;Device:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetDeviceInterfaceDetailA}<br>function&nbsp;SetupDiGetDeviceInterfaceDetailW(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData;<br>&nbsp;&nbsp;DeviceInterfaceDetailData:&nbsp;PSPDeviceInterfaceDetailDataW;<br>&nbsp;&nbsp;DeviceInterfaceDetailDataSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD;<br>&nbsp;&nbsp;Device:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetDeviceInterfaceDetailW}<br>function&nbsp;SetupDiGetDeviceInterfaceDetail(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData;<br>&nbsp;&nbsp;DeviceInterfaceDetailData:&nbsp;PSPDeviceInterfaceDetailDataA;<br>&nbsp;&nbsp;DeviceInterfaceDetailDataSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD;<br>&nbsp;&nbsp;Device:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetDeviceInterfaceDetail}<br><br>//<br>//&nbsp;Backward&nbsp;compatibility--do&nbsp;not&nbsp;use.<br>//<br><br>function&nbsp;SetupDiGetInterfaceDeviceDetailA(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData;<br>&nbsp;&nbsp;DeviceInterfaceDetailData:&nbsp;PSPDeviceInterfaceDetailDataA;<br>&nbsp;&nbsp;DeviceInterfaceDetailDataSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;<br>&nbsp;&nbsp;Device:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetInterfaceDeviceDetailA}<br>function&nbsp;SetupDiGetInterfaceDeviceDetailW(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData;<br>&nbsp;&nbsp;DeviceInterfaceDetailData:&nbsp;PSPDeviceInterfaceDetailDataW;<br>&nbsp;&nbsp;DeviceInterfaceDetailDataSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;<br>&nbsp;&nbsp;Device:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetInterfaceDeviceDetailW}<br>function&nbsp;SetupDiGetInterfaceDeviceDetail(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData;<br>&nbsp;&nbsp;DeviceInterfaceDetailData:&nbsp;PSPDeviceInterfaceDetailDataA;<br>&nbsp;&nbsp;DeviceInterfaceDetailDataSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;<br>&nbsp;&nbsp;Device:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetInterfaceDeviceDetail}<br><br>//<br>//&nbsp;Default&nbsp;install&nbsp;handler&nbsp;for&nbsp;DIF_INSTALLINTERFACES.<br>//<br><br>function&nbsp;SetupDiInstallDeviceInterfaces(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiInstallDeviceInterfaces}<br><br>//<br>//&nbsp;Backward&nbsp;compatibility--do&nbsp;not&nbsp;use.<br>//<br><br>function&nbsp;SetupDiInstallInterfaceDevices(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiInstallInterfaceDevices}<br><br>//<br>//&nbsp;Default&nbsp;install&nbsp;handler&nbsp;for&nbsp;DIF_REGISTERDEVICE<br>//<br><br>function&nbsp;SetupDiRegisterDeviceInfo(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;Flags:&nbsp;DWORD;&nbsp;CompareProc:&nbsp;TSPDetsigCmpProc;<br>&nbsp;&nbsp;CompareContext:&nbsp;Pointer;&nbsp;DupDeviceInfoData:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiRegisterDeviceInfo}<br><br>function&nbsp;SetupDiBuildDriverInfoList(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;DriverType:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiBuildDriverInfoList}<br><br>function&nbsp;SetupDiCancelDriverInfoSearch(DeviceInfoSet:&nbsp;HDEVINFO):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiCancelDriverInfoSearch}<br><br>function&nbsp;SetupDiEnumDriverInfoA(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;DriverType:&nbsp;DWORD;&nbsp;MemberIndex:&nbsp;DWORD;<br>&nbsp;&nbsp;var&nbsp;DriverInfoData:&nbsp;TSPDrvInfoDataA):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiEnumDriverInfoA}<br>function&nbsp;SetupDiEnumDriverInfoW(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;DriverType:&nbsp;DWORD;&nbsp;MemberIndex:&nbsp;DWORD;<br>&nbsp;&nbsp;var&nbsp;DriverInfoData:&nbsp;TSPDrvInfoDataW):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiEnumDriverInfoW}<br>function&nbsp;SetupDiEnumDriverInfo(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;DriverType:&nbsp;DWORD;&nbsp;MemberIndex:&nbsp;DWORD;<br>&nbsp;&nbsp;var&nbsp;DriverInfoData:&nbsp;TSPDrvInfoDataA):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiEnumDriverInfo}<br><br>function&nbsp;SetupDiGetSelectedDriverA(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;DriverInfoData:&nbsp;TSPDrvInfoDataA):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetSelectedDriverA}<br>function&nbsp;SetupDiGetSelectedDriverW(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;DriverInfoData:&nbsp;TSPDrvInfoDataW):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetSelectedDriverW}<br>function&nbsp;SetupDiGetSelectedDriver(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;DriverInfoData:&nbsp;TSPDrvInfoDataA):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetSelectedDriver}<br><br>function&nbsp;SetupDiSetSelectedDriverA(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;DriverInfoData:&nbsp;PSPDrvInfoDataA):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiSetSelectedDriverA}<br>function&nbsp;SetupDiSetSelectedDriverW(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;DriverInfoData:&nbsp;PSPDrvInfoDataW):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiSetSelectedDriverW}<br>function&nbsp;SetupDiSetSelectedDriver(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;DriverInfoData:&nbsp;PSPDrvInfoDataA):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiSetSelectedDriver}<br><br>function&nbsp;SetupDiGetDriverInfoDetailA(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;DriverInfoData:&nbsp;TSPDrvInfoDataA;<br>&nbsp;&nbsp;DriverInfoDetailData:&nbsp;PSPDrvInfoDetailDataA;&nbsp;DriverInfoDetailDataSize:&nbsp;DWORD;<br>&nbsp;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetDriverInfoDetailA}<br>function&nbsp;SetupDiGetDriverInfoDetailW(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;DriverInfoData:&nbsp;TSPDrvInfoDataW;<br>&nbsp;&nbsp;DriverInfoDetailData:&nbsp;PSPDrvInfoDetailDataW;&nbsp;DriverInfoDetailDataSize:&nbsp;DWORD;<br>&nbsp;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetDriverInfoDetailW}<br>function&nbsp;SetupDiGetDriverInfoDetail(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;DriverInfoData:&nbsp;TSPDrvInfoDataA;<br>&nbsp;&nbsp;DriverInfoDetailData:&nbsp;PSPDrvInfoDetailDataA;&nbsp;DriverInfoDetailDataSize:&nbsp;DWORD;<br>&nbsp;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetDriverInfoDetail}<br><br>function&nbsp;SetupDiDestroyDriverInfoList(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;DriverType:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiDestroyDriverInfoList}<br><br>function&nbsp;SetupDiGetClassDevsA(ClassGuid:&nbsp;PGUID;&nbsp;const&nbsp;Enumerator:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;hwndParent:&nbsp;HWND;&nbsp;Flags:&nbsp;DWORD):&nbsp;HDEVINFO;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassDevsA}<br>function&nbsp;SetupDiGetClassDevsW(ClassGuid:&nbsp;PGUID;&nbsp;const&nbsp;Enumerator:&nbsp;PWideChar;<br>&nbsp;&nbsp;hwndParent:&nbsp;HWND;&nbsp;Flags:&nbsp;DWORD):&nbsp;HDEVINFO;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassDevsW}<br>function&nbsp;SetupDiGetClassDevs(ClassGuid:&nbsp;PGUID;&nbsp;const&nbsp;Enumerator:&nbsp;PChar;<br>&nbsp;&nbsp;hwndParent:&nbsp;HWND;&nbsp;Flags:&nbsp;DWORD):&nbsp;HDEVINFO;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassDevs}<br><br>function&nbsp;SetupDiGetClassDevsExA(ClassGuid:&nbsp;PGUID;&nbsp;const&nbsp;Enumerator:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;hwndParent:&nbsp;HWND;&nbsp;Flags:&nbsp;DWORD;&nbsp;DeviceInfoSet:&nbsp;HDEVINFO;&nbsp;const&nbsp;MachineName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;HDEVINFO;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassDevsExA}<br>function&nbsp;SetupDiGetClassDevsExW(ClassGuid:&nbsp;PGUID;&nbsp;const&nbsp;Enumerator:&nbsp;PWideChar;<br>&nbsp;&nbsp;hwndParent:&nbsp;HWND;&nbsp;Flags:&nbsp;DWORD;&nbsp;DeviceInfoSet:&nbsp;HDEVINFO;&nbsp;const&nbsp;MachineName:&nbsp;PWideChar;<br>&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;HDEVINFO;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassDevsExW}<br>function&nbsp;SetupDiGetClassDevsEx(ClassGuid:&nbsp;PGUID;&nbsp;const&nbsp;Enumerator:&nbsp;PChar;<br>&nbsp;&nbsp;hwndParent:&nbsp;HWND;&nbsp;Flags:&nbsp;DWORD;&nbsp;DeviceInfoSet:&nbsp;HDEVINFO;&nbsp;const&nbsp;MachineName:&nbsp;PChar;<br>&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;HDEVINFO;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassDevsEx}<br><br>function&nbsp;SetupDiGetINFClassA(const&nbsp;InfName:&nbsp;PAnsiChar;&nbsp;var&nbsp;ClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;ClassName:&nbsp;PAnsiChar;&nbsp;ClassNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetINFClassA}<br>function&nbsp;SetupDiGetINFClassW(const&nbsp;InfName:&nbsp;PWideChar;&nbsp;var&nbsp;ClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;ClassName:&nbsp;PWideChar;&nbsp;ClassNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetINFClassW}<br>function&nbsp;SetupDiGetINFClass(const&nbsp;InfName:&nbsp;PChar;&nbsp;var&nbsp;ClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;ClassName:&nbsp;PChar;&nbsp;ClassNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetINFClass}<br><br>function&nbsp;SetupDiBuildClassInfoList(Flags:&nbsp;DWORD;&nbsp;ClassGuidList:&nbsp;PGUID;<br>&nbsp;&nbsp;ClassGuidListSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiBuildClassInfoList}<br><br>function&nbsp;SetupDiBuildClassInfoListExA(Flags:&nbsp;DWORD;&nbsp;ClassGuidList:&nbsp;PGUID;<br>&nbsp;&nbsp;ClassGuidListSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD;&nbsp;const&nbsp;MachineName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiBuildClassInfoListExA}<br>function&nbsp;SetupDiBuildClassInfoListExW(Flags:&nbsp;DWORD;&nbsp;ClassGuidList:&nbsp;PGUID;<br>&nbsp;&nbsp;ClassGuidListSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD;&nbsp;const&nbsp;MachineName:&nbsp;PWideChar;<br>&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiBuildClassInfoListExW}<br>function&nbsp;SetupDiBuildClassInfoListEx(Flags:&nbsp;DWORD;&nbsp;ClassGuidList:&nbsp;PGUID;<br>&nbsp;&nbsp;ClassGuidListSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD;&nbsp;const&nbsp;MachineName:&nbsp;PChar;<br>&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiBuildClassInfoListEx}<br><br>function&nbsp;SetupDiGetClassDescriptionA(var&nbsp;ClassGuid:&nbsp;TGUID;&nbsp;ClassDescription:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;ClassDescriptionSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassDescriptionA}<br>function&nbsp;SetupDiGetClassDescriptionW(var&nbsp;ClassGuid:&nbsp;TGUID;&nbsp;ClassDescription:&nbsp;PWideChar;<br>&nbsp;&nbsp;ClassDescriptionSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassDescriptionW}<br>function&nbsp;SetupDiGetClassDescription(var&nbsp;ClassGuid:&nbsp;TGUID;&nbsp;ClassDescription:&nbsp;PChar;<br>&nbsp;&nbsp;ClassDescriptionSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassDescription}<br><br>function&nbsp;SetupDiGetClassDescriptionExA(var&nbsp;ClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;ClassDescription:&nbsp;PAnsiChar;&nbsp;ClassDescriptionSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;<br>&nbsp;&nbsp;const&nbsp;MachineName:&nbsp;PAnsiChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassDescriptionExA}<br>function&nbsp;SetupDiGetClassDescriptionExW(var&nbsp;ClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;ClassDescription:&nbsp;PWideChar;&nbsp;ClassDescriptionSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;<br>&nbsp;&nbsp;const&nbsp;MachineName:&nbsp;PWideChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassDescriptionExW}<br>function&nbsp;SetupDiGetClassDescriptionEx(var&nbsp;ClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;ClassDescription:&nbsp;PChar;&nbsp;ClassDescriptionSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;<br>&nbsp;&nbsp;const&nbsp;MachineName:&nbsp;PChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassDescriptionEx}<br><br>function&nbsp;SetupDiCallClassInstaller(InstallFunction:&nbsp;DI_FUNCTION;<br>&nbsp;&nbsp;DeviceInfoSet:&nbsp;HDEVINFO;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiCallClassInstaller}<br><br>//<br>//&nbsp;Default&nbsp;install&nbsp;handler&nbsp;for&nbsp;DIF_SELECTDEVICE<br>//<br><br>function&nbsp;SetupDiSelectDevice(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiSelectDevice}<br><br>//<br>//&nbsp;Default&nbsp;install&nbsp;handler&nbsp;for&nbsp;DIF_SELECTBESTCOMPATDRV<br>//<br><br>function&nbsp;SetupDiSelectBestCompatDrv(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiSelectBestCompatDrv}<br><br>//<br>//&nbsp;Default&nbsp;install&nbsp;handler&nbsp;for&nbsp;DIF_INSTALLDEVICE<br>//<br>function&nbsp;SetupDiInstallDevice(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiInstallDevice}<br><br>//<br>//&nbsp;Default&nbsp;install&nbsp;handler&nbsp;for&nbsp;DIF_INSTALLDEVICEFILES<br>//<br><br>function&nbsp;SetupDiInstallDriverFiles(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiInstallDriverFiles}<br><br>//<br>//&nbsp;Default&nbsp;install&nbsp;handler&nbsp;for&nbsp;DIF_REGISTER_COINSTALLERS<br>//<br>function&nbsp;SetupDiRegisterCoDeviceInstallers(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiRegisterCoDeviceInstallers}<br><br>//<br>//&nbsp;Default&nbsp;install&nbsp;handler&nbsp;for&nbsp;DIF_REMOVE<br>//<br><br>function&nbsp;SetupDiRemoveDevice(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiRemoveDevice}<br><br>//<br>//&nbsp;Default&nbsp;install&nbsp;handler&nbsp;for&nbsp;DIF_UNREMOVE<br>//<br><br>function&nbsp;SetupDiUnremoveDevice(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiUnremoveDevice}<br><br>//<br>//&nbsp;Default&nbsp;install&nbsp;handler&nbsp;for&nbsp;DIF_MOVEDEVICE<br>//<br>function&nbsp;SetupDiMoveDuplicateDevice(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DestinationDeviceInfoData:&nbsp;TSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiMoveDuplicateDevice}<br><br>//<br>//&nbsp;Default&nbsp;install&nbsp;handler&nbsp;for&nbsp;DIF_PROPERTYCHANGE<br>//<br>function&nbsp;SetupDiChangeState(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiChangeState}<br><br>function&nbsp;SetupDiInstallClassA(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;InfFileName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;Flags:&nbsp;DWORD;&nbsp;FileQueue:&nbsp;HSPFILEQ):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiInstallClassA}<br>function&nbsp;SetupDiInstallClassW(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;InfFileName:&nbsp;PWideChar;<br>&nbsp;&nbsp;Flags:&nbsp;DWORD;&nbsp;FileQueue:&nbsp;HSPFILEQ):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiInstallClassW}<br>function&nbsp;SetupDiInstallClass(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;InfFileName:&nbsp;PChar;<br>&nbsp;&nbsp;Flags:&nbsp;DWORD;&nbsp;FileQueue:&nbsp;HSPFILEQ):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiInstallClass}<br><br>function&nbsp;SetupDiInstallClassExA(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;InfFileName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;Flags:&nbsp;DWORD;&nbsp;FileQueue:&nbsp;HSPFILEQ;&nbsp;InterfaceClassGuid:&nbsp;PGUID;&nbsp;Reserved1,<br>&nbsp;&nbsp;Reserved2:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiInstallClassExA}<br>function&nbsp;SetupDiInstallClassExW(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;InfFileName:&nbsp;PWideChar;<br>&nbsp;&nbsp;Flags:&nbsp;DWORD;&nbsp;FileQueue:&nbsp;HSPFILEQ;&nbsp;InterfaceClassGuid:&nbsp;PGUID;&nbsp;Reserved1,<br>&nbsp;&nbsp;Reserved2:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiInstallClassExW}<br>function&nbsp;SetupDiInstallClassEx(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;InfFileName:&nbsp;PChar;<br>&nbsp;&nbsp;Flags:&nbsp;DWORD;&nbsp;FileQueue:&nbsp;HSPFILEQ;&nbsp;InterfaceClassGuid:&nbsp;PGUID;&nbsp;Reserved1,<br>&nbsp;&nbsp;Reserved2:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiInstallClassEx}<br><br>function&nbsp;SetupDiOpenClassRegKey(ClassGuid:&nbsp;PGUID;&nbsp;samDesired:&nbsp;REGSAM):&nbsp;HKEY;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiOpenClassRegKey}<br><br>function&nbsp;SetupDiOpenClassRegKeyExA(ClassGuid:&nbsp;PGUID;&nbsp;samDesired:&nbsp;REGSAM;<br>&nbsp;&nbsp;Flags:&nbsp;DWORD;&nbsp;const&nbsp;MachineName:&nbsp;PAnsiChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;HKEY;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiOpenClassRegKeyExA}<br>function&nbsp;SetupDiOpenClassRegKeyExW(ClassGuid:&nbsp;PGUID;&nbsp;samDesired:&nbsp;REGSAM;<br>&nbsp;&nbsp;Flags:&nbsp;DWORD;&nbsp;const&nbsp;MachineName:&nbsp;PWideChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;HKEY;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiOpenClassRegKeyExW}<br>function&nbsp;SetupDiOpenClassRegKeyEx(ClassGuid:&nbsp;PGUID;&nbsp;samDesired:&nbsp;REGSAM;<br>&nbsp;&nbsp;Flags:&nbsp;DWORD;&nbsp;const&nbsp;MachineName:&nbsp;PChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;HKEY;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiOpenClassRegKeyEx}<br><br>function&nbsp;SetupDiCreateDeviceInterfaceRegKeyA(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData;&nbsp;Reserved:&nbsp;DWORD;<br>&nbsp;&nbsp;samDesired:&nbsp;REGSAM;&nbsp;InfHandle:&nbsp;HINF;&nbsp;const&nbsp;InfSectionName:&nbsp;PAnsiChar):&nbsp;HKEY;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiCreateDeviceInterfaceRegKeyA}<br>function&nbsp;SetupDiCreateDeviceInterfaceRegKeyW(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData;&nbsp;Reserved:&nbsp;DWORD;<br>&nbsp;&nbsp;samDesired:&nbsp;REGSAM;&nbsp;InfHandle:&nbsp;HINF;&nbsp;const&nbsp;InfSectionName:&nbsp;PWideChar):&nbsp;HKEY;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiCreateDeviceInterfaceRegKeyW}<br>function&nbsp;SetupDiCreateDeviceInterfaceRegKey(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData;&nbsp;Reserved:&nbsp;DWORD;<br>&nbsp;&nbsp;samDesired:&nbsp;REGSAM;&nbsp;InfHandle:&nbsp;HINF;&nbsp;const&nbsp;InfSectionName:&nbsp;PChar):&nbsp;HKEY;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiCreateDeviceInterfaceRegKey}<br><br>//<br>//&nbsp;Backward&nbsp;compatibility--do&nbsp;not&nbsp;use.<br>//<br><br>function&nbsp;SetupDiCreateInterfaceDeviceRegKeyA(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData;&nbsp;Reserved:&nbsp;DWORD;<br>&nbsp;&nbsp;samDesired:&nbsp;REGSAM;&nbsp;InfHandle:&nbsp;HINF;&nbsp;const&nbsp;InfSectionName:&nbsp;PAnsiChar):&nbsp;HKEY;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiCreateInterfaceDeviceRegKeyA}<br>function&nbsp;SetupDiCreateInterfaceDeviceRegKeyW(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData;&nbsp;Reserved:&nbsp;DWORD;<br>&nbsp;&nbsp;samDesired:&nbsp;REGSAM;&nbsp;InfHandle:&nbsp;HINF;&nbsp;const&nbsp;InfSectionName:&nbsp;PWideChar):&nbsp;HKEY;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiCreateInterfaceDeviceRegKeyW}<br>function&nbsp;SetupDiCreateInterfaceDeviceRegKey(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData;&nbsp;Reserved:&nbsp;DWORD;<br>&nbsp;&nbsp;samDesired:&nbsp;REGSAM;&nbsp;InfHandle:&nbsp;HINF;&nbsp;const&nbsp;InfSectionName:&nbsp;PChar):&nbsp;HKEY;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiCreateInterfaceDeviceRegKey}<br><br>function&nbsp;SetupDiOpenDeviceInterfaceRegKey(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData;&nbsp;Reserved:&nbsp;DWORD;<br>&nbsp;&nbsp;samDesired:&nbsp;REGSAM):&nbsp;HKEY;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiOpenDeviceInterfaceRegKey}<br><br>//<br>//&nbsp;Backward&nbsp;compatibility--do&nbsp;not&nbsp;use.<br>//<br><br>function&nbsp;SetupDiOpenInterfaceDeviceRegKey(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData;&nbsp;Reserved:&nbsp;DWORD;<br>&nbsp;&nbsp;samDesired:&nbsp;REGSAM):&nbsp;HKEY;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiOpenInterfaceDeviceRegKey}<br><br>function&nbsp;SetupDiDeleteDeviceInterfaceRegKey(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData;&nbsp;Reserved:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiDeleteDeviceInterfaceRegKey}<br><br>//<br>//&nbsp;Backward&nbsp;compatibility--do&nbsp;not&nbsp;use.<br>//<br><br>function&nbsp;SetupDiDeleteInterfaceDeviceRegKey(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData;&nbsp;Reserved:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiDeleteInterfaceDeviceRegKey}<br><br>function&nbsp;SetupDiCreateDevRegKeyA(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;Scope,&nbsp;HwProfile,&nbsp;KeyType:&nbsp;DWORD;<br>&nbsp;&nbsp;InfHandle:&nbsp;HINF;&nbsp;const&nbsp;InfSectionName:&nbsp;PAnsiChar):&nbsp;HKEY;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiCreateDevRegKeyA}<br><br>function&nbsp;SetupDiCreateDevRegKeyW(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;Scope,&nbsp;HwProfile,&nbsp;KeyType:&nbsp;DWORD;<br>&nbsp;&nbsp;InfHandle:&nbsp;HINF;&nbsp;const&nbsp;InfSectionName:&nbsp;PWideChar):&nbsp;HKEY;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiCreateDevRegKeyW}<br><br>function&nbsp;SetupDiCreateDevRegKey(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;Scope,&nbsp;HwProfile,&nbsp;KeyType:&nbsp;DWORD;<br>&nbsp;&nbsp;InfHandle:&nbsp;HINF;&nbsp;const&nbsp;InfSectionName:&nbsp;PChar):&nbsp;HKEY;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiCreateDevRegKey}<br><br>function&nbsp;SetupDiOpenDevRegKey(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;Scope,&nbsp;HwProfile,&nbsp;KeyType:&nbsp;DWORD;<br>&nbsp;&nbsp;samDesired:&nbsp;REGSAM):&nbsp;HKEY;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiOpenDevRegKey}<br><br>function&nbsp;SetupDiDeleteDevRegKey(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;Scope,&nbsp;HwProfile,<br>&nbsp;&nbsp;KeyType:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiDeleteDevRegKey}<br><br>function&nbsp;SetupDiGetHwProfileList(HwProfileList:&nbsp;PDWORD;&nbsp;HwProfileListSize:&nbsp;DWORD;<br>&nbsp;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD;&nbsp;CurrentlyActiveIndex:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetHwProfileList}<br><br>function&nbsp;SetupDiGetHwProfileListExA(HwProfileList:&nbsp;PDWORD;<br>&nbsp;&nbsp;HwProfileListSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD;&nbsp;CurrentlyActiveIndex:&nbsp;PDWORD;<br>&nbsp;&nbsp;const&nbsp;MachineName:&nbsp;PAnsiChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetHwProfileListExA}<br>function&nbsp;SetupDiGetHwProfileListExW(HwProfileList:&nbsp;PDWORD;<br>&nbsp;&nbsp;HwProfileListSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD;&nbsp;CurrentlyActiveIndex:&nbsp;PDWORD;<br>&nbsp;&nbsp;const&nbsp;MachineName:&nbsp;PWideChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetHwProfileListExW}<br>function&nbsp;SetupDiGetHwProfileListEx(HwProfileList:&nbsp;PDWORD;<br>&nbsp;&nbsp;HwProfileListSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD;&nbsp;CurrentlyActiveIndex:&nbsp;PDWORD;<br>&nbsp;&nbsp;const&nbsp;MachineName:&nbsp;PChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetHwProfileListEx}<br><br>function&nbsp;SetupDiGetDeviceRegistryPropertyA(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;const&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;Property_:&nbsp;DWORD;<br>&nbsp;&nbsp;var&nbsp;PropertyRegDataType:&nbsp;DWORD;&nbsp;PropertyBuffer:&nbsp;PBYTE;&nbsp;PropertyBufferSize:&nbsp;DWORD;<br>&nbsp;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetDeviceRegistryPropertyA}<br>function&nbsp;SetupDiGetDeviceRegistryPropertyW(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;const&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;Property_:&nbsp;DWORD;<br>&nbsp;&nbsp;var&nbsp;PropertyRegDataType:&nbsp;DWORD;&nbsp;PropertyBuffer:&nbsp;PBYTE;&nbsp;PropertyBufferSize:&nbsp;DWORD;<br>&nbsp;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetDeviceRegistryPropertyW}<br>function&nbsp;SetupDiGetDeviceRegistryProperty(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;const&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;Property_:&nbsp;DWORD;<br>&nbsp;&nbsp;var&nbsp;PropertyRegDataType:&nbsp;DWORD;&nbsp;PropertyBuffer:&nbsp;PBYTE;&nbsp;PropertyBufferSize:&nbsp;DWORD;<br>&nbsp;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetDeviceRegistryProperty}<br><br>{$IFDEF&nbsp;WIN2000}<br>function&nbsp;SetupDiGetClassRegistryPropertyA(var&nbsp;ClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;Property_:&nbsp;DWORD;&nbsp;PropertyRegDataType:&nbsp;PDWORD;&nbsp;PropertyBuffer:&nbsp;PBYTE;<br>&nbsp;&nbsp;PropertyBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;&nbsp;const&nbsp;MachineName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassRegistryPropertyA}<br>function&nbsp;SetupDiGetClassRegistryPropertyW(var&nbsp;ClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;Property_:&nbsp;DWORD;&nbsp;PropertyRegDataType:&nbsp;PDWORD;&nbsp;PropertyBuffer:&nbsp;PBYTE;<br>&nbsp;&nbsp;PropertyBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;&nbsp;const&nbsp;MachineName:&nbsp;PWideChar;<br>&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassRegistryPropertyW}<br>function&nbsp;SetupDiGetClassRegistryProperty(var&nbsp;ClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;Property_:&nbsp;DWORD;&nbsp;PropertyRegDataType:&nbsp;PDWORD;&nbsp;PropertyBuffer:&nbsp;PBYTE;<br>&nbsp;&nbsp;PropertyBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;&nbsp;const&nbsp;MachineName:&nbsp;PChar;<br>&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassRegistryProperty}<br>{$ENDIF}<br><br>function&nbsp;SetupDiSetDeviceRegistryPropertyA(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;Property_:&nbsp;DWORD;<br>&nbsp;&nbsp;const&nbsp;PropertyBuffer:&nbsp;PBYTE;&nbsp;PropertyBufferSize:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiSetDeviceRegistryPropertyA}<br>function&nbsp;SetupDiSetDeviceRegistryPropertyW(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;Property_:&nbsp;DWORD;<br>&nbsp;&nbsp;const&nbsp;PropertyBuffer:&nbsp;PBYTE;&nbsp;PropertyBufferSize:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiSetDeviceRegistryPropertyW}<br>function&nbsp;SetupDiSetDeviceRegistryProperty(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;Property_:&nbsp;DWORD;<br>&nbsp;&nbsp;const&nbsp;PropertyBuffer:&nbsp;PBYTE;&nbsp;PropertyBufferSize:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiSetDeviceRegistryProperty}<br><br>{$IFDEF&nbsp;WIN2000}<br>function&nbsp;SetupDiSetClassRegistryPropertyA(var&nbsp;ClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;Property_:&nbsp;DWORD;&nbsp;const&nbsp;PropertyBuffer:&nbsp;PBYTE;&nbsp;PropertyBufferSize:&nbsp;DWORD;<br>&nbsp;&nbsp;const&nbsp;MachineName:&nbsp;PAnsiChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiSetClassRegistryPropertyA}<br>function&nbsp;SetupDiSetClassRegistryPropertyW(var&nbsp;ClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;Property_:&nbsp;DWORD;&nbsp;const&nbsp;PropertyBuffer:&nbsp;PBYTE;&nbsp;PropertyBufferSize:&nbsp;DWORD;<br>&nbsp;&nbsp;const&nbsp;MachineName:&nbsp;PWideChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiSetClassRegistryPropertyW}<br>function&nbsp;SetupDiSetClassRegistryProperty(var&nbsp;ClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;Property_:&nbsp;DWORD;&nbsp;const&nbsp;PropertyBuffer:&nbsp;PBYTE;&nbsp;PropertyBufferSize:&nbsp;DWORD;<br>&nbsp;&nbsp;const&nbsp;MachineName:&nbsp;PChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiSetClassRegistryProperty}<br>{$ENDIF}<br><br>function&nbsp;SetupDiGetDeviceInstallParamsA(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;<br>&nbsp;&nbsp;var&nbsp;DeviceInstallParams:&nbsp;TSPDevInstallParamsA):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetDeviceInstallParamsA}<br><br>function&nbsp;SetupDiGetDeviceInstallParamsW(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;<br>&nbsp;&nbsp;var&nbsp;DeviceInstallParams:&nbsp;TSPDevInstallParamsW):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetDeviceInstallParamsW}<br><br>function&nbsp;SetupDiGetDeviceInstallParams(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;<br>&nbsp;&nbsp;var&nbsp;DeviceInstallParams:&nbsp;TSPDevInstallParamsA):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetDeviceInstallParams}<br><br>function&nbsp;SetupDiGetClassInstallParamsA(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;ClassInstallParams:&nbsp;PSPClassInstallHeader;<br>&nbsp;&nbsp;ClassInstallParamsSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassInstallParamsA}<br>function&nbsp;SetupDiGetClassInstallParamsW(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;ClassInstallParams:&nbsp;PSPClassInstallHeader;<br>&nbsp;&nbsp;ClassInstallParamsSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassInstallParamsW}<br>function&nbsp;SetupDiGetClassInstallParams(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;ClassInstallParams:&nbsp;PSPClassInstallHeader;<br>&nbsp;&nbsp;ClassInstallParamsSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassInstallParams}<br><br>function&nbsp;SetupDiSetDeviceInstallParamsA(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;<br>&nbsp;&nbsp;var&nbsp;DeviceInstallParams:&nbsp;TSPDevInstallParamsA):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiSetDeviceInstallParamsA}<br>function&nbsp;SetupDiSetDeviceInstallParamsW(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;<br>&nbsp;&nbsp;var&nbsp;DeviceInstallParams:&nbsp;TSPDevInstallParamsW):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiSetDeviceInstallParamsW}<br>function&nbsp;SetupDiSetDeviceInstallParams(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;<br>&nbsp;&nbsp;var&nbsp;DeviceInstallParams:&nbsp;TSPDevInstallParamsA):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiSetDeviceInstallParams}<br><br>function&nbsp;SetupDiSetClassInstallParamsA(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;ClassInstallParams:&nbsp;PSPClassInstallHeader;<br>&nbsp;&nbsp;ClassInstallParamsSize:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiSetClassInstallParamsA}<br>function&nbsp;SetupDiSetClassInstallParamsW(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;ClassInstallParams:&nbsp;PSPClassInstallHeader;<br>&nbsp;&nbsp;ClassInstallParamsSize:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiSetClassInstallParamsW}<br>function&nbsp;SetupDiSetClassInstallParams(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;ClassInstallParams:&nbsp;PSPClassInstallHeader;<br>&nbsp;&nbsp;ClassInstallParamsSize:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiSetClassInstallParams}<br><br>function&nbsp;SetupDiGetDriverInstallParamsA(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;DriverInfoData:&nbsp;TSPDrvInfoDataA;<br>&nbsp;&nbsp;var&nbsp;DriverInstallParams:&nbsp;TSPDrvInstallParams):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetDriverInstallParamsA}<br>function&nbsp;SetupDiGetDriverInstallParamsW(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;DriverInfoData:&nbsp;TSPDrvInfoDataW;<br>&nbsp;&nbsp;var&nbsp;DriverInstallParams:&nbsp;TSPDrvInstallParams):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetDriverInstallParamsW}<br>function&nbsp;SetupDiGetDriverInstallParams(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;DriverInfoData:&nbsp;TSPDrvInfoDataA;<br>&nbsp;&nbsp;var&nbsp;DriverInstallParams:&nbsp;TSPDrvInstallParams):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetDriverInstallParams}<br><br>function&nbsp;SetupDiSetDriverInstallParamsA(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;DriverInfoData:&nbsp;TSPDrvInfoDataA;<br>&nbsp;&nbsp;var&nbsp;DriverInstallParams:&nbsp;TSPDrvInstallParams):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiSetDriverInstallParamsA}<br>function&nbsp;SetupDiSetDriverInstallParamsW(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;DriverInfoData:&nbsp;TSPDrvInfoDataW;<br>&nbsp;&nbsp;var&nbsp;DriverInstallParams:&nbsp;TSPDrvInstallParams):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiSetDriverInstallParamsW}<br>function&nbsp;SetupDiSetDriverInstallParams(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;DriverInfoData:&nbsp;TSPDrvInfoDataA;<br>&nbsp;&nbsp;var&nbsp;DriverInstallParams:&nbsp;TSPDrvInstallParams):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiSetDriverInstallParams}<br><br>function&nbsp;SetupDiLoadClassIcon(var&nbsp;ClassGuid:&nbsp;TGUID;&nbsp;LargeIcon:&nbsp;PHICON;<br>&nbsp;&nbsp;MiniIconIndex:&nbsp;PINT):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiLoadClassIcon}<br><br>function&nbsp;SetupDiDrawMiniIcon(hdc:&nbsp;hdc;&nbsp;rc:&nbsp;TRect;&nbsp;MiniIconIndex:&nbsp;Integer;<br>&nbsp;&nbsp;Flags:&nbsp;DWORD):&nbsp;Integer;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiDrawMiniIcon}<br><br>function&nbsp;SetupDiGetClassBitmapIndex(ClassGuid:&nbsp;PGUID;<br>&nbsp;&nbsp;var&nbsp;MiniIconIndex:&nbsp;Integer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassBitmapIndex}<br><br>function&nbsp;SetupDiGetClassImageList(<br>&nbsp;&nbsp;var&nbsp;ClassImageListData:&nbsp;TSPClassImageListData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassImageList}<br><br>function&nbsp;SetupDiGetClassImageListExA(var&nbsp;ClassImageListData:&nbsp;TSPClassImageListData;<br>&nbsp;&nbsp;const&nbsp;MachineName:&nbsp;PAnsiChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassImageListExA}<br>function&nbsp;SetupDiGetClassImageListExW(var&nbsp;ClassImageListData:&nbsp;TSPClassImageListData;<br>&nbsp;&nbsp;const&nbsp;MachineName:&nbsp;PWideChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassImageListExW}<br>function&nbsp;SetupDiGetClassImageListEx(var&nbsp;ClassImageListData:&nbsp;TSPClassImageListData;<br>&nbsp;&nbsp;const&nbsp;MachineName:&nbsp;PChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassImageListEx}<br><br>function&nbsp;SetupDiGetClassImageIndex(var&nbsp;ClassImageListData:&nbsp;TSPClassImageListData;<br>&nbsp;&nbsp;var&nbsp;ClassGuid:&nbsp;TGUID;&nbsp;var&nbsp;ImageIndex:&nbsp;Integer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassImageIndex}<br><br>function&nbsp;SetupDiDestroyClassImageList(<br>&nbsp;&nbsp;var&nbsp;ClassImageListData:&nbsp;TSPClassImageListData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiDestroyClassImageList}<br><br>function&nbsp;SetupDiGetClassDevPropertySheetsA(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;PropertySheetHeader:&nbsp;TPropSheetHeaderA;<br>&nbsp;&nbsp;PropertySheetHeaderPageListSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;<br>&nbsp;&nbsp;PropertySheetType:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassDevPropertySheetsA}<br>function&nbsp;SetupDiGetClassDevPropertySheetsW(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;PropertySheetHeader:&nbsp;TPropSheetHeaderW;<br>&nbsp;&nbsp;PropertySheetHeaderPageListSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;<br>&nbsp;&nbsp;PropertySheetType:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassDevPropertySheetsW}<br>function&nbsp;SetupDiGetClassDevPropertySheets(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;PropertySheetHeader:&nbsp;TPropSheetHeaderA;<br>&nbsp;&nbsp;PropertySheetHeaderPageListSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;<br>&nbsp;&nbsp;PropertySheetType:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetClassDevPropertySheets}<br><br>function&nbsp;SetupDiAskForOEMDisk(DeviceInfoSet:&nbsp;HDEVINFO;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiAskForOEMDisk}<br><br>function&nbsp;SetupDiSelectOEMDrv(hwndParent:&nbsp;HWND;&nbsp;DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiSelectOEMDrv}<br><br>function&nbsp;SetupDiClassNameFromGuidA(var&nbsp;ClassGuid:&nbsp;TGUID;&nbsp;ClassName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;ClassNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiClassNameFromGuidA}<br>function&nbsp;SetupDiClassNameFromGuidW(var&nbsp;ClassGuid:&nbsp;TGUID;&nbsp;ClassName:&nbsp;PWideChar;<br>&nbsp;&nbsp;ClassNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiClassNameFromGuidW}<br>function&nbsp;SetupDiClassNameFromGuid(var&nbsp;ClassGuid:&nbsp;TGUID;&nbsp;ClassName:&nbsp;PChar;<br>&nbsp;&nbsp;ClassNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiClassNameFromGuid}<br><br>function&nbsp;SetupDiClassNameFromGuidExA(var&nbsp;ClassGuid:&nbsp;TGUID;&nbsp;ClassName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;ClassNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;&nbsp;const&nbsp;MachineName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiClassNameFromGuidExA}<br>function&nbsp;SetupDiClassNameFromGuidExW(var&nbsp;ClassGuid:&nbsp;TGUID;&nbsp;ClassName:&nbsp;PWideChar;<br>&nbsp;&nbsp;ClassNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;&nbsp;const&nbsp;MachineName:&nbsp;PWideChar;<br>&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiClassNameFromGuidExW}<br>function&nbsp;SetupDiClassNameFromGuidEx(var&nbsp;ClassGuid:&nbsp;TGUID;&nbsp;ClassName:&nbsp;PChar;<br>&nbsp;&nbsp;ClassNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;&nbsp;const&nbsp;MachineName:&nbsp;PChar;<br>&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiClassNameFromGuidEx}<br><br>function&nbsp;SetupDiClassGuidsFromNameA(const&nbsp;ClassName:&nbsp;PAnsiChar;&nbsp;ClassGuidList:&nbsp;PGUID;<br>&nbsp;&nbsp;ClassGuidListSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiClassGuidsFromNameA}<br>function&nbsp;SetupDiClassGuidsFromNameW(const&nbsp;ClassName:&nbsp;PWideChar;&nbsp;ClassGuidList:&nbsp;PGUID;<br>&nbsp;&nbsp;ClassGuidListSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiClassGuidsFromNameW}<br>function&nbsp;SetupDiClassGuidsFromName(const&nbsp;ClassName:&nbsp;PChar;&nbsp;ClassGuidList:&nbsp;PGUID;<br>&nbsp;&nbsp;ClassGuidListSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiClassGuidsFromName}<br><br>function&nbsp;SetupDiClassGuidsFromNameExA(const&nbsp;ClassName:&nbsp;PAnsiChar;&nbsp;ClassGuidList:&nbsp;PGUID;<br>&nbsp;&nbsp;ClassGuidListSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD;&nbsp;const&nbsp;MachineName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiClassGuidsFromNameExA}<br>function&nbsp;SetupDiClassGuidsFromNameExW(const&nbsp;ClassName:&nbsp;PWideChar;&nbsp;ClassGuidList:&nbsp;PGUID;<br>&nbsp;&nbsp;ClassGuidListSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD;&nbsp;const&nbsp;MachineName:&nbsp;PWideChar;<br>&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiClassGuidsFromNameExW}<br>function&nbsp;SetupDiClassGuidsFromNameEx(const&nbsp;ClassName:&nbsp;PChar;&nbsp;ClassGuidList:&nbsp;PGUID;<br>&nbsp;&nbsp;ClassGuidListSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD;&nbsp;const&nbsp;MachineName:&nbsp;PChar;<br>&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiClassGuidsFromNameEx}<br><br>function&nbsp;SetupDiGetHwProfileFriendlyNameA(HwProfile:&nbsp;DWORD;&nbsp;FriendlyName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;FriendlyNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetHwProfileFriendlyNameA}<br>function&nbsp;SetupDiGetHwProfileFriendlyNameW(HwProfile:&nbsp;DWORD;&nbsp;FriendlyName:&nbsp;PWideChar;<br>&nbsp;&nbsp;FriendlyNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetHwProfileFriendlyNameW}<br>function&nbsp;SetupDiGetHwProfileFriendlyName(HwProfile:&nbsp;DWORD;&nbsp;FriendlyName:&nbsp;PChar;<br>&nbsp;&nbsp;FriendlyNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetHwProfileFriendlyName}<br><br>function&nbsp;SetupDiGetHwProfileFriendlyNameExA(HwProfile:&nbsp;DWORD;&nbsp;FriendlyName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;FriendlyNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;&nbsp;const&nbsp;MachineName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetHwProfileFriendlyNameExA}<br>function&nbsp;SetupDiGetHwProfileFriendlyNameExW(HwProfile:&nbsp;DWORD;&nbsp;FriendlyName:&nbsp;PWideChar;<br>&nbsp;&nbsp;FriendlyNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;&nbsp;const&nbsp;MachineName:&nbsp;PWideChar;<br>&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetHwProfileFriendlyNameExW}<br>function&nbsp;SetupDiGetHwProfileFriendlyNameEx(HwProfile:&nbsp;DWORD;&nbsp;FriendlyName:&nbsp;PChar;<br>&nbsp;&nbsp;FriendlyNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;&nbsp;const&nbsp;MachineName:&nbsp;PChar;<br>&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetHwProfileFriendlyNameEx}<br><br>function&nbsp;SetupDiGetWizardPage(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;InstallWizardData:&nbsp;TSPInstallWizardData;<br>&nbsp;&nbsp;PageType:&nbsp;DWORD;&nbsp;Flags:&nbsp;DWORD):&nbsp;HPROPSHEETPAGE;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetWizardPage}<br><br>function&nbsp;SetupDiGetSelectedDevice(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetSelectedDevice}<br><br>function&nbsp;SetupDiSetSelectedDevice(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiSetSelectedDevice}<br><br>function&nbsp;SetupDiGetActualSectionToInstallA(InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;const&nbsp;InfSectionName:&nbsp;PAnsiChar;&nbsp;InfSectionWithExt:&nbsp;PAnsiChar;&nbsp;InfSectionWithExtSize:&nbsp;DWORD;<br>&nbsp;&nbsp;RequiredSize:&nbsp;PDWORD;&nbsp;Extension:&nbsp;PPASTR):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetActualSectionToInstallA}<br>function&nbsp;SetupDiGetActualSectionToInstallW(InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;const&nbsp;InfSectionName:&nbsp;PWideChar;&nbsp;InfSectionWithExt:&nbsp;PWideChar;&nbsp;InfSectionWithExtSize:&nbsp;DWORD;<br>&nbsp;&nbsp;RequiredSize:&nbsp;PDWORD;&nbsp;Extension:&nbsp;PPWSTR):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetActualSectionToInstallW}<br>function&nbsp;SetupDiGetActualSectionToInstall(InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;const&nbsp;InfSectionName:&nbsp;PChar;&nbsp;InfSectionWithExt:&nbsp;PChar;&nbsp;InfSectionWithExtSize:&nbsp;DWORD;<br>&nbsp;&nbsp;RequiredSize:&nbsp;PDWORD;&nbsp;Extension:&nbsp;PPSTR):&nbsp;LongBool;&nbsp;stdcall;<br>{$EXTERNALSYM&nbsp;SetupDiGetActualSectionToInstall}<br><br>{$ELSE}<br><br>&nbsp;&nbsp;//&nbsp;(rom)&nbsp;remove&nbsp;all&nbsp;#defines&nbsp;Microsoft&nbsp;generated&nbsp;in&nbsp;SetupApi.h<br>&nbsp;&nbsp;//&nbsp;(rom)&nbsp;to&nbsp;handle&nbsp;A/W&nbsp;functions<br><br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupGetInfInformation'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupQueryInfFileInformation'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupQueryInfOriginalFileInformation'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupQueryInfVersionInformation'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupGetInfFileList'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupOpenInfFile'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupOpenAppendInfFile'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupFindFirstLine'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupFindNextMatchLine'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupGetLineByIndex'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupGetLineCount'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupGetLineText'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupGetStringField'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupGetMultiSzField'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupGetFileCompressionInfo'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDecompressOrCopyFile'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupGetSourceFileLocation'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupGetSourceFileSize'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupGetTargetPath'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupSetSourceList'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupAddToSourceList'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupRemoveFromSourceList'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupQuerySourceList'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupFreeSourceList'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupPromptForDisk'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupCopyError'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupRenameError'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDeleteError'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupBackupError'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupSetDirectoryId'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupSetDirectoryIdEx'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupGetSourceInfo'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupInstallFile'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupInstallFileEx'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupSetFileQueueAlternatePlatform'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupSetPlatformPathOverride'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupQueueCopy'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupQueueCopyIndirect'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupQueueDefaultCopy'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupQueueCopySection'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupQueueDelete'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupQueueDeleteSection'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupQueueRename'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupQueueRenameSection'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupCommitFileQueue'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupScanFileQueue'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupCopyOEMInf'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupCreateDiskSpaceList'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDuplicateDiskSpaceList'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupQueryDrivesInDiskSpaceList'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupQuerySpaceRequiredOnDrive'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupAdjustDiskSpaceList'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupAddToDiskSpaceList'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupAddSectionToDiskSpaceList'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupAddInstallSectionToDiskSpaceList'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupRemoveFromDiskSpaceList'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupRemoveSectionFromDiskSpaceList'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupRemoveInstallSectionFromDiskSpaceList'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupIterateCabinet'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDefaultQueueCallback'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupInstallFromInfSection'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupInstallFilesFromInfSection'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupInstallServicesFromInfSection'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupInstallServicesFromInfSectionEx'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupInitializeFileLog'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupLogFile'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupRemoveFileLogEntry'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupQueryFileLog'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupLogError'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupGetBackupInformation'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiCreateDeviceInfoListEx'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiGetDeviceInfoListDetail'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiCreateDeviceInfo'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiOpenDeviceInfo'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiGetDeviceInstanceId'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiCreateDeviceInterface'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiCreateInterfaceDevice'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiOpenDeviceInterface'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiOpenInterfaceDevice'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiGetInterfaceDeviceAlias&nbsp;SetupDiGetDeviceInterfaceAlias'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiGetDeviceInterfaceDetail'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiGetInterfaceDeviceDetail'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiEnumDriverInfo'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiGetSelectedDriver'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiSetSelectedDriver'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiGetDriverInfoDetail'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiGetClassDevs'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiGetClassDevsEx'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiGetINFClass'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiBuildClassInfoListEx'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiGetClassDescription'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiGetClassDescriptionEx'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiInstallClass'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiInstallClassEx'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiOpenClassRegKeyEx'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiCreateDeviceInterfaceRegKey'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiCreateInterfaceDeviceRegKey'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiCreateDevRegKey'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiGetHwProfileListEx'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiGetDeviceRegistryProperty'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiGetClassRegistryProperty'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiSetDeviceRegistryProperty'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiSetClassRegistryProperty'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiGetDeviceInstallParams'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiGetClassInstallParams'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiSetDeviceInstallParams'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiSetClassInstallParams'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiGetDriverInstallParams'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiSetDriverInstallParams'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiGetClassImageListEx'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiGetClassDevPropertySheets'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiClassNameFromGuid'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiClassNameFromGuidEx'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiClassGuidsFromName'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiClassGuidsFromNameEx'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiGetHwProfileFriendlyName'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiGetHwProfileFriendlyNameEx'*)<br>&nbsp;&nbsp;(*$HPPEMIT&nbsp;'#undef&nbsp;SetupDiGetActualSectionToInstall'*)<br><br>type<br>&nbsp;&nbsp;TSetupGetInfInformationA&nbsp;=&nbsp;function(InfSpec:&nbsp;Pointer;&nbsp;SearchControl:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;ReturnBuffer:&nbsp;PSPInfInformation;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupGetInfInformationW&nbsp;=&nbsp;function(InfSpec:&nbsp;Pointer;&nbsp;SearchControl:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;ReturnBuffer:&nbsp;PSPInfInformation;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupGetInfInformation&nbsp;=&nbsp;TSetupGetInfInformationA;<br><br>&nbsp;&nbsp;TSetupQueryInfFileInformationA&nbsp;=&nbsp;function(var&nbsp;InfInformation:&nbsp;TSPInfInformation;<br>&nbsp;&nbsp;&nbsp;&nbsp;InfIndex:&nbsp;UINT;&nbsp;ReturnBuffer:&nbsp;PAnsiChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQueryInfFileInformationW&nbsp;=&nbsp;function(var&nbsp;InfInformation:&nbsp;TSPInfInformation;<br>&nbsp;&nbsp;&nbsp;&nbsp;InfIndex:&nbsp;UINT;&nbsp;ReturnBuffer:&nbsp;PWideChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQueryInfFileInformation&nbsp;=&nbsp;TSetupQueryInfFileInformationA;<br><br>&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;TSetupQueryInfOriginalFileInformationA&nbsp;=&nbsp;function(var&nbsp;InfInformation:&nbsp;TSPInfInformation;<br>&nbsp;&nbsp;&nbsp;&nbsp;InfIndex:&nbsp;UINT;&nbsp;AlternatePlatformInfo:&nbsp;PSPAltPlatformInfo;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;OriginalFileInfo:&nbsp;TSPOriginalFileInfoA):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQueryInfOriginalFileInformationW&nbsp;=&nbsp;function(var&nbsp;InfInformation:&nbsp;TSPInfInformation;<br>&nbsp;&nbsp;&nbsp;&nbsp;InfIndex:&nbsp;UINT;&nbsp;AlternatePlatformInfo:&nbsp;PSPAltPlatformInfo;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;OriginalFileInfo:&nbsp;TSPOriginalFileInfoW):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQueryInfOriginalFileInformation&nbsp;=&nbsp;TSetupQueryInfOriginalFileInformationA;<br>&nbsp;&nbsp;{$ENDIF}<br><br>&nbsp;&nbsp;TSetupQueryInfVersionInformationA&nbsp;=&nbsp;function(var&nbsp;InfInformation:&nbsp;TSPInfInformation;<br>&nbsp;&nbsp;&nbsp;&nbsp;InfIndex:&nbsp;UINT;&nbsp;const&nbsp;Key,&nbsp;ReturnBuffer:&nbsp;PAnsiChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQueryInfVersionInformationW&nbsp;=&nbsp;function(var&nbsp;InfInformation:&nbsp;TSPInfInformation;<br>&nbsp;&nbsp;&nbsp;&nbsp;InfIndex:&nbsp;UINT;&nbsp;const&nbsp;Key,&nbsp;ReturnBuffer:&nbsp;PWideChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQueryInfVersionInformation&nbsp;=&nbsp;TSetupQueryInfVersionInformationA;<br><br>&nbsp;&nbsp;TSetupGetInfFileListA&nbsp;=&nbsp;function(const&nbsp;DirectoryPath:&nbsp;PAnsiChar;&nbsp;InfStyle:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;ReturnBuffer:&nbsp;PAnsiChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupGetInfFileListW&nbsp;=&nbsp;function(const&nbsp;DirectoryPath:&nbsp;PWideChar;&nbsp;InfStyle:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;ReturnBuffer:&nbsp;PWideChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupGetInfFileList&nbsp;=&nbsp;TSetupGetInfFileListA;<br><br>&nbsp;&nbsp;TSetupOpenInfFileA&nbsp;=&nbsp;function(const&nbsp;FileName:&nbsp;PAnsiChar;&nbsp;const&nbsp;InfClass:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;InfStyle:&nbsp;DWORD;&nbsp;ErrorLine:&nbsp;PUINT):&nbsp;HINF;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupOpenInfFileW&nbsp;=&nbsp;function(const&nbsp;FileName:&nbsp;PWideChar;&nbsp;const&nbsp;InfClass:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;InfStyle:&nbsp;DWORD;&nbsp;ErrorLine:&nbsp;PUINT):&nbsp;HINF;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupOpenInfFile&nbsp;=&nbsp;TSetupOpenInfFileA;<br><br>&nbsp;&nbsp;TSetupOpenMasterInf&nbsp;=&nbsp;function:&nbsp;HINF;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupOpenAppendInfFileA&nbsp;=&nbsp;function(const&nbsp;FileName:&nbsp;PAnsiChar;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;&nbsp;&nbsp;ErrorLine:&nbsp;PUINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupOpenAppendInfFileW&nbsp;=&nbsp;function(const&nbsp;FileName:&nbsp;PWideChar;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;&nbsp;&nbsp;ErrorLine:&nbsp;PUINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupOpenAppendInfFile&nbsp;=&nbsp;TSetupOpenAppendInfFileA;<br><br>&nbsp;&nbsp;TSetupCloseInfFile&nbsp;=&nbsp;procedure(InfHandle:&nbsp;HINF);&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupFindFirstLineA&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;&nbsp;Section,&nbsp;Key:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;Context:&nbsp;TInfContext):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupFindFirstLineW&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;&nbsp;Section,&nbsp;Key:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;Context:&nbsp;TInfContext):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupFindFirstLine&nbsp;=&nbsp;TSetupFindFirstLineA;<br><br>&nbsp;&nbsp;TSetupFindNextLine&nbsp;=&nbsp;function(var&nbsp;ContextIn,&nbsp;ContextOut:&nbsp;TInfContext):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupFindNextMatchLineA&nbsp;=&nbsp;function(var&nbsp;ContextIn:&nbsp;TInfContext;&nbsp;Key:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;ContextOut:&nbsp;TInfContext):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupFindNextMatchLineW&nbsp;=&nbsp;function(var&nbsp;ContextIn:&nbsp;TInfContext;&nbsp;Key:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;ContextOut:&nbsp;TInfContext):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupFindNextMatchLine&nbsp;=&nbsp;TSetupFindNextMatchLineA;<br><br>&nbsp;&nbsp;TSetupGetLineByIndexA&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;&nbsp;Section:&nbsp;PAnsiChar;&nbsp;Index:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;Context:&nbsp;TInfContext):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupGetLineByIndexW&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;&nbsp;Section:&nbsp;PWideChar;&nbsp;Index:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;Context:&nbsp;TInfContext):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupGetLineByIndex&nbsp;=&nbsp;TSetupGetLineByIndexA;<br><br>&nbsp;&nbsp;TSetupGetLineCountA&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;&nbsp;Section:&nbsp;PAnsiChar):&nbsp;Integer;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupGetLineCountW&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;&nbsp;Section:&nbsp;PWideChar):&nbsp;Integer;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupGetLineCount&nbsp;=&nbsp;TSetupGetLineCountA;<br><br>&nbsp;&nbsp;TSetupGetLineTextA&nbsp;=&nbsp;function(Context:&nbsp;PInfContext;&nbsp;InfHandle:&nbsp;HINF;&nbsp;Section,<br>&nbsp;&nbsp;&nbsp;&nbsp;Key,&nbsp;ReturnBuffer:&nbsp;PAnsiChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupGetLineTextW&nbsp;=&nbsp;function(Context:&nbsp;PInfContext;&nbsp;InfHandle:&nbsp;HINF;&nbsp;Section,<br>&nbsp;&nbsp;&nbsp;&nbsp;Key,&nbsp;ReturnBuffer:&nbsp;PWideChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupGetLineText&nbsp;=&nbsp;TSetupGetLineTextA;<br><br>&nbsp;&nbsp;TSetupGetFieldCount&nbsp;=&nbsp;function(var&nbsp;Context:&nbsp;TInfContext):&nbsp;DWORD;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupGetStringFieldA&nbsp;=&nbsp;function(var&nbsp;Context:&nbsp;TInfContext;&nbsp;FieldIndex:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;ReturnBuffer:&nbsp;PAnsiChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupGetStringFieldW&nbsp;=&nbsp;function(var&nbsp;Context:&nbsp;TInfContext;&nbsp;FieldIndex:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;ReturnBuffer:&nbsp;PWideChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupGetStringField&nbsp;=&nbsp;TSetupGetStringFieldA;<br><br>&nbsp;&nbsp;TSetupGetIntField&nbsp;=&nbsp;function(var&nbsp;Context:&nbsp;TInfContext;&nbsp;FieldIndex:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;IntegerValue:&nbsp;Integer):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupGetMultiSzFieldA&nbsp;=&nbsp;function(var&nbsp;Context:&nbsp;TInfContext;&nbsp;FieldIndex:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;ReturnBuffer:&nbsp;PAnsiChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupGetMultiSzFieldW&nbsp;=&nbsp;function(var&nbsp;Context:&nbsp;TInfContext;&nbsp;FieldIndex:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;ReturnBuffer:&nbsp;PWideChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupGetMultiSzField&nbsp;=&nbsp;TSetupGetMultiSzFieldA;<br><br>&nbsp;&nbsp;TSetupGetBinaryField&nbsp;=&nbsp;function(var&nbsp;Context:&nbsp;TInfContext;&nbsp;FieldIndex:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;ReturnBuffer:&nbsp;PBYTE;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupGetFileCompressionInfoA&nbsp;=&nbsp;function(const&nbsp;SourceFilename:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;ActualSourceFileName:&nbsp;PAnsiChar;&nbsp;var&nbsp;SourceFileSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;TargetFileSize:&nbsp;DWORD;&nbsp;var&nbsp;CompressionType:&nbsp;UINT):&nbsp;DWORD;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupGetFileCompressionInfoW&nbsp;=&nbsp;function(const&nbsp;SourceFilename:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;ActualSourceFileName:&nbsp;PWideChar;&nbsp;var&nbsp;SourceFileSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;TargetFileSize:&nbsp;DWORD;&nbsp;var&nbsp;CompressionType:&nbsp;UINT):&nbsp;DWORD;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupGetFileCompressionInfo&nbsp;=&nbsp;TSetupGetFileCompressionInfoA;<br><br>&nbsp;&nbsp;TSetupDecompressOrCopyFileA&nbsp;=&nbsp;function(const&nbsp;SourceFilename,&nbsp;TargetFilename:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;CompressionType:&nbsp;UINT):&nbsp;DWORD;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDecompressOrCopyFileW&nbsp;=&nbsp;function(const&nbsp;SourceFilename,&nbsp;TargetFilename:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;CompressionType:&nbsp;UINT):&nbsp;DWORD;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDecompressOrCopyFile&nbsp;=&nbsp;TSetupDecompressOrCopyFileA;<br><br>&nbsp;&nbsp;TSetupGetSourceFileLocationA&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;&nbsp;INFCONTEXT:&nbsp;PInfContext;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;FileName:&nbsp;PAnsiChar;&nbsp;var&nbsp;SourceId:&nbsp;UINT;&nbsp;ReturnBuffer:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupGetSourceFileLocationW&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;&nbsp;INFCONTEXT:&nbsp;PInfContext;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;FileName:&nbsp;PWideChar;&nbsp;var&nbsp;SourceId:&nbsp;UINT;&nbsp;ReturnBuffer:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupGetSourceFileLocation&nbsp;=&nbsp;TSetupGetSourceFileLocationA;<br><br>&nbsp;&nbsp;TSetupGetSourceFileSizeA&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;&nbsp;INFCONTEXT:&nbsp;PInfContext;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;FileName:&nbsp;PAnsiChar;&nbsp;const&nbsp;Section:&nbsp;PAnsiChar;&nbsp;var&nbsp;FileSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;RoundingFactor:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupGetSourceFileSizeW&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;&nbsp;INFCONTEXT:&nbsp;PInfContext;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;FileName:&nbsp;PWideChar;&nbsp;const&nbsp;Section:&nbsp;PWideChar;&nbsp;var&nbsp;FileSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;RoundingFactor:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupGetSourceFileSize&nbsp;=&nbsp;TSetupGetSourceFileSizeA;<br><br>&nbsp;&nbsp;TSetupGetTargetPathA&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;&nbsp;INFCONTEXT:&nbsp;PInfContext;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;Section:&nbsp;PAnsiChar;&nbsp;ReturnBuffer:&nbsp;PAnsiChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupGetTargetPathW&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;&nbsp;INFCONTEXT:&nbsp;PInfContext;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;Section:&nbsp;PWideChar;&nbsp;ReturnBuffer:&nbsp;PWideChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupGetTargetPath&nbsp;=&nbsp;TSetupGetTargetPathA;<br><br>&nbsp;&nbsp;TSetupSetSourceListA&nbsp;=&nbsp;function(Flags:&nbsp;DWORD;&nbsp;SourceList:&nbsp;PPASTR;<br>&nbsp;&nbsp;&nbsp;&nbsp;SourceCount:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupSetSourceListW&nbsp;=&nbsp;function(Flags:&nbsp;DWORD;&nbsp;SourceList:&nbsp;PPWSTR;<br>&nbsp;&nbsp;&nbsp;&nbsp;SourceCount:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupSetSourceList&nbsp;=&nbsp;function(Flags:&nbsp;DWORD;&nbsp;SourceList:&nbsp;PPSTR;<br>&nbsp;&nbsp;&nbsp;&nbsp;SourceCount:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupCancelTemporarySourceList&nbsp;=&nbsp;function:&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupAddToSourceListA&nbsp;=&nbsp;function(Flags:&nbsp;DWORD;&nbsp;const&nbsp;Source:&nbsp;PAnsiChar):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupAddToSourceListW&nbsp;=&nbsp;function(Flags:&nbsp;DWORD;&nbsp;const&nbsp;Source:&nbsp;PWideChar):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupAddToSourceList&nbsp;=&nbsp;TSetupAddToSourceListA;<br><br>&nbsp;&nbsp;TSetupRemoveFromSourceListA&nbsp;=&nbsp;function(Flags:&nbsp;DWORD;&nbsp;const&nbsp;Source:&nbsp;PAnsiChar):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupRemoveFromSourceListW&nbsp;=&nbsp;function(Flags:&nbsp;DWORD;&nbsp;const&nbsp;Source:&nbsp;PWideChar):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupRemoveFromSourceList&nbsp;=&nbsp;TSetupRemoveFromSourceListA;<br><br>&nbsp;&nbsp;TSetupQuerySourceListA&nbsp;=&nbsp;function(Flags:&nbsp;DWORD;&nbsp;var&nbsp;List:&nbsp;PPASTR;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;Count:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQuerySourceListW&nbsp;=&nbsp;function(Flags:&nbsp;DWORD;&nbsp;var&nbsp;List:&nbsp;PPWSTR;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;Count:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQuerySourceList&nbsp;=&nbsp;function(Flags:&nbsp;DWORD;&nbsp;var&nbsp;List:&nbsp;PPSTR;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;Count:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupFreeSourceListA&nbsp;=&nbsp;function(var&nbsp;List:&nbsp;PPWSTR;&nbsp;Count:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupFreeSourceListW&nbsp;=&nbsp;function(var&nbsp;List:&nbsp;PPASTR;&nbsp;Count:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupFreeSourceList&nbsp;=&nbsp;function(var&nbsp;List:&nbsp;PPSTR;&nbsp;Count:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupPromptForDiskA&nbsp;=&nbsp;function(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;DialogTitle,&nbsp;DiskName,<br>&nbsp;&nbsp;&nbsp;&nbsp;PathToSource,&nbsp;FileSought,&nbsp;Tagfile:&nbsp;PAnsiChar;&nbsp;DiskPromptStyle:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;PathBuffer:&nbsp;PAnsiChar;&nbsp;PathBufferSize:&nbsp;DWORD;&nbsp;var&nbsp;PathRequiredSize:&nbsp;DWORD):&nbsp;UINT;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupPromptForDiskW&nbsp;=&nbsp;function(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;DialogTitle,&nbsp;DiskName,<br>&nbsp;&nbsp;&nbsp;&nbsp;PathToSource,&nbsp;FileSought,&nbsp;Tagfile:&nbsp;PWideChar;&nbsp;DiskPromptStyle:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;PathBuffer:&nbsp;PWideChar;&nbsp;PathBufferSize:&nbsp;DWORD;&nbsp;var&nbsp;PathRequiredSize:&nbsp;DWORD):&nbsp;UINT;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupPromptForDisk&nbsp;=&nbsp;TSetupPromptForDiskA;<br><br>&nbsp;&nbsp;TSetupCopyErrorA&nbsp;=&nbsp;function(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;DialogTitle,&nbsp;DiskName,<br>&nbsp;&nbsp;&nbsp;&nbsp;PathToSource,&nbsp;SourceFile,&nbsp;TargetPathFile:&nbsp;PAnsiChar;&nbsp;Win32ErrorCode:&nbsp;UINT;&nbsp;Style:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;PathBuffer:&nbsp;PAnsiChar;&nbsp;PathBufferSize:&nbsp;DWORD;&nbsp;PathRequiredSize:&nbsp;PDWORD):&nbsp;UINT;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupCopyErrorW&nbsp;=&nbsp;function(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;DialogTitle,&nbsp;DiskName,<br>&nbsp;&nbsp;&nbsp;&nbsp;PathToSource,&nbsp;SourceFile,&nbsp;TargetPathFile:&nbsp;PWideChar;&nbsp;Win32ErrorCode:&nbsp;UINT;&nbsp;Style:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;PathBuffer:&nbsp;PWideChar;&nbsp;PathBufferSize:&nbsp;DWORD;&nbsp;PathRequiredSize:&nbsp;PDWORD):&nbsp;UINT;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupCopyError&nbsp;=&nbsp;TSetupCopyErrorA;<br><br>&nbsp;&nbsp;TSetupRenameErrorA&nbsp;=&nbsp;function(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;DialogTitle,&nbsp;SourceFile,<br>&nbsp;&nbsp;&nbsp;&nbsp;TargetFile:&nbsp;PAnsiChar;&nbsp;Win32ErrorCode:&nbsp;UINT;&nbsp;Style:&nbsp;DWORD):&nbsp;UINT;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupRenameErrorW&nbsp;=&nbsp;function(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;DialogTitle,&nbsp;SourceFile,<br>&nbsp;&nbsp;&nbsp;&nbsp;TargetFile:&nbsp;PWideChar;&nbsp;Win32ErrorCode:&nbsp;UINT;&nbsp;Style:&nbsp;DWORD):&nbsp;UINT;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupRenameError&nbsp;=&nbsp;TSetupRenameErrorA;<br><br>&nbsp;&nbsp;TSetupDeleteErrorA&nbsp;=&nbsp;function(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;DialogTitle,&nbsp;File_:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Win32ErrorCode:&nbsp;UINT;&nbsp;Style:&nbsp;DWORD):&nbsp;UINT;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDeleteErrorW&nbsp;=&nbsp;function(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;DialogTitle,&nbsp;File_:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Win32ErrorCode:&nbsp;UINT;&nbsp;Style:&nbsp;DWORD):&nbsp;UINT;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDeleteError&nbsp;=&nbsp;TSetupDeleteErrorA;<br><br>&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;TSetupBackupErrorA&nbsp;=&nbsp;function(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;DialogTitle,&nbsp;BackupFile,<br>&nbsp;&nbsp;&nbsp;&nbsp;TargetFile:&nbsp;PAnsiChar;&nbsp;Win32ErrorCode:&nbsp;UINT;&nbsp;Style:&nbsp;DWORD):&nbsp;UINT;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupBackupErrorW&nbsp;=&nbsp;function(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;DialogTitle,&nbsp;BackupFile,<br>&nbsp;&nbsp;&nbsp;&nbsp;TargetFile:&nbsp;PWideChar;&nbsp;Win32ErrorCode:&nbsp;UINT;&nbsp;Style:&nbsp;DWORD):&nbsp;UINT;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupBackupError&nbsp;=&nbsp;TSetupBackupErrorA;<br>&nbsp;&nbsp;{$ENDIF}<br><br>&nbsp;&nbsp;TSetupSetDirectoryIdA&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;&nbsp;Id:&nbsp;DWORD;&nbsp;const&nbsp;Directory:&nbsp;PAnsiChar):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupSetDirectoryIdW&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;&nbsp;Id:&nbsp;DWORD;&nbsp;const&nbsp;Directory:&nbsp;PWideChar):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupSetDirectoryId&nbsp;=&nbsp;TSetupSetDirectoryIdA;<br><br>&nbsp;&nbsp;TSetupSetDirectoryIdExA&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;&nbsp;Id:&nbsp;DWORD;&nbsp;const&nbsp;Directory:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Flags:&nbsp;DWORD;&nbsp;Reserved1:&nbsp;DWORD;&nbsp;Reserved2:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupSetDirectoryIdExW&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;&nbsp;Id:&nbsp;DWORD;&nbsp;const&nbsp;Directory:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Flags:&nbsp;DWORD;&nbsp;Reserved1:&nbsp;DWORD;&nbsp;Reserved2:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupSetDirectoryIdEx&nbsp;=&nbsp;TSetupSetDirectoryIdExA;<br><br>&nbsp;&nbsp;TSetupGetSourceInfoA&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;&nbsp;SourceId,&nbsp;InfoDesired:&nbsp;UINT;<br>&nbsp;&nbsp;&nbsp;&nbsp;ReturnBuffer:&nbsp;PAnsiChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupGetSourceInfoW&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;&nbsp;SourceId,&nbsp;InfoDesired:&nbsp;UINT;<br>&nbsp;&nbsp;&nbsp;&nbsp;ReturnBuffer:&nbsp;PWideChar;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupGetSourceInfo&nbsp;=&nbsp;TSetupGetSourceInfoA;<br><br>&nbsp;&nbsp;TSetupInstallFileA&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;&nbsp;INFCONTEXT:&nbsp;PInfContext;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;SourceFile,&nbsp;SourcePathRoot,&nbsp;DestinationName:&nbsp;PAnsiChar;&nbsp;CopyStyle:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;CopyMsgHandler:&nbsp;TSPFileCallbackA;&nbsp;Context:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupInstallFileW&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;&nbsp;INFCONTEXT:&nbsp;PInfContext;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;SourceFile,&nbsp;SourcePathRoot,&nbsp;DestinationName:&nbsp;PWideChar;&nbsp;CopyStyle:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;CopyMsgHandler:&nbsp;TSPFileCallbackW;&nbsp;Context:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupInstallFile&nbsp;=&nbsp;TSetupInstallFileA;<br><br>&nbsp;&nbsp;TSetupInstallFileExA&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;&nbsp;INFCONTEXT:&nbsp;PInfContext;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;SourceFile,&nbsp;SourcePathRoot,&nbsp;DestinationName:&nbsp;PAnsiChar;&nbsp;CopyStyle:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;CopyMsgHandler:&nbsp;TSPFileCallbackA;&nbsp;Context:&nbsp;Pointer;&nbsp;var&nbsp;FileWasInUse:&nbsp;LongBool):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupInstallFileExW&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;&nbsp;INFCONTEXT:&nbsp;PInfContext;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;SourceFile,&nbsp;SourcePathRoot,&nbsp;DestinationName:&nbsp;PWideChar;&nbsp;CopyStyle:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;CopyMsgHandler:&nbsp;TSPFileCallbackW;&nbsp;Context:&nbsp;Pointer;&nbsp;var&nbsp;FileWasInUse:&nbsp;LongBool):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupInstallFileEx&nbsp;=&nbsp;TSetupInstallFileExA;<br><br>&nbsp;&nbsp;TSetupOpenFileQueue&nbsp;=&nbsp;function:&nbsp;HSPFILEQ;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupCloseFileQueue&nbsp;=&nbsp;function(QueueHandle:&nbsp;HSPFILEQ):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;TSetupSetFileQueueAlternatePlatformA&nbsp;=&nbsp;function(QueueHandle:&nbsp;HSPFILEQ;<br>&nbsp;&nbsp;&nbsp;&nbsp;AlternatePlatformInfo:&nbsp;PSPAltPlatformInfo;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;AlternateDefaultCatalogFile:&nbsp;PAnsiChar):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupSetFileQueueAlternatePlatformW&nbsp;=&nbsp;function(QueueHandle:&nbsp;HSPFILEQ;<br>&nbsp;&nbsp;&nbsp;&nbsp;AlternatePlatformInfo:&nbsp;PSPAltPlatformInfo;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;AlternateDefaultCatalogFile:&nbsp;PWideChar):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupSetFileQueueAlternatePlatform&nbsp;=&nbsp;TSetupSetFileQueueAlternatePlatformA;<br>&nbsp;&nbsp;{$ENDIF}<br><br>&nbsp;&nbsp;TSetupSetPlatformPathOverrideA&nbsp;=&nbsp;function(const&nbsp;Override_:&nbsp;PAnsiChar):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupSetPlatformPathOverrideW&nbsp;=&nbsp;function(const&nbsp;Override_:&nbsp;PWideChar):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupSetPlatformPathOverride&nbsp;=&nbsp;TSetupSetPlatformPathOverrideA;<br><br>&nbsp;&nbsp;TSetupQueueCopyA&nbsp;=&nbsp;function(QueueHandle:&nbsp;HSPFILEQ;&nbsp;const&nbsp;SourceRootPath,&nbsp;SourcePath,<br>&nbsp;&nbsp;&nbsp;&nbsp;SourceFilename,&nbsp;SourceDescription,&nbsp;SourceTagfile,&nbsp;TargetDirectory,<br>&nbsp;&nbsp;&nbsp;&nbsp;TargetFilename:&nbsp;PAnsiChar;&nbsp;CopyStyle:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQueueCopyW&nbsp;=&nbsp;function(QueueHandle:&nbsp;HSPFILEQ;&nbsp;const&nbsp;SourceRootPath,&nbsp;SourcePath,<br>&nbsp;&nbsp;&nbsp;&nbsp;SourceFilename,&nbsp;SourceDescription,&nbsp;SourceTagfile,&nbsp;TargetDirectory,<br>&nbsp;&nbsp;&nbsp;&nbsp;TargetFilename:&nbsp;PWideChar;&nbsp;CopyStyle:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQueueCopy&nbsp;=&nbsp;TSetupQueueCopyA;<br><br>&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;TSetupQueueCopyIndirectA&nbsp;=&nbsp;function(var&nbsp;CopyParams:&nbsp;TSPFileCopyParamsA):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQueueCopyIndirectW&nbsp;=&nbsp;function(var&nbsp;CopyParams:&nbsp;TSPFileCopyParamsW):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQueueCopyIndirect&nbsp;=&nbsp;TSetupQueueCopyIndirectA;<br>&nbsp;&nbsp;{$ENDIF}<br><br>&nbsp;&nbsp;TSetupQueueDefaultCopyA&nbsp;=&nbsp;function(QueueHandle:&nbsp;HSPFILEQ;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;SourceRootPath,&nbsp;SourceFilename,&nbsp;TargetFilename:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;CopyStyle:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQueueDefaultCopyW&nbsp;=&nbsp;function(QueueHandle:&nbsp;HSPFILEQ;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;SourceRootPath,&nbsp;SourceFilename,&nbsp;TargetFilename:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;CopyStyle:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQueueDefaultCopy&nbsp;=&nbsp;TSetupQueueDefaultCopyA;<br><br>&nbsp;&nbsp;TSetupQueueCopySectionA&nbsp;=&nbsp;function(QueueHandle:&nbsp;HSPFILEQ;&nbsp;const&nbsp;SourceRootPath:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;InfHandle:&nbsp;HINF;&nbsp;ListInfHandle:&nbsp;HINF;&nbsp;const&nbsp;Section:&nbsp;PAnsiChar;&nbsp;CopyStyle:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQueueCopySectionW&nbsp;=&nbsp;function(QueueHandle:&nbsp;HSPFILEQ;&nbsp;const&nbsp;SourceRootPath:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;InfHandle:&nbsp;HINF;&nbsp;ListInfHandle:&nbsp;HINF;&nbsp;const&nbsp;Section:&nbsp;PWideChar;&nbsp;CopyStyle:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQueueCopySection&nbsp;=&nbsp;TSetupQueueCopySectionA;<br><br>&nbsp;&nbsp;TSetupQueueDeleteA&nbsp;=&nbsp;function(QueueHandle:&nbsp;HSPFILEQ;&nbsp;const&nbsp;PathPart1,&nbsp;PathPart2:&nbsp;PAnsiChar):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQueueDeleteW&nbsp;=&nbsp;function(QueueHandle:&nbsp;HSPFILEQ;&nbsp;const&nbsp;PathPart1,&nbsp;PathPart2:&nbsp;PWideChar):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQueueDelete&nbsp;=&nbsp;TSetupQueueDeleteA;<br><br>&nbsp;&nbsp;TSetupQueueDeleteSectionA&nbsp;=&nbsp;function(QueueHandle:&nbsp;HSPFILEQ;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;&nbsp;&nbsp;ListInfHandle:&nbsp;HINF;&nbsp;const&nbsp;Section:&nbsp;PAnsiChar):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQueueDeleteSectionW&nbsp;=&nbsp;function(QueueHandle:&nbsp;HSPFILEQ;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;&nbsp;&nbsp;ListInfHandle:&nbsp;HINF;&nbsp;const&nbsp;Section:&nbsp;PWideChar):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQueueDeleteSection&nbsp;=&nbsp;TSetupQueueDeleteSectionA;<br><br>&nbsp;&nbsp;TSetupQueueRenameA&nbsp;=&nbsp;function(QueueHandle:&nbsp;HSPFILEQ;&nbsp;const&nbsp;SourcePath,<br>&nbsp;&nbsp;&nbsp;&nbsp;SourceFilename,&nbsp;TargetPath,&nbsp;TargetFilename:&nbsp;PAnsiChar):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQueueRenameW&nbsp;=&nbsp;function(QueueHandle:&nbsp;HSPFILEQ;&nbsp;const&nbsp;SourcePath,<br>&nbsp;&nbsp;&nbsp;&nbsp;SourceFilename,&nbsp;TargetPath,&nbsp;TargetFilename:&nbsp;PWideChar):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQueueRename&nbsp;=&nbsp;TSetupQueueRenameA;<br><br>&nbsp;&nbsp;TSetupQueueRenameSectionA&nbsp;=&nbsp;function(QueueHandle:&nbsp;HSPFILEQ;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;&nbsp;&nbsp;ListInfHandle:&nbsp;HINF;&nbsp;const&nbsp;Section:&nbsp;PAnsiChar):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQueueRenameSectionW&nbsp;=&nbsp;function(QueueHandle:&nbsp;HSPFILEQ;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;&nbsp;&nbsp;ListInfHandle:&nbsp;HINF;&nbsp;const&nbsp;Section:&nbsp;PWideChar):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQueueRenameSection&nbsp;=&nbsp;TSetupQueueRenameSectionA;<br><br>&nbsp;&nbsp;TSetupCommitFileQueueA&nbsp;=&nbsp;function(Owner:&nbsp;HWND;&nbsp;QueueHandle:&nbsp;HSPFILEQ;<br>&nbsp;&nbsp;&nbsp;&nbsp;MsgHandler:&nbsp;TSPFileCallbackA;&nbsp;Context:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupCommitFileQueueW&nbsp;=&nbsp;function(Owner:&nbsp;HWND;&nbsp;QueueHandle:&nbsp;HSPFILEQ;<br>&nbsp;&nbsp;&nbsp;&nbsp;MsgHandler:&nbsp;TSPFileCallbackW;&nbsp;Context:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupCommitFileQueue&nbsp;=&nbsp;TSetupCommitFileQueueA;<br><br>&nbsp;&nbsp;TSetupScanFileQueueA&nbsp;=&nbsp;function(FileQueue:&nbsp;HSPFILEQ;&nbsp;Flags:&nbsp;DWORD;&nbsp;Window:&nbsp;HWND;<br>&nbsp;&nbsp;&nbsp;&nbsp;CallbackRoutine:&nbsp;TSPFileCallbackA;&nbsp;CallbackContext:&nbsp;Pointer;&nbsp;var&nbsp;Result:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupScanFileQueueW&nbsp;=&nbsp;function(FileQueue:&nbsp;HSPFILEQ;&nbsp;Flags:&nbsp;DWORD;&nbsp;Window:&nbsp;HWND;<br>&nbsp;&nbsp;&nbsp;&nbsp;CallbackRoutine:&nbsp;TSPFileCallbackW;&nbsp;CallbackContext:&nbsp;Pointer;&nbsp;var&nbsp;Result:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupScanFileQueue&nbsp;=&nbsp;TSetupScanFileQueueA;<br><br>&nbsp;&nbsp;TSetupCopyOEMInfA&nbsp;=&nbsp;function(const&nbsp;SourceInfFileName,&nbsp;OEMSourceMediaLocation:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;OEMSourceMediaType,&nbsp;CopyStyle:&nbsp;DWORD;&nbsp;DestinationInfFileName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;DestinationInfFileNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;DestinationInfFileNameComponent:&nbsp;PPASTR):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupCopyOEMInfW&nbsp;=&nbsp;function(const&nbsp;SourceInfFileName,&nbsp;OEMSourceMediaLocation:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;OEMSourceMediaType,&nbsp;CopyStyle:&nbsp;DWORD;&nbsp;DestinationInfFileName:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;DestinationInfFileNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;DestinationInfFileNameComponent:&nbsp;PPWSTR):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupCopyOEMInf&nbsp;=&nbsp;function(const&nbsp;SourceInfFileName,&nbsp;OEMSourceMediaLocation:&nbsp;PChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;OEMSourceMediaType,&nbsp;CopyStyle:&nbsp;DWORD;&nbsp;DestinationInfFileName:&nbsp;PChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;DestinationInfFileNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;DestinationInfFileNameComponent:&nbsp;PPSTR):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Disk&nbsp;space&nbsp;list&nbsp;APIs<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;TSetupCreateDiskSpaceListA&nbsp;=&nbsp;function(Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;Flags:&nbsp;UINT):&nbsp;HDSKSPC;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupCreateDiskSpaceListW&nbsp;=&nbsp;function(Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;Flags:&nbsp;UINT):&nbsp;HDSKSPC;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupCreateDiskSpaceList&nbsp;=&nbsp;TSetupCreateDiskSpaceListA;<br><br>&nbsp;&nbsp;TSetupDuplicateDiskSpaceListA&nbsp;=&nbsp;function(DiskSpace:&nbsp;HDSKSPC;&nbsp;Reserved1:&nbsp;Pointer;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved2:&nbsp;DWORD;&nbsp;Flags:&nbsp;UINT):&nbsp;HDSKSPC;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDuplicateDiskSpaceListW&nbsp;=&nbsp;function(DiskSpace:&nbsp;HDSKSPC;&nbsp;Reserved1:&nbsp;Pointer;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved2:&nbsp;DWORD;&nbsp;Flags:&nbsp;UINT):&nbsp;HDSKSPC;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDuplicateDiskSpaceList&nbsp;=&nbsp;TSetupDuplicateDiskSpaceListA;<br><br>&nbsp;&nbsp;TSetupDestroyDiskSpaceList&nbsp;=&nbsp;function(DiskSpace:&nbsp;HDSKSPC):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupQueryDrivesInDiskSpaceListA&nbsp;=&nbsp;function(DiskSpace:&nbsp;HDSKSPC;&nbsp;ReturnBuffer:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQueryDrivesInDiskSpaceListW&nbsp;=&nbsp;function(DiskSpace:&nbsp;HDSKSPC;&nbsp;ReturnBuffer:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQueryDrivesInDiskSpaceList&nbsp;=&nbsp;TSetupQueryDrivesInDiskSpaceListA;<br><br>&nbsp;&nbsp;TSetupQuerySpaceRequiredOnDriveA&nbsp;=&nbsp;function(DiskSpace:&nbsp;HDSKSPC;&nbsp;const&nbsp;DriveSpec:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;SpaceRequired:&nbsp;Int64;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQuerySpaceRequiredOnDriveW&nbsp;=&nbsp;function(DiskSpace:&nbsp;HDSKSPC;&nbsp;const&nbsp;DriveSpec:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;SpaceRequired:&nbsp;Int64;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQuerySpaceRequiredOnDrive&nbsp;=&nbsp;TSetupQuerySpaceRequiredOnDriveA;<br><br>&nbsp;&nbsp;TSetupAdjustDiskSpaceListA&nbsp;=&nbsp;function(DiskSpace:&nbsp;HDSKSPC;&nbsp;const&nbsp;DriveRoot:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Amount:&nbsp;Int64;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupAdjustDiskSpaceListW&nbsp;=&nbsp;function(DiskSpace:&nbsp;HDSKSPC;&nbsp;const&nbsp;DriveRoot:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Amount:&nbsp;Int64;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupAdjustDiskSpaceList&nbsp;=&nbsp;TSetupAdjustDiskSpaceListA;<br><br>&nbsp;&nbsp;TSetupAddToDiskSpaceListA&nbsp;=&nbsp;function(DiskSpace:&nbsp;HDSKSPC;&nbsp;const&nbsp;TargetFilespec:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;FileSize:&nbsp;Int64;&nbsp;Operation:&nbsp;UINT;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupAddToDiskSpaceListW&nbsp;=&nbsp;function(DiskSpace:&nbsp;HDSKSPC;&nbsp;const&nbsp;TargetFilespec:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;FileSize:&nbsp;Int64;&nbsp;Operation:&nbsp;UINT;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupAddToDiskSpaceList&nbsp;=&nbsp;TSetupAddToDiskSpaceListA;<br><br>&nbsp;&nbsp;TSetupAddSectionToDiskSpaceListA&nbsp;=&nbsp;function(DiskSpace:&nbsp;HDSKSPC;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;&nbsp;&nbsp;ListInfHandle:&nbsp;HINF;&nbsp;const&nbsp;SectionName:&nbsp;PAnsiChar;&nbsp;Operation:&nbsp;UINT;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupAddSectionToDiskSpaceListW&nbsp;=&nbsp;function(DiskSpace:&nbsp;HDSKSPC;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;&nbsp;&nbsp;ListInfHandle:&nbsp;HINF;&nbsp;const&nbsp;SectionName:&nbsp;PWideChar;&nbsp;Operation:&nbsp;UINT;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupAddSectionToDiskSpaceList&nbsp;=&nbsp;TSetupAddSectionToDiskSpaceListA;<br><br>&nbsp;&nbsp;TSetupAddInstallSectionToDiskSpaceListA&nbsp;=&nbsp;function(DiskSpace:&nbsp;HDSKSPC;<br>&nbsp;&nbsp;&nbsp;&nbsp;InfHandle:&nbsp;HINF;&nbsp;LayoutInfHandle:&nbsp;HINF;&nbsp;const&nbsp;SectionName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupAddInstallSectionToDiskSpaceListW&nbsp;=&nbsp;function(DiskSpace:&nbsp;HDSKSPC;<br>&nbsp;&nbsp;&nbsp;&nbsp;InfHandle:&nbsp;HINF;&nbsp;LayoutInfHandle:&nbsp;HINF;&nbsp;const&nbsp;SectionName:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupAddInstallSectionToDiskSpaceList&nbsp;=&nbsp;TSetupAddInstallSectionToDiskSpaceListA;<br><br>&nbsp;&nbsp;TSetupRemoveFromDiskSpaceListA&nbsp;=&nbsp;function(DiskSpace:&nbsp;HDSKSPC;&nbsp;const&nbsp;TargetFilespec:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Operation:&nbsp;UINT;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupRemoveFromDiskSpaceListW&nbsp;=&nbsp;function(DiskSpace:&nbsp;HDSKSPC;&nbsp;const&nbsp;TargetFilespec:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Operation:&nbsp;UINT;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupRemoveFromDiskSpaceList&nbsp;=&nbsp;TSetupRemoveFromDiskSpaceListA;<br><br>&nbsp;&nbsp;TSetupRemoveSectionFromDiskSpaceListA&nbsp;=&nbsp;function(DiskSpace:&nbsp;HDSKSPC;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;&nbsp;&nbsp;ListInfHandle:&nbsp;HINF;&nbsp;const&nbsp;SectionName:&nbsp;PAnsiChar;&nbsp;Operation:&nbsp;UINT;&nbsp;Reserved1:&nbsp;Pointer;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupRemoveSectionFromDiskSpaceListW&nbsp;=&nbsp;function(DiskSpace:&nbsp;HDSKSPC;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;&nbsp;&nbsp;ListInfHandle:&nbsp;HINF;&nbsp;const&nbsp;SectionName:&nbsp;PWideChar;&nbsp;Operation:&nbsp;UINT;&nbsp;Reserved1:&nbsp;Pointer;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupRemoveSectionFromDiskSpaceList&nbsp;=&nbsp;TSetupRemoveSectionFromDiskSpaceListA;<br><br>&nbsp;&nbsp;TSetupRemoveInstallSectionFromDiskSpaceListA&nbsp;=&nbsp;function(DiskSpace:&nbsp;HDSKSPC;<br>&nbsp;&nbsp;&nbsp;&nbsp;InfHandle:&nbsp;HINF;&nbsp;LayoutInfHandle:&nbsp;HINF;&nbsp;const&nbsp;SectionName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupRemoveInstallSectionFromDiskSpaceListW&nbsp;=&nbsp;function(DiskSpace:&nbsp;HDSKSPC;<br>&nbsp;&nbsp;&nbsp;&nbsp;InfHandle:&nbsp;HINF;&nbsp;LayoutInfHandle:&nbsp;HINF;&nbsp;const&nbsp;SectionName:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved1:&nbsp;Pointer;&nbsp;Reserved2:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupRemoveInstallSectionFromDiskSpaceList&nbsp;=&nbsp;TSetupRemoveInstallSectionFromDiskSpaceListA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Cabinet&nbsp;APIs<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;TSetupIterateCabinetA&nbsp;=&nbsp;function(const&nbsp;CabinetFile:&nbsp;PAnsiChar;&nbsp;Reserved:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;MsgHandler:&nbsp;TSPFileCallbackA;&nbsp;Context:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupIterateCabinetW&nbsp;=&nbsp;function(const&nbsp;CabinetFile:&nbsp;PWideChar;&nbsp;Reserved:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;MsgHandler:&nbsp;TSPFileCallbackW;&nbsp;Context:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupIterateCabinet&nbsp;=&nbsp;TSetupIterateCabinetA;<br><br>&nbsp;&nbsp;TSetupPromptReboot&nbsp;=&nbsp;function(FileQueue:&nbsp;HSPFILEQ;&nbsp;Owner:&nbsp;HWND;&nbsp;ScanOnly:&nbsp;LongBool):&nbsp;Integer;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupInitDefaultQueueCallback&nbsp;=&nbsp;function(OwnerWindow:&nbsp;HWND):&nbsp;Pointer;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupInitDefaultQueueCallbackEx&nbsp;=&nbsp;function(OwnerWindow:&nbsp;HWND;&nbsp;AlternateProgressWindow:&nbsp;HWND;<br>&nbsp;&nbsp;&nbsp;&nbsp;ProgressMessage:&nbsp;UINT;&nbsp;Reserved1:&nbsp;DWORD;&nbsp;Reserved2:&nbsp;Pointer):&nbsp;Pointer;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupTermDefaultQueueCallback&nbsp;=&nbsp;procedure(Context:&nbsp;Pointer);&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDefaultQueueCallbackA&nbsp;=&nbsp;function(Context:&nbsp;Pointer;&nbsp;Notification:&nbsp;UINT;<br>&nbsp;&nbsp;&nbsp;&nbsp;Param1,&nbsp;Param2:&nbsp;UINT_PTR):&nbsp;UINT;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDefaultQueueCallbackW&nbsp;=&nbsp;function(Context:&nbsp;Pointer;&nbsp;Notification:&nbsp;UINT;<br>&nbsp;&nbsp;&nbsp;&nbsp;Param1,&nbsp;Param2:&nbsp;UINT_PTR):&nbsp;UINT;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDefaultQueueCallback&nbsp;=&nbsp;TSetupDefaultQueueCallbackA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;The&nbsp;INF&nbsp;may&nbsp;supply&nbsp;any&nbsp;arbitrary&nbsp;data&nbsp;type&nbsp;ordinal&nbsp;in&nbsp;the&nbsp;highword&nbsp;except<br>&nbsp;&nbsp;//&nbsp;for&nbsp;the&nbsp;following:&nbsp;REG_NONE,&nbsp;REG_SZ,&nbsp;REG_EXPAND_SZ,&nbsp;REG_MULTI_SZ.&nbsp;If&nbsp;this<br>&nbsp;&nbsp;//&nbsp;technique&nbsp;is&nbsp;used,&nbsp;then&nbsp;the&nbsp;data&nbsp;is&nbsp;given&nbsp;in&nbsp;binary&nbsp;format,&nbsp;one&nbsp;byte&nbsp;per<br>&nbsp;&nbsp;//&nbsp;field.<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;TSetupInstallFromInfSectionA&nbsp;=&nbsp;function(Owner:&nbsp;HWND;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;SectionName:&nbsp;PAnsiChar;&nbsp;Flags:&nbsp;UINT;&nbsp;RelativeKeyRoot:&nbsp;HKEY;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;SourceRootPath:&nbsp;PAnsiChar;&nbsp;CopyFlags:&nbsp;UINT;&nbsp;MsgHandler:&nbsp;TSPFileCallbackA;<br>&nbsp;&nbsp;&nbsp;&nbsp;Context:&nbsp;Pointer;&nbsp;DeviceInfoSet:&nbsp;HDEVINFO;&nbsp;DeviceIn:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupInstallFromInfSectionW&nbsp;=&nbsp;function(Owner:&nbsp;HWND;&nbsp;InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;SectionName:&nbsp;PWideChar;&nbsp;Flags:&nbsp;UINT;&nbsp;RelativeKeyRoot:&nbsp;HKEY;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;SourceRootPath:&nbsp;PWideChar;&nbsp;CopyFlags:&nbsp;UINT;&nbsp;MsgHandler:&nbsp;TSPFileCallbackW;<br>&nbsp;&nbsp;&nbsp;&nbsp;Context:&nbsp;Pointer;&nbsp;DeviceInfoSet:&nbsp;HDEVINFO;&nbsp;DeviceIn:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupInstallFromInfSection&nbsp;=&nbsp;TSetupInstallFromInfSectionA;<br><br>&nbsp;&nbsp;TSetupInstallFilesFromInfSectionA&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;&nbsp;LayoutInfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;&nbsp;&nbsp;FileQueue:&nbsp;HSPFILEQ;&nbsp;const&nbsp;SectionName,&nbsp;SourceRootPath:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;CopyFlags:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupInstallFilesFromInfSectionW&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;&nbsp;LayoutInfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;&nbsp;&nbsp;FileQueue:&nbsp;HSPFILEQ;&nbsp;const&nbsp;SectionName,&nbsp;SourceRootPath:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;CopyFlags:&nbsp;UINT):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupInstallFilesFromInfSection&nbsp;=&nbsp;TSetupInstallFilesFromInfSectionA;<br><br>&nbsp;&nbsp;TSetupInstallServicesFromInfSectionA&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;SectionName:&nbsp;PAnsiChar;&nbsp;Flags:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupInstallServicesFromInfSectionW&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;SectionName:&nbsp;PWideChar;&nbsp;Flags:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupInstallServicesFromInfSection&nbsp;=&nbsp;TSetupInstallServicesFromInfSectionA;<br><br>&nbsp;&nbsp;TSetupInstallServicesFromInfSectionExA&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;SectionName:&nbsp;PAnsiChar;&nbsp;Flags:&nbsp;DWORD;&nbsp;DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;Reserved1,&nbsp;Reserved2:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupInstallServicesFromInfSectionExW&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;SectionName:&nbsp;PWideChar;&nbsp;Flags:&nbsp;DWORD;&nbsp;DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;Reserved1,&nbsp;Reserved2:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupInstallServicesFromInfSectionEx&nbsp;=&nbsp;TSetupInstallServicesFromInfSectionExA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Define&nbsp;handle&nbsp;type&nbsp;for&nbsp;Setup&nbsp;file&nbsp;log.<br>&nbsp;&nbsp;//<br><br>type<br>&nbsp;&nbsp;HSPFILELOG&nbsp;=&nbsp;Pointer;<br>&nbsp;&nbsp;{$EXTERNALSYM&nbsp;HSPFILELOG}<br><br>&nbsp;&nbsp;TSetupInitializeFileLogA&nbsp;=&nbsp;function(const&nbsp;LogFileName:&nbsp;PAnsiChar;&nbsp;Flags:&nbsp;DWORD):&nbsp;HSPFILELOG;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupInitializeFileLogW&nbsp;=&nbsp;function(const&nbsp;LogFileName:&nbsp;PWideChar;&nbsp;Flags:&nbsp;DWORD):&nbsp;HSPFILELOG;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupInitializeFileLog&nbsp;=&nbsp;TSetupInitializeFileLogA;<br><br>&nbsp;&nbsp;TSetupTerminateFileLog&nbsp;=&nbsp;function(FileLogHandle:&nbsp;HSPFILELOG):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupLogFileA&nbsp;=&nbsp;function(FileLogHandle:&nbsp;HSPFILELOG;&nbsp;const&nbsp;LogSectionName,<br>&nbsp;&nbsp;&nbsp;&nbsp;SourceFilename,&nbsp;TargetFilename:&nbsp;PAnsiChar;&nbsp;Checksum:&nbsp;DWORD;&nbsp;DiskTagfile,<br>&nbsp;&nbsp;&nbsp;&nbsp;DiskDescription,&nbsp;OtherInfo:&nbsp;PAnsiChar;&nbsp;Flags:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupLogFileW&nbsp;=&nbsp;function(FileLogHandle:&nbsp;HSPFILELOG;&nbsp;const&nbsp;LogSectionName,<br>&nbsp;&nbsp;&nbsp;&nbsp;SourceFilename,&nbsp;TargetFilename:&nbsp;PWideChar;&nbsp;Checksum:&nbsp;DWORD;&nbsp;DiskTagfile,<br>&nbsp;&nbsp;&nbsp;&nbsp;DiskDescription,&nbsp;OtherInfo:&nbsp;PWideChar;&nbsp;Flags:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupLogFile&nbsp;=&nbsp;TSetupLogFileA;<br><br>&nbsp;&nbsp;TSetupRemoveFileLogEntryA&nbsp;=&nbsp;function(FileLogHandle:&nbsp;HSPFILELOG;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;LogSectionName:&nbsp;PAnsiChar;&nbsp;const&nbsp;TargetFilename:&nbsp;PAnsiChar):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupRemoveFileLogEntryW&nbsp;=&nbsp;function(FileLogHandle:&nbsp;HSPFILELOG;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;LogSectionName:&nbsp;PWideChar;&nbsp;const&nbsp;TargetFilename:&nbsp;PWideChar):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupRemoveFileLogEntry&nbsp;=&nbsp;TSetupRemoveFileLogEntryA;<br><br>&nbsp;&nbsp;TSetupQueryFileLogA&nbsp;=&nbsp;function(FileLogHandle:&nbsp;HSPFILELOG;&nbsp;const&nbsp;LogSectionName,<br>&nbsp;&nbsp;&nbsp;&nbsp;TargetFilename:&nbsp;PAnsiChar;&nbsp;DesiredInfo:&nbsp;SetupFileLogInfo;&nbsp;DataOut:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQueryFileLogW&nbsp;=&nbsp;function(FileLogHandle:&nbsp;HSPFILELOG;&nbsp;const&nbsp;LogSectionName,<br>&nbsp;&nbsp;&nbsp;&nbsp;TargetFilename:&nbsp;PWideChar;&nbsp;DesiredInfo:&nbsp;SetupFileLogInfo;&nbsp;DataOut:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;ReturnBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupQueryFileLog&nbsp;=&nbsp;TSetupQueryFileLogA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Text&nbsp;logging&nbsp;APIs<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;TSetupOpenLog&nbsp;=&nbsp;function(Erase:&nbsp;LongBool):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupLogErrorA&nbsp;=&nbsp;function(const&nbsp;MessageString:&nbsp;PAnsiChar;&nbsp;Severity:&nbsp;LogSeverity):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupLogErrorW&nbsp;=&nbsp;function(const&nbsp;MessageString:&nbsp;PWideChar;&nbsp;Severity:&nbsp;LogSeverity):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupLogError&nbsp;=&nbsp;TSetupLogErrorA;<br><br>&nbsp;&nbsp;TSetupCloseLog&nbsp;=&nbsp;procedure;&nbsp;stdcall;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Backup&nbsp;Information&nbsp;API<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;TSetupGetBackupInformationA&nbsp;=&nbsp;function(QueueHandle:&nbsp;HSPFILEQ;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;BackupParams:&nbsp;TSPBackupQueueParamsA):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupGetBackupInformationW&nbsp;=&nbsp;function(QueueHandle:&nbsp;HSPFILEQ;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;BackupParams:&nbsp;TSPBackupQueueParamsW):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupGetBackupInformation&nbsp;=&nbsp;TSetupGetBackupInformationA;<br>&nbsp;&nbsp;{$ENDIF}<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Device&nbsp;Installer&nbsp;APIs<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;TSetupDiCreateDeviceInfoList&nbsp;=&nbsp;function(ClassGuid:&nbsp;PGUID;&nbsp;hwndParent:&nbsp;HWND):&nbsp;HDEVINFO;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiCreateDeviceInfoListExA&nbsp;=&nbsp;function(ClassGuid:&nbsp;PGUID;&nbsp;hwndParent:&nbsp;HWND;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;MachineName:&nbsp;PAnsiChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;HDEVINFO;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiCreateDeviceInfoListExW&nbsp;=&nbsp;function(ClassGuid:&nbsp;PGUID;&nbsp;hwndParent:&nbsp;HWND;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;MachineName:&nbsp;PWideChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;HDEVINFO;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiCreateDeviceInfoListEx&nbsp;=&nbsp;TSetupDiCreateDeviceInfoListExA;<br><br>&nbsp;&nbsp;TSetupDiGetDeviceInfoListClass&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;ClassGuid:&nbsp;TGUID):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiGetDeviceInfoListDetailA&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInfoSetDetailData:&nbsp;TSPDevInfoListDetailDataA):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetDeviceInfoListDetailW&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInfoSetDetailData:&nbsp;TSPDevInfoListDetailDataW):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetDeviceInfoListDetail&nbsp;=&nbsp;TSetupDiGetDeviceInfoListDetailA;<br><br>&nbsp;&nbsp;TSetupDiCreateDeviceInfoA&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;&nbsp;const&nbsp;DeviceName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;ClassGuid:&nbsp;TGUID;&nbsp;const&nbsp;DeviceDescription:&nbsp;PAnsiChar;&nbsp;hwndParent:&nbsp;HWND;<br>&nbsp;&nbsp;&nbsp;&nbsp;CreationFlags:&nbsp;DWORD;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiCreateDeviceInfoW&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;&nbsp;const&nbsp;DeviceName:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;ClassGuid:&nbsp;TGUID;&nbsp;const&nbsp;DeviceDescription:&nbsp;PWideChar;&nbsp;hwndParent:&nbsp;HWND;<br>&nbsp;&nbsp;&nbsp;&nbsp;CreationFlags:&nbsp;DWORD;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiCreateDeviceInfo&nbsp;=&nbsp;TSetupDiCreateDeviceInfoA;<br><br>&nbsp;&nbsp;TSetupDiOpenDeviceInfoA&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;DeviceInstanceId:&nbsp;PAnsiChar;&nbsp;hwndParent:&nbsp;HWND;&nbsp;OpenFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiOpenDeviceInfoW&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;DeviceInstanceId:&nbsp;PWideChar;&nbsp;hwndParent:&nbsp;HWND;&nbsp;OpenFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiOpenDeviceInfo&nbsp;=&nbsp;TSetupDiOpenDeviceInfoA;<br><br>&nbsp;&nbsp;TSetupDiGetDeviceInstanceIdA&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;DeviceInstanceId:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInstanceIdSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetDeviceInstanceIdW&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;DeviceInstanceId:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInstanceIdSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetDeviceInstanceId&nbsp;=&nbsp;TSetupDiGetDeviceInstanceIdA;<br><br>&nbsp;&nbsp;TSetupDiDeleteDeviceInfo&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiEnumDeviceInfo&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;MemberIndex:&nbsp;DWORD;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiDestroyDeviceInfoList&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiEnumDeviceInterfaces&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;const&nbsp;InterfaceClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;MemberIndex:&nbsp;DWORD;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Backward&nbsp;compatibility--do&nbsp;not&nbsp;use<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;TSetupDiEnumInterfaceDevice&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;InterfaceClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;MemberIndex:&nbsp;DWORD;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiCreateDeviceInterfaceA&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;var&nbsp;InterfaceClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;ReferenceString:&nbsp;PAnsiChar;&nbsp;CreationFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiCreateDeviceInterfaceW&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;var&nbsp;InterfaceClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;ReferenceString:&nbsp;PWideChar;&nbsp;CreationFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiCreateDeviceInterface&nbsp;=&nbsp;TSetupDiCreateDeviceInterfaceA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Backward&nbsp;compatibility--do&nbsp;not&nbsp;use.<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;TSetupDiCreateInterfaceDeviceA&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;var&nbsp;InterfaceClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;ReferenceString:&nbsp;PAnsiChar;&nbsp;CreationFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiCreateInterfaceDeviceW&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;var&nbsp;InterfaceClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;ReferenceString:&nbsp;PWideChar;&nbsp;CreationFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiCreateInterfaceDevice&nbsp;=&nbsp;TSetupDiCreateInterfaceDeviceA;<br><br>&nbsp;&nbsp;TSetupDiOpenDeviceInterfaceA&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;DevicePath:&nbsp;PAnsiChar;&nbsp;OpenFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiOpenDeviceInterfaceW&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;DevicePath:&nbsp;PWideChar;&nbsp;OpenFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiOpenDeviceInterface&nbsp;=&nbsp;TSetupDiOpenDeviceInterfaceA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Backward&nbsp;compatibility--do&nbsp;not&nbsp;use<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;TSetupDiOpenInterfaceDeviceA&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;DevicePath:&nbsp;PAnsiChar;&nbsp;OpenFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiOpenInterfaceDeviceW&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;DevicePath:&nbsp;PWideChar;&nbsp;OpenFlags:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiOpenInterfaceDevice&nbsp;=&nbsp;TSetupDiOpenInterfaceDeviceA;<br><br>&nbsp;&nbsp;TSetupDiGetDeviceInterfaceAlias&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData;&nbsp;var&nbsp;AliasInterfaceClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;AliasDeviceInterfaceData:&nbsp;TSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Backward&nbsp;compatibility--do&nbsp;not&nbsp;use.<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;TSetupDiGetInterfaceDeviceAlias&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;AliasInterfaceClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;AliasDeviceInterfaceData:&nbsp;TSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiDeleteDeviceInterfaceData&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Backward&nbsp;compatibility--do&nbsp;not&nbsp;use.<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;TSetupDiDeleteInterfaceDeviceData&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiRemoveDeviceInterface&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Backward&nbsp;compatibility--do&nbsp;not&nbsp;use.<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;TSetupDiRemoveInterfaceDevice&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiGetDeviceInterfaceDetailA&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInterfaceDetailData:&nbsp;PSPDeviceInterfaceDetailDataA;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInterfaceDetailDataSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;Device:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetDeviceInterfaceDetailW&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInterfaceDetailData:&nbsp;PSPDeviceInterfaceDetailDataW;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInterfaceDetailDataSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;Device:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetDeviceInterfaceDetail&nbsp;=&nbsp;TSetupDiGetDeviceInterfaceDetailA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Backward&nbsp;compatibility--do&nbsp;not&nbsp;use.<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;TSetupDiGetInterfaceDeviceDetailA&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInterfaceDetailData:&nbsp;PSPDeviceInterfaceDetailDataA;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInterfaceDetailDataSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;Device:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetInterfaceDeviceDetailW&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInterfaceData:&nbsp;PSPDeviceInterfaceData;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInterfaceDetailData:&nbsp;PSPDeviceInterfaceDetailDataW;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInterfaceDetailDataSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;Device:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetInterfaceDeviceDetail&nbsp;=&nbsp;TSetupDiGetInterfaceDeviceDetailA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Default&nbsp;install&nbsp;handler&nbsp;for&nbsp;DIF_INSTALLINTERFACES.<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;TSetupDiInstallDeviceInterfaces&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Backward&nbsp;compatibility--do&nbsp;not&nbsp;use.<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;TSetupDiInstallInterfaceDevices&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Default&nbsp;install&nbsp;handler&nbsp;for&nbsp;DIF_REGISTERDEVICE<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;TSetupDiRegisterDeviceInfo&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;Flags:&nbsp;DWORD;&nbsp;CompareProc:&nbsp;TSPDetsigCmpProc;<br>&nbsp;&nbsp;&nbsp;&nbsp;CompareContext:&nbsp;Pointer;&nbsp;DupDeviceInfoData:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiBuildDriverInfoList&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;DriverType:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiCancelDriverInfoSearch&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiEnumDriverInfoA&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;DriverType:&nbsp;DWORD;&nbsp;MemberIndex:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DriverInfoData:&nbsp;TSPDrvInfoDataA):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiEnumDriverInfoW&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;DriverType:&nbsp;DWORD;&nbsp;MemberIndex:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DriverInfoData:&nbsp;TSPDrvInfoDataW):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiEnumDriverInfo&nbsp;=&nbsp;TSetupDiEnumDriverInfoA;<br><br>&nbsp;&nbsp;TSetupDiGetSelectedDriverA&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;DriverInfoData:&nbsp;TSPDrvInfoDataA):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetSelectedDriverW&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;DriverInfoData:&nbsp;TSPDrvInfoDataW):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetSelectedDriver&nbsp;=&nbsp;TSetupDiGetSelectedDriverA;<br><br>&nbsp;&nbsp;TSetupDiSetSelectedDriverA&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;DriverInfoData:&nbsp;PSPDrvInfoDataA):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiSetSelectedDriverW&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;DriverInfoData:&nbsp;PSPDrvInfoDataW):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiSetSelectedDriver&nbsp;=&nbsp;TSetupDiSetSelectedDriverA;<br><br>&nbsp;&nbsp;TSetupDiGetDriverInfoDetailA&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;DriverInfoData:&nbsp;TSPDrvInfoDataA;<br>&nbsp;&nbsp;&nbsp;&nbsp;DriverInfoDetailData:&nbsp;PSPDrvInfoDetailDataA;&nbsp;DriverInfoDetailDataSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetDriverInfoDetailW&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;DriverInfoData:&nbsp;TSPDrvInfoDataW;<br>&nbsp;&nbsp;&nbsp;&nbsp;DriverInfoDetailData:&nbsp;PSPDrvInfoDetailDataW;&nbsp;DriverInfoDetailDataSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetDriverInfoDetail&nbsp;=&nbsp;TSetupDiGetDriverInfoDetailA;<br><br>&nbsp;&nbsp;TSetupDiDestroyDriverInfoList&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;DriverType:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiGetClassDevsA&nbsp;=&nbsp;function(ClassGuid:&nbsp;PGUID;&nbsp;const&nbsp;Enumerator:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;hwndParent:&nbsp;HWND;&nbsp;Flags:&nbsp;DWORD):&nbsp;HDEVINFO;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetClassDevsW&nbsp;=&nbsp;function(ClassGuid:&nbsp;PGUID;&nbsp;const&nbsp;Enumerator:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;hwndParent:&nbsp;HWND;&nbsp;Flags:&nbsp;DWORD):&nbsp;HDEVINFO;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetClassDevs&nbsp;=&nbsp;TSetupDiGetClassDevsA;<br><br>&nbsp;&nbsp;TSetupDiGetClassDevsExA&nbsp;=&nbsp;function(ClassGuid:&nbsp;PGUID;&nbsp;const&nbsp;Enumerator:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;hwndParent:&nbsp;HWND;&nbsp;Flags:&nbsp;DWORD;&nbsp;DeviceInfoSet:&nbsp;HDEVINFO;&nbsp;const&nbsp;MachineName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;HDEVINFO;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetClassDevsExW&nbsp;=&nbsp;function(ClassGuid:&nbsp;PGUID;&nbsp;const&nbsp;Enumerator:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;hwndParent:&nbsp;HWND;&nbsp;Flags:&nbsp;DWORD;&nbsp;DeviceInfoSet:&nbsp;HDEVINFO;&nbsp;const&nbsp;MachineName:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;HDEVINFO;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetClassDevsEx&nbsp;=&nbsp;TSetupDiGetClassDevsExA;<br><br>&nbsp;&nbsp;TSetupDiGetINFClassA&nbsp;=&nbsp;function(const&nbsp;InfName:&nbsp;PAnsiChar;&nbsp;var&nbsp;ClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassName:&nbsp;PAnsiChar;&nbsp;ClassNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetINFClassW&nbsp;=&nbsp;function(const&nbsp;InfName:&nbsp;PWideChar;&nbsp;var&nbsp;ClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassName:&nbsp;PWideChar;&nbsp;ClassNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetINFClass&nbsp;=&nbsp;TSetupDiGetINFClassA;<br><br>&nbsp;&nbsp;TSetupDiBuildClassInfoList&nbsp;=&nbsp;function(Flags:&nbsp;DWORD;&nbsp;ClassGuidList:&nbsp;PGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassGuidListSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiBuildClassInfoListExA&nbsp;=&nbsp;function(Flags:&nbsp;DWORD;&nbsp;ClassGuidList:&nbsp;PGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassGuidListSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD;&nbsp;const&nbsp;MachineName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiBuildClassInfoListExW&nbsp;=&nbsp;function(Flags:&nbsp;DWORD;&nbsp;ClassGuidList:&nbsp;PGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassGuidListSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD;&nbsp;const&nbsp;MachineName:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiBuildClassInfoListEx&nbsp;=&nbsp;TSetupDiBuildClassInfoListExA;<br><br>&nbsp;&nbsp;TSetupDiGetClassDescriptionA&nbsp;=&nbsp;function(var&nbsp;ClassGuid:&nbsp;TGUID;&nbsp;ClassDescription:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassDescriptionSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetClassDescriptionW&nbsp;=&nbsp;function(var&nbsp;ClassGuid:&nbsp;TGUID;&nbsp;ClassDescription:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassDescriptionSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetClassDescription&nbsp;=&nbsp;TSetupDiGetClassDescriptionA;<br><br>&nbsp;&nbsp;TSetupDiGetClassDescriptionExA&nbsp;=&nbsp;function(var&nbsp;ClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassDescription:&nbsp;PAnsiChar;&nbsp;ClassDescriptionSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;MachineName:&nbsp;PAnsiChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetClassDescriptionExW&nbsp;=&nbsp;function(var&nbsp;ClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassDescription:&nbsp;PWideChar;&nbsp;ClassDescriptionSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;MachineName:&nbsp;PWideChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetClassDescriptionEx&nbsp;=&nbsp;TSetupDiGetClassDescriptionExA;<br><br>&nbsp;&nbsp;TSetupDiCallClassInstaller&nbsp;=&nbsp;function(InstallFunction:&nbsp;DI_FUNCTION;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoSet:&nbsp;HDEVINFO;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Default&nbsp;install&nbsp;handler&nbsp;for&nbsp;DIF_SELECTDEVICE<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;TSetupDiSelectDevice&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Default&nbsp;install&nbsp;handler&nbsp;for&nbsp;DIF_SELECTBESTCOMPATDRV<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;TSetupDiSelectBestCompatDrv&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Default&nbsp;install&nbsp;handler&nbsp;for&nbsp;DIF_INSTALLDEVICE<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;TSetupDiInstallDevice&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Default&nbsp;install&nbsp;handler&nbsp;for&nbsp;DIF_INSTALLDEVICEFILES<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;TSetupDiInstallDriverFiles&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Default&nbsp;install&nbsp;handler&nbsp;for&nbsp;DIF_REGISTER_COINSTALLERS<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;TSetupDiRegisterCoDeviceInstallers&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Default&nbsp;install&nbsp;handler&nbsp;for&nbsp;DIF_REMOVE<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;TSetupDiRemoveDevice&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Default&nbsp;install&nbsp;handler&nbsp;for&nbsp;DIF_UNREMOVE<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;TSetupDiUnremoveDevice&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Default&nbsp;install&nbsp;handler&nbsp;for&nbsp;DIF_MOVEDEVICE<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;TSetupDiMoveDuplicateDevice&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DestinationDeviceInfoData:&nbsp;TSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Default&nbsp;install&nbsp;handler&nbsp;for&nbsp;DIF_PROPERTYCHANGE<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;TSetupDiChangeState&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiInstallClassA&nbsp;=&nbsp;function(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;InfFileName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Flags:&nbsp;DWORD;&nbsp;FileQueue:&nbsp;HSPFILEQ):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiInstallClassW&nbsp;=&nbsp;function(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;InfFileName:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Flags:&nbsp;DWORD;&nbsp;FileQueue:&nbsp;HSPFILEQ):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiInstallClass&nbsp;=&nbsp;TSetupDiInstallClassA;<br><br>&nbsp;&nbsp;TSetupDiInstallClassExA&nbsp;=&nbsp;function(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;InfFileName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Flags:&nbsp;DWORD;&nbsp;FileQueue:&nbsp;HSPFILEQ;&nbsp;InterfaceClassGuid:&nbsp;PGUID;&nbsp;Reserved1,<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved2:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiInstallClassExW&nbsp;=&nbsp;function(hwndParent:&nbsp;HWND;&nbsp;const&nbsp;InfFileName:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Flags:&nbsp;DWORD;&nbsp;FileQueue:&nbsp;HSPFILEQ;&nbsp;InterfaceClassGuid:&nbsp;PGUID;&nbsp;Reserved1,<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved2:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiInstallClassEx&nbsp;=&nbsp;TSetupDiInstallClassExA;<br><br>&nbsp;&nbsp;TSetupDiOpenClassRegKey&nbsp;=&nbsp;function(ClassGuid:&nbsp;PGUID;&nbsp;samDesired:&nbsp;REGSAM):&nbsp;HKEY;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiOpenClassRegKeyExA&nbsp;=&nbsp;function(ClassGuid:&nbsp;PGUID;&nbsp;samDesired:&nbsp;REGSAM;<br>&nbsp;&nbsp;&nbsp;&nbsp;Flags:&nbsp;DWORD;&nbsp;const&nbsp;MachineName:&nbsp;PAnsiChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;HKEY;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiOpenClassRegKeyExW&nbsp;=&nbsp;function(ClassGuid:&nbsp;PGUID;&nbsp;samDesired:&nbsp;REGSAM;<br>&nbsp;&nbsp;&nbsp;&nbsp;Flags:&nbsp;DWORD;&nbsp;const&nbsp;MachineName:&nbsp;PWideChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;HKEY;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiOpenClassRegKeyEx&nbsp;=&nbsp;TSetupDiOpenClassRegKeyExA;<br><br>&nbsp;&nbsp;TSetupDiCreateDeviceInterfaceRegKeyA&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData;&nbsp;Reserved:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;samDesired:&nbsp;REGSAM;&nbsp;InfHandle:&nbsp;HINF;&nbsp;const&nbsp;InfSectionName:&nbsp;PAnsiChar):&nbsp;HKEY;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiCreateDeviceInterfaceRegKeyW&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData;&nbsp;Reserved:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;samDesired:&nbsp;REGSAM;&nbsp;InfHandle:&nbsp;HINF;&nbsp;const&nbsp;InfSectionName:&nbsp;PWideChar):&nbsp;HKEY;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiCreateDeviceInterfaceRegKey&nbsp;=&nbsp;TSetupDiCreateDeviceInterfaceRegKeyA;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Backward&nbsp;compatibility--do&nbsp;not&nbsp;use.<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;TSetupDiCreateInterfaceDeviceRegKeyA&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData;&nbsp;Reserved:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;samDesired:&nbsp;REGSAM;&nbsp;InfHandle:&nbsp;HINF;&nbsp;const&nbsp;InfSectionName:&nbsp;PAnsiChar):&nbsp;HKEY;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiCreateInterfaceDeviceRegKeyW&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData;&nbsp;Reserved:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;samDesired:&nbsp;REGSAM;&nbsp;InfHandle:&nbsp;HINF;&nbsp;const&nbsp;InfSectionName:&nbsp;PWideChar):&nbsp;HKEY;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiCreateInterfaceDeviceRegKey&nbsp;=&nbsp;TSetupDiCreateInterfaceDeviceRegKeyA;<br><br>&nbsp;&nbsp;TSetupDiOpenDeviceInterfaceRegKey&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData;&nbsp;Reserved:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;samDesired:&nbsp;REGSAM):&nbsp;HKEY;&nbsp;stdcall;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Backward&nbsp;compatibility--do&nbsp;not&nbsp;use.<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;TSetupDiOpenInterfaceDeviceRegKey&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData;&nbsp;Reserved:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;samDesired:&nbsp;REGSAM):&nbsp;HKEY;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiDeleteDeviceInterfaceRegKey&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData;&nbsp;Reserved:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;//&nbsp;Backward&nbsp;compatibility--do&nbsp;not&nbsp;use.<br>&nbsp;&nbsp;//<br><br>&nbsp;&nbsp;TSetupDiDeleteInterfaceDeviceRegKey&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInterfaceData:&nbsp;TSPDeviceInterfaceData;&nbsp;Reserved:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiCreateDevRegKeyA&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;Scope,&nbsp;HwProfile,&nbsp;KeyType:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;InfHandle:&nbsp;HINF;&nbsp;const&nbsp;InfSectionName:&nbsp;PAnsiChar):&nbsp;HKEY;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiCreateDevRegKeyW&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;Scope,&nbsp;HwProfile,&nbsp;KeyType:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;InfHandle:&nbsp;HINF;&nbsp;const&nbsp;InfSectionName:&nbsp;PWideChar):&nbsp;HKEY;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiCreateDevRegKey&nbsp;=&nbsp;TSetupDiCreateDevRegKeyA;<br><br>&nbsp;&nbsp;TSetupDiOpenDevRegKey&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;Scope,&nbsp;HwProfile,&nbsp;KeyType:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;samDesired:&nbsp;REGSAM):&nbsp;HKEY;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiDeleteDevRegKey&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;Scope,&nbsp;HwProfile,<br>&nbsp;&nbsp;&nbsp;&nbsp;KeyType:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiGetHwProfileList&nbsp;=&nbsp;function(HwProfileList:&nbsp;PDWORD;&nbsp;HwProfileListSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD;&nbsp;CurrentlyActiveIndex:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiGetHwProfileListExA&nbsp;=&nbsp;function(HwProfileList:&nbsp;PDWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;HwProfileListSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD;&nbsp;CurrentlyActiveIndex:&nbsp;PDWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;MachineName:&nbsp;PAnsiChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetHwProfileListExW&nbsp;=&nbsp;function(HwProfileList:&nbsp;PDWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;HwProfileListSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD;&nbsp;CurrentlyActiveIndex:&nbsp;PDWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;MachineName:&nbsp;PWideChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetHwProfileListEx&nbsp;=&nbsp;TSetupDiGetHwProfileListExA;<br><br>&nbsp;&nbsp;TSetupDiGetDeviceRegistryPropertyA&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;Property_:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;PropertyRegDataType:&nbsp;DWORD;&nbsp;PropertyBuffer:&nbsp;PBYTE;&nbsp;PropertyBufferSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetDeviceRegistryPropertyW&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;Property_:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;PropertyRegDataType:&nbsp;DWORD;&nbsp;PropertyBuffer:&nbsp;PBYTE;&nbsp;PropertyBufferSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetDeviceRegistryProperty&nbsp;=&nbsp;TSetupDiGetDeviceRegistryPropertyA;<br><br>&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;TSetupDiGetClassRegistryPropertyA&nbsp;=&nbsp;function(var&nbsp;ClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;Property_:&nbsp;DWORD;&nbsp;PropertyRegDataType:&nbsp;PDWORD;&nbsp;PropertyBuffer:&nbsp;PBYTE;<br>&nbsp;&nbsp;&nbsp;&nbsp;PropertyBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;&nbsp;const&nbsp;MachineName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetClassRegistryPropertyW&nbsp;=&nbsp;function(var&nbsp;ClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;Property_:&nbsp;DWORD;&nbsp;PropertyRegDataType:&nbsp;PDWORD;&nbsp;PropertyBuffer:&nbsp;PBYTE;<br>&nbsp;&nbsp;&nbsp;&nbsp;PropertyBufferSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;&nbsp;const&nbsp;MachineName:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetClassRegistryProperty&nbsp;=&nbsp;TSetupDiGetClassRegistryPropertyA;<br>&nbsp;&nbsp;{$ENDIF}<br><br>&nbsp;&nbsp;TSetupDiSetDeviceRegistryPropertyA&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;Property_:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;PropertyBuffer:&nbsp;PBYTE;&nbsp;PropertyBufferSize:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiSetDeviceRegistryPropertyW&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData;&nbsp;Property_:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;PropertyBuffer:&nbsp;PBYTE;&nbsp;PropertyBufferSize:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiSetDeviceRegistryProperty&nbsp;=&nbsp;TSetupDiSetDeviceRegistryPropertyA;<br><br>&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;TSetupDiSetClassRegistryPropertyA&nbsp;=&nbsp;function(var&nbsp;ClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;Property_:&nbsp;DWORD;&nbsp;const&nbsp;PropertyBuffer:&nbsp;PBYTE;&nbsp;PropertyBufferSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;MachineName:&nbsp;PAnsiChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiSetClassRegistryPropertyW&nbsp;=&nbsp;function(var&nbsp;ClassGuid:&nbsp;TGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;Property_:&nbsp;DWORD;&nbsp;const&nbsp;PropertyBuffer:&nbsp;PBYTE;&nbsp;PropertyBufferSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;MachineName:&nbsp;PWideChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiSetClassRegistryProperty&nbsp;=&nbsp;TSetupDiSetClassRegistryPropertyA;<br>&nbsp;&nbsp;{$ENDIF}<br><br>&nbsp;&nbsp;TSetupDiGetDeviceInstallParamsA&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInstallParams:&nbsp;TSPDevInstallParamsA):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiGetDeviceInstallParamsW&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInstallParams:&nbsp;TSPDevInstallParamsW):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiGetDeviceInstallParams&nbsp;=&nbsp;TSetupDiGetDeviceInstallParamsA;<br><br>&nbsp;&nbsp;TSetupDiGetClassInstallParamsA&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;ClassInstallParams:&nbsp;PSPClassInstallHeader;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassInstallParamsSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetClassInstallParamsW&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;ClassInstallParams:&nbsp;PSPClassInstallHeader;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassInstallParamsSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetClassInstallParams&nbsp;=&nbsp;TSetupDiGetClassInstallParamsA;<br><br>&nbsp;&nbsp;TSetupDiSetDeviceInstallParamsA&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInstallParams:&nbsp;TSPDevInstallParamsA):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiSetDeviceInstallParamsW&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInstallParams:&nbsp;TSPDevInstallParamsW):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiSetDeviceInstallParams&nbsp;=&nbsp;TSetupDiSetDeviceInstallParamsA;<br><br>&nbsp;&nbsp;TSetupDiSetClassInstallParamsA&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;ClassInstallParams:&nbsp;PSPClassInstallHeader;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassInstallParamsSize:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiSetClassInstallParamsW&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;ClassInstallParams:&nbsp;PSPClassInstallHeader;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassInstallParamsSize:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiSetClassInstallParams&nbsp;=&nbsp;TSetupDiSetClassInstallParamsA;<br><br>&nbsp;&nbsp;TSetupDiGetDriverInstallParamsA&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;DriverInfoData:&nbsp;TSPDrvInfoDataA;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DriverInstallParams:&nbsp;TSPDrvInstallParams):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetDriverInstallParamsW&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;DriverInfoData:&nbsp;TSPDrvInfoDataW;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DriverInstallParams:&nbsp;TSPDrvInstallParams):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetDriverInstallParams&nbsp;=&nbsp;TSetupDiGetDriverInstallParamsA;<br><br>&nbsp;&nbsp;TSetupDiSetDriverInstallParamsA&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;DriverInfoData:&nbsp;TSPDrvInfoDataA;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DriverInstallParams:&nbsp;TSPDrvInstallParams):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiSetDriverInstallParamsW&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;DriverInfoData:&nbsp;TSPDrvInfoDataW;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DriverInstallParams:&nbsp;TSPDrvInstallParams):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiSetDriverInstallParams&nbsp;=&nbsp;TSetupDiSetDriverInstallParamsA;<br><br>&nbsp;&nbsp;TSetupDiLoadClassIcon&nbsp;=&nbsp;function(var&nbsp;ClassGuid:&nbsp;TGUID;&nbsp;LargeIcon:&nbsp;PHICON;<br>&nbsp;&nbsp;&nbsp;&nbsp;MiniIconIndex:&nbsp;PINT):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiDrawMiniIcon&nbsp;=&nbsp;function(hdc:&nbsp;hdc;&nbsp;rc:&nbsp;TRect;&nbsp;MiniIconIndex:&nbsp;Integer;<br>&nbsp;&nbsp;&nbsp;&nbsp;Flags:&nbsp;DWORD):&nbsp;Integer;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiGetClassBitmapIndex&nbsp;=&nbsp;function(ClassGuid:&nbsp;PGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;MiniIconIndex:&nbsp;Integer):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiGetClassImageList&nbsp;=&nbsp;function(<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;ClassImageListData:&nbsp;TSPClassImageListData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiGetClassImageListExA&nbsp;=&nbsp;function(var&nbsp;ClassImageListData:&nbsp;TSPClassImageListData;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;MachineName:&nbsp;PAnsiChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetClassImageListExW&nbsp;=&nbsp;function(var&nbsp;ClassImageListData:&nbsp;TSPClassImageListData;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;MachineName:&nbsp;PWideChar;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetClassImageListEx&nbsp;=&nbsp;TSetupDiGetClassImageListExA;<br><br>&nbsp;&nbsp;TSetupDiGetClassImageIndex&nbsp;=&nbsp;function(var&nbsp;ClassImageListData:&nbsp;TSPClassImageListData;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;ClassGuid:&nbsp;TGUID;&nbsp;var&nbsp;ImageIndex:&nbsp;Integer):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiDestroyClassImageList&nbsp;=&nbsp;function(<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;ClassImageListData:&nbsp;TSPClassImageListData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiGetClassDevPropertySheetsA&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;PropertySheetHeader:&nbsp;TPropSheetHeaderA;<br>&nbsp;&nbsp;&nbsp;&nbsp;PropertySheetHeaderPageListSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;PropertySheetType:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetClassDevPropertySheetsW&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;PropertySheetHeader:&nbsp;TPropSheetHeaderW;<br>&nbsp;&nbsp;&nbsp;&nbsp;PropertySheetHeaderPageListSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;PropertySheetType:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetClassDevPropertySheets&nbsp;=&nbsp;TSetupDiGetClassDevPropertySheetsA;<br><br>&nbsp;&nbsp;TSetupDiAskForOEMDisk&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiSelectOEMDrv&nbsp;=&nbsp;function(hwndParent:&nbsp;HWND;&nbsp;DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiClassNameFromGuidA&nbsp;=&nbsp;function(var&nbsp;ClassGuid:&nbsp;TGUID;&nbsp;ClassName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiClassNameFromGuidW&nbsp;=&nbsp;function(var&nbsp;ClassGuid:&nbsp;TGUID;&nbsp;ClassName:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiClassNameFromGuid&nbsp;=&nbsp;TSetupDiClassNameFromGuidA;<br><br>&nbsp;&nbsp;TSetupDiClassNameFromGuidExA&nbsp;=&nbsp;function(var&nbsp;ClassGuid:&nbsp;TGUID;&nbsp;ClassName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;&nbsp;const&nbsp;MachineName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiClassNameFromGuidExW&nbsp;=&nbsp;function(var&nbsp;ClassGuid:&nbsp;TGUID;&nbsp;ClassName:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;&nbsp;const&nbsp;MachineName:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiClassNameFromGuidEx&nbsp;=&nbsp;TSetupDiClassNameFromGuidExA;<br><br>&nbsp;&nbsp;TSetupDiClassGuidsFromNameA&nbsp;=&nbsp;function(const&nbsp;ClassName:&nbsp;PAnsiChar;&nbsp;ClassGuidList:&nbsp;PGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassGuidListSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiClassGuidsFromNameW&nbsp;=&nbsp;function(const&nbsp;ClassName:&nbsp;PWideChar;&nbsp;ClassGuidList:&nbsp;PGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassGuidListSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiClassGuidsFromName&nbsp;=&nbsp;TSetupDiClassGuidsFromNameA;<br><br>&nbsp;&nbsp;TSetupDiClassGuidsFromNameExA&nbsp;=&nbsp;function(const&nbsp;ClassName:&nbsp;PAnsiChar;&nbsp;ClassGuidList:&nbsp;PGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassGuidListSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD;&nbsp;const&nbsp;MachineName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiClassGuidsFromNameExW&nbsp;=&nbsp;function(const&nbsp;ClassName:&nbsp;PWideChar;&nbsp;ClassGuidList:&nbsp;PGUID;<br>&nbsp;&nbsp;&nbsp;&nbsp;ClassGuidListSize:&nbsp;DWORD;&nbsp;var&nbsp;RequiredSize:&nbsp;DWORD;&nbsp;const&nbsp;MachineName:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiClassGuidsFromNameEx&nbsp;=&nbsp;TSetupDiClassGuidsFromNameExA;<br><br>&nbsp;&nbsp;TSetupDiGetHwProfileFriendlyNameA&nbsp;=&nbsp;function(HwProfile:&nbsp;DWORD;&nbsp;FriendlyName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;FriendlyNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetHwProfileFriendlyNameW&nbsp;=&nbsp;function(HwProfile:&nbsp;DWORD;&nbsp;FriendlyName:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;FriendlyNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetHwProfileFriendlyName&nbsp;=&nbsp;TSetupDiGetHwProfileFriendlyNameA;<br><br>&nbsp;&nbsp;TSetupDiGetHwProfileFriendlyNameExA&nbsp;=&nbsp;function(HwProfile:&nbsp;DWORD;&nbsp;FriendlyName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;FriendlyNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;&nbsp;const&nbsp;MachineName:&nbsp;PAnsiChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetHwProfileFriendlyNameExW&nbsp;=&nbsp;function(HwProfile:&nbsp;DWORD;&nbsp;FriendlyName:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;FriendlyNameSize:&nbsp;DWORD;&nbsp;RequiredSize:&nbsp;PDWORD;&nbsp;const&nbsp;MachineName:&nbsp;PWideChar;<br>&nbsp;&nbsp;&nbsp;&nbsp;Reserved:&nbsp;Pointer):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetHwProfileFriendlyNameEx&nbsp;=&nbsp;TSetupDiGetHwProfileFriendlyNameExA;<br><br>&nbsp;&nbsp;TSetupDiGetWizardPage&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;DeviceInfoData:&nbsp;PSPDevInfoData;&nbsp;var&nbsp;InstallWizardData:&nbsp;TSPInstallWizardData;<br>&nbsp;&nbsp;&nbsp;&nbsp;PageType:&nbsp;DWORD;&nbsp;Flags:&nbsp;DWORD):&nbsp;HPROPSHEETPAGE;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiGetSelectedDevice&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiSetSelectedDevice&nbsp;=&nbsp;function(DeviceInfoSet:&nbsp;HDEVINFO;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;DeviceInfoData:&nbsp;TSPDevInfoData):&nbsp;LongBool;&nbsp;stdcall;<br><br>&nbsp;&nbsp;TSetupDiGetActualSectionToInstallA&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;InfSectionName:&nbsp;PAnsiChar;&nbsp;InfSectionWithExt:&nbsp;PAnsiChar;&nbsp;InfSectionWithExtSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;RequiredSize:&nbsp;PDWORD;&nbsp;Extension:&nbsp;PPASTR):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetActualSectionToInstallW&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;InfSectionName:&nbsp;PWideChar;&nbsp;InfSectionWithExt:&nbsp;PWideChar;&nbsp;InfSectionWithExtSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;RequiredSize:&nbsp;PDWORD;&nbsp;Extension:&nbsp;PPWSTR):&nbsp;LongBool;&nbsp;stdcall;<br>&nbsp;&nbsp;TSetupDiGetActualSectionToInstall&nbsp;=&nbsp;function(InfHandle:&nbsp;HINF;<br>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;InfSectionName:&nbsp;PChar;&nbsp;InfSectionWithExt:&nbsp;PChar;&nbsp;InfSectionWithExtSize:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;RequiredSize:&nbsp;PDWORD;&nbsp;Extension:&nbsp;PPSTR):&nbsp;LongBool;&nbsp;stdcall;<br><br>var<br>&nbsp;&nbsp;SetupGetInfInformationA:&nbsp;TSetupGetInfInformationA;<br>&nbsp;&nbsp;SetupGetInfInformationW:&nbsp;TSetupGetInfInformationW;<br>&nbsp;&nbsp;SetupGetInfInformation:&nbsp;TSetupGetInfInformation;<br>&nbsp;&nbsp;SetupQueryInfFileInformationA:&nbsp;TSetupQueryInfFileInformationA;<br>&nbsp;&nbsp;SetupQueryInfFileInformationW:&nbsp;TSetupQueryInfFileInformationW;<br>&nbsp;&nbsp;SetupQueryInfFileInformation:&nbsp;TSetupQueryInfFileInformation;<br>&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;SetupQueryInfOriginalFileInformationA:&nbsp;TSetupQueryInfOriginalFileInformationA;<br>&nbsp;&nbsp;SetupQueryInfOriginalFileInformationW:&nbsp;TSetupQueryInfOriginalFileInformationW;<br>&nbsp;&nbsp;SetupQueryInfOriginalFileInformation:&nbsp;TSetupQueryInfOriginalFileInformation;<br>&nbsp;&nbsp;{$ENDIF}<br>&nbsp;&nbsp;SetupQueryInfVersionInformationA:&nbsp;TSetupQueryInfVersionInformationA;<br>&nbsp;&nbsp;SetupQueryInfVersionInformationW:&nbsp;TSetupQueryInfVersionInformationW;<br>&nbsp;&nbsp;SetupQueryInfVersionInformation:&nbsp;TSetupQueryInfVersionInformation;<br>&nbsp;&nbsp;SetupGetInfFileListA:&nbsp;TSetupGetInfFileListA;<br>&nbsp;&nbsp;SetupGetInfFileListW:&nbsp;TSetupGetInfFileListW;<br>&nbsp;&nbsp;SetupGetInfFileList:&nbsp;TSetupGetInfFileList;<br>&nbsp;&nbsp;SetupOpenInfFileA&nbsp;:&nbsp;TSetupOpenInfFileA;<br>&nbsp;&nbsp;SetupOpenInfFileW&nbsp;:&nbsp;TSetupOpenInfFileW;<br>&nbsp;&nbsp;SetupOpenInfFile&nbsp;&nbsp;:&nbsp;TSetupOpenInfFile;<br>&nbsp;&nbsp;SetupOpenMasterInf:&nbsp;TSetupOpenMasterInf;<br>&nbsp;&nbsp;SetupOpenAppendInfFileA:&nbsp;TSetupOpenAppendInfFileA;<br>&nbsp;&nbsp;SetupOpenAppendInfFileW:&nbsp;TSetupOpenAppendInfFileW;<br>&nbsp;&nbsp;SetupOpenAppendInfFile:&nbsp;TSetupOpenAppendInfFile;<br>&nbsp;&nbsp;SetupCloseInfFile&nbsp;:&nbsp;TSetupCloseInfFile;<br>&nbsp;&nbsp;SetupFindFirstLineA:&nbsp;TSetupFindFirstLineA;<br>&nbsp;&nbsp;SetupFindFirstLineW:&nbsp;TSetupFindFirstLineW;<br>&nbsp;&nbsp;SetupFindFirstLine:&nbsp;TSetupFindFirstLine;<br>&nbsp;&nbsp;SetupFindNextLine&nbsp;:&nbsp;TSetupFindNextLine;<br>&nbsp;&nbsp;SetupFindNextMatchLineA:&nbsp;TSetupFindNextMatchLineA;<br>&nbsp;&nbsp;SetupFindNextMatchLineW:&nbsp;TSetupFindNextMatchLineW;<br>&nbsp;&nbsp;SetupFindNextMatchLine:&nbsp;TSetupFindNextMatchLine;<br>&nbsp;&nbsp;SetupGetLineByIndexA:&nbsp;TSetupGetLineByIndexA;<br>&nbsp;&nbsp;SetupGetLineByIndexW:&nbsp;TSetupGetLineByIndexW;<br>&nbsp;&nbsp;SetupGetLineByIndex:&nbsp;TSetupGetLineByIndex;<br>&nbsp;&nbsp;SetupGetLineCountA:&nbsp;TSetupGetLineCountA;<br>&nbsp;&nbsp;SetupGetLineCountW:&nbsp;TSetupGetLineCountW;<br>&nbsp;&nbsp;SetupGetLineCount&nbsp;:&nbsp;TSetupGetLineCount;<br>&nbsp;&nbsp;SetupGetLineTextA&nbsp;:&nbsp;TSetupGetLineTextA;<br>&nbsp;&nbsp;SetupGetLineTextW&nbsp;:&nbsp;TSetupGetLineTextW;<br>&nbsp;&nbsp;SetupGetLineText&nbsp;&nbsp;:&nbsp;TSetupGetLineText;<br>&nbsp;&nbsp;SetupGetFieldCount:&nbsp;TSetupGetFieldCount;<br>&nbsp;&nbsp;SetupGetStringFieldA:&nbsp;TSetupGetStringFieldA;<br>&nbsp;&nbsp;SetupGetStringFieldW:&nbsp;TSetupGetStringFieldW;<br>&nbsp;&nbsp;SetupGetStringField:&nbsp;TSetupGetStringField;<br>&nbsp;&nbsp;SetupGetIntField&nbsp;&nbsp;:&nbsp;TSetupGetIntField;<br>&nbsp;&nbsp;SetupGetMultiSzFieldA:&nbsp;TSetupGetMultiSzFieldA;<br>&nbsp;&nbsp;SetupGetMultiSzFieldW:&nbsp;TSetupGetMultiSzFieldW;<br>&nbsp;&nbsp;SetupGetMultiSzField:&nbsp;TSetupGetMultiSzField;<br>&nbsp;&nbsp;SetupGetBinaryField:&nbsp;TSetupGetBinaryField;<br>&nbsp;&nbsp;SetupGetFileCompressionInfoA:&nbsp;TSetupGetFileCompressionInfoA;<br>&nbsp;&nbsp;SetupGetFileCompressionInfoW:&nbsp;TSetupGetFileCompressionInfoW;<br>&nbsp;&nbsp;SetupGetFileCompressionInfo:&nbsp;TSetupGetFileCompressionInfo;<br>&nbsp;&nbsp;SetupDecompressOrCopyFileA:&nbsp;TSetupDecompressOrCopyFileA;<br>&nbsp;&nbsp;SetupDecompressOrCopyFileW:&nbsp;TSetupDecompressOrCopyFileW;<br>&nbsp;&nbsp;SetupDecompressOrCopyFile:&nbsp;TSetupDecompressOrCopyFile;<br>&nbsp;&nbsp;SetupGetSourceFileLocationA:&nbsp;TSetupGetSourceFileLocationA;<br>&nbsp;&nbsp;SetupGetSourceFileLocationW:&nbsp;TSetupGetSourceFileLocationW;<br>&nbsp;&nbsp;SetupGetSourceFileLocation:&nbsp;TSetupGetSourceFileLocation;<br>&nbsp;&nbsp;SetupGetSourceFileSizeA:&nbsp;TSetupGetSourceFileSizeA;<br>&nbsp;&nbsp;SetupGetSourceFileSizeW:&nbsp;TSetupGetSourceFileSizeW;<br>&nbsp;&nbsp;SetupGetSourceFileSize:&nbsp;TSetupGetSourceFileSize;<br>&nbsp;&nbsp;SetupGetTargetPathA:&nbsp;TSetupGetTargetPathA;<br>&nbsp;&nbsp;SetupGetTargetPathW:&nbsp;TSetupGetTargetPathW;<br>&nbsp;&nbsp;SetupGetTargetPath:&nbsp;TSetupGetTargetPath;<br>&nbsp;&nbsp;SetupSetSourceListA:&nbsp;TSetupSetSourceListA;<br>&nbsp;&nbsp;SetupSetSourceListW:&nbsp;TSetupSetSourceListW;<br>&nbsp;&nbsp;SetupSetSourceList:&nbsp;TSetupSetSourceList;<br>&nbsp;&nbsp;SetupCancelTemporarySourceList:&nbsp;TSetupCancelTemporarySourceList;<br>&nbsp;&nbsp;SetupAddToSourceListA:&nbsp;TSetupAddToSourceListA;<br>&nbsp;&nbsp;SetupAddToSourceListW:&nbsp;TSetupAddToSourceListW;<br>&nbsp;&nbsp;SetupAddToSourceList:&nbsp;TSetupAddToSourceList;<br>&nbsp;&nbsp;SetupRemoveFromSourceListA:&nbsp;TSetupRemoveFromSourceListA;<br>&nbsp;&nbsp;SetupRemoveFromSourceListW:&nbsp;TSetupRemoveFromSourceListW;<br>&nbsp;&nbsp;SetupRemoveFromSourceList:&nbsp;TSetupRemoveFromSourceList;<br>&nbsp;&nbsp;SetupQuerySourceListA:&nbsp;TSetupQuerySourceListA;<br>&nbsp;&nbsp;SetupQuerySourceListW:&nbsp;TSetupQuerySourceListW;<br>&nbsp;&nbsp;SetupQuerySourceList:&nbsp;TSetupQuerySourceList;<br>&nbsp;&nbsp;SetupFreeSourceListA:&nbsp;TSetupFreeSourceListA;<br>&nbsp;&nbsp;SetupFreeSourceListW:&nbsp;TSetupFreeSourceListW;<br>&nbsp;&nbsp;SetupFreeSourceList:&nbsp;TSetupFreeSourceList;<br>&nbsp;&nbsp;SetupPromptForDiskA:&nbsp;TSetupPromptForDiskA;<br>&nbsp;&nbsp;SetupPromptForDiskW:&nbsp;TSetupPromptForDiskW;<br>&nbsp;&nbsp;SetupPromptForDisk:&nbsp;TSetupPromptForDisk;<br>&nbsp;&nbsp;SetupCopyErrorA&nbsp;&nbsp;&nbsp;:&nbsp;TSetupCopyErrorA;<br>&nbsp;&nbsp;SetupCopyErrorW&nbsp;&nbsp;&nbsp;:&nbsp;TSetupCopyErrorW;<br>&nbsp;&nbsp;SetupCopyError&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;TSetupCopyError;<br>&nbsp;&nbsp;SetupRenameErrorA&nbsp;:&nbsp;TSetupRenameErrorA;<br>&nbsp;&nbsp;SetupRenameErrorW&nbsp;:&nbsp;TSetupRenameErrorW;<br>&nbsp;&nbsp;SetupRenameError&nbsp;&nbsp;:&nbsp;TSetupRenameError;<br>&nbsp;&nbsp;SetupDeleteErrorA&nbsp;:&nbsp;TSetupDeleteErrorA;<br>&nbsp;&nbsp;SetupDeleteErrorW&nbsp;:&nbsp;TSetupDeleteErrorW;<br>&nbsp;&nbsp;SetupDeleteError&nbsp;&nbsp;:&nbsp;TSetupDeleteError;<br>&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;SetupBackupErrorA&nbsp;:&nbsp;TSetupBackupErrorA;<br>&nbsp;&nbsp;SetupBackupErrorW&nbsp;:&nbsp;TSetupBackupErrorW;<br>&nbsp;&nbsp;SetupBackupError&nbsp;&nbsp;:&nbsp;TSetupBackupError;<br>&nbsp;&nbsp;{$ENDIF}<br>&nbsp;&nbsp;SetupSetDirectoryIdA:&nbsp;TSetupSetDirectoryIdA;<br>&nbsp;&nbsp;SetupSetDirectoryIdW:&nbsp;TSetupSetDirectoryIdW;<br>&nbsp;&nbsp;SetupSetDirectoryId:&nbsp;TSetupSetDirectoryId;<br>&nbsp;&nbsp;SetupSetDirectoryIdExA:&nbsp;TSetupSetDirectoryIdExA;<br>&nbsp;&nbsp;SetupSetDirectoryIdExW:&nbsp;TSetupSetDirectoryIdExW;<br>&nbsp;&nbsp;SetupSetDirectoryIdEx:&nbsp;TSetupSetDirectoryIdEx;<br>&nbsp;&nbsp;SetupGetSourceInfoA:&nbsp;TSetupGetSourceInfoA;<br>&nbsp;&nbsp;SetupGetSourceInfoW:&nbsp;TSetupGetSourceInfoW;<br>&nbsp;&nbsp;SetupGetSourceInfo:&nbsp;TSetupGetSourceInfo;<br>&nbsp;&nbsp;SetupInstallFileA&nbsp;:&nbsp;TSetupInstallFileA;<br>&nbsp;&nbsp;SetupInstallFileW&nbsp;:&nbsp;TSetupInstallFileW;<br>&nbsp;&nbsp;SetupInstallFile&nbsp;&nbsp;:&nbsp;TSetupInstallFile;<br>&nbsp;&nbsp;SetupInstallFileExA:&nbsp;TSetupInstallFileExA;<br>&nbsp;&nbsp;SetupInstallFileExW:&nbsp;TSetupInstallFileExW;<br>&nbsp;&nbsp;SetupInstallFileEx:&nbsp;TSetupInstallFileEx;<br>&nbsp;&nbsp;SetupOpenFileQueue:&nbsp;TSetupOpenFileQueue;<br>&nbsp;&nbsp;SetupCloseFileQueue:&nbsp;TSetupCloseFileQueue;<br>&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;SetupSetFileQueueAlternatePlatformA:&nbsp;TSetupSetFileQueueAlternatePlatformA;<br>&nbsp;&nbsp;SetupSetFileQueueAlternatePlatformW:&nbsp;TSetupSetFileQueueAlternatePlatformW;<br>&nbsp;&nbsp;SetupSetFileQueueAlternatePlatform:&nbsp;TSetupSetFileQueueAlternatePlatform;<br>&nbsp;&nbsp;{$ENDIF}<br>&nbsp;&nbsp;SetupSetPlatformPathOverrideA:&nbsp;TSetupSetPlatformPathOverrideA;<br>&nbsp;&nbsp;SetupSetPlatformPathOverrideW:&nbsp;TSetupSetPlatformPathOverrideW;<br>&nbsp;&nbsp;SetupSetPlatformPathOverride:&nbsp;TSetupSetPlatformPathOverride;<br>&nbsp;&nbsp;SetupQueueCopyA&nbsp;&nbsp;&nbsp;:&nbsp;TSetupQueueCopyA;<br>&nbsp;&nbsp;SetupQueueCopyW&nbsp;&nbsp;&nbsp;:&nbsp;TSetupQueueCopyW;<br>&nbsp;&nbsp;SetupQueueCopy&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;TSetupQueueCopy;<br>&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;SetupQueueCopyIndirectA:&nbsp;TSetupQueueCopyIndirectA;<br>&nbsp;&nbsp;SetupQueueCopyIndirectW:&nbsp;TSetupQueueCopyIndirectW;<br>&nbsp;&nbsp;SetupQueueCopyIndirect:&nbsp;TSetupQueueCopyIndirect;<br>&nbsp;&nbsp;{$ENDIF}<br>&nbsp;&nbsp;SetupQueueDefaultCopyA:&nbsp;TSetupQueueDefaultCopyA;<br>&nbsp;&nbsp;SetupQueueDefaultCopyW:&nbsp;TSetupQueueDefaultCopyW;<br>&nbsp;&nbsp;SetupQueueDefaultCopy:&nbsp;TSetupQueueDefaultCopy;<br>&nbsp;&nbsp;SetupQueueCopySectionA:&nbsp;TSetupQueueCopySectionA;<br>&nbsp;&nbsp;SetupQueueCopySectionW:&nbsp;TSetupQueueCopySectionW;<br>&nbsp;&nbsp;SetupQueueCopySection:&nbsp;TSetupQueueCopySection;<br>&nbsp;&nbsp;SetupQueueDeleteA&nbsp;:&nbsp;TSetupQueueDeleteA;<br>&nbsp;&nbsp;SetupQueueDeleteW&nbsp;:&nbsp;TSetupQueueDeleteW;<br>&nbsp;&nbsp;SetupQueueDelete&nbsp;&nbsp;:&nbsp;TSetupQueueDelete;<br>&nbsp;&nbsp;SetupQueueDeleteSectionA:&nbsp;TSetupQueueDeleteSectionA;<br>&nbsp;&nbsp;SetupQueueDeleteSectionW:&nbsp;TSetupQueueDeleteSectionW;<br>&nbsp;&nbsp;SetupQueueDeleteSection:&nbsp;TSetupQueueDeleteSection;<br>&nbsp;&nbsp;SetupQueueRenameA&nbsp;:&nbsp;TSetupQueueRenameA;<br>&nbsp;&nbsp;SetupQueueRenameW&nbsp;:&nbsp;TSetupQueueRenameW;<br>&nbsp;&nbsp;SetupQueueRename&nbsp;&nbsp;:&nbsp;TSetupQueueRename;<br>&nbsp;&nbsp;SetupQueueRenameSectionA:&nbsp;TSetupQueueRenameSectionA;<br>&nbsp;&nbsp;SetupQueueRenameSectionW:&nbsp;TSetupQueueRenameSectionW;<br>&nbsp;&nbsp;SetupQueueRenameSection:&nbsp;TSetupQueueRenameSection;<br>&nbsp;&nbsp;SetupCommitFileQueueA:&nbsp;TSetupCommitFileQueueA;<br>&nbsp;&nbsp;SetupCommitFileQueueW:&nbsp;TSetupCommitFileQueueW;<br>&nbsp;&nbsp;SetupCommitFileQueue:&nbsp;TSetupCommitFileQueue;<br>&nbsp;&nbsp;SetupScanFileQueueA:&nbsp;TSetupScanFileQueueA;<br>&nbsp;&nbsp;SetupScanFileQueueW:&nbsp;TSetupScanFileQueueW;<br>&nbsp;&nbsp;SetupScanFileQueue:&nbsp;TSetupScanFileQueue;<br>&nbsp;&nbsp;SetupCopyOEMInfA&nbsp;&nbsp;:&nbsp;TSetupCopyOEMInfA;<br>&nbsp;&nbsp;SetupCopyOEMInfW&nbsp;&nbsp;:&nbsp;TSetupCopyOEMInfW;<br>&nbsp;&nbsp;SetupCopyOEMInf&nbsp;&nbsp;&nbsp;:&nbsp;TSetupCopyOEMInf;<br>&nbsp;&nbsp;SetupCreateDiskSpaceListA:&nbsp;TSetupCreateDiskSpaceListA;<br>&nbsp;&nbsp;SetupCreateDiskSpaceListW:&nbsp;TSetupCreateDiskSpaceListW;<br>&nbsp;&nbsp;SetupCreateDiskSpaceList:&nbsp;TSetupCreateDiskSpaceList;<br>&nbsp;&nbsp;SetupDuplicateDiskSpaceListA:&nbsp;TSetupDuplicateDiskSpaceListA;<br>&nbsp;&nbsp;SetupDuplicateDiskSpaceListW:&nbsp;TSetupDuplicateDiskSpaceListW;<br>&nbsp;&nbsp;SetupDuplicateDiskSpaceList:&nbsp;TSetupDuplicateDiskSpaceList;<br>&nbsp;&nbsp;SetupDestroyDiskSpaceList:&nbsp;TSetupDestroyDiskSpaceList;<br>&nbsp;&nbsp;SetupQueryDrivesInDiskSpaceListA:&nbsp;TSetupQueryDrivesInDiskSpaceListA;<br>&nbsp;&nbsp;SetupQueryDrivesInDiskSpaceListW:&nbsp;TSetupQueryDrivesInDiskSpaceListW;<br>&nbsp;&nbsp;SetupQueryDrivesInDiskSpaceList:&nbsp;TSetupQueryDrivesInDiskSpaceList;<br>&nbsp;&nbsp;SetupQuerySpaceRequiredOnDriveA:&nbsp;TSetupQuerySpaceRequiredOnDriveA;<br>&nbsp;&nbsp;SetupQuerySpaceRequiredOnDriveW:&nbsp;TSetupQuerySpaceRequiredOnDriveW;<br>&nbsp;&nbsp;SetupQuerySpaceRequiredOnDrive:&nbsp;TSetupQuerySpaceRequiredOnDrive;<br>&nbsp;&nbsp;SetupAdjustDiskSpaceListA:&nbsp;TSetupAdjustDiskSpaceListA;<br>&nbsp;&nbsp;SetupAdjustDiskSpaceListW:&nbsp;TSetupAdjustDiskSpaceListW;<br>&nbsp;&nbsp;SetupAdjustDiskSpaceList:&nbsp;TSetupAdjustDiskSpaceList;<br>&nbsp;&nbsp;SetupAddToDiskSpaceListA:&nbsp;TSetupAddToDiskSpaceListA;<br>&nbsp;&nbsp;SetupAddToDiskSpaceListW:&nbsp;TSetupAddToDiskSpaceListW;<br>&nbsp;&nbsp;SetupAddToDiskSpaceList:&nbsp;TSetupAddToDiskSpaceList;<br>&nbsp;&nbsp;SetupAddSectionToDiskSpaceListA:&nbsp;TSetupAddSectionToDiskSpaceListA;<br>&nbsp;&nbsp;SetupAddSectionToDiskSpaceListW:&nbsp;TSetupAddSectionToDiskSpaceListW;<br>&nbsp;&nbsp;SetupAddSectionToDiskSpaceList:&nbsp;TSetupAddSectionToDiskSpaceList;<br>&nbsp;&nbsp;SetupAddInstallSectionToDiskSpaceListA:&nbsp;TSetupAddInstallSectionToDiskSpaceListA;<br>&nbsp;&nbsp;SetupAddInstallSectionToDiskSpaceListW:&nbsp;TSetupAddInstallSectionToDiskSpaceListW;<br>&nbsp;&nbsp;SetupAddInstallSectionToDiskSpaceList:&nbsp;TSetupAddInstallSectionToDiskSpaceList;<br>&nbsp;&nbsp;SetupRemoveFromDiskSpaceListA:&nbsp;TSetupRemoveFromDiskSpaceListA;<br>&nbsp;&nbsp;SetupRemoveFromDiskSpaceListW:&nbsp;TSetupRemoveFromDiskSpaceListW;<br>&nbsp;&nbsp;SetupRemoveFromDiskSpaceList:&nbsp;TSetupRemoveFromDiskSpaceList;<br>&nbsp;&nbsp;SetupRemoveSectionFromDiskSpaceListA:&nbsp;TSetupRemoveSectionFromDiskSpaceListA;<br>&nbsp;&nbsp;SetupRemoveSectionFromDiskSpaceListW:&nbsp;TSetupRemoveSectionFromDiskSpaceListW;<br>&nbsp;&nbsp;SetupRemoveSectionFromDiskSpaceList:&nbsp;TSetupRemoveSectionFromDiskSpaceList;<br>&nbsp;&nbsp;SetupRemoveInstallSectionFromDiskSpaceListA:&nbsp;TSetupRemoveInstallSectionFromDiskSpaceListA;<br>&nbsp;&nbsp;SetupRemoveInstallSectionFromDiskSpaceListW:&nbsp;TSetupRemoveInstallSectionFromDiskSpaceListW;<br>&nbsp;&nbsp;SetupRemoveInstallSectionFromDiskSpaceList:&nbsp;TSetupRemoveInstallSectionFromDiskSpaceList;<br>&nbsp;&nbsp;SetupIterateCabinetA:&nbsp;TSetupIterateCabinetA;<br>&nbsp;&nbsp;SetupIterateCabinetW:&nbsp;TSetupIterateCabinetW;<br>&nbsp;&nbsp;SetupIterateCabinet:&nbsp;TSetupIterateCabinet;<br>&nbsp;&nbsp;SetupPromptReboot&nbsp;:&nbsp;TSetupPromptReboot;<br>&nbsp;&nbsp;SetupInitDefaultQueueCallback:&nbsp;TSetupInitDefaultQueueCallback;<br>&nbsp;&nbsp;SetupInitDefaultQueueCallbackEx:&nbsp;TSetupInitDefaultQueueCallbackEx;<br>&nbsp;&nbsp;SetupTermDefaultQueueCallback:&nbsp;TSetupTermDefaultQueueCallback;<br>&nbsp;&nbsp;SetupDefaultQueueCallbackA:&nbsp;TSetupDefaultQueueCallbackA;<br>&nbsp;&nbsp;SetupDefaultQueueCallbackW:&nbsp;TSetupDefaultQueueCallbackW;<br>&nbsp;&nbsp;SetupDefaultQueueCallback:&nbsp;TSetupDefaultQueueCallback;<br>&nbsp;&nbsp;SetupInstallFromInfSectionA:&nbsp;TSetupInstallFromInfSectionA;<br>&nbsp;&nbsp;SetupInstallFromInfSectionW:&nbsp;TSetupInstallFromInfSectionW;<br>&nbsp;&nbsp;SetupInstallFromInfSection:&nbsp;TSetupInstallFromInfSection;<br>&nbsp;&nbsp;SetupInstallFilesFromInfSectionA:&nbsp;TSetupInstallFilesFromInfSectionA;<br>&nbsp;&nbsp;SetupInstallFilesFromInfSectionW:&nbsp;TSetupInstallFilesFromInfSectionW;<br>&nbsp;&nbsp;SetupInstallFilesFromInfSection:&nbsp;TSetupInstallFilesFromInfSection;<br>&nbsp;&nbsp;SetupInstallServicesFromInfSectionA:&nbsp;TSetupInstallServicesFromInfSectionA;<br>&nbsp;&nbsp;SetupInstallServicesFromInfSectionW:&nbsp;TSetupInstallServicesFromInfSectionW;<br>&nbsp;&nbsp;SetupInstallServicesFromInfSection:&nbsp;TSetupInstallServicesFromInfSection;<br>&nbsp;&nbsp;SetupInstallServicesFromInfSectionExA:&nbsp;TSetupInstallServicesFromInfSectionExA;<br>&nbsp;&nbsp;SetupInstallServicesFromInfSectionExW:&nbsp;TSetupInstallServicesFromInfSectionExW;<br>&nbsp;&nbsp;SetupInstallServicesFromInfSectionEx:&nbsp;TSetupInstallServicesFromInfSectionEx;<br>&nbsp;&nbsp;SetupInitializeFileLogA:&nbsp;TSetupInitializeFileLogA;<br>&nbsp;&nbsp;SetupInitializeFileLogW:&nbsp;TSetupInitializeFileLogW;<br>&nbsp;&nbsp;SetupInitializeFileLog:&nbsp;TSetupInitializeFileLog;<br>&nbsp;&nbsp;SetupTerminateFileLog:&nbsp;TSetupTerminateFileLog;<br>&nbsp;&nbsp;SetupLogFileA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;TSetupLogFileA;<br>&nbsp;&nbsp;SetupLogFileW&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;TSetupLogFileW;<br>&nbsp;&nbsp;SetupLogFile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;TSetupLogFile;<br>&nbsp;&nbsp;SetupRemoveFileLogEntryA:&nbsp;TSetupRemoveFileLogEntryA;<br>&nbsp;&nbsp;SetupRemoveFileLogEntryW:&nbsp;TSetupRemoveFileLogEntryW;<br>&nbsp;&nbsp;SetupRemoveFileLogEntry:&nbsp;TSetupRemoveFileLogEntry;<br>&nbsp;&nbsp;SetupQueryFileLogA:&nbsp;TSetupQueryFileLogA;<br>&nbsp;&nbsp;SetupQueryFileLogW:&nbsp;TSetupQueryFileLogW;<br>&nbsp;&nbsp;SetupQueryFileLog&nbsp;:&nbsp;TSetupQueryFileLog;<br>&nbsp;&nbsp;SetupOpenLog&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;TSetupOpenLog;<br>&nbsp;&nbsp;SetupLogErrorA&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;TSetupLogErrorA;<br>&nbsp;&nbsp;SetupLogErrorW&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;TSetupLogErrorW;<br>&nbsp;&nbsp;SetupLogError&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;TSetupLogError;<br>&nbsp;&nbsp;SetupCloseLog&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;TSetupCloseLog;<br>&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;SetupGetBackupInformationA:&nbsp;TSetupGetBackupInformationA;<br>&nbsp;&nbsp;SetupGetBackupInformationW:&nbsp;TSetupGetBackupInformationW;<br>&nbsp;&nbsp;SetupGetBackupInformation:&nbsp;TSetupGetBackupInformation;<br>&nbsp;&nbsp;{$ENDIF}<br>&nbsp;&nbsp;SetupDiCreateDeviceInfoList:&nbsp;TSetupDiCreateDeviceInfoList;<br>&nbsp;&nbsp;SetupDiCreateDeviceInfoListExA:&nbsp;TSetupDiCreateDeviceInfoListExA;<br>&nbsp;&nbsp;SetupDiCreateDeviceInfoListExW:&nbsp;TSetupDiCreateDeviceInfoListExW;<br>&nbsp;&nbsp;SetupDiCreateDeviceInfoListEx:&nbsp;TSetupDiCreateDeviceInfoListEx;<br>&nbsp;&nbsp;SetupDiGetDeviceInfoListClass:&nbsp;TSetupDiGetDeviceInfoListClass;<br>&nbsp;&nbsp;SetupDiGetDeviceInfoListDetailA:&nbsp;TSetupDiGetDeviceInfoListDetailA;<br>&nbsp;&nbsp;SetupDiGetDeviceInfoListDetailW:&nbsp;TSetupDiGetDeviceInfoListDetailW;<br>&nbsp;&nbsp;SetupDiGetDeviceInfoListDetail:&nbsp;TSetupDiGetDeviceInfoListDetail;<br>&nbsp;&nbsp;SetupDiCreateDeviceInfoA:&nbsp;TSetupDiCreateDeviceInfoA;<br>&nbsp;&nbsp;SetupDiCreateDeviceInfoW:&nbsp;TSetupDiCreateDeviceInfoW;<br>&nbsp;&nbsp;SetupDiCreateDeviceInfo:&nbsp;TSetupDiCreateDeviceInfo;<br>&nbsp;&nbsp;SetupDiOpenDeviceInfoA:&nbsp;TSetupDiOpenDeviceInfoA;<br>&nbsp;&nbsp;SetupDiOpenDeviceInfoW:&nbsp;TSetupDiOpenDeviceInfoW;<br>&nbsp;&nbsp;SetupDiOpenDeviceInfo:&nbsp;TSetupDiOpenDeviceInfo;<br>&nbsp;&nbsp;SetupDiGetDeviceInstanceIdA:&nbsp;TSetupDiGetDeviceInstanceIdA;<br>&nbsp;&nbsp;SetupDiGetDeviceInstanceIdW:&nbsp;TSetupDiGetDeviceInstanceIdW;<br>&nbsp;&nbsp;SetupDiGetDeviceInstanceId:&nbsp;TSetupDiGetDeviceInstanceId;<br>&nbsp;&nbsp;SetupDiDeleteDeviceInfo:&nbsp;TSetupDiDeleteDeviceInfo;<br>&nbsp;&nbsp;SetupDiEnumDeviceInfo:&nbsp;TSetupDiEnumDeviceInfo;<br>&nbsp;&nbsp;SetupDiDestroyDeviceInfoList:&nbsp;TSetupDiDestroyDeviceInfoList;<br>&nbsp;&nbsp;SetupDiEnumDeviceInterfaces:&nbsp;TSetupDiEnumDeviceInterfaces;<br>&nbsp;&nbsp;SetupDiEnumInterfaceDevice:&nbsp;TSetupDiEnumDeviceInterfaces;<br>&nbsp;&nbsp;SetupDiCreateDeviceInterfaceA:&nbsp;TSetupDiCreateDeviceInterfaceA;<br>&nbsp;&nbsp;SetupDiCreateInterfaceDeviceA:&nbsp;TSetupDiCreateDeviceInterfaceA;<br>&nbsp;&nbsp;SetupDiCreateDeviceInterfaceW:&nbsp;TSetupDiCreateDeviceInterfaceW;<br>&nbsp;&nbsp;SetupDiCreateInterfaceDeviceW:&nbsp;TSetupDiCreateDeviceInterfaceW;<br>&nbsp;&nbsp;SetupDiCreateDeviceInterface:&nbsp;TSetupDiCreateDeviceInterface;<br>&nbsp;&nbsp;SetupDiOpenDeviceInterfaceA:&nbsp;TSetupDiOpenDeviceInterfaceA;<br>&nbsp;&nbsp;SetupDiOpenInterfaceDeviceA:&nbsp;TSetupDiOpenDeviceInterfaceA;<br>&nbsp;&nbsp;SetupDiOpenDeviceInterfaceW:&nbsp;TSetupDiOpenDeviceInterfaceW;<br>&nbsp;&nbsp;SetupDiOpenInterfaceDeviceW:&nbsp;TSetupDiOpenDeviceInterfaceW;<br>&nbsp;&nbsp;SetupDiOpenDeviceInterface:&nbsp;TSetupDiOpenDeviceInterface;<br>&nbsp;&nbsp;SetupDiGetDeviceInterfaceAlias:&nbsp;TSetupDiGetDeviceInterfaceAlias;<br>&nbsp;&nbsp;SetupDiGetInterfaceDeviceAlias:&nbsp;TSetupDiGetDeviceInterfaceAlias;<br>&nbsp;&nbsp;SetupDiDeleteDeviceInterfaceData:&nbsp;TSetupDiDeleteDeviceInterfaceData;<br>&nbsp;&nbsp;SetupDiDeleteInterfaceDeviceData:&nbsp;TSetupDiDeleteDeviceInterfaceData;<br>&nbsp;&nbsp;SetupDiRemoveDeviceInterface:&nbsp;TSetupDiRemoveDeviceInterface;<br>&nbsp;&nbsp;SetupDiRemoveInterfaceDevice:&nbsp;TSetupDiRemoveDeviceInterface;<br>&nbsp;&nbsp;SetupDiGetDeviceInterfaceDetailA:&nbsp;TSetupDiGetDeviceInterfaceDetailA;<br>&nbsp;&nbsp;SetupDiGetInterfaceDeviceDetailA:&nbsp;TSetupDiGetDeviceInterfaceDetailA;<br>&nbsp;&nbsp;SetupDiGetDeviceInterfaceDetailW:&nbsp;TSetupDiGetDeviceInterfaceDetailW;<br>&nbsp;&nbsp;SetupDiGetInterfaceDeviceDetailW:&nbsp;TSetupDiGetDeviceInterfaceDetailW;<br>&nbsp;&nbsp;SetupDiGetDeviceInterfaceDetail:&nbsp;TSetupDiGetDeviceInterfaceDetail;<br>&nbsp;&nbsp;SetupDiInstallDeviceInterfaces:&nbsp;TSetupDiInstallDeviceInterfaces;<br>&nbsp;&nbsp;SetupDiInstallInterfaceDevices:&nbsp;TSetupDiInstallDeviceInterfaces;<br>&nbsp;&nbsp;SetupDiRegisterDeviceInfo:&nbsp;TSetupDiRegisterDeviceInfo;<br>&nbsp;&nbsp;SetupDiBuildDriverInfoList:&nbsp;TSetupDiBuildDriverInfoList;<br>&nbsp;&nbsp;SetupDiCancelDriverInfoSearch:&nbsp;TSetupDiCancelDriverInfoSearch;<br>&nbsp;&nbsp;SetupDiEnumDriverInfoA:&nbsp;TSetupDiEnumDriverInfoA;<br>&nbsp;&nbsp;SetupDiEnumDriverInfoW:&nbsp;TSetupDiEnumDriverInfoW;<br>&nbsp;&nbsp;SetupDiEnumDriverInfo:&nbsp;TSetupDiEnumDriverInfo;<br>&nbsp;&nbsp;SetupDiGetSelectedDriverA:&nbsp;TSetupDiGetSelectedDriverA;<br>&nbsp;&nbsp;SetupDiGetSelectedDriverW:&nbsp;TSetupDiGetSelectedDriverW;<br>&nbsp;&nbsp;SetupDiGetSelectedDriver:&nbsp;TSetupDiGetSelectedDriver;<br>&nbsp;&nbsp;SetupDiSetSelectedDriverA:&nbsp;TSetupDiSetSelectedDriverA;<br>&nbsp;&nbsp;SetupDiSetSelectedDriverW:&nbsp;TSetupDiSetSelectedDriverW;<br>&nbsp;&nbsp;SetupDiSetSelectedDriver:&nbsp;TSetupDiSetSelectedDriver;<br>&nbsp;&nbsp;SetupDiGetDriverInfoDetailA:&nbsp;TSetupDiGetDriverInfoDetailA;<br>&nbsp;&nbsp;SetupDiGetDriverInfoDetailW:&nbsp;TSetupDiGetDriverInfoDetailW;<br>&nbsp;&nbsp;SetupDiGetDriverInfoDetail:&nbsp;TSetupDiGetDriverInfoDetail;<br>&nbsp;&nbsp;SetupDiDestroyDriverInfoList:&nbsp;TSetupDiDestroyDriverInfoList;<br>&nbsp;&nbsp;SetupDiGetClassDevsA:&nbsp;TSetupDiGetClassDevsA;<br>&nbsp;&nbsp;SetupDiGetClassDevsW:&nbsp;TSetupDiGetClassDevsW;<br>&nbsp;&nbsp;SetupDiGetClassDevs:&nbsp;TSetupDiGetClassDevs;<br>&nbsp;&nbsp;SetupDiGetClassDevsExA:&nbsp;TSetupDiGetClassDevsExA;<br>&nbsp;&nbsp;SetupDiGetClassDevsExW:&nbsp;TSetupDiGetClassDevsExW;<br>&nbsp;&nbsp;SetupDiGetClassDevsEx:&nbsp;TSetupDiGetClassDevsEx;<br>&nbsp;&nbsp;SetupDiGetINFClassA:&nbsp;TSetupDiGetINFClassA;<br>&nbsp;&nbsp;SetupDiGetINFClassW:&nbsp;TSetupDiGetINFClassW;<br>&nbsp;&nbsp;SetupDiGetINFClass:&nbsp;TSetupDiGetINFClass;<br>&nbsp;&nbsp;SetupDiBuildClassInfoList:&nbsp;TSetupDiBuildClassInfoList;<br>&nbsp;&nbsp;SetupDiBuildClassInfoListExA:&nbsp;TSetupDiBuildClassInfoListExA;<br>&nbsp;&nbsp;SetupDiBuildClassInfoListExW:&nbsp;TSetupDiBuildClassInfoListExW;<br>&nbsp;&nbsp;SetupDiBuildClassInfoListEx:&nbsp;TSetupDiBuildClassInfoListEx;<br>&nbsp;&nbsp;SetupDiGetClassDescriptionA:&nbsp;TSetupDiGetClassDescriptionA;<br>&nbsp;&nbsp;SetupDiGetClassDescriptionW:&nbsp;TSetupDiGetClassDescriptionW;<br>&nbsp;&nbsp;SetupDiGetClassDescription:&nbsp;TSetupDiGetClassDescription;<br>&nbsp;&nbsp;SetupDiGetClassDescriptionExA:&nbsp;TSetupDiGetClassDescriptionExA;<br>&nbsp;&nbsp;SetupDiGetClassDescriptionExW:&nbsp;TSetupDiGetClassDescriptionExW;<br>&nbsp;&nbsp;SetupDiGetClassDescriptionEx:&nbsp;TSetupDiGetClassDescriptionEx;<br>&nbsp;&nbsp;SetupDiCallClassInstaller:&nbsp;TSetupDiCallClassInstaller;<br>&nbsp;&nbsp;SetupDiSelectDevice:&nbsp;TSetupDiSelectDevice;<br>&nbsp;&nbsp;SetupDiSelectBestCompatDrv:&nbsp;TSetupDiSelectBestCompatDrv;<br>&nbsp;&nbsp;SetupDiInstallDevice:&nbsp;TSetupDiInstallDevice;<br>&nbsp;&nbsp;SetupDiInstallDriverFiles:&nbsp;TSetupDiInstallDriverFiles;<br>&nbsp;&nbsp;SetupDiRegisterCoDeviceInstallers:&nbsp;TSetupDiRegisterCoDeviceInstallers;<br>&nbsp;&nbsp;SetupDiRemoveDevice:&nbsp;TSetupDiRemoveDevice;<br>&nbsp;&nbsp;SetupDiUnremoveDevice:&nbsp;TSetupDiUnremoveDevice;<br>&nbsp;&nbsp;SetupDiMoveDuplicateDevice:&nbsp;TSetupDiMoveDuplicateDevice;<br>&nbsp;&nbsp;SetupDiChangeState:&nbsp;TSetupDiChangeState;<br>&nbsp;&nbsp;SetupDiInstallClassA:&nbsp;TSetupDiInstallClassA;<br>&nbsp;&nbsp;SetupDiInstallClassW:&nbsp;TSetupDiInstallClassW;<br>&nbsp;&nbsp;SetupDiInstallClass:&nbsp;TSetupDiInstallClass;<br>&nbsp;&nbsp;SetupDiInstallClassExA:&nbsp;TSetupDiInstallClassExA;<br>&nbsp;&nbsp;SetupDiInstallClassExW:&nbsp;TSetupDiInstallClassExW;<br>&nbsp;&nbsp;SetupDiInstallClassEx:&nbsp;TSetupDiInstallClassEx;<br>&nbsp;&nbsp;SetupDiOpenClassRegKey:&nbsp;TSetupDiOpenClassRegKey;<br>&nbsp;&nbsp;SetupDiOpenClassRegKeyExA:&nbsp;TSetupDiOpenClassRegKeyExA;<br>&nbsp;&nbsp;SetupDiOpenClassRegKeyExW:&nbsp;TSetupDiOpenClassRegKeyExW;<br>&nbsp;&nbsp;SetupDiOpenClassRegKeyEx:&nbsp;TSetupDiOpenClassRegKeyEx;<br>&nbsp;&nbsp;SetupDiCreateDeviceInterfaceRegKeyA:&nbsp;TSetupDiCreateDeviceInterfaceRegKeyA;<br>&nbsp;&nbsp;SetupDiCreateInterfaceDeviceRegKeyA:&nbsp;TSetupDiCreateDeviceInterfaceRegKeyA;<br>&nbsp;&nbsp;SetupDiCreateDeviceInterfaceRegKeyW:&nbsp;TSetupDiCreateDeviceInterfaceRegKeyW;<br>&nbsp;&nbsp;SetupDiCreateInterfaceDeviceRegKeyW:&nbsp;TSetupDiCreateDeviceInterfaceRegKeyW;<br>&nbsp;&nbsp;SetupDiCreateDeviceInterfaceRegKey:&nbsp;TSetupDiCreateDeviceInterfaceRegKey;<br>&nbsp;&nbsp;SetupDiOpenDeviceInterfaceRegKey:&nbsp;TSetupDiOpenDeviceInterfaceRegKey;<br>&nbsp;&nbsp;SetupDiOpenInterfaceDeviceRegKey:&nbsp;TSetupDiOpenDeviceInterfaceRegKey;<br>&nbsp;&nbsp;SetupDiDeleteDeviceInterfaceRegKey:&nbsp;TSetupDiDeleteDeviceInterfaceRegKey;<br>&nbsp;&nbsp;SetupDiDeleteInterfaceDeviceRegKey:&nbsp;TSetupDiDeleteDeviceInterfaceRegKey;<br>&nbsp;&nbsp;SetupDiCreateDevRegKeyA:&nbsp;TSetupDiCreateDevRegKeyA;<br>&nbsp;&nbsp;SetupDiCreateDevRegKeyW:&nbsp;TSetupDiCreateDevRegKeyW;<br>&nbsp;&nbsp;SetupDiCreateDevRegKey:&nbsp;TSetupDiCreateDevRegKey;<br>&nbsp;&nbsp;SetupDiOpenDevRegKey:&nbsp;TSetupDiOpenDevRegKey;<br>&nbsp;&nbsp;SetupDiDeleteDevRegKey:&nbsp;TSetupDiDeleteDevRegKey;<br>&nbsp;&nbsp;SetupDiGetHwProfileList:&nbsp;TSetupDiGetHwProfileList;<br>&nbsp;&nbsp;SetupDiGetHwProfileListExA:&nbsp;TSetupDiGetHwProfileListExA;<br>&nbsp;&nbsp;SetupDiGetHwProfileListExW:&nbsp;TSetupDiGetHwProfileListExW;<br>&nbsp;&nbsp;SetupDiGetHwProfileListEx:&nbsp;TSetupDiGetHwProfileListEx;<br>&nbsp;&nbsp;SetupDiGetDeviceRegistryPropertyA:&nbsp;TSetupDiGetDeviceRegistryPropertyA;<br>&nbsp;&nbsp;SetupDiGetDeviceRegistryPropertyW:&nbsp;TSetupDiGetDeviceRegistryPropertyW;<br>&nbsp;&nbsp;SetupDiGetDeviceRegistryProperty:&nbsp;TSetupDiGetDeviceRegistryProperty;<br>&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;SetupDiGetClassRegistryPropertyA:&nbsp;TSetupDiGetClassRegistryPropertyA;<br>&nbsp;&nbsp;SetupDiGetClassRegistryPropertyW:&nbsp;TSetupDiGetClassRegistryPropertyW;<br>&nbsp;&nbsp;SetupDiGetClassRegistryProperty:&nbsp;TSetupDiGetClassRegistryProperty;<br>&nbsp;&nbsp;{$ENDIF}<br>&nbsp;&nbsp;SetupDiSetDeviceRegistryPropertyA:&nbsp;TSetupDiSetDeviceRegistryPropertyA;<br>&nbsp;&nbsp;SetupDiSetDeviceRegistryPropertyW:&nbsp;TSetupDiSetDeviceRegistryPropertyW;<br>&nbsp;&nbsp;SetupDiSetDeviceRegistryProperty:&nbsp;TSetupDiSetDeviceRegistryProperty;<br>&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;SetupDiSetClassRegistryPropertyA:&nbsp;TSetupDiSetClassRegistryPropertyA;<br>&nbsp;&nbsp;SetupDiSetClassRegistryPropertyW:&nbsp;TSetupDiSetClassRegistryPropertyW;<br>&nbsp;&nbsp;SetupDiSetClassRegistryProperty:&nbsp;TSetupDiSetClassRegistryProperty;<br>&nbsp;&nbsp;{$ENDIF}<br>&nbsp;&nbsp;SetupDiGetDeviceInstallParamsA:&nbsp;TSetupDiGetDeviceInstallParamsA;<br>&nbsp;&nbsp;SetupDiGetDeviceInstallParamsW:&nbsp;TSetupDiGetDeviceInstallParamsW;<br>&nbsp;&nbsp;SetupDiGetDeviceInstallParams:&nbsp;TSetupDiGetDeviceInstallParams;<br>&nbsp;&nbsp;SetupDiGetClassInstallParamsA:&nbsp;TSetupDiGetClassInstallParamsA;<br>&nbsp;&nbsp;SetupDiGetClassInstallParamsW:&nbsp;TSetupDiGetClassInstallParamsW;<br>&nbsp;&nbsp;SetupDiGetClassInstallParams:&nbsp;TSetupDiGetClassInstallParams;<br>&nbsp;&nbsp;SetupDiSetDeviceInstallParamsA:&nbsp;TSetupDiSetDeviceInstallParamsA;<br>&nbsp;&nbsp;SetupDiSetDeviceInstallParamsW:&nbsp;TSetupDiSetDeviceInstallParamsW;<br>&nbsp;&nbsp;SetupDiSetDeviceInstallParams:&nbsp;TSetupDiSetDeviceInstallParams;<br>&nbsp;&nbsp;SetupDiSetClassInstallParamsA:&nbsp;TSetupDiSetClassInstallParamsA;<br>&nbsp;&nbsp;SetupDiSetClassInstallParamsW:&nbsp;TSetupDiSetClassInstallParamsW;<br>&nbsp;&nbsp;SetupDiSetClassInstallParams:&nbsp;TSetupDiSetClassInstallParams;<br>&nbsp;&nbsp;SetupDiGetDriverInstallParamsA:&nbsp;TSetupDiGetDriverInstallParamsA;<br>&nbsp;&nbsp;SetupDiGetDriverInstallParamsW:&nbsp;TSetupDiGetDriverInstallParamsW;<br>&nbsp;&nbsp;SetupDiGetDriverInstallParams:&nbsp;TSetupDiGetDriverInstallParams;<br>&nbsp;&nbsp;SetupDiSetDriverInstallParamsA:&nbsp;TSetupDiSetDriverInstallParamsA;<br>&nbsp;&nbsp;SetupDiSetDriverInstallParamsW:&nbsp;TSetupDiSetDriverInstallParamsW;<br>&nbsp;&nbsp;SetupDiSetDriverInstallParams:&nbsp;TSetupDiSetDriverInstallParams;<br>&nbsp;&nbsp;SetupDiLoadClassIcon:&nbsp;TSetupDiLoadClassIcon;<br>&nbsp;&nbsp;SetupDiDrawMiniIcon:&nbsp;TSetupDiDrawMiniIcon;<br>&nbsp;&nbsp;SetupDiGetClassBitmapIndex:&nbsp;TSetupDiGetClassBitmapIndex;<br>&nbsp;&nbsp;SetupDiGetClassImageList:&nbsp;TSetupDiGetClassImageList;<br>&nbsp;&nbsp;SetupDiGetClassImageListExA:&nbsp;TSetupDiGetClassImageListExA;<br>&nbsp;&nbsp;SetupDiGetClassImageListExW:&nbsp;TSetupDiGetClassImageListExW;<br>&nbsp;&nbsp;SetupDiGetClassImageListEx:&nbsp;TSetupDiGetClassImageListEx;<br>&nbsp;&nbsp;SetupDiGetClassImageIndex:&nbsp;TSetupDiGetClassImageIndex;<br>&nbsp;&nbsp;SetupDiDestroyClassImageList:&nbsp;TSetupDiDestroyClassImageList;<br>&nbsp;&nbsp;SetupDiGetClassDevPropertySheetsA:&nbsp;TSetupDiGetClassDevPropertySheetsA;<br>&nbsp;&nbsp;SetupDiGetClassDevPropertySheetsW:&nbsp;TSetupDiGetClassDevPropertySheetsW;<br>&nbsp;&nbsp;SetupDiGetClassDevPropertySheets:&nbsp;TSetupDiGetClassDevPropertySheets;<br>&nbsp;&nbsp;SetupDiAskForOEMDisk:&nbsp;TSetupDiAskForOEMDisk;<br>&nbsp;&nbsp;SetupDiSelectOEMDrv:&nbsp;TSetupDiSelectOEMDrv;<br>&nbsp;&nbsp;SetupDiClassNameFromGuidA:&nbsp;TSetupDiClassNameFromGuidA;<br>&nbsp;&nbsp;SetupDiClassNameFromGuidW:&nbsp;TSetupDiClassNameFromGuidW;<br>&nbsp;&nbsp;SetupDiClassNameFromGuid:&nbsp;TSetupDiClassNameFromGuid;<br>&nbsp;&nbsp;SetupDiClassNameFromGuidExA:&nbsp;TSetupDiClassNameFromGuidExA;<br>&nbsp;&nbsp;SetupDiClassNameFromGuidExW:&nbsp;TSetupDiClassNameFromGuidExW;<br>&nbsp;&nbsp;SetupDiClassNameFromGuidEx:&nbsp;TSetupDiClassNameFromGuidEx;<br>&nbsp;&nbsp;SetupDiClassGuidsFromNameA:&nbsp;TSetupDiClassGuidsFromNameA;<br>&nbsp;&nbsp;SetupDiClassGuidsFromNameW:&nbsp;TSetupDiClassGuidsFromNameW;<br>&nbsp;&nbsp;SetupDiClassGuidsFromName:&nbsp;TSetupDiClassGuidsFromName;<br>&nbsp;&nbsp;SetupDiClassGuidsFromNameExA:&nbsp;TSetupDiClassGuidsFromNameExA;<br>&nbsp;&nbsp;SetupDiClassGuidsFromNameExW:&nbsp;TSetupDiClassGuidsFromNameExW;<br>&nbsp;&nbsp;SetupDiClassGuidsFromNameEx:&nbsp;TSetupDiClassGuidsFromNameEx;<br>&nbsp;&nbsp;SetupDiGetHwProfileFriendlyNameA:&nbsp;TSetupDiGetHwProfileFriendlyNameA;<br>&nbsp;&nbsp;SetupDiGetHwProfileFriendlyNameW:&nbsp;TSetupDiGetHwProfileFriendlyNameW;<br>&nbsp;&nbsp;SetupDiGetHwProfileFriendlyName:&nbsp;TSetupDiGetHwProfileFriendlyName;<br>&nbsp;&nbsp;SetupDiGetHwProfileFriendlyNameExA:&nbsp;TSetupDiGetHwProfileFriendlyNameExA;<br>&nbsp;&nbsp;SetupDiGetHwProfileFriendlyNameExW:&nbsp;TSetupDiGetHwProfileFriendlyNameExW;<br>&nbsp;&nbsp;SetupDiGetHwProfileFriendlyNameEx:&nbsp;TSetupDiGetHwProfileFriendlyNameEx;<br>&nbsp;&nbsp;SetupDiGetWizardPage:&nbsp;TSetupDiGetWizardPage;<br>&nbsp;&nbsp;SetupDiGetSelectedDevice:&nbsp;TSetupDiGetSelectedDevice;<br>&nbsp;&nbsp;SetupDiSetSelectedDevice:&nbsp;TSetupDiSetSelectedDevice;<br>&nbsp;&nbsp;SetupDiGetActualSectionToInstallA:&nbsp;TSetupDiGetActualSectionToInstallA;<br>&nbsp;&nbsp;SetupDiGetActualSectionToInstallW:&nbsp;TSetupDiGetActualSectionToInstallW;<br>&nbsp;&nbsp;SetupDiGetActualSectionToInstall:&nbsp;TSetupDiGetActualSectionToInstall;<br><br>&nbsp;&nbsp;{$ENDIF}<br><br>function&nbsp;IsSetupApiLoaded:&nbsp;Boolean;<br>function&nbsp;LoadSetupApi:&nbsp;Boolean;<br>procedure&nbsp;UnloadSetupApi;<br><br>implementation<br><br>uses<br>&nbsp;&nbsp;ModuleLoader;<br><br>const<br>&nbsp;&nbsp;SetupApiModuleName&nbsp;=&nbsp;'SetupApi.dll';<br><br>&nbsp;&nbsp;{$IFDEF&nbsp;SETUPAPI_LINKONREQUEST}<br>var<br>&nbsp;&nbsp;SetupApiLib&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;TModuleHandle&nbsp;=&nbsp;INVALID_MODULEHANDLE_VALUE;<br>&nbsp;&nbsp;SetupApiLoadCount&nbsp;:&nbsp;Integer&nbsp;=&nbsp;0;<br>&nbsp;&nbsp;{$ENDIF}<br><br>function&nbsp;IsSetupApiLoaded:&nbsp;Boolean;<br>begin<br>&nbsp;&nbsp;{$IFDEF&nbsp;SETUPAPI_LINKONREQUEST}<br>&nbsp;&nbsp;Result&nbsp;:=&nbsp;SetupApiLib&nbsp;&lt;&gt;&nbsp;INVALID_MODULEHANDLE_VALUE;<br>&nbsp;&nbsp;{$ELSE}<br>&nbsp;&nbsp;Result&nbsp;:=&nbsp;True;<br>&nbsp;&nbsp;{$ENDIF}<br>end;<br><br>function&nbsp;LoadSetupApi:&nbsp;Boolean;<br>begin<br>&nbsp;&nbsp;{$IFDEF&nbsp;SETUPAPI_LINKONREQUEST}<br>&nbsp;&nbsp;Inc(SetupApiLoadCount);<br>&nbsp;&nbsp;if&nbsp;SetupApiLoadCount&nbsp;&gt;&nbsp;1&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;Exit;<br>&nbsp;&nbsp;Result&nbsp;:=&nbsp;LoadModule(SetupApiLib,&nbsp;SetupApiModuleName);<br>&nbsp;&nbsp;if&nbsp;Result&nbsp;then<br>&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetInfInformationA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetInfInformationA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetInfInformationW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetInfInformationW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetInfInformation&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetInfInformationA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueryInfFileInformationA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueryInfFileInformationA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueryInfFileInformationW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueryInfFileInformationW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueryInfFileInformation&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueryInfFileInformationA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueryInfOriginalFileInformationA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueryInfOriginalFileInformationA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueryInfOriginalFileInformationW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueryInfOriginalFileInformationW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueryInfOriginalFileInformation&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueryInfOriginalFileInformationA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;{$ENDIF}<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueryInfVersionInformationA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueryInfVersionInformationA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueryInfVersionInformationW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueryInfVersionInformationW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueryInfVersionInformation&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueryInfVersionInformationA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetInfFileListA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetInfFileListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetInfFileListW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetInfFileListW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetInfFileList&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetInfFileListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupOpenInfFileA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupOpenInfFileA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupOpenInfFileW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupOpenInfFileW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupOpenInfFile&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupOpenInfFileA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupOpenMasterInf&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupOpenMasterInf',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupOpenAppendInfFileA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupOpenAppendInfFileA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupOpenAppendInfFileW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupOpenAppendInfFileW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupOpenAppendInfFile&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupOpenAppendInfFileA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupCloseInfFile&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupCloseInfFile',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupFindFirstLineA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupFindFirstLineA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupFindFirstLineW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupFindFirstLineW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupFindFirstLine&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupFindFirstLineA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupFindNextLine&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupFindNextLine',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupFindNextMatchLineA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupFindNextMatchLineA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupFindNextMatchLineW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupFindNextMatchLineW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupFindNextMatchLine&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupFindNextMatchLineA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetLineByIndexA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetLineByIndexA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetLineByIndexW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetLineByIndexW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetLineByIndex&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetLineByIndexA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetLineCountA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetLineCountA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetLineCountW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetLineCountW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetLineCount&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetLineCountA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetLineTextA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetLineTextA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetLineTextW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetLineTextW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetLineText&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetLineTextA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetFieldCount&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetFieldCount',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetStringFieldA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetStringFieldA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetStringFieldW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetStringFieldW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetStringField&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetStringFieldA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetIntField&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetIntField',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetMultiSzFieldA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetMultiSzFieldA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetMultiSzFieldW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetMultiSzFieldW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetMultiSzField&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetMultiSzFieldA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetBinaryField&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetBinaryField',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetFileCompressionInfoA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetFileCompressionInfoA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetFileCompressionInfoW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetFileCompressionInfoW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetFileCompressionInfo&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetFileCompressionInfoA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDecompressOrCopyFileA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDecompressOrCopyFileA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDecompressOrCopyFileW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDecompressOrCopyFileW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDecompressOrCopyFile&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDecompressOrCopyFileA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetSourceFileLocationA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetSourceFileLocationA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetSourceFileLocationW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetSourceFileLocationW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetSourceFileLocation&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetSourceFileLocationA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetSourceFileSizeA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetSourceFileSizeA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetSourceFileSizeW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetSourceFileSizeW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetSourceFileSize&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetSourceFileSizeA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetTargetPathA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetTargetPathA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetTargetPathW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetTargetPathW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetTargetPath&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetTargetPathA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupSetSourceListA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupSetSourceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupSetSourceListW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupSetSourceListW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupSetSourceList&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupSetSourceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupCancelTemporarySourceList&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupCancelTemporarySourceList',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupAddToSourceListA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupAddToSourceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupAddToSourceListW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupAddToSourceListW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupAddToSourceList&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupAddToSourceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupRemoveFromSourceListA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupRemoveFromSourceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupRemoveFromSourceListW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupRemoveFromSourceListW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupRemoveFromSourceList&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupRemoveFromSourceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQuerySourceListA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQuerySourceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQuerySourceListW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQuerySourceListW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQuerySourceList&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQuerySourceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupFreeSourceListA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupFreeSourceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupFreeSourceListW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupFreeSourceListW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupFreeSourceList&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupFreeSourceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupPromptForDiskA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupPromptForDiskA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupPromptForDiskW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupPromptForDiskW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupPromptForDisk&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupPromptForDiskA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupCopyErrorA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupCopyErrorA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupCopyErrorW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupCopyErrorW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupCopyError&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupCopyErrorA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupRenameErrorA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupRenameErrorA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupRenameErrorW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupRenameErrorW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupRenameError&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupRenameErrorA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDeleteErrorA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDeleteErrorA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDeleteErrorW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDeleteErrorW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDeleteError&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDeleteErrorA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupBackupErrorA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupBackupErrorA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupBackupErrorW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupBackupErrorW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupBackupError&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupBackupErrorA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;{$ENDIF}<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupSetDirectoryIdA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupSetDirectoryIdA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupSetDirectoryIdW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupSetDirectoryIdW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupSetDirectoryId&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupSetDirectoryIdA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupSetDirectoryIdExA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupSetDirectoryIdExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupSetDirectoryIdExW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupSetDirectoryIdExW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupSetDirectoryIdEx&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupSetDirectoryIdExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetSourceInfoA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetSourceInfoA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetSourceInfoW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetSourceInfoW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetSourceInfo&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetSourceInfoA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupInstallFileA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupInstallFileA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupInstallFileW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupInstallFileW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupInstallFile&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupInstallFileA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupInstallFileExA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupInstallFileExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupInstallFileExW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupInstallFileExW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupInstallFileEx&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupInstallFileExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupOpenFileQueue&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupOpenFileQueue',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupCloseFileQueue&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupCloseFileQueue',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupSetFileQueueAlternatePlatformA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupSetFileQueueAlternatePlatformA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupSetFileQueueAlternatePlatformW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupSetFileQueueAlternatePlatformW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupSetFileQueueAlternatePlatform&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupSetFileQueueAlternatePlatformA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;{$ENDIF}<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupSetPlatformPathOverrideA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupSetPlatformPathOverrideA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupSetPlatformPathOverrideW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupSetPlatformPathOverrideW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupSetPlatformPathOverride&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupSetPlatformPathOverrideA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueueCopyA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueueCopyA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueueCopyW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueueCopyW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueueCopy&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueueCopyA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueueCopyIndirectA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueueCopyIndirectA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueueCopyIndirectW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueueCopyIndirectW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueueCopyIndirect&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueueCopyIndirectA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;{$ENDIF}<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueueDefaultCopyA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueueDefaultCopyA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueueDefaultCopyW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueueDefaultCopyW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueueDefaultCopy&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueueDefaultCopyA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueueCopySectionA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueueCopySectionA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueueCopySectionW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueueCopySectionW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueueCopySection&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueueCopySectionA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueueDeleteA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueueDeleteA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueueDeleteW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueueDeleteW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueueDelete&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueueDeleteA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueueDeleteSectionA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueueDeleteSectionA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueueDeleteSectionW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueueDeleteSectionW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueueDeleteSection&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueueDeleteSectionA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueueRenameA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueueRenameA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueueRenameW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueueRenameW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueueRename&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueueRenameA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueueRenameSectionA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueueRenameSectionA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueueRenameSectionW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueueRenameSectionW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueueRenameSection&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueueRenameSectionA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupCommitFileQueueA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupCommitFileQueueA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupCommitFileQueueW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupCommitFileQueueW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupCommitFileQueue&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupCommitFileQueueA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupScanFileQueueA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupScanFileQueueA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupScanFileQueueW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupScanFileQueueW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupScanFileQueue&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupScanFileQueueA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupCopyOEMInfA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupCopyOEMInfA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupCopyOEMInfW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupCopyOEMInfW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupCopyOEMInf&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupCopyOEMInfA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupCreateDiskSpaceListA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupCreateDiskSpaceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupCreateDiskSpaceListW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupCreateDiskSpaceListW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupCreateDiskSpaceList&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupCreateDiskSpaceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDuplicateDiskSpaceListA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDuplicateDiskSpaceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDuplicateDiskSpaceListW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDuplicateDiskSpaceListW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDuplicateDiskSpaceList&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDuplicateDiskSpaceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDestroyDiskSpaceList&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDestroyDiskSpaceList',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueryDrivesInDiskSpaceListA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueryDrivesInDiskSpaceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueryDrivesInDiskSpaceListW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueryDrivesInDiskSpaceListW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueryDrivesInDiskSpaceList&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueryDrivesInDiskSpaceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQuerySpaceRequiredOnDriveA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQuerySpaceRequiredOnDriveA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQuerySpaceRequiredOnDriveW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQuerySpaceRequiredOnDriveW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQuerySpaceRequiredOnDrive&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQuerySpaceRequiredOnDriveA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupAdjustDiskSpaceListA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupAdjustDiskSpaceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupAdjustDiskSpaceListW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupAdjustDiskSpaceListW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupAdjustDiskSpaceList&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupAdjustDiskSpaceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupAddToDiskSpaceListA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupAddToDiskSpaceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupAddToDiskSpaceListW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupAddToDiskSpaceListW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupAddToDiskSpaceList&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupAddToDiskSpaceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupAddSectionToDiskSpaceListA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupAddSectionToDiskSpaceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupAddSectionToDiskSpaceListW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupAddSectionToDiskSpaceListW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupAddSectionToDiskSpaceList&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupAddSectionToDiskSpaceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupAddInstallSectionToDiskSpaceListA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupAddInstallSectionToDiskSpaceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupAddInstallSectionToDiskSpaceListW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupAddInstallSectionToDiskSpaceListW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupAddInstallSectionToDiskSpaceList&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupAddInstallSectionToDiskSpaceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupRemoveFromDiskSpaceListA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupRemoveFromDiskSpaceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupRemoveFromDiskSpaceListW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupRemoveFromDiskSpaceListW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupRemoveFromDiskSpaceList&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupRemoveFromDiskSpaceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupRemoveSectionFromDiskSpaceListA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupRemoveSectionFromDiskSpaceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupRemoveSectionFromDiskSpaceListW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupRemoveSectionFromDiskSpaceListW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupRemoveSectionFromDiskSpaceList&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupRemoveSectionFromDiskSpaceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupRemoveInstallSectionFromDiskSpaceListA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupRemoveInstallSectionFromDiskSpaceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupRemoveInstallSectionFromDiskSpaceListW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupRemoveInstallSectionFromDiskSpaceListW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupRemoveInstallSectionFromDiskSpaceList&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupRemoveInstallSectionFromDiskSpaceListA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupIterateCabinetA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupIterateCabinetA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupIterateCabinetW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupIterateCabinetW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupIterateCabinet&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupIterateCabinetA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupPromptReboot&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupPromptReboot',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupInitDefaultQueueCallback&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupInitDefaultQueueCallback',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupInitDefaultQueueCallbackEx&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupInitDefaultQueueCallbackEx',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupTermDefaultQueueCallback&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupTermDefaultQueueCallback',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDefaultQueueCallbackA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDefaultQueueCallbackA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDefaultQueueCallbackW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDefaultQueueCallbackW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDefaultQueueCallback&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDefaultQueueCallbackA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupInstallFromInfSectionA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupInstallFromInfSectionA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupInstallFromInfSectionW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupInstallFromInfSectionW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupInstallFromInfSection&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupInstallFromInfSectionA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupInstallFilesFromInfSectionA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupInstallFilesFromInfSectionA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupInstallFilesFromInfSectionW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupInstallFilesFromInfSectionW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupInstallFilesFromInfSection&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupInstallFilesFromInfSectionA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupInstallServicesFromInfSectionA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupInstallServicesFromInfSectionA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupInstallServicesFromInfSectionW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupInstallServicesFromInfSectionW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupInstallServicesFromInfSection&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupInstallServicesFromInfSectionA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupInstallServicesFromInfSectionExA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupInstallServicesFromInfSectionExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupInstallServicesFromInfSectionExW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupInstallServicesFromInfSectionExW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupInstallServicesFromInfSectionEx&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupInstallServicesFromInfSectionExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupInitializeFileLogA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupInitializeFileLogA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupInitializeFileLogW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupInitializeFileLogW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupInitializeFileLog&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupInitializeFileLogA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupTerminateFileLog&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupTerminateFileLog',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupLogFileA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupLogFileA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupLogFileW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupLogFileW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupLogFile&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupLogFileA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupRemoveFileLogEntryA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupRemoveFileLogEntryA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupRemoveFileLogEntryW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupRemoveFileLogEntryW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupRemoveFileLogEntry&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupRemoveFileLogEntryA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueryFileLogA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueryFileLogA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueryFileLogW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueryFileLogW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupQueryFileLog&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupQueryFileLogA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupOpenLog&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupOpenLog',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupLogErrorA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupLogErrorA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupLogErrorW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupLogErrorW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupLogError&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupLogErrorA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupCloseLog&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupCloseLog',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetBackupInformationA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetBackupInformationA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetBackupInformationW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetBackupInformationW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupGetBackupInformation&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupGetBackupInformationA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;{$ENDIF}<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiCreateDeviceInfoList&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiCreateDeviceInfoList',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiCreateDeviceInfoListExA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiCreateDeviceInfoListExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiCreateDeviceInfoListExW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiCreateDeviceInfoListExW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiCreateDeviceInfoListEx&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiCreateDeviceInfoListExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetDeviceInfoListClass&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetDeviceInfoListClass',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetDeviceInfoListDetailA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetDeviceInfoListDetailA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetDeviceInfoListDetailW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetDeviceInfoListDetailW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetDeviceInfoListDetail&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetDeviceInfoListDetailA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiCreateDeviceInfoA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiCreateDeviceInfoA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiCreateDeviceInfoW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiCreateDeviceInfoW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiCreateDeviceInfo&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiCreateDeviceInfoA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiOpenDeviceInfoA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiOpenDeviceInfoA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiOpenDeviceInfoW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiOpenDeviceInfoW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiOpenDeviceInfo&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiOpenDeviceInfoA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetDeviceInstanceIdA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetDeviceInstanceIdA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetDeviceInstanceIdW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetDeviceInstanceIdW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetDeviceInstanceId&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetDeviceInstanceIdA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiDeleteDeviceInfo&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiDeleteDeviceInfo',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiEnumDeviceInfo&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiEnumDeviceInfo',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiDestroyDeviceInfoList&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiDestroyDeviceInfoList',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiEnumDeviceInterfaces&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiEnumDeviceInterfaces',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiEnumInterfaceDevice&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiEnumDeviceInterfaces',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiCreateDeviceInterfaceA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiCreateDeviceInterfaceA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiCreateInterfaceDeviceA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiCreateDeviceInterfaceA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiCreateDeviceInterfaceW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiCreateDeviceInterfaceW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiCreateInterfaceDeviceW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiCreateDeviceInterfaceW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiCreateDeviceInterface&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiCreateDeviceInterfaceA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiOpenDeviceInterfaceA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiOpenDeviceInterfaceA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiOpenInterfaceDeviceA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiOpenDeviceInterfaceA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiOpenDeviceInterfaceW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiOpenDeviceInterfaceW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiOpenInterfaceDeviceW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiOpenDeviceInterfaceW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiOpenDeviceInterface&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiOpenDeviceInterfaceA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetDeviceInterfaceAlias&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetDeviceInterfaceAlias',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetInterfaceDeviceAlias&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetDeviceInterfaceAlias',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiDeleteDeviceInterfaceData&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiDeleteDeviceInterfaceData',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiDeleteInterfaceDeviceData&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiDeleteDeviceInterfaceData',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiRemoveDeviceInterface&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiRemoveDeviceInterface',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiRemoveInterfaceDevice&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiRemoveDeviceInterface',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetDeviceInterfaceDetailA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetDeviceInterfaceDetailA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetInterfaceDeviceDetailA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetDeviceInterfaceDetailA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetDeviceInterfaceDetailW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetDeviceInterfaceDetailW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetInterfaceDeviceDetailW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetDeviceInterfaceDetailW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetDeviceInterfaceDetail&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetDeviceInterfaceDetailA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiInstallDeviceInterfaces&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiInstallDeviceInterfaces',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiInstallInterfaceDevices&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiInstallDeviceInterfaces',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiRegisterDeviceInfo&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiRegisterDeviceInfo',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiBuildDriverInfoList&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiBuildDriverInfoList',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiCancelDriverInfoSearch&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiCancelDriverInfoSearch',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiEnumDriverInfoA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiEnumDriverInfoA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiEnumDriverInfoW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiEnumDriverInfoW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiEnumDriverInfo&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiEnumDriverInfoA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetSelectedDriverA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetSelectedDriverA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetSelectedDriverW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetSelectedDriverW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetSelectedDriver&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetSelectedDriverA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiSetSelectedDriverA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiSetSelectedDriverA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiSetSelectedDriverW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiSetSelectedDriverW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiSetSelectedDriver&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiSetSelectedDriverA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetDriverInfoDetailA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetDriverInfoDetailA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetDriverInfoDetailW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetDriverInfoDetailW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetDriverInfoDetail&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetDriverInfoDetailA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiDestroyDriverInfoList&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiDestroyDriverInfoList',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassDevsA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassDevsA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassDevsW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassDevsW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassDevs&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassDevsA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassDevsExA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassDevsExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassDevsExW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassDevsExW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassDevsEx&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassDevsExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetINFClassA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetINFClassA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetINFClassW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetINFClassW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetINFClass&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetINFClassA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiBuildClassInfoList&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiBuildClassInfoList',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiBuildClassInfoListExA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiBuildClassInfoListExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiBuildClassInfoListExW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiBuildClassInfoListExW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiBuildClassInfoListEx&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiBuildClassInfoListExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassDescriptionA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassDescriptionA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassDescriptionW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassDescriptionW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassDescription&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassDescriptionA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassDescriptionExA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassDescriptionExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassDescriptionExW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassDescriptionExW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassDescriptionEx&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassDescriptionExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiCallClassInstaller&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiCallClassInstaller',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiSelectDevice&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiSelectDevice',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiSelectBestCompatDrv&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiSelectBestCompatDrv',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiInstallDevice&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiInstallDevice',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiInstallDriverFiles&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiInstallDriverFiles',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiRegisterCoDeviceInstallers&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiRegisterCoDeviceInstallers',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiRemoveDevice&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiRemoveDevice',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiUnremoveDevice&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiUnremoveDevice',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiMoveDuplicateDevice&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiMoveDuplicateDevice',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiChangeState&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiChangeState',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiInstallClassA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiInstallClassA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiInstallClassW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiInstallClassW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiInstallClass&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiInstallClassA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiInstallClassExA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiInstallClassExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiInstallClassExW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiInstallClassExW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiInstallClassEx&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiInstallClassExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiOpenClassRegKey&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiOpenClassRegKey',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiOpenClassRegKeyExA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiOpenClassRegKeyExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiOpenClassRegKeyExW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiOpenClassRegKeyExW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiOpenClassRegKeyEx&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiOpenClassRegKeyExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiCreateDeviceInterfaceRegKeyA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiCreateDeviceInterfaceRegKeyA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiCreateInterfaceDeviceRegKeyA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiCreateDeviceInterfaceRegKeyA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiCreateDeviceInterfaceRegKeyW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiCreateDeviceInterfaceRegKeyW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiCreateInterfaceDeviceRegKeyW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiCreateDeviceInterfaceRegKeyW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiCreateDeviceInterfaceRegKey&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiCreateDeviceInterfaceRegKeyA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiOpenDeviceInterfaceRegKey&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiOpenDeviceInterfaceRegKey',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiOpenInterfaceDeviceRegKey&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiOpenDeviceInterfaceRegKey',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiDeleteDeviceInterfaceRegKey&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiDeleteDeviceInterfaceRegKey',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiDeleteInterfaceDeviceRegKey&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiDeleteDeviceInterfaceRegKey',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiCreateDevRegKeyA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiCreateDevRegKeyA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiCreateDevRegKeyW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiCreateDevRegKeyW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiCreateDevRegKey&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiCreateDevRegKeyA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiOpenDevRegKey&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiOpenDevRegKey',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiDeleteDevRegKey&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiDeleteDevRegKey',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetHwProfileList&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetHwProfileList',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetHwProfileListExA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetHwProfileListExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetHwProfileListExW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetHwProfileListExW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetHwProfileListEx&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetHwProfileListExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetDeviceRegistryPropertyA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetDeviceRegistryPropertyA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetDeviceRegistryPropertyW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetDeviceRegistryPropertyW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetDeviceRegistryProperty&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetDeviceRegistryPropertyA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassRegistryPropertyA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassRegistryPropertyA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassRegistryPropertyW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassRegistryPropertyW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassRegistryProperty&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassRegistryPropertyA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;{$ENDIF}<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiSetDeviceRegistryPropertyA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiSetDeviceRegistryPropertyA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiSetDeviceRegistryPropertyW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiSetDeviceRegistryPropertyW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiSetDeviceRegistryProperty&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiSetDeviceRegistryPropertyA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiSetClassRegistryPropertyA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiSetClassRegistryPropertyA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiSetClassRegistryPropertyW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiSetClassRegistryPropertyW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiSetClassRegistryProperty&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiSetClassRegistryPropertyA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;{$ENDIF}<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetDeviceInstallParamsA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetDeviceInstallParamsA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetDeviceInstallParamsW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetDeviceInstallParamsW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetDeviceInstallParams&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetDeviceInstallParamsA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassInstallParamsA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassInstallParamsA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassInstallParamsW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassInstallParamsW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassInstallParams&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassInstallParamsA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiSetDeviceInstallParamsA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiSetDeviceInstallParamsA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiSetDeviceInstallParamsW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiSetDeviceInstallParamsW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiSetDeviceInstallParams&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiSetDeviceInstallParamsA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiSetClassInstallParamsA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiSetClassInstallParamsA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiSetClassInstallParamsW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiSetClassInstallParamsW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiSetClassInstallParams&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiSetClassInstallParamsA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetDriverInstallParamsA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetDriverInstallParamsA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetDriverInstallParamsW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetDriverInstallParamsW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetDriverInstallParams&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetDriverInstallParamsA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiSetDriverInstallParamsA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiSetDriverInstallParamsA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiSetDriverInstallParamsW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiSetDriverInstallParamsW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiSetDriverInstallParams&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiSetDriverInstallParamsA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiLoadClassIcon&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiLoadClassIcon',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiDrawMiniIcon&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiDrawMiniIcon',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassBitmapIndex&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassBitmapIndex',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassImageList&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassImageList',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassImageListExA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassImageListExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassImageListExW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassImageListExW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassImageListEx&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassImageListExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassImageIndex&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassImageIndex',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiDestroyClassImageList&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiDestroyClassImageList',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassDevPropertySheetsA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassDevPropertySheetsA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassDevPropertySheetsW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassDevPropertySheetsW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetClassDevPropertySheets&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetClassDevPropertySheetsA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiAskForOEMDisk&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiAskForOEMDisk',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiSelectOEMDrv&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiSelectOEMDrv',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiClassNameFromGuidA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiClassNameFromGuidA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiClassNameFromGuidW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiClassNameFromGuidW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiClassNameFromGuid&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiClassNameFromGuidA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiClassNameFromGuidExA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiClassNameFromGuidExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiClassNameFromGuidExW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiClassNameFromGuidExW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiClassNameFromGuidEx&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiClassNameFromGuidExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiClassGuidsFromNameA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiClassGuidsFromNameA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiClassGuidsFromNameW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiClassGuidsFromNameW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiClassGuidsFromName&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiClassGuidsFromNameA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiClassGuidsFromNameExA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiClassGuidsFromNameExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiClassGuidsFromNameExW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiClassGuidsFromNameExW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiClassGuidsFromNameEx&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiClassGuidsFromNameExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetHwProfileFriendlyNameA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetHwProfileFriendlyNameA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetHwProfileFriendlyNameW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetHwProfileFriendlyNameW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetHwProfileFriendlyName&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetHwProfileFriendlyNameA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetHwProfileFriendlyNameExA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetHwProfileFriendlyNameExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetHwProfileFriendlyNameExW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetHwProfileFriendlyNameExW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetHwProfileFriendlyNameEx&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetHwProfileFriendlyNameExA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetWizardPage&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetWizardPage',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetSelectedDevice&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetSelectedDevice',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiSetSelectedDevice&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiSetSelectedDevice',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetActualSectionToInstallA&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetActualSectionToInstallA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetActualSectionToInstallW&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetActualSectionToInstallW',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;@SetupDiGetActualSectionToInstall&nbsp;:=&nbsp;GetModuleSymbolEx(SetupApiLib,&nbsp;'SetupDiGetActualSectionToInstallA',&nbsp;Result);<br>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;not&nbsp;Result&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UnloadSetupApi;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;{$ELSE}<br>&nbsp;&nbsp;Result&nbsp;:=&nbsp;True;<br>&nbsp;&nbsp;{$ENDIF}<br>end;<br><br>procedure&nbsp;UnloadSetupApi;<br>begin<br>&nbsp;&nbsp;{$IFDEF&nbsp;SETUPAPI_LINKONREQUEST}<br>&nbsp;&nbsp;Dec(SetupApiLoadCount);<br>&nbsp;&nbsp;if&nbsp;SetupApiLoadCount&nbsp;&gt;&nbsp;0&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;Exit;<br>&nbsp;&nbsp;UnloadModule(SetupApiLib);<br>&nbsp;&nbsp;SetupGetInfInformationA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetInfInformationW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetInfInformation&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueryInfFileInformationA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueryInfFileInformationW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueryInfFileInformation&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;SetupQueryInfOriginalFileInformationA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueryInfOriginalFileInformationW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueryInfOriginalFileInformation&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;{$ENDIF}<br>&nbsp;&nbsp;SetupQueryInfVersionInformationA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueryInfVersionInformationW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueryInfVersionInformation&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetInfFileListA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetInfFileListW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetInfFileList&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupOpenInfFileA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupOpenInfFileW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupOpenInfFile&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupOpenMasterInf&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupOpenAppendInfFileA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupOpenAppendInfFileW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupOpenAppendInfFile&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupCloseInfFile&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupFindFirstLineA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupFindFirstLineW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupFindFirstLine&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupFindNextLine&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupFindNextMatchLineA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupFindNextMatchLineW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupFindNextMatchLine&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetLineByIndexA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetLineByIndexW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetLineByIndex&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetLineCountA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetLineCountW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetLineCount&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetLineTextA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetLineTextW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetLineText&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetFieldCount&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetStringFieldA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetStringFieldW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetStringField&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetIntField&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetMultiSzFieldA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetMultiSzFieldW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetMultiSzField&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetBinaryField&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetFileCompressionInfoA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetFileCompressionInfoW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetFileCompressionInfo&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDecompressOrCopyFileA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDecompressOrCopyFileW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDecompressOrCopyFile&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetSourceFileLocationA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetSourceFileLocationW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetSourceFileLocation&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetSourceFileSizeA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetSourceFileSizeW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetSourceFileSize&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetTargetPathA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetTargetPathW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetTargetPath&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupSetSourceListA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupSetSourceListW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupSetSourceList&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupCancelTemporarySourceList&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupAddToSourceListA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupAddToSourceListW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupAddToSourceList&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupRemoveFromSourceListA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupRemoveFromSourceListW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupRemoveFromSourceList&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQuerySourceListA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQuerySourceListW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQuerySourceList&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupFreeSourceListA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupFreeSourceListW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupFreeSourceList&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupPromptForDiskA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupPromptForDiskW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupPromptForDisk&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupCopyErrorA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupCopyErrorW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupCopyError&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupRenameErrorA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupRenameErrorW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupRenameError&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDeleteErrorA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDeleteErrorW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDeleteError&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;SetupBackupErrorA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupBackupErrorW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupBackupError&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;{$ENDIF}<br>&nbsp;&nbsp;SetupSetDirectoryIdA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupSetDirectoryIdW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupSetDirectoryId&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupSetDirectoryIdExA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupSetDirectoryIdExW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupSetDirectoryIdEx&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetSourceInfoA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetSourceInfoW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetSourceInfo&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupInstallFileA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupInstallFileW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupInstallFile&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupInstallFileExA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupInstallFileExW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupInstallFileEx&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupOpenFileQueue&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupCloseFileQueue&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;SetupSetFileQueueAlternatePlatformA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupSetFileQueueAlternatePlatformW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupSetFileQueueAlternatePlatform&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;{$ENDIF}<br>&nbsp;&nbsp;SetupSetPlatformPathOverrideA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupSetPlatformPathOverrideW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupSetPlatformPathOverride&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueueCopyA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueueCopyW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueueCopy&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;SetupQueueCopyIndirectA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueueCopyIndirectW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueueCopyIndirect&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;{$ENDIF}<br>&nbsp;&nbsp;SetupQueueDefaultCopyA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueueDefaultCopyW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueueDefaultCopy&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueueCopySectionA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueueCopySectionW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueueCopySection&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueueDeleteA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueueDeleteW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueueDelete&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueueDeleteSectionA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueueDeleteSectionW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueueDeleteSection&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueueRenameA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueueRenameW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueueRename&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueueRenameSectionA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueueRenameSectionW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueueRenameSection&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupCommitFileQueueA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupCommitFileQueueW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupCommitFileQueue&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupScanFileQueueA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupScanFileQueueW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupScanFileQueue&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupCopyOEMInfA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupCopyOEMInfW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupCopyOEMInf&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupCreateDiskSpaceListA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupCreateDiskSpaceListW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupCreateDiskSpaceList&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDuplicateDiskSpaceListA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDuplicateDiskSpaceListW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDuplicateDiskSpaceList&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDestroyDiskSpaceList&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueryDrivesInDiskSpaceListA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueryDrivesInDiskSpaceListW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueryDrivesInDiskSpaceList&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQuerySpaceRequiredOnDriveA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQuerySpaceRequiredOnDriveW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQuerySpaceRequiredOnDrive&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupAdjustDiskSpaceListA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupAdjustDiskSpaceListW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupAdjustDiskSpaceList&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupAddToDiskSpaceListA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupAddToDiskSpaceListW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupAddToDiskSpaceList&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupAddSectionToDiskSpaceListA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupAddSectionToDiskSpaceListW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupAddSectionToDiskSpaceList&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupAddInstallSectionToDiskSpaceListA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupAddInstallSectionToDiskSpaceListW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupAddInstallSectionToDiskSpaceList&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupRemoveFromDiskSpaceListA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupRemoveFromDiskSpaceListW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupRemoveFromDiskSpaceList&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupRemoveSectionFromDiskSpaceListA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupRemoveSectionFromDiskSpaceListW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupRemoveSectionFromDiskSpaceList&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupRemoveInstallSectionFromDiskSpaceListA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupRemoveInstallSectionFromDiskSpaceListW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupRemoveInstallSectionFromDiskSpaceList&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupIterateCabinetA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupIterateCabinetW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupIterateCabinet&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupPromptReboot&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupInitDefaultQueueCallback&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupInitDefaultQueueCallbackEx&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupTermDefaultQueueCallback&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDefaultQueueCallbackA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDefaultQueueCallbackW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDefaultQueueCallback&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupInstallFromInfSectionA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupInstallFromInfSectionW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupInstallFromInfSection&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupInstallFilesFromInfSectionA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupInstallFilesFromInfSectionW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupInstallFilesFromInfSection&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupInstallServicesFromInfSectionA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupInstallServicesFromInfSectionW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupInstallServicesFromInfSection&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupInstallServicesFromInfSectionExA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupInstallServicesFromInfSectionExW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupInstallServicesFromInfSectionEx&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupInitializeFileLogA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupInitializeFileLogW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupInitializeFileLog&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupTerminateFileLog&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupLogFileA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupLogFileW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupLogFile&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupRemoveFileLogEntryA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupRemoveFileLogEntryW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupRemoveFileLogEntry&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueryFileLogA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueryFileLogW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupQueryFileLog&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupOpenLog&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupLogErrorA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupLogErrorW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupLogError&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupCloseLog&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;SetupGetBackupInformationA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetBackupInformationW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupGetBackupInformation&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;{$ENDIF}<br>&nbsp;&nbsp;SetupDiCreateDeviceInfoList&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiCreateDeviceInfoListExA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiCreateDeviceInfoListExW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiCreateDeviceInfoListEx&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetDeviceInfoListClass&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetDeviceInfoListDetailA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetDeviceInfoListDetailW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetDeviceInfoListDetail&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiCreateDeviceInfoA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiCreateDeviceInfoW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiCreateDeviceInfo&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiOpenDeviceInfoA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiOpenDeviceInfoW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiOpenDeviceInfo&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetDeviceInstanceIdA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetDeviceInstanceIdW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetDeviceInstanceId&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiDeleteDeviceInfo&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiEnumDeviceInfo&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiDestroyDeviceInfoList&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiEnumDeviceInterfaces&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiEnumInterfaceDevice&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiCreateDeviceInterfaceA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiCreateInterfaceDeviceA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiCreateDeviceInterfaceW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiCreateInterfaceDeviceW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiCreateDeviceInterface&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiOpenDeviceInterfaceA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiOpenInterfaceDeviceA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiOpenDeviceInterfaceW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiOpenInterfaceDeviceW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiOpenDeviceInterface&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetDeviceInterfaceAlias&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetInterfaceDeviceAlias&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiDeleteDeviceInterfaceData&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiDeleteInterfaceDeviceData&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiRemoveDeviceInterface&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiRemoveInterfaceDevice&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetDeviceInterfaceDetailA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetInterfaceDeviceDetailA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetDeviceInterfaceDetailW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetInterfaceDeviceDetailW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetDeviceInterfaceDetail&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiInstallDeviceInterfaces&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiInstallInterfaceDevices&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiRegisterDeviceInfo&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiBuildDriverInfoList&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiCancelDriverInfoSearch&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiEnumDriverInfoA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiEnumDriverInfoW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiEnumDriverInfo&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetSelectedDriverA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetSelectedDriverW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetSelectedDriver&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiSetSelectedDriverA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiSetSelectedDriverW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiSetSelectedDriver&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetDriverInfoDetailA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetDriverInfoDetailW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetDriverInfoDetail&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiDestroyDriverInfoList&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetClassDevsA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetClassDevsW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetClassDevs&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetClassDevsExA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetClassDevsExW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetClassDevsEx&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetINFClassA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetINFClassW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetINFClass&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiBuildClassInfoList&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiBuildClassInfoListExA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiBuildClassInfoListExW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiBuildClassInfoListEx&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetClassDescriptionA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetClassDescriptionW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetClassDescription&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetClassDescriptionExA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetClassDescriptionExW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetClassDescriptionEx&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiCallClassInstaller&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiSelectDevice&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiSelectBestCompatDrv&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiInstallDevice&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiInstallDriverFiles&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiRegisterCoDeviceInstallers&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiRemoveDevice&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiUnremoveDevice&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiMoveDuplicateDevice&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiChangeState&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiInstallClassA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiInstallClassW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiInstallClass&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiInstallClassExA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiInstallClassExW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiInstallClassEx&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiOpenClassRegKey&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiOpenClassRegKeyExA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiOpenClassRegKeyExW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiOpenClassRegKeyEx&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiCreateDeviceInterfaceRegKeyA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiCreateInterfaceDeviceRegKeyA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiCreateDeviceInterfaceRegKeyW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiCreateInterfaceDeviceRegKeyW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiCreateDeviceInterfaceRegKey&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiOpenDeviceInterfaceRegKey&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiOpenInterfaceDeviceRegKey&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiDeleteDeviceInterfaceRegKey&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiDeleteInterfaceDeviceRegKey&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiCreateDevRegKeyA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiCreateDevRegKeyW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiCreateDevRegKey&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiOpenDevRegKey&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiDeleteDevRegKey&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetHwProfileList&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetHwProfileListExA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetHwProfileListExW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetHwProfileListEx&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetDeviceRegistryPropertyA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetDeviceRegistryPropertyW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetDeviceRegistryProperty&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;SetupDiGetClassRegistryPropertyA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetClassRegistryPropertyW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetClassRegistryProperty&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;{$ENDIF}<br>&nbsp;&nbsp;SetupDiSetDeviceRegistryPropertyA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiSetDeviceRegistryPropertyW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiSetDeviceRegistryProperty&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;{$IFDEF&nbsp;WIN2000}<br>&nbsp;&nbsp;SetupDiSetClassRegistryPropertyA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiSetClassRegistryPropertyW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiSetClassRegistryProperty&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;{$ENDIF}<br>&nbsp;&nbsp;SetupDiGetDeviceInstallParamsA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetDeviceInstallParamsW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetDeviceInstallParams&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetClassInstallParamsA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetClassInstallParamsW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetClassInstallParams&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiSetDeviceInstallParamsA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiSetDeviceInstallParamsW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiSetDeviceInstallParams&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiSetClassInstallParamsA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiSetClassInstallParamsW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiSetClassInstallParams&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetDriverInstallParamsA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetDriverInstallParamsW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetDriverInstallParams&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiSetDriverInstallParamsA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiSetDriverInstallParamsW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiSetDriverInstallParams&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiLoadClassIcon&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiDrawMiniIcon&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetClassBitmapIndex&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetClassImageList&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetClassImageListExA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetClassImageListExW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetClassImageListEx&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetClassImageIndex&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiDestroyClassImageList&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetClassDevPropertySheetsA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetClassDevPropertySheetsW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetClassDevPropertySheets&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiAskForOEMDisk&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiSelectOEMDrv&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiClassNameFromGuidA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiClassNameFromGuidW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiClassNameFromGuid&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiClassNameFromGuidExA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiClassNameFromGuidExW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiClassNameFromGuidEx&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiClassGuidsFromNameA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiClassGuidsFromNameW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiClassGuidsFromName&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiClassGuidsFromNameExA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiClassGuidsFromNameExW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiClassGuidsFromNameEx&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetHwProfileFriendlyNameA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetHwProfileFriendlyNameW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetHwProfileFriendlyName&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetHwProfileFriendlyNameExA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetHwProfileFriendlyNameExW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetHwProfileFriendlyNameEx&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetWizardPage&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetSelectedDevice&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiSetSelectedDevice&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetActualSectionToInstallA&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetActualSectionToInstallW&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;SetupDiGetActualSectionToInstall&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;{$ENDIF}<br>end;<br><br>{$IFNDEF&nbsp;SETUPAPI_LINKONREQUEST}<br><br>function&nbsp;SetupGetInfInformationA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetInfInformationA';<br>function&nbsp;SetupGetInfInformationW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetInfInformationW';<br>function&nbsp;SetupGetInfInformation;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetInfInformationA';<br>function&nbsp;SetupQueryInfFileInformationA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueryInfFileInformationA';<br>function&nbsp;SetupQueryInfFileInformationW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueryInfFileInformationW';<br>function&nbsp;SetupQueryInfFileInformation;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueryInfFileInformationA';<br>{$IFDEF&nbsp;WIN2000}<br>function&nbsp;SetupQueryInfOriginalFileInformationA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueryInfOriginalFileInformationA';<br>function&nbsp;SetupQueryInfOriginalFileInformationW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueryInfOriginalFileInformationW';<br>function&nbsp;SetupQueryInfOriginalFileInformation;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueryInfOriginalFileInformationA';<br>{$ENDIF}<br>function&nbsp;SetupQueryInfVersionInformationA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueryInfVersionInformationA';<br>function&nbsp;SetupQueryInfVersionInformationW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueryInfVersionInformationW';<br>function&nbsp;SetupQueryInfVersionInformation;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueryInfVersionInformationA';<br>function&nbsp;SetupGetInfFileListA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetInfFileListA';<br>function&nbsp;SetupGetInfFileListW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetInfFileListW';<br>function&nbsp;SetupGetInfFileList;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetInfFileListA';<br>function&nbsp;SetupOpenInfFileA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupOpenInfFileA';<br>function&nbsp;SetupOpenInfFileW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupOpenInfFileW';<br>function&nbsp;SetupOpenInfFile;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupOpenInfFileA';<br>function&nbsp;SetupOpenMasterInf;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupOpenMasterInf';<br>function&nbsp;SetupOpenAppendInfFileA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupOpenAppendInfFileA';<br>function&nbsp;SetupOpenAppendInfFileW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupOpenAppendInfFileW';<br>function&nbsp;SetupOpenAppendInfFile;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupOpenAppendInfFileA';<br>procedure&nbsp;SetupCloseInfFile;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupCloseInfFile';<br>function&nbsp;SetupFindFirstLineA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupFindFirstLineA';<br>function&nbsp;SetupFindFirstLineW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupFindFirstLineW';<br>function&nbsp;SetupFindFirstLine;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupFindFirstLineA';<br>function&nbsp;SetupFindNextLine;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupFindNextLine';<br>function&nbsp;SetupFindNextMatchLineA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupFindNextMatchLineA';<br>function&nbsp;SetupFindNextMatchLineW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupFindNextMatchLineW';<br>function&nbsp;SetupFindNextMatchLine;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupFindNextMatchLineA';<br>function&nbsp;SetupGetLineByIndexA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetLineByIndexA';<br>function&nbsp;SetupGetLineByIndexW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetLineByIndexW';<br>function&nbsp;SetupGetLineByIndex;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetLineByIndexA';<br>function&nbsp;SetupGetLineCountA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetLineCountA';<br>function&nbsp;SetupGetLineCountW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetLineCountW';<br>function&nbsp;SetupGetLineCount;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetLineCountA';<br>function&nbsp;SetupGetLineTextA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetLineTextA';<br>function&nbsp;SetupGetLineTextW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetLineTextW';<br>function&nbsp;SetupGetLineText;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetLineTextA';<br>function&nbsp;SetupGetFieldCount;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetFieldCount';<br>function&nbsp;SetupGetStringFieldA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetStringFieldA';<br>function&nbsp;SetupGetStringFieldW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetStringFieldW';<br>function&nbsp;SetupGetStringField;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetStringFieldA';<br>function&nbsp;SetupGetIntField;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetIntField';<br>function&nbsp;SetupGetMultiSzFieldA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetMultiSzFieldA';<br>function&nbsp;SetupGetMultiSzFieldW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetMultiSzFieldW';<br>function&nbsp;SetupGetMultiSzField;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetMultiSzFieldA';<br>function&nbsp;SetupGetBinaryField;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetBinaryField';<br>function&nbsp;SetupGetFileCompressionInfoA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetFileCompressionInfoA';<br>function&nbsp;SetupGetFileCompressionInfoW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetFileCompressionInfoW';<br>function&nbsp;SetupGetFileCompressionInfo;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetFileCompressionInfoA';<br>function&nbsp;SetupDecompressOrCopyFileA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDecompressOrCopyFileA';<br>function&nbsp;SetupDecompressOrCopyFileW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDecompressOrCopyFileW';<br>function&nbsp;SetupDecompressOrCopyFile;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDecompressOrCopyFileA';<br>function&nbsp;SetupGetSourceFileLocationA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetSourceFileLocationA';<br>function&nbsp;SetupGetSourceFileLocationW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetSourceFileLocationW';<br>function&nbsp;SetupGetSourceFileLocation;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetSourceFileLocationA';<br>function&nbsp;SetupGetSourceFileSizeA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetSourceFileSizeA';<br>function&nbsp;SetupGetSourceFileSizeW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetSourceFileSizeW';<br>function&nbsp;SetupGetSourceFileSize;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetSourceFileSizeA';<br>function&nbsp;SetupGetTargetPathA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetTargetPathA';<br>function&nbsp;SetupGetTargetPathW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetTargetPathW';<br>function&nbsp;SetupGetTargetPath;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetTargetPathA';<br>function&nbsp;SetupSetSourceListA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupSetSourceListA';<br>function&nbsp;SetupSetSourceListW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupSetSourceListW';<br>function&nbsp;SetupSetSourceList;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupSetSourceListA';<br>function&nbsp;SetupCancelTemporarySourceList;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupCancelTemporarySourceList';<br>function&nbsp;SetupAddToSourceListA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupAddToSourceListA';<br>function&nbsp;SetupAddToSourceListW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupAddToSourceListW';<br>function&nbsp;SetupAddToSourceList;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupAddToSourceListA';<br>function&nbsp;SetupRemoveFromSourceListA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupRemoveFromSourceListA';<br>function&nbsp;SetupRemoveFromSourceListW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupRemoveFromSourceListW';<br>function&nbsp;SetupRemoveFromSourceList;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupRemoveFromSourceListA';<br>function&nbsp;SetupQuerySourceListA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQuerySourceListA';<br>function&nbsp;SetupQuerySourceListW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQuerySourceListW';<br>function&nbsp;SetupQuerySourceList;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQuerySourceListA';<br>function&nbsp;SetupFreeSourceListA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupFreeSourceListA';<br>function&nbsp;SetupFreeSourceListW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupFreeSourceListW';<br>function&nbsp;SetupFreeSourceList;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupFreeSourceListA';<br>function&nbsp;SetupPromptForDiskA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupPromptForDiskA';<br>function&nbsp;SetupPromptForDiskW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupPromptForDiskW';<br>function&nbsp;SetupPromptForDisk;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupPromptForDiskA';<br>function&nbsp;SetupCopyErrorA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupCopyErrorA';<br>function&nbsp;SetupCopyErrorW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupCopyErrorW';<br>function&nbsp;SetupCopyError;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupCopyErrorA';<br>function&nbsp;SetupRenameErrorA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupRenameErrorA';<br>function&nbsp;SetupRenameErrorW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupRenameErrorW';<br>function&nbsp;SetupRenameError;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupRenameErrorA';<br>function&nbsp;SetupDeleteErrorA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDeleteErrorA';<br>function&nbsp;SetupDeleteErrorW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDeleteErrorW';<br>function&nbsp;SetupDeleteError;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDeleteErrorA';<br>{$IFDEF&nbsp;WIN2000}<br>function&nbsp;SetupBackupErrorA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupBackupErrorA';<br>function&nbsp;SetupBackupErrorW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupBackupErrorW';<br>function&nbsp;SetupBackupError;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupBackupErrorA';<br>{$ENDIF}<br>function&nbsp;SetupSetDirectoryIdA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupSetDirectoryIdA';<br>function&nbsp;SetupSetDirectoryIdW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupSetDirectoryIdW';<br>function&nbsp;SetupSetDirectoryId;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupSetDirectoryIdA';<br>function&nbsp;SetupSetDirectoryIdExA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupSetDirectoryIdExA';<br>function&nbsp;SetupSetDirectoryIdExW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupSetDirectoryIdExW';<br>function&nbsp;SetupSetDirectoryIdEx;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupSetDirectoryIdExA';<br>function&nbsp;SetupGetSourceInfoA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetSourceInfoA';<br>function&nbsp;SetupGetSourceInfoW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetSourceInfoW';<br>function&nbsp;SetupGetSourceInfo;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetSourceInfoA';<br>function&nbsp;SetupInstallFileA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupInstallFileA';<br>function&nbsp;SetupInstallFileW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupInstallFileW';<br>function&nbsp;SetupInstallFile;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupInstallFileA';<br>function&nbsp;SetupInstallFileExA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupInstallFileExA';<br>function&nbsp;SetupInstallFileExW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupInstallFileExW';<br>function&nbsp;SetupInstallFileEx;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupInstallFileExA';<br>function&nbsp;SetupOpenFileQueue;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupOpenFileQueue';<br>function&nbsp;SetupCloseFileQueue;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupCloseFileQueue';<br>{$IFDEF&nbsp;WIN2000}<br>function&nbsp;SetupSetFileQueueAlternatePlatformA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupSetFileQueueAlternatePlatformA';<br>function&nbsp;SetupSetFileQueueAlternatePlatformW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupSetFileQueueAlternatePlatformW';<br>function&nbsp;SetupSetFileQueueAlternatePlatform;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupSetFileQueueAlternatePlatformA';<br>{$ENDIF}<br>function&nbsp;SetupSetPlatformPathOverrideA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupSetPlatformPathOverrideA';<br>function&nbsp;SetupSetPlatformPathOverrideW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupSetPlatformPathOverrideW';<br>function&nbsp;SetupSetPlatformPathOverride;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupSetPlatformPathOverrideA';<br>function&nbsp;SetupQueueCopyA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueueCopyA';<br>function&nbsp;SetupQueueCopyW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueueCopyW';<br>function&nbsp;SetupQueueCopy;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueueCopyA';<br>{$IFDEF&nbsp;WIN2000}<br>function&nbsp;SetupQueueCopyIndirectA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueueCopyIndirectA';<br>function&nbsp;SetupQueueCopyIndirectW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueueCopyIndirectW';<br>function&nbsp;SetupQueueCopyIndirect;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueueCopyIndirectA';<br>{$ENDIF}<br>function&nbsp;SetupQueueDefaultCopyA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueueDefaultCopyA';<br>function&nbsp;SetupQueueDefaultCopyW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueueDefaultCopyW';<br>function&nbsp;SetupQueueDefaultCopy;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueueDefaultCopyA';<br>function&nbsp;SetupQueueCopySectionA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueueCopySectionA';<br>function&nbsp;SetupQueueCopySectionW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueueCopySectionW';<br>function&nbsp;SetupQueueCopySection;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueueCopySectionA';<br>function&nbsp;SetupQueueDeleteA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueueDeleteA';<br>function&nbsp;SetupQueueDeleteW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueueDeleteW';<br>function&nbsp;SetupQueueDelete;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueueDeleteA';<br>function&nbsp;SetupQueueDeleteSectionA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueueDeleteSectionA';<br>function&nbsp;SetupQueueDeleteSectionW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueueDeleteSectionW';<br>function&nbsp;SetupQueueDeleteSection;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueueDeleteSectionA';<br>function&nbsp;SetupQueueRenameA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueueRenameA';<br>function&nbsp;SetupQueueRenameW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueueRenameW';<br>function&nbsp;SetupQueueRename;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueueRenameA';<br>function&nbsp;SetupQueueRenameSectionA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueueRenameSectionA';<br>function&nbsp;SetupQueueRenameSectionW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueueRenameSectionW';<br>function&nbsp;SetupQueueRenameSection;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueueRenameSectionA';<br>function&nbsp;SetupCommitFileQueueA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupCommitFileQueueA';<br>function&nbsp;SetupCommitFileQueueW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupCommitFileQueueW';<br>function&nbsp;SetupCommitFileQueue;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupCommitFileQueueA';<br>function&nbsp;SetupScanFileQueueA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupScanFileQueueA';<br>function&nbsp;SetupScanFileQueueW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupScanFileQueueW';<br>function&nbsp;SetupScanFileQueue;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupScanFileQueueA';<br>function&nbsp;SetupCopyOEMInfA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupCopyOEMInfA';<br>function&nbsp;SetupCopyOEMInfW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupCopyOEMInfW';<br>function&nbsp;SetupCopyOEMInf;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupCopyOEMInfA';<br>function&nbsp;SetupCreateDiskSpaceListA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupCreateDiskSpaceListA';<br>function&nbsp;SetupCreateDiskSpaceListW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupCreateDiskSpaceListW';<br>function&nbsp;SetupCreateDiskSpaceList;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupCreateDiskSpaceListA';<br>function&nbsp;SetupDuplicateDiskSpaceListA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDuplicateDiskSpaceListA';<br>function&nbsp;SetupDuplicateDiskSpaceListW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDuplicateDiskSpaceListW';<br>function&nbsp;SetupDuplicateDiskSpaceList;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDuplicateDiskSpaceListA';<br>function&nbsp;SetupDestroyDiskSpaceList;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDestroyDiskSpaceList';<br>function&nbsp;SetupQueryDrivesInDiskSpaceListA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueryDrivesInDiskSpaceListA';<br>function&nbsp;SetupQueryDrivesInDiskSpaceListW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueryDrivesInDiskSpaceListW';<br>function&nbsp;SetupQueryDrivesInDiskSpaceList;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueryDrivesInDiskSpaceListA';<br>function&nbsp;SetupQuerySpaceRequiredOnDriveA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQuerySpaceRequiredOnDriveA';<br>function&nbsp;SetupQuerySpaceRequiredOnDriveW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQuerySpaceRequiredOnDriveW';<br>function&nbsp;SetupQuerySpaceRequiredOnDrive;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQuerySpaceRequiredOnDriveA';<br>function&nbsp;SetupAdjustDiskSpaceListA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupAdjustDiskSpaceListA';<br>function&nbsp;SetupAdjustDiskSpaceListW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupAdjustDiskSpaceListW';<br>function&nbsp;SetupAdjustDiskSpaceList;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupAdjustDiskSpaceListA';<br>function&nbsp;SetupAddToDiskSpaceListA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupAddToDiskSpaceListA';<br>function&nbsp;SetupAddToDiskSpaceListW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupAddToDiskSpaceListW';<br>function&nbsp;SetupAddToDiskSpaceList;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupAddToDiskSpaceListA';<br>function&nbsp;SetupAddSectionToDiskSpaceListA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupAddSectionToDiskSpaceListA';<br>function&nbsp;SetupAddSectionToDiskSpaceListW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupAddSectionToDiskSpaceListW';<br>function&nbsp;SetupAddSectionToDiskSpaceList;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupAddSectionToDiskSpaceListA';<br>function&nbsp;SetupAddInstallSectionToDiskSpaceListA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupAddInstallSectionToDiskSpaceListA';<br>function&nbsp;SetupAddInstallSectionToDiskSpaceListW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupAddInstallSectionToDiskSpaceListW';<br>function&nbsp;SetupAddInstallSectionToDiskSpaceList;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupAddInstallSectionToDiskSpaceListA';<br>function&nbsp;SetupRemoveFromDiskSpaceListA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupRemoveFromDiskSpaceListA';<br>function&nbsp;SetupRemoveFromDiskSpaceListW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupRemoveFromDiskSpaceListW';<br>function&nbsp;SetupRemoveFromDiskSpaceList;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupRemoveFromDiskSpaceListA';<br>function&nbsp;SetupRemoveSectionFromDiskSpaceListA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupRemoveSectionFromDiskSpaceListA';<br>function&nbsp;SetupRemoveSectionFromDiskSpaceListW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupRemoveSectionFromDiskSpaceListW';<br>function&nbsp;SetupRemoveSectionFromDiskSpaceList;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupRemoveSectionFromDiskSpaceListA';<br>function&nbsp;SetupRemoveInstallSectionFromDiskSpaceListA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupRemoveInstallSectionFromDiskSpaceListA';<br>function&nbsp;SetupRemoveInstallSectionFromDiskSpaceListW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupRemoveInstallSectionFromDiskSpaceListW';<br>function&nbsp;SetupRemoveInstallSectionFromDiskSpaceList;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupRemoveInstallSectionFromDiskSpaceListA';<br>function&nbsp;SetupIterateCabinetA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupIterateCabinetA';<br>function&nbsp;SetupIterateCabinetW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupIterateCabinetW';<br>function&nbsp;SetupIterateCabinet;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupIterateCabinetA';<br>function&nbsp;SetupPromptReboot;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupPromptReboot';<br>function&nbsp;SetupInitDefaultQueueCallback;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupInitDefaultQueueCallback';<br>function&nbsp;SetupInitDefaultQueueCallbackEx;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupInitDefaultQueueCallbackEx';<br>procedure&nbsp;SetupTermDefaultQueueCallback;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupTermDefaultQueueCallback';<br>function&nbsp;SetupDefaultQueueCallbackA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDefaultQueueCallbackA';<br>function&nbsp;SetupDefaultQueueCallbackW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDefaultQueueCallbackW';<br>function&nbsp;SetupDefaultQueueCallback;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDefaultQueueCallbackA';<br>function&nbsp;SetupInstallFromInfSectionA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupInstallFromInfSectionA';<br>function&nbsp;SetupInstallFromInfSectionW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupInstallFromInfSectionW';<br>function&nbsp;SetupInstallFromInfSection;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupInstallFromInfSectionA';<br>function&nbsp;SetupInstallFilesFromInfSectionA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupInstallFilesFromInfSectionA';<br>function&nbsp;SetupInstallFilesFromInfSectionW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupInstallFilesFromInfSectionW';<br>function&nbsp;SetupInstallFilesFromInfSection;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupInstallFilesFromInfSectionA';<br>function&nbsp;SetupInstallServicesFromInfSectionA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupInstallServicesFromInfSectionA';<br>function&nbsp;SetupInstallServicesFromInfSectionW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupInstallServicesFromInfSectionW';<br>function&nbsp;SetupInstallServicesFromInfSection;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupInstallServicesFromInfSectionA';<br>function&nbsp;SetupInstallServicesFromInfSectionExA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupInstallServicesFromInfSectionExA';<br>function&nbsp;SetupInstallServicesFromInfSectionExW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupInstallServicesFromInfSectionExW';<br>function&nbsp;SetupInstallServicesFromInfSectionEx;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupInstallServicesFromInfSectionExA';<br>function&nbsp;SetupInitializeFileLogA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupInitializeFileLogA';<br>function&nbsp;SetupInitializeFileLogW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupInitializeFileLogW';<br>function&nbsp;SetupInitializeFileLog;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupInitializeFileLogA';<br>function&nbsp;SetupTerminateFileLog;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupTerminateFileLog';<br>function&nbsp;SetupLogFileA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupLogFileA';<br>function&nbsp;SetupLogFileW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupLogFileW';<br>function&nbsp;SetupLogFile;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupLogFileA';<br>function&nbsp;SetupRemoveFileLogEntryA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupRemoveFileLogEntryA';<br>function&nbsp;SetupRemoveFileLogEntryW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupRemoveFileLogEntryW';<br>function&nbsp;SetupRemoveFileLogEntry;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupRemoveFileLogEntryA';<br>function&nbsp;SetupQueryFileLogA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueryFileLogA';<br>function&nbsp;SetupQueryFileLogW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueryFileLogW';<br>function&nbsp;SetupQueryFileLog;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupQueryFileLogA';<br>function&nbsp;SetupOpenLog;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupOpenLog';<br>function&nbsp;SetupLogErrorA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupLogErrorA';<br>function&nbsp;SetupLogErrorW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupLogErrorW';<br>function&nbsp;SetupLogError;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupLogErrorA';<br>procedure&nbsp;SetupCloseLog;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupCloseLog';<br>{$IFDEF&nbsp;WIN2000}<br>function&nbsp;SetupGetBackupInformationA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetBackupInformationA';<br>function&nbsp;SetupGetBackupInformationW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetBackupInformationW';<br>function&nbsp;SetupGetBackupInformation;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupGetBackupInformationA';<br>{$ENDIF}<br>function&nbsp;SetupDiCreateDeviceInfoList;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiCreateDeviceInfoList';<br>function&nbsp;SetupDiCreateDeviceInfoListExA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiCreateDeviceInfoListExA';<br>function&nbsp;SetupDiCreateDeviceInfoListExW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiCreateDeviceInfoListExW';<br>function&nbsp;SetupDiCreateDeviceInfoListEx;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiCreateDeviceInfoListExA';<br>function&nbsp;SetupDiGetDeviceInfoListClass;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDeviceInfoListClass';<br>function&nbsp;SetupDiGetDeviceInfoListDetailA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDeviceInfoListDetailA';<br>function&nbsp;SetupDiGetDeviceInfoListDetailW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDeviceInfoListDetailW';<br>function&nbsp;SetupDiGetDeviceInfoListDetail;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDeviceInfoListDetailA';<br>function&nbsp;SetupDiCreateDeviceInfoA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiCreateDeviceInfoA';<br>function&nbsp;SetupDiCreateDeviceInfoW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiCreateDeviceInfoW';<br>function&nbsp;SetupDiCreateDeviceInfo;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiCreateDeviceInfoA';<br>function&nbsp;SetupDiOpenDeviceInfoA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiOpenDeviceInfoA';<br>function&nbsp;SetupDiOpenDeviceInfoW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiOpenDeviceInfoW';<br>function&nbsp;SetupDiOpenDeviceInfo;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiOpenDeviceInfoA';<br>function&nbsp;SetupDiGetDeviceInstanceIdA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDeviceInstanceIdA';<br>function&nbsp;SetupDiGetDeviceInstanceIdW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDeviceInstanceIdW';<br>function&nbsp;SetupDiGetDeviceInstanceId;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDeviceInstanceIdA';<br>function&nbsp;SetupDiDeleteDeviceInfo;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiDeleteDeviceInfo';<br>function&nbsp;SetupDiEnumDeviceInfo;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiEnumDeviceInfo';<br>function&nbsp;SetupDiDestroyDeviceInfoList;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiDestroyDeviceInfoList';<br>function&nbsp;SetupDiEnumDeviceInterfaces;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiEnumDeviceInterfaces';<br>function&nbsp;SetupDiEnumInterfaceDevice;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiEnumDeviceInterfaces';<br>function&nbsp;SetupDiCreateDeviceInterfaceA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiCreateDeviceInterfaceA';<br>function&nbsp;SetupDiCreateInterfaceDeviceA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiCreateDeviceInterfaceA';<br>function&nbsp;SetupDiCreateDeviceInterfaceW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiCreateDeviceInterfaceW';<br>function&nbsp;SetupDiCreateInterfaceDeviceW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiCreateDeviceInterfaceW';<br>function&nbsp;SetupDiCreateDeviceInterface;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiCreateDeviceInterfaceA';<br>function&nbsp;SetupDiCreateInterfaceDevice;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiCreateDeviceInterfaceA';<br>function&nbsp;SetupDiOpenDeviceInterfaceA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiOpenDeviceInterfaceA';<br>function&nbsp;SetupDiOpenInterfaceDeviceA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiOpenDeviceInterfaceA';<br>function&nbsp;SetupDiOpenDeviceInterfaceW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiOpenDeviceInterfaceW';<br>function&nbsp;SetupDiOpenInterfaceDeviceW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiOpenDeviceInterfaceW';<br>function&nbsp;SetupDiOpenDeviceInterface;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiOpenDeviceInterfaceA';<br>function&nbsp;SetupDiOpenInterfaceDevice;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiOpenDeviceInterfaceA';<br>function&nbsp;SetupDiGetDeviceInterfaceAlias;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDeviceInterfaceAlias';<br>function&nbsp;SetupDiGetInterfaceDeviceAlias;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDeviceInterfaceAlias';<br>function&nbsp;SetupDiDeleteDeviceInterfaceData;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiDeleteDeviceInterfaceData';<br>function&nbsp;SetupDiDeleteInterfaceDeviceData;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiDeleteDeviceInterfaceData';<br>function&nbsp;SetupDiRemoveDeviceInterface;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiRemoveDeviceInterface';<br>function&nbsp;SetupDiRemoveInterfaceDevice;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiRemoveDeviceInterface';<br>function&nbsp;SetupDiGetDeviceInterfaceDetailA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDeviceInterfaceDetailA';<br>function&nbsp;SetupDiGetInterfaceDeviceDetailA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDeviceInterfaceDetailA';<br>function&nbsp;SetupDiGetDeviceInterfaceDetailW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDeviceInterfaceDetailW';<br>function&nbsp;SetupDiGetInterfaceDeviceDetailW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDeviceInterfaceDetailW';<br>function&nbsp;SetupDiGetDeviceInterfaceDetail;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDeviceInterfaceDetailA';<br>function&nbsp;SetupDiGetInterfaceDeviceDetail;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDeviceInterfaceDetailA';<br>function&nbsp;SetupDiInstallDeviceInterfaces;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiInstallDeviceInterfaces';<br>function&nbsp;SetupDiInstallInterfaceDevices;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiInstallDeviceInterfaces';<br>function&nbsp;SetupDiRegisterDeviceInfo;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiRegisterDeviceInfo';<br>function&nbsp;SetupDiBuildDriverInfoList;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiBuildDriverInfoList';<br>function&nbsp;SetupDiCancelDriverInfoSearch;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiCancelDriverInfoSearch';<br>function&nbsp;SetupDiEnumDriverInfoA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiEnumDriverInfoA';<br>function&nbsp;SetupDiEnumDriverInfoW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiEnumDriverInfoW';<br>function&nbsp;SetupDiEnumDriverInfo;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiEnumDriverInfoA';<br>function&nbsp;SetupDiGetSelectedDriverA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetSelectedDriverA';<br>function&nbsp;SetupDiGetSelectedDriverW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetSelectedDriverW';<br>function&nbsp;SetupDiGetSelectedDriver;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetSelectedDriverA';<br>function&nbsp;SetupDiSetSelectedDriverA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiSetSelectedDriverA';<br>function&nbsp;SetupDiSetSelectedDriverW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiSetSelectedDriverW';<br>function&nbsp;SetupDiSetSelectedDriver;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiSetSelectedDriverA';<br>function&nbsp;SetupDiGetDriverInfoDetailA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDriverInfoDetailA';<br>function&nbsp;SetupDiGetDriverInfoDetailW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDriverInfoDetailW';<br>function&nbsp;SetupDiGetDriverInfoDetail;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDriverInfoDetailA';<br>function&nbsp;SetupDiDestroyDriverInfoList;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiDestroyDriverInfoList';<br>function&nbsp;SetupDiGetClassDevsA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassDevsA';<br>function&nbsp;SetupDiGetClassDevsW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassDevsW';<br>function&nbsp;SetupDiGetClassDevs;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassDevsA';<br>function&nbsp;SetupDiGetClassDevsExA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassDevsExA';<br>function&nbsp;SetupDiGetClassDevsExW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassDevsExW';<br>function&nbsp;SetupDiGetClassDevsEx;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassDevsExA';<br>function&nbsp;SetupDiGetINFClassA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetINFClassA';<br>function&nbsp;SetupDiGetINFClassW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetINFClassW';<br>function&nbsp;SetupDiGetINFClass;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetINFClassA';<br>function&nbsp;SetupDiBuildClassInfoList;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiBuildClassInfoList';<br>function&nbsp;SetupDiBuildClassInfoListExA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiBuildClassInfoListExA';<br>function&nbsp;SetupDiBuildClassInfoListExW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiBuildClassInfoListExW';<br>function&nbsp;SetupDiBuildClassInfoListEx;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiBuildClassInfoListExA';<br>function&nbsp;SetupDiGetClassDescriptionA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassDescriptionA';<br>function&nbsp;SetupDiGetClassDescriptionW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassDescriptionW';<br>function&nbsp;SetupDiGetClassDescription;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassDescriptionA';<br>function&nbsp;SetupDiGetClassDescriptionExA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassDescriptionExA';<br>function&nbsp;SetupDiGetClassDescriptionExW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassDescriptionExW';<br>function&nbsp;SetupDiGetClassDescriptionEx;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassDescriptionExA';<br>function&nbsp;SetupDiCallClassInstaller;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiCallClassInstaller';<br>function&nbsp;SetupDiSelectDevice;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiSelectDevice';<br>function&nbsp;SetupDiSelectBestCompatDrv;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiSelectBestCompatDrv';<br>function&nbsp;SetupDiInstallDevice;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiInstallDevice';<br>function&nbsp;SetupDiInstallDriverFiles;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiInstallDriverFiles';<br>function&nbsp;SetupDiRegisterCoDeviceInstallers;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiRegisterCoDeviceInstallers';<br>function&nbsp;SetupDiRemoveDevice;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiRemoveDevice';<br>function&nbsp;SetupDiUnremoveDevice;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiUnremoveDevice';<br>function&nbsp;SetupDiMoveDuplicateDevice;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiMoveDuplicateDevice';<br>function&nbsp;SetupDiChangeState;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiChangeState';<br>function&nbsp;SetupDiInstallClassA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiInstallClassA';<br>function&nbsp;SetupDiInstallClassW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiInstallClassW';<br>function&nbsp;SetupDiInstallClass;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiInstallClassA';<br>function&nbsp;SetupDiInstallClassExA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiInstallClassExA';<br>function&nbsp;SetupDiInstallClassExW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiInstallClassExW';<br>function&nbsp;SetupDiInstallClassEx;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiInstallClassExA';<br>function&nbsp;SetupDiOpenClassRegKey;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiOpenClassRegKey';<br>function&nbsp;SetupDiOpenClassRegKeyExA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiOpenClassRegKeyExA';<br>function&nbsp;SetupDiOpenClassRegKeyExW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiOpenClassRegKeyExW';<br>function&nbsp;SetupDiOpenClassRegKeyEx;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiOpenClassRegKeyExA';<br>function&nbsp;SetupDiCreateDeviceInterfaceRegKeyA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiCreateDeviceInterfaceRegKeyA';<br>function&nbsp;SetupDiCreateInterfaceDeviceRegKeyA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiCreateDeviceInterfaceRegKeyA';<br>function&nbsp;SetupDiCreateDeviceInterfaceRegKeyW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiCreateDeviceInterfaceRegKeyW';<br>function&nbsp;SetupDiCreateInterfaceDeviceRegKeyW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiCreateDeviceInterfaceRegKeyW';<br>function&nbsp;SetupDiCreateDeviceInterfaceRegKey;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiCreateDeviceInterfaceRegKeyA';<br>function&nbsp;SetupDiCreateInterfaceDeviceRegKey;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiCreateDeviceInterfaceRegKeyA';<br>function&nbsp;SetupDiOpenDeviceInterfaceRegKey;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiOpenDeviceInterfaceRegKey';<br>function&nbsp;SetupDiOpenInterfaceDeviceRegKey;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiOpenDeviceInterfaceRegKey';<br>function&nbsp;SetupDiDeleteDeviceInterfaceRegKey;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiDeleteDeviceInterfaceRegKey';<br>function&nbsp;SetupDiDeleteInterfaceDeviceRegKey;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiDeleteDeviceInterfaceRegKey';<br>function&nbsp;SetupDiCreateDevRegKeyA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiCreateDevRegKeyA';<br>function&nbsp;SetupDiCreateDevRegKeyW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiCreateDevRegKeyW';<br>function&nbsp;SetupDiCreateDevRegKey;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiCreateDevRegKeyA';<br>function&nbsp;SetupDiOpenDevRegKey;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiOpenDevRegKey';<br>function&nbsp;SetupDiDeleteDevRegKey;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiDeleteDevRegKey';<br>function&nbsp;SetupDiGetHwProfileList;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetHwProfileList';<br>function&nbsp;SetupDiGetHwProfileListExA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetHwProfileListExA';<br>function&nbsp;SetupDiGetHwProfileListExW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetHwProfileListExW';<br>function&nbsp;SetupDiGetHwProfileListEx;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetHwProfileListExA';<br>function&nbsp;SetupDiGetDeviceRegistryPropertyA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDeviceRegistryPropertyA';<br>function&nbsp;SetupDiGetDeviceRegistryPropertyW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDeviceRegistryPropertyW';<br>function&nbsp;SetupDiGetDeviceRegistryProperty;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDeviceRegistryPropertyA';<br>{$IFDEF&nbsp;WIN2000}<br>function&nbsp;SetupDiGetClassRegistryPropertyA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassRegistryPropertyA';<br>function&nbsp;SetupDiGetClassRegistryPropertyW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassRegistryPropertyW';<br>function&nbsp;SetupDiGetClassRegistryProperty;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassRegistryPropertyA';<br>{$ENDIF}<br>function&nbsp;SetupDiSetDeviceRegistryPropertyA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiSetDeviceRegistryPropertyA';<br>function&nbsp;SetupDiSetDeviceRegistryPropertyW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiSetDeviceRegistryPropertyW';<br>function&nbsp;SetupDiSetDeviceRegistryProperty;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiSetDeviceRegistryPropertyA';<br>{$IFDEF&nbsp;WIN2000}<br>function&nbsp;SetupDiSetClassRegistryPropertyA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiSetClassRegistryPropertyA';<br>function&nbsp;SetupDiSetClassRegistryPropertyW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiSetClassRegistryPropertyW';<br>function&nbsp;SetupDiSetClassRegistryProperty;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiSetClassRegistryPropertyA';<br>{$ENDIF}<br>function&nbsp;SetupDiGetDeviceInstallParamsA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDeviceInstallParamsA';<br>function&nbsp;SetupDiGetDeviceInstallParamsW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDeviceInstallParamsW';<br>function&nbsp;SetupDiGetDeviceInstallParams;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDeviceInstallParamsA';<br>function&nbsp;SetupDiGetClassInstallParamsA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassInstallParamsA';<br>function&nbsp;SetupDiGetClassInstallParamsW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassInstallParamsW';<br>function&nbsp;SetupDiGetClassInstallParams;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassInstallParamsA';<br>function&nbsp;SetupDiSetDeviceInstallParamsA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiSetDeviceInstallParamsA';<br>function&nbsp;SetupDiSetDeviceInstallParamsW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiSetDeviceInstallParamsW';<br>function&nbsp;SetupDiSetDeviceInstallParams;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiSetDeviceInstallParamsA';<br>function&nbsp;SetupDiSetClassInstallParamsA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiSetClassInstallParamsA';<br>function&nbsp;SetupDiSetClassInstallParamsW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiSetClassInstallParamsW';<br>function&nbsp;SetupDiSetClassInstallParams;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiSetClassInstallParamsA';<br>function&nbsp;SetupDiGetDriverInstallParamsA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDriverInstallParamsA';<br>function&nbsp;SetupDiGetDriverInstallParamsW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDriverInstallParamsW';<br>function&nbsp;SetupDiGetDriverInstallParams;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetDriverInstallParamsA';<br>function&nbsp;SetupDiSetDriverInstallParamsA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiSetDriverInstallParamsA';<br>function&nbsp;SetupDiSetDriverInstallParamsW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiSetDriverInstallParamsW';<br>function&nbsp;SetupDiSetDriverInstallParams;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiSetDriverInstallParamsA';<br>function&nbsp;SetupDiLoadClassIcon;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiLoadClassIcon';<br>function&nbsp;SetupDiDrawMiniIcon;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiDrawMiniIcon';<br>function&nbsp;SetupDiGetClassBitmapIndex;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassBitmapIndex';<br>function&nbsp;SetupDiGetClassImageList;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassImageList';<br>function&nbsp;SetupDiGetClassImageListExA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassImageListExA';<br>function&nbsp;SetupDiGetClassImageListExW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassImageListExW';<br>function&nbsp;SetupDiGetClassImageListEx;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassImageListExA';<br>function&nbsp;SetupDiGetClassImageIndex;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassImageIndex';<br>function&nbsp;SetupDiDestroyClassImageList;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiDestroyClassImageList';<br>function&nbsp;SetupDiGetClassDevPropertySheetsA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassDevPropertySheetsA';<br>function&nbsp;SetupDiGetClassDevPropertySheetsW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassDevPropertySheetsW';<br>function&nbsp;SetupDiGetClassDevPropertySheets;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetClassDevPropertySheetsA';<br>function&nbsp;SetupDiAskForOEMDisk;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiAskForOEMDisk';<br>function&nbsp;SetupDiSelectOEMDrv;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiSelectOEMDrv';<br>function&nbsp;SetupDiClassNameFromGuidA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiClassNameFromGuidA';<br>function&nbsp;SetupDiClassNameFromGuidW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiClassNameFromGuidW';<br>function&nbsp;SetupDiClassNameFromGuid;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiClassNameFromGuidA';<br>function&nbsp;SetupDiClassNameFromGuidExA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiClassNameFromGuidExA';<br>function&nbsp;SetupDiClassNameFromGuidExW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiClassNameFromGuidExW';<br>function&nbsp;SetupDiClassNameFromGuidEx;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiClassNameFromGuidExA';<br>function&nbsp;SetupDiClassGuidsFromNameA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiClassGuidsFromNameA';<br>function&nbsp;SetupDiClassGuidsFromNameW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiClassGuidsFromNameW';<br>function&nbsp;SetupDiClassGuidsFromName;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiClassGuidsFromNameA';<br>function&nbsp;SetupDiClassGuidsFromNameExA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiClassGuidsFromNameExA';<br>function&nbsp;SetupDiClassGuidsFromNameExW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiClassGuidsFromNameExW';<br>function&nbsp;SetupDiClassGuidsFromNameEx;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiClassGuidsFromNameExA';<br>function&nbsp;SetupDiGetHwProfileFriendlyNameA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetHwProfileFriendlyNameA';<br>function&nbsp;SetupDiGetHwProfileFriendlyNameW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetHwProfileFriendlyNameW';<br>function&nbsp;SetupDiGetHwProfileFriendlyName;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetHwProfileFriendlyNameA';<br>function&nbsp;SetupDiGetHwProfileFriendlyNameExA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetHwProfileFriendlyNameExA';<br>function&nbsp;SetupDiGetHwProfileFriendlyNameExW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetHwProfileFriendlyNameExW';<br>function&nbsp;SetupDiGetHwProfileFriendlyNameEx;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetHwProfileFriendlyNameExA';<br>function&nbsp;SetupDiGetWizardPage;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetWizardPage';<br>function&nbsp;SetupDiGetSelectedDevice;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetSelectedDevice';<br>function&nbsp;SetupDiSetSelectedDevice;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiSetSelectedDevice';<br>function&nbsp;SetupDiGetActualSectionToInstallA;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetActualSectionToInstallA';<br>function&nbsp;SetupDiGetActualSectionToInstallW;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetActualSectionToInstallW';<br>function&nbsp;SetupDiGetActualSectionToInstall;&nbsp;external&nbsp;SetupApiModuleName&nbsp;Name&nbsp;'SetupDiGetActualSectionToInstallA';<br><br>{$ENDIF}<br><br>end.
 
{需要引用的单元之二:ModuleLoader.pas}<br>{******************************************************************}<br>{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Project&nbsp;JEDI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OS&nbsp;independent&nbsp;Dynamic&nbsp;Loading&nbsp;Helpers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>{&nbsp;The&nbsp;initial&nbsp;developer&nbsp;of&nbsp;the&nbsp;this&nbsp;code&nbsp;is&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>{&nbsp;Robert&nbsp;Marquardt&nbsp;&lt;robert_marquardt@gmx.de)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>{&nbsp;Copyright&nbsp;(C)&nbsp;2000,&nbsp;2001&nbsp;Robert&nbsp;Marquardt.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>{&nbsp;Obtained&nbsp;through:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>{&nbsp;Joint&nbsp;Endeavour&nbsp;of&nbsp;Delphi&nbsp;Innovators&nbsp;(Project&nbsp;JEDI)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>{&nbsp;You&nbsp;may&nbsp;retrieve&nbsp;the&nbsp;latest&nbsp;version&nbsp;of&nbsp;this&nbsp;file&nbsp;at&nbsp;the&nbsp;Project&nbsp;&nbsp;}<br>{&nbsp;JEDI&nbsp;home&nbsp;page,&nbsp;located&nbsp;at&nbsp;http://delphi-jedi.org&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>{&nbsp;The&nbsp;contents&nbsp;of&nbsp;this&nbsp;file&nbsp;are&nbsp;used&nbsp;with&nbsp;permission,&nbsp;subject&nbsp;to&nbsp;&nbsp;&nbsp;}<br>{&nbsp;the&nbsp;Mozilla&nbsp;Public&nbsp;License&nbsp;Version&nbsp;1.1&nbsp;(the&nbsp;&quot;License&quot;);&nbsp;you&nbsp;may&nbsp;&nbsp;}<br>{&nbsp;not&nbsp;use&nbsp;this&nbsp;file&nbsp;except&nbsp;in&nbsp;compliance&nbsp;with&nbsp;the&nbsp;License.&nbsp;You&nbsp;may&nbsp;}<br>{&nbsp;obtain&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;License&nbsp;at&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>{&nbsp;http://www.mozilla.org/NPL/NPL-1_1Final.html&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>{&nbsp;Software&nbsp;distributed&nbsp;under&nbsp;the&nbsp;License&nbsp;is&nbsp;distributed&nbsp;on&nbsp;an&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>{&nbsp;&quot;AS&nbsp;IS&quot;&nbsp;basis,&nbsp;WITHOUT&nbsp;WARRANTY&nbsp;OF&nbsp;ANY&nbsp;KIND,&nbsp;either&nbsp;express&nbsp;or&nbsp;&nbsp;&nbsp;}<br>{&nbsp;implied.&nbsp;See&nbsp;the&nbsp;License&nbsp;for&nbsp;the&nbsp;specific&nbsp;language&nbsp;governing&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>{&nbsp;rights&nbsp;and&nbsp;limitations&nbsp;under&nbsp;the&nbsp;License.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>{******************************************************************}<br><br>unit&nbsp;ModuleLoader;<br><br>interface<br><br>{$WEAKPACKAGEUNIT&nbsp;ON}<br><br>//&nbsp;each&nbsp;OS&nbsp;gets&nbsp;its&nbsp;own&nbsp;IFDEFed&nbsp;complete&nbsp;code&nbsp;block&nbsp;to&nbsp;make&nbsp;reading&nbsp;easier<br><br>{$IFDEF&nbsp;WIN32}<br><br>uses<br>&nbsp;&nbsp;Windows;<br><br>type<br>&nbsp;&nbsp;//&nbsp;Handle&nbsp;to&nbsp;a&nbsp;loaded&nbsp;DLL<br>&nbsp;&nbsp;TModuleHandle&nbsp;=&nbsp;HINST;<br><br>const<br>&nbsp;&nbsp;//&nbsp;Value&nbsp;designating&nbsp;an&nbsp;unassigned&nbsp;TModuleHandle&nbsp;od&nbsp;a&nbsp;failed&nbsp;loading<br>&nbsp;&nbsp;INVALID_MODULEHANDLE_VALUE&nbsp;=&nbsp;TModuleHandle(0);<br><br>function&nbsp;LoadModule(var&nbsp;Module:&nbsp;TModuleHandle;&nbsp;FileName:&nbsp;string):&nbsp;Boolean;<br>function&nbsp;LoadModuleEx(var&nbsp;Module:&nbsp;TModuleHandle;&nbsp;FileName:&nbsp;string;&nbsp;Flags:&nbsp;Cardinal):&nbsp;Boolean;<br>procedure&nbsp;UnloadModule(var&nbsp;Module:&nbsp;TModuleHandle);<br>function&nbsp;GetModuleSymbol(Module:&nbsp;TModuleHandle;&nbsp;SymbolName:&nbsp;string):&nbsp;Pointer;<br>function&nbsp;GetModuleSymbolEx(Module:&nbsp;TModuleHandle;&nbsp;SymbolName:&nbsp;string;&nbsp;var&nbsp;Accu:&nbsp;Boolean):&nbsp;Pointer;<br>function&nbsp;ReadModuleData(Module:&nbsp;TModuleHandle;&nbsp;SymbolName:&nbsp;string;&nbsp;var&nbsp;Buffer;&nbsp;Size:&nbsp;Cardinal):&nbsp;Boolean;<br>function&nbsp;WriteModuleData(Module:&nbsp;TModuleHandle;&nbsp;SymbolName:&nbsp;string;&nbsp;var&nbsp;Buffer;&nbsp;Size:&nbsp;Cardinal):&nbsp;Boolean;<br><br>implementation<br><br>//&nbsp;load&nbsp;the&nbsp;DLL&nbsp;file&nbsp;FileName<br>//&nbsp;the&nbsp;rules&nbsp;for&nbsp;FileName&nbsp;are&nbsp;those&nbsp;of&nbsp;LoadLibrary<br>//&nbsp;Returns:&nbsp;True&nbsp;=&nbsp;success,&nbsp;False&nbsp;=&nbsp;failure&nbsp;to&nbsp;load<br>//&nbsp;Assigns:&nbsp;the&nbsp;handle&nbsp;of&nbsp;the&nbsp;loaded&nbsp;DLL&nbsp;to&nbsp;Module<br>//&nbsp;Warning:&nbsp;if&nbsp;Module&nbsp;has&nbsp;any&nbsp;other&nbsp;value&nbsp;than&nbsp;INVALID_MODULEHANDLE_VALUE<br>//&nbsp;on&nbsp;entry&nbsp;the&nbsp;function&nbsp;will&nbsp;do&nbsp;nothing&nbsp;but&nbsp;returning&nbsp;success.<br><br>function&nbsp;LoadModule(var&nbsp;Module:&nbsp;TModuleHandle;&nbsp;FileName:&nbsp;string):&nbsp;Boolean;<br>begin<br>&nbsp;&nbsp;if&nbsp;Module&nbsp;=&nbsp;INVALID_MODULEHANDLE_VALUE&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;Module&nbsp;:=&nbsp;LoadLibrary(PChar(FileName));<br>&nbsp;&nbsp;Result&nbsp;:=&nbsp;Module&nbsp;&lt;&gt;&nbsp;INVALID_MODULEHANDLE_VALUE;<br>end;<br><br>//&nbsp;load&nbsp;the&nbsp;DLL&nbsp;file&nbsp;FileName<br>//&nbsp;LoadLibraryEx&nbsp;is&nbsp;used&nbsp;to&nbsp;get&nbsp;better&nbsp;control&nbsp;of&nbsp;the&nbsp;loading<br>//&nbsp;for&nbsp;the&nbsp;allowed&nbsp;values&nbsp;for&nbsp;flags&nbsp;see&nbsp;LoadLibraryEx&nbsp;documentation.<br><br>function&nbsp;LoadModuleEx(var&nbsp;Module:&nbsp;TModuleHandle;&nbsp;FileName:&nbsp;string;&nbsp;Flags:&nbsp;Cardinal):&nbsp;Boolean;<br>begin<br>&nbsp;&nbsp;if&nbsp;Module&nbsp;=&nbsp;INVALID_MODULEHANDLE_VALUE&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;Module&nbsp;:=&nbsp;LoadLibraryEx(PChar(FileName),&nbsp;0,&nbsp;Flags);<br>&nbsp;&nbsp;Result&nbsp;:=&nbsp;Module&nbsp;&lt;&gt;&nbsp;INVALID_MODULEHANDLE_VALUE;<br>end;<br><br>//&nbsp;unload&nbsp;a&nbsp;DLL&nbsp;loaded&nbsp;with&nbsp;LoadModule&nbsp;or&nbsp;LoadModuleEx<br>//&nbsp;The&nbsp;procedure&nbsp;will&nbsp;not&nbsp;try&nbsp;to&nbsp;unload&nbsp;a&nbsp;handle&nbsp;with<br>//&nbsp;value&nbsp;INVALID_MODULEHANDLE_VALUE&nbsp;and&nbsp;assigns&nbsp;this&nbsp;value<br>//&nbsp;to&nbsp;Module&nbsp;after&nbsp;unload.<br><br>procedure&nbsp;UnloadModule(var&nbsp;Module:&nbsp;TModuleHandle);<br>begin<br>&nbsp;&nbsp;if&nbsp;Module&nbsp;&lt;&gt;&nbsp;INVALID_MODULEHANDLE_VALUE&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;FreeLibrary(Module);<br>&nbsp;&nbsp;Module&nbsp;:=&nbsp;INVALID_MODULEHANDLE_VALUE;<br>end;<br><br>//&nbsp;returns&nbsp;the&nbsp;pointer&nbsp;to&nbsp;the&nbsp;symbol&nbsp;named&nbsp;SymbolName<br>//&nbsp;if&nbsp;it&nbsp;is&nbsp;exported&nbsp;from&nbsp;the&nbsp;DLL&nbsp;Module<br>//&nbsp;nil&nbsp;is&nbsp;returned&nbsp;if&nbsp;the&nbsp;symbol&nbsp;is&nbsp;not&nbsp;available<br><br>function&nbsp;GetModuleSymbol(Module:&nbsp;TModuleHandle;&nbsp;SymbolName:&nbsp;string):&nbsp;Pointer;<br>begin<br>&nbsp;&nbsp;Result&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;if&nbsp;Module&nbsp;&lt;&gt;&nbsp;INVALID_MODULEHANDLE_VALUE&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;GetProcAddress(Module,&nbsp;PChar(SymbolName));<br>end;<br><br>//&nbsp;returns&nbsp;the&nbsp;pointer&nbsp;to&nbsp;the&nbsp;symbol&nbsp;named&nbsp;SymbolName<br>//&nbsp;if&nbsp;it&nbsp;is&nbsp;exported&nbsp;from&nbsp;the&nbsp;DLL&nbsp;Module<br>//&nbsp;nil&nbsp;is&nbsp;returned&nbsp;if&nbsp;the&nbsp;symbol&nbsp;is&nbsp;not&nbsp;available.<br>//&nbsp;as&nbsp;an&nbsp;extra&nbsp;the&nbsp;boolean&nbsp;variable&nbsp;Accu&nbsp;is&nbsp;updated<br>//&nbsp;by&nbsp;anding&nbsp;in&nbsp;the&nbsp;success&nbsp;of&nbsp;the&nbsp;function.<br>//&nbsp;This&nbsp;is&nbsp;very&nbsp;handy&nbsp;for&nbsp;rendering&nbsp;a&nbsp;global&nbsp;result<br>//&nbsp;when&nbsp;accessing&nbsp;a&nbsp;long&nbsp;list&nbsp;of&nbsp;symbols.<br><br>function&nbsp;GetModuleSymbolEx(Module:&nbsp;TModuleHandle;&nbsp;SymbolName:&nbsp;string;&nbsp;var&nbsp;Accu:&nbsp;Boolean):&nbsp;Pointer;<br>begin<br>&nbsp;&nbsp;Result&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;if&nbsp;Module&nbsp;&lt;&gt;&nbsp;INVALID_MODULEHANDLE_VALUE&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;GetProcAddress(Module,&nbsp;PChar(SymbolName));<br>&nbsp;&nbsp;Accu&nbsp;:=&nbsp;Accu&nbsp;and&nbsp;(Result&nbsp;&lt;&gt;&nbsp;nil);<br>end;<br><br>//&nbsp;get&nbsp;the&nbsp;value&nbsp;of&nbsp;variables&nbsp;exported&nbsp;from&nbsp;a&nbsp;DLL&nbsp;Module<br>//&nbsp;Delphi&nbsp;cannot&nbsp;access&nbsp;variables&nbsp;in&nbsp;a&nbsp;DLL&nbsp;directly,&nbsp;so<br>//&nbsp;this&nbsp;function&nbsp;allows&nbsp;to&nbsp;copy&nbsp;the&nbsp;data&nbsp;from&nbsp;the&nbsp;DLL.<br>//&nbsp;Beware!&nbsp;You&nbsp;are&nbsp;accessing&nbsp;the&nbsp;DLL&nbsp;memory&nbsp;image&nbsp;directly.<br>//&nbsp;Be&nbsp;sure&nbsp;to&nbsp;access&nbsp;a&nbsp;variable&nbsp;not&nbsp;a&nbsp;function&nbsp;and&nbsp;be&nbsp;sure<br>//&nbsp;to&nbsp;read&nbsp;the&nbsp;correct&nbsp;amount&nbsp;of&nbsp;data.<br><br>function&nbsp;ReadModuleData(Module:&nbsp;TModuleHandle;&nbsp;SymbolName:&nbsp;string;&nbsp;var&nbsp;Buffer;&nbsp;Size:&nbsp;Cardinal):&nbsp;Boolean;<br>var<br>&nbsp;&nbsp;Sym:&nbsp;Pointer;<br>begin<br>&nbsp;&nbsp;Result&nbsp;:=&nbsp;True;<br>&nbsp;&nbsp;Sym&nbsp;:=&nbsp;GetModuleSymbolEx(Module,&nbsp;SymbolName,&nbsp;Result);<br>&nbsp;&nbsp;if&nbsp;Result&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;Move(Sym^,&nbsp;Buffer,&nbsp;Size);<br>end;<br><br>//&nbsp;set&nbsp;the&nbsp;value&nbsp;of&nbsp;variables&nbsp;exported&nbsp;from&nbsp;a&nbsp;DLL&nbsp;Module<br>//&nbsp;Delphi&nbsp;cannot&nbsp;access&nbsp;variables&nbsp;in&nbsp;a&nbsp;DLL&nbsp;directly,&nbsp;so<br>//&nbsp;this&nbsp;function&nbsp;allows&nbsp;to&nbsp;copy&nbsp;the&nbsp;data&nbsp;to&nbsp;the&nbsp;DLL!<br>//&nbsp;BEWARE!&nbsp;You&nbsp;are&nbsp;accessing&nbsp;the&nbsp;DLL&nbsp;memory&nbsp;image&nbsp;directly.<br>//&nbsp;Be&nbsp;sure&nbsp;to&nbsp;access&nbsp;a&nbsp;variable&nbsp;not&nbsp;a&nbsp;function&nbsp;and&nbsp;be&nbsp;sure<br>//&nbsp;to&nbsp;write&nbsp;the&nbsp;correct&nbsp;amount&nbsp;of&nbsp;data.<br>//&nbsp;The&nbsp;changes&nbsp;are&nbsp;not&nbsp;persistent.&nbsp;They&nbsp;get&nbsp;lost&nbsp;when&nbsp;the<br>//&nbsp;DLL&nbsp;is&nbsp;unloaded.<br><br>function&nbsp;WriteModuleData(Module:&nbsp;TModuleHandle;&nbsp;SymbolName:&nbsp;string;&nbsp;var&nbsp;Buffer;&nbsp;Size:&nbsp;Cardinal):&nbsp;Boolean;<br>var<br>&nbsp;&nbsp;Sym:&nbsp;Pointer;<br>begin<br>&nbsp;&nbsp;Result&nbsp;:=&nbsp;True;<br>&nbsp;&nbsp;Sym&nbsp;:=&nbsp;GetModuleSymbolEx(Module,&nbsp;SymbolName,&nbsp;Result);<br>&nbsp;&nbsp;if&nbsp;Result&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;Move(Buffer,&nbsp;Sym^,&nbsp;Size);<br>end;<br><br>{$ENDIF}<br><br>{$IFDEF&nbsp;LINUX}<br><br>uses<br>&nbsp;&nbsp;Types,&nbsp;Libc;<br><br>type<br>&nbsp;&nbsp;//&nbsp;Handle&nbsp;to&nbsp;a&nbsp;loaded&nbsp;.so<br>&nbsp;&nbsp;TModuleHandle&nbsp;=&nbsp;Pointer;<br><br>const<br>&nbsp;&nbsp;//&nbsp;Value&nbsp;designating&nbsp;an&nbsp;unassigned&nbsp;TModuleHandle&nbsp;od&nbsp;a&nbsp;failed&nbsp;loading<br>&nbsp;&nbsp;INVALID_MODULEHANDLE_VALUE&nbsp;=&nbsp;TModuleHandle(nil);<br><br>function&nbsp;LoadModule(var&nbsp;Module:&nbsp;TModuleHandle;&nbsp;FileName:&nbsp;string):&nbsp;Boolean;<br>function&nbsp;LoadModuleEx(var&nbsp;Module:&nbsp;TModuleHandle;&nbsp;FileName:&nbsp;string;&nbsp;Flags:&nbsp;Cardinal):&nbsp;Boolean;<br>procedure&nbsp;UnloadModule(var&nbsp;Module:&nbsp;TModuleHandle);<br>function&nbsp;GetModuleSymbol(Module:&nbsp;TModuleHandle;&nbsp;SymbolName:&nbsp;string):&nbsp;Pointer;<br>function&nbsp;GetModuleSymbolEx(Module:&nbsp;TModuleHandle;&nbsp;SymbolName:&nbsp;string;&nbsp;var&nbsp;Accu:&nbsp;Boolean):&nbsp;Pointer;<br>function&nbsp;ReadModuleData(Module:&nbsp;TModuleHandle;&nbsp;SymbolName:&nbsp;string;&nbsp;var&nbsp;Buffer;&nbsp;Size:&nbsp;Cardinal):&nbsp;Boolean;<br>function&nbsp;WriteModuleData(Module:&nbsp;TModuleHandle;&nbsp;SymbolName:&nbsp;string;&nbsp;var&nbsp;Buffer;&nbsp;Size:&nbsp;Cardinal):&nbsp;Boolean;<br><br>implementation<br><br>//&nbsp;load&nbsp;the&nbsp;.so&nbsp;file&nbsp;FileName<br>//&nbsp;the&nbsp;rules&nbsp;for&nbsp;FileName&nbsp;are&nbsp;those&nbsp;of&nbsp;dlopen()<br>//&nbsp;Returns:&nbsp;True&nbsp;=&nbsp;success,&nbsp;False&nbsp;=&nbsp;failure&nbsp;to&nbsp;load<br>//&nbsp;Assigns:&nbsp;the&nbsp;handle&nbsp;of&nbsp;the&nbsp;loaded&nbsp;.so&nbsp;to&nbsp;Module<br>//&nbsp;Warning:&nbsp;if&nbsp;Module&nbsp;has&nbsp;any&nbsp;other&nbsp;value&nbsp;than&nbsp;INVALID_MODULEHANDLE_VALUE<br>//&nbsp;on&nbsp;entry&nbsp;the&nbsp;function&nbsp;will&nbsp;do&nbsp;nothing&nbsp;but&nbsp;returning&nbsp;success.<br><br>function&nbsp;LoadModule(var&nbsp;Module:&nbsp;TModuleHandle;&nbsp;FileName:&nbsp;string):&nbsp;Boolean;<br>begin<br>&nbsp;&nbsp;if&nbsp;Module&nbsp;=&nbsp;INVALID_MODULEHANDLE_VALUE&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;Module&nbsp;:=&nbsp;dlopen(PChar(FileName),&nbsp;RTLD_NOW);<br>&nbsp;&nbsp;Result&nbsp;:=&nbsp;Module&nbsp;&lt;&gt;&nbsp;INVALID_MODULEHANDLE_VALUE;<br>end;<br><br>//&nbsp;load&nbsp;the&nbsp;.so&nbsp;file&nbsp;FileName<br>//&nbsp;dlopen()&nbsp;with&nbsp;flags&nbsp;is&nbsp;used&nbsp;to&nbsp;get&nbsp;better&nbsp;control&nbsp;of&nbsp;the&nbsp;loading<br>//&nbsp;for&nbsp;the&nbsp;allowed&nbsp;values&nbsp;for&nbsp;flags&nbsp;see&nbsp;&quot;man&nbsp;dlopen&quot;.<br><br>function&nbsp;LoadModuleEx(var&nbsp;Module:&nbsp;TModuleHandle;&nbsp;FileName:&nbsp;string;&nbsp;Flags:&nbsp;Cardinal):&nbsp;Boolean;<br>begin<br>&nbsp;&nbsp;if&nbsp;Module&nbsp;=&nbsp;INVALID_MODULEHANDLE_VALUE&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;Module&nbsp;:=&nbsp;dlopen(PChar(FileName),&nbsp;Flags);<br>&nbsp;&nbsp;Result&nbsp;:=&nbsp;Module&nbsp;&lt;&gt;&nbsp;INVALID_MODULEHANDLE_VALUE;<br>end;<br><br>//&nbsp;unload&nbsp;a&nbsp;.so&nbsp;loaded&nbsp;with&nbsp;LoadModule&nbsp;or&nbsp;LoadModuleEx<br>//&nbsp;The&nbsp;procedure&nbsp;will&nbsp;not&nbsp;try&nbsp;to&nbsp;unload&nbsp;a&nbsp;handle&nbsp;with<br>//&nbsp;value&nbsp;INVALID_MODULEHANDLE_VALUE&nbsp;and&nbsp;assigns&nbsp;this&nbsp;value<br>//&nbsp;to&nbsp;Module&nbsp;after&nbsp;unload.<br><br>procedure&nbsp;UnloadModule(var&nbsp;Module:&nbsp;TModuleHandle);<br>begin<br>&nbsp;&nbsp;if&nbsp;Module&nbsp;&lt;&gt;&nbsp;INVALID_MODULEHANDLE_VALUE&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;dlclose(Module);<br>&nbsp;&nbsp;Module&nbsp;:=&nbsp;INVALID_MODULEHANDLE_VALUE;<br>end;<br><br>//&nbsp;returns&nbsp;the&nbsp;pointer&nbsp;to&nbsp;the&nbsp;symbol&nbsp;named&nbsp;SymbolName<br>//&nbsp;if&nbsp;it&nbsp;is&nbsp;exported&nbsp;from&nbsp;the&nbsp;.so&nbsp;Module<br>//&nbsp;nil&nbsp;is&nbsp;returned&nbsp;if&nbsp;the&nbsp;symbol&nbsp;is&nbsp;not&nbsp;available<br><br>function&nbsp;GetModuleSymbol(Module:&nbsp;TModuleHandle;&nbsp;SymbolName:&nbsp;string):&nbsp;Pointer;<br>begin<br>&nbsp;&nbsp;Result&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;if&nbsp;Module&nbsp;&lt;&gt;&nbsp;INVALID_MODULEHANDLE_VALUE&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;dlsym(Module,&nbsp;PChar(SymbolName));<br>end;<br><br>//&nbsp;returns&nbsp;the&nbsp;pointer&nbsp;to&nbsp;the&nbsp;symbol&nbsp;named&nbsp;SymbolName<br>//&nbsp;if&nbsp;it&nbsp;is&nbsp;exported&nbsp;from&nbsp;the&nbsp;.so&nbsp;Module<br>//&nbsp;nil&nbsp;is&nbsp;returned&nbsp;if&nbsp;the&nbsp;symbol&nbsp;is&nbsp;not&nbsp;available.<br>//&nbsp;as&nbsp;an&nbsp;extra&nbsp;the&nbsp;boolean&nbsp;variable&nbsp;Accu&nbsp;is&nbsp;updated<br>//&nbsp;by&nbsp;anding&nbsp;in&nbsp;the&nbsp;success&nbsp;of&nbsp;the&nbsp;function.<br>//&nbsp;This&nbsp;is&nbsp;very&nbsp;handy&nbsp;for&nbsp;rendering&nbsp;a&nbsp;global&nbsp;result<br>//&nbsp;when&nbsp;accessing&nbsp;a&nbsp;long&nbsp;list&nbsp;of&nbsp;symbols.<br><br>function&nbsp;GetModuleSymbolEx(Module:&nbsp;TModuleHandle;&nbsp;SymbolName:&nbsp;string;&nbsp;var&nbsp;Accu:&nbsp;Boolean):&nbsp;Pointer;<br>begin<br>&nbsp;&nbsp;Result&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;if&nbsp;Module&nbsp;&lt;&gt;&nbsp;INVALID_MODULEHANDLE_VALUE&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;dlsym(Module,&nbsp;PChar(SymbolName));<br>&nbsp;&nbsp;Accu&nbsp;:=&nbsp;Accu&nbsp;and&nbsp;(Result&nbsp;&lt;&gt;&nbsp;nil);<br>end;<br><br>//&nbsp;get&nbsp;the&nbsp;value&nbsp;of&nbsp;variables&nbsp;exported&nbsp;from&nbsp;a&nbsp;.so&nbsp;Module<br>//&nbsp;Delphi&nbsp;cannot&nbsp;access&nbsp;variables&nbsp;in&nbsp;a&nbsp;.so&nbsp;directly,&nbsp;so<br>//&nbsp;this&nbsp;function&nbsp;allows&nbsp;to&nbsp;copy&nbsp;the&nbsp;data&nbsp;from&nbsp;the&nbsp;.so.<br>//&nbsp;Beware!&nbsp;You&nbsp;are&nbsp;accessing&nbsp;the&nbsp;.so&nbsp;memory&nbsp;image&nbsp;directly.<br>//&nbsp;Be&nbsp;sure&nbsp;to&nbsp;access&nbsp;a&nbsp;variable&nbsp;not&nbsp;a&nbsp;function&nbsp;and&nbsp;be&nbsp;sure<br>//&nbsp;to&nbsp;read&nbsp;the&nbsp;correct&nbsp;amount&nbsp;of&nbsp;data.<br><br>function&nbsp;ReadModuleData(Module:&nbsp;TModuleHandle;&nbsp;SymbolName:&nbsp;string;&nbsp;var&nbsp;Buffer;&nbsp;Size:&nbsp;Cardinal):&nbsp;Boolean;<br>var<br>&nbsp;&nbsp;Sym:&nbsp;Pointer;<br>begin<br>&nbsp;&nbsp;Result&nbsp;:=&nbsp;True;<br>&nbsp;&nbsp;Sym&nbsp;:=&nbsp;GetModuleSymbolEx(Module,&nbsp;SymbolName,&nbsp;Result);<br>&nbsp;&nbsp;if&nbsp;Result&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;Move(Sym^,&nbsp;Buffer,&nbsp;Size);<br>end;<br><br>//&nbsp;set&nbsp;the&nbsp;value&nbsp;of&nbsp;variables&nbsp;exported&nbsp;from&nbsp;a&nbsp;.so&nbsp;Module<br>//&nbsp;Delphi&nbsp;cannot&nbsp;access&nbsp;variables&nbsp;in&nbsp;a&nbsp;.so&nbsp;directly,&nbsp;so<br>//&nbsp;this&nbsp;function&nbsp;allows&nbsp;to&nbsp;copy&nbsp;the&nbsp;data&nbsp;to&nbsp;the&nbsp;.so!<br>//&nbsp;BEWARE!&nbsp;You&nbsp;are&nbsp;accessing&nbsp;the&nbsp;.so&nbsp;memory&nbsp;image&nbsp;directly.<br>//&nbsp;Be&nbsp;sure&nbsp;to&nbsp;access&nbsp;a&nbsp;variable&nbsp;not&nbsp;a&nbsp;function&nbsp;and&nbsp;be&nbsp;sure<br>//&nbsp;to&nbsp;write&nbsp;the&nbsp;correct&nbsp;amount&nbsp;of&nbsp;data.<br>//&nbsp;The&nbsp;changes&nbsp;are&nbsp;not&nbsp;persistent.&nbsp;They&nbsp;get&nbsp;lost&nbsp;when&nbsp;the<br>//&nbsp;.so&nbsp;is&nbsp;unloaded.<br><br>function&nbsp;WriteModuleData(Module:&nbsp;TModuleHandle;&nbsp;SymbolName:&nbsp;string;&nbsp;var&nbsp;Buffer;&nbsp;Size:&nbsp;Cardinal):&nbsp;Boolean;<br>var<br>&nbsp;&nbsp;Sym:&nbsp;Pointer;<br>begin<br>&nbsp;&nbsp;Result&nbsp;:=&nbsp;True;<br>&nbsp;&nbsp;Sym&nbsp;:=&nbsp;GetModuleSymbolEx(Module,&nbsp;SymbolName,&nbsp;Result);<br>&nbsp;&nbsp;if&nbsp;Result&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;Move(Buffer,&nbsp;Sym^,&nbsp;Size);<br>end;<br><br>{$ENDIF}<br><br>end.
 
没人知道吗?网上也很少这方面的资料,哪位驱动编写高手帮忙解答一下啊!我只想读取&nbsp;INF&nbsp;中的信息。
 
如果简单的读取inf的信息,为什么不采取ini文件读取方式。
 
我不是要简单的读出其文本内容啊,是要读取其中的硬件ID,如果单纯是为了获取其中的文本,那方法就多了。<br><br>inf&nbsp;不是标准的&nbsp;ini&nbsp;文件,有些内容也是读不出来的,当然,可以用&nbsp;Windows&nbsp;API&nbsp;读出来,可是读出来的内容还要自己去解析,我对&nbsp;inf&nbsp;的编写也不懂啊,所以要借助&nbsp;SetupAPI.dll&nbsp;这个强大的库来操作了。<br><br>有哪位高手懂得&nbsp;SetupAPI.dll&nbsp;编程的,还望不吝赐教啊!!!
 
用操控INI文件的方法一样啊,添加IniFiles单元....[:D]
 
后退
顶部