Blame dshow/REG.H

Packit 47f805
/*
Packit 47f805
 *  LAME MP3 encoder for DirectShow
Packit 47f805
 *  Registry calls handling class
Packit 47f805
 *
Packit 47f805
 *  Copyright (c) 2000-2005 Marie Orlova, Peter Gubanov, Vitaly Ivanov, Elecard Ltd.
Packit 47f805
 *
Packit 47f805
 * This library is free software; you can redistribute it and/or
Packit 47f805
 * modify it under the terms of the GNU Library General Public
Packit 47f805
 * License as published by the Free Software Foundation; either
Packit 47f805
 * version 2 of the License, or (at your option) any later version.
Packit 47f805
 *
Packit 47f805
 * This library is distributed in the hope that it will be useful,
Packit 47f805
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 47f805
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Packit 47f805
 * Library General Public License for more details.
Packit 47f805
 *
Packit 47f805
 * You should have received a copy of the GNU Library General Public
Packit 47f805
 * License along with this library; if not, write to the
Packit 47f805
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Packit 47f805
 * Boston, MA 02111-1307, USA.
Packit 47f805
 */
Packit 47f805
Packit 47f805
#ifndef	__REG__
Packit 47f805
#define	__REG__
Packit 47f805
Packit 47f805
namespace Lame
Packit 47f805
{
Packit 47f805
class	CRegKey 
Packit 47f805
{
Packit 47f805
protected:
Packit 47f805
	TCHAR	m_name[MAX_PATH];
Packit 47f805
	HKEY	m_hKey;
Packit 47f805
	HKEY	m_hRootKey;
Packit 47f805
public:
Packit 47f805
	CRegKey(void);
Packit 47f805
	CRegKey(HKEY rootKey, PTSTR pName);
Packit 47f805
	~CRegKey(void);
Packit 47f805
Packit 47f805
	BOOL	Open(HKEY rootKey, PTSTR pName);
Packit 47f805
	BOOL	Create(HKEY rootKey, PTSTR pName);
Packit 47f805
	BOOL	Open(PTSTR an = NULL);
Packit 47f805
	BOOL	Create(PTSTR an = NULL);
Packit 47f805
	BOOL	Close(void);
Packit 47f805
Packit 47f805
	operator HKEY () const { return m_hKey; };
Packit 47f805
Packit 47f805
	BOOL	getFlag(PTSTR valuename, BOOL bDefault);
Packit 47f805
	void	setFlag(PTSTR valuename, BOOL bValue, BOOL bDefault);
Packit 47f805
	void	setFlag(PTSTR valuename, BOOL bValue);
Packit 47f805
	DWORD	getDWORD(PTSTR valuename, DWORD bDefault);
Packit 47f805
	void	setDWORD(PTSTR valuename, DWORD dwValue);
Packit 47f805
	void	setDWORD(PTSTR valuename, DWORD dwValue, DWORD dwDefault);
Packit 47f805
	DWORD	getString(PTSTR valuename, PTSTR pDefault, PTSTR pResult, int cbSize);
Packit 47f805
	void	setString(PTSTR valuename, PTSTR pData);
Packit 47f805
	DWORD	getBinary(PTSTR valuename, PVOID pDefault, PVOID pResult, int cbSize);
Packit 47f805
	DWORD	setBinary(PTSTR valuename, PVOID pData, int cbSize);
Packit 47f805
};
Packit 47f805
Packit 47f805
class CRegEnumKey 
Packit 47f805
{
Packit 47f805
public:
Packit 47f805
	CRegEnumKey(HKEY hKey)
Packit 47f805
	{
Packit 47f805
		m_hKey = hKey;
Packit 47f805
		m_dwIndex = 0;
Packit 47f805
	}
Packit 47f805
Packit 47f805
	~CRegEnumKey()
Packit 47f805
	{
Packit 47f805
	}
Packit 47f805
Packit 47f805
	LONG Next(LPTSTR pszStr, DWORD cbName)
Packit 47f805
	{
Packit 47f805
		FILETIME	ftLastWriteTime;
Packit 47f805
		LONG lRet =  RegEnumKeyEx(m_hKey, m_dwIndex, pszStr, 
Packit 47f805
						&cbName, NULL, NULL, NULL, &ftLastWriteTime); 
Packit 47f805
 
Packit 47f805
		m_dwIndex++;
Packit 47f805
		return lRet;
Packit 47f805
	}
Packit 47f805
Packit 47f805
Packit 47f805
	void Reset(void)
Packit 47f805
	{
Packit 47f805
		m_dwIndex = 0;
Packit 47f805
	}
Packit 47f805
protected: 
Packit 47f805
	HKEY	m_hKey;
Packit 47f805
	DWORD	m_dwIndex;
Packit 47f805
};
Packit 47f805
}
Packit 47f805
#endif // __REG__