Windows-Server-2003/multimedia/directx/dxdiag/dispinfo.h

132 lines
4.0 KiB
C

/****************************************************************************
*
* File: dispinfo.h
* Project: DxDiag (DirectX Diagnostic Tool)
* Author: Mike Anderson (manders@microsoft.com)
* Purpose: Gather information about the display(s) on this machine
*
* (C) Copyright 1998 Microsoft Corp. All rights reserved.
*
****************************************************************************/
#ifndef DISPINFO_H
#define DISPINFO_H
// DXD_IN_DD_VALUE is the name of a value stored under the registry key
// HKLM\DXD_IN_DD_KEY that indicates that DxDiag is using
// DirectDraw. If DxDiag starts up and this value exists, DxDiag
// probably crashed in DirectDraw and DxDiag should offer to run without
// using DirectDraw.
#define DXD_IN_DD_KEY TEXT("Software\\Microsoft\\DirectX Diagnostic Tool")
#define DXD_IN_DD_VALUE TEXT("DxDiag In DirectDraw")
struct TestResult
{
BOOL m_bStarted; // has user tried to run test yet?
BOOL m_bCancelled;
LONG m_iStepThatFailed;
HRESULT m_hr;
TCHAR m_szDescription[300]; // description of test result
TCHAR m_szDescriptionEnglish[300]; // description of test result, non-localized
};
struct DisplayInfo
{
GUID m_guid;
GUID m_guidDeviceIdentifier;
TCHAR m_szKeyDeviceID[200];
TCHAR m_szKeyDeviceKey[200];
TCHAR m_szDeviceName[100];
TCHAR m_szDescription[200];
TCHAR m_szManufacturer[200];
TCHAR m_szChipType[200];
TCHAR m_szDACType[200];
TCHAR m_szRevision[100];
TCHAR m_szDisplayMemory[100];
TCHAR m_szDisplayMemoryEnglish[100];
TCHAR m_szDisplayMode[100];
TCHAR m_szDisplayModeEnglish[100];
DWORD m_dwWidth;
DWORD m_dwHeight;
DWORD m_dwBpp;
DWORD m_dwRefreshRate;
TCHAR m_szMonitorName[200];
TCHAR m_szMonitorKey[200];
TCHAR m_szMonitorMaxRes[100];
HMONITOR m_hMonitor;
TCHAR m_szDriverName[200];
TCHAR m_szDriverVersion[100];
TCHAR m_szDriverAttributes[100];
TCHAR m_szDriverLanguage[100];
TCHAR m_szDriverLanguageLocal[100];
TCHAR m_szDriverDate[100];
TCHAR m_szDriverDateLocal[100];
LONG m_cbDriver;
TCHAR m_szDrv[100];
TCHAR m_szDrv2[100];
TCHAR m_szMiniVdd[100];
TCHAR m_szMiniVddDate[100];
LONG m_cbMiniVdd;
TCHAR m_szVdd[100];
BOOL m_bCanRenderWindow;
BOOL m_bDriverBeta;
BOOL m_bDriverDebug;
BOOL m_bDriverSigned;
BOOL m_bDriverSignedValid;
DWORD m_dwDDIVersion;
TCHAR m_szDDIVersion[100];
DWORD m_iAdapter;
TCHAR m_szDX8VendorId[50];
TCHAR m_szDX8DeviceId[50];
TCHAR m_szDX8SubSysId[50];
TCHAR m_szDX8Revision[50];
GUID m_guidDX8DeviceIdentifier;
DWORD m_dwDX8WHQLLevel;
BOOL m_bDX8DriverSigned;
BOOL m_bDX8DriverSignedValid;
TCHAR m_szDX8DeviceIdentifier[100];
TCHAR m_szDX8DriverSignDate[50]; // Valid only if m_bDriverSigned is TRUE
BOOL m_bNoHardware;
BOOL m_bDDAccelerationEnabled;
BOOL m_b3DAccelerationExists;
BOOL m_b3DAccelerationEnabled;
BOOL m_bAGPEnabled;
BOOL m_bAGPExists;
BOOL m_bAGPExistenceValid; // TRUE if m_bAGPExists can be trusted
TCHAR m_szDDStatus[100];
TCHAR m_szDDStatusEnglish[100];
TCHAR m_szD3DStatus[100];
TCHAR m_szD3DStatusEnglish[100];
TCHAR m_szAGPStatus[100];
TCHAR m_szAGPStatusEnglish[100];
RegError* m_pRegErrorFirst;
TCHAR m_szNotes[3000];
TCHAR m_szNotesEnglish[3000];
TestResult m_testResultDD; // This is filled in by testdd.cpp
TestResult m_testResultD3D7; // This is filled in by main.cpp (testd3d.cpp)
TestResult m_testResultD3D8; // This is filled in by main.cpp (testd3d8.cpp)
DWORD m_dwTestToDisplayD3D;
DisplayInfo* m_pDisplayInfoNext;
};
HRESULT GetBasicDisplayInfo(DisplayInfo** ppDisplayInfoFirst);
HRESULT GetExtraDisplayInfo(DisplayInfo* pDisplayInfoFirst);
HRESULT GetDDrawDisplayInfo(DisplayInfo* pDisplayInfoFirst);
VOID DestroyDisplayInfo(DisplayInfo* pDisplayInfoFirst);
BOOL IsDDHWAccelEnabled(VOID);
BOOL IsD3DHWAccelEnabled(VOID);
BOOL IsAGPEnabled(VOID);
VOID DiagnoseDisplay(SysInfo* pSysInfo, DisplayInfo* pDisplayInfoFirst);
#endif // DISPINFO_H