94 lines
2.5 KiB
C
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
|