www.pudn.com > gspmidi101src.zip > registory.cpp


#include "gspmidi.h" 
 
extern TCHAR g_szConfigFile[MAX_PATH]; 
extern int g_nSampleRate; 
extern int g_nBitsPerSample; 
extern int g_nChannels; 
extern int g_nVoices; 
extern int g_nAmp; 
extern BOOL g_fAdjustPanning; 
extern BOOL g_fFreeInst; 
extern BOOL g_fAntialiasing; 
 
#define REG_KEY_GSPMIDI			_T("Software\\GreenSoftware\\GSPlayer\\Plug-ins\\gspmidi") 
#define REG_NAME_CONFIGFILE		_T("ConfigFile") 
#define REG_NAME_SAMPLERATE		_T("SampleRate") 
#define REG_NAME_BITS			_T("Bits") 
#define REG_NAME_STEREO			_T("Stereo") 
#define REG_NAME_VOICES			_T("Voices") 
#define REG_NAME_AMP			_T("Amp") 
#define REG_NAME_ADJUSTPAN		_T("AdjustPanning") 
#define REG_NAME_FREEINST		_T("FreeInst") 
#define REG_NAME_ANTIALIAS		_T("Antialiasing") 
 
void ReadRegistory() 
{ 
	HKEY hKey; 
	DWORD dwType, dwSize, dwValue; 
 
	if (RegOpenKeyEx(HKEY_CURRENT_USER, REG_KEY_GSPMIDI, 0, KEY_READ, &hKey) != ERROR_SUCCESS) 
		return; 
 
	dwSize = sizeof(int); 
	RegQueryValueEx(hKey, REG_NAME_SAMPLERATE, 0, &dwType, (LPBYTE)&g_nSampleRate, &dwSize); 
	RegQueryValueEx(hKey, REG_NAME_BITS, 0, &dwType, (LPBYTE)&g_nBitsPerSample, &dwSize); 
	if (RegQueryValueEx(hKey, REG_NAME_STEREO, 0, &dwType, (LPBYTE)&dwValue, &dwSize) == ERROR_SUCCESS) { 
		g_nChannels = dwValue ? 2 : 1; 
	} 
	RegQueryValueEx(hKey, REG_NAME_VOICES, 0, &dwType, (LPBYTE)&g_nVoices, &dwSize); 
	RegQueryValueEx(hKey, REG_NAME_AMP, 0, &dwType, (LPBYTE)&g_nAmp, &dwSize); 
	RegQueryValueEx(hKey, REG_NAME_ADJUSTPAN, 0, &dwType, (LPBYTE)&g_fAdjustPanning, &dwSize); 
	RegQueryValueEx(hKey, REG_NAME_FREEINST, 0, &dwType, (LPBYTE)&g_fFreeInst, &dwSize); 
	RegQueryValueEx(hKey, REG_NAME_ANTIALIAS, 0, &dwType, (LPBYTE)&g_fAntialiasing, &dwSize); 
 
	dwSize = sizeof(g_szConfigFile); 
	RegQueryValueEx(hKey, REG_NAME_CONFIGFILE, 0, &dwType, (LPBYTE)&g_szConfigFile, &dwSize); 
 
	RegCloseKey(hKey); 
} 
 
void WriteRegistory() 
{ 
	HKEY hKey; 
	DWORD dwDispos, dwValue; 
 
	if (RegCreateKeyEx(HKEY_CURRENT_USER, REG_KEY_GSPMIDI,  
			0, NULL, 0, KEY_WRITE, NULL, &hKey, &dwDispos) != ERROR_SUCCESS) 
		return; 
 
	RegSetValueEx(hKey, REG_NAME_SAMPLERATE, 0, REG_DWORD, (LPBYTE)&g_nSampleRate, sizeof(DWORD)); 
	RegSetValueEx(hKey, REG_NAME_BITS, 0, REG_DWORD, (LPBYTE)&g_nBitsPerSample, sizeof(DWORD)); 
 
	dwValue = (g_nChannels == 2) ? TRUE : FALSE; 
	RegSetValueEx(hKey, REG_NAME_STEREO, 0, REG_DWORD, (LPBYTE)&dwValue, sizeof(DWORD)); 
	RegSetValueEx(hKey, REG_NAME_VOICES, 0, REG_DWORD, (LPBYTE)&g_nVoices, sizeof(DWORD)); 
	RegSetValueEx(hKey, REG_NAME_AMP, 0, REG_DWORD, (LPBYTE)&g_nAmp, sizeof(DWORD)); 
	RegSetValueEx(hKey, REG_NAME_ADJUSTPAN, 0, REG_DWORD, (LPBYTE)&g_fAdjustPanning, sizeof(DWORD)); 
	RegSetValueEx(hKey, REG_NAME_FREEINST, 0, REG_DWORD, (LPBYTE)&g_fFreeInst, sizeof(DWORD)); 
	RegSetValueEx(hKey, REG_NAME_ANTIALIAS, 0, REG_DWORD, (LPBYTE)&g_fAntialiasing, sizeof(DWORD)); 
	RegSetValueEx(hKey, REG_NAME_CONFIGFILE, 0, REG_SZ,  
				(LPBYTE)&g_szConfigFile, sizeof(TCHAR) * (_tcslen(g_szConfigFile) + 1)); 
}