home *** CD-ROM | disk | FTP | other *** search
/ PC Format (South-Africa) 2001 May / PCFMay2001.iso / Xenon / C++ / FreeCommandLineTools.exe / Include / dsetup.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-01-31  |  10.1 KB  |  316 lines

  1. /*==========================================================================
  2.  *
  3.  *  Copyright (C) 1995-1997 Microsoft Corporation.  All Rights Reserved.
  4.  *
  5.  *  File:       dsetup.h
  6.  *  Content:    DirectXSetup, error codes and flags
  7.  ***************************************************************************/
  8.  
  9. #ifndef __DSETUP_H__
  10. #pragma option push -b -a8 -pc -A- /*P_O_Push*/
  11. #define __DSETUP_H__
  12.  
  13. #include <windows.h>      // windows stuff
  14.  
  15. #ifdef _WIN32
  16. #define COM_NO_WINDOWS_H
  17. #include <objbase.h>
  18. #else
  19. #endif
  20.  
  21.  
  22. #ifdef __cplusplus
  23. extern "C" {
  24. #endif
  25.  
  26. typedef struct _DLSVERSION {
  27.  DWORD dwVersionMS;
  28.  DWORD dwVersionLS;
  29. } DLSVERSION, FAR * LPDLSVERSION;
  30.  
  31. #define FOURCC_VERS mmioFOURCC('v','e','r','s')
  32.  
  33. // DSETUP Error Codes, must remain compatible with previous setup.
  34. #define DSETUPERR_SUCCESS_RESTART        1
  35. #define DSETUPERR_SUCCESS                0
  36. #define DSETUPERR_BADWINDOWSVERSION     -1
  37. #define DSETUPERR_SOURCEFILENOTFOUND    -2
  38. #define DSETUPERR_BADSOURCESIZE         -3
  39. #define DSETUPERR_BADSOURCETIME         -4
  40. #define DSETUPERR_NOCOPY                -5
  41. #define DSETUPERR_OUTOFDISKSPACE        -6
  42. #define DSETUPERR_CANTFINDINF           -7
  43. #define DSETUPERR_CANTFINDDIR           -8
  44. #define DSETUPERR_INTERNAL              -9
  45. #define DSETUPERR_NTWITHNO3D            -10  /* REM: obsolete, you'll never see this */
  46. #define DSETUPERR_UNKNOWNOS             -11
  47. #define DSETUPERR_USERHITCANCEL         -12
  48. #define DSETUPERR_NOTPREINSTALLEDONNT   -13
  49. #define DSETUPERR_NEWERVERSION            -14
  50.  
  51. // DSETUP flags. DirectX 5.0 apps should use these flags only.
  52. #define DSETUP_DDRAWDRV         0x00000008      /* install DirectDraw Drivers           */
  53. #define DSETUP_DSOUNDDRV        0x00000010      /* install DirectSound Drivers          */
  54. #define DSETUP_DXCORE           0x00010000    /* install DirectX runtime              */
  55. #define DSETUP_DIRECTX  (DSETUP_DXCORE|DSETUP_DDRAWDRV|DSETUP_DSOUNDDRV)
  56. #define DSETUP_TESTINSTALL      0x00020000      /* just test install, don't do anything */
  57. #define DSETUP_USEROLDERFLAG    0x02000000        /* enable return DSETUPERR_NEWERVERSION */
  58. // Bug #22730 
  59.     // #define DSETUP_NTINSTALL        0x00080000        /* install on Win2K platform */
  60.  
  61. // These OBSOLETE flags are here for compatibility with pre-DX5 apps only.
  62. // They are present to allow DX3 apps to be recompiled with DX5 and still work.
  63. // DO NOT USE THEM for DX5. They will go away in future DX releases.
  64. #define DSETUP_DDRAW            0x00000001      /* OBSOLETE. install DirectDraw           */
  65. #define DSETUP_DSOUND           0x00000002      /* OBSOLETE. install DirectSound          */
  66. #define DSETUP_DPLAY            0x00000004      /* OBSOLETE. install DirectPlay           */
  67. #define DSETUP_DPLAYSP          0x00000020      /* OBSOLETE. install DirectPlay Providers */
  68. #define DSETUP_DVIDEO           0x00000040      /* OBSOLETE. install DirectVideo          */
  69. #define DSETUP_D3D              0x00000200      /* OBSOLETE. install Direct3D             */
  70. #define DSETUP_DINPUT           0x00000800      /* OBSOLETE. install DirectInput          */
  71. #define DSETUP_DIRECTXSETUP     0x00001000      /* OBSOLETE. install DirectXSetup DLL's   */
  72. #define DSETUP_NOUI             0x00002000      /* OBSOLETE. install DirectX with NO UI   */
  73. #define DSETUP_PROMPTFORDRIVERS 0x10000000      /* OBSOLETE. prompt when replacing display/audio drivers */
  74. #define DSETUP_RESTOREDRIVERS   0x20000000      /* OBSOLETE. restore display/audio drivers */
  75.  
  76.  
  77.  
  78. //******************************************************************
  79. // DirectX Setup Callback mechanism
  80. //******************************************************************
  81.  
  82. // DSETUP Message Info Codes, passed to callback as Reason parameter.
  83. #define DSETUP_CB_MSG_NOMESSAGE                     0
  84. #define DSETUP_CB_MSG_CANTINSTALL_UNKNOWNOS         1
  85. #define DSETUP_CB_MSG_CANTINSTALL_NT                2
  86. #define DSETUP_CB_MSG_CANTINSTALL_BETA              3
  87. #define DSETUP_CB_MSG_CANTINSTALL_NOTWIN32          4
  88. #define DSETUP_CB_MSG_CANTINSTALL_WRONGLANGUAGE     5
  89. #define DSETUP_CB_MSG_CANTINSTALL_WRONGPLATFORM     6
  90. #define DSETUP_CB_MSG_PREINSTALL_NT                 7
  91. #define DSETUP_CB_MSG_NOTPREINSTALLEDONNT           8
  92. #define DSETUP_CB_MSG_SETUP_INIT_FAILED             9
  93. #define DSETUP_CB_MSG_INTERNAL_ERROR                10
  94. #define DSETUP_CB_MSG_CHECK_DRIVER_UPGRADE          11
  95. #define DSETUP_CB_MSG_OUTOFDISKSPACE                12
  96. #define DSETUP_CB_MSG_BEGIN_INSTALL                 13
  97. #define DSETUP_CB_MSG_BEGIN_INSTALL_RUNTIME         14
  98. #define DSETUP_CB_MSG_BEGIN_INSTALL_DRIVERS         15
  99. #define DSETUP_CB_MSG_BEGIN_RESTORE_DRIVERS         16
  100. #define DSETUP_CB_MSG_FILECOPYERROR                 17
  101.  
  102.  
  103. #define DSETUP_CB_UPGRADE_TYPE_MASK             0x000F
  104. #define DSETUP_CB_UPGRADE_KEEP                  0x0001
  105. #define DSETUP_CB_UPGRADE_SAFE                  0x0002
  106. #define DSETUP_CB_UPGRADE_FORCE                 0x0004
  107. #define DSETUP_CB_UPGRADE_UNKNOWN               0x0008
  108.  
  109. #define DSETUP_CB_UPGRADE_HASWARNINGS           0x0100
  110. #define DSETUP_CB_UPGRADE_CANTBACKUP            0x0200
  111.  
  112. #define DSETUP_CB_UPGRADE_DEVICE_ACTIVE         0x0800
  113.  
  114. #define DSETUP_CB_UPGRADE_DEVICE_DISPLAY        0x1000
  115. #define DSETUP_CB_UPGRADE_DEVICE_MEDIA          0x2000
  116.  
  117.  
  118. typedef struct _DSETUP_CB_UPGRADEINFO
  119. {
  120.     DWORD UpgradeFlags;
  121. } DSETUP_CB_UPGRADEINFO;
  122.  
  123. typedef struct _DSETUP_CB_FILECOPYERROR
  124. {
  125.     DWORD dwError;
  126. } DSETUP_CB_FILECOPYERROR;
  127.  
  128.  
  129. #ifdef _WIN32
  130. //
  131. // Data Structures
  132. //
  133. #ifndef UNICODE_ONLY
  134.  
  135. typedef struct _DIRECTXREGISTERAPPA {
  136.     DWORD    dwSize;
  137.     DWORD    dwFlags;
  138.     LPSTR    lpszApplicationName;
  139.     LPGUID   lpGUID;
  140.     LPSTR    lpszFilename;
  141.     LPSTR    lpszCommandLine;
  142.     LPSTR    lpszPath;
  143.     LPSTR    lpszCurrentDirectory;
  144. } DIRECTXREGISTERAPPA, *PDIRECTXREGISTERAPPA, *LPDIRECTXREGISTERAPPA;
  145.  
  146. typedef struct _DIRECTXREGISTERAPP2A {
  147.     DWORD    dwSize;
  148.     DWORD    dwFlags;
  149.     LPSTR    lpszApplicationName;
  150.     LPGUID   lpGUID;
  151.     LPSTR    lpszFilename;
  152.     LPSTR    lpszCommandLine;
  153.     LPSTR    lpszPath;
  154.     LPSTR    lpszCurrentDirectory;
  155.     LPSTR    lpszLauncherName;
  156. } DIRECTXREGISTERAPP2A, *PDIRECTXREGISTERAPP2A, *LPDIRECTXREGISTERAPP2A;
  157.  
  158. #endif //!UNICODE_ONLY
  159. #ifndef ANSI_ONLY
  160.  
  161. typedef struct _DIRECTXREGISTERAPPW {
  162.     DWORD    dwSize;
  163.     DWORD    dwFlags;
  164.     LPWSTR   lpszApplicationName;
  165.     LPGUID   lpGUID;
  166.     LPWSTR   lpszFilename;
  167.     LPWSTR   lpszCommandLine;
  168.     LPWSTR   lpszPath;
  169.     LPWSTR   lpszCurrentDirectory;
  170. } DIRECTXREGISTERAPPW, *PDIRECTXREGISTERAPPW, *LPDIRECTXREGISTERAPPW;
  171.  
  172. typedef struct _DIRECTXREGISTERAPP2W {
  173.     DWORD    dwSize;
  174.     DWORD    dwFlags;
  175.     LPWSTR   lpszApplicationName;
  176.     LPGUID   lpGUID;
  177.     LPWSTR   lpszFilename;
  178.     LPWSTR   lpszCommandLine;
  179.     LPWSTR   lpszPath;
  180.     LPWSTR   lpszCurrentDirectory;
  181.     LPWSTR  lpszLauncherName;
  182. } DIRECTXREGISTERAPP2W, *PDIRECTXREGISTERAPP2W, *LPDIRECTXREGISTERAPP2W;
  183. #endif //!ANSI_ONLY
  184. #ifdef UNICODE
  185. typedef DIRECTXREGISTERAPPW DIRECTXREGISTERAPP;
  186. typedef PDIRECTXREGISTERAPPW PDIRECTXREGISTERAPP;
  187. typedef LPDIRECTXREGISTERAPPW LPDIRECTXREGISTERAPP;
  188. typedef DIRECTXREGISTERAPP2W DIRECTXREGISTERAPP2;
  189. typedef PDIRECTXREGISTERAPP2W PDIRECTXREGISTERAPP2;
  190. typedef LPDIRECTXREGISTERAPP2W LPDIRECTXREGISTERAPP2;
  191. #else
  192. typedef DIRECTXREGISTERAPPA DIRECTXREGISTERAPP;
  193. typedef PDIRECTXREGISTERAPPA PDIRECTXREGISTERAPP;
  194. typedef LPDIRECTXREGISTERAPPA LPDIRECTXREGISTERAPP;
  195. typedef DIRECTXREGISTERAPP2A DIRECTXREGISTERAPP2;
  196. typedef PDIRECTXREGISTERAPP2A PDIRECTXREGISTERAPP2;
  197. typedef LPDIRECTXREGISTERAPP2A LPDIRECTXREGISTERAPP2;
  198. #endif // UNICODE
  199.  
  200.  
  201. //
  202. // API
  203. //
  204.  
  205. #ifndef UNICODE_ONLY
  206. INT
  207. WINAPI
  208. DirectXSetupA(
  209.     HWND  hWnd,
  210.     LPSTR lpszRootPath,
  211.     DWORD dwFlags
  212.     );
  213. #endif //!UNICODE_ONLY
  214. #ifndef ANSI_ONLY
  215. INT
  216. WINAPI
  217. DirectXSetupW(
  218.     HWND   hWnd,
  219.     LPWSTR lpszRootPath,
  220.     DWORD  dwFlags
  221.     );
  222. #endif //!ANSI_ONLY
  223. #ifdef UNICODE
  224. #define DirectXSetup  DirectXSetupW
  225. #else
  226. #define DirectXSetup  DirectXSetupA
  227. #endif // !UNICODE
  228.  
  229.  
  230. #ifndef UNICODE_ONLY
  231. INT
  232. WINAPI
  233. DirectXDeviceDriverSetupA(
  234.     HWND  hWnd,
  235.     LPSTR lpszDriverClass,
  236.     LPSTR lpszDriverPath,
  237.     DWORD dwFlags
  238.     );
  239. #endif //!UNICODE_ONLY
  240. #ifndef ANSI_ONLY
  241. INT
  242. WINAPI
  243. DirectXDeviceDriverSetupW(
  244.     HWND   hWnd,
  245.     LPWSTR lpszDriverClass,
  246.     LPWSTR lpszDriverPath,
  247.     DWORD  dwFlags
  248.     );
  249. #endif //!ANSI_ONLY
  250. #ifdef UNICODE
  251. #define DirectXDeviceDriverSetup  DirectXDeviceDriverSetupW
  252. #else
  253. #define DirectXDeviceDriverSetup  DirectXDeviceDriverSetupA
  254. #endif // !UNICODE
  255.  
  256. #ifndef UNICODE_ONLY
  257. INT
  258. WINAPI
  259. DirectXRegisterApplicationA(
  260.     HWND                  hWnd,
  261.     LPVOID                  lpDXRegApp
  262.     );
  263. #endif //!UNICODE_ONLY
  264. #ifndef ANSI_ONLY
  265. INT
  266. WINAPI
  267. DirectXRegisterApplicationW(
  268.     HWND                  hWnd,
  269.     LPVOID                  lpDXRegApp
  270.     );
  271. #endif //!ANSI_ONLY
  272. #ifdef UNICODE
  273. #define DirectXRegisterApplication  DirectXRegisterApplicationW
  274. #else
  275. #define DirectXRegisterApplication  DirectXRegisterApplicationA
  276. #endif // !UNICODE
  277.  
  278. INT
  279. WINAPI
  280. DirectXUnRegisterApplication(
  281.     HWND     hWnd,
  282.     LPGUID   lpGUID
  283.     );
  284.  
  285. //
  286. // Function Pointers
  287. //
  288. #ifdef UNICODE
  289. typedef INT (WINAPI * LPDIRECTXSETUP)(HWND, LPWSTR, DWORD);
  290. typedef INT (WINAPI * LPDIRECTXDEVICEDRIVERSETUP)(HWND, LPWSTR, LPSTR, DWORD);
  291. typedef INT (WINAPI * LPDIRECTXREGISTERAPPLICATION)(HWND, LPVOID);
  292. #else
  293. typedef INT (WINAPI * LPDIRECTXSETUP)(HWND, LPSTR, DWORD);
  294. typedef INT (WINAPI * LPDIRECTXDEVICEDRIVERSETUP)(HWND, LPSTR, LPSTR, DWORD);
  295. typedef INT (WINAPI * LPDIRECTXREGISTERAPPLICATION)(HWND, LPVOID);
  296. #endif // UNICODE
  297.  
  298. typedef DWORD (FAR PASCAL * DSETUP_CALLBACK)(DWORD Reason,
  299.                                   DWORD MsgType,       /* Same as flags to MessageBox */
  300.                                   LPSTR szMessage,
  301.                                   LPSTR szName,
  302.                                   void *pInfo);
  303.  
  304. INT WINAPI DirectXSetupSetCallback(DSETUP_CALLBACK Callback);
  305. INT WINAPI DirectXSetupGetVersion(DWORD *lpdwVersion, DWORD *lpdwMinorVersion);
  306.  
  307. #endif // WIN32
  308.  
  309.  
  310. #ifdef __cplusplus
  311. };
  312. #endif
  313.  
  314. #pragma option pop /*P_O_Pop*/
  315. #endif
  316.