62 lines
1.8 KiB
C
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
|