mirror of https://github.com/tongzx/nt5src
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.
165 lines
3.4 KiB
165 lines
3.4 KiB
#include "headers.hxx"
|
|
#include "AnalisysPage.hpp"
|
|
#include "resource.h"
|
|
#include "common.hpp"
|
|
#include "AnalisysResults.hpp"
|
|
#include "CSVDSReader.hpp"
|
|
#include "Analisys.hpp"
|
|
#include "global.hpp"
|
|
#include "constants.hpp"
|
|
|
|
|
|
|
|
AnalisysPage::AnalisysPage
|
|
(
|
|
const CSVDSReader& csvReader409_,
|
|
const CSVDSReader& csvReaderIntl_,
|
|
const String& ldapPrefix_,
|
|
const String& rootContainerDn_,
|
|
AnalisysResults& res,
|
|
const String& reportName_
|
|
)
|
|
:
|
|
csvReader409(csvReader409_),
|
|
csvReaderIntl(csvReaderIntl_),
|
|
ldapPrefix(ldapPrefix_),
|
|
rootContainerDn(rootContainerDn_),
|
|
results(res),
|
|
reportName(reportName_),
|
|
WizardPage
|
|
(
|
|
IDD_ANALISYS,
|
|
IDS_ANALISYS_PAGE_TITLE,
|
|
IDS_ANALISYS_PAGE_SUBTITLE,
|
|
true
|
|
)
|
|
{
|
|
LOG_CTOR(AnalisysPage);
|
|
}
|
|
|
|
AnalisysPage::~AnalisysPage()
|
|
{
|
|
LOG_DTOR(AnalisysPage);
|
|
}
|
|
|
|
|
|
long WINAPI startAnalisys(long arg)
|
|
{
|
|
LOG_FUNCTION(startAnalisys);
|
|
AnalisysPage *page=(AnalisysPage *)arg;
|
|
Analisys analisys(
|
|
page->csvReader409,
|
|
page->csvReaderIntl,
|
|
page->ldapPrefix,
|
|
page->rootContainerDn,
|
|
page->results,
|
|
&page->reportName,
|
|
page
|
|
);
|
|
|
|
// CoInitialize must be called per thread
|
|
HRESULT hr = ::CoInitialize(0);
|
|
ASSERT(SUCCEEDED(hr));
|
|
|
|
hrError=analisys.run();
|
|
|
|
CoUninitialize();
|
|
|
|
page->FinishProgress();
|
|
return 0;
|
|
}
|
|
|
|
|
|
// WizardPage overrides
|
|
|
|
bool
|
|
AnalisysPage::OnSetActive()
|
|
{
|
|
LOG_FUNCTION(AnalisysPage::OnSetActive);
|
|
Win::PropSheet_SetWizButtons(Win::GetParent(hwnd), 0);
|
|
|
|
pos=0;
|
|
|
|
HANDLE hA=CreateThread(
|
|
NULL,0,
|
|
(LPTHREAD_START_ROUTINE) startAnalisys,
|
|
this,
|
|
0, 0
|
|
);
|
|
CloseHandle(hA);
|
|
return true;
|
|
}
|
|
|
|
|
|
|
|
void
|
|
AnalisysPage::OnInit()
|
|
{
|
|
LOG_FUNCTION(AnalisysPage::OnInit);
|
|
HWND prog=GetDlgItem(hwnd,IDC_PROGRESS_ANALISYS);
|
|
|
|
|
|
// calculate the # of locales
|
|
for(long t=0;LOCALEIDS[t]!=0;t++)
|
|
{
|
|
//empty
|
|
}
|
|
|
|
SendMessage(prog,PBM_SETRANGE,0,MAKELPARAM(0,t));
|
|
};
|
|
|
|
|
|
bool
|
|
AnalisysPage::OnWizBack()
|
|
{
|
|
LOG_FUNCTION(AnalisysPage::OnWizBack);
|
|
GetWizard().SetNextPageID(hwnd,IDD_WELCOME);
|
|
return true;
|
|
}
|
|
|
|
bool
|
|
AnalisysPage::OnWizNext()
|
|
{
|
|
LOG_FUNCTION(AnalisysPage::OnWizNext);
|
|
if (FAILED(hrError))
|
|
{
|
|
GetWizard().SetNextPageID(hwnd,IDD_FINISH);
|
|
}
|
|
else
|
|
{
|
|
GetWizard().SetNextPageID(hwnd,IDD_UPDATES_REQUIRED);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
|
|
void AnalisysPage::StepProgress()
|
|
{
|
|
LOG_FUNCTION(AnalisysPage::StepProgress);
|
|
HWND prog=GetDlgItem(hwnd,IDC_PROGRESS_ANALISYS);
|
|
SendMessage(prog,PBM_SETPOS,pos++,0);
|
|
}
|
|
|
|
void AnalisysPage::FinishProgress()
|
|
{
|
|
LOG_FUNCTION(AnalisysPage::FinishProgress);
|
|
Win::PropSheet_SetWizButtons(Win::GetParent(hwnd),PSWIZB_NEXT);
|
|
|
|
String result;
|
|
if (FAILED(hrError))
|
|
{
|
|
result=String::format(IDS_IDC_ANALISYS_RESULT_INCOMPLETE);
|
|
error=String::format(IDS_ANALISYS_ERROR,error.c_str());
|
|
}
|
|
else
|
|
{
|
|
result=String::format(IDS_IDC_ANALISYS_RESULT_COMPLETE);
|
|
}
|
|
|
|
Win::SetDlgItemText(hwnd,IDC_ANALISYS_RESULT,result);
|
|
|
|
HWND text=GetDlgItem(hwnd,IDC_ANALISYS_RESULT);
|
|
Win::ShowWindow(text,SW_SHOW);
|
|
}
|
|
|
|
|