windows-nt/Source/XPSP1/NT/base/ntsetup/tools/html2bmp/html2bmp.cpp
2020-09-26 16:20:57 +08:00

182 lines
4.1 KiB
C++

// Html2Bmp.cpp : Defines the class behaviors for the application.
//
// created: JurgenE
//
#include "stdafx.h"
#include "Html2Bmp.h"
#include "HtmlDlg.h"
#include "FileDialogEx.h"
#include "iostream.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CHtml2BmpApp
BEGIN_MESSAGE_MAP(CHtml2BmpApp, CWinApp)
//{{AFX_MSG_MAP(CHtml2BmpApp)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CHtml2BmpApp construction
CHtml2BmpApp::CHtml2BmpApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
}
/////////////////////////////////////////////////////////////////////////////
// The one and only CHtml2BmpApp object
CHtml2BmpApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CHtml2BmpApp initialization
BOOL CHtml2BmpApp::InitInstance()
{
// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need.
#ifdef _AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif
CHtmlDlg dlg;
CString m_HtmlFile;
CString m_TemplateBitmapFile;
CString m_OutputBitmapFile;
CStringArray* cmdLine = new CStringArray;
CEigeneCommandLineInfo cmdInfo;
cmdInfo.cmdLine = cmdLine;
ParseCommandLine(cmdInfo);
INT_PTR m = cmdLine->GetSize();
CString cTest;
// read all command line options
for(int j = 0; j < m; j++)
{
cTest = cmdLine->GetAt(j);
cTest.MakeLower();
if(cTest == "?") // HTML file
{
CString help;
help = "Usage: Html2Bmp [-h HTMLfile] [-t TemplateBitmap] [-o OutputBitmap]\n\r\n\r";
help += "Example: Html2Bmp -h c:\\scr\\screen1.html ; template bitmap will be extracted from screen1.html\n\r";
help += " Html2Bmp -h c:\\scr\\screen1.html -t template.bmp\n\r";
help += "\n\rContact: Jurgen Eidt";
AfxMessageBox(help, MB_ICONINFORMATION);
return FALSE;
}
if(cTest == "h") // HTML file
{
if(j+1 < m)
{
m_HtmlFile = cmdLine->GetAt(j+1);
j++;
}
continue;
}
if(cTest == "t") // Template bitmap file
{
if(j+1 < m)
{
m_TemplateBitmapFile = cmdLine->GetAt(j+1);
j++;
}
continue;
}
if(cTest == "o") // output bitmap file
{
if(j+1 < m)
{
m_OutputBitmapFile = cmdLine->GetAt(j+1);
j++;
}
continue;
}
}
cmdLine->RemoveAll();
delete cmdLine;
if(m_HtmlFile.IsEmpty())
{
CFileDialogEx fd(TRUE, NULL, NULL,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
"HTML files (*.html;*.htm) |*.html;*.htm|All files (*.*)|*.*||", NULL );
if(fd.DoModal() == IDOK)
m_HtmlFile = fd.GetPathName();
else
return FALSE;
}
dlg.m_HtmlFile = m_HtmlFile;
dlg.m_TemplateBitmapFile = m_TemplateBitmapFile;
dlg.m_OutputBitmapFile = m_OutputBitmapFile;
dlg.DoModal();
/*
CHtml2BmpDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
*/
// Since the dialog has been closed, return FALSE so that we exit the
// application, rather than start the application's message pump.
return FALSE;
}
void CEigeneCommandLineInfo::ParseParam( LPCTSTR lpszParam, BOOL bFlag, BOOL bLast )
{
/*
lpszParam The parameter or flag.
bFlag Indicates whether lpszParam is a parameter or a flag.
bLast Indicates if this is the last parameter or flag on the command line.
*/
// disable the shell from processing the user defined cmd line arguments
// CCommandLineInfo::ParseParam(lpszParam, bFlag, bLast);
cmdLine->Add(lpszParam);
}