Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

810 lines
21 KiB

  1. //
  2. // MWND.HPP
  3. // Main WB Window
  4. //
  5. // Copyright Microsoft 1998-
  6. //
  7. #ifndef __MWND_HPP_
  8. #define __MWND_HPP_
  9. #define ARRAYSIZE(a) (sizeof(a) / sizeof(a[0]))
  10. //
  11. // The progress timer meter is kinda the heart beat of this thing
  12. //
  13. #define MAIN_PROGRESS_TIMER 1000
  14. // Milliseconds
  15. #define MAIN_DIALOG_DELAY 1500
  16. #define MAIN_REGISTRATION_TIMEOUT 300000 // These are long, for modems
  17. #define MAIN_LOCK_TIMEOUT 120000
  18. //
  19. // Timer IDs
  20. //
  21. #define TIMERID_PROGRESS_METER 4
  22. #define TIMERID_MAXDISPLAY 10
  23. //
  24. // Timed dialog information
  25. //
  26. typedef struct tagTMDLG
  27. {
  28. BOOL bLockNotEvent;
  29. BOOL bVisible;
  30. UINT uiMaxDisplay;
  31. }
  32. TMDLG;
  33. // This constant must only be defined in FAR EAST sdk
  34. // since it is not in US version. In Sook Choi (Korea) says
  35. // it is 40h so thats what I will use. Bug 3258.
  36. #ifndef CLIP_DFA_OVERRIDE
  37. #define CLIP_DFA_OVERRIDE (0x40)
  38. #endif
  39. // Constants for width menu commands (bug 433)
  40. #define MENUPOS_OPTIONS 4
  41. #define OPTIONSPOS_WIDTH 2
  42. //
  43. // Main state
  44. // STARTING = Whiteboard just started, not ready for user input.
  45. // In this state until registration dialog is cleared.
  46. // IN_CALL = Whiteboard ready for input
  47. // ERROR_STATE = a serious error has occurred, Whiteboard must be closed
  48. // JOINING = joining a call (join call dialog is up)
  49. // JOINED = Received join call indication, waiting for 'join call'
  50. // dialog to be dismissed.
  51. // CLOSING = Whiteboard is shutting down. Ignore all messages.
  52. //
  53. //
  54. enum
  55. {
  56. STARTING = 0,
  57. IN_CALL,
  58. ERROR_STATE,
  59. JOINING,
  60. JOINED,
  61. CLOSING
  62. };
  63. //
  64. // Substate - valid only when in call
  65. // IDLE = Normal state - user can do anything permitted by
  66. // current lock status.
  67. // LOADING = Currently loading a file
  68. // NEW_IN_PROGRESS = Currently deleting contents
  69. //
  70. //
  71. #define SUBSTATE_IDLE 0
  72. #define SUBSTATE_LOADING 1
  73. #define SUBSTATE_NEW_IN_PROGRESS 2
  74. //
  75. // Capture options
  76. //
  77. #define CAPTURE_TO_SAME 0
  78. #define CAPTURE_TO_NEW 1
  79. //
  80. // Border to be left around the checkmark in the color and width menus and
  81. // width of items in these menus.
  82. //
  83. #define CHECKMARK_BORDER_X 3
  84. #define CHECKMARK_BORDER_Y 5
  85. #define COLOR_MENU_WIDTH 40
  86. typedef struct tagWBFINDDIALOG
  87. {
  88. HWND hwndDialog;
  89. HWND hwndOwner;
  90. } WBFINDDIALOG;
  91. #define MAX_FONT_SIZE 20
  92. #define STATUSBAR_HEIGHT (MAX_FONT_SIZE + 2*::GetSystemMetrics(SM_CYEDGE))
  93. //
  94. //
  95. // Class: WbMainWindow
  96. //
  97. // Purpose: Main Whiteboard window
  98. //
  99. //
  100. class WbMainWindow
  101. {
  102. //
  103. // Event handler friend used for redirecting events to specific main
  104. // window objects.
  105. //
  106. friend BOOL CALLBACK WbMainWindowEventHandler(LPVOID utHandle,
  107. UINT event,
  108. UINT_PTR param1,
  109. UINT_PTR param2);
  110. friend LRESULT CALLBACK WbMainWindowProc(HWND, UINT, WPARAM, LPARAM);
  111. friend BOOL CALLBACK WbFindCurrentDialog(HWND hwnd, LPARAM);
  112. friend DCWbGraphicMarker; // needs to get at LastDeletedGraphic
  113. friend ObjectTrashCan; // needs to get at drawingArea
  114. public:
  115. //
  116. // Construction and destruction
  117. //
  118. WbMainWindow(void);
  119. ~WbMainWindow(void);
  120. //
  121. // Initialization - display the window and its children
  122. //
  123. BOOL Open(int iCommand);
  124. BOOL JoinDomain(void);
  125. //
  126. // Popup context menu for drawing area
  127. //
  128. void PopupContextMenu(int x, int y);
  129. //
  130. // Check whether the application is idle (not opening or doing a new)
  131. //
  132. BOOL IsIdle(void);
  133. // widthbar needs access to the current tool to get the current widths
  134. WbTool *GetCurrentTool( void )
  135. {return( m_pCurrentTool );}
  136. BOOL IsToolBarOn( void )
  137. {return( m_bToolBarOn );}
  138. WB_PAGE_HANDLE GetCurrentPage(void) {return(m_hCurrentPage);}
  139. BOOL UsersMightLoseData( BOOL *pbWasPosted, HWND hwnd );
  140. BOOL HasGraphicChanged( PWB_GRAPHIC pOldHeaderCopy, const PWB_GRAPHIC pNewHeader );
  141. void UpdateWindowTitle(void);
  142. //
  143. // Handles tool tips and accelerators
  144. //
  145. BOOL FilterMessage(MSG* pMsg);
  146. //
  147. // Global data
  148. //
  149. HWND m_hwnd;
  150. WbTool * m_ToolArray[TOOL_COUNT];
  151. // Dropping files onto the window
  152. void OnDropFiles(HDROP hDropInfo);
  153. protected:
  154. //
  155. // Tooltips
  156. //
  157. HWND m_hwndToolTip;
  158. TOOLINFO m_tiLastHit;
  159. int m_nLastHit;
  160. int OnToolHitTest(POINT pt, TOOLINFO* pTI) const;
  161. // WindowProc handlers
  162. int OnCreate(LPCREATESTRUCT lpcs);
  163. void OnDestroy();
  164. void OnClose(void);
  165. void OnSize(UINT, int, int);
  166. void OnMove(void);
  167. void OnSetFocus(void);
  168. void OnInitMenuPopup(HMENU hMenu, UINT uiIndex, BOOL bSystem);
  169. void OnMenuSelect(UINT uiItemID, UINT uiFlags, HMENU hSysMenu);
  170. void OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT measureStruct);
  171. void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT drawStruct);
  172. void OnGetMinMaxInfo(MINMAXINFO FAR* lpmmi);
  173. void OnRenderAllFormats(void);
  174. void OnPaletteChanged(HWND hwndPalette);
  175. LRESULT OnQueryNewPalette(void);
  176. void OnTimer(UINT_PTR uiTimerId);
  177. LRESULT OnQueryEndSession(void);
  178. LRESULT OnConfShutdown( WPARAM, LPARAM );
  179. void OnEndSession(BOOL bEnding);
  180. void OnParentNotify(UINT msg);
  181. LRESULT OnToolTipText(UINT, NMHDR*);
  182. //
  183. // HELP
  184. //
  185. void ShowHelp(void);
  186. // Command handlers
  187. void OnCommand(UINT id, UINT code, HWND hwndCtl);
  188. void OnAbout(void);
  189. void OnNew(void);
  190. void OnOpen(void);
  191. void OnClearPage(void);
  192. void OnDelete(void);
  193. void OnUndelete(void);
  194. void OnCut(void);
  195. void OnCopy(void);
  196. void OnPaste(void);
  197. void OnSelectAll( void );
  198. void OnChooseFont(void);
  199. void OnToolBarToggle(void);
  200. void OnStatusBarToggle(void);
  201. void OnGrabWindow(void);
  202. void OnZoom(void);
  203. int OnSave(BOOL bPrompt);
  204. void OnPrint(void);
  205. void OnPageSorter(void);
  206. void OnInsertPageBefore(void);
  207. void OnInsertPageAfter(void);
  208. void OnDeletePage(void);
  209. void OnGrabArea(void);
  210. void OnLButtonDown(void);
  211. void OnLButtonUp(void);
  212. void OnMouseMove(void);
  213. void OnRemotePointer(void);
  214. void OnSync(void);
  215. void OnLock(void);
  216. void OnSelectTool(UINT id); // Select the current tool
  217. void OnSelectColor(void); // Color changed in palette
  218. void OnSelectWidth(UINT id); // Select pen width
  219. // Scrolling control (accessed via accelerators)
  220. void OnScrollAccelerator(UINT id);
  221. // Moving through the pages
  222. void OnFirstPage(void);
  223. void OnPrevPage(void);
  224. void OnNextPage(void);
  225. void OnLastPage(void);
  226. void OnGotoPage(void);
  227. void OnGotoUserPosition(LPARAM lParam);
  228. void OnGotoUserPointer(LPARAM lParam);
  229. void OnJoinCall(BOOL bKeepContents, LPARAM lParam);
  230. void OnDisplayError(WPARAM wParam, LPARAM lParam);
  231. void OnJoinPendingCall(void);
  232. void LoadCmdLine(LPCSTR szFileName);
  233. // CancelMode processing
  234. void OnCancelMode();
  235. void OnNotify(UINT id, NMHDR* pNM);
  236. void OnSysColorChange( void );
  237. BOOL m_bInitOk;
  238. //
  239. // Flag indicating that we are currently displaying a serious error
  240. // message.
  241. //
  242. BOOL m_bDisplayingError;
  243. //
  244. // Domain ID of the call we are currently in
  245. //
  246. DWORD m_dwDomain;
  247. //
  248. // Start registration with the necessary cores and join a call initially
  249. //
  250. BOOL JoinCall(BOOL bLocal);
  251. BOOL WaitForJoinCallComplete(void);
  252. //
  253. // Move to a given position in the page
  254. //
  255. void GotoPosition(int x, int y);
  256. //
  257. // Go to a specific page
  258. //
  259. void GotoPage(WB_PAGE_HANDLE hPage);
  260. void GotoPageNumber(UINT uiPageNumber);
  261. //
  262. // Go to a specified position
  263. //
  264. void GotoSyncPosition(void);
  265. //
  266. // Flag used to prevent processing of WM_TIMER messages. Even if the
  267. // timer is stopped there may be old messages in the queue. This flag
  268. // prevents these messages being processed.
  269. //
  270. BOOL m_bTimerActive;
  271. //
  272. // Flag indicating whether an update to the sync position is needed. The
  273. // update is performed from the OnTimer member when it is next entered.
  274. //
  275. BOOL m_bSyncUpdateNeeded;
  276. //
  277. // Event handler for DC-Groupware events
  278. //
  279. BOOL EventHandler(UINT Event, UINT_PTR param1, UINT_PTR param2);
  280. void ProcessEvents(UINT Event, UINT_PTR param1, UINT_PTR param2);
  281. //
  282. // Individual DC-Groupware event handlers
  283. //
  284. void OnCMSNewCall(BOOL fTopProvider, DWORD _dwDomain);
  285. void OnCMSEndCall(void);
  286. void OnALSLoadResult(UINT reason);
  287. void OnWBPJoinCallOK(void);
  288. void OnWBPJoinCallFailed(void);
  289. void OnWBPNetworkLost(void);
  290. void OnWBPError(void);
  291. void OnWBPPageClearInd(WB_PAGE_HANDLE hPage);
  292. void OnWBPPageOrderUpdated(void);
  293. void OnWBPPageDeleteInd(WB_PAGE_HANDLE hPage);
  294. void OnWBPContentsLocked(POM_OBJECT hUser);
  295. void OnWBPPageOrderLocked(POM_OBJECT hUser);
  296. void OnWBPUnlocked(POM_OBJECT hUser);
  297. void OnWBPLockFailed(void);
  298. void OnWBPGraphicAdded(WB_PAGE_HANDLE hPage, WB_GRAPHIC_HANDLE hGraphic);
  299. void OnWBPGraphicMoved(WB_PAGE_HANDLE hPage, WB_GRAPHIC_HANDLE hGraphic);
  300. void OnWBPGraphicUpdateInd(WB_PAGE_HANDLE hPage,
  301. WB_GRAPHIC_HANDLE hGraphic);
  302. void OnWBPGraphicReplaceInd(WB_PAGE_HANDLE hPage,
  303. WB_GRAPHIC_HANDLE hGraphic);
  304. void OnWBPGraphicDeleteInd(WB_PAGE_HANDLE hPage,
  305. WB_GRAPHIC_HANDLE hGraphic);
  306. void OnWBPUserJoined(POM_OBJECT hUser);
  307. void OnWBPUserLeftInd(POM_OBJECT hUser);
  308. void OnWBPUserUpdateInd(POM_OBJECT hUser, BOOL bReplace);
  309. void OnWBPSyncPositionUpdated(void);
  310. void OnWBPLoadComplete(void);
  311. void OnWBPLoadFailed(void);
  312. //
  313. // Clipboard access
  314. //
  315. BOOL DoCopy(BOOL bRenderNow); // Copy selection to the clipboard
  316. // Clipboard vars
  317. WB_PAGE_HANDLE m_hPageClip;
  318. WB_GRAPHIC_HANDLE m_hGraphicClip;
  319. DCWbGraphic * m_pDelayedGraphicClip;
  320. PWB_GRAPHIC m_pDelayedDataClip;
  321. // Clipboard routines
  322. WB_PAGE_HANDLE CLP_LastCopiedPage(void) const;
  323. WB_GRAPHIC_HANDLE CLP_LastCopiedGraphic(void) const;
  324. int CLP_AcceptableClipboardFormat(void);
  325. DCWbGraphic * CLP_Paste(void);
  326. BOOL CLP_Copy(DCWbGraphic * pGraphic, BOOL bRenderNow = FALSE);
  327. void CLP_SaveDelayedGraphic(void);
  328. void CLP_FreeDelayedGraphic(void);
  329. BOOL CLP_RenderFormat(int iFormat);
  330. BOOL CLP_RenderAllFormats(void);
  331. BOOL CLP_RenderAllFormats(DCWbGraphic * pGraphic);
  332. BOOL CLP_DelayAllFormats(DCWbGraphic * pGraphic);
  333. BOOL CLP_RenderPrivateFormat(DCWbGraphic* pGraphic);
  334. BOOL CLP_RenderPrivateSingleFormat(DCWbGraphic* pGraphic);
  335. BOOL CLP_RenderAsImage(DCWbGraphic* pGraphic);
  336. BOOL CLP_RenderAsText(DCWbGraphic* pGraphic);
  337. BOOL CLP_RenderAsBitmap(DCWbGraphic* pGraphic);
  338. #ifdef RENDER_AS_MF
  339. BOOL CLP_RenderMetafileFormat(DCWbGraphic* pGraphic);
  340. #endif
  341. //
  342. // Access functions for saved delayed graphic
  343. //
  344. PWB_GRAPHIC CLP_GetGraphicData(void);
  345. DCWbGraphic* CLP_GetGraphic(void);
  346. void CLP_ReleaseGraphicData(PWB_GRAPHIC pHeader);
  347. //
  348. // Tool bar window
  349. //
  350. WbToolBar m_TB;
  351. BOOL m_bToolBarOn;
  352. //
  353. // Make updates based on a new user joining the call
  354. //
  355. void UserJoined(WbUser* pUser);
  356. //
  357. // Insert a new page after the specified page
  358. //
  359. void InsertPageAfter(WB_PAGE_HANDLE hPageAfter);
  360. public:
  361. //
  362. // Drawing pane window
  363. //
  364. WbDrawingArea m_drawingArea;
  365. void RemoveGraphicPointer(DCWbGraphicPointer *p) { m_drawingArea.RemoveGraphicPointer(p); }
  366. UINT GetSubState( void )
  367. {return(m_uiSubState );}
  368. //
  369. // Get a lock on the Whiteboard contents. The first parameter
  370. // determines the type of lock, the second whether a visible or
  371. // invisible dialog is to be used (use SW_SHOW or SW_HIDE).
  372. //
  373. BOOL GetLock(UINT uiLockType, UINT uiHide = SW_SHOW);
  374. void SetLockOwner( const WbUser *pLockOwner )
  375. {m_pLockOwner = pLockOwner;}
  376. const WbUser * GetLockOwner( void )
  377. {return(m_pLockOwner );}
  378. //
  379. // FRAME WINDOW VARS
  380. //
  381. HACCEL m_hAccelTable;
  382. //
  383. // Get the window title
  384. //
  385. TCHAR * GetWindowTitle(void);
  386. WbWidthsGroup m_WG; // Pen Widths
  387. void EnableToolbar( BOOL bEnable );
  388. //
  389. // Page sorter dialog
  390. //
  391. HWND m_hwndPageSortDlg;
  392. //
  393. // Dialog that asks whether to save changes.
  394. //
  395. HWND m_hwndQuerySaveDlg;
  396. //
  397. // Timed dialogs that are running while the main window is waiting
  398. // for a specific event.
  399. //
  400. HWND m_hwndWaitForEventDlg;
  401. HWND m_hwndWaitForLockDlg;
  402. protected:
  403. HWND m_hwndInitDlg;
  404. void KillInitDlg(void);
  405. UINT GetTipId(HWND hTipWnd, UINT nID);
  406. //
  407. // Color palette, font, page controls
  408. //
  409. WbAttributesGroup m_AG;
  410. //
  411. // Status bar
  412. //
  413. HWND m_hwndSB;
  414. BOOL m_bStatusBarOn;
  415. void UpdateStatus(void);
  416. //
  417. // Initialize the menus (color and width menu items are all ownerdraw)
  418. //
  419. void InitializeMenus(void);
  420. //
  421. // Resize function for subpanes - called when the window is resized by
  422. // the user.
  423. //
  424. void ResizePanes(void);
  425. //
  426. // Current window size - normal, maximized or minimized
  427. //
  428. UINT m_uiWindowSize;
  429. //
  430. // Save the current window position to the options file
  431. //
  432. void SaveWindowPosition(void);
  433. //
  434. // Menu selection functions
  435. //
  436. UINT m_currentMenuTool; // Current tool menu Id
  437. UINT m_currentMenuWidth; // Current width menu Id
  438. //
  439. // Current drawing tool
  440. //
  441. WbTool* m_pCurrentTool;
  442. //
  443. // Menu update functions
  444. //
  445. void CheckMenuItem(UINT uiId);
  446. void UncheckMenuItem(UINT uiId);
  447. BOOL CheckMenuItemRecursive(HMENU hMenu, UINT uiId, BOOL bCheck);
  448. HMENU GetMenuWithItem(HMENU hMenu, UINT uiId);
  449. //
  450. // Select a window for grabbing
  451. //
  452. HWND SelectWindow(void);
  453. //
  454. // Add a captured bitmap to the contents
  455. //
  456. void AddCapturedImage(DCWbGraphicDIB& dib);
  457. //
  458. // Get confirmation for destructive functions (new, clear)
  459. //
  460. int QuerySaveRequired(BOOL bCancelBtn);
  461. //
  462. // Load a file
  463. //
  464. void LoadFile(LPCSTR strLoadFileName);
  465. //
  466. // Perform a save
  467. //
  468. //
  469. // Get a file name for saving
  470. //
  471. int GetFileName();
  472. //
  473. // Members saving and restoring the lock state. These can be used to
  474. // save the lock state before obtaining a temporary lock (e.g. for
  475. // adding a new page). They cannot be nested.
  476. //
  477. void SaveLock(void);
  478. void RestoreLock(void);
  479. WB_LOCK_TYPE m_uiSavedLockType;
  480. //
  481. // Release page order lock - this should be called after an asynchronous
  482. // function which requires the page order lock until it has completed.
  483. //
  484. void ReleasePageOrderLock(void);
  485. //
  486. // Display a message box for an error
  487. //
  488. void DisplayError(UINT uiCaption, UINT uiMessage);
  489. //
  490. // Current file name for saving image
  491. //
  492. TCHAR m_strFileName[2*_MAX_PATH];
  493. //
  494. // Grab an area of the screen into a bitmap
  495. //
  496. void GetGrabArea(LPRECT lprect);
  497. //
  498. // Hide/show the main window and its associated popups
  499. //
  500. void ShowAllWindows(int iShow);
  501. void ShowAllWindows(void) { ShowAllWindows(SW_RESTORE); }
  502. void HideAllWindows(void) { ShowAllWindows(SW_MINIMIZE); }
  503. //
  504. // Current page of graphics
  505. //
  506. WB_PAGE_HANDLE m_hCurrentPage;
  507. //
  508. // Handle of alternative accelerator table for page and text edit fields
  509. //
  510. HACCEL m_hAccelPagesGroup;
  511. HACCEL m_hAccelTextEdit;
  512. //
  513. // Local user
  514. //
  515. WbUser* m_pLocalUser;
  516. // current lock owner
  517. const WbUser* m_pLockOwner;
  518. //
  519. // Registration state variables
  520. //
  521. UINT m_uiState;
  522. UINT m_uiSubState;
  523. //
  524. // Pointer to last deleted graphic(s)
  525. //
  526. ObjectTrashCan m_LastDeletedGraphic;
  527. //
  528. // Context menu for drawing area
  529. //
  530. HMENU m_hContextMenuBar;
  531. HMENU m_hContextMenu;
  532. HMENU m_hGrobjContextMenuBar;
  533. HMENU m_hGrobjContextMenu;
  534. //
  535. // Member function to create pop-up context menu for the drawing area
  536. //
  537. BOOL CreateContextMenus(void);
  538. //
  539. // Flag to indicate that we are currently prompting the user to save
  540. // changes before joining a call
  541. //
  542. BOOL m_bPromptingJoinCall;
  543. // We remember if we're in a save dialog so we can canel it on certain events
  544. BOOL m_bInSaveDialog;
  545. void CancelSaveDialog(void);
  546. //
  547. // Recover the whiteboard into a good state
  548. //
  549. void Recover(void);
  550. //
  551. // Lock/unlock the drawing area
  552. //
  553. void LockDrawingArea(void);
  554. void UnlockDrawingArea(void);
  555. //
  556. // Update the page buttons disable/enable status
  557. //
  558. void UpdatePageButtons(void);
  559. //
  560. // Sync/unsync with other users.
  561. //
  562. void Sync(void);
  563. void Unsync(void);
  564. //
  565. // Cancel a load in progress
  566. //
  567. void CancelLoad(BOOL bReleaseLock = TRUE);
  568. //
  569. // Set the application substate
  570. //
  571. void SetSubstate(UINT newSubState);
  572. //
  573. // Ensure the attributes window is up to date
  574. //
  575. void OnUpdateAttributes(void)
  576. { m_AG.DisplayTool(m_pCurrentTool); }
  577. //
  578. // Map of page handles to positions
  579. //
  580. typedef struct PAGEPOSITION
  581. {
  582. WORD hPage;
  583. POINT position;
  584. } PAGE_POSITION;
  585. COBLIST m_pageToPosition;
  586. void PositionUpdated(void);
  587. //
  588. // Pending call status
  589. //
  590. BOOL m_bJoinCallPending; // Join-call pending?
  591. DWORD m_dwPendingDomain; // domain of pending join-call
  592. BOOL m_bPendingCallKeepContents; // keep contents on pending call
  593. UINT m_dwJoinDomain; // domain that is currently being
  594. // joined
  595. BOOL m_bCallActive; // Is there a call up ?
  596. //
  597. // Menu state.
  598. // - SetMenuStates grays items on the specified menu
  599. // - InvalidateActiveMenu calls SetMenuStates and forces a re-draw of
  600. // the currently active menu (if any)
  601. // - m_pInitMenu stores a pointer to the currently active menu.
  602. //
  603. public:
  604. void SetMenuStates(HMENU hInitMenu);
  605. protected:
  606. void InvalidateActiveMenu();
  607. HMENU m_hInitMenu;
  608. //
  609. // Number of remote users
  610. //
  611. UINT m_numRemoteUsers;
  612. BOOL m_bSelectAllInProgress;
  613. BOOL GetDefaultPath( LPTSTR csDefaultPath, UINT size );
  614. BOOL m_bUnlockStateSettled;
  615. BOOL m_bQuerySysShutdown;
  616. BOOL m_bIsWin95;
  617. //
  618. // Interface for determining if a WM_CANCELMODE message has been sent
  619. //
  620. protected:
  621. BOOL m_cancelModeSent;
  622. public:
  623. void ResetCancelMode() { m_cancelModeSent = FALSE; };
  624. BOOL CancelModeSent() { return m_cancelModeSent; };
  625. };
  626. //
  627. // Timed dialog proc
  628. //
  629. INT_PTR CALLBACK TimedDlgProc(HWND, UINT, WPARAM, LPARAM);
  630. //
  631. // QuerySave dialog proc
  632. //
  633. INT_PTR CALLBACK QuerySaveDlgProc(HWND, UINT, WPARAM, LPARAM);
  634. //
  635. // WarnSelectWindow dialog proc
  636. //
  637. INT_PTR CALLBACK WarnSelectWindowDlgProc(HWND, UINT, WPARAM, LPARAM);
  638. //
  639. // WarnSelectArea dialog proc
  640. //
  641. INT_PTR CALLBACK WarnSelectAreaDlgProc(HWND, UINT, WPARAM, LPARAM);
  642. //
  643. // About Box dialog proc
  644. //
  645. INT_PTR CALLBACK AboutDlgProc(HWND, UINT, WPARAM, LPARAM);
  646. #endif // __MWND_HPP_