windows-nt/Source/XPSP1/NT/multimedia/directx/dxdiag/inptinfo.h
2020-09-26 16:20:57 +08:00

94 lines
2.5 KiB
C

/****************************************************************************
*
* File: inptinfo.h
* Project: DxDiag (DirectX Diagnostic Tool)
* Author: Mike Anderson (manders@microsoft.com)
* Purpose: Gather information about input devices on this machine
*
* (C) Copyright 1998 Microsoft Corp. All rights reserved.
*
****************************************************************************/
#ifndef INPUTINFO_H
#define INPUTINFO_H
// DXD_IN_DI_VALUE is the name of a value stored under the registry key
// HKLM\DXD_IN_DI_KEY that indicates that DxDiag is using
// DirectInput. If DxDiag starts up and this value exists, DxDiag
// probably crashed in DirectInput and DxDiag should offer to run without
// using DirectInput.
#define DXD_IN_DI_KEY TEXT("Software\\Microsoft\\DirectX Diagnostic Tool")
#define DXD_IN_DI_VALUE TEXT("DxDiag In DirectInput")
struct InputDeviceInfo
{
DWORD m_dwUsageSettings;
TCHAR m_szSettings[100]; // formatted version of m_dwUsageSettings
TCHAR m_szDeviceName[100];
TCHAR m_szDriverName[100];
TCHAR m_szDriverVersion[100];
TCHAR m_szDriverLanguage[100];
TCHAR m_szDriverLanguageLocal[100];
TCHAR m_szDriverDate[100];
TCHAR m_szDriverDateLocal[100];
TCHAR m_szDriverAttributes[100];
LONG m_numBytes;
BOOL m_bBeta;
BOOL m_bDebug;
BOOL m_bDriverSigned;
BOOL m_bDriverSignedValid;
BOOL m_bProblem;
InputDeviceInfo* m_pInputDeviceInfoNext;
};
struct InputDeviceInfoNT
{
TCHAR m_szName[200];
TCHAR m_szProvider[200];
TCHAR m_szId[200];
DWORD m_dwStatus;
DWORD m_dwProblem;
TCHAR m_szPortName[200];
TCHAR m_szPortProvider[200];
TCHAR m_szPortId[200];
DWORD m_dwPortStatus;
DWORD m_dwPortProblem;
BOOL m_bProblem;
InputDeviceInfoNT* m_pInputDeviceInfoNTNext;
};
struct InputDriverInfo
{
TCHAR m_szRegKey[100];
TCHAR m_szDeviceID[100];
TCHAR m_szMatchingDeviceID[100];
TCHAR m_szDriver16[100];
TCHAR m_szDriver32[100];
BOOL m_bActive;
BOOL m_bProblem;
InputDriverInfo* m_pInputDriverInfoNext;
};
struct InputInfo
{
BOOL m_bNT;
BOOL m_bPollFlags;
InputDeviceInfo* m_pInputDeviceInfoFirst;
InputDeviceInfoNT* m_pInputDeviceInfoNTFirst;
InputDriverInfo* m_pInputDriverInfoFirst;
RegError* m_pRegErrorFirst;
};
HRESULT GetInputInfo(InputInfo** ppInputInfo);
HRESULT GetInputDriverInfo(InputInfo* pInputInfo);
VOID DestroyInputInfo(InputInfo* pInputInfo);
VOID DiagnoseInput(SysInfo* pSysInfo, InputInfo* pInputInfo);
#endif // INPUTINFO_H