home *** CD-ROM | disk | FTP | other *** search
/ BUG 4 / BUGCD1997_05.BIN / aplic / visualj / vjtrial.exe / RCDATA / CABINET / mfcapwz.dll / TEMPLATE / ROOT.CPP < prev    next >
C/C++ Source or Header  |  1997-01-28  |  11KB  |  373 lines

  1. // $$root$$.cpp : Defines the class behaviors for the application.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "$$root$$.h"
  6.  
  7. #include "$$frame_hfile$$.h"
  8. $$IF(MDICHILD)
  9. #include "$$child_frame_hfile$$.h"
  10. $$ENDIF //MDICHILD
  11. $$IF(MINI_SERVER || FULL_SERVER || CONTAINER_SERVER)
  12. #include "$$ipframe_hfile$$.h"
  13. $$ENDIF
  14. $$IF(CRecordView || CDaoRecordView)
  15. #include "$$recset_hfile$$.h"
  16. $$ENDIF
  17. #include "$$doc_hfile$$.h"
  18. #include "$$view_hfile$$.h"
  19.  
  20. #ifdef _DEBUG
  21. #define new DEBUG_NEW
  22. #undef THIS_FILE
  23. static char THIS_FILE[] = __FILE__;
  24. #endif
  25.  
  26. /////////////////////////////////////////////////////////////////////////////
  27. // $$APP_CLASS$$
  28.  
  29. BEGIN_MESSAGE_MAP($$APP_CLASS$$, $$APP_BASE_CLASS$$)
  30.     //{{AFX_MSG_MAP($$APP_CLASS$$)
  31.     ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
  32. $$IF(VERBOSE)
  33.         // NOTE - the ClassWizard will add and remove mapping macros here.
  34.         //    DO NOT EDIT what you see in these blocks of generated code!
  35. $$ENDIF
  36.     //}}AFX_MSG_MAP
  37. $$IF(!DB_NO_FILE)
  38.     // Standard file based document commands
  39.     ON_COMMAND(ID_FILE_NEW, $$APP_BASE_CLASS$$::OnFileNew)
  40.     ON_COMMAND(ID_FILE_OPEN, $$APP_BASE_CLASS$$::OnFileOpen)
  41. $$ENDIF //!DB_NO_FILE
  42. $$IF(PRINT)
  43.     // Standard print setup command
  44.     ON_COMMAND(ID_FILE_PRINT_SETUP, $$APP_BASE_CLASS$$::OnFilePrintSetup)
  45. $$ENDIF //PRINT
  46. END_MESSAGE_MAP()
  47.  
  48. /////////////////////////////////////////////////////////////////////////////
  49. // $$APP_CLASS$$ construction
  50.  
  51. $$APP_CLASS$$::$$APP_CLASS$$()
  52. {
  53. $$IF(VERBOSE)
  54.     // TODO: add construction code here,
  55.     // Place all significant initialization in InitInstance
  56. $$ENDIF
  57. }
  58.  
  59. /////////////////////////////////////////////////////////////////////////////
  60. // The one and only $$APP_CLASS$$ object
  61.  
  62. $$APP_CLASS$$ theApp;
  63. $$IF(FULL_SERVER || MINI_SERVER || CONTAINER_SERVER || AUTOMATION)
  64.  
  65. $$IF(VERBOSE)
  66. // This identifier was generated to be statistically unique for your app.
  67. // You may change it if you prefer to choose a specific identifier.
  68.  
  69. // {$$APP_CLSID_REG$$}
  70. $$ENDIF
  71. static const CLSID clsid =
  72. $$APP_CLSID$$;
  73. $$ENDIF
  74.  
  75. /////////////////////////////////////////////////////////////////////////////
  76. // $$APP_CLASS$$ initialization
  77.  
  78. BOOL $$APP_CLASS$$::InitInstance()
  79. {
  80. $$IF(SOCKETS)
  81.     if (!AfxSocketInit())
  82.     {
  83.         AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
  84.         return FALSE;
  85.     }
  86.  
  87. $$ENDIF //SOCKETS
  88. $$IF(CONTAINER || CONTAINER_SERVER || MINI_SERVER || FULL_SERVER || AUTOMATION)
  89.     // Initialize OLE libraries
  90.     if (!AfxOleInit())
  91.     {
  92.         AfxMessageBox(IDP_OLE_INIT_FAILED);
  93.         return FALSE;
  94.     }
  95.  
  96. $$ENDIF //CONTAINER || CONTAINER_SERVER || MINI_SERVER || FULL_SERVER || AUTOMATION
  97. $$IF(OLECTL)
  98.     AfxEnableControlContainer();
  99.  
  100. $$ENDIF //OLECTL
  101.     // Standard initialization
  102. $$IF(VERBOSE)
  103.     // If you are not using these features and wish to reduce the size
  104.     //  of your final executable, you should remove from the following
  105.     //  the specific initialization routines you do not need.
  106. $$ENDIF
  107. $$IF(3D)
  108.  
  109. #ifdef _AFXDLL
  110.     Enable3dControls();            // Call this when using MFC in a shared DLL
  111. #else
  112.     Enable3dControlsStatic();    // Call this when linking to MFC statically
  113. #endif
  114. $$ENDIF //3D
  115.  
  116.     // Change the registry key under which our settings are stored.
  117. $$IF(VERBOSE)
  118.     // You should modify this string to be something appropriate
  119.     // such as the name of your company or organization.
  120. $$ENDIF
  121.     SetRegistryKey(_T("Local AppWizard-Generated Applications"));
  122.  
  123.     LoadStdProfileSettings($$SIZE_MRU$$);  // Load standard INI file options (including MRU)
  124.  
  125. $$IF(VERBOSE)
  126.     // Register the application's document templates.  Document templates
  127.     //  serve as the connection between documents, frame windows and views.
  128. $$ELSE
  129.     // Register document templates
  130. $$ENDIF
  131. $$IF(PROJTYPE_MDI)
  132.  
  133.     CMultiDocTemplate* pDocTemplate;
  134.     pDocTemplate = new CMultiDocTemplate(
  135.         IDR_$$DOC$$TYPE,
  136. $$ELSE
  137.  
  138.     CSingleDocTemplate* pDocTemplate;
  139.     pDocTemplate = new CSingleDocTemplate(
  140.         IDR_MAINFRAME,
  141. $$ENDIF
  142.         RUNTIME_CLASS($$DOC_CLASS$$),
  143. $$IF(PROJTYPE_MDI)
  144. $$IF(MDICHILD)
  145.         RUNTIME_CLASS($$CHILD_FRAME_CLASS$$), // custom MDI child frame
  146. $$ELSE //!MDICHILD
  147.         RUNTIME_CLASS(CMDIChildWnd),          // standard MDI child frame
  148. $$ENDIF //MDICHILD
  149. $$ELSE //!MDI
  150.         RUNTIME_CLASS($$FRAME_CLASS$$),       // main SDI frame window
  151. $$ENDIF
  152.         RUNTIME_CLASS($$VIEW_CLASS$$));
  153. $$IF(CONTAINER || CONTAINER_SERVER)
  154. $$IF(PROJTYPE_MDI)
  155.     pDocTemplate->SetContainerInfo(IDR_$$DOC$$TYPE_CNTR_IP);
  156. $$ELSE
  157.     pDocTemplate->SetContainerInfo(IDR_CNTR_INPLACE);
  158. $$ENDIF
  159. $$ENDIF
  160. $$IF(MINI_SERVER || FULL_SERVER || CONTAINER_SERVER)
  161.     pDocTemplate->SetServerInfo(
  162. $$IF(PROJTYPE_MDI)
  163.         IDR_$$DOC$$TYPE_SRVR_EMB, IDR_$$DOC$$TYPE_SRVR_IP,
  164. $$ELSE
  165.         IDR_SRVR_EMBEDDED, IDR_SRVR_INPLACE,
  166. $$ENDIF
  167.         RUNTIME_CLASS($$IPFRAME_CLASS$$));
  168. $$ENDIF
  169.     AddDocTemplate(pDocTemplate);
  170. $$IF(MINI_SERVER || FULL_SERVER || CONTAINER_SERVER || AUTOMATION)
  171. $$IF(VERBOSE)
  172.  
  173.     // Connect the COleTemplateServer to the document template.
  174.     //  The COleTemplateServer creates new documents on behalf
  175.     //  of requesting OLE containers by using information
  176.     //  specified in the document template.
  177. $$ENDIF
  178. $$IF(PROJTYPE_MDI)
  179.     m_server.ConnectTemplate(clsid, pDocTemplate, FALSE);
  180.  
  181. $$IF(VERBOSE)
  182.     // Register all OLE server factories as running.  This enables the
  183.     //  OLE libraries to create objects from other applications.
  184. $$ENDIF
  185.     COleTemplateServer::RegisterAll();
  186. $$IF(VERBOSE)
  187.         // Note: MDI applications register all server objects without regard
  188.         //  to the /Embedding or /Automation on the command line.
  189. $$ENDIF
  190. $$ELSE //!MDI
  191.     m_server.ConnectTemplate(clsid, pDocTemplate, TRUE);
  192. $$IF(VERBOSE)
  193.         // Note: SDI applications register server objects only if /Embedding
  194.         //   or /Automation is present on the command line.
  195. $$ENDIF
  196. $$ENDIF
  197. $$ENDIF
  198.  
  199. $$IF(PROJTYPE_MDI)
  200.     // create main MDI Frame window
  201.     $$FRAME_CLASS$$* pMainFrame = new $$FRAME_CLASS$$;
  202.     if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
  203.         return FALSE;
  204.     m_pMainWnd = pMainFrame;
  205.  
  206. $$IF(!MINI_SERVER)
  207. $$// call DragAcceptFiles only if compiling for Mac, or if there's a suffix.
  208. $$//  In an MDI app, this should occur immediately after setting m_pMainWnd
  209. $$IF(HAS_SUFFIX)
  210.     // Enable drag/drop open
  211.     m_pMainWnd->DragAcceptFiles();
  212.  
  213. $$ELIF(INSTALLED_MAC)
  214. #ifdef _MAC
  215.     // Enable drag/drop open.  We don't call this in Win32, since a
  216.     //  document file extension wasn't chosen while running AppWizard.
  217.     m_pMainWnd->DragAcceptFiles();
  218. #endif
  219.  
  220. $$ENDIF //SUFFIX/INSTALLED_MAC
  221. $$ENDIF //!MINI_SERVER
  222. $$ENDIF //MDI
  223. $$IF(!MINI_SERVER)
  224. $$IF(HAS_SUFFIX)
  225.     // Enable DDE Execute open
  226.     EnableShellOpen();
  227.     RegisterShellFileTypes(TRUE);
  228.  
  229. $$ENDIF //SUFFIX
  230. $$ENDIF //!MINI_SERVER
  231.     // Parse command line for standard shell commands, DDE, file open
  232.     CCommandLineInfo cmdInfo;
  233.     ParseCommandLine(cmdInfo);
  234.  
  235. $$IF(MINI_SERVER || FULL_SERVER || CONTAINER_SERVER || AUTOMATION)
  236. $$IF(VERBOSE)
  237.     // Check to see if launched as OLE server
  238. $$ENDIF
  239.     if (cmdInfo.m_bRunEmbedded || cmdInfo.m_bRunAutomated)
  240.     {
  241. $$IF(!PROJTYPE_MDI)
  242. $$IF(VERBOSE)
  243.         // Register all OLE server (factories) as running.  This enables the
  244.         //  OLE libraries to create objects from other applications.
  245. $$ENDIF //VERBOSE
  246.         COleTemplateServer::RegisterAll();
  247.  
  248. $$ENDIF //!MDI
  249.         // Application was run with /Embedding or /Automation.  Don't show the
  250.         //  main window in this case.
  251.         return TRUE;
  252.     }
  253.  
  254. $$IF(VERBOSE)
  255.     // When a server application is launched stand-alone, it is a good idea
  256.     //  to update the system registry in case it has been damaged.
  257. $$ENDIF
  258. $$IF(MINI_SERVER || FULL_SERVER || CONTAINER_SERVER)
  259. $$IF(ACTIVE_DOC_SERVER)
  260.     m_server.UpdateRegistry(OAT_DOC_OBJECT_SERVER);
  261. $$ELSE
  262.     m_server.UpdateRegistry(OAT_INPLACE_SERVER);
  263. $$ENDIF    // ACTIVE_DOC_SERVER
  264. $$ELIF(AUTOMATION)
  265.     m_server.UpdateRegistry(OAT_DISPATCH_OBJECT);
  266. $$ENDIF
  267. $$IF(AUTOMATION)
  268.     COleObjectFactory::UpdateRegistryAll();
  269. $$ENDIF
  270.  
  271. $$ENDIF //MINI_SERVER || FULL_SERVER || CONTAINER_SERVER || AUTOMATION
  272. $$IF(MINI_SERVER)
  273. $$IF(VERBOSE)
  274.     // When a mini-server is run stand-alone the registry is updated and the
  275.     //  user is instructed to use the Insert Object dialog in a container
  276.     //  to use the server.  Mini-servers do not have stand-alone user interfaces.
  277. $$ENDIF //VERBOSE
  278.     AfxMessageBox(IDP_USE_INSERT_OBJECT);
  279.     return FALSE;
  280. $$ELSE //!MINI_SERVER
  281.     // Dispatch commands specified on the command line
  282.     if (!ProcessShellCommand(cmdInfo))
  283.         return FALSE;
  284. $$IF(PROJTYPE_MDI)
  285. $$IF(VERBOSE)
  286.  
  287.     // The main window has been initialized, so show and update it.
  288. $$ENDIF
  289.     pMainFrame->ShowWindow($$SW_ARG$$);
  290.     pMainFrame->UpdateWindow();
  291. $$ELIF(PROJTYPE_SDI)
  292. $$IF(VERBOSE)
  293.  
  294.     // The one and only window has been initialized, so show and update it.
  295. $$ENDIF
  296.     m_pMainWnd->ShowWindow($$SW_ARG$$);
  297.     m_pMainWnd->UpdateWindow();
  298. $$// call DragAcceptFiles only if compiling for Mac, or if there's a suffix.
  299. $$//  In an SDI app, this should occur after ProcessShellCommand
  300. $$IF(HAS_SUFFIX)
  301.  
  302.     // Enable drag/drop open
  303.     m_pMainWnd->DragAcceptFiles();
  304. $$ELIF(INSTALLED_MAC)
  305.  
  306. #ifdef _MAC
  307.     // Enable drag/drop open.  We don't call this in Win32, since a
  308.     //  document file extension wasn't chosen while running AppWizard.
  309.     m_pMainWnd->DragAcceptFiles();
  310. #endif
  311. $$ENDIF //SUFFIX/INSTALLED_MAC
  312. $$ENDIF //MDI/SDI
  313.  
  314.     return TRUE;
  315. $$ENDIF //!MINI_SERVER
  316. }
  317.  
  318. /////////////////////////////////////////////////////////////////////////////
  319. // CAboutDlg dialog used for App About
  320.  
  321. class CAboutDlg : public CDialog
  322. {
  323. public:
  324.     CAboutDlg();
  325.  
  326. // Dialog Data
  327.     //{{AFX_DATA(CAboutDlg)
  328.     enum { IDD = IDD_ABOUTBOX };
  329.     //}}AFX_DATA
  330.  
  331.     // ClassWizard generated virtual function overrides
  332.     //{{AFX_VIRTUAL(CAboutDlg)
  333.     protected:
  334.     virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  335.     //}}AFX_VIRTUAL
  336.  
  337. // Implementation
  338. protected:
  339.     //{{AFX_MSG(CAboutDlg)
  340.         // No message handlers
  341.     //}}AFX_MSG
  342.     DECLARE_MESSAGE_MAP()
  343. };
  344.  
  345. CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
  346. {
  347.     //{{AFX_DATA_INIT(CAboutDlg)
  348.     //}}AFX_DATA_INIT
  349. }
  350.  
  351. void CAboutDlg::DoDataExchange(CDataExchange* pDX)
  352. {
  353.     CDialog::DoDataExchange(pDX);
  354.     //{{AFX_DATA_MAP(CAboutDlg)
  355.     //}}AFX_DATA_MAP
  356. }
  357.  
  358. BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
  359.     //{{AFX_MSG_MAP(CAboutDlg)
  360.         // No message handlers
  361.     //}}AFX_MSG_MAP
  362. END_MESSAGE_MAP()
  363.  
  364. // App command to run the dialog
  365. void $$APP_CLASS$$::OnAppAbout()
  366. {
  367.     CAboutDlg aboutDlg;
  368.     aboutDlg.DoModal();
  369. }
  370.  
  371. /////////////////////////////////////////////////////////////////////////////
  372. // $$APP_CLASS$$ commands
  373.