182 lines
4.1 KiB
C++
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);
|
|
}
|
|
|