141 lines
3.4 KiB
C
141 lines
3.4 KiB
C
|
|
/****************************************************************************\
|
|
|
|
HOMENET.C / Factory Mode (FACTORY.EXE)
|
|
|
|
Microsoft Confidential
|
|
Copyright (c) Microsoft Corporation 2001
|
|
All rights reserved
|
|
|
|
Source file for Factory that contains the home net state functions.
|
|
|
|
05/2001 - Jason Cohen (JCOHEN)
|
|
|
|
Added this new source file for factory for configuring the home
|
|
networking settings.
|
|
|
|
\****************************************************************************/
|
|
|
|
|
|
//
|
|
// Include File(s):
|
|
//
|
|
|
|
#include "factoryp.h"
|
|
|
|
|
|
//
|
|
// Internal Define(s):
|
|
//
|
|
|
|
#define FILE_HOMENET_DLL _T("HNETCFG.DLL")
|
|
#define FUNC_HOMENET "WinBomConfigureHomeNet"
|
|
|
|
|
|
//
|
|
// Internal Type Definition(s):
|
|
//
|
|
|
|
/****************************************************************************\
|
|
|
|
BOOL // Returns TRUE if the settings were successfully
|
|
// read and saved to the system. Otherwise
|
|
// returns FALSE to indicate something failed.
|
|
|
|
|
|
WinBomConfigureHomeNet( // Reads home networking settings from the
|
|
// specified unattend file and saves those in
|
|
// current system that is already setup and
|
|
// running.
|
|
|
|
LPCWSTR lpszUnattend, // Points to a string buffer which contains the
|
|
// full path to the unattend file (winbom.ini in
|
|
// this case) with all the home network settings.
|
|
|
|
LPCWSTR lpszSection // Points to a string buffer which contains the
|
|
// name of the section which contains all the home
|
|
// network settings in the unattend file specified
|
|
// above.
|
|
|
|
);
|
|
|
|
\****************************************************************************/
|
|
|
|
typedef BOOL (WINAPI * WINBOMCONFIGUREHOMENET)
|
|
(
|
|
LPCWSTR lpszUnattend,
|
|
LPCWSTR lpszSection
|
|
);
|
|
|
|
|
|
//
|
|
// Internal Global(s):
|
|
//
|
|
|
|
|
|
//
|
|
// Internal Function Prototype(s):
|
|
//
|
|
|
|
|
|
//
|
|
// External Function(s):
|
|
//
|
|
|
|
BOOL HomeNet(LPSTATEDATA lpStateData)
|
|
{
|
|
BOOL bRet = FALSE;
|
|
HINSTANCE hDll;
|
|
WINBOMCONFIGUREHOMENET pFunc;
|
|
HRESULT hr;
|
|
|
|
// Load the function from the external dll and call it.
|
|
//
|
|
if ( hDll = LoadLibrary(FILE_HOMENET_DLL) )
|
|
{
|
|
// Need to init the COM library.
|
|
//
|
|
hr = CoInitialize(NULL);
|
|
if ( SUCCEEDED(hr) )
|
|
{
|
|
// Now call the function.
|
|
//
|
|
if ( pFunc = (WINBOMCONFIGUREHOMENET) GetProcAddress(hDll, FUNC_HOMENET) )
|
|
{
|
|
bRet = pFunc(lpStateData->lpszWinBOMPath, INI_SEC_HOMENET);
|
|
}
|
|
#ifdef DBG
|
|
else
|
|
{
|
|
FacLogFileStr(3, _T("DEBUG: GetProcAddress(\"WinBomConfigureHomeNet\") failed. GLE=%d"), GetLastError());
|
|
}
|
|
#endif
|
|
CoUninitialize();
|
|
}
|
|
#ifdef DBG
|
|
else
|
|
{
|
|
FacLogFileStr(3, _T("DEBUG: HomeNet()::CoInitialize() failed. HR=%8.8X"), hr);
|
|
}
|
|
#endif
|
|
FreeLibrary(hDll);
|
|
}
|
|
#ifdef DBG
|
|
else
|
|
{
|
|
FacLogFileStr(3, _T("DEBUG: LoadLibrary(\"%s\") failed. GLE=%d"), FILE_HOMENET_DLL, GetLastError());
|
|
}
|
|
#endif
|
|
|
|
return bRet;
|
|
}
|
|
|
|
BOOL DisplayHomeNet(LPSTATEDATA lpStateData)
|
|
{
|
|
return IniSettingExists(lpStateData->lpszWinBOMPath, INI_SEC_HOMENET, NULL, NULL);
|
|
}
|
|
|
|
|
|
//
|
|
// Internal Function(s):
|
|
//
|