|
|
//
// DefConn.cpp
//
#include "stdafx.h"
#include "Registry.h"
#include "DefConn.h"
#include "nconnwrap.h"
static const TCHAR c_szInternetSettings[] = "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"; static const TCHAR c_szProfile[] = "RemoteAccess\\Profile\\"; static const TCHAR c_szEnableAutodial[] = "EnableAutodial"; static const TCHAR c_szNoNetAutodial[] = "NoNetAutodial"; static const TCHAR c_szRemoteAccess[] = "RemoteAccess"; static const TCHAR c_szInternetProfile[] = "InternetProfile"; static const TCHAR c_szAutoConnect[] = "AutoConnect";
/////////////////////////////////////////////////////////////////////////////
// EnableAutodial
void WINAPI EnableAutodial(BOOL bAutodial, LPCSTR szConnection) { if (bAutodial) { // Ensure that "1" is written
bAutodial = 1; } CRegistry regInternetHKCU(HKEY_CURRENT_USER, c_szInternetSettings, KEY_SET_VALUE); CRegistry regInternetHKLM(HKEY_LOCAL_MACHINE, c_szInternetSettings, KEY_SET_VALUE);
regInternetHKCU.SetDwordValue(c_szEnableAutodial, bAutodial); regInternetHKCU.SetDwordValue(c_szNoNetAutodial, bAutodial); regInternetHKLM.SetBinaryValue(c_szEnableAutodial, (LPBYTE)&bAutodial, sizeof(bAutodial)); if (szConnection != NULL) { TCHAR szTemp[MAX_PATH]; lstrcpy(szTemp, c_szProfile); lstrcat(szTemp, szConnection); CRegistry regProfile(HKEY_CURRENT_USER, szTemp, KEY_SET_VALUE); regProfile.SetDwordValue(c_szAutoConnect, bAutodial); }
}
/////////////////////////////////////////////////////////////////////////////
// BOOL IsAutodialEnabled()
BOOL WINAPI IsAutodialEnabled() { CRegistry regInternetHKCU; return regInternetHKCU.OpenKey(HKEY_CURRENT_USER, c_szInternetSettings, KEY_QUERY_VALUE) && regInternetHKCU.QueryDwordValue(c_szEnableAutodial) != 0; }
/////////////////////////////////////////////////////////////////////////////
// SetDefaultDialupConnection
//
// Empty (or NULL) string indicates no default connection, or shared connection (if ICS client).
void WINAPI SetDefaultDialupConnection(LPCTSTR pszConnectionName) { CRegistry regRAS(HKEY_CURRENT_USER, c_szRemoteAccess, KEY_SET_VALUE);
if (pszConnectionName != NULL && *pszConnectionName != '\0') { regRAS.SetStringValue(c_szInternetProfile, pszConnectionName); // Don't automatically autodial anymore
// EnableAutodial(TRUE);
} else { regRAS.DeleteValue(c_szInternetProfile); EnableAutodial(FALSE); } }
/////////////////////////////////////////////////////////////////////////////
// GetDefaultDialupConnection
//
// Empty string returned indicates no default connection, or shared connection (if ICS client).
void WINAPI GetDefaultDialupConnection(LPTSTR pszConnectionName, int cchMax) { pszConnectionName[0] = '\0'; CRegistry regRAS(HKEY_CURRENT_USER, c_szRemoteAccess, KEY_QUERY_VALUE); regRAS.QueryStringValue(c_szInternetProfile, pszConnectionName, cchMax); }
|