1 #ifndef __DSETUP_H__ 2 #define __DSETUP_H__ 3 4 #include <windows.h> 5 6 #ifdef _WIN32 7 #define COM_NO_WINDOWS_H 8 #include <objbase.h> 9 #else 10 #endif 11 12 #ifdef __cplusplus 13 extern "C" { 14 #endif 15 16 enum _DSETUP_CB_PROGRESS_PHASE 17 { 18 DSETUP_INITIALIZING, 19 DSETUP_EXTRACTING, 20 DSETUP_COPYING, 21 DSETUP_FINALIZING 22 }; 23 24 typedef struct _DSETUP_CB_PROGRESS 25 { 26 DWORD dwPhase; 27 DWORD dwInPhaseMaximum; 28 DWORD dwInPhaseProgress; 29 DWORD dwOverallMaximum; 30 DWORD dwOverallProgress; 31 } DSETUP_CB_PROGRESS; 32 33 #ifdef _WIN32 34 35 INT WINAPI DirectXUnRegisterApplication( HWND hWnd, LPGUID lpGUID); 36 37 #ifndef ANSI_ONLY 38 typedef struct _DIRECTXREGISTERAPPW 39 { 40 DWORD dwSize; 41 DWORD dwFlags; 42 LPWSTR lpszApplicationName; 43 LPGUID lpGUID; 44 LPWSTR lpszFilename; 45 LPWSTR lpszCommandLine; 46 LPWSTR lpszPath; 47 LPWSTR lpszCurrentDirectory; 48 } DIRECTXREGISTERAPPW, *PDIRECTXREGISTERAPPW, *LPDIRECTXREGISTERAPPW; 49 50 typedef struct _DIRECTXREGISTERAPP2W 51 { 52 DWORD dwSize; 53 DWORD dwFlags; 54 LPWSTR lpszApplicationName; 55 LPGUID lpGUID; 56 LPWSTR lpszFilename; 57 LPWSTR lpszCommandLine; 58 LPWSTR lpszPath; 59 LPWSTR lpszCurrentDirectory; 60 LPWSTR lpszLauncherName; 61 } DIRECTXREGISTERAPP2W, *PDIRECTXREGISTERAPP2W, *LPDIRECTXREGISTERAPP2W; 62 63 INT WINAPI DirectXSetupW( HWND hWnd, LPWSTR lpszRootPath, DWORD dwFlags); 64 INT WINAPI DirectXRegisterApplicationW( HWND hWnd, LPVOID lpDXRegApp); 65 UINT WINAPI DirectXSetupGetEULAW( LPWSTR lpszEULA, UINT cchEULA, WORD LangID); 66 #endif 67 68 #ifndef UNICODE_ONLY 69 typedef struct _DIRECTXREGISTERAPPA 70 { 71 DWORD dwSize; 72 DWORD dwFlags; 73 LPSTR lpszApplicationName; 74 LPGUID lpGUID; 75 LPSTR lpszFilename; 76 LPSTR lpszCommandLine; 77 LPSTR lpszPath; 78 LPSTR lpszCurrentDirectory; 79 } DIRECTXREGISTERAPPA, *PDIRECTXREGISTERAPPA, *LPDIRECTXREGISTERAPPA; 80 81 typedef struct _DIRECTXREGISTERAPP2A 82 { 83 DWORD dwSize; 84 DWORD dwFlags; 85 LPSTR lpszApplicationName; 86 LPGUID lpGUID; 87 LPSTR lpszFilename; 88 LPSTR lpszCommandLine; 89 LPSTR lpszPath; 90 LPSTR lpszCurrentDirectory; 91 LPSTR lpszLauncherName; 92 } DIRECTXREGISTERAPP2A, *PDIRECTXREGISTERAPP2A, *LPDIRECTXREGISTERAPP2A; 93 94 INT WINAPI DirectXSetupA( HWND hWnd, LPSTR lpszRootPath, DWORD dwFlags); 95 INT WINAPI DirectXRegisterApplicationA( HWND hWnd, LPVOID lpDXRegApp); 96 UINT WINAPI DirectXSetupGetEULAA( LPSTR lpszEULA, UINT cchEULA, WORD LangID); 97 #endif 98 99 #ifdef UNICODE 100 typedef DIRECTXREGISTERAPPW DIRECTXREGISTERAPP; 101 typedef PDIRECTXREGISTERAPPW PDIRECTXREGISTERAPP; 102 typedef LPDIRECTXREGISTERAPPW LPDIRECTXREGISTERAPP; 103 typedef DIRECTXREGISTERAPP2W DIRECTXREGISTERAPP2; 104 typedef PDIRECTXREGISTERAPP2W PDIRECTXREGISTERAPP2; 105 typedef LPDIRECTXREGISTERAPP2W LPDIRECTXREGISTERAPP2; 106 107 typedef INT (WINAPI * LPDIRECTXSETUP)(HWND, LPWSTR, DWORD); 108 typedef INT (WINAPI * LPDIRECTXREGISTERAPPLICATION)(HWND, LPVOID); 109 typedef UINT (WINAPI * LPDIRECTXSETUPGETEULA)(LPWSTR, UINT, WORD); 110 111 #define DirectXSetup DirectXSetupW 112 #define DirectXRegisterApplication DirectXRegisterApplicationW 113 #define DirectXSetupGetEULA DirectXSetupGetEULAW 114 115 116 117 #else 118 typedef DIRECTXREGISTERAPPA DIRECTXREGISTERAPP; 119 typedef PDIRECTXREGISTERAPPA PDIRECTXREGISTERAPP; 120 typedef LPDIRECTXREGISTERAPPA LPDIRECTXREGISTERAPP; 121 typedef DIRECTXREGISTERAPP2A DIRECTXREGISTERAPP2; 122 typedef PDIRECTXREGISTERAPP2A PDIRECTXREGISTERAPP2; 123 typedef LPDIRECTXREGISTERAPP2A LPDIRECTXREGISTERAPP2; 124 125 typedef INT (WINAPI * LPDIRECTXSETUP)(HWND, LPSTR, DWORD); 126 typedef INT (WINAPI * LPDIRECTXREGISTERAPPLICATION)(HWND, LPVOID); 127 typedef UINT (WINAPI * LPDIRECTXSETUPGETEULA)(LPSTR, UINT, WORD); 128 129 #define DirectXSetup DirectXSetupA 130 #define DirectXRegisterApplication DirectXRegisterApplicationA 131 #define DirectXSetupGetEULA DirectXSetupGetEULAA 132 133 #endif 134 135 typedef DWORD (*DSETUP_CALLBACK)( DWORD Reason, DWORD MsgType, LPSTR szMessage, 136 LPSTR szName, void *pInfo); 137 138 INT WINAPI DirectXSetupSetCallback(DSETUP_CALLBACK Callback); 139 INT WINAPI DirectXSetupGetVersion(DWORD *lpdwVersion, DWORD *lpdwMinorVersion); 140 INT WINAPI DirectXSetupShowEULA(HWND hWndParent); 141 142 #endif 143 144 #define FOURCC_VERS mmioFOURCC('v','e','r','s') 145 #define DSETUPERR_SUCCESS_RESTART 1 146 #define DSETUPERR_SUCCESS 0 147 #define DSETUPERR_BADWINDOWSVERSION -1 148 #define DSETUPERR_SOURCEFILENOTFOUND -2 149 #define DSETUPERR_NOCOPY -5 150 #define DSETUPERR_OUTOFDISKSPACE -6 151 #define DSETUPERR_CANTFINDINF -7 152 #define DSETUPERR_CANTFINDDIR -8 153 #define DSETUPERR_INTERNAL -9 154 #define DSETUPERR_UNKNOWNOS -11 155 #define DSETUPERR_NEWERVERSION -14 156 #define DSETUPERR_NOTADMIN -15 157 #define DSETUPERR_UNSUPPORTEDPROCESSOR -16 158 #define DSETUPERR_MISSINGCAB_MANAGEDDX -17 159 #define DSETUPERR_NODOTNETFRAMEWORKINSTALLED -18 160 #define DSETUPERR_CABDOWNLOADFAIL -19 161 #define DSETUP_DDRAWDRV 0x00000008 162 #define DSETUP_DSOUNDDRV 0x00000010 163 #define DSETUP_DXCORE 0x00010000 164 #define DSETUP_DIRECTX (DSETUP_DXCORE|DSETUP_DDRAWDRV|DSETUP_DSOUNDDRV) 165 #define DSETUP_MANAGEDDX 0x00004000 166 #define DSETUP_TESTINSTALL 0x00020000 167 #define DSETUP_DDRAW 0x00000001 168 #define DSETUP_DSOUND 0x00000002 169 #define DSETUP_DPLAY 0x00000004 170 #define DSETUP_DPLAYSP 0x00000020 171 #define DSETUP_DVIDEO 0x00000040 172 #define DSETUP_D3D 0x00000200 173 #define DSETUP_DINPUT 0x00000800 174 #define DSETUP_DIRECTXSETUP 0x00001000 175 #define DSETUP_NOUI 0x00002000 176 #define DSETUP_PROMPTFORDRIVERS 0x10000000 177 #define DSETUP_RESTOREDRIVERS 0x20000000 178 #define DSETUP_CB_MSG_NOMESSAGE 0 179 #define DSETUP_CB_MSG_INTERNAL_ERROR 10 180 #define DSETUP_CB_MSG_BEGIN_INSTALL 13 181 #define DSETUP_CB_MSG_BEGIN_INSTALL_RUNTIME 14 182 #define DSETUP_CB_MSG_PROGRESS 18 183 #define DSETUP_CB_MSG_WARNING_DISABLED_COMPONENT 19 184 185 186 #ifdef __cplusplus 187 }; 188 #endif 189 190 #endif 191