home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the 3D Game Programming Gurus / gurus.iso / DirectX / dx9sdkcp.exe / SDK (C++) / Include / dsetup.h < prev    next >
Encoding:
C/C++ Source or Header  |  2002-12-11  |  8.7 KB  |  288 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. #define __DSETUP_H__
  11.  
  12. #include <windows.h>      // windows stuff
  13.  
  14. #ifdef _WIN32
  15. #define COM_NO_WINDOWS_H
  16. #include <objbase.h>
  17. #else
  18. #endif
  19.  
  20.  
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24.  
  25. #define FOURCC_VERS mmioFOURCC('v','e','r','s')
  26.  
  27. // DSETUP Error Codes, must remain compatible with previous setup.
  28. #define DSETUPERR_SUCCESS_RESTART        1
  29. #define DSETUPERR_SUCCESS                0
  30. #define DSETUPERR_BADWINDOWSVERSION     -1
  31. #define DSETUPERR_SOURCEFILENOTFOUND    -2
  32. #define DSETUPERR_NOCOPY                -5
  33. #define DSETUPERR_OUTOFDISKSPACE        -6
  34. #define DSETUPERR_CANTFINDINF           -7
  35. #define DSETUPERR_CANTFINDDIR           -8
  36. #define DSETUPERR_INTERNAL              -9
  37. #define DSETUPERR_UNKNOWNOS             -11
  38. #define DSETUPERR_NEWERVERSION          -14
  39. #define DSETUPERR_NOTADMIN              -15
  40. #define DSETUPERR_UNSUPPORTEDPROCESSOR  -16
  41. #define DSETUPERR_MISSINGCAB_MANAGEDDX  -17
  42. #define DSETUPERR_NODOTNETFRAMEWORKINSTALLED -18
  43. #define DSETUPERR_CABDOWNLOADFAIL       -19
  44.  
  45. // DSETUP flags. DirectX 5.0 apps should use these flags only.
  46. #define DSETUP_DDRAWDRV         0x00000008      /* install DirectDraw Drivers           */
  47. #define DSETUP_DSOUNDDRV        0x00000010      /* install DirectSound Drivers          */
  48. #define DSETUP_DXCORE           0x00010000      /* install DirectX runtime              */
  49. #define DSETUP_DIRECTX  (DSETUP_DXCORE|DSETUP_DDRAWDRV|DSETUP_DSOUNDDRV)
  50. #define DSETUP_MANAGEDDX        0x00004000      /* install managed DirectX              */
  51. #define DSETUP_TESTINSTALL      0x00020000      /* just test install, don't do anything */
  52.  
  53. // These OBSOLETE flags are here for compatibility with pre-DX5 apps only.
  54. // They are present to allow DX3 apps to be recompiled with DX5 and still work.
  55. // DO NOT USE THEM for DX5. They will go away in future DX releases.
  56. #define DSETUP_DDRAW            0x00000001      /* OBSOLETE. install DirectDraw           */
  57. #define DSETUP_DSOUND           0x00000002      /* OBSOLETE. install DirectSound          */
  58. #define DSETUP_DPLAY            0x00000004      /* OBSOLETE. install DirectPlay           */
  59. #define DSETUP_DPLAYSP          0x00000020      /* OBSOLETE. install DirectPlay Providers */
  60. #define DSETUP_DVIDEO           0x00000040      /* OBSOLETE. install DirectVideo          */
  61. #define DSETUP_D3D              0x00000200      /* OBSOLETE. install Direct3D             */
  62. #define DSETUP_DINPUT           0x00000800      /* OBSOLETE. install DirectInput          */
  63. #define DSETUP_DIRECTXSETUP     0x00001000      /* OBSOLETE. install DirectXSetup DLL's   */
  64. #define DSETUP_NOUI             0x00002000      /* OBSOLETE. install DirectX with NO UI   */
  65. #define DSETUP_PROMPTFORDRIVERS 0x10000000      /* OBSOLETE. prompt when replacing display/audio drivers */
  66. #define DSETUP_RESTOREDRIVERS   0x20000000      /* OBSOLETE. restore display/audio drivers */
  67.  
  68.  
  69.  
  70. //******************************************************************
  71. // DirectX Setup Callback mechanism
  72. //******************************************************************
  73.  
  74. // DSETUP Message Info Codes, passed to callback as Reason parameter.
  75. #define DSETUP_CB_MSG_NOMESSAGE                     0
  76. #define DSETUP_CB_MSG_INTERNAL_ERROR                10
  77. #define DSETUP_CB_MSG_BEGIN_INSTALL                 13
  78. #define DSETUP_CB_MSG_BEGIN_INSTALL_RUNTIME         14
  79. #define DSETUP_CB_MSG_PROGRESS                      18
  80. #define DSETUP_CB_MSG_WARNING_DISABLED_COMPONENT    19
  81.  
  82.  
  83.  
  84.  
  85.  
  86. typedef struct _DSETUP_CB_PROGRESS
  87. {
  88.     DWORD dwPhase;
  89.     DWORD dwInPhaseMaximum;
  90.     DWORD dwInPhaseProgress;
  91.     DWORD dwOverallMaximum;
  92.     DWORD dwOverallProgress;
  93. } DSETUP_CB_PROGRESS;
  94.  
  95.  
  96. enum _DSETUP_CB_PROGRESS_PHASE
  97. {
  98.     DSETUP_INITIALIZING,
  99.     DSETUP_EXTRACTING,
  100.     DSETUP_COPYING,
  101.     DSETUP_FINALIZING
  102. };
  103.  
  104.  
  105. #ifdef _WIN32
  106. //
  107. // Data Structures
  108. //
  109. #ifndef UNICODE_ONLY
  110.  
  111. typedef struct _DIRECTXREGISTERAPPA {
  112.     DWORD    dwSize;
  113.     DWORD    dwFlags;
  114.     LPSTR    lpszApplicationName;
  115.     LPGUID   lpGUID;
  116.     LPSTR    lpszFilename;
  117.     LPSTR    lpszCommandLine;
  118.     LPSTR    lpszPath;
  119.     LPSTR    lpszCurrentDirectory;
  120. } DIRECTXREGISTERAPPA, *PDIRECTXREGISTERAPPA, *LPDIRECTXREGISTERAPPA;
  121.  
  122. typedef struct _DIRECTXREGISTERAPP2A {
  123.     DWORD    dwSize;
  124.     DWORD    dwFlags;
  125.     LPSTR    lpszApplicationName;
  126.     LPGUID   lpGUID;
  127.     LPSTR    lpszFilename;
  128.     LPSTR    lpszCommandLine;
  129.     LPSTR    lpszPath;
  130.     LPSTR    lpszCurrentDirectory;
  131.     LPSTR    lpszLauncherName;
  132. } DIRECTXREGISTERAPP2A, *PDIRECTXREGISTERAPP2A, *LPDIRECTXREGISTERAPP2A;
  133.  
  134. #endif //!UNICODE_ONLY
  135. #ifndef ANSI_ONLY
  136.  
  137. typedef struct _DIRECTXREGISTERAPPW {
  138.     DWORD    dwSize;
  139.     DWORD    dwFlags;
  140.     LPWSTR   lpszApplicationName;
  141.     LPGUID   lpGUID;
  142.     LPWSTR   lpszFilename;
  143.     LPWSTR   lpszCommandLine;
  144.     LPWSTR   lpszPath;
  145.     LPWSTR   lpszCurrentDirectory;
  146. } DIRECTXREGISTERAPPW, *PDIRECTXREGISTERAPPW, *LPDIRECTXREGISTERAPPW;
  147.  
  148. typedef struct _DIRECTXREGISTERAPP2W {
  149.     DWORD    dwSize;
  150.     DWORD    dwFlags;
  151.     LPWSTR   lpszApplicationName;
  152.     LPGUID   lpGUID;
  153.     LPWSTR   lpszFilename;
  154.     LPWSTR   lpszCommandLine;
  155.     LPWSTR   lpszPath;
  156.     LPWSTR   lpszCurrentDirectory;
  157.     LPWSTR  lpszLauncherName;
  158. } DIRECTXREGISTERAPP2W, *PDIRECTXREGISTERAPP2W, *LPDIRECTXREGISTERAPP2W;
  159. #endif //!ANSI_ONLY
  160. #ifdef UNICODE
  161. typedef DIRECTXREGISTERAPPW DIRECTXREGISTERAPP;
  162. typedef PDIRECTXREGISTERAPPW PDIRECTXREGISTERAPP;
  163. typedef LPDIRECTXREGISTERAPPW LPDIRECTXREGISTERAPP;
  164. typedef DIRECTXREGISTERAPP2W DIRECTXREGISTERAPP2;
  165. typedef PDIRECTXREGISTERAPP2W PDIRECTXREGISTERAPP2;
  166. typedef LPDIRECTXREGISTERAPP2W LPDIRECTXREGISTERAPP2;
  167. #else
  168. typedef DIRECTXREGISTERAPPA DIRECTXREGISTERAPP;
  169. typedef PDIRECTXREGISTERAPPA PDIRECTXREGISTERAPP;
  170. typedef LPDIRECTXREGISTERAPPA LPDIRECTXREGISTERAPP;
  171. typedef DIRECTXREGISTERAPP2A DIRECTXREGISTERAPP2;
  172. typedef PDIRECTXREGISTERAPP2A PDIRECTXREGISTERAPP2;
  173. typedef LPDIRECTXREGISTERAPP2A LPDIRECTXREGISTERAPP2;
  174. #endif // UNICODE
  175.  
  176.  
  177. //
  178. // API
  179. //
  180.  
  181. #ifndef UNICODE_ONLY
  182. INT
  183. WINAPI
  184. DirectXSetupA(
  185.     HWND  hWnd,
  186.     LPSTR lpszRootPath,
  187.     DWORD dwFlags
  188.     );
  189. #endif //!UNICODE_ONLY
  190. #ifndef ANSI_ONLY
  191. INT
  192. WINAPI
  193. DirectXSetupW(
  194.     HWND   hWnd,
  195.     LPWSTR lpszRootPath,
  196.     DWORD  dwFlags
  197.     );
  198. #endif //!ANSI_ONLY
  199. #ifdef UNICODE
  200. #define DirectXSetup  DirectXSetupW
  201. #else
  202. #define DirectXSetup  DirectXSetupA
  203. #endif // !UNICODE
  204.  
  205. #ifndef UNICODE_ONLY
  206. INT
  207. WINAPI
  208. DirectXRegisterApplicationA(
  209.     HWND                  hWnd,
  210.     LPVOID                lpDXRegApp
  211.     );
  212. #endif //!UNICODE_ONLY
  213. #ifndef ANSI_ONLY
  214. INT
  215. WINAPI
  216. DirectXRegisterApplicationW(
  217.     HWND                  hWnd,
  218.     LPVOID                lpDXRegApp
  219.     );
  220. #endif //!ANSI_ONLY
  221. #ifdef UNICODE
  222. #define DirectXRegisterApplication  DirectXRegisterApplicationW
  223. #else
  224. #define DirectXRegisterApplication  DirectXRegisterApplicationA
  225. #endif // !UNICODE
  226.  
  227. INT
  228. WINAPI
  229. DirectXUnRegisterApplication(
  230.     HWND     hWnd,
  231.     LPGUID   lpGUID
  232.     );
  233.  
  234. //
  235. // Function Pointers
  236. //
  237. #ifdef UNICODE
  238. typedef INT (WINAPI * LPDIRECTXSETUP)(HWND, LPWSTR, DWORD);
  239. typedef INT (WINAPI * LPDIRECTXREGISTERAPPLICATION)(HWND, LPVOID);
  240. #else
  241. typedef INT (WINAPI * LPDIRECTXSETUP)(HWND, LPSTR, DWORD);
  242. typedef INT (WINAPI * LPDIRECTXREGISTERAPPLICATION)(HWND, LPVOID);
  243. #endif // UNICODE
  244.  
  245. typedef DWORD (FAR PASCAL * DSETUP_CALLBACK)(DWORD Reason,
  246.                                   DWORD MsgType,       /* Same as flags to MessageBox */
  247.                                   LPSTR szMessage,
  248.                                   LPSTR szName,
  249.                                   void *pInfo);
  250.  
  251. INT WINAPI DirectXSetupSetCallback(DSETUP_CALLBACK Callback);
  252. INT WINAPI DirectXSetupGetVersion(DWORD *lpdwVersion, DWORD *lpdwMinorVersion);
  253. INT WINAPI DirectXSetupShowEULA(HWND hWndParent);
  254. #ifndef UNICODE_ONLY
  255. UINT
  256. WINAPI
  257. DirectXSetupGetEULAA(
  258.     LPSTR lpszEULA,
  259.     UINT  cchEULA,
  260.     WORD LangID
  261.     );
  262. #endif //!UNICODE_ONLY
  263. #ifndef ANSI_ONLY
  264. UINT
  265. WINAPI
  266. DirectXSetupGetEULAW(
  267.     LPWSTR lpszEULA,
  268.     UINT   cchEULA,
  269.     WORD  LangID
  270.     );
  271. #endif //!ANSI_ONLY
  272. #ifdef UNICODE
  273. #define DirectXSetupGetEULA  DirectXSetupGetEULAW
  274. typedef UINT (WINAPI * LPDIRECTXSETUPGETEULA)(LPWSTR, UINT, WORD);
  275. #else
  276. #define DirectXSetupGetEULA  DirectXSetupGetEULAA
  277. typedef UINT (WINAPI * LPDIRECTXSETUPGETEULA)(LPSTR, UINT, WORD);
  278. #endif // !UNICODE
  279.  
  280. #endif // WIN32
  281.  
  282.  
  283. #ifdef __cplusplus
  284. };
  285. #endif
  286.  
  287. #endif
  288.