Leaked source code of windows server 2003
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.
 
 
 
 
 
 

180 lines
6.0 KiB

//*********************************************************************
//* Microsoft Windows **
//* Copyright(c) Microsoft Corp., 1994 **
//*********************************************************************
//
// BRANDED.C - Functions for OEM/ISP branded first Wizard pages
//
// HISTORY:
//
//
//*********************************************************************
#include "pre.h"
#include "icwextsn.h"
#include "webvwids.h" // Needed to create an instance of the ICW WebView object
extern UINT GetDlgIDFromIndex(UINT uPageIndex);
// This function is in intro.cpp
BOOL WINAPI ConfigureSystem(HWND hDlg);
/*******************************************************************
NAME: BrandedIntroInitProc
SYNOPSIS: Called when "Intro" page is displayed
ENTRY: hDlg - dialog window
fFirstInit - TRUE if this is the first time the dialog
is initialized, FALSE if this InitProc has been called
before (e.g. went past this page and backed up)
********************************************************************/
BOOL CALLBACK BrandedIntroInitProc
(
HWND hDlg,
BOOL fFirstInit,
UINT *puNextPage
)
{
// This is the very first page, so no back is needed
PropSheet_SetWizButtons(GetParent(hDlg),PSWIZB_NEXT);
if (!fFirstInit)
{
// if we've travelled through external apprentice pages,
// it's easy for our current page pointer to get munged,
// so reset it here for sanity's sake.
gpWizardState->uCurrentPage = ORD_PAGE_BRANDEDINTRO;
}
return TRUE;
}
BOOL CALLBACK BrandedIntroPostInitProc
(
HWND hDlg,
BOOL fFirstInit,
UINT *puNextPage
)
{
BOOL bRet = TRUE;
if (fFirstInit)
{
BOOL bFail = FALSE;
// For the window to paint itself
UpdateWindow(GetParent(hDlg));
// Co-Create the browser object
if (FAILED(CoCreateInstance(CLSID_ICWWEBVIEW,
NULL,
CLSCTX_INPROC_SERVER,
IID_IICWWebView,
(LPVOID *)&gpWizardState->pICWWebView)))
{
bFail = TRUE;
}
// Co-Create the browser object
if(FAILED(CoCreateInstance(CLSID_ICWWALKER,
NULL,
CLSCTX_INPROC_SERVER,
IID_IICWWalker,
(LPVOID *)&gpWizardState->pHTMLWalker)))
{
bFail = TRUE;
}
if (bFail)
{
MsgBox(NULL,IDS_LOADLIB_FAIL,MB_ICONEXCLAMATION,MB_OK);
bRet = FALSE;
gfQuitWizard = TRUE; // Quit the wizard
}
}
else
{
TCHAR szURL[INTERNET_MAX_URL_LENGTH];
ASSERT(gpWizardState->pICWWebView);
gpWizardState->pICWWebView->ConnectToWindow(GetDlgItem(hDlg, IDC_BRANDEDWEBVIEW), PAGETYPE_BRANDED);
// Form the URL
wsprintf (szURL, TEXT("FILE://%s"), g_szBrandedHTML);
gpWizardState->pICWWebView->DisplayHTML(szURL);
PropSheet_SetWizButtons(GetParent(hDlg),PSWIZB_NEXT);
}
return bRet;
}
BOOL CALLBACK BrandedIntroOKProc
(
HWND hDlg,
BOOL fForward,
UINT *puNextPage,
BOOL *pfKeepHistory
)
{
ASSERT(puNextPage);
if (fForward)
{
//Are we in some special branding mode?
if(gpWizardState->cmnStateData.dwFlags & ICW_CFGFLAG_IEAKMODE)
{
TCHAR szTemp[MAX_PATH] = TEXT("\0");
IWebBrowser2* pIWebBrowser2 = NULL;
gpWizardState->pICWWebView->get_BrowserObject(&pIWebBrowser2);
ASSERT(pIWebBrowser2);
gpWizardState->pHTMLWalker->AttachToDocument(pIWebBrowser2);
gpWizardState->pHTMLWalker->get_IeakIspFile(szTemp);
if(lstrlen(szTemp) != 0)
{
TCHAR szDrive [_MAX_DRIVE] = TEXT("\0");
TCHAR szDir [_MAX_DIR] = TEXT("\0");
_tsplitpath(gpWizardState->cmnStateData.ispInfo.szISPFile, szDrive, szDir, NULL, NULL);
_tmakepath (gpWizardState->cmnStateData.ispInfo.szISPFile, szDrive, szDir, szTemp, NULL);
}
//OK make sure we don't try and download something, JIC.
gpWizardState->bDoneRefServDownload = TRUE;
gpWizardState->bDoneRefServRAS = TRUE;
gpWizardState->bStartRefServDownload = TRUE;
// BUGBUG, need to set a legit last page, maybe!
if (LoadICWCONNUI(GetParent(hDlg),
GetDlgIDFromIndex(ORD_PAGE_BRANDEDINTRO),
gpWizardState->cmnStateData.bOEMCustom ? IDD_PAGE_ENDOEMCUSTOM : IDD_PAGE_END,
gpWizardState->cmnStateData.dwFlags))
{
if( DialogIDAlreadyInUse( g_uICWCONNUIFirst) )
{
// we're about to jump into the external apprentice, and we don't want
// this page to show up in our history list, infact, we need to back
// the history up 1, because we are going to come back here directly
// from the DLL, not from the history list.
*pfKeepHistory = FALSE;
*puNextPage = g_uICWCONNUIFirst;
// Backup 1 in the history list, since we the external pages navigate back
// here, we want this history list to be in the correct spot
gpWizardState->uPagesCompleted --;
}
}
}
}
return TRUE;
}