www.pudn.com > RPort.rar > BCGRegistry.h


//******************************************************************************* 
// COPYRIGHT NOTES 
// --------------- 
// This source code is a part of BCGControlBar library. 
// You may use, compile or redistribute it as part of your application  
// for free. You cannot redistribute it as a part of a software development  
// library without the agreement of the author. If the sources are  
// distributed along with the application, you should leave the original  
// copyright notes in the source code without any changes. 
// This code can be used WITHOUT ANY WARRANTIES on your own risk. 
//  
// For the latest updates to this library, check my site: 
// http://welcome.to/bcgsoft 
//  
// Stas Levin  
//******************************************************************************* 
 
#if !defined(AFX_BCGREGISTRY_H__A6E1AD76_D511_11D1_A64D_00A0C93A70EC__INCLUDED_) 
#define AFX_BCGREGISTRY_H__A6E1AD76_D511_11D1_A64D_00A0C93A70EC__INCLUDED_ 
 
///////////////////////////////////////////////////////////////////////////// 
// Copyright (C) 1998 by Shane Martin 
// All rights reserved 
// 
// Distribute freely, except: don't remove my name from the source or 
// documentation (don't take credit for my work), mark your changes (don't 
// get me blamed for your possible bugs), don't alter or remove this 
// notice. 
// No warrantee of any kind, express or implied, is included with this 
// software; use at your own risk, responsibility for damages (if any) to 
// anyone resulting from the use of this software rests entirely with the 
// user. 
// 
// Send bug reports, bug fixes, enhancements, requests, flames, etc., and 
// I'll try to keep a version up to date.  I can be reached as follows: 
//    shane.kim@kaiserslautern.netsurf.de 
///////////////////////////////////////////////////////////////////////////// 
#include  
 
#define REG_RECT	0x0001 
#define REG_POINT	0x0002 
 
//#include "bcgcontrolbar.h" 
 
class CBCGRegistry : public CObject 
{ 
// Construction 
public: 
	CBCGRegistry (BOOL bAdmin, BOOL bReadOnly); 
	virtual ~CBCGRegistry(); 
 
	struct REGINFO 
	{ 
		LONG lMessage; 
		DWORD dwType; 
		DWORD dwSize; 
	} 
	m_Info; 
 
// Operations 
public: 
	BOOL ReadKeyValues(CStringArray& Values); 
	BOOL VerifyKey (LPCTSTR pszPath); 
	BOOL VerifyValue (LPCTSTR pszValue); 
	BOOL CreateKey (LPCTSTR pszPath); 
	BOOL Open (LPCTSTR pszPath); 
	void Close(); 
 
	BOOL DeleteValue (LPCTSTR pszValue); 
	BOOL DeleteKey (LPCTSTR pszPath, BOOL bAdmin = FALSE); 
 
	BOOL Write (LPCTSTR pszKey, int iVal); 
	BOOL Write (LPCTSTR pszKey, DWORD dwVal); 
	BOOL Write (LPCTSTR pszKey, LPCTSTR pszVal); 
	BOOL Write (LPCTSTR pszKey, CStringList& scStringList); 
	BOOL Write (LPCTSTR pszKey, CByteArray& bcArray); 
	BOOL Write (LPCTSTR pszKey, CStringArray& scArray); 
	BOOL Write (LPCTSTR pszKey, CDWordArray& dwcArray); 
	BOOL Write (LPCTSTR pszKey, CWordArray& wcArray); 
	BOOL Write (LPCTSTR pszKey, const CRect& rect); 
	BOOL Write (LPCTSTR pszKey, LPPOINT& lpPoint); 
	BOOL Write (LPCTSTR pszKey, LPBYTE pData, UINT nBytes); 
	BOOL Write (LPCTSTR pszKey, CObList& list); 
	BOOL Write (LPCTSTR pszKey, CObject& obj); 
 
	BOOL Read (LPCTSTR pszKey, int& iVal); 
	BOOL Read (LPCTSTR pszKey, DWORD& dwVal); 
	BOOL Read (LPCTSTR pszKey, CString& sVal); 
	BOOL Read (LPCTSTR pszKey, CStringList& scStringList); 
	BOOL Read (LPCTSTR pszKey, CStringArray& scArray); 
	BOOL Read (LPCTSTR pszKey, CDWordArray& dwcArray); 
	BOOL Read (LPCTSTR pszKey, CWordArray& wcArray); 
	BOOL Read (LPCTSTR pszKey, CByteArray& bcArray); 
	BOOL Read (LPCTSTR pszKey, LPPOINT& lpPoint); 
	BOOL Read (LPCTSTR pszKey, CRect& rect); 
	BOOL Read (LPCTSTR pszKey, BYTE** ppData, UINT* pBytes); 
	BOOL Read (LPCTSTR pszKey, CObList& list); 
	BOOL Read (LPCTSTR pszKey, CObject& obj); 
 
	BOOL ReadSubKeys(CStringArray& SubKeys); 
 
protected: 
 
	HKEY		m_hKey; 
	CString		m_sPath; 
	const BOOL	m_bReadOnly; 
}; 
 
#endif // #if !defined(AFX_BCGREGISTRY_H__A6E1AD76_D511_11D1_A64D_00A0C93A70EC__INCLUDED_)