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

62 lines
1.8 KiB
C

/****************************************************************************
*
* File: reginfo.h
* Project: DxDiag (DirectX Diagnostic Tool)
* Author: Mike Anderson (manders@microsoft.com)
* Purpose: Gather and hold registry information
*
* (C) Copyright 1998 Microsoft Corp. All rights reserved.
*
****************************************************************************/
#ifndef REGINFO_H
#define REGINFO_H
enum RegErrorType
{
RET_NOERROR = 0,
RET_MISSINGKEY,
RET_MISSINGVALUE,
RET_VALUEWRONGTYPE,
RET_VALUEWRONGDATA
};
struct RegError
{
HKEY m_hkeyRoot; // HKLM, HKCU, etc.
TCHAR m_szKey[300];
TCHAR m_szValue[100];
RegErrorType m_ret;
DWORD m_dwTypeExpected; // REG_DWORD, REG_SZ, or REG_BINARY
DWORD m_dwTypeActual;
// The following are used if m_dwType is REG_DWORD:
DWORD m_dwExpected;
DWORD m_dwActual;
// The following are used if m_dwType is REG_SZ:
TCHAR m_szExpected[200];
TCHAR m_szActual[200];
// The following are used if m_dwType is REG_BINARY:
BYTE m_bExpected[200];
BYTE m_bActual[200];
DWORD m_dwExpectedSize;
DWORD m_dwActualSize;
RegError* m_pRegErrorNext;
};
enum CheckRegFlags
{
CRF_NONE = 0,
CRF_LEAF = 1, // if string is a path, just compare against the leaf
};
HRESULT CheckRegDword(RegError** ppRegErrorFirst, HKEY hkeyRoot, TCHAR* pszKey, TCHAR* pszValue, DWORD dwExpected);
HRESULT CheckRegString(RegError** ppRegErrorFirst, HKEY hkeyRoot, TCHAR* pszKey, TCHAR* pszValue, TCHAR* pszExpected, CheckRegFlags crf = CRF_NONE, HRESULT* phrError = NULL );
HRESULT CheckRegBinary(RegError** ppRegErrorFirst, HKEY hkeyRoot, TCHAR* pszKey, TCHAR* pszValue, BYTE* pbDataExpected, DWORD dwSizeExpected);
VOID DestroyReg( RegError** ppRegErrorFirst );
#endif // REGINFO_H