亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? directsetup.pas

?? directx 控件
?? PAS
字號:
(*==========================================================================
 *
 *  Copyright (C) 1995-1997 Microsoft Corporation.  All Rights Reserved.
 *
 *  File:       dsetup.h
 *  Content:    DirectXSetup, error codes and flags
 *
 *  DirectX 7.0 Delphi adaptation by Erik Unger
 *
 *  Modyfied: 05-Oct-99
 *
 *  Download: http://www.delphi-jedi.org/DelphiGraphics/
 *  E-Mail: Erik.Unger@gmx.at
 *
 ***************************************************************************)

unit DirectSetup;

{$MINENUMSIZE 4}
{$ALIGN ON}

interface

uses
  Windows,
  DXCommon;

var
  DSetupDLL : HModule;

type
  PDLSVersion = ^TDLSVersion;
  TDLSVersion = packed record
    dwVersionMS: DWORD;
    dwVersionLS: DWORD;
  end;


const
  FOURCC_VERS : array[0..3] of Char = ('v','e','r','s');

// DSETUP Error Codes, must remain compatible with previous setup.
  DSETUPERR_SUCCESS_RESTART     = HResult(1);
  DSETUPERR_SUCCESS             = HResult(0);
  DSETUPERR_BADWINDOWSVERSION   = HResult(-1);
  DSETUPERR_SOURCEFILENOTFOUND  = HResult(-2);
  DSETUPERR_BADSOURCESIZE       = HResult(-3);
  DSETUPERR_BADSOURCETIME       = HResult(-4);
  DSETUPERR_NOCOPY              = HResult(-5);
  DSETUPERR_OUTOFDISKSPACE      = HResult(-6);
  DSETUPERR_CANTFINDINF         = HResult(-7);
  DSETUPERR_CANTFINDDIR         = HResult(-8);
  DSETUPERR_INTERNAL            = HResult(-9);
  DSETUPERR_NTWITHNO3D          = HResult(-10);  // REM: obsolete, you'll never see this
  DSETUPERR_UNKNOWNOS           = HResult(-11);
  DSETUPERR_USERHITCANCEL       = HResult(-12);
  DSETUPERR_NOTPREINSTALLEDONNT = HResult(-13);
  DSETUPERR_NEWERVERSION	= HResult(-14);  

// DSETUP flags. DirectX 5.0 apps should use these flags only.
  DSETUP_DDRAWDRV     = $00000008;   (* install DirectDraw Drivers           *)
  DSETUP_DSOUNDDRV    = $00000010;   (* install DirectSound Drivers          *)
  DSETUP_DXCORE       = $00010000;   (* install DirectX runtime              *)
  DSETUP_DIRECTX = DSETUP_DXCORE or DSETUP_DDRAWDRV or DSETUP_DSOUNDDRV;
  DSETUP_TESTINSTALL  = $00020000;   (* just test install, don't do anything *)
  DSETUP_USEROLDERFLAG= $02000000;   (* enable return DSETUPERR_NEWERVERSION *)
// Bug #22730
  DSETUP_NTINSTALL		= $00080000;   (* install on Win2K platform *)

// These OBSOLETE flags are here for compatibility with pre-DX5 apps only.
// They are present to allow DX3 apps to be recompiled with DX5 and still work.
// DO NOT USE THEM for DX5. They will go away in future DX releases.
  DSETUP_DDRAW         = $00000001; (* OBSOLETE. install DirectDraw           *)
  DSETUP_DSOUND        = $00000002; (* OBSOLETE. install DirectSound          *)
  DSETUP_DPLAY         = $00000004; (* OBSOLETE. install DirectPlay           *)
  DSETUP_DPLAYSP       = $00000020; (* OBSOLETE. install DirectPlay Providers *)
  DSETUP_DVIDEO        = $00000040; (* OBSOLETE. install DirectVideo          *)
  DSETUP_D3D           = $00000200; (* OBSOLETE. install Direct3D             *)
  DSETUP_DINPUT        = $00000800; (* OBSOLETE. install DirectInput          *)
  DSETUP_DIRECTXSETUP  = $00001000; (* OBSOLETE. install DirectXSetup DLL's   *)
  DSETUP_NOUI          = $00002000; (* OBSOLETE. install DirectX with NO UI   *)
  DSETUP_PROMPTFORDRIVERS = $10000000; (* OBSOLETE. prompt when replacing display/audio drivers *)
  DSETUP_RESTOREDRIVERS = $20000000;(* OBSOLETE. restore display/audio drivers *)

//******************************************************************
// DirectX Setup Callback mechanism
//******************************************************************

// DSETUP Message Info Codes, passed to callback as Reason parameter.
  DSETUP_CB_MSG_NOMESSAGE                 = 0;
  DSETUP_CB_MSG_CANTINSTALL_UNKNOWNOS     = 1;
  DSETUP_CB_MSG_CANTINSTALL_NT            = 2;
  DSETUP_CB_MSG_CANTINSTALL_BETA          = 3;
  DSETUP_CB_MSG_CANTINSTALL_NOTWIN32      = 4;
  DSETUP_CB_MSG_CANTINSTALL_WRONGLANGUAGE = 5;
  DSETUP_CB_MSG_CANTINSTALL_WRONGPLATFORM = 6;
  DSETUP_CB_MSG_PREINSTALL_NT             = 7;
  DSETUP_CB_MSG_NOTPREINSTALLEDONNT       = 8;
  DSETUP_CB_MSG_SETUP_INIT_FAILED         = 9;
  DSETUP_CB_MSG_INTERNAL_ERROR            = 10;
  DSETUP_CB_MSG_CHECK_DRIVER_UPGRADE      = 11;
  DSETUP_CB_MSG_OUTOFDISKSPACE            = 12;
  DSETUP_CB_MSG_BEGIN_INSTALL             = 13;
  DSETUP_CB_MSG_BEGIN_INSTALL_RUNTIME     = 14;
  DSETUP_CB_MSG_BEGIN_INSTALL_DRIVERS     = 15;
  DSETUP_CB_MSG_BEGIN_RESTORE_DRIVERS     = 16;
  DSETUP_CB_MSG_FILECOPYERROR             = 17;


  DSETUP_CB_UPGRADE_TYPE_MASK      = $000F;
  DSETUP_CB_UPGRADE_KEEP           = $0001;
  DSETUP_CB_UPGRADE_SAFE           = $0002;
  DSETUP_CB_UPGRADE_FORCE          = $0004;
  DSETUP_CB_UPGRADE_UNKNOWN        = $0008;

  DSETUP_CB_UPGRADE_HASWARNINGS    = $0100;
  DSETUP_CB_UPGRADE_CANTBACKUP     = $0200;

  DSETUP_CB_UPGRADE_DEVICE_ACTIVE  = $0800;

  DSETUP_CB_UPGRADE_DEVICE_DISPLAY = $1000;
  DSETUP_CB_UPGRADE_DEVICE_MEDIA   = $2000;


type
  PDSetup_CB_UpgradeInfo = ^TDSetup_CB_UpgradeInfo;
  TDSetup_CB_UpgradeInfo = record
    UpgradeFlags: DWORD;
  end;

  PDSetup_CB_FileCopyError = ^TDSetup_CB_FileCopyError;
  TDSetup_CB_FileCopyError = record
    dwError: DWORD;
  end;

//
// Data Structures
//
  PDirectXRegisterAppA = ^TDirectXRegisterAppA;
  TDirectXRegisterAppA = record
    dwSize: DWORD;
    dwFlags: DWORD;
    lpszApplicationName: PAnsiChar;
    lpGUID: PGUID;
    lpszFilename: PAnsiChar;
    lpszCommandLine: PAnsiChar;
    lpszPath: PAnsiChar;
    lpszCurrentDirectory: PAnsiChar;
  end;

  PDirectXRegisterApp2A = ^TDirectXRegisterApp2A;
  TDirectXRegisterApp2A = record
    dwSize: DWORD;
    dwFlags: DWORD;
    lpszApplicationName: PAnsiChar;
    lpGUID: PGUID;
    lpszFilename: PAnsiChar;
    lpszCommandLine: PAnsiChar;
    lpszPath: PAnsiChar;
    lpszCurrentDirectory: PAnsiChar;
    lpszLauncherName: PAnsiChar;
  end;

  PDirectXRegisterAppW = ^TDirectXRegisterAppW;
  TDirectXRegisterAppW = record
    dwSize: DWORD;
    dwFlags: DWORD;
    lpszApplicationName: PWideChar;
    lpGUID: PGUID;
    lpszFilename: PWideChar;
    lpszCommandLine: PWideChar;
    lpszPath: PWideChar;
    lpszCurrentDirectory: PWideChar;
  end;

  PDirectXRegisterApp2W = ^TDirectXRegisterApp2W;
  TDirectXRegisterApp2W = record
    dwSize: DWORD;
    dwFlags: DWORD;
    lpszApplicationName: PWideChar;
    lpGUID: PGUID;
    lpszFilename: PWideChar;
    lpszCommandLine: PWideChar;
    lpszPath: PWideChar;
    lpszCurrentDirectory: PWideChar;
    lpszLauncherName: PWideChar;
  end;

  PDirectXRegisterApp = ^TDirectXRegisterApp;
  PDirectXRegisterApp2 = ^TDirectXRegisterApp2;
{$IFDEF UNICODE}
  TDirectXRegisterApp = TDirectXRegisterAppW;
  TDirectXRegisterApp2 = TDirectXRegisterAppW2;
{$ELSE}
  TDirectXRegisterApp = TDirectXRegisterAppA;
  TDirectXRegisterApp2 = TDirectXRegisterApp2A;
{$ENDIF}

//
// API
//
var
  DirectXSetupW : function (hWnd: HWND; lpszRootPath: PWideChar; dwFlags: DWORD) : Integer; stdcall;
  DirectXSetupA : function (hWnd: HWND; lpszRootPath: PAnsiChar; dwFlags: DWORD) : Integer; stdcall;
  DirectXSetup : function (hWnd: HWND; lpszRootPath: PCharAW; dwFlags: DWORD) : Integer; stdcall;

  DirectXDeviceDriverSetupW : function (hWnd: HWND; lpszDriverClass: PWideChar;
     lpszDriverPath: PWideChar; dwFlags: DWORD) : Integer; stdcall;
  DirectXDeviceDriverSetupA : function (hWnd: HWND; lpszDriverClass: PAnsiChar;
     lpszDriverPath: PAnsiChar; dwFlags: DWORD) : Integer; stdcall;
  DirectXDeviceDriverSetup : function (hWnd: HWND; lpszDriverClass: PCharAW;
     lpszDriverPath: PCharAW; dwFlags: DWORD) : Integer; stdcall;

  DirectXRegisterApplicationW : function
     (hWnd: HWND; const lpDXRegApp: TDirectXRegisterAppW) : Integer; stdcall;
  DirectXRegisterApplicationA : function
     (hWnd: HWND; const lpDXRegApp: TDirectXRegisterAppA) : Integer; stdcall;
  DirectXRegisterApplication : function
     (hWnd: HWND; const lpDXRegApp: TDirectXRegisterApp) : Integer; stdcall;

  DirectXUnRegisterApplication : function
     (hWnd: HWND; const lpGUID: TGUID) : Integer; stdcall;

type
  TDSetup_Callback = function (Reason: DWORD; MsgType: DWORD; // Same as flags to MessageBox
      szMessage: PChar; szName: PChar; pInfo: Pointer) : DWORD; stdcall;

var
  DirectXSetupSetCallback : function (Callback: TDSetup_Callback) : Integer; stdcall;

  DirectXSetupGetVersion : function (out lpdwVersion, lpdwMinorVersion: DWORD) : Integer; stdcall;

implementation

(*==========================================================================
 *
 *  Copyright (C) 1995-1997 Microsoft Corporation.  All Rights Reserved.
 *
 *  File:       dsetup.h
 *  Content:    DirectXSetup, error codes and flags
 ***************************************************************************)

procedure LoadDSetup;

  function RegGetStringValue(Hive: HKEY; const KeyName, ValueName: string): string;
  var EnvKey  : HKEY;
      Buf     : array[0..255] of char;
      BufSize : DWord;
      RegType : DWord;
      rc      : DWord;
  begin
    Result := '';
    BufSize := Sizeof(Buf);
    ZeroMemory(@Buf, BufSize);
    RegType := REG_SZ;
    try
      if (RegOpenKeyEx(Hive, PChar(KeyName), 0, KEY_READ, EnvKey) = ERROR_SUCCESS) then
      begin
        try
          if (ValueName = '') then rc := RegQueryValueEx(EnvKey, nil, nil, @RegType, @Buf, @BufSize)
            else rc := RegQueryValueEx(EnvKey, PChar(ValueName), nil, @RegType, @Buf, @BufSize);
          if rc = ERROR_SUCCESS then Result := string(Buf);
        finally
          RegCloseKey(EnvKey);
        end;
      end;
    finally
      RegCloseKey(Hive);
    end;
  end;


  function ExistFile(const FileName: string): Boolean;
  var hFile: THandle;
  begin
    hFile := CreateFile(PChar(FileName), 0, 0, nil, OPEN_EXISTING, 0, 0);
    Result := hFile <> INVALID_HANDLE_VALUE;
    if hFile = INVALID_HANDLE_VALUE then CloseHandle(hFile);
  end;

  function GetDSetupDLLPath : string;
  begin
     Result := RegGetStringValue(HKEY_LOCAL_MACHINE,
                                 'Software\Microsoft\Windows\CurrentVersion\Uninstall\DirectXDrivers',
                                 'UninstallString');
     if Result <> '' then
       Result := Copy(Result,1,Length(Result)-Length('dxsetup.exe')) + 'DSetup.dll';
  end;

begin
  DSetupDLL := LoadLibrary(PChar(GetDSetupDLLPath));

  DirectXSetupA := GetProcAddress(DSetupDLL,'DirectXSetupA');
  DirectXSetupW := GetProcAddress(DSetupDLL,'DirectXSetupW');
{$IFDEF UNICODE}
  DirectXSetup := DirectXSetupW;
{$ELSE}
  DirectXSetup := DirectXSetupA;
{$ENDIF}

  DirectXDeviceDriverSetupA :=
      GetProcAddress(DSetupDLL,'DirectXDeviceDriverSetupA');
  DirectXDeviceDriverSetupW :=
      GetProcAddress(DSetupDLL,'DirectXDeviceDriverSetupW');
{$IFDEF UNICODE}
  DirectXDeviceDriverSetup := DirectXDeviceDriverSetupW;
{$ELSE}
  DirectXDeviceDriverSetup := DirectXDeviceDriverSetupA;
{$ENDIF}

  DirectXRegisterApplicationA :=
       GetProcAddress(DSetupDLL,'DirectXRegisterApplicationA');
  DirectXRegisterApplicationW :=
       GetProcAddress(DSetupDLL,'DirectXRegisterApplicationW');
{$IFDEF UNICODE}
  DirectXRegisterApplication := DirectXRegisterApplicationW;
{$ELSE}
  DirectXRegisterApplication := DirectXRegisterApplicationA;
{$ENDIF}

  DirectXUnRegisterApplication :=
      GetProcAddress(DSetupDLL,'DirectXUnRegisterApplication');

  DirectXSetupSetCallback :=
      GetProcAddress(DSetupDLL,'DirectXSetupSetCallback');

  DirectXSetupGetVersion := GetProcAddress(DSetupDLL,'DirectXSetupGetVersion');

end;

initialization
begin
  if not IsNTandDelphiRunning then
  begin
    LoadDSetup;
  end;
end;

finalization
begin
  FreeLibrary(DSetupDLL);
end;

end.
 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
911精品国产一区二区在线| 久久精品国产亚洲一区二区三区| 久久99国产精品免费网站| 91精品国产一区二区三区蜜臀 | 欧美美女网站色| 亚洲午夜av在线| 欧美日韩一区精品| 亚洲高清免费观看 | 日韩欧美www| 国产激情偷乱视频一区二区三区 | 亚洲国产成人自拍| 成人激情动漫在线观看| 亚洲美女一区二区三区| 欧美日韩一区二区三区四区| 蜜桃av噜噜一区| 国产亚洲欧美在线| 91免费在线播放| 香蕉成人伊视频在线观看| 精品国产一区二区三区久久影院| 国产一区二区0| 国产精品久久久久久久久免费桃花 | 一二三四区精品视频| 欧美日韩一区视频| 国产美女视频91| 亚洲天堂免费看| 欧美精品亚洲二区| 国产麻豆一精品一av一免费| 亚洲欧美另类久久久精品2019| 欧美视频完全免费看| 韩国v欧美v亚洲v日本v| 亚洲日本丝袜连裤袜办公室| 日韩视频免费观看高清完整版在线观看| 久久99精品国产麻豆婷婷洗澡| 中文字幕视频一区| 91精品国产欧美日韩| 成人视屏免费看| 免费在线观看成人| 亚洲人成电影网站色mp4| 日韩视频一区在线观看| 91免费视频网址| 国产不卡一区视频| 五月天欧美精品| 国产精品久久久久久久蜜臀| 欧美一区二区私人影院日本| 不卡的电影网站| 黄色日韩网站视频| 亚洲成人自拍一区| 中文字幕国产一区二区| 日韩欧美电影一区| 欧美视频一区二区| 97久久超碰精品国产| 狠狠色狠狠色综合系列| 亚洲综合久久av| 中文av一区二区| 精品久久五月天| 欧美日本视频在线| 91在线视频网址| 国产精品亚洲午夜一区二区三区| 午夜一区二区三区在线观看| 亚洲欧美在线另类| 久久久夜色精品亚洲| 欧美喷潮久久久xxxxx| 色婷婷综合久久| av中文字幕不卡| 国产成人免费xxxxxxxx| 狠狠久久亚洲欧美| 免费在线看一区| 日韩中文字幕亚洲一区二区va在线 | 亚洲欧洲韩国日本视频| 久久日韩精品一区二区五区| 日韩欧美国产一区二区三区| 欧美一区二区三区日韩| 7777精品久久久大香线蕉| 欧美伊人精品成人久久综合97| 99精品视频一区| 99国产精品国产精品久久| 99精品视频在线观看| 96av麻豆蜜桃一区二区| www.欧美色图| 91网上在线视频| 欧洲一区二区三区在线| 欧美午夜不卡在线观看免费| 欧美午夜免费电影| 91精品国产色综合久久不卡蜜臀 | 欧美在线色视频| 欧美在线三级电影| 欧美猛男超大videosgay| 欧美日韩午夜影院| 欧美一级理论性理论a| 日韩情涩欧美日韩视频| 2024国产精品| 国产精品私人影院| 亚洲欧美日韩中文字幕一区二区三区| 亚洲精选视频免费看| 亚洲一二三四在线| 日本欧美在线观看| 国产做a爰片久久毛片| 成人免费电影视频| 欧美性大战久久久久久久蜜臀| 欧美精品国产精品| 精品国产91九色蝌蚪| 国产女人18毛片水真多成人如厕| 18成人在线视频| 亚洲一区二区成人在线观看| 青青草91视频| 福利一区在线观看| 欧美影视一区在线| 欧美成人精精品一区二区频| 国产日韩欧美精品在线| 一个色妞综合视频在线观看| 免费精品99久久国产综合精品| 国产成人精品亚洲日本在线桃色| 色综合欧美在线| 日韩一区二区在线观看| 国产免费成人在线视频| 亚洲最大成人综合| 韩国女主播成人在线观看| 91在线观看美女| 日韩欧美国产麻豆| 一区二区三区丝袜| 韩国av一区二区三区在线观看| 色婷婷av一区二区三区之一色屋| 精品毛片乱码1区2区3区| 日韩一区日韩二区| 精品一区二区免费视频| 欧美综合久久久| 国产色91在线| 婷婷六月综合网| 91在线视频免费观看| 久久婷婷国产综合国色天香| 亚洲制服丝袜av| 成人一区二区三区视频在线观看| 欧美日韩大陆一区二区| 国产欧美日韩激情| 蜜臀国产一区二区三区在线播放| 色综合久久久网| 久久精品人人做人人爽人人| 日本亚洲视频在线| 91黄色在线观看| 欧美经典三级视频一区二区三区| 五月婷婷久久综合| 色八戒一区二区三区| 国产日韩欧美精品一区| 久久av老司机精品网站导航| 91传媒视频在线播放| 国产精品乱码人人做人人爱| 国产在线精品免费| 日韩三级在线免费观看| 亚洲动漫第一页| 91网站最新地址| 国产精品乱人伦| 成人黄色一级视频| 国产欧美一区二区三区鸳鸯浴| 精品在线播放午夜| 日韩一区二区在线观看视频播放| 午夜免费久久看| 欧美午夜精品久久久久久超碰 | 久久精品无码一区二区三区| 天天综合色天天| 欧美少妇bbb| 亚洲成年人影院| 欧美日韩在线直播| 亚洲一二三区视频在线观看| 色婷婷av一区| 亚洲乱码国产乱码精品精小说| 99久久久免费精品国产一区二区| 欧美高清在线精品一区| 成人黄色小视频在线观看| 欧美激情一区二区三区蜜桃视频| 精品在线播放免费| 国产婷婷一区二区| 岛国精品一区二区| 国产精品国产三级国产有无不卡 | 欧美剧在线免费观看网站| 亚洲一区二区三区爽爽爽爽爽| 在线观看三级视频欧美| 亚洲专区一二三| 欧美精品色综合| 捆绑变态av一区二区三区| 精品久久一区二区三区| 国产精品2024| 国产精品麻豆网站| 欧美艳星brazzers| 日韩中文字幕麻豆| 337p粉嫩大胆噜噜噜噜噜91av | 最新国产の精品合集bt伙计| av不卡在线播放| 一区二区三区四区视频精品免费 | 国产一区福利在线| 国产校园另类小说区| 99riav久久精品riav| 性做久久久久久| 久久午夜国产精品| 91网站在线播放| 免费不卡在线观看| 久久蜜桃av一区二区天堂 | 欧美久久久久久蜜桃| 国产一区二区福利视频| 亚洲色图视频免费播放| 欧美日韩高清一区二区|