Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//----------------------------------------------------------------------------
//
// Copyright (c) 1997-1999 Microsoft Corporation
// All rights reserved.
//
// File Name:
// reset.c
//
// Description:
// This file implements ResetAnswersToDefaults(). It is called by
// load.c every time the user hits NEXT on the NewOrEditPage.
//
// You MUST reset your global data to true defaults and you MUST
// free any memory you allocated to hold setting info.
//
//----------------------------------------------------------------------------
#include "pch.h"
#include "allres.h"
//
// Local prototypes
//
static VOID ResetDistFolderNames( VOID ); static VOID ResetNetSettings( int iOrigin );
//----------------------------------------------------------------------------
//
// Function: ResetAnswersToDefaults
//
// Purpose: This function is called before we (possibly) load settings
// from elsewhere. This is time to zero stuff out and free
// relevant stuff.
//
// In case you need to do something different based on the reason
// we're resetting, iOrigin is passed in. But note, in case of
// LOAD_NEWSCRIPT_DEFAULTS, and LOAD_TRUE_DEFAULTS all work should
// be finished when this routine finishes.
//
// Arguments:
// HWND hwnd - current window
// int iOrigin - how will we be setting the default answers?
//
// Returns: VOID
//
//----------------------------------------------------------------------------
VOID ResetAnswersToDefaults(HWND hwnd, int iOrigin) {
TCHAR *pTempString;
//
// Reset GenSettings and WizGlobals to true defaults.
//
// This is done by first zeroing out GenSettings & WizGlobals and then
// assigning specific fields where 0 isn't the good default.
//
// Note that FixedGlobals does not get reset by design. You can declare
// staticly initialized lists and such in there. For example, the timezone
// page has a fixed list of valid timezones built at wizard init time.
// But the current user selection is in GenSettings. The user selection
// gets reset as it should and the list of valid timezones never gets
// reset, as it should be.
//
ResetNameList(&GenSettings.ComputerNames); ResetNameList(&GenSettings.RunOnceCmds); ResetNameList(&GenSettings.PrinterNames);
ZeroMemory(&WizGlobals, sizeof(WizGlobals)); ZeroMemory(&GenSettings, sizeof(GenSettings));
WizGlobals.bDoAdvancedPages = TRUE; WizGlobals.bCreateNewDistFolder = TRUE;
GenSettings.TimeZoneIdx = TZ_IDX_UNDEFINED; GenSettings.iUnattendMode = UMODE_PROVIDE_DEFAULT; GenSettings.iTargetPath = TARGPATH_UNDEFINED;
GenSettings.NumConnections = MIN_SERVER_CONNECTIONS;
GenSettings.DisplayColorBits = -1; GenSettings.DisplayXResolution = -1; GenSettings.DisplayYResolution = -1; GenSettings.DisplayRefreshRate = -1; GenSettings.dwCountryCode = DONTSPECIFYSETTING; GenSettings.iDialingMethod = DONTSPECIFYSETTING; GenSettings.szAreaCode[0] = _T('\0'); GenSettings.szOutsideLine[0] = _T('\0');
GenSettings.IeCustomizeMethod = IE_NO_CUSTOMIZATION; GenSettings.bUseSameProxyForAllProtocols = TRUE;
NetSettings.bObtainDNSServerAutomatically = TRUE;
//
// Give the SIF text some suggestive values.
//
pTempString = MyLoadString( IDS_SIF_DEFAULT_DESCRIPTION );
lstrcpyn( GenSettings.szSifDescription, pTempString, AS(GenSettings.szSifDescription) );
free( pTempString );
pTempString = MyLoadString( IDS_SIF_DEFAULT_HELP_TEXT );
lstrcpyn( GenSettings.szSifHelpText, pTempString, AS(GenSettings.szSifHelpText) );
free( pTempString );
//
// Re-set the NetSettings struct
//
ResetNetSettings(iOrigin);
}
//----------------------------------------------------------------------------
//
// Function: ResetNetSettings
//
// Purpose: Resets all the network settings to their defaults.
//
//----------------------------------------------------------------------------
static VOID ResetNetSettings( int iOrigin ) {
TCHAR *pTempString;
NetSettings.iNetworkingMethod = TYPICAL_NETWORKING;
NetSettings.bCreateAccount = FALSE; NetSettings.bWorkgroup = TRUE; NetSettings.WorkGroupName[0] = _T('\0'); NetSettings.DomainName[0] = _T('\0'); NetSettings.DomainAccount[0] = _T('\0'); NetSettings.DomainPassword[0] = _T('\0'); NetSettings.ConfirmPassword[0] = _T('\0');
NetSettings.bObtainDNSServerAutomatically = TRUE;
ResetNameList( &NetSettings.TCPIP_DNS_Domains );
NetSettings.bEnableLMHosts = TRUE;
lstrcpyn( NetSettings.szInternalNetworkNumber, _T("00000000"), AS(NetSettings.szInternalNetworkNumber) );
// ISSUE-2002/02/28-stelo- waiting on response from DanielWe on how to add to Service
// ISSUE-2002/02/28-stelo- Provider Name Unattend.txt
// NetSettings.iServiceProviderName = ;
lstrcpyn( NetSettings.szNetworkAddress, _T(""), AS(NetSettings.szNetworkAddress) );
//
// If more memory was allocated for network cards, then deallocate it
// and leave just 1 netcard intact
//
AdjustNetworkCardMemory( 1, NetSettings.iNumberOfNetworkCards );
//
// Reset to only 1 network card being installed and make it the current
// network card
//
NetSettings.iNumberOfNetworkCards = 1; NetSettings.iCurrentNetworkCard = 1;
ResetNetworkAdapter( NetSettings.NetworkAdapterHead );
InstallDefaultNetComponents();
//
// Give the domain & workgroup some suggestive values.
//
pTempString = MyLoadString( IDS_WORKGROUP_DEFAULT_TEXT );
lstrcpyn( NetSettings.WorkGroupName, pTempString, AS(NetSettings.WorkGroupName) );
free( pTempString );
pTempString = MyLoadString( IDS_DOMAIN_DEFAULT_TEXT );
lstrcpyn( NetSettings.DomainName, pTempString, AS(NetSettings.DomainName) );
free( pTempString );
}
|