| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 | #include <windows.h>#include <strsafe.h>#include "config.h"#include "../nu/AutoCharFn.h"C_Config::C_Config( wchar_t *ini ){	memset( m_strbuf, 0, sizeof( m_strbuf ) );	memset( m_strbufA, 0, sizeof( m_strbufA ) );	m_inifile  = _wcsdup( ini );	m_inifileA = _strdup( AutoCharFn( m_inifile ) );	m_section  = 0;}C_Config::~C_Config(){	if ( m_inifile )		free( m_inifile );	if ( m_inifileA )		free( m_inifileA );	if ( m_section )		free( m_section );}void C_Config::WriteInt( wchar_t *name, int value ){	wchar_t buf[ 32 ] = { 0 };	StringCchPrintfW( buf, 32, L"%d", value );	WriteString( name, buf );}int C_Config::ReadInt( wchar_t *name, int defvalue ){	return GetPrivateProfileIntW( L"gen_ml_config", name, defvalue, m_inifile );}wchar_t *C_Config::WriteString( wchar_t *name, wchar_t *string ){	WritePrivateProfileStringW( L"gen_ml_config", name, string, m_inifile );	return name;}char *C_Config::WriteString( char *name, char *string ){	WritePrivateProfileStringA( "gen_ml_config", name, string, m_inifileA );	return name;}wchar_t *C_Config::ReadString( wchar_t *name, wchar_t *defstr ){	static wchar_t foobuf[] = L"___________gen_ml_lameness___________";	m_strbuf[ 0 ] = 0;	GetPrivateProfileStringW( L"gen_ml_config", name, foobuf, m_strbuf, ARRAYSIZE( m_strbuf ), m_inifile );	if ( !wcscmp( foobuf, m_strbuf ) )		return defstr;	m_strbuf[ ARRAYSIZE( m_strbuf ) - 1 ] = 0;	return m_strbuf;}bool C_Config::ReadString( const wchar_t *name, const wchar_t *defvalue, wchar_t *storage, size_t len ){	static wchar_t foobuf[] = L"___________gen_ml_lameness___________";	storage[ 0 ] = 0;	GetPrivateProfileStringW( L"gen_ml_config", name, foobuf, storage, (DWORD)len, m_inifile );	if ( !wcscmp( foobuf, storage ) )	{		if ( defvalue )			lstrcpynW( storage, defvalue, (int)len );		return false;	}	return true;}char *C_Config::ReadString( const char *name, char *defstr ){	static char foobuf[] = "___________gen_ml_lameness___________";	m_strbufA[ 0 ] = 0;	GetPrivateProfileStringA( "gen_ml_config", name, foobuf, m_strbufA, ARRAYSIZE( m_strbufA ), m_inifileA );	if ( !strcmp( foobuf, m_strbufA ) )		return defstr;	m_strbufA[ ARRAYSIZE( m_strbufA ) - 1 ] = 0;	return m_strbufA;}char *C_Config::ReadString( const char *section_name, const char *key_name, char *defvalue ){	static char foobuf[] = "___________lameness___________";	m_strbufA[ 0 ] = 0;	GetPrivateProfileStringA( section_name, key_name, foobuf, m_strbufA, ARRAYSIZE( m_strbufA ), m_inifileA );	if ( !strcmp( foobuf, m_strbufA ) )		return defvalue;	m_strbufA[ ARRAYSIZE( m_strbufA ) - 1 ] = 0;	return m_strbufA;}bool C_Config::ReadString( const char *name, const char *defvalue, char *storage, size_t len ){	static char foobuf[] = "___________gen_ml_lameness___________";	storage[ 0 ] = 0;	GetPrivateProfileStringA( "gen_ml_config", name, foobuf, storage, (DWORD)len, m_inifileA );	if ( !strcmp( foobuf, storage ) )	{		if ( defvalue )			lstrcpynA( storage, defvalue, (int)len );		return false;	}	return true;}
 |