- /*========================================================================== 
-  * 
-  *  Copyright (C) 1995-1997 Microsoft Corporation.  All Rights Reserved. 
-  * 
-  *  File:       dsetup.h 
-  *  Content:    DirectXSetup, error codes and flags 
-  ***************************************************************************/ 
-   
- #ifndef __DSETUP_H__ 
- #define __DSETUP_H__ 
-   
- #include <windows.h>      // windows stuff 
-   
- #ifdef _WIN32 
- #define COM_NO_WINDOWS_H 
- #include <objbase.h> 
- #else 
- #endif 
-   
-   
- #ifdef __cplusplus 
- extern "C" { 
- #endif 
-   
- #define FOURCC_VERS mmioFOURCC('v','e','r','s') 
-   
- // DSETUP Error Codes, must remain compatible with previous setup. 
- #define DSETUPERR_SUCCESS_RESTART        1 
- #define DSETUPERR_SUCCESS                0 
- #define DSETUPERR_BADWINDOWSVERSION     -1 
- #define DSETUPERR_SOURCEFILENOTFOUND    -2 
- #define DSETUPERR_NOCOPY                -5 
- #define DSETUPERR_OUTOFDISKSPACE        -6 
- #define DSETUPERR_CANTFINDINF           -7 
- #define DSETUPERR_CANTFINDDIR           -8 
- #define DSETUPERR_INTERNAL              -9 
- #define DSETUPERR_UNKNOWNOS             -11 
- #define DSETUPERR_NEWERVERSION          -14 
- #define DSETUPERR_NOTADMIN              -15 
- #define DSETUPERR_UNSUPPORTEDPROCESSOR  -16 
- #define DSETUPERR_MISSINGCAB_MANAGEDDX  -17 
- #define DSETUPERR_NODOTNETFRAMEWORKINSTALLED -18 
- #define DSETUPERR_CABDOWNLOADFAIL       -19 
- #define DSETUPERR_DXCOMPONENTFILEINUSE  -20 
- #define DSETUPERR_UNTRUSTEDCABINETFILE  -21 
-   
- // DSETUP flags. DirectX 5.0 apps should use these flags only. 
- #define DSETUP_DDRAWDRV         0x00000008      /* install DirectDraw Drivers           */ 
- #define DSETUP_DSOUNDDRV        0x00000010      /* install DirectSound Drivers          */ 
- #define DSETUP_DXCORE           0x00010000      /* install DirectX runtime              */ 
- #define DSETUP_DIRECTX  (DSETUP_DXCORE|DSETUP_DDRAWDRV|DSETUP_DSOUNDDRV) 
- #define DSETUP_MANAGEDDX        0x00004000      /* OBSOLETE. install managed DirectX    */ 
- #define DSETUP_TESTINSTALL      0x00020000      /* just test install, don't do anything */ 
-   
- // 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. 
- #define DSETUP_DDRAW            0x00000001      /* OBSOLETE. install DirectDraw           */ 
- #define DSETUP_DSOUND           0x00000002      /* OBSOLETE. install DirectSound          */ 
- #define DSETUP_DPLAY            0x00000004      /* OBSOLETE. install DirectPlay           */ 
- #define DSETUP_DPLAYSP          0x00000020      /* OBSOLETE. install DirectPlay Providers */ 
- #define DSETUP_DVIDEO           0x00000040      /* OBSOLETE. install DirectVideo          */ 
- #define DSETUP_D3D              0x00000200      /* OBSOLETE. install Direct3D             */ 
- #define DSETUP_DINPUT           0x00000800      /* OBSOLETE. install DirectInput          */ 
- #define DSETUP_DIRECTXSETUP     0x00001000      /* OBSOLETE. install DirectXSetup DLL's   */ 
- #define DSETUP_NOUI             0x00002000      /* OBSOLETE. install DirectX with NO UI   */ 
- #define DSETUP_PROMPTFORDRIVERS 0x10000000      /* OBSOLETE. prompt when replacing display/audio drivers */ 
- #define DSETUP_RESTOREDRIVERS   0x20000000      /* OBSOLETE. restore display/audio drivers */ 
-   
-   
-   
- //****************************************************************** 
- // DirectX Setup Callback mechanism 
- //****************************************************************** 
-   
- // DSETUP Message Info Codes, passed to callback as Reason parameter. 
- #define DSETUP_CB_MSG_NOMESSAGE                     0 
- #define DSETUP_CB_MSG_INTERNAL_ERROR                10 
- #define DSETUP_CB_MSG_BEGIN_INSTALL                 13 
- #define DSETUP_CB_MSG_BEGIN_INSTALL_RUNTIME         14 
- #define DSETUP_CB_MSG_PROGRESS                      18 
- #define DSETUP_CB_MSG_WARNING_DISABLED_COMPONENT    19 
-   
-   
-   
-   
-   
-   
- typedef struct _DSETUP_CB_PROGRESS 
- { 
-     DWORD dwPhase; 
-     DWORD dwInPhaseMaximum; 
-     DWORD dwInPhaseProgress; 
-     DWORD dwOverallMaximum; 
-     DWORD dwOverallProgress; 
- } DSETUP_CB_PROGRESS; 
-   
-   
- enum _DSETUP_CB_PROGRESS_PHASE 
- { 
-     DSETUP_INITIALIZING, 
-     DSETUP_EXTRACTING, 
-     DSETUP_COPYING, 
-     DSETUP_FINALIZING 
- }; 
-   
-   
- #ifdef _WIN32 
- // 
- // Data Structures 
- // 
- #ifndef UNICODE_ONLY 
-   
- typedef struct _DIRECTXREGISTERAPPA { 
-     DWORD    dwSize; 
-     DWORD    dwFlags; 
-     LPSTR    lpszApplicationName; 
-     LPGUID   lpGUID; 
-     LPSTR    lpszFilename; 
-     LPSTR    lpszCommandLine; 
-     LPSTR    lpszPath; 
-     LPSTR    lpszCurrentDirectory; 
- } DIRECTXREGISTERAPPA, *PDIRECTXREGISTERAPPA, *LPDIRECTXREGISTERAPPA; 
-   
- typedef struct _DIRECTXREGISTERAPP2A { 
-     DWORD    dwSize; 
-     DWORD    dwFlags; 
-     LPSTR    lpszApplicationName; 
-     LPGUID   lpGUID; 
-     LPSTR    lpszFilename; 
-     LPSTR    lpszCommandLine; 
-     LPSTR    lpszPath; 
-     LPSTR    lpszCurrentDirectory; 
-     LPSTR    lpszLauncherName; 
- } DIRECTXREGISTERAPP2A, *PDIRECTXREGISTERAPP2A, *LPDIRECTXREGISTERAPP2A; 
-   
- #endif //!UNICODE_ONLY 
- #ifndef ANSI_ONLY 
-   
- typedef struct _DIRECTXREGISTERAPPW { 
-     DWORD    dwSize; 
-     DWORD    dwFlags; 
-     LPWSTR   lpszApplicationName; 
-     LPGUID   lpGUID; 
-     LPWSTR   lpszFilename; 
-     LPWSTR   lpszCommandLine; 
-     LPWSTR   lpszPath; 
-     LPWSTR   lpszCurrentDirectory; 
- } DIRECTXREGISTERAPPW, *PDIRECTXREGISTERAPPW, *LPDIRECTXREGISTERAPPW; 
-   
- typedef struct _DIRECTXREGISTERAPP2W { 
-     DWORD    dwSize; 
-     DWORD    dwFlags; 
-     LPWSTR   lpszApplicationName; 
-     LPGUID   lpGUID; 
-     LPWSTR   lpszFilename; 
-     LPWSTR   lpszCommandLine; 
-     LPWSTR   lpszPath; 
-     LPWSTR   lpszCurrentDirectory; 
-     LPWSTR  lpszLauncherName; 
- } DIRECTXREGISTERAPP2W, *PDIRECTXREGISTERAPP2W, *LPDIRECTXREGISTERAPP2W; 
- #endif //!ANSI_ONLY 
- #ifdef UNICODE 
- typedef DIRECTXREGISTERAPPW DIRECTXREGISTERAPP; 
- typedef PDIRECTXREGISTERAPPW PDIRECTXREGISTERAPP; 
- typedef LPDIRECTXREGISTERAPPW LPDIRECTXREGISTERAPP; 
- typedef DIRECTXREGISTERAPP2W DIRECTXREGISTERAPP2; 
- typedef PDIRECTXREGISTERAPP2W PDIRECTXREGISTERAPP2; 
- typedef LPDIRECTXREGISTERAPP2W LPDIRECTXREGISTERAPP2; 
- #else 
- typedef DIRECTXREGISTERAPPA DIRECTXREGISTERAPP; 
- typedef PDIRECTXREGISTERAPPA PDIRECTXREGISTERAPP; 
- typedef LPDIRECTXREGISTERAPPA LPDIRECTXREGISTERAPP; 
- typedef DIRECTXREGISTERAPP2A DIRECTXREGISTERAPP2; 
- typedef PDIRECTXREGISTERAPP2A PDIRECTXREGISTERAPP2; 
- typedef LPDIRECTXREGISTERAPP2A LPDIRECTXREGISTERAPP2; 
- #endif // UNICODE 
-   
-   
- // 
- // API 
- // 
-   
- #ifndef UNICODE_ONLY 
- INT 
- WINAPI 
- DirectXSetupA( 
-              HWND  hWnd, 
-     __in_opt LPSTR lpszRootPath, 
-              DWORD dwFlags 
-     ); 
- #endif //!UNICODE_ONLY 
- #ifndef ANSI_ONLY 
- INT 
- WINAPI 
- DirectXSetupW( 
-              HWND   hWnd, 
-     __in_opt LPWSTR lpszRootPath, 
-              DWORD  dwFlags 
-     ); 
- #endif //!ANSI_ONLY 
- #ifdef UNICODE 
- #define DirectXSetup  DirectXSetupW 
- #else 
- #define DirectXSetup  DirectXSetupA 
- #endif // !UNICODE 
-   
- #ifndef UNICODE_ONLY 
- INT 
- WINAPI 
- DirectXRegisterApplicationA( 
-     HWND                  hWnd, 
-     LPVOID                lpDXRegApp 
-     ); 
- #endif //!UNICODE_ONLY 
- #ifndef ANSI_ONLY 
- INT 
- WINAPI 
- DirectXRegisterApplicationW( 
-     HWND                  hWnd, 
-     LPVOID                lpDXRegApp 
-     ); 
- #endif //!ANSI_ONLY 
- #ifdef UNICODE 
- #define DirectXRegisterApplication  DirectXRegisterApplicationW 
- #else 
- #define DirectXRegisterApplication  DirectXRegisterApplicationA 
- #endif // !UNICODE 
-   
- INT 
- WINAPI 
- DirectXUnRegisterApplication( 
-     HWND     hWnd, 
-     LPGUID   lpGUID 
-     ); 
-   
- // 
- // Function Pointers 
- // 
- #ifdef UNICODE 
- typedef INT (WINAPI * LPDIRECTXSETUP)(HWND, LPWSTR, DWORD); 
- typedef INT (WINAPI * LPDIRECTXREGISTERAPPLICATION)(HWND, LPVOID); 
- #else 
- typedef INT (WINAPI * LPDIRECTXSETUP)(HWND, LPSTR, DWORD); 
- typedef INT (WINAPI * LPDIRECTXREGISTERAPPLICATION)(HWND, LPVOID); 
- #endif // UNICODE 
-   
- typedef DWORD (FAR PASCAL * DSETUP_CALLBACK)(DWORD Reason, 
-                                   DWORD MsgType,       /* Same as flags to MessageBox */ 
-                                   LPSTR szMessage, 
-                                   LPSTR szName, 
-                                   void *pInfo); 
-   
- INT WINAPI DirectXSetupSetCallback(DSETUP_CALLBACK Callback); 
- INT WINAPI DirectXSetupGetVersion(DWORD *lpdwVersion, DWORD *lpdwMinorVersion); 
- INT WINAPI DirectXSetupShowEULA(HWND hWndParent); 
- #ifndef UNICODE_ONLY 
- UINT 
- WINAPI 
- DirectXSetupGetEULAA( 
-     __out_ecount(cchEULA) LPSTR lpszEULA, 
-                           UINT  cchEULA, 
-                           WORD  LangID 
-     ); 
- #endif //!UNICODE_ONLY 
- #ifndef ANSI_ONLY 
- UINT 
- WINAPI 
- DirectXSetupGetEULAW( 
-     __out_ecount(cchEULA) LPWSTR lpszEULA, 
-                           UINT   cchEULA, 
-                           WORD   LangID 
-     ); 
- #endif //!ANSI_ONLY 
- #ifdef UNICODE 
- #define DirectXSetupGetEULA  DirectXSetupGetEULAW 
- typedef UINT (WINAPI * LPDIRECTXSETUPGETEULA)(LPWSTR, UINT, WORD); 
- #else 
- #define DirectXSetupGetEULA  DirectXSetupGetEULAA 
- typedef UINT (WINAPI * LPDIRECTXSETUPGETEULA)(LPSTR, UINT, WORD); 
- #endif // !UNICODE 
-   
- #endif // WIN32 
-   
-   
- #ifdef __cplusplus 
- }; 
- #endif 
-   
- #endif 
-