📄 eons.cpp
字号:
if ( !fError )
{
dwSize = sizeof(opl.dwLACa);
lResult = RegQueryValueEx( hkey2, TEXT("start LAC"), NULL, &dwType, (BYTE*)&opl.dwLACa, &dwSize );
fError = ( lResult != ERROR_SUCCESS || dwType != REG_DWORD );
}
if ( !fError )
{
dwSize = sizeof(opl.dwLACz);
lResult = RegQueryValueEx( hkey2, TEXT("end LAC"), NULL, &dwType, (BYTE*)&opl.dwLACz, &dwSize );
fError = ( lResult != ERROR_SUCCESS || dwType != REG_DWORD );
}
if ( !fError )
{
dwSize = sizeof(opl.dwIndex);
lResult = RegQueryValueEx( hkey2, TEXT("index"), NULL, &dwType, (BYTE*)&opl.dwIndex, &dwSize );
fError = ( lResult != ERROR_SUCCESS || dwType != REG_DWORD );
}
if ( !fError )
{
m_opl.AddThing( opl );
}
}
else if ( lResult == ERROR_FILE_NOT_FOUND )
{
fDone = TRUE;
hr = S_OK;
}
else
{
fDone = TRUE;
hr = HRESULT_FROM_WIN32( lResult );
}
if ( hkey2 != NULL )
{
RegCloseKey( hkey2 );
}
hkey2 = NULL;
}
}
else if ( lResult == ERROR_FILE_NOT_FOUND )
{
/* cache doesnt exist; treat as no items */
hr = S_OK;
}
else
{
hr = HRESULT_FROM_WIN32( lResult );
}
if ( hkey != NULL )
{
RegCloseKey( hkey );
}
hkey = NULL;
return hr;
}
HRESULT
EONSCache::ReadPNNData()
{
HRESULT hr = E_FAIL;
HKEY hkey = NULL;
StringBuffer key;
key.Set( RegistryPath );
key.Append( TEXT("\\pnn") );
LONG lResult = RegOpenKeyEx( RIL_REGISTRY_ROOT, key, 0, 0, &hkey );
if ( lResult == ERROR_SUCCESS )
{
hr = S_OK;
TCHAR subkey[16];
BOOL fDone = FALSE;
for( int i = 1; !fDone; i++ )
{
StringCchPrintf( subkey, ARRAY_LENGTH(subkey), TEXT("%d"), i );
HKEY hkey2 = NULL;
lResult = RegOpenKeyEx( hkey, subkey, 0, 0, &hkey2 );
if ( lResult == ERROR_SUCCESS )
{
RILOPERATORNAMES ron;
memset( &ron, 0, sizeof(ron) );
ron.cbSize = sizeof(ron);
BOOL fError = FALSE;
DWORD dwSize = 0;
DWORD dwType = 0;
{
TCHAR szBuf[ARRAY_LENGTH(ron.szLongName)];
dwSize = sizeof(szBuf);
lResult = RegQueryValueEx( hkey2, TEXT("long name"), NULL, &dwType, (BYTE*)szBuf, &dwSize );
fError = ( lResult != ERROR_SUCCESS || dwType != REG_SZ );
if ( !fError )
{
StringCchPrintfA( ron.szLongName, ARRAY_LENGTH(ron.szLongName), "%ls", szBuf );
ron.dwParams |= RIL_PARAM_ON_LONGNAME;
}
}
if ( !fError )
{
TCHAR szBuf[ARRAY_LENGTH(ron.szShortName)];
dwSize = sizeof(szBuf);
lResult = RegQueryValueEx( hkey2, TEXT("short name"), NULL, &dwType, (BYTE*)szBuf, &dwSize );
if ( lResult == ERROR_SUCCESS && dwType == REG_SZ )
{
StringCchPrintfA( ron.szShortName, ARRAY_LENGTH(ron.szShortName), "%ls", szBuf );
ron.dwParams |= RIL_PARAM_ON_SHORTNAME;
}
else if ( lResult == ERROR_FILE_NOT_FOUND )
{
/* ok -- short name is optional */
}
else
{
fError = TRUE;
}
}
if ( !fError )
{
m_pnn.AddThing( ron );
}
}
else if ( lResult == ERROR_FILE_NOT_FOUND )
{
fDone = TRUE;
hr = S_OK;
}
else
{
fDone = TRUE;
hr = HRESULT_FROM_WIN32( lResult );
}
if ( hkey2 != NULL )
{
RegCloseKey( hkey2 );
}
hkey2 = NULL;
}
}
else if ( lResult == ERROR_FILE_NOT_FOUND )
{
/* cache doesnt exist; treat as no items */
hr = S_OK;
}
else
{
hr = HRESULT_FROM_WIN32( lResult );
}
if ( hkey != NULL )
{
RegCloseKey( hkey );
}
hkey = NULL;
return hr;
}
HRESULT
EONSCache::WriteOPLData()
{
HRESULT hr = S_OK;
StringBuffer key;
key.Set( RegistryPath );
key.Append( TEXT("\\opl") );
LONG lResult = RegDeleteKey( RIL_REGISTRY_ROOT, key );
int c = m_opl.GetSize();
if ( c > 0 )
{
HKEY hkey = NULL;
DWORD dwDisposition = 0;
lResult = RegCreateKeyEx( RIL_REGISTRY_ROOT, key, 0, NULL, 0, 0, NULL, &hkey, &dwDisposition );
if ( lResult == ERROR_SUCCESS )
{
TCHAR subkey[16];
BOOL fError = FALSE;
for( int i = 0; i < c && !fError; i++ )
{
StringCchPrintf( subkey, ARRAY_LENGTH(subkey), TEXT("%d"), i+1 );
HKEY hkey2 = NULL;
lResult = RegCreateKeyEx( hkey, subkey, 0, NULL, 0, 0, NULL, &hkey2, &dwDisposition );
if ( lResult == ERROR_SUCCESS )
{
OPLStruct opl = m_opl.GetThingAtIndex( i );
DWORD dwSize = 0;
{
TCHAR buf[ARRAY_LENGTH(opl.szPLMN)];
StringCchPrintf( buf, ARRAY_LENGTH(buf), TEXT("%hs"), opl.szPLMN );
dwSize = ( ( _tcslen(buf) + 1 ) * sizeof(TCHAR) );
lResult = RegSetValueEx( hkey2, TEXT("PLMN"), 0, REG_SZ, (BYTE*)buf, dwSize );
if ( lResult != ERROR_SUCCESS )
{
fError = TRUE;
hr = HRESULT_FROM_WIN32( lResult );
}
}
if ( !fError )
{
dwSize = sizeof(opl.dwLACa);
lResult = RegSetValueEx( hkey2, TEXT("start LAC"), 0, REG_DWORD, (BYTE*)&opl.dwLACa, dwSize );
if ( lResult != ERROR_SUCCESS )
{
fError = TRUE;
hr = HRESULT_FROM_WIN32( lResult );
}
}
if ( !fError )
{
dwSize = sizeof(opl.dwLACz);
lResult = RegSetValueEx( hkey2, TEXT("end LAC"), 0, REG_DWORD, (BYTE*)&opl.dwLACz, dwSize );
if ( lResult != ERROR_SUCCESS )
{
fError = TRUE;
hr = HRESULT_FROM_WIN32( lResult );
}
}
if ( !fError )
{
dwSize = sizeof(opl.dwIndex);
lResult = RegSetValueEx( hkey2, TEXT("index"), 0, REG_DWORD, (BYTE*)&opl.dwIndex, dwSize );
if ( lResult != ERROR_SUCCESS )
{
fError = TRUE;
hr = HRESULT_FROM_WIN32( lResult );
}
}
}
else
{
fError = TRUE;
hr = HRESULT_FROM_WIN32( lResult );
}
if ( hkey2 != NULL )
{
RegCloseKey( hkey2 );
}
hkey2 = NULL;
}
}
else
{
hr = HRESULT_FROM_WIN32( lResult );
}
if ( hkey != NULL )
{
RegCloseKey( hkey );
}
hkey = NULL;
}
return hr;
}
HRESULT
EONSCache::WritePNNData()
{
HRESULT hr = S_OK;
StringBuffer key;
key.Set( RegistryPath );
key.Append( TEXT("\\pnn") );
LONG lResult = RegDeleteKey( RIL_REGISTRY_ROOT, key );
int c = m_pnn.GetSize();
if ( c > 0 )
{
HKEY hkey = NULL;
DWORD dwDisposition = 0;
lResult = RegCreateKeyEx( RIL_REGISTRY_ROOT, key, 0, NULL, 0, 0, NULL, &hkey, &dwDisposition );
if ( lResult == ERROR_SUCCESS )
{
TCHAR subkey[16];
BOOL fError = FALSE;
for( int i = 0; i < c && !fError; i++ )
{
StringCchPrintf( subkey, ARRAY_LENGTH(subkey), TEXT("%d"), i+1 );
HKEY hkey2 = NULL;
lResult = RegCreateKeyEx( hkey, subkey, 0, NULL, 0, 0, NULL, &hkey2, &dwDisposition );
if ( lResult == ERROR_SUCCESS )
{
RILOPERATORNAMES ron = m_pnn.GetThingAtIndex( i );
DWORD dwSize = 0;
if ( ron.dwParams & RIL_PARAM_ON_LONGNAME )
{
TCHAR buf[ARRAY_LENGTH(ron.szLongName)];
StringCchPrintf( buf, ARRAY_LENGTH(buf), TEXT("%hs"), ron.szLongName );
dwSize = ( ( _tcslen(buf) + 1 ) * sizeof(TCHAR) );
lResult = RegSetValueEx( hkey2, TEXT("long name"), 0, REG_SZ, (BYTE*)buf, dwSize );
if ( lResult != ERROR_SUCCESS )
{
fError = TRUE;
hr = HRESULT_FROM_WIN32( lResult );
}
}
if ( !fError )
{
if ( ron.dwParams & RIL_PARAM_ON_SHORTNAME )
{
TCHAR buf[ARRAY_LENGTH(ron.szShortName)];
StringCchPrintf( buf, ARRAY_LENGTH(buf), TEXT("%hs"), ron.szShortName );
dwSize = ( ( _tcslen(buf) + 1 ) * sizeof(TCHAR) );
lResult = RegSetValueEx( hkey2, TEXT("short name"), 0, REG_SZ, (BYTE*)buf, dwSize );
if ( lResult != ERROR_SUCCESS )
{
fError = TRUE;
hr = HRESULT_FROM_WIN32( lResult );
}
}
}
}
else
{
fError = TRUE;
hr = HRESULT_FROM_WIN32( lResult );
}
if ( hkey2 != NULL )
{
RegCloseKey( hkey2 );
}
hkey2 = NULL;
}
}
else
{
hr = HRESULT_FROM_WIN32( lResult );
}
if ( hkey != NULL )
{
RegCloseKey( hkey );
}
hkey = NULL;
}
return hr;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -