cstm1dlg.cpp
上传用户:hzhsqp
上传日期:2007-01-06
资源大小:1600k
文件大小:6k
- // cstm1dlg.cpp : implementation file
- //
- #include "stdafx.h"
- #include "MsDevWizard.h"
- #include "cstm1dlg.h"
- #include "MsDevWizardaw.h"
- #include <stdlib.h>
- #include <time.h>
- #include <io.h>
- #ifdef _PSEUDO_DEBUG
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- /////////////////////////////////////////////////////////////////////////////
- // CCustom1Dlg dialog
- CCustom1Dlg::CCustom1Dlg()
- : CAppWizStepDlg(CCustom1Dlg::IDD)
- {
- //{{AFX_DATA_INIT(CCustom1Dlg)
- m_class_name = _T("");
- m_manufacturer = _T("Equivalence");
- m_product_name = _T("");
- m_product_type = 0;
- m_exe_name = _T("");
- m_pwlib_dir = _T("");
- m_use_dlls = FALSE;
- //}}AFX_DATA_INIT
- }
- void CCustom1Dlg::DoDataExchange(CDataExchange* pDX)
- {
- CAppWizStepDlg::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CCustom1Dlg)
- DDX_Text(pDX, IDC_CLASS_NAME, m_class_name);
- DDX_Text(pDX, IDC_MANUFACTURER, m_manufacturer);
- DDX_Text(pDX, IDC_PRODUCT_NAME, m_product_name);
- DDX_Radio(pDX, IDC_TEXT_ONLY, m_product_type);
- DDX_Text(pDX, IDC_EXE_NAME, m_exe_name);
- DDX_Text(pDX, IDC_PWLIB_DIR, m_pwlib_dir);
- DDX_Check(pDX, IDC_USE_DLL, m_use_dlls);
- //}}AFX_DATA_MAP
- }
- static void SetDictionaryKey(const char * key, BOOL value)
- {
- if (value)
- MsDevWizardaw.m_Dictionary[key] = key;
- else
- MsDevWizardaw.m_Dictionary.RemoveKey(key);
- }
- // This is called whenever the user presses Next, Back, or Finish with this step
- // present. Do all validation & data exchange from the dialog in this function.
- BOOL CCustom1Dlg::OnDismiss()
- {
- if (!UpdateData(TRUE))
- return FALSE;
- // Strip .exe off end of string (if there is one)
- CString lower_exe = m_exe_name;
- lower_exe.MakeLower();
- int pos = lower_exe.Find(".exe");
- if (pos >= 0)
- m_exe_name = m_exe_name.Mid(pos);
- static const struct {
- const char * product_type;
- const char * parent_app_class;
- const char * parent_win_class;
- const char * header_file;
- BOOL is_gui;
- BOOL is_service;
- BOOL has_http;
- } product_type_strings[] = {
- { "Text Only", "PProcess", "", "ptlib.h", FALSE, FALSE, FALSE },
- { "GUI", "PApplication", "PTopLevelWindow", "pwlib.h", TRUE, FALSE, FALSE },
- { "GUI", "PApplication", "PMDIFrameWindow", "pwlib.h", TRUE, FALSE, FALSE },
- { "Service", "PServiceProcess", "", "ptlib.h", FALSE, TRUE, FALSE },
- { "Service", "PHTTPServiceProcess", "", "ptlib.h", FALSE, TRUE, TRUE }
- };
- MsDevWizardaw.m_Dictionary["PRODUCT_TYPE"] = product_type_strings[m_product_type].product_type;
- MsDevWizardaw.m_Dictionary["PRODUCT_NAME"] = m_product_name;
- MsDevWizardaw.m_Dictionary["MANUFACTURER"] = m_manufacturer;
- MsDevWizardaw.m_Dictionary["EXE_NAME"] = m_exe_name;
- MsDevWizardaw.m_Dictionary["APP_CLASS_NAME"] = m_class_name;
- MsDevWizardaw.m_Dictionary["PARENT_APP_CLASS"] = product_type_strings[m_product_type].parent_app_class;
- MsDevWizardaw.m_Dictionary["PARENT_WIN_CLASS"] = product_type_strings[m_product_type].parent_win_class;
- MsDevWizardaw.m_Dictionary["HEADER_FILE"] = product_type_strings[m_product_type].header_file;
- SetDictionaryKey("IS_GUI", product_type_strings[m_product_type].is_gui);
- SetDictionaryKey("IS_SERVICE", product_type_strings[m_product_type].is_service);
- SetDictionaryKey("HAS_HTTP", product_type_strings[m_product_type].has_http);
- srand(clock());
- MsDevWizardaw.m_Dictionary["SIGNATURE_KEY"].Format(
- "%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u",
- rand()&255, rand()&255, rand()&255, rand()&255,
- rand()&255, rand()&255, rand()&255, rand()&255,
- rand()&255, rand()&255, rand()&255, rand()&255,
- rand()&255, rand()&255, rand()&255, rand()&255);
- MsDevWizardaw.m_Dictionary["APPLICATION_KEY"].Format(
- "%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u",
- rand()&255, rand()&255, rand()&255, rand()&255,
- rand()&255, rand()&255, rand()&255, rand()&255,
- rand()&255, rand()&255, rand()&255, rand()&255,
- rand()&255, rand()&255, rand()&255, rand()&255);
- MsDevWizardaw.m_has_gui = product_type_strings[m_product_type].is_gui;
- MsDevWizardaw.m_is_service = product_type_strings[m_product_type].is_service;
- MsDevWizardaw.m_has_http = product_type_strings[m_product_type].has_http;
- MsDevWizardaw.m_use_dlls = m_use_dlls;
- MsDevWizardaw.m_pwlib_dir = m_pwlib_dir;
- return TRUE; // return FALSE if the dialog shouldn't be dismissed
- }
- BEGIN_MESSAGE_MAP(CCustom1Dlg, CAppWizStepDlg)
- //{{AFX_MSG_MAP(CCustom1Dlg)
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
- /////////////////////////////////////////////////////////////////////////////
- // CCustom1Dlg message handlers
- BOOL CCustom1Dlg::OnInitDialog()
- {
- CAppWizStepDlg::OnInitDialog();
-
- m_class_name = MsDevWizardaw.m_Dictionary["Safe_root"];
- m_product_name = MsDevWizardaw.m_Dictionary["Root"];
- m_exe_name = MsDevWizardaw.m_Dictionary["Root"];
- m_pwlib_dir = "";
- CString full_dir = MsDevWizardaw.m_Dictionary["FULL_DIR_PATH"];
- full_dir.MakeLower();
- int pos;
- if ((pos = full_dir.Find("\pwlib\")) >= 0) {
- pos += 6;
- do {
- full_dir = full_dir.Mid(pos+1);
- if (!full_dir.IsEmpty())
- m_pwlib_dir += "..\";
- } while ((pos = full_dir.Find('\')) >= 0);
- }
- else {
- const char * pwlib_dir = getenv("PWLIB_DIR");
- if (pwlib_dir == NULL)
- pwlib_dir = "c:\pwlib";
- if (_access(pwlib_dir, 0) == 0)
- m_pwlib_dir = pwlib_dir;
- }
- UpdateData(FALSE);
- return TRUE; // return TRUE unless you set the focus to a control
- // EXCEPTION: OCX Property Pages should return FALSE
- }