MainFrm.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505
  1. /*
  2. ===========================================================================
  3. Copyright (C) 1999-2005 Id Software, Inc.
  4. This file is part of Quake III Arena source code.
  5. Quake III Arena source code is free software; you can redistribute it
  6. and/or modify it under the terms of the GNU General Public License as
  7. published by the Free Software Foundation; either version 2 of the License,
  8. or (at your option) any later version.
  9. Quake III Arena source code is distributed in the hope that it will be
  10. useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. GNU General Public License for more details.
  13. You should have received a copy of the GNU General Public License
  14. along with Foobar; if not, write to the Free Software
  15. Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  16. ===========================================================================
  17. */
  18. // MainFrm.h : interface of the CMainFrame class
  19. //
  20. /////////////////////////////////////////////////////////////////////////////
  21. #if !defined(AFX_MAINFRM_H__330BBF0A_731C_11D1_B539_00AA00A410FC__INCLUDED_)
  22. #define AFX_MAINFRM_H__330BBF0A_731C_11D1_B539_00AA00A410FC__INCLUDED_
  23. #if _MSC_VER >= 1000
  24. #pragma once
  25. #endif // _MSC_VER >= 1000
  26. #include "LstToolBar.h"
  27. #include "XYWnd.h"
  28. #include "TexWnd.h"
  29. #include "ZWnd.h"
  30. #include "CamWnd.h"
  31. #include "RADEditWnd.h"
  32. #include "TextureBar.h"
  33. #include "PlugInManager.h"
  34. #include "PlugIn.h"
  35. #include "groupdlg.h"
  36. const int RAD_SHIFT = 0x01;
  37. const int RAD_ALT = 0x02;
  38. const int RAD_CONTROL = 0x04;
  39. const int RAD_PRESS = 0x08;
  40. struct SCommandInfo
  41. {
  42. char* m_strCommand;
  43. unsigned int m_nKey;
  44. unsigned int m_nModifiers;
  45. unsigned int m_nCommand;
  46. };
  47. struct SKeyInfo
  48. {
  49. char* m_strName;
  50. unsigned int m_nVKKey;
  51. };
  52. class CMainFrame : public CFrameWnd
  53. {
  54. DECLARE_DYNAMIC(CMainFrame)
  55. public:
  56. CMainFrame();
  57. void HandleKey(UINT nChar, UINT nRepCnt, UINT nFlags, bool bDown = true)
  58. {
  59. if (bDown)
  60. OnKeyDown(nChar, nRepCnt, nFlags);
  61. else
  62. OnKeyUp(nChar, nRepCnt, nFlags);
  63. };
  64. // Attributes
  65. public:
  66. // Operations
  67. public:
  68. // Overrides
  69. // ClassWizard generated virtual function overrides
  70. //{{AFX_VIRTUAL(CMainFrame)
  71. public:
  72. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  73. virtual BOOL PreTranslateMessage(MSG* pMsg);
  74. protected:
  75. virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
  76. virtual LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam);
  77. virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
  78. virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext);
  79. //}}AFX_VIRTUAL
  80. // Implementation
  81. public:
  82. void UpdatePatchToolbarButtons();
  83. void NudgeSelection(int nDirection, int nAmount);
  84. void UpdateTextureBar();
  85. void SetButtonMenuStates();
  86. void SetTexValStatus();
  87. void SetGridStatus();
  88. void RoutineProcessing();
  89. CXYWnd* ActiveXY();
  90. void UpdateWindows(int nBits);
  91. void SetStatusText(int nPane, const char* pText);
  92. void UpdateStatusText();
  93. void SetWindowStyle(int nStyle);
  94. virtual ~CMainFrame();
  95. CXYWnd* GetXYWnd() {return m_pXYWnd;};
  96. CXYWnd* GetXZWnd() {return m_pXZWnd;};
  97. CXYWnd* GetYZWnd() {return m_pYZWnd;};
  98. CCamWnd* GetCamera() {return m_pCamWnd;};
  99. CTexWnd* GetTexWnd() {return m_pTexWnd;};
  100. void SetActiveXY(CXYWnd* p)
  101. {
  102. if (m_pActiveXY)
  103. m_pActiveXY->SetActive(false);
  104. m_pActiveXY = p;
  105. if (m_pActiveXY)
  106. m_pActiveXY->SetActive(true);
  107. };
  108. int CurrentStyle() { return m_nCurrentStyle; };
  109. #ifdef _DEBUG
  110. virtual void AssertValid() const;
  111. virtual void Dump(CDumpContext& dc) const;
  112. #endif
  113. protected: // control bar embedded members
  114. CStatusBar m_wndStatusBar;
  115. CLstToolBar m_wndToolBar;
  116. CLstToolBar m_wndScaleBar;
  117. CDialogBar m_wndHelpBar;
  118. CTextureBar m_wndTextureBar;
  119. CSplitterWnd m_wndSplit;
  120. CSplitterWnd m_wndSplit2;
  121. CSplitterWnd m_wndSplit3;
  122. CXYWnd* m_pXYWnd;
  123. CXYWnd* m_pYZWnd;
  124. CXYWnd* m_pXZWnd;
  125. CCamWnd* m_pCamWnd;
  126. CTexWnd* m_pTexWnd;
  127. CZWnd* m_pZWnd;
  128. CRADEditWnd* m_pEditWnd;
  129. int m_nCurrentStyle;
  130. CString m_strStatus[15];
  131. CXYWnd* m_pActiveXY;
  132. bool m_bCamPreview;
  133. CPlugInManager m_PlugInMgr;
  134. int m_nNextPlugInID;
  135. // Generated message map functions
  136. protected:
  137. bool m_bDoLoop;
  138. bool m_bSplittersOK;
  139. void CreateQEChildren();
  140. void LoadCommandMap();
  141. void ShowMenuItemKeyBindings(CMenu *pMenu);
  142. void SetEntityCheck();
  143. afx_msg LRESULT OnBSPStatus(UINT wParam, long lParam);
  144. afx_msg LRESULT OnBSPDone(UINT wParam, long lParam);
  145. public:
  146. void Nudge(int nDim, float fNudge);
  147. CPlugInManager &GetPlugInMgr() {return m_PlugInMgr;};
  148. void AddPlugInMenuItem(CPlugIn* pPlugIn);
  149. void CleanPlugInMenu();
  150. // these are public so i can easily reflect messages
  151. // from child windows..
  152. //{{AFX_MSG(CMainFrame)
  153. afx_msg void OnParentNotify(UINT message, LPARAM lParam);
  154. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  155. afx_msg void OnTimer(UINT nIDEvent);
  156. afx_msg void OnDestroy();
  157. afx_msg void OnClose();
  158. afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  159. afx_msg void OnSize(UINT nType, int cx, int cy);
  160. afx_msg void ToggleCamera();
  161. afx_msg void OnFileClose();
  162. afx_msg void OnFileExit();
  163. afx_msg void OnFileLoadproject();
  164. afx_msg void OnFileNew();
  165. afx_msg void OnFileOpen();
  166. afx_msg void OnFilePointfile();
  167. afx_msg void OnFilePrint();
  168. afx_msg void OnFilePrintPreview();
  169. afx_msg void OnFileSave();
  170. afx_msg void OnFileSaveas();
  171. afx_msg void OnView100();
  172. afx_msg void OnViewCenter();
  173. afx_msg void OnViewConsole();
  174. afx_msg void OnViewDownfloor();
  175. afx_msg void OnViewEntity();
  176. afx_msg void OnViewFront();
  177. afx_msg void OnViewShowblocks();
  178. afx_msg void OnViewShowclip();
  179. afx_msg void OnViewShowcoordinates();
  180. afx_msg void OnViewShowdetail();
  181. afx_msg void OnViewShowent();
  182. afx_msg void OnViewShowlights();
  183. afx_msg void OnViewShownames();
  184. afx_msg void OnViewShowpath();
  185. afx_msg void OnViewShowwater();
  186. afx_msg void OnViewShowworld();
  187. afx_msg void OnViewTexture();
  188. afx_msg void OnViewUpfloor();
  189. afx_msg void OnViewXy();
  190. afx_msg void OnViewZ100();
  191. afx_msg void OnViewZoomin();
  192. afx_msg void OnViewZoomout();
  193. afx_msg void OnViewZzoomin();
  194. afx_msg void OnViewZzoomout();
  195. afx_msg void OnViewSide();
  196. afx_msg void OnTexturesShowinuse();
  197. afx_msg void OnTexturesInspector();
  198. afx_msg void OnMiscBenchmark();
  199. afx_msg void OnMiscFindbrush();
  200. afx_msg void OnMiscGamma();
  201. afx_msg void OnMiscNextleakspot();
  202. afx_msg void OnMiscPreviousleakspot();
  203. afx_msg void OnMiscPrintxy();
  204. afx_msg void OnMiscSelectentitycolor();
  205. afx_msg void OnTexturebk();
  206. afx_msg void OnColorsMajor();
  207. afx_msg void OnColorsMinor();
  208. afx_msg void OnColorsXybk();
  209. afx_msg void OnBrush3sided();
  210. afx_msg void OnBrush4sided();
  211. afx_msg void OnBrush5sided();
  212. afx_msg void OnBrush6sided();
  213. afx_msg void OnBrush7sided();
  214. afx_msg void OnBrush8sided();
  215. afx_msg void OnBrush9sided();
  216. afx_msg void OnBrushArbitrarysided();
  217. afx_msg void OnBrushFlipx();
  218. afx_msg void OnBrushFlipy();
  219. afx_msg void OnBrushFlipz();
  220. afx_msg void OnBrushRotatex();
  221. afx_msg void OnBrushRotatey();
  222. afx_msg void OnBrushRotatez();
  223. afx_msg void OnRegionOff();
  224. afx_msg void OnRegionSetbrush();
  225. afx_msg void OnRegionSetselection();
  226. afx_msg void OnRegionSettallbrush();
  227. afx_msg void OnRegionSetxy();
  228. afx_msg void OnSelectionArbitraryrotation();
  229. afx_msg void OnSelectionClone();
  230. afx_msg void OnSelectionConnect();
  231. afx_msg void OnSelectionCsgsubtract();
  232. afx_msg void OnSelectionCsgmerge();
  233. afx_msg void OnSelectionNoOutline();
  234. afx_msg void OnSelectionDelete();
  235. afx_msg void OnSelectionDeselect();
  236. afx_msg void OnSelectionDragedges();
  237. afx_msg void OnSelectionDragvertecies();
  238. afx_msg void OnRaiseLowerTerrain();
  239. afx_msg void OnSelectionMakeDetail();
  240. afx_msg void OnSelectionMakeStructural();
  241. afx_msg void OnSelectionMakehollow();
  242. afx_msg void OnSelectionSelectcompletetall();
  243. afx_msg void OnSelectionSelectinside();
  244. afx_msg void OnSelectionSelectpartialtall();
  245. afx_msg void OnSelectionSelecttouching();
  246. afx_msg void OnSelectionUngroupentity();
  247. afx_msg void OnTexturesPopup();
  248. afx_msg void OnSplinesPopup();
  249. afx_msg void OnPopupSelection();
  250. afx_msg void OnViewChange();
  251. afx_msg void OnViewCameraupdate();
  252. afx_msg void OnUpdateViewCameraupdate(CCmdUI* pCmdUI);
  253. afx_msg void OnSizing(UINT fwSide, LPRECT pRect);
  254. afx_msg void OnHelpAbout();
  255. afx_msg void OnViewClipper();
  256. afx_msg void OnCameraAngledown();
  257. afx_msg void OnCameraAngleup();
  258. afx_msg void OnCameraBack();
  259. afx_msg void OnCameraDown();
  260. afx_msg void OnCameraForward();
  261. afx_msg void OnCameraLeft();
  262. afx_msg void OnCameraRight();
  263. afx_msg void OnCameraStrafeleft();
  264. afx_msg void OnCameraStraferight();
  265. afx_msg void OnCameraUp();
  266. afx_msg void OnGridToggle();
  267. afx_msg void OnPrefs();
  268. afx_msg void OnTogglecamera();
  269. afx_msg void OnToggleconsole();
  270. afx_msg void OnToggleview();
  271. afx_msg void OnTogglez();
  272. afx_msg void OnToggleLock();
  273. afx_msg void OnEditMapinfo();
  274. afx_msg void OnEditEntityinfo();
  275. afx_msg void OnBrushScripts();
  276. afx_msg void OnViewNextview();
  277. afx_msg void OnHelpCommandlist();
  278. afx_msg void OnFileNewproject();
  279. afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);
  280. afx_msg void OnFlipClip();
  281. afx_msg void OnClipSelected();
  282. afx_msg void OnSplitSelected();
  283. afx_msg void OnToggleviewXz();
  284. afx_msg void OnToggleviewYz();
  285. afx_msg void OnColorsBrush();
  286. afx_msg void OnColorsClipper();
  287. afx_msg void OnColorsGridtext();
  288. afx_msg void OnColorsSelectedbrush();
  289. afx_msg void OnColorsGridblock();
  290. afx_msg void OnColorsViewname();
  291. afx_msg void OnColorSetoriginal();
  292. afx_msg void OnColorSetqer();
  293. afx_msg void OnColorSetblack();
  294. afx_msg void OnSnaptogrid();
  295. afx_msg void OnSelectScale();
  296. afx_msg void OnSelectMouserotate();
  297. afx_msg void OnEditCopybrush();
  298. afx_msg void OnEditPastebrush();
  299. afx_msg void OnEditUndo();
  300. afx_msg void OnEditRedo();
  301. afx_msg void OnUpdateEditUndo(CCmdUI* pCmdUI);
  302. afx_msg void OnUpdateEditRedo(CCmdUI* pCmdUI);
  303. afx_msg void OnSelectionInvert();
  304. afx_msg void OnSelectionTextureDec();
  305. afx_msg void OnSelectionTextureFit();
  306. afx_msg void OnSelectionTextureInc();
  307. afx_msg void OnSelectionTextureRotateclock();
  308. afx_msg void OnSelectionTextureRotatecounter();
  309. afx_msg void OnSelectionTextureScaledown();
  310. afx_msg void OnSelectionTextureScaleup();
  311. afx_msg void OnSelectionTextureShiftdown();
  312. afx_msg void OnSelectionTextureShiftleft();
  313. afx_msg void OnSelectionTextureShiftright();
  314. afx_msg void OnSelectionTextureShiftup();
  315. afx_msg void OnGridNext();
  316. afx_msg void OnGridPrev();
  317. afx_msg void OnSelectionTextureScaleLeft();
  318. afx_msg void OnSelectionTextureScaleRight();
  319. afx_msg void OnTextureReplaceall();
  320. afx_msg void OnScalelockx();
  321. afx_msg void OnScalelocky();
  322. afx_msg void OnScalelockz();
  323. afx_msg void OnSelectMousescale();
  324. afx_msg void OnViewCubicclipping();
  325. afx_msg void OnFileImport();
  326. afx_msg void OnFileProjectsettings();
  327. afx_msg void OnUpdateFileImport(CCmdUI* pCmdUI);
  328. afx_msg void OnViewCubein();
  329. afx_msg void OnViewCubeout();
  330. afx_msg void OnFileSaveregion();
  331. afx_msg void OnUpdateFileSaveregion(CCmdUI* pCmdUI);
  332. afx_msg void OnSelectionMovedown();
  333. afx_msg void OnSelectionMoveup();
  334. afx_msg void OnToolbarMain();
  335. afx_msg void OnToolbarTexture();
  336. afx_msg void OnSelectionPrint();
  337. afx_msg void OnSelectionTogglesizepaint();
  338. afx_msg void OnBrushMakecone();
  339. afx_msg void OnTexturesLoad();
  340. afx_msg void OnToggleRotatelock();
  341. afx_msg void OnCurveBevel();
  342. afx_msg void OnCurveCylinder();
  343. afx_msg void OnCurveEighthsphere();
  344. afx_msg void OnCurveEndcap();
  345. afx_msg void OnCurveHemisphere();
  346. afx_msg void OnCurveInvertcurve();
  347. afx_msg void OnCurveQuarter();
  348. afx_msg void OnCurveSphere();
  349. afx_msg void OnFileImportmap();
  350. afx_msg void OnFileExportmap();
  351. afx_msg void OnEditLoadprefab();
  352. afx_msg void OnViewShowcurves();
  353. afx_msg void OnSelectionSelectNudgedown();
  354. afx_msg void OnSelectionSelectNudgeleft();
  355. afx_msg void OnSelectionSelectNudgeright();
  356. afx_msg void OnSelectionSelectNudgeup();
  357. afx_msg void OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  358. afx_msg void OnTexturesLoadlist();
  359. afx_msg void OnDontselectcurve();
  360. afx_msg void OnConvertcurves();
  361. afx_msg void OnDynamicLighting();
  362. afx_msg void OnCurveSimplepatchmesh();
  363. afx_msg void OnPatchToggleBox();
  364. afx_msg void OnPatchWireframe();
  365. afx_msg void OnCurvePatchcone();
  366. afx_msg void OnCurvePatchtube();
  367. afx_msg void OnPatchWeld();
  368. afx_msg void OnCurvePatchbevel();
  369. afx_msg void OnCurvePatchendcap();
  370. afx_msg void OnCurvePatchinvertedbevel();
  371. afx_msg void OnCurvePatchinvertedendcap();
  372. afx_msg void OnPatchDrilldown();
  373. afx_msg void OnCurveInsertcolumn();
  374. afx_msg void OnCurveInsertrow();
  375. afx_msg void OnCurveDeletecolumn();
  376. afx_msg void OnCurveDeleterow();
  377. afx_msg void OnCurveInsertAddcolumn();
  378. afx_msg void OnCurveInsertAddrow();
  379. afx_msg void OnCurveInsertInsertcolumn();
  380. afx_msg void OnCurveInsertInsertrow();
  381. afx_msg void OnCurveNegative();
  382. afx_msg void OnCurveNegativeTextureX();
  383. afx_msg void OnCurveNegativeTextureY();
  384. afx_msg void OnCurveDeleteFirstcolumn();
  385. afx_msg void OnCurveDeleteFirstrow();
  386. afx_msg void OnCurveDeleteLastcolumn();
  387. afx_msg void OnCurveDeleteLastrow();
  388. afx_msg void OnPatchBend();
  389. afx_msg void OnPatchInsdel();
  390. afx_msg void OnPatchEnter();
  391. afx_msg void OnPatchTab();
  392. afx_msg void OnCurvePatchdensetube();
  393. afx_msg void OnCurvePatchverydensetube();
  394. afx_msg void OnCurveCap();
  395. afx_msg void OnCurveCapInvertedbevel();
  396. afx_msg void OnCurveCapInvertedendcap();
  397. afx_msg void OnCurveRedisperseCols();
  398. afx_msg void OnCurveRedisperseRows();
  399. afx_msg void OnPatchNaturalize();
  400. afx_msg void OnSnapToGrid();
  401. afx_msg void OnCurvePatchsquare();
  402. afx_msg void OnTerrainCreateFromBrush();
  403. afx_msg void OnTexturesTexturewindowscale10();
  404. afx_msg void OnTexturesTexturewindowscale100();
  405. afx_msg void OnTexturesTexturewindowscale200();
  406. afx_msg void OnTexturesTexturewindowscale25();
  407. afx_msg void OnTexturesTexturewindowscale50();
  408. afx_msg void OnTexturesFlush();
  409. afx_msg void OnCurveOverlayClear();
  410. afx_msg void OnCurveOverlaySet();
  411. afx_msg void OnCurveThicken();
  412. afx_msg void OnCurveCyclecap();
  413. afx_msg void OnCurveMatrixTranspose();
  414. afx_msg void OnTexturesReloadshaders();
  415. afx_msg void OnShowEntities();
  416. afx_msg void OnViewEntitiesasBoundingbox();
  417. afx_msg void OnViewEntitiesasSelectedskinned();
  418. afx_msg void OnViewEntitiesasSelectedwireframe();
  419. afx_msg void OnViewEntitiesasSkinned();
  420. afx_msg void OnViewEntitiesasSkinnedandboxed();
  421. afx_msg void OnViewEntitiesasWireframe();
  422. afx_msg void OnPluginsRefresh();
  423. afx_msg void OnViewShowhint();
  424. afx_msg void OnUpdateTexturesShowinuse(CCmdUI* pCmdUI);
  425. afx_msg void OnTexturesShowall();
  426. afx_msg void OnPatchInspector();
  427. afx_msg void OnViewOpengllighting();
  428. afx_msg void OnSelectAll();
  429. afx_msg void OnViewShowcaulk();
  430. afx_msg void OnCurveFreeze();
  431. afx_msg void OnCurveUnFreeze();
  432. afx_msg void OnCurveUnFreezeAll();
  433. afx_msg void OnSelectReselect();
  434. afx_msg void OnViewShowangles();
  435. afx_msg void OnEditSaveprefab();
  436. afx_msg void OnCurveMoreendcapsbevelsSquarebevel();
  437. afx_msg void OnCurveMoreendcapsbevelsSquareendcap();
  438. afx_msg void OnBrushPrimitivesSphere();
  439. afx_msg void OnViewCrosshair();
  440. afx_msg void OnViewHideshowHideselected();
  441. afx_msg void OnViewHideshowShowhidden();
  442. afx_msg void OnTexturesShadersShow();
  443. afx_msg void OnTexturesFlushUnused();
  444. afx_msg void OnViewGroups();
  445. afx_msg void OnDropGroupAddtoWorld();
  446. afx_msg void OnDropGroupName();
  447. afx_msg void OnDropGroupNewgroup();
  448. afx_msg void OnDropGroupRemove();
  449. afx_msg void OnSplinesMode();
  450. afx_msg void OnSplinesLoad();
  451. afx_msg void OnSplinesSave();
  452. afx_msg void OnSplinesEdit();
  453. afx_msg void OnSplineTest();
  454. afx_msg void OnSplinesTarget();
  455. afx_msg void OnSplinesTargetPoints();
  456. afx_msg void OnSplinesCameraPoints();
  457. afx_msg void OnPopupNewcameraInterpolated();
  458. afx_msg void OnPopupNewcameraSpline();
  459. afx_msg void OnPopupNewcameraFixed();
  460. //}}AFX_MSG
  461. afx_msg void OnMru(unsigned int nID);
  462. afx_msg void OnViewNearest(unsigned int nID);
  463. afx_msg void OnTextureWad(unsigned int nID);
  464. afx_msg void OnBspCommand(unsigned int nID);
  465. afx_msg void OnGrid1(unsigned int nID);
  466. afx_msg LRESULT OnDisplayChange(WPARAM wp, LPARAM lp);
  467. void CheckTextureScale(int id);
  468. afx_msg void OnPlugIn(unsigned int nID);
  469. DECLARE_MESSAGE_MAP()
  470. };
  471. /////////////////////////////////////////////////////////////////////////////
  472. //{{AFX_INSERT_LOCATION}}
  473. // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
  474. #endif // !defined(AFX_MAINFRM_H__330BBF0A_731C_11D1_B539_00AA00A410FC__INCLUDED_)