⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 registry.h

📁 一个windows 文件系统驱动源码
💻 H
字号:

 /*
  *		Copyright (C) 2003 - 2004 Satish Kumar J (vsat_in@yahoo.com)  
  *
  *		Project:		
  *
  *		Module Name:	Registry.h
  *
  *     Abstract:		Header for the Registry classes.
  *
  *     Author:		    Satish Kumar J
  *
  *		Date:			21-MAR-2003
  *
  *		Notes:			None.
  *
  *		Revision History:
  *
  *		Date		Version	Author				Changes
  *		------------------------------------------------------------------------
  *
  *		25-MAR-2003	1.03	Satish Kumar J		Initial Version
  *
  *		27-MAR-2003	1.04	Satish Kumar J		Removed the force, cache options.
  *												Removed the CRegRect and CRegPoint classes.
  *
  *		03-APR-2003	1.05	Satish Kumar J		- Nil -
  *
  */

 #ifndef	__REGISTRY_H
 #define	__REGISTRY_H

 //////////////////////////////////////////////////////////////////////////////

 // Include files.

 #include <afxwin.h>
 #include <shlwapi.h>

 ////////////////////////////////////////////////////////////////////////////////

 // Macros and typedefs'.

 #define DEFAULT_BASE_KEY				HKEY_LOCAL_MACHINE

 #define SAFE_CLOSE_KEY(hKey)			if (hKey) {						\
											RegCloseKey (hKey); 		\
											hKey = NULL; 				\
										} 

 #define BREAK_IF_UNEQUAL(val1, val2)	if (val1 != val2) { break; }	
  
 //////////////////////////////////////////////////////////////////////////////

 // Global declarations.

 class CRegBase
 {
	public:	

		CRegBase ();
		CRegBase (HKEY base, CString key, CString property);
		virtual ~CRegBase ();

		DWORD RemoveKey ();
		LONG RemoveValue (); 

		BOOL IsKeyPresent ();
		BOOL IsPropPresent ();

		CString GetNextSubKey();
		CString GetNextProperty();

	protected:

		BOOL Open(REGSAM);

		UINT m_nCurSubKey;
		UINT m_nCurProp;

		HKEY m_hKey;
		HKEY m_hBase;

		CString m_strKey;
		CString m_strProp;

		BOOL m_bKeyPresent;
		BOOL m_bPropPresent;
 };

 class CRegDWORD : public CRegBase
 {
	public:

		CRegDWORD ();
		CRegDWORD (HKEY base, CString key, CString prop, DWORD def = 0);
		virtual ~CRegDWORD ();

		DWORD Read ();	
		VOID  Write ();	

		operator DWORD ();

		CRegDWORD& operator = (DWORD d);
		CRegDWORD& operator += (DWORD d) { return *this = *this + d; }
		CRegDWORD& operator -= (DWORD d) { return *this = *this - d; }
		CRegDWORD& operator *= (DWORD d) { return *this = *this * d; }
		CRegDWORD& operator /= (DWORD d) { return *this = *this / d; }
		CRegDWORD& operator %= (DWORD d) { return *this = *this % d; }
		CRegDWORD& operator &= (DWORD d) { return *this = *this & d; }
		CRegDWORD& operator |= (DWORD d) { return *this = *this | d; }
		CRegDWORD& operator ^= (DWORD d) { return *this = *this ^ d; }
		CRegDWORD& operator <<= (DWORD d) { return *this = *this << d; }
		CRegDWORD& operator >>= (DWORD d) { return *this = *this >> d; }
	
	protected:

		DWORD	m_Value;	
		DWORD	m_DefValue;
 };

 class CRegString : public CRegBase
 {
	public:
	
		CRegString ();
		CRegString (HKEY base, CString key, CString prop, CString def = "");
		virtual ~CRegString ();
	
		CString Read ();
		VOID	Write ();
		
		operator CString ();
		CRegString& operator = (CString s);
		CRegString& operator += (CString s) { return *this = (CString)*this + s; }
	
	protected:

		CString	m_Value;
		CString	m_DefValue;
 };

 class CRegBinary : public CRegBase
 {
	public:
	
		CRegBinary ();
		CRegBinary (HKEY base, CString key, CString prop);
		virtual ~CRegBinary ();
	
		PBYTE Read (PDWORD pdwRead);
		VOID  Write (PBYTE pbuf, DWORD dwCount);
		
	protected:

		PBYTE m_Value;
		DWORD m_dwCount;
 };

 //////////////////////////////////////////////////////////////////////////////

 #endif		//	__REGISTRY_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -