From fb064541d6e0982a1d56415209ce128a57bbd214 Mon Sep 17 00:00:00 2001 From: Raten Date: Thu, 27 Nov 2025 16:46:48 +0900 Subject: [PATCH] new --- UltimateToolbox93_docs/Problems.txt | 29 + UltimateToolbox93_docs/UTBX93.chm | Bin 0 -> 5410965 bytes .../archive/include/BDIFCALC.h | 276 + .../Ultimate Toolbox/archive/include/OXBlob.h | 115 + .../archive/include/OXBlob.inl | 97 + .../archive/include/OXBmpPrv.h | 100 + .../archive/include/OXCmdLne.h | 129 + .../archive/include/OXCmdOpd.h | 262 + .../archive/include/OXCmdOpt.h | 200 + .../archive/include/OXCmdlEx.h | 96 + .../archive/include/OXCommMsg.h | 142 + .../archive/include/OXCommon.h | 31 + .../archive/include/OXCommon.rc | 118 + .../archive/include/OXCommunicator.h | 328 + .../archive/include/OXDFlHdr.h | 135 + .../archive/include/OXDispatchMarshaller.h | 104 + .../archive/include/OXFinalReleaseWnd.h | 102 + .../archive/include/OXMetafileViewer.h | 72 + .../archive/include/OXOwnThread.h | 172 + .../archive/include/OXOwnThreadCmdTarget.h | 162 + .../archive/include/OXPrvDlg.h | 136 + .../archive/include/OXResultObj.h | 187 + .../archive/include/OXResultPart.h | 269 + .../archive/include/OXResultPartDef.h | 81 + .../archive/include/OXSCCFG.H | 144 + .../archive/include/OXSCCNST.H | 22 + .../archive/include/OXSCEXCP.H | 55 + .../archive/include/OXSCFILE.H | 274 + .../archive/include/OXSCSTP.H | 112 + .../Ultimate Toolbox/archive/include/OXSEH.h | 292 + .../archive/include/OXSERCOM.H | 5 + .../archive/include/OXSERCOM.RC | 257 + .../Ultimate Toolbox/archive/include/OXSPtr.h | 381 + .../archive/include/OXSPtr.inl | 517 + .../archive/include/OXSRLZR.H | 130 + .../archive/include/OXSendMail.h | 227 + .../archive/include/OXStaticMenuItem.h | 114 + .../archive/include/OXThreadEngine.h | 261 + .../archive/include/OXTimer.h | 216 + .../archive/include/OXVariant.h | 142 + .../archive/include/OXVariant.inl | 235 + .../archive/include/OXVerinfo.h | 150 + .../archive/include/OXWebView.h | 153 + .../archive/include/OXWebView.rc | 117 + .../archive/include/PROGRESS.h | 122 + .../archive/include/UTB64Bit.h | 43 + .../archive/include/XMAINFRM.h | 151 + .../archive/include/XMDICLT.h | 146 + .../archive/include/oxmdisp.h | 1734 ++ .../archive/samples/Communicator/ChildFrm.cpp | 69 + .../archive/samples/Communicator/ChildFrm.h | 40 + .../samples/Communicator/Communicator.cpp | 188 + .../samples/Communicator/Communicator.dsp | 318 + .../samples/Communicator/Communicator.dsw | 29 + .../samples/Communicator/Communicator.h | 45 + .../samples/Communicator/Communicator.odl | 39 + .../samples/Communicator/Communicator.rc | 404 + .../samples/Communicator/Communicator.reg | 19 + .../samples/Communicator/CommunicatorDoc.cpp | 465 + .../samples/Communicator/CommunicatorDoc.h | 118 + .../samples/Communicator/CommunicatorInfo.rtf | Bin 0 -> 1929 bytes .../samples/Communicator/CommunicatorView.cpp | 503 + .../samples/Communicator/CommunicatorView.h | 94 + .../archive/samples/Communicator/HexView.cpp | 153 + .../archive/samples/Communicator/HexView.h | 48 + .../archive/samples/Communicator/MainFrm.cpp | 128 + .../archive/samples/Communicator/MainFrm.h | 44 + .../Communicator/OXDataCommunicator.cpp | 87 + .../samples/Communicator/OXDataCommunicator.h | 102 + .../samples/Communicator/SendDataDlg.h | 42 + .../archive/samples/Communicator/StdAfx.cpp | 6 + .../archive/samples/Communicator/StdAfx.h | 17 + .../samples/Communicator/res/Communicator.ico | Bin 0 -> 1078 bytes .../samples/Communicator/res/Communicator.rc2 | 13 + .../Communicator/res/CommunicatorDoc.ico | Bin 0 -> 1078 bytes .../samples/Communicator/res/Toolbar.bmp | Bin 0 -> 1078 bytes .../archive/samples/Communicator/resource.h | 66 + .../samples/Communicator/senddatadlg.cpp | 142 + .../archive/samples/MailSend/CgiHandler.cpp | 162 + .../archive/samples/MailSend/CgiHandler.h | 65 + .../archive/samples/MailSend/MailCmd.h | 89 + .../archive/samples/MailSend/MailEngine.cpp | 185 + .../archive/samples/MailSend/MailEngine.h | 58 + .../archive/samples/MailSend/MailMessage.cpp | 144 + .../archive/samples/MailSend/MailMessage.h | 91 + .../archive/samples/MailSend/MailSend.SUP | 6 + .../archive/samples/MailSend/MailSend.clw | 124 + .../archive/samples/MailSend/MailSend.cpp | 83 + .../archive/samples/MailSend/MailSend.dsp | 337 + .../archive/samples/MailSend/MailSend.dsw | 29 + .../archive/samples/MailSend/MailSend.h | 38 + .../archive/samples/MailSend/MailSend.odl | 108 + .../archive/samples/MailSend/MailSend.rc | 269 + .../archive/samples/MailSend/MailSendDlg.cpp | 255 + .../archive/samples/MailSend/MailSendDlg.h | 46 + .../archive/samples/MailSend/ReadMe.txt | 63 + .../archive/samples/MailSend/SendMail.CPP | 606 + .../archive/samples/MailSend/SendMail.h | 90 + .../archive/samples/MailSend/StdAfx.cpp | 6 + .../archive/samples/MailSend/StdAfx.h | 18 + .../archive/samples/MailSend/cgitooledrv.cpp | 102 + .../archive/samples/MailSend/cgitooledrv.h | 28 + .../archive/samples/MailSend/res/MailSend.ico | Bin 0 -> 1078 bytes .../archive/samples/MailSend/res/MailSend.rc2 | 13 + .../archive/samples/MailSend/resource.h | 31 + .../archive/samples/Preview/ChildFrm.cpp | 65 + .../archive/samples/Preview/ChildFrm.h | 40 + .../archive/samples/Preview/MainFrm.cpp | 91 + .../archive/samples/Preview/MainFrm.h | 44 + .../archive/samples/Preview/OXDocMgr.cpp | 113 + .../archive/samples/Preview/OXDocMgr.h | 11 + .../archive/samples/Preview/OXWinApp.H | 36 + .../archive/samples/Preview/OXWinApp.cpp | 36 + .../archive/samples/Preview/Preview.001 | 338 + .../archive/samples/Preview/Preview.clw | 95 + .../archive/samples/Preview/Preview.cpp | 144 + .../archive/samples/Preview/Preview.dsp | 337 + .../archive/samples/Preview/Preview.dsw | 29 + .../archive/samples/Preview/Preview.h | 42 + .../archive/samples/Preview/Preview.rc | 349 + .../archive/samples/Preview/Preview.reg | 14 + .../archive/samples/Preview/PreviewDoc.cpp | 82 + .../archive/samples/Preview/PreviewDoc.h | 44 + .../archive/samples/Preview/PreviewView.cpp | 91 + .../archive/samples/Preview/PreviewView.h | 51 + .../archive/samples/Preview/StdAfx.cpp | 6 + .../archive/samples/Preview/StdAfx.h | 16 + .../archive/samples/Preview/previewInfo.rtf | Bin 0 -> 2030 bytes .../archive/samples/Preview/res/Preview.ico | Bin 0 -> 1078 bytes .../archive/samples/Preview/res/Preview.rc2 | 13 + .../samples/Preview/res/PreviewDoc.ico | Bin 0 -> 1078 bytes .../archive/samples/Preview/res/Toolbar.bmp | Bin 0 -> 1078 bytes .../archive/samples/Preview/resource.h | 20 + .../archive/samples/Preview/test.bmp | Bin 0 -> 1270 bytes .../archive/samples/SEHDemo/SEHDEMO.TXT | 85 + .../archive/samples/SEHDemo/SEHDemo.clw | 45 + .../archive/samples/SEHDemo/SEHDemo.cpp | 96 + .../archive/samples/SEHDemo/SEHDemo.dsp | 241 + .../archive/samples/SEHDemo/SEHDemo.dsw | 29 + .../archive/samples/SEHDemo/SEHDemo.h | 40 + .../archive/samples/SEHDemo/SEHDemo.rc | 198 + .../archive/samples/SEHDemo/SEHDemoDlg.cpp | 246 + .../archive/samples/SEHDemo/SEHDemoDlg.h | 44 + .../archive/samples/SEHDemo/StdAfx.cpp | 6 + .../archive/samples/SEHDemo/StdAfx.h | 16 + .../archive/samples/SEHDemo/res/SEHDemo.ico | Bin 0 -> 1078 bytes .../archive/samples/SEHDemo/res/SEHDemo.rc2 | 13 + .../archive/samples/SEHDemo/resource.h | 28 + .../archive/samples/SEHDemo/sehDemoInfo.rtf | Bin 0 -> 1364 bytes .../archive/samples/Serial/Globals.cpp | 67 + .../archive/samples/Serial/Globals.h | 9 + .../archive/samples/Serial/MainFrame.cpp | 107 + .../archive/samples/Serial/MainFrame.h | 59 + .../archive/samples/Serial/SendView.cpp | 113 + .../archive/samples/Serial/SendView.h | 68 + .../archive/samples/Serial/Serial.cpp | 127 + .../archive/samples/Serial/Serial.dsp | 358 + .../archive/samples/Serial/Serial.dsw | 29 + .../archive/samples/Serial/Serial.h | 51 + .../archive/samples/Serial/Serial.rc | 423 + .../archive/samples/Serial/SerialDoc.cpp | 608 + .../archive/samples/Serial/SerialDoc.h | 83 + .../archive/samples/Serial/SerialInfo.rtf | Bin 0 -> 1674 bytes .../archive/samples/Serial/SerialView.cpp | 190 + .../archive/samples/Serial/SerialView.h | 78 + .../archive/samples/Serial/StdAfx.cpp | 6 + .../archive/samples/Serial/StdAfx.h | 26 + .../archive/samples/Serial/TimeoutDlg.cpp | 82 + .../archive/samples/Serial/TimeoutDlg.h | 49 + .../archive/samples/Serial/TransferDlg.cpp | 398 + .../archive/samples/Serial/TransferDlg.h | 63 + .../archive/samples/Serial/res/Serial.ico | Bin 0 -> 1078 bytes .../archive/samples/Serial/res/Serial.rc2 | 13 + .../archive/samples/Serial/res/SerialDoc.ico | Bin 0 -> 1078 bytes .../archive/samples/Serial/resource.h | 42 + .../archive/source/BDIFCALC.CPP | 2120 ++ .../archive/source/OXBlob.cpp | 156 + .../archive/source/OXBmpPrv.cpp | 158 + .../archive/source/OXCmdLne.cpp | 101 + .../archive/source/OXCmdOpd.cpp | 74 + .../archive/source/OXCmdOpt.cpp | 476 + .../archive/source/OXCmdlEx.cpp | 96 + .../archive/source/OXCommMsg.cpp | 127 + .../archive/source/OXCommunicator.cpp | 573 + .../archive/source/OXDFlHdr.cpp | 160 + .../archive/source/OXDispatchMarshaller.cpp | 90 + .../archive/source/OXFinalReleaseWnd.cpp | 62 + .../archive/source/OXMetafileViewer.cpp | 135 + .../archive/source/OXOwnThread.cpp | 284 + .../archive/source/OXOwnThreadCmdTarget.cpp | 93 + .../archive/source/OXPrvDlg.cpp | 309 + .../archive/source/OXResultObj.cpp | 214 + .../archive/source/OXResultPart.cpp | 504 + .../archive/source/OXSCCFG.CPP | 214 + .../archive/source/OXSCEXCP.CPP | 119 + .../archive/source/OXSCFILE.CPP | 458 + .../archive/source/OXSCSTP.CPP | 312 + .../Ultimate Toolbox/archive/source/OXSEH.cpp | 342 + .../archive/source/OXSPtr.cpp | 30 + .../archive/source/OXSRLZR.CPP | 174 + .../archive/source/OXSendMail.CPP | 857 + .../archive/source/OXStaticMenuItem.cpp | 204 + .../archive/source/OXThreadEngine.cpp | 399 + .../archive/source/OXTimer.cpp | 417 + .../archive/source/OXVariant.cpp | 194 + .../archive/source/OXVerinfo.cpp | 375 + .../archive/source/OXWebView.cpp | 732 + .../archive/source/PROGRESS.CPP | 129 + .../archive/source/XMAINFRM.CPP | 187 + .../archive/source/XMDICLT.CPP | 537 + .../archive/source/oxmdisp.cpp | 1682 ++ .../samples/AllSamples/AllSamples.dsw | 1533 ++ .../samples/AllSamples/AllSamples.sln | 2906 +++ .../GettingStarted/UsingDLL/ReadMe.txt | 88 + .../GettingStarted/UsingDLL/StdAfx.cpp | 8 + .../samples/GettingStarted/UsingDLL/StdAfx.h | 30 + .../GettingStarted/UsingDLL/UsingDLL.cpp | 74 + .../GettingStarted/UsingDLL/UsingDLL.dsp | 221 + .../GettingStarted/UsingDLL/UsingDLL.dsw | 29 + .../GettingStarted/UsingDLL/UsingDLL.h | 49 + .../GettingStarted/UsingDLL/UsingDLL.rc | 220 + .../GettingStarted/UsingDLL/UsingDLLDlg.cpp | 169 + .../GettingStarted/UsingDLL/UsingDLLDlg.h | 51 + .../GettingStarted/UsingDLL/res/UsingDLL.ico | Bin 0 -> 1078 bytes .../GettingStarted/UsingDLL/res/UsingDLL.rc2 | 13 + .../GettingStarted/UsingDLL/resource.h | 22 + .../GettingStarted/UsingStaticLib/ReadMe.txt | 88 + .../GettingStarted/UsingStaticLib/StdAfx.cpp | 8 + .../GettingStarted/UsingStaticLib/StdAfx.h | 29 + .../UsingStaticLib/UsingStaticLib.cpp | 74 + .../UsingStaticLib/UsingStaticLib.dsp | 225 + .../UsingStaticLib/UsingStaticLib.dsw | 29 + .../UsingStaticLib/UsingStaticLib.h | 49 + .../UsingStaticLib/UsingStaticLib.rc | 226 + .../UsingStaticLib/UsingStaticLib.sln | 26 + .../UsingStaticLib/UsingStaticLib.vcproj | 636 + .../UsingStaticLib/UsingStaticLibDlg.cpp | 170 + .../UsingStaticLib/UsingStaticLibDlg.h | 51 + .../UsingStaticLib/res/UsingStaticLib.ico | Bin 0 -> 1078 bytes .../UsingStaticLib/res/UsingStaticLib.rc2 | 13 + .../GettingStarted/UsingStaticLib/resource.h | 21 + .../advanced/CustomizeManager/ChildFrm.cpp | 70 + .../advanced/CustomizeManager/ChildFrm.h | 53 + .../CustomizeManager/CustomizeManager.cpp | 181 + .../CustomizeManager/CustomizeManager.dsp | 570 + .../CustomizeManager/CustomizeManager.dsw | 33 + .../CustomizeManager/CustomizeManager.h | 50 + .../CustomizeManager/CustomizeManager.rc | 442 + .../CustomizeManager/CustomizeManager.sln | 26 + .../CustomizeManager/CustomizeManager.vcproj | 3787 ++++ .../CustomizeManager/CustomizeManager.vssscc | 10 + .../CustomizeManager/CustomizeManagerDoc.cpp | 84 + .../CustomizeManager/CustomizeManagerDoc.h | 57 + .../CustomizeManager/CustomizeManagerView.cpp | 104 + .../CustomizeManager/CustomizeManagerView.h | 68 + .../advanced/CustomizeManager/MainFrm.cpp | 236 + .../advanced/CustomizeManager/MainFrm.h | 77 + .../advanced/CustomizeManager/ReadMe.txt | 117 + .../advanced/CustomizeManager/StdAfx.cpp | 8 + .../advanced/CustomizeManager/StdAfx.h | 63 + .../CustomizeManager/res/CustomizeManager.ico | Bin 0 -> 1078 bytes .../CustomizeManager/res/CustomizeManager.rc2 | 13 + .../res/CustomizeManagerDoc.ico | Bin 0 -> 1078 bytes .../advanced/CustomizeManager/res/Toolbar.bmp | Bin 0 -> 1078 bytes .../CustomizeManager/res/background.bmp | Bin 0 -> 310 bytes .../advanced/CustomizeManager/res/splash.bmp | Bin 0 -> 23158 bytes .../advanced/CustomizeManager/resource.h | 23 + .../samples/advanced/DIBManager/ChildFrm.cpp | 134 + .../samples/advanced/DIBManager/ChildFrm.h | 62 + .../advanced/DIBManager/DIBManager.clw | 697 + .../advanced/DIBManager/DIBManager.cpp | 268 + .../advanced/DIBManager/DIBManager.dsp | 683 + .../advanced/DIBManager/DIBManager.dsw | 29 + .../DIBManager/DIBManager.exe.manifest | 22 + .../samples/advanced/DIBManager/DIBManager.h | 82 + .../samples/advanced/DIBManager/DIBManager.rc | 862 + .../advanced/DIBManager/DIBManager.vcproj | 2467 +++ .../advanced/DIBManager/DIBManagerDoc.cpp | 440 + .../advanced/DIBManager/DIBManagerDoc.h | 98 + .../advanced/DIBManager/DIBManagerInfo.rtf | Bin 0 -> 1504 bytes .../advanced/DIBManager/DIBManagerView.cpp | 1034 + .../advanced/DIBManager/DIBManagerView.h | 125 + .../samples/advanced/DIBManager/ExportDlg.cpp | 260 + .../samples/advanced/DIBManager/ExportDlg.h | 70 + .../advanced/DIBManager/ImageInfoDlg.cpp | 138 + .../advanced/DIBManager/ImageInfoDlg.h | 57 + .../samples/advanced/DIBManager/ImportDlg.cpp | 337 + .../samples/advanced/DIBManager/ImportDlg.h | 76 + .../samples/advanced/DIBManager/MainFrm.cpp | 670 + .../samples/advanced/DIBManager/MainFrm.h | 187 + .../samples/advanced/DIBManager/OXDocMgr.cpp | 152 + .../samples/advanced/DIBManager/OXDocMgr.h | 11 + .../samples/advanced/DIBManager/OXWinApp.cpp | 40 + .../samples/advanced/DIBManager/OXWinApp.h | 36 + .../advanced/DIBManager/ProtectedFile.cpp | 361 + .../advanced/DIBManager/ProtectedFile.h | 40 + .../samples/advanced/DIBManager/ReadMe.txt | 102 + .../advanced/DIBManager/ResampleImageDlg.cpp | 284 + .../advanced/DIBManager/ResampleImageDlg.h | 87 + .../advanced/DIBManager/SSEXP.exe.manifest | 22 + .../advanced/DIBManager/ScaleRollupDlg.cpp | 148 + .../advanced/DIBManager/ScaleRollupDlg.h | 63 + .../advanced/DIBManager/ShowProgress.h | 57 + .../samples/advanced/DIBManager/StdAfx.cpp | 6 + .../samples/advanced/DIBManager/StdAfx.h | 52 + .../advanced/DIBManager/TreeFilesDlg.cpp | 263 + .../advanced/DIBManager/TreeFilesDlg.h | 64 + .../advanced/DIBManager/WorkspaceDlg.cpp | 54 + .../advanced/DIBManager/WorkspaceDlg.h | 47 + .../advanced/DIBManager/res/BMPdemo.BMP | Bin 0 -> 76474 bytes .../advanced/DIBManager/res/DIBManager.ico | Bin 0 -> 1078 bytes .../advanced/DIBManager/res/DIBManager.rc2 | 13 + .../advanced/DIBManager/res/DIBManagerDoc.ico | Bin 0 -> 1078 bytes .../samples/advanced/DIBManager/res/Dog.bmp | Bin 0 -> 62438 bytes .../samples/advanced/DIBManager/res/Logo.BMP | Bin 0 -> 42662 bytes .../advanced/DIBManager/res/ToolbarHot.bmp | Bin 0 -> 2550 bytes .../samples/advanced/DIBManager/res/check.bmp | Bin 0 -> 246 bytes .../samples/advanced/DIBManager/res/dummy.bmp | Bin 0 -> 630 bytes .../advanced/DIBManager/res/dummyhot.bmp | Bin 0 -> 630 bytes .../advanced/DIBManager/res/icsreportlogo.bmp | Bin 0 -> 74686 bytes .../advanced/DIBManager/res/imagelis.bmp | Bin 0 -> 374 bytes .../advanced/DIBManager/res/logo_dum.bmp | Bin 0 -> 48198 bytes .../advanced/DIBManager/res/mainfram.bmp | Bin 0 -> 2550 bytes .../advanced/DIBManager/res/mainfram_copy.bmp | Bin 0 -> 2550 bytes .../advanced/DIBManager/res/toolbar.bmp | Bin 0 -> 2550 bytes .../samples/advanced/DIBManager/resource.h | 122 + .../advanced/FileExplorer/FileExplorer.clw | 121 + .../advanced/FileExplorer/FileExplorer.cpp | 131 + .../advanced/FileExplorer/FileExplorer.dsp | 441 + .../advanced/FileExplorer/FileExplorer.dsw | 29 + .../FileExplorer/FileExplorer.exe.manifest | 22 + .../advanced/FileExplorer/FileExplorer.h | 50 + .../advanced/FileExplorer/FileExplorer.rc | 380 + .../advanced/FileExplorer/FileExplorer.vcproj | 2501 +++ .../advanced/FileExplorer/FileExplorerDoc.cpp | 84 + .../advanced/FileExplorer/FileExplorerDoc.h | 57 + .../FileExplorer/FileExplorerInfo.rtf | Bin 0 -> 7920 bytes .../FileExplorer/FileExplorerView.cpp | 309 + .../advanced/FileExplorer/FileExplorerView.h | 85 + .../advanced/FileExplorer/LeftView.cpp | 339 + .../samples/advanced/FileExplorer/LeftView.h | 98 + .../samples/advanced/FileExplorer/MainFrm.cpp | 589 + .../samples/advanced/FileExplorer/MainFrm.h | 81 + .../samples/advanced/FileExplorer/ReadMe.txt | 105 + .../samples/advanced/FileExplorer/StdAfx.cpp | 8 + .../samples/advanced/FileExplorer/StdAfx.h | 27 + .../FileExplorer/res/FileExplorer.ico | Bin 0 -> 1078 bytes .../FileExplorer/res/FileExplorer.rc2 | 13 + .../FileExplorer/res/FileExplorerDoc.ico | Bin 0 -> 1078 bytes .../advanced/FileExplorer/res/Toolbar.bmp | Bin 0 -> 718 bytes .../advanced/FileExplorer/res/bitmap1.bmp | Bin 0 -> 5830 bytes .../advanced/FileExplorer/res/bm_file.bmp | Bin 0 -> 5830 bytes .../FileExplorer/res/tb_file_disabled.bmp | Bin 0 -> 5830 bytes .../advanced/FileExplorer/res/tb_file_hot.bmp | Bin 0 -> 5830 bytes .../samples/advanced/FileExplorer/resource.h | 31 + .../advanced/OutlookLikedemo/MainFrm.cpp | 199 + .../advanced/OutlookLikedemo/MainFrm.h | 82 + .../advanced/OutlookLikedemo/Outlook.clw | 324 + .../advanced/OutlookLikedemo/Outlook.cpp | 137 + .../advanced/OutlookLikedemo/Outlook.dsp | 456 + .../advanced/OutlookLikedemo/Outlook.dsw | 29 + .../advanced/OutlookLikedemo/Outlook.h | 52 + .../advanced/OutlookLikedemo/Outlook.rc | 520 + .../advanced/OutlookLikedemo/Outlook.vcproj | 2649 +++ .../advanced/OutlookLikedemo/OutlookDoc.cpp | 226 + .../advanced/OutlookLikedemo/OutlookDoc.h | 79 + .../OutlookLikedemo/OutlookFormView.cpp | 62 + .../OutlookLikedemo/OutlookFormView.h | 63 + .../advanced/OutlookLikedemo/OutlookInfo.rtf | Bin 0 -> 1554 bytes .../OutlookLikeDemo.exe.manifest | 22 + .../OutlookLikedemo/OutlookListView.cpp | 134 + .../OutlookLikedemo/OutlookListView.h | 59 + .../OutlookLikedemo/OutlookTreeView.cpp | 95 + .../OutlookLikedemo/OutlookTreeView.h | 59 + .../advanced/OutlookLikedemo/OutlookView.cpp | 325 + .../advanced/OutlookLikedemo/OutlookView.h | 78 + .../OutlookLikedemo/SHBPropertiesDlg.cpp | 226 + .../OutlookLikedemo/SHBPropertiesDlg.h | 79 + .../advanced/OutlookLikedemo/StdAfx.cpp | 6 + .../samples/advanced/OutlookLikedemo/StdAfx.h | 29 + .../advanced/OutlookLikedemo/res/Outlook.ico | Bin 0 -> 1078 bytes .../advanced/OutlookLikedemo/res/Outlook.rc2 | 13 + .../OutlookLikedemo/res/OutlookDoc.ico | Bin 0 -> 1078 bytes .../advanced/OutlookLikedemo/res/Toolbar.bmp | Bin 0 -> 2294 bytes .../OutlookLikedemo/res/TreeImages.bmp | Bin 0 -> 1142 bytes .../advanced/OutlookLikedemo/res/bitmap4.bmp | Bin 0 -> 246 bytes .../advanced/OutlookLikedemo/res/icon1.ico | Bin 0 -> 318 bytes .../advanced/OutlookLikedemo/res/large.bmp | Bin 0 -> 5750 bytes .../OutlookLikedemo/res/outlook2003.bmp | Bin 0 -> 8702 bytes .../advanced/OutlookLikedemo/res/small.bmp | Bin 0 -> 1526 bytes .../advanced/OutlookLikedemo/resource.h | 75 + .../ScreenGrabber/CaptureTaskbarIcon.cpp | 51 + .../ScreenGrabber/CaptureTaskbarIcon.h | 19 + .../samples/advanced/ScreenGrabber/HelpIDs.h | 34 + .../ScreenGrabber/PropertyPageActivation.cpp | 204 + .../ScreenGrabber/PropertyPageActivation.h | 69 + .../ScreenGrabber/PropertyPageDestination.cpp | 115 + .../ScreenGrabber/PropertyPageDestination.h | 64 + .../ScreenGrabber/PropertyPageFile.cpp | 295 + .../advanced/ScreenGrabber/PropertyPageFile.h | 78 + .../ScreenGrabber/PropertyPageImage.cpp | 209 + .../ScreenGrabber/PropertyPageImage.h | 75 + .../ScreenGrabber/PropertyPagePreferences.cpp | 115 + .../ScreenGrabber/PropertyPagePreferences.h | 64 + .../ScreenGrabber/PropertyPageSource.cpp | 117 + .../ScreenGrabber/PropertyPageSource.h | 62 + .../ScreenGrabber/PropertySheetCapture.cpp | 903 + .../ScreenGrabber/PropertySheetCapture.h | 97 + .../samples/advanced/ScreenGrabber/ReadMe.txt | 81 + .../advanced/ScreenGrabber/ScreenGrabber.cpp | 255 + .../advanced/ScreenGrabber/ScreenGrabber.dsp | 459 + .../advanced/ScreenGrabber/ScreenGrabber.dsw | 29 + .../ScreenGrabber/ScreenGrabber.exe.manifest | 22 + .../advanced/ScreenGrabber/ScreenGrabber.h | 78 + .../advanced/ScreenGrabber/ScreenGrabber.rc | 358 + .../ScreenGrabber/ScreenGrabber.vcproj | 2291 ++ .../ScreenGrabber/ScreenGrabberInfo.rtf | Bin 0 -> 1451 bytes .../samples/advanced/ScreenGrabber/StdAfx.cpp | 6 + .../samples/advanced/ScreenGrabber/StdAfx.h | 31 + .../ScreenGrabber/WndTrackingHelper.cpp | 32 + .../ScreenGrabber/WndTrackingHelper.h | 46 + .../ScreenGrabber/res/ScreenGrabber.ico | Bin 0 -> 1078 bytes .../ScreenGrabber/res/ScreenGrabber.rc2 | 13 + .../samples/advanced/ScreenGrabber/resource.h | 73 + .../advanced/ScreenGrabber/screenshot.bmp | Bin 0 -> 11982 bytes .../samples/advanced/SkinsDemo/ChildFrm.cpp | 70 + .../samples/advanced/SkinsDemo/ChildFrm.h | 53 + .../samples/advanced/SkinsDemo/FoldersBar.cpp | 66 + .../samples/advanced/SkinsDemo/FoldersBar.h | 52 + .../samples/advanced/SkinsDemo/MainFrm.cpp | 409 + .../samples/advanced/SkinsDemo/MainFrm.h | 117 + .../advanced/SkinsDemo/PropertiesBar.cpp | 231 + .../advanced/SkinsDemo/PropertiesBar.h | 79 + .../samples/advanced/SkinsDemo/ReadMe.txt | 117 + .../samples/advanced/SkinsDemo/SkinsDemo.clw | 316 + .../samples/advanced/SkinsDemo/SkinsDemo.cpp | 195 + .../samples/advanced/SkinsDemo/SkinsDemo.dsp | 692 + .../samples/advanced/SkinsDemo/SkinsDemo.dsw | 29 + .../advanced/SkinsDemo/SkinsDemo.exe.manifest | 22 + .../samples/advanced/SkinsDemo/SkinsDemo.h | 52 + .../samples/advanced/SkinsDemo/SkinsDemo.rc | 514 + .../samples/advanced/SkinsDemo/SkinsDemo.sln | 26 + .../advanced/SkinsDemo/SkinsDemo.vcproj | 3632 ++++ .../SkinsDemo/SkinsDemo.vcproj.vspscc | 10 + .../advanced/SkinsDemo/SkinsDemoDoc.cpp | 84 + .../samples/advanced/SkinsDemo/SkinsDemoDoc.h | 57 + .../advanced/SkinsDemo/SkinsDemoView.cpp | 153 + .../advanced/SkinsDemo/SkinsDemoView.h | 72 + .../samples/advanced/SkinsDemo/StdAfx.cpp | 8 + .../samples/advanced/SkinsDemo/StdAfx.h | 40 + .../advanced/SkinsDemo/WorkspaceBar.cpp | 195 + .../samples/advanced/SkinsDemo/WorkspaceBar.h | 61 + .../advanced/SkinsDemo/res/SkinsDemo.ico | Bin 0 -> 1078 bytes .../advanced/SkinsDemo/res/SkinsDemo.rc2 | 13 + .../advanced/SkinsDemo/res/SkinsDemoDoc.ico | Bin 0 -> 1078 bytes .../advanced/SkinsDemo/res/Toolbar.bmp | Bin 0 -> 886 bytes .../SkinsDemo/res/Toolbar2Disabled.bmp | Bin 0 -> 5830 bytes .../advanced/SkinsDemo/res/Toolbar2Hot.bmp | Bin 0 -> 5830 bytes .../advanced/SkinsDemo/res/Toolbar2Normal.bmp | Bin 0 -> 5830 bytes .../advanced/SkinsDemo/res/TreeImages.bmp | Bin 0 -> 1142 bytes .../samples/advanced/SkinsDemo/res/large.bmp | Bin 0 -> 5750 bytes .../samples/advanced/SkinsDemo/res/small.bmp | Bin 0 -> 1526 bytes .../advanced/SkinsDemo/res/toolbar2.bmp | Bin 0 -> 2494 bytes .../samples/advanced/SkinsDemo/resource.h | 58 + .../SystemStateInfo/ApplicationsDialog.cpp | 658 + .../SystemStateInfo/ApplicationsDialog.h | 121 + .../NetworkResourcesDialog.cpp | 416 + .../SystemStateInfo/NetworkResourcesDialog.h | 85 + .../advanced/SystemStateInfo/PageDialog.cpp | 82 + .../advanced/SystemStateInfo/PageDialog.h | 44 + .../SystemStateInfo/ProcessesDialog.cpp | 371 + .../SystemStateInfo/ProcessesDialog.h | 71 + .../advanced/SystemStateInfo/ReadMe.txt | 81 + .../advanced/SystemStateInfo/SSIDialog.cpp | 497 + .../advanced/SystemStateInfo/SSIDialog.h | 128 + .../SystemStateInfo/SSITaskbarIcon.cpp | 58 + .../advanced/SystemStateInfo/SSITaskbarIcon.h | 24 + .../SystemStateInfo/ServicesDialog.cpp | 584 + .../advanced/SystemStateInfo/ServicesDialog.h | 75 + .../advanced/SystemStateInfo/StdAfx.cpp | 6 + .../samples/advanced/SystemStateInfo/StdAfx.h | 27 + .../SystemStateInfo/SysInfoDialog.cpp | 1449 ++ .../advanced/SystemStateInfo/SysInfoDialog.h | 72 + .../SystemStateInfo/SystemStateInfo.cpp | 121 + .../SystemStateInfo/SystemStateInfo.dsp | 658 + .../SystemStateInfo/SystemStateInfo.dsw | 29 + .../SystemStateInfo.exe.manifest | 22 + .../SystemStateInfo/SystemStateInfo.h | 54 + .../SystemStateInfo/SystemStateInfo.rc | 382 + .../SystemStateInfo/SystemStateInfo.rtf | Bin 0 -> 3442 bytes .../SystemStateInfo/SystemStateInfo.vcproj | 3712 ++++ .../advanced/SystemStateInfo/res/Logo.bmp | Bin 0 -> 43030 bytes .../SystemStateInfo/res/SystemStateInfo.ico | Bin 0 -> 1078 bytes .../SystemStateInfo/res/SystemStateInfo.rc2 | 13 + .../advanced/SystemStateInfo/res/bitmap_r.bmp | Bin 0 -> 238 bytes .../advanced/SystemStateInfo/res/idr_main.ico | Bin 0 -> 1078 bytes .../advanced/SystemStateInfo/res/processe.bmp | Bin 0 -> 246 bytes .../advanced/SystemStateInfo/res/services.bmp | Bin 0 -> 374 bytes .../advanced/SystemStateInfo/res/shb_larg.bmp | Bin 0 -> 4214 bytes .../advanced/SystemStateInfo/res/shb_smal.bmp | Bin 0 -> 1142 bytes .../advanced/SystemStateInfo/res/sysinfo_.bmp | Bin 0 -> 3510 bytes .../advanced/SystemStateInfo/resource.h | 71 + .../VisualStudioLikeDemo/3DTabViewBar.cpp | 242 + .../VisualStudioLikeDemo/3DTabViewBar.h | 49 + .../VisualStudioLikeDemo/ChildFrm.cpp | 70 + .../advanced/VisualStudioLikeDemo/ChildFrm.h | 53 + .../advanced/VisualStudioLikeDemo/MainFrm.cpp | 471 + .../advanced/VisualStudioLikeDemo/MainFrm.h | 112 + .../VisualStudioLikeDemo/StandardToolBar.cpp | 138 + .../VisualStudioLikeDemo/StandardToolBar.h | 67 + .../advanced/VisualStudioLikeDemo/StdAfx.cpp | 8 + .../advanced/VisualStudioLikeDemo/StdAfx.h | 57 + .../VisualStudioLikeDemo/TabViewBar.cpp | 154 + .../VisualStudioLikeDemo/TabViewBar.h | 48 + .../VisualStudioLikeDemo.cpp | 257 + .../VisualStudioLikeDemo.dsp | 868 + .../VisualStudioLikeDemo.dsw | 29 + .../VisualStudioLikeDemo.exe.manifest | 22 + .../VisualStudioLikeDemo.h | 51 + .../VisualStudioLikeDemo.rc | 510 + .../VisualStudioLikeDemo.sln | 29 + .../VisualStudioLikeDemo.vcproj | 5539 +++++ .../VisualStudioLikeDemoDoc.cpp | 78 + .../VisualStudioLikeDemoDoc.h | 57 + .../VisualStudioLikeDemoView.cpp | 122 + .../VisualStudioLikeDemoView.h | 67 + .../VisualStudioLikeDemo/res/Logo.bmp | Bin 0 -> 46198 bytes .../VisualStudioLikeDemo/res/Toolbar.bmp | Bin 0 -> 2038 bytes .../res/VisualStudioLikeDemo.ico | Bin 0 -> 1078 bytes .../res/VisualStudioLikeDemo.rc | 559 + .../res/VisualStudioLikeDemo.rc2 | 13 + .../res/VisualStudioLikeDemoDoc.ico | Bin 0 -> 1078 bytes .../VisualStudioLikeDemo/res/bmp00001.bmp | Bin 0 -> 886 bytes .../VisualStudioLikeDemo/res/coolbar.bmp | Bin 0 -> 81078 bytes .../VisualStudioLikeDemo/res/ico1.ico | Bin 0 -> 2238 bytes .../VisualStudioLikeDemo/res/ico2.ico | Bin 0 -> 2238 bytes .../VisualStudioLikeDemo/res/ico3.ico | Bin 0 -> 2238 bytes .../VisualStudioLikeDemo/res/ico4.ico | Bin 0 -> 2238 bytes .../VisualStudioLikeDemo/res/ico5.ico | Bin 0 -> 1126 bytes .../VisualStudioLikeDemo/res/ico6.ico | Bin 0 -> 2238 bytes .../VisualStudioLikeDemo/res/il_3dtab.bmp | Bin 0 -> 502 bytes .../VisualStudioLikeDemo/res/il_class.bmp | Bin 0 -> 886 bytes .../VisualStudioLikeDemo/res/il_filev.bmp | Bin 0 -> 886 bytes .../VisualStudioLikeDemo/res/tb_window.bmp | Bin 0 -> 502 bytes .../VisualStudioLikeDemo/res/toolbar1.bmp | Bin 0 -> 2678 bytes .../advanced/VisualStudioLikeDemo/resource.h | 40 + .../communication/CGIscrpt/cgidemo.htm | 64 + .../communication/CGIscrpt/cgiscrpt.dsp | 215 + .../communication/CGIscrpt/cgiscrpt.dsw | 29 + .../communication/CGIscrpt/cgiscrpt.vcproj | 684 + .../communication/CGIscrpt/helloscp.CPP | 183 + .../samples/communication/CGIscrpt/helloscp.h | 67 + .../samples/communication/CGIscrpt/stdafx.cpp | 2 + .../samples/communication/CGIscrpt/stdafx.h | 9 + .../samples/database/DAOclass/DaoDemoInfo.rtf | Bin 0 -> 1645 bytes .../samples/database/DAOclass/ReadMe.txt | 81 + .../samples/database/DAOclass/StdAfx.cpp | 6 + .../samples/database/DAOclass/StdAfx.h | 32 + .../samples/database/DAOclass/customer.mdb | Bin 0 -> 75776 bytes .../samples/database/DAOclass/demo.clw | 105 + .../samples/database/DAOclass/demo.cpp | 101 + .../samples/database/DAOclass/demo.dsp | 257 + .../samples/database/DAOclass/demo.dsw | 29 + .../database/DAOclass/demo.exe.manifest | 22 + .../samples/database/DAOclass/demo.h | 50 + .../samples/database/DAOclass/demo.rc | 220 + .../samples/database/DAOclass/demo.vcproj | 876 + .../samples/database/DAOclass/demoDlg.cpp | 405 + .../samples/database/DAOclass/demoDlg.h | 88 + .../samples/database/DAOclass/res/demo.ico | Bin 0 -> 1078 bytes .../samples/database/DAOclass/res/demo.rc2 | 13 + .../samples/database/DAOclass/resource.h | 38 + .../samples/database/csvtest/CsvFileInfo.rtf | Bin 0 -> 5709 bytes .../samples/database/csvtest/CsvTest.clw | 50 + .../samples/database/csvtest/CsvTest.cpp | 100 + .../samples/database/csvtest/CsvTest.dsp | 258 + .../samples/database/csvtest/CsvTest.dsw | 29 + .../database/csvtest/CsvTest.exe.manifest | 22 + .../samples/database/csvtest/CsvTest.h | 50 + .../samples/database/csvtest/CsvTest.rc | 205 + .../samples/database/csvtest/CsvTest.vcproj | 934 + .../samples/database/csvtest/CsvTestDlg.cpp | 528 + .../samples/database/csvtest/CsvTestDlg.h | 100 + .../samples/database/csvtest/ReadMe.txt | 88 + .../samples/database/csvtest/StdAfx.cpp | 8 + .../samples/database/csvtest/StdAfx.h | 27 + .../samples/database/csvtest/headers.csv | 11 + .../samples/database/csvtest/noheader.csv | 9 + .../samples/database/csvtest/out.csv | 11 + .../samples/database/csvtest/res/CsvTest.ico | Bin 0 -> 1078 bytes .../samples/database/csvtest/res/CsvTest.rc2 | 13 + .../samples/database/csvtest/resource.h | 26 + .../samples/database/csvtest/trace.txt | 0 .../samples/file/FileWatcher/EnterNewDir.cpp | 61 + .../samples/file/FileWatcher/EnterNewDir.h | 44 + .../samples/file/FileWatcher/FileWatcher.clw | 72 + .../samples/file/FileWatcher/FileWatcher.cpp | 104 + .../samples/file/FileWatcher/FileWatcher.dsp | 265 + .../samples/file/FileWatcher/FileWatcher.dsw | 29 + .../file/FileWatcher/FileWatcher.exe.manifest | 22 + .../samples/file/FileWatcher/FileWatcher.h | 38 + .../samples/file/FileWatcher/FileWatcher.rc | 261 + .../file/FileWatcher/FileWatcher.vcproj | 1018 + .../file/FileWatcher/FileWatcherDlg.cpp | 509 + .../samples/file/FileWatcher/FileWatcherDlg.h | 51 + .../file/FileWatcher/FileWatcherInfo.rtf | Bin 0 -> 2055 bytes .../samples/file/FileWatcher/StdAfx.cpp | 6 + .../samples/file/FileWatcher/StdAfx.h | 18 + .../file/FileWatcher/res/FileWatcher.ico | Bin 0 -> 1078 bytes .../file/FileWatcher/res/FileWatcher.rc2 | 13 + .../samples/file/FileWatcher/resource.h | 62 + .../samples/file/URLDemo/OXCheck.h | 39 + .../samples/file/URLDemo/StdAfx.cpp | 6 + .../samples/file/URLDemo/StdAfx.h | 20 + .../samples/file/URLDemo/UNCListDlg.cpp | 94 + .../samples/file/URLDemo/UNCListDlg.h | 46 + .../samples/file/URLDemo/URLDemo.clw | 95 + .../samples/file/URLDemo/URLDemo.cpp | 92 + .../samples/file/URLDemo/URLDemo.dsp | 285 + .../samples/file/URLDemo/URLDemo.dsw | 29 + .../samples/file/URLDemo/URLDemo.exe.manifest | 22 + .../samples/file/URLDemo/URLDemo.h | 38 + .../samples/file/URLDemo/URLDemo.rc | 248 + .../samples/file/URLDemo/URLDemo.vcproj | 1083 + .../samples/file/URLDemo/URLDemoDlg.cpp | 320 + .../samples/file/URLDemo/URLDemoDlg.h | 56 + .../samples/file/URLDemo/res/URLDemo.ico | Bin 0 -> 1078 bytes .../samples/file/URLDemo/res/URLDemo.rc2 | 13 + .../samples/file/URLDemo/resource.h | 42 + .../samples/file/URLDemo/urldemoinfo.rtf | Bin 0 -> 1491 bytes .../samples/graphics/ImageViewer/ChildFrm.cpp | 70 + .../samples/graphics/ImageViewer/ChildFrm.h | 53 + .../samples/graphics/ImageViewer/Firework.bmp | Bin 0 -> 130926 bytes .../samples/graphics/ImageViewer/Firework.jpg | Bin 0 -> 26511 bytes .../graphics/ImageViewer/ImageViewer.clw | 209 + .../graphics/ImageViewer/ImageViewer.cpp | 192 + .../graphics/ImageViewer/ImageViewer.dsp | 308 + .../graphics/ImageViewer/ImageViewer.dsw | 33 + .../ImageViewer/ImageViewer.exe.manifest | 22 + .../graphics/ImageViewer/ImageViewer.h | 49 + .../graphics/ImageViewer/ImageViewer.rc | 425 + .../graphics/ImageViewer/ImageViewer.vcproj | 1029 + .../graphics/ImageViewer/ImageViewerDoc.cpp | 111 + .../graphics/ImageViewer/ImageViewerDoc.h | 59 + .../graphics/ImageViewer/ImageViewerView.cpp | 127 + .../graphics/ImageViewer/ImageViewerView.h | 71 + .../samples/graphics/ImageViewer/MainFrm.cpp | 125 + .../samples/graphics/ImageViewer/MainFrm.h | 57 + .../samples/graphics/ImageViewer/ReadMe.txt | 117 + .../samples/graphics/ImageViewer/Resource.h | 20 + .../samples/graphics/ImageViewer/StdAfx.cpp | 8 + .../samples/graphics/ImageViewer/StdAfx.h | 27 + .../samples/graphics/ImageViewer/dog.bmp | Bin 0 -> 184134 bytes .../samples/graphics/ImageViewer/dog.jpg | Bin 0 -> 8202 bytes .../graphics/ImageViewer/res/ImageViewer.ico | Bin 0 -> 1078 bytes .../graphics/ImageViewer/res/ImageViewer.rc2 | 13 + .../ImageViewer/res/ImageViewerDoc.ico | Bin 0 -> 1078 bytes .../graphics/ImageViewer/res/Toolbar.bmp | Bin 0 -> 478 bytes .../samples/graphics/JPGtest/JPGtest.clw | 84 + .../samples/graphics/JPGtest/JPGtest.cpp | 110 + .../samples/graphics/JPGtest/JPGtest.dsp | 219 + .../samples/graphics/JPGtest/JPGtest.dsw | 29 + .../graphics/JPGtest/JPGtest.exe.manifest | 22 + .../samples/graphics/JPGtest/JPGtest.h | 50 + .../samples/graphics/JPGtest/JPGtest.rc | 255 + .../samples/graphics/JPGtest/JPGtest.vcproj | 761 + .../samples/graphics/JPGtest/JPGtestDlg.cpp | 313 + .../samples/graphics/JPGtest/JPGtestDlg.h | 73 + .../samples/graphics/JPGtest/ReadMe.txt | 81 + .../samples/graphics/JPGtest/StdAfx.cpp | 6 + .../samples/graphics/JPGtest/StdAfx.h | 26 + .../samples/graphics/JPGtest/bitmap1.bmp | Bin 0 -> 23882 bytes .../samples/graphics/JPGtest/bitmap1.jpg | Bin 0 -> 2862 bytes .../samples/graphics/JPGtest/jpegtestinfo.rtf | Bin 0 -> 3136 bytes .../samples/graphics/JPGtest/res/JPGtest.ico | Bin 0 -> 1078 bytes .../samples/graphics/JPGtest/res/JPGtest.rc2 | 13 + .../samples/graphics/JPGtest/resource.h | 57 + .../samples/graphics/Metafile/ChildFrm.cpp | 74 + .../samples/graphics/Metafile/ChildFrm.h | 53 + .../samples/graphics/Metafile/MainFrm.cpp | 107 + .../samples/graphics/Metafile/MainFrm.h | 57 + .../samples/graphics/Metafile/MetaFile.clw | 159 + .../samples/graphics/Metafile/MetaFile.cpp | 145 + .../samples/graphics/Metafile/MetaFile.dsp | 296 + .../samples/graphics/Metafile/MetaFile.dsw | 29 + .../graphics/Metafile/MetaFile.exe.manifest | 22 + .../samples/graphics/Metafile/MetaFile.h | 51 + .../samples/graphics/Metafile/MetaFile.rc | 394 + .../samples/graphics/Metafile/MetaFile.reg | 14 + .../samples/graphics/Metafile/MetaFile.vcproj | 1047 + .../samples/graphics/Metafile/MetaFileDoc.cpp | 179 + .../samples/graphics/Metafile/MetaFileDoc.h | 61 + .../graphics/Metafile/MetaFileInfo.rtf | Bin 0 -> 2908 bytes .../graphics/Metafile/MetaFileView.cpp | 135 + .../samples/graphics/Metafile/MetaFileView.h | 69 + .../graphics/Metafile/Metafiles/AGREE.WMF | Bin 0 -> 26454 bytes .../graphics/Metafile/Metafiles/AMCONFUS.WMF | Bin 0 -> 1494 bytes .../graphics/Metafile/Metafiles/AMDISAST.WMF | Bin 0 -> 3190 bytes .../graphics/Metafile/Metafiles/AMHAPPY.WMF | Bin 0 -> 1718 bytes .../graphics/Metafile/Metafiles/AMIDEA.WMF | Bin 0 -> 1622 bytes .../graphics/Metafile/Metafiles/AMORGANI.WMF | Bin 0 -> 4342 bytes .../graphics/Metafile/Metafiles/AMPROBLE.WMF | Bin 0 -> 2102 bytes .../graphics/Metafile/Metafiles/AMVICTOR.WMF | Bin 0 -> 1398 bytes .../graphics/Metafile/Metafiles/AMWIN.WMF | Bin 0 -> 3254 bytes .../graphics/Metafile/Metafiles/ARROWS1.WMF | Bin 0 -> 4630 bytes .../graphics/Metafile/Metafiles/ARROWS2.WMF | Bin 0 -> 2838 bytes .../graphics/Metafile/Metafiles/ARROWS3.WMF | Bin 0 -> 2454 bytes .../graphics/Metafile/Metafiles/ARROWS4.WMF | Bin 0 -> 3382 bytes .../graphics/Metafile/Metafiles/ARROWS5.WMF | Bin 0 -> 758 bytes .../graphics/Metafile/Metafiles/ARROWS6.WMF | Bin 0 -> 2358 bytes .../graphics/Metafile/Metafiles/ARROWS7.WMF | Bin 0 -> 1686 bytes .../graphics/Metafile/Metafiles/ARROWS8.WMF | Bin 0 -> 982 bytes .../graphics/Metafile/Metafiles/ARROWSGN.WMF | Bin 0 -> 1878 bytes .../graphics/Metafile/Metafiles/BANDAID.WMF | Bin 0 -> 9494 bytes .../graphics/Metafile/Metafiles/BEARTRAP.WMF | Bin 0 -> 4022 bytes .../graphics/Metafile/Metafiles/BOMB.WMF | Bin 0 -> 9558 bytes .../graphics/Metafile/Metafiles/BRICK.WMF | Bin 0 -> 9878 bytes .../graphics/Metafile/Metafiles/BUILDING.WMF | Bin 0 -> 10806 bytes .../graphics/Metafile/Metafiles/CAR.WMF | Bin 0 -> 7222 bytes .../graphics/Metafile/Metafiles/CHAMPGNE.WMF | Bin 0 -> 34806 bytes .../graphics/Metafile/Metafiles/CHECKMRK.WMF | Bin 0 -> 758 bytes .../graphics/Metafile/Metafiles/CLAP.WMF | Bin 0 -> 5462 bytes .../graphics/Metafile/Metafiles/CLOCK.WMF | Bin 0 -> 10550 bytes .../graphics/Metafile/Metafiles/COINS.WMF | Bin 0 -> 26358 bytes .../graphics/Metafile/Metafiles/DARTS.WMF | Bin 0 -> 6838 bytes .../graphics/Metafile/Metafiles/DESTRYER.WMF | Bin 0 -> 2198 bytes .../graphics/Metafile/Metafiles/DICE.WMF | Bin 0 -> 2966 bytes .../graphics/Metafile/Metafiles/DIPLOMA.WMF | Bin 0 -> 3510 bytes .../graphics/Metafile/Metafiles/DOMINOES.WMF | Bin 0 -> 6198 bytes .../graphics/Metafile/Metafiles/DONKEY.WMF | Bin 0 -> 5078 bytes .../graphics/Metafile/Metafiles/DOOR.WMF | Bin 0 -> 2678 bytes .../graphics/Metafile/Metafiles/DOVE.WMF | Bin 0 -> 4086 bytes .../graphics/Metafile/Metafiles/DYNAMITE.WMF | Bin 0 -> 15318 bytes .../graphics/Metafile/Metafiles/EXAMINE.WMF | Bin 0 -> 7542 bytes .../graphics/Metafile/Metafiles/FISTSLAM.WMF | Bin 0 -> 8758 bytes .../graphics/Metafile/Metafiles/FLOWER.WMF | Bin 0 -> 8182 bytes .../graphics/Metafile/Metafiles/HAMMER.WMF | Bin 0 -> 1814 bytes .../graphics/Metafile/Metafiles/HATECOMP.WMF | Bin 0 -> 22326 bytes .../graphics/Metafile/Metafiles/HNDSHAK1.WMF | Bin 0 -> 3862 bytes .../graphics/Metafile/Metafiles/HNDSHAK2.WMF | Bin 0 -> 6038 bytes .../graphics/Metafile/Metafiles/HNDSHAK3.WMF | Bin 0 -> 10422 bytes .../graphics/Metafile/Metafiles/JETPLANE.WMF | Bin 0 -> 7414 bytes .../graphics/Metafile/Metafiles/JIGSAW.WMF | Bin 0 -> 4054 bytes .../graphics/Metafile/Metafiles/KEY.WMF | Bin 0 -> 3478 bytes .../graphics/Metafile/Metafiles/LIGHT.WMF | Bin 0 -> 5334 bytes .../graphics/Metafile/Metafiles/LION.WMF | Bin 0 -> 3606 bytes .../graphics/Metafile/Metafiles/LOCK.WMF | Bin 0 -> 8214 bytes .../graphics/Metafile/Metafiles/MAGICHAT.WMF | Bin 0 -> 8534 bytes .../graphics/Metafile/Metafiles/MAGNIFY.WMF | Bin 0 -> 6262 bytes .../graphics/Metafile/Metafiles/MEETING.WMF | Bin 0 -> 4950 bytes .../graphics/Metafile/Metafiles/MEETING2.WMF | Bin 0 -> 12054 bytes .../graphics/Metafile/Metafiles/MONEY.WMF | Bin 0 -> 10358 bytes .../graphics/Metafile/Metafiles/MONEYBAG.WMF | Bin 0 -> 2198 bytes .../graphics/Metafile/Metafiles/OILDRILL.WMF | Bin 0 -> 14422 bytes .../graphics/Metafile/Metafiles/OPENHAND.WMF | Bin 0 -> 5910 bytes .../graphics/Metafile/Metafiles/PTRUP.WMF | Bin 0 -> 3766 bytes .../graphics/Metafile/Metafiles/RABBIT.WMF | Bin 0 -> 7190 bytes .../graphics/Metafile/Metafiles/RIBBON.WMF | Bin 0 -> 2678 bytes .../graphics/Metafile/Metafiles/RUNNER.WMF | Bin 0 -> 14230 bytes .../graphics/Metafile/Metafiles/SAILBOAT.WMF | Bin 0 -> 10422 bytes .../graphics/Metafile/Metafiles/SCALES.WMF | Bin 0 -> 2902 bytes .../graphics/Metafile/Metafiles/SHARK.WMF | Bin 0 -> 4662 bytes .../graphics/Metafile/Metafiles/SOCCER.WMF | Bin 0 -> 12854 bytes .../graphics/Metafile/Metafiles/STAR.WMF | Bin 0 -> 1334 bytes .../graphics/Metafile/Metafiles/STOP.WMF | Bin 0 -> 2966 bytes .../graphics/Metafile/Metafiles/STOPLGHT.WMF | Bin 0 -> 6646 bytes .../graphics/Metafile/Metafiles/TENNIS.WMF | Bin 0 -> 20022 bytes .../graphics/Metafile/Metafiles/THUMBDN.WMF | Bin 0 -> 5302 bytes .../graphics/Metafile/Metafiles/TRIUMPH.WMF | Bin 0 -> 7734 bytes .../graphics/Metafile/Metafiles/TROPHY.WMF | Bin 0 -> 3862 bytes .../graphics/Metafile/Metafiles/TURTLE.WMF | Bin 0 -> 6870 bytes .../graphics/Metafile/Metafiles/WEARHAT.WMF | Bin 0 -> 16918 bytes .../graphics/Metafile/Metafiles/WHATNOW.WMF | Bin 0 -> 11702 bytes .../graphics/Metafile/Metafiles/YINYANG.WMF | Bin 0 -> 1590 bytes .../samples/graphics/Metafile/ReadMe.txt | 108 + .../samples/graphics/Metafile/Resource.h | 23 + .../samples/graphics/Metafile/StdAfx.cpp | 6 + .../samples/graphics/Metafile/StdAfx.h | 25 + .../samples/graphics/Metafile/new.emf | Bin 0 -> 4204 bytes .../graphics/Metafile/res/MetaFile.ico | Bin 0 -> 1078 bytes .../graphics/Metafile/res/MetaFile.rc2 | 13 + .../graphics/Metafile/res/MetaFileDoc.ico | Bin 0 -> 1078 bytes .../samples/graphics/Metafile/res/Toolbar.bmp | Bin 0 -> 598 bytes .../samples/graphics/Splash/ReadMe.txt | 81 + .../samples/graphics/Splash/Splash.clw | 48 + .../samples/graphics/Splash/Splash.cpp | 116 + .../samples/graphics/Splash/Splash.dsp | 277 + .../samples/graphics/Splash/Splash.dsw | 29 + .../graphics/Splash/Splash.exe.manifest | 22 + .../samples/graphics/Splash/Splash.h | 50 + .../samples/graphics/Splash/Splash.rc | 215 + .../samples/graphics/Splash/Splash.vcproj | 937 + .../samples/graphics/Splash/SplashDlg.cpp | 162 + .../samples/graphics/Splash/SplashDlg.h | 53 + .../samples/graphics/Splash/SplashInfo.rtf | Bin 0 -> 1406 bytes .../samples/graphics/Splash/StdAfx.cpp | 6 + .../samples/graphics/Splash/StdAfx.h | 25 + .../samples/graphics/Splash/res/Splash.ico | Bin 0 -> 1078 bytes .../samples/graphics/Splash/res/Splash.rc2 | 13 + .../samples/graphics/Splash/res/Splsh16.bmp | Bin 0 -> 10798 bytes .../samples/graphics/Splash/res/sample.bmp | Bin 0 -> 64134 bytes .../samples/graphics/Splash/res/sample1.bmp | Bin 0 -> 2910 bytes .../samples/graphics/Splash/res/sample16.bmp | Bin 0 -> 10798 bytes .../samples/graphics/Splash/res/sample256.bmp | Bin 0 -> 22438 bytes .../samples/graphics/Splash/resource.h | 31 + .../gui/3DTabViews/3DTabViews.exe.manifest | 22 + .../samples/gui/3DTabViews/3DTabViewsInfo.rtf | 69 + .../samples/gui/3DTabViews/ChildFrm.cpp | 150 + .../samples/gui/3DTabViews/ChildFrm.h | 63 + .../samples/gui/3DTabViews/Customize.cpp | 135 + .../samples/gui/3DTabViews/Customize.h | 65 + .../samples/gui/3DTabViews/HexView.cpp | 187 + .../samples/gui/3DTabViews/HexView.h | 65 + .../samples/gui/3DTabViews/MainFrm.cpp | 187 + .../samples/gui/3DTabViews/MainFrm.h | 79 + .../samples/gui/3DTabViews/ReadMe.txt | 102 + .../samples/gui/3DTabViews/StatisticsView.cpp | 180 + .../samples/gui/3DTabViews/StatisticsView.h | 71 + .../samples/gui/3DTabViews/StdAfx.cpp | 6 + .../samples/gui/3DTabViews/StdAfx.h | 26 + .../samples/gui/3DTabViews/TabViews.cpp | 145 + .../samples/gui/3DTabViews/TabViews.dsp | 437 + .../samples/gui/3DTabViews/TabViews.dsw | 33 + .../samples/gui/3DTabViews/TabViews.h | 59 + .../samples/gui/3DTabViews/TabViews.rc | 454 + .../samples/gui/3DTabViews/TabViews.sln | 29 + .../samples/gui/3DTabViews/TabViews.vcproj | 2447 +++ .../samples/gui/3DTabViews/TabViewsDoc.cpp | 94 + .../samples/gui/3DTabViews/TabViewsDoc.h | 59 + .../samples/gui/3DTabViews/TabViewsView.cpp | 106 + .../samples/gui/3DTabViews/TabViewsView.h | 68 + .../samples/gui/3DTabViews/res/TabViews.ico | Bin 0 -> 22798 bytes .../samples/gui/3DTabViews/res/TabViews.rc2 | 13 + .../gui/3DTabViews/res/TabViewsDoc.ico | Bin 0 -> 1078 bytes .../samples/gui/3DTabViews/res/Toolbar.bmp | Bin 0 -> 1078 bytes .../samples/gui/3DTabViews/res/il_tabvi.bmp | Bin 0 -> 502 bytes .../samples/gui/3DTabViews/resource.h | 40 + .../samples/gui/ApplicationBar/AppBar.rtf | 22 + .../gui/ApplicationBar/ApplicationBar.clw | 109 + .../gui/ApplicationBar/ApplicationBar.cpp | 110 + .../gui/ApplicationBar/ApplicationBar.dsp | 274 + .../gui/ApplicationBar/ApplicationBar.dsw | 33 + .../ApplicationBar.exe.manifest | 22 + .../gui/ApplicationBar/ApplicationBar.h | 51 + .../gui/ApplicationBar/ApplicationBar.rc | 228 + .../gui/ApplicationBar/ApplicationBar.vcproj | 940 + .../gui/ApplicationBar/ApplicationBarDlg.cpp | 278 + .../gui/ApplicationBar/ApplicationBarDlg.h | 63 + .../gui/ApplicationBar/OptionsDialog.cpp | 129 + .../gui/ApplicationBar/OptionsDialog.h | 56 + .../samples/gui/ApplicationBar/ReadMe.txt | 88 + .../samples/gui/ApplicationBar/StdAfx.cpp | 8 + .../samples/gui/ApplicationBar/StdAfx.h | 27 + .../gui/ApplicationBar/res/ApplicationBar.ico | Bin 0 -> 22798 bytes .../gui/ApplicationBar/res/ApplicationBar.rc2 | 13 + .../gui/ApplicationBar/res/bitmap1.bmp | Bin 0 -> 43030 bytes .../samples/gui/ApplicationBar/resource.h | 38 + .../samples/gui/AutoComplete/AutoComplete.cpp | 99 + .../samples/gui/AutoComplete/AutoComplete.dsp | 274 + .../samples/gui/AutoComplete/AutoComplete.dsw | 33 + .../AutoComplete/AutoComplete.exe.manifest | 22 + .../samples/gui/AutoComplete/AutoComplete.h | 51 + .../samples/gui/AutoComplete/AutoComplete.rc | 189 + .../gui/AutoComplete/AutoComplete.vcproj | 985 + .../gui/AutoComplete/AutoCompleteDlg.cpp | 206 + .../gui/AutoComplete/AutoCompleteDlg.h | 56 + .../gui/AutoComplete/COXAutoComplete.rtf | 31 + .../samples/gui/AutoComplete/StdAfx.cpp | 8 + .../samples/gui/AutoComplete/StdAfx.h | 27 + .../gui/AutoComplete/res/AutoComplete.ico | Bin 0 -> 22798 bytes .../gui/AutoComplete/res/AutoComplete.rc2 | 13 + .../samples/gui/AutoComplete/resource.h | 23 + .../BackgroundPainter/BackgroundPainter.cpp | 137 + .../BackgroundPainter/BackgroundPainter.dsp | 485 + .../BackgroundPainter/BackgroundPainter.dsw | 33 + .../BackgroundPainter.exe.manifest | 22 + .../gui/BackgroundPainter/BackgroundPainter.h | 50 + .../BackgroundPainter/BackgroundPainter.rc | 479 + .../BackgroundPainter.vcproj | 2954 +++ .../BackgroundPainterDoc.cpp | 84 + .../BackgroundPainter/BackgroundPainterDoc.h | 57 + .../BackgroundPainterInfo.rtf | 66 + .../BackgroundPainterView.cpp | 120 + .../BackgroundPainter/BackgroundPainterView.h | 66 + .../gui/BackgroundPainter/ChildFrm.cpp | 70 + .../samples/gui/BackgroundPainter/ChildFrm.h | 53 + .../BackgroundPainter/Images/Blue Monday.bmp | Bin 0 -> 37940 bytes .../BackgroundPainter/Images/Coffee Bean.bmp | Bin 0 -> 17062 bytes .../BackgroundPainter/Images/Fiddle Head.bmp | Bin 0 -> 65922 bytes .../BackgroundPainter/Images/Furry Dog.bmp | Bin 0 -> 37940 bytes .../BackgroundPainter/Images/Geometrix.bmp | Bin 0 -> 4328 bytes .../BackgroundPainter/Images/Gone Fishing.bmp | Bin 0 -> 17336 bytes .../BackgroundPainter/Images/Greenstone.bmp | Bin 0 -> 26582 bytes .../BackgroundPainter/Images/Hiking Boot.bmp | Bin 0 -> 37854 bytes .../BackgroundPainter/Images/Maple Trails.bmp | Bin 0 -> 26566 bytes .../BackgroundPainter/Images/Prairie Wind.bmp | Bin 0 -> 65954 bytes .../BackgroundPainter/Images/Rhododendron.bmp | Bin 0 -> 17362 bytes .../BackgroundPainter/Images/River Sumida.bmp | Bin 0 -> 26208 bytes .../Images/Santa Fe Stucco.bmp | Bin 0 -> 65832 bytes .../gui/BackgroundPainter/Images/Seaside.bmp | Bin 0 -> 17334 bytes .../BackgroundPainter/Images/Snakeskin.bmp | Bin 0 -> 10292 bytes .../BackgroundPainter/Images/Soap Bubbles.bmp | Bin 0 -> 65978 bytes .../gui/BackgroundPainter/Images/Solstice.bmp | Bin 0 -> 17334 bytes .../Images/Swimming Pool.bmp | Bin 0 -> 26202 bytes .../gui/BackgroundPainter/Images/Zapotec.bmp | Bin 0 -> 9522 bytes .../gui/BackgroundPainter/Images/winnt.bmp | Bin 0 -> 78736 bytes .../samples/gui/BackgroundPainter/LogoDlg.cpp | 56 + .../samples/gui/BackgroundPainter/LogoDlg.h | 53 + .../samples/gui/BackgroundPainter/MainFrm.cpp | 215 + .../samples/gui/BackgroundPainter/MainFrm.h | 85 + .../samples/gui/BackgroundPainter/ReadMe.txt | 117 + .../samples/gui/BackgroundPainter/StdAfx.cpp | 8 + .../samples/gui/BackgroundPainter/StdAfx.h | 28 + .../samples/gui/BackgroundPainter/TestDlg.cpp | 155 + .../samples/gui/BackgroundPainter/TestDlg.h | 69 + .../res/BackgroundPainter.ico | Bin 0 -> 22798 bytes .../res/BackgroundPainter.rc2 | 13 + .../res/BackgroundPainterDoc.ico | Bin 0 -> 1078 bytes .../gui/BackgroundPainter/res/Logo.bmp | Bin 0 -> 43030 bytes .../BackgroundPainter/res/Maple Trails.bmp | Bin 0 -> 26678 bytes .../gui/BackgroundPainter/res/Toolbar.bmp | Bin 0 -> 1078 bytes .../gui/BackgroundPainter/res/winnt256.bmp | Bin 0 -> 157042 bytes .../samples/gui/BackgroundPainter/resource.h | 63 + .../gui/BitmapButton/BitmapButtonDemo.cpp | 91 + .../gui/BitmapButton/BitmapButtonDemo.dsp | 368 + .../gui/BitmapButton/BitmapButtonDemo.dsw | 33 + .../BitmapButtonDemo.exe.manifest | 22 + .../gui/BitmapButton/BitmapButtonDemo.h | 38 + .../gui/BitmapButton/BitmapButtonDemo.rc | 310 + .../gui/BitmapButton/BitmapButtonDemo.vcproj | 1060 + .../gui/BitmapButton/BitmapButtonDemoDlg.cpp | 689 + .../gui/BitmapButton/BitmapButtonDemoDlg.h | 95 + .../samples/gui/BitmapButton/HyperDlg.cpp | 177 + .../samples/gui/BitmapButton/HyperDlg.h | 48 + .../samples/gui/BitmapButton/StdAfx.cpp | 6 + .../samples/gui/BitmapButton/StdAfx.h | 17 + .../gui/BitmapButton/bitmapbuttonInfo.rtf | Bin 0 -> 2422 bytes .../gui/BitmapButton/res/BitmapButtonDemo.ico | Bin 0 -> 22798 bytes .../gui/BitmapButton/res/BitmapButtonDemo.rc2 | 13 + .../gui/BitmapButton/res/OXHandCursor.cur | Bin 0 -> 326 bytes .../gui/BitmapButton/res/OXNoHandCursor.cur | Bin 0 -> 326 bytes .../samples/gui/BitmapButton/res/Test.AVI | Bin 0 -> 114176 bytes .../gui/BitmapButton/res/TestBitmap.bmp | Bin 0 -> 2398 bytes .../gui/BitmapButton/res/ToolBitmap1.bmp | Bin 0 -> 630 bytes .../gui/BitmapButton/res/ToolBitmap3.bmp | Bin 0 -> 630 bytes .../gui/BitmapButton/res/ToolIcon2.ico | Bin 0 -> 766 bytes .../samples/gui/BitmapButton/res/avi_test.avi | Bin 0 -> 161280 bytes .../samples/gui/BitmapButton/res/bitmap1.bmp | Bin 0 -> 20278 bytes .../samples/gui/BitmapButton/res/bmp00001.bmp | Bin 0 -> 630 bytes .../samples/gui/BitmapButton/res/bmp00002.bmp | Bin 0 -> 630 bytes .../samples/gui/BitmapButton/res/bmp00003.bmp | Bin 0 -> 630 bytes .../samples/gui/BitmapButton/res/copy_fl.bmp | Bin 0 -> 630 bytes .../samples/gui/BitmapButton/res/cursor1.cur | Bin 0 -> 326 bytes .../samples/gui/BitmapButton/res/del_file.bmp | Bin 0 -> 630 bytes .../samples/gui/BitmapButton/res/dillo.avi | Bin 0 -> 15872 bytes .../samples/gui/BitmapButton/res/icon1.ico | Bin 0 -> 318 bytes .../samples/gui/BitmapButton/res/search.avi | Bin 0 -> 21020 bytes .../samples/gui/BitmapButton/res/space.bmp | Bin 0 -> 31446 bytes .../samples/gui/BitmapButton/res/sun.bmp | Bin 0 -> 2194 bytes .../samples/gui/BitmapButton/res/test_bit.bmp | Bin 0 -> 598 bytes .../samples/gui/BitmapButton/res/tick.bmp | Bin 0 -> 310 bytes .../samples/gui/BitmapButton/resource.h | 75 + .../gui/BitmapMenuDemo/BitmapMenuDemo.clw | 138 + .../gui/BitmapMenuDemo/BitmapMenuDemo.cpp | 133 + .../gui/BitmapMenuDemo/BitmapMenuDemo.dsp | 417 + .../gui/BitmapMenuDemo/BitmapMenuDemo.dsw | 33 + .../BitmapMenuDemo.exe.manifest | 22 + .../gui/BitmapMenuDemo/BitmapMenuDemo.h | 51 + .../gui/BitmapMenuDemo/BitmapMenuDemo.rc | 392 + .../gui/BitmapMenuDemo/BitmapMenuDemo.rtf | Bin 0 -> 1025 bytes .../gui/BitmapMenuDemo/BitmapMenuDemo.vcproj | 2198 ++ .../gui/BitmapMenuDemo/BitmapMenuDemoDoc.cpp | 95 + .../gui/BitmapMenuDemo/BitmapMenuDemoDoc.h | 58 + .../gui/BitmapMenuDemo/BitmapMenuDemoView.cpp | 82 + .../gui/BitmapMenuDemo/BitmapMenuDemoView.h | 61 + .../samples/gui/BitmapMenuDemo/ChildFrm.cpp | 65 + .../samples/gui/BitmapMenuDemo/ChildFrm.h | 52 + .../samples/gui/BitmapMenuDemo/MainFrm.cpp | 170 + .../samples/gui/BitmapMenuDemo/MainFrm.h | 64 + .../samples/gui/BitmapMenuDemo/ReadMe.txt | 102 + .../samples/gui/BitmapMenuDemo/StdAfx.cpp | 6 + .../samples/gui/BitmapMenuDemo/StdAfx.h | 28 + .../gui/BitmapMenuDemo/res/BitmapMenuDemo.ico | Bin 0 -> 22798 bytes .../gui/BitmapMenuDemo/res/BitmapMenuDemo.rc2 | 13 + .../BitmapMenuDemo/res/BitmapMenuDemoDoc.ico | Bin 0 -> 1078 bytes .../gui/BitmapMenuDemo/res/FolderOp.bmp | Bin 0 -> 322 bytes .../gui/BitmapMenuDemo/res/Hellobox.bmp | Bin 0 -> 522 bytes .../samples/gui/BitmapMenuDemo/res/Page.bmp | Bin 0 -> 304 bytes .../gui/BitmapMenuDemo/res/PageChk.bmp | Bin 0 -> 330 bytes .../gui/BitmapMenuDemo/res/Toolbar.bmp | Bin 0 -> 958 bytes .../gui/BitmapMenuDemo/res/blankbox.bmp | Bin 0 -> 822 bytes .../samples/gui/BitmapMenuDemo/resource.h | 29 + .../samples/gui/Calc/CALC.CPP | 100 + .../Ultimate Toolbox/samples/gui/Calc/CALC.H | 38 + .../samples/gui/Calc/CALCDLG.H | 76 + .../samples/gui/Calc/CALCKEY.CPP | 240 + .../samples/gui/Calc/CALCKEY.H | 68 + .../samples/gui/Calc/CalInfo.rtf | Bin 0 -> 1244 bytes .../samples/gui/Calc/Calc.dsp | 269 + .../samples/gui/Calc/Calc.dsw | 33 + .../samples/gui/Calc/Calc.exe.manifest | 22 + .../samples/gui/Calc/Calc.vcproj | 934 + .../samples/gui/Calc/Calcdlg.cpp | 373 + .../samples/gui/Calc/STDAFX.CPP | 6 + .../samples/gui/Calc/STDAFX.H | 13 + .../samples/gui/Calc/calc.clw | 91 + .../Ultimate Toolbox/samples/gui/Calc/calc.rc | 222 + .../samples/gui/Calc/res/CALC.ICO | Bin 0 -> 21774 bytes .../samples/gui/Calc/res/CALC.RC2 | 13 + .../samples/gui/Calc/res/STARS.BMP | Bin 0 -> 35050 bytes .../samples/gui/Calc/res/title.bmp | Bin 0 -> 1718 bytes .../samples/gui/Calc/resource.h | 46 + .../gui/CalculatorCtrl/CalculatorCtrl.cpp | 80 + .../gui/CalculatorCtrl/CalculatorCtrl.dsp | 176 + .../gui/CalculatorCtrl/CalculatorCtrl.dsw | 33 + .../CalculatorCtrl.exe.manifest | 22 + .../gui/CalculatorCtrl/CalculatorCtrl.h | 49 + .../gui/CalculatorCtrl/CalculatorCtrl.rc | 197 + .../gui/CalculatorCtrl/CalculatorCtrl.vcproj | 455 + .../gui/CalculatorCtrl/CalculatorCtrlDlg.cpp | 167 + .../gui/CalculatorCtrl/CalculatorCtrlDlg.h | 36 + .../samples/gui/CalculatorCtrl/ReadMe.txt | 88 + .../samples/gui/CalculatorCtrl/StdAfx.cpp | 8 + .../samples/gui/CalculatorCtrl/StdAfx.h | 29 + .../gui/CalculatorCtrl/res/CalculatorCtrl.ico | Bin 0 -> 22798 bytes .../gui/CalculatorCtrl/res/CalculatorCtrl.rc2 | 13 + .../samples/gui/CalculatorCtrl/resource.h | 25 + .../CaptionPainter.exe.manifest | 22 + .../gui/CaptionPainter/CaptionPainterInfo.rtf | Bin 0 -> 3629 bytes .../CaptionPainter/CustomizeCaptionDlg.cpp | 222 + .../gui/CaptionPainter/CustomizeCaptionDlg.h | 78 + .../gui/CaptionPainter/CustomizeDlg.cpp | 178 + .../samples/gui/CaptionPainter/CustomizeDlg.h | 73 + .../samples/gui/CaptionPainter/MultiPad.rc | 642 + .../samples/gui/CaptionPainter/Multipad.cpp | 606 + .../samples/gui/CaptionPainter/mpadmac.r | 214 + .../samples/gui/CaptionPainter/multipad.clw | 345 + .../samples/gui/CaptionPainter/multipad.dsp | 449 + .../samples/gui/CaptionPainter/multipad.dsw | 33 + .../samples/gui/CaptionPainter/multipad.h | 160 + .../gui/CaptionPainter/multipad.vcproj | 2454 +++ .../gui/CaptionPainter/res/bmp00001.bmp | Bin 0 -> 886 bytes .../gui/CaptionPainter/res/bmp00003.bmp | Bin 0 -> 886 bytes .../gui/CaptionPainter/res/bmp00004.bmp | Bin 0 -> 1014 bytes .../gui/CaptionPainter/res/bmp00006.bmp | Bin 0 -> 502 bytes .../gui/CaptionPainter/res/multipad.ico | Bin 0 -> 22798 bytes .../samples/gui/CaptionPainter/res/paddoc.ico | Bin 0 -> 766 bytes .../gui/CaptionPainter/res/toolbar.bmp | Bin 0 -> 1198 bytes .../gui/CaptionPainter/res/toolbar1.bmp | Bin 0 -> 502 bytes .../gui/CaptionPainter/res/toolbar_.bmp | Bin 0 -> 1014 bytes .../samples/gui/CaptionPainter/resource.h | 65 + .../samples/gui/CaptionPainter/stdafx.cpp | 15 + .../samples/gui/CaptionPainter/stdafx.h | 22 + .../samples/gui/CaptionPainter/unicode.utf | Bin 0 -> 6204 bytes .../ColorPickerButton/ColorPickerButton.clw | 107 + .../ColorPickerButton/ColorPickerButton.cpp | 92 + .../ColorPickerButton/ColorPickerButton.dsp | 292 + .../ColorPickerButton/ColorPickerButton.dsw | 33 + .../ColorPickerButton.exe.manifest | 22 + .../gui/ColorPickerButton/ColorPickerButton.h | 50 + .../ColorPickerButton/ColorPickerButton.rc | 226 + .../ColorPickerButton.vcproj | 1089 + .../ColorPickerButtonDlg.cpp | 731 + .../ColorPickerButton/ColorPickerButtonDlg.h | 89 + .../ColorPickerButtonInfo.rtf | 42 + .../samples/gui/ColorPickerButton/ReadMe.txt | 81 + .../samples/gui/ColorPickerButton/StdAfx.cpp | 6 + .../samples/gui/ColorPickerButton/StdAfx.h | 25 + .../res/ColorPickerButton.ico | Bin 0 -> 22798 bytes .../res/ColorPickerButton.rc2 | 13 + .../gui/ColorPickerButton/res/bitmap1.bmp | Bin 0 -> 246 bytes .../samples/gui/ColorPickerButton/resource.h | 51 + .../samples/gui/ComboTree/ComboOXTree.cpp | 605 + .../samples/gui/ComboTree/ComboOXTree.h | 80 + .../samples/gui/ComboTree/ComboTree.clw | 58 + .../samples/gui/ComboTree/ComboTree.cpp | 92 + .../samples/gui/ComboTree/ComboTree.dsp | 370 + .../samples/gui/ComboTree/ComboTree.dsw | 33 + .../gui/ComboTree/ComboTree.exe.manifest | 22 + .../samples/gui/ComboTree/ComboTree.h | 50 + .../samples/gui/ComboTree/ComboTree.rc | 211 + .../samples/gui/ComboTree/ComboTree.rtf | Bin 0 -> 1496 bytes .../samples/gui/ComboTree/ComboTree.vcproj | 1716 ++ .../samples/gui/ComboTree/ComboTreeDlg.cpp | 343 + .../samples/gui/ComboTree/ComboTreeDlg.h | 88 + .../samples/gui/ComboTree/FolderPicker.cpp | 33 + .../samples/gui/ComboTree/FolderPicker.h | 23 + .../samples/gui/ComboTree/FolderTree.cpp | 42 + .../samples/gui/ComboTree/FolderTree.h | 26 + .../samples/gui/ComboTree/StdAfx.cpp | 8 + .../samples/gui/ComboTree/StdAfx.h | 27 + .../samples/gui/ComboTree/res/ComboTree.ico | Bin 0 -> 22798 bytes .../samples/gui/ComboTree/res/ComboTree.rc2 | 13 + .../samples/gui/ComboTree/res/bitmap1.bmp | Bin 0 -> 566 bytes .../samples/gui/ComboTree/res/bitmap2.bmp | Bin 0 -> 310 bytes .../samples/gui/ComboTree/resource.h | 32 + .../samples/gui/ContextHelp/CntxHlpInfo.rtf | Bin 0 -> 1221 bytes .../samples/gui/ContextHelp/ContextHelp.clw | 109 + .../samples/gui/ContextHelp/ContextHelp.cpp | 98 + .../samples/gui/ContextHelp/ContextHelp.dsp | 309 + .../samples/gui/ContextHelp/ContextHelp.dsw | 33 + .../gui/ContextHelp/ContextHelp.exe.manifest | 22 + .../samples/gui/ContextHelp/ContextHelp.h | 38 + .../samples/gui/ContextHelp/ContextHelp.hlp | Bin 0 -> 6783 bytes .../samples/gui/ContextHelp/ContextHelp.rc | 299 + .../samples/gui/ContextHelp/ContextHelp.rtf | 22 + .../gui/ContextHelp/ContextHelp.vcproj | 1197 ++ .../gui/ContextHelp/ContextHelp.vcproj.vspscc | 10 + .../gui/ContextHelp/ContextHelpDlg.cpp | 154 + .../samples/gui/ContextHelp/ContextHelpDlg.h | 39 + .../samples/gui/ContextHelp/HelpIDs.h | 20 + .../samples/gui/ContextHelp/StdAfx.cpp | 6 + .../samples/gui/ContextHelp/StdAfx.h | 16 + .../samples/gui/ContextHelp/TestDialog.cpp | 177 + .../samples/gui/ContextHelp/TestDialog.h | 52 + .../samples/gui/ContextHelp/TestSheet.cpp | 160 + .../samples/gui/ContextHelp/TestSheet.h | 51 + .../gui/ContextHelp/res/ContextHelp.ico | Bin 0 -> 22798 bytes .../gui/ContextHelp/res/ContextHelp.rc2 | 13 + .../samples/gui/ContextHelp/res/bitmap1.bmp | Bin 0 -> 1270 bytes .../samples/gui/ContextHelp/resource.h | 43 + .../samples/gui/ContextHelp/resource.hm | 12 + .../samples/gui/ContextHelp/test2page.cpp | 69 + .../samples/gui/ContextHelp/test2page.h | 41 + .../samples/gui/ContextHelp/testpage.cpp | 75 + .../samples/gui/ContextHelp/testpage.h | 38 + .../samples/gui/CoolBar/CoolBar.exe.manifest | 22 + .../samples/gui/CoolBar/CoolBarInfo.rtf | Bin 0 -> 1371 bytes .../samples/gui/CoolBar/CustomizeDlg.cpp | 181 + .../samples/gui/CoolBar/CustomizeDlg.h | 69 + .../samples/gui/CoolBar/MultiPad.rc | 604 + .../samples/gui/CoolBar/Multipad.cpp | 709 + .../samples/gui/CoolBar/mpadmac.r | 214 + .../samples/gui/CoolBar/multipad.dsp | 389 + .../samples/gui/CoolBar/multipad.dsw | 33 + .../samples/gui/CoolBar/multipad.h | 113 + .../samples/gui/CoolBar/multipad.vcproj | 437 + .../gui/CoolBar/res/CoolBarWallPaper.bmp | Bin 0 -> 40118 bytes .../samples/gui/CoolBar/res/bmp00001.bmp | Bin 0 -> 886 bytes .../samples/gui/CoolBar/res/bmp00003.bmp | Bin 0 -> 886 bytes .../samples/gui/CoolBar/res/bmp00004.bmp | Bin 0 -> 1014 bytes .../samples/gui/CoolBar/res/bmp00006.bmp | Bin 0 -> 502 bytes .../samples/gui/CoolBar/res/coolbar_.bmp | Bin 0 -> 502 bytes .../samples/gui/CoolBar/res/multipad.ico | Bin 0 -> 22798 bytes .../samples/gui/CoolBar/res/paddoc.ico | Bin 0 -> 766 bytes .../samples/gui/CoolBar/res/toolbar.bmp | Bin 0 -> 1198 bytes .../samples/gui/CoolBar/res/toolbar1.bmp | Bin 0 -> 502 bytes .../samples/gui/CoolBar/res/toolbar_.bmp | Bin 0 -> 1014 bytes .../samples/gui/CoolBar/res/wallppr.pal | Bin 0 -> 88 bytes .../samples/gui/CoolBar/resource.h | 48 + .../samples/gui/CoolBar/stdafx.cpp | 15 + .../samples/gui/CoolBar/stdafx.h | 20 + .../samples/gui/CoolBar/unicode.utf | Bin 0 -> 6204 bytes .../samples/gui/CoolCombo/CoolCombo.clw | 189 + .../samples/gui/CoolCombo/CoolCombo.cpp | 129 + .../samples/gui/CoolCombo/CoolCombo.dsp | 394 + .../samples/gui/CoolCombo/CoolCombo.dsw | 33 + .../gui/CoolCombo/CoolCombo.exe.manifest | 22 + .../samples/gui/CoolCombo/CoolCombo.h | 50 + .../samples/gui/CoolCombo/CoolCombo.rc | 382 + .../samples/gui/CoolCombo/CoolCombo.vcproj | 2232 ++ .../gui/CoolCombo/CoolComboBoxInfo.rtf | 121 + .../samples/gui/CoolCombo/CoolComboDoc.cpp | 84 + .../samples/gui/CoolCombo/CoolComboDoc.h | 57 + .../samples/gui/CoolCombo/CoolComboView.cpp | 212 + .../samples/gui/CoolCombo/CoolComboView.h | 87 + .../samples/gui/CoolCombo/MainFrm.cpp | 141 + .../samples/gui/CoolCombo/MainFrm.h | 68 + .../samples/gui/CoolCombo/ReadMe.txt | 105 + .../samples/gui/CoolCombo/StdAfx.cpp | 8 + .../samples/gui/CoolCombo/StdAfx.h | 30 + .../samples/gui/CoolCombo/res/CoolCombo.ico | Bin 0 -> 22798 bytes .../samples/gui/CoolCombo/res/CoolCombo.rc2 | 13 + .../gui/CoolCombo/res/CoolComboDoc.ico | Bin 0 -> 1078 bytes .../samples/gui/CoolCombo/res/Toolbar.bmp | Bin 0 -> 718 bytes .../samples/gui/CoolCombo/resource.h | 30 + .../samples/gui/CoolControls/CoolControls.clw | 179 + .../samples/gui/CoolControls/CoolControls.cpp | 127 + .../samples/gui/CoolControls/CoolControls.dsp | 334 + .../samples/gui/CoolControls/CoolControls.dsw | 33 + .../CoolControls/CoolControls.exe.manifest | 22 + .../samples/gui/CoolControls/CoolControls.h | 50 + .../samples/gui/CoolControls/CoolControls.rc | 383 + .../gui/CoolControls/CoolControls.vcproj | 1407 ++ .../gui/CoolControls/CoolControlsDlg.cpp | 125 + .../gui/CoolControls/CoolControlsDlg.h | 40 + .../gui/CoolControls/CoolControlsInfo.rtf | 61 + .../PropertyPageButtonComboBox.cpp | 93 + .../CoolControls/PropertyPageButtonComboBox.h | 69 + .../gui/CoolControls/PropertyPageEdit.cpp | 101 + .../gui/CoolControls/PropertyPageEdit.h | 71 + .../gui/CoolControls/PropertyPageListTree.cpp | 132 + .../gui/CoolControls/PropertyPageListTree.h | 57 + .../CoolControls/PropertyPageNewControls.cpp | 79 + .../CoolControls/PropertyPageNewControls.h | 61 + .../PropertyPageSpinAndOthers.cpp | 99 + .../CoolControls/PropertyPageSpinAndOthers.h | 67 + .../samples/gui/CoolControls/ReadMe.txt | 88 + .../samples/gui/CoolControls/StdAfx.cpp | 8 + .../samples/gui/CoolControls/StdAfx.h | 28 + .../gui/CoolControls/res/CoolControls.ico | Bin 0 -> 22798 bytes .../gui/CoolControls/res/CoolControls.rc2 | 13 + .../samples/gui/CoolControls/res/il_small.bmp | Bin 0 -> 246 bytes .../samples/gui/CoolControls/resource.h | 77 + .../gui/CoolToolBar/CoolToolBar.exe.manifest | 22 + .../gui/CoolToolBar/CoolToolBarInfo.rtf | Bin 0 -> 4072 bytes .../samples/gui/CoolToolBar/CustomizeDlg.cpp | 165 + .../samples/gui/CoolToolBar/CustomizeDlg.h | 69 + .../gui/CoolToolBar/CustomizeMTIWorkspace.cpp | 97 + .../gui/CoolToolBar/CustomizeMTIWorkspace.h | 50 + .../samples/gui/CoolToolBar/MultiPad.rc | 648 + .../samples/gui/CoolToolBar/Multipad.cpp | 607 + .../samples/gui/CoolToolBar/WorkspaceDlg.cpp | 53 + .../samples/gui/CoolToolBar/WorkspaceDlg.h | 47 + .../samples/gui/CoolToolBar/mpadmac.r | 214 + .../samples/gui/CoolToolBar/multipad.h | 125 + .../samples/gui/CoolToolBar/multipad2.dsp | 415 + .../samples/gui/CoolToolBar/multipad2.vcproj | 2163 ++ .../samples/gui/CoolToolBar/res/bmp00001.bmp | Bin 0 -> 886 bytes .../samples/gui/CoolToolBar/res/bmp00003.bmp | Bin 0 -> 886 bytes .../samples/gui/CoolToolBar/res/bmp00004.bmp | Bin 0 -> 1014 bytes .../samples/gui/CoolToolBar/res/bmp00006.bmp | Bin 0 -> 502 bytes .../samples/gui/CoolToolBar/res/multipad.ico | Bin 0 -> 22798 bytes .../samples/gui/CoolToolBar/res/paddoc.ico | Bin 0 -> 766 bytes .../samples/gui/CoolToolBar/res/toolbar.bmp | Bin 0 -> 1198 bytes .../samples/gui/CoolToolBar/res/toolbar1.bmp | Bin 0 -> 502 bytes .../samples/gui/CoolToolBar/res/toolbar_.bmp | Bin 0 -> 1014 bytes .../samples/gui/CoolToolBar/resource.h | 54 + .../samples/gui/CoolToolBar/stdafx.cpp | 15 + .../samples/gui/CoolToolBar/stdafx.h | 24 + .../samples/gui/CoolToolBar/unicode.utf | Bin 0 -> 6204 bytes .../gui/DateTimePicker/DateTimePicker.clw | 130 + .../gui/DateTimePicker/DateTimePicker.cpp | 101 + .../gui/DateTimePicker/DateTimePicker.dsp | 292 + .../gui/DateTimePicker/DateTimePicker.dsw | 33 + .../DateTimePicker.exe.manifest | 22 + .../gui/DateTimePicker/DateTimePicker.h | 50 + .../gui/DateTimePicker/DateTimePicker.rc | 250 + .../gui/DateTimePicker/DateTimePicker.vcproj | 1220 ++ .../gui/DateTimePicker/DateTimePickerDlg.cpp | 594 + .../gui/DateTimePicker/DateTimePickerDlg.h | 106 + .../gui/DateTimePicker/DateTimePickerInfo.rtf | 61 + .../samples/gui/DateTimePicker/StdAfx.cpp | 6 + .../samples/gui/DateTimePicker/StdAfx.h | 25 + .../gui/DateTimePicker/res/DateTimePicker.ico | Bin 0 -> 22798 bytes .../gui/DateTimePicker/res/DateTimePicker.rc2 | 13 + .../samples/gui/DateTimePicker/resource.h | 48 + .../samples/gui/DockProp/ChildFrm.cpp | 65 + .../samples/gui/DockProp/ChildFrm.h | 40 + .../samples/gui/DockProp/DockOropInfo.rtf | Bin 0 -> 2532 bytes .../samples/gui/DockProp/DockProp.cpp | 135 + .../samples/gui/DockProp/DockProp.dsp | 445 + .../samples/gui/DockProp/DockProp.dsw | 33 + .../gui/DockProp/DockProp.exe.manifest | 22 + .../samples/gui/DockProp/DockProp.h | 39 + .../samples/gui/DockProp/DockProp.rc | 451 + .../samples/gui/DockProp/DockProp.sln | 29 + .../samples/gui/DockProp/DockProp.vcproj | 2475 +++ .../samples/gui/DockProp/DockPropDoc.cpp | 82 + .../samples/gui/DockProp/DockPropDoc.h | 44 + .../samples/gui/DockProp/DockPropInfo.rtf | Bin 0 -> 2532 bytes .../samples/gui/DockProp/DockPropView.cpp | 146 + .../samples/gui/DockProp/DockPropView.h | 64 + .../samples/gui/DockProp/MainFrm.cpp | 105 + .../samples/gui/DockProp/MainFrm.h | 46 + .../samples/gui/DockProp/MeasPage.cpp | 69 + .../samples/gui/DockProp/MeasSht.cpp | 44 + .../samples/gui/DockProp/MeasSht.h | 81 + .../samples/gui/DockProp/SctPage.cpp | 78 + .../samples/gui/DockProp/SctPage.h | 118 + .../samples/gui/DockProp/SectBar.cpp | 43 + .../samples/gui/DockProp/SectBar.h | 35 + .../samples/gui/DockProp/StdAfx.cpp | 6 + .../samples/gui/DockProp/StdAfx.h | 13 + .../samples/gui/DockProp/measpage.h | 89 + .../samples/gui/DockProp/res/DockProp.ico | Bin 0 -> 22798 bytes .../samples/gui/DockProp/res/DockProp.rc2 | 13 + .../samples/gui/DockProp/res/DockPropDoc.ico | Bin 0 -> 1078 bytes .../samples/gui/DockProp/res/Toolbar.bmp | Bin 0 -> 1078 bytes .../samples/gui/DockProp/resource.h | 44 + .../samples/gui/DockView/DOCKTDOC.CPP | 82 + .../samples/gui/DockView/DOCKTDOC.H | 44 + .../samples/gui/DockView/DOCKTEST.CLW | 201 + .../samples/gui/DockView/DOCKTEST.H | 39 + .../samples/gui/DockView/DOCKTVW.CPP | 104 + .../samples/gui/DockView/DOCKTVW.H | 54 + .../samples/gui/DockView/Dockchil.cpp | 160 + .../samples/gui/DockView/Dockchil.h | 60 + .../samples/gui/DockView/Docktest.RC | 469 + .../samples/gui/DockView/Docktest.cpp | 141 + .../samples/gui/DockView/Docktest.dsp | 482 + .../samples/gui/DockView/Docktest.dsw | 33 + .../gui/DockView/Docktest.exe.manifest | 22 + .../samples/gui/DockView/Docktest.sln | 29 + .../samples/gui/DockView/Docktest.vcproj | 2765 +++ .../gui/DockView/Docktest.vcproj.vspscc | 10 + .../samples/gui/DockView/Docktestinfo.rtf | Bin 0 -> 1193 bytes .../samples/gui/DockView/LogoDlg.cpp | 101 + .../samples/gui/DockView/LogoDlg.h | 43 + .../samples/gui/DockView/MAINFRM.CPP | 258 + .../samples/gui/DockView/MAINFRM.H | 73 + .../samples/gui/DockView/Mysizeba.cpp | 193 + .../samples/gui/DockView/Mysizeba.h | 47 + .../samples/gui/DockView/STDAFX.CPP | 7 + .../samples/gui/DockView/STDAFX.H | 21 + .../samples/gui/DockView/TabViewBar.cpp | 162 + .../samples/gui/DockView/TabViewBar.h | 52 + .../samples/gui/DockView/res/BUTTON.bmp | Bin 0 -> 1598 bytes .../samples/gui/DockView/res/DOCKTEST.RC2 | 13 + .../samples/gui/DockView/res/Logo16.bmp | Bin 0 -> 2718 bytes .../samples/gui/DockView/res/bitmap3.bmp | Bin 0 -> 1598 bytes .../samples/gui/DockView/res/bmp00001.bmp | Bin 0 -> 3438 bytes .../samples/gui/DockView/res/docktdoc.ico | Bin 0 -> 1078 bytes .../samples/gui/DockView/res/docktest.ico | Bin 0 -> 22798 bytes .../samples/gui/DockView/res/toolbar.bmp | Bin 0 -> 1198 bytes .../samples/gui/DockView/resource.h | 47 + .../samples/gui/EditList1/EditList1.clw | 51 + .../samples/gui/EditList1/EditList1.cpp | 89 + .../samples/gui/EditList1/EditList1.dsp | 285 + .../samples/gui/EditList1/EditList1.dsw | 33 + .../gui/EditList1/EditList1.exe.manifest | 22 + .../samples/gui/EditList1/EditList1.h | 50 + .../samples/gui/EditList1/EditList1.rc | 198 + .../samples/gui/EditList1/EditList1.vcproj | 1125 + .../samples/gui/EditList1/EditList1Dlg.cpp | 186 + .../samples/gui/EditList1/EditList1Dlg.h | 58 + .../samples/gui/EditList1/ReadMe.txt | 81 + .../samples/gui/EditList1/StdAfx.cpp | 6 + .../samples/gui/EditList1/StdAfx.h | 26 + .../samples/gui/EditList1/editlist1info.rtf | Bin 0 -> 1621 bytes .../samples/gui/EditList1/res/EditList1.ico | Bin 0 -> 22798 bytes .../samples/gui/EditList1/res/EditList1.rc2 | 13 + .../samples/gui/EditList1/res/bitmap1.bmp | Bin 0 -> 438 bytes .../samples/gui/EditList1/resource.h | 23 + .../samples/gui/ExtTreeDemo/ExtTreeDemo.clw | 127 + .../samples/gui/ExtTreeDemo/ExtTreeDemo.cpp | 91 + .../samples/gui/ExtTreeDemo/ExtTreeDemo.dsp | 345 + .../samples/gui/ExtTreeDemo/ExtTreeDemo.dsw | 33 + .../gui/ExtTreeDemo/ExtTreeDemo.exe.manifest | 22 + .../samples/gui/ExtTreeDemo/ExtTreeDemo.h | 50 + .../samples/gui/ExtTreeDemo/ExtTreeDemo.rc | 219 + .../gui/ExtTreeDemo/ExtTreeDemo.vcproj | 1456 ++ .../gui/ExtTreeDemo/ExtTreeDemoDlg.cpp | 792 + .../samples/gui/ExtTreeDemo/ExtTreeDemoDlg.h | 104 + .../gui/ExtTreeDemo/ExtTreeDemoInfo.rtf | Bin 0 -> 3884 bytes .../samples/gui/ExtTreeDemo/ReadMe.txt | 81 + .../samples/gui/ExtTreeDemo/StdAfx.cpp | 6 + .../samples/gui/ExtTreeDemo/StdAfx.h | 26 + .../gui/ExtTreeDemo/res/ExtTreeDemo.ico | Bin 0 -> 22798 bytes .../gui/ExtTreeDemo/res/ExtTreeDemo.rc2 | 13 + .../samples/gui/ExtTreeDemo/res/bitmap1.bmp | Bin 0 -> 342 bytes .../samples/gui/ExtTreeDemo/res/bitmap2.bmp | Bin 0 -> 294 bytes .../samples/gui/ExtTreeDemo/resource.h | 47 + .../ExtendedEditControls/CurrencyEditDlg.cpp | 356 + .../ExtendedEditControls/CurrencyEditDlg.h | 103 + .../gui/ExtendedEditControls/DropEditDlg.cpp | 115 + .../gui/ExtendedEditControls/DropEditDlg.h | 107 + .../EditExtensionsInfo.rtf | 217 + .../EditExtensionsSht.cpp | 121 + .../ExtendedEditControls/EditExtensionsSht.h | 59 + .../ExtendedEditControls.cpp | 86 + .../ExtendedEditControls.dsp | 569 + .../ExtendedEditControls.dsw | 33 + .../ExtendedEditControls.exe.manifest | 22 + .../ExtendedEditControls.h | 50 + .../ExtendedEditControls.rc | 711 + .../ExtendedEditControls.vcproj | 3710 ++++ .../ExtendedEditControls/ExtendedEditDlg.cpp | 158 + .../ExtendedEditControls/ExtendedEditDlg.h | 68 + .../ExtendedEditControls/MaskedEditDlg.cpp | 147 + .../gui/ExtendedEditControls/MaskedEditDlg.h | 55 + .../ExtendedEditControls/NumericEditDlg.cpp | 313 + .../gui/ExtendedEditControls/NumericEditDlg.h | 96 + .../ExtendedEditControls/PhysicalEditDlg.cpp | 197 + .../ExtendedEditControls/PhysicalEditDlg.h | 66 + .../gui/ExtendedEditControls/ReadMe.txt | 88 + .../gui/ExtendedEditControls/StdAfx.cpp | 8 + .../samples/gui/ExtendedEditControls/StdAfx.h | 30 + .../res/ExtendedEditControls.ico | Bin 0 -> 22798 bytes .../res/ExtendedEditControls.rc2 | 13 + .../gui/ExtendedEditControls/resource.h | 124 + .../gui/ExtendedListBox/ExtendedListBox.clw | 199 + .../gui/ExtendedListBox/ExtendedListBox.cpp | 134 + .../gui/ExtendedListBox/ExtendedListBox.dsp | 432 + .../gui/ExtendedListBox/ExtendedListBox.dsw | 33 + .../ExtendedListBox.exe.manifest | 22 + .../gui/ExtendedListBox/ExtendedListBox.h | 50 + .../gui/ExtendedListBox/ExtendedListBox.rc | 437 + .../ExtendedListBox/ExtendedListBox.vcproj | 2584 +++ .../ExtendedListBox/ExtendedListBoxDoc.cpp | 84 + .../gui/ExtendedListBox/ExtendedListBoxDoc.h | 57 + .../ExtendedListBox/ExtendedListBoxInfo.rtf | 88 + .../ExtendedListBox/ExtendedListBoxView.cpp | 382 + .../gui/ExtendedListBox/ExtendedListBoxView.h | 113 + .../samples/gui/ExtendedListBox/MainFrm.cpp | 109 + .../samples/gui/ExtendedListBox/MainFrm.h | 61 + .../samples/gui/ExtendedListBox/ReadMe.txt | 105 + .../samples/gui/ExtendedListBox/StdAfx.cpp | 8 + .../samples/gui/ExtendedListBox/StdAfx.h | 28 + .../ExtendedListBox/res/ExtendedListBox.ico | Bin 0 -> 22798 bytes .../ExtendedListBox/res/ExtendedListBox.rc2 | 13 + .../res/ExtendedListBoxDoc.ico | Bin 0 -> 1078 bytes .../gui/ExtendedListBox/res/Toolbar.bmp | Bin 0 -> 1078 bytes .../gui/ExtendedListBox/res/il_listboxex.bmp | Bin 0 -> 3702 bytes .../samples/gui/ExtendedListBox/resource.h | 40 + .../ExtendedTreeControl.clw | 56 + .../ExtendedTreeControl.cpp | 81 + .../ExtendedTreeControl.dsp | 249 + .../ExtendedTreeControl.dsw | 33 + .../ExtendedTreeControl.exe.manifest | 22 + .../ExtendedTreeControl/ExtendedTreeControl.h | 49 + .../ExtendedTreeControl.rc | 222 + .../ExtendedTreeControl.vcproj | 710 + .../ExtendedTreeControlDlg.cpp | 674 + .../ExtendedTreeControlDlg.h | 91 + .../gui/ExtendedTreeControl/ReadMe.txt | 88 + .../gui/ExtendedTreeControl/StdAfx.cpp | 8 + .../samples/gui/ExtendedTreeControl/StdAfx.h | 27 + .../gui/ExtendedTreeControl/il_tree.bmp | Bin 0 -> 630 bytes .../res/ExtendedTreeControl.ico | Bin 0 -> 22798 bytes .../res/ExtendedTreeControl.rc2 | 13 + .../gui/ExtendedTreeControl/resource.h | 35 + .../gui/FontPickers/FontPickerButtonInfo.rtf | 69 + .../samples/gui/FontPickers/FontPickers.clw | 46 + .../samples/gui/FontPickers/FontPickers.cpp | 93 + .../samples/gui/FontPickers/FontPickers.dsp | 306 + .../samples/gui/FontPickers/FontPickers.dsw | 33 + .../gui/FontPickers/FontPickers.exe.manifest | 22 + .../samples/gui/FontPickers/FontPickers.h | 50 + .../samples/gui/FontPickers/FontPickers.rc | 204 + .../samples/gui/FontPickers/FontPickers.sln | 29 + .../gui/FontPickers/FontPickers.vcproj | 1199 ++ .../gui/FontPickers/FontPickersDlg.cpp | 142 + .../samples/gui/FontPickers/FontPickersDlg.h | 59 + .../samples/gui/FontPickers/ReadMe.txt | 88 + .../samples/gui/FontPickers/StdAfx.cpp | 8 + .../samples/gui/FontPickers/StdAfx.h | 26 + .../gui/FontPickers/res/FontPickers.ico | Bin 0 -> 22798 bytes .../gui/FontPickers/res/FontPickers.rc2 | 13 + .../samples/gui/FontPickers/res/bitmap1.bmp | Bin 0 -> 246 bytes .../samples/gui/FontPickers/res/font.bmp | Bin 0 -> 246 bytes .../samples/gui/FontPickers/resource.h | 27 + .../samples/gui/FullScreen/ChildFrm.cpp | 70 + .../samples/gui/FullScreen/ChildFrm.h | 53 + .../samples/gui/FullScreen/FullScreen.cpp | 188 + .../samples/gui/FullScreen/FullScreen.dsp | 295 + .../samples/gui/FullScreen/FullScreen.dsw | 33 + .../gui/FullScreen/FullScreen.exe.manifest | 22 + .../samples/gui/FullScreen/FullScreen.h | 50 + .../samples/gui/FullScreen/FullScreen.rc | 431 + .../samples/gui/FullScreen/FullScreen.vcproj | 1051 + .../samples/gui/FullScreen/FullScreenDoc.cpp | 84 + .../samples/gui/FullScreen/FullScreenDoc.h | 57 + .../samples/gui/FullScreen/FullScreenView.cpp | 123 + .../samples/gui/FullScreen/FullScreenView.h | 69 + .../samples/gui/FullScreen/MainFrm.cpp | 113 + .../samples/gui/FullScreen/MainFrm.h | 57 + .../samples/gui/FullScreen/StdAfx.cpp | 8 + .../samples/gui/FullScreen/StdAfx.h | 27 + .../samples/gui/FullScreen/res/FullScreen.ico | Bin 0 -> 22798 bytes .../samples/gui/FullScreen/res/FullScreen.rc2 | 13 + .../gui/FullScreen/res/FullScreenDoc.ico | Bin 0 -> 1078 bytes .../samples/gui/FullScreen/res/Toolbar.bmp | Bin 0 -> 1078 bytes .../samples/gui/FullScreen/res/toolbar1.bmp | Bin 0 -> 238 bytes .../samples/gui/FullScreen/resource.h | 22 + .../samples/gui/GridCtrl/GridCdoc.cpp | 81 + .../samples/gui/GridCtrl/GridCdoc.h | 44 + .../samples/gui/GridCtrl/GridCtrl.clw | 252 + .../samples/gui/GridCtrl/GridCtrl.cpp | 146 + .../samples/gui/GridCtrl/GridCtrl.dsp | 320 + .../samples/gui/GridCtrl/GridCtrl.dsw | 33 + .../gui/GridCtrl/GridCtrl.exe.manifest | 22 + .../samples/gui/GridCtrl/GridCtrl.h | 38 + .../samples/gui/GridCtrl/GridCtrl.rc | 446 + .../samples/gui/GridCtrl/GridCtrl.sln | 29 + .../samples/gui/GridCtrl/GridCtrl.vcproj | 1101 + .../samples/gui/GridCtrl/GridCvw.cpp | 454 + .../samples/gui/GridCtrl/GridCvw.h | 101 + .../samples/gui/GridCtrl/mainfrm.cpp | 125 + .../samples/gui/GridCtrl/mainfrm.h | 43 + .../samples/gui/GridCtrl/res/GridCdoc.ico | Bin 0 -> 1078 bytes .../samples/gui/GridCtrl/res/GridCtrl.ico | Bin 0 -> 22798 bytes .../samples/gui/GridCtrl/res/GridCtrl.rc2 | 13 + .../gui/GridCtrl/res/OXGridListImg.bmp | Bin 0 -> 338 bytes .../samples/gui/GridCtrl/res/bitmap1.bmp | Bin 0 -> 478 bytes .../samples/gui/GridCtrl/res/bmp00001.bmp | Bin 0 -> 338 bytes .../samples/gui/GridCtrl/res/icon2.ico | Bin 0 -> 1078 bytes .../samples/gui/GridCtrl/res/icon3.ico | Bin 0 -> 766 bytes .../samples/gui/GridCtrl/res/idr_main.ico | Bin 0 -> 1078 bytes .../samples/gui/GridCtrl/res/toolbar.bmp | Bin 0 -> 1198 bytes .../samples/gui/GridCtrl/resource.h | 72 + .../samples/gui/GridCtrl/stdafx.cpp | 6 + .../samples/gui/GridCtrl/stdafx.h | 11 + .../samples/gui/HistCmbo/HistoryComboDemo.clw | 75 + .../samples/gui/HistCmbo/HistoryComboDemo.cpp | 95 + .../samples/gui/HistCmbo/HistoryComboDemo.dsp | 377 + .../samples/gui/HistCmbo/HistoryComboDemo.dsw | 33 + .../HistCmbo/HistoryComboDemo.exe.manifest | 22 + .../samples/gui/HistCmbo/HistoryComboDemo.h | 38 + .../samples/gui/HistCmbo/HistoryComboDemo.rc | 249 + .../gui/HistCmbo/HistoryComboDemo.vcproj | 2120 ++ .../gui/HistCmbo/HistoryComboDemoDlg.cpp | 314 + .../gui/HistCmbo/HistoryComboDemoDlg.h | 58 + .../samples/gui/HistCmbo/HistorycomboInfo.rtf | Bin 0 -> 2098 bytes .../samples/gui/HistCmbo/StdAfx.cpp | 6 + .../samples/gui/HistCmbo/StdAfx.h | 15 + .../gui/HistCmbo/res/HistComboTest.bmp | Bin 0 -> 838 bytes .../gui/HistCmbo/res/HistoryComboDemo.ico | Bin 0 -> 22798 bytes .../gui/HistCmbo/res/HistoryComboDemo.rc2 | 13 + .../samples/gui/HistCmbo/resource.h | 46 + .../samples/gui/HyperbarDemo/Config.cpp | 76 + .../samples/gui/HyperbarDemo/Config.h | 50 + .../gui/HyperbarDemo/CustomHyperbar.cpp | 29 + .../samples/gui/HyperbarDemo/CustomHyperbar.h | 10 + .../samples/gui/HyperbarDemo/HyperbarDemo.cpp | 156 + .../samples/gui/HyperbarDemo/HyperbarDemo.dsp | 254 + .../samples/gui/HyperbarDemo/HyperbarDemo.dsw | 29 + .../samples/gui/HyperbarDemo/HyperbarDemo.h | 49 + .../samples/gui/HyperbarDemo/HyperbarDemo.rc | 455 + .../samples/gui/HyperbarDemo/HyperbarDemo.sln | 20 + .../gui/HyperbarDemo/HyperbarDemo.vcproj | 521 + .../gui/HyperbarDemo/HyperbarDemoDoc.cpp | 84 + .../gui/HyperbarDemo/HyperbarDemoDoc.h | 57 + .../gui/HyperbarDemo/HyperbarDemoView.cpp | 104 + .../gui/HyperbarDemo/HyperbarDemoView.h | 67 + .../samples/gui/HyperbarDemo/MainFrm.cpp | 162 + .../samples/gui/HyperbarDemo/MainFrm.h | 69 + .../samples/gui/HyperbarDemo/ReadMe.txt | 105 + .../samples/gui/HyperbarDemo/StdAfx.cpp | 8 + .../samples/gui/HyperbarDemo/StdAfx.h | 26 + .../gui/HyperbarDemo/res/HyperbarDemo.ico | Bin 0 -> 1078 bytes .../gui/HyperbarDemo/res/HyperbarDemo.rc2 | 13 + .../gui/HyperbarDemo/res/HyperbarDemoDoc.ico | Bin 0 -> 1078 bytes .../samples/gui/HyperbarDemo/res/Toolbar.bmp | Bin 0 -> 1078 bytes .../samples/gui/HyperbarDemo/res/book.bmp | Bin 0 -> 24534 bytes .../samples/gui/HyperbarDemo/res/code.bmp | Bin 0 -> 24534 bytes .../samples/gui/HyperbarDemo/res/disk.bmp | Bin 0 -> 24534 bytes .../samples/gui/HyperbarDemo/res/document.bmp | Bin 0 -> 24534 bytes .../samples/gui/HyperbarDemo/res/folders.bmp | Bin 0 -> 24534 bytes .../samples/gui/HyperbarDemo/res/globe.bmp | Bin 0 -> 24534 bytes .../samples/gui/HyperbarDemo/res/pc.bmp | Bin 0 -> 24534 bytes .../samples/gui/HyperbarDemo/res/plug.bmp | Bin 0 -> 24534 bytes .../samples/gui/HyperbarDemo/res/pocketpc.bmp | Bin 0 -> 24534 bytes .../samples/gui/HyperbarDemo/res/toolbar1.bmp | Bin 0 -> 5750 bytes .../samples/gui/HyperbarDemo/res/tools.bmp | Bin 0 -> 24534 bytes .../samples/gui/HyperbarDemo/res/user.bmp | Bin 0 -> 24534 bytes .../samples/gui/HyperbarDemo/resource.h | 44 + .../samples/gui/ImageListBox/ImageListBox.clw | 51 + .../samples/gui/ImageListBox/ImageListBox.cpp | 96 + .../samples/gui/ImageListBox/ImageListBox.dsp | 401 + .../samples/gui/ImageListBox/ImageListBox.dsw | 33 + .../ImageListBox/ImageListBox.exe.manifest | 22 + .../samples/gui/ImageListBox/ImageListBox.h | 50 + .../samples/gui/ImageListBox/ImageListBox.rc | 212 + .../gui/ImageListBox/ImageListBox.vcproj | 2416 +++ .../gui/ImageListBox/ImageListBoxDlg.cpp | 272 + .../gui/ImageListBox/ImageListBoxDlg.h | 77 + .../gui/ImageListBox/ImageListBoxInfo.rtf | 89 + .../samples/gui/ImageListBox/ReadMe.txt | 88 + .../samples/gui/ImageListBox/StdAfx.cpp | 8 + .../samples/gui/ImageListBox/StdAfx.h | 27 + .../gui/ImageListBox/res/ImageListBox.ico | Bin 0 -> 22798 bytes .../gui/ImageListBox/res/ImageListBox.rc2 | 13 + .../gui/ImageListBox/res/il_default.bmp | Bin 0 -> 8310 bytes .../samples/gui/ImageListBox/resource.h | 31 + .../samples/gui/IntelliMouse/CustomizeDlg.cpp | 165 + .../samples/gui/IntelliMouse/CustomizeDlg.h | 68 + .../samples/gui/IntelliMouse/IMouseReadMe.txt | 334 + .../gui/IntelliMouse/IMouseReadMeU.txt | Bin 0 -> 105002 bytes .../IntelliMouseInfo.exe.manifest | 22 + .../gui/IntelliMouse/IntelliMouseInfo.rtf | 63 + .../samples/gui/IntelliMouse/MultiPad.rc | 643 + .../samples/gui/IntelliMouse/Multipad.cpp | 702 + .../samples/gui/IntelliMouse/WorkspaceDlg.cpp | 53 + .../samples/gui/IntelliMouse/WorkspaceDlg.h | 47 + .../samples/gui/IntelliMouse/multipad.dsp | 476 + .../samples/gui/IntelliMouse/multipad.dsw | 33 + .../samples/gui/IntelliMouse/multipad.h | 173 + .../gui/IntelliMouse/res/intellitarget.bmp | Bin 0 -> 630 bytes .../samples/gui/IntelliMouse/res/multipad.ico | Bin 0 -> 22798 bytes .../samples/gui/IntelliMouse/res/paddoc.ico | Bin 0 -> 766 bytes .../samples/gui/IntelliMouse/res/scrl_all.cur | Bin 0 -> 326 bytes .../gui/IntelliMouse/res/scrl_bottomleft.cur | Bin 0 -> 326 bytes .../gui/IntelliMouse/res/scrl_bottomright.cur | Bin 0 -> 326 bytes .../gui/IntelliMouse/res/scrl_down.cur | Bin 0 -> 326 bytes .../gui/IntelliMouse/res/scrl_left.cur | Bin 0 -> 326 bytes .../gui/IntelliMouse/res/scrl_leftright.cur | Bin 0 -> 326 bytes .../gui/IntelliMouse/res/scrl_right.cur | Bin 0 -> 326 bytes .../gui/IntelliMouse/res/scrl_topbottom.cur | Bin 0 -> 326 bytes .../gui/IntelliMouse/res/scrl_topleft.cur | Bin 0 -> 326 bytes .../gui/IntelliMouse/res/scrl_topright.cur | Bin 0 -> 326 bytes .../samples/gui/IntelliMouse/res/scrl_up.cur | Bin 0 -> 326 bytes .../gui/IntelliMouse/res/toolbar_edit.bmp | Bin 0 -> 886 bytes .../gui/IntelliMouse/res/toolbar_edit_hot.bmp | Bin 0 -> 886 bytes .../gui/IntelliMouse/res/toolbar_file.bmp | Bin 0 -> 1014 bytes .../gui/IntelliMouse/res/toolbar_file_hot.bmp | Bin 0 -> 1014 bytes .../gui/IntelliMouse/res/toolbar_window.bmp | Bin 0 -> 502 bytes .../IntelliMouse/res/toolbar_window_hot.bmp | Bin 0 -> 502 bytes .../samples/gui/IntelliMouse/resource.h | 50 + .../samples/gui/IntelliMouse/stdafx.cpp | 15 + .../samples/gui/IntelliMouse/stdafx.h | 20 + .../samples/gui/IntelliMouse/unicode.utf | Bin 0 -> 6204 bytes .../samples/gui/ItemTips/AllListPropSht.cpp | 115 + .../samples/gui/ItemTips/AllListPropSht.h | 51 + .../samples/gui/ItemTips/DerivedDlg.cpp | 253 + .../samples/gui/ItemTips/DerivedDlg.h | 74 + .../samples/gui/ItemTips/ItemTips.clw | 85 + .../samples/gui/ItemTips/ItemTips.cpp | 84 + .../samples/gui/ItemTips/ItemTips.dsp | 313 + .../samples/gui/ItemTips/ItemTips.dsw | 33 + .../gui/ItemTips/ItemTips.exe.manifest | 22 + .../samples/gui/ItemTips/ItemTips.h | 59 + .../samples/gui/ItemTips/ItemTips.rc | 222 + .../samples/gui/ItemTips/ItemTips.vcproj | 1153 + .../samples/gui/ItemTips/ItemTipsInfo.rtf | Bin 0 -> 3535 bytes .../samples/gui/ItemTips/MyListCtrl.cpp | 126 + .../samples/gui/ItemTips/MyListCtrl.h | 56 + .../samples/gui/ItemTips/ReadMe.txt | 81 + .../samples/gui/ItemTips/StandardDlg.cpp | 327 + .../samples/gui/ItemTips/StandardDlg.h | 78 + .../samples/gui/ItemTips/StdAfx.cpp | 6 + .../samples/gui/ItemTips/StdAfx.h | 25 + .../samples/gui/ItemTips/res/ItemTips.ico | Bin 0 -> 22798 bytes .../samples/gui/ItemTips/res/ItemTips.rc2 | 13 + .../samples/gui/ItemTips/res/icon1.ico | Bin 0 -> 7398 bytes .../samples/gui/ItemTips/res/icon2.ico | Bin 0 -> 7398 bytes .../samples/gui/ItemTips/res/icon3.ico | Bin 0 -> 7398 bytes .../samples/gui/ItemTips/res/icon4.ico | Bin 0 -> 7398 bytes .../samples/gui/ItemTips/resource.h | 34 + .../samples/gui/Layout/ChildFrm.cpp | 65 + .../samples/gui/Layout/ChildFrm.h | 52 + .../samples/gui/Layout/Layout.clw | 189 + .../samples/gui/Layout/Layout.cpp | 157 + .../samples/gui/Layout/Layout.dsp | 321 + .../samples/gui/Layout/Layout.dsw | 33 + .../samples/gui/Layout/Layout.exe.manifest | 22 + .../samples/gui/Layout/Layout.h | 51 + .../samples/gui/Layout/Layout.rc | 521 + .../samples/gui/Layout/Layout.rtf | Bin 0 -> 1400 bytes .../samples/gui/Layout/Layout.vcproj | 1208 ++ .../samples/gui/Layout/LayoutDoc.cpp | 84 + .../samples/gui/Layout/LayoutDoc.h | 57 + .../samples/gui/Layout/LayoutView.cpp | 258 + .../samples/gui/Layout/LayoutView.h | 81 + .../samples/gui/Layout/MainFrm.cpp | 128 + .../samples/gui/Layout/MainFrm.h | 75 + .../samples/gui/Layout/ReadMe.txt | 102 + .../samples/gui/Layout/ResizingDialog.cpp | 120 + .../samples/gui/Layout/ResizingDialog.h | 49 + .../samples/gui/Layout/ResizingPropPage.cpp | 191 + .../samples/gui/Layout/ResizingPropPage.h | 91 + .../samples/gui/Layout/ResizingPropSheet.cpp | 167 + .../samples/gui/Layout/ResizingPropSheet.h | 61 + .../samples/gui/Layout/StdAfx.cpp | 6 + .../samples/gui/Layout/StdAfx.h | 26 + .../samples/gui/Layout/res/Layout.ico | Bin 0 -> 22798 bytes .../samples/gui/Layout/res/Layout.rc2 | 13 + .../samples/gui/Layout/res/LayoutDoc.ico | Bin 0 -> 1078 bytes .../samples/gui/Layout/res/Toolbar.bmp | Bin 0 -> 718 bytes .../samples/gui/Layout/resource.h | 39 + .../samples/gui/LayoutManager/DlgDemo.cpp | 162 + .../samples/gui/LayoutManager/DlgDemo.h | 42 + .../gui/LayoutManager/LayoutManager.clw | 77 + .../gui/LayoutManager/LayoutManager.cpp | 109 + .../gui/LayoutManager/LayoutManager.dsp | 285 + .../gui/LayoutManager/LayoutManager.dsw | 33 + .../LayoutManager/LayoutManager.exe.manifest | 22 + .../samples/gui/LayoutManager/LayoutManager.h | 37 + .../gui/LayoutManager/LayoutManager.rc | 227 + .../gui/LayoutManager/LayoutManager.vcproj | 1038 + .../gui/LayoutManager/LayoutManagerDoc.cpp | 73 + .../gui/LayoutManager/LayoutManagerDoc.h | 43 + .../gui/LayoutManager/LayoutManagerInfo.rtf | Bin 0 -> 1356 bytes .../gui/LayoutManager/LayoutManagerView.cpp | 104 + .../gui/LayoutManager/LayoutManagerView.h | 56 + .../samples/gui/LayoutManager/MainFrm.cpp | 58 + .../samples/gui/LayoutManager/MainFrm.h | 38 + .../samples/gui/LayoutManager/StdAfx.cpp | 6 + .../samples/gui/LayoutManager/StdAfx.h | 17 + .../gui/LayoutManager/res/LayoutManager.ico | Bin 0 -> 22798 bytes .../gui/LayoutManager/res/LayoutManager.rc2 | 13 + .../LayoutManager/res/LayoutManagerDoc.ico | Bin 0 -> 1078 bytes .../samples/gui/LayoutManager/res/Toolbar.bmp | Bin 0 -> 1078 bytes .../samples/gui/LayoutManager/res/icon1.ico | Bin 0 -> 22798 bytes .../samples/gui/LayoutManager/res/icon2.ico | Bin 0 -> 1078 bytes .../samples/gui/LayoutManager/resource.h | 32 + .../gui/MonthCalendar/MonthCalendar.clw | 143 + .../gui/MonthCalendar/MonthCalendar.cpp | 102 + .../gui/MonthCalendar/MonthCalendar.dsp | 300 + .../gui/MonthCalendar/MonthCalendar.dsw | 33 + .../MonthCalendar/MonthCalendar.exe.manifest | 22 + .../samples/gui/MonthCalendar/MonthCalendar.h | 50 + .../gui/MonthCalendar/MonthCalendar.rc | 250 + .../gui/MonthCalendar/MonthCalendar.vcproj | 1186 ++ .../gui/MonthCalendar/MonthCalendarDlg.cpp | 575 + .../gui/MonthCalendar/MonthCalendarDlg.h | 101 + .../gui/MonthCalendar/MonthCalendarInfo.rtf | 54 + .../samples/gui/MonthCalendar/StdAfx.cpp | 6 + .../samples/gui/MonthCalendar/StdAfx.h | 25 + .../gui/MonthCalendar/res/MonthCalendar.ico | Bin 0 -> 22798 bytes .../gui/MonthCalendar/res/MonthCalendar.rc2 | 13 + .../samples/gui/MonthCalendar/resource.h | 49 + .../samples/gui/MultiCombo/CMCombo.cpp | 52 + .../samples/gui/MultiCombo/CMCombo.h | 41 + .../samples/gui/MultiCombo/ComboLBox.cpp | 16 + .../samples/gui/MultiCombo/ComboLBox.h | 8 + .../samples/gui/MultiCombo/MCombo.clw | 110 + .../samples/gui/MultiCombo/MCombo.cpp | 100 + .../samples/gui/MultiCombo/MCombo.dsp | 257 + .../samples/gui/MultiCombo/MCombo.dsw | 33 + .../gui/MultiCombo/MCombo.exe.manifest | 22 + .../samples/gui/MultiCombo/MCombo.h | 38 + .../samples/gui/MultiCombo/MCombo.rc | 258 + .../samples/gui/MultiCombo/MCombo.vcproj | 875 + .../samples/gui/MultiCombo/MComboDlg.cpp | 341 + .../samples/gui/MultiCombo/MComboDlg.h | 79 + .../samples/gui/MultiCombo/StdAfx.cpp | 6 + .../samples/gui/MultiCombo/StdAfx.h | 17 + .../samples/gui/MultiCombo/mcomboinfo.rtf | Bin 0 -> 1206 bytes .../samples/gui/MultiCombo/res/MCombo.ico | Bin 0 -> 22798 bytes .../samples/gui/MultiCombo/res/MCombo.rc2 | 13 + .../samples/gui/MultiCombo/resource.h | 58 + .../samples/gui/NOTE/Mainfrm.cpp | 92 + .../samples/gui/NOTE/Mainfrm.h | 44 + .../samples/gui/NOTE/NOTE.CPP | 122 + .../Ultimate Toolbox/samples/gui/NOTE/NOTE.H | 39 + .../samples/gui/NOTE/NOTEDOC.H | 44 + .../samples/gui/NOTE/NOTEWND.CPP | 208 + .../samples/gui/NOTE/NOTEWND.H | 59 + .../samples/gui/NOTE/Note.dsp | 281 + .../samples/gui/NOTE/Note.dsw | 33 + .../samples/gui/NOTE/Note.exe.manifest | 22 + .../samples/gui/NOTE/Note.vcproj | 1034 + .../samples/gui/NOTE/NoteInfo.rtf | Bin 0 -> 1359 bytes .../samples/gui/NOTE/Notedoc.cpp | 82 + .../samples/gui/NOTE/Noteview.cpp | 105 + .../samples/gui/NOTE/Noteview.h | 56 + .../samples/gui/NOTE/STDAFX.CPP | 6 + .../samples/gui/NOTE/Stdafx.h | 17 + .../samples/gui/NOTE/note.clw | 145 + .../Ultimate Toolbox/samples/gui/NOTE/note.rc | 266 + .../samples/gui/NOTE/res/NOTE.ICO | Bin 0 -> 22798 bytes .../samples/gui/NOTE/res/NOTE.RC2 | 13 + .../samples/gui/NOTE/res/NOTEDOC.ICO | Bin 0 -> 1078 bytes .../samples/gui/NOTE/res/TOOLBAR.BMP | Bin 0 -> 1078 bytes .../samples/gui/NOTE/resource.h | 21 + .../samples/gui/NetBrowse/NetBrowse.clw | 73 + .../samples/gui/NetBrowse/NetBrowse.cpp | 99 + .../samples/gui/NetBrowse/NetBrowse.dsp | 253 + .../samples/gui/NetBrowse/NetBrowse.dsw | 33 + .../gui/NetBrowse/NetBrowse.exe.manifest | 22 + .../samples/gui/NetBrowse/NetBrowse.h | 38 + .../samples/gui/NetBrowse/NetBrowse.rc | 229 + .../samples/gui/NetBrowse/NetBrowse.vcproj | 871 + .../samples/gui/NetBrowse/NetBrowseDlg.cpp | 398 + .../samples/gui/NetBrowse/NetBrowseDlg.h | 110 + .../samples/gui/NetBrowse/StdAfx.cpp | 6 + .../samples/gui/NetBrowse/StdAfx.h | 14 + .../samples/gui/NetBrowse/netbrowseinfo.rtf | Bin 0 -> 2162 bytes .../samples/gui/NetBrowse/res/NetBrowse.ico | Bin 0 -> 22798 bytes .../samples/gui/NetBrowse/res/NetBrowse.rc2 | 13 + .../gui/NetBrowse/res/OXNetBrowseTreeImg.bmp | Bin 0 -> 3238 bytes .../samples/gui/NetBrowse/resource.h | 40 + .../samples/gui/Notes/ChildFrm.cpp | 70 + .../samples/gui/Notes/ChildFrm.h | 53 + .../samples/gui/Notes/MainFrm.cpp | 107 + .../samples/gui/Notes/MainFrm.h | 57 + .../samples/gui/Notes/Notes.clw | 145 + .../samples/gui/Notes/Notes.cpp | 163 + .../samples/gui/Notes/Notes.dsp | 274 + .../samples/gui/Notes/Notes.dsw | 33 + .../samples/gui/Notes/Notes.exe.manifest | 22 + .../samples/gui/Notes/Notes.h | 49 + .../samples/gui/Notes/Notes.rc | 428 + .../samples/gui/Notes/Notes.vcproj | 988 + .../samples/gui/Notes/NotesDoc.cpp | 84 + .../samples/gui/Notes/NotesDoc.h | 57 + .../samples/gui/Notes/NotesView.cpp | 124 + .../samples/gui/Notes/NotesView.h | 76 + .../samples/gui/Notes/ReadMe.txt | 117 + .../samples/gui/Notes/StdAfx.cpp | 8 + .../samples/gui/Notes/StdAfx.h | 27 + .../samples/gui/Notes/res/Notes.ico | Bin 0 -> 22798 bytes .../samples/gui/Notes/res/Notes.rc2 | 13 + .../samples/gui/Notes/res/NotesDoc.ico | Bin 0 -> 1078 bytes .../samples/gui/Notes/res/Toolbar.bmp | Bin 0 -> 1078 bytes .../samples/gui/Notes/resource.h | 19 + .../gui/OXCalendarDemo1/CalDemoInfo.rtf | Bin 0 -> 1351 bytes .../gui/OXCalendarDemo1/OXCalendarDemo1.clw | 67 + .../gui/OXCalendarDemo1/OXCalendarDemo1.cpp | 93 + .../gui/OXCalendarDemo1/OXCalendarDemo1.dsp | 273 + .../gui/OXCalendarDemo1/OXCalendarDemo1.dsw | 33 + .../OXCalendarDemo1.exe.manifest | 22 + .../gui/OXCalendarDemo1/OXCalendarDemo1.h | 50 + .../gui/OXCalendarDemo1/OXCalendarDemo1.rc | 204 + .../OXCalendarDemo1/OXCalendarDemo1.vcproj | 934 + .../OXCalendarDemo1/OXCalendarDemo1Dlg.cpp | 146 + .../gui/OXCalendarDemo1/OXCalendarDemo1Dlg.h | 52 + .../samples/gui/OXCalendarDemo1/ReadMe.txt | 81 + .../samples/gui/OXCalendarDemo1/StdAfx.cpp | 6 + .../samples/gui/OXCalendarDemo1/StdAfx.h | 26 + .../OXCalendarDemo1/res/OXCalendarDemo1.ico | Bin 0 -> 22798 bytes .../OXCalendarDemo1/res/OXCalendarDemo1.rc2 | 13 + .../gui/OXCalendarDemo1/res/bitmap1.bmp | Bin 0 -> 726 bytes .../samples/gui/OXCalendarDemo1/resource.h | 29 + .../samples/gui/OptionTree/OptionTree.clw | 75 + .../samples/gui/OptionTree/OptionTree.cpp | 91 + .../samples/gui/OptionTree/OptionTree.dsp | 298 + .../samples/gui/OptionTree/OptionTree.dsw | 33 + .../gui/OptionTree/OptionTree.exe.manifest | 22 + .../samples/gui/OptionTree/OptionTree.h | 50 + .../samples/gui/OptionTree/OptionTree.rc | 214 + .../samples/gui/OptionTree/OptionTree.vcproj | 1011 + .../gui/OptionTree/OptionTreeCtrlInfo.rtf | 94 + .../samples/gui/OptionTree/OptionTreeDlg.cpp | 212 + .../samples/gui/OptionTree/OptionTreeDlg.h | 59 + .../samples/gui/OptionTree/ReadMe.txt | 88 + .../samples/gui/OptionTree/StdAfx.cpp | 8 + .../samples/gui/OptionTree/StdAfx.h | 25 + .../samples/gui/OptionTree/res/B_check.bmp | Bin 0 -> 246 bytes .../samples/gui/OptionTree/res/B_cookie.bmp | Bin 0 -> 246 bytes .../samples/gui/OptionTree/res/B_radio.bmp | Bin 0 -> 246 bytes .../samples/gui/OptionTree/res/OptionTree.ico | Bin 0 -> 22798 bytes .../samples/gui/OptionTree/res/OptionTree.rc2 | 13 + .../samples/gui/OptionTree/resource.h | 26 + .../samples/gui/PhysicalTest/PhysicalTest.clw | 68 + .../samples/gui/PhysicalTest/PhysicalTest.cpp | 100 + .../samples/gui/PhysicalTest/PhysicalTest.dsp | 307 + .../samples/gui/PhysicalTest/PhysicalTest.dsw | 29 + .../PhysicalTest/PhysicalTest.exe.manifest | 22 + .../samples/gui/PhysicalTest/PhysicalTest.h | 38 + .../samples/gui/PhysicalTest/PhysicalTest.rc | 213 + .../gui/PhysicalTest/PhysicalTest.vcproj | 1044 + .../gui/PhysicalTest/PhysicalTestDlg.cpp | 227 + .../gui/PhysicalTest/PhysicalTestDlg.h | 62 + .../samples/gui/PhysicalTest/StdAfx.cpp | 6 + .../samples/gui/PhysicalTest/StdAfx.h | 16 + .../gui/PhysicalTest/physicalTestInfo.rtf | Bin 0 -> 2082 bytes .../gui/PhysicalTest/res/PhysicalTest.ico | Bin 0 -> 22798 bytes .../gui/PhysicalTest/res/PhysicalTest.rc2 | 13 + .../samples/gui/PhysicalTest/resource.h | 37 + .../samples/gui/PopupBar/BorderPickerCtrl.cpp | 136 + .../samples/gui/PopupBar/BorderPickerCtrl.h | 105 + .../samples/gui/PopupBar/ChildFrm.cpp | 162 + .../samples/gui/PopupBar/ChildFrm.h | 63 + .../gui/PopupBar/DashStylePickerCtrl.cpp | 167 + .../gui/PopupBar/DashStylePickerCtrl.h | 86 + .../gui/PopupBar/LineStylePickerCtrl.cpp | 228 + .../gui/PopupBar/LineStylePickerCtrl.h | 89 + .../samples/gui/PopupBar/MainFrm.cpp | 512 + .../samples/gui/PopupBar/MainFrm.h | 82 + .../samples/gui/PopupBar/PopupBar.clw | 289 + .../samples/gui/PopupBar/PopupBar.cpp | 145 + .../samples/gui/PopupBar/PopupBar.dsp | 452 + .../samples/gui/PopupBar/PopupBar.dsw | 33 + .../gui/PopupBar/PopupBar.exe.manifest | 22 + .../samples/gui/PopupBar/PopupBar.h | 51 + .../samples/gui/PopupBar/PopupBar.rc | 516 + .../samples/gui/PopupBar/PopupBar.reg | 14 + .../samples/gui/PopupBar/PopupBar.vcproj | 2464 +++ .../samples/gui/PopupBar/PopupBarDoc.cpp | 140 + .../samples/gui/PopupBar/PopupBarDoc.h | 96 + .../samples/gui/PopupBar/PopupBarInfo.rtf | 57 + .../samples/gui/PopupBar/PopupBarView.cpp | 831 + .../samples/gui/PopupBar/PopupBarView.h | 83 + .../samples/gui/PopupBar/ReadMe.txt | 108 + .../samples/gui/PopupBar/Square.sqr | Bin 0 -> 24 bytes .../samples/gui/PopupBar/SquareNew.sqr | Bin 0 -> 24 bytes .../samples/gui/PopupBar/StdAfx.cpp | 6 + .../samples/gui/PopupBar/StdAfx.h | 27 + .../samples/gui/PopupBar/res/PopupBar.ico | Bin 0 -> 22798 bytes .../samples/gui/PopupBar/res/PopupBar.rc2 | 13 + .../samples/gui/PopupBar/res/PopupBarDoc.ico | Bin 0 -> 1078 bytes .../samples/gui/PopupBar/res/Toolbar.bmp | Bin 0 -> 838 bytes .../samples/gui/PopupBar/res/bitmap1.bmp | Bin 0 -> 1318 bytes .../samples/gui/PopupBar/res/bmp00001.bmp | Bin 0 -> 838 bytes .../samples/gui/PopupBar/res/bmp00002.bmp | Bin 0 -> 1270 bytes .../samples/gui/PopupBar/res/toolbar1.bmp | Bin 0 -> 598 bytes .../samples/gui/PopupBar/resource.h | 51 + .../samples/gui/RoundedButton/ReadMe.txt | 88 + .../gui/RoundedButton/RoundedButton.clw | 117 + .../gui/RoundedButton/RoundedButton.cpp | 86 + .../gui/RoundedButton/RoundedButton.dsp | 357 + .../gui/RoundedButton/RoundedButton.dsw | 33 + .../RoundedButton/RoundedButton.exe.manifest | 22 + .../samples/gui/RoundedButton/RoundedButton.h | 50 + .../gui/RoundedButton/RoundedButton.rc | 279 + .../gui/RoundedButton/RoundedButton.vcproj | 1382 ++ .../gui/RoundedButton/RoundedButtonDlg.cpp | 166 + .../gui/RoundedButton/RoundedButtonDlg.h | 79 + .../gui/RoundedButton/RoundedButtonInfo.rtf | 59 + .../RoundedButton/RoundedButtonSamplesDlg.cpp | 247 + .../RoundedButton/RoundedButtonSamplesDlg.h | 87 + .../gui/RoundedButton/RoundedButtonSht.cpp | 116 + .../gui/RoundedButton/RoundedButtonSht.h | 52 + .../samples/gui/RoundedButton/StdAfx.cpp | 8 + .../samples/gui/RoundedButton/StdAfx.h | 25 + .../samples/gui/RoundedButton/res/3rings.ico | Bin 0 -> 2238 bytes .../gui/RoundedButton/res/RoundedButton.ico | Bin 0 -> 22798 bytes .../gui/RoundedButton/res/RoundedButton.rc2 | 13 + .../gui/RoundedButton/res/arrow_down.ico | Bin 0 -> 2238 bytes .../gui/RoundedButton/res/arrow_leftright.ico | Bin 0 -> 2238 bytes .../gui/RoundedButton/res/arrow_up.ico | Bin 0 -> 2238 bytes .../gui/RoundedButton/res/arrow_updown.ico | Bin 0 -> 2238 bytes .../samples/gui/RoundedButton/res/audio.ico | Bin 0 -> 2238 bytes .../samples/gui/RoundedButton/res/ball.ico | Bin 0 -> 766 bytes .../samples/gui/RoundedButton/res/bomb.ico | Bin 0 -> 2998 bytes .../samples/gui/RoundedButton/res/book.ico | Bin 0 -> 3774 bytes .../gui/RoundedButton/res/bookshelf.ico | Bin 0 -> 3774 bytes .../gui/RoundedButton/res/calendar.ico | Bin 0 -> 2998 bytes .../gui/RoundedButton/res/check_cross.ico | Bin 0 -> 2174 bytes .../gui/RoundedButton/res/check_mark.ico | Bin 0 -> 2166 bytes .../gui/RoundedButton/res/checkbox.ico | Bin 0 -> 2238 bytes .../samples/gui/RoundedButton/res/clock.ico | Bin 0 -> 2246 bytes .../gui/RoundedButton/res/crossbones.ico | Bin 0 -> 2238 bytes .../gui/RoundedButton/res/date_time.ico | Bin 0 -> 2998 bytes .../gui/RoundedButton/res/documents.ico | Bin 0 -> 2238 bytes .../samples/gui/RoundedButton/res/earth.ico | Bin 0 -> 766 bytes .../gui/RoundedButton/res/essential_file.ico | Bin 0 -> 3686 bytes .../gui/RoundedButton/res/exclamation.ico | Bin 0 -> 766 bytes .../gui/RoundedButton/res/extinguisher.ico | Bin 0 -> 2238 bytes .../samples/gui/RoundedButton/res/files.ico | Bin 0 -> 2238 bytes .../samples/gui/RoundedButton/res/gears.ico | Bin 0 -> 8198 bytes .../samples/gui/RoundedButton/res/globe.ico | Bin 0 -> 2238 bytes .../samples/gui/RoundedButton/res/graph.ico | Bin 0 -> 766 bytes .../samples/gui/RoundedButton/res/icon1.ico | Bin 0 -> 1078 bytes .../gui/RoundedButton/res/icon_off.ico | Bin 0 -> 1078 bytes .../gui/RoundedButton/res/important_files.ico | Bin 0 -> 3686 bytes .../samples/gui/RoundedButton/res/info.ico | Bin 0 -> 766 bytes .../samples/gui/RoundedButton/res/jupiter.ico | Bin 0 -> 2238 bytes .../samples/gui/RoundedButton/res/leak.ico | Bin 0 -> 6006 bytes .../samples/gui/RoundedButton/res/letter.ico | Bin 0 -> 766 bytes .../gui/RoundedButton/res/lightning.ico | Bin 0 -> 766 bytes .../samples/gui/RoundedButton/res/links.ico | Bin 0 -> 2238 bytes .../samples/gui/RoundedButton/res/moon.ico | Bin 0 -> 2238 bytes .../samples/gui/RoundedButton/res/note.ico | Bin 0 -> 2238 bytes .../gui/RoundedButton/res/organizer.ico | Bin 0 -> 2238 bytes .../gui/RoundedButton/res/pie_graph.ico | Bin 0 -> 766 bytes .../samples/gui/RoundedButton/res/plugged.ico | Bin 0 -> 2238 bytes .../gui/RoundedButton/res/production.ico | Bin 0 -> 2238 bytes .../gui/RoundedButton/res/question.ico | Bin 0 -> 766 bytes .../gui/RoundedButton/res/security.ico | Bin 0 -> 3006 bytes .../samples/gui/RoundedButton/res/shield.ico | Bin 0 -> 2238 bytes .../samples/gui/RoundedButton/res/sphere.ico | Bin 0 -> 2238 bytes .../samples/gui/RoundedButton/res/spiral.ico | Bin 0 -> 2238 bytes .../samples/gui/RoundedButton/res/stop.ico | Bin 0 -> 2238 bytes .../samples/gui/RoundedButton/res/sun.ico | Bin 0 -> 2238 bytes .../gui/RoundedButton/res/toilet_paper.ico | Bin 0 -> 2238 bytes .../samples/gui/RoundedButton/res/tools.ico | Bin 0 -> 8198 bytes .../gui/RoundedButton/res/traffic_lights.ico | Bin 0 -> 774 bytes .../samples/gui/RoundedButton/res/yenyang.ico | Bin 0 -> 2238 bytes .../samples/gui/RoundedButton/res/yield.ico | Bin 0 -> 2238 bytes .../samples/gui/RoundedButton/res/zoom.ico | Bin 0 -> 2238 bytes .../samples/gui/RoundedButton/resource.h | 79 + .../samples/gui/RulerBar/ChildFrm.cpp | 70 + .../samples/gui/RulerBar/ChildFrm.h | 53 + .../gui/RulerBar/CustomizeRulersDlg.cpp | 58 + .../samples/gui/RulerBar/CustomizeRulersDlg.h | 49 + .../samples/gui/RulerBar/MainFrm.cpp | 143 + .../samples/gui/RulerBar/MainFrm.h | 63 + .../samples/gui/RulerBar/ReadMe.txt | 123 + .../samples/gui/RulerBar/RulerBar.clw | 159 + .../samples/gui/RulerBar/RulerBar.cpp | 146 + .../samples/gui/RulerBar/RulerBar.dsp | 412 + .../samples/gui/RulerBar/RulerBar.dsw | 33 + .../gui/RulerBar/RulerBar.exe.manifest | 22 + .../samples/gui/RulerBar/RulerBar.h | 50 + .../samples/gui/RulerBar/RulerBar.rc | 454 + .../samples/gui/RulerBar/RulerBar.reg | 14 + .../samples/gui/RulerBar/RulerBar.vcproj | 2338 +++ .../samples/gui/RulerBar/RulerBarDoc.cpp | 78 + .../samples/gui/RulerBar/RulerBarDoc.h | 57 + .../samples/gui/RulerBar/RulerBarInfo.rtf | 108 + .../samples/gui/RulerBar/RulerBarView.cpp | 195 + .../samples/gui/RulerBar/RulerBarView.h | 74 + .../samples/gui/RulerBar/StdAfx.cpp | 8 + .../samples/gui/RulerBar/StdAfx.h | 26 + .../samples/gui/RulerBar/res/RulerBar.ico | Bin 0 -> 22798 bytes .../samples/gui/RulerBar/res/RulerBar.rc2 | 13 + .../samples/gui/RulerBar/res/RulerBarDoc.ico | Bin 0 -> 1078 bytes .../samples/gui/RulerBar/res/Toolbar.bmp | Bin 0 -> 1078 bytes .../samples/gui/RulerBar/resource.h | 26 + .../samples/gui/Separator/ReadMe.txt | 81 + .../samples/gui/Separator/Separator.clw | 57 + .../samples/gui/Separator/Separator.cpp | 91 + .../samples/gui/Separator/Separator.dsp | 261 + .../samples/gui/Separator/Separator.dsw | 33 + .../gui/Separator/Separator.exe.manifest | 22 + .../samples/gui/Separator/Separator.h | 50 + .../samples/gui/Separator/Separator.rc | 201 + .../samples/gui/Separator/Separator.vcproj | 876 + .../samples/gui/Separator/SeparatorDlg.cpp | 173 + .../samples/gui/Separator/SeparatorDlg.h | 62 + .../samples/gui/Separator/SeparatorInfo.rtf | Bin 0 -> 2766 bytes .../samples/gui/Separator/StdAfx.cpp | 6 + .../samples/gui/Separator/StdAfx.h | 25 + .../samples/gui/Separator/res/Separator.ico | Bin 0 -> 22798 bytes .../samples/gui/Separator/res/Separator.rc2 | 13 + .../samples/gui/Separator/resource.h | 32 + .../samples/gui/Shortcutbar/ReadMe.txt | 81 + .../gui/Shortcutbar/SHBPropertiesDlg.cpp | 281 + .../gui/Shortcutbar/SHBPropertiesDlg.h | 82 + .../samples/gui/Shortcutbar/ShortcutBar.clw | 206 + .../samples/gui/Shortcutbar/ShortcutBar.cpp | 108 + .../samples/gui/Shortcutbar/ShortcutBar.dsp | 404 + .../samples/gui/Shortcutbar/ShortcutBar.dsw | 33 + .../gui/Shortcutbar/ShortcutBar.exe.manifest | 22 + .../samples/gui/Shortcutbar/ShortcutBar.h | 50 + .../samples/gui/Shortcutbar/ShortcutBar.rc | 314 + .../gui/Shortcutbar/ShortcutBar.vcproj | 2371 +++ .../gui/Shortcutbar/ShortcutBarDlg.cpp | 974 + .../samples/gui/Shortcutbar/ShortcutBarDlg.h | 135 + .../gui/Shortcutbar/ShortcutBarInfo.rtf | Bin 0 -> 1576 bytes .../samples/gui/Shortcutbar/StdAfx.cpp | 6 + .../samples/gui/Shortcutbar/StdAfx.h | 27 + .../gui/Shortcutbar/res/ShortcutBar.ico | Bin 0 -> 22798 bytes .../gui/Shortcutbar/res/ShortcutBar.rc2 | 13 + .../gui/Shortcutbar/res/TreeImages.bmp | Bin 0 -> 1142 bytes .../samples/gui/Shortcutbar/res/large.bmp | Bin 0 -> 5750 bytes .../samples/gui/Shortcutbar/res/small.bmp | Bin 0 -> 1526 bytes .../samples/gui/Shortcutbar/resource.h | 66 + .../gui/SideBySideToolbars/MainFrm.cpp | 143 + .../samples/gui/SideBySideToolbars/MainFrm.h | 63 + .../samples/gui/SideBySideToolbars/ReadMe.txt | 105 + .../SideBySideToolbars/SideBySideToolbars.cpp | 155 + .../SideBySideToolbars/SideBySideToolbars.dsp | 292 + .../SideBySideToolbars/SideBySideToolbars.dsw | 33 + .../SideBySideToolbars.exe.manifest | 22 + .../SideBySideToolbars/SideBySideToolbars.h | 49 + .../SideBySideToolbars/SideBySideToolbars.rc | 396 + .../SideBySideToolbars.vcproj | 964 + .../SideBySideToolbarsDoc.cpp | 84 + .../SideBySideToolbarsDoc.h | 57 + .../SideBySideToolbarsView.cpp | 104 + .../SideBySideToolbarsView.h | 67 + .../samples/gui/SideBySideToolbars/StdAfx.cpp | 8 + .../samples/gui/SideBySideToolbars/StdAfx.h | 27 + .../res/SideBySideToolbars.ico | Bin 0 -> 22798 bytes .../res/SideBySideToolbars.rc2 | 13 + .../res/SideBySideToolbarsDoc.ico | Bin 0 -> 1078 bytes .../gui/SideBySideToolbars/res/Toolbar.bmp | Bin 0 -> 1078 bytes .../gui/SideBySideToolbars/res/toolbar1.bmp | Bin 0 -> 598 bytes .../samples/gui/SideBySideToolbars/resource.h | 24 + .../samples/gui/StatBar/ChildFrm.cpp | 65 + .../samples/gui/StatBar/ChildFrm.h | 40 + .../samples/gui/StatBar/MainFrm.cpp | 201 + .../samples/gui/StatBar/MainFrm.h | 52 + .../samples/gui/StatBar/StatusarInfo.rtf | Bin 0 -> 2307 bytes .../samples/gui/StatBar/Statusbar.clw | 198 + .../samples/gui/StatBar/Statusbar.cpp | 130 + .../samples/gui/StatBar/Statusbar.dsp | 405 + .../samples/gui/StatBar/Statusbar.dsw | 33 + .../gui/StatBar/Statusbar.exe.manifest | 22 + .../samples/gui/StatBar/Statusbar.h | 39 + .../samples/gui/StatBar/Statusbar.rc | 435 + .../samples/gui/StatBar/Statusbar.vcproj | 2193 ++ .../samples/gui/StatBar/StatusbarDoc.cpp | 82 + .../samples/gui/StatBar/StatusbarDoc.h | 44 + .../samples/gui/StatBar/StatusbarView.cpp | 176 + .../samples/gui/StatBar/StatusbarView.h | 67 + .../samples/gui/StatBar/StdAfx.cpp | 6 + .../samples/gui/StatBar/StdAfx.h | 16 + .../samples/gui/StatBar/nodrop.cur | Bin 0 -> 326 bytes .../samples/gui/StatBar/res/GreenLight.bmp | Bin 0 -> 358 bytes .../samples/gui/StatBar/res/NEW_MAIL.BMP | Bin 0 -> 374 bytes .../samples/gui/StatBar/res/RedLight.bmp | Bin 0 -> 358 bytes .../samples/gui/StatBar/res/Statusbar.ico | Bin 0 -> 22798 bytes .../samples/gui/StatBar/res/Statusbar.rc2 | 13 + .../samples/gui/StatBar/res/StatusbarDoc.ico | Bin 0 -> 1078 bytes .../samples/gui/StatBar/res/Toolbar.bmp | Bin 0 -> 358 bytes .../samples/gui/StatBar/resource.h | 41 + .../StaticHyperLink/CustomizableStatic.cpp | 48 + .../gui/StaticHyperLink/CustomizableStatic.h | 50 + .../CustomizableStaticHyperLink.cpp | 48 + .../CustomizableStaticHyperLink.h | 50 + .../gui/StaticHyperLink/CustomizeSHLDlg.cpp | 273 + .../gui/StaticHyperLink/CustomizeSHLDlg.h | 76 + .../StaticHyperLink/CustomizeStaticDlg.cpp | 191 + .../gui/StaticHyperLink/CustomizeStaticDlg.h | 65 + .../gui/StaticHyperLink/StaticHyperLink.clw | 240 + .../gui/StaticHyperLink/StaticHyperLink.cpp | 91 + .../gui/StaticHyperLink/StaticHyperLink.dsp | 309 + .../gui/StaticHyperLink/StaticHyperLink.dsw | 33 + .../StaticHyperLink.exe.manifest | 22 + .../gui/StaticHyperLink/StaticHyperLink.h | 50 + .../gui/StaticHyperLink/StaticHyperLink.rc | 324 + .../StaticHyperLink/StaticHyperLink.vcproj | 1194 ++ .../StaticHyperLink/StaticHyperLinkDlg.cpp | 238 + .../gui/StaticHyperLink/StaticHyperLinkDlg.h | 67 + .../StaticHyperLink/StaticHyperLinkInfo.rtf | Bin 0 -> 4065 bytes .../samples/gui/StaticHyperLink/StdAfx.cpp | 6 + .../samples/gui/StaticHyperLink/StdAfx.h | 25 + .../StaticHyperLink/res/StaticHyperLink.ico | Bin 0 -> 22798 bytes .../StaticHyperLink/res/StaticHyperLink.rc2 | 13 + .../samples/gui/StaticHyperLink/resource.h | 54 + .../samples/gui/StaticText/AttrDialog.cpp | 191 + .../samples/gui/StaticText/AttrDialog.h | 87 + .../samples/gui/StaticText/StatText.clw | 246 + .../samples/gui/StaticText/StatText.cpp | 101 + .../gui/StaticText/StatText.exe.manifest | 22 + .../samples/gui/StaticText/StatText.h | 50 + .../samples/gui/StaticText/StatText.rc | 298 + .../samples/gui/StaticText/StatTextDlg.cpp | 444 + .../samples/gui/StaticText/StatTextDlg.h | 99 + .../samples/gui/StaticText/StaticText.dsp | 269 + .../samples/gui/StaticText/StaticText.dsw | 33 + .../samples/gui/StaticText/StaticText.vcproj | 977 + .../samples/gui/StaticText/StaticTextInfo.rtf | Bin 0 -> 2728 bytes .../samples/gui/StaticText/StdAfx.cpp | 6 + .../samples/gui/StaticText/StdAfx.h | 25 + .../samples/gui/StaticText/res/OXSpinHor.cur | Bin 0 -> 326 bytes .../samples/gui/StaticText/res/OXSpinVer.cur | Bin 0 -> 326 bytes .../samples/gui/StaticText/res/SpinHor.cur | Bin 0 -> 326 bytes .../samples/gui/StaticText/res/SpinVer.cur | Bin 0 -> 326 bytes .../samples/gui/StaticText/res/StatText.ico | Bin 0 -> 22798 bytes .../samples/gui/StaticText/res/StatText.rc2 | 13 + .../samples/gui/StaticText/resource.h | 84 + .../samples/gui/TabViews/ChildFrm.cpp | 104 + .../samples/gui/TabViews/ChildFrm.h | 61 + .../samples/gui/TabViews/HexView.cpp | 187 + .../samples/gui/TabViews/HexView.h | 64 + .../samples/gui/TabViews/MainFrm.cpp | 147 + .../samples/gui/TabViews/MainFrm.h | 74 + .../samples/gui/TabViews/MyFormView.cpp | 62 + .../samples/gui/TabViews/MyFormView.h | 65 + .../samples/gui/TabViews/ReadMe.txt | 102 + .../samples/gui/TabViews/StatisticsView.cpp | 181 + .../samples/gui/TabViews/StatisticsView.h | 69 + .../samples/gui/TabViews/StdAfx.cpp | 6 + .../samples/gui/TabViews/StdAfx.h | 26 + .../samples/gui/TabViews/TabViews.clw | 240 + .../samples/gui/TabViews/TabViews.cpp | 140 + .../samples/gui/TabViews/TabViews.dsp | 413 + .../samples/gui/TabViews/TabViews.dsw | 33 + .../gui/TabViews/TabViews.exe.manifest | 32 + .../samples/gui/TabViews/TabViews.h | 59 + .../samples/gui/TabViews/TabViews.rc | 438 + .../samples/gui/TabViews/TabViews.sln | 29 + .../samples/gui/TabViews/TabViews.vcproj | 2390 +++ .../gui/TabViews/TabViews.vcproj.vspscc | 10 + .../samples/gui/TabViews/TabViewsDoc.cpp | 94 + .../samples/gui/TabViews/TabViewsDoc.h | 59 + .../samples/gui/TabViews/TabViewsInfo.rtf | 106 + .../samples/gui/TabViews/TabViewsView.cpp | 106 + .../samples/gui/TabViews/TabViewsView.h | 68 + .../samples/gui/TabViews/res/TabViews.ico | Bin 0 -> 22798 bytes .../samples/gui/TabViews/res/TabViews.rc2 | 13 + .../samples/gui/TabViews/res/TabViewsDoc.ico | Bin 0 -> 1078 bytes .../samples/gui/TabViews/res/Toolbar.bmp | Bin 0 -> 1078 bytes .../samples/gui/TabViews/resource.h | 26 + .../samples/gui/TaskBarIcon/DemoTaskbarIcon.h | 25 + .../samples/gui/TaskBarIcon/StdAfx.cpp | 6 + .../samples/gui/TaskBarIcon/StdAfx.h | 16 + .../samples/gui/TaskBarIcon/Taskbar.clw | 73 + .../samples/gui/TaskBarIcon/Taskbar.cpp | 100 + .../samples/gui/TaskBarIcon/Taskbar.dsp | 269 + .../samples/gui/TaskBarIcon/Taskbar.dsw | 33 + .../gui/TaskBarIcon/Taskbar.exe.manifest | 22 + .../samples/gui/TaskBarIcon/Taskbar.h | 38 + .../samples/gui/TaskBarIcon/Taskbar.rc | 221 + .../samples/gui/TaskBarIcon/Taskbar.vcproj | 932 + .../samples/gui/TaskBarIcon/TaskbarDlg.cpp | 273 + .../samples/gui/TaskBarIcon/TaskbarDlg.h | 58 + .../gui/TaskBarIcon/demotaskbaricon.cpp | 80 + .../samples/gui/TaskBarIcon/res/Taskbar.ico | Bin 0 -> 22798 bytes .../samples/gui/TaskBarIcon/res/Taskbar.rc2 | 13 + .../samples/gui/TaskBarIcon/res/icon1.ico | Bin 0 -> 22798 bytes .../samples/gui/TaskBarIcon/res/idr_icon.ico | Bin 0 -> 22798 bytes .../samples/gui/TaskBarIcon/resource.h | 35 + .../samples/gui/TaskBarIcon/taskbarInfo.rtf | Bin 0 -> 1636 bytes .../samples/gui/ToolTipEx/ReadMe.txt | 81 + .../samples/gui/ToolTipEx/StdAfx.cpp | 6 + .../samples/gui/ToolTipEx/StdAfx.h | 26 + .../samples/gui/ToolTipEx/ToolTipEx.clw | 91 + .../samples/gui/ToolTipEx/ToolTipEx.cpp | 94 + .../samples/gui/ToolTipEx/ToolTipEx.dsp | 298 + .../samples/gui/ToolTipEx/ToolTipEx.dsw | 33 + .../gui/ToolTipEx/ToolTipEx.exe.manifest | 22 + .../samples/gui/ToolTipEx/ToolTipEx.h | 50 + .../samples/gui/ToolTipEx/ToolTipEx.rc | 236 + .../samples/gui/ToolTipEx/ToolTipEx.vcproj | 1230 ++ .../samples/gui/ToolTipEx/ToolTipExDlg.cpp | 294 + .../samples/gui/ToolTipEx/ToolTipExDlg.h | 74 + .../samples/gui/ToolTipEx/ToolTipExInfo.rtf | 121 + .../samples/gui/ToolTipEx/res/ToolTipEx.ico | Bin 0 -> 22798 bytes .../samples/gui/ToolTipEx/res/ToolTipEx.rc2 | 13 + .../samples/gui/ToolTipEx/resource.h | 34 + .../samples/gui/XPPanelDemo/XPPanelDemo.sln | 20 + .../XPPanelDemo/XPPanelDemo/XPPanelDemo.cpp | 78 + .../gui/XPPanelDemo/XPPanelDemo/XPPanelDemo.h | 31 + .../XPPanelDemo/XPPanelDemo/XPPanelDemo.rc | 220 + .../XPPanelDemo/XPPanelDemo.vcproj | 307 + .../XPPanelDemo/XPPanelDemoDlg.cpp | 212 + .../XPPanelDemo/XPPanelDemo/XPPanelDemoDlg.h | 33 + .../XPPanelDemo/res/XPPanelDemo.ico | Bin 0 -> 21630 bytes .../XPPanelDemo/res/XPPanelDemo.rc2 | 13 + .../gui/XPPanelDemo/XPPanelDemo/res/excel.ico | Bin 0 -> 1150 bytes .../gui/XPPanelDemo/XPPanelDemo/res/word.ico | Bin 0 -> 1150 bytes .../gui/XPPanelDemo/XPPanelDemo/resource.h | 25 + .../gui/XPPanelDemo/XPPanelDemo/stdafx.cpp | 7 + .../gui/XPPanelDemo/XPPanelDemo/stdafx.h | 73 + .../samples/gui/maskededit/MaskedEditTest.cpp | 68 + .../samples/gui/maskededit/MaskedEditTest.dsp | 249 + .../samples/gui/maskededit/MaskedEditTest.dsw | 29 + .../maskededit/MaskedEditTest.exe.manifest | 22 + .../samples/gui/maskededit/MaskedEditTest.h | 38 + .../samples/gui/maskededit/MaskedEditTest.ico | Bin 0 -> 22798 bytes .../gui/maskededit/MaskedEditTest.vcproj | 872 + .../gui/maskededit/MaskedEditTestDlg.cpp | 222 + .../gui/maskededit/MaskedEditTestDlg.h | 57 + .../gui/maskededit/MaskedEditTestInfo.rtf | Bin 0 -> 3463 bytes .../gui/maskededit/MaskedEditTestResource.clw | 49 + .../gui/maskededit/MaskedEditTestResource.h | 26 + .../gui/maskededit/MaskedEditTestResource.rc | 189 + .../samples/gui/maskededit/StdAfx.cpp | 6 + .../samples/gui/maskededit/StdAfx.h | 11 + .../samples/gui/preview/AGREE.WMF | Bin 0 -> 26454 bytes .../samples/gui/preview/ChildFrm.cpp | 65 + .../samples/gui/preview/ChildFrm.h | 40 + .../samples/gui/preview/Controls.icl | Bin 0 -> 27528 bytes .../samples/gui/preview/Firework.bmp | Bin 0 -> 130926 bytes .../samples/gui/preview/MainFrm.cpp | 91 + .../samples/gui/preview/MainFrm.h | 44 + .../samples/gui/preview/OXDocMgr.cpp | 113 + .../samples/gui/preview/OXDocMgr.h | 11 + .../samples/gui/preview/OXWinApp.H | 36 + .../samples/gui/preview/OXWinApp.cpp | 35 + .../samples/gui/preview/Preview.clw | 103 + .../samples/gui/preview/Preview.cpp | 150 + .../samples/gui/preview/Preview.dsp | 480 + .../samples/gui/preview/Preview.dsw | 33 + .../samples/gui/preview/Preview.exe.manifest | 22 + .../samples/gui/preview/Preview.h | 42 + .../samples/gui/preview/Preview.rc | 342 + .../samples/gui/preview/Preview.reg | 14 + .../samples/gui/preview/Preview.sln | 29 + .../samples/gui/preview/Preview.vcproj | 1762 ++ .../samples/gui/preview/Preview.vcproj.vspscc | 10 + .../samples/gui/preview/PreviewDoc.cpp | 82 + .../samples/gui/preview/PreviewDoc.h | 44 + .../samples/gui/preview/PreviewView.cpp | 91 + .../samples/gui/preview/PreviewView.h | 51 + .../samples/gui/preview/StdAfx.cpp | 6 + .../samples/gui/preview/StdAfx.h | 28 + .../samples/gui/preview/dog.jpg | Bin 0 -> 8202 bytes .../samples/gui/preview/headers.csv | 11 + .../samples/gui/preview/headers.xls | Bin 0 -> 13824 bytes .../samples/gui/preview/previewInfo.rtf | Bin 0 -> 2030 bytes .../samples/gui/preview/res/Preview.ico | Bin 0 -> 22798 bytes .../samples/gui/preview/res/Preview.rc2 | 13 + .../samples/gui/preview/res/PreviewDoc.ico | Bin 0 -> 1078 bytes .../samples/gui/preview/res/Toolbar.bmp | Bin 0 -> 1078 bytes .../samples/gui/preview/resource.h | 20 + .../samples/gui/rollup/EXAMPLE.CPP | 50 + .../samples/gui/rollup/EXAMPLE.H | 39 + .../samples/gui/rollup/MAXVIRTD.CPP | 73 + .../samples/gui/rollup/MAXVIRTD.H | 43 + .../samples/gui/rollup/Mainfrm.cpp | 141 + .../samples/gui/rollup/ROLL32.CLW | 131 + .../samples/gui/rollup/ROLL32.H | 43 + .../samples/gui/rollup/ROLL32.RC | 393 + .../samples/gui/rollup/ROLL3DOC.CPP | 81 + .../samples/gui/rollup/ROLL3DOC.H | 44 + .../samples/gui/rollup/ROLL3VW.H | 58 + .../samples/gui/rollup/Roll32.cpp | 140 + .../samples/gui/rollup/Roll32.dsp | 323 + .../samples/gui/rollup/Roll32.dsw | 33 + .../samples/gui/rollup/Roll32.exe.manifest | 22 + .../samples/gui/rollup/Roll32.vcproj | 1150 + .../samples/gui/rollup/Roll32Info.rtf | Bin 0 -> 2183 bytes .../samples/gui/rollup/Roll3vw.cpp | 169 + .../samples/gui/rollup/STDAFX.CPP | 6 + .../samples/gui/rollup/Stdafx.h | 10 + .../samples/gui/rollup/mainfrm.h | 44 + .../samples/gui/rollup/res/MAXVIRT.BMP | Bin 0 -> 678 bytes .../samples/gui/rollup/res/ROLL32.ICO | Bin 0 -> 22798 bytes .../samples/gui/rollup/res/ROLL32.RC2 | 13 + .../samples/gui/rollup/res/ROLL3DOC.ICO | Bin 0 -> 1078 bytes .../samples/gui/rollup/res/TITLEBAR.BMP | Bin 0 -> 510 bytes .../samples/gui/rollup/res/TOOLBAR.BMP | Bin 0 -> 1198 bytes .../samples/gui/rollup/resource.h | 27 + .../samples/gui/scrolltips/ChildFrm.cpp | 65 + .../samples/gui/scrolltips/ChildFrm.h | 40 + .../samples/gui/scrolltips/CntrItem.cpp | 50 + .../samples/gui/scrolltips/CntrItem.h | 41 + .../samples/gui/scrolltips/MainFrm.cpp | 91 + .../samples/gui/scrolltips/MainFrm.h | 44 + .../samples/gui/scrolltips/ScrollDlg.cpp | 106 + .../samples/gui/scrolltips/ScrollDlg.h | 43 + .../gui/scrolltips/ScrollSettingsDlg.cpp | 53 + .../gui/scrolltips/ScrollSettingsDlg.h | 40 + .../samples/gui/scrolltips/ScrollTipDemo.clw | 179 + .../samples/gui/scrolltips/ScrollTipDemo.cpp | 140 + .../samples/gui/scrolltips/ScrollTipDemo.dsp | 317 + .../samples/gui/scrolltips/ScrollTipDemo.dsw | 33 + .../gui/scrolltips/ScrollTipDemo.exe.manifest | 22 + .../samples/gui/scrolltips/ScrollTipDemo.h | 39 + .../samples/gui/scrolltips/ScrollTipDemo.rc | 477 + .../gui/scrolltips/ScrollTipDemo.vcproj | 1250 ++ .../samples/gui/scrolltips/ScrollTipDoc.cpp | 105 + .../samples/gui/scrolltips/ScrollTipDoc.h | 47 + .../gui/scrolltips/ScrollTipEditView.cpp | 153 + .../gui/scrolltips/ScrollTipEditView.h | 58 + .../samples/gui/scrolltips/StdAfx.cpp | 6 + .../samples/gui/scrolltips/StdAfx.h | 20 + .../gui/scrolltips/res/ScrollTipDemo.ico | Bin 0 -> 22798 bytes .../gui/scrolltips/res/ScrollTipDemo.rc2 | 13 + .../gui/scrolltips/res/ScrollTipDoc.ico | Bin 0 -> 1078 bytes .../samples/gui/scrolltips/res/Toolbar.bmp | Bin 0 -> 1078 bytes .../samples/gui/scrolltips/res/bitmap1.bmp | Bin 0 -> 454 bytes .../samples/gui/scrolltips/resource.h | 38 + .../samples/gui/scrolltips/scrolltipinfo.rtf | Bin 0 -> 2889 bytes .../samples/gui/spinex/ColorBar.cpp | 100 + .../samples/gui/spinex/ColorBar.h | 54 + .../samples/gui/spinex/SpinEx.clw | 62 + .../samples/gui/spinex/SpinEx.cpp | 100 + .../samples/gui/spinex/SpinEx.dsp | 313 + .../samples/gui/spinex/SpinEx.dsw | 33 + .../samples/gui/spinex/SpinEx.exe.manifest | 22 + .../samples/gui/spinex/SpinEx.h | 50 + .../samples/gui/spinex/SpinEx.rc | 217 + .../samples/gui/spinex/SpinEx.vcproj | 938 + .../samples/gui/spinex/SpinExDlg.cpp | 224 + .../samples/gui/spinex/SpinExDlg.h | 70 + .../samples/gui/spinex/SpinExInfo.rtf | Bin 0 -> 2420 bytes .../samples/gui/spinex/StdAfx.cpp | 6 + .../samples/gui/spinex/StdAfx.h | 25 + .../samples/gui/spinex/res/SpinEx.ico | Bin 0 -> 22798 bytes .../samples/gui/spinex/res/SpinEx.rc2 | 13 + .../samples/gui/spinex/res/bitmap1.bmp | Bin 0 -> 3310 bytes .../samples/gui/spinex/resource.h | 32 + .../samples/gui/zoomvw/MAINFRM.CPP | 131 + .../samples/gui/zoomvw/MAINFRM.H | 48 + .../samples/gui/zoomvw/PENDLG.CPP | 68 + .../samples/gui/zoomvw/PENDLG.H | 36 + .../samples/gui/zoomvw/SCRIBBLE.CLW | 127 + .../samples/gui/zoomvw/SCRIBBLE.CPP | 141 + .../samples/gui/zoomvw/SCRIBBLE.H | 44 + .../samples/gui/zoomvw/SCRIBBLE.RC | 340 + .../samples/gui/zoomvw/SCRIBDOC.CPP | 309 + .../samples/gui/zoomvw/SCRIBDOC.H | 119 + .../samples/gui/zoomvw/SCRIBVW.CPP | 349 + .../samples/gui/zoomvw/SCRIBVW.H | 75 + .../samples/gui/zoomvw/STDAFX.CPP | 15 + .../samples/gui/zoomvw/STDAFX.H | 21 + .../samples/gui/zoomvw/Scribble.dsp | 290 + .../samples/gui/zoomvw/Scribble.dsw | 33 + .../samples/gui/zoomvw/Scribble.exe.manifest | 22 + .../samples/gui/zoomvw/Scribble.vcproj | 1028 + .../samples/gui/zoomvw/res/SCRIBBLE.ICO | Bin 0 -> 22798 bytes .../samples/gui/zoomvw/res/SCRIBBLE.RC2 | 50 + .../samples/gui/zoomvw/res/SCRIBDOC.ICO | Bin 0 -> 766 bytes .../samples/gui/zoomvw/res/TOOLBAR.BMP | Bin 0 -> 1618 bytes .../samples/gui/zoomvw/resource.h | 38 + .../samples/gui/zoomvw/zoomviewInfo.rtf | Bin 0 -> 2547 bytes .../samples/new/ListBoxDemo/ListBoxDemo.clw | 81 + .../samples/new/ListBoxDemo/ListBoxDemo.cpp | 74 + .../samples/new/ListBoxDemo/ListBoxDemo.dsp | 152 + .../samples/new/ListBoxDemo/ListBoxDemo.dsw | 29 + .../samples/new/ListBoxDemo/ListBoxDemo.h | 49 + .../samples/new/ListBoxDemo/ListBoxDemo.rc | 225 + .../new/ListBoxDemo/ListBoxDemoDlg.cpp | 213 + .../samples/new/ListBoxDemo/ListBoxDemoDlg.h | 54 + .../samples/new/ListBoxDemo/ReadMe.txt | 88 + .../samples/new/ListBoxDemo/StdAfx.cpp | 8 + .../samples/new/ListBoxDemo/StdAfx.h | 28 + .../new/ListBoxDemo/res/ListBoxDemo.ico | Bin 0 -> 1078 bytes .../new/ListBoxDemo/res/ListBoxDemo.rc2 | 13 + .../samples/new/ListBoxDemo/resource.h | 25 + .../shell/ActiveDesktop/ActiveDesktop.clw | 164 + .../shell/ActiveDesktop/ActiveDesktop.cpp | 107 + .../shell/ActiveDesktop/ActiveDesktop.dsp | 285 + .../shell/ActiveDesktop/ActiveDesktop.dsw | 29 + .../ActiveDesktop/ActiveDesktop.exe.manifest | 22 + .../shell/ActiveDesktop/ActiveDesktop.h | 50 + .../shell/ActiveDesktop/ActiveDesktop.rc | 294 + .../shell/ActiveDesktop/ActiveDesktop.vcproj | 960 + .../shell/ActiveDesktop/ActiveDesktopDlg.cpp | 551 + .../shell/ActiveDesktop/ActiveDesktopDlg.h | 82 + .../shell/ActiveDesktop/CompDialog.cpp | 107 + .../samples/shell/ActiveDesktop/CompDialog.h | 60 + .../shell/ActiveDesktop/OXActiveDesktop.rtf | 17 + .../samples/shell/ActiveDesktop/Resource.h | 49 + .../samples/shell/ActiveDesktop/StdAfx.cpp | 8 + .../samples/shell/ActiveDesktop/StdAfx.h | 29 + .../shell/ActiveDesktop/res/ActiveDesktop.ico | Bin 0 -> 1078 bytes .../shell/ActiveDesktop/res/ActiveDesktop.rc2 | 13 + .../shell/ActiveDesktop/res/bitmap1.bmp | Bin 0 -> 2166 bytes .../samples/shell/AddressBook/AddressBook.clw | 189 + .../samples/shell/AddressBook/AddressBook.cpp | 98 + .../samples/shell/AddressBook/AddressBook.dsp | 263 + .../samples/shell/AddressBook/AddressBook.dsw | 29 + .../samples/shell/AddressBook/AddressBook.h | 50 + .../samples/shell/AddressBook/AddressBook.rc | 358 + .../shell/AddressBook/AddressBook.vcproj | 929 + .../shell/AddressBook/AddressBookDlg.cpp | 388 + .../shell/AddressBook/AddressBookDlg.h | 74 + .../AddressBook/ImageListBox.exe.manifest | 22 + .../samples/shell/AddressBook/OXWABook.rtf | 38 + .../samples/shell/AddressBook/OptionsDlg.cpp | 253 + .../samples/shell/AddressBook/OptionsDlg.h | 80 + .../samples/shell/AddressBook/Resource.h | 48 + .../samples/shell/AddressBook/StdAfx.cpp | 8 + .../samples/shell/AddressBook/StdAfx.h | 26 + .../shell/AddressBook/res/AddressBook.ico | Bin 0 -> 1078 bytes .../shell/AddressBook/res/AddressBook.rc2 | 13 + .../utility/AdvancedAssert/AdvancedAssert.clw | 115 + .../utility/AdvancedAssert/AdvancedAssert.cpp | 99 + .../utility/AdvancedAssert/AdvancedAssert.dsp | 309 + .../utility/AdvancedAssert/AdvancedAssert.dsw | 29 + .../AdvancedAssert.exe.manifest | 22 + .../utility/AdvancedAssert/AdvancedAssert.h | 50 + .../utility/AdvancedAssert/AdvancedAssert.rc | 278 + .../AdvancedAssert/AdvancedAssert.vcproj | 1154 + .../AdvancedAssert/AdvancedAssertDlg.cpp | 279 + .../AdvancedAssert/AdvancedAssertDlg.h | 64 + .../AdvancedAssert/AdvancedAssertInfo.rtf | Bin 0 -> 3273 bytes .../AdvancedAssert/CustomizeAssertDlg.cpp | 55 + .../AdvancedAssert/CustomizeAssertDlg.h | 49 + .../samples/utility/AdvancedAssert/StdAfx.cpp | 6 + .../samples/utility/AdvancedAssert/StdAfx.h | 32 + .../AdvancedAssert/res/AdvancedAssert.ico | Bin 0 -> 1078 bytes .../AdvancedAssert/res/AdvancedAssert.rc2 | 13 + .../utility/AdvancedAssert/res/arrow1.bmp | Bin 0 -> 646 bytes .../utility/AdvancedAssert/res/arrow2.bmp | Bin 0 -> 1142 bytes .../utility/AdvancedAssert/res/bitmap1.bmp | Bin 0 -> 262 bytes .../samples/utility/AdvancedAssert/resource.h | 65 + .../utility/AdvancedTrace/AdvancedTrace.clw | 64 + .../utility/AdvancedTrace/AdvancedTrace.cpp | 112 + .../utility/AdvancedTrace/AdvancedTrace.dsp | 274 + .../utility/AdvancedTrace/AdvancedTrace.dsw | 29 + .../AdvancedTrace/AdvancedTrace.exe.manifest | 22 + .../utility/AdvancedTrace/AdvancedTrace.h | 52 + .../utility/AdvancedTrace/AdvancedTrace.rc | 265 + .../AdvancedTrace/AdvancedTrace.vcproj | 1082 + .../AdvancedTrace/AdvancedTraceDlg.cpp | 299 + .../utility/AdvancedTrace/AdvancedTraceDlg.h | 71 + .../samples/utility/AdvancedTrace/Resource.h | 30 + .../samples/utility/AdvancedTrace/StdAfx.cpp | 8 + .../samples/utility/AdvancedTrace/StdAfx.h | 26 + .../utility/AdvancedTrace/TraceInfo.rtf | Bin 0 -> 3273 bytes .../utility/AdvancedTrace/TraceTest.txt | Bin 0 -> 1414 bytes .../AdvancedTrace/res/AdvancedTrace.ico | Bin 0 -> 1078 bytes .../AdvancedTrace/res/AdvancedTrace.rc2 | 13 + .../samples/utility/ClipDock/ClipDock.clw | 35 + .../samples/utility/ClipDock/ClipDock.cpp | 114 + .../samples/utility/ClipDock/ClipDock.dsp | 278 + .../samples/utility/ClipDock/ClipDock.dsw | 29 + .../utility/ClipDock/ClipDock.exe.manifest | 22 + .../samples/utility/ClipDock/ClipDock.h | 51 + .../samples/utility/ClipDock/ClipDock.rc | 158 + .../samples/utility/ClipDock/ClipDock.vcproj | 1091 + .../samples/utility/ClipDock/ClipDockDlg.cpp | 188 + .../samples/utility/ClipDock/ClipDockDlg.h | 61 + .../utility/ClipDock/OXMulticlipboardDld.rtf | Bin 0 -> 2074 bytes .../samples/utility/ClipDock/Resource.h | 18 + .../samples/utility/ClipDock/StdAfx.cpp | 8 + .../samples/utility/ClipDock/StdAfx.h | 27 + .../samples/utility/ClipDock/res/ClipDock.ico | Bin 0 -> 1078 bytes .../samples/utility/ClipDock/res/ClipDock.rc2 | 13 + .../samples/utility/EventLog/EventLog.clw | 52 + .../samples/utility/EventLog/EventLog.cpp | 101 + .../samples/utility/EventLog/EventLog.dsp | 261 + .../samples/utility/EventLog/EventLog.dsw | 29 + .../utility/EventLog/EventLog.exe.manifest | 22 + .../samples/utility/EventLog/EventLog.h | 50 + .../samples/utility/EventLog/EventLog.rc | 212 + .../samples/utility/EventLog/EventLog.vcproj | 921 + .../samples/utility/EventLog/EventLogDlg.cpp | 291 + .../samples/utility/EventLog/EventLogDlg.h | 60 + .../samples/utility/EventLog/EventLogInfo.rtf | Bin 0 -> 1189 bytes .../samples/utility/EventLog/StdAfx.cpp | 43 + .../samples/utility/EventLog/StdAfx.h | 28 + .../samples/utility/EventLog/messages.dll | Bin 0 -> 8704 bytes .../utility/EventLog/messages/Resource.h | 16 + .../utility/EventLog/messages/StdAfx.cpp | 6 + .../utility/EventLog/messages/StdAfx.h | 32 + .../utility/EventLog/messages/makemc.bat | 2 + .../utility/EventLog/messages/messages.cpp | 35 + .../utility/EventLog/messages/messages.def | 7 + .../utility/EventLog/messages/messages.h | 33 + .../utility/EventLog/messages/messages.rc | 125 + .../samples/utility/EventLog/messages/msgs.h | 203 + .../samples/utility/EventLog/messages/msgs.mc | 167 + .../samples/utility/EventLog/messages/msgs.rc | 2 + .../EventLog/messages/res/messages.rc2 | 13 + .../samples/utility/EventLog/msgs.h | 200 + .../samples/utility/EventLog/res/EventLog.ico | Bin 0 -> 1078 bytes .../samples/utility/EventLog/res/EventLog.rc2 | 13 + .../samples/utility/EventLog/resource.h | 33 + .../utility/FileChanger/FileChanger.clw | 59 + .../utility/FileChanger/FileChanger.cpp | 94 + .../utility/FileChanger/FileChanger.dsp | 247 + .../utility/FileChanger/FileChanger.dsw | 29 + .../FileChanger/FileChanger.exe.manifest | 22 + .../samples/utility/FileChanger/FileChanger.h | 48 + .../utility/FileChanger/FileChanger.rc | 221 + .../utility/FileChanger/FileChanger.vcproj | 863 + .../FileChanger/FileChangerDemoDlg.cpp | 426 + .../utility/FileChanger/FileChangerDemoDlg.h | 85 + .../utility/FileChanger/FileChangerInfo.rtf | Bin 0 -> 1260 bytes .../samples/utility/FileChanger/StdAfx.cpp | 6 + .../samples/utility/FileChanger/StdAfx.h | 25 + .../utility/FileChanger/res/FileChanger.ico | Bin 0 -> 1078 bytes .../utility/FileChanger/res/FileChanger.rc2 | 13 + .../samples/utility/FileChanger/resource.h | 37 + .../InstanceManager/InstanceManagerDemo.clw | 60 + .../InstanceManager/InstanceManagerDemo.cpp | 110 + .../InstanceManager/InstanceManagerDemo.dsp | 253 + .../InstanceManager/InstanceManagerDemo.dsw | 29 + .../InstanceManagerDemo.exe.manifest | 22 + .../InstanceManager/InstanceManagerDemo.h | 38 + .../InstanceManager/InstanceManagerDemo.rc | 222 + .../InstanceManagerDemo.vcproj | 872 + .../InstanceManagerDemoDlg.cpp | 251 + .../InstanceManager/InstanceManagerDemoDlg.h | 47 + .../utility/InstanceManager/StdAfx.cpp | 6 + .../samples/utility/InstanceManager/StdAfx.h | 16 + .../utility/InstanceManager/instMngrInfo.rtf | Bin 0 -> 2044 bytes .../res/InstanceManagerDemo.ico | Bin 0 -> 1078 bytes .../res/InstanceManagerDemo.rc2 | 13 + .../utility/InstanceManager/resource.h | 26 + .../NumberConversionDemo.clw | 68 + .../NumberConversionDemo.cpp | 104 + .../NumberConversionDemo.dsp | 245 + .../NumberConversionDemo.dsw | 29 + .../NumberConversionDemo.exe.manifest | 22 + .../NumberConversionDemo.h | 38 + .../NumberConversionDemo.rc | 241 + .../NumberConversionDemo.vcproj | 863 + .../NumberConversionDemoDlg.cpp | 299 + .../NumberConversionDemoDlg.h | 59 + .../utility/NumberConversionDemo/StdAfx.cpp | 6 + .../utility/NumberConversionDemo/StdAfx.h | 16 + .../NumberConversionDemo/numConInfo.rtf | Bin 0 -> 1550 bytes .../res/NumberConversionDemo.ico | Bin 0 -> 1078 bytes .../res/NumberConversionDemo.rc2 | 13 + .../utility/NumberConversionDemo/resource.h | 43 + .../samples/utility/Parser/ChildFrm.cpp | 101 + .../samples/utility/Parser/ChildFrm.h | 59 + .../samples/utility/Parser/LeftView.cpp | 506 + .../samples/utility/Parser/LeftView.h | 93 + .../samples/utility/Parser/MSDNVS6A.xml | 1048 + .../samples/utility/Parser/MainFrm.cpp | 107 + .../samples/utility/Parser/MainFrm.h | 58 + .../samples/utility/Parser/OXParser.rtf | Bin 0 -> 5633 bytes .../samples/utility/Parser/ParseEditView.cpp | 77 + .../samples/utility/Parser/ParseEditView.h | 54 + .../samples/utility/Parser/ParserView.clw | 136 + .../samples/utility/Parser/ParserView.cpp | 190 + .../samples/utility/Parser/ParserView.dsp | 326 + .../samples/utility/Parser/ParserView.dsw | 29 + .../utility/Parser/ParserView.exe.manifest | 22 + .../samples/utility/Parser/ParserView.h | 50 + .../samples/utility/Parser/ParserView.rc | 428 + .../samples/utility/Parser/ParserView.vcproj | 1306 ++ .../samples/utility/Parser/ParserViewDoc.cpp | 134 + .../samples/utility/Parser/ParserViewDoc.h | 67 + .../samples/utility/Parser/ParserViewView.cpp | 114 + .../samples/utility/Parser/ParserViewView.h | 69 + .../samples/utility/Parser/StdAfx.cpp | 8 + .../samples/utility/Parser/StdAfx.h | 30 + .../samples/utility/Parser/res/ParserView.ico | Bin 0 -> 1078 bytes .../samples/utility/Parser/res/ParserView.rc2 | 13 + .../utility/Parser/res/ParserViewDoc.ico | Bin 0 -> 1078 bytes .../samples/utility/Parser/res/Toolbar.bmp | Bin 0 -> 358 bytes .../samples/utility/Parser/res/bitmap1.bmp | Bin 0 -> 1182 bytes .../samples/utility/Parser/resource.h | 23 + .../utility/RegExpression/COXRegular.rtf | 134 + .../utility/RegExpression/ChildFrm.cpp | 70 + .../samples/utility/RegExpression/ChildFrm.h | 53 + .../utility/RegExpression/FindDialog.cpp | 192 + .../utility/RegExpression/FindDialog.h | 62 + .../samples/utility/RegExpression/MainFrm.cpp | 125 + .../samples/utility/RegExpression/MainFrm.h | 60 + .../utility/RegExpression/MyRegular.cpp | 65 + .../samples/utility/RegExpression/MyRegular.h | 28 + .../utility/RegExpression/ParseDialog.cpp | 284 + .../utility/RegExpression/ParseDialog.h | 55 + .../samples/utility/RegExpression/ReadMe.txt | 105 + .../utility/RegExpression/Readme_u.txt | Bin 0 -> 11720 bytes .../utility/RegExpression/RegExpression.clw | 185 + .../utility/RegExpression/RegExpression.cpp | 180 + .../utility/RegExpression/RegExpression.dsp | 438 + .../utility/RegExpression/RegExpression.dsw | 29 + .../utility/RegExpression/RegExpression.h | 50 + .../utility/RegExpression/RegExpression.rc | 457 + .../RegExpression/RegExpression.vcproj | 2405 +++ .../RegExpression/RegExpressionDoc.cpp | 85 + .../utility/RegExpression/RegExpressionDoc.h | 55 + .../RegExpression/RegExpressionView.cpp | 82 + .../utility/RegExpression/RegExpressionView.h | 64 + .../samples/utility/RegExpression/StdAfx.cpp | 8 + .../samples/utility/RegExpression/StdAfx.h | 30 + .../RegExpression/res/RegExpression.ico | Bin 0 -> 1078 bytes .../RegExpression/res/RegExpression.rc2 | 13 + .../RegExpression/res/RegExpressionDoc.ico | Bin 0 -> 1078 bytes .../utility/RegExpression/res/Toolbar.bmp | Bin 0 -> 1078 bytes .../utility/RegExpression/res/bitmap1.bmp | Bin 0 -> 246 bytes .../utility/RegExpression/res/indicato.bmp | Bin 0 -> 246 bytes .../utility/RegExpression/res/toolbar1.bmp | Bin 0 -> 478 bytes .../samples/utility/RegExpression/resource.h | 36 + .../samples/utility/Regevent/RegEvent.clw | 62 + .../samples/utility/Regevent/RegEvent.cpp | 103 + .../samples/utility/Regevent/RegEvent.dsp | 256 + .../samples/utility/Regevent/RegEvent.dsw | 29 + .../utility/Regevent/RegEvent.exe.manifest | 22 + .../samples/utility/Regevent/RegEvent.h | 50 + .../samples/utility/Regevent/RegEvent.rc | 218 + .../samples/utility/Regevent/RegEvent.vcproj | 962 + .../samples/utility/Regevent/RegEventDlg.cpp | 367 + .../samples/utility/Regevent/RegEventDlg.h | 73 + .../samples/utility/Regevent/RemBttn.cpp | 46 + .../samples/utility/Regevent/RemBttn.h | 51 + .../samples/utility/Regevent/StdAfx.cpp | 6 + .../samples/utility/Regevent/StdAfx.h | 25 + .../samples/utility/Regevent/idr_main.ico | Bin 0 -> 766 bytes .../samples/utility/Regevent/regeventInfo.rtf | Bin 0 -> 1715 bytes .../samples/utility/Regevent/resource.h | 34 + .../utility/RegistryDemo/RegistryDemo.clw | 92 + .../utility/RegistryDemo/RegistryDemo.cpp | 106 + .../utility/RegistryDemo/RegistryDemo.dsp | 269 + .../utility/RegistryDemo/RegistryDemo.dsw | 29 + .../RegistryDemo/RegistryDemo.exe.manifest | 22 + .../utility/RegistryDemo/RegistryDemo.h | 40 + .../utility/RegistryDemo/RegistryDemo.rc | 260 + .../utility/RegistryDemo/RegistryDemo.vcproj | 977 + .../utility/RegistryDemo/RegistryDemoDlg.cpp | 498 + .../utility/RegistryDemo/RegistryDemoDlg.h | 82 + .../utility/RegistryDemo/RegistryListDlg.cpp | 99 + .../utility/RegistryDemo/RegistryListDlg.h | 51 + .../samples/utility/RegistryDemo/StdAfx.cpp | 6 + .../samples/utility/RegistryDemo/StdAfx.h | 17 + .../utility/RegistryDemo/regdemoInfo.rtf | Bin 0 -> 2155 bytes .../utility/RegistryDemo/res/RegistryDemo.ico | Bin 0 -> 1078 bytes .../utility/RegistryDemo/res/RegistryDemo.rc2 | 13 + .../samples/utility/RegistryDemo/resource.h | 45 + .../samples/utility/Service/Service.clw | 44 + .../samples/utility/Service/Service.cpp | 97 + .../samples/utility/Service/Service.dsp | 249 + .../samples/utility/Service/Service.dsw | 29 + .../utility/Service/Service.exe.manifest | 22 + .../samples/utility/Service/Service.h | 48 + .../samples/utility/Service/Service.rc | 198 + .../samples/utility/Service/Service.sln | 29 + .../samples/utility/Service/Service.vcproj | 912 + .../samples/utility/Service/ServiceDlg.cpp | 424 + .../samples/utility/Service/ServiceDlg.h | 66 + .../samples/utility/Service/ServiceInfo.rtf | Bin 0 -> 1652 bytes .../samples/utility/Service/StdAfx.cpp | 6 + .../samples/utility/Service/StdAfx.h | 25 + .../samples/utility/Service/res/Service.ico | Bin 0 -> 1078 bytes .../samples/utility/Service/res/Service.rc2 | 13 + .../samples/utility/Service/resource.h | 24 + .../samples/utility/Shortcut/Shortcut.clw | 62 + .../samples/utility/Shortcut/Shortcut.cpp | 96 + .../samples/utility/Shortcut/Shortcut.dsp | 257 + .../samples/utility/Shortcut/Shortcut.dsw | 29 + .../utility/Shortcut/Shortcut.exe.manifest | 22 + .../samples/utility/Shortcut/Shortcut.h | 36 + .../samples/utility/Shortcut/Shortcut.rc | 227 + .../samples/utility/Shortcut/Shortcut.vcproj | 875 + .../samples/utility/Shortcut/ShortcutDlg.cpp | 572 + .../samples/utility/Shortcut/ShortcutDlg.h | 67 + .../samples/utility/Shortcut/StdAfx.cpp | 6 + .../samples/utility/Shortcut/StdAfx.h | 23 + .../samples/utility/Shortcut/res/Shortcut.ico | Bin 0 -> 1078 bytes .../samples/utility/Shortcut/res/Shortcut.rc2 | 13 + .../samples/utility/Shortcut/resource.h | 39 + .../samples/utility/Shortcut/shortcutInfo.rtf | Bin 0 -> 1536 bytes .../utility/SoundManager/MyAnimateCtrl.cpp | 55 + .../utility/SoundManager/MyAnimateCtrl.h | 51 + .../samples/utility/SoundManager/MyStatic.cpp | 129 + .../samples/utility/SoundManager/MyStatic.h | 60 + .../samples/utility/SoundManager/ReadMe.txt | 81 + .../utility/SoundManager/Sound/Camera.wav | Bin 0 -> 5524 bytes .../utility/SoundManager/Sound/Cashreg.wav | Bin 0 -> 7551 bytes .../utility/SoundManager/Sound/Castle.wav | Bin 0 -> 28994 bytes .../utility/SoundManager/Sound/Deal.wav | Bin 0 -> 1402 bytes .../utility/SoundManager/Sound/Dff.wav | Bin 0 -> 11543 bytes .../SoundManager/Sound/ForrestGump.wav | Bin 0 -> 104732 bytes .../utility/SoundManager/Sound/Goodbye.wav | Bin 0 -> 7404 bytes .../utility/SoundManager/Sound/HeartBeat.wav | Bin 0 -> 7058 bytes .../utility/SoundManager/Sound/HeartBeat2.wav | Bin 0 -> 13314 bytes .../utility/SoundManager/Sound/Incorrect.wav | Bin 0 -> 9658 bytes .../utility/SoundManager/Sound/Run.wav | Bin 0 -> 42436 bytes .../utility/SoundManager/Sound/Sledge.wav | Bin 0 -> 48372 bytes .../utility/SoundManager/Sound/Splash.wav | Bin 0 -> 30950 bytes .../utility/SoundManager/Sound/ThankYou.wav | Bin 0 -> 8502 bytes .../utility/SoundManager/Sound/Type.wav | Bin 0 -> 9200 bytes .../utility/SoundManager/Sound/Whoosh.wav | Bin 0 -> 1758 bytes .../utility/SoundManager/Sound/Wus.wav | Bin 0 -> 20250 bytes .../utility/SoundManager/Sound/error.wav | Bin 0 -> 10872 bytes .../utility/SoundManager/Sound/pooboom.wav | Bin 0 -> 7376 bytes .../utility/SoundManager/Sound/sound.wav | Bin 0 -> 1106 bytes .../utility/SoundManager/Sound/tmyk.wav | Bin 0 -> 13458 bytes .../utility/SoundManager/Sound/wshich.wav | Bin 0 -> 6278 bytes .../utility/SoundManager/SoundManager.cpp | 104 + .../utility/SoundManager/SoundManager.dsp | 560 + .../utility/SoundManager/SoundManager.dsw | 29 + .../SoundManager/SoundManager.exe.manifest | 22 + .../utility/SoundManager/SoundManager.h | 50 + .../utility/SoundManager/SoundManager.rc | 246 + .../utility/SoundManager/SoundManager.vcproj | 3473 ++++ .../utility/SoundManager/SoundManagerDlg.cpp | 327 + .../utility/SoundManager/SoundManagerDlg.h | 81 + .../utility/SoundManager/SoundManagerInfo.rtf | Bin 0 -> 3010 bytes .../samples/utility/SoundManager/StdAfx.cpp | 6 + .../samples/utility/SoundManager/StdAfx.h | 27 + .../utility/SoundManager/res/Drumroll.wav | Bin 0 -> 19426 bytes .../samples/utility/SoundManager/res/Mfc2.avi | Bin 0 -> 195016 bytes .../utility/SoundManager/res/SoundManager.ico | Bin 0 -> 1078 bytes .../utility/SoundManager/res/SoundManager.rc2 | 13 + .../samples/utility/SoundManager/resource.h | 34 + .../samples/utility/SoundTest/BOING.WAV | Bin 0 -> 3546 bytes .../samples/utility/SoundTest/POISON.WAV | Bin 0 -> 4246 bytes .../samples/utility/SoundTest/SLEDGE.WAV | Bin 0 -> 48372 bytes .../samples/utility/SoundTest/SoundTest.clw | 75 + .../samples/utility/SoundTest/SoundTest.cpp | 101 + .../samples/utility/SoundTest/SoundTest.dsp | 267 + .../samples/utility/SoundTest/SoundTest.dsw | 29 + .../utility/SoundTest/SoundTest.exe.manifest | 22 + .../samples/utility/SoundTest/SoundTest.h | 38 + .../samples/utility/SoundTest/SoundTest.rc | 217 + .../utility/SoundTest/SoundTest.vcproj | 925 + .../utility/SoundTest/SoundTestDlg.cpp | 317 + .../samples/utility/SoundTest/SoundTestDlg.h | 58 + .../utility/SoundTest/SoundTestInfo.rtf | Bin 0 -> 2488 bytes .../samples/utility/SoundTest/StdAfx.cpp | 6 + .../samples/utility/SoundTest/StdAfx.h | 17 + .../utility/SoundTest/res/Flamenco.wav | Bin 0 -> 114220 bytes .../utility/SoundTest/res/SoundTest.ico | Bin 0 -> 766 bytes .../utility/SoundTest/res/SoundTest.rc2 | 13 + .../samples/utility/SoundTest/res/photon.wav | Bin 0 -> 16428 bytes .../samples/utility/SoundTest/resource.h | 36 + .../samples/utility/SysInfo1/StdAfx.cpp | 6 + .../samples/utility/SysInfo1/StdAfx.h | 27 + .../samples/utility/SysInfo1/SysInfo1.clw | 54 + .../samples/utility/SysInfo1/SysInfo1.cpp | 83 + .../samples/utility/SysInfo1/SysInfo1.dsp | 261 + .../samples/utility/SysInfo1/SysInfo1.dsw | 29 + .../utility/SysInfo1/SysInfo1.exe.manifest | 22 + .../samples/utility/SysInfo1/SysInfo1.h | 49 + .../samples/utility/SysInfo1/SysInfo1.rc | 205 + .../samples/utility/SysInfo1/SysInfo1.vcproj | 887 + .../samples/utility/SysInfo1/SysInfo1Dlg.cpp | 574 + .../samples/utility/SysInfo1/SysInfo1Dlg.h | 59 + .../samples/utility/SysInfo1/res/SysInfo1.ico | Bin 0 -> 1078 bytes .../samples/utility/SysInfo1/res/SysInfo1.rc2 | 13 + .../samples/utility/SysInfo1/res/bitmap1.bmp | Bin 0 -> 1558 bytes .../samples/utility/SysInfo1/resource.h | 22 + .../samples/utility/SysInfo1/sysinfoinfo.rtf | Bin 0 -> 1559 bytes .../samples/utility/Undo/CHILDFRM.CPP | 82 + .../samples/utility/Undo/CHILDFRM.H | 54 + .../samples/utility/Undo/IPFRAME.CPP | 127 + .../samples/utility/Undo/IPFRAME.H | 56 + .../samples/utility/Undo/MAINFRM.CPP | 121 + .../samples/utility/Undo/MAINFRM.H | 54 + .../samples/utility/Undo/PENDLG.CPP | 64 + .../samples/utility/Undo/PENDLG.H | 45 + .../samples/utility/Undo/SCRIBBLE.H | 50 + .../samples/utility/Undo/SCRIBBLE.REG | 30 + .../samples/utility/Undo/SCRIBITM.CPP | 125 + .../samples/utility/Undo/SCRIBITM.H | 45 + .../samples/utility/Undo/SCRIBVW.H | 77 + .../samples/utility/Undo/STDAFX.CPP | 16 + .../samples/utility/Undo/Scribble.clw | 397 + .../samples/utility/Undo/Scribble.cpp | 173 + .../samples/utility/Undo/Scribble.rc | 830 + .../samples/utility/Undo/Scribdoc.cpp | 338 + .../samples/utility/Undo/Scribdoc.h | 134 + .../samples/utility/Undo/Scribvw.cpp | 395 + .../samples/utility/Undo/Stdafx.h | 25 + .../samples/utility/Undo/UndoInfo.rtf | Bin 0 -> 1262 bytes .../samples/utility/Undo/res/ITOOLBAR.BMP | Bin 0 -> 478 bytes .../samples/utility/Undo/res/SCRIBBLE.ICO | Bin 0 -> 1078 bytes .../samples/utility/Undo/res/SCRIBBLE.RC2 | 13 + .../samples/utility/Undo/res/SCRIBDOC.ICO | Bin 0 -> 1078 bytes .../samples/utility/Undo/res/TOOLBAR.BMP | Bin 0 -> 958 bytes .../samples/utility/Undo/resource.h | 31 + .../samples/utility/Undo/undo.dsp | 305 + .../samples/utility/Undo/undo.dsw | 29 + .../samples/utility/Undo/undo.exe.manifest | 22 + .../samples/utility/Undo/undo.vcproj | 1150 + .../utility/WorkspaceDemo/ChildFrm.cpp | 65 + .../samples/utility/WorkspaceDemo/ChildFrm.h | 40 + .../samples/utility/WorkspaceDemo/Graph1.gph | Bin 0 -> 8 bytes .../samples/utility/WorkspaceDemo/MainFrm.cpp | 128 + .../samples/utility/WorkspaceDemo/MainFrm.h | 45 + .../utility/WorkspaceDemo/SplitChildFrm.cpp | 135 + .../utility/WorkspaceDemo/SplitChildFrm.h | 99 + .../samples/utility/WorkspaceDemo/StdAfx.cpp | 6 + .../samples/utility/WorkspaceDemo/StdAfx.h | 16 + .../samples/utility/WorkspaceDemo/Test.wsp | Bin 0 -> 1376 bytes .../samples/utility/WorkspaceDemo/Text1.txt | 1 + .../utility/WorkspaceDemo/WorkSpaceInfo.rtf | Bin 0 -> 1492 bytes .../utility/WorkspaceDemo/WorkspaceDemo.clw | 296 + .../utility/WorkspaceDemo/WorkspaceDemo.cpp | 223 + .../utility/WorkspaceDemo/WorkspaceDemo.dsp | 477 + .../utility/WorkspaceDemo/WorkspaceDemo.dsw | 29 + .../WorkspaceDemo/WorkspaceDemo.exe.manifest | 22 + .../utility/WorkspaceDemo/WorkspaceDemo.h | 45 + .../utility/WorkspaceDemo/WorkspaceDemo.rc | 629 + .../WorkspaceDemo/WorkspaceDemo.vcproj | 2940 +++ .../utility/WorkspaceDemo/WorkspaceDlg.cpp | 128 + .../utility/WorkspaceDemo/WorkspaceDlg.h | 38 + .../WorkspaceDemo/WorkspaceGraphDoc.cpp | 121 + .../utility/WorkspaceDemo/WorkspaceGraphDoc.h | 50 + .../WorkspaceDemo/WorkspaceGraphPropView.cpp | 129 + .../WorkspaceDemo/WorkspaceGraphPropView.h | 67 + .../WorkspaceDemo/WorkspaceGraphView.cpp | 148 + .../WorkspaceDemo/WorkspaceGraphView.h | 75 + .../WorkspaceDemo/WorkspaceLengthView.cpp | 132 + .../WorkspaceDemo/WorkspaceLengthView.h | 65 + .../WorkspaceDemo/WorkspaceTextDoc.cpp | 128 + .../utility/WorkspaceDemo/WorkspaceTextDoc.h | 50 + .../WorkspaceDemo/WorkspaceTextView.cpp | 166 + .../utility/WorkspaceDemo/WorkspaceTextView.h | 59 + .../utility/WorkspaceDemo/res/Toolbar.bmp | Bin 0 -> 1078 bytes .../WorkspaceDemo/res/WorkspaceDemo.ico | Bin 0 -> 1078 bytes .../WorkspaceDemo/res/WorkspaceDemo.rc2 | 13 + .../WorkspaceDemo/res/WorkspaceDemoDoc.ico | Bin 0 -> 1078 bytes .../utility/WorkspaceDemo/res/bitmap1.bmp | Bin 0 -> 3382 bytes .../utility/WorkspaceDemo/res/idr_work.ico | Bin 0 -> 1078 bytes .../utility/WorkspaceDemo/res/toolbar1.bmp | Bin 0 -> 358 bytes .../samples/utility/WorkspaceDemo/resource.h | 52 + .../samples/utility/resfile/ChildFrm.cpp | 60 + .../samples/utility/resfile/ChildFrm.h | 38 + .../samples/utility/resfile/DlgResEdit.cpp | 114 + .../samples/utility/resfile/DlgResEdit.h | 43 + .../samples/utility/resfile/MainFrm.cpp | 68 + .../samples/utility/resfile/MainFrm.h | 42 + .../samples/utility/resfile/ResFile.clw | 95 + .../samples/utility/resfile/ResFile.cpp | 138 + .../samples/utility/resfile/ResFile.dsp | 293 + .../samples/utility/resfile/ResFile.dsw | 29 + .../utility/resfile/ResFile.exe.manifest | 22 + .../samples/utility/resfile/ResFile.h | 38 + .../samples/utility/resfile/ResFile.rc | 347 + .../samples/utility/resfile/ResFile.vcproj | 1136 + .../samples/utility/resfile/ResLibDoc.cpp | 103 + .../samples/utility/resfile/ResLibDoc.h | 52 + .../samples/utility/resfile/ResLibView.cpp | 447 + .../samples/utility/resfile/ResLibView.h | 81 + .../samples/utility/resfile/StdAfx.cpp | 6 + .../samples/utility/resfile/StdAfx.h | 23 + .../samples/utility/resfile/res/ResFile.ico | Bin 0 -> 1078 bytes .../samples/utility/resfile/res/ResFile.rc2 | 13 + .../samples/utility/resfile/res/ResLibDoc.ico | Bin 0 -> 1078 bytes .../samples/utility/resfile/res/Toolbar.bmp | Bin 0 -> 958 bytes .../samples/utility/resfile/res/idr_resl.ico | Bin 0 -> 1078 bytes .../samples/utility/resfile/res/imagelis.bmp | Bin 0 -> 1558 bytes .../samples/utility/resfile/resFileInfo.rtf | Bin 0 -> 1785 bytes .../samples/utility/resfile/resource.h | 23 + .../samples/utility/scrngrab/ChildFrm.cpp | 65 + .../samples/utility/scrngrab/ChildFrm.h | 40 + .../samples/utility/scrngrab/MainFrm.cpp | 91 + .../samples/utility/scrngrab/MainFrm.h | 45 + .../samples/utility/scrngrab/StdAfx.cpp | 6 + .../samples/utility/scrngrab/StdAfx.h | 16 + .../samples/utility/scrngrab/res/Toolbar.bmp | Bin 0 -> 1078 bytes .../samples/utility/scrngrab/res/scrngrab.ico | Bin 0 -> 1078 bytes .../samples/utility/scrngrab/res/scrngrab.rc2 | 13 + .../utility/scrngrab/res/scrngrabDoc.ico | Bin 0 -> 1078 bytes .../samples/utility/scrngrab/resource.h | 28 + .../samples/utility/scrngrab/scrnGrabInfo.rtf | Bin 0 -> 1451 bytes .../samples/utility/scrngrab/scrngrab.clw | 111 + .../samples/utility/scrngrab/scrngrab.cpp | 131 + .../samples/utility/scrngrab/scrngrab.dsp | 289 + .../samples/utility/scrngrab/scrngrab.dsw | 29 + .../utility/scrngrab/scrngrab.exe.manifest | 22 + .../samples/utility/scrngrab/scrngrab.h | 39 + .../samples/utility/scrngrab/scrngrab.rc | 370 + .../samples/utility/scrngrab/scrngrab.vcproj | 1087 + .../samples/utility/scrngrab/scrngrabDoc.cpp | 82 + .../samples/utility/scrngrab/scrngrabDoc.h | 44 + .../samples/utility/scrngrab/scrngrabView.cpp | 143 + .../samples/utility/scrngrab/scrngrabView.h | 66 + .../Ultimate Toolbox/ChangeHistory.htm | 538 + .../Ultimate Toolbox/include/CONVFILE.h | 271 + .../Ultimate Toolbox/include/COPYTREE.h | 150 + .../Ultimate Toolbox/include/CPYSTDLG.h | 159 + .../Ultimate Toolbox/include/DIR.h | 367 + .../Ultimate Toolbox/include/DIRLIST.h | 146 + .../Ultimate Toolbox/include/DSTRLIST.h | 172 + .../Ultimate Toolbox/include/EVNTLOG.h | 329 + .../Ultimate Toolbox/include/FILE.h | 245 + .../Ultimate Toolbox/include/FILELIST.h | 146 + .../Ultimate Toolbox/include/FILELMT.h | 106 + .../Ultimate Toolbox/include/MDELDLG.h | 124 + .../Ultimate Toolbox/include/MFCToolBar.h | 43 + .../Ultimate Toolbox/include/OX3DTabView.h | 976 + .../include/OXActiveDesktop.h | 306 + .../include/OXAdvancedAssert.h | 154 + .../include/OXAdvancedAssertMail.h | 74 + .../Ultimate Toolbox/include/OXAppBar.h | 1841 ++ .../Ultimate Toolbox/include/OXAutoComplete.h | 241 + .../Ultimate Toolbox/include/OXAutoListBox.h | 87 + .../Ultimate Toolbox/include/OXBITBUF.h | 145 + .../include/OXBMPFilePickerCombo.h | 59 + .../include/OXBMPFilePickerCombo.rc | 79 + .../Ultimate Toolbox/include/OXBMPFle.h | 143 + .../include/OXBackgroundPainter.h | 1350 ++ .../include/OXBaseSubclassedComboBox.h | 327 + .../Ultimate Toolbox/include/OXBitmapButton.h | 1055 + .../include/OXBitmapButton.rc | 75 + .../Ultimate Toolbox/include/OXBitmapMenu.h | 827 + .../Ultimate Toolbox/include/OXBitmapMenu.rc | 106 + .../include/OXBitmapMenuOrganizer.h | 862 + .../include/OXBrowseColorEdit.h | 337 + .../include/OXBrowseDirEdit.h | 467 + .../include/OXBrowseDirEdit.rc | 82 + .../include/OXBrowseDirEditList.h | 101 + .../include/OXButtonAppearanceDlg.h | 122 + .../Ultimate Toolbox/include/OXCMPFL.H | 262 + .../Ultimate Toolbox/include/OXCOMPR.h | 162 + .../Ultimate Toolbox/include/OXCRCChk.h | 340 + .../Ultimate Toolbox/include/OXCRCChk.inl | 105 + .../include/OXCalculatorCtrl.h | 300 + .../include/OXCalculatorCtrl.rc | 336 + .../include/OXCalculatorEdit.h | 78 + .../Ultimate Toolbox/include/OXCalendar.h | 219 + .../Ultimate Toolbox/include/OXCalendarEdit.h | 141 + .../include/OXCalendarPopup.h | 143 + .../include/OXCalendarPopup.rc | 84 + .../include/OXCaptionPainter.h | 1078 + .../include/OXChildFrameState.h | 182 + .../Ultimate Toolbox/include/OXClipPocket.h | 176 + .../include/OXColorPickerButton.h | 239 + .../include/OXColorPickerCtrl.h | 373 + .../include/OXComboPickerCtrl.h | 1444 ++ .../include/OXContextHelpDialog.h | 146 + .../include/OXContextHelpPropertyPage.h | 153 + .../include/OXContextHelpPropertySheet.h | 157 + .../Ultimate Toolbox/include/OXCoolBar.h | 843 + .../Ultimate Toolbox/include/OXCoolBar.rc | 83 + .../Ultimate Toolbox/include/OXCoolComboBox.h | 222 + .../include/OXCoolControlOrganizer.h | 145 + .../Ultimate Toolbox/include/OXCoolCtrl.h | 1459 ++ .../Ultimate Toolbox/include/OXCoolToolBar.h | 3193 +++ .../Ultimate Toolbox/include/OXCoolToolBar.rc | 88 + .../Ultimate Toolbox/include/OXCsvFile.h | 582 + .../include/OXCustomizeBackgroundPage.h | 138 + .../include/OXCustomizeCaptionPage.h | 137 + .../include/OXCustomizeCommandsPage.h | 433 + .../include/OXCustomizeCoolControlsPage.h | 120 + .../include/OXCustomizeInstanceManagerPage.h | 317 + .../include/OXCustomizeIntelliMousePage.h | 125 + .../include/OXCustomizeManager.h | 1351 ++ .../include/OXCustomizeManager.rc | 782 + .../include/OXCustomizeManagerRes.h | 19 + .../include/OXCustomizePage.h | 405 + .../include/OXCustomizeShortkeysPage.h | 418 + .../include/OXCustomizeSplashWindowPage.h | 196 + .../include/OXCustomizeTabbedMDIPage.h | 285 + .../include/OXCustomizeToolbarsPage.h | 331 + .../include/OXCustomizeTrayIconPage.h | 204 + .../include/OXCustomizeWorkspaceStatePage.h | 334 + .../Ultimate Toolbox/include/OXDFlHdr.h | 137 + .../Ultimate Toolbox/include/OXDIB.H | 604 + .../Ultimate Toolbox/include/OXDLLManager.h | 441 + .../Ultimate Toolbox/include/OXDao.h | 171 + .../Ultimate Toolbox/include/OXDao.rc | 81 + .../Ultimate Toolbox/include/OXDateTimeCtrl.h | 1019 + .../Ultimate Toolbox/include/OXDckPPg.h | 115 + .../Ultimate Toolbox/include/OXDckPSh.h | 203 + .../Ultimate Toolbox/include/OXDirDlg.h | 132 + .../Ultimate Toolbox/include/OXDirDlg.rc | 115 + .../Ultimate Toolbox/include/OXDlgBar.h | 111 + .../Ultimate Toolbox/include/OXDllExt.h | 68 + .../include/OXDocTemplateSpy.h | 128 + .../include/OXDockCtrlBars.RC | 91 + .../Ultimate Toolbox/include/OXDockTabCtrl.h | 90 + .../include/OXDragDockContext.h | 175 + .../include/OXDragDropCommands.h | 61 + .../include/OXDragDropSupport.h | 2183 ++ .../Ultimate Toolbox/include/OXDropEdit.h | 890 + .../Ultimate Toolbox/include/OXEdit.h | 1023 + .../Ultimate Toolbox/include/OXEditList.h | 548 + .../Ultimate Toolbox/include/OXEditList.rc | 118 + .../Ultimate Toolbox/include/OXFileChanger.h | 246 + .../include/OXFileWatchNotifier.h | 201 + .../Ultimate Toolbox/include/OXFileWatcher.h | 283 + .../Ultimate Toolbox/include/OXFileWatcher.rc | 82 + .../include/OXFolderPickerCombo.h | 62 + .../include/OXFolderPickerDlg.h | 210 + .../include/OXFolderPickerDlg.rc | 142 + .../Ultimate Toolbox/include/OXFontComboBox.h | 369 + .../include/OXFontPickerButton.h | 315 + .../include/OXFrameWndDock.rc | 83 + .../include/OXFullScreenFrame.h | 401 + .../Ultimate Toolbox/include/OXGphFle.h | 160 + .../Ultimate Toolbox/include/OXGraphics.h | 187 + .../Ultimate Toolbox/include/OXGridHdr.h | 143 + .../Ultimate Toolbox/include/OXGridList.h | 677 + .../Ultimate Toolbox/include/OXGridList.rc | 74 + .../Ultimate Toolbox/include/OXHTMLParser.h | 222 + .../Ultimate Toolbox/include/OXHashTable.h | 95 + .../Ultimate Toolbox/include/OXHistoryCombo.h | 469 + .../include/OXHistoryCombo.rc | 113 + .../Ultimate Toolbox/include/OXHistoryCtrl.h | 597 + .../Ultimate Toolbox/include/OXHookWnd.h | 221 + .../include/OXHyperBarOverlay.h | 40 + .../include/OXHyperBarRender.h | 42 + .../include/OXHyperFrameWnd.h | 22 + .../include/OXHyperLinkAction.h | 593 + .../include/OXHyperLinkAction.rc | 105 + .../Ultimate Toolbox/include/OXHyperbar.h | 58 + .../Ultimate Toolbox/include/OXIDManager.h | 488 + .../Ultimate Toolbox/include/OXIPEdit.h | 73 + .../Ultimate Toolbox/include/OXImageListBox.h | 384 + .../Ultimate Toolbox/include/OXImageViewer.h | 429 + .../Ultimate Toolbox/include/OXImageViewer.rc | 93 + .../include/OXInstanceManager.h | 274 + .../Ultimate Toolbox/include/OXInteger.h | 177 + .../Ultimate Toolbox/include/OXInteger.inl | 57 + .../Ultimate Toolbox/include/OXIntelliMouse.h | 757 + .../include/OXIntelliMouse.rc | 90 + .../Ultimate Toolbox/include/OXItemTip.h | 710 + .../Ultimate Toolbox/include/OXItemTipWnd.h | 153 + .../include/OXIteratorRegistryItem.h | 217 + .../include/OXIteratorService.h | 199 + .../Ultimate Toolbox/include/OXIteratorUNC.h | 221 + .../include/OXIteratorUNC.inl | 50 + .../Ultimate Toolbox/include/OXJPGCod.h | 134 + .../Ultimate Toolbox/include/OXJPGCom.h | 159 + .../Ultimate Toolbox/include/OXJPGDom.h | 187 + .../Ultimate Toolbox/include/OXJPGExp.h | 93 + .../Ultimate Toolbox/include/OXJPGFle.h | 173 + .../include/OXLayoutManager.h | 369 + .../include/OXLayoutManager.inl | 82 + .../Ultimate Toolbox/include/OXListBoxEx.h | 1479 ++ .../Ultimate Toolbox/include/OXListBoxEx.rc | 98 + .../Ultimate Toolbox/include/OXListEdit.h | 102 + .../Ultimate Toolbox/include/OXMDIFloatWnd.h | 133 + .../Ultimate Toolbox/include/OXMain.h | 234 + .../Ultimate Toolbox/include/OXMain.rc | 53 + .../Ultimate Toolbox/include/OXMainRes.h | 1111 + .../include/OXManageResourceHandle.h | 33 + .../Ultimate Toolbox/include/OXMaskedEdit.h | 443 + .../Ultimate Toolbox/include/OXMenuBar.rc | 83 + .../Ultimate Toolbox/include/OXMetaFile.h | 397 + .../Ultimate Toolbox/include/OXMetaFile.rc | 84 + .../Ultimate Toolbox/include/OXMonthCalCtrl.h | 1684 ++ .../include/OXMultiComboBox.inl | 178 + .../include/OXMulticlipboardDlg.h | 414 + .../include/OXMulticlipboardDlg.rc | 141 + .../include/OXNetBrowseTree.h | 276 + .../include/OXNetBrowseTree.rc | 86 + .../include/OXNotesEditView.h | 401 + .../include/OXNotesEditView.rc | 134 + .../include/OXOptionTreeCtrl.h | 535 + .../include/OXOptionTreeCtrl.rc | 76 + .../Ultimate Toolbox/include/OXParser.h | 1032 + .../Ultimate Toolbox/include/OXPhysicalEdit.h | 303 + .../include/OXPhysicalEditEx.h | 430 + .../include/OXPhysicalEditEx.rc | 94 + .../Ultimate Toolbox/include/OXPopupBarCtrl.h | 1046 + .../include/OXPopupBarCtrl.rc | 131 + .../include/OXPreviewDialog.h | 967 + .../include/OXPreviewDialog.rc | 91 + .../Ultimate Toolbox/include/OXProcess.h | 656 + .../Ultimate Toolbox/include/OXProcess.rc | 82 + .../include/OXPropertiesWnd.h | 365 + .../include/OXPropertiesWnd.rc | 98 + .../include/OXPropertyDescriptionPane.h | 56 + .../Ultimate Toolbox/include/OXPropertyTree.h | 62 + .../Ultimate Toolbox/include/OXQuickString.h | 302 + .../Ultimate Toolbox/include/OXRSERCM.H | 64 + .../Ultimate Toolbox/include/OXRectTracker.h | 133 + .../include/OXRegExpression.h | 412 + .../include/OXRegExpression.rc | 99 + .../Ultimate Toolbox/include/OXRegistryItem.h | 625 + .../include/OXRegistryItem.inl | 120 + .../include/OXRegistryValFile.h | 155 + .../include/OXRegistryWatchNotifier.h | 158 + .../include/OXRegistryWatchNotifier.inl | 86 + .../include/OXRegistryWatcher.h | 290 + .../Ultimate Toolbox/include/OXResourceFile.h | 280 + .../include/OXResourceFile.inl | 102 + .../include/OXResourceLibrary.h | 273 + .../include/OXResourceLibrary.inl | 41 + .../Ultimate Toolbox/include/OXRollUp.rc | 109 + .../Ultimate Toolbox/include/OXRollup.H | 432 + .../include/OXRoundedButton.h | 411 + .../include/OXRulerOrganizer.h | 873 + .../Ultimate Toolbox/include/OXScreenGrab.h | 138 + .../Ultimate Toolbox/include/OXScript.h | 175 + .../Ultimate Toolbox/include/OXScrollTip.h | 173 + .../include/OXScrollTipOwner.h | 240 + .../Ultimate Toolbox/include/OXScrollWnd.h | 953 + .../Ultimate Toolbox/include/OXScrollWnd.rc | 101 + .../Ultimate Toolbox/include/OXSeparator.h | 273 + .../Ultimate Toolbox/include/OXService.h | 380 + .../Ultimate Toolbox/include/OXShadowedWnd.h | 181 + .../Ultimate Toolbox/include/OXShape.h | 233 + .../Ultimate Toolbox/include/OXShdWnd.h | 66 + .../include/OXShellFolderTree.h | 517 + .../include/OXShellFolderTree.rc | 81 + .../include/OXShellNamespaceNavigator.h | 785 + .../include/OXShellObjectList.h | 442 + .../include/OXShellObjectList.rc | 86 + .../Ultimate Toolbox/include/OXShortcut.h | 296 + .../Ultimate Toolbox/include/OXShortcut.inl | 38 + .../Ultimate Toolbox/include/OXShortcut.rc | 84 + .../Ultimate Toolbox/include/OXShortcutBar.rc | 86 + .../include/OXShortkeysOrganizer.h | 577 + .../Ultimate Toolbox/include/OXSizeDlgBar.h | 146 + .../Ultimate Toolbox/include/OXSizeDockBar.h | 301 + .../Ultimate Toolbox/include/OXSizeToolBar.h | 316 + .../include/OXSkinnedComboBox.h | 72 + .../include/OXSkinnedSpinCtrl.h | 68 + .../include/OXSkinnedTabCtrl.h | 65 + .../Ultimate Toolbox/include/OXSkinnedView.h | 129 + .../Ultimate Toolbox/include/OXSkinnedWnd.h | 207 + .../Ultimate Toolbox/include/OXSkins.h | 1426 ++ .../Ultimate Toolbox/include/OXSound.h | 360 + .../include/OXSoundCustomizeDlg.h | 745 + .../include/OXSoundCustomizeDlg.rc | 209 + .../include/OXSoundEffectManager.h | 1261 ++ .../Ultimate Toolbox/include/OXSoundWnd.h | 114 + .../Ultimate Toolbox/include/OXSpinCtrl.h | 183 + .../Ultimate Toolbox/include/OXSpinCtrl.rc | 25 + .../Ultimate Toolbox/include/OXSplashWnd.h | 304 + .../Ultimate Toolbox/include/OXSplashWnd.inl | 91 + .../Ultimate Toolbox/include/OXSplashWndDIB.h | 159 + .../include/OXSplitterColRowState.h | 143 + .../Ultimate Toolbox/include/OXSplitterRect.h | 99 + .../Ultimate Toolbox/include/OXSplitterWnd.h | 70 + .../Ultimate Toolbox/include/OXStatic.h | 362 + .../include/OXStaticHyperLink.h | 483 + .../Ultimate Toolbox/include/OXStaticText.h | 731 + .../Ultimate Toolbox/include/OXStaticText.inl | 137 + .../Ultimate Toolbox/include/OXSysInfo.h | 815 + .../Ultimate Toolbox/include/OXSysInfo.rc | 84 + .../Ultimate Toolbox/include/OXTabClientWnd.h | 556 + .../Ultimate Toolbox/include/OXTabView.h | 1553 ++ .../Ultimate Toolbox/include/OXTaskPanel.h | 186 + .../Ultimate Toolbox/include/OXTaskbarIcon.h | 191 + .../include/OXTaskbarIcon.inl | 29 + .../Ultimate Toolbox/include/OXTleBar.H | 227 + .../Ultimate Toolbox/include/OXToolTipCtrl.h | 743 + .../Ultimate Toolbox/include/OXTrace.h | 312 + .../Ultimate Toolbox/include/OXTreeCal.h | 106 + .../Ultimate Toolbox/include/OXTreeCombo.h | 102 + .../Ultimate Toolbox/include/OXTreeCtrl.h | 1653 ++ .../Ultimate Toolbox/include/OXTreeEdit.h | 118 + .../Ultimate Toolbox/include/OXTreeHeader.h | 111 + .../Ultimate Toolbox/include/OXTreeItem.h | 722 + .../Ultimate Toolbox/include/OXUNC.h | 540 + .../Ultimate Toolbox/include/OXUNC.inl | 69 + .../include/OXUNCStandardActor.h | 376 + .../include/OXUNCStandartActor.rc | 82 + .../Ultimate Toolbox/include/OXURL.h | 183 + .../Ultimate Toolbox/include/OXURL.inl | 67 + .../Ultimate Toolbox/include/OXUUDRet.h | 134 + .../Ultimate Toolbox/include/OXUUDec.H | 158 + .../Ultimate Toolbox/include/OXUndo.rc | 86 + .../Ultimate Toolbox/include/OXUsertl.h | 202 + .../Ultimate Toolbox/include/OXUxTheme.h | 63 + .../Ultimate Toolbox/include/OXWABook.h | 546 + .../Ultimate Toolbox/include/OXWABook.rc | 210 + .../Ultimate Toolbox/include/OXWatchedDir.h | 84 + .../Ultimate Toolbox/include/OXWebCtrl.h | 298 + .../include/OXWorkspaceState.h | 309 + .../Ultimate Toolbox/include/OXZOOMVW.h | 497 + .../Ultimate Toolbox/include/OXZOOMVW.inl | 52 + .../Ultimate Toolbox/include/PATH.h | 348 + .../Ultimate Toolbox/include/PATHITER.h | 108 + .../Ultimate Toolbox/include/PROGRESS.h | 124 + .../Ultimate Toolbox/include/RETURNS.h | 83 + .../Ultimate Toolbox/include/STDAFX.h | 57 + .../Ultimate Toolbox/include/UTB64Bit.h | 43 + .../Ultimate Toolbox/include/UTDLL.h | 23 + .../Ultimate Toolbox/include/UTStaticLib.h | 45 + .../Ultimate Toolbox/include/WATCHBUF.h | 159 + .../Ultimate Toolbox/include/XSTATUS4.h | 292 + .../Ultimate Toolbox/include/XSTRING.h | 198 + .../Ultimate Toolbox/include/oxHlfTne.h | 615 + .../Ultimate Toolbox/include/oxframewnddock.h | 1149 + .../Ultimate Toolbox/include/oxgridedit.h | 211 + .../Ultimate Toolbox/include/oxmenubar.h | 2428 +++ .../include/oxmulticombobox.h | 392 + .../Ultimate Toolbox/include/oxshortcutbar.h | 3857 ++++ .../Ultimate Toolbox/include/oxsizectrlbar.h | 423 + .../include/oxszminidockfrmwnd.h | 160 + .../Ultimate Toolbox/include/oxundo.h | 412 + .../Ultimate Toolbox/include/ranges.txt | 191 + .../include/res/OXEditListImg.bmp | Bin 0 -> 598 bytes .../include/res/OXGridListImg.bmp | Bin 0 -> 338 bytes .../include/res/OXHandCursor.cur | Bin 0 -> 326 bytes .../include/res/OXHistoryComboImg.bmp | Bin 0 -> 718 bytes .../include/res/OXMulticlipboardDlg.bmp | Bin 0 -> 7798 bytes .../include/res/OXNetBrowseTreeImg.bmp | Bin 0 -> 3238 bytes .../include/res/OXNoHandCursor.cur | Bin 0 -> 326 bytes .../Ultimate Toolbox/include/res/OXNotes.cur | Bin 0 -> 326 bytes .../include/res/OXNotesBkmarks.bmp | Bin 0 -> 630 bytes .../include/res/OXNotesBrush.bmp | Bin 0 -> 246 bytes .../include/res/OXOptionHighContrast.bmp | Bin 0 -> 630 bytes .../Ultimate Toolbox/include/res/OXRUpBar.bmp | Bin 0 -> 510 bytes .../include/res/OXSpinHor.cur | Bin 0 -> 326 bytes .../include/res/OXSpinVer.cur | Bin 0 -> 326 bytes .../Ultimate Toolbox/include/res/OXWebBar.bmp | Bin 0 -> 838 bytes .../include/res/bkgnd_painter.bmp | Bin 0 -> 2102 bytes .../Ultimate Toolbox/include/res/caption.bmp | Bin 0 -> 2102 bytes .../include/res/command_group.ico | Bin 0 -> 1078 bytes .../Ultimate Toolbox/include/res/commands.bmp | Bin 0 -> 2102 bytes .../include/res/coolcontrols.bmp | Bin 0 -> 2102 bytes .../include/res/custom_button.ico | Bin 0 -> 1078 bytes .../include/res/il_fonttype.bmp | Bin 0 -> 374 bytes .../res/il_oxcustomize_custom_images.bmp | Bin 0 -> 8310 bytes .../include/res/instance_manager.bmp | Bin 0 -> 2102 bytes .../include/res/intellitarget.bmp | Bin 0 -> 630 bytes .../include/res/new_popup_menu.ico | Bin 0 -> 1078 bytes .../Ultimate Toolbox/include/res/noimage.ico | Bin 0 -> 1078 bytes .../res/oxcustcoolcontrols_controls.bmp | Bin 0 -> 246 bytes .../Ultimate Toolbox/include/res/oxcustom.bmp | Bin 0 -> 246 bytes .../include/res/oxcusttabmdi_appearance.bmp | Bin 0 -> 246 bytes .../include/res/oxcusttabmdi_display.bmp | Bin 0 -> 246 bytes .../include/res/oxcusttabmdi_orient.bmp | Bin 0 -> 246 bytes .../include/res/oxcusttabmdi_positioning.bmp | Bin 0 -> 246 bytes .../include/res/oxcusttabmdi_settings.bmp | Bin 0 -> 246 bytes .../Ultimate Toolbox/include/res/oxoption.bmp | Bin 0 -> 630 bytes .../include/res/oxpreviewbtn.bmp | Bin 0 -> 246 bytes .../Ultimate Toolbox/include/res/oxtbcopy.cur | Bin 0 -> 326 bytes .../Ultimate Toolbox/include/res/oxtbmove.cur | Bin 0 -> 326 bytes .../include/res/oxtbremove.cur | Bin 0 -> 1086 bytes .../include/res/properties_toolbar.bmp | Bin 0 -> 374 bytes .../Ultimate Toolbox/include/res/scrl_all.cur | Bin 0 -> 326 bytes .../include/res/scrl_bottomleft.cur | Bin 0 -> 326 bytes .../include/res/scrl_bottomright.cur | Bin 0 -> 326 bytes .../include/res/scrl_down.cur | Bin 0 -> 326 bytes .../include/res/scrl_left.cur | Bin 0 -> 326 bytes .../include/res/scrl_leftright.cur | Bin 0 -> 326 bytes .../include/res/scrl_right.cur | Bin 0 -> 326 bytes .../include/res/scrl_topbottom.cur | Bin 0 -> 326 bytes .../include/res/scrl_topleft.cur | Bin 0 -> 326 bytes .../include/res/scrl_topright.cur | Bin 0 -> 326 bytes .../Ultimate Toolbox/include/res/scrl_up.cur | Bin 0 -> 326 bytes .../include/res/separator.ico | Bin 0 -> 1078 bytes .../include/res/shortkeys.bmp | Bin 0 -> 2102 bytes .../Ultimate Toolbox/include/res/sndplay.bmp | Bin 0 -> 486 bytes .../Ultimate Toolbox/include/res/sndstop.bmp | Bin 0 -> 486 bytes .../include/res/splashwindow.bmp | Bin 0 -> 630 bytes .../include/res/tabbedmdi.bmp | Bin 0 -> 2102 bytes .../Ultimate Toolbox/include/res/toolbars.bmp | Bin 0 -> 2102 bytes .../Ultimate Toolbox/include/res/trayicon.bmp | Bin 0 -> 630 bytes .../Ultimate Toolbox/include/res/treelist.bmp | Bin 0 -> 758 bytes .../include/res/workspace_state.bmp | Bin 0 -> 2102 bytes .../Ultimate Toolbox/include/ugstrop.h | 37 + .../Ultimate Toolbox/include/utbstrop.h | 49 + .../lib/Build DLLs/StdAfx.cpp | 5 + .../Ultimate Toolbox/lib/Build DLLs/StdAfx.h | 61 + .../Ultimate Toolbox/lib/Build DLLs/UT.cpp | 51 + .../Ultimate Toolbox/lib/Build DLLs/UT.def | 7 + .../Ultimate Toolbox/lib/Build DLLs/UT.dep | 2950 +++ .../Ultimate Toolbox/lib/Build DLLs/UT.dsp | 1281 ++ .../Ultimate Toolbox/lib/Build DLLs/UT.dsw | 29 + .../Ultimate Toolbox/lib/Build DLLs/UT.mak | 3364 +++ .../Ultimate Toolbox/lib/Build DLLs/UT.sln | 26 + .../Ultimate Toolbox/lib/Build DLLs/UT.vcproj | 9435 +++++++++ .../lib/Build DLLs/UT2003.sln | 27 + .../lib/Build DLLs/UT2003.vcproj | 8167 ++++++++ .../lib/Build Libs/StdAfx.cpp | 6 + .../lib/Build Libs/UTStaticLib.dep | 2533 +++ .../lib/Build Libs/UTStaticLib.dsp | 1142 + .../lib/Build Libs/UTStaticLib.dsw | 29 + .../lib/Build Libs/UTStaticLib.mak | 17363 ++++++++++++++++ .../lib/Build Libs/UTStaticLib.sln | 39 + .../lib/Build Libs/UTStaticLib.vcproj | 15286 ++++++++++++++ .../lib/Build Libs/UTStaticLib2003.sln | 39 + .../lib/Build Libs/UTStaticLib2003.vcproj | 15287 ++++++++++++++ .../lib/Build Libs/UTStaticLib2005.sln | 38 + .../lib/Build Libs/UTStaticLib2005.vcproj | 17178 +++++++++++++++ .../Ultimate Toolbox/lib/Build Libs/stdafx.h | 50 + .../Ultimate Toolbox/lib/DLLs/Cpuinfd.dll | Bin 0 -> 45149 bytes .../Ultimate Toolbox/lib/DLLs/Cpuinfr.dll | Bin 0 -> 45056 bytes .../Ultimate Toolbox/lib/JPEG/JMORECFG.H | 350 + .../lib/JPEG/Jpegsrc6/ANSI2KNR.1 | 19 + .../lib/JPEG/Jpegsrc6/ANSI2KNR.C | 496 + .../lib/JPEG/Jpegsrc6/CDERROR.H | 132 + .../lib/JPEG/Jpegsrc6/CDJPEG.C | 179 + .../lib/JPEG/Jpegsrc6/CDJPEG.H | 179 + .../lib/JPEG/Jpegsrc6/CHANGE.LOG | 112 + .../lib/JPEG/Jpegsrc6/CJPEG.1 | 282 + .../lib/JPEG/Jpegsrc6/CJPEG.C | 605 + .../lib/JPEG/Jpegsrc6/CKCONFIG.C | 402 + .../lib/JPEG/Jpegsrc6/CODERULE.DOC | 118 + .../lib/JPEG/Jpegsrc6/CONFIGUR | 1598 ++ .../lib/JPEG/Jpegsrc6/DJPEG.1 | 248 + .../lib/JPEG/Jpegsrc6/DJPEG.C | 603 + .../lib/JPEG/Jpegsrc6/EXAMPLE.C | 433 + .../lib/JPEG/Jpegsrc6/FILELIST.DOC | 202 + .../lib/JPEG/Jpegsrc6/INSTALL.DOC | 861 + .../lib/JPEG/Jpegsrc6/JCAPIMIN.C | 228 + .../lib/JPEG/Jpegsrc6/JCAPISTD.C | 161 + .../lib/JPEG/Jpegsrc6/JCCOEFCT.C | 448 + .../lib/JPEG/Jpegsrc6/JCCOLOR.C | 459 + .../lib/JPEG/Jpegsrc6/JCDCTMGR.C | 388 + .../lib/JPEG/Jpegsrc6/JCHUFF.C | 846 + .../lib/JPEG/Jpegsrc6/JCHUFF.H | 34 + .../lib/JPEG/Jpegsrc6/JCINIT.C | 72 + .../lib/JPEG/Jpegsrc6/JCMAINCT.C | 293 + .../lib/JPEG/Jpegsrc6/JCMARKER.C | 639 + .../lib/JPEG/Jpegsrc6/JCMASTER.C | 578 + .../lib/JPEG/Jpegsrc6/JCOMAPI.C | 94 + .../lib/JPEG/Jpegsrc6/JCONFIG.BCC | 48 + .../lib/JPEG/Jpegsrc6/JCONFIG.CFG | 44 + .../lib/JPEG/Jpegsrc6/JCONFIG.DJ | 38 + .../lib/JPEG/Jpegsrc6/JCONFIG.DOC | 155 + .../lib/JPEG/Jpegsrc6/JCONFIG.MAN | 43 + .../lib/JPEG/Jpegsrc6/JCONFIG.MC6 | 52 + .../lib/JPEG/Jpegsrc6/JCONFIG.SAS | 43 + .../lib/JPEG/Jpegsrc6/JCONFIG.ST | 42 + .../lib/JPEG/Jpegsrc6/JCONFIG.VMS | 37 + .../lib/JPEG/Jpegsrc6/JCONFIG.WAT | 38 + .../lib/JPEG/Jpegsrc6/JCPARAM.C | 575 + .../lib/JPEG/Jpegsrc6/JCPHUFF.C | 829 + .../lib/JPEG/Jpegsrc6/JCPREPCT.C | 371 + .../lib/JPEG/Jpegsrc6/JCSAMPLE.C | 519 + .../lib/JPEG/Jpegsrc6/JCTRANS.C | 371 + .../lib/JPEG/Jpegsrc6/JDAPIMIN.C | 398 + .../lib/JPEG/Jpegsrc6/JDAPISTD.C | 275 + .../lib/JPEG/Jpegsrc6/JDATADST.C | 151 + .../lib/JPEG/Jpegsrc6/JDATASRC.C | 212 + .../lib/JPEG/Jpegsrc6/JDCOEFCT.C | 725 + .../lib/JPEG/Jpegsrc6/JDCOLOR.C | 367 + .../Ultimate Toolbox/lib/JPEG/Jpegsrc6/JDCT.H | 176 + .../lib/JPEG/Jpegsrc6/JDDCTMGR.C | 270 + .../lib/JPEG/Jpegsrc6/JDHUFF.C | 574 + .../lib/JPEG/Jpegsrc6/JDHUFF.H | 202 + .../lib/JPEG/Jpegsrc6/JDINPUT.C | 381 + .../lib/JPEG/Jpegsrc6/JDMAINCT.C | 512 + .../lib/JPEG/Jpegsrc6/JDMARKER.C | 1052 + .../lib/JPEG/Jpegsrc6/JDMASTER.C | 555 + .../lib/JPEG/Jpegsrc6/JDMERGE.C | 400 + .../lib/JPEG/Jpegsrc6/JDOSAOBJ.DOC | 16 + .../lib/JPEG/Jpegsrc6/JDPHUFF.C | 642 + .../lib/JPEG/Jpegsrc6/JDPOSTCT.C | 290 + .../lib/JPEG/Jpegsrc6/JDSAMPLE.C | 478 + .../lib/JPEG/Jpegsrc6/JDTRANS.C | 122 + .../lib/JPEG/Jpegsrc6/JERROR.C | 235 + .../lib/JPEG/Jpegsrc6/JERROR.H | 273 + .../lib/JPEG/Jpegsrc6/JFDCTFLT.C | 168 + .../lib/JPEG/Jpegsrc6/JFDCTFST.C | 224 + .../lib/JPEG/Jpegsrc6/JFDCTINT.C | 283 + .../lib/JPEG/Jpegsrc6/JIDCTFLT.C | 241 + .../lib/JPEG/Jpegsrc6/JIDCTFST.C | 367 + .../lib/JPEG/Jpegsrc6/JIDCTINT.C | 388 + .../lib/JPEG/Jpegsrc6/JIDCTRED.C | 397 + .../lib/JPEG/Jpegsrc6/JINCLUDE.H | 91 + .../lib/JPEG/Jpegsrc6/JMEMANSI.C | 167 + .../lib/JPEG/Jpegsrc6/JMEMDOS.C | 634 + .../lib/JPEG/Jpegsrc6/JMEMDOSA.ASM | 379 + .../lib/JPEG/Jpegsrc6/JMEMMGR.C | 1115 + .../lib/JPEG/Jpegsrc6/JMEMNAME.C | 271 + .../lib/JPEG/Jpegsrc6/JMEMNOBS.C | 109 + .../lib/JPEG/Jpegsrc6/JMEMSYS.H | 182 + .../lib/JPEG/Jpegsrc6/JPEGINT.H | 388 + .../lib/JPEG/Jpegsrc6/JPEGLIB.H | 1052 + .../lib/JPEG/Jpegsrc6/JPEGTRAN.1 | 150 + .../lib/JPEG/Jpegsrc6/JPEGTRAN.C | 370 + .../lib/JPEG/Jpegsrc6/JQUANT1.C | 856 + .../lib/JPEG/Jpegsrc6/JQUANT2.C | 1310 ++ .../lib/JPEG/Jpegsrc6/JUTILS.C | 175 + .../lib/JPEG/Jpegsrc6/JVERSION.H | 14 + .../lib/JPEG/Jpegsrc6/Jmorecfg.h | 350 + .../lib/JPEG/Jpegsrc6/LIBJPEG.DOC | 2744 +++ .../lib/JPEG/Jpegsrc6/MAKCJPEG.ST | 37 + .../lib/JPEG/Jpegsrc6/MAKDJPEG.ST | 37 + .../lib/JPEG/Jpegsrc6/MAKEFILE.ANS | 208 + .../lib/JPEG/Jpegsrc6/MAKEFILE.BCC | 277 + .../lib/JPEG/Jpegsrc6/MAKEFILE.CFG | 272 + .../lib/JPEG/Jpegsrc6/MAKEFILE.DJ | 232 + .../lib/JPEG/Jpegsrc6/MAKEFILE.MAN | 208 + .../lib/JPEG/Jpegsrc6/MAKEFILE.MC6 | 231 + .../lib/JPEG/Jpegsrc6/MAKEFILE.MMS | 212 + .../lib/JPEG/Jpegsrc6/MAKEFILE.SAS | 242 + .../lib/JPEG/Jpegsrc6/MAKEFILE.UNI | 222 + .../lib/JPEG/Jpegsrc6/MAKEFILE.VMS | 129 + .../lib/JPEG/Jpegsrc6/MAKEFILE.WAT | 227 + .../lib/JPEG/Jpegsrc6/MAKLJPEG.ST | 69 + .../lib/JPEG/Jpegsrc6/MAKTJPEG.ST | 30 + .../lib/JPEG/Jpegsrc6/RDBMP.C | 439 + .../lib/JPEG/Jpegsrc6/RDCOLMAP.C | 253 + .../lib/JPEG/Jpegsrc6/RDGIF.C | 683 + .../lib/JPEG/Jpegsrc6/RDJPGCOM.1 | 45 + .../lib/JPEG/Jpegsrc6/RDJPGCOM.C | 475 + .../lib/JPEG/Jpegsrc6/RDPPM.C | 450 + .../lib/JPEG/Jpegsrc6/RDRLE.C | 387 + .../lib/JPEG/Jpegsrc6/RDSWITCH.C | 342 + .../lib/JPEG/Jpegsrc6/RDTARGA.C | 500 + .../Ultimate Toolbox/lib/JPEG/Jpegsrc6/README | 383 + .../lib/JPEG/Jpegsrc6/README.DOS | 17 + .../lib/JPEG/Jpegsrc6/STRUCTUR.DOC | 941 + .../lib/JPEG/Jpegsrc6/TESTIMG.GIF | Bin 0 -> 21846 bytes .../lib/JPEG/Jpegsrc6/TESTIMG.JPG | Bin 0 -> 5756 bytes .../lib/JPEG/Jpegsrc6/TESTIMG.PPM | 4 + .../lib/JPEG/Jpegsrc6/TESTIMGP.JPG | Bin 0 -> 5645 bytes .../lib/JPEG/Jpegsrc6/TESTORIG.JPG | Bin 0 -> 5770 bytes .../lib/JPEG/Jpegsrc6/TESTPROG.JPG | Bin 0 -> 5655 bytes .../lib/JPEG/Jpegsrc6/USAGE.DOC | 475 + .../lib/JPEG/Jpegsrc6/WIZARD.DOC | 207 + .../lib/JPEG/Jpegsrc6/WRBMP.C | 442 + .../lib/JPEG/Jpegsrc6/WRGIF.C | 505 + .../lib/JPEG/Jpegsrc6/WRJPGCOM.1 | 103 + .../lib/JPEG/Jpegsrc6/WRJPGCOM.C | 574 + .../lib/JPEG/Jpegsrc6/WRPPM.C | 268 + .../lib/JPEG/Jpegsrc6/WRRLE.C | 305 + .../lib/JPEG/Jpegsrc6/WRTARGA.C | 253 + .../lib/JPEG/Jpegsrc6/jconfig.h | 38 + .../Ultimate Toolbox/lib/JPEG/Readme.txt | 5 + .../Ultimate Toolbox/lib/JPEG/jconfig.h | 38 + .../Ultimate Toolbox/lib/JPEG/jpeg-6b/README | 385 + .../Ultimate Toolbox/lib/JPEG/jpg.dsp | 336 + .../Ultimate Toolbox/lib/JPEG/jpg.dsw | 29 + .../Ultimate Toolbox/lib/JPEG/jpg.mak | 1190 ++ .../Ultimate Toolbox/lib/Libs/Cpuinfd.lib | Bin 0 -> 65690 bytes .../Ultimate Toolbox/lib/Libs/Cpuinfr.lib | Bin 0 -> 9934 bytes .../lib/Processor/Intel/Cpuinf32/CPUID.C | 619 + .../lib/Processor/Intel/Cpuinf32/Cpuid.h | 269 + .../lib/Processor/Intel/Cpuinf32/Cpuinf32.def | 17 + .../lib/Processor/Intel/Cpuinf32/Cpuinf32.dsp | 123 + .../lib/Processor/Intel/Cpuinf32/Cpuinf32.dsw | 41 + .../Cpuinf32/Cpuinf32lib/Cpuinf32lib.dsp | 114 + .../lib/Processor/Intel/Cpuinf32/Speed.c | 742 + .../lib/Processor/Intel/Cpuinf32/Speed.h | 116 + .../Ultimate Toolbox/license.htm | 291 + .../Ultimate Toolbox/source/CONVFILE.CPP | 887 + .../Ultimate Toolbox/source/COPYTREE.CPP | 516 + .../Ultimate Toolbox/source/CPYSTDLG.CPP | 410 + .../Ultimate Toolbox/source/DIR.CPP | 1161 ++ .../Ultimate Toolbox/source/DIRLIST.CPP | 218 + .../Ultimate Toolbox/source/DSTRLIST.CPP | 277 + .../Ultimate Toolbox/source/EVNTLOG.CPP | 699 + .../Ultimate Toolbox/source/FILE.CPP | 363 + .../Ultimate Toolbox/source/FILELIST.CPP | 220 + .../Ultimate Toolbox/source/MDELDLG.CPP | 104 + .../Ultimate Toolbox/source/MFCToolBar.cpp | 104 + .../Ultimate Toolbox/source/OX3DTabView.cpp | 699 + .../source/OXActiveDesktop.cpp | 708 + .../source/OXAdvancedAssert.cpp | 524 + .../source/OXAdvancedAssertMail.cpp | 341 + .../Ultimate Toolbox/source/OXAppBar.cpp | 17 + .../source/OXAutoComplete.cpp | 655 + .../Ultimate Toolbox/source/OXAutoListBox.cpp | 163 + .../Ultimate Toolbox/source/OXBITBUF.CPP | 208 + .../source/OXBMPFilePickerCombo.cpp | 71 + .../Ultimate Toolbox/source/OXBMPFle.cpp | 939 + .../source/OXBackgroundPainter.cpp | 1178 ++ .../source/OXBitmapButton.cpp | 3433 +++ .../Ultimate Toolbox/source/OXBitmapMenu.cpp | 2182 ++ .../source/OXBitmapMenuOrganizer.cpp | 2551 +++ .../source/OXBrowseColorEdit.cpp | 64 + .../source/OXBrowseDirEdit.cpp | 74 + .../source/OXBrowseDirEditList.cpp | 98 + .../source/OXButtonAppearanceDlg.cpp | 147 + .../Ultimate Toolbox/source/OXCMPFL.CPP | 1056 + .../Ultimate Toolbox/source/OXCOMPR.CPP | 416 + .../Ultimate Toolbox/source/OXCRCChk.CPP | 255 + .../source/OXCalculatorCtrl.cpp | 1515 ++ .../source/OXCalculatorEdit.cpp | 64 + .../Ultimate Toolbox/source/OXCalendar.cpp | 559 + .../source/OXCalendarEdit.cpp | 359 + .../source/OXCalendarPopup.cpp | 925 + .../source/OXCaptionPainter.cpp | 2416 +++ .../source/OXChildFrameState.cpp | 705 + .../Ultimate Toolbox/source/OXClipPocket.cpp | 245 + .../source/OXColorPickerButton.cpp | 285 + .../source/OXColorPickerCtrl.cpp | 505 + .../source/OXComboPickerCtrl.cpp | 787 + .../source/OXContextHelpDialog.cpp | 173 + .../source/OXContextHelpPropertyPage.cpp | 182 + .../source/OXContextHelpPropertySheet.cpp | 174 + .../Ultimate Toolbox/source/OXCoolBar.cpp | 1518 ++ .../source/OXCoolComboBox.cpp | 636 + .../source/OXCoolControlOrganizer.cpp | 501 + .../Ultimate Toolbox/source/OXCoolCtrl.cpp | 674 + .../Ultimate Toolbox/source/OXCoolToolBar.cpp | 4596 ++++ .../Ultimate Toolbox/source/OXCsvFile.cpp | 1111 + .../source/OXCustomizeBackgroundPage.cpp | 632 + .../source/OXCustomizeCaptionPage.cpp | 635 + .../source/OXCustomizeCommandsPage.cpp | 2349 +++ .../source/OXCustomizeCoolControlsPage.cpp | 343 + .../source/OXCustomizeInstanceManagerPage.cpp | 663 + .../source/OXCustomizeIntelliMousePage.cpp | 344 + .../source/OXCustomizeManager.cpp | 785 + .../source/OXCustomizePage.cpp | 230 + .../source/OXCustomizeShortkeysPage.cpp | 962 + .../source/OXCustomizeSplashWindowPage.cpp | 434 + .../source/OXCustomizeTabbedMDIPage.cpp | 579 + .../source/OXCustomizeToolbarsPage.cpp | 868 + .../source/OXCustomizeTrayIconPage.cpp | 467 + .../source/OXCustomizeWorkspaceStatePage.cpp | 356 + .../Ultimate Toolbox/source/OXDFlHdr.cpp | 162 + .../Ultimate Toolbox/source/OXDLLManager.cpp | 527 + .../Ultimate Toolbox/source/OXDao.cpp | 1897 ++ .../source/OXDateTimeCtrl.cpp | 480 + .../Ultimate Toolbox/source/OXDckPPg.cpp | 87 + .../Ultimate Toolbox/source/OXDckPSh.cpp | 487 + .../Ultimate Toolbox/source/OXDirDlg.cpp | 442 + .../Ultimate Toolbox/source/OXDlgBar.cpp | 197 + .../source/OXDocTemplateSpy.cpp | 148 + .../Ultimate Toolbox/source/OXDockTabCtrl.cpp | 371 + .../source/OXDragDockContext.CPP | 650 + .../source/OXDragDropCommands.cpp | 233 + .../Ultimate Toolbox/source/OXEdit.cpp | 2714 +++ .../Ultimate Toolbox/source/OXEditList.cpp | 1438 ++ .../Ultimate Toolbox/source/OXFileChanger.cpp | 665 + .../source/OXFileWatchNotifier.cpp | 224 + .../Ultimate Toolbox/source/OXFileWatcher.cpp | 925 + .../source/OXFolderPickerDlg.cpp | 205 + .../source/OXFontComboBox.cpp | 352 + .../source/OXFontPickerButton.cpp | 289 + .../source/OXFrameWndDock.CPP | 3191 +++ .../source/OXFullScreenFrame.cpp | 8 + .../Ultimate Toolbox/source/OXGphFle.cpp | 210 + .../Ultimate Toolbox/source/OXGraphics.cpp | 454 + .../Ultimate Toolbox/source/OXGridHdr.cpp | 454 + .../Ultimate Toolbox/source/OXGridList.cpp | 2760 +++ .../Ultimate Toolbox/source/OXHTMLParser.cpp | 1085 + .../Ultimate Toolbox/source/OXHashTable.cpp | 318 + .../source/OXHistoryCombo.cpp | 1274 ++ .../Ultimate Toolbox/source/OXHistoryCtrl.cpp | 552 + .../Ultimate Toolbox/source/OXHookWnd.cpp | 389 + .../source/OXHyperBarOverlay.cpp | 135 + .../source/OXHyperBarRender.cpp | 309 + .../source/OXHyperFrameWnd.cpp | 37 + .../source/OXHyperLinkAction.cpp | 318 + .../Ultimate Toolbox/source/OXHyperbar.cpp | 225 + .../Ultimate Toolbox/source/OXIPEdit.cpp | 145 + .../source/OXImageListBox.cpp | 495 + .../Ultimate Toolbox/source/OXImageViewer.cpp | 562 + .../source/OXInstanceManager.cpp | 672 + .../Ultimate Toolbox/source/OXInteger.cpp | 221 + .../source/OXIntelliMouse.cpp | 1343 ++ .../Ultimate Toolbox/source/OXItemTip.cpp | 564 + .../Ultimate Toolbox/source/OXItemTipWnd.cpp | 463 + .../source/OXIteratorRegistryItem.cpp | 516 + .../source/OXIteratorService.cpp | 282 + .../Ultimate Toolbox/source/OXIteratorUNC.cpp | 499 + .../Ultimate Toolbox/source/OXJPGCod.cpp | 348 + .../Ultimate Toolbox/source/OXJPGCom.cpp | 301 + .../Ultimate Toolbox/source/OXJPGDom.cpp | 325 + .../Ultimate Toolbox/source/OXJPGExp.cpp | 65 + .../Ultimate Toolbox/source/OXJPGFle.cpp | 614 + .../source/OXLayoutManager.cpp | 1016 + .../Ultimate Toolbox/source/OXListBoxEx.cpp | 1904 ++ .../Ultimate Toolbox/source/OXListEdit.cpp | 239 + .../Ultimate Toolbox/source/OXMDIFloatWnd.cpp | 242 + .../Ultimate Toolbox/source/OXMaskedEdit.cpp | 1462 ++ .../Ultimate Toolbox/source/OXMenuBar.cpp | 2912 +++ .../Ultimate Toolbox/source/OXMetaFile.cpp | 329 + .../source/OXMonthCalCtrl.cpp | 1389 ++ .../source/OXMultiComboBox.cpp | 1102 + .../source/OXMulticlipboardDlg.cpp | 678 + .../source/OXNetBrowseTree.cpp | 999 + .../source/OXNotesEditView.cpp | 909 + .../source/OXOptionTreeCtrl.cpp | 776 + .../Ultimate Toolbox/source/OXParser.cpp | 2438 +++ .../source/OXPhysicalEdit.cpp | 372 + .../source/OXPhysicalEditEx.cpp | 475 + .../source/OXPopupBarCtrl.cpp | 2155 ++ .../source/OXPreviewDialog.cpp | 2359 +++ .../Ultimate Toolbox/source/OXProcess.cpp | 606 + .../source/OXPropertiesWnd.cpp | 794 + .../source/OXPropertyDescriptionPane.cpp | 84 + .../source/OXPropertyTree.cpp | 109 + .../Ultimate Toolbox/source/OXQuickString.cpp | 503 + .../Ultimate Toolbox/source/OXRectTracker.cpp | 162 + .../source/OXRegExpression.cpp | 1552 ++ .../source/OXRegistryItem.cpp | 1865 ++ .../source/OXRegistryValFile.cpp | 140 + .../source/OXRegistryWatchNotifier.cpp | 105 + .../source/OXRegistryWatcher.cpp | 541 + .../source/OXResourceFile.cpp | 418 + .../source/OXResourceLibrary.cpp | 455 + .../Ultimate Toolbox/source/OXRollup.CPP | 890 + .../source/OXRoundedButton.cpp | 492 + .../source/OXRulerOrganizer.cpp | 796 + .../Ultimate Toolbox/source/OXScreenGrab.cpp | 265 + .../Ultimate Toolbox/source/OXScript.cpp | 305 + .../Ultimate Toolbox/source/OXScrollTip.cpp | 398 + .../source/OXScrollTipOwner.cpp | 795 + .../Ultimate Toolbox/source/OXScrollWnd.cpp | 2344 +++ .../Ultimate Toolbox/source/OXSeparator.cpp | 303 + .../Ultimate Toolbox/source/OXService.cpp | 780 + .../Ultimate Toolbox/source/OXShape.cpp | 227 + .../Ultimate Toolbox/source/OXShdWnd.cpp | 252 + .../source/OXShellFolderTree.cpp | 1303 ++ .../source/OXShellNamespaceNavigator.cpp | 1577 ++ .../source/OXShellObjectList.cpp | 772 + .../Ultimate Toolbox/source/OXShortcut.cpp | 679 + .../Ultimate Toolbox/source/OXShortcutBar.cpp | 9689 +++++++++ .../source/OXShortkeysOrganizer.cpp | 1045 + .../Ultimate Toolbox/source/OXSizeCtrlBar.CPP | 1216 ++ .../Ultimate Toolbox/source/OXSizeDlgBar.cpp | 448 + .../Ultimate Toolbox/source/OXSizeDockBar.cpp | 2680 +++ .../Ultimate Toolbox/source/OXSizeToolBar.cpp | 543 + .../source/OXSkinnedComboBox.cpp | 208 + .../source/OXSkinnedSpinCtrl.cpp | 129 + .../source/OXSkinnedTabCtrl.cpp | 60 + .../Ultimate Toolbox/source/OXSkins.cpp | 9494 +++++++++ .../Ultimate Toolbox/source/OXSound.cpp | 817 + .../source/OXSoundCustomizeDlg.cpp | 1801 ++ .../source/OXSoundEffectManager.cpp | 1076 + .../Ultimate Toolbox/source/OXSoundWnd.cpp | 126 + .../Ultimate Toolbox/source/OXSpinCtrl.cpp | 582 + .../Ultimate Toolbox/source/OXSplashWnd.cpp | 537 + .../source/OXSplashWndDIB.cpp | 547 + .../source/OXSplitterColRowState.cpp | 248 + .../source/OXSplitterRect.cpp | 110 + .../Ultimate Toolbox/source/OXSplitterWnd.cpp | 336 + .../Ultimate Toolbox/source/OXStatic.cpp | 779 + .../source/OXStaticHyperLink.cpp | 249 + .../Ultimate Toolbox/source/OXStaticText.cpp | 1426 ++ .../Ultimate Toolbox/source/OXSysInfo.cpp | 2203 ++ .../source/OXSzMiniDockFrmWnd.cpp | 797 + .../source/OXTabClientWnd.cpp | 1157 + .../Ultimate Toolbox/source/OXTabView.cpp | 1728 ++ .../Ultimate Toolbox/source/OXTaskPanel.cpp | 764 + .../Ultimate Toolbox/source/OXTaskbarIcon.cpp | 227 + .../Ultimate Toolbox/source/OXTleBar.CPP | 420 + .../Ultimate Toolbox/source/OXToolTipCtrl.cpp | 1127 + .../Ultimate Toolbox/source/OXTrace.cpp | 691 + .../Ultimate Toolbox/source/OXTreeCal.cpp | 160 + .../Ultimate Toolbox/source/OXTreeCombo.cpp | 113 + .../Ultimate Toolbox/source/OXTreeCtrl.cpp | 4371 ++++ .../Ultimate Toolbox/source/OXTreeEdit.cpp | 186 + .../Ultimate Toolbox/source/OXTreeHeader.cpp | 438 + .../Ultimate Toolbox/source/OXTreeItem.cpp | 1169 ++ .../Ultimate Toolbox/source/OXUNC.cpp | 1212 ++ .../source/OXUNCStandardActor.cpp | 1286 ++ .../Ultimate Toolbox/source/OXURL.cpp | 532 + .../Ultimate Toolbox/source/OXUUDec.cpp | 693 + .../Ultimate Toolbox/source/OXUsertl.cpp | 495 + .../Ultimate Toolbox/source/OXUxTheme.cpp | 108 + .../Ultimate Toolbox/source/OXWABook.cpp | 2084 ++ .../Ultimate Toolbox/source/OXWatchedDir.cpp | 263 + .../source/OXWorkspaceState.cpp | 1417 ++ .../Ultimate Toolbox/source/Oxdib.cpp | 2810 +++ .../Ultimate Toolbox/source/Oxzoomvw.cpp | 1508 ++ .../Ultimate Toolbox/source/PATHITER.CPP | 86 + .../Ultimate Toolbox/source/PROGRESS.CPP | 131 + .../Ultimate Toolbox/source/Path.cpp | 1167 ++ .../Ultimate Toolbox/source/UTBStrOp.cpp | 226 + .../source/UTSampleAbout/HtmlCtrl.cpp | 104 + .../source/UTSampleAbout/HtmlCtrl.h | 40 + .../source/UTSampleAbout/UTSampleAbout.cpp | 109 + .../source/UTSampleAbout/UTSampleAbout.h | 45 + .../source/UTSampleAbout/UTSampleAbout.rc | 140 + .../UTSampleAbout/UTSampleAboutResource.h | 20 + .../source/UTSampleAbout/res/UTBLogo.bmp | Bin 0 -> 36918 bytes .../UTSampleAbout/res/UTSampleAbout.rc2 | 13 + .../Ultimate Toolbox/source/WATCHBUF.CPP | 216 + .../Ultimate Toolbox/source/XSTRING.CPP | 291 + .../Ultimate Toolbox/source/Xstatus4.cpp | 1139 + .../Ultimate Toolbox/source/oxgridedit.cpp | 317 + .../Ultimate Toolbox/source/oxwebctrl.cpp | 230 + 3659 files changed, 841079 insertions(+) create mode 100644 UltimateToolbox93_docs/Problems.txt create mode 100644 UltimateToolbox93_docs/UTBX93.chm create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/BDIFCALC.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXBlob.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXBlob.inl create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXBmpPrv.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCmdLne.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCmdOpd.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCmdOpt.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCmdlEx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCommMsg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCommon.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCommon.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCommunicator.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXDFlHdr.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXDispatchMarshaller.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXFinalReleaseWnd.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXMetafileViewer.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXOwnThread.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXOwnThreadCmdTarget.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXPrvDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXResultObj.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXResultPart.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXResultPartDef.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSCCFG.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSCCNST.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSCEXCP.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSCFILE.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSCSTP.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSEH.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSERCOM.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSERCOM.RC create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSPtr.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSPtr.inl create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSRLZR.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSendMail.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXStaticMenuItem.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXThreadEngine.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXTimer.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXVariant.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXVariant.inl create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXVerinfo.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXWebView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXWebView.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/PROGRESS.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/UTB64Bit.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/XMAINFRM.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/XMDICLT.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/include/oxmdisp.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/ChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/ChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.odl create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.reg create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/CommunicatorDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/CommunicatorDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/CommunicatorInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/CommunicatorView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/CommunicatorView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/HexView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/HexView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/OXDataCommunicator.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/OXDataCommunicator.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/SendDataDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/res/Communicator.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/res/Communicator.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/res/CommunicatorDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/senddatadlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/CgiHandler.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/CgiHandler.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailCmd.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailEngine.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailEngine.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailMessage.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailMessage.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.SUP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.odl create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSendDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSendDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/SendMail.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/SendMail.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/cgitooledrv.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/cgitooledrv.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/res/MailSend.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/res/MailSend.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/ChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/ChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/OXDocMgr.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/OXDocMgr.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/OXWinApp.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/OXWinApp.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.001 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.reg create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/PreviewDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/PreviewDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/PreviewView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/PreviewView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/previewInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/res/Preview.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/res/Preview.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/res/PreviewDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/test.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDEMO.TXT create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemo.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemo.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemo.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemo.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemo.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemo.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemoDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemoDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/res/SEHDemo.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/res/SEHDemo.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/sehDemoInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/Globals.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/Globals.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/MainFrame.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/MainFrame.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/SendView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/SendView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/Serial.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/Serial.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/Serial.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/Serial.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/Serial.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/SerialDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/SerialDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/SerialInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/SerialView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/SerialView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/TimeoutDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/TimeoutDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/TransferDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/TransferDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/res/Serial.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/res/Serial.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/res/SerialDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/BDIFCALC.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXBlob.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXBmpPrv.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXCmdLne.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXCmdOpd.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXCmdOpt.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXCmdlEx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXCommMsg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXCommunicator.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXDFlHdr.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXDispatchMarshaller.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXFinalReleaseWnd.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXMetafileViewer.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXOwnThread.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXOwnThreadCmdTarget.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXPrvDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXResultObj.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXResultPart.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSCCFG.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSCEXCP.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSCFILE.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSCSTP.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSEH.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSPtr.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSRLZR.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSendMail.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXStaticMenuItem.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXThreadEngine.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXTimer.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXVariant.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXVerinfo.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXWebView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/PROGRESS.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/XMAINFRM.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/XMDICLT.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/archive/source/oxmdisp.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/AllSamples/AllSamples.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/AllSamples/AllSamples.sln create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLL.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLL.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLL.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLL.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLL.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLLDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLLDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/res/UsingDLL.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/res/UsingDLL.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.sln create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLibDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLibDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/res/UsingStaticLib.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/res/UsingStaticLib.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/ChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/ChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.sln create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.vssscc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManagerDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManagerDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManagerView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManagerView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/res/CustomizeManager.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/res/CustomizeManager.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/res/CustomizeManagerDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/res/background.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/res/splash.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManagerDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManagerDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManagerInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManagerView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManagerView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ExportDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ExportDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ImageInfoDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ImageInfoDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ImportDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ImportDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/OXDocMgr.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/OXDocMgr.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/OXWinApp.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/OXWinApp.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ProtectedFile.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ProtectedFile.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ResampleImageDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ResampleImageDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/SSEXP.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ScaleRollupDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ScaleRollupDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ShowProgress.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/TreeFilesDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/TreeFilesDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/WorkspaceDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/WorkspaceDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/BMPdemo.BMP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/DIBManager.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/DIBManager.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/DIBManagerDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/Dog.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/Logo.BMP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/ToolbarHot.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/check.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/dummy.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/dummyhot.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/icsreportlogo.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/imagelis.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/logo_dum.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/mainfram.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/mainfram_copy.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorerDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorerDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorerInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorerView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorerView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/LeftView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/LeftView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/res/FileExplorer.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/res/FileExplorer.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/res/FileExplorerDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/res/bitmap1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/res/bm_file.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/res/tb_file_disabled.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/res/tb_file_hot.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookFormView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookFormView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookLikeDemo.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookListView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookListView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookTreeView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookTreeView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/SHBPropertiesDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/SHBPropertiesDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/res/Outlook.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/res/Outlook.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/res/OutlookDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/res/TreeImages.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/res/bitmap4.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/res/icon1.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/res/large.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/res/outlook2003.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/res/small.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/CaptureTaskbarIcon.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/CaptureTaskbarIcon.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/HelpIDs.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageActivation.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageActivation.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageDestination.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageDestination.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageFile.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageFile.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageImage.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageImage.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPagePreferences.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPagePreferences.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageSource.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageSource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertySheetCapture.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertySheetCapture.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabberInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/WndTrackingHelper.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/WndTrackingHelper.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/res/ScreenGrabber.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/res/ScreenGrabber.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/screenshot.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/ChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/ChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/FoldersBar.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/FoldersBar.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/PropertiesBar.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/PropertiesBar.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.sln create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.vcproj.vspscc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemoDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemoDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemoView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemoView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/WorkspaceBar.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/WorkspaceBar.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/SkinsDemo.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/SkinsDemo.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/SkinsDemoDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/Toolbar2Disabled.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/Toolbar2Hot.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/Toolbar2Normal.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/TreeImages.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/large.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/small.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/toolbar2.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/ApplicationsDialog.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/ApplicationsDialog.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/NetworkResourcesDialog.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/NetworkResourcesDialog.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/PageDialog.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/PageDialog.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/ProcessesDialog.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/ProcessesDialog.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SSIDialog.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SSIDialog.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SSITaskbarIcon.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SSITaskbarIcon.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/ServicesDialog.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/ServicesDialog.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SysInfoDialog.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SysInfoDialog.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/Logo.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/SystemStateInfo.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/SystemStateInfo.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/bitmap_r.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/idr_main.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/processe.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/services.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/shb_larg.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/shb_smal.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/sysinfo_.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/3DTabViewBar.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/3DTabViewBar.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/ChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/ChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/StandardToolBar.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/StandardToolBar.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/TabViewBar.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/TabViewBar.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.sln create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemoDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemoDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemoView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemoView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/Logo.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/VisualStudioLikeDemo.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/VisualStudioLikeDemo.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/VisualStudioLikeDemo.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/VisualStudioLikeDemoDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/bmp00001.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/coolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/ico1.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/ico2.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/ico3.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/ico4.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/ico5.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/ico6.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/il_3dtab.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/il_class.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/il_filev.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/tb_window.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/toolbar1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/cgidemo.htm create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/cgiscrpt.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/cgiscrpt.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/cgiscrpt.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/helloscp.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/helloscp.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/stdafx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/stdafx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/DaoDemoInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/customer.mdb create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demoDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demoDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/res/demo.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/res/demo.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvFileInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTestDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTestDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/headers.csv create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/noheader.csv create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/out.csv create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/res/CsvTest.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/res/CsvTest.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/trace.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/EnterNewDir.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/EnterNewDir.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcherDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcherDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcherInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/res/FileWatcher.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/res/FileWatcher.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/OXCheck.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/UNCListDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/UNCListDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemoDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemoDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/res/URLDemo.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/res/URLDemo.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/urldemoinfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/Firework.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/Firework.jpg create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewer.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewer.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewer.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewer.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewer.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewer.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewer.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewer.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewerDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewerDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewerView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewerView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/Resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/dog.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/dog.jpg create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/res/ImageViewer.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/res/ImageViewer.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/res/ImageViewerDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtest.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtest.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtest.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtest.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtest.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtest.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtest.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtest.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtestDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtestDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/bitmap1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/bitmap1.jpg create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/jpegtestinfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/res/JPGtest.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/res/JPGtest.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/ChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/ChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.reg create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFileDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFileDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFileInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFileView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFileView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/AGREE.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/AMCONFUS.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/AMDISAST.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/AMHAPPY.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/AMIDEA.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/AMORGANI.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/AMPROBLE.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/AMVICTOR.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/AMWIN.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/ARROWS1.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/ARROWS2.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/ARROWS3.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/ARROWS4.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/ARROWS5.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/ARROWS6.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/ARROWS7.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/ARROWS8.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/ARROWSGN.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/BANDAID.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/BEARTRAP.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/BOMB.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/BRICK.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/BUILDING.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/CAR.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/CHAMPGNE.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/CHECKMRK.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/CLAP.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/CLOCK.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/COINS.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/DARTS.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/DESTRYER.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/DICE.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/DIPLOMA.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/DOMINOES.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/DONKEY.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/DOOR.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/DOVE.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/DYNAMITE.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/EXAMINE.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/FISTSLAM.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/FLOWER.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/HAMMER.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/HATECOMP.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/HNDSHAK1.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/HNDSHAK2.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/HNDSHAK3.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/JETPLANE.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/JIGSAW.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/KEY.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/LIGHT.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/LION.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/LOCK.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/MAGICHAT.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/MAGNIFY.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/MEETING.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/MEETING2.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/MONEY.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/MONEYBAG.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/OILDRILL.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/OPENHAND.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/PTRUP.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/RABBIT.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/RIBBON.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/RUNNER.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/SAILBOAT.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/SCALES.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/SHARK.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/SOCCER.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/STAR.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/STOP.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/STOPLGHT.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/TENNIS.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/THUMBDN.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/TRIUMPH.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/TROPHY.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/TURTLE.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/WEARHAT.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/WHATNOW.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/YINYANG.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/new.emf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/res/MetaFile.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/res/MetaFile.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/res/MetaFileDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Splash/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Splash/Splash.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Splash/Splash.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Splash/Splash.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Splash/Splash.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Splash/Splash.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Splash/Splash.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Splash/Splash.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Splash/Splash.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Splash/SplashDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Splash/SplashDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Splash/SplashInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Splash/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Splash/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Splash/res/Splash.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Splash/res/Splash.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Splash/res/Splsh16.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Splash/res/sample.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Splash/res/sample1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Splash/res/sample16.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Splash/res/sample256.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Splash/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/3DTabViews.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/3DTabViewsInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/ChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/ChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/Customize.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/Customize.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/HexView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/HexView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/StatisticsView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/StatisticsView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/TabViews.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/TabViews.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/TabViews.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/TabViews.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/TabViews.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/TabViews.sln create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/TabViews.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/TabViewsDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/TabViewsDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/TabViewsView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/TabViewsView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/res/TabViews.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/res/TabViews.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/res/TabViewsDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/res/il_tabvi.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/3DTabViews/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ApplicationBar/AppBar.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ApplicationBar/ApplicationBar.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ApplicationBar/ApplicationBar.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ApplicationBar/ApplicationBar.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ApplicationBar/ApplicationBar.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ApplicationBar/ApplicationBar.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ApplicationBar/ApplicationBar.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ApplicationBar/ApplicationBar.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ApplicationBar/ApplicationBar.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ApplicationBar/ApplicationBarDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ApplicationBar/ApplicationBarDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ApplicationBar/OptionsDialog.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ApplicationBar/OptionsDialog.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ApplicationBar/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ApplicationBar/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ApplicationBar/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ApplicationBar/res/ApplicationBar.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ApplicationBar/res/ApplicationBar.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ApplicationBar/res/bitmap1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ApplicationBar/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/AutoComplete/AutoComplete.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/AutoComplete/AutoComplete.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/AutoComplete/AutoComplete.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/AutoComplete/AutoComplete.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/AutoComplete/AutoComplete.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/AutoComplete/AutoComplete.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/AutoComplete/AutoComplete.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/AutoComplete/AutoCompleteDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/AutoComplete/AutoCompleteDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/AutoComplete/COXAutoComplete.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/AutoComplete/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/AutoComplete/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/AutoComplete/res/AutoComplete.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/AutoComplete/res/AutoComplete.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/AutoComplete/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/BackgroundPainter.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/BackgroundPainter.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/BackgroundPainter.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/BackgroundPainter.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/BackgroundPainter.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/BackgroundPainter.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/BackgroundPainter.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/BackgroundPainterDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/BackgroundPainterDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/BackgroundPainterInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/BackgroundPainterView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/BackgroundPainterView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/ChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/ChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/Images/Blue Monday.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/Images/Coffee Bean.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/Images/Fiddle Head.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/Images/Furry Dog.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/Images/Geometrix.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/Images/Gone Fishing.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/Images/Greenstone.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/Images/Hiking Boot.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/Images/Maple Trails.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/Images/Prairie Wind.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/Images/Rhododendron.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/Images/River Sumida.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/Images/Santa Fe Stucco.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/Images/Seaside.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/Images/Snakeskin.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/Images/Soap Bubbles.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/Images/Solstice.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/Images/Swimming Pool.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/Images/Zapotec.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/Images/winnt.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/LogoDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/LogoDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/TestDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/TestDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/res/BackgroundPainter.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/res/BackgroundPainter.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/res/BackgroundPainterDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/res/Logo.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/res/Maple Trails.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/res/winnt256.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BackgroundPainter/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/BitmapButtonDemo.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/BitmapButtonDemo.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/BitmapButtonDemo.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/BitmapButtonDemo.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/BitmapButtonDemo.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/BitmapButtonDemo.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/BitmapButtonDemo.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/BitmapButtonDemoDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/BitmapButtonDemoDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/HyperDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/HyperDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/bitmapbuttonInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/res/BitmapButtonDemo.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/res/BitmapButtonDemo.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/res/OXHandCursor.cur create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/res/OXNoHandCursor.cur create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/res/Test.AVI create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/res/TestBitmap.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/res/ToolBitmap1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/res/ToolBitmap3.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/res/ToolIcon2.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/res/avi_test.avi create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/res/bitmap1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/res/bmp00001.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/res/bmp00002.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/res/bmp00003.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/res/copy_fl.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/res/cursor1.cur create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/res/del_file.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/res/dillo.avi create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/res/icon1.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/res/search.avi create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/res/space.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/res/sun.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/res/test_bit.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/res/tick.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapButton/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/BitmapMenuDemo.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/BitmapMenuDemo.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/BitmapMenuDemo.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/BitmapMenuDemo.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/BitmapMenuDemo.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/BitmapMenuDemo.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/BitmapMenuDemo.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/BitmapMenuDemo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/BitmapMenuDemo.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/BitmapMenuDemoDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/BitmapMenuDemoDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/BitmapMenuDemoView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/BitmapMenuDemoView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/ChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/ChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/res/BitmapMenuDemo.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/res/BitmapMenuDemo.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/res/BitmapMenuDemoDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/res/FolderOp.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/res/Hellobox.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/res/Page.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/res/PageChk.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/res/blankbox.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/BitmapMenuDemo/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Calc/CALC.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Calc/CALC.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Calc/CALCDLG.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Calc/CALCKEY.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Calc/CALCKEY.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Calc/CalInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Calc/Calc.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Calc/Calc.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Calc/Calc.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Calc/Calc.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Calc/Calcdlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Calc/STDAFX.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Calc/STDAFX.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Calc/calc.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Calc/calc.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Calc/res/CALC.ICO create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Calc/res/CALC.RC2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Calc/res/STARS.BMP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Calc/res/title.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Calc/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CalculatorCtrl/CalculatorCtrl.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CalculatorCtrl/CalculatorCtrl.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CalculatorCtrl/CalculatorCtrl.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CalculatorCtrl/CalculatorCtrl.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CalculatorCtrl/CalculatorCtrl.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CalculatorCtrl/CalculatorCtrl.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CalculatorCtrl/CalculatorCtrl.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CalculatorCtrl/CalculatorCtrlDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CalculatorCtrl/CalculatorCtrlDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CalculatorCtrl/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CalculatorCtrl/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CalculatorCtrl/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CalculatorCtrl/res/CalculatorCtrl.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CalculatorCtrl/res/CalculatorCtrl.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CalculatorCtrl/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/CaptionPainter.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/CaptionPainterInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/CustomizeCaptionDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/CustomizeCaptionDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/CustomizeDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/CustomizeDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/MultiPad.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/Multipad.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/mpadmac.r create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/multipad.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/multipad.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/multipad.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/multipad.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/multipad.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/res/bmp00001.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/res/bmp00003.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/res/bmp00004.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/res/bmp00006.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/res/multipad.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/res/paddoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/res/toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/res/toolbar1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/res/toolbar_.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/stdafx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/stdafx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CaptionPainter/unicode.utf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ColorPickerButton/ColorPickerButton.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ColorPickerButton/ColorPickerButton.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ColorPickerButton/ColorPickerButton.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ColorPickerButton/ColorPickerButton.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ColorPickerButton/ColorPickerButton.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ColorPickerButton/ColorPickerButton.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ColorPickerButton/ColorPickerButton.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ColorPickerButton/ColorPickerButton.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ColorPickerButton/ColorPickerButtonDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ColorPickerButton/ColorPickerButtonDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ColorPickerButton/ColorPickerButtonInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ColorPickerButton/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ColorPickerButton/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ColorPickerButton/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ColorPickerButton/res/ColorPickerButton.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ColorPickerButton/res/ColorPickerButton.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ColorPickerButton/res/bitmap1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ColorPickerButton/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ComboTree/ComboOXTree.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ComboTree/ComboOXTree.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ComboTree/ComboTree.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ComboTree/ComboTree.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ComboTree/ComboTree.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ComboTree/ComboTree.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ComboTree/ComboTree.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ComboTree/ComboTree.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ComboTree/ComboTree.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ComboTree/ComboTree.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ComboTree/ComboTree.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ComboTree/ComboTreeDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ComboTree/ComboTreeDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ComboTree/FolderPicker.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ComboTree/FolderPicker.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ComboTree/FolderTree.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ComboTree/FolderTree.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ComboTree/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ComboTree/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ComboTree/res/ComboTree.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ComboTree/res/ComboTree.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ComboTree/res/bitmap1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ComboTree/res/bitmap2.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ComboTree/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/CntxHlpInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/ContextHelp.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/ContextHelp.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/ContextHelp.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/ContextHelp.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/ContextHelp.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/ContextHelp.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/ContextHelp.hlp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/ContextHelp.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/ContextHelp.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/ContextHelp.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/ContextHelp.vcproj.vspscc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/ContextHelpDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/ContextHelpDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/HelpIDs.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/TestDialog.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/TestDialog.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/TestSheet.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/TestSheet.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/res/ContextHelp.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/res/ContextHelp.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/res/bitmap1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/resource.hm create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/test2page.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/test2page.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/testpage.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ContextHelp/testpage.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/CoolBar.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/CoolBarInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/CustomizeDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/CustomizeDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/MultiPad.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/Multipad.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/mpadmac.r create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/multipad.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/multipad.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/multipad.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/multipad.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/res/CoolBarWallPaper.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/res/bmp00001.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/res/bmp00003.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/res/bmp00004.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/res/bmp00006.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/res/coolbar_.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/res/multipad.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/res/paddoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/res/toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/res/toolbar1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/res/toolbar_.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/res/wallppr.pal create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/stdafx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/stdafx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolBar/unicode.utf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolCombo/CoolCombo.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolCombo/CoolCombo.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolCombo/CoolCombo.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolCombo/CoolCombo.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolCombo/CoolCombo.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolCombo/CoolCombo.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolCombo/CoolCombo.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolCombo/CoolCombo.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolCombo/CoolComboBoxInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolCombo/CoolComboDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolCombo/CoolComboDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolCombo/CoolComboView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolCombo/CoolComboView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolCombo/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolCombo/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolCombo/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolCombo/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolCombo/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolCombo/res/CoolCombo.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolCombo/res/CoolCombo.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolCombo/res/CoolComboDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolCombo/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolCombo/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/CoolControls.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/CoolControls.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/CoolControls.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/CoolControls.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/CoolControls.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/CoolControls.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/CoolControls.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/CoolControls.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/CoolControlsDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/CoolControlsDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/CoolControlsInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/PropertyPageButtonComboBox.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/PropertyPageButtonComboBox.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/PropertyPageEdit.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/PropertyPageEdit.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/PropertyPageListTree.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/PropertyPageListTree.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/PropertyPageNewControls.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/PropertyPageNewControls.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/PropertyPageSpinAndOthers.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/PropertyPageSpinAndOthers.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/res/CoolControls.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/res/CoolControls.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/res/il_small.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolControls/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/CoolToolBar.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/CoolToolBarInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/CustomizeDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/CustomizeDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/CustomizeMTIWorkspace.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/CustomizeMTIWorkspace.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/MultiPad.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/Multipad.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/WorkspaceDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/WorkspaceDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/mpadmac.r create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/multipad.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/multipad2.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/multipad2.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/res/bmp00001.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/res/bmp00003.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/res/bmp00004.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/res/bmp00006.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/res/multipad.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/res/paddoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/res/toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/res/toolbar1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/res/toolbar_.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/stdafx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/stdafx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/CoolToolBar/unicode.utf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DateTimePicker/DateTimePicker.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DateTimePicker/DateTimePicker.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DateTimePicker/DateTimePicker.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DateTimePicker/DateTimePicker.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DateTimePicker/DateTimePicker.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DateTimePicker/DateTimePicker.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DateTimePicker/DateTimePicker.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DateTimePicker/DateTimePicker.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DateTimePicker/DateTimePickerDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DateTimePicker/DateTimePickerDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DateTimePicker/DateTimePickerInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DateTimePicker/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DateTimePicker/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DateTimePicker/res/DateTimePicker.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DateTimePicker/res/DateTimePicker.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DateTimePicker/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/ChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/ChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/DockOropInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/DockProp.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/DockProp.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/DockProp.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/DockProp.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/DockProp.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/DockProp.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/DockProp.sln create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/DockProp.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/DockPropDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/DockPropDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/DockPropInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/DockPropView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/DockPropView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/MeasPage.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/MeasSht.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/MeasSht.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/SctPage.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/SctPage.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/SectBar.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/SectBar.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/measpage.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/res/DockProp.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/res/DockProp.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/res/DockPropDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockProp/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/DOCKTDOC.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/DOCKTDOC.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/DOCKTEST.CLW create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/DOCKTEST.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/DOCKTVW.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/DOCKTVW.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/Dockchil.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/Dockchil.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/Docktest.RC create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/Docktest.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/Docktest.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/Docktest.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/Docktest.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/Docktest.sln create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/Docktest.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/Docktest.vcproj.vspscc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/Docktestinfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/LogoDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/LogoDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/MAINFRM.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/MAINFRM.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/Mysizeba.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/Mysizeba.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/STDAFX.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/STDAFX.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/TabViewBar.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/TabViewBar.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/res/BUTTON.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/res/DOCKTEST.RC2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/res/Logo16.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/res/bitmap3.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/res/bmp00001.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/res/docktdoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/res/docktest.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/res/toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/DockView/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/EditList1/EditList1.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/EditList1/EditList1.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/EditList1/EditList1.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/EditList1/EditList1.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/EditList1/EditList1.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/EditList1/EditList1.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/EditList1/EditList1.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/EditList1/EditList1.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/EditList1/EditList1Dlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/EditList1/EditList1Dlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/EditList1/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/EditList1/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/EditList1/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/EditList1/editlist1info.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/EditList1/res/EditList1.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/EditList1/res/EditList1.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/EditList1/res/bitmap1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/EditList1/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtTreeDemo/ExtTreeDemo.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtTreeDemo/ExtTreeDemo.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtTreeDemo/ExtTreeDemo.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtTreeDemo/ExtTreeDemo.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtTreeDemo/ExtTreeDemo.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtTreeDemo/ExtTreeDemo.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtTreeDemo/ExtTreeDemo.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtTreeDemo/ExtTreeDemo.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtTreeDemo/ExtTreeDemoDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtTreeDemo/ExtTreeDemoDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtTreeDemo/ExtTreeDemoInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtTreeDemo/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtTreeDemo/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtTreeDemo/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtTreeDemo/res/ExtTreeDemo.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtTreeDemo/res/ExtTreeDemo.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtTreeDemo/res/bitmap1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtTreeDemo/res/bitmap2.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtTreeDemo/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/CurrencyEditDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/CurrencyEditDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/DropEditDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/DropEditDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/EditExtensionsInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/EditExtensionsSht.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/EditExtensionsSht.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/ExtendedEditControls.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/ExtendedEditControls.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/ExtendedEditControls.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/ExtendedEditControls.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/ExtendedEditControls.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/ExtendedEditControls.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/ExtendedEditControls.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/ExtendedEditDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/ExtendedEditDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/MaskedEditDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/MaskedEditDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/NumericEditDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/NumericEditDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/PhysicalEditDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/PhysicalEditDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/res/ExtendedEditControls.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/res/ExtendedEditControls.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedEditControls/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedListBox/ExtendedListBox.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedListBox/ExtendedListBox.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedListBox/ExtendedListBox.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedListBox/ExtendedListBox.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedListBox/ExtendedListBox.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedListBox/ExtendedListBox.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedListBox/ExtendedListBox.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedListBox/ExtendedListBox.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedListBox/ExtendedListBoxDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedListBox/ExtendedListBoxDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedListBox/ExtendedListBoxInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedListBox/ExtendedListBoxView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedListBox/ExtendedListBoxView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedListBox/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedListBox/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedListBox/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedListBox/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedListBox/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedListBox/res/ExtendedListBox.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedListBox/res/ExtendedListBox.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedListBox/res/ExtendedListBoxDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedListBox/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedListBox/res/il_listboxex.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedListBox/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedTreeControl/ExtendedTreeControl.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedTreeControl/ExtendedTreeControl.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedTreeControl/ExtendedTreeControl.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedTreeControl/ExtendedTreeControl.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedTreeControl/ExtendedTreeControl.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedTreeControl/ExtendedTreeControl.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedTreeControl/ExtendedTreeControl.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedTreeControl/ExtendedTreeControl.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedTreeControl/ExtendedTreeControlDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedTreeControl/ExtendedTreeControlDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedTreeControl/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedTreeControl/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedTreeControl/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedTreeControl/il_tree.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedTreeControl/res/ExtendedTreeControl.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedTreeControl/res/ExtendedTreeControl.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ExtendedTreeControl/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FontPickers/FontPickerButtonInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FontPickers/FontPickers.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FontPickers/FontPickers.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FontPickers/FontPickers.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FontPickers/FontPickers.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FontPickers/FontPickers.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FontPickers/FontPickers.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FontPickers/FontPickers.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FontPickers/FontPickers.sln create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FontPickers/FontPickers.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FontPickers/FontPickersDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FontPickers/FontPickersDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FontPickers/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FontPickers/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FontPickers/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FontPickers/res/FontPickers.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FontPickers/res/FontPickers.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FontPickers/res/bitmap1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FontPickers/res/font.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FontPickers/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FullScreen/ChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FullScreen/ChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FullScreen/FullScreen.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FullScreen/FullScreen.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FullScreen/FullScreen.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FullScreen/FullScreen.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FullScreen/FullScreen.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FullScreen/FullScreen.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FullScreen/FullScreen.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FullScreen/FullScreenDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FullScreen/FullScreenDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FullScreen/FullScreenView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FullScreen/FullScreenView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FullScreen/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FullScreen/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FullScreen/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FullScreen/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FullScreen/res/FullScreen.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FullScreen/res/FullScreen.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FullScreen/res/FullScreenDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FullScreen/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FullScreen/res/toolbar1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/FullScreen/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/GridCdoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/GridCdoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/GridCtrl.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/GridCtrl.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/GridCtrl.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/GridCtrl.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/GridCtrl.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/GridCtrl.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/GridCtrl.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/GridCtrl.sln create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/GridCtrl.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/GridCvw.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/GridCvw.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/mainfrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/mainfrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/res/GridCdoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/res/GridCtrl.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/res/GridCtrl.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/res/OXGridListImg.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/res/bitmap1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/res/bmp00001.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/res/icon2.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/res/icon3.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/res/idr_main.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/res/toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/stdafx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/GridCtrl/stdafx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HistCmbo/HistoryComboDemo.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HistCmbo/HistoryComboDemo.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HistCmbo/HistoryComboDemo.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HistCmbo/HistoryComboDemo.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HistCmbo/HistoryComboDemo.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HistCmbo/HistoryComboDemo.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HistCmbo/HistoryComboDemo.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HistCmbo/HistoryComboDemo.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HistCmbo/HistoryComboDemoDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HistCmbo/HistoryComboDemoDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HistCmbo/HistorycomboInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HistCmbo/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HistCmbo/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HistCmbo/res/HistComboTest.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HistCmbo/res/HistoryComboDemo.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HistCmbo/res/HistoryComboDemo.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HistCmbo/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/Config.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/Config.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/CustomHyperbar.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/CustomHyperbar.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/HyperbarDemo.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/HyperbarDemo.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/HyperbarDemo.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/HyperbarDemo.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/HyperbarDemo.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/HyperbarDemo.sln create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/HyperbarDemo.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/HyperbarDemoDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/HyperbarDemoDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/HyperbarDemoView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/HyperbarDemoView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/res/HyperbarDemo.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/res/HyperbarDemo.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/res/HyperbarDemoDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/res/book.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/res/code.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/res/disk.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/res/document.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/res/folders.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/res/globe.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/res/pc.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/res/plug.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/res/pocketpc.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/res/toolbar1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/res/tools.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/res/user.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/HyperbarDemo/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ImageListBox/ImageListBox.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ImageListBox/ImageListBox.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ImageListBox/ImageListBox.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ImageListBox/ImageListBox.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ImageListBox/ImageListBox.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ImageListBox/ImageListBox.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ImageListBox/ImageListBox.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ImageListBox/ImageListBox.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ImageListBox/ImageListBoxDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ImageListBox/ImageListBoxDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ImageListBox/ImageListBoxInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ImageListBox/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ImageListBox/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ImageListBox/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ImageListBox/res/ImageListBox.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ImageListBox/res/ImageListBox.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ImageListBox/res/il_default.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ImageListBox/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/CustomizeDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/CustomizeDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/IMouseReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/IMouseReadMeU.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/IntelliMouseInfo.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/IntelliMouseInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/MultiPad.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/Multipad.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/WorkspaceDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/WorkspaceDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/multipad.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/multipad.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/multipad.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/res/intellitarget.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/res/multipad.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/res/paddoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/res/scrl_all.cur create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/res/scrl_bottomleft.cur create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/res/scrl_bottomright.cur create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/res/scrl_down.cur create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/res/scrl_left.cur create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/res/scrl_leftright.cur create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/res/scrl_right.cur create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/res/scrl_topbottom.cur create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/res/scrl_topleft.cur create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/res/scrl_topright.cur create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/res/scrl_up.cur create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/res/toolbar_edit.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/res/toolbar_edit_hot.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/res/toolbar_file.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/res/toolbar_file_hot.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/res/toolbar_window.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/res/toolbar_window_hot.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/stdafx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/stdafx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/IntelliMouse/unicode.utf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/AllListPropSht.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/AllListPropSht.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/DerivedDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/DerivedDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/ItemTips.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/ItemTips.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/ItemTips.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/ItemTips.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/ItemTips.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/ItemTips.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/ItemTips.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/ItemTips.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/ItemTipsInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/MyListCtrl.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/MyListCtrl.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/StandardDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/StandardDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/res/ItemTips.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/res/ItemTips.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/res/icon1.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/res/icon2.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/res/icon3.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/res/icon4.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ItemTips/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/ChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/ChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/Layout.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/Layout.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/Layout.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/Layout.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/Layout.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/Layout.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/Layout.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/Layout.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/Layout.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/LayoutDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/LayoutDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/LayoutView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/LayoutView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/ResizingDialog.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/ResizingDialog.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/ResizingPropPage.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/ResizingPropPage.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/ResizingPropSheet.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/ResizingPropSheet.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/res/Layout.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/res/Layout.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/res/LayoutDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Layout/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/LayoutManager/DlgDemo.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/LayoutManager/DlgDemo.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/LayoutManager/LayoutManager.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/LayoutManager/LayoutManager.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/LayoutManager/LayoutManager.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/LayoutManager/LayoutManager.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/LayoutManager/LayoutManager.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/LayoutManager/LayoutManager.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/LayoutManager/LayoutManager.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/LayoutManager/LayoutManager.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/LayoutManager/LayoutManagerDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/LayoutManager/LayoutManagerDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/LayoutManager/LayoutManagerInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/LayoutManager/LayoutManagerView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/LayoutManager/LayoutManagerView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/LayoutManager/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/LayoutManager/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/LayoutManager/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/LayoutManager/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/LayoutManager/res/LayoutManager.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/LayoutManager/res/LayoutManager.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/LayoutManager/res/LayoutManagerDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/LayoutManager/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/LayoutManager/res/icon1.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/LayoutManager/res/icon2.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/LayoutManager/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MonthCalendar/MonthCalendar.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MonthCalendar/MonthCalendar.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MonthCalendar/MonthCalendar.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MonthCalendar/MonthCalendar.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MonthCalendar/MonthCalendar.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MonthCalendar/MonthCalendar.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MonthCalendar/MonthCalendar.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MonthCalendar/MonthCalendar.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MonthCalendar/MonthCalendarDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MonthCalendar/MonthCalendarDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MonthCalendar/MonthCalendarInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MonthCalendar/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MonthCalendar/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MonthCalendar/res/MonthCalendar.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MonthCalendar/res/MonthCalendar.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MonthCalendar/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MultiCombo/CMCombo.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MultiCombo/CMCombo.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MultiCombo/ComboLBox.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MultiCombo/ComboLBox.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MultiCombo/MCombo.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MultiCombo/MCombo.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MultiCombo/MCombo.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MultiCombo/MCombo.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MultiCombo/MCombo.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MultiCombo/MCombo.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MultiCombo/MCombo.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MultiCombo/MCombo.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MultiCombo/MComboDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MultiCombo/MComboDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MultiCombo/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MultiCombo/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MultiCombo/mcomboinfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MultiCombo/res/MCombo.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MultiCombo/res/MCombo.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/MultiCombo/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NOTE/Mainfrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NOTE/Mainfrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NOTE/NOTE.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NOTE/NOTE.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NOTE/NOTEDOC.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NOTE/NOTEWND.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NOTE/NOTEWND.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NOTE/Note.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NOTE/Note.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NOTE/Note.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NOTE/Note.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NOTE/NoteInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NOTE/Notedoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NOTE/Noteview.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NOTE/Noteview.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NOTE/STDAFX.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NOTE/Stdafx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NOTE/note.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NOTE/note.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NOTE/res/NOTE.ICO create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NOTE/res/NOTE.RC2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NOTE/res/NOTEDOC.ICO create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NOTE/res/TOOLBAR.BMP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NOTE/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NetBrowse/NetBrowse.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NetBrowse/NetBrowse.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NetBrowse/NetBrowse.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NetBrowse/NetBrowse.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NetBrowse/NetBrowse.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NetBrowse/NetBrowse.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NetBrowse/NetBrowse.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NetBrowse/NetBrowse.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NetBrowse/NetBrowseDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NetBrowse/NetBrowseDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NetBrowse/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NetBrowse/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NetBrowse/netbrowseinfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NetBrowse/res/NetBrowse.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NetBrowse/res/NetBrowse.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NetBrowse/res/OXNetBrowseTreeImg.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/NetBrowse/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Notes/ChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Notes/ChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Notes/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Notes/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Notes/Notes.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Notes/Notes.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Notes/Notes.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Notes/Notes.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Notes/Notes.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Notes/Notes.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Notes/Notes.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Notes/Notes.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Notes/NotesDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Notes/NotesDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Notes/NotesView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Notes/NotesView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Notes/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Notes/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Notes/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Notes/res/Notes.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Notes/res/Notes.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Notes/res/NotesDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Notes/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Notes/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OXCalendarDemo1/CalDemoInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OXCalendarDemo1/OXCalendarDemo1.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OXCalendarDemo1/OXCalendarDemo1.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OXCalendarDemo1/OXCalendarDemo1.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OXCalendarDemo1/OXCalendarDemo1.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OXCalendarDemo1/OXCalendarDemo1.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OXCalendarDemo1/OXCalendarDemo1.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OXCalendarDemo1/OXCalendarDemo1.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OXCalendarDemo1/OXCalendarDemo1.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OXCalendarDemo1/OXCalendarDemo1Dlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OXCalendarDemo1/OXCalendarDemo1Dlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OXCalendarDemo1/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OXCalendarDemo1/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OXCalendarDemo1/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OXCalendarDemo1/res/OXCalendarDemo1.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OXCalendarDemo1/res/OXCalendarDemo1.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OXCalendarDemo1/res/bitmap1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OXCalendarDemo1/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OptionTree/OptionTree.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OptionTree/OptionTree.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OptionTree/OptionTree.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OptionTree/OptionTree.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OptionTree/OptionTree.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OptionTree/OptionTree.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OptionTree/OptionTree.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OptionTree/OptionTree.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OptionTree/OptionTreeCtrlInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OptionTree/OptionTreeDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OptionTree/OptionTreeDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OptionTree/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OptionTree/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OptionTree/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OptionTree/res/B_check.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OptionTree/res/B_cookie.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OptionTree/res/B_radio.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OptionTree/res/OptionTree.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OptionTree/res/OptionTree.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/OptionTree/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PhysicalTest/PhysicalTest.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PhysicalTest/PhysicalTest.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PhysicalTest/PhysicalTest.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PhysicalTest/PhysicalTest.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PhysicalTest/PhysicalTest.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PhysicalTest/PhysicalTest.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PhysicalTest/PhysicalTest.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PhysicalTest/PhysicalTest.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PhysicalTest/PhysicalTestDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PhysicalTest/PhysicalTestDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PhysicalTest/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PhysicalTest/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PhysicalTest/physicalTestInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PhysicalTest/res/PhysicalTest.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PhysicalTest/res/PhysicalTest.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PhysicalTest/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/BorderPickerCtrl.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/BorderPickerCtrl.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/ChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/ChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/DashStylePickerCtrl.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/DashStylePickerCtrl.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/LineStylePickerCtrl.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/LineStylePickerCtrl.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/PopupBar.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/PopupBar.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/PopupBar.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/PopupBar.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/PopupBar.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/PopupBar.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/PopupBar.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/PopupBar.reg create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/PopupBar.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/PopupBarDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/PopupBarDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/PopupBarInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/PopupBarView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/PopupBarView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/Square.sqr create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/SquareNew.sqr create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/res/PopupBar.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/res/PopupBar.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/res/PopupBarDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/res/bitmap1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/res/bmp00001.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/res/bmp00002.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/res/toolbar1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/PopupBar/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/RoundedButton.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/RoundedButton.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/RoundedButton.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/RoundedButton.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/RoundedButton.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/RoundedButton.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/RoundedButton.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/RoundedButton.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/RoundedButtonDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/RoundedButtonDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/RoundedButtonInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/RoundedButtonSamplesDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/RoundedButtonSamplesDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/RoundedButtonSht.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/RoundedButtonSht.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/3rings.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/RoundedButton.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/RoundedButton.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/arrow_down.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/arrow_leftright.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/arrow_up.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/arrow_updown.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/audio.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/ball.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/bomb.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/book.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/bookshelf.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/calendar.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/check_cross.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/check_mark.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/checkbox.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/clock.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/crossbones.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/date_time.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/documents.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/earth.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/essential_file.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/exclamation.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/extinguisher.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/files.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/gears.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/globe.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/graph.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/icon1.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/icon_off.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/important_files.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/info.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/jupiter.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/leak.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/letter.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/lightning.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/links.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/moon.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/note.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/organizer.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/pie_graph.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/plugged.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/production.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/question.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/security.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/shield.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/sphere.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/spiral.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/stop.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/sun.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/toilet_paper.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/tools.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/traffic_lights.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/yenyang.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/yield.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/res/zoom.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RoundedButton/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/ChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/ChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/CustomizeRulersDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/CustomizeRulersDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/RulerBar.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/RulerBar.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/RulerBar.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/RulerBar.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/RulerBar.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/RulerBar.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/RulerBar.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/RulerBar.reg create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/RulerBar.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/RulerBarDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/RulerBarDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/RulerBarInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/RulerBarView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/RulerBarView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/res/RulerBar.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/res/RulerBar.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/res/RulerBarDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/RulerBar/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Separator/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Separator/Separator.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Separator/Separator.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Separator/Separator.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Separator/Separator.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Separator/Separator.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Separator/Separator.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Separator/Separator.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Separator/Separator.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Separator/SeparatorDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Separator/SeparatorDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Separator/SeparatorInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Separator/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Separator/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Separator/res/Separator.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Separator/res/Separator.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Separator/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Shortcutbar/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Shortcutbar/SHBPropertiesDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Shortcutbar/SHBPropertiesDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Shortcutbar/ShortcutBar.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Shortcutbar/ShortcutBar.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Shortcutbar/ShortcutBar.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Shortcutbar/ShortcutBar.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Shortcutbar/ShortcutBar.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Shortcutbar/ShortcutBar.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Shortcutbar/ShortcutBar.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Shortcutbar/ShortcutBar.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Shortcutbar/ShortcutBarDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Shortcutbar/ShortcutBarDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Shortcutbar/ShortcutBarInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Shortcutbar/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Shortcutbar/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Shortcutbar/res/ShortcutBar.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Shortcutbar/res/ShortcutBar.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Shortcutbar/res/TreeImages.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Shortcutbar/res/large.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Shortcutbar/res/small.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/Shortcutbar/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/SideBySideToolbars/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/SideBySideToolbars/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/SideBySideToolbars/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/SideBySideToolbars/SideBySideToolbars.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/SideBySideToolbars/SideBySideToolbars.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/SideBySideToolbars/SideBySideToolbars.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/SideBySideToolbars/SideBySideToolbars.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/SideBySideToolbars/SideBySideToolbars.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/SideBySideToolbars/SideBySideToolbars.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/SideBySideToolbars/SideBySideToolbars.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/SideBySideToolbars/SideBySideToolbarsDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/SideBySideToolbars/SideBySideToolbarsDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/SideBySideToolbars/SideBySideToolbarsView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/SideBySideToolbars/SideBySideToolbarsView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/SideBySideToolbars/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/SideBySideToolbars/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/SideBySideToolbars/res/SideBySideToolbars.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/SideBySideToolbars/res/SideBySideToolbars.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/SideBySideToolbars/res/SideBySideToolbarsDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/SideBySideToolbars/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/SideBySideToolbars/res/toolbar1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/SideBySideToolbars/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/ChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/ChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/StatusarInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/Statusbar.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/Statusbar.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/Statusbar.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/Statusbar.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/Statusbar.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/Statusbar.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/Statusbar.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/Statusbar.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/StatusbarDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/StatusbarDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/StatusbarView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/StatusbarView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/nodrop.cur create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/res/GreenLight.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/res/NEW_MAIL.BMP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/res/RedLight.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/res/Statusbar.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/res/Statusbar.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/res/StatusbarDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StatBar/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticHyperLink/CustomizableStatic.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticHyperLink/CustomizableStatic.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticHyperLink/CustomizableStaticHyperLink.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticHyperLink/CustomizableStaticHyperLink.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticHyperLink/CustomizeSHLDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticHyperLink/CustomizeSHLDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticHyperLink/CustomizeStaticDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticHyperLink/CustomizeStaticDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticHyperLink/StaticHyperLink.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticHyperLink/StaticHyperLink.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticHyperLink/StaticHyperLink.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticHyperLink/StaticHyperLink.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticHyperLink/StaticHyperLink.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticHyperLink/StaticHyperLink.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticHyperLink/StaticHyperLink.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticHyperLink/StaticHyperLink.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticHyperLink/StaticHyperLinkDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticHyperLink/StaticHyperLinkDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticHyperLink/StaticHyperLinkInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticHyperLink/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticHyperLink/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticHyperLink/res/StaticHyperLink.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticHyperLink/res/StaticHyperLink.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticHyperLink/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticText/AttrDialog.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticText/AttrDialog.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticText/StatText.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticText/StatText.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticText/StatText.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticText/StatText.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticText/StatText.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticText/StatTextDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticText/StatTextDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticText/StaticText.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticText/StaticText.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticText/StaticText.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticText/StaticTextInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticText/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticText/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticText/res/OXSpinHor.cur create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticText/res/OXSpinVer.cur create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticText/res/SpinHor.cur create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticText/res/SpinVer.cur create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticText/res/StatText.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticText/res/StatText.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/StaticText/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/ChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/ChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/HexView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/HexView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/MyFormView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/MyFormView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/StatisticsView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/StatisticsView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/TabViews.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/TabViews.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/TabViews.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/TabViews.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/TabViews.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/TabViews.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/TabViews.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/TabViews.sln create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/TabViews.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/TabViews.vcproj.vspscc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/TabViewsDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/TabViewsDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/TabViewsInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/TabViewsView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/TabViewsView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/res/TabViews.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/res/TabViews.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/res/TabViewsDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TabViews/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TaskBarIcon/DemoTaskbarIcon.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TaskBarIcon/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TaskBarIcon/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TaskBarIcon/Taskbar.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TaskBarIcon/Taskbar.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TaskBarIcon/Taskbar.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TaskBarIcon/Taskbar.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TaskBarIcon/Taskbar.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TaskBarIcon/Taskbar.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TaskBarIcon/Taskbar.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TaskBarIcon/Taskbar.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TaskBarIcon/TaskbarDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TaskBarIcon/TaskbarDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TaskBarIcon/demotaskbaricon.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TaskBarIcon/res/Taskbar.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TaskBarIcon/res/Taskbar.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TaskBarIcon/res/icon1.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TaskBarIcon/res/idr_icon.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TaskBarIcon/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/TaskBarIcon/taskbarInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ToolTipEx/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ToolTipEx/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ToolTipEx/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ToolTipEx/ToolTipEx.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ToolTipEx/ToolTipEx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ToolTipEx/ToolTipEx.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ToolTipEx/ToolTipEx.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ToolTipEx/ToolTipEx.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ToolTipEx/ToolTipEx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ToolTipEx/ToolTipEx.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ToolTipEx/ToolTipEx.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ToolTipEx/ToolTipExDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ToolTipEx/ToolTipExDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ToolTipEx/ToolTipExInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ToolTipEx/res/ToolTipEx.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ToolTipEx/res/ToolTipEx.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/ToolTipEx/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/XPPanelDemo/XPPanelDemo.sln create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/XPPanelDemo/XPPanelDemo/XPPanelDemo.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/XPPanelDemo/XPPanelDemo/XPPanelDemo.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/XPPanelDemo/XPPanelDemo/XPPanelDemo.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/XPPanelDemo/XPPanelDemo/XPPanelDemo.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/XPPanelDemo/XPPanelDemo/XPPanelDemoDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/XPPanelDemo/XPPanelDemo/XPPanelDemoDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/XPPanelDemo/XPPanelDemo/res/XPPanelDemo.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/XPPanelDemo/XPPanelDemo/res/XPPanelDemo.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/XPPanelDemo/XPPanelDemo/res/excel.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/XPPanelDemo/XPPanelDemo/res/word.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/XPPanelDemo/XPPanelDemo/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/XPPanelDemo/XPPanelDemo/stdafx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/XPPanelDemo/XPPanelDemo/stdafx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/maskededit/MaskedEditTest.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/maskededit/MaskedEditTest.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/maskededit/MaskedEditTest.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/maskededit/MaskedEditTest.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/maskededit/MaskedEditTest.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/maskededit/MaskedEditTest.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/maskededit/MaskedEditTest.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/maskededit/MaskedEditTestDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/maskededit/MaskedEditTestDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/maskededit/MaskedEditTestInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/maskededit/MaskedEditTestResource.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/maskededit/MaskedEditTestResource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/maskededit/MaskedEditTestResource.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/maskededit/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/maskededit/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/AGREE.WMF create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/ChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/ChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/Controls.icl create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/Firework.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/OXDocMgr.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/OXDocMgr.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/OXWinApp.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/OXWinApp.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/Preview.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/Preview.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/Preview.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/Preview.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/Preview.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/Preview.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/Preview.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/Preview.reg create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/Preview.sln create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/Preview.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/Preview.vcproj.vspscc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/PreviewDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/PreviewDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/PreviewView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/PreviewView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/dog.jpg create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/headers.csv create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/headers.xls create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/previewInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/res/Preview.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/res/Preview.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/res/PreviewDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/preview/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/EXAMPLE.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/EXAMPLE.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/MAXVIRTD.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/MAXVIRTD.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/Mainfrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/ROLL32.CLW create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/ROLL32.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/ROLL32.RC create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/ROLL3DOC.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/ROLL3DOC.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/ROLL3VW.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/Roll32.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/Roll32.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/Roll32.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/Roll32.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/Roll32.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/Roll32Info.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/Roll3vw.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/STDAFX.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/Stdafx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/mainfrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/res/MAXVIRT.BMP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/res/ROLL32.ICO create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/res/ROLL32.RC2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/res/ROLL3DOC.ICO create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/res/TITLEBAR.BMP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/res/TOOLBAR.BMP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/rollup/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/ChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/ChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/CntrItem.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/CntrItem.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/ScrollDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/ScrollDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/ScrollSettingsDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/ScrollSettingsDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/ScrollTipDemo.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/ScrollTipDemo.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/ScrollTipDemo.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/ScrollTipDemo.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/ScrollTipDemo.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/ScrollTipDemo.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/ScrollTipDemo.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/ScrollTipDemo.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/ScrollTipDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/ScrollTipDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/ScrollTipEditView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/ScrollTipEditView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/res/ScrollTipDemo.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/res/ScrollTipDemo.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/res/ScrollTipDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/res/bitmap1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/scrolltips/scrolltipinfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/spinex/ColorBar.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/spinex/ColorBar.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/spinex/SpinEx.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/spinex/SpinEx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/spinex/SpinEx.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/spinex/SpinEx.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/spinex/SpinEx.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/spinex/SpinEx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/spinex/SpinEx.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/spinex/SpinEx.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/spinex/SpinExDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/spinex/SpinExDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/spinex/SpinExInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/spinex/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/spinex/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/spinex/res/SpinEx.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/spinex/res/SpinEx.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/spinex/res/bitmap1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/spinex/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/zoomvw/MAINFRM.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/zoomvw/MAINFRM.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/zoomvw/PENDLG.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/zoomvw/PENDLG.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/zoomvw/SCRIBBLE.CLW create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/zoomvw/SCRIBBLE.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/zoomvw/SCRIBBLE.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/zoomvw/SCRIBBLE.RC create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/zoomvw/SCRIBDOC.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/zoomvw/SCRIBDOC.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/zoomvw/SCRIBVW.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/zoomvw/SCRIBVW.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/zoomvw/STDAFX.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/zoomvw/STDAFX.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/zoomvw/Scribble.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/zoomvw/Scribble.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/zoomvw/Scribble.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/zoomvw/Scribble.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/zoomvw/res/SCRIBBLE.ICO create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/zoomvw/res/SCRIBBLE.RC2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/zoomvw/res/SCRIBDOC.ICO create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/zoomvw/res/TOOLBAR.BMP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/zoomvw/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/gui/zoomvw/zoomviewInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/new/ListBoxDemo/ListBoxDemo.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/new/ListBoxDemo/ListBoxDemo.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/new/ListBoxDemo/ListBoxDemo.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/new/ListBoxDemo/ListBoxDemo.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/new/ListBoxDemo/ListBoxDemo.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/new/ListBoxDemo/ListBoxDemo.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/new/ListBoxDemo/ListBoxDemoDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/new/ListBoxDemo/ListBoxDemoDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/new/ListBoxDemo/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/new/ListBoxDemo/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/new/ListBoxDemo/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/new/ListBoxDemo/res/ListBoxDemo.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/new/ListBoxDemo/res/ListBoxDemo.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/new/ListBoxDemo/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/ActiveDesktop/ActiveDesktop.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/ActiveDesktop/ActiveDesktop.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/ActiveDesktop/ActiveDesktop.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/ActiveDesktop/ActiveDesktop.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/ActiveDesktop/ActiveDesktop.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/ActiveDesktop/ActiveDesktop.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/ActiveDesktop/ActiveDesktop.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/ActiveDesktop/ActiveDesktop.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/ActiveDesktop/ActiveDesktopDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/ActiveDesktop/ActiveDesktopDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/ActiveDesktop/CompDialog.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/ActiveDesktop/CompDialog.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/ActiveDesktop/OXActiveDesktop.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/ActiveDesktop/Resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/ActiveDesktop/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/ActiveDesktop/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/ActiveDesktop/res/ActiveDesktop.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/ActiveDesktop/res/ActiveDesktop.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/ActiveDesktop/res/bitmap1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/AddressBook/AddressBook.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/AddressBook/AddressBook.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/AddressBook/AddressBook.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/AddressBook/AddressBook.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/AddressBook/AddressBook.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/AddressBook/AddressBook.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/AddressBook/AddressBook.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/AddressBook/AddressBookDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/AddressBook/AddressBookDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/AddressBook/ImageListBox.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/AddressBook/OXWABook.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/AddressBook/OptionsDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/AddressBook/OptionsDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/AddressBook/Resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/AddressBook/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/AddressBook/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/AddressBook/res/AddressBook.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/shell/AddressBook/res/AddressBook.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedAssert/AdvancedAssert.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedAssert/AdvancedAssert.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedAssert/AdvancedAssert.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedAssert/AdvancedAssert.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedAssert/AdvancedAssert.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedAssert/AdvancedAssert.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedAssert/AdvancedAssert.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedAssert/AdvancedAssert.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedAssert/AdvancedAssertDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedAssert/AdvancedAssertDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedAssert/AdvancedAssertInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedAssert/CustomizeAssertDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedAssert/CustomizeAssertDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedAssert/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedAssert/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedAssert/res/AdvancedAssert.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedAssert/res/AdvancedAssert.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedAssert/res/arrow1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedAssert/res/arrow2.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedAssert/res/bitmap1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedAssert/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedTrace/AdvancedTrace.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedTrace/AdvancedTrace.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedTrace/AdvancedTrace.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedTrace/AdvancedTrace.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedTrace/AdvancedTrace.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedTrace/AdvancedTrace.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedTrace/AdvancedTrace.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedTrace/AdvancedTrace.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedTrace/AdvancedTraceDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedTrace/AdvancedTraceDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedTrace/Resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedTrace/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedTrace/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedTrace/TraceInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedTrace/TraceTest.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedTrace/res/AdvancedTrace.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/AdvancedTrace/res/AdvancedTrace.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/ClipDock/ClipDock.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/ClipDock/ClipDock.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/ClipDock/ClipDock.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/ClipDock/ClipDock.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/ClipDock/ClipDock.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/ClipDock/ClipDock.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/ClipDock/ClipDock.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/ClipDock/ClipDock.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/ClipDock/ClipDockDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/ClipDock/ClipDockDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/ClipDock/OXMulticlipboardDld.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/ClipDock/Resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/ClipDock/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/ClipDock/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/ClipDock/res/ClipDock.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/ClipDock/res/ClipDock.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/EventLog.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/EventLog.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/EventLog.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/EventLog.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/EventLog.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/EventLog.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/EventLog.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/EventLog.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/EventLogDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/EventLogDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/EventLogInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/messages.dll create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/messages/Resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/messages/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/messages/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/messages/makemc.bat create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/messages/messages.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/messages/messages.def create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/messages/messages.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/messages/messages.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/messages/msgs.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/messages/msgs.mc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/messages/msgs.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/messages/res/messages.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/msgs.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/res/EventLog.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/res/EventLog.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/EventLog/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/FileChanger/FileChanger.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/FileChanger/FileChanger.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/FileChanger/FileChanger.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/FileChanger/FileChanger.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/FileChanger/FileChanger.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/FileChanger/FileChanger.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/FileChanger/FileChanger.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/FileChanger/FileChanger.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/FileChanger/FileChangerDemoDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/FileChanger/FileChangerDemoDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/FileChanger/FileChangerInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/FileChanger/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/FileChanger/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/FileChanger/res/FileChanger.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/FileChanger/res/FileChanger.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/FileChanger/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/InstanceManager/InstanceManagerDemo.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/InstanceManager/InstanceManagerDemo.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/InstanceManager/InstanceManagerDemo.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/InstanceManager/InstanceManagerDemo.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/InstanceManager/InstanceManagerDemo.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/InstanceManager/InstanceManagerDemo.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/InstanceManager/InstanceManagerDemo.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/InstanceManager/InstanceManagerDemo.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/InstanceManager/InstanceManagerDemoDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/InstanceManager/InstanceManagerDemoDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/InstanceManager/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/InstanceManager/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/InstanceManager/instMngrInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/InstanceManager/res/InstanceManagerDemo.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/InstanceManager/res/InstanceManagerDemo.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/InstanceManager/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/NumberConversionDemo/NumberConversionDemo.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/NumberConversionDemo/NumberConversionDemo.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/NumberConversionDemo/NumberConversionDemo.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/NumberConversionDemo/NumberConversionDemo.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/NumberConversionDemo/NumberConversionDemo.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/NumberConversionDemo/NumberConversionDemo.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/NumberConversionDemo/NumberConversionDemo.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/NumberConversionDemo/NumberConversionDemo.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/NumberConversionDemo/NumberConversionDemoDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/NumberConversionDemo/NumberConversionDemoDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/NumberConversionDemo/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/NumberConversionDemo/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/NumberConversionDemo/numConInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/NumberConversionDemo/res/NumberConversionDemo.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/NumberConversionDemo/res/NumberConversionDemo.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/NumberConversionDemo/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/ChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/ChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/LeftView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/LeftView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/MSDNVS6A.xml create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/OXParser.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/ParseEditView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/ParseEditView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/ParserView.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/ParserView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/ParserView.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/ParserView.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/ParserView.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/ParserView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/ParserView.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/ParserView.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/ParserViewDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/ParserViewDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/ParserViewView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/ParserViewView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/res/ParserView.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/res/ParserView.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/res/ParserViewDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/res/bitmap1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Parser/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/COXRegular.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/ChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/ChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/FindDialog.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/FindDialog.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/MyRegular.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/MyRegular.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/ParseDialog.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/ParseDialog.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/Readme_u.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/RegExpression.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/RegExpression.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/RegExpression.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/RegExpression.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/RegExpression.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/RegExpression.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/RegExpression.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/RegExpressionDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/RegExpressionDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/RegExpressionView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/RegExpressionView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/res/RegExpression.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/res/RegExpression.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/res/RegExpressionDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/res/bitmap1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/res/indicato.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/res/toolbar1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegExpression/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Regevent/RegEvent.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Regevent/RegEvent.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Regevent/RegEvent.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Regevent/RegEvent.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Regevent/RegEvent.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Regevent/RegEvent.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Regevent/RegEvent.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Regevent/RegEvent.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Regevent/RegEventDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Regevent/RegEventDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Regevent/RemBttn.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Regevent/RemBttn.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Regevent/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Regevent/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Regevent/idr_main.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Regevent/regeventInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Regevent/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegistryDemo/RegistryDemo.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegistryDemo/RegistryDemo.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegistryDemo/RegistryDemo.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegistryDemo/RegistryDemo.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegistryDemo/RegistryDemo.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegistryDemo/RegistryDemo.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegistryDemo/RegistryDemo.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegistryDemo/RegistryDemo.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegistryDemo/RegistryDemoDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegistryDemo/RegistryDemoDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegistryDemo/RegistryListDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegistryDemo/RegistryListDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegistryDemo/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegistryDemo/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegistryDemo/regdemoInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegistryDemo/res/RegistryDemo.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegistryDemo/res/RegistryDemo.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/RegistryDemo/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Service/Service.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Service/Service.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Service/Service.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Service/Service.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Service/Service.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Service/Service.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Service/Service.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Service/Service.sln create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Service/Service.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Service/ServiceDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Service/ServiceDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Service/ServiceInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Service/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Service/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Service/res/Service.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Service/res/Service.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Service/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Shortcut/Shortcut.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Shortcut/Shortcut.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Shortcut/Shortcut.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Shortcut/Shortcut.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Shortcut/Shortcut.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Shortcut/Shortcut.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Shortcut/Shortcut.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Shortcut/Shortcut.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Shortcut/ShortcutDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Shortcut/ShortcutDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Shortcut/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Shortcut/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Shortcut/res/Shortcut.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Shortcut/res/Shortcut.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Shortcut/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Shortcut/shortcutInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/MyAnimateCtrl.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/MyAnimateCtrl.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/MyStatic.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/MyStatic.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/ReadMe.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/Sound/Camera.wav create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/Sound/Cashreg.wav create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/Sound/Castle.wav create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/Sound/Deal.wav create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/Sound/Dff.wav create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/Sound/ForrestGump.wav create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/Sound/Goodbye.wav create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/Sound/HeartBeat.wav create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/Sound/HeartBeat2.wav create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/Sound/Incorrect.wav create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/Sound/Run.wav create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/Sound/Sledge.wav create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/Sound/Splash.wav create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/Sound/ThankYou.wav create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/Sound/Type.wav create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/Sound/Whoosh.wav create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/Sound/Wus.wav create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/Sound/error.wav create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/Sound/pooboom.wav create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/Sound/sound.wav create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/Sound/tmyk.wav create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/Sound/wshich.wav create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/SoundManager.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/SoundManager.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/SoundManager.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/SoundManager.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/SoundManager.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/SoundManager.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/SoundManager.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/SoundManagerDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/SoundManagerDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/SoundManagerInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/res/Drumroll.wav create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/res/Mfc2.avi create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/res/SoundManager.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/res/SoundManager.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundManager/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundTest/BOING.WAV create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundTest/POISON.WAV create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundTest/SLEDGE.WAV create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundTest/SoundTest.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundTest/SoundTest.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundTest/SoundTest.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundTest/SoundTest.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundTest/SoundTest.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundTest/SoundTest.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundTest/SoundTest.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundTest/SoundTest.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundTest/SoundTestDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundTest/SoundTestDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundTest/SoundTestInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundTest/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundTest/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundTest/res/Flamenco.wav create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundTest/res/SoundTest.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundTest/res/SoundTest.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundTest/res/photon.wav create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SoundTest/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SysInfo1/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SysInfo1/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SysInfo1/SysInfo1.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SysInfo1/SysInfo1.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SysInfo1/SysInfo1.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SysInfo1/SysInfo1.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SysInfo1/SysInfo1.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SysInfo1/SysInfo1.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SysInfo1/SysInfo1.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SysInfo1/SysInfo1.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SysInfo1/SysInfo1Dlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SysInfo1/SysInfo1Dlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SysInfo1/res/SysInfo1.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SysInfo1/res/SysInfo1.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SysInfo1/res/bitmap1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SysInfo1/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/SysInfo1/sysinfoinfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/CHILDFRM.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/CHILDFRM.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/IPFRAME.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/IPFRAME.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/MAINFRM.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/MAINFRM.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/PENDLG.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/PENDLG.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/SCRIBBLE.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/SCRIBBLE.REG create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/SCRIBITM.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/SCRIBITM.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/SCRIBVW.H create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/STDAFX.CPP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/Scribble.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/Scribble.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/Scribble.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/Scribdoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/Scribdoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/Scribvw.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/Stdafx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/UndoInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/res/ITOOLBAR.BMP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/res/SCRIBBLE.ICO create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/res/SCRIBBLE.RC2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/res/SCRIBDOC.ICO create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/res/TOOLBAR.BMP create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/undo.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/undo.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/undo.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/Undo/undo.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/ChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/ChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/Graph1.gph create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/SplitChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/SplitChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/Test.wsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/Text1.txt create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/WorkSpaceInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/WorkspaceDemo.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/WorkspaceDemo.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/WorkspaceDemo.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/WorkspaceDemo.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/WorkspaceDemo.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/WorkspaceDemo.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/WorkspaceDemo.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/WorkspaceDemo.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/WorkspaceDlg.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/WorkspaceDlg.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/WorkspaceGraphDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/WorkspaceGraphDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/WorkspaceGraphPropView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/WorkspaceGraphPropView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/WorkspaceGraphView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/WorkspaceGraphView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/WorkspaceLengthView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/WorkspaceLengthView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/WorkspaceTextDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/WorkspaceTextDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/WorkspaceTextView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/WorkspaceTextView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/res/WorkspaceDemo.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/res/WorkspaceDemo.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/res/WorkspaceDemoDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/res/bitmap1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/res/idr_work.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/res/toolbar1.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/WorkspaceDemo/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/ChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/ChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/DlgResEdit.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/DlgResEdit.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/ResFile.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/ResFile.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/ResFile.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/ResFile.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/ResFile.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/ResFile.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/ResFile.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/ResFile.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/ResLibDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/ResLibDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/ResLibView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/ResLibView.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/res/ResFile.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/res/ResFile.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/res/ResLibDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/res/idr_resl.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/res/imagelis.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/resFileInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/resfile/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/scrngrab/ChildFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/scrngrab/ChildFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/scrngrab/MainFrm.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/scrngrab/MainFrm.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/scrngrab/StdAfx.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/scrngrab/StdAfx.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/scrngrab/res/Toolbar.bmp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/scrngrab/res/scrngrab.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/scrngrab/res/scrngrab.rc2 create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/scrngrab/res/scrngrabDoc.ico create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/scrngrab/resource.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/scrngrab/scrnGrabInfo.rtf create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/scrngrab/scrngrab.clw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/scrngrab/scrngrab.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/scrngrab/scrngrab.dsp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/scrngrab/scrngrab.dsw create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/scrngrab/scrngrab.exe.manifest create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/scrngrab/scrngrab.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/scrngrab/scrngrab.rc create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/scrngrab/scrngrab.vcproj create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/scrngrab/scrngrabDoc.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/scrngrab/scrngrabDoc.h create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/scrngrab/scrngrabView.cpp create mode 100644 UltimateToolbox93_samples/Ultimate Toolbox/samples/utility/scrngrab/scrngrabView.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/ChangeHistory.htm create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/CONVFILE.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/COPYTREE.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/CPYSTDLG.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/DIR.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/DIRLIST.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/DSTRLIST.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/EVNTLOG.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/FILE.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/FILELIST.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/FILELMT.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/MDELDLG.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/MFCToolBar.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OX3DTabView.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXActiveDesktop.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXAdvancedAssert.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXAdvancedAssertMail.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXAppBar.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXAutoComplete.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXAutoListBox.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXBITBUF.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXBMPFilePickerCombo.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXBMPFilePickerCombo.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXBMPFle.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXBackgroundPainter.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXBaseSubclassedComboBox.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXBitmapButton.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXBitmapButton.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXBitmapMenu.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXBitmapMenu.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXBitmapMenuOrganizer.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXBrowseColorEdit.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXBrowseDirEdit.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXBrowseDirEdit.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXBrowseDirEditList.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXButtonAppearanceDlg.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCMPFL.H create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCOMPR.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCRCChk.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCRCChk.inl create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCalculatorCtrl.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCalculatorCtrl.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCalculatorEdit.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCalendar.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCalendarEdit.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCalendarPopup.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCalendarPopup.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCaptionPainter.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXChildFrameState.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXClipPocket.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXColorPickerButton.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXColorPickerCtrl.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXComboPickerCtrl.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXContextHelpDialog.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXContextHelpPropertyPage.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXContextHelpPropertySheet.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCoolBar.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCoolBar.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCoolComboBox.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCoolControlOrganizer.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCoolCtrl.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCoolToolBar.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCoolToolBar.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCsvFile.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCustomizeBackgroundPage.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCustomizeCaptionPage.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCustomizeCommandsPage.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCustomizeCoolControlsPage.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCustomizeInstanceManagerPage.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCustomizeIntelliMousePage.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCustomizeManager.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCustomizeManager.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCustomizeManagerRes.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCustomizePage.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCustomizeShortkeysPage.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCustomizeSplashWindowPage.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCustomizeTabbedMDIPage.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCustomizeToolbarsPage.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCustomizeTrayIconPage.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXCustomizeWorkspaceStatePage.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXDFlHdr.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXDIB.H create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXDLLManager.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXDao.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXDao.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXDateTimeCtrl.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXDckPPg.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXDckPSh.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXDirDlg.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXDirDlg.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXDlgBar.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXDllExt.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXDocTemplateSpy.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXDockCtrlBars.RC create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXDockTabCtrl.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXDragDockContext.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXDragDropCommands.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXDragDropSupport.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXDropEdit.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXEdit.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXEditList.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXEditList.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXFileChanger.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXFileWatchNotifier.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXFileWatcher.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXFileWatcher.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXFolderPickerCombo.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXFolderPickerDlg.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXFolderPickerDlg.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXFontComboBox.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXFontPickerButton.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXFrameWndDock.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXFullScreenFrame.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXGphFle.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXGraphics.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXGridHdr.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXGridList.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXGridList.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXHTMLParser.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXHashTable.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXHistoryCombo.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXHistoryCombo.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXHistoryCtrl.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXHookWnd.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXHyperBarOverlay.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXHyperBarRender.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXHyperFrameWnd.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXHyperLinkAction.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXHyperLinkAction.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXHyperbar.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXIDManager.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXIPEdit.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXImageListBox.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXImageViewer.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXImageViewer.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXInstanceManager.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXInteger.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXInteger.inl create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXIntelliMouse.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXIntelliMouse.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXItemTip.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXItemTipWnd.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXIteratorRegistryItem.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXIteratorService.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXIteratorUNC.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXIteratorUNC.inl create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXJPGCod.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXJPGCom.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXJPGDom.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXJPGExp.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXJPGFle.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXLayoutManager.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXLayoutManager.inl create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXListBoxEx.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXListBoxEx.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXListEdit.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXMDIFloatWnd.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXMain.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXMain.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXMainRes.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXManageResourceHandle.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXMaskedEdit.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXMenuBar.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXMetaFile.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXMetaFile.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXMonthCalCtrl.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXMultiComboBox.inl create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXMulticlipboardDlg.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXMulticlipboardDlg.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXNetBrowseTree.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXNetBrowseTree.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXNotesEditView.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXNotesEditView.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXOptionTreeCtrl.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXOptionTreeCtrl.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXParser.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXPhysicalEdit.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXPhysicalEditEx.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXPhysicalEditEx.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXPopupBarCtrl.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXPopupBarCtrl.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXPreviewDialog.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXPreviewDialog.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXProcess.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXProcess.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXPropertiesWnd.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXPropertiesWnd.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXPropertyDescriptionPane.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXPropertyTree.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXQuickString.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXRSERCM.H create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXRectTracker.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXRegExpression.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXRegExpression.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXRegistryItem.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXRegistryItem.inl create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXRegistryValFile.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXRegistryWatchNotifier.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXRegistryWatchNotifier.inl create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXRegistryWatcher.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXResourceFile.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXResourceFile.inl create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXResourceLibrary.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXResourceLibrary.inl create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXRollUp.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXRollup.H create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXRoundedButton.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXRulerOrganizer.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXScreenGrab.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXScript.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXScrollTip.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXScrollTipOwner.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXScrollWnd.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXScrollWnd.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXSeparator.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXService.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXShadowedWnd.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXShape.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXShdWnd.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXShellFolderTree.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXShellFolderTree.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXShellNamespaceNavigator.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXShellObjectList.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXShellObjectList.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXShortcut.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXShortcut.inl create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXShortcut.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXShortcutBar.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXShortkeysOrganizer.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXSizeDlgBar.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXSizeDockBar.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXSizeToolBar.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXSkinnedComboBox.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXSkinnedSpinCtrl.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXSkinnedTabCtrl.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXSkinnedView.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXSkinnedWnd.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXSkins.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXSound.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXSoundCustomizeDlg.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXSoundCustomizeDlg.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXSoundEffectManager.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXSoundWnd.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXSpinCtrl.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXSpinCtrl.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXSplashWnd.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXSplashWnd.inl create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXSplashWndDIB.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXSplitterColRowState.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXSplitterRect.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXSplitterWnd.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXStatic.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXStaticHyperLink.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXStaticText.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXStaticText.inl create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXSysInfo.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXSysInfo.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXTabClientWnd.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXTabView.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXTaskPanel.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXTaskbarIcon.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXTaskbarIcon.inl create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXTleBar.H create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXToolTipCtrl.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXTrace.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXTreeCal.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXTreeCombo.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXTreeCtrl.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXTreeEdit.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXTreeHeader.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXTreeItem.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXUNC.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXUNC.inl create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXUNCStandardActor.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXUNCStandartActor.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXURL.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXURL.inl create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXUUDRet.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXUUDec.H create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXUndo.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXUsertl.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXUxTheme.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXWABook.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXWABook.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXWatchedDir.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXWebCtrl.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXWorkspaceState.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXZOOMVW.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/OXZOOMVW.inl create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/PATH.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/PATHITER.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/PROGRESS.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/RETURNS.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/STDAFX.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/UTB64Bit.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/UTDLL.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/UTStaticLib.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/WATCHBUF.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/XSTATUS4.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/XSTRING.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/oxHlfTne.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/oxframewnddock.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/oxgridedit.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/oxmenubar.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/oxmulticombobox.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/oxshortcutbar.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/oxsizectrlbar.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/oxszminidockfrmwnd.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/oxundo.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/ranges.txt create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/OXEditListImg.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/OXGridListImg.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/OXHandCursor.cur create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/OXHistoryComboImg.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/OXMulticlipboardDlg.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/OXNetBrowseTreeImg.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/OXNoHandCursor.cur create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/OXNotes.cur create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/OXNotesBkmarks.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/OXNotesBrush.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/OXOptionHighContrast.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/OXRUpBar.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/OXSpinHor.cur create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/OXSpinVer.cur create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/OXWebBar.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/bkgnd_painter.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/caption.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/command_group.ico create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/commands.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/coolcontrols.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/custom_button.ico create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/il_fonttype.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/il_oxcustomize_custom_images.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/instance_manager.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/intellitarget.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/new_popup_menu.ico create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/noimage.ico create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/oxcustcoolcontrols_controls.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/oxcustom.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/oxcusttabmdi_appearance.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/oxcusttabmdi_display.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/oxcusttabmdi_orient.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/oxcusttabmdi_positioning.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/oxcusttabmdi_settings.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/oxoption.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/oxpreviewbtn.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/oxtbcopy.cur create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/oxtbmove.cur create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/oxtbremove.cur create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/properties_toolbar.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/scrl_all.cur create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/scrl_bottomleft.cur create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/scrl_bottomright.cur create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/scrl_down.cur create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/scrl_left.cur create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/scrl_leftright.cur create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/scrl_right.cur create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/scrl_topbottom.cur create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/scrl_topleft.cur create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/scrl_topright.cur create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/scrl_up.cur create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/separator.ico create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/shortkeys.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/sndplay.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/sndstop.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/splashwindow.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/tabbedmdi.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/toolbars.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/trayicon.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/treelist.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/res/workspace_state.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/ugstrop.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/include/utbstrop.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Build DLLs/StdAfx.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Build DLLs/StdAfx.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Build DLLs/UT.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Build DLLs/UT.def create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Build DLLs/UT.dep create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Build DLLs/UT.dsp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Build DLLs/UT.dsw create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Build DLLs/UT.mak create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Build DLLs/UT.sln create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Build DLLs/UT.vcproj create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Build DLLs/UT2003.sln create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Build DLLs/UT2003.vcproj create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Build Libs/StdAfx.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Build Libs/UTStaticLib.dep create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Build Libs/UTStaticLib.dsp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Build Libs/UTStaticLib.dsw create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Build Libs/UTStaticLib.mak create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Build Libs/UTStaticLib.sln create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Build Libs/UTStaticLib.vcproj create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Build Libs/UTStaticLib2003.sln create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Build Libs/UTStaticLib2003.vcproj create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Build Libs/UTStaticLib2005.sln create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Build Libs/UTStaticLib2005.vcproj create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Build Libs/stdafx.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/DLLs/Cpuinfd.dll create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/DLLs/Cpuinfr.dll create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/JMORECFG.H create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/ANSI2KNR.1 create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/ANSI2KNR.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/CDERROR.H create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/CDJPEG.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/CDJPEG.H create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/CHANGE.LOG create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/CJPEG.1 create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/CJPEG.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/CKCONFIG.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/CODERULE.DOC create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/CONFIGUR create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/DJPEG.1 create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/DJPEG.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/EXAMPLE.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/FILELIST.DOC create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/INSTALL.DOC create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCAPIMIN.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCAPISTD.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCCOEFCT.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCCOLOR.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCDCTMGR.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCHUFF.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCHUFF.H create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCINIT.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCMAINCT.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCMARKER.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCMASTER.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCOMAPI.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCONFIG.BCC create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCONFIG.CFG create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCONFIG.DJ create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCONFIG.DOC create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCONFIG.MAN create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCONFIG.MC6 create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCONFIG.SAS create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCONFIG.ST create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCONFIG.VMS create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCONFIG.WAT create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCPARAM.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCPHUFF.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCPREPCT.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCSAMPLE.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JCTRANS.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JDAPIMIN.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JDAPISTD.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JDATADST.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JDATASRC.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JDCOEFCT.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JDCOLOR.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JDCT.H create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JDDCTMGR.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JDHUFF.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JDHUFF.H create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JDINPUT.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JDMAINCT.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JDMARKER.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JDMASTER.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JDMERGE.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JDOSAOBJ.DOC create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JDPHUFF.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JDPOSTCT.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JDSAMPLE.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JDTRANS.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JERROR.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JERROR.H create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JFDCTFLT.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JFDCTFST.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JFDCTINT.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JIDCTFLT.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JIDCTFST.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JIDCTINT.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JIDCTRED.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JINCLUDE.H create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JMEMANSI.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JMEMDOS.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JMEMDOSA.ASM create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JMEMMGR.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JMEMNAME.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JMEMNOBS.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JMEMSYS.H create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JPEGINT.H create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JPEGLIB.H create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JPEGTRAN.1 create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JPEGTRAN.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JQUANT1.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JQUANT2.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JUTILS.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/JVERSION.H create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/Jmorecfg.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/LIBJPEG.DOC create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/MAKCJPEG.ST create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/MAKDJPEG.ST create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/MAKEFILE.ANS create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/MAKEFILE.BCC create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/MAKEFILE.CFG create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/MAKEFILE.DJ create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/MAKEFILE.MAN create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/MAKEFILE.MC6 create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/MAKEFILE.MMS create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/MAKEFILE.SAS create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/MAKEFILE.UNI create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/MAKEFILE.VMS create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/MAKEFILE.WAT create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/MAKLJPEG.ST create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/MAKTJPEG.ST create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/RDBMP.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/RDCOLMAP.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/RDGIF.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/RDJPGCOM.1 create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/RDJPGCOM.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/RDPPM.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/RDRLE.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/RDSWITCH.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/RDTARGA.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/README create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/README.DOS create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/STRUCTUR.DOC create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/TESTIMG.GIF create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/TESTIMG.JPG create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/TESTIMG.PPM create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/TESTIMGP.JPG create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/TESTORIG.JPG create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/TESTPROG.JPG create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/USAGE.DOC create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/WIZARD.DOC create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/WRBMP.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/WRGIF.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/WRJPGCOM.1 create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/WRJPGCOM.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/WRPPM.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/WRRLE.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/WRTARGA.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Jpegsrc6/jconfig.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/Readme.txt create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/jconfig.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/jpeg-6b/README create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/jpg.dsp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/jpg.dsw create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/JPEG/jpg.mak create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Libs/Cpuinfd.lib create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Libs/Cpuinfr.lib create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Processor/Intel/Cpuinf32/CPUID.C create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Processor/Intel/Cpuinf32/Cpuid.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Processor/Intel/Cpuinf32/Cpuinf32.def create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Processor/Intel/Cpuinf32/Cpuinf32.dsp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Processor/Intel/Cpuinf32/Cpuinf32.dsw create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Processor/Intel/Cpuinf32/Cpuinf32lib/Cpuinf32lib.dsp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Processor/Intel/Cpuinf32/Speed.c create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/lib/Processor/Intel/Cpuinf32/Speed.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/license.htm create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/CONVFILE.CPP create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/COPYTREE.CPP create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/CPYSTDLG.CPP create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/DIR.CPP create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/DIRLIST.CPP create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/DSTRLIST.CPP create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/EVNTLOG.CPP create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/FILE.CPP create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/FILELIST.CPP create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/MDELDLG.CPP create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/MFCToolBar.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OX3DTabView.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXActiveDesktop.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXAdvancedAssert.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXAdvancedAssertMail.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXAppBar.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXAutoComplete.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXAutoListBox.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXBITBUF.CPP create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXBMPFilePickerCombo.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXBMPFle.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXBackgroundPainter.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXBitmapButton.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXBitmapMenu.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXBitmapMenuOrganizer.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXBrowseColorEdit.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXBrowseDirEdit.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXBrowseDirEditList.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXButtonAppearanceDlg.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCMPFL.CPP create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCOMPR.CPP create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCRCChk.CPP create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCalculatorCtrl.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCalculatorEdit.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCalendar.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCalendarEdit.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCalendarPopup.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCaptionPainter.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXChildFrameState.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXClipPocket.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXColorPickerButton.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXColorPickerCtrl.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXComboPickerCtrl.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXContextHelpDialog.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXContextHelpPropertyPage.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXContextHelpPropertySheet.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCoolBar.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCoolComboBox.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCoolControlOrganizer.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCoolCtrl.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCoolToolBar.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCsvFile.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCustomizeBackgroundPage.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCustomizeCaptionPage.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCustomizeCommandsPage.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCustomizeCoolControlsPage.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCustomizeInstanceManagerPage.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCustomizeIntelliMousePage.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCustomizeManager.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCustomizePage.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCustomizeShortkeysPage.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCustomizeSplashWindowPage.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCustomizeTabbedMDIPage.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCustomizeToolbarsPage.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCustomizeTrayIconPage.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXCustomizeWorkspaceStatePage.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXDFlHdr.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXDLLManager.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXDao.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXDateTimeCtrl.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXDckPPg.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXDckPSh.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXDirDlg.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXDlgBar.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXDocTemplateSpy.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXDockTabCtrl.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXDragDockContext.CPP create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXDragDropCommands.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXEdit.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXEditList.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXFileChanger.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXFileWatchNotifier.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXFileWatcher.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXFolderPickerDlg.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXFontComboBox.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXFontPickerButton.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXFrameWndDock.CPP create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXFullScreenFrame.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXGphFle.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXGraphics.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXGridHdr.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXGridList.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXHTMLParser.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXHashTable.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXHistoryCombo.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXHistoryCtrl.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXHookWnd.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXHyperBarOverlay.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXHyperBarRender.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXHyperFrameWnd.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXHyperLinkAction.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXHyperbar.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXIPEdit.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXImageListBox.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXImageViewer.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXInstanceManager.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXInteger.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXIntelliMouse.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXItemTip.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXItemTipWnd.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXIteratorRegistryItem.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXIteratorService.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXIteratorUNC.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXJPGCod.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXJPGCom.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXJPGDom.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXJPGExp.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXJPGFle.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXLayoutManager.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXListBoxEx.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXListEdit.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXMDIFloatWnd.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXMaskedEdit.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXMenuBar.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXMetaFile.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXMonthCalCtrl.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXMultiComboBox.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXMulticlipboardDlg.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXNetBrowseTree.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXNotesEditView.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXOptionTreeCtrl.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXParser.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXPhysicalEdit.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXPhysicalEditEx.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXPopupBarCtrl.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXPreviewDialog.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXProcess.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXPropertiesWnd.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXPropertyDescriptionPane.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXPropertyTree.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXQuickString.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXRectTracker.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXRegExpression.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXRegistryItem.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXRegistryValFile.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXRegistryWatchNotifier.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXRegistryWatcher.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXResourceFile.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXResourceLibrary.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXRollup.CPP create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXRoundedButton.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXRulerOrganizer.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXScreenGrab.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXScript.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXScrollTip.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXScrollTipOwner.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXScrollWnd.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXSeparator.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXService.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXShape.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXShdWnd.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXShellFolderTree.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXShellNamespaceNavigator.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXShellObjectList.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXShortcut.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXShortcutBar.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXShortkeysOrganizer.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXSizeCtrlBar.CPP create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXSizeDlgBar.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXSizeDockBar.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXSizeToolBar.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXSkinnedComboBox.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXSkinnedSpinCtrl.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXSkinnedTabCtrl.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXSkins.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXSound.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXSoundCustomizeDlg.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXSoundEffectManager.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXSoundWnd.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXSpinCtrl.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXSplashWnd.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXSplashWndDIB.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXSplitterColRowState.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXSplitterRect.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXSplitterWnd.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXStatic.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXStaticHyperLink.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXStaticText.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXSysInfo.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXSzMiniDockFrmWnd.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXTabClientWnd.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXTabView.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXTaskPanel.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXTaskbarIcon.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXTleBar.CPP create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXToolTipCtrl.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXTrace.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXTreeCal.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXTreeCombo.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXTreeCtrl.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXTreeEdit.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXTreeHeader.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXTreeItem.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXUNC.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXUNCStandardActor.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXURL.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXUUDec.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXUsertl.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXUxTheme.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXWABook.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXWatchedDir.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/OXWorkspaceState.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/Oxdib.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/Oxzoomvw.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/PATHITER.CPP create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/PROGRESS.CPP create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/Path.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/UTBStrOp.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/UTSampleAbout/HtmlCtrl.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/UTSampleAbout/HtmlCtrl.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/UTSampleAbout/UTSampleAbout.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/UTSampleAbout/UTSampleAbout.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/UTSampleAbout/UTSampleAbout.rc create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/UTSampleAbout/UTSampleAboutResource.h create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/UTSampleAbout/res/UTBLogo.bmp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/UTSampleAbout/res/UTSampleAbout.rc2 create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/WATCHBUF.CPP create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/XSTRING.CPP create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/Xstatus4.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/oxgridedit.cpp create mode 100644 UltimateToolbox93_src/Ultimate Toolbox/source/oxwebctrl.cpp diff --git a/UltimateToolbox93_docs/Problems.txt b/UltimateToolbox93_docs/Problems.txt new file mode 100644 index 0000000..e75bba9 --- /dev/null +++ b/UltimateToolbox93_docs/Problems.txt @@ -0,0 +1,29 @@ +The help files for Ultimate Toolbox, Ultimate Grid, and Ultimate TCP/IP are now distributed in a compiled htm format - this avoids some IE7 problems encountered with the previous WebHelp offering, allows for a simpler download, and better index and search capabilities. + +Since the downloads first became available, several users have discovered some problems on first usage, and this text is intended as a troubleshooting guide. + +EXPLORER: + +When you first open the .chm file, you may see a message such as: + +"Internet Explorer was unable to link to the Web page you requested. The page might be temporarily unavailable." or "This program cannot display the webpage", etc. + +Later versions of windows will associate zone information with files downloaded from the internet - and this zone info may be applied to the files contained within the .zip when extracted. This may block Explorer's navigation to the html topics. + +To solve this problem, right click on the .chm file, select Properties, and Unblock. + +PATH: + +You may also receive this message if the path to the .chm file contains a '#' character - this will require either the renaming of a directory or moving the files - the '#' sign is being interpreted by the viewer as a bookmark indicator. + +Lastly, a '%' sign in the path will prevent the main window from appearing, with the contents pane displaying, e.g., 'Cannot locate "mk:MSITStore:D:\This% is a test\UTCP_IP42.chm::/TCP_IP.hhc". Again, renaming or moving the file should help. + +INDEX: + +There are chm compilations distributed with each of the Ultimate Toolbox, Ultimate Grid, and Ultimate TCP/IP libraries. Of these, the Ultimate Grid (UGrid72.chm) and Ultimate TCP/IP (UTCP_IP42.chm) use external index (chi) files. If these are not available in the path along with the .chm files, you should see a message box stating 'The window name "NewWindow" passed to HH_GET_WIN_TYPE has not been specified.' To resolve, make sure the associated .chi file is available. + +Thanks for your interest in The Ultimate Toolbox. If you encounter any problems with these help compilations not addressed by this text, please post a message at http://www.codeproject.com/MFC/UltimateToolbox.asp. + + + + diff --git a/UltimateToolbox93_docs/UTBX93.chm b/UltimateToolbox93_docs/UTBX93.chm new file mode 100644 index 0000000000000000000000000000000000000000..0b5e653d565a30327663307ee2f5c3ec9c825843 GIT binary patch literal 5410965 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�cHRifh-GKoruJ>b-ayh4v|tc(^f2MUntk4( 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

^-=^OFj;DUgMvZ_}=P=%5 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

B*aE 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

6QBzq{Mt-F9^VU%SZ-JT|Dl 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 ^@>W63i+u%UX-qvcWM4yB?d-a{pH)HXq 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 z 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

  • X67*gt}h(#J5 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

    `g((^Sz)d(Cusl`+0A;f}Vv zUMJiG|7lB6=3?akeoQ{>!@>$2k3IG#=K3dl$*>((s9l$g0C8=HWs~s%y%A;hK?BBM_zKLhGJnJ^=(&wH9piQ zKPDgq1KjUdYc)jObJ7NiAqFhrEw&wR4&FWR!b5?01(w<3F5GdC4Tln(bEQmK%@tfg zK(Z(x(~i!D7bnpeDFVR@$gAKMmcRTO$(2s~nojWzU@OY2R5iqhTZSV*WlpTz>q$l$AmWo>g`JH0QQfQ!!idGS#ELvuLHN%K9bXVf`je<}ph1{hY!{*Zmp8fYR6%-( zgdi|7eKT%my&v?rXcNO?(O9RG`URa{CPP)VAF+PD*BTfRD0Z+%0DvC=AZQ0103(3^ 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 {L78?B~~oZN5ly?MtdI>s@vZ9ANjiRi}U+& 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 z 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

    ^|IwItnv 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

    64)AmLVs@HopsBUYQ<_ZVc4utyoedDDJiCu+D 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�t7$^1SJGQK`kMmP$3W$J|g}B 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□mZLY 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%0AcwUAOEq`-?V2bYpz3Ni%{k3xpI7UQ5R(Ifj%^ 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

    U<3Q`GDDxUF_()dTjft&#j(Ia5=yzCKU%D-I8=> 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

    JHmb9w9IC=V-|>A^qqX3h^!AmU_#Za-k5{ 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ͅ}r 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[(`EU)b~+Iy2}rg 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%0AwX`AiHAQycjXrA7s0eU5;l= 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

    G=l8t&)hu7kS6sRl}$ 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

    FP*@QQnm8k>Wsfh{+V1!e#~+ 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

    bw%#cpm%) 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

    hAM>DR#Zhaqj8Dfc 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 -`j3PCTCLI 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 z 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

    X$0g?&jQWn!!vLzDy0sPEryNQcyP}b^ zitGU1ok4c3U^#GcB_szgKN2lSWID}d*{(V#jQFyy;M9Z;cEGl5%fU&DJ{PP4jk+XsRgI>z`c`&5{-9Dl^HN!zPJZYbne)sa@g-<0H>o(mVn0E$vKl&bU+3XLSJnT@n09Qqh zbkI~%ob0(t-2gX79AJW_fDF$u<=4q(k-=_sIb?kK%}iS8EPVv@!F6lQE(`1iVaFc0 zh`3{8U*BQ(tx#YRfbtQwoShwGHOmjVD0QNbBBYi{nc2}#BA^Z^#T%Rki_?B`PJ$S< z9cioJlQPL8oWC7dWD}@4DI>Ub0F8FhrAOX5usdfW>+q?}gcd0|Vx#~jkKe8mp5R3| zo5W{*B)Ai1%eoPJIA_!A4p~q4%|OZPIJ9ojEV4~FK?eQ6DmxX#v8C+Bx-#_uSSM|n zf;jG;;6@c@NU8T2=Q=#_8Pk_!gYCFMtzT3ZE8kWBWD3*>B&()Yuw|PZ)FQ1(XTZuj zlUO(1=+SNDV9^9?fkhx!k1wIe3ei_OlauT@XlAhEJJ^vJSW8|QSr%#-D;~f;S6WsVtN^P6iRw#<}khmbpLtUqqf%lkLW?Lc`=)A z0a!Vs(>VyEVNU6jL-V4Wf1busRb!3lUnS~Zdk9+xlD$|$geg7LzNyuy8Z5wb3mo&#NF$0CQUq@#j*tW)6L4TIiB+N*_(vYIoEXE9=mi_b}k zm~ZgvJDCd`d(M3&Y?XxvXkd&eswgG(EseqD*b_Ae@qx|6&VQ9R4WEf_(_loIJsCS{ z?K2HJ{<yWN z!XTYI+b`Ln)>+4>OyOadLl9hi&0e&0vQqq~_1?pso!LvGCpYJd#5wP=$uM=A3_p+$ zuzUTQbTM1mc!(tXp7l_(NKh%*EBqjgbwQQKWXBHe8GEvQq)p*&_akREuE3tUgn01{ zI)0(Q^NSWI8hkgyJZH|M*9%r%yt&3Gv4adjyj4ctC#cSGQ5)OaFrS^D~hhgX7vKS zbQ7iZe6qoU>`P1O1vTIfesUA$cis|l(p;I2G2Z4sr;4t+0C;cy&Y*sgj6Ko?l(pVe5S%1Bm7|7iz7Vdh^Gyx)8C^fX^6{ z)CDy0?hi^ZJFTT`2;eUuCFc-%C>7x`ug+NNo_htt*` zbf**e!h4X~K_Q`zB%9l9XDA;TrKg|n(SmWhfo(yxU)U-uo{A&wm2TrfMXe~W>xoXK zjUBZ9T^{5Rue{)t!FQdpQ=N(6i-oQ<2V?HF+VMIsuXpl31)cOYtovap?Y~D11T2F+ zu^*rV7ujr9ftD>IL?t?q9^pGu@gx6fW7_6$Fb!1OqK zq&&?kaXx+tSvP#*C;VAV7yz@GiFXfwtb}=G3Ch(B_R;wz>t`Ek3#@UFE<(rRMaH2@ zuEN{XaRJ)`P5RyKwJNbX*ej9Rgh$Y}HaNS2>r+acqE{n0ZIl)xwaRtuU?44z zg@*}5XHpjeuJ91oEev^0M-(rqe<@0hdh+YSVNdQn6`=;tGG^8bsf35gyN% z1c?oSsLlE8JTdi&&eeNRiX(L*m8y~eQ%X_s6^>tflX9p>4(v`XuMuUrZ}tURYqSo0 zClzr(3^I_G@<`9FjGhXcri``n?rl#D%xrEpU0&RRM}4bG&<$9j6=;oUs=bF!;MKAy zzHaaWP}@c#g?09mh|xf@#m6uWTXw(dK~et!teF-GZF*=m2R>EHr;McZPFE#VTpRK zob<5E%9a&=v&UCfjbCpL7D6ry&lDO^8IZQx5gss#b6^(!3V{j=+;yV{Hq@PLD(Gu; zHxlBdQbDV52AD{7S9>u_pagGpmRe~8JAT=78BDh_joR7+@miNaC1AWyc)~JXuoOgj z2Rwa8eTHsiFWTPQLWa#Z-BCcfy%PewtCD+ zsixcLe>Ys*x#@e{-6Oj420pf@AJuilsIKHstx8m<-NY=nmJn3?>MRZYP4VGnMdeL2 zL+w{umsjbZsK~x6*R~)&#|#eo?&OFiRyhm8bviIbC4{@M)=INX%2Fh{8Bfp~ozSqD z!v%v+ z;3b*?_PljuOmPUmHU6H=&xQ%pfOQMXzp~-0Hz#kdJh$e++ zyTV)8TpXUAYFVovc1f0|ypXxZuD4f49avjMAChdHf9Pc~;-Vy%9+@-PyZuUQAZ!a1 zJG;~AGmNm9UEqo?5enQC;L|%rr0JKlK)x23Qxi!->|xNtW2>D(zmi?)hiFgAi7|&E zXk$C?k>GW>)W&y=)j-;Y=4!LG;qbN7U65>U70a&BV!eV#)y6ErLZ&s6tA;kok!z_h zfv~>t!ZfXxfg>>HeSv9W!O5Gir;0_`6I>hGri&BsRaSjsz-qUYE>ZMdtFVHRaGP2caN~FEY{t_gFT1Y^y z;K^Bz8m(4)%$6=V#oCYG$3YjmoRQtSp002bf;gBpQF|zB&uq(fSBY=aL{%%hq?J&c z?bY!qtUA8&O_QDLh++7}{Ux=t^TrFcCo8Eiq(!BXl8gse4-{4KvpJ;Mi^HpG36A!R zqMf7W^ib;ByXLKTZ>Y_PrW3wu#B5AOe6ho<9rPjZHEsEj-1ZEP=~K0#M5I%H2X~j* zx5vbc&I`y;tQ%i~x^ZtacB^HWur%=I>8CDgo+@k%6w7p}=Zj$V+{Cy(9Uj+eUnJZ{ zbdL*s`{lT;ZjZSEnJH`iYD5GE$&J~Zp{|9paZpbYfYB4(wu7IJse`{RXIMk&uE^4{ z$8!;7o+{aL-h+KV79Jm)Zl}OUoNUIgV=qjkx2MoM9efbAGYT7J-pqA;X^}ko;)Ofh z^nA7#nte2yX`R+P=AKZj5Gq@S^tM5)bi4gfdV1jRO_5moC~_fBb-MKmf3<3hgw!nx zO}=?papaWGt+95WmK`rJWNxp70gr1f3x-$5ntS&9dy>>bjzj)nH<)jcg&k@aSVdHR@@ILf+t)qX%Ks2c22YDM+%UhX5Y>GDu&i;rm`69re< zTcYsq4~h5_PN6I+ODLf-(_~-KN>P!Yi++UIAgAX$TgQ&Wl#tigEBlPDWZ{?*D}FeY z+ER6TAp%28U*H)=gvnTD*A(7BCuya=!&6gxt(9TJT2gHB61re1%`f5G2{K&bK(<|K z<P4n|@UV_{BTIs)Lt}}VVGzo?6Ef`<#2~fanim6R zjZO=1J-A{e!Xoke5>#wDe>$m7J&DT^Z+E*;kO+ira`t&Q5y&jGnNE_QvZli9v`X&v zc3M4(YFJd2?9+OBVx`9^_{l13))7k?PQR;)0M$YmA!nCf2`kW=)X-%DECTEfeNvQL%?d5wI46o+BN&JELV#`ctTrWVspV1bofGKyhcB5 z5${$$@+4)zKrf|!Dj8>}qIb*4aoQ6)(#ZxFuvMSMNXcmE?ByzYYf{Gx^r{$)UWDA3 zEB9* zx+_N-t}Xk#Sih2^1kj?XwF5Xk701?@6b8X3lFL(5nE<;8A2yW3$EAtVIwWi09EY&neIq{3PLlnZIP(K@;G8Ka3#fEuVWtyg9d$18TuT&uP*C5V5?xLrc8vk zB1p7B?OO0E>n_}&a&I?lGXQxLj##Phd78ux?x(#Ry|}#pIus*R#NmS++4zWaV-4r* zX=Wr?Y@Cw8bw+Sa-y&ph419C0+0Zvm1!eYS*6=2_@I`6czS;z;~&vbEk#-P^lOy;V+Gbp(&@^-jZ09 zFW=&R1A<6%cp`e$a*doKIe{+YC6kxfa1<$+iA=2WvrP$|ll%IC*}yG3rS}}){K+c)X-yEGL2sz1oL2;8B`$8y6JON+=G|_2Nt+T?)^EFSars z;za}urCoHTuyR!UVfbEk1QsH0cdVNqOY6WYDMlllw8`$muqKm%jIxB=dnag-@j1&R z2ob%fX8KWHlJA#<-%430K5ScCWPs8T7_D;#9Vk z_GywRiFoZ*{q%jQwSV?*0}QL`K}h?Q3AZTN9+h(ZpfPWrIcx3i8V{S1n)t`=EsK}F zB!A*8w|ntQu}T!TAEnva2NOa!5(i4*cy1(sDRX(UnOTB0vhC9BNlCqkIH0sbVhUL~ zIitxay)LSH-xvs!EwRiBoa3r(*u+$i*&vZrj-Yn zsMtk)z457LN$SQjp-K-PN9LlR`^T5vg0ggS>TdTX%Rw53GoET$tb&|Ps|eeUkvS^3 zPApL%Nh2oeHz9PRZ6WQ*vi<=Y_K@CwEk%j5g3}T#)&ZPGZ63@$u}OF(aIwuThah*D zmsNGG5pa0f)QK)+mU<;9egUdQTLNsHjXs4ES&|jH8M0ulcvFrU6$%+iMJIqW7`T62 zqH($KMaG(&EcY`#Vr+aB>mWR`hmJOdZA9D!Nz9>D^}5Ll$imJxc;bs0gpgxMClJ6Z zfjAAQ=#1CUT5M{Q&0-aMZM~RJR^3Dtt6rK=N>og)Z@&t|vfM;_CfjaeR;vu?WAg`n zG=$O~fQTUuR}g1VrHKonHSw#Oa%gmE+mc7eTE8lrNduEmjRTt&FS|R~%0sc#9kt%f zOK{LicCZFlwVeen#4^o2FB7U!0?@g6dZ)9m3SO7(S~CauoN9{d((+PAsOw>4Tu6@@ zTsY1y$~{eNrxpITl;0tCEi${hcO}a^nROXWU3GHxzB{%|2oi_%No{}$U;#}0L?%2Y z9iw?2x_X(D&dcu ze{Il*wUb)LT`OCBdIjc!ds13qs$vQ50=6raNd!%2!Q4HZN=f)kSjS1W^*T{W}xqMIpJ zz})SfDymf`3S+ICWUG=YY!uI34?p13nNwZq>c zxT4zj^C?YOIMwqw$WM(^DdzYI)f}_=>6s;Mc0ejDy5+MehX6=Gx4&s_;lcBk80z)4 z?$Nj_=`E*ry$eZ`J#ZWPpj%(nP!+Ppo;{&B*=M0W6YDjcf?YV??0{a1g;9|!&8~PS z@E`=nki4#d((AGXEZUA?j?$$jbB2Mktuqd?2<%d*BA{ku&{;S}8Fe8`*D1!g*|m(x z^5R?XfO9etyd^bD6Z_ts629cJ1I8<=Yz@;S5r+C=0r5O#B=~W+KtD9Y}XIeL}bKtyrcR=Vs#4SLqfH9W4eh!?=U5^6G zNG^>hcvGa|BUZ*%!ma86+>1&_x5Yw;q8@LUdkM{foynIC7j;pDbfvb7JFX`KS?%Jn zLB(9f_QDKW7GG8!K%sm-jsp;om^X*82W092r&En?af{S9;jAu_2XJ}?B$at4LfUoh z$XvkpxmLWG4Xju*k#yoIAALU}a~Y3TFKM%EGYo2$W~dkRxTnYRT#P+$d0(<1fTwAw<4rCp)2dUd0Y?>!=DBR0f>awO^VcQQ2oFWjHmY{$lO5$Sn zdWKkgit>;f!N`7q`m@5ki1nfOG#-o}Wme7A6oh#P3Sq5uH%nI(lm=qGU1}thcG-!8 zUJ^-UgHgb4U6AYPGWXIDeCM5Xy-sS_t6DRAW(W~Fm!k_Tay$xLs7> z?Oolv_AXuy;=3AAPF>vHv1@5VO%`a6>`y%(Pn-1XzJ8}Pt`LN=;N11<4@CEd+W0z! z!n%wjH82^fp~TvE8-djY7NqHjTY^%}vEP~>;N%siy%2DQ;vKfzt0dUjPrU~F-LAYI z7qcmWi-A)9qy<2R5}67(APbr06o9$)kjlMC-9l%&8Y~CDctqU(UEW+iIp$53V#zU% zC!}(c3`D8A25X$+1;~@c`vHb9mL^OYw!Kx7pk7wgb(*D>EaP(a3RH+?nHZ$gN57Mh zQ-azf?U=)rjpEUMg>7?}@>736t*^pwsNc*Hv1@fbd%YgX{^1s1v?q=wGn%tw7mPVz z$|P5O6=K7-0~}N&sRNV|XP$9Be!fo2Tt|oG$aBkLrn}9qL+|V`bf8f8+ukSZw_yrm zEeIFQzMd&>Hm6kb#e@rE6fX+i=ty&zJY1~vyZeu+00JeacwOD8I13n1yoJGZqs|cf z7P_!zClY@_q?eu5phDv}r6$y4=gTw9?C`epWO_?Xj@UuW;H}(8HU&E}4=YMZvnwKz4642fL&!l2HW|%(fCWOr9iOXv**> zDtldb7cLr87;Qm6ENVh^>ph$JU}#jBq7^><-sU}ezR11I-l8h+n{&7-Ge!*e^@nD8 z@X-I?Cn6_STPvRw10u2?_X_whdX|^6x>gpbno+wh4K*IJWzsDdU9(=entAcvN?*Xz zyQ!(|qqnWmmxc~vWP9#f{}&AZHkl5x(whUl?=ZT$rhZY}E{>|6>j|+el1e?Sai4If zw=odYoeQHTc1oAijvUW6<2+K|8I#L#7sjpP^E$g0Xo^=+gaO&iA=)qjc0LQ&fTSH8 zL#KS8`YniIX=U#EHsi=JnB3K7v@@)h0z}`6@*QyFpI-snqgrnJUD9RD83UwkP{(kn zy*!vCS!nQ(wov`LGwDV8@`Qw^U%Sm(^p>8ik?|EQ*H?3Bl!L0s^>F`O*a_#_ zTeAtR&W;JvhibG74DKneBO8kgQFcEq*NMq#9(449Ozxo}VKEi34MUmw>Q^}nR`>e* zQLx`wU*J$^y^+Dpp-`Y7?(m|S2ZRvg-oK_3+|d#6AO`s{^>T|2Y7%`R*G6I>>gXuF z8#VrYNT`mz!b?9u!ekfwJvtyMnf;fE=jrPAQ~8wVXsCJ^n{mUTgF9+SCju8ezqBTF z4}8-PRQST~nqOzI)dw~jhXF73{(ViV5H*j{pZ>9BtbT5~YK|yUdi&H znySCGY4r*MqTyDPz(3V<{=c8`RCPEt`u*1GKW|3_vPVPGKfEGVM)3czzSMWTL%r&z z_+=mKkz)t^Sx_Z8F%@jCG>(WU90)B})UF>Qp(DY5X_Zd*{{0H9pXV}dzc8RsG@$%p z)?rk5^5j$Dh;$PeuS!2x6{=M~zVIeU`W^9ve^xnAR{ybr-(D-8r|O4SG>uKr)x#tX zcYL3S?@uRGGZ7-5CU2Q_@1sDlHH611^$?dH@L^B|l#h=z@V$e{a+L2I{AX z0sdX2`w-%S?{4|vof2?of@1JXD-FoWSw0oI1E!_pBCG##RJDWws$*XkcQ7D7Je|sk zTpg>U4hJ;F@%V*?`~(vJH4=vQh0p@Z-15J7j);AZ63^G)j3>aa$6<*7@_r;}4;u_8 z-Xz7}ox%E7yT`3rcxj;l_zV%ab2@!Qb2nk)1Op6cfBwTiqELC${N5aYc#2H3M&CGb zzTTRI7ZQBP@IVnw=cm(@R+^E7BE}8%&?(;^@VRb z1_`~C{ejW!cNi|sU!-m52uSjNUXW2J(9d4!|2U(y74wlv(E5FtY2IS~H!9hkldCdj z)C@;UWkkbhbu)q7f&Od{o@4Oh00>K2#xAveR^&@ z{M0p7HbHX4>SZ21v6lKi&9@Cr|5!K66zm~io^?n;LPh0j{2AQBs~OQ#_Z(>zviJ3D zEJ|h*#2@00KU7vjs=qJ!8pFW6+|jwU_u*FWdTnpdMiDwxu2(clPLWQ6}79+svJj+RhnCB zSN~F3^T&?e5QVDmID#>#gZVX52rK94e}xx(MU2yv2x{-XB??G+H>h2H?$PAG~Z$km7Q!RIrD__qj2 zKh0~fexUB@E=8+y_^&z!j-EO8>|gVteI#jz{r67N_gF^M{Bw%$bc$bVFzg@Nc)w?e z`j%7(DUE8OKR^4!-yMqfKa63-zP~*YLJNI_=<>`Fs(6QpSKROUS}$w07dZ4YJ{F#4 zL5@E_&^cpUxbDZ$9CLdd^(EiGs($|qaLAt@{6lCcz^2iX>!=CRRQ>XL%}HPmoZ5Ko zT6SezMxoQ+{6GpdIsM+R!%d-3OVgnjiEKFW7kXwM;Ku=dmj^(0ecOnpcx`3|Tt+iL z<%#uYDWm2?QN88I4{N^n!zeVL{jx$oG@8h2-=_<(_-I}KefMhN8ZC}8L0mgNmY3=8 z0gXtBV?BmfjBb3`Syv~|HazAN9}K?UDdWulcwf%E7cNVZJISm!4-EpS*hlFvMPtoC zB|Z&l;RDP`8m)a?uE##{g+ikuJrCQdNbbdfE2Aj=>^R=wlthHLgN){d zCW6i2f$@1xbXq$D#8}W!f=@KGeh;Rq z*oQ~>d)%+txU{%=s^7q_MbL|;HvPQlw@UI33SyFn_TzX0MO@#5c*2KBO!zA%bN+^7 zr=c}x;hHq@pD3L???mco{q7;Kw2~D)if1pE@+*HV@|`~6sRXhG#{ zVKkY!S9~3*^@kzfNQ}ZmxBor}ut1{F((}vG@kZpPv=F>(4KM77PmCa;wLzzvBf6b2 za^0(={##mD@bgOvIp5X22pT+JK&jEcW7R#YkqV8(r~!eTUrZgC=Jm~=ABBCl&dJ2c zQ!-B`w#6+}eAc*-5I>OGIhh^o?F&A~kZS&6{RQy`*7ih>IybR!`1%Ro0}&OIS?ZT8 zuD#DkQ6yBiJSw8~twsLq^477?dE)zy4|ak12?qImw3-^pzbHO5NA02^ zb<{xgbWeFG6l#CYqd<7S-6TDmm8KB=#M}y zKWvDIQHxJ=FBL;pLCyjs)@7yju7XLUb_CX^fN17K2ahPHw%mHz1Pq*<04`h6B+kjAD??yb>fL#2gk;7p|EN%UusF7vvt@wY zrs2tQjg$hlV|56ffP3#5X&_Sv5TY4Vjyrk0&YbkcbIWLq>j*u4sOn@ay&^nlNdeOp zqt)!KA*%!>Qsb#Dz;{Amc^y5^6(s^n)LqvReiV2joFY})RQ0x+H>Aw+o*A#+zOfkT z`Xeg!stoRXv0+DFVYZv1fOcpS=YY1oM}|HuWz6+?0^3socTw zD6(Bk-9sVw1Y1Me2dgTMilfF3=P1qvF^qiLvSizxHYjf!#kM3hEJX&ck;zb8Oav?Y z4%?n2)dgNCU8J;C>cW9vPA)ty^4i`HSO5hPKe%bgCdTC=n^jgdm%G5MF9PjrIWJ&} zIL`|?8_=+}JXs^F#a0^EZIe?^$>^C6Gw2C4`K%yx4J~$DV2d~;6?ub9u2dfJDkS6e zlx~NCp&-dhDoyq0^fT(R6iQttB%g!<35+j(I2E?YN_b3rXak~0e!Ts2*GjZ5A9eqY+oo-yB5BB)Igq^5zytbS zEQw6>6Kl18m9%y4c73qfS5o1r(hzom-mh(eQrM8j*Xp?8pObyw4rpDD>p80P+}6!B z72JG${98#AuH_K$^1y}?`IBC5tBAFl-6KsjpX9K_Xf*e;<~U@=5@BNy=W%TmRp z64X^anbrUpH2o(|cW_MXPuQ+5savdYw7tbff@pHrL%vE<>F_R2CHS0{gZ!1!O8fuH zw;_)s+R$H9E9nNSw;fhA2JyxXBJ}dQrF%ngfNuKYDI_agj(b~i0#pqy!LThbTaN2E z>A9dfr-)@MRG?iiW6l|8Cu}ExSFI%9JigBqxW{rGWIqfJq9lNrkKC?D#sVz|no4S4 z4j{zr#+2+YC5gQ>b%4E5Jdx)1mE+ur5`tPBVuwKFZFDRVX$c{Pvpm)n)?1fCf zGNNaO&!#hwtA{CcXIO3}GjPD25_Pk_gB;f}%-JAobPCWRJNx?_|5A%^&%nU+-k&c- z(ijx+^X&?rppj}Z3V;HF!yuR@j+uz#;A5Q$cLiC@M=dF%t6o2$PE@{E^v6eH0Neh* zu;=Q#PC>WFIwRp5uw22BWG#|jFT;$cP2x@$&otF&GXc|mv*8r@&E6E3$|PGriVJ5c z8`%-Vw0l#eL?i?1#+0$hk%_iuWkr5_-u@}9r$<}jwo~5@vM#e(SiTOQiM_V9+Gdad zr>)%FKx@2OO3TBsfXSk(N&Te+()O@ov`Oj7t?CzD=9NABOVUe2qiBdqXISWdTnzab ze%oWd9CF4|ruhOQLMAMr-qss9jq8Mq7P5VLwvASXm9er2!USxY#%iUDoKMDrueg`( zh?|}hm`P;3mIDKGmRn(^^4=#q+Odn@SP%izr{3$rr?H%K|%^F1) zW-ax~8mWB69?)E)B_pM2aI)-k(qsqoI%6%I4%T~l@xkWnL9rEb{^3Cx{AqT*Zh19v z#2)F=?SBKuZvP%=^E-32lUh2?=n$aw`lIl;&=ZzM1WNQ=-dj!N<)i@@so-xY_jDDP zhdGc<<9SxWS1~bx%c_%WynSkbGo;nQOA-0-(=%nNa2T9*< zk0nD2(@va|Xg{_DGJN+qIOVJyuf@Yea3R=AX`MkCFNu&^AvnY#qnkVdr_?&R1Qt~- z(Y{q4FMc~oWz$7E2(gi*q$)MC>f(hG;xRds5J*Y;f-BCUCkH_e6C5=m_;=T~A8v0a zDH#c)f!yP3sbBL}rAhR)a7AFb(tXa?@ z0&UK)o7mW=4xlRCYSFll!s78Rbk4PMQ>kUad!>Y$2;lBGUO-gj)m_%T>v;{d+D4=d zX5ui;k@i6)SY+DMNS>=6Y^+(6G_^}@i>bC)q*int_IJ!N~*;{92T*j0~Cg;^-Vi0uuovmA@zxEA6{UDPMO?V zmA)u)GQhBM3#ACWsFltklH*24ivZ;)W#!I+6pFx;Sy_VzElvlQ->D_Ms)Z$@H+tP& zYF2KYX$4Y83HQse#yu~AWm2RNrEY!K6$CFYNn#euY>?=;1DuvC?e1dzHAoj$?JY0b zUpGl>m^vQ5Jqz_ZEDgIPuD*7GCQ?Gu<2D3amTk{UZzZpbUG&e3)LEJ0F|j(Vlcl!4 z;j#jrhHz_RP9kc%g*$gjZlv!l2?ci;;UI(pxDtCV2XIR^DFWRq=c;Z!PshVYc!LwH zz-%7LzVWVR5Hs0L-Su<7C4-;U;N=ahE6&2&DD(N$Bt8 z>Gix3XO=fK-EMBUs5|FIuwl||1GbzMyv$}Wq6Fg(qc8t%Pfq(7IsxRKz_WBO%Mf{H4Em3}}Ga+2gr5J;bR6A4iWIY8;xHX31M%94y zN^|H$nKBhUjMVkAcJiX@P7$GRQYxkFFGRPn2-z-9h?4}6n1bRZ0|DHZo9&v#1<;g0 z0%O||m{h0QrRAExv%+7`<{QY_x=U+VcY?K;r2dCWi}vT5&i_Pu zhOMV<&tBbX zl;GM2w!F9Ytn+yEw7jKm%iy>3)D7>UohrwR5s~D;MhT5O*XFhX`s1#8mW=?)I`HJ>t%HGe(ss zTk(cHd4m)r#HsZjOCasq1^kj|z1AFfigTFyJqW__z~MS!!s6=>Ms?WHTLeBmUGzW> z^8zPVySs?aWxCnM#4q)!o^ds%HMwI6i4x6S)WzPsR(k{%eSxO!kvFhfPW1`PLv?o% zgWLqIJv5Yapc81@y3E#K=FCN~nQDH@!z4?OKXC#r3a4fIs})`x=)2uVwQa@#g-BiP z(-;*PsXz~HXBma0z6@?LnZAk$_yrTTmefME!+3OJf(6>KYf&khNhyDAIyDRckEP9< zvi8T=@f~L~wIjX^x&+Mgbxwbo28)q#pIJ1f{!+mOvUw^x0uPlGsK+)6%;L)wv_@_!p%ABV%*qHl z1s#~H+S3kgVA(I3PxxyFRLamSrYLN3_wyPuezkoo%geJbxoe$-fm0)px$Vh`gzUQ8 zCn$^5C*ip1jI}H2xr*u5)bq{w9%>zd6sD@fq{N?&K|7SbgYlhLKz{d*OESl8}!(St+%uoj`MZU1SGnDj})BGskd$> ztCU6T)3QaD8BDyWPV0FkdfDxifz>*4iZBVTi>3-VRdrLs(^Vgf1-=jwvHSRfrHPUR zPAs2(0=1X$XF`ZAu6V5+F~l5nAxoxXXIO}XJVKTm);SdxD?AEePeEgs2$gJY^L~WR zl{t>*Oe28352tt#5X&!8sAiB-Uu|~y{LS#<>2LGY)$yi`w&!BvBe}}9Ky%1aPN;tUhT^`{KaHMd~6gYVtKVsuA;NLeAMu> zam+&2l&aF>3j1r|)gh)+w)4=F*iv+m-u~s-fct{(Aa1!6Xdch2_aMLwvU%B^bOeW+ zejR&t@n|DX;cm**m@TB*V>>3&A$QW8PRDTCafoH=7370nNqAoWHvf|UKxM-YTVkxE z#0lFVv!oVV#^{;r8v$FPB(K{df4mGek_2HI60_%l??wVFTL4238|LU%{dRtvz1222 z1u_FvF{V&+(v2xL4`ovsb_A$WU2^leDRyxmK*1`IhI4jaPy zK&UR*oM8{%1e!HdydaAG;uN#AlA4>$6(#euE;68IoipahId^cH@g(489Jl3Xk~|IK zkH085CQoAywleM>Ex>z&mtY3Y+H+ETheOvKU~@Kwc#i}}M5ktkylJO1JR(ecae02Q z{Lz7fMX`GlKEjxez-6!&xRb0dpa zUdw}aB25%`SB>rudimHAuDDMxs!_c3@Ei!*&{-jEPE}aOM=UJ09>sD}pw5!ko8yl# z2WpkzD5J|1n6!YnIkIBdhfA8cUnnLp4G&%rmNG1X8KkLqOmVJQ?F)sabrPb6Je|`y zo7)UnTSYHKu@8a&E|AkXnhSu0qo0_G)195msv$CE?t)IP-`#=sxVu_l4p`J4*6BjJ z!}VHBpnFiMb;~K>=Xrs;L>se~J=KD@h7sqUUG8twyQzaGh2440J>0*UhF*HTx{yo- zs2RF4Z1se|BL`22AxAaUIpN2%ySTf~kDkXt9?`5;BasDt*dG zzp7ydP80ec=$#A&^jahLD=nF!rZ{ajCeq52Jn7(fn8A~-M4)%JW`hM%k@Rz7FB?h& zTTsM<*!Jx$)WICOLb2ekJ6@}hRb?0|+`)7&?&e|jw_+F&Ho3`@G^OX|(sgnIsY}!G z`fq-zr~7-IhytpU?uYNz}n%U8gnI7r&p`D`U-T@61fv~J< zw=e`j*nk4>#vEWdV~@lGBM-_QOTYtfgohzn`yNrmFXfn#R?HE!#4=nPIyKQD7IVM- z0Z3EZP-I?8{Hm39r+(Jrxn)QP_DKI^N1Xl zd`-SmXktUcCZ zh%m&_qm4j~XRX8_jFW}lwFz5b!kdwjxQJB&iF?=A432KrVX`=Qj#(w(bXx93IIe8a z*hFMH=X(!=RoP#jSMz0SWILM>L6FL0>pO|U%PfY$Sfj?aOhUy?!a2A1zZzIyf9O)W zfhAmHwM#G6trbNqC+3sy)OwJKv1iuILXg$SN=O3HI6BaM<64Bks@>KE7NM?VWC0h~ z=eJ0yI}wWhmTmh|+uCAX7hu_XXf1*chg~`F;HWM6Mn}m3&I)_*n$w93N){mm z1PejFmEDMQWFqm6ib(C4BQvr(5`nQ}R>aB^_9&DjstnVo`pWK>>qw}z4IOod&XU~Y zR$^=m8{y1Dp;+7G>jqLRtHJp7o8U*B=I2`_e}wGTPI006$R<`zsRdTXj`~_#tzC8N297TVy#mL2_bI}ivjXZal?l^Vo5Fc`oz$+bdKyil zBH+PyMKFCFgYjb-ehkTq&t%oX|1tBjt}>$U?P0CDUAPQ%pa<7RNIpY)Qr^F{Xtb2J zwu*k}y<)AXw1DG$?X0P+0!rR+I!vEfswpF^N!!(&Z*PIk@8^5walO(;NPG$3-3XvB zVJPGJ<$ox4!Pkk}RX$%X!M^NIK(?}<-;Iz!w3n|**%*aeDKAwWr8Q+;h+sua%UPI|Bo1Y$%y%m$ z<$8~ZEY7Mw9i^1c<~_!APxCK(S{UAuP1SwhTo@}Z76u6Jpx^Ut4;2%poNb;M`$0(^ z_VqTvRgcCH(>}h%dUIyp+tw>$>vv^K;UI#M?vEw@Q_! z&xOba?&jn8QXJ-esbs@iH^`bS?zO(@R3_yu3ELonH#y~A_S27N_v~>Sw;@1!#V3=j zfuBpq+g+IzXWOx@VfyGwru}3kfVNj_a#H>_xD3P|%MNtBA-tuw-nBu|RPA}iqI}4M>1o-bdAzx`D?k?+kcQ>11Osv>hW(z4M^t&q;{ieZxSazI*XiCn?;EStUq7JlgTKO1W zy!`9FD$u+&dGv9HtvkA~X?S**$wnvj8)DzH_K0MpN7_;lmh0A_@GAYvy42;Kux+_h zya{7UCL#hF9&x9#rytB9Syu$2c%NljR$6-R={rgLKS3~S;+$SGPOf-+1SNbC8HD_N z-7LT~-;aep3lmk&jt2!gTn=|(iZjDiT`x!4Nm~?)pe39@V6zCQ7JA#wx^UiOvgw zz=9hKA*FULfuaW)26PL?`(i6CFe3U$ZmT-awU!IWyfHc{2-UFyn?4}@(p8=)TgfFg z2x_guEv&fp!-J*3xcZISpL1Oe*`BFvwoN<)y__)jwCiAmS8`2@r%;5-P?cwGGH8Ut z6JMRNk%559V2x0mf8P*EOuVC=oQFv|U@!b_{9kglvxp~%e zOmnlmm3!R(V{6!^+nm0p`KP6}IO8aD8`wHVpu&tTwY0kzn+*)@_ECi(EV{19_h51r7 zNPBgc^WseweVl!s9jkOUWEnsSlf7|NDG*qRg(1YtG^IJsi3>7mYlBnppVC-fg-nZ~ z&y88ocdd}`Yr$TYGCXtR^8~Ad!65D2vI=b>*-~tK=65FKFenbxS5wXMlf^H?Lv(Fk=7d4HSe{&`cNYU`&A25^kApx9FqUJ*a-5*U zz_y@sjN-}mk-5VJAW6(Xn6T1=w1&dyZ*1l*&DGRH4F~h`%5DPPTG?>M6X+?_Op&g# z>oKNSnI#%(Q65woiV5JkVks`HVag_Z$DT}jQ*mdoqjT?0E^ghn$}rs?#JGTk_R8dN z7B)NSUjRwGUnky(8K_&-_=BjAFfDeg5*wnRUDeY^fbEiRj+$(^GkwJ%azBP$C7ln_ zNMP(Y-SH9_(4`DxPzQ@)b}t1A8uJ*Cw|mdDs%`7BFu1Om#7*NO1NViLlhR&Uo-Kaa zZZFqff{tgN^eCa|qQ<5)6T4f1U_W@As!pj;@-g8%Y+KIFe=c8^6p62(GEMQxZ~56=?8|%nBMZ z?Q%b92|#+OQgwMa#hThhg0*2g#TT`iF6<5q4D+<`WUSLxI&co{%hz82><&!xx!CT;=r&OO7R zg2obhs9zEaHi52UKSIQC6qy1WUzCoe=QXw;SvA0Pap1hv#+b<6NvrRvAGJ8E)V0o& zt~^zrBp7B)*S@cC#mHO%Y^hirv?UTMii9jlHA)V;*TZcE0oAK~XKR40nb?@1(=l>( zRug_;fS!;4nappqGexy!mc$lQ0^EZ=bBIptN5=Erg^WH@9k4uCRlxupF{YLWW*Dr~ zJ<`rQwOP%;*Y>`-y{S}hrT!f!1Y~_M&3J)6bn64sLv(}EOMMvhGbx5(grG1xK&&>Z z7y$|t7v5N$vvwAhif^qvIQX*F6Zv_(bKyFbmzHQgG;=tG`y94mR6XT zBOL@HN``xV{2<&g$}{#81tn?nbNrb{MqJt-uo0H@=@e4}KnLk_T*D+=GQn z1`$2{h1_IA4OYvI6F|zin|F^BLo`r(*^5HM)+K+02FhKR$pQ%u@hB6%H|(lb5PPL< zKc!V{jIlcs~I+X0@siQyE8eh&V^3uZ<^Y4<>HLB_)i_dT~!xl zpmdektSGC!Ilw0gJZbfiFiR|NM?5Ux{cwq_uIUi6BSU0lv8|swDL$m!#oiHQ#c-CI zNBbaTsX0W;?~~Pa_M)LKEdk5raCPmg3n36DA$~7SqK=(N8;Lax9LvgYbLK??mc)ln zn_HxaE7-(aAt_w?W znYl`?#P?|8A1;7cGv(GU66xJ#HL8|rRo-ZrVuN$+Xb=)c|bUI3tDbd zCb%%zbv?4d0ms6~_!Fm-UA4yrt`)utN*$;mzVqC^20 zy&Vdrj3w+z>={BXnwY%FO+FztBL5q*~z|zta76}r6bxxO&N*Jk9b&&>wbrEOn<@6wgK3|&CCfhw3%+1ikY!)d4t#0d(ihm3 z$_H*T8?&*lKi}3PG|zO&#g#lABwJJpuUvdt>6efK0=DS%J@uShP1B7rW4R9&Ek^MeeVU@Qr6}7Ka(1Wg*SkV)~_V zTrK()_s9)*-eM)Y)i{}#w0@t3*_UpGE$l!+2g=4?^d_v!$?GtlZmB&rpE7DI6{i=dv3VFp4M{V zcjY9x;)(3QuHU4?q#XlL|JP^ouid$D!5V(Vc|;jb=u zuMb*}F>+z+ZtueFZ@uMeh@oJ&v`{ue+t8EHPx@N>VR#IhA?|!t7v{ zrp-nI4*eavgft(|P+qrb-zYa?pPV+PhlT;CtZd+Y@%2qsFa9Fa*){ipi$YW5lGnWK z!pA-NMQwu7;Y<}^0=wtgB{`x%VWJjmuKT&Br_<~OjJx0HGTNeGsXI=Kr4m;;O9iOd z)Ko9a6naC1SVc#~Uk+g)N(TiksHiihfZBz^0gc{-Dd->P$jwjk^dZDD?m(uU%~iBc z3);{{?vJZ|b*Mke^s)AJCO4vyl_y89AxqMaI+2|ac6OuA4Qp^hNfze}X*8=66z0KB zx=d2w4u~}gse4OKm8fhj_Vp(g1cj-*Z9Yl%ZZ(?nNI9f_KnWhtZj{OVv9SZ= zh_%jT>g++*PAPu$1RY75aR*!Wu0xPxmfvyU0`Gq3=$Vv2@!V{8=1we z9A!VZeYuI3cLjA`aXA9jbryM+WI8RKq4#1eEPLrJ3qe=j$0v|T(wSTK@zKHY;B4*7 z>zOz?(iI;92Rbx(qWX?xR6WKb>Byiy{^e;qtr3nCVfxm(~vIXdtEZN z>L4Es4St$~+qF6+=iae!7s9=@1q7K2mBD<7PnM?ZkUJkIjI%r|~IY112R0*OY_T*jQ4?1Iep1x91uI)az5Cb_;Jm^<|gxj0}&iqF$xz+0Dg?_*# z7(>Q>&&{S-NIFB0;#7{f{(niOzkakB)9=?lCH038ONm@4EdTLNkr5h@2af0ZXE%-V z{|xm5IUKD>0AD`{^IDxy6;K_GFY4<&w^Ju{>l9@v?L&hhnHc|h<%vlBL)1k`TRnsk z^}?;58+nzFgjM%nD@y0Ar{{$h-CZaOOvX1u-mi}-klzBIZ)^7cy4gtCpN3z3^&TaEAR;DdU(&Jqi$yF z=j|U`8rfbKxqC(-$D=Diyu_#t&mVeWNRi?KjO3(m<<1f1=I3 zv)v1MRK#kd-kZq(#M`KZh)&-|;)hmM6H7BI)j1HqnR{5P1vzyn5*{ZSx5#U!g$KRy zFIslA`h0wwKjRe?^F^*6qNgXCXv6Yp@rm#UeA052iF$9ILYT_-;lMKR96f&jAnk z80>yG<>~zi65&kNme2n-?9K=y8f7a9~xnrKFkAA<&(bC+=r}?TI7x7L!NF@E6|8Mic z7XIj~hO0H2emt)E(1?BY#mXT^wSK6I6&gEOQRqp1KCu2$^NFlh^x9dQu^T-MRR{yKM z!_|vHmH5i0=sJLge{8-Be)8dj?abm7)Ib%QJ#JI>#EtgRG~^2`8#cP1rRY)UxvB!! z2YL<{@?LAK9U;l0@y}Tb>+n=wqamIA1jI?B%HaWD4KXN*oM+a5nH2)cFGS`9NrTdAty) zdX(EaSXEl(@romPG`|2nK*GP_-Jqo3eV@20&!bC&{U%F^1{!!_@KaA#pnFpi6x`*hM>OMMFAnNwkp2{)}OWco9dQ_&!q(1bE{sdO~lCmGOUBC(E-ovZorP$Qomv7Hg+oPRi!LJszO@9~r=Y zX#NhmyRG-%`lTzP`@UgbupfRxdDlDapX>cA8z?tzUvKc7@b0fzs0Vl?*9Ts`&6eKm zX#dH$#*N5<_jw?r`9?5%h1>7Z$e;C=#Tv_u9EYAUqoYUYduJf2JgntwDO;5Br4JIr z1x_0J2T!y6Gv+72N50jMJP4HU(ojeKAI8zf&^^|!v6Iu;-jMa?(is1Po;fd8TuO8D zuTL2$)?f6HM(HwGM@GC6U&9Mq_zhv*13nQgZ4mW(|m4c89CYC7V445&B0LG}@&1scW^+MkYmGcA+ze*+Q~CaaO!^HJ0Zz*gO#`*>ugRb?O%-+V-E< zLmJ#Zs0p#Oly?+-aDk9C)?b_JSsxEH(WEbY{O2e#i2q+boWkpY7{vadmrdW_N@A>y zL2wk>|E^Y#MmR$jE9W1NA7--6nSK!K!y0n!eDUJrN6NX!(I9Qyd2c(m>aDBd@Cn1St=Y5On@CnP^yiv~;an6~gDyPxaZ9%QAEl0yit=#Igc`J3v-vMPugw zEBR?q$+T?KaDR`Pi8O98`Gm(9{Ry?wXz3k%M+k*keLSG7=h%!7e?t?Y!US?;p!DdT zUn7}lpO2z-MO++lzDosUlENTom9`>JYzr5#0Wcz9K|8*r$**)0Q*Z zg{cb#Vr4G7r7 zII9UG16q0~$O>e3;Zl2N!|`6V+nZ1Zau*b^do-7GaqzD*?R8eYzp_@^={p1hU_AYE z$nf(s!0BjdvwY+4a#szJOPR>)=`kCrOrFZ1o%|fi5wfqSRH8|NNSmCl-d&ooYF2}L z3CzaqGCigXaAjFk%N`Tv6lfQwIlQYU9!dHMwemh&0EBvwAw;QJ{7ZMklxj!Tajq;D zfAbcjZps8eM0Mlf7G-U?!Bn7~*su%T^$TPs)EelA+e${-f}m7Ruvev-MU9H_2GeyC zvr0#|AWa`u=_?6$u*TIAYk1wG4S`8GzGzauAGbCVK0@ zyP(c(mxo|5>J`~GclnyUh|aq~&UAyksmQp;=^bSgS&~!~9}U+o;S$uqgjq2)WubAn z^SP0brXXJ$lnCY*KL7L59gV1BtS)bAt8ww*JZ~c8TvLgOAb@F-TYLx+-2ouz{jo#o z!;JzlSRnG6_KJ8o$Xk&KL{DURPd~2)>`blp=logXF8Qv6jm_Ezg;`39I|Z(}PvF>* zpbLpeVkzEhD}6gVUns_H8`M0_DaB{jG#GNEl=sMyr9`KkbE&{x3tQWGc4T`~B?dMg z@v7?h`X$_)Q^qBLsSfa1{Gb@{J4glCg8`1Gbc{09N#14Ud1Q)eNzl8QguS zIa!tz+lHWad+Dqvm+Ba}F8b^`1G$?TQgquP$d%x+LzjvM*MgRmKvLcH^h`Bogi>I2u7zsk4>=IyYmb3b$oU+fPZV zsMz^{jK_Pq&|TQ`YP&I23AWUq+M4X!Sd@d`f(K967IBch3~2wXV~w|K_^x|Nd(56* zRi4Q%$6Gh1+77U(+(|}v0kNx+jo8-O+R|r>V{VnvFYYN}t*c&aU+T@v_dRP)=QrPu)oOK*lz|PT1*;b8u3Uln+NGe!( zfV;TVdn7#09wLHTaM}Zbzur0wOIVCRX>?$@YsUCA_Ib`A$N6R}g)UV)hVmZY0qsLQ zG7h}SW2pXSU`so90q$t-B)l!XBCyAV0qly5J07oyEKeLbls&Y z(QHsj>3sS_#JUm}jAxsea-Ud-JEoPI0Zb8X-)|X9EFjaVBb%a%n4V{(zA&A@0B4+V zXR2RYK3%rVkA>-u##!Z}zHVvKweZNRy z%kil*b+{lCTu|$el%+*^H_w*L9RMf)zi`=)FX+58c@Z?bjtxj6;W!SYd7_2}7 zgPz$D$8kZ3cJ<*2IaDJWpztzB=7H!W@?8TVGi<=RIA*c zh?b8$UBhlQEUjbI-n`_BfPKs1RVQn@n)#g*Ufh>YTy1Puaym#z^<-8BrIig}KAfJi ziRx-MyqGOow@ErMwoNcD;}h%KeP)?X(xl}<;WXa?DW$c8v@OY-_$XJY(}V|@=UjLqg2$@P@H||49(D5IUuz1Bi)qnjKAb823c$dx)1e_7JROUPP)s zsu|j^c^Cg^I^ZDcx+Kz@Q21hXJjMADEq05A|_;-q^JWZ zMEAnI1Tw}_UIyHcx=0#9s;-Giv*3s9DHVLaOX2F$hwm#^5Ci(3FISRx)O9*b-E#+n zZgbrlCON;Go4-mEXuRZEV1fMXR#T9%JHrz|pH||`=@K}B?Bnc!5*_05O$Be$lW)Tt zE*5vf^A%IHRt$$LDuWbkA0I*$a<3{pfsh#NJrw~d(E*-J*CxY05x~=akOYz2nc?^X zaRRH8^#s;;xw#nNHC?HJ1+NKtjUa?*EoERU2<^yi0}PF$a>ah&G$UKAm*7RaiQG7#~Z#gtZ&s){hehTg*Z z!G~RnU07hm*%vvTe0zNb%)RWSOozAsQ?2-}`-1}A1ktUqC1h$Kt=NA&g8)z3Ch@}2 zo}{G&@@njnbVj#pbXVOcz(Mdnzr{(ecXCkzE!(*hx5hXP*EHbA_=1kD#It~_Ti&HH zs-h)KL2kvc86v=%H8-4aqzo%E9L}ZXp7oo0UAR+ufRNm@meO1zg*J2#pX2l|od&G{ z?ujikeWlbv0xK84bdq1)_1ZnfFbscLP2pg#?G>1rI7R?IMk037Z_DAS+TG3<-`9pZ zHZLEsF1mJFeKK4eX)&e)sZA`KF>Wv2(d+YeF;DGMW?S8*zDejS-$_r?o*+rVqg<{b zj!Tpf==JSCR3;iMSuP6J96g!crF}v=0|M9R$W@*}SmGL?fitqzY?Nt5{Q4lIckr_j zlLwy>miR>36{Lq$*6sZbGYU`fS_GcXUa>6DF?gXZ7L$77O;PJdnpP+xxR|QIl3ObS z?ZaH!29r~E+3oJ@2f!ig(rzle_B1k9_qbJu@ImgFZEq+9(l}MoCWEKIb|Fd^bdAHV zvvo@Pb<6T;QJn5uBuzR_{m^E4?2cRR?pRb} z$fr4BrZq5^F4&w5l_~RaX5kVOVbbEwgXFU|UBXfKCU>=|uJ!gHb3&eVJtnB;b-eo& zwoqj<*_Jzheu*yx-_oqPUL|8P$cPh0RATiG0w_2(tXRvr2UkHi1@oj-%&$NRTKh`Q zvLq3LmaTV>X;nT6xYn^TvcNX7+sR~zPBP1_1A>FPn{!mPy2^DmYLZ}t)K|UI4i;ES zrVpwJIF?H)0QrP0sRs@BejI%hPb0*aZ@O&{x=JdFm%3S;-DP1a4G|9ES0WPCOX0Rr9&_Rp|rpO+qJ2e+q$fV zmZ4xCAd6;gJ+IdgR_Z7+m058ij=pM9_eyj}j^j?dj_+cms=mm`4k|13C{KZ#c4h1B z?Qy$vHqaGW%Vl)Hu7igo=l~hPK_)X{lsb|~TfDOMIP?~}$5r{$^YXJ$TEp{Y$B?x> zQ$_q}q=yzD^seqrs5|1hViRjl64jT};8vq!pTE2G$Nstp2tSvA;DgSva0JyPRGP3`8{IR4jcSm4jHe zfSST>?D3X~bqSEx-EGDpG8oe=2M{aWR}kiKW|FN^Iy!s5kuGu?f9V3CvT<5&fqH(+ zZF3QfZ507)v(OzTiCKkTL2(W+2wX6o-!@rHVzfC8{w8)LI_yHbOiDc_WCL$&5BVft z*)>>Ppgd3DV#*|{ZJq(z%kEDAAti3jcWZ@Z5}+f+vdi4p^`fWhaYlhb_hv2jn$Mw= zBNJ7aJ%nIz3P|>Y`|hwg^d0vE4F;YO)^=?gtW(WZezK~=qD_T|eXX#2s>L4o_zWr%b=qMMb(8gXMuw9Xjd7u~Oe0|C43qETLZO7r={)DUF z(8MEue&;eN0t`x}gy|v$;+DnU#ljntA}tC(Ar;?Ol*1H%2EqIV#AdegQ8HrHB#RPM z_9M>KMXi^dOI5!EuJ+u&)L>S?kv3(Ir|Q+&Rn+6H<~dL(t%TktzdWE7vDmnWPQAKm z>|Q;Mwy5tKfyPYjIxLvnn@fw(O2pW)e5H=|VJx7Qq@0zUnaXAw;M%awSpnU37PMo$ z>jR;?I9|N#ZR!lGR#X6_lxj$V?16s4NRt?kkCwzm-0kW@xEO)bLc;*TicJh)FX{ut>Jp2IzdYpQLwq- z%k$bWt>eXK8>Un{Eeex!dUct28liI;t7VSkjLtixui0V_0%;L&bm-ae9j2v=9#;1} zsPppHAnHWf2ifO_#l_C#z6;AyP|s_C=()z0Yqbod@r~)*P`+Sg&?r@`;}->ZZi|Cn zRbb{ZLRh9|Dy79(FWef(KyYUftq+D$-q-tE5ewU=;MBse+7dIm_R3{-C0^Unx_??F zYsQR9TJY#9rgzp@=CVnXk>>=wSauN3(UAI#w3k-PAg=Y4b_5E%ub~n|dvSo(V)OxD zRZ4C2*r`sR)Jt59X#sTP7|}{wv%mtr2!9RSR=5*pJ`0x8goku3uX)J3l>5#NxtlPoFj9IkKgLmDH7t9&W4La_U;rJFH++-DVK25gj4qEYs}I zQx+uIFp&N6+zbW;rm}`Q)mkeiln&y@B{wUR6=Vw$=R+P}TV5)n?ShOV&?3-&HnqX& z?1nicu~~JG;b|kc>)w`+6zi!cae1}0?3v2liIuMCp(^EFy_aPVQ(6_(QFGzUJapb-ax0$+e==~y??lG)e_~-7GrbFXP>GjK`u^9 z+|iGzjY7EEyeV2f4AVls@rUVkm;!=Rc?%vX@YyjJA?NAV4X#@l-u)m7tWlzSWI~XY zLTw!Zh-Hh0z4>+mvU9h#kPgMK+~^lG-JLrkh+Mnowg5M8LMVMQUZq%`1T&qKy9e+; z1M8&kWd>UgkXZ>m!C2Madn>qaFX`Q_C8!;XH%S{PUHY@?=#qEde_654KoJ%WsdweB zC>P%*&6-p)TbFG-xsv@jOC>w(dZmd=_D94uQjLSx78^d_8owx*Uc--u6^0@bu{{tN7mS;3E9cv_{LhBHT@hnnw+Rs8n3s&^{d=f zhJ?(t3*61`hN`&@%_h7kCbY&V-j3O)he;m!3u?oase zIwhei#jU9S=RtfGPW}D3C%aKvaI0>VN7Bc(CM)8*6C1XE(HqkXkJVCzj~oik_ObDVRWv){F{X6{zI%OHTPwL=oK zP@wOEtod34u~_tI2Qt_sFY%Ik_|J zjPK_!vzq`Uij&vciQZIkaBxb@3xpjD?9_Y;R#tBL$zpelyP4YFoZzYZw3q2qU5k09 zZAzvnB|S7l0Zb7njZ4Ub|NE^>;dAy5Q^aeI-=Ocu%LRhR$R98X>reNDrzV)DXDV|~ zZGX}ko{Rmv1hLk64W}tfXPR6HO9Ru&RhU8wL+o}{;T3$&!+(O>D+`ofZuqq3UdUMj zSle>x6@P7te#{GI8Hg>CQ+>9_)eo>#X0jSkUFY4} zfgjx9(n{wb^dI4_5Gy8jBsT1!B;j3k0WSiMZ?$nGDzuerIpD*iP38OSJ(!-sK~C)) zDG8`Wdt%nsCAlPSWi!>Ez@Y5U#YyLG?r|0d+T0JeoabfhSI{ebjzx}J@`X{CgzPy* z!2DXI0X5SEB{%J4QNryh!)wcU!zq0IEF!tB7Nte=xFz>cS6forIvEO1AXUT4W%1PR%STOQyw$ajr~VSF%p7yYo0k{q_G zlI2&kVp!Wi;vQt3MNMf{C<0|B-JnCY#t2cDuAak6IpM8$uzNA4uo$fyX<)m}lHLpR zn~Te;AVCb)Le1vI;>=N9b2mnkvEYhM+I9yqku0)wTuL~ZJww``yIidN*Lt{8xk6Q} zZlMJZdeJHB$Q&y!yFPA~-;-9JCUp7)>5}p#>=NstH_C+s$D>s-3(=y+09>VK?AcQM z?5+J>LiVB;Tb|#a{py~dBNBH4eJMON&VXcSB!o;mHpxLOuG1zH2X;MPoPv@R7ILMp=qhVw7o7B2J4 zDyT%ZXo=vQ-oG71>omGqJ`O;XYrH?lGU3&It@fW|;Y z@Q>$j51j-kz{bN^XXT1=ru4=4v9HqRH1LlxUXr%*%>epei^2xWoUC*|7GQQnjJWNR zwXkj$@R!%dpxTzMYTF6jjl1J^)a%9zR<^-F?6FoUtraaGwg&bR1TMO9h2F~ye7j?E zh9RH2OQ~lE)vr_wTX=;`tHY%i10*tg8Qzne@T6@u6H$!<1MTT=P0{KFqMz(y#uG@I zZYHrLAo8{*fx7iL9NSF<8g_OmZHw4ktxf2LgB{bCH78i-J}TLYsv7cFeJNzE2ATWa zMbD;7-e=#G>SuZyMPJgqXTJ+q#v5H$M2nBnI5`z)8y0hIwR50gZWr1taI2XI1&ku= zOk^oQ2rfu~zvZcNWOGSDY!XK?DIi#|^ScC;K$5RyeV9kyYxwU%Z@K*b$QMR_tIcMp8lc(qFk@v*LQTt3;c|0O4Dq*U{V-Os zzCZ8N$<4m~Tgvmf!ncUr!+0HgmWHU+1jdunSvq!gMuv1;?f6+x_?4z#g`R(fXU}2c z%WVO=h<*UcJKKI?1A`J-Ah`6W@~&6+wf7WfkDfoFuCSU!AaaNnh3^uV7o0>ens-1rE@lqO7c2Ty`?l zN=!L@0A>y}P8M$;&s@xd|2;S9+Dvg$k~ksF&l=v$mf+(_W^QY149#zKlG{lKTEwSH zhBrm4!`R2Qq0`}fr z_&&_MYmmBkNm(&W8C*5JBcM*VECeNW zHp2-Ay0BzzGfCj5cD?Hw!Z73QE4yWXyV`R!#J29nTJymvK_z1wkShpF3=2N9ukvYY zg<8_a``r_U6FJHm)7se>lHDdJSNXey9_oK$q@{1P5vNeC7` z1m2fUZqJ|qM(VvB--^8xL6Q`DDbc+5+9+7ZX-skd>(m_v=6c+rK&DLgkl>p2H#gx4 z_bHlF7;y=xlf`TL-c1&M zw{sT~m|24vaRV-03Df4F?rw7_k2s@=c*NwGh}~+>Qa@=;WdA2!_yq612QE;R#f}hl zLmO{y>%f1Z3$6Wy<~b-qLagva!?qn(4r}ir?dHGVEWQ~b19&OSt(BxHq$fCCT{VEK zkv_fP5g02*6qN{BRV3@Vzft zBs>zA3wOHZ!8NtJ_^F`4XehT^xYw~;@T3JD4>f_TnoDa2w^5$e#gU!5@m^<$D^>NP zG}f^#ptvB3$cnm5zeZC6?-K4wP#$(!al5K5`Y!}sO+AGHgC$(7Rmx)rXC)^?+TdKo z^ZF9{Fi{+k=Aq4&(*#mXq`J|kGG2(}+_<~hJ!0IuWo0uct%(jC=tltqrn3aJNP|VR@WN5s= zp{0Q1afh3zGT&0pu={UVuFU@x)o?D``>91P$={O08z$(h$_4WADrrd4W_~k${q{@W zdz+g`)r&r*;fPYV9{lk83!s%_j&dN~v`Ng{LKO=3=9881(+cdIj@pS!(I5br4) z-u8&v5>Px@doVDr1Uy&H6kp2=i!yH#LLykYvZU~Vtq3KMF4`!&kzCp0m)YGGa!UK; zlSQ-YY0+K6ki12|mbgN4i`RB0kcaV}D6IOV7mVpLP_)$aGVA{HIvF4U;?LN-vXq9z z0U|J+eMM6JNr42tI@d=*U@{54dK$iIPi&c!@8p~M(as4JsOmY)!4Q*LvWqtCXl;9Mi+7Q46cFv`btWvJCm#?*H5YWvr1yFb&SGZ%}{b(5qp@mq6Ee^sM9a9`1(1sz6S{ZwDM9%@$vT779|!R^Pe z3iH(~X%7#v6K{8Xow|*+;#-dedRUmlVL%`vI2rbia&SBAJ39i;4X1fpjtwhz-89*} z*m$!qG4;JTgaX+6a7jE%IShLb{tCdDVwh=OD!=fAxC7|&)-(MXqdy}?p0gslaAzE-wi<~*j zqW$PWr6BkZbhEJpmArktswm3VHIUu|Bh({^+uTViP-K_{cX>iV;=ase-WTYbsS7BI zvcnMw`a3&gHV~yZ!tR2-k^(1+Oulo1R_C@JH4;KR4N!uH-<)r08|x=c_n_Pm7x$)n z=3F}uyWOo`*56cIl9RGG%5$KH5XOJj8X30ziZI0#1}H8qT)bNwA6CjFwOa@;7flx{ zAKcj@PPc{&k1pkJD5LHKI+^cnfP&Vj6ugYAu+;t&+#V*cfotbnHTvY$qyuc*rONaC z5ur>3-Fe(&9CoK+CJk1xjI^auv3YMp|o=E zc%dQis6Q)lR>4*--utB2>C=`x?1581eXFd^?V&5m_{UmUpPww|%0JM*dN1{X)n7DQ ztMv0l!^0D``agvDus5St|3}eJ)(a8!e^nXU;VL|apG@QSsTrDA`%LPZqNKS_<4QEx zqg?&}ZXxDWubSsxs@>zkp~tJ&2>sB8RrXkR6#hGT5_O<&7Ljb7{`J;xbTO!x2|4;4 zjR9s4m#Ovo`Qmg6h1P57Io`Lw(Sc5Q8F#+i{?S$(KB!EOgb&S6a z^-4@nd^YQTe^gXF7W++y3+Vl;PpXFcDOE$)C?xzEBq@wY#WZXmC~K?Mhe0#;2$i!c zU=5bY0##{Jztzm^zD-RGP2WsQsqZ#?Z;xAVgnoEMd7pG=0SxFGUi04x;xW3an}zR} z`iDNFdJMI?*w$2(O}=R6lP*pgzYG z*wS?UQ`Sz}K7vdGf5c1uI@Oz<9V&UV6Ro~!fwAwpG^a1f{nQd&b*C1NzW1SKqLYX9 zVQO%%fJgG`kOildsmS7x<^=RQe~N8Fj~w|F>OyrtXd11`XU|{E=s|q(X-F%-D5o9n zNdjV-Hx(2;x|SwfxuyK+n^&W?`TXO-7tH@d%^JgW35mJmWJbs@$FcvU+{_D-t~S*>H7K@J@)iZcH-1g8ouwwqS4*6ywzv?i zFY=LEk7#JQPsm0R9lysiDyS#lH26}H+*-31scIVPqI0Sg%|LH}Fh{MpRqB_F@8|j~ z{oDPnSaW+Y$A5T-)fF<--1DsO;G?XItQBeJ8%C;CGhjOce3_$D4S_LYiFTGARH5;M(X zAVj<*bWjgaQGW7TBGWH+{#>>K2B4DY=JQ5Z@J2~z_*(c!qm!ehJ}uu*8w3(!_!tj# z%BcK%C;yiLqV2?LnPNLVe5?o5=RSJ@Co$Huvw!&fu2Y{q2;?UZ5^37MFBBH4)4y00 z;2>8TwT`vidAj2oN>s%h6qn=wq&S5cNFgtf`tcSk@ND&#lS})C%a#&;nN?`T>!nCc z9&;Yg>-Ap4BJDrV!5^_dDSe}SG~@#|M1CfHY8=mP}%ua zL67z2Y2;CRjV}9-YR~P?kiVvTHC&)jx?BBugS(h8|MiSxO!27w5E@rey}SPos*bMV zYfkQpLI1}jAMvcn-*IL zcu1%v|KXm^?H_3fl6l7ZC4Z=LzsJ^aoJ@Q|wdOMqgcPqIddY?d=##nwLl^nPDv1y9 zcfRoa`YO-J*Z5hXfoNFL>QOb-p(h_?HuU+|BADXyHI-*RdIJS#>Sgx(Z$JJn?^35@ z$tzvrl~;fLT<2pE=9Ftca>k=ZAxG8DCsf{?AXsVoxwY1!Mx&vudVHd3yl)|X|8upc z?(6G6NbK$PzjxEmwF#4_TsI?#ghP>M#<>Uu^o)f#_fPH3t03ex8h?H{enS88e8V&M zcJ-~F*qt*d)MwxDEoPO*c!_S2tUX+7StOF z)PtWjFRm~(v}IQm&?`riPikO(R_#^ma)?69f@8n<`DxP4r#~{mcMXJ|5&4RZLP9|J zLJ{YtEMJO#q}-pU{2{A;VFR`cmHz%GT)*qpas8db=R-dVWWnY~M}D8%$hU2TZ#)%= zzE(-i=tm0#nVKfDHZq89tMa*rq#D?MX^MrH@tmXTPvtcZvHruTP~Jw|y^#60THZ65Q~Qr9wz%D*?i zj%zmlRWBn3|HAwfNH06_}< zcFmUcrirXCcPcF}CtFe2WBq8fTO7E{cmkOO^s- zGBlhO7TC|xQtLu8+Q#@Chhx6JslB6BXh`oEu8#Gh+cr`yWCZ)g+fm=Gopitempx>J zb9NFz>r;GdcsUsWc={*6hXP|_JO|_MzbAbrW z!{t&U@=uiAKeKLmHh22^7H?o!Su(6k z-^pfeW1#z-V&aDS=afwc!A46g%np0Sr5MTdKUb$0bS6Hmfe5p* z%Ygl){+n4XJw)kNj#20iGAT>~C>?udtY+azETQm`X{>y|;crbqO3kv$WEF4Bc~ZCw zL`b9$1@6HL;7Adb!1<@AMNdJhDhYl<5?M>YgY(56j0KRRaQ7hB5}R^$C z-^C+BI7;FzNguul!-;Pr2ND3&(1M*r4vibUslKnpuZqH+4T#rhy}#e^IReSWM1k&3 z7gt8nnEM(v@DI$~gsT-i{VOV_8#5AdXrGXvoAz6<`|eZr1?Uj1DS`6WW`qv-;_tE} zYBrPU(xFmpad{m%{eG2Dl4&?^lHz#RBl^P<)WaQrrvT~dW>AnV%K+YG%~8k{$(TdR z!8?&5p6J8{2m<4mLyvupWeCEnnfcdhEri{1_!ybweGE~l|LZur<7mH!U>OK{oYHpL zFE#g1e@?#m*^6cOzSu{007$3^t6ZMg{`=j;7@fGd-;sJ@Jix2SrTto1ej-~+`&)0a zl;M(g*1Q*vtRs}ZtbOdUk)A}lE7%L|2WOXxzlswCs=GR0N+V~l?GSMI?$RFb&;R?h zZ1LNLeMg+xw=o@`O7}t0>jrTJ)Z5RcmFKq6nmRyq=gJ2{xqkNKc`aAW8A4HUc^9Ga zQfiNJ>Ep2R8F$T-+HQShtaG_vB|02+Iure^2Mz^KTNqd@S%Ip#4Dx-u6uH=eza1}tOd zuyMvA*yPM2d&DgZRZiE|GX2A`#^Lb#Ylpr&x|{nueafYqXGYtlo5-{|vnuFVMD#3F zFk^*TP&^kuZ@pmGp3Q{Vs?U)?vW0tDI6Vg?8jwZ%NIPW~Lr?X{u4AWl~vqx2J8{_nOHS`BR$ ziY#+@m(CkBa=`7ahz7~Jot%v>=bzleNOn7J8axC8nxER5mw{FUrIV6Uu4m4ZtKDEb z=Asb2v1F&Z{a(CZsc|c-MF6o7zQVP&x7B7x#}Qn&{18cprro8VS0Ut$ z3n-c7_Cng3sxRn5C)t+>%>QCLr_2@$35RI(aAqOBCv4?&;OAV0(5ZJd5gmqvsi0tt zUEJ2l)amNwPX+;aIR(PhHQzlA1!fj#zlRW9j@#`AqG(zJz_KfLxa_{rA~cRs`rN4{ zbBGufIFR~(R0LLlwxTrFlY+Mr_7Cr})4ByJi7ay;+*;;BBi`H!H#~twoQ%Dj~6JYmIbUUOpZZ4B0a4CV%*lOo=Ajmt{K6 zuWM&~XG#}b{P}gfm-Hy7;P&)BnnOTZHqg#1Im4hGDZETZFl^Dgn{Bb;>D-7{2E1^4 z63=Z&nrin&z3C1oBxSaT;a1HaP=J>?XSN6zT|w3c(!lp!;&7=)e8NDc2AX1!(hN@ouf zT#ow(P`d?YHYT9oRORW1ptdX?#r_!<7 z{$Qpg?RF3*mdZLE%VlG+j)p`8jD&^95QsM2Lu_kwZ7XbSYa=TeEDIb2^8f$<0BEGZ zir;GYZe}JT<{y#>loBWnDh@Hwa)h)48V~3&)5n?m1$V;>phf-MfJg)SDL!f}Yf$EX=9E&0EkE3xcRC=_p~830wwZ3W8gS zztqU-OETPgVOw2=(03XL5c7;+(4%B}ks?*la%s$=%GYusVz!tW(b-Ey0~1G8-`E3e-(4X?kU+lxs-6{O0pSx$ zO6_aeD#Xu!i;w(6hcFi&nzDDss)!HkE@?3w3rtUl?9{yvN!kwlEf!d58imc*t6{o1 zhm{YGx>@}AZDJwW90D@ZEiu(Hdx2`;ZpCqJd*-kJ7=>Gej1|r{L)vjgOI7X+T27{blQxC zbFqr4-eB+L)ax!4XhOX#V#pDCo$%2Zi=~Njp3g-_)$;8N9UrQ#f(LX|J^$Z`0i#8G__rrxcbEe)MT7iqtkW zVgmWndQJ0svM`W=?Vc6PyU!jZgeVG4yvThHBNc!yTSx<7P!EO@l??6TZS6(_i0R1L z?*0_mgAnBE2VItN3;%DchzNa@ETePJt9KgA!KU-roJb}muB3+c^b4#p#^26$=14^Y zY%Qkmg$c566!vY6k7f@$5>cefjedxX&oV&VpY&US4-b5Z2SU{@iTvnz z{p$&?%(1R$=@Tvw^%ubvvZ6*+wy&5yzL5b$VE|4WDW9wJIKz%Q1DxFruVdf*ZgsrGsyBO}ZL~u{gxh`y zJx!&%HqTXt&M)>wTmboAJ*BlrT}iUoxb&8?1#7`Iq0 zMTgI?iY zxu2)`FQ*cFuz+b|KP8ZTEUh`Omwa9ZYTy>dLA$!PQGP8mkcigKz^&dK!JJ((_L?v7 zBcgM!9UkA4?4&&4Yw%6zPtofrL=Esxa;9K!fNCVm2t}l?9xkuu%@Dk5OKYh(?C??h zN<1as7?2RC(Bd;`5FT3ZY$+s8jk(E2{+SpsL)bt031KEHK>*Jd8BVE@LfrGfuLJ7I z=DNGz&5ojokpz(tM`bCQ)^ed?}e6%hzgKsMI9#^ppXZ~9bmoz zBs0O?o?aHr(1{bVrKOWDWIQdus9FwP5cvGI_ox`n^=n88MuILW&DPor{!8o3?N}owJ`RDPniVj@ zZ*osltc+S7`ZaS?Y}6wQLz8-Crj@;Rq4@#qf$>S*HkHbK027a0zs*KuqT-%K##OlI zRHhs}a;M7(j?jr7*kT_N!V+a5{>HG}oCQ$a!T0!~Bo2I(F%15aF}Kok0%6eFm@0xL zT=QJ$&hQfQkJ$_IO=aE^&rDr94;->G0kX!N7uIuH7DqmgShTjYSm>*^TDyfLFpmc- zPSs>hM<~bF8RSkcGCN$=TmId9KfV*~UXUeFm^c06;9AD_CA=2NCKh+iRLBOu9_Z<= zEhvA_4GR@Z>g_^G=U>Z;Fw@%A2CnU-YPe!4fRuWb07*c$zqh!Na+5L2={(T*_C)CP zT8%8Lm~0LR4QSNmM1_>e%C-r?*To?hA*!bZw_BxnM}Jd`kI&*8NW4zAUY|~T^IY*2 z70d#$r#4X|V}(&`%We2P)NzjR4r87~RkEImPp$7Ut2>upj&MU1seLEH(W^~@c3R~G z{@~eL0W;0-9TEA}a#G*@9j!u5yA#dJ=u*(BPqG z7mV+jGqZwrsys}Lpk|r^X}(l~XMe;Hi*<;8#=Jb^HTCdWfpRS!(Rff4S^d~i9Q5aF zuX{pBWR@Ap)x6z&o|yFYvCDC&dh$=ev-s2U*gXu0=is;9;&U4A)Hc`ya`N!V@}Q=i zsbvpTun^O5abgp(_ub-jBz0U9HmMa8fvpp>ymyQ7o!NDla8$NzcJQnF0DhMe@r>Bi zsar{$gO!L|Y>H`5a1|b(gw&?JooB6=LyF=u`o$MBwcvoYyY;~}@GlU1InPR8fZ%%O zXRVD94mpIZbUd${k^i=L4vjiLAF< z`&Fi9>4|8oyM+G$fd@yxSdeK|(kMPl;a93`g#Re8qY!~hwvZb9xVp7;fr-;$Nl1#- z>-^xUQ7|6sT#$2L^EG%*FdS2L3B@^$@ z_HN5IAa^*{*>y}OwEpqzirn;4RkVJs@#fqKH%dpnVy>@M-@ zsF)y;6V3{lyKZ2!wH@Dnw25cUI~O5Sv6=+No%Lv0&`$Rub~OgN6>rLiQk7vbs_@sO zGg)FglI&oC1h?zeyaC6cKrKg_sA*$0$@@22^DylKLiZGu3(jG0dji?ZrZ1SFRcKKt_DXNAL`UcX- zFMFSjlAta9w)58ohdEdFuo>HPgtnIRJH)lED-=^<@;TJz^rP99rFl|h1$j+oPPN;? zZ?IUdwQ$s;?Q|8cE<*1z5^TGIHm2a4t=AnM_u}4MRPU>;NOuB`5~ESRD`)PTR@`G$ zR@KlJ6aBst<6KGx%3`7%_t`>%fbbWkm-9g0nI<+SnygCDh3m66a2}&MTKZ<;tNZvz zUv$U)49YQ@}mt^++hLZjnQcg}IGRX%Rt;r&FDqme7bOSU~?Y1^VvFRHg`E(azTtr+w2jz@lVn&iF_ z<@$4Zr8g@;XzX)BS%v6O-YalEBedDu2D7D=U7=}>R_=BzDFk9o8U;z_(w&F)0bj`* zxdT6!2>*|@L%D5lhor9y7IA8f{H&w#HsStJ{A$a$!mhs}R(bvQ0X)tV;0f`Zp9I;G z2_jjG@R+0ei`{Uvx78wCSBr7xa23R0ISuZ3lFSgU$iYL&Vif|wgtUce&$a3fk z@{a4VHIr(xRV8l%+g99J*4T{HH|r31RMq(IU64rRmy@qviI8?i>a?EUdO4$*0WfVp zIO7@j`+1=>NjDkRKs%6})~40XbmWvz?+y)<<&g9D=7jq+57`G8&JrCguE3cWsjK+N z@rG@ub>Otxtp1%wEXDyF_L!%Fce17FeQ9}pwHvWjdwSsB{8CphEbAd_xWJXj;Eh^^ z8GH}&5-v<&#<=FDU~FVn*UlpGO5$i!K}kx{5+e&+PXt8)lI?~PwzA?kSi-_pBL3xp zYmRMdgvP*;8lh`2FEfWXOU!3VW@l2wsq`BvT_OutK8Stn94qlxbrm)#v7efFv0)q1 zF9+BZet^$yR{ygt%NK?luc0QU;JUbv3pZ?sinHBu3HVd7faT%icRk`3A4O{U_0kz4a2R@0TUgr+C8lQ#d&9I7Ip15~W*g2MjymLEd%SHc(>)xW=7HfO{m<3{M1LPfKa*@U2raPs zbi@EEkI!7E0z$@UINvIueV>YioiqhCs3_$Yeb`17yJb=6S4rjb+e9(j*`IAs z68G5K8Xo=BNIAXz`;zPD8`kYVVr!j#hev?ntke&5DRZ z$wz3V96Ca}M_M%0E>`}`)J;Qj8-D!}Ne>zCT>qW155vjpI#I@G zc{bX4h)7dSh8%ZF=#LNA@1oKb0OY-VO*2B*4aes>z7Gnj}IYi#O9zl{&` z`|G}<$_FB<&8zk3nd^l9h@KgaTL3~ziKJ`WLsrC~Ft=I!@R{b=p1zNdh4O7UV=<{2 z5!Ysj^=(hbQ2aQeTVwS{9+Aw^*cb|hWo@PNgl_j~Ietmi*-*m}#q`Z9+#ll&hQ5_F zkM{G|=0XWEJ}6}Q`n^kbeyU@6)Niwj7+2BVsDkr1?JV9*%&v{zH`Im|>23RuO>alY z`EaAp<&jZU!(8+-a#<)pDic$PnEgfq&rgwPC)7<1Z}|vJvytJoBf6hiCC|$zcSl7z zPh14;6_v+qV{=BRrX`CYx9GIn5_5lA;=WSf)HIO)3Yl$oMndyDNU`*jIPiXJ(l;A+ z#Go+0N@D32B3G-664hjSBZNA8#%ZhkS%t49$kzSK(UG4xhk zu_{HM3vLO|dBZrZGmOw*+V%ak8bUrw^v$7bM}s;s{hhdXZ}jon#JQtk@bo zXKdrcPwB5v?oQMg;t(||chKk?Wvc&Q9J`)>)#^f2{oBu+HR#DHK7W6cUZHVwfv~|*e zQd-kjqs44N@@vvmwT62$>`aDqHLjy6@9Nr_iTRr)M>?9=pFpioreBE~m1pW!xm$a* zh#$ji^fvA)|5}ky+Ozd_jL_1_+C)#P3D3{$5c)#vnwIl7#c_oGKPvg0Op^T_(qr#C zpgqI=OY~k(PJRDL<*k+Jo<2hZFZ1eJ@gg+eAmqq?^E(+U`J<-Y=?(GwB)>TzAC(FH zr++h4^v0oLrT>*Cq_IXM_Kea^dVEwtUqEKo96!p&*3i0AAF1WjYZ;LGzHuGOf~I(o z1BpHpt0r;jOrV}UQm(~nkVVx8#=yN@vm#4OHB_{eF3k2L z)}l-wLDg5^=Pk$HkC;}c$7A23qfDmh*)&B`u#9ji>7vkw{CWH0VD! zqD40h|EXirl0HikL~l_mnDL*{k|pS%MpStvn+Y0f!RV>JE|wQPNR}B%RLjdn-tVn? zA1=`q_5wYd7;vQDk-Wu-sCssqM;>B-aL1`j>0m|9FTbr^-p8dRDbAkN>H82mc6a(0JgDSM!Y~ zmaXOli}`XhJMH4~gd7H#%c2%r5#(NLzbX!Qh2yuE%yGhPa(5Ic|niMlD<7Wg2w$9I;{H5yGIObR z!_Rrm&aM~&$;uA3Tp%x4U_f8wch5+dcfQS7kTfU|Cyv_J(~7A)RE;2%4O0$^PB~(9 zvw19L>PctVWFrtl)7$jB3pd38+dh|^27|5H#GIhsw~P*o>ng|mSs+ZySvkmzQ1j$v zvzMl%cu(VCNL=#pr6=QRd8Xzv7d3ZRTcsLr!uAOy>8m9#8sH$y&kwc}|jh{I4+7xDJ!Z`R!ji^W|7hl5VLgLWjb+w8@-rJ7axTznz z0dZEdDV5CZwzxaQM$jb%qze}Rvk`eSJz_TB9;0 zs$pTdZiFLQ8Wd!q*BM1NLezvJJMvecRe6it*qwf@y}!qWdt|t2bs#K=RjE`FW=p8M zww%lwh4pK$1g)Dh{9WjpAN+?Kg`LgQ;$mT>(H|ktD&oTLm5LGyi7k=EBwY(8wrObO z;sh>)7O~}+$}^2xSm}U?IOyl%3pS!?a8PTXO^iI@yN{&^w|L+=l%`dQ>_RZa5APly zCMXMA-+-rQKdgE7=)DbFd*QNEOSWejk0xA+AnVZ|~Ep{?%L z6WTb3O`ypy!A2|4J;@L5vA^5}IV2dW-u`33^KZ|hjNKrnw5Qw1Rh2tq&^;VQ8@yr! z;<_L9;7@P8gyr$Ts<2?FF>oT8#rLEVq|*&qmo9Y`+N8o&_O8AeuuQK+W8j^(+}V$t zroqo36>~##iC?jQ7N?~FMm{N|K%N7>JL4G{R*oZ7WtK3vGKBBQ3$kr%Xp5>E(7JY^ za0b@I=&JV#bC}TLyHBqR{vUiOFwE^pI2XtDce3(K9-tT^R!{OBMYBbTf*O!JX@tjwvA?Q;oSx^;WBw9HO=s8{Sk^ z(F%d+r)c^|68SD$%PfspGssEBgp4G3lM|3g*8`8yrZ0RI-kXG3R{Xt+i>x=| zQ4i)P@|7q7^N))T0yq)T`HgoL`S`N%!-BA{7Ka^RZedx@oNhSda^cr{dxMa>odJQ= zc?3M9@EQ?NDWC_nKSlAq4oUJdoD@kPX5rUz0l4(^S2l;YG7*`N0Izk=3A~-SOKglF zp_CHWG6n)Ax**8*2HbgYozZAzud<&9uL~5g_r4}cd^?yn4z{&#uWVMXh(ZFC`m1KC za;H7Y%5H6|P-DxE)o3q$S=#Hm_~a=&PVvCzJI)6_b1wNP4)2O9m~-Cj=xA7ey+|uL^;RCioFuL;)GYRVs4^cH zv`~RfYl^*-a99D&xnyfX=1(PH(SVqzxa`re`K?7)nz<0X@KYyxNp{@y{rt+Afr3x! z1IF8Wc%)|zInA%ie=n(m|0N_4zJ3%F&K`^55|``}J}Q{oc@r=pR5f-vtjmo&Cs0Q9 zyEuj_72MXH^yjOZo=k%S;U14D$3hTVF5E}D0Ix|hBp?>BzScfooOA^@c8y?d%Ddj% zCCJD^XHO$y=ek5}D>F;%-9zyxIgWmOWQCO59+1*Id2n>q-bsNwz6_Yagv?Fii_pnB zz!}J(+RH#q19D9BoGwZfD>@WpGZ6&9LWo`k5MfOjEi?`y(LH>$FbyR`efp9p2n$X^-P~9OG`c zVOlx;Jk(D>r@Ctj9sJ4|$6-n1fu530_7roANKdM~kh=)mNl{?;gaUn3(jmB=Q1lRV zdt41*$3x~*zI_}peSIT{@QiDQ=8>4D^tMsX=5$1YJSP8~JA{sXwcnPrwwWGh){KCH zLtBtX$-*ZJ7j<5a|Y>pKf{yAw(d3sUDk$y#~|LDBLyQYjINxVBqJ$>nVb-y zec1;7>n^tqu;ZLME6mQLbQ8jUv$%;ixXBq<->cK;V^+QiXDbmi2WKJ&Y#n`7YXH!x zt!%&RI*Zy#pgSApBvM@NST8m7wgbkP{KpP(p_Jq7l$(UTdiRg$V|J0P-g%qeINr<( zE_w}|@Ez5tm-pPFu{y};L2jq8gklZI@1sF^Q}Niy^hb)jH!)uyJftlipuyo#+$m%3 zrCk{tS*_+r_%Rr z{Q{qJnR5oc8FMicL|N?|U;C+nvz{^g+lY8v5f0oC@K?4^8@-5s9C`FX z&fV$=t7b#!YQqjXxMzFD+G8n|)ZW@tM;FNFn58dU&aLjtn8&*o-rK`=)`Gl0m+FwmaZsgUj;3>cdIKO?QxFLMdXr&g6ZHI0P<7@N*$wYn>+8FI&Ef z<9VqgW)7^-LVLFE{-Qm3M&HZHTg~yGTMlLtnYOxPu7ygG345{KBS5(`Tk7{%A|WTK z{Ege3SF?`O2oh7KmqoQ-Q5emqt=X=1L+4DDO*8|r$ zt7%r{iK3s#Q4_unNq6@cY5X>578Q=vE;Av)tFV94L8*_2FoYSK1rVZ|v zAadU+zP!305!3tOCdpjOkHJ5s2;#YV;Cy@vO7i>098+7kP?jmZoG9-k+aI*bi>JK4 zNgmVLNcVFPjTO+v_(VakBOx%a|mj{JEK%>OoF10_0+I4a}Lp-fDtTB1{MBOARw6N+3Nhx7y zLZmSzk37xfyr8&^ZU*6ygld~{Hh)0RSo=Hu-tEas~5~@ zct_pT-E4vcDP4uMTDMv{9to%VVN*_Q<`F& z0ic2fNkg{w*|M*Dd3mo;h6~}lTyr8-R0AqZ$QYJx5%9_N2r+@pyHH+^cwY5cOj&g4|i=jkuvTP(ugc&VfQ2n(1v|pq3$K-HLAo7^a0|{D1>rWVzg#8#Bc5@ zqWoR$Z;GhJV)gU&FA9$8yVDtta*~C(3e$H6YzyFfcJ`;}z^$wEifFqpmned!;Sr=) z*)#NYu*WevJ1w#jVRg5s7zy#T(I>b4O)lUC?PO{;?X75B*;8q&H{053k>9@mI_d;s zodc|)LL_s%RAy2j#SG!%Kr zW!=q+Ot@wk%!{wvFn{5A~YUZRQ$=8+l^~ z)z1G>JBNI6){KArWTEoi8I9IctNE%)%F)X8YP5)(U}hYhR4RgD{^K1qD}!j8;1MOmr`&<2bX^VhP`=K(a?so-1725s%%p zq;?$H6nVL>S(%@SLLNeO_d*d=EbDZ#zh+D}vduPBFbVG1o~D-PlYi;cg>a%ey1ZgT z#u>G9r=P@2e8*cGPje!}@4>#FaSL4d;zwThY;W8lmfnr(>I>jHQ-|}A=`hUBpe%FP ze2-%Nj|_M|hPCC>Xze!4%X!M4FH>^pD$1@II~CKXs>)$@?Hi|!UK=NvgvaBTLTlUM z6ESs~h;HN1M4B8dOR?_(K0yNeVZd+WY99Q|ws&XOj-ow3;IyCx(VDv`E)eBuZ--nq z41=NF-iU%9DyTd%B3M)6yy*4g>q(2RUdsdVPo6Y$$GbCRMciFfHbOU26t_y=rdwJh z=kh2yUFkF`mw6d#?d*5cBToK!eQ2De-{c1n)>0P3Sq$de5m27XTsY*VG_%eGq445% zqHsdwtDedU1X=CX;$)xf#Qz0-2+1e*$QDFz=yj$OPZ?Ht5I)>q5qxLIeJ;w?xH6YD zltnFWzMGPyE`vjRtw2ohLtc>gmq(mQ%?w~?jT|Ckgg_S-!)z9x+cy<}FQ;J5F63XB zWFKx4+S5VABS?-)msxpvLV|KS8kxez{n%; z$)>K0oDIG!J$`g=wh{~6M2pnt6+DmvG)g?qJWF2Q;nQTl>b4^5O>Xwrg7Zw*q3F=S z1{9KAB_NE|39G71a*2*lgUUtJVpVz}MIeP$8dsL97eezsf3!tS!5$L~d`AxN&=SUN zxISx1L08Vw-4OfUSzc_oZu>Am*#XxJnMJ23(SGNrUB$lE6)js>gmut)c67aVAo3A4 z@0j!EOLbhF&Qnx%A3a%vabn&qw%2yrF=unQG#u`(s6pNyG-ndqxSu}3nFV1dM{{|= z8ch!YD5^xj!mx)FxDV*ga>9b`&R3B?gx*oGPFnd5i+x07p}A<1+AAQ_y=qSRRP}=* zCS&ZmW>}_j`gXP;9S-@tg>A=h1Y>H^TT>qJhYVoKC!BG283K9Yt{^{2WR${V+Ea`9 zJH!~Vo&ZyI@$lF{v0xB^l5~}~IEs|agE3-PhysU;}gWf+YpU`4Z>ksIn>CEET<(?S5Yd^BC)9?I8CTXZxO=m z(N-mOvcGHW5W$I7buM)A$DV(?plP{ZCR-P>kF~$+8G2$Tri%pQf;ToeZUPOP^J{xS zm!}7Kq~YDp{q;P6cjIdEbQ&XmZD63~%XV|R9q_tI2~a&V)4v$Zf;*Uvix;LF8$ak3 z%deTml9Rn()ase|FWtzt&u4sVwN?H3>BPDH3zWQ)LjIpf5f=6Qvz@(@@jC4YkM&9e zyU%m_yVAa)m8KeKTu&meTS`=E*(A49a9zaX1UYK?0;@(tCmyFANa%Sz2&cViaf4qq zs~uXo88SdDx`Ae#KAFf>Vd!W+O`x6Ag;DRQz=NeVzn~XNq&Wnj6jzNcbi)pRx+@`! z!Mho-xYP1*y9VQ}v48}I6pG3zx4j6H#j}RD!6f#5uR@-LS_;4s07)MZH8~S~ZELFI zeHJiV(b{09+jBwji^AOY^VsKk&`mTQF9t{v+15G&Tkyh470elMiRp&K6CA3uznF;;A}gYVbjK+B>lkDPefL&$ zFI0x`K^1^}s4DkyX5UA(%>*g-wEeg$=Y1;q;jmbZwT{H8!eh-#O437>F{urGoD|y407 z{I5eANuEeb!)t98e(Sxg8V#8A{%0*2&6o0Nn7$=9UO zNe;zoVm0CVmb#K^N|JsU-R$cNiaCi9UQMf^in;C+#_Knwuncc}+VZWMT16#B7W$4c zt%tE?kEp?Q51W!m$^VnaXqsZX)>u^khQ2-zJf2p(sTr8A8hl+F`xv-0{f zsljyuWiHkC3TbH@w*0m>aQx=2%YT(;tu~@vjfdVsp*Ne||1+BRX_hv_Y5qBj5t^Ne zvvJY3s$=?Gu9Xw>*Aafksb~BFsI6N&KV}=qp>`sxg+w^t-=$P&i+x&SWq#ng-x)Y0 za8VNDv=DHg{&tm3D=7r*))+!+*PoVqYS*e7@f#^s_F>R2LT-JNZHegawUL}PQ`ub) zhZRRkX-~PdnB$e6J^qasY;418F=K9+IJP^_?0j+3e$6z+0B}@9F4O_iULvcy;x+0EtM;;EbO zURvVIj;eVm-+NO<+Y&eGT2f93(%`o`>0XpLO-egi*%p4+N1RC6-gLz`BsM96wG{N@ z{W%073bkE9q^dgN-(KSMX&u(2loVRlVri?QwEXKuzgXldt2Pq)N4yb=y@|SWQPrh? z?X9F8&v+;l{AAaCjZo&MY0oR6NMT58)b4ej*h#}6NOOnkfWi(3uZT#Gbw|p@h*1Gy_c8&2sLBIbj$8Rg)~$V=)=*wDLs(yov9X$6h)UG zj8TBp!EmYGcnM6e&YnQpt|-Zs{r8=e^Kwes^GUff@6b_F^X=yX%6<$!MyZs#KcY2W ztRoF4eZ@4G;=)~#@j;5e{RlOL*;v>(|3?Nm16Eo{HzFI$L2w1^dNsx}tt-k(ryPNIf4&Pet=7sd?}DvYjtu zrb@PoCZ))JCdEkco@$`V^~;|WPx)uVf2h?^kfy2(rwk%=#+G6>?kI#NRc)gX$LgtK zA2OsojoQ_8e%;8+?0>vu38f$uV>S?)p-T6kn)ll>>W-@ko)W`VkMrLrqtM+TYRw4y zXa9txX1bO1CHhGN7d>WLY3#TKS7OnvDLbk~&VEZ9B}KaapU$DbO80Jn-_QNk9(t>$ z+WX!>E-~7qUx)uQk4DBn((-gMswnpjt;Sy7JEg{2mit9;+jKG`X0Y8w0~QPQS9MeSi1L_T{fX(IHo-HKV%ko3OZ z;{H^d!))F5Yf|kO4NKCwM08$j@?9B;&idNduqsuTVaILi1KEmrJ4CRqn%EsBryAbb zVl)~*@~8RRXP;A%iaVu1R^{(I!+wzLa3rMY!=Z70bbjWOMpc^so8V!3O?vuTGo+q= zZILbiwo~Qx9e*hD0xvy<-xU_IQr}8-Cy|r#pMHN#`+@nzcuxhymHt_6lR~{(Q};zt zYF610_l0AIA>KdcgHMcVUF~01=Lx5ZCfYk12Tk z)k&pLEutmrEdkSC1p%2tNL19OP*K+@ons|^s_MR74Lh&P(!K4X zir&X}yBZ25P1>Ya?f4EwNKYZgm%==vkB5r0?-`MbrQJSh5*?M8-1I~J{gX=}=<+be z_5VI}Pg6<=N)9U$8puue}!6kA2$pb{OV@`H`0TYsJ~VM-WU7>0xBC2 z#`7T-ZBiix-Oh|McUcF_W;x zp1<#LU+FHPojKQ^^7RjM-teuw(2dp5bcaSQ3)Aw`^|D6j@vl-%o~i&@lK#g&5lhg} zPmjF(XnvRtV()vMLE}Hl7U+vKBo$rg9r-_qslNGfmf6w9Xo?;5m{*>dKa96Tnx*Hl z%DO6k7^7sCBM9@Ud%`IIs&y@eKQ&6zZ7z4-LMh~hoW?hHf3H^9Gp`@i|Mk)r?}~}# z>JU`;-vwEttcz52hO`cGTV6LrD*@}yG~ zJY{WpHkFUbHT{j=6ZdK7ZOxWJmpcEn529Z==rXs`I)9!ds-g4#BwsXDQeVv(HOF_< zWZwFORZU4r1jI&|Rf;nj?G0Ra0;yMb>0D?wP^k7dN`mS6sH$6%2&NkQnG~ddNvhg@ z^}EA)QVXyuj?PaVda?gtn=WJ}3hC~EBfrpoGZ^{38IAf>X3vX;{;*87iZ*S8^i!gt zX8t6GP-A>wp^iy(q^o259loj^^PfNanb3Q`N%FrSj2#K1R5P3@*uT$V0RCI#zcApu z4=KE#zl>f~nUWCyZDr*3zt#K$Y5o59KMw?4Dm#ALq!BAsY2-`Q0(omA_?16Q(=Ca} zt^)ROfNv517cARYw3tBb$7YwEWZI@}il(l~B@1wIEGaHd>u1xL=M*sB1a2`U5QRvo zj)3ktz5WVwm2(^**{ZyKIe?%Rlc)NCNKE;tnh=Q?WlfF336j^vZhpS&vRx&Y4WUxR zrSB$UyUUc8TU}0Qo!tbo%4Mu#krU3oU_W%bfe+Y{r0{fuiJ;O|Rm_6p;)|W1bnxF+ z@vTeLz8DBf*lG+aNH&Bj6hIqr?#G~bG=wQ==i5qo1R~avm6tcUNg!-Jh3~hoNddLE z$Z3Hua-v1{Y=QXACBWgA7?zV0ONkdfz^+2)@3VESHH;;!bP^^H7#V{2oIshnV|9<4 zGhoc$xAG?ya+D~l?-ddOgtxk`3>k>>Xew4b0xN1|AHze~>brY0JU4j0o4tT6DP>NK zIZ6%eCBR)xox_P5!H8YgY>AHyuUB0K98%V`%e&j!OPOSE4e_;iuSCqO@nbUhMZiwi zP(|1(3%BMA48mrAVEAnY8~K_ovOmmod=X*J$jg`M)e})rESx-|@RPe9>%j5*V#Ei#8ZG>yWI*q`D;%jd zn$&i$im}$Q+Dfid-DDJ|*)GpJjAJfD5wz5@{1LE)E^bIHR$s?z+=(zGlA46!A^9RU zOS}z0*VvP<+@pwcD&Jt0QBx>?ZKN8N2zGl3J9^>JOdThKLCB*jg!!-V*D>atT9L%h zW+l54;&6i_y!u=$pJWTZ4`70WujWkGnO3QqC?T$;&*ziMvNBCW= zbdm+F8_`*G-i=##I(e)(r3!_L?*6|mLRSC)vA=iDnLy;&H zT~15ouJ&b9QjlI3A_g7$#dhtv_!to^mpB9ecQKhUy%ES}j$8}GqKO}A7WXgoWiZ>! z$280dC>6>P-QF8^;BDu-#5=&DosXOK6h$czMvZ*}fYZqbC3(1oFGprsZcAj`wAjW9 zGx8iF#>-xRLf7Q-k6q;rCtf0P%pI~^jbMa2)-%2u2kbg?V&`9%eaGujHd^ooClL-G zZwesckJ+T zV7)ivCz)Kuck4Da`#w=*+Q9%;-Uvs}5IER#FRoBIP(2)5S0&ZNVceKna!M|YxMs}7 z5BFD+(aX+x*Hes2?%9(l1uM+y-Hb3_jS(iO5$#~+c_FC~b1`>C2=l8SWaey&koyp` z+~NX&^Op%%GJ=%o7^+0`XaXQx(Y6T^K+8IwK-$_Tfcrx~MYt^?K=xFuQGh^_ITo{c zH90C$>f2d#Su?OPxb219b6S9%g^hrM0pVJ|v}Q_-4l*<#Uz#d~k`T6Nds;ovmC4e8 zhcA;-X#8d}Wp4PwPZ&+^UqHRhRvF`;07KT@2!71niQPsBos4VWh4T^4(xBk~c>d?I z%WyBOYJGPaxLREVY$`=LjI($Cxv;1cd8#9WPAY(&6wC(w1mGq-6pxCBzR_9rbuQ$_ zPQOK$f5EWn7@5f_6q6-y7H|1_iQ_sEfnEqT8b`UU^C?m?8^Skd;)~frs!nGw%vh4M zaoqAjZlq&tu~P6BEzW~Uyo%-=UUM1b2Hc6C<7hHk=I24lsGd6S=0@h9`$G@{Quo(D z4uLPEJP(|X}@9~wHNT8MLXt(d&#Lc@|N7uMHX5_r&yL!-!qC`M(GKT&Li3;spzm*MjD=oOn z>deFyT;jsDAW2&?8(8tH2{Uf)eL04MH)|)ZxVZFi)FFhjg>3FlG|YI%$RIM@YLIgq zmLsWz@k6-}N7@ixMN4?dcoYVCmrB|+Qf3X3H0FyC-ug)2fa?Y^z~s=J$4wMVA1EhK zLB|V%rj)j(msofs?RV>f{&V7zpPO)y5hoTXC0ny6?x3BwK+{}vF|Is@SkK8S^Kdq+ z9-$RXi-y$RPVTH^^_rOej9-|;#}mBB#mEK;(HawHTQ5$tdvH(iUuI|G@5weUqz+j4 z)A-(F17xLd=rR}7*l$Mk;C2(HRWtB?Fp}qGkt>yRx^WKwK~TviznZYlaRMB-$A@R( zcHeP90$|{MLxf9K3{h1D0hZNY$95y>{vWyw4VRGMCxy z-AIeCwy*qibA;~@9r8#HwFT@{yrHn<6AzZXv@sk%7=$Y`2Or=#w|4^817fyt4FBbf&I8Dhn97?`Z@$k-7TnoRg*Cg*S1)PKGR?qL z7$1>7nn%vkOrb@29wNINiL$se;KMO>H_3v?B`48xI15t!oRf}lqdI0r65+NHU@54P z5WO_gkU(gGeBT$bcb`I;q6C56%|Nk?)4_iNx@;NTlzc|M3JqOflTx$zI}nW) z>Q#HAYF|K{Sgv)Bws(P)Zm!yk%_(5hhxE1h?R&%Kors5Qzb6NqO8%J+Ipr>bT{KNl z&%qjMCirdljl~?OJ4sx{sw#msRZQ>e;`uRynOhy6B9@&a?zPG1($v29o~9$t@O#m% zSf>|`v60W8Oho91No>fLB9Y1_+xb9cL=>OkiVIVqo`}c`(Ai>LjtnC58t80!MxKGv zm&@gzVB!gW&mL;zAikiC^3wg~*7hob(jdOi@_!d3bBv4nYvw;oI5clrA1vgBk+Far z1-+ZocO0X%y^0Qq$EzDHic*w7%|RVggX&cz0ZP->O>q_ODJ+X?*!sPw4PUiA&Ycy# zPHbC}xL60ZUvW}~25$dGc5Cs$7MNVkK@5UDIc6N>aBCS6E7xRys24Z!f{R*7qJZYJ zzdV5hpPY5L8XTC7RAHueQglN6+i=TsG-O>fi?G$@`3p34KLb6j@ZXFk`a~B5yerfQ zR0pY5$VX=)J-nj8@tP%G!Yxo!$cYrJvRlX6{`&dIMa9j_F%g&6n0dwj6v9+ljErSLd6p>)XH7BVbTC_?^YATaGQRg7Wz9Hh?LLr0rmQ?!0tPdki7LH*83x z@6IEkRsWojvL>5sPIyv8Bt2Dm-6{W4@Z{kGj-rv)kOyDBL&M?4o5b_j&V+=hu8wbd zo|7*5m{6>_E(ipVE~!3#<-7b?RIz8Oa+sXNWfu zd3FQcSl{BT;F)|Hk%(@mraAVNb0#hbx;brK2;$>`>n5Kjb>;;TXnz>s!jA4gjPb7L ziu$QA;%Y0L2*teIO{YKcD`Rgj+~@Y0`7x^AQ8hcjNAEvlE_4?Hod< zRsqb($~%NkvcB!KIp+1mRiucMe*kQpVUpN@zX3BT4vXSaaqM%Ki#3^ZKTof|y|HUK z(_n3Xujgtt6p)aE3K5TXnl&HerWBJS>jf`n40)gJELbhxp8do;abQ65jF<0hd_uf8 zGB(UK8Gl!7qer$FD@lBeqwWcWOv`tH;kTjmEhyWEr!`Vms_t30(1sUjYwq`Dld+K&l(_`FI14ZHWHU415cHnqCfud= z@8`5xa1$z~O~p+-A}6ocgtHNA%RY_CMeMhihy*bNr?T=mRNO&a19DSmJ(8EwOZiSaN!hdLTE*^!XHKU^Iq{= z@^Oqrq~^Rs+0M(B<3pmiUM}oH=)mod5x7wNP?Xy#;{ZbE#oB>usvvw%Sxqw2QKR#6 zfZX1VlhHS&+TA-f_#?Z4X#d@(yJ>+5r|ed4q!UM>X5a$kT-tgjeB)DW(!Ec}qG8Bf z2trHf9b&z03k^i=W|s9N{bUVjb;;cw^>=nfuv@v3^?c<{5F)Z<-L`6}h3R=(%A+QW%!Ys$%-$5qcA0Kg09W7`~c z6L!|BY1%KkeMA63K)%0BgUP%%6QEr7ih08KkbrzFG}M^sX!WwAO+2cx5Mho!%T3Qe z2|ypK^PM&WAni9lwY6PB?-@-Y<2bWcwhn@aWkIN7B9LetjBYUEXIrPDH_Y$L%P~T| zDlP4E`Z6be6qn8DGWzi-ubI{LiW-W=&J|2yJ%3MsJ&W4->d3__xgquONxJUHu-^|k z(6*TnZsUyB!-Ba_JNVd!J@aiL>l8&b2`_-ltb=b|pILW=JG5R&Izyt@h5+Qh$G8DP zu@OZ2wG&{1`*Ls_VNbwAj!&Tv)2=na`Uhp6BzDD3s;(C$OBhKx-L6`Uf`}G=Covtb zy*M`rnp;CP*1ZlL@}S7(NiBnoyFRE7t&LWlU`--_#*x>h#7SA9EZy#@uZ^#|Oq<7? zQE{z-@V1?gE;IU#4_F6T$2@i$p5Y8SikY*vXuGyVDdFFZ^N>|?omOB1lg-5mx@cO+ z{e!XhiAJBArG}vvmx()07$=%_M*#(&ewhEF1 zY**DNNLCOcZ)J)_eMv*VWhj=q#q1(~tZwGmiqHVb{*^yl%`wB`YQ$D_n{5r!1$GuU zpK=s9-}Sa^yf*|WAi1ar_>ACa<+CM(^D5`e#CE+@z+HdOWt41KMRo21)|dmV?xbtA zrD-68-I;l>*=BZ}2S~_Tf_XVb88a(TyBBN6wysKXV~Zwgow4gP&xlC?OXN9^HnS7J zE>IQlgZc!xMWIz%Rmflys+lp8j|znNPU1Z^rQ;+h5em_o z-yC-u^-3t<(1=^p1e>S;x#Xqyne=9@<^Y>}r8#$QEPY25y7s%g{O_d`Cb^8`Uhlwy zVmfK#)&sSuRwEC`pky$n%ns+RY{oI&?bgzV9sK?aNox%kX>);M9$?tq1*40Tb5Fv- zT$58%2MQMh`a$7@$L!9#>9wPTHAdmPw5y)yxQcWo{V44qT|#LUy;%YNCcn9iP+=;q zV2J~zGe)7A#y4cJ!#R|QUQb~_}5_~j2&aZ0UTU>SGSp;ygO&T78PCDq+VQ3JE z6jM86V8LbRP?{|%x`LwVe$7WCzh~N%2f#J{e5txhcT; znr0H0`Me3#!}rm39V&wU7g66#Fcr1J@l z<#0tp@wpiX-w`TVybHdx+S2@|Jg6*v?7uX;DjL1Z9$LEB;pXCL!~KXI1k>-CtZBVVDk7x$MZ`Ecgz>%VK|(LlOCQlKbK-o6S4u&Jz?wTkgW{S>(0`QlP%6=UVs1XUmfS#FaGrf%&l zSB$x%(&p$E;Z=l>E4i55R}@DBhQIc?GE!IKDZM+5Duj}#TeE8t8O#H9*LqSukQL2o zI}L*SXzQxyqzbh$Fdydo|1}R6lv4pp{xcyJ{JU&(0mM2krFZJp-N7PSsS=b|@b zhM!P+j504S-gZsE808J%1S`{li}6meLfTCScDrO&hV)3@e7))>@yK% zhsePJ)_TKK9QUtiVz|MkSfo5Vm$rAlnvP~#$-HDLP~b<^BZ&uyrKpgR9@qhu1=3p( zim}ULr_^O^uZxPpEPFS%dXYyOnI(nF@>U{e#VYtc-D1p(5aYxt%QpV zWvj00MW{MJ6B2dN5a*V0`hut`pg|0V#6cIUF5|GE?2l?k$adfq=NxV*eZ_5B=>@%%tF9so)DP%}-&s)*Q5A&p z^Azo(?#}Hu(O2`X1f#@q4L*Ngh`^Xa7)rUJgW+$hN&qMq$GYiN7GMRG@YY{wgrj8p zoWRr*xE=)JfvuUy_9-DnZK2_Vga=7f1-b{UL9NMJgBvT)78C{6j#LBN6j4~J9$~kh zY)D`mXzYG+H#jBHp#X-HDj(@0EsVr(NU&qD0reAWP=;tx4I&4iAnAo(Xry?nybe4R z%?s4+3n1E(ix>kd^_rp~@~+5IpPJuNXvF1QY2IA;Tu89kEmI-$D^+x=y5^&Y?0#ml zsp>*wv>rM1jALvgqfy?D4gj0jnKHX-tYTi2^8mPbl`ljVH;-BtKr8^Asbm!i2n%uT zy`r(E5G8EgJi_Y3)A`Fw7l9CZ;DCjR+Vwskz%4N2YrG(V{JdzJa!;@1aIp zn%+)ZJtBg5(2Nd|C;(WFK|7}4x52rx9mppGf~cYl63?jTI5pp6WeY#@U!N=%k6Gaq zzAlJm0k53mx3;TFh9|`PDI+L8!W#3Ao<+$F6n|qKJKc#?En`ue3*eo?lVZg+xPTb_d|c#>K=f%IH$Z{hfS)iNDA$ z;$)?F_;488LvObtjnOL-h!Mh}(5md0J9i14=8Bb82D{I6hMyhu5h8aa7hkBsx$J1W zi;3NZIE`E*$J>5eDypKi7^wbHvWLh-T4e4K&`Z_&*Ys1prQA7(I4l0yWG^+R*KZPHDix3y+02d0@X0IMhR257j7gG zkuh!{7j6nVK5uMF93tj~phPrWGmqiu!ISAMQ4Fi3C(4IfYfLYF%o*iJ0|`GK0d%3_ zbOswytxNtFQvFKS%TK;^%|X$r^@h=(GddSZPko>&|qaqVk`cX^;6= zE#BeXmmZizluASp-}d;ATFmq)$SY?bPRjdd)c>amF+uVbRtp1lngo{h<(~G^a08}e&hsny8;Yqn3fm14hjuL1^VfP{eB}-K_bUK>h;GmiXTe>QNzcz z>kIVD={x>YB0cP*R6fq+gi}?Csd9`hFIxnv)4l>(DvgPM*nZO*>S*e1LeZ3+tdK zE4{lnq_MVkS7SXY6#y)Y`BqIl4le|~O2^rOX=O@X2ysqNtQ&zyaEE;Oz}nMP|?A9U3Nox|jkJ^8)etJYpHd*9yvZ^-^mEon9Z z+Qj@hbembyWkX0EjzFetSgwh*-MQg7j)VvN;^V)Nrd zX170E`6P${3dctd=<`Ug5i;lbTfe$*Y;s3~Yefk}{r#VRvvJsuWiMJfKzThR{$KJI zSsYuw4d+i-sgp2?<=@SOA^O?u~O)zd3oZ}n??N0L3{Y@j8gL_fXjT5Jm7^gw4@yz<^nYwBcU&;3}9*9W-{E=^b}nQ&mwh`CR| zUBnR*h2ygTHq>~?g>Gr(Y56N-o?e*yYaNWnNIW)HWc_SpW8d5(bZK z&seQA3BjBNN`%FSWFJw|W&n27?rN??4nyM3XkAOVoUpo4wX*f#wxKA@n^6~z44&VM z)R67s7KQ5PdCHyY^!w5z7i~-_HpHDv!rrlT)z*wf{Hu61+WycrImRN7aj^@&9j=s@ zChKF}Vb1)u#{qjdn}Lg;Wht!S_gjg&dZu&h*Tt$+=v$!fweSyeV42{R<>`ioKW`U5;pMJo`~NXBjR#LKqex?3&+>-xN!x7*@0Qd$V?cH z;W|%NJ*BI9ohDzwL2d21XuG6$Rux2aEB}a*JIQ#*vO-6mvrrFKMjGJj6o13rk(h)t z6BTx*ni82%Yw%{0Wl;j#~=P$ebIeWay-tZ*o6%r=9y zD7j7BB%MEM67OhI?j}Y2--)5vEW5D64wj2aNR1n+2#dGpVyr)^MC_-XiVy5{|Pf+6}qGk80v&!@F z6lUKwEQ)mHy#Vwz`?$kV^cN+E3Mg+Kq8)$ozps2H4f`y98jd}zA#Cz%lw;nDkyXAW zS*9Yc{L1?16Qrq=kQ)0?KviNXMazl0`4~D|t{F9rrXVSQ@1RQkkl8kYANJpW6&z5(9_jy{T{AfxMzu!xRf5g zpN~=YA3HK%(}Cyn;<*pHu~d(-L5{xj!jltm+Z(+toTyKVbFxuY=KWK@SR*6o|D$=) z9m2=MmUJ|CTk6^h6;rD#S{-dr4pSfa@<;3>(*N-i9LcJ`xDM#`7v$JeeiPPQy{~`e zHLHI)S;|~@%A@D{*YiK}SD!(IO}(ntel+tJfA@|fU6kngEgSnG=IA>=kdb~=iU=)n z^a0RW{gY;eRKfnQ3JLHF^G{2Zrg>KBiJ-swmx-g_6<$sB=xkO|6oXMxdV51Hs_sAJ z*kWc?kj9b#e-e}Q^M{BaxNn#w|4iNBFUJiZB6ZG!bo#YB##%VS8aiV*BzdIKJ!@Ly z$9O8wB` zBubT@K$MjB+n_kUhVF+2TuLGRi^uR-C-ikcHIDb^>ozxdxs9ZJeH+)JtE7k0rP!n! znz|=^&X{ks-#nlxs$ygiV%AS5z$W@4ttZag^AGQeD)S{woq4>S;@3UIyz>c3f{jI= z3Qu#Q?(=;dR(bugxzazXS$<9&ivE5qUFfk(sAp4I+KObu&IanfQq)-#cHcas#k4DP zHT33XrH7))dyALSwR8!mpHrX1&pCO7B!sjul6U{3UNt`|dQ`RS8~nIh$13TADBx*I zVK^yE`KwYfr~d!|Ov9irNG?D8PNc-pzl6+xxSRG5kMxZ1r~RJy5|?8{P5q4-i9IdQ z7MGSZ_e~qPRbq}UZ;49%8CI@A3i?*$bBfi;a0D>*j4lcz zT{K$vfE22=&*>F(Zg?I-yYc)&1gMDA(%Q8T6%Ev4 zNIj&(RMOgj8x^Ere?vM?GM`m(5B9z4(9oeNUhf2at^e_)?ybkddR z?6xcW^o#fEQ(7#~8v4;Q*W^W2#(#&=xqYO7$bChD{dYL2{YpN3&OA`wcb`-5y(n4~ zs^7uva}V7weA7Mk*)y}Ge@8K|=+xe?2J_D7RSUY0JvH9@7vVpY(0WyrsMFi~0uRfi zzMrYZoLYFeFJ}54jQh_drxtdwiZ@f{O(i$hMc=+h1L)?Lt6}}fFhKg`JKd-X?dg9? zdr8qbqqDw>xuq|T4o(k6&kU$9MimUHcJ~)y_+E)0(&cT|do%du7xN~7e}6dt8k;Rh z-RDj(^4y{)GbiOuqtNryGG`MtFNi`sbsqZs@p9ZlMkw#;(|fc`{~;-bGw@ZVD3o+p zi{Dnu__fQEghChgmo)#$eDsk=B=rpcpZmV!zmH^h7P6Hf2luH`Y`2ysA`QecHdo!H0`RpDNYQC<8`Q<}W7K918OP z?c>j43wJqSj$!2U|L+|V?avn#%O6)!NAeZ_?^VunPc1a8o*y`zew~z~_91oon>*rO z-8oO(cGk~qkB0y6>GS`~%E2b%R=z0i z$5MVuz{xXo#)k zx<;6+G(D{=?NpXMYv}#&dLk0FhBuLR1Vg!JP z{kgvlq~=I|?*XD4B`~yObwV1;nf+@>sP}%8n3K;aR8dy=m38&1p@$*H_r0r2q5ep< z0=|tZ(pAM2A%@n!mh^%V8|p)i=32Au3KY#nhK(X?^tC;G@0I!~UENEZ6fZGK9q`gB zR9K%;irmb;IOsc7P@7yTY+X5qk@d&Ow ztz8qU=C14wG@(i2ZWNfx({dB^@h4q0rt zJKlp~5evttps~9Zf(XuF1;JK1N#i?~Au(NJnzC$vD@pmibNxy&!AEvX5U%^y@RTPk)w+*aJB zy;{vmo#?xYn{|@94qD@k2rQW5-njc%j#rN_b`xHfKT?2;QrUbiu@zIlf{k2>zEGSe ze6g1`sCKM9w<{@XxDq0Px*%Hp73k-I53G$z0WJFzu2!r)WMN``A}8DZTWeqpvJFh- zEUBBu#=;`a{lZNOY+?E^E)ZTt_V|_R`m#est;R!Fx!$C0qVHLq@jH5Bw^vZ9RQ1>S zTNf)BSQV)j@xpp1pxdnjpGa6F9ErwvI`s*7*R@1C=L_PIhS0W=hU_nMJwQ?W&1Z&cNkbG!oapbimaKj)!cDs&t_f0AHjrCRVtiq-zi6V z9mGyI=>sWmq?|nGA!snW-#j3BkJk+@D#prS(_X95Z23;x){{M!6Tc33+H09wrKQJm z5hSpHH11ssVU*~^F7~j zfSl%v_M!C_E|6K+n(lDvYo3vhCFM<`mZ9tx#&e#$DSb>v$4C!Db#>`mWL++S3w9}O3CLb zk|c9(e%rBDLOr2wF6jvsa90+t(tui&_2%}rAT6sA)m&NlQYg~)dOCsA^AntbI`u#ZqirH%)xJwrRr+@W%(?ZSCW=M01;1M>xSnDOhDOkxAp~ z;B}EMAWFhMzC5`}>_bdl_RpJKZ#p~4o)=f+EG3o?m$`fhjKGEvL0_$!R*Gc16M{vF z5j>a=Cd;xh-2RBkmcb6WC})d+ef+7D|x8fH_TKt|f$Um5L?24%od}6Eo`|TWFpC zIINH9gts=ezDg)0ZEjbbBi5`TJi-h@mNyS~tAXEsoW!nU+hF8*d-kx;U73sqzI5ix zzHTKT;3kGbXpo!A+2yJ=-6Tr!7H&8=Worrun1*A!M9*!qpX8g*`|I84SYbHEpQ`lNN;Gh&DP zi`TSAAa!t7;f;3*DzQ}s2xvJ9TVj`U$3d@sZ(U#)&6}_IJT-D$)18pM+t4*Z`xEU$L5%%i%rhHs;QhF5nqBqBEfJ-p3XKffH{^IVm{Kk6`j?1IdT+gr+UsM8`S%>0cU#9I(>~Aq=_Hq|ET%jzwYZla& z5sRz4dKub+GQ`$5t}i@^ma>6$7lP~;Q)kS^1ulx^`mc(e=mes@=d75-#kzW*i+?d3 z7d~HrD(SptY3eP?ZrB}zNOO5GZ4U&hKHO|zzFZc%NKg02 zAfpqa46(TUao8oUGIh#y10E*;`2-SmB$*w&Ux^<&ExkH=nX-l&^v@RgQBX@pG|n`| z&4shutm}KY6|AaNa8&!IslWI|0eEqUVO;WwCukkPdEyY}BgeFndx-E)1>ubjR}_{Q z{=sJWf6+<{IYLPnsI$9$l?e^^gnAps-fz?4&2Z&1ub{t?l&}Y6t6<|rbQZL{33SZ^ zPh*szgdBWgJkKDN98vm2TOS>Dk=GQfCNY%s6ljH{hh+-lAJJmw-iy)f%tH)-<4O<` zv>6f0Pv+L!hbjHY+R*Vb7Yk$nnFd^aU-4);Jr`QdsT+^kOtlGsmc(5J<80PVxbpU+ zWeb!uYPF(=MF~=FtAw&$$a6|?xZCVR5?a-s$SFf^{19OcF{cQt>a5T4f-F2Wa&XxP z-HU1a-KbbbxGd&+;cYnr^kB{T7GyN`!K|-|+eF06qQ@o;fQsbg5(qWB8D%P>HH(|R&|DrN z!rxZ>L*>>g>YEX~)i?eImUSpOLId8o$Ud&(|1d^lVAo4gYYXV^AktBM;Vc<)8=1|f zHdPuS;=(+PBy9@v7oCHrGZo))p3EYePQv_KprrS{3@fti9>0)Bj#cf%T{S9h&(1|gk8le6(cWZhy&p_IuM+7{+9wTm;pSz6_+=pd6=qSj z;FP6EJqM_#LC~g$4~sTIY0@uu4-mYT+cGb9-1Sl7z;1=JGWTNZT+@P*`*9COil^D zVmd@w$~h()?Fpx|7eNglLvtAz9^pq>qO8jt(~hO?U6i083pPtiYeZQ3FntXw# z4bQJS9U+T_?dbjV^5bYXmGpe3v#pN}hY=d(?ELu-@gdDBrwShLn0Z_DyMm4P{Cf)A zwI&V;d(vrSgHNFLpC$IZTyg(TCc`mg)k}S_eJ)=kb%}XudK100Gb7@Q4`nPs-V8_z=P5*ZEB7Psu0~6% z4r1E#_UZSTh3-}3eE+I@a%xpAFk6yF6N3^wOz6evIU&K`jb9#7+$i2tpcG>DvWC3f zY$RWSGZ!wAY5rV02G;n?2>ZV}hJ%{49)e7Ch+fOCHW@VjUk{ogB5!j6j0J;t2Ui0)o ztep4Bp)lFyj#=Tr59dSjAHY+KwO_Ocylg+Y4v%XjDd)xbP5b%(craDOL`$6Bsk*T~ z%BanC*|y}mexkyki359$_B`)iwr_qik%<~`cEcT!#Ljz7?mHHRg_)H;zSUITiaO9i zeRfQ$fmydXK$918@-fqsA(;ao_2~jCB*7pwFjN04tvKv$L~&rEsft)ZeGl{eKB`fz zAL}1d-1p(76`0ciB$=DdI?YNA=b^-sv)n6B6|qmQ9TP60>(0IhnA9Cd0&QP33cTem z=0kMTYR-ktTu|`65H)?Eh?$dY<IM(OVJSxB4!m)hA$Y5WfWhm9@*(u0I|uytZM%PKIdLr%H~C z$TtjYHH0;Ab1QpWDfqolBW0Y7+?xq}6tuoOQvrj@J&6~OpxfB@V#{W~P8Amy{IU#; z7|B)mv1B&Uma#Q??3{yW1%&n$=}GA5RYGO#-*Rhv4=l{?@*kQ(hA~X;auv44UE@j~ID3Hshe@~u zU~X~(Odae@pQ#QlH0%i?zId9J9uS@Cn@AeXb|t~|>htPbWMVyW)P)KxQIh9?;G6&k ziA5E1htb5brMGz_$JMuYz-*{7JGThuuCFI`)wUfrPtvbr9-XjZHGnJc|YFX-8Zd# zwmGoRu+oIdi0&ESxuPN^Z+g8}h>ui-J!Ivd!f)gd))}{)y~}qTGFI*&_C$CyQI2g)<zp46(|H;&jA5fh;w|ueNeDMX4Es0NQy?LXg zRBL>@5$+li375!<^KU2Ce&)MOB4aZIr`CNPu~_#9QbQwZ`q1|Ei+J#+N9xc`>4*t-<*?%y?Vj9HL63E zt4N!P@sqEmOSbH18&7GAnjGx6Y#iYiIv#Fx5KJO z21dq7i@28fMu%Ia0_6rO3>2vNDh_8IKICp5>S}9xZuWYF(+Qm`_N9w09;20Yvhil~ z)V|mM@_lb=)LP>8R-J1g^NX-+Fpnw*_!K3}R_N5TgO2ByLTEF|a}VS#$w$0zo2 zkt1#j0r%erk6OT?)L|jf=ok(@p0Y)mCMNgt>rOH*HX9QFj-jgxGCWlc0!N0ylmxt} z1Tz?sDl7Z%Wg}XFq2TrxZW25z5?!pY=miv9+$N&Ci;?U!2w!HQh3qzJV*w)}@+1xo zNG14E;U`SFhYFRpX-=@QTY<`py}WEPlk&3Ojzw*P6Xoo(T3cnhiOcLl%5uHot=~F( zL?!hIyPU;xCf(Djh&|)K%mP4;!|!pbK;EWNq@iI0ZXqv*vWRqpwCLS9e-MCr_RpTdBIlkG=e`ezX|#oNhog5zQAYn9-H;f*XI z>xf`K#@Ai1KyBt^#WNub(m|mdxX#Q9A`i5$^v5B+Ti@CtP&=I$A)kQ7w!So(dCW*7 z0IjTSCn}c^&@3a0S6RImiNWOc?oIDJ(}TzVS~vhQ?jGYTLn?15z3W8wGTa={+@*V= z+RRgemcBn(dUsDEV9yG>w#FMt_0(EZsXTmo){8qof5>P`X=XP0!0i(1-HXFAl-pn#rEWQvwQqV8@JUg#iJa&c6JA`Tmcf{J!3w>C0S-m7wviSQ3 zZ;(5K*2v%K1YIInp|*lS2KS{CVhF}dEMUFuIuzB;eEenPjxs1qZHmm6yh0}%Z-j?& z4596q6o_Pbgf=H0=ssRVB84duxoWH~j%#eCYB7qjIPN#=Kn36zpIjfu6CznzqGs)2 zA~~*45jnwtcU2{Y_4Uz!9+qn=V4y#<`|J`IA_vu{`2=@NVBXUT?jqb==EHi3B2Cix zAvmTMnJ%>|KSStUY&oh)OMq*Nu)GF6Q()6%6r>7^dt6S%Redpi!@l(w2~)AbTSU5q zAkSJf*L^!AD@v#+fpFBZ9#9d^VLPTb6s$^Uy5gcW5x?C*!wN8eKZ+FdiI#GXx+Ly7 zApjUVH$X$Y?y?K7#1kr)ncau+Bu2DIGz13J<{VoJC>;=?Nk4qPJkm6eQSaa}XnRyBBsN5E#- zo(QV4>jNVqu+o3PmgOqKX>3`HHtL&`$&PW0uFNQv?UG1F43wq@JUPY~^++&jLP1{0 z2FR-9`jq38kM9GhPlCXru|3-|Yu`5i?*2BD27GF5fMjiZ)m61mgtaAd&S9%9Ni~Z} z%D$3hO7aj$q^{kuGuOvCGU&BtCr_DaY+?!z**CXGZ7)`9+#~b}{(Ml_d;*crp^sp^ zIf-Egs7)D2dM#7Xnl7k-5ulCZe{R3yVuASDN;AO;r_~ox@nHBXlgGoA*4U)wOrHA8)B&`G);ZI$_r=#ibFDzphyFafKvNrNC3Cy*-a}f z{8{$-daju(24f6t<{2iH&^@*zK+}P9TFhmTmLav)+5$v~uElQ{Th#+de*EqGhnAnG zE6{?Q7G}Qnf<0S~i3M_+1-*3J1ItOZ`PM@aAB|akJoPjK{sVyZq|T*wxRf?Bx(5uX zgX+)kEJX^T8L(fLPz2!BZkT0xFwOFL@GWUh=x7gdzdfR0QW*@~HHAe;2vjbZBc?{s zMq_ouMt zE0hV#4dsrRJ$qpr&NoRpmRX_efsGBTF{`WxuI7a2z?Q*02EWEBWTM)!>&%Azp?B=X zw_Z1&^f5V90UQd3alaMFu)hgp#;y4_ORi%0RO8*R*ZCb^*#x(qL86# zBDuTx=SbTWMP!NbL3S3&>2C8GQ7e@G`URsSgnMwf+0Y}iL60EwBdmWpm{YzUkjc4q z*vaZuBOvXThDr9%VcU1hox1yhwtX#s`qKtdug~Q6WX3UUFV?bLK)N+J5Wrf<#)5~U zpIitIiiCBy`4d)gISBNG!Mu0YyZ(5~WNp^G74xN7NUujdZ>~Grz2Y}_P=5kfK^gTn zUq4ZLJRG+a{%u@ILJf)hMg$&^;OYM0>R$K?+fOspvqn3ZwlRtaWy4X`*23R!@*=~y zprF<@ad7!{yt&E_BEg;0D=)gHOQ&FW8wZCD9e6kke1c1Sj3k@`RNo~r+vQvl@AQ*q z1j3V!m10R)*w~iW6s%Zrj)*Zvm6^xZgUXwzB5A2XfLGNgSobDGvN79!Isd(I>9+$Z z4btw5((JLAMJhCvts-}5OY`tjr*@Dha%pjW^HJbV@$G|s!bf2`sUG*L;8d^oXxs_n z97`{Dl#1S*32tWr3@KGDH9Coz?ntrNi`6UziCu10@jL4sS;%PO%@#BpRhQ0RCcU)d z_O6;`&^&x!Sdb#&u!a$zce+qPZ&kB-FS7 zfNf$1agTJp_hA=ROj-vEUAZB5BEq_|=%EZ~N5vZ?%^|g{HZ9hQou2FrrV#8<)KC`e zDmvczx>DG$x^#^uP%=P73a$)`e}Gjdz7-PlJ;K4oF?WSzTE99cteCf52tb@{x=;<| z3&`yb8cQ48H@}(h=$s3hD^}(U#vr?-otv>@hj)q=nMqR7vd8WI@02BBl{&imP}*Yy3ga2WdGs&E z9j5?kJ8@v3wbzn3GHKKO*HC?PBO>#z^7AsXSJ`G2Otv~`y$&_YW*s$x-ZX1-r1>%? zTNjGh_l|?Y>3w66gQo~Bfmw2+3b_~wdSWSb=Y?=9j@BC=`>w26p>noBymxRusAO~+ zU@Wv3zT77Z-sL>|@%OpN_<58F-I2JSjKVMNGQOH6SZmF>u-py(i%Xgs9U||~9*w~8 zyIZSiP{$0yLtx&qW^R8vXy*o3^$tb@_bz}x;#&w@wLahRJ>Ut%Zd384F!(Py7N2nN zb2*zL0kDi$@|9S{NY9yaY%LsfNcjz{jc8Y3W$W2vD!3m@Em(}mxPQe)Su@3<{o2g413^oOH~=<5i198%8*Mc$~U$911w1EU>8=T>x*Xnl`ao#Bf) zKpRB+$cLX}PSva+XpuZIQ82;G3&2Kue}yxTNn4Ua4i46@;ZK4lZGZK;QUx! z>mTy zbB|?~E$~^wtO9tbd0+`sE!03HNfs|BvVLdLiq27{ieQQ9>4BXvCc z-X~y+3!4!6*h+8?Ldavs%6MLYz(C7K&j~$=E!ubF>_+b*BU%?p+k$TFyM%j6L%Ol% zXt~sFA6S3u0boJYX4_?;okSSA+ujrMpyTy0@diG8Xay{L1J7owPt9HQSltNUV<24N zV{8drJGc#=U93Lryt%K(rui&7jc4t9Bjw|lyQjUl9k{cF?JU748)SXDIBT7a8OcUE zbBhZHZY#Yj*+@CGV5{))jy*adkDCiOfC#>vVBm@~Mi$ZxzW}y@o?5-1{nwBI2UV1n zTct-u-x@7lklDRq;=y$7M5OnZmrhdmv72}fY^KRZNpH94xnS11I~k1tnJnGCxT{in`WYV#dB>6Cr;ojS0T}Ywtd8 zA}jqr;>z@hJ@8Trx*QDn(8QC@3rI(h4<=ksZ-hYOYbB7E*KNqV5jBgNW}1&)j;878 z*)1{CFiHY|>KXbysHQwVuysU^hr1Eg6wW)p@Y?JpS<*b!c`6|6uq$rlWw0L)QtVTB z6;8xXZx8v`3U}aqnKb}z-VuY6oZ-E$i||an17kBxa$%(+%7o27wXpZl^;fs(3x!-S z-E<1!`a)$#aZ{(vwJE$7_ZIeQ;;`FpVA$Z6q~RJ$nnQVz9PC?)#Ifk?*gV15eWx~RA_eOYNGnuRUHHTK zN!*|{tlg0NcCOqw9pQ}b@dkeo1-aEK*7fXlo8baiAo(^>G&kf&>p6%`s z_Q4zEuENUB!ad5NGhN}a)N3s+5e&d{4(ttOxp>R0g!iC1JMH)c&TAR?4eV@1Wkb`g znNB|AkH~9pA%H!k3srV2P^%ye|Gi_%5FOxYl&VvWlv#O}q*7QIiV-|lV0XwKoGKC3 zvjl9Wp}Rz%(gJLDR3}=`QjdKR3yoxx3{Shc!)n3Y=zXn2w-#nyOv<*mqH>jX+( zczj04D|OcD5rM{hGYpTx+BuR;K`iO{jHf{2Y_dKkP{GYOcU#%E4gUA$e8Vr2fIIku zs7;{BS#px8>Wgz)+SvyS0MK_#okzWaYXLD^l$hWIFS9H>U0VwO3*d zXBDfjfms9I1t+Q}r%6{Q!=0UrCbu4%W;#xn%?uW94;QVqQ&+gS^Wc>wxd#C^r7)$q z2zH~rvqzwL8XF-(y`Fptr{mx`u4u5y9|1m;lPQ|y|&R#AvA(*xu z0B-KeA-}HF{Xu&kt5DINKrh&O@$RHKmA2ya06;*$zv9RDc>}*2EQh>Rn15Cm zmlSYuHnlTV`N_{XlpEO54tQG83+y7^HM3d3(PNxtEiB=kLwm0MMf$PJ>}G(Q{>E5S zx^CUQqOIC1Y{>BMGi#_BjUXd#KLPy)xV3^Qj3eU~K`mhcx+6~naRyDSx{Z3rXvX36 zJ-MR^wcMo$(u^!bwAp~WxOeq&&D`xw6T~I_)zsLHbI;tl2uq?Z+)Be_pL| zxl*~eX7Jku)>x$BQ-H5T0#%&pU9>>It@sMND;m0DNkq=NHz=94+e@U7?5n(yZBW;( z0j3NAT4g;pe2FHf;=ZtM(w)a~pACoA3A>NLkGO3A`eO40{?gmXQO~ z5w1mKDsEY*wp6SDhy?et7RBit2rJv=%tiTnpjAZ8#9!hvY4AMxuceMs0R?$RT+Xy91VMLsd(TiHMzqY+}D z#h#n3+V%w!$(U8lN9+7@Eik;liBU<;9#_ zD7sTltC4mxDzISNz~bAx;k@@dv72qTu33Y zz8L5P73~@@qN|{+DfcVvZirTzwe2D^XwEPU&s}YAY(T`56r} zz?o!aO#7m<*d??$z97izy)}l)vG;=s0a*mG;IbZM_#QW)<8%7~A1z+gWbdj#L9$k5 zqFTb_9Qb&;CfU7{A)F>*GXm-~$9iBI>E!w^Bh_s3Uv8Nq1twMJEFJY^M`tZfR+a{zS343V!;1uU(P}*(l$r^@J*wHp9mh z`hK?c$J>SJVp`G;Dqpu#W4Qgfs5@5#Yep?HoCcHJuXc z+&$XqBz|Ji+gwb`3Ua}jvd%V51v_1{<*_u5<-d2B6b9#tBE%KW6}bMt9X4vKBtQ^= zH$4}65rfA+!bHs|O-x}FEK%aXHDeqM2(&{D$iD!sI^&ZrGWX5%VyatEDl^6|K{0V` z&)r{Q;l-p}OxC$ZTFkkfG=6Gd)x=djZ4)bD&eoFo$99uf^D7YMKvANst$-279dOk|0R{NHCk(;`t~<@Be6yPo znaPNlQ4}Lz2F;UiD>!4xORcJ*ArA|d2H^SS9s%p_&qJ+P&jm49$7(8*hV~sj?J0?- z&z{M_JC_R`ObIS|wo0Vh0RiQZAK*4bCFTFr13};Ig7d5ghe#8%07%b!wRKSUJ_fwx zIRA|4 zxDjllG>4SZxWDp(`tiNeUwVSt_G-@IM`QHzH??YtJG^g?x1;dH?7W>@{3JRgy<5@u zV)XU7gwz~JMp>@<1i2SAc;5^^fsKA_e9}5Oz z2mQJ3eu>E9)cjqNXFd&weE+{N)WXFKPzrh9yMjXMF_x<-Z{makxNo?mBk$-#P~|gg zW`Tjat9zsmsierX9)7*EAWiNWitZ0Y)5`Vv#6sxNDlh!0HB8uyX;HiM-1lq|@{Uxz zc8`(?rreTz)?DAh?>tC>{%RrXq)bu2bbN%wj-(^?J3a5@v{A!K0V4s>#3cLo#%zq! z>Ge|2hYpdYKY0p@SV8ZmjNapP)Ia!x>zN-(M@ZXpnVRXFkAPq>&F@H+(9hp!%I@EP z%-Hn)f3mv;JHC3W8DnZ#I`!$Z-G`!X+IAW%CyAT;CGyD7 zRg;R9i7hA&UqsQ!R9Os^vHi95A+w_^ed;>dqYt1XL&_4hE;aYButDN6A(29bmzGuL z;m`W74sNf3^PjZ_fXgW6eV^i^8!!$Qys?6;2jsO2f4ydp8AC*fk zD0HeD@nMGOntZrPH-5_>^SMkvZSauVs1LOFGZ_4{jmt*F#6o383u?(a1NooHRTPJ1iZ)nu& zl(zqPrO#g;m>Z*(a{7FUMXCx=mhZ|D#1!MdxunV$p++J3@guaipu|O`(Ovtt+o8-D z{&TSaWzOzbN*UvpYG}}&b8jE`+{RNKNGE+sfBr$^k;7)t|NRUnf6&v&ec@O2DE1!% zEr0yUU%e$UNC4}FqG%xqxb=>0tbdI^Kdo4Mx*KUlIT)a;QJU)C50^%wt$nQ=p&jo- znyMZzLR#OE#_yjoCl9F1_yH*>SJ8}$>vXeNP`@)amMkLX+4xcXjAc^eb1%AsRF}HRye^J@*A!#! z%s0sI^@J@N?VrwLibnn)fcYKL8GVr&)%FO{o0C1H?C)?&i3*2*Qs+>8EqbX-e}iS* zjB@B)*M1RSqF|J;1hv1IGn*pas!XG#{>_cB(~fIW#0Y4=X+zaT($egG8KI=Vu2oiB z6C()iJ@WrQZm2#pt9bVe<}&(?ZH9FDo=C;`sw*=w(KB?D5F^tko&~D%$A@$7Lxu>Z zHyo}0)oRicE&U7kNCD|SYe-kLd)1G0%_#nlYewHk|0G)tmg*_5HM#dI^SJI0ANNUx zAM4drL@c zkwQ0QX{G_`FcdO%G%>GNA9G2|bK2wo{RkPiqlkJt)D&YEcD=u~kRBv4c_lrI^H=;N zrmRsfFLrp^(F$KlS~&DzC1utp-NvHvMq;ZeCGIC#q_~h{i<89ZLH|QaC5=!U%r-?u zRRZbmnhWJeCMBD$pyUb}KR+6I&q06Em18N`8B&k*I+}`_lXpmz*yv$(^*l@<_~(S4 z3SKaGyJt1v%9nLPml)vl(MvRTl&(LssYI|dh4ELD%U8IgA7o(9Tq@6JwgNc4io}{%p_d_iOqLALIy2*EcFXdt)%h~$a zOfAg#);}UX^87C~TI&(1gVgZ-)f5!BpXl9@m9E^=ep9a**AT~sPxW$2DC|B{EU^E>XRN)e`Rfz1Z9h$Jq+-ZwXbi?? zi=PUG6T(ovIiKD1a&zIelxb=s0DepB52^~|P^6x97cxnG%VBcx`!uI~Q zq}-#l{rFV$T%@xoOZ#{9TtnzRl z$v#vuVp=RL)a>usue{6F+)On3oP#5BvecPtcKbWwmdG{HK?*6)F&fjI6_8p_%lW8 zqMz!b2ICfWy%&^EllsE`d;{kio9Knol%mm4Vf>^q*Uo}IY#N2cH*q#d z9jVDvXD9w$G{;1g`%pz2^|l=nr4b}A?RVFmFLmLWY`-kLT9j~lc+_-D81?XfiKPE5 zCKOtID&`xB68qjBtBQ0c#W?+8nSf6(Z*;-!5hE}1%q$U1 zW`=B*S1bKG)yYi-P2V9Eob!&V{cZD+A63$$%KXp3(X4-AsqW!^`QD#j@n}_@jvDng ze-2rDeGME?%HIQW**=?`X&Kth3zH(K+^-p<FHRN|Xo&1UCOD z0T2g;5f%X;`2h;bef$+5byOP>Gb03mDk=aZnJN3sGh84kSKS4c)lBlLma+lLg`BY- zwbv%;-{H-LfZQIMau65f+Pa)B0DK|amlKiHcs9~09wbC?>P-eR5_rg6cPw$Jy`#zv z0Lm)2=LVMb^e*hMyD{!MhX3I~e-E#I2z>y|00GbxQ2{;>CuV|xVkU+v5X)&YYKnx7 zQ@uyk{k#AEz5w@oa(K_5nEndtBqi_CeJ-h)9xI?Od~rkN#ro|JP+r^rH9s+We)O46 zbaPGTFAiMm%6_DC+< zak?|$atyyc86yXfHe}ox7xBQ%yQ4;04YnVYqOKZ~c8HgGu6IaV(=7*r18l<&@L_u( zVcgUsGxHB+q?~Gpa;O12staR@vg%tlVdk?w$l@*H7p=t3;m(tgSaxPBN$P#AH#UYL zdM>~qTQ$89j_t`Fj1j-9tR1_X2#;0AB==FS=pHUcJ;Lkerfve= zkLi;VGP{VZ!mc8|5Y4zFy@}kWG|v%=AjqR3Dl3hh{EpIw6$VF?y%F$cvZtbM1jmh5 zHf@88DkZW<37@7jI30=Ny-L|mREOdvOn7&ybZlxg0*2kz1{pymRjn^ec|>Lcju26t zs|prm0T{Gh?_bQCebpk1Dv|i0nhH;yx<(c2J!)ls_Pri{8Ux#02!4vYvx$odP#Etd zVoGDlHmBoUW21#^;-|4a24QyRcH8W-FEhO>5MZCQVP3B9*cYo!kuqkLWfC@?StmqO zMpSi463zJt-~Wvpj-u0TL5AbRGD=wT(n64z3M(EFSt%b_iX+#E@ zh1LTmuB%)pS>U;>mO<{_495gN+PT7krhV&;3MchC^wy^J6uOP-Eza#kc1N~05^-up znGU%XpvTmiw{z2p!U9#AwKSUB5dFM!MbcQ7U;<{*u#l2L6DMaf#vFRjYpf<|=NC!4d(E?By~)mv^j*6J4=(|^J+F6sE5LK`QX!gyoH>>qIYUYY`m@OR#}2h;p}i`zURLF( z#TTiD2Q`6`Tc8sa;J}5+14S@8Jj+iC;db8~tCGq-dwU-Rumq$7lwn!|G#DSJTpL<+ zNwbi2nDB3)Ng4f138<1T!+e{Zw9?j}ZXl2x)C1m-ZUxCn2<@YIDN2%iSbiBS$7ynm z0pJ*Z9(~F{<&|td!gJ_48Fi5?1J+YT6;?i{J3p=OLwoSBz1MtCVw1qF;5o>cHBq$T zSH4jBp-ho+VH(Rclpz~3>ac}#D-28(YcdMm^%802TEp>9XxqZEbt@Tia}k914H;Io zs_qmf3{;s#T`HL$1Q!LX>AG9qit>6t4+2kiS+uwB536!q;uib_>m}t7iid$+@w)v_ zjau6YM0g-LOY=hdSB)7$9ftYWvuWSTM&sr5Kj|AFO|`?8 zQrs5mH7Fz78)7UWo6TQ4v3-I&Te8CeNE##jwG-wM=vYw;Q^pa|)kcK$J+SXkT?cX4 zMU(zNrTb^z0T%dJTv~+0Ayr-eU3Lzm=uX|rg+QF5)1}??xNHQs%jP5?^w${UlOT8D zA%193tl-LaGD-}(GxkVVvm5|wR%irfoX1>#F5@UE1Cbsm%XBLehHRHNWXDu%OHzq8 zhP)yv>Nj&Jh8b&YMygCxP-5kK7P5Hi1;ScC{^)s8KI==91suLy?|rj8vu<0kIJ|7r zk8GQdS1{BrhQH4Gd{rP%@YdTYQQ~^XV+68+9$n5OmZ%aZN0QMN;YnhQDt9<2N|=7X zJV|=CmcIMl3c0UU4u}H{Q0xn+Ifi976RFeAv&&@JY+}|?{)cop2!PGK8BZ0TU4iIG zDzr|h*+nfs0R<>D_nNwUFLU98aN=C5*fY}nSrPKCuQN8AgTgjRRiuO7X{@2{W-Gn-sNoeJe_tQ613I(^0QNYegj0rCx^0F7%hur z3e!xfVxg`pE!?ELdY>ds1$*+u^mAbfTrdg5H4h5~c~oqPuUZnmSR>83T+4MOCkuj7 zI$txcyLn$h=1MtNt`!tG%ZzF8sUh;6Q_a92sU^voL3yEzgtT^+gX>_PoMBX354@=Q zr0S`v=OUcPRMA<)EAsB5X)?=WL(qPAqyCw=XC|<%(2Lh3UQI?HUn- zz&?7b7(7yuy~#_eJk+)m-PbDtRhRXk>G4yV@P~cZ`fXe{i*ODeL_|=;-tZw0B7nw= zELq9%o=fCF5Who3Sk;66_af`{+$~_6NcKyl_I->?QtjZTNSgv zx*F8tpOqlE98}szfT-{ABn`F9ki=NwE7?wou0qkXx63)=LD!%BTrzQq;V)Kk*I56Ehm^>1*z5Vi#l7SE9}lRcWXi zc-?6Iq(#Dy%CdA0eJRO(I}1)gs47V&;U_6472eS8Nu0S9Q+__wz zu$!qRnqm+<$c}N^?lXji)9R7MCc^U9pSWsgh9w+%8eAbip>Z%OD5$lR?4L>xR4Ot& z18KrRHdHbxx`pLouoO6mvvO`ea4##Q3}~)e9K8IV9Clr_MqKgv14mIA zv@)X)qI{W{{?V;m!X$m-rRw0|SuQmjPxUhsE7osA*CZvodqL8cH>A*BrSw9Wcl3*3A$QT zx@XsgARqK1_W%`94=jwkpi4=Bx6B`6g(a;qMR1m$8PlUuczlVF5{b6#8G@7N6eKZ5 z6>%TgDCUnY>|e9L$nWJCghYr&8FL+!SRKD0jR6Q~j)e*ouVlRwqI{AH1_D)&_Bn@0+#IW4y+ zOn&SfkNGw>1!~Vpa{0-HlN@u@@I}x^OqfO!q!iPuC-c6MIh&GOZ*F%P7Iy@m;}Khl z$0@U3W42j)pw1u&D`5vXdudI=stVMxqoJtPCOWzR%uGR*d$?^k zxfl=Rb}k`h?hnzh5nb~*ZY2D44*j4Sid3c;_4A;v%)})n5*n=zuz0xkw0(TbK!wdYn|!(Q!sCFQ99LIA~m+P8h3^SFnLkE^bx>8sSMJe4IZ&2=1w zG1V@W{+%o=PpIM>Gus*sW%QXlu3*SCG!`HiC>VRX&##=6XYZ{L54V+ZKjUX_6*nwqc@=*xV`-(ZbnZI)vh z6L-V6z~ju+4yALcY3!lUxkEgFP7qr+h#D_o?XpIE5id2%Q&sN0+$&@OC@KtIC{se^i)51*aBBMNhcS1^xECn zu`?WUU5XP3IK5V`IWcUR<+wSq=Wsn=c;={80R){_` zA~e-hdKN7Z{l|6vJ_x3iH>gS9AM$BMkv?1y485YX_z#~0AjryZI|(|~4*!7!T}4Ud z$TC_A5xx>qTcKe|J}}9tv>AU>aAq1q^9syW!Blm`cr6bd;WHJV4tedfCHQes+rCcf zxzYuLaZuNL$vQF8nxVHOkf%SPI&|lyv!e^+NAk43ld_M)t9)QV;aMWoP%2RK-)X~D z!E*pCA1-2M8c~>KomSs{7_Q%_-dA=|mV$0k_78&tnVXfQgtv#d!e?`EmyhiqIF(D6 zL&UZWW8$H}O0?W{XmAbFx#iGiVUwEAcbu6e=|wQ6_~P;yQSqR(3SG%*VJi8NC~JLX zq(q_3MplOQe#X{98-S9%mVHeWN%2bYp`_n5gq|c3xmoTJNC-M_wro`~rX!H}|CelH z&_iE^ZLoF52nr(8`72r|cYDUP8BE)6y(Vt1@^TNSvp1Z@nTR68><)|t<&ZGX+d(5u zi&_wBXhq4hH^srCpfZ9Y^gq-UNtq-r$#dc>|5ZtFIzqBvgw9|~!Z8m&g~maR1S(MT zD5!KMd1C8V%K%xpDrZ4eSuFHIAtovsP2+e{BM&Sfe@BrmDnW>sn_9SUQkjmJ%VvAe z%UoB4QaIYbzs) z@cfu9U1H1~99V0q&?KzdoD+87&-ARGa}%J^sEsaeqK}zWgUUJ4|Hs9G9Aof{CMD$v z6RhrJIlp8IS>Q7&Z%fnN%}!*U0dxT4z*kFw6)Mt-hX<{9>`TNr5^`MgpE4@N2BXYH zAQUV5^8Icb8E2^za&-F#&Z%PwHY_(&bi~dH_2ntSXJT zj~Xv0B)n$Y#{X^VL*mJgGRVH!`O~Jp7VOwV%d#S&!A?xizh=7G> zyznRtJPgm@?;aoGtYY4sr%nbD8sBeohGlBSeKvdcTL-N#jCR^-Y17ZaL9i;~4Y(G3 zCS*2GZAL*g8gI7GvXd0VKh?eXSzY7ZeH1-5>bcV_kX~^LTQ|zN&ffI&v+g~f$pQw} zSRa@3!yRe7$&G>EvKQ(J_;nsP3Z_gpML<$P!*;9*tCelHSAXzx?cijm4;vO*v9vIw zqvH^7M%luC?Lzbv-!^sP@wsuG;N>FQ5&9Ok-84&hbzfy5t2K14J%FeiMXK09qg2fV znl0VUG&5AaRef>=ow2>aV!fR{4zNe#>4R;`bZqVSBcMjCp5loRv14p3$!lnVhidDB zf=3kZ>v4e0)3A21WuRK!F)Rz8pj!UwSO{^OI%D7w;1EDpz5+(w_n5J{T0-UzS@5!x z7F9vC@@Oi%k+MIK07RC;w2K$%C{Ce|aXw46+5u6At6A%3%31N-i{h>}Ov^2FJ#D?y z<8qS^+iSIUiHd`~0gI*L={6vzkYcy}dM8E6)!aK@!A_aC4nn7@m9l|;&>=8ttMrLQ zyHvqG+vo@h`ka}T=SgnJHcIX|3jk$=|s#3IfQUyB|AAGl(vo~cEwYk^L^XfGF@@G*V7i|TK{rxVyIrn(rn_m5lCI))*Sj&L(m;d_y{ehoaFs1YQV8txo?XNe<;bM-s5`BR)2pjFx3ZejO)Oy{>$iRqi63|Po;#ljo%W| zvA%{0JsJCY>+!2qC&9N>V3j`9N@QpsenTHvkvQBO^L8rxe(>5?k9mwJ;S=f#lcs+; zmkqeG_5;z{5h2(9zp2+}md@w<8;By#&JSe2?RWBigMRS%Pqpd29mO|PId*wmf@(Lg zjn-)TSEx5k#I6tZBgxG2cTQjX^so&u`@zkS$@CdJ><S25`?u7I=aN5gg-D!KuRK{#{2>q@{_6#}8@c0!Oz-Bsy5Rq3 zde2;TBSQ657EupHzqLH$Yzaa z6oRkd-sc#6YaLm}8JCcJJ;sE>C`PA>{o4;S;@v$L4`KlRenU8aTv*+AWf+1}-oueK zXh4}ft&F4CWNoZbdokeEI~&gazpU32b-9gMNIX_s9d26dZ-&)z@E+cX%45PZ%}X80 z-)0@6o}bKxIjQEx%3x5z*VEf}rOG@%qj-4iaLtXV^6pLdsJ(CoUvCy27I{FuSu%yI z3s2PyAaAGfMhiMJbehoX5AVpqb`U#rtG9sP_V9ui`;XmGhH@`)RT&c9pcTPkT@&uF zs`s1T2LwO&wDr9f#C7t0`~;VgLeXg(35!BUaarvQ4sy+k?g^QLn1-|h&$J4>Gx$myDz)P zaqg_Oh@RzhVOENw=|FSXOdDdLj@QSZkw;=bqCU8NocmvG0~{jP?lG>h&+yMC)zmQi zWXQD};mYAYd#TcXoxcXnCo>Fya3$7{sSyk~^A@pBl91=I0WXyV;4NJ;$@_)IJWW6b zb?~_M|LzVweg2k1qZ}tLq~p*vKGx>Jw?3%M7wM1$Vo}r% zl?h!H#%+ugyI%hRHf~4a3|5Bg`2&P!C^^Psh6_+C0`s)3dG5Gi9~MZpXsRdpB7+lG zz9?B`CFq84EfdkE>H;F9h0#W*q~anRW~=b_p-y+t|BE}#(fCzxL2YmzVe-}(v30P= z5|Vp5IJ2qRh$>e+p^?GzE7{NmvfiUSL(x3fBslmmpCdcTWe6b-2b!@+_hVM)zUQ+` zexT-iLsT_EZ?xRm{FS!4?CA8PcA$;5e?+GV3^lL!bb=nlGp;o4_&Uz4!n+aNGaAJrUVHs~$Tb}>gFwCRNb1y`2enn8>elw#?Bk4!T;Y)Jlc z;T=E{d;HzWaPX)0D`-d88ddpD+?sP-dGZcxe4aEBi{XWgE{EdrO$KI53Ah#=ae8u) zo-Z0GNyx9={PMjv5}1K|lT|M3fNk+Ja+nxWT8n<~M!+W=V%qmVK3+T1SYEr83Cldm ztW%_MT;U;s7d66;x zE^+QK@vz;uh;O*7CMnj2LrpgO2E=dbgcBxEiqhIt&@*jc?gXHqQ+_a zQJY5sx=w8%4V;ndlFX+c)J2gB9mye#hTZgNTy>1=H=WU~qSA3zWYXWN$i-ee-@J;O z>kcVhc8bD~B@cjJg}pKtZ#A$M`i9f$eSRk*j{`^wk4#}~IE@)*GR9*!gw`y+MG*uvtDoU-a*D=KK0cGi~ErUdux+qGk ziZw>FtG0;C?glaLDii(+#YRxwq3|Z6R)2Lg} z!kREu6vJTzvc-rK`@4I?RWg#RT5$WMTXVvH>qfyLMWj`gaWYW9F#%_SEW$=T!B>lk zGDZ)Ggxsje<;)HvA*vQGJpHEF=r^N4ZbfovR@me~xCIC?qruA!dQxbW6O-9U;yU)M zS>8i~e(_sd2$xFDNRO`>epR*7j_d_6wbc)l$nR@<@Mfo>?>4*3JSdFmQo)^;<&JlO zeRnQ>I?uX!ssVi_F2PmsbQpmFI*%gz97RfqQ|ovR-E&54F)W$yM$oiV?PHGDYoKb7 zkUI#MBK*s5G7%e!IC+hnm6Xb(j1lknJa~NHr zgMfDb84E-_2`QaBwO*y2Ck?6C6>plnk>E-7Gl7pQ=klg6H;RO2OR)kSLV+ zLZi$v4;_k)7k2b~mhud82ad|@ChQisrbA6)^eg%3y`K|+Fe%1uXySHSGh@_Cvg3?* z403K|fv+@jQOc)t5A;thxgpt(T?07ORLLoNA}b!r(AV$FRd)%Ao`%T}W=D*f8%LVpzjLdglJXQ?7oIs;tRv<(*v_wN$4-hw5XB82 zA!M27qZKZUc}{V#m>vDLuhyz-YhjDb8|Mkh)+^p%S|04swZmjpT9anl!T~AM(>+CJ zp0~Fe;ja7k*O}i?#<3%rS)9TpqY|i_wK!IVh`mh&g#Elb4Kk(@1dTL}OPw=aa+&UH z(_L?qh1gtgU6a{YzmhR{YK8MzC`yY)os9Da?Z) zL3-e-?vJ;of}s9PjXQm;b4gFlzcr=U?W*7nc5 zcP#_YIU*`{3~^82D!JffHgNH<(Z3!r5+Lr?T3z{SLJ$u<;-hAYn_QimnsG=qD|sgl z2;Wg7A~K9CicwIhovGdy<#w7oUb0hHeUkhvDi&EDQZS!YO_)yU^+GZZ;(ZaJ6WT0L zIEHFzGOHGDd?S+)C+y~%AR=96@<>;;RDBF3N;CPib!1@eSB!eW zondrn?J=7ThQ(EReLyCNgAKiOIuZH~@n7JzBjdCxuKk7pF{aY3*zCBKJLFxd(R0N! z{U<(NWPXhE8(118j2KKPJvN!qFs}&X>9KEljK;z`A3xT!{V~%Q%^pVM)vjzG@3>`cuUdqM!j+qVNW)5R2+ucYvKasu)%F)rsSrb<|)Yc3F5_Y(;h*&{g0DQJ>Ux|2bk z?h`NRVo2gox}-%gvb$DpH(QL#xTRKfeq3+4X&f2%dBJ?)Kq<`RWFF=Q*u*}CrNG%l z6kjiO7+EQqhJq=C;)jDv5Uo((9HnXe`Q=2niOdib%A9OfD24N;Y>&9yhDU=Ub%a_1 zigvKicbs06&D1{cd(m_b0lR;8VOes}X+w3je3*;t-7GbH2g(A33MZxD30;2*&1tTG zoZJ3(Wn{Ts7{lpKet-LnT`R}SC!;0soF_zJkM4AT_1yC#TW|B@l*x^I-L`=ENMHJ5 z=Rt@Sz1ao*=SPDcRww!Wwlaou@!lN3yZ>d^&J4c(sZo1$u9bG($L3MDlvhXm<{Bq^ zN7KMpnp7)AwS7MPfV0&PdcWzgH5wYfNt<(~Cw|qlnE9<4d8T7DpUcTo-jS*p1<~`KNqBU@9t@U_1ym-ww*HRRX+LO@TPm5)CV5zfZU}Z z;FTx>xJx)&uWN38gF|0O2>hdpel4SAl!2lh{_fJuQ3!^nGuJ%sY2z36f?xg`i+R5H zAsv23&%^hA#AXsWOO;xqIa&3ZLOU08-S0k%=V*or_1%vO;y*n-fXnkgl(MdSNB@kLZplkS zm{&`sshh6a%~QXfy2bEMACj^z z!Y5@Ty7|_$-uo|jf_c-?S`cib*56P+o^$!i4^a*J6fkyri2tbPfYcBW z00000F$Q2H003VAd+*x2OSrSB&2(Z=6yDh(O_{!!8)nXCDy6N+gF?S=%`OXNY%4dz zW=LTe@V0u##UN&eZe}2;RmZLhHo7xpL^1$S008#@y>IPZ>)qXEG6}_E)c0x3%6|0o zSC_Gv&UU4LzU^y2oVLYBH=KLL?Q2IfusHT3C6t!-`;7&*yPdHu+jd+`Ye}VDAhJIs zEkRL{TFC(S+*PX-0<_>RjRKq9M#K16mU(zkeXIJRk#ATmT3%@>vDbu3ops09(l;CAtm)9~`2LScO?xTVk)S zRxFs;Kr0Ic{KF12@JNm5n8SvbRjb#Q3+w826T4*vwvN5TTw0ljgn0=>d5Mvse<-G_ znZ3njulFi=7Ps|Q<}E>&t3Txarx8xkjSywq9AcU5nj&mm&uYKfxUud)weL~ zLFqf<0>JOfLA+pu=j&rJUtzCUSXQdv1Ue8kD= z_ywhoMhI=uf>~O*Hjda?ZkN3%hyrUT?yO9#jAvF>&f)&EtI<$qR>N0TWVR8-uWn2Z zFu$@5GkyrD8jc&afemzt3+n%?+5sON8`m(7@)X5Yxb@klj(F(t{Gv0A9Tc;A>-1dh z(nmxd+b%r&eg86XV&bQrct*Q1BcVhds>KF9A~V7armLWtFARh`hD5{+7`cJsGF7@H zSEXXqHT+OAyW{tBX)k(B%@rpP~NZZgk_^bjRwKik5*e^*jl(2*lAZG zBGqiNh)A_6(GzFFvAMfdyRFP(@(V;pjS6!nkgdHIZGUd|AuvS)1K}{3NF3UF>%nnr z7w3w2U(_!z6DPIB*%up+UHlu9D2)n>g z2!Y`}nt%dBuDcmaAryIuJZ6q=D#%VUnexkfT z8n|&NOWBX-;`L#sx)YQ3cLKO2`1z~0PDA?Y3WTN@%u`G2j$K!*KaMq1<@>1m2=iFt z(dyT&5 zWWd1$UF=7QttQ^v7x+o`vk4{x=hs|vProVxSzq3T>;pwOG>tTE3An*}TahFkKbrSehIf#G z2Y0&=u)*+$?A%ev(=n%E9joZX=q2p`XKgfS`!2Hne^XUNu4-_=c?x!kYTWOw!~`9y zx?q0c(f9<8nn-fhv$EkBkQJKS+U-cWAZ#2<1#8j%uAFtg#~dg7{ULGLnatnSJANFp zw&nr5`GIjr=w2^N?dkVWM1f)l%kXlc7jbO2yXgpE?p_Lu+UMcx5zRu8Za$7+{N-au z!P)|Wj5|JsOqej)Efw}>Bpw<&cihazsp<2l&O(0H`n;?aS23%r^$Wbtrl;O^(CEV< z6aBOhi;cr}4mcpX75AW1b9-=VLn1VN%CxtkY{Emv;pX2IQ3Tch%CG+{5D8)?5D^=Q zPj5>f*|?s=zhsJttj~D;AHzahyXduxo^LepS%$o30|Hq0d%M-bBaF~S9FQEWa$UW) z+glS@q}B>QF9mh0t07B^=v8y-6J4QSAZMy3>7x16>rUVJo*zp@u~m?Cn6M z3ZazSaQ*+LJrM2vvrBrwU%eY>)P@P6I6>aY=Qd``58BFPcGrIZ{RgKS0>&5jme?<1 zEdWSBx4-=K`iMgMLGJ0=EVd70i$a7TA=~X6WY=8`L|puLv>;=yvG}bqd3p_YnIGeU za6UT4-R24=Y{KdL;t`0W5UZmMD@(s7$gM}W0$dGSwJ+>nhzVg$>28!P-R%D~&JHu| z(BF0hSummh9O7HtL5RNrs=;Xc)`n8G3f`4DdT)|aP@7I&dx$_8r> z;+<~EY`^LW#_eURZ9Vr^NB{T8Px*ZQJkJdz0Kmo`W1G|A1?rV8K{F#7pt3x(&Y`p1$KAHlOm{*NNkP z_zB1eItJ+b&<=0 z4S+39=KZQrSEq`N9lm&CseVD#vc$8ntp(}DU)`3e=<*bPi2nGL77rO?aK z3cXq+sHKic4*ysG3x0@pnZ_6E014NB1iR-0B_*;dvgLZ0&r;WR5D07Y)t2YA1-HdQ z3N(@qk#wn$7Sc9oEjVteffr+Knm^U&S<~5Rpfgm7-CDno9OWs-nrXCC7aql~Rc7SZ zx+ZCIT%v(0$d&^a&u6u&-p6>@aj>miOX%P|+-?j&EY$KkS`TmrsCv3ZL;J~Qjk6sj zmCJ|$p0`7A9dGQfsYuq**}^M@Q#7<9?85!W+&ODPqf@#Y|0b5%GPUn($I1GOLk>yx z0>Rf{+!nsT4>+@olk0|lbLitnjW)JrF^qQDnK#=AKBF2MjIS-U&7qhj46hmopzR6` zu7R{>XLpHVH(+~toOIK`?k{IY+YnVkY8tzm!a>-;M9EKf0Uh}#!YdFhZ;eZ$mix4g zPzrvp(H&B(1joaMF^$nmE== zFe-fEu~hXcqE)&eFqPfs98+Ro5d53n8jgV$V92X_!D7vcd8Y>*!gPUm^NPNXowdlR zaa5>)gfvT-QLmo#kTzSan~!WASZgzU&T*9Y;3%f&nxd9crNOZ`J1ua)*fSi|fcN5c zm;oYls+G7w=S)u_9Bk83-Cw8L!MVuVw&q1X2xYuxaZR==?@U-!ZQ!ZIL^V#W zK=B3b)t2!FyACW_ zmq#{l({UHV?FplAKZ-Fj8h>&4PDd^=X%w8avM8O4+;D`$v)T#{b9BL=ct<>P_9LAw zySGXe6;yTUh#ouo%{{~H))}XsFR+f=zQ8iOV&6cbr&`~jbENFheS91`Ed%BXv*6Oo zIl%_8X!fFxW#Z@kigYqY{cwXMN|*c!t~vd;9f+C?sL2|45{5$^WaX*rxcB(cuyd8A zjdi$IOT`knY6-th(K(~58j5Gcpj**+e)t%;vITN#c|28^6SoyEN1Qs9E(Az?tMUX$ z@XVOub{BQ;`5ndT4_rlOA;Uc+VxScA<59b}he*djam8q2mwhi2x_u|iB$dvMw0nMR zFJ{RmfC;2+wQS3}?31V(=oiC5y$;RHYW<2k`+ZCz8=<35QOCjv{O?g(#PJksrxc~! zg+9g89tpBsJIc>E8<+Q{1srRXYe$16ehIY?9Ye`)pCM_mn5TQU-}$(@*#tfb8N*oP zs>vNEPHC|>27v_F&M}~8ApSZ!{rP9{W%0K+V6waqh6ZZ+L@L9w%fqG(7s#EuV9&qWOUkg#>55#_SxLEgtT@7(4#`j*s=j*YsjxQWrPxMy53j|3W6f_5B#AcV_5LYs0tH^H6lkn?=n=Up~@~ z3*;U!T6H@}zPsdOHRTF*j$ljPTEPw*7c+ z8(k^LF0@CdUD-WP9e<-Unw04edPUT6K+%_6yBxV1$aOWMsMAxJ!k`>v)>u2062-!Pfi_v!B5YX#TfC|h)A zRA_yRrxq#JhjEt+(%mQHCcKD^4z~WbK&bAY%gZ&}P+ngkG;29_1P9;G1DnVAX$YV0 zKAR{z`_q;$r=l3J>#aLOX(1QPuy{7F$OInpyt;K+-T7lySC19t_ywS?W<3AeR%UCZ z5c1!%q;FL$>>?AL{OoUEuYB=af{_ijT50HO3x15vEt<=0AH6mF)<>h#;_sXw#_;7( zW-dc9tgc0KMZ<&uc3+5O8kI=bx+vPvYd~g2+s*O6?7?g)GBL19J&!l&3uu43RbaIa z0TRZ-U#<$Ue2T+g{vyz$IV$^H83^vS6y>$qt8kr>$7>XnnkGc(BY>4L@Yv*ta8V{} zRuLzLkvl#nG-JAjx*{T=1fQ-FNhLBHDvW$EZ>B%B!0fQP-brK!dc$1n_#OIF3)wao zAk>GQp=Xf~VOZ&|!swgSJyo2&cfttTaNoiZ^ef{0hDE|N9Zc8IMgTvc+PClWztfez zBC3ok2cB$x9#&Qhjgfgh2r=im9Fer_;|MrNL>5G!IKsm5Na4r`IzU7(gqNP}qTO-R zYx@}xY%_OWXx^cq8mxz~tVVT)Q*cH~@9CmG*@9!N4qd-vfU}VV0sorvLnk|k&a)zN z7)urj%<9{+rAvRubO-(IUVpC#-Fyw5vo<$%Q6ChZ)tgT2p{rv%-^7x!urM&Kmq@Su z@ss(0>+v**1iT_Sa_FKokg##VOrPHGjPNE7a>I=VTihdbqnKkKd8s(Sb2#h$~nSHK*>y$6yr zaPni;0OzXv+LLMbnwf%rYk)@034g%z3hSPeus8J3VK5Lvoj4-0jh644hr&ksbME)( zk8^$qQMUE#2wNEUm1bg)Pz${LDH-9xhkgyr6l_B1=6WR*@-vv|}oLQcqJppwCQQk&t`D*pn&IkPytuhHq z#emppD4HG0u0dp*dXz8gu}6%q?e)S4LwdXBHKt#|+^$wJb}w0L?QQb?rq#hwtjQi@~~g$IjW zD`(kXT+{c#9!nA#rb0o6^Yam2#eMP~`ZC*f0?m7f45?Aklc{lL*x?hHG_tR9{aWORjfTMyS{QS z@R*Si1ESPQ_-4NJy;ko$R@Y+gn$-;7^FFJmv9SrShGZ6nNEpBDx1VF>FFgDRq~}1E z>-}576t7qAE!hg3k02DZYI7)&gk=2MA*CXt!OqCyyNiXIharDS?~41ekA)Bm98(}Y z{sl_tf9nHTi#qq%Y(HFB+iCWV*r0EZUzxAjLb9W$ zrF~y{mM9Z)XnS=P#D?;mzetF)|8ai;lOkMK2mf`72We^k?#}K0*E#K7k^^2X@YMW- z^CG78zsuDh()L<4&E~azAJvPOez8Fi3MP3AY2Un)U8XmnUFZTXb_bZRuJ=UMnyCH* z1W?zfk17cA!4PfXk33iHQNbQ<-hfD<-59F5Z(g2jY`FjGJ@mm=*a2n03PWTu{69jY z&pi0r+-s=Xdw@mW!GeDDfO3=XU2uXFd!3@jU)ILostQcpsV=YLfFX86LhJo}De=~| z9S6I3mG$Co;Z>``!?X_Teo|3O+kn^VwE88RzB5y$Uz(a5M_92cG*I(AJI4PlVw9s zq37_}!0Fqp6oL@|1j;de-j&6pMZQ8miKb_Zp<>?^?> z`|I|M*ao6pUsT-qJChA*TwZ}cAJDe=kHVo1Ia*3@2*(EL;P#}`-8Z;3Z?Jum{e>;Q zc>E8ezTOi>6vPbWapKQ0e6M;z6GYH)AXid`aby9yG zw?-uJlr;{B%lZc^4l*Qwl5AZP2c+;BL4rMM2;?W zcNvjgshTGG=iZ1-n*^@Su>n6EB49Ym9Ud3aK(xx^`-}7gr@S|q7M~_H5bHdf`W|fk zp0L74WML`Q0lyObw8aN<&y5Cesli4flI;WGe+44T)jHk@5GEF_36WjysA2%sv~Tg& zEmrlGR2r%BiY@E_`woW|y#Svh<*qqscqTQD^X+qf1IU`2lq5if@YU8Fhb%*HfB9z! zu*yiS5GK0p*VPJeaA?fI<>N09b3*w>w-uh`K^&Kw~e+ zp{lvk8~gidi`P{uP>Ow)aybmj%$uLo+!2ZxVG}C_pb#wvc=VCYFj~PEryej zkBGN!QK_B*9dN|8(jwi}l7U|sW>C!8E%FCvVNdm+rEf^OO7l9Hw3k;KVH z%_n(Ex(8hiGU1y*7UQ;Ys>0|!$Qsx#m+Y9q#@BC!*|7bp{Ys6+_#Pgrv!V=Lx0W2Q zob3gNcygz?;4#l;5)lbnTLw?@huGCZESR^Q<+>EjA-3;jceizsjegva`!ELX)da>Q z8>?996i4nOF{{#+Q4B9KYOZ41^Y#uLnQ*&NXaU)eig0|F%9D{HbMknS7^e|8u)8;R zw6bGsX%IzkcGL(-_uua=?s2b^!e|^8BX^`pvT=A&RF8D!d1TY^eC`*RdOp%AW-0FO z(O-7N-&UTQl_cGup5^AyetT?pEs?!9mz!e7B^`A0eLDdL`edL>X51N*H91JezI*HN zGg3=UObH@p*?iHtE`U=(y<4;VILtP-nOwnO)fbRg2xA3+Bs^x`o<9Y!zfg0oA=3;R zS#~kK1T^E6UfMl2b}risjwIjEi^Q!LJpLnhYa{SEOk&N`HAhUQHPc;YHOF_q{yT`! zi=%8Dvi<}jR&!jqWPS{4lp~g*%;$h0@k~Z?Xty7G+;UBRZEUf#*@e&OB@gpGEnWS` zo>ScifU`ZgcF6x^v{FGU&snt9(+rOjj3LR^3qb5d3J&Bc`x&`LB0GsVwRdN_29lIV z8(r*p65xyu>CUvt(O~$wHU81*cI+Lkq_YPf?R2Gwai3UK$XAzS6f_$P7ysQK%nsz3 zeY%q=bICl%3lM8)(yY>T|3#g1*%cp9%WM!r;zOSpCA7@9{SR2$bDrYqrntzcztF#I z0UwTOn?UH2^j|{wdN-8+G=D!1qQY}2cFL`DgTmUTg{KF>>r7KJM?U`x)BDga>Xw)p z-QP=+DYogI641XUfIR=n)zx#;a@eG8++9luR)=TGG`KxubX0|eL(gte^cqFWmYr`z zx-YuXiFcrNmEopBQ0=fCZVZiXUfSCSDB38uB|5zspkeL!LQklFpv9c=g6MV7fIYV{ zSab3~79^jY3R&4Uu(@Q@qfAEo6osTcx{F90MyVZ~HZ;vT2;uedDqREDANV^x=iDfr z{IslGmoU7~?c`TCgwGZ0`{sL|WL4gVy1`x~W{%BU1z*7!6Ca6$o8J-fj)!90MGlde z&|^@b-wv;3P3qes;GSLM@zx6wP<~|7a@iM<9ZLe=xYltA4E@7Ndi!fA9hk=0p(Po$PDq zN8JmNwARbBd-;TKXMl=<^BM14v8^ubpJ9^40!!4^v>}r*L#h3dSNwwkw(QC)Wav+0 z;i+ji>Dxtcxx*=KB;yT8%Gy4BB0s2=0pHit zjkRXsAxFXoj~mba0zE7cnY|}lej?ou7yf5oeT`yzANr4Tvk;~K5=(aav!f`u{NI`o z>)2fm!aJ=vsbyVzVI*bI;E(eMg@LYE*8CVMUD<~O+4#O(X0;k^-7NpaRNZe#ZSe6D zjua6+D2iDqy}zPpXzN&XC-G`um_A$M9pIz$)faL4;db|CfG;M;9_q06MKtT7`)^fK zm!DDGiVU1RAr zHd?2&ybVjxWR6f0QqxJig>r1EaaT3!&e~=BX4FUYi^3zgDG1}fdZ>%R@(&VhNZRhN za4|oaxSg(&MVm%yhUonXValuDy_!8WEX>uEIxJzUhnLlfe)k#*bSg}x^fi6KsASjZ z>*bC8tAxQdqBs~9gXYp~`pF^{%tUw?I{dEg-*Ac z0kB@4(GleZg8ePf7xUE{X)(I1odfx+OH0eYP!hmt1}=z}%QLg94d2R-k66~G4+Ul? zp5}3G4SMUIJmwj`T34c#o%2NEM!rXg2?FjxK~g?QzEHa!uyt}^=+b3jRC#f+kH6(r zOZ0;4eWG-q`AYXB$Gcp*GqZb?sZ~Lu*hsHF7`L40EjSSiIKR=Tfx0&J5=062s|0wRfUY~rytgr zXzJX=QS^yQtK82lAJ-5O2xLOUUbd7AiFmij0}!TkKEOqGL=B_*)U;a_6Lk#;8E_O0 z{f_=4h^XI!F;8GC+Ux7vHd~Y$2yo`gLHn+DzK{p}Zd-A`xB7%c9I%2faS)*i90w!a`i9O=0OT3$!>B znbju7JQD`}dsJ|v%v}mGuXM@tRcp*OG9sj4rxLU2`(lxreD@2lQ`m#IWC5qfcR8 zoZYP@w?#nshiwT!{kpBwjj!G;uwR^SU<4U=4?ydYzY)yHkdiEKW@rk8cz=wLXOY|R zKY0&V9jTpYdL$I9I4~|`O6{skX7;E^cl^^uZnyLJ2Hfr^MtpZ-_vzHk10aJ+u%oRZq>fe@w4|_Gr?Led#35)1TD9W!_6Tyak&@U35 zhV%ct58)Mp@4zuD>L~ClNN9fZs|@_{)}#dnBEdRhZ3{uB@^M_!fA_N^Dsg>Ium?i+ zY46p&5r+bPwsyPQ{@+NMdW@^p2fKl5eEFA{`|%R={^$Hiy6|F`0(kFSl#!9V0veqS z6M*~9ShDt8ER_HE|Nq>=`^;oPhEe{a$9jgxjOcbQuejoQz^}yfIUwVc$K?4J`l>&p z^OHW`<8z=7kQ-Y7>h5eiX@Rc_*Z};3RsH=3Zm;|sEIHRVn+#LhOWXdto+r^80pDfR_v3ll+ahe zrEm814+CcEtJ`H-jc3CGqE!pZYK`A59vHT9)Y(ur2!q`O)!~}yt+y!g7ZB zuYa!U%MJ3>J>%eq}NWEGZQ@DBpkCvVh~Bn3@mKTOwM0? z8!8!97)Bt|RB`N2YfoW}sTo%pQ21pGBi~?M{LkC2{^%Mblb{+dwx`hrE?V66)6QPF zx>H8Wiy~>w_5zEUrAY;6BRnmu;De5KjU>>9gbWx^ez5tpXzl6vB?H`DoY@rpe4+j# z{14>h_!OEca0`FrS0=^`AdYAwzWYo^>T$w)s|y&f-FR9anV}3ncGNHwSNhY6qED?C zImG^bdQ9@jh(yHN>5GJ&nSdfw-P}nJ&qe;!xQo)UqdJ7zbkl$t`3^$fe&w5+hsxX@ zW)?7{wn+4vsbm~jrj=lL8HkQU;CzTFmE{K&O|89N)0Pw26TQLlNwLB($!$ zl;gP3V)n*JHTf>hd7;oD@pL$jkF_b#eypfE^(Q}8I^5C#cDx6%4%>Io#(iTKwX|M_ zWMZki_ELD61vt;9RfZ}BJrhZZugoQbf0mOC1AeDBN!vOnss$><(&)fMPw{iBZj?i{g;Bs-wK=IiY0w}uyORYPks(YDE zX;x|?+uOB8<%n8;y1o{qa_aDkJZ4=}NX?u{@?ag@kGtj*B$hbqFq!?W*w9n+pxAP}0Ghe(93D&q5j2Ga)Q#jo|dg69meHo2f3A?ar7EIUqye!On{ zthG**yKpB&S2SH^f zQZiC7_dlEG8s{dM9f)I^UuzE0ASQ9~%-U0femk=6D9_my--RV4AznC?Tx^JS^jcBl zQi`NOV7_ifqEuc_uYBAX!yF9i<~=$Vu7%!F{3p4LuS#D}?0rLI>^io?is2OqTb%wL zIP5++xnsx?ToM>c#ezVe1BMEMDc}KQDjmo}a7JBdR}F(`a^1GRT^y z!W52byejE*D83D5@L}Crw1VUPD9^%RGF&Nf%Q{#cIE}qTySvABU}uFvN{GH32ej?e z-(3RCM^|EgIR~FiAVH=tINaNUDj=`6sJ2>fSrh-8vu;z&3Gh0Xnifhiv(>|AWpH zqqP(}baPMi()L*c^jPEPrNNYz@dDq;xW}yrLQ~l& z${sUOH9Xu_akM6fbgjGIm1Xfb0-y!WgN0eou1aiD*A>DvFHxeM(7mPK{)ei3JB>Vs z^6Ga7NnvG@*m(sHA}32ib4X1D8U>z1B9Tq0lVdJZvZ9~;igIlf+xf=YoHFN)F1}in z=zhnv?dh29d!n?F_i?t8%e_}AZm}v#IGOJtlT}c`_u<+x zui%BA*lKsV= zjhI*wZn=vkdF_N3kCTc!txx3C==?U~`7~p?qiA_*U5l4U_;qm!J+6sCo0Zo=Pd~mM z+9UO=OHAiBW81+?L2Y}vb~5IGGVA^oJ5wsVI^&+$<%oj&%<_j8iy?N*a-k4cQbakL zpODt;^bXLwbD6eD4)G(h(Gl5*8Gc7Kyg4m{Y}_pH+UaxGC}GT!iG%T_+g?0zvbZJP ztotJ@F0IVn*DJEimej;De_BywN?1|`@x->eh>WKRou9h5a-dza4rOw9v zS$IN_^V=75hyxeA8o<>G!UZFKY2>{;x2x&@_HH*3z>1__RmRV{prKC36T*;uT-2Zy z!SwT84;sXAo|mG2Tr}vcVE--rMsbm-G2EF_eU?ig{k)siGj*r%GE40L)wHxPEL;D> znmW#n+&J=JrV=9FH*TzJhP!=y+xociKmK3UyYyRXL7nLcN-CE6;uPE0jjsy$++U6| zh94#I?M6H|znw$WTMmcRkKzUJb@zp#$IJhQD?)zvf&78E<^#<|v@&HQgsb{l@g}Zu zI}`bmClz_sN)Gz2TMuHDS^GJ9e*{_Pz2)Qo89=%7Rqs_FaDy5Mc?HAH+`c5KFAYXN zUjGe0cV(0QIsf1mBkDk}qCguA@S~|8=hxg8&Q~OOti##xPX!v~9whU;3be3$w8clV z(0TLd2V8@OjMqO+jo94w-Gxa)qkbqoU0R2ySv=>BD$2{=pnrzpg*#%mR{3(y_4iK# z&%A(#Zk+O3@T1XC-@jL{*gGcThEn_N>Z88~_-BI${a+|m)_*w(D`_cY#T4NXq^0}$ zQJfEeKJwLL|I6Kd`rR)T%o_I4YJd6XMb10sXyA_w9GA;O>c?$2prURfU+28PoM7E) zwWU0OT5F$CnZ!Uu%}u)U~; zZwCZ0M^qK1ziQN>|8hOR^$b+$B0H8LI#sMRrK?Z1*JevCewi>M5HZ=u5v0wFf5vQ2 ze}2E?L5Ypvrg58?`3a#l{C6f>W2@5VYxpsScIo?xw!^4o!*3*5!{1J{@pob64mtr3 z{O^Jy1%pZwYAdf9`IvjB+(?P_fxljD0V+} z^S3eH3b5||BB0$@Y*D(T;)OukLmemh2mXlb25$GVH&0`r*l=(3U%jdYfl922ioM)P z02-@y{$9|1gSlc^3sCM}5M;cMIHp6rxb}=%z%f2Cp@V?BXxscRA;mqus2{Y0ck@Ff zrhxk|Mlij76;EO~a$|RZ32x~`rn|>Kc4qSA48C6}3%K4E_9yKw0a2#^AFWp7`9t;X z0_LVQ5DVFam~gk1$jF_y;vbr3LhV8y^Z7)w$d5)3&_mOYM9e%^7V_#(7=5{&`?cH1 z)PBDA?Uh}#X7JjGE*`?}p=9i+Pk+cMWDqT4dpzi?&psC9!Ct-*Lg7tul5N(Q%#uP| zo@J*ntgZOx#JyX%Wq#&(`g|5%o^7P+AVbI7P@kl_LVroBngW>`hWxGV_3c*_RWi?1 z3xtiyJ|-*50@S1=kTI3wZ^f(5z6HrW>%_CR!#>KtC`9wHEW;s%`5vWg!nV*48<@?a zm)(ZNAiat}_gq*hR5S4&nbl|CpaS`!%pbbaS0O^Y5tQ&pt=H2+z3KG@dzY9qa!D(X z)wNXS0$)wh(!Y241K*nz%-x}0_2sp@h4=i-i!46$Wh8T=BS&FIoV(HR11D2oL-YFy z?}abJADPknU2NT-3qj6?CVam)J@>o(t%bvDy;tx3KoSurd411QnV~E48@T-ezYpAu zF}JR%B)6rq!>s=_U%C6Tlt%oL#U|w9I*ZT$(IKbKWD?&3wF@m~!$SDvzVZ zE58269+CdcSwMOsR&3JKjOK)lI|5Nw*6t%+E4%2s&n{p;|1VsJ^as-(5anYKf$Sdv z3h;4g*Q2lY_`SkG_8mcZFW;xp1(kPu1iurT@a{c5MBhD<)~&zmE-k>u;Nsfj9oy-T z`6`s7IaT$q(vlw5dO`q%Omx#|;fk=1AF+2ff2|m8)&*bwcqN(jl=H=&utWWbtyd>gD+}9$x7J^fmmgW4$PhyJn`DKCzz{|BDGY4AT3L7yrG|Rri>K&%$+s zNmRuJj4GAzdw8ySTT2Nh2H`p)et)`6i)M{1>nE88CL&wp*?cRGjJvV>)RP!o4*s>= zQ>o~0STkL1OU9=Pb|md>9$YZWQk1Sk1q6HZ{0+v@lpr*(3Umd$s612%BS^VfVKd(jjL1KRokDJWSx^&O{q%A&*sbVXG@JGRUxQJp6{PCU1fdlwknV$BQ8R3i^dmaxM2!P0Bn6%lECj0l zI;9iGtsN0+SkcDuBt6nQ5IVG#1X^lPW8?c$1 z`N^R^og6&N-n~ji&OI7yyFatY$*9Tpy1T*I#E%rL6_wkAV@Q_26pm$LIbdZ^69YMuvBL*+l)`clUfvY zPgJVlmrb{q&VjR`om>+n8y#eZCEOzDnkQWanQAyoTM~wuXUW(&`|_)=}IEz>Ynv3b?@l>F?|AKMrXm>_CGaxys94DK`3b4wVOnq4DD zQP?&8>j`}~P^rlPWg|bI$FSSZPJ^38UtlCH+L>{aAT`R`jWSqe8-|dDt?%t@wjth8 z+UlyG(p*0wU7zXT6jHt7c(bp7rng9UCEMF_nju3qxdQolcbZD8fJ(=9r8yFCIHt;2 zo%6#dO_dhc9uvRQE^;Q=r)khJOcR~J?Daua{T;Ib7VwKQPAXZ0uEiXk#>DRd4w@$M zxcyz!_{OXL7&Z92EpO0w?;7a#T3j!qggyse=%=;a@2LTYv z<|FY5K5cdQ4%PncGL0)4S3OgeF69Nsg|pq70~YrhmXZvYI3PyK!IhMx=rR+u_;Kdd z(}JXY>}YrBIjgtn0VcJQ%~Y?LCZ%+m7T-N1nCn;IcP*z$zFSQmX zQe!k0Y;-8)fqum8-G#gG?=v04k`t-MdgSuE|Ms)4BBZofOj*mGc({(&CTgW%m7I3^ zQS{JS+IPaAopOaJ`l7t{RQR)My5YWKi{y^e;<`$H5C!AYKb+?pc(>!H7#F&EG+Y3K z2`B7>TP}+(*G?|82RC5|5unHI1EZ!q_I zPH0I$X0(xYZAwE(Y7MPm)^`TsG9;gbL}tO4ax# zN=aKIeFNxjs-xf_B(gA$UBWvf)3Lrspg@inG4MTuBnc9(rs?ADTXn#$4S?_GG(LAN zRr?WVf*;#{x&PRZadP5K5Nu0Zm2E@00orw3g{XL+s$G+d51IeUuQ%z7@AU0)gR@dK5 z%kGxVLeZBikQ`x&+9{5D*fBULvGEvhjU$dfIgZP`)1+GNx{7vnul=ct;$kgwZMAK9 z$wcDhFe?rhW3Scf;&KBYBPMUC%@j6x9MZfcjpQZ16APZG){07SUL-ETvj zTJ=d$xi_k|@{HX-Vq6RG){=J;GZ0e?PM;VyzgP3_fw*rQ!mFpd-c3ZDhUNbMvp_EM zWhP~YOdRUuL}SeAKGb0fMZD?(Xi;hhHT+nMUJO(xVWz$D zY;9^-j;_*5_!Mh~oN9g%wxin=@~e$zO#Es~aCU@++I2}i{ZMvQpY+oe;}8ZS_^ZBC zXNR(vhN->*IPiv?%e6>9x0f0Ev2BOND~L-tzEI=aR9Jkw_I zUpfW|@v->ySL{k5aD8t>X<*b5qDBOP=*>PbxPZMEBmL*-*4lju{ut1!6PU_h3dY5( zywdFmb!qRk+YjZ4(7Oa_QWC`cs}==!Y!Uq)j`XpM^e9U)H)sB2kbS;$c)P9wp7` zoA{|M6WC4{`uq6e`70acX}bKvr=Y;`htK_(=#KbZ&n5aXaN8fet3E?8R;kAY!FGe8jml0e|f6juXQDhGP?FN*0k;~^M+&{4@-i9 zi}i$BQRBHMx`!1npM*{e4Y7QQQV0>gf;W|KlM4et>lwK>;$#T?FKKGnoLAZ5j;%vG z!Y8t6n!P;81&>1Os)TKoWZKe^%?IfdR4Wf{T*)y(BW2>U~d)iLwi1AM`RGLszv z?)QyBsNvO+I^&@O)FI;iJ|^rDQXmehPaQj@Aq?m4OsNy@6Q}bnh=-#h!^4FCio#nL zzY+cxLQEH47Wyk6_#sJ!;g&K8|2c*d%gf%gB<({}_qlHWifZQ`5FN7MPw`?A>!mPp zGgT|E05XN$D_E)`Q;*A;!tN6c_|~<4)ZzRhj#ncPOV=)_SL{H>om|ne{`(!!pZqiZ zb`2v+J!KHL>VcGI&Hcii_Fl6C;j?;|F@>c4>7`@ksf*U5j2*zS!hH6mD@)*N0s6iPW$q6aQiiLLGNoQ35cQC<`-XGhGu5?M|10@V zTbRVtL`+vhh)DJ#_HDit9^Wq^LZL+e{$tNZEx>lL?a(2UG^XLeV$pFL1vPFXQo<>-AguD2Q%z#L8aNE!SsHnea)SY$dgR`l05cKEPHB zXI1@ZXCe_mJdlp@(=QJCy3q6tB)dOhf}0)Gr=7mp45ZXSLq9@hn3M>3YO#-Ru*zzL z&(q$G%}l);=7=HoVV7A<@rP4erou=DWNsmWA6A$#jcMLf$}aa9B+LBa-L2U1#L94s0MD!9`VVtea8j%*dPeA z`-<_V@6ma__vNK~+(Wb^VVj}hPfIvWrKc|k0= zjRN8%H0~b&odc6jWM!fU5wW{SFObhe(;sOQPKbJBgcKiHL9VR{%G>Tx{NuSh2slmWo~-bv zF`VG5W@OGt*%W4tKjmmNp$l*6JZs$S0W8XkCabumSL)Sk){)*r65*3rok?7si2wQ~ zah;b2bs|Fikd4~j_q+A}nnfXBJ9fW^P#c{6GDSFkO?yCCEJ+cPHYRpD3USKYLz?HdD-&GRikhRen=K1QSzQq&k9HWdD$Rzs$be!BY&Dy@0OQME+P@Ei>w{nNYHd6L7cD99EyINp=?A1~G zwIH zhy=s>(9)yF+*3TGu@Xky9J$}{xS}*jhf(QVxSy}>Tw4h3oVX?+JJnresVKkdn&i(y zWLPTya>@o|sUOLN$&h6;3C?wJBnjFJA=Wh*BdS&~?CwIJu&QQHgSMd4<&XRlU9Go- z&OSi|*qCW(-<|{aL~(B`)1!XXed~?Y`n0}4`{nCM0(Qj)%oaTES-zTcUTRwB$De&p z(s$Q8O92Nb$x0IG-0a=i{h_@z7x0-6!o}S`F1A|c1Ou=-;H3ScenWo*1GVS6V}>s! zElP}uYC)XU03b%qS^+~^*ly7^ZREX%TUAX;G25rpk?f{Wm9*KN(Wf8x z-z_>FoC++g+)AlmA>uC9D!kG-1kAjk@>Xd5 zW1V%8X(=&y|LZS4uk@OxwH=GGnj4`vwNZ5q0!zJLAsQE=^y||O3GKZ_{?L3^!1G!l zb~$o=e;_qb~C5{sh8*9<`NbG^fe_C^fMcIWp&_S03w+!tdOPrWrZH7c00jPb3%I zg0C~v_3-uG3`GhjWkCZuJmFpYZn-KHpg&g5HGjUPhQvsoHTKi?xmhAkU=&wn4FiVL zqvA``nD%}v4>rt(>r5&^`)FD7%bVsU-!-+}1t>lM;e5y}H}*<2#R!neC3Xm+l;KG< zfLYG?Z*6D1A)B1mlvCqF9L01@NddY}nIA~YQ%vhj{uIEm)9*jHwkxYX!N1uVI$asU z0c)3LuyFual3R4sFtbe~+u-!hW9jeZgXtK=F}eVksJ-UeFj8mfB_@QitEfg|=f_md zk?hJo&0Bs1lER0#VD?mNS!_);zZ+QFjUB-D>G%F%EUgb9(`AZnQ@V+kpr8n+uq{+?Y)nwD3ZT2AU;TFSFLi4W!1=D*z{;$e&>WM z?pN#H>8>O*OS)!N(O0Z-FJ~@nS=hwRfnf77-xDf!wKlGiY8PefHmK8>WKkVwVZbCzH+tn@b#>86*QbpfZfXcUjZc z?Tr%|J3%Ik=V`F+2z8m`}4Px{jQD zb6Pr5WiRwJ8b^1Yc=yf(z5$LyvqndH2fI|`sa^mzK+3-{0_EVG9S=~zO|LCifA2b^ zY>h&5xz8`vz3?pmU1> z^vIzp@ZxI6%H;rF*dS{Tn>9kio4z&;p162kjZWnmu$fP;3pT;PhuAF)VXuGOs=9rKM*a+;K9={)~0!JXX^5ItfyS@Js)f43kP%}juBC}i8) zy;E47)MeYWJO{P_NB0A#V57y#LWVUQ;HMV|w3^Gmflo|9RoVo9-JGJ8ope=E5@M%Y+n2xl_f~IF$ZK6INhlz44Oj)BhT4bSeHvK$5B2mKkiP1t0a$c@H~08L?qeyVG<@ z=G*q7N~cL-|7!mWj(AU>eIQ?uQd@=gS~l-4HemgB>3_`Hd-I$}Q)H7|@^F?-F6b@v zZD?kvRHu;1>XW}vKyk)e5Ce>24uaQSwTnCS+8a3oxmTwl1Gb^~$B>^8mI%Ap9)%@kny4i&}mu0(Ux= zNTj_Q>E+-K9Ia^zsm0ps!bB=$N>#ea>YSMkG;XkbZwa$}v$Qx=i9#LNrU&#}`f>tQ zy6l!IL&6>rj_R1r!Wwia1+`=#DJi_f5GSuqH1K*dW~8qh2o#{^F!$!e3*z*Rz<7frm>!AU=Bl#VNL#iq65PvP+EX10txz8SwL%du#U1m&|U*5b4znsmhK8W%1Yf6E`6WX^iXf);oRgYzd zv3MqpX=p|6tmEWBTjHjm_Rz2L`;H00mSH;3fKN-6J(V6YEQC=_VQlQtCH(!U?3e zf{l+VJvWSF-AjSlv3|3$lE*JWYjSmw1ynUXPa@N#)Es`v9Qk0s7!q^dm9M8JHtrsu zz02rrmf+LTZuWeVcfo9BKLbpM=e{HNp6O;dr0y;b?=VgW2>g@u*m(ptfc|iT!Um5oH)eb6H}|o5Q~7frBXD=7hCGUzybrJup1$sf zi;#xzbvA9TNdvPA@0G8{eB1h!A(WOC+ZuWuva)@^RH6qWD!OEwSAiX{RH_eagqJSpY0>wu*umv5#jyDNq5RGbawnh=wtKv{ih}$oag2y z%U@W%_YYkQzdd;H2kW-}OJWuJ>!*F{foXeb&vj)_LECWg^0#vc2q_eViWe-dEPKlP zo|+zC?Qg_Kxr;1p$eO#;{Fj!4%R`W9_fZx@Zk9P81=fa0FmiSW zPK4%vUN=*~_Ds&~MIihM(=)u2l(DaEL};TgyNR)`^g&xA^6i~8BY%m9*UDh_f(Ldh zmSy-5LJ<%@Fb`Ihp$p zHDB37(mJb;V&pgw(tQsVUZO1CRS$X+F65Q6B=Izu%nJnK^oJrp&Eb za!Q5!Mu^71%&0THkGcgL|jCzSC1Bx;nghV~Zq zPT;MFI|-$m(hWZtt80G#p$v=lFINodUx*}*dae>?YLW>3Nb~Z56zv+;Cu$-PXb|oV}QT=HMreuijyqC0C5K$i`Z5$XLIMk^fgMIoeAW3?aVFc@cwK))#yL3 zF6u{JDS=?-SWnVEt~o&F@8xC2&8N72y~1lF#EnK>8!`@sA;HIu%l2OqGNVr<_meo~ zwa;%?XD0YfBvW?Ihpp!5_Cx0T)17Aa$qrfN&-b+UFDnD}BLC60v<+B2ZOC={#?5A4 zd1#(%3~R*D!p1RJM=a6F`2{+Hh15YpeLOyjg=s#5Msao^RM=0TS_~pQ-$OLlKRuzw zabE;zby8a?)n$xG8ixb>X9Y0Sm2mcN#IXpOE*6yw7n8_PmO<+(mwwvUAG1h$guCD) z_v-NhGdFi*4@X%Yu=gMuqGE6-#%?<1UXilzLk6j^e36ln4{}X!tHM<*RL?q*JT0+x>(;1!bnne7yexJV&vKzAPj7lCO z{oNyi4b`LG>4{LF$bQ8;UK=U_2)%FnVWMo1eeqhtKfd2rEu63H+wf?%UmXo8$mL&a zFox3S?*6b>nTcS2kjRq$^B|ul>wJcMV#s$kTO4WC=^Ns&acIlEe`xWD4LLqaUeO0) zC(#ZO;9WS4ct=j$p2%St&KXFd4 z_3&03mnQeDE%eEKerh17>M{?*+=B34 zdih^HwAjE32caF5udfOSj|0f_4jBp&8z~psp)^Mho1fgCCIj7Y84)Ln^8Eeknq#DU z^Rg(Dze0?xX92fnSBZ9^9s<=?(y9SZX=B8hGs+|UF&BSQ_;YZJ-RhTWcS{Mko(PF1 zPU`+>!p|h*|LMpI7~&rdwpyQTgc(&bE32|lVa!b;HaDWcjtQ*u5K5Zo?hd1HKIoz5 zCmH4ym|@LZ@R%ezL!kZ&w^e8k1AP!~6wT>MYth<|XxWoz^@ z{yFH-ty?|`S1V#c1BB;}=N`MotL@`K`y!H+OXq8VU~n+b8lz=mZbh zx7)$JF|ZZN(7z#2y-z}@Rx(ObELk{s)a}h89?@%`MC?u!;Na!FmG=?eV3Sf?xRt~| z`?rjraVs>}WGM+2(>syaA45sy!?@7#SJ!~g2>Y|GJ^D(PP^NwfrZ+N|-I9*TlMsF+(yq9V1Q z#?8~l)BO)1f0$yeNXBaO(MYF@ZP-ZaaBA_w;%8@Tqe%C13w93zsf+f@ zZ&IKnq?@vgCUN31;+Te9+A4H#`1w%IinAq|fL?YS(dIF$ike^Dlj3s$$73A zySN4?BeQ$)X{0X%Xa|pCW^U_j1Ndi6n@!msZ1IEi&GO})|KXY}4gB5_OGSDFKe&tL z74KD{LL@xOCD6=yrnNxxS{_cpf!$xmGhg$3sb#=vdu;-QbNMd?hl-!;dN{ur3uc|~ ziKU!9W_nJF07c&J#=)N&8ST0pZ%nEd>F!R|zwtu8u2OOvJGjYu_V+}D%V{Q{`|>% zBjJO<#il}$5jxX2xUW2R$MheZx+v-^D7pjZ&BVcW|N8BuL27M z8(&d%3dJ@A_T+N$)vVsdKyNu5#Fa$7@S8Y$1E`{$78Rm19v%7)P}0?vO0lw;(-%x# zY5Yea%8whh*Xch1SQl7xcsXSrm;TFKDb_KsHRQ+}L&beb^w70p@H5rfc69QHhIWFH z6xmDn7(Sk&o}gzaL{vW*ir@wVHS9|s1v~QE`?MfT`QDY46l%ou^x+p4z3K=%K0iii zkXcqIt76sHx)gf30a3k{tEB>e+gs6nfMzd)h%o z=_kE~%<)}|IoevcOID|aZf(el!*sM=VOV43@j*VIyu42lvgfsDH9dm3&GOcqE9zT2 z*k-DnWbffiuPG$RVx<$e`X{9;g8+hYr}YLLHs6Kh%_AcyW*&CC4Q5RgSSf_14w5{I zFgVGxLzMaU`CTNi51nnh!Bx^O%y;G-y%4u;G*~~mKd@A)i0Xxy)dJa8-Ub3FH+wSg zUJFDYC(Sc>qo*l+(Z^{nFZtDP@Mq;IyS~2~O(^~cdwg{>3AXmN(}rn zEGs7GJx>03s;eia|AxVzC&xIsNDREfED`~F;wAtanwG=!zHkGX%N0Rp<75+y#l}$k^2KaP+N|NAByo|kM4>HTypLGt&e2yjsoW0nSy!#Q* z<>Z@@s&;@bl_kcg%kSHhyO+{V5x=)+LCN;YzWlVyyTkp8cSZg-o;8t8@LK zARs3idv`1e49>jy{3AC`?z?(MB$es{fI&@i&)Pb**FP0JcI;gh?M32fd=tkB8BI=< zOIohry|zfH@+V`4TEPqBqiVSN0nDo%hBn%BcReIis#MMz)Phm&?P{OtkDO}Jy54Jd zj_U7rBq0*>GxIcQh}XB@Q%TBv7aodf4~XJ3fpQAoMsd9BUmYtK`&bx;NX5c0Q7rGJ zk4=*K)b*oJ%XHSWb=P|+xU0(k*3ZV-tm&_VZ<-lxHWr^|EeTA?Qnz*<+bMagv}+Z~ zKuT4)#mY8I6-4-dHm)tFpCKxkw#i7%X$eCYpeUcKp4$&HNsn%cMAQAbS2T0pcj~^o zq}zt}H3Lh-T6t92Hv3k2INX>J1TtmSH>-jJ{EO!WU-#xW--J10*h0!CTn# z!p+`AO?PlZTL&L@uj9R-4%7J*Lnu<}%T1a2?7L^qifCOrkh-oPv`x*N#4E7d7%)YD{BH?AG# zRCG$VB@&aNr>=!m_5|FQ#Aw*zY$^bNZ6B*>k`Bjb1VXT6dU5J#Gzf)vWL%bA+jX+! zC}V5E%`z=FszQ%QDtQh3AeSohyM_}_J9LZ(`o*pwr;vVwc3 z3lmN?E6Z={;JXbiV_{RWORYHQGDhPWFs?u+8+UC=$yjL%zj`iINgb4IUOK~Rs?jsY|VJMK~@4^zSyBvwRe-U@i z{R}?z=Z5;7UX8dn5Fu_gv{W#CKb3?rI%Jd3ckyI2pZ!nS4HtI@5#p|Q^45`@I96tz zJSTL3^A&r&$m1SQRZz`77&a*kW*hoH||adIT$m{L`AD0W)58ZGSwVP3rjr+hbEkwdoJ3GNZg2|CHal3QtP88gpiwLStU(=NEATdiQM0<+<7lHhdAG{ zsf#196S~-%K=izbjCuLyfvD`j5NdQhE}8M<@dfooJR;SoHjO#8Y8W1fx3C+sDDo*M zJ_^T!);@9w#Z60!{5x6bf3u-ePlW1;49o2hpb3k}&1W5b_6L^ps57JwqtsxDER)|~ zI#<#`m>HXw3~6h6E=~z^w9ppf8KDq@!k-|JLskcQ4p2?5f9-r+1_F)XmtA8>FYtGJ z8?!!K3!Ml($L^ENaVcLqm#YvHh>GznBTuaagZ}o_X zKrGBHI0ieccte<|K~K8f--GmK=Rdh@_=Dwt`cv0$H(%1;wUr_%6BOJ#DAKIEfHZEbpq2jd zDs#ePdv);?0}`6nr)4q=QG}rbyj5BRw04a6qxUEXdS8JR*&F$*VaCLy=U=oH0WVgu zrJ}#DWmxdS*3bb0$Z$S!w9E#posSs>p<$BZs5XR6_0ai*wXc*|iY1SBhl4 z+HPHu;m?L|bP(~}5sxz{YzS$qAjIjtM3R3ansT{&<)xX;-@{AUj66GCdWILeBvKDM zNvcy+z;DvB{a$%nl8W~Kid4cXI-k`c`d(gKvZj;kfM(+~l z3Y)5a2fyU6%s>?|y}$1*3JL8yxOLovqnKV7ObeM6<5J7|=tc8euvvA!Y9iCp9c5c9 zNcq2bCvwAkf#dxdnLzxExEt*dp$9~Yk0Da?<#UeIn#8yb>t=6b#l z-Wm~f#KIT~v5$Yn+aK8zS%iFkfXHIMmyQN>64jPK5Fwhb_hI-^-+ex;LfjuA4Q{9* zcQ9eC?0XC`^n(>|giSeZaPBG2kDr?BeU#}kA(6Ph(4X+jaNDpCL~5NO@N*O0jo3^5 zzdnSK>G$cMb}0UmoV4}Y5Ft0wiCP-`wlM#iy;ZNclU&7DER{|H)t zibTQpF`8j7l(2W@KIXwf;ksj>e_{YBYA2bAK~hE0N@ezLn) zmp3BQ&I_91b0{#lRmm@A1nzrUoe)L)Q4@kEs~87TL~p$`8}&%7i1J!lW0m~)k{<$( zXlJ3qgaWr7T~;WNa(k%`)0-U+tR-PY`{v=2gktvm;)e3|go5A4d9Fw0H(~^QKSKgw zB){OEp5_;!d+$G>{?IkQy=P;ErCQ04_z!g8Vg58x%07~S6|!IeRqJi0*xrw7q>5{+OaQ3%|ObL30w9;kxW+-%+z zi5=WEkPo7VK(dyb&{f_jeeE56gPflAEo$uP1z2;6p3XhBs@L`1p9|^UgRAMR zzPJ@)uhX8RZttDDwF)lt&Acv78l+-0C5zkO+S#ZcxzECPXe9{6+q`cg6hrg5XU_X7 z(m&2!Oab%gByB4H?%3@ z>dIG5g1g$3bA?VRHT4vu~@lI=~OMvBkj@n9V#M`x~DRk7_B zwMvUNT(Mj^jSf;Bj`!jLm7O^U8bfm3-KE!v>aeH|nEW3Eu@sVEVS1)_r?R-IgE*sx zqKamyz|@^}o!aF&8*OvG%ZSL7fb+(TZW2{&!%#f9NzR`FyqizFf(S>hhp9PH7#So8&pI*+#ZxS6ND|?$z5mC{ZFYd86Q)OirsVOHsA6gwX9x zIZIm#GD{*xOqbO>x`s-_K_5yVNoo!TkE>Km(EuJvxO#!gH>=5mz~8iJ!~ak8*}xWu z;Its=TRvYImPiCjB()L#@7V`um=EH9H~B7IY&Jywv!?WbW4|{kw4-c;#b=I8FsCQ7 z+bEHAEo#7by%TO7E}EI^r5?gMqUKVArJ8_F97vIwValb2HBMBAr`>AUBahaauq*bl zR+{<#>5i-0D$dX#!mN1aq-^UFr_1{bd9RmQ;WmoDw3H%tmkQW6V4iaWUGGv_sp>?+}4W%=k!TJYx=x9S-+3yM>Q(u zR+YkJ!~B(Xh<3kUKeeY$ZG$L z#F9qZE*0iSKZr5Mzu-q8j;&mS9@TJMDIkVML?;&`_vW@L$!deW zSPvhT|Z=+_J~k_;XEa zHpzU=&>v%R3UQq3&)pn*nV~HOk_^y;X(!vr8x+fwst-CdPm{S!PA9N;sTXM@+LXzP z@BOkwL0wGmQC3=%@a!l;Y7NTT*XGl9wXnV0(|LzxdUdU12mCj*FEWSR<_yb8z#qY4 z3X)RC%8kiYY4ygvH8kygs)Ue^P6hyEd^0cHvt5fF-hx5hH$Be{0-6}_Me=WF^dfnd zmnB9w&v}SnlBeq=B6m9P^o2b;IQ83$UY<@%K>!iSb-AaZ9D%ITTk(Jb;|ulR=

    ; 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�FB{n^iXbKKqqx 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�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 z�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]W2 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

    tPN!K=z5~=iBs4P|@)QAUbngFm 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%0A*$d2mnTVOF7$_vEbv* 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 {=s3m}ri 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�eme-rVoplqd!wCl@3DPG4 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%0A97w{tyngAY9Cog6zlq1YCy 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 z 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

    X*(|JnmVewy{bq(SQpCUH{*`0Vngv^ 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

    HhEz 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 z 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 literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/BDIFCALC.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/BDIFCALC.h new file mode 100644 index 0000000..8ecdd38 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/BDIFCALC.h @@ -0,0 +1,276 @@ +// ========================================================================== +// Class Specification : COXBinDiffCalculator +// ========================================================================== + +// Header file : bdifcalc.h + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// YES Derived from CObject + +// NO Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// NO Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Desciption : +// This class can be used to compute the binary differnce between two files +// (the original and the updated file) +// A third file that contains the difference is generated then. +// difference = updated - original +// Using the difference file and the original one, the updated file can be +// computed +// updated = original + difference +// This class can be used by supplying the names of the files directly +// An alternative use is that three CFile-derived objects are created and +// opened and than passed as parameter. This permits other media besides +// disk access (e.g. CMemFile for in-memory computation) + +// Remark: +// The progress of the computation is routed to an object of a COXDiffProgress +// derived object. The default implementation writes to the console +// using cprintf. You can derive a class from COXDiffProgress and override +// the virtual functions Init(), Adjust(), Abort() and Close(). +// The new progreesbar will be used after a call to ReplaceProgressBar() + +// Prerequisites (necessary conditions): +// *** + +///////////////////////////////////////////////////////////////////////////// + +#ifndef __BDIFCALC_H__ +#define __BDIFCALC_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + +// By #defining BDEXTR as 1, a reduced, decode-only version is created +// If BDEXTR is not defined or 0, a complete version is created. +#ifndef BDEXTR +#define BDEXTR 0 +#endif + +class COXDiffProgress; +class COXDiffFileHeader; + +class OX_CLASS_DECL COXBinDiffCalculator : public CObject +{ +DECLARE_DYNAMIC(COXBinDiffCalculator) +// Data members ------------------------------------------------------------- +public: + static const double m_cMinMeanChunkLen; + static const double m_cMaxMeanChunkLen; + static const double m_cBigChunkLen; + static const TCHAR* m_cFileHeader; + static const BOOL m_cDropEOL; + static const DWORD m_cBufSiz; + static const WORD m_cMinMatchLen; + static const WORD m_cMinEqualRunLen; + + static const BYTE m_cTagSmallDiff; + static const BYTE m_cTagMediumDiff; + static const BYTE m_cTagLargeDiff; + static const BYTE m_cTagSmallNearCopy; + static const BYTE m_cTagMediumNearCopy; + static const BYTE m_cTagLargeNearCopy; + static const BYTE m_cTagSmallDistantCopy; + static const BYTE m_cTagMediumDistantCopy; + static const BYTE m_cTagLargeDistantCopy; + static const BYTE m_cTagSmallFarCopy; + static const BYTE m_cTagMediumFarCopy; + static const BYTE m_cTagLargeFarCopy; + static const BYTE m_cTagEOF; + + static const DWORD m_cSmallSize; + static const DWORD m_cMediumSize; + static const DWORD m_cLargeSize; + static const DWORD m_cNearDistance; + static const DWORD m_cDistantDistance; + static const DWORD m_cMaxStrLen; + +protected: +#if ! BDEXTR +// The following structures are not needed in extraction program */ + +// Tree node: has 3 pointers: a pointer to lesser, and greater or equal nodes +// The third pointer is a linked list pointer: the root node of the tree is also +// the head of the linked list. The linked list is not built in a special order: +// nodes are added to it in order of occurence. The tree is a binary tree. + +struct COXTreeNode + { + LONG filPos; + BYTE* bytes; + COXTreeNode* pGE; /* Greater or equal */ + COXTreeNode* pLT; /* Less than */ + COXTreeNode() { bytes = new BYTE[m_cMinMatchLen]; } + ~COXTreeNode() { delete[] bytes; } + }; + +// Match block structure: for each match found between the two files, we +// encode the positions in the two files and the length of the match. + +struct COXMatchBlock + { + LONG len; + LONG orgFilPos; + LONG derivedFilPos; + LONG distance; /* = orgFilPos - derivedFilPos */ + COXMatchBlock* pNxt; + }; + +struct COXByteAttribs + { + DWORD sum; + double sumSquares; + double mean; + double stdDev; + + // ... Last file position where a byte was encountered, for all bytes. + // Initialized to -1 ('before' the first FILE position). + LONG lastPos; + + // ... Count of occurences + LONG cnt; + }; + + COXTreeNode* m_LstFreeTreeNode; + COXMatchBlock* m_LstFreeMatchBlock; + +#endif /* ! BDEXTR */ + + COXDiffProgress* m_pProgressBar; + +private: + +// Member functions --------------------------------------------------------- +public: + COXBinDiffCalculator(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Contructor of object + // It will initialize the internal state + +#if ! BDEXTR + void SubtractFiles(LPCTSTR orgFilNam, LPCTSTR derivedFilNam, LPCTSTR diffFilNam, + COXDiffFileHeader* pHeader = NULL); + // --- In : orgFilNam : Full path of the original file + // derivedFilNam : Full path of the updated file + // diffFilNam : Full path of the difference file + // --- Out : + // --- Returns : + // --- Effect : Calculates the binary differences between the + // original and updated file and writes it + // in the difference file +#endif // ! BDEXTR + + void AddFiles(LPCTSTR orgFilNam, LPCTSTR derivedFilNam, LPCTSTR diffFilNam, + COXDiffFileHeader* pHeader = NULL); + // --- In : orgFilNam : Full path of the original file + // derivedFilNam : Full path of the updated file + // diffFilNam : Full path of the difference file + // --- Out : + // --- Returns : + // --- Effect : Applies the binary difference to the original file + // writes the updated file + +#if ! BDEXTR + virtual void SubtractFiles(CFile* pOrgFil, CFile* pDerivedFil, CFile* pDiffFil, + COXDiffFileHeader* pHeader = NULL); + // --- In : orgFilNam : Pointer to OPENED file (Read) + // derivedFilNam : Pointer to OPENED file (Read) + // diffFilNam : Pointer to OPENED file (Create/Read/Write) + // --- Out : + // --- Returns : + // --- Effect : Calculates the binary differences between the + // original and updated file and writes it + // in the difference file +#endif // ! BDEXTR + + virtual void AddFiles(CFile* pOrgFil, CFile* pDerivedFil, CFile* pDiffFil, + COXDiffFileHeader* pHeader = NULL); + // --- In : orgFilNam : Pointer to OPENED file (Read) + // derivedFilNam : Pointer to OPENED file (Create/Read/Write) + // diffFilNam : Pointer to OPENED file (Read) + // --- Out : + // --- Returns : + // --- Effect : Applies the binary difference to the original file + // writes the updated file + + void ReplaceProgressBar(COXDiffProgress* pProgressBar); + // --- In : pProgressBar : The new progress bar to use + // --- Out : + // --- Returns : + // --- Effect : Replaces the standard progress bar by + // another (COXDiffProgress derived) + // This will be automatically deleted when + // this COXBinDiffCalculator is destructed + +#ifdef _DEBUG + virtual void Dump(CDumpContext&) const; + virtual void AssertValid() const; +#endif //_DEBUG + + virtual ~COXBinDiffCalculator(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of object + +protected: + void CopyFileChars(LONG count, CFile* pInFile, CFile* pOutFile, LONG& sum); + LONG ReadLongNBytes(CFile* pFile,int n); +#if ! BDEXTR + void WriteLongNBytes(LONG x, CFile* pFile,int n); + void ScanFile(CFile* pFile, COXByteAttribs* byteTable); + int FindDelimiter(CFile* pFile, double minMeanChunkLen, double maxMeanChunkLen); + void DeleteTreeNode(COXTreeNode* pTreeNode); + COXTreeNode* NewTreeNode(); + void FreeTreeNode(COXTreeNode* pTreeNode); + int CmpNode(COXTreeNode* pNode1, CFile* pFil1, COXTreeNode* pNode2, + CFile* pFil2, int delim, LONG* pEqualLen); + void FindBestMatch(COXTreeNode* pOrgTreeRoot, + COXTreeNode** ppOrgTreeNode, CFile* pOrgFil, COXTreeNode* pDerivedTreeNode, + CFile* pDerivedFil, int delim, LONG* pMatchLen); + void AddTreeNode(COXTreeNode** ppTreeRoot, CFile* pFile, + int delim, COXTreeNode* pNewNode); + COXTreeNode* BuildTree(CFile* pFile, int delim, LONG& OrgSum); + void ExtendMatch(LONG& OrgFilPos, CFile* pOrgFil, + LONG& DerivedFilPos, CFile* pDerivedFil, LONG& MatchLen); + void DeleteMatchBlocks(COXMatchBlock* pBlock); + COXMatchBlock* NewMatchBlock(void); + void FreeMatchBlock(COXBinDiffCalculator::COXMatchBlock* pMatchBlock); + void AddMatch(COXTreeNode* pOrgTreeNode, + CFile* pOrgFil, COXTreeNode* pDerivedTreeNode, + CFile* pDerivedFil, LONG matchLen, COXMatchBlock** ppMatchLst); + void ShrinkMatchList(COXMatchBlock** ppMatchLst); + COXMatchBlock* MatchFiles(COXTreeNode* pOrgTreeRoot,CFile* pOrgFil, + CFile* pDerivedFil, int delim, LONG& DerivedSum); + void DumpDiff(COXMatchBlock* pMatchLst, CFile* pDerivedFil, CFile* pDiffFil); + +#endif // ! BDEXTR + +private: + +}; + +#endif // __BDIFCALC_H__ +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXBlob.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXBlob.h new file mode 100644 index 0000000..e910c9f --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXBlob.h @@ -0,0 +1,115 @@ +// ========================================================================== +// Class Specification : COXBlob +// ========================================================================== + +// Header file : OXBlob.h + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// YES Derived from CByteArray + +// NO Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// NO Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Desciption : +// This class is an extension of CByteArray and it can by used +// to contain a Binary Large Object + +// Remark: + +// Prerequisites (necessary conditions): + +///////////////////////////////////////////////////////////////////////////// + +#ifndef __OXBLOB_H__ +#define __OXBLOB_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + +#include "OXVariant.h" + + +class OX_CLASS_DECL COXBlob : public CByteArray +{ +DECLARE_DYNAMIC(COXBlob); + +// Data members ------------------------------------------------------------- +public: +protected: + +private: + +// Member functions --------------------------------------------------------- +public: + + // Constructors + COXBlob(); + COXBlob(const COXBlob& blobSrc); + COXBlob(const CByteArray& arrSrc); + COXBlob(const CLongBinary& lbSrc); + + COXBlob(const VARIANT& varSrc); + COXBlob(LPCVARIANT pSrc); + COXBlob(const COleVariant& varSrc); + COXBlob(const COXVariant& varSrc); + + // Assignemnt operators + COXBlob& operator=(const COXBlob& blobSrc); + COXBlob& operator=(const CByteArray& arrSrc); + COXBlob& operator=(const CLongBinary& lbSrc); + + COXBlob& operator=(const VARIANT& varSrc); + COXBlob& operator=(LPCVARIANT pSrc); + COXBlob& operator=(const COleVariant& varSrc); + COXBlob& operator=(const COXVariant& varSrc); + + BOOL ReadRaw(LPCTSTR pszPath); + // --- In : pszPath : The full path specification + // --- Out : + // --- Returns : Whether it succeeded or not + // --- Effect : Reads data from the specified file into this object + + BOOL WriteRaw(LPCTSTR pszPath); + // --- In : pszPath : The full path specification + // --- Out : + // --- Returns : Whether it succeeded or not + // --- Effect : Writes the data of this object to the specified file + + // Destructor + virtual ~COXBlob(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of the object + +protected: + BOOL CopyVariant(LPCVARIANT pSrc); + +private: + +}; + +#include "OXBlob.inl" + +#endif // __OXBLOB_H__ +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXBlob.inl b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXBlob.inl new file mode 100644 index 0000000..5c4ba76 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXBlob.inl @@ -0,0 +1,97 @@ +// ========================================================================== +// Inline Implementation : COXBlob +// ========================================================================== + +// Source file : OXBlob.inl + +// Source : R.Mortelmans +// Creation Date : 7th March 1996 +// Last Modification : 7th March 1996 + +// ////////////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////////////////////////////////// +// Definition of static members + +// Member functions --------------------------------------------------------- +// public: +inline COXBlob::COXBlob() + { + } + +inline COXBlob::COXBlob(const COXBlob& blobSrc) + { + Copy(blobSrc); + } + +inline COXBlob::COXBlob(const CByteArray& arrSrc) + { + Copy(arrSrc); + } + +inline COXBlob::COXBlob(const VARIANT& varSrc) + { + CopyVariant(&varSrc); + } + +inline COXBlob::COXBlob(LPCVARIANT pSrc) + { + CopyVariant(pSrc); + } + +inline COXBlob::COXBlob(const COleVariant& varSrc) + { + CopyVariant(&varSrc); + } + +inline COXBlob::COXBlob(const COXVariant& varSrc) + { + CopyVariant(&varSrc); + } + +inline COXBlob& COXBlob::operator=(const COXBlob& blobSrc) + { + if(this==&blobSrc) + return *this; + Copy(blobSrc); + return *this; + } + +inline COXBlob& COXBlob::operator=(const CByteArray& arrSrc) + { + Copy(arrSrc); + return *this; + } + +inline COXBlob& COXBlob::operator=(const VARIANT& varSrc) + { + CopyVariant(&varSrc); + return *this; + } + +inline COXBlob& COXBlob::operator=(LPCVARIANT pSrc) + { + CopyVariant(pSrc); + return *this; + } + +inline COXBlob& COXBlob::operator=(const COleVariant& varSrc) + { + CopyVariant(&varSrc); + return *this; + } + +inline COXBlob& COXBlob::operator=(const COXVariant& varSrc) + { + CopyVariant(&varSrc); + return *this; + } + +inline COXBlob::~COXBlob() + { + } + +// protected: +// private: + +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXBmpPrv.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXBmpPrv.h new file mode 100644 index 0000000..8552dc3 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXBmpPrv.h @@ -0,0 +1,100 @@ +// ========================================================================== +// Class Specification : COXBmpFileDialog +// ========================================================================== + +// Header file : oxbmpprv.h + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// YES Derived from COXPreviewDialog + +// YES Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// YES Has a message map +// YES Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// YES Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Desciption : +// This class implements the two virtual function of COXPreviewDialog, to display +// BMP/DIB format. + +// Remark: +// + +// Prerequisites (necessary conditions): +// + +///////////////////////////////////////////////////////////////////////////// +#ifndef __BMP_PREVDLG_H__ +#define __BMP_PREVDLG_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + +#include "OXPrvDlg.h" +#include "oxdib.h" + + +class OX_CLASS_DECL COXBmpFileDialog : public COXPreviewDialog +{ +DECLARE_DYNAMIC(COXBmpFileDialog) + +// Data members ------------------------------------------------------------- +public: + +protected: + COXDIB m_dib; + +private: + +// Member functions --------------------------------------------------------- +public: + COXBmpFileDialog(BOOL bOpenFileDialog, // TRUE for FileOpen, FALSE for FileSaveAs + LPCTSTR lpszDefExt = NULL, + LPCTSTR lpszFileName = NULL, + DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, + LPCTSTR lpszFilter = NULL, + CWnd* pParentWnd = NULL); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Contructor of object + + virtual ~COXBmpFileDialog(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of object + +#ifndef WIN32 + int DoModal(); +#endif + + +protected: + virtual void OnNewFileSelect(const CString& sFilename); + virtual void OnPaintPreview(CDC* pDC, const CRect& paintRect); + virtual void OnDoRealizePalette(CWnd* pFocusWnd); + +private: + +}; + +#endif + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCmdLne.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCmdLne.h new file mode 100644 index 0000000..6307d73 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCmdLne.h @@ -0,0 +1,129 @@ +// ========================================================================== +// Class Specification : COXCommandLine +// ========================================================================== + +// Header file : oxcmdlne.h + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// YES Derived from CObject + +// NO Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// Yes Uses exceptions (same as CFile) + +// ////////////////////////////////////////////////////////////////////////// + +// Desciption : +// Tokenizes the commandline string and serves them up one by one for +// COXCommandOptions::ParseCommandLine(). Constructor has two forms, one which +// takes a CStdioFile pointer to support response files to get arround cmd line +// limitations, the other takes a Character pointer. + +// Remark: + +// Prerequisites (necessary conditions): +// *** + +///////////////////////////////////////////////////////////////////////////// + +#ifndef __CMDLINE_H__ +#define __CMDLINE_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + + +class OX_CLASS_DECL COXCommandLine : public CObject +{ +DECLARE_DYNAMIC(COXCommandLine) +// Expands any meta chars (*, ?, etc) (well, one day it will :-) +// for files in the current working directory... + +// Data members ------------------------------------------------------------- +public: + +protected: + CStringArray m_Tokens; + int m_NumTokens; + +private: + +// Member functions --------------------------------------------------------- +public: + COXCommandLine(LPCSTR pszCmdLine); + // --- In : pszCmdLine : the ANSI command line to be tokenized + // --- Out : + // --- Returns : + // --- Effect : Contructor of object + // It will initialize the internal state + +#ifdef WIN32 + COXCommandLine(LPCWSTR pszCmdLine); + // --- In : pszCmdLine : the UNICODE command line to be tokenized + // --- Out : + // --- Returns : + // --- Effect : Contructor of object + // It will initialize the internal state +#endif + + COXCommandLine(CStdioFile* pInfile); + // --- In : pInfile : The file containing a command line + // --- Out : + // --- Returns : + // --- Effect : Contructor of object + // It will initialize the internal state + + inline int GetNumArgs() const; + // --- In : + // --- Out : + // --- Returns : The number of separate command line options in this command line + // --- Effect : + + inline CString operator[] (const int iElem) const; + // --- In : iElem : index of a Command line option + // --- Out : + // --- Returns : a command line option + // --- Effect : + + virtual ~COXCommandLine(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of object + +protected: + +private: + void Tokenize(LPTSTR pszCmdLine); +}; + +inline int COXCommandLine::GetNumArgs() const + { + return m_NumTokens; + } + +inline CString COXCommandLine::operator[] (const int iElem) const + { + ASSERT((iElem >= 0) && (iElem <= m_NumTokens)); + return m_Tokens[iElem]; + } + +#endif +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCmdOpd.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCmdOpd.h new file mode 100644 index 0000000..973a0af --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCmdOpd.h @@ -0,0 +1,262 @@ +// ========================================================================== +// Class Specification : COXCommandOptionDesc +// ========================================================================== + +// Header file : oxcmdopd.h + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// YES Derived from CObject + +// NO Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// Yes Uses exceptions (same as CFile) + +// ////////////////////////////////////////////////////////////////////////// + +// Desciption : +// Contains information about a command option, its full name, abbreviations, +// description, etc. +// For detailed explanation, see constructor with parameters. + +// Remark: +// The option descriptor class, each instance of +// this class represents a valid option to the +// program and some properties about that option. +// Can be used by CmdOptions to produce a +// usage message as well as to parse valid options. +// Example: +// void CMyApp::CreateValidOptions() +// { +// COXCommandOptionDesc codHelp (_T("HELP"), NULL, _T("Prints a help message")); +// COXCommandOptionDesc codRun (_T("RUN"), NULL, _T("Automatically execute a testcase")); +// COXCommandOptionDesc codEmf (_T("EMF"), COD_LASTARG, _T("MetaFile which specified GDI calls to make")); +// COXCommandOptionDesc codVerify(_T("VERIFY"), COD_ARGOK, _T("Verification option")); +// COXCommandOptionDesc codDiff (_T("DIFFERENCE"),COD_FIRSTARG,_T("File to write screen differences to")); +// COXCommandOptionDesc codCmpScr(_T("CMPSCR"), COD_FIRSTARG,_T("File to compare screen to")); +// COXCommandOptionDesc codOutScr(_T("OUTSCR"), COD_FIRSTARG,_T("File to write actual screen to")); +// COXCommandOptionDesc codMask (_T("MASK"), COD_FIRSTARG,_T("File to mask screen differences with")); +// COXCommandOptionDesc codCrc (_T("CRC"), COD_FIRSTARG,_T("File to read/write CRC code from/to")); +// COXCommandOptionDesc codGen (_T("GENERATE"), NULL, _T("Interactive session for generating EMF file")); +// COXCommandOptionDesc codRes (_T("RES"), COD_ARRAY, _T("Resources available")); +// COXCommandOptionDesc codXList (_T("X"), COD_ASSOCARRAY,_T("Variable/Value pairs")); +// } + +// Prerequisites (necessary conditions): +// *** + +///////////////////////////////////////////////////////////////////////////// + +#ifndef __CMDOPTD_H__ +#define __CMDOPTD_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + + +const int COD_ARGOK = 0x1; // Does option take argument? +const int COD_REPEATOK = 0x2; // Is option valid more than once? +const int COD_REP_FIRST = 0x4; // Use first if option is repeated +const int COD_REP_LAST = 0x8; // Use last if option is repeated +const int COD_REP_ARRAY = 0x10; // Build array if option is repeated +const int COD_ASSOCIATIVE = 0x20; // Takes two arguments i.e. /X=variable=value +const int COD_FIRSTARG = COD_ARGOK | COD_REPEATOK | COD_REP_FIRST; +const int COD_LASTARG = COD_ARGOK | COD_REPEATOK | COD_REP_LAST; +const int COD_ARRAY = COD_ARGOK | COD_REPEATOK | COD_REP_ARRAY; +const int COD_ASSOCARRAY = COD_ARGOK | COD_REPEATOK | COD_ASSOCIATIVE; + +// Currently allows for COD_REP_FIRST && COD_REP_LAST, and other nonsense combinations. +// This is not correct so pay attention to which flags you are combining !!!!! + +class OX_CLASS_DECL COXCommandOptionDesc : public CObject +{ +DECLARE_DYNAMIC(COXCommandOptionDesc) + +// Data members ------------------------------------------------------------- +public: + +protected: + CString m_sOptionName; + int m_nFlags; + CString m_sDescription; + CString m_sAbbr; + +private: + +// Member functions --------------------------------------------------------- +public: + COXCommandOptionDesc(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Contructor of object + // It will initialize the internal state + + COXCommandOptionDesc(LPCTSTR psczOptionName, int iFlags, + LPCTSTR psczDescription, LPCTSTR psczAbbr = _T("")); + // --- In : psczOptionName : the name of the option, CASE-INSENSITIVE + // iFlags : the flags of the option + // COD_ARGOK Does option take an argument + // COD_REPEATOK Is option valid morethan once? + // COD_REP_FIRST Use first if option is repeated + // COD_REP_LAST Use last if option is repeated (i.e. /l dir1 /l dir2) + // COD_REP_ARRAY Build array if option is repeated + // COD_ASSOCIATIVE Takes two arguments i.e. /D variable=value or /D variable value + // COD_FIRSTARG Takes an argument, is repeatable, and repeats are ignored + // COD_LASTARG Takes an argument, is repeatable, and repeats are ignored + // COD_ARRAY Takes an argument, is repeatable, builds an array + // (i.e. The INCLUDE option would use this) + // COD_ASSOCARRAY Takes two arguments, is repeatable, builds associative array + // + // psczDescription : the description of the option, for usage messages + // psczAbbr : the abbreviation of the option. + // A DEFINITE abbreviation of the argument, this abbreviation will + // be used unless it conflicts with another option's DEFINITE abbreviation. + // This can be used to have an abbreviation of I for the INCLUDE option, even + // if there is another option which begins with I. + // For all options, any UNIQUE shortening of the option name is acceptable. + // For example, with an option name of INCLUDE, possible abbreviations would + // be I, IN, INC, INCL, INCLU, INCLUD. Which of these possibilities are + // valid, depends on which ones are are unique for a given option set. + // The DEFINITE abbreviation need not be a true abbreviation of the option name. + // For example, an option name EXPORT, could have a DEFINITE abbreviation + // of X even though that is not strictly an abbreviation of the name. + // + // --- Out : + // --- Returns : + // --- Effect : Contructor of object + // It will initialize the internal state + + COXCommandOptionDesc(const COXCommandOptionDesc& OptDescSrc); + // --- In : OptDescSrc : COXCommandOptionDesc object which will be copied + // --- Out : + // --- Returns : + // --- Effect : Copy contruction. + + COXCommandOptionDesc& operator=(const COXCommandOptionDesc& OptDescSrc); + // --- In : OptDescSrc : COXCommandOptionDesc object which will be assign to 'this' COXCommandOptionDesc object + // --- Out: + // --- Returns: + // --- Effect : Assignment operator + + int TakesArg() const; + // --- In : + // --- Out : + // --- Returns : does this option takes arguments or not + // --- Effect : + + int IsRepeatable() const; + // --- In : + // --- Out : + // --- Returns : can this option appear more than once on a command line + // --- Effect : + + int ReturnsFirstRep() const; + // --- In : + // --- Out : + // --- Returns : will only the first occurrence of this option be recorded or not + // --- Effect : + + int ReturnsLastRep() const; + // --- In : + // --- Out : + // --- Returns : will only the last occurrence of this option be recorded or not + // --- Effect : + + int ReturnsArray() const; + // --- In : + // --- Out : + // --- Returns : will the occurrences of this option build an array or not + // --- Effect : + + int ReturnsAssociative() const; + // --- In : + // --- Out : + // --- Returns : will the occurrences of this option build an associative array or not + // --- Effect : + + LPCTSTR GetDescription() const; + // --- In : + // --- Out : + // --- Returns : the description of this option + // --- Effect : + + CString GetOptName() const; + // --- In : + // --- Out : + // --- Returns : the name of this option + // --- Effect : + + CString GetOptAbbr() const; + // --- In : + // --- Out : + // --- Returns : the DEFINITE abbreviation of this option + // --- Effect : + + virtual ~COXCommandOptionDesc(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of object + +private: +}; + +inline int COXCommandOptionDesc::TakesArg() const + { + return m_nFlags & COD_ARGOK; + } + +inline int COXCommandOptionDesc::IsRepeatable() const + { + return m_nFlags & COD_REPEATOK; + } +inline int COXCommandOptionDesc::ReturnsFirstRep() const + { + return m_nFlags & COD_REP_FIRST; + } +inline int COXCommandOptionDesc::ReturnsLastRep() const + { + return m_nFlags & COD_REP_LAST; + } +inline int COXCommandOptionDesc::ReturnsArray() const + { + return m_nFlags & COD_REP_ARRAY; + } +inline int COXCommandOptionDesc::ReturnsAssociative() const + { + return m_nFlags & COD_ASSOCIATIVE; + } +inline LPCTSTR COXCommandOptionDesc::GetDescription() const + { + return m_sDescription; + } + +inline CString COXCommandOptionDesc::GetOptName() const + { + return m_sOptionName; + } + +inline CString COXCommandOptionDesc::GetOptAbbr() const + { + return m_sAbbr; + } + +#endif +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCmdOpt.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCmdOpt.h new file mode 100644 index 0000000..d181dab --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCmdOpt.h @@ -0,0 +1,200 @@ +// ========================================================================== +// Class Specification : COXCommandOptions +// ========================================================================== + +// Header file : oxcmdopt.h + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// YES Derived from CObject + +// NO Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// Yes Uses exceptions (same as CFile) + +// ////////////////////////////////////////////////////////////////////////// + +// Desciption : +// Parses the command line options and +// answers questions about what was requested. +// This is the 'workhorse' of the whole thing, contains the list of valid options, the map of +// abbreviations to options, and the values of arguments to the options. + +// Remark: + +// Prerequisites (necessary conditions): +// *** + +///////////////////////////////////////////////////////////////////////////// + +#ifndef __CMDOPT_H__ +#define __CMDOPT_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + +#include "OXCmdOpD.h" +#include "OXCmdLne.h" + + +class OX_CLASS_DECL COXCommandOptions : public CObject +{ +DECLARE_DYNAMIC(COXCommandOptions) + +// Data members ------------------------------------------------------------- +public: + +protected: + CObArray m_CmdOptDescList; // Descriptions of possible command line switches + + CMapStringToOb m_AbbrMap; // Points abbreviations to objects + + CMapStringToOb m_Values; // Points to actual values from user + // -RUN is stored as Values[RUN] = 1 + // -EMF=foobar is stored as Values[EMF] = foobar.emf + // -RES=disk -RES=tape is stored as Values[RES] = "disk\ntape" + // -x a=b is stored as Values[x] = "a=b" + +private: + +// Member functions --------------------------------------------------------- +public: + COXCommandOptions(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Contructor of object + // It will initialize the internal state + + void Add(COXCommandOptionDesc* pOptionDesc); + // --- In : OptionDesc : An Option Description + // --- Out : + // --- Returns : + // --- Effect : Add the Option Description to the array + // You need not to worry about Option descriptions + // going out of scope because they are copied internally + // before being added to an option description array. + + void Add(LPCTSTR psczOptionName, int iFlags, + LPCTSTR psczDescription, LPCTSTR psczsAbbr = _T("")); + // --- In : psczOptionName : the name of the option, CASE-INSENSITIVE + // iFlags : the flags of the option + // COD_ARGOK Does option take an argument + // COD_REPEATOK Is option valid morethan once? + // COD_REP_FIRST Use first if option is repeated + // COD_REP_LAST Use last if option is repeated (i.e. /l dir1 /l dir2) + // COD_REP_ARRAY Build array if option is repeated + // COD_ASSOCIATIVE Takes two arguments i.e. /D variable=value or /D variable value + // COD_FIRSTARG Takes an argument, is repeatable, and repeats are ignored + // COD_LASTARG Takes an argument, is repeatable, and repeats are ignored + // COD_ARRAY Takes an argument, is repeatable, builds an array + // (i.e. The INCLUDE option would use this) + // COD_ASSOCARRAY Takes two arguments, is repeatable, builds associative array + // + // psczDescription : the description of the option, for usage messages + // psczAbbr : the abbreviation of the option. + // A DEFINITE abbreviation of the argument, this abbreviation will + // be used unless it conflicts with another option's DEFINITE abbreviation. + // This can be used to have an abbreviation of I for the INCLUDE option, even + // if there is another option which begins with I. + // For all options, any UNIQUE shortening of the option name is acceptable. + // For example, with an option name of INCLUDE, possible abbreviations would + // be I, IN, INC, INCL, INCLU, INCLUD. Which of these possibilities are + // valid, depends on which ones are are unique for a given option set. + // The DEFINITE abbreviation need not be a true abbreviation of the option name. + // For example, an option name EXPORT, could have a DEFINITE abbreviation + // of X even though that is not strictly an abbreviation of the name. + // + // --- Out : + // --- Returns : + // --- Effect : Add the Option Description to the array + + BOOL Remove(LPCTSTR pszcOption); + // --- In : pszcOption : the option to delete + // --- Out : + // --- Returns : succeeded or not + // --- Effect : Removes this option from all internal lists + + CString ParseCmdLine(COXCommandLine& cl, CStringList* pRestList = NULL); + // --- In : cl : the Command line object to parse + // pRestList : when provided will contain the strings on the command line + // that aren't flags. Is actually the same as the return string + // except that the separate parts are stored in a Stringlist. + // --- Out : + // --- Returns : Anything left over on the command line after parsing the valid options + // --- Effect : Construct array of actual parameters based on command line object + // Can throw an COXCommandLineException + + const COXCommandOptionDesc* GetOptionObject(LPCTSTR psczOption) const; + // --- In : psczOption : the name of the option + // --- Out : + // --- Returns : the option object with pszcOption as NAME. NULL if not found. + // --- Effect : + + BOOL IsEnabled(LPCTSTR psczOption) const; + // --- In : + // --- Out : + // --- Returns : Did the option appeared on the command line or not + // --- Effect : It works for any of the argument forms + + CString GetValue(LPCTSTR psczOption) const; + // --- In : + // --- Out : + // --- Returns : The argument associated with the option + // --- Effect : It is used with single-occurrence, single-argument options + + const CStringList* GetValues(LPCTSTR psczOption) const; + // --- In : + // --- Out : + // --- Returns : The list of arguments associated with the option + // --- Effect : It is used with single-argument, multiple-occurrence options + + const CMapStringToString* GetAssocPairs(LPCTSTR psczOption) const; + // --- In : + // --- Out : + // --- Returns : The list of combined arguments associated with the option + // --- Effect : It is used with options that take two arguments, the first being + // a key name, the second the value of of the key. This is useful + // for options that set variables like -Dfoo=bar in a compiler + + CString Usage(LPCTSTR psczMsg) const; + // --- In : + // --- Out : + // --- Returns : + // --- Effect : prints usage message if StdHandles are available + + virtual ~COXCommandOptions(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of object + +protected: + // Construct abbreviation map from given OptionDesc's + void BuildAbbrTable(); + + // Reset contents of all maps and lists. Called by destructor + void ResetMaps(); + +private: + +}; + +#endif +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCmdlEx.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCmdlEx.h new file mode 100644 index 0000000..3b732f1 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCmdlEx.h @@ -0,0 +1,96 @@ +// ========================================================================== +// Class Specification : COXCommandLineException +// ========================================================================== + +// Header file : oxcmdlex.h + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// YES Derived from CException + +// NO Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// NO Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Desciption : +// This class encapsulates a new exception for Command line parsing + +// Remark: +// + +// Prerequisites (necessary conditions): +// + +///////////////////////////////////////////////////////////////////////////// +#ifndef __CMDLEXCEPTION_H__ +#define __CMDLEXCEPTION_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + + +class COXCommandOptions; + +class OX_CLASS_DECL COXCommandLineException : public CException +{ +DECLARE_DYNAMIC(COXCommandLineException) + +// Data members ------------------------------------------------------------- +public: + +protected: + CString m_sErrMsg; + +private: + +// Member functions --------------------------------------------------------- +public: + COXCommandLineException(LPCTSTR pszcError, COXCommandOptions* pCmdOpt = NULL); + // --- In : pszcError : the actual Errormessage + // pCmdOpt : the command option object that parses the command line. + // --- Out : + // --- Returns : + // --- Effect : Contructor of object + // It will initialize the internal state + // This constructor will expand the error message with some + // extra information concerning the command line being parsed + + virtual BOOL GetErrorMessage(LPTSTR lpszError, UINT nMaxError, UINT* pnHelpContext = NULL ); + // --- In : see CException::GetErrorMessage() + // --- Out : + // --- Returns : TRUE if string available, otherwise FALSE + // --- Effect : retrieves the error string if available + + BOOL WriteToStdErr(); + // --- In : + // --- Out : + // --- Returns : TRUE if write was successful, otherwise FALSE + // --- Effect : Writes the error message to the STDERR (for use in CONSOLE programs) + + +protected: + +private: + +}; + +#endif +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCommMsg.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCommMsg.h new file mode 100644 index 0000000..e24c497 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCommMsg.h @@ -0,0 +1,142 @@ +// ========================================================================== +// Class Specification : COXCommMsg +// ========================================================================== + +// Header file : OXCommMSg.h + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// YES Derived from CArray + +// NO Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// NO Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Desciption : +// This class encapsulates strict typed data +// It is an array of OLE variants. +// It can be used to communicate data together with the type + +// Remark: + +// Prerequisites (necessary conditions): + +///////////////////////////////////////////////////////////////////////////// + +#ifndef __OXCOMMMSG_H__ +#define __OXCOMMMSG_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + +#include +#include "OXVariant.h" + + +class OX_CLASS_DECL COXCommMsg : public CArray +{ +DECLARE_DYNAMIC(COXCommMsg) +// Data members ------------------------------------------------------------- +public: + // Possible types + enum EOXArgumentTypes // ID bytes C-type member name + { + ATEmpty = VT_EMPTY, // (0) 0 - - + ATNull = VT_NULL, // (1) 0 - - + ATBool = VT_BOOL, // (11) 2 VARIANT_BOOL bool + ATUI1 = VT_UI1, // (17) 1 unsigned char bVal + ATI2 = VT_I2, // (2) 2 short iVal + ATI4 = VT_I4, // (3) 4 long lVal + ATCy = VT_CY, // (6) 8 CY cyVal + ATR4 = VT_R4, // (4) 4 float fltVal + ATR8 = VT_R8, // (5) 8 double dblVal + ATStr = VT_BSTR, // (8) 4+len BSTR bstrVal + ATDate = VT_DATE, // (7) 8 DATE date + ATError = VT_ERROR, // (10) 4 SCODE scode + ATBlob = VT_UI1 | VT_ARRAY + // (8209)4+len - - + }; + + // Total number of types + enum + { + m_nArgumentTypesCount = 13 + }; + // Array containing all the types + static EOXArgumentTypes m_types[m_nArgumentTypesCount]; + static LPCTSTR m_typeNames[m_nArgumentTypesCount]; + +protected: + static WORD m_nMagicNumber; + static WORD m_nVariantType; + +private: + +// Member functions --------------------------------------------------------- +public: + + COXCommMsg(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Constructs the object + + virtual void Serialize(CArchive& ar); + // --- In : ar : Archive used in serialization + // --- Out : + // --- Returns : + // --- Effect : Serializes the object + +#ifdef _DEBUG + virtual void AssertValid() const; + // --- In : + // --- Out : + // --- Returns : + // --- Effect : AssertValid performs a validity check on this object + // by checking its internal state. + // In the Debug version of the library, AssertValid may assert and + // thus terminate the program. + + virtual void Dump(CDumpContext& dc) const; + // --- In : dc : The diagnostic dump context for dumping, usually afxDump. + // --- Out : + // --- Returns : + // --- Effect : Dumps the contents of the object to a CDumpContext object. + // It provides diagnostic services for yourself and + // other users of your class. + // Note The Dump function does not print a newline character + // at the end of its output. +#endif + + virtual ~COXCommMsg(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of the object + +protected: + +private: + +}; + +#endif // __OXCOMMMSG_H__ +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCommon.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCommon.h new file mode 100644 index 0000000..b7d587a --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCommon.h @@ -0,0 +1,31 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by OXCommon.rc +// +#define psh14 0x040d +#define chx1 0x0410 +#define stc1 0x0440 +#define stc2 0x0441 +#define stc3 0x0442 +#define stc4 0x0443 +#define stc32 0x045f +#define lst1 0x0460 +#define lst2 0x0461 +#define cmb1 0x0470 +#define cmb2 0x0471 +#define edt1 0x0480 +#define IDC_PREVIEW_WND 23080 +#define IDC_PREVIEW_FRAME 23081 +#define IDC_PREVIEW 23082 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_3D_CONTROLS 1 +#define _APS_NEXT_RESOURCE_VALUE 23083 +#define _APS_NEXT_COMMAND_VALUE 53080 +#define _APS_NEXT_CONTROL_VALUE 23080 +#define _APS_NEXT_SYMED_VALUE 23080 +#endif +#endif diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCommon.rc b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCommon.rc new file mode 100644 index 0000000..3d54756 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCommon.rc @@ -0,0 +1,118 @@ +//Microsoft Developer Studio generated resource script. +// +#include "OXCommon.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "OXCommon.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +PREVIEWFILEOPEN DIALOG DISCARDABLE 36, 24, 279, 132 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Open" +FONT 8, "Helv" +BEGIN + LTEXT "File &Name:",stc3,6,6,76,10 + EDITTEXT edt1,6,16,90,12,ES_LOWERCASE | ES_AUTOHSCROLL | + ES_OEMCONVERT + LISTBOX lst1,6,32,90,68,LBS_SORT | LBS_OWNERDRAWFIXED | + LBS_HASSTRINGS | LBS_EXTENDEDSEL | LBS_DISABLENOSCROLL | + WS_VSCROLL | WS_TABSTOP + LTEXT "&Directories:",IDC_STATIC,110,6,92,9 + LTEXT "",stc1,110,16,92,9,SS_NOPREFIX + LISTBOX lst2,110,32,92,68,LBS_SORT | LBS_OWNERDRAWFIXED | + LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_VSCROLL | + WS_TABSTOP + LTEXT "List Files of &Type:",stc2,6,102,90,9 + COMBOBOX cmb1,6,112,90,36,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | + WS_BORDER | WS_VSCROLL | WS_TABSTOP + LTEXT "Dri&ves:",stc4,110,102,92,9 + COMBOBOX cmb2,110,112,92,68,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | + CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | + WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "OK",IDOK,213,2,50,13,WS_GROUP + PUSHBUTTON "Cancel",IDCANCEL,213,16,50,13,WS_GROUP + PUSHBUTTON "&Help",1038,159,95,6,6,WS_GROUP + PUSHBUTTON "Net&work...",psh14,213,112,50,13,WS_GROUP + CONTROL "&Read Only",chx1,"Button",BS_AUTOCHECKBOX | WS_GROUP | + WS_TABSTOP,176,94,8,8 + CONTROL "&Preview",IDC_PREVIEW,"Button",BS_AUTOCHECKBOX | + WS_GROUP | WS_TABSTOP,213,101,50,11 + GROUPBOX "",IDC_PREVIEW_FRAME,212,28,59,68 + CONTROL "",IDC_PREVIEW_WND,"Button",BS_OWNERDRAW | WS_TABSTOP, + 213,34,56,61 +END + +PREVIEWFILEOPEN95 DIALOG DISCARDABLE 36, 24, 353, 152 +STYLE DS_MODALFRAME | DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | + WS_CLIPSIBLINGS +FONT 8, "Helv" +BEGIN + LTEXT "",stc32,5,9,266,123 + CONTROL "&Preview",IDC_PREVIEW,"Button",BS_AUTOCHECKBOX | + WS_GROUP | WS_TABSTOP,283,98,50,11 + GROUPBOX "",IDC_PREVIEW_FRAME,281,25,60,68 + CONTROL "",IDC_PREVIEW_WND,"Button",BS_OWNERDRAW | WS_TABSTOP, + 283,31,56,61 +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCommunicator.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCommunicator.h new file mode 100644 index 0000000..ed644cd --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXCommunicator.h @@ -0,0 +1,328 @@ +// ========================================================================== +// Class Specification : COXCommunicator +// ========================================================================== + +// Header file : OXCommunicator.h + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// YES Derived from CSocket + +// NO Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// NO Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Desciption : +// This class can be used to create a client server communication +// using WinSockets. +// This class can be used as a client that will connect to a server +// This is much like the base class CSocket +// * Initialize(nTimeOut, pCancelWnd) +// * Create() +// * Connect(sRemoteAddress, nRemotePort) +// When you use this class as a server that listens to multiple clients +// a socket for each client connection will be created. +// * Initialize(nTimeOut, pCancelWnd) +// * Create(nServerPort) +// * Listen() +// Yo end a communication, just call +// * Close() +// To simplify the communications two archives are available, +// one for reading and one for writing +// * GetInStream() +// * GetOutStream() + +// All client connections are also COXCommunicator objects +// They will be created automatically when a server gets a request +// from a new client. They can be address by a handle HCLIENT_COMMUNICATOR + +// All callbacks are virtual functions of this class + + +// Remark: +// This type of communication will block like a socket +// This means that during Send() and Receive() the entire thread will block +// until the function completes +// There are three exceptions to this rule : +// 1) A timer can be specified. When the time out is reached +// the blocking operation will be cancelled +// 2) Tou can specify a cancel window. All the messages for this +// window and its children will still be dispatched +// 3) WM_PAINT messages will still be dispatched + +// While a communicator is blocking, it may not start a new operation +// Such a recursive call could occur when the cancel window would +// initiate a new operation. So be sure to avoid this situation + + +// Prerequisites (necessary conditions): + +///////////////////////////////////////////////////////////////////////////// + +#ifndef __OXCOMMUNICATOR_H__ +#define __OXCOMMUNICATOR_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + +#include + +#define HCLIENT_COMMUNICATOR long + + +class OX_CLASS_DECL COXCommunicator : public CSocket +{ +DECLARE_DYNAMIC(COXCommunicator) + +// Data members ------------------------------------------------------------- +public: + +protected: + COXCommunicator* m_pMasterCommunicator; + CMap m_connections; + CSocketFile* m_pFile; + CArchive* m_pInStream; + CArchive* m_pOutStream; + HWND m_hCancelWindow; + UINT m_nTimeOut; + UINT m_nTimerID; + UINT m_nStreamBufferSize; + + static HCLIENT_COMMUNICATOR m_nLastUsedHandle; + static CMap m_TimerToCommunicator; + +private: + +// Member functions --------------------------------------------------------- +public: + + COXCommunicator(UINT nStreamBufferSize = 4096, COXCommunicator* pMasterCommunicator = NULL); + // --- In : nStreamBufferSize : The size of the buffer used for the input and output stream + // If you intend to use very large objects, increase the buffer size + // pMasterCommunicator : The master communicator to notify + // This parameter is only used for client connections + // and should always by NULL + // --- Out : + // --- Returns : + // --- Effect : Constructs the object + + HCLIENT_COMMUNICATOR GetClientHandle(COXCommunicator* pClientCommunicator); + // --- In : pClientCommunicator : The client communicator which handle is requested + // --- Out : + // --- Returns : The handle of the specified communicator (or NULL when not found) + // --- Effect : + + COXCommunicator* GetClientCommunicator(HCLIENT_COMMUNICATOR hClient); + // --- In : hClient : The client communicator handle which object is requested + // --- Out : + // --- Returns : A pointer to the specified communicator (or NULL when not found) + // --- Effect : + + void Initialize(UINT uTimeOut = 10000, CWnd* pCancelWnd = NULL); + // --- In : uTimeOut : Time out value in milli seconds + // pCancelWnd : Pointer to the cancel window + // --- Out : + // --- Returns : + // --- Effect : Initializes the communicator + + void SetCancelWindow(CWnd* pCancelWnd); + // --- In : pCancelWnd : Pointer to the cancel window + // --- Out : + // --- Returns : + // --- Effect : Sets a new cancel window + + void SetTimeOut(UINT uTimeOut); + // --- In : uTimeOut : Time out value in milli seconds + // --- Out : + // --- Returns : + // --- Effect : Sets a new timeout value + + BOOL IsOpen(); + // --- In : + // --- Out : + // --- Returns : Whether a valid socket is associated with this communicator + // --- Effect : + + BOOL IsListening(); + // --- In : + // --- Out : + // --- Returns : Whether this communicator is listening + // --- Effect : + + BOOL IsBlocking(); + // --- In : + // --- Out : + // --- Returns : Whether this communicator is blocking on an operation + // --- Effect : + + BOOL AreAnyBlocking(); + // --- In : + // --- Out : + // --- Returns : Whether this communicator or any client communicators + // are blocking on an operation + // --- Effect : + + void CancelAllBlockingCalls(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Cancels the blocking call of this communicator and all the + // client communicators + + DWORD GetMaxReadable(); + // --- In : + // --- Out : + // --- Returns : Determine the maximum number of bytes that can be read with + // one Receive() call. + // This is normally the same as the total amount of data queued + // --- Effect : + + CArchive* GetInStream(); + // --- In : + // --- Out : + // --- Returns : The input stream of which may be read + // --- Effect : The communicator must be open + // Use IsBufferEmpty() to see whether data is still waiting + + CArchive* GetOutStream(); + // --- In : + // --- Out : + // --- Returns : The output stream to which may be written + // --- Effect : The communicator must be open + + // Notifications of a client communicator + virtual void OnClientCreate(HCLIENT_COMMUNICATOR hClient, COXCommunicator* pClientCommunicator); + // --- In : hClient : The handle of the client communicator + // pClientCommunicator : A pointer to the client communicator + // nErrorCode : The most recent error code of the communicator + // --- Out : + // --- Returns : + // --- Effect : Notifies that a new client communicator has been created + + virtual void OnClientReceive(HCLIENT_COMMUNICATOR hClient, COXCommunicator* pClientCommunicator, DWORD nSize, int nErrorCode); + // --- In : hClient : The handle of the client communicator + // pClientCommunicator : A pointer to the client communicator + // nSize : The number of bytes that can be read in one Receive() + // nErrorCode : The most recent error code of the communicator + // --- Out : + // --- Returns : + // --- Effect : Notifies that the specified client communicator has received data + // which can be read using the input stream of the communicator + + virtual void OnClientClose(HCLIENT_COMMUNICATOR hClient, COXCommunicator* pClientCommunicator, int nErrorCode); + // --- In : hClient : The handle of the client communicator + // pClientCommunicator : A pointer to the client communicator + // nErrorCode : The most recent error code of the communicator + // --- Out : + // --- Returns : + // --- Effect : Notifies that the specified client communicator has closed + + virtual void OnClientDestroy(HCLIENT_COMMUNICATOR hClient, COXCommunicator* pClientCommunicator); + // --- In : hClient : The handle of the client communicator + // pClientCommunicator : A pointer to the client communicator + // nErrorCode : The most recent error code of the communicator + // --- Out : + // --- Returns : + // --- Effect : Notifies that an existent client communicator will be destroyed + + // Notifications of this communicator + virtual void OnServerReceive(DWORD nSize, int nErrorCode); + // --- In : nSize : The number of bytes that can be read in one Receive() + // nErrorCode : The most recent error code of the communicator + // --- Out : + // --- Returns : + // --- Effect : Notifies that this communicator has received data + // which can be read using the input stream + + virtual void OnServerClose(int nErrorCode); + // --- In : nErrorCode : The most recent error code of the communicator + // --- Out : + // --- Returns : + // --- Effect : Notifies that this communicator has closed + + // The following functions have the save effect as those of the base class CSocket + // with the additional features of a timeout value and a cancel window + virtual BOOL Accept(CAsyncSocket& rConnectedSocket, + SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL); + virtual int Receive(void* lpBuf, int nBufLen, int nFlags = 0); + virtual int Send(const void* lpBuf, int nBufLen, int nFlags = 0); + virtual void Close(); + + virtual BOOL OnMessagePending(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Overrides the base class implementation to add additional features + +#ifdef _DEBUG + virtual void AssertValid() const; + // --- In : + // --- Out : + // --- Returns : + // --- Effect : AssertValid performs a validity check on this object + // by checking its internal state. + // In the Debug version of the library, AssertValid may assert and + // thus terminate the program. + + virtual void Dump(CDumpContext& dc) const; + // --- In : dc : The diagnostic dump context for dumping, usually afxDump. + // --- Out : + // --- Returns : + // --- Effect : Dumps the contents of the object to a CDumpContext object. + // It provides diagnostic services for yourself and + // other users of your class. + // Note The Dump function does not print a newline character + // at the end of its output. +#endif + + virtual ~COXCommunicator(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of the object + +protected: + virtual void OnAccept(int nErrorCode); + virtual void OnReceive(int nErrorCode); + virtual void OnClose(int nErrorCode); + + void OnNotifyReceive(COXCommunicator* pClientCommunicator, DWORD nSize, int nErrorCode); + void OnNotifyClose(COXCommunicator* pClientCommunicator, int nErrorCode); + void OnNotifyKill(COXCommunicator* pClientCommunicator, int nErrorCode); + + void CreateTimer(); + void CloseTimer(); + static UINT StartTimer(COXCommunicator* pCommunicator, UINT nTimeOut); + static void StopTimer(UINT nTimerID); + static void CALLBACK TimerProc(HWND hWnd, UINT nMsg, UINT nTimerID, DWORD dwTime); + + virtual BOOL ConnectHelper(const SOCKADDR* lpSockAddr, int nSockAddrLen); + virtual int ReceiveFromHelper(void* lpBuf, int nBufLen, + SOCKADDR* lpSockAddr, int* lpSockAddrLen, int nFlags); + virtual int SendToHelper(const void* lpBuf, int nBufLen, + const SOCKADDR* lpSockAddr, int nSockAddrLen, int nFlags); + +private: + +}; + +#endif // __OXCOMMUNICATOR_H__ +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXDFlHdr.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXDFlHdr.h new file mode 100644 index 0000000..c6ab5ad --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXDFlHdr.h @@ -0,0 +1,135 @@ +// ========================================================================== +// Class Specification : COXDiffFileHeader +// ========================================================================== + +// Header file : OXDFlHdr.h + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// YES Derived from CObject + +// NO Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// NO Has a message map +// NO Needs a resource (template) + +// YES Persistent objects (saveable on disk) +// YES Uses exceptions +// Throws CArchiveException::badSchema : Incorrect file type +// Verion incorrect +// CArchiveException::badClass : Value of object out of range +// Passes through CArchiveException +// CFileException +// CMemoryException + +// ////////////////////////////////////////////////////////////////////////// + +// Desciption : +// This class encapsulates the header of a binary difference file + +// Remark: +// + +// Prerequisites (necessary conditions): +// + +///////////////////////////////////////////////////////////////////////////// +#ifndef __DIFF_HEADER_H__ +#define __DIFF_HEADER_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + + +class OX_CLASS_DECL COXDiffFileHeader : public CObject +{ +DECLARE_DYNAMIC(COXDiffFileHeader) + +// Data members ------------------------------------------------------------- +public: + +protected: + CString m_sSignText; + +private: + +// Member functions --------------------------------------------------------- +public: + COXDiffFileHeader(CString sSignature); + // --- In : sSignature : Signature of object + // --- Out : + // --- Returns : + // --- Effect : Contructor of object + // It will initialize the internal state + + CString GetSignature() const; + // --- In : + // --- Out : + // --- Returns : the signature of the file that was read from disk + // Identifies a file as one of this category + // --- Effect : + + virtual void ReadHeader(CFile* pFile); + // --- In : pFile : pointer to file + // --- Out : + // --- Returns : + // --- Effect : Reads the object (header) from the file + + virtual void WriteHeader(CFile* pFile); + // --- In : pFile : pointer to file + // --- Out : + // --- Returns : + // --- Effect : Writes the object (header) to the file + + virtual void Serialize(CArchive& ar); + // --- In : ar : archive + // --- Out : + // --- Returns : + // --- Effect : Reads or writes the object (header and/or data) to the archive + + COXDiffFileHeader(const COXDiffFileHeader& HdrSrc); + // --- In : HdrSrc : Header object which will be copied + // --- Out : + // --- Returns : + // --- Effect : Copy contruction. + // Notice that global memory will be copied + + COXDiffFileHeader& operator=(const COXDiffFileHeader& HdrSrc); + // --- In : HdrSrc : Header object which will be assign to 'this' Header object + // --- Out: + // --- Returns: + // --- Effect : Assignment operator + +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + + virtual ~COXDiffFileHeader(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of object + +protected: + virtual void Read(CArchive& ar, BOOL bReportLogicalErrors = TRUE); + virtual void Write(CArchive& ar); + +private: + +}; + +#endif +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXDispatchMarshaller.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXDispatchMarshaller.h new file mode 100644 index 0000000..0593544 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXDispatchMarshaller.h @@ -0,0 +1,104 @@ +// ========================================================================== +// Class Specification : COXDispatchMarshaller +// ========================================================================== + +// Header file : OXDispatchMarshaller.h + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) + +// NO Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// YES Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Description : +// Encapsulation of a IStream object used for marshalling between thread. +// + +// Remark: +// + +// Prerequisites (necessary conditions): +// + +///////////////////////////////////////////////////////////////////////////// + +#ifndef __OXDISPATCHMARSHALLER_H__ +#define __OXDISPATCHMARSHALLER_H__ + + +///////////////////////////////////////////////////////////////////////////// +// COXDispatchMarshaller definition + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + + +class OX_CLASS_DECL COXDispatchMarshaller +{ +// Data Members +public: + +protected: + LPSTREAM m_pStream; // A IStream object used for marshalling between thread (appartements) + HANDLE m_hMutexEvent; // Mutex for synchronisation of Marshall and Unmarshall. + +private: + +// Member Functions +public: + COXDispatchMarshaller(); + // --- In : none + // --- Out : none + // --- Returns : + // --- Effect : constructs the object ans allocates memory for the Stream + + virtual ~COXDispatchMarshaller(); + // --- In : none + // --- Out : none + // --- Returns : + // --- Effect : destructs the object ans releases the Stream + + HRESULT Marshal(IDispatch* pDisp); + // --- In : pDisp: the dispatch object that needs to be marshalled between to threads + // --- Out : none + // --- Returns : the result of the marshalling + // --- Effect : calls internally CoMarshalInterface (see DSK Ref. for return values) + + HRESULT Unmarshal(void** pDisp); + // --- In : none + // --- Out : none + // --- Returns : the result of the Unmarshalling + // --- Effect : calls internally CoUnmarshalInterface (see DSK Ref. for return values) + + BOOL CheckStream(); + // --- In : none + // --- Out : none + // --- Returns : If the internal stream pointer is created successfully + // --- Effect : + +protected: + +private: + +}; + +#endif //__OXDISPATCHMARSHALLER_H__ \ No newline at end of file diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXFinalReleaseWnd.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXFinalReleaseWnd.h new file mode 100644 index 0000000..0da8b4b --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXFinalReleaseWnd.h @@ -0,0 +1,102 @@ +// ========================================================================== +// Class Specification : COXFinalReleaseWnd +// ========================================================================== + +// Header file : OXFinalReleaseWnd.h + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) + +// YES Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// YES Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Description : +// This object serves as a message sink for the COXOwnThread object +// It's important that the COXOwnThread object is deleted by the same +// thread that instantiation ed the object (the Owner thread). +// The OnFinalRelease function of COXOwnThread will check which thread +// (Owner or Own thread) tries to delete the object. If it is the Own +// thread, a message is send to this object (which is a data member of +// the COWOwnThread object). Because this object is a window created by +// the Owner thread, the message will be handled by the Owner thread and +// consequently the COXOwnThread object can be safely destroyed from here. + +// Remark: +// + +// Prerequisites (necessary conditions): +// + +///////////////////////////////////////////////////////////////////////////// + +#ifndef __OXFINALERELEASEWND_H__ +#define __OXFINALERELEASEWND_H__ + + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + +#define WMOX_FINAL_RELEASE WM_USER+1 + + +class COXOwnThread; + +class OX_CLASS_DECL COXFinalReleaseWnd : public CWnd +{ +// Data Members +public: + +protected: + static CString m_sClassName; // the class name used for registration + COXOwnThread* m_pOwnThread; // a pointer to the parent object + // initialized by constructor + +private: + +// Member Functions +public: + COXFinalReleaseWnd(COXOwnThread* pOwnThread); + // --- In : pOwnThread: a pointer to the parent object COXOwnThread + // so that we can delete the parent from within this object + // --- Out : none + // --- Returns : + // --- Effect : Constructs the object + + virtual ~COXFinalReleaseWnd(); + // --- In : none + // --- Out : none + // --- Returns : + // --- Effect : Destructs the object + +protected: + afx_msg LONG OnObjectFinalRelease(UINT, LONG); + + DECLARE_MESSAGE_MAP() + +private: + +}; + +#endif //__OXFINALERELEASEWND_H__ + + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXMetafileViewer.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXMetafileViewer.h new file mode 100644 index 0000000..c32ef29 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXMetafileViewer.h @@ -0,0 +1,72 @@ +#if !defined(_OXMETAFILEVIEWER_H__) +#define _OXMETAFILEVIEWER_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + +// OXMetafileViewer.h : header file +// + +#include "OXMetaFile.h" +#include "OXScrollWnd.h" + +///////////////////////////////////////////////////////////////////////////// +// COXMetafileViewer window + +class OX_CLASS_DECL COXMetafileViewer : public COXScrollWnd +{ + DECLARE_DYNAMIC(COXMetafileViewer) +// Construction +public: + COXMetafileViewer(); + +// Attributes +public: + +protected: + // metafile image + COXMetaFile m_MetaFile; + +// Operations +public: + + BOOL LoadFile(LPCTSTR lpszPathName); + inline BOOL LoadResource(UINT nIDResource, CString strResType=_T("METAFILE")); + + inline COXMetaFile* GetImage() { return &m_MetaFile; } + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(COXMetafileViewer) + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~COXMetafileViewer(); + +protected: + CSize GetMetafileSize(); + + virtual BOOL InitializeImage(const CSize& sizePage=CSize(100,100), + const CSize& sizeLine=CSize(10,10)); + + BOOL DrawMetafile(CDC* pDC, const CRect& rectSrc); + + // Generated message map functions +protected: + //{{AFX_MSG(COXMetafileViewer) + afx_msg void OnPaint(); + afx_msg BOOL OnEraseBkgnd(CDC* pDC); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(_OXMETAFILEVIEWER_H__) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXOwnThread.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXOwnThread.h new file mode 100644 index 0000000..4aec3dd --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXOwnThread.h @@ -0,0 +1,172 @@ +// ========================================================================== +// Class Specification : COXOwnThread +// ========================================================================== + +// Header file : OXOwnThread.h + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) + +// NO Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// YES Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Description : +// The purpose of this class is to serve as a base class for COXOwnThreadCmdTarget, +// COXOwnThreadDocument or user derived classes from CCmdTarget (Encapsulation around +// a IDispatch OLE object). +// The class mainly encapsulates the marshalling of IDispatch object between the +// Owner thread (the thread that created the object) and the Own thread (a own +// message loop). +// By marshalling the IDispatch object, the OLE calls to the object will be +// re-routed to the Own thread. +// The derived class needs to derive from CCmdTarget (or other derived class from +// CCmdTarget) and from this class, in order to re-route the OLE calls complete +// transparently. COXOwnThreadCmdTarget and COXOwnThreadDocument are 2 (ready to use) +// examples of how to use this COwnThread engine class. + +// Remark: +// + +// Prerequisites (necessary conditions): +// + +///////////////////////////////////////////////////////////////////////////// + +#ifndef __OXOWNTHREAD_H__ +#define __OXOWNTHREAD_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + + +#include "OXDispatchMarshaller.h" +#include "OXFinalReleaseWnd.h" + + +///////////////////////////////////////////////////////////////////////////// +// COwnThread engine + +class OX_CLASS_DECL COXOwnThread +{ +// Data Members +public: + +protected: + BOOL m_bHasOwnThread; + HANDLE m_hCreatedEvent; + HANDLE m_hThreadEvent; + HANDLE m_hEndEvent; + HRESULT m_hCreateResult; + LPUNKNOWN m_pMarshalledPunk; + BOOL m_bEndThread; + DWORD m_nOwnerThreadID; + DWORD m_nOwnThreadID; + COXDispatchMarshaller + m_dispatchMarshaller; + COXFinalReleaseWnd + m_finalReleaseWnd; + + friend COXFinalReleaseWnd; + +private: + + +// Member Functions +public: + COXOwnThread(); + // --- In : none + // --- Out : none + // --- Returns : nothing + // --- Effect : constructs the object + + virtual ~COXOwnThread(); + // --- In : none + // --- Out : none + // --- Returns : nothing + // --- Effect : constructs the object + + BOOL EnableOwnThread(); + // --- In : none + // --- Out : none + // --- Returns : If the own thread is started successful or not + // This function should always succeed unless + // the operating systems is extremely low on resources + // --- Effect : All the OLE Calls to this object will be re-routed + // by the own thread. + // Different objects can be served simultaneous. + + BOOL HasOwnThread(); + // --- In : none + // --- Out : none + // --- Returns : if the CmdTarget has a own thread started. + // --- Effect : + + BOOL FinalReleaseRouter(); + // --- In : none + // --- Out : none + // --- Returns : if the call is re-routed or not + // --- Effect : If you override the virtual member function 'OnFinalRelease' of CCmdTarget, + // you have to call this function before you do anything else. + // If the call returns TRUE, you have to return immediately. + // Example with CMyCmdTarget derived from COXOwnThreadCmdTarget + // void CMyCmdTarget::OnFinalRelease() + // { + // if (FinalReleaseRouter()) + // return; + // + // // TODO: Add your specialised code here and/or call the base class + // + // CCmdTarget::OnFinalRelease(); + // } + + void SetThreadEvent(); + // --- In : none + // --- Out : none + // --- Returns : nothing + // --- Effect : Fires an event to the own thread, which will call the overridable + // function 'OnThreadEvent'. + + virtual LPDISPATCH GetIDispatch(BOOL bAddRef) = 0; + // --- In : bAddRef: Specifies whether to increment the reference count for the object. + // --- Out : none + // --- Returns : The IDispatch pointer associated with the object + // --- Effect : This is a pure virtual function, so the implementation of the derived class is used. + // This declaration is needed to give access to the real CCmdTarget implementation of this function + +protected: + LPUNKNOWN GetInterfaceHook(const void*); + virtual void OnFinalRelease() = 0; + void Run(); + static UINT __cdecl StartThread(LPVOID pOwnThread); + void EndThread(); + virtual void OnThreadEvent(); + virtual void OnThreadDestroy(); + + +private: + +}; + +#endif //__OXOWNTHREAD_H__ + + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXOwnThreadCmdTarget.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXOwnThreadCmdTarget.h new file mode 100644 index 0000000..4aeefc9 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXOwnThreadCmdTarget.h @@ -0,0 +1,162 @@ +// ========================================================================== +// Class Specification : COXOwnThreadCmdTarget +// ========================================================================== + +// Header file : OXOwnThreadCmdTarget.h + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) + +// NO Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// YES Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Description : +// This class is an alternative for CCmdTarget. It offers multi-threading +// functionality to your automation server. +// By deriving from this class instead of CCmdTarget, all your OLE calls +// are handled by a separate Own thread. In that way more concurrently +// calls can be handled simultaneously. +// The main part of the implementation is done in the COXOwnThread class, so +// the code can be shared by other derivation of CCmdTarget (see COXOwnThreadDocument). + +// HOW TO USE -> it is as easy as this: +// As said above, you need to derive from this class instead of CCmdTarget. +// Further more you need to call the 'EnableOwnthread' function from within +// the constructor of your derived class. +// If you are overriding the 'OnFinalRelease' function of CCmdTarget +// you need also to call 'FinalReleaseRouter()' (see 'FinalReleaseRouter' further on) + +// For derivation of CDocument you have to use COXOwnThreadDocument. +// For other derivation you can build your own class analogue to COXOwnThreadCmdTarget +// and COXOwnThreadDocument. + +// Remark: +// + +// Prerequisites (necessary conditions): +// + +///////////////////////////////////////////////////////////////////////////// + +#ifndef __OXOWNTHREADCMDTARGET_H__ +#define __OXOWNTHREADCMDTARGET_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + + +///////////////////////////////////////////////////////////////////////////// +// COwnThreadCmdTarget command target + +#include "OXOwnThread.h" + + +class OX_CLASS_DECL COXOwnThreadCmdTarget : public CCmdTarget, public COXOwnThread +{ +DECLARE_DYNCREATE(COXOwnThreadCmdTarget) + +// Data Members +public: + +protected: + +private: + +// Member Functions +public: + +// The public interface of this class contains 3 easy functions. +// They are defined in COXOwnThread where this class is derived from: + +// BOOL EnableOwnThread(); + // --- In : none + // --- Out : none + // --- Returns : If the own thread is started successful or not + // This function should always succeed unless + // the operating systems is extremely low on resources + // --- Effect : All the OLE Calls to this object will be re-routed + // by the own thread. + // Different objects can be served simultaneous. + +// BOOL HasOwnThread(); + // --- In : none + // --- Out : none + // --- Returns : if the CmdTarget has a own thread started. + // --- Effect : + +// BOOL FinalReleaseRouter(); + // --- In : none + // --- Out : none + // --- Returns : if the call is re-routed or not + // --- Effect : If you override the virtual member function 'OnFinalRelease' of CCmdTarget, + // you have to call this function before you do anything else. + // If the call returns TRUE, you have to return immediately. + // Example: + // void CMyCmdTarget::OnFinalRelease() + // { + // if (FinalReleaseRouter()) + // return; + // + // // TODO: Add your specialised code here and/or call the base class + // + // CCmdTarget::OnFinalRelease(); + // } + + + virtual LPDISPATCH GetIDispatch(BOOL bAddRef); + // --- In : bAddRef: Specifies whether to increment the reference count for the object. + // --- Out : none + // --- Returns : The IDispatch pointer associated with the object + // --- Effect : provides access to the IDispatch handle + // Is used by the COXOwnThread base class + + + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(COXOwnThreadCmdTarget) + public: + virtual void OnFinalRelease(); + //}}AFX_VIRTUAL + + +protected: + COXOwnThreadCmdTarget(); // protected constructor used by dynamic creation + virtual ~COXOwnThreadCmdTarget(); + + virtual LPUNKNOWN GetInterfaceHook(const void*); + + // Generated message map functions + //{{AFX_MSG(COXOwnThreadCmdTarget) + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + + // Generated OLE dispatch map functions + //{{AFX_DISPATCH(COXOwnThreadCmdTarget) + //}}AFX_DISPATCH + DECLARE_DISPATCH_MAP() + +private: + +}; +#endif //__OXOWNTHREADCMDTARGET_H__ + + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXPrvDlg.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXPrvDlg.h new file mode 100644 index 0000000..4b5a5e2 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXPrvDlg.h @@ -0,0 +1,136 @@ +// ========================================================================== +// Class Specification : COXPreviewDialog +// ========================================================================== + +// Header file : OXPrvDlg.h + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// YES Derived from CFileDialog + +// YES Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// YES Has a message map +// YES Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// YES Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Desciption : +// This class extends the Common File Dialog with a specific +// custom template in order to have a preview area in this dialog. To implement a +// dialog that previews BMP's, derive a class from this class and implement two +// virtual functions : OnNewFileSelect() and +// OnPaintPreview(CDC* pDC, const CRect& paintRect) + +// Remark: +// This file uses resources. +// The reserved ID ranges are : 23080 -> 23099 and 53080 -> 53099 + +// Prerequisites (necessary conditions): +// + +///////////////////////////////////////////////////////////////////////////// +#ifndef __OXPRVDLG_H__ +#define __OXPRVDLG_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + + +class OX_CLASS_DECL COXPreviewDialog : public CFileDialog +{ +DECLARE_DYNAMIC(COXPreviewDialog) + +// Data members ------------------------------------------------------------- +public: + +protected: + CStatic m_previewFrame; + BOOL m_bPreview; + BOOL m_bPrevPreview; + CString m_sSelectedFile; + CString m_sPrevSelectedFile; + + class OX_CLASS_DECL COXPreview : public CButton + { + // Data Members + public: + protected: + private: + // Member Functions + public: + COXPreview(); + virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct); + protected: + private: + } m_preview; + + +private: + +friend COXPreview; + +// Member functions --------------------------------------------------------- +public: + COXPreviewDialog(BOOL bOpenFileDialog, // TRUE for FileOpen, FALSE for FileSaveAs + LPCTSTR lpszDefExt = NULL, + LPCTSTR lpszFileName = NULL, + DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, + LPCTSTR lpszFilter = NULL, + CWnd* pParentWnd = NULL); + // --- In : see constructor MFC CFiledialog + // --- Out : + // --- Returns : + // --- Effect : Contructor of object + + virtual ~COXPreviewDialog(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of object + + +protected: + virtual void OnNewFileSelect(const CString& sFilename); + virtual void OnPaintPreview(CDC* pDC, const CRect& paintRect); + virtual void OnDoRealizePalette(CWnd* pFocusWnd); + + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + void CheckFileSelection(); + +#ifdef WIN32 + BOOL IsWin95(); + virtual void OnFileNameChange(); + CString GetFilePath() const; +#endif + + afx_msg void OnPreview(); + virtual BOOL OnInitDialog(); + + afx_msg void OnPaletteChanged(CWnd* pFocusWnd); + afx_msg void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized); + + DECLARE_MESSAGE_MAP() + +private: + virtual void OnLBSelChangedNotify( UINT nIDBox, UINT iCurSel, UINT nCode); + +}; + +#endif //__OXPRVDLG_H__ + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXResultObj.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXResultObj.h new file mode 100644 index 0000000..c8eab66 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXResultObj.h @@ -0,0 +1,187 @@ +// ========================================================================== +// Class Specification : COXResultObj +// ========================================================================== + +// Header file : OXResultObj.h + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// YES Derived from CObject + +// NO Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// NO Has a message map +// NO Needs a resource (template) + +// YES Persistent objects (saveable on disk) +// NO Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Desciption : +// This class encapsulates a collection of COXResultParts + +// Remark: + +// Prerequisites (necessary conditions): + +///////////////////////////////////////////////////////////////////////////// + +#ifndef __OXRESULTOBJ_H__ +#define __OXRESULTOBJ_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + +#include "AfxTempl.h" +#include "OXResultPart.h" + + +class OX_CLASS_DECL COXResultObj : public CArray +{ +DECLARE_DYNAMIC(COXResultObj); + +// Data members ------------------------------------------------------------- +public: +protected: + COXResultPart m_defaultPart; + +private: + +// Member functions --------------------------------------------------------- +public: + COXResultObj(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Constructs the object + + COXResultObj(const COXResultPart& defaultPart); + // --- In : defaultPart + // --- Out : + // --- Returns : + // --- Effect : Constructs the object and sets the default part + // The default part will be returned when + // you want to retrieve a part when this object is empty + + COXResultObj(const COXResultObj& result); + // --- In : result : Object to copy + // --- Out : + // --- Returns : + // --- Effect : Copy constructor + + COXResultObj& operator=(const COXResultObj& result); + // --- In : result : Object to assigne + // --- Out : + // --- Returns : This object + // --- Effect : Assignment operator + + void operator+=(const COXResultObj& result); + // --- In : result : Object to add + // --- Out : + // --- Returns : + // --- Effect : Adds the specified result to this object + + void operator+=(const COXResultPart& resultPart); + // --- In : resultPart : Object to add + // --- Out : + // --- Returns : + // --- Effect : Adds the specified result part to this result object + + COXResultPart& GetDefaultPart(); + // --- In : + // --- Out : + // --- Returns : The default part + + COXResultPart GetDefaultPart() const; + // --- In : + // --- Out : + // --- Returns : The default part + + void SetDefaultPart(const COXResultPart& defaultPart); + // --- In : defaultPart + // --- Out : + // --- Returns : + // --- Effect : Sets the default part + // The default part will be returned when + // you want to retrieve a part when this object is empty + + void Empty(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Empties this result object + + BOOL IsEmpty() const; + // --- In : + // --- Out : + // --- Returns : Whether this object contains any result itemùs (FALSE) or not (TRUE) + // --- Effect : + + COXResultPart& GetMostSeverePart(); + // --- In : + // --- Out : + // --- Returns : The result part with the highest extended severity + // --- Effect : When this object does not contain any parts, + // a new part is added to this object and returned + + COXResultPart GetMostSeverePart() const; + // --- In : + // --- Out : + // --- Returns : The result part with the highest extended severity + // --- Effect : When this object does not contain any parts, + // a new empty part is returned + + COXResultPart* operator->(); + // --- In : + // --- Out : + // --- Returns : The result part with the highest extended severity + // --- Effect : When this object does not contain any parts, + // a new part is added to this object and returned + // This is a quick way to get the most severe part from + // the collection and perform a function on it + + virtual void Serialize(CArchive& ar); + // --- In : ar : Archive used in serialization + // --- Out : + // --- Returns : + // --- Effect : Serializes the object + +#ifdef _DEBUG + virtual void AssertValid() const; + // --- In : + // --- Out : + // --- Returns : + // --- Effect : AssertValid performs a validity check on this object + // by checking its internal state. + // In the Debug version of the library, AssertValid may assert and + // thus terminate the program. + + virtual void Dump(CDumpContext& dc) const; + // --- In : dc : The diagnostic dump context for dumping, usually afxDump. + // --- Out : + // --- Returns : + // --- Effect : Dumps the contents of the object to a CDumpContext object. + // It provides diagnostic services for yourself and + // other users of your class. +#endif + + virtual ~COXResultObj(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of the object + +protected: + +private: + +}; + +#endif // __OXRESULTOBJ_H__ +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXResultPart.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXResultPart.h new file mode 100644 index 0000000..e104b41 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXResultPart.h @@ -0,0 +1,269 @@ +// ========================================================================== +// Class Specification : COXResultPart +// ========================================================================== + +// Header file : OXResultPart.h + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// YES Derived from CObject + +// NO Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// NO Has a message map +// NO Needs a resource (template) + +// YES Persistent objects (saveable on disk) +// NO Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Desciption : +// This class encapsulates a single result code and its message + +// An object can be constructed from an HRESULT value. +// Now the accompanying message will be retrieved from the message resource +// When optional parameters are needed they can be supplied + +// A group of these object can be stored in a COXResultObj + +// Remark: + +// Prerequisites (necessary conditions): + +///////////////////////////////////////////////////////////////////////////// + +#ifndef __OXRESULTPART_H__ +#define __OXRESULTPART_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + +#ifndef __AFXOLE_H__ +#include +#define __AFXOLE_H__ +#endif + + +class OX_CLASS_DECL COXResultPart : public CObject +{ +DECLARE_SERIAL(COXResultPart); + +// Data members ------------------------------------------------------------- +public: +protected: + COleDateTime m_creationTime; + HRESULT m_resultCode; + CString m_sResultMessage; + DWORD m_dwExtra; + + static DWORD m_dwLangID; + +private: + +// Member functions --------------------------------------------------------- +public: + COXResultPart(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Constructs an empty result item object + + COXResultPart(HRESULT resultCode, ...); + COXResultPart(LPCTSTR pszModuleName, HRESULT resultCode, ...); + // --- In : (optional) pszModuleName : Name of the module containing the message resource + // resultCode : Result code to use + // ... : Optional parameters used to build the message + // --- Out : + // --- Returns : + // --- Effect : Constructs a result item object with the specified + // resultcode + // The appropriate message is retrieved from resource + // and for this the optional parameters may be used + + COXResultPart(const COXResultPart& resultItem); + // --- In : resultItem : Object to copy + // --- Out : + // --- Returns : + // --- Effect : Copy constructor + + BOOL Initialize(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Initializes to an empty result item object + + BOOL Initialize(HRESULT resultCode, ...); + BOOL Initialize(LPCTSTR pszModuleName, HRESULT resultCode, ...); + BOOL InitializeSpecial(LPCTSTR pszModuleName, DWORD resultCode, ...); + // --- In : (optional) pszModuleName : Name of the module containing the message resource + // resultCode : Result code to use + // ... : Optional parameters used to build the message + // --- Out : + // --- Returns : Whether the message could be retrieved successfully + // --- Effect : Initializes a result item object with the specified + // resultcode + // The appropriate message is retrieved from resource + // and for this the optional parameters may be used + + HRESULT GetResultCode() const; + // --- In : + // --- Out : + // --- Returns : The result code of this object + // --- Effect : + + void SetResultCode(HRESULT resultCode); + // --- In : resultCode : New result code to set + // --- Out : + // --- Returns : + // --- Effect : Sets the result code to a new value + // Other parts (message etc) are not automatically updated + + CString GetResultMessage() const; + // --- In : + // --- Out : + // --- Returns : The result message of this object + // --- Effect : + + void SetResultMessage(CString sResultMessage); + // --- In : sResultMessage : New result message to set + // --- Out : + // --- Returns : + // --- Effect : Sets the result code to a new value + // Other parts (code etc) are not automatically updated + + void AppendMessage(CString sMessage); + // --- In : sMessage : Message to append + // --- Out : + // --- Returns : + // --- Effect : Appends the specified text to the result message + + CString BuildExtendedMessage() const; + // --- In : + // --- Out : + // --- Returns : The extended result message of this object + // --- Effect : + + COleDateTime GetTimeStamp() const; + // --- In : + // --- Out : + // --- Returns : The time stamp when the item was created + // --- Effect : + + void SetTimeStamp(COleDateTime creationTime); + // --- In : creationTime : New creation time to set + // --- Out : + // --- Returns : + // --- Effect : Sets the creation date to a new value + // Other parts (code etc) are not automatically updated + // The date must be valid + + DWORD GetExtraData() const; + // --- In : + // --- Out : + // --- Returns : The extra data of this object + // --- Effect : + + void SetExtraData(DWORD dwExtra); + // --- In : dwExtra : New extra data to set + // --- Out : + // --- Returns : + // --- Effect : Sets the extra data to a new value + // Other parts (code etc) are not automatically updated + + COXResultPart& operator=(const COXResultPart& resultItem); + // --- In : resultItem : Object to assigne + // --- Out : + // --- Returns : This object + // --- Effect : Assignment operator + + BOOL Succeeded() const; + // --- In : + // --- Out : + // --- Returns : Whether the result code specifies success (SUCCEEDED) + // --- Effect : + + BOOL Failed() const; + // --- In : + // --- Out : + // --- Returns : Whether the result code specifies failure (FAILED) + // --- Effect : + + WORD GetCode() const; + // --- In : + // --- Out : + // --- Returns : The code part of the result code (HRESULT_CODE) + // --- Effect : + + WORD GetFacility() const; + // --- In : + // --- Out : + // --- Returns : The facility part of the result code (HRESULT_FACILITY) + // --- Effect : + + WORD GetSeverity() const; + // --- In : + // --- Out : + // --- Returns : The severity part of the result code (HRESULT_SEVERITY) + // --- Effect : + + WORD GetSeverityEx() const; + // --- In : + // --- Out : + // --- Returns : The extended severity part of the result code (bits 31 and 30) + // --- Effect : + + virtual void Serialize(CArchive& ar); + // --- In : ar : Archive used in serialization + // --- Out : + // --- Returns : + // --- Effect : Serializes the object + +#ifdef _DEBUG + virtual void AssertValid() const; + // --- In : + // --- Out : + // --- Returns : + // --- Effect : AssertValid performs a validity check on this object + // by checking its internal state. + // In the Debug version of the library, AssertValid may assert and + // thus terminate the program. + + virtual void Dump(CDumpContext& dc) const; + // --- In : dc : The diagnostic dump context for dumping, usually afxDump. + // --- Out : + // --- Returns : + // --- Effect : Dumps the contents of the object to a CDumpContext object. + // It provides diagnostic services for yourself and + // other users of your class. +#endif + + virtual ~COXResultPart(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of the object + +protected: + BOOL InitializeEx(HRESULT resultCode, va_list* pArgs); + BOOL InitializeEx(LPCTSTR pszModuleName, HRESULT resultCode, va_list* pArgs); + BOOL InitializeExSpecial(LPCTSTR pszModuleName, DWORD dwResultCode, va_list* pArgs); + static BOOL RetrieveResultMessage(CString sModuleName, HRESULT resultCode, + va_list* pArgs, CString& sResultMessage); + static BOOL RetrieveSpecialMessage(CString sModuleName, DWORD dwResultCode, + va_list* pArgs, CString& sResultMessage); + +private: + +}; + +// Define some handy macros +#include "OXResultPartDef.h" + +#endif // __OXRESULTPART_H__ +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXResultPartDef.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXResultPartDef.h new file mode 100644 index 0000000..a6bf5e0 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXResultPartDef.h @@ -0,0 +1,81 @@ +// ========================================================================== +// Macro Definition for COXResultPart +// ========================================================================== + +// Header file : OXResultPartDef.h + +// ////////////////////////////////////////////////////////////////////////// + +// These macros only have an actual implementation if _DEBUG is defined +// otherwise they all are defined empty + +#ifndef __OXRESULTPARTDEF_H__ +#define __OXRESULTPARTDEF_H__ + +#ifdef _DEBUG + // OX_TRACE_ERROR_EX(RES, TX) + // --- In : RES : The numeric result code (long) + // TX : A string which will be used as prefix + // --- Out : + // --- Returns : + // --- Effect : Traces the messages associated with sepcified result code + // together with leading text +#define OX_TRACE_ERROR_EX(RES, TX) \ + { \ + HRESULT r = (RES); \ + if (HRESULT_FACILITY(r) == 0) \ + r = HRESULT_FROM_WIN32(r); \ + if (FAILED(r)) \ + { \ + COXResultPart resultPart(r); \ + TRACE(_T("%s : HRESULT = 0x%X\n\t%s"), (TX), r, resultPart.GetResultMessage()); \ + } \ + } + + // OX_TRACE_ERROR_EX(RES) + // --- In : RES : The numeric result code (long) + // --- Out : + // --- Returns : + // --- Effect : Traces the messages associated with sepcified result code + // together with the current file name and line number +#define OX_TRACE_ERROR(RES) \ + { \ + CString sLine; \ + sLine.Format(_T("%i"), __LINE__); \ + OX_TRACE_ERROR_EX(RES, CString(__FILE__) + _T(" (") + sLine + _T(")")); \ + } + + // OX_TRACE_LAST_ERROR_EX(TX) + // --- In : TX : A string which will be used as prefix + // --- Out : + // --- Returns : + // --- Effect : Traces the message associated with the last error + // together with leading text +#define OX_TRACE_LAST_ERROR_EX(TX) \ + { \ + HRESULT nLastError = ::GetLastError(); \ + OX_TRACE_ERROR_EX(HRESULT_FROM_WIN32(nLastError), TX); \ + } + + // OX_TRACE_LAST_ERROR() + // --- In : TX : A string which will be used as prefix + // --- Out : + // --- Returns : + // --- Effect : Traces the message associated with the last error + // together with the current file name and line number +#define OX_TRACE_LAST_ERROR() \ + { \ + HRESULT nLastError = ::GetLastError(); \ + CString sLine; \ + sLine.Format(_T("%i"), __LINE__); \ + OX_TRACE_ERROR_EX(HRESULT_FROM_WIN32(nLastError), CString(__FILE__) + _T(" (") + sLine + _T(")")); \ + } + +#else +#define OX_TRACE_ERROR_EX(RES, TX) +#define OX_TRACE_ERROR(RES) +#define OX_TRACE_LAST_ERROR_EX(TX) +#define OX_TRACE_LAST_ERROR() +#endif +#endif // __OXRESULTPARTDEF_H__ +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSCCFG.H b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSCCFG.H new file mode 100644 index 0000000..12508c5 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSCCFG.H @@ -0,0 +1,144 @@ +// ========================================================================== +// Class Specification : COXSerialCommConfig +// ========================================================================== + +// Header file : OXSCCFG.H + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// NO Is derived from Wnd +// NO Two stage creation (constructor & Initialize()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// YES Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Description : +// COXSerialCommConfig class +// This object defines the port configuration settings like port ID, baudrate, +// bytesize, parity, stopbits and flowcontrol. You can set also the size of +// the software buffers and the timeout values of the ‘clear to send’, +// ‘data set ready’ and ‘Carrier detect’ signals. These settings can be loaded +// and saved to disk. + +// Remark: +// + + +// Prerequisites (necessary conditions): +// + +///////////////////////////////////////////////////////////////////////////// + +#ifndef __OXSCCFG_H_ +#define __OXSCCFG_H_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + + +class OX_CLASS_DECL COXSerialCommConfig : public CObject +{ + DECLARE_SERIAL(COXSerialCommConfig); + +// Data Members +public: + enum EFlowControl // flow control enum type + { + NONE, + HARDWARE, + XON_XOFF + }; + + BYTE m_nPortId; // 0..8 (COM1..COM9) + UINT m_nBaudRate; // CBR_xxx (as in DCB) + BYTE m_nByteSize; // 7..8 (as in DCB) + BYTE m_nParity; // 0..2 (as in DCB) + BYTE m_nStopBits; // 0/2 (as in DCB) + EFlowControl m_eFlowControl; // flow control type + + UINT m_nSizeReceivingQueue; // buffer size of the incomming queue + UINT m_nSizeTransmissionQueue; // buffer size of the outgoing queue + UINT m_nCdTimeout; // the time that the carrier must be down + // before the signal is changing state + UINT m_nCtsTimeout; // Clear to send timeout + UINT m_nDsrTimeout; // Data set ready timeout + +protected: + +private: + +// Member Functions +public: + COXSerialCommConfig(); + // --- In: none + // --- Out: none + // --- Returns: none + // --- Effect: Constructs the configutration object + + COXSerialCommConfig(COXSerialCommConfig& config); + // --- In: config: another COXSerialCommConfig object + // --- Out: none + // --- Returns: none + // --- Effect: copy constructor + + COXSerialCommConfig& operator = (const COXSerialCommConfig& config); + // --- In: config: another COXSerialCommConfig object + // --- Out: none + // --- Returns: the reference of the object that is copied into + // --- Effect: copy operator + + CString GetCommName() const; + // --- In: none + // --- Out: none + // --- Returns: the name of the communication device as a stdio filename + // (example: "COM1" for port com1) + // --- Effect: none + + int DoConfigDialog(CString sTitle = _T("")); + // --- In: sTitle: the title of the dialog box (a default title is used if empty) + // --- Out: none + // --- Returns: IDOK or IDCANCEL + // --- Effect: start a modal configuration dialog box + + BOOL IsPortAvailable() const; + // --- In: none + // --- Out: none + // --- Returns: if the port is available or not + // --- Effect: tries to open the port + + BOOL Load(CString sFileName); + // --- In: sFileName: the filename of the configuration file + // --- Out: none + // --- Returns: if the configuration file is successfully loaded + // --- Effect: loads the configuration file into this object + + BOOL Save(CString sFileName); + // --- In: sFileName: the filename of the configuration file + // --- Out: none + // --- Returns: if the configuration file is successfully saved + // --- Effect: saves the configuration setting to file + +protected: + virtual void Serialize(CArchive& ar); + +private: + +}; + +#endif //__OXSCCFG_H_ diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSCCNST.H b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSCCNST.H new file mode 100644 index 0000000..207b36e --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSCCNST.H @@ -0,0 +1,22 @@ +#ifndef __OXSCCNST_H_ +#define __OXSCCNST_H_ + +const int COMM_MSRSHADOW = 35; // Modem Status Register "shadow" +const int MSR_CTS = 0x10; // see Microsoft PSS ID Q101417 +const int MSR_DSR = 0x20; +const int MSR_RI = 0x40; +const int MSR_RLSD = 0x80; + +const UINT DefaultSizeReceivingQueue = 4096; +const UINT DefaultSizeTransmissionQueue = 4096; +const UINT DefaultCdTimeout = 2000; +const UINT DefaultCtsTimeout = 5000; +const UINT DefaultDsrTimeout = 5000; + +const int MaxNumberOfBuffers = 4; +const int RS232TimerId = 0x1245; +const int RS232TimerValue = 100; // 100 mSec. +const UINT _Rs232PostMessage_ = WM_USER; +const UINT _Rs232InternalNotify_ = WM_USER+1; + +#endif __OXSCCNST_H_ diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSCEXCP.H b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSCEXCP.H new file mode 100644 index 0000000..7e5d9dd --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSCEXCP.H @@ -0,0 +1,55 @@ +#ifndef __OXSCEXCP_H_ +#define __OXSCEXCP_H_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + + +OX_API_DECL void AFXAPI AfxThrowSerialCommException(int cause, + LPCTSTR lpszSerialCommName = NULL); + +class OX_CLASS_DECL COXSerialCommException: public CFileException +{ +DECLARE_DYNAMIC(COXSerialCommException) + +// Data Members +public: + enum VALUE + { + none, + notAvailable, + breakDetect, + rxTimeout, + ctsTimeout, + dsrTimeout, + cdTimeout, + frameError, + parityError, + overrunError, + rxQueueOverflow, + txQueueFull, + wmQuitReceived, + ioError, + modeError + }; + + int m_ext_cause; + +// Member Functions +public: + COXSerialCommException(int cause = none, + LPCTSTR lpszSerialCommName = NULL); + COXSerialCommException(COXSerialCommException& other); + COXSerialCommException& operator = (const COXSerialCommException& other); + virtual BOOL GetErrorMessage( LPTSTR lpszError, UINT nMaxError, PUINT pnHelpContext = NULL ); +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; +#endif + + +}; + +#endif //__OXSCEXCP_H_ diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSCFILE.H b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSCFILE.H new file mode 100644 index 0000000..a231797 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSCFILE.H @@ -0,0 +1,274 @@ +// ========================================================================== +// Class Specification : COXSerialCommFile +// ========================================================================== + +// Header file : OXSCFILE.H + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// YES Is derived from CFile +// NO Two stage creation (constructor & Initialize()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// YES Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Description : +// COXSerialCommFile class +// The COXSerialCommFile class is the main class which controls the serial port. +// It is derived from CFile and is therefor compatible with MFC serialization. +// Next to the derived interface, COXSerialCommFile is extended with some other +// function for controlling the handshake signals, the read and write buffers and +// the time-out values. +// + +// Remark: +// If the following error appears the only solution is to add at the top of the +// initinstance the following code: (the default depth is only 8!. Maximum = 120.) +// int QueueDepth = 32; +// while (!::SetMessageQueue(QueueDepth)) +// QueueDepth--; +// +// ERROR MESSAGE: +// FATAL ERROR! +// The Windows message queue is full! +// Rs232 messages lost! +// Increase the message queue depth. + + + +// Prerequisites (necessary conditions): +// + +///////////////////////////////////////////////////////////////////////////// + +#ifndef __OXSCFILE_H_ +#define __OXSCFILE_H_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + +#include "OXSCCFG.H" +#include "OXSCEXCP.H" + + +class OX_CLASS_DECL COXSerialCommFile : public CFile +{ +// Data Members +public: + +protected: + HANDLE m_hCommDevice; + +private: + +// Member Functions +public: + COXSerialCommFile(); + // --- In: none + // --- Out: none + // --- Returns: none + // --- Effect: Constructs the object and initialize the internal state + + virtual ~COXSerialCommFile(); + // --- In: none + // --- Out: none + // --- Returns: none + // --- Effect: Destructs the object + + BOOL Open(const COXSerialCommConfig& config, COXSerialCommException* pException = NULL); + // --- In: config: the configurations of the serial communication device to open + // pException: + // --- Out: none + // --- Returns: if the opening was successful + // --- Effect: opens the serial communication device configured in the config struct. + + virtual void Close(); + // --- In: none + // --- Out: none + // --- Returns: none + // --- Effect: closes this serial comunication device + + BOOL SetTimeouts(DWORD dwRxTimeout=5000, DWORD dwTxTimeout=5000); // time in milliseconds + // --- In: dwRxTimeout: + // dwTxTimeout: + // --- Out: none + // --- Returns: if ot was successful or not + // --- Effect: sets the time-out parameters for all read and write operations on this serial + // communications device. + + BOOL IsOpen() const; + // --- In: none + // --- Out: none + // --- Returns: if the port is already opened or not + // --- Effect: none + + UINT Read( void* lpBuf, UINT nCount ); + // --- In: none + // --- Out: lpBuf: reserved memory block to receive data + // nCount: size of the reserved buffer + // --- Returns: actual number of bytes received + // --- Effect: + + void Write( const void* lpBuf, UINT nCount ); + // --- In: lpBuf: address of data block to transmit + // nCount: number of bytes to transmit + // --- Out: none + // --- Returns: none + // --- Effect: transmits the data to the serial port + + void PurgeRx(); + // --- In: none + // --- Out: none + // --- Returns: none + // --- Effect: makes the receive queue empty + + void PurgeTx(); + // --- In: none + // --- Out: none + // --- Returns: none + // --- Effect: makes the transmit queue empty + + BOOL IsRxQueueEmpty() const; + // --- In: none + // --- Out: none + // --- Returns: if the Receive queue is empty or not + // --- Effect: none + + BOOL IsTxQueueEmpty() const; + // --- In: none + // --- Out: none + // --- Returns: if the Transmit queue is empty or not + // --- Effect: none + + void SetDTR(BOOL bValue); + // --- In: bValue: new value of the DTR flag + // --- Out: none + // --- Returns: none + // --- Effect: Sets the handshake signal 'DTR' (data terminal ready ) + + void SetRTS(BOOL bValue); + // --- In: bValue: new value of the RTS flag + // --- Out: none + // --- Returns: none + // --- Effect: Sets the handshake signal 'RDSR' (request to send) + + BOOL GetCTS() const; + // --- In: none + // --- Out: none + // --- Returns: the state of the 'CTS' (clear to send) flag + // --- Effect: none + + BOOL GetDSR() const; + // --- In: none + // --- Out: none + // --- Returns: the state of the 'DSR' (data set ready) flag + // --- Effect: none + + BOOL GetCD() const; + // --- In: none + // --- Out: none + // --- Returns: the state of the 'CD' (carrier detect) flag + // --- Effect: none + + BOOL GetRI() const; + // --- In: none + // --- Out: none + // --- Returns: the state of the 'RI' (ring indicator) flag + // --- Effect: none + + HANDLE GetSafeHandle() const; + // --- In: none + // --- Out: none + // --- Returns: a HANDLE to the COMM Device or NULL if no open handle exists + // --- Effect: + // --- Note: You may call this function on a non-attached COMM device. It will + // return NULL. + + BOOL SetCommMask(const DWORD dwEventMask); + // --- In: dwEventMask: Specifies the events to be enabled. A value of zero + // disables all events. The below table summarizes the + // possible values for dwEventMask, you may combine these + // using the bit-wise OR operator. + // + // Value Meaning + // -------------------------------------------------------------------- + // EV_BREAK A break was detected on input. + // EV_CTS The CTS (clear-to-send) signal changed state. + // EV_DSR The DSR (data-set-ready) signal changed state. + // EV_ERR A line-status error occurred. Line-status errors are CE_FRAME, + // CE_OVERRUN, and CE_RXPARITY. + // EV_RING A ring indicator was detected. + // EV_RLSD The RLSD (receive-line-signal-detect) signal changed state. + // EV_RXCHAR A character was received and placed in the input buffer. + // EV_RXFLAG The event character was received and placed in the input + // buffer. The event character is specified in the device's + // DCB structure, which is applied to a serial port by using + // the SetCommState function. + // EV_TXEMPTY The last character in the output buffer was sent. + // + // --- Out: none + // --- Returns: If the function succeeds, the return value is nonzero. Otherwise it is zero. + // --- Effect: The SetCommMask function specifies the set of events that can be monitored + // for a particular communications resource. + + BOOL GetCommMask(DWORD& dwEventMask) const; + // --- In: dwEventMask: a reference to a DWORD value to receive the event mask + // --- Out: dwEventMask: this value receives the event mask + // (see COXSerialCommFile::SetCommMask for more information) + // --- Returns: If the function succeeds, the return value is nonzero. Otherwise it is zero. + // --- Effect: none + + BOOL GetCommProperties(LPCOMMPROP lpCommProp) const; + // --- In: lpCommProp: address of communications properties structure + // --- Out: lpCommProp: Pointer to a COMMPROP structure in which the + // communications properties information is returned + // --- Returns: If the function succeeds, the return value is nonzero. Otherwise it is zero. + // --- Effect: The GetCommProperties function returns information from a device driver + // about the configuration settings that are supported by the driver + + UINT GetBytesToRead() const; + // --- In: none + // --- Out: none + // --- Returns: Number of bytes waiting to be read from the COMM port, 0 if none. + // --- Effect: none + + UINT GetBytesToWrite() const; + // --- In: none + // --- Out: none + // --- Returns: Number of bytes waiting to be sent to the COMM port, 0 if none. + // --- Effect: none + +protected: + COXSerialCommException::VALUE GetCommException(COMSTAT& comstat) const; + +private: + +}; + +inline BOOL COXSerialCommFile::IsOpen() const +{ + return GetSafeHandle() != NULL; +} + +inline HANDLE COXSerialCommFile::GetSafeHandle() const +{ + return this == NULL ? NULL : m_hCommDevice; +} + +#endif // __OXSCFILE_H_ diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSCSTP.H b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSCSTP.H new file mode 100644 index 0000000..01ace3a --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSCSTP.H @@ -0,0 +1,112 @@ +// ========================================================================== +// Class Specification : COXSerialCommSetup +// ========================================================================== + +// Header file : OXSCSTP.H + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// YES Is derived from CDialog +// YES Two stage creation (constructor & Initialize()) +// YES Has a message map +// YES Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// YES Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Description : +// COXSerialCommSetup class +// The COXSerialCommSetup is a standard dialog for setting the Serial +// Communication Configuration settings. This dialog can be popped up +// with the DoConfigDialog() function of the COXSerialCommConfig class. + +// Remark: +// + + +// Prerequisites (necessary conditions): +// + +///////////////////////////////////////////////////////////////////////////// + +#ifndef __OXSCSTP_H_ +#define __OXSCSTP_H_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + +#include "OXSCCFG.H" + +// private header +#include "OXRSERCM.H" + + +///////////////////////////////////////////////////////////////////////////// +class OX_CLASS_DECL COXSerialCommSetup : public CDialog +///////////////////////////////////////////////////////////////////////////// +{ +// Data Members +public: + const CString m_sCommTitle; + COXSerialCommConfig m_config; + + //{{AFX_DATA(COXSerialCommSetup) + enum { IDD = IDD_COMMSETUP }; + CString m_sBaudRate; + CString m_sDataBit; + CString m_sParity; + CString m_sPort; + CString m_sStopBit; + CString m_sFlowControl; + //}}AFX_DATA + + +protected: +private: + +// Member Functions +public: + COXSerialCommSetup(CString sTitle = _T(""), CWnd* pParent = NULL); + // --- In: sTitle: the title of the dialog box (used default title if ignored) + // pParent: parent window + // --- Out: none + // --- Returns: none + // --- Effect: constructs the dialog object + + +protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + + // Generated message map functions + //{{AFX_MSG(COXSerialCommSetup) + virtual BOOL OnInitDialog(); + virtual void OnOK(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + + CString BaudRateToString(UINT Val); + CString ParityToString(BYTE Val); + CString FlowControlToString(COXSerialCommConfig::EFlowControl eVal); + UINT BaudRateToVal(CString sString); + BYTE ParityToVal(CString sString); + COXSerialCommConfig::EFlowControl FlowControlToVal(CString sString); +private: + +}; +///////////////////////////////////////////////////////////////////////////// + +#endif //__OXSCSTP_H_ diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSEH.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSEH.h new file mode 100644 index 0000000..b44b311 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSEH.h @@ -0,0 +1,292 @@ +// ========================================================================== +// Class Specification : COXSEHException +// ========================================================================== + +// Header File : OXSEH.h + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// YES Derived from CException + +// NO Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// YES Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Desciption : +// This class is a C++ wrapper around Structured Exception Handling. +// SEH-exceptions that are thrown can now be catched using the +// C++ try - catch statements or by the MFC TRY - CATCH macros + +// Remark: +// Call the function EnableSEHTrapping() to enable this exception wrapper +// All SEH exceptions are from that point onwwards translated to a +// COXSEHException* exception. +// The original exception code can be retrieved by calling the member function +// GetCause() + +// Example + +// COXSEHException::EnableSEHTrapping(); +// TRY +// { +// int x = 1; +// x = x / 0; +// } +// CATCH(COXSEHException, px) +// { +// if (pe->GetCause() == EXCEPTION_INT_DIVIDE_BY_ZERO) +// ::AfxMessageBox(_T("Integer divide by zero trapped with TRY, CATCH")); +// } +// END_CATCH + +// COXSEHException::EnableSEHTrapping(); +// try +// { +// int x = 1; +// x = x / 0; +// } +// catch(COXSEHException* px) +// { +// if (pe->GetCause() == EXCEPTION_INT_DIVIDE_BY_ZERO) +// ::AfxMessageBox(_T("Integer divide by zero trapped with try, catch")); +// px->Delete(); +// } + +// Note that all settings are organized on a per-thread base. So functions such as +// EnableSEHTrapping() will enable trapping in the current thread. +// If you are building a multi-threaded application and you want to trap all +// exceptions, you should call EnableSEHTrapping() from within every thread + +// Prerequisites (necessary conditions): +// This wrapper works only in WIN32 because WIN16 does not support SEH + +///////////////////////////////////////////////////////////////////////////// +#ifndef __SEHEXCPT_H__ +#define __SEHEXCPT_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + +#include // For _set_se_translator + +// If you do not want to trap Floating Point exceptions, define OXSEH_USE_FP as 0 +#ifndef OXSEH_USE_FP +#define OXSEH_USE_FP 1 +#endif //OXSEH_USE_FP + +#if (0 < OXSEH_USE_FP) +#include +#endif // (0 < OXSEH_USE_FP) + + +class OX_CLASS_DECL COXSEHException : public CException +{ +DECLARE_DYNAMIC(COXSEHException) + +// Data members ------------------------------------------------------------- +public: + +protected: + _EXCEPTION_POINTERS* m_pEP; + + typedef void (__cdecl *_se_translator_function)( unsigned int, _EXCEPTION_POINTERS*); + class OX_CLASS_DECL COXSEHState : public CNoTrackObject + { + public: + BOOL m_bSEHTrapping; + BOOL m_bFPTrapping; + unsigned int m_nPreviousFPControl; + unsigned int m_nFPControlMask; + _se_translator_function m_pfPreviousTranslator; + + COXSEHState() + : + m_bSEHTrapping(FALSE), + m_bFPTrapping(FALSE), + m_nPreviousFPControl(0), +#if (0 < OXSEH_USE_FP) + m_nFPControlMask(_EM_ZERODIVIDE | _EM_INVALID | _EM_DENORMAL | _EM_OVERFLOW | _EM_UNDERFLOW | _EM_INEXACT), +#else + m_nFPControlMask(0), +#endif // (0 < OXSEH_USE_FP) + m_pfPreviousTranslator(0) + { + } + + }; + static CThreadLocal m_pSEHState; + +private: + +// Member functions --------------------------------------------------------- +public: + static void EnableSEHTrapping(BOOL bTrapFP = FALSE); + // --- In : bTrapFP : Whether floating point exceptions should be trapped as well + // --- Out : + // --- Returns : + // --- Effect : Start the mapping of SEH to C++ exceptions; + + static void DisableSEHTrapping(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Stops the mapping of SEH to C++ exceptions; + // EnableSEHTrapping() must have been called previously + + static BOOL IsSEHTrappingEnabled(); + // --- In : + // --- Out : + // --- Returns : Whether the mapping of SEH to C++ exceptions is enabled + // --- Effect : + + static BOOL IsSEHFPTrappingEnabled(); + // --- In : + // --- Out : + // --- Returns : Whether FP exception will be trapped + // --- Effect : + + COXSEHException(_EXCEPTION_POINTERS* pEP = NULL); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Contructor of object + // It will initialize the internal state + + UINT GetCause(); + // --- In : + // --- Out : + // --- Returns : The cause why the exception was thrown. + // It is the code used by SEH (e.g. EXCEPTION_ACCESS_VIOLATION) + // See for possible codes + // --- Effect : + +#ifdef _DEBUG + virtual void Dump(CDumpContext&) const; + virtual void AssertValid() const; +#endif //_DEBUG + + + virtual ~COXSEHException(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of object + +protected: + static void __cdecl MapSEHToCPPExceptions(UINT uCode, _EXCEPTION_POINTERS* pep); + +private: + +// Message handlers --------------------------------------------------------- + +}; + +class OX_CLASS_DECL COXSEHMemoryException : public COXSEHException +{ +DECLARE_DYNAMIC(COXSEHMemoryException) +// Data members ------------------------------------------------------------- +// Member functions --------------------------------------------------------- +public: + COXSEHMemoryException(_EXCEPTION_POINTERS* pEP = NULL); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Contructor of object + // It will initialize the internal state + + BOOL IsInfoAvailable(); + // --- In : + // --- Out : + // --- Returns : Whether extra information is available + // (Read/Write flag and virtual memory address) + // --- Effect : + + BOOL GetReadWriteFlag(); + // --- In : + // --- Out : + // --- Returns : Whether the exception occurred when trying to read (FALSE) + // or to write (TRUE) to a virtual memory address + // --- Effect : Be sure that IsInfoAvailable() == TRUE + + DWORD GetAddress(); + // --- In : + // --- Out : + // --- Returns : Get the virtual memory address that resulted in an exception + // --- Effect : + // --- Effect : Be sure that IsInfoAvailable() == TRUE + +#ifdef _DEBUG + virtual void Dump(CDumpContext&) const; + virtual void AssertValid() const; +#endif //_DEBUG + + virtual ~COXSEHMemoryException(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of object +}; + +class OX_CLASS_DECL COXSEHMathException : public COXSEHException +{ +DECLARE_DYNAMIC(COXSEHMathException) +// Data members ------------------------------------------------------------- +// Member functions --------------------------------------------------------- +public: + COXSEHMathException(_EXCEPTION_POINTERS* pEP = NULL); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Contructor of object + // It will initialize the internal state + +#ifdef _DEBUG + virtual void Dump(CDumpContext&) const; + virtual void AssertValid() const; +#endif //_DEBUG + + virtual ~COXSEHMathException(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of object +}; + +class OX_CLASS_DECL COXSEHSpecialException : public COXSEHException +{ +DECLARE_DYNAMIC(COXSEHSpecialException) +// Data members ------------------------------------------------------------- +// Member functions --------------------------------------------------------- +public: + COXSEHSpecialException(_EXCEPTION_POINTERS* pEP = NULL); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Contructor of object + // It will initialize the internal state + +#ifdef _DEBUG + virtual void Dump(CDumpContext&) const; + virtual void AssertValid() const; +#endif //_DEBUG + + virtual ~COXSEHSpecialException(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of object +}; + +#endif +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSERCOM.H b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSERCOM.H new file mode 100644 index 0000000..a6405d8 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSERCOM.H @@ -0,0 +1,5 @@ +#include "OXSCFILE.H" +#include "OXSCEXCP.H" +#include "OXSCSTP.H" +#include "OXSCCFG.H" +#include "OXSCFILE.H" diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSERCOM.RC b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSERCOM.RC new file mode 100644 index 0000000..3e4c8b5 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSERCOM.RC @@ -0,0 +1,257 @@ +//Microsoft Developer Studio generated resource script. +// +#ifndef _OXSerCom_RC__ +#define _OXSerCom_RC__ + +#include "OXRSERCM.H" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "OXRSERCM.H\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_COMMSETUP DIALOG DISCARDABLE 0, 0, 163, 107 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Serial Comm Setup" +FONT 8, "Helv" +BEGIN + LTEXT "&Port:",-1,6,9,17,8 + COMBOBOX IDC_PORT,45,7,48,50,CBS_DROPDOWNLIST | CBS_HASSTRINGS | + WS_VSCROLL | WS_TABSTOP + LTEXT "&Baud Rate:",-1,6,24,38,8,NOT WS_GROUP + COMBOBOX IDC_BAUDRATE,45,22,48,84,CBS_DROPDOWNLIST | + CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP + LTEXT "&Data Bits:",-1,6,39,34,8,NOT WS_GROUP + COMBOBOX IDC_DATABIT,45,37,48,57,CBS_DROPDOWNLIST | + CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP + LTEXT "P&arity:",-1,6,54,22,8,NOT WS_GROUP + COMBOBOX IDC_PARITY,45,52,48,57,CBS_DROPDOWNLIST | CBS_HASSTRINGS | + WS_VSCROLL | WS_TABSTOP + LTEXT "&Stop Bits:",-1,6,69,33,8,NOT WS_GROUP + COMBOBOX IDC_STOPBIT,45,67,48,33,CBS_DROPDOWNLIST | + CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "&Ok",IDOK,107,6,50,14 + PUSHBUTTON "&Cancel",IDCANCEL,107,23,50,14 + LTEXT "&Flow Ctrl:",-1,6,84,33,8,NOT WS_GROUP + COMBOBOX IDC_FLOWCONTROL,45,82,48,42,CBS_DROPDOWNLIST | + CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog Info +// + +IDD_COMMSETUP DLGINIT +BEGIN + IDC_PORT, 0x403, 6, 0 +0x6f43, 0x206d, 0x0031, + IDC_PORT, 0x403, 6, 0 +0x6f43, 0x206d, 0x0032, + IDC_PORT, 0x403, 6, 0 +0x6f43, 0x206d, 0x0033, + IDC_PORT, 0x403, 6, 0 +0x6f43, 0x206d, 0x0034, + IDC_PORT, 0x403, 6, 0 +0x6f43, 0x206d, 0x0035, + IDC_PORT, 0x403, 6, 0 +0x6f43, 0x206d, 0x0036, + IDC_PORT, 0x403, 6, 0 +0x6f43, 0x206d, 0x0037, + IDC_PORT, 0x403, 6, 0 +0x6f43, 0x206d, 0x0038, + IDC_PORT, 0x403, 6, 0 +0x6f43, 0x206d, 0x0039, + IDC_BAUDRATE, 0x403, 4, 0 +0x3131, 0x0030, + IDC_BAUDRATE, 0x403, 4, 0 +0x3033, 0x0030, + IDC_BAUDRATE, 0x403, 4, 0 +0x3036, 0x0030, + IDC_BAUDRATE, 0x403, 5, 0 +0x3231, 0x3030, "\000" + IDC_BAUDRATE, 0x403, 5, 0 +0x3432, 0x3030, "\000" + IDC_BAUDRATE, 0x403, 5, 0 +0x3834, 0x3030, "\000" + IDC_BAUDRATE, 0x403, 5, 0 +0x3639, 0x3030, "\000" + IDC_BAUDRATE, 0x403, 6, 0 +0x3431, 0x3034, 0x0030, + IDC_BAUDRATE, 0x403, 6, 0 +0x3931, 0x3032, 0x0030, + IDC_BAUDRATE, 0x403, 6, 0 +0x3833, 0x3034, 0x0030, + IDC_BAUDRATE, 0x403, 6, 0 +0x3735, 0x3036, 0x0030, + IDC_BAUDRATE, 0x403, 7, 0 +0x3131, 0x3235, 0x3030, "\000" + IDC_DATABIT, 0x403, 2, 0 +0x0034, + IDC_DATABIT, 0x403, 2, 0 +0x0035, + IDC_DATABIT, 0x403, 2, 0 +0x0036, + IDC_DATABIT, 0x403, 2, 0 +0x0037, + IDC_DATABIT, 0x403, 2, 0 +0x0038, + IDC_PARITY, 0x403, 5, 0 +0x7645, 0x6e65, "\000" + IDC_PARITY, 0x403, 4, 0 +0x644f, 0x0064, + IDC_PARITY, 0x403, 10, 0 +0x6f4e, 0x5020, 0x7261, 0x7469, 0x0079, + IDC_PARITY, 0x403, 5, 0 +0x614d, 0x6b72, "\000" + IDC_PARITY, 0x403, 6, 0 +0x7053, 0x6361, 0x0065, + IDC_STOPBIT, 0x403, 2, 0 +0x0031, + IDC_STOPBIT, 0x403, 2, 0 +0x0032, + IDC_FLOWCONTROL, 0x403, 5, 0 +0x6f4e, 0x656e, "\000" + IDC_FLOWCONTROL, 0x403, 9, 0 +0x6148, 0x6472, 0x6177, 0x6572, "\000" + IDC_FLOWCONTROL, 0x403, 11, 0 +0x6f58, 0x206e, 0x202f, 0x6f58, 0x6666, "\000" + 0 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_DEFAULT_TITLE "General Purpose Comm. Handler" + IDS_MSG_DEFAULT_CONFIG "%s:\nConfiguration file not found.\nDefault Parameters Assumed." + IDS_MSG_BAD_CONFIG "%s:\nError loading the parameters file.\nDefault Parameters Assumed." + IDS_MSG_NO_SAVE "%s:\nError saving the parameters file." + IDS_MSG_NO_PORT_AVAILABLE + "The selected COM port is either not supported\nor is being used by another application.\nPlease select another port." + IDS_MSG_PORT_UNAVAILABLE + "%s:\nFailed to open the communication device.\nThe configurated COM port is either not supported\nor is being used by another application." + IDS_SERIAL_NONAME "Unknown Name" + IDS_SERIAL_NONE "No Error" + IDS_SERIAL_NOT_AVAILABLE + "%1:\nThe selected COM port is either not supported\nor is being used by another application.\nPlease select another port." + IDS_SERIAL_BREAK_DETECT "%1:\nBreak Detect !" + IDS_SERIAL_RX_TIMEOUT "%1:\nRx Timeout !" + IDS_SERIAL_CTS_TIMEOUT "%1:\nClear To Send Timeout !" + IDS_SERIAL_DSR_TIMEOUT "%1:\nData Set Ready Timeout !" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_SERIAL_CD_TIMEOUT "%1:\nCarrier Detect Timeout !" + IDS_SERIAL_FRAME_ERROR "%1:\nFrame Error !" + IDS_SERIAL_PARITY_ERROR "%1:\nParity Error !" + IDS_SERIAL_OVERRUN_ERROR "%1:\nOverrun Error !" + IDS_SERIAL_RX_QUEUE_OVERFLOW "%1:\nRx Buffer Overflow !" + IDS_SERIAL_TX_QUEUE_FULL "%1:\nTx Buffer Full !" + IDS_SERIAL_WM_QUIT_RECEIVED "%1:\nUnexpected WM_QUIT received !" + IDS_SERIAL_IO_ERROR "%1:\nI/O Error !" + IDS_SERIAL_MODE_ERROR "%1:\nMode Error ! (request mode not supported)" + IDS_SERIAL_UNKNOWN_ERROR "%1:\nUnknown Error !" + IDS_SERIAL_LOST_MESSAGES + "FATAL ERROR!\nThe Windows message queue is full!\nSerial Comm messages lost!\nIncrease the message queue depth." + IDS_DEFAULTFILE "unknown.cfg" + IDS_110 "110" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_300 "300" + IDS_600 "600" + IDS_1200 "1200" + IDS_2400 "2400" + IDS_4800 "4800" + IDS_9600 "9600" + IDS_14400 "14400" + IDS_19200 "19200" + IDS_38400 "38400" + IDS_56000 "56000" + IDS_128000 "128000" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_256000 "256000" + IDS_EVEN "Even" + IDS_ODD "Odd" + IDS_NOPARITY "No Parity" + IDS_MARK "Mark" + IDS_SPACE "Space" + IDS_NONE "None" + IDS_HARDWARE "Hardware" + IDS_XONXOFF "Xon / Xoff" + IDS_NOTIMER_AVAIL "RS232 Driver Internal Error:\nNo timer available to handle the timeout function.\nSolution: close some other application and then restart this one." + IDS_57600 "57600" + IDS_115200 "115200" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED +#endif //_OXSerCom_RC__ diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSPtr.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSPtr.h new file mode 100644 index 0000000..123ae5d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSPtr.h @@ -0,0 +1,381 @@ +// ========================================================================== +// Template Specification : COXSPtr +// ========================================================================== + +// Header file : OXSPtr.h + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// NO Derived from + +// NO Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// YES Uses exceptions +// (CMemoryException by NULL-pointer dereference) + +// ////////////////////////////////////////////////////////////////////////// + +// Desciption : +// This class works together with CObject derived classesto provide +// a solution for smart pointers and objects +// All access to the object must be done through its smart pointer + +// Normally construction of the object is done together with the +// smart pointer. So when a smart pointer is constructed it also constructs +// the object +// When you specify NULL as parameter when construcing a smart pointer +// it will not construct an object + +// The lifetime of objects is ruled by reference counting +// When no references to the object exists it will be deleted. +// You can remove the reference to an object explicitely by assigning +// NULL to the smart pointer +// You can also construct a new object explicitely by assigning the special value +// NEW_OBJECT to it. + +// Apart from construction and destruction everything that can be done with a +// normal (dumb) pointer can also be done with a smart pointer + +// Remark: +// The runtime overhead of using a smart pointer instead of a dumb pointer +// are very minimal +// COXSPtr is a class with no base class and no virtual functions +// The size of a smart pointer thus equals the size of its members : +// two pointer (to the object and to the reference count). +// All access functions of COXSPtr are inline and are very short. +// E.g. operator-> just checks whether the pointer is not NULL +// and returns it then +// So computational overhead is minimal too. + +// When you try to dereference a smart pointer that is NULL +// a CMemoryException will be thrown (and in DEBUG the function will ASSERT) + +// Prerequisites (necessary conditions): +// + +///////////////////////////////////////////////////////////////////////////// +#ifndef __OXSPTR_H__ +#define __OXSPTR_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + + +// Defining ENABLE_SMART_WRAPPER enables the possibility to wrap a smart pointer +// around an existing object. The locking functions are also available then. +// By default this is not defined and thus not enabled +// #define ENABLE_SMART_WRAPPER 1 + +// Defining DISABLE_SMART_DOWNCAST_TEST disnables the runtime test when a +// smart pointer is downcasted (from base class to derived class) +// By default this is not defined and thus enabled +// #define DISABLE_SMART_DOWNCAST_TEST 1 + +// Defining DISABLE_SMART_SERIALIZATION disnables the serialization functionality +// of a smart pointer (and groups) +// By default this is not defined and thus enabled +// #define DISABLE_SMART_SERIALIZATION 1 + +// Defining DISABLE_SMART_CHECK disables the runtime checks during Debug +// These checks include wrapping a smart pointer around an existing object, +// a smart pointer around a steck based object and cyclic graphs. +// By default this is not defined and thus enabled +// #define DISABLE_SMART_CHECK 1 + +// Use special creator object (NEW_OBJECT) that can be used in the +// constructor and assignment operator of a smart pointer +// to construct a new object +class OX_CLASS_DECL COXObjectCreator + { + // This class is only used to mark a special parameter + // during construction or assignment of a smart pointer + // No actual members are needed + }; +extern OX_CLASS_DECL COXObjectCreator NEW_OBJECT; + +template class OX_CLASS_DECL COXSPtr; +#ifndef DISABLE_SMART_SERIALIZATION +template CArchive& AFXAPI operator<<(CArchive& ar, const COXSPtr& pSObj); +template CArchive& AFXAPI operator>>(CArchive& ar, COXSPtr& pSObj); +#endif // DISABLE_SMART_SERIALIZATION + +template class OX_CLASS_DECL COXSPtr +{ +// Data members ------------------------------------------------------------- +public: +protected: + T* m_pSmartObject; + LONG* m_pnReferenceCount; + +private: + +// Member functions --------------------------------------------------------- +public: + COXSPtr(const COXObjectCreator& objCreator = NEW_OBJECT); + // --- In : objCreator : NEW_OBJECT : Creates a new object + // --- Out : + // --- Returns : + // --- Effect : This constructs a smart pointer and it also + // creates the associated object + // This is the default constructor + // The only valid parameter is NEW_OBJECT + +#ifndef ENABLE_SMART_WRAPPER + COXSPtr(const COXObjectCreator* pNull); + // --- In : pNull : NULL + // --- Out : + // --- Returns : + // --- Effect : This constructs a smart NULL pointer + // The only valid parameter is NULL + +#else + + COXSPtr(T* pSObj); + // --- In : pSObj : Pointer to the object + // around which this smart pointer will be created + // or NULL : Makes this a NULL-pointer + // --- Out : + // --- Returns : + // --- Effect : This constructs a smart pointer around an existing + // object or constructs a smart NULL pointer + // The object's lifetime is now decided by the smart pointer + // You should not delete the object directly +#endif // ENABLE_SMART_WRAPPER + + COXSPtr(const COXSPtr& sPtr); + // --- In : sPtr : The smart pointer to be copied + // --- Out : + // --- Returns : + // --- Effect : Copy constructor + + COXSPtr& operator=(const COXSPtr& sPtr); + // --- In : sPtr : A smart pointer + // --- Out : + // --- Returns : + // --- Effect : Assignment operator + + COXSPtr& operator=(const COXObjectCreator& objCreator); + // --- In : objCreator : NEW_OBJECT + // --- Out : + // --- Returns : + // --- Effect : Constructs a new object and assigns it to this smart pointer + // The only valid parameter is NEW_OBJECT + +#ifndef ENABLE_SMART_WRAPPER + COXSPtr& operator=(const COXObjectCreator* pNull); + // --- In : pNull : NULL + // --- Out : + // --- Returns : + // --- Effect : Makes this smart pointer a smart NULL pointer + // The only valid parameter is NULL + +#else + + COXSPtr& operator=(T* pSObj); + // --- In : pSObj : A pointer to the object or NULL + // --- Out : + // --- Returns : + // --- Effect : Assignment operator + // If pSObj == NULL this smart pointer becomes a smart NULL pointer + // The object's lifetime is now decided by the smart pointer + // You should not delete the object directly +#endif // ENABLE_SMART_WRAPPER + + T& operator*() const; + // throw(CMemoryException); + // --- In : + // --- Out : + // --- Returns : The object pointed to + // --- Effect : Dereference operator + + T* operator->() const; + // throw(CMemoryException); + // --- In : + // --- Out : + // --- Returns : Pointer to the object + // --- Effect : Member operator + + operator T*() const; + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Conversion operator + + BOOL operator!() const; + // --- In : + // --- Out : + // --- Returns : Whether this pointer points to NULL (TRUE) or to + // a valid object (FALSE) + // --- Effect : + + BOOL operator==(T* pSObj) const; + // --- In : pSObj : Pointer to a smart element + // --- Out : + // --- Returns : Whether this pointer points to the specified + // object + // --- Effect : + + BOOL operator!=(T* pSObj) const; + // --- In : pSObj : Pointer to a smart element + // --- Out : + // --- Returns : Whether this pointer does not point to the specified + // object + // --- Effect : + +#ifndef DISABLE_SMART_SERIALIZATION + friend CArchive& AFXAPI operator<<(CArchive& ar, const COXSPtr& pSObj); + // --- In : ar : Archive to store the object in + // pSObj : Object to store + // --- Out : + // --- Returns : The archive itself + // --- Effect : This functions serializes the object wrapped by this smart pointer + // Object I/O is pointer based to avoid added construction overhead and + // to support polymorphism + // Use the Serialize member function directly for embedded objects. + + friend CArchive& AFXAPI operator>>(CArchive& ar, COXSPtr& pSObj); + // --- In : ar : Archive to load the object from + // pSObj : Object pointer to load into + // --- Out : + // --- Returns : The archive itself + // --- Effect : This functions serializes the object into this smart pointer + // Object I/O is pointer based to avoid added construction overhead and + // to support polymorphism + // Use the Serialize member function directly for embedded objects. +#endif // DISABLE_SMART_SERIALIZATION + + COXSPtr& PolyAssign(T* pSObj, LONG* pnReferenceCount); + // --- In : pSObj : Pointer to a T or T derived object + // pnReferenceCount : Pointer to its reference count + // --- Out : + // --- Returns : A smart pointer wrapping the object + // --- Effect : Assignment function, internally used for + // polymorphic assignment + // Do not call this function directly, use + // the operator <<= instead + + LONG* GetRefCountAddress() const; + // --- In : + // --- Out : + // --- Returns : The address of the reference count of the object + // or NULL when smart null pointer + // --- Effect : Helper function, internally used for polymorphic assignment + // Do not call this function directly, use + // the operator <<= instead + +#ifdef ENABLE_SMART_WRAPPER + // CAUTION : THE NEXT THREE FUNCTIONS ARE NOT INTENDED FOR NORMAL USE + // THEY DISABLE A LOT OF IMPORTANT FUNCTIONALITY AND + // SHOULD ONLY BE USED IN EXCEPTIONAL CIRCUMSTANCES + + void Lock(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Locks all the smart pointers that point to the object + // this smart pointer points to + // Locking will disable automatic deletion when the + // reference count reaches 0 + + void Unlock(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Unlocks all the smart pointers that point to the object + // this smart pointer points to + // Unlocking will re-enable automatic deletion when the + // reference count reaches 0 + + BOOL IsLocked(); + // --- In : + // --- Out : + // --- Returns : Whether the smart pointer is locked or not + // --- Effect : +#endif // ENABLE_SMART_WRAPPER + +#ifdef _DEBUG + void AssertValid() const; +#endif // _DEBUG + + ~COXSPtr(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : This destructs the pointer object + +protected: + LONG Grab(); + LONG Release(); + +private: + +}; + +template +inline COXSPtr& SmartUpCast(COXSPtr& pBaseObj, const COXSPtr& pObj) + // --- In : pBaseObj : Smart pointer you want to assign to + // pObj : Smart pointer being assigned + // --- Out : + // --- Returns : The smart pointer assigned to + // --- Effect : This is the 'polymorphic assignemnt' operator + // A smart pointer wrapping a T object can be assigned to a + // smart pointer normally wrapping BASE_T object, + // if T* could be assigned to BASE_T* + // This means T must be derived from BASE_T + { + // The next line will generate a compiler error (cannot convert parameter 1 from ...) + // if T (pObj) is not derived from BASE_T (pBaseObj) + return pBaseObj.PolyAssign(pObj, pObj.GetRefCountAddress()); + }; + +template +inline COXSPtr& operator<<=(COXSPtr& pBaseObj, const COXSPtr& pObj) + { + return SmartUpCast(pBaseObj, pObj); + }; + +template +inline COXSPtr& SmartDownCast(COXSPtr& pObj, const COXSPtr& pBaseObj) + // --- In : pObj : Smart pointer you want to assign to + // pBaseObj : Smart pointer being assigned + // --- Out : + // --- Returns : The smart pointer assigned to + // --- Effect : This is the 'cast assignemnt' operator + // A smart pointer wrapping a BASE_T object will be assigned to a + // smart pointer wrapping a T object, + // A runtime check will be performed, to check the validity + // When an incorrect cast is performed a smart NULL pointer is returned + { +#ifndef DISABLE_SMART_DOWNCAST_TEST + // The macro DYNAMIC_DOWNCAST does not work with templates, so we mimic that functionality + // ... Build a (temporary T object) just to get to the runtime class + COXSPtr pDummyObj; + if (pBaseObj != NULL && !pBaseObj->IsKindOf(pDummyObj->GetRuntimeClass())) + { + TRACE(_T("SmartDownCast (Cast assignment) returning smart NULL pointer\n")); + return pObj.PolyAssign(NULL, NULL); + } + else +#endif // DISABLE_SMART_DOWNCAST_TEST + return pObj.PolyAssign((T*)(BASE_T*)pBaseObj, pBaseObj.GetRefCountAddress()); + }; + +template +inline COXSPtr& operator>>=(COXSPtr& pObj, const COXSPtr& pBaseObj) + { + return SmartDownCast(pObj, pBaseObj); + }; + +#include "OXSPtr.inl" + +#endif // __OXSPTR_H__ +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSPtr.inl b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSPtr.inl new file mode 100644 index 0000000..f1eb602 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSPtr.inl @@ -0,0 +1,517 @@ +// ========================================================================== +// Template Implementation : COXSPtr +// ========================================================================== + +// Source file : OXSPtr.inl + +// Source : R.Mortelmans +// Creation Date : 19th December 1995 +// Last Modification : 23rd January 1996 + +// ////////////////////////////////////////////////////////////////////////// +// Definition of static members + +#ifndef new +#define new DEBUG_NEW +#define _REMOVE_DEBUG_NEW +#endif + +#if defined(_DEBUG) && !defined(DISABLE_SMART_CHECK) +#include "OXSWatcher.h" +extern COXSmartWatcher smartWatcher; +// We will use sizeof(*pObj) to get the size of the object pointed to by the smart pointer +// This will not be correct when polymorhic assignment is used, but it's the best we can do +#define REG_PTR_OBJ(pObj) smartWatcher.RegisterPointerAndObject(this, pObj, sizeof(*pObj)) +#define UNREG_OBJ(pObj) smartWatcher.UnRegisterObject(pObj) +#define UNREG_PTR(pObj) smartWatcher.UnRegisterPointer(this, pObj) +#define IS_REG_OBJ(pObj) smartWatcher.IsRegisteredObject(pObj) +#else +#define REG_PTR_OBJ(pObj) +#define UNREG_OBJ(pObj) +#define UNREG_PTR(pObj) +#define IS_REG_OBJ(pObj) (FALSE) +#endif // _DEBUG + +// Use special ASSERT_VALID_SPTR macro to check the validity of a +// smart pointer. Because COXSPtr is not derived from CObject the +// normal ASSERT_VALID does not work + +#ifdef _DEBUG +#define ASSERT_VALID_SPTR(pSPtr) (pSPtr)->AssertValid() +#else +#define ASSERT_VALID_SPTR(pSPtr) +#endif // _DEBUG + +// Data members ------------------------------------------------------------- +// protected: + // T* m_pSmartObject; + // --- Pointer to the object this smart pointer references + // or NULL when the smart pointer does not point to anything + + // LONG* m_pnReferenceCount; + // --- Pointer to the reference count of the object pointed to + // or NULL when the smart pointer does not point to anything + // When the object is locked the reference count is a negative number + +// private: + +// Member functions --------------------------------------------------------- +// public: + +template inline COXSPtr::COXSPtr(const COXObjectCreator& objCreator /* = NEW_OBJECT */) + : + m_pSmartObject(NULL), + m_pnReferenceCount(NULL) + { + UNUSED(objCreator); + ASSERT_VALID_SPTR(this); + // ... May only be used to create a new object + ASSERT(&objCreator == &NEW_OBJECT); + + m_pSmartObject = new T; + m_pnReferenceCount = new LONG(0); + // ... Register new smart pointer (for debugging purposes only) + Grab(); + + ASSERT_VALID_SPTR(this); + } + +#ifndef ENABLE_SMART_WRAPPER +template inline COXSPtr::COXSPtr(const COXObjectCreator* pNull) + : + m_pSmartObject(NULL), + m_pnReferenceCount(NULL) + { + UNUSED(pNull); + // ... May only assign NULL pointer + ASSERT(pNull == NULL); + ASSERT_VALID_SPTR(this); + } + +#else + +template inline COXSPtr::COXSPtr(T* pSObj) + : + m_pSmartObject(pSObj), + m_pnReferenceCount(NULL) + { + // ... May only assign valid object + ASSERT(pSObj == NULL || AfxIsValidAddress(pSObj, sizeof(T))); + + if (pSObj != NULL) + { + m_pnReferenceCount = new LONG(0); + // Make sure this object does not have another smart pointer wrapped + // around it yet : For polymorhic assignemnt use SmartUpCast or operator<<= + ASSERT(!IS_REG_OBJ(m_pSmartObject)); + // ... Register new smart pointer (for debugging purposes only) + Grab(); + } + + ASSERT_VALID_SPTR(this); + } +#endif // ENABLE_SMART_WRAPPER + +template inline COXSPtr::COXSPtr(const COXSPtr& sPtr) + : + m_pSmartObject(sPtr.m_pSmartObject), + m_pnReferenceCount(sPtr.m_pnReferenceCount) + { + ASSERT_VALID_SPTR(&sPtr); + ASSERT_VALID_SPTR(this); + + if (m_pSmartObject != NULL) + { + // ... Should at least have one reference + ASSERT(sPtr.m_pnReferenceCount != NULL); + ASSERT(*sPtr.m_pnReferenceCount != 0); + Grab(); + } + + ASSERT_VALID_SPTR(this); + } + +template inline COXSPtr& COXSPtr::operator=(const COXSPtr& sPtr) + { + ASSERT_VALID_SPTR(this); + ASSERT_VALID_SPTR(&sPtr); + + // ... Make sure that assigning the same smart element (a = a) works too + if (m_pSmartObject != sPtr.m_pSmartObject) + { + if (m_pSmartObject != NULL) + Release(); + m_pSmartObject = sPtr.m_pSmartObject; + m_pnReferenceCount = NULL; + if (m_pSmartObject != NULL) + { + // ... Should at least have one reference + ASSERT(sPtr.m_pnReferenceCount != NULL); + ASSERT(*sPtr.m_pnReferenceCount != 0); + m_pnReferenceCount = sPtr.m_pnReferenceCount; + Grab(); + } + } + + ASSERT_VALID_SPTR(this); + return *this; + } + +template inline COXSPtr& COXSPtr::operator=(const COXObjectCreator& objCreator) + { + ASSERT_VALID_SPTR(this); + // ... May only be used to create a new object + ASSERT(&objCreator == &NEW_OBJECT); + + if (m_pSmartObject != NULL) + Release(); + m_pSmartObject = new T; + m_pnReferenceCount = new LONG(0); + // ... Register new smart pointer (for debugging purposes only) + Grab(); + + ASSERT_VALID_SPTR(this); + return *this; + } + +#ifndef ENABLE_SMART_WRAPPER +template inline COXSPtr& COXSPtr::operator=(const COXObjectCreator* pNull) + { + UNUSED(pNull); + ASSERT_VALID_SPTR(this); + // ... May only assign smart NULL pointer + ASSERT(pNull == NULL); + + if (m_pSmartObject != NULL) + Release(); + m_pSmartObject = NULL; + + ASSERT_VALID_SPTR(this); + return *this; + } + +#else + +template inline COXSPtr& COXSPtr::operator=(T* pSObj) + { + ASSERT_VALID_SPTR(this); + ASSERT(pSObj == NULL || AfxIsValidAddress(pSObj, sizeof(T))); + + // ... Make sure that assigning the same smart element (a = a) works too + if (m_pSmartObject != pSObj) + { + if (m_pSmartObject != NULL) + Release(); + m_pSmartObject = pSObj; + m_pnReferenceCount = NULL; + if (m_pSmartObject != NULL) + { + m_pnReferenceCount = new LONG(0); + // Make sure this object does not have another smart pointer wrapped + // around it yet : For polymorhic assignemnt use SmartUpCast or operator<<= + ASSERT(!IS_REG_OBJ(m_pSmartObject)); + // ... Register new smart pointer (for debugging purposes only) + Grab(); + } + } + + ASSERT_VALID_SPTR(this); + return *this; + } +#endif // ENABLE_SMART_WRAPPER + +template inline T& COXSPtr::operator*() const + { + ASSERT_VALID_SPTR(this); + if (m_pSmartObject == NULL) + { + TRACE(TEXT("COXSPtr::operator* : Trying to dereference a NULL pointer, throwing memory exception\n")); + ASSERT(FALSE); + AfxThrowMemoryException(); + } + return *m_pSmartObject; + } + +template inline T* COXSPtr::operator->() const + { + ASSERT_VALID_SPTR(this); + if (m_pSmartObject == NULL) + { + TRACE(TEXT("COXSPtr::operator-> : Trying to dereference a NULL pointer, throwing memory exception\n")); + ASSERT(FALSE); + AfxThrowMemoryException(); + } + return m_pSmartObject; + } + +template inline COXSPtr::operator T*() const + { + ASSERT_VALID_SPTR(this); + return m_pSmartObject; + } + + +template inline BOOL COXSPtr::operator!() const + { + ASSERT_VALID_SPTR(this); + return (m_pSmartObject == NULL); + } + +template inline BOOL COXSPtr::operator==(T* pSObj) const + { + ASSERT_VALID_SPTR(this); + return (m_pSmartObject == pSObj); + } + +template inline BOOL COXSPtr::operator!=(T* pSObj) const + { + ASSERT_VALID_SPTR(this); + return (m_pSmartObject != pSObj); + } + +#ifndef DISABLE_SMART_SERIALIZATION +template inline CArchive& AFXAPI operator<<(CArchive& ar, const COXSPtr& pSObj) + { + ASSERT_VALID_SPTR(&pSObj); + // Let the object archive itself + ar << pSObj.m_pSmartObject; + return ar; + } + +template inline CArchive& AFXAPI operator>>(CArchive& ar, COXSPtr& pSObj) + { + ASSERT_VALID_SPTR(&pSObj); + T* pObj = NULL; + + // Create an object dynamically when archiving + ar >> pObj; + + // Store the newly read object in this smart pointer + if (pSObj.m_pSmartObject != NULL) + pSObj.Release(); + pSObj.m_pSmartObject = pObj; + pSObj.m_pnReferenceCount = NULL; + + if (pSObj.m_pSmartObject != NULL) + { + pSObj.m_pnReferenceCount = new LONG(0); + // ... Register new smart pointer (for debugging purposes only) + pSObj.Grab(); + } + + ASSERT_VALID_SPTR(&pSObj); + + return ar; + } +#endif // DISABLE_SMART_SERIALIZATION + +template inline COXSPtr& COXSPtr::PolyAssign(T* pSObj, LONG* pnReferenceCount) + { + ASSERT_VALID_SPTR(this); + + // ... May only assign valid object + ASSERT(pSObj == NULL || AfxIsValidAddress(pSObj, sizeof(T))); + ASSERT(pnReferenceCount == NULL || AfxIsValidAddress(pnReferenceCount, sizeof(LONG))); + + // ... Make sure that assigning the same smart element (a = a) works too + if (m_pSmartObject != pSObj) + { + if (m_pSmartObject != NULL) + Release(); + m_pSmartObject = pSObj; + m_pnReferenceCount = NULL; + if (m_pSmartObject != NULL) + { + // ... Should at least have one reference + ASSERT(pnReferenceCount != NULL); + ASSERT(*pnReferenceCount != 0); + m_pnReferenceCount = pnReferenceCount; + Grab(); + } + } + + ASSERT_VALID_SPTR(this); + return *this; + } + +template inline LONG* COXSPtr::GetRefCountAddress() const + { + ASSERT_VALID_SPTR(this); + return m_pnReferenceCount; + } + +#ifdef ENABLE_SMART_WRAPPER +template inline void COXSPtr::Lock() + { + ASSERT_VALID_SPTR(this); +#ifdef _DEBUG + if (m_pSmartObject == NULL) + { + ASSERT(m_pnReferenceCount == NULL); + TRACE(TEXT("COXSPtr::Lock : Trying to lock smart NULL pointer, ignoring\n")); + } +#endif // _DEBUG + // Make reference count negative to mark a locked object + if (m_pnReferenceCount != NULL && 0 < *m_pnReferenceCount) + *m_pnReferenceCount = -*m_pnReferenceCount; + ASSERT_VALID_SPTR(this); + } + +template inline void COXSPtr::Unlock() + { + ASSERT_VALID_SPTR(this); +#ifdef _DEBUG + if (m_pSmartObject == NULL) + { + ASSERT(m_pnReferenceCount == NULL); + TRACE(TEXT("COXSPtr::Unlock : Trying to lock smart NULL pointer, ignoring\n")); + } +#endif // _DEBUG + // Make reference count positive to mark an unlocked object + if (m_pnReferenceCount != NULL && *m_pnReferenceCount < 0) + *m_pnReferenceCount = -*m_pnReferenceCount; + ASSERT_VALID_SPTR(this); + } + +template inline BOOL COXSPtr::IsLocked() + { + ASSERT_VALID_SPTR(this); + return (m_pnReferenceCount != NULL && *m_pnReferenceCount < 0); + } +#endif // ENABLE_SMART_WRAPPER + +#ifdef _DEBUG +template inline void COXSPtr::AssertValid() const + { + ASSERT(this != NULL); + ASSERT(AfxIsValidAddress(this, sizeof(COXSPtr))); + ASSERT(m_pSmartObject == NULL || AfxIsValidAddress(m_pSmartObject, sizeof(T))); + + // Because thee next check has to many exceptions we skip it. +/* +#if defined(_INC_CRTDBG) && !defined(DISABLE_SMART_CHECK) + // ... The next assert will fail if a block of memory was not allocated + // on the local heap. + // NEVER allocate objects for smart pointers on the STACK !!! + // ... Because of polymorphic assignment we use _msize(m_pSmartObject) instead of sizeof(T) + // ... NOTE : This test may also fail if a dynamically linked library (DLL) + // contains a static link to the run-time library. + // ... NOTE : If the object is not derived from CObject it will be allocated + // as a _NORMAL_BLOCK instead of _CLIENT_BLOCK. + // In this case you may recieve an assertion of the Debug Heap CRT library + // (pHead->nBlockUse == nBlockUse). You may savely ignore this assert + ASSERT(m_pSmartObject == NULL || + _CrtIsMemoryBlock((const void *)m_pSmartObject, _msize_dbg(m_pSmartObject, _CLIENT_BLOCK), NULL, NULL, NULL)); +#endif // _INC_CRTDBG +*/ + ASSERT(m_pnReferenceCount == NULL || AfxIsValidAddress(m_pnReferenceCount, sizeof(LONG))); + ASSERT( (m_pSmartObject == NULL && m_pnReferenceCount == NULL) || + (m_pSmartObject != NULL && m_pnReferenceCount != NULL) ); + ASSERT(m_pnReferenceCount == NULL || *m_pnReferenceCount != 0); +#ifndef ENABLE_SMART_WRAPPER + ASSERT(m_pnReferenceCount == NULL || 0 <= *m_pnReferenceCount); +#endif // ENABLE_SMART_WRAPPER + } +#endif // _DEBUG + +template inline COXSPtr::~COXSPtr() + { + ASSERT_VALID_SPTR(this); + if (m_pSmartObject != NULL) + Release(); + } + +// protected: +template inline LONG COXSPtr::Grab() + // --- In : + // --- Out : + // --- Returns : The reference count after Grab() + // --- Effect : Increases the reference count by 1 for not locked objects + // otherwise the reference count is decreased by 1 + { + ASSERT(m_pnReferenceCount != NULL); + REG_PTR_OBJ(m_pSmartObject); +#ifndef ENABLE_SMART_WRAPPER + ASSERT(0 <= *m_pnReferenceCount); + (*m_pnReferenceCount)++; + return *m_pnReferenceCount; +#else + if (0 <= *m_pnReferenceCount) + { + (*m_pnReferenceCount)++; + return *m_pnReferenceCount; + } + else + // Object is locked : use negative reference count + { + (*m_pnReferenceCount)--; + // ... Always return a positive number + return -*m_pnReferenceCount; + } +#endif // ENABLE_SMART_WRAPPER + } + +template inline LONG COXSPtr::Release() + // --- In : + // --- Out : + // --- Returns : The reference count after Release() + // --- Effect : Decreases the reference count of non-locked objects by 1 + // for loked objects the reference count is increased by 1 + // Deletes the object and the reference count when 0 is reached + { + ASSERT_VALID_SPTR(this); + ASSERT(m_pnReferenceCount != NULL); + ASSERT(*m_pnReferenceCount != 0); + + LONG nTempReferenceCount = 0; + if (*m_pnReferenceCount == 1) + { + // ... Unregister smart pointer (for debugging purposes only) + UNREG_OBJ(m_pSmartObject); + // ... Object will be deleted and thus does not have to be reachable + UNREG_PTR(NULL); + delete m_pnReferenceCount; + delete m_pSmartObject; + } +#ifndef ENABLE_SMART_WRAPPER + else + { + ASSERT(0 < *m_pnReferenceCount); + nTempReferenceCount = --(*m_pnReferenceCount); + UNREG_PTR(m_pSmartObject); + } +#else + else if (*m_pnReferenceCount == -1) + { + // Reference count of locked object reached 0, object NOT deleted + // ... Unregister smart pointer (for debugging purposes only) + UNREG_OBJ(m_pSmartObject); + // ... Object will be deleted and thus does not have to be reachable + UNREG_PTR(NULL); + delete m_pnReferenceCount; + } + else + { + if (0 <= *m_pnReferenceCount) + nTempReferenceCount = --(*m_pnReferenceCount); + else + // ... Object is locked : use negative reference count + // ... Always return a positive number + nTempReferenceCount = -(++(*m_pnReferenceCount)); + UNREG_PTR(m_pSmartObject); + } +#endif // ENABLE_SMART_WRAPPER + + m_pnReferenceCount = NULL; + m_pSmartObject = NULL; + return nTempReferenceCount; + } + + +// private: + +#ifdef _REMOVE_DEBUG_NEW +#undef new +#undef _REMOVE_DEBUG_NEW +#endif +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSRLZR.H b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSRLZR.H new file mode 100644 index 0000000..deee6ac --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSRLZR.H @@ -0,0 +1,130 @@ +// ========================================================================== +// Class Specification : COXSerializer +// ========================================================================== + +// Header file : OXSRLZR.H + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// NO Is derived from CWnd +// NO Two stage creation (constructor & Initialize()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// YES Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Description : +// COXSerializer class +// BOOL Initialize(LPCTSTR pFileName, CObject* pObject); +// --------------------------------------------------------- +// Set the filename that has to be serialized and its relative object. +// return FALSE only if an invalid string pointer or a CObject derived +// object pointer or a not serializable object is passed . +// Initialize can be called anytime. +// +// BOOL Load(BOOL DisplayException = TRUE); +// ---------------------------------------- +// Loads the object from the archive. The object and the file name +// are to be set by the Initialize function. +// DisplayException=FALSE: No messages by messagebox are displayed +// return FALSE if this object was not initialized or a Exception was +// encounterd. (see FileException,ArchiveException and MemoryException +// public data member to obtains more informations) +// +// BOOL Save(BOOL DisplayException = TRUE); +// ---------------------------------------------------- +// Store the object to the archive. The object and the file name +// are to be set by the Initialize function. +// DisplayException=FALSE: No messages by messagebox are displayed +// return FALSE if this object was not initialized or a Exception was +// encounterd. (see FileException,ArchiveException and MemoryException +// public data member to obtains more informations) + +// Remark: +// + + +// Prerequisites (necessary conditions): +// + +///////////////////////////////////////////////////////////////////////////// + + +#ifndef __OXSRLZR_H__ +#define __OXSRLZR_H__ + + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + + +class OX_CLASS_DECL COXSerializer : public CObject +{ +// Data Members +public: + CFileException m_fileException; // exceptions as data member + CArchiveException m_archiveException; // if you chose not to display exceptions + BOOL m_bMemoryException; // then you can check them via these members + +protected: + BOOL m_bInitialized; // if initialized or not + CString m_sFileName; // the filename of the file to serialize from or to + CObject* m_pObject; // the object to serialize + +private: + +// Member Functions +public: + COXSerializer(); + // --- In: none + // --- Out: none + // --- Returns: none + // --- Effect: constructs the object + + virtual ~COXSerializer(); + // --- In: none + // --- Out: none + // --- Returns: none + // --- Effect: destructs the object + + BOOL Initialize(CString sFileName, CObject* pObject); + // --- In: sFileName: the filename of the file you want to serialize to or from + // pObject: the parent object you want to serialize + // --- Out: none + // --- Returns: if the initialization was successful + // --- Effect: initialize and checks if the object is serializable + + BOOL Load(BOOL bDisplayException = TRUE); + // --- In: bDisplayException: if the exception is reported + // --- Out: none + // --- Returns: if successful or not + // --- Effect: loads the object (see initialize) from file + + BOOL Save(BOOL bDisplayException = TRUE); + // --- In: bDisplayException: if the exception is reported + // --- Out: none + // --- Returns: if successful or not + // --- Effect: saves the object (see initialize) to file + +protected: + +private: +}; + +#endif // __SERIALIZE_ENH_H__ + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSendMail.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSendMail.h new file mode 100644 index 0000000..6d521b7 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXSendMail.h @@ -0,0 +1,227 @@ +// ========================================================================== +// Class Specification : COXSendMail +// ========================================================================== + +// Header file : OXSendMail.h + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// YES Derived from CObject + +// NO Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// NO Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Desciption : +// The COXSendMail class is designed to send Mail from Windows NT service applications +// like the Microsoft IIS server. The class has an extremely simple interface which +// enables you to send mail with only 3 function calls. +// The COXSendMail class is based on our MFC framework for extended MAPI (through +// OLE Messaging). This framework provides 14 powerful classes which allow you to add +// quickly and easily the ability to send and receive mail messages to your MFC application. +// It also enables easy interaction with folders and address books. You can create +// programmable messaging objects. The functionality of these objects can be used to build +// workflow automation solutions. +// You can add different kind of recipients (CC, BCC, distribution lists) and attachments +// (binary, ole-objects) and send it to a MAPI compatible mail system (Exchange, Microsoft +// Mail, Internet Mail, ...). +// + +// Remark: +// If your NT service application logs on with a specific user account you must provide an +// additional privilege for this account: the user-right "Restore Files and Directories" must +// be granted. If the service uses the system account you have to impersonate a specific +// user account if you send a message. For example, if you use the Microsoft IIS to call +// your ISAPI extensions, the IIS will impersonate the anonymous WWW-account ‘USR_COMPUTER_NAME’ +// before calling your extension DLL. +// You have to provide a suitable Profile for that user account. If MAPI logs on to a store or +// transport provider it uses a MAPI profile which defines the providers to use. +// Instantiate a COXSendMail object and call the Logon() function with the profile name and +// password as parameters. Call the CreateMessage() function and add your recipients and attachments +// with the AddRecipient() and AddAttachment() functions. Finally call the SendMessage() function +// and you are done. +// +// *** There are two compile version of this class. One that uses our OXMapi framework (don't define +// the OX_MAPI_DIRECT switch. And one that uses extended MAPI direct (use the #define OX_MAPI_DIRECT +// switch. + + +// Prerequisites (necessary conditions): +// + +///////////////////////////////////////////////////////////////////////////// + +#ifndef __SENDMAIL_H__ +#define __SENDMAIL_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + + +// See the *** remark section for the following switch +//#define OX_MAPI_DIRECT + +#ifndef OX_MAPI_DIRECT +#include "oxmdisp.h" +#else +#include +#endif + + +#define CRecipientArray CArray +#define CAttachmentArray CArray +#define CInternRecipientArray CArray +#define CInternAttachmentArray CArray + +class OX_CLASS_DECL COXSendMail : public CObject +{ +// Data Members +public: + enum ERecipientType + { + rtTO = 1, + rtCC = 2, + rtBCC = 3 + }; + enum EAttachmentType + { + atFileData = 1, + atFileLink = 2, + atOleObject = 3 + }; + class OX_CLASS_DECL CMessage + { + friend COXSendMail; + // Data Members + public: + CString m_sSubject; + CString m_sContent; + + protected: + struct SRecipient + { + CString sName; + ERecipientType eType; + }; + struct SAttachment + { + CString sPath; + EAttachmentType eType; + CString sOleDocument; + }; + CInternRecipientArray m_recipients; + CInternAttachmentArray m_attachments; + + // Member Functions + public: + CMessage(); + virtual ~CMessage(); + void AddRecipient(CString sRecipient, ERecipientType eType); + void AddAttachment(CString sAttachment, EAttachmentType eType, CString sOleDocument = _T("")); + }; + +protected: + + CString m_sMAPIProfile; + +#ifndef OX_MAPI_DIRECT + COXMSession m_objSession; +#endif + +public: + COXSendMail(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Contructor of object + // It will initialize the internal state + + virtual ~COXSendMail(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of object + + BOOL Initialize(CString sProfileName, CString sPassword = _T("")); + // --- In: sProfileName: name of the profile you want to log on with + // sPassword: optional password to log on + // --- Out: none + // --- Returns: if successful or not + // --- Effect: Logs on to the mail services defined in the given profile + + BOOL IsInitialized(); + // --- In: none + // --- Out: none + // --- Returns: if initialized or not + // --- Effect: none + + void Uninitialize(); + // --- In: none + // --- Out: none + // --- Returns: none + // --- Effect: logs off from the mail system and does some cleaning + + CString GetProfile(); + // --- In: none + // --- Out: none + // --- Returns: if initialized the name of the profile + // --- Effect: none + + BOOL SendMessage(CMessage& message); + // --- In: message: the message to send + // --- Out: none + // --- Returns: if message was send successful or not + // --- Effect: sends the message + + static CString GetReturnMsg(int nErr); + // --- In: nErr: the error code returned by MAPI + // --- Out: none + // --- Returns: a description of the error message + // --- Effect: none + +protected: + + +// ****************************************************************** +// this is needed for the Extended MAPI alternative; see the *** remark section +// ****************************************************************** +#ifdef OX_MAPI_DIRECT + BOOL InitializeMessageStore(); + LPMESSAGE ComposeMessage(CMessage& message); + HRESULT AddRecipients(LPMESSAGE pMessage, CRecipientArray& recipients); + HRESULT AddAttachments(LPMESSAGE pMessage, CAttachmentArray& attachments); + LPMAPISESSION m_pMAPISession; + LPADRBOOK m_pAddressBook; + LPENTRYID m_peidDefaultMDB; + ULONG m_cbeidDefaultMDB; + LPMDB m_pDefaultMDB; + LPMAPIFOLDER m_pRootFolder; + LPSTR m_szRecipient; + ULONG m_uLogoffFlags; + LPSTR m_szAttachData; +#endif +// ****************************************************************** + +}; + +#endif // __MAILTO_H__ +// ========================================================================== + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXStaticMenuItem.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXStaticMenuItem.h new file mode 100644 index 0000000..2d8312a --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXStaticMenuItem.h @@ -0,0 +1,114 @@ +#if !defined(_OXSSTATICMENUITEM_H__) +#define _OXSSTATICMENUITEM_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + +// OXStaticMenuItem.h : header file +// + +#include "OXHookWnd.h" +#include "OXStaticText.h" +#include "OXMainRes.h" + + +///////////////////////////////////////////////////////////////////////////// +// COXStaticMenuItem window + +class OX_CLASS_DECL COXStaticMenuItem : public COXStaticText +{ +// Construction +public: + // --- In : + // --- Out : + // --- Returns: + // --- Effect : Constructs the object + COXStaticMenuItem(); + +// Attributes +public: + +protected: + // flag specifies whether the mouse button is currently pressed in + BOOL m_bPressedDown; + // color of the text when item is active + COLORREF m_clrActive; + // color of the text when item is inactive + COLORREF m_clrNormalText; + + // helper object to spy for mouse entering and leaving events + COXHookWnd m_MouseSpy; + +// Operations +public: + + // --- In : clrText - text color in the inactive (normal) state + // clrBack - background color + // clrActive - text color in the active state + // nFontHeight - text font height + // nFontWeight - text font weight + // sFontName - text font name + // bEmboss - if TRUE then font will be drawn + // with 3D effect + // nHorzAlignment - horizontal alignment of the text + // in the control + // nVertAlignment - vertical alignment of the text + // in the control + // --- Out : + // --- Returns: + // --- Effect : Constructs the object + void SetProperties(COLORREF clrText=::GetSysColor(COLOR_BTNTEXT), + COLORREF clrBack=::GetSysColor(COLOR_BTNFACE), + COLORREF clrActive=RGB(192,0,0), int nFontHeight=12, + int nFontWeight=FW_NORMAL, CString sFontName=_T("MS Sans Serif"), + BOOL bEmboss=TRUE, int nHorzAlignment=OX_ALIGNHORZ_LEFT, + int nVertAlignment=OX_ALIGNVERT_CENTER); + + + inline void SetActiveColor(COLORREF clrActive, BOOL bPrepareNow=FALSE) + { + m_clrActive=clrActive; + if(m_MouseSpy.IsMouseOver()) + PrepareBitmap(bPrepareNow); + } + + inline COLORREF GetActiveColor() const { return m_clrActive; } + + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(COXStaticMenuItem) + protected: + virtual void PreSubclassWindow(); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~COXStaticMenuItem(); + + // Generated message map functions +protected: + + // helper to notify parent about COXStaticMenuItem events + void NotifyParent(int nEventID); + + //{{AFX_MSG(COXStaticMenuItem) + afx_msg void OnLButtonDown(UINT nFlags, CPoint point); + afx_msg void OnLButtonUp(UINT nFlags, CPoint point); + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + //}}AFX_MSG + afx_msg LONG OnMouseEnter(WPARAM wParam, LPARAM lParam); + afx_msg LONG OnMouseLeave(WPARAM wParam, LPARAM lParam); + + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(_OXSSTATICMENUITEM_H__) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXThreadEngine.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXThreadEngine.h new file mode 100644 index 0000000..c9ee100 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXThreadEngine.h @@ -0,0 +1,261 @@ +// ========================================================================== +// Class Specification : COXThreadEngine +// ========================================================================== + +// Header file : OXOwnThread.h + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// NO Is a Cwnd. +// YES Two stage creation (constructor & Initialize()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// YES Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Description : +// CThreadEngine class +// You can use the COXThreadEngine for dedicated access to data objects. +// It is a good approach to the design of multithreaded applications to prevent +// as much as possible that specific data is accessed from more than one thread. +// The class provides build-in functionality such as communication techniques +// to communicate to and between different engines. +// Suppose for example that we want to access a CMyOLEObject from more threads. +// *** The first step is to derive a CMyEngine class from the COXThreadEngine base class. +// We add the CMyOLEObject as a protected data member of the engine class. +// Then we overload the pure virtual function "OnExecuteCmd()". This function will +// be called internally by the COXThreadEngine and needs to dispatch the commands +// to the appropriated function. Most of the time this can be implemented with a simply +// switch structure. +// Next, we have to derive a CMyCmd from the COXEngineCmd class to hold your +// command parameters and return values. This class will be used internally to queue +// multiple calls to the engine object. +// Finally we provide a public wrapper function "DoSomething" which queues the CDoSomethingCmd +// commands. We instantiate a CDoSomethingCmd object which we pass on to the PostCommand() +// function. The PostCommand function will wait until the engine has executed the +// command (in this example the command is synchronous). Before we return in this function +// we need to release the command object. This object is reference counted and will +// be destroyed automatically. If we now want to return a data member of the command +// object, we need to copy the value to a temporary variable, because the command object could +// be destroyed after we called the Release() function. +// +// *** Communication techniques: +// + Synchronous, queued: create a COXEngineCmd without optional parameters and +// post it with the PostCommand() function to the COXThreadEngine +// + Synchronous, ASAP: create a COXEngineCmd without optional parameters and +// post it with the PostCommand() function with the bASAP parameter set to TRUE +// + Asynchronous, queued: create a COXEngineCmd with the first parameter set to FALSE +// and post it with the PostCommand() function +// + Asynchronous, ASAP: create a COXEngineCmd with the first parameter set to FALSE +// and post it with the PostCommand() function with the bASAP parameter set to TRUE +// * OPTIONAL for all the techniques, you can use a second parameter in the +// constructor of COXEngineCmd if you want to receive a DONE notification. +// This can be important for the asynchronous techniques. For this: the requesting +// object need to be derived of COXDoneNotifier. You need to pass the this pointer +// of the requesting object to the constructor of COXEngineCmd. Your requesting object +// will now receive a DoneCommand() call after the execution of the command. +// The command itself will be passed on as a parameter. You can use the command type and +// the command index to track the initial request. For this, it is important that you +// catalogue the index of the command after the construction of it. +// Important is that you need to call the Release() function of your command also after +// DONE notification. + +// Remark: +// If you forget the call the Release() function of COXEngineCmd you will end up +// with memory leaks. +// You need to call the COXEngineCmd::Release() function after you posted the command +// with the COXThreadEngine::PostCommand() function. And you need to call the Release() +// function ones again if you implement a "done notification" for your command. +// If the object that requested the command is also running in his own engine, +// it can be necessary to post done notification commands to the queue of your requesting +// engine. In this case you need to use a own command for this "Post" which takes the first +// one, that came with the "done notification" as a data member. In this case you must call +// the Release() function of the first command in the destructor of the second one. + +// Prerequisites (necessary conditions): +// + +///////////////////////////////////////////////////////////////////////////// + + +#ifndef __OXTHREADENGINE_H_ +#define __OXTHREADENGINE_H_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + + + +class COXEngineCmd; +class COXThreadEngine; + +class OX_CLASS_DECL COXDoneNotifier +{ +friend COXThreadEngine; +protected: + virtual void DoneCommand(COXEngineCmd* pCmd) = 0; +}; + +class OX_CLASS_DECL COXEngineCmd : public CObject +{ + DECLARE_DYNAMIC(COXEngineCmd) + +friend COXThreadEngine; + +// Data Members +public: + DWORD m_dwIndex; // every instantiated command has an unique index + +protected: + COXDoneNotifier* m_pDoneNotifier; // for optional notification after execution + HANDLE m_hFinishedEvent; // use for synchronisation of synchrone commands + LONG m_nRef; // used for reference counting + +private: + static DWORD m_dwGlobalIndex; // internal cyclic counter + +// Member Functions +public: + COXEngineCmd(BOOL bSynchrone = TRUE, COXDoneNotifier* pDoneNotifier = NULL); + // --- In : bSynchrone: defines if the command will be executed synchronous or asynchronous + // pDoneNotifier: will be notified when the execution of the command is done + // --- Out : none + // --- Returns : none + // --- Effect : Contructor of an egine command + + void Release(); + // --- In : none + // --- Out : none + // --- Returns : none + // --- Effect : decreases the reference count and deletes the object if zero + + BOOL IsSynchrone() const; + // --- In : none + // --- Out : none + // --- Returns : if the command is synchronous or not + // --- Effect : + +protected: + virtual ~COXEngineCmd(); + +private: +}; + +class OX_CLASS_DECL COXThreadEngine : public CObject +{ +// Data Members +public: + +protected: + BOOL m_bEndThread; // thread shall terminate during next thread event + BOOL m_bInitialized; // if successfully initialised + CWinThread* m_pThread; // thread pointer of the engines thread + HANDLE m_hCreatedEvent;// event for initialisation synchronisation + HANDLE m_hEndEvent; // event for termination synchronisation + HANDLE m_hThreadEvent; // event when a new command is posted + DWORD m_nTerinationTimeout; + + class OX_CLASS_DECL COXEngineCmdList : public CTypedPtrList + { + // Data Members + public: + protected: + HANDLE m_hMutex; + private: + // Member functions + public: + COXEngineCmdList(); + virtual ~COXEngineCmdList(); + void Lock(); + void Unlock(); + protected: + private: + } m_cmdList; + +private: + +// Member Functions +public: + COXThreadEngine(); + // --- In : none + // --- Out : none + // --- Returns : none + // --- Effect : construction of engine (still need to be initialised) + + virtual ~COXThreadEngine(); + // --- In : none + // --- Out : none + // --- Returns : none + // --- Effect : destructs the engine (need to be terminated first) + + BOOL Initialize(); + // --- In : none + // --- Out : none + // --- Returns : if the engine is successfully initialised + // --- Effect : start the engines thread (as a result + // OnThreadConstruction() will be called) + + BOOL IsInitialized(); + // --- In : none + // --- Out : none + // --- Returns : if the engine is successfully initialised + // --- Effect : + + void Terminate(); + // --- In : none + // --- Out : none + // --- Returns : none + // --- Effect : stops the engines thread (first + // OnThreadDestruction() will be called) + + void PostCommand(COXEngineCmd* pCmd, BOOL bASAP = FALSE); + // --- In : pCmd : the command that will be added to the engines queue + // bASAP : the command will be executed as soon as possible + // when this flag is used the command will be added to + // the head instead of the tail of the queue + // --- Out : none + // --- Returns : none + // --- Effect : the command is added to the engines queue and the engine + // thread is notified by an event + +protected: +///////////////////////////////////////////////////////////////////////////// +// --- this function must be overloaded in your derived engine + virtual void OnExecuteCmd(COXEngineCmd* pCmd) = 0; + // --- In: pCmd: the next command in the queue that should be executed + // --- Out: none + // --- Returns: none + // --- Effect: Up to YOU !!!!! + + // these two function can be overloaded if some specific initialisation and + // uninitialisation is needed + virtual BOOL OnThreadCreation(); + virtual void OnThreadDestruction(); + + // these two function can be overloaded if some specific initialisation and + // uninitialisation is needed + virtual void OnThreadEvent(); + +private: + void Run(); + static UINT StartThread( LPVOID pParam ); + +}; + + +#endif // __OXTHREADENGINE_H_ diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXTimer.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXTimer.h new file mode 100644 index 0000000..9870bfc --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXTimer.h @@ -0,0 +1,216 @@ +// ========================================================================== +// Class Specification : COXTimer +// ========================================================================== + +// Header file : OXTimer.h + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// YES Derived from CObject + +// NO Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// NO Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Desciption : +// This class can be used to measure the elapsed time between two moments +// (interval timer) or the trigger a notification when a specified amount +// of time has elapsed (notification timer) + +// Remark: +// All time is expressed in nanoseconds. But it is possible that such an +// accuracy is not met (either by the hardware or by Win32). +// An interval timer can be queried for its resolution + +// Prerequisites (necessary conditions): + +///////////////////////////////////////////////////////////////////////////// + +#ifndef __OXTIMER_H__ +#define __OXTIMER_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + +#include + + +class COXTimer; + +// ... Type definition of the callback function +typedef void (CALLBACK OX_TIMER_NOTIFICATION) (COXTimer* pTimer); +typedef OX_TIMER_NOTIFICATION* P_OX_TIMER_NOTIFICATION; + +// Some handy macros to convert between unit, milli, micro and nano +// Nano seconds use a LONGLONG, unit, milli and micro use an int +#define NANO_TO_MICRO(nano) (int)((LONGLONG)(nano) / 1000) +#define NANO_TO_MILLI(nano) (int)((LONGLONG)(nano) / 1000000) +#define NANO_TO_UNIT(nano) (int)((LONGLONG)(nano) / 1000000000) +#define MICRO_TO_NANO(micro) ((LONGLONG)(micro) * 1000) +#define MILLI_TO_NANO(milli) ((LONGLONG)(milli) * 1000000) +#define UNIT_TO_NANO(unit) ((LONGLONG)(unit) * 1000000000) + +class OX_CLASS_DECL COXTimer : public CObject +{ +DECLARE_DYNAMIC(COXTimer); + +// Data members ------------------------------------------------------------- +public: +protected: + LARGE_INTEGER m_startIntervalCounter; + LARGE_INTEGER m_stopIntervalCounter; + static LARGE_INTEGER m_nIntervalTimerFrequency; // -1 = not available, 0 = unknown, other OK + + DWORD m_nUserData; + P_OX_TIMER_NOTIFICATION m_pfNotification; + UINT m_nNonSynchronizedTimerNotifierID; + UINT m_nSynchronizedTimerNotifierID; + BOOL m_bPeriodic; + static CMap m_allTimers; + static CMap m_synchronizedTimers; + +private: + +// Member functions --------------------------------------------------------- +public: + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Constructs the object + COXTimer(); + + // *** Interval Timer functions + + // --- In : + // --- Out : + // --- Returns : Whether it succeeded or not. This function may fail if the platform + // does not support a high accuracy interval timer + // --- Effect : Starts the interval timer + BOOL StartInterval(); + + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Stops the interval timer + void StopInterval(); + + + // --- In : + // --- Out : + // --- Returns : The elapsed time of the counter in nanoseconds + // There are 1,000,000,000 nanoseconds in 1 second + // If the value is not strictly positive an error has occurred + // --- Effect : This function returns the elapsed time between the last start and stop + // of the counter + LONGLONG GetInterval() const; + + // --- In : + // --- Out : + // --- Returns : The maximum accuracy of an interval timer specified in nanoseconds + // There are 1,000,000,000 nanoseconds in 1 second + // (return -1 in case the platform does not support a + // high accuracy interval timer) + // --- Effect : + static LONGLONG GetIntervalAccuracy(); + + + // *** Notification Timer functions + + // --- In : nDelay : The delay in nanoseconds that must elaps before the + // notificvation function is called + // pfTimerNotification : The notification function to call + // bPeriodic : Whether the function should be called periodically (TRUE) + // or just one (FALSE) + // bSynchronized : Whether the callback should be called from this thread (TRUE) + // or from a seperate dedicated thread (TRUE) + // Using a seperate thread will produce more superieur results + // nAccuracy : The minimum accuracy in nanoseconds. Bu default this is 1% + // of the specified delay with a maximum of 1 second + // --- Out : + // --- Returns : Whether it succeeded or not. + // --- Effect : Starts the timer notifier + // Using this function with a very small delay time (< 10 ms) might + // use so much CPU time that your computers seems to hang + BOOL StartNotifier(LONGLONG nDelay, P_OX_TIMER_NOTIFICATION pfTimerNotification, + BOOL bPeriodic = FALSE, BOOL bSynchronized = FALSE, LONGLONG nAccuracy = -1); + + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Stops the timer notifier + void StopNotifier(); + + + // --- In : nUserData : The user data to associate with this timer + // --- Out : + // --- Returns : + // --- Effect : + void SetUserData(DWORD nUserData = 0); + + + // --- In : + // --- Out : + // --- Returns : The user data associated with this timer + // --- Effect : + DWORD GetUserData() const; + + +#ifdef _DEBUG + // --- In : + // --- Out : + // --- Returns : + // --- Effect : AssertValid performs a validity check on this object + // by checking its internal state. + // In the Debug version of the library, AssertValid may assert and + // thus terminate the program. + virtual void AssertValid() const; + + // --- In : dc : The diagnostic dump context for dumping, usually afxDump. + // --- Out : + // --- Returns : + // --- Effect : Dumps the contents of the object to a CDumpContext object. + // It provides diagnostic services for yourself and + // other users of your class. + // Note The Dump function does not print a newline character + // at the end of its output. + virtual void Dump(CDumpContext& dc) const; +#endif + + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of the object + virtual ~COXTimer(); + +protected: + BOOL StartNonSynchronizedNotifier(int nMilliDelay, P_OX_TIMER_NOTIFICATION pfTimerNotification, + BOOL bPeriodic, int nMilliAccuracy); + static void CALLBACK NonSynchronizedNotificationCallback(UINT uTimerID, UINT uMsg, + DWORD dwUser, DWORD dw1, DWORD dw2); + void OnNonSynchronizedNotification(); + void StopNonSynchronizedNotifier(); + + BOOL StartSynchronizedNotifier(int nMilliDelay, P_OX_TIMER_NOTIFICATION pfTimerNotification, + BOOL bPeriodic, int nMilliAccuracy); + static void CALLBACK SynchronizedNotificationCallback(HWND hWnd, UINT uMsg, + UINT nTimerID, DWORD nTime); + void OnSynchronizedNotification(); + void StopSynchronizedNotifier(); + +private: + +}; + +#endif // __OXTIMER_H__ +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXVariant.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXVariant.h new file mode 100644 index 0000000..4f1e6b2 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXVariant.h @@ -0,0 +1,142 @@ +// ========================================================================== +// Class Specification : COXVariant +// ========================================================================== + +// Header file : OXVariant.h + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// YES Derived from COleVariant + +// NO Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// NO Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Desciption : +// This class is an extension on COleVariant +// It supports the serialization of byte arrays (VT_UI1 | VT_ARRAY) + +// Remark: + +// Prerequisites (necessary conditions): + +///////////////////////////////////////////////////////////////////////////// + +#ifndef __OXVARIANT_H__ +#define __OXVARIANT_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + + +class OX_CLASS_DECL COXVariant : public COleVariant +{ +// Data members ------------------------------------------------------------- +public: +protected: + +private: + +// Member functions --------------------------------------------------------- +public: + + // Constructors + COXVariant(); + + COXVariant(const VARIANT& varSrc); + COXVariant(LPCVARIANT pSrc); + COXVariant(const COleVariant& varSrc); + COXVariant(const COXVariant& varSrc); + + COXVariant(LPCTSTR lpszSrc); + COXVariant(CString& strSrc); + + COXVariant(BYTE nSrc); + COXVariant(short nSrc, VARTYPE vtSrc = VT_I2); + COXVariant(long lSrc, VARTYPE vtSrc = VT_I4); + COXVariant(const COleCurrency& curSrc); + COXVariant(bool bSrc); + + COXVariant(float fltSrc); + COXVariant(double dblSrc); + COXVariant(const COleDateTime& timeSrc); + + COXVariant(const CByteArray& arrSrc); + COXVariant(const CLongBinary& lbSrc); + + COXVariant(LPCTSTR lpszSrc, VARTYPE vtSrc); // Used by DAO classes + + // Assignemnt operators + const COXVariant& operator=(const VARIANT& varSrc); + const COXVariant& operator=(LPCVARIANT pSrc); + const COXVariant& operator=(const COleVariant& varSrc); + const COXVariant& operator=(const COXVariant& varSrc); + + const COXVariant& operator=(const LPCTSTR lpszSrc); + const COXVariant& operator=(const CString& strSrc); + + const COXVariant& operator=(BYTE nSrc); + const COXVariant& operator=(short nSrc); + const COXVariant& operator=(long lSrc); + const COXVariant& operator=(const COleCurrency& curSrc); + const COXVariant& operator=(bool bSrc); + + const COXVariant& operator=(float fltSrc); + const COXVariant& operator=(double dblSrc); + const COXVariant& operator=(const COleDateTime& dateSrc); + + const COXVariant& operator=(const CByteArray& arrSrc); + const COXVariant& operator=(const CLongBinary& lbSrc); + + static void CheckError(SCODE sc); + // --- In : The result an OLE call + // --- Out : + // --- Returns : + // --- Effect : If the result code indicates failure an COleException is thrown + // unless it indicates out of memory, then a CMemoryException is thrown + // When no failure is indicated, this function does nothing + + virtual ~COXVariant(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of the object + +protected: + +private: + +}; + +// COXVariant diagnostics and serialization +#ifdef _DEBUG +OX_API_DECL CDumpContext& AFXAPI operator<<(CDumpContext& dc, COXVariant varSrc); +#endif +OX_API_DECL CArchive& AFXAPI operator<<(CArchive& ar, COXVariant varSrc); +OX_API_DECL CArchive& AFXAPI operator>>(CArchive& ar, COXVariant& varSrc); + +// special collections functions for COXVariant +OX_API_DECL void AFXAPI ConstructElements(COXVariant* pElements, int nCount); +OX_API_DECL void AFXAPI DestructElements(COXVariant* pElements, int nCount); +OX_API_DECL void AFXAPI CopyElements(COXVariant* pDest, const COXVariant* pSrc, + int nCount); +OX_API_DECL void AFXAPI SerializeElements(CArchive& ar, COXVariant* pElements, + int nCount); +OX_API_DECL void AFXAPI DumpElements(CDumpContext& dc, COXVariant* pElements, + int nCount); + +#include "OXVariant.inl" + +#endif // __OXVARIANT_H__ +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXVariant.inl b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXVariant.inl new file mode 100644 index 0000000..9f30e61 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXVariant.inl @@ -0,0 +1,235 @@ +// ========================================================================== +// Inline Implementation : COXVariant +// ========================================================================== + +// Source file : OXVariant.inl + +// Source : R.Mortelmans +// Creation Date : 7th March 1996 +// Last Modification : 7th March 1996 + +// ////////////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////////////////////////////////// +// Definition of static members + +// Member functions --------------------------------------------------------- +// public: +inline COXVariant::COXVariant() + : + COleVariant() + { + } + +inline COXVariant::COXVariant(const VARIANT& varSrc) + : + COleVariant(varSrc) + { + } + +inline COXVariant::COXVariant(LPCVARIANT pSrc) + : + COleVariant(pSrc) + { + } + +inline COXVariant::COXVariant(const COleVariant& varSrc) + : + COleVariant(varSrc) + { + } + +inline COXVariant::COXVariant(const COXVariant& varSrc) + : + COleVariant((COleVariant) varSrc) + { + } + +inline COXVariant::COXVariant(LPCTSTR lpszSrc) + : + COleVariant(lpszSrc) + { + } + +inline COXVariant::COXVariant(CString& strSrc) + : + COleVariant(strSrc) + { + } + +inline COXVariant::COXVariant(BYTE nSrc) + : + COleVariant(nSrc) + { + } + +inline COXVariant::COXVariant(short nSrc, VARTYPE vtSrc /* = VT_I2 */) + : + COleVariant(nSrc, vtSrc) + { + } + +inline COXVariant::COXVariant(long lSrc, VARTYPE vtSrc /* = VT_I4 */) + : + COleVariant(lSrc, vtSrc) + { + } + +inline COXVariant::COXVariant(const COleCurrency& curSrc) + : + COleVariant(curSrc) + { + } + +inline COXVariant::COXVariant(bool bSrc) + : + COleVariant((short)bSrc, VT_BOOL) + { + } + +inline COXVariant::COXVariant(float fltSrc) + : + COleVariant(fltSrc) + { + } + +inline COXVariant::COXVariant(double dblSrc) + : + COleVariant(dblSrc) + { + } + +inline COXVariant::COXVariant(const COleDateTime& timeSrc) + : + COleVariant(timeSrc) + { + } + +inline COXVariant::COXVariant(const CByteArray& arrSrc) + : + COleVariant(arrSrc) + { + } + +inline COXVariant::COXVariant(const CLongBinary& lbSrc) + : + COleVariant(lbSrc) + { + } + +inline COXVariant::COXVariant(LPCTSTR lpszSrc, VARTYPE vtSrc) + : + COleVariant(lpszSrc, vtSrc) + { + } + +inline const COXVariant& COXVariant::operator=(const VARIANT& varSrc) + { + COleVariant::operator=(varSrc); + return *this; + } + +inline const COXVariant& COXVariant::operator=(LPCVARIANT pSrc) + { + COleVariant::operator=(pSrc); + return *this; + } + +inline const COXVariant& COXVariant::operator=(const COXVariant& varSrc) + { + COleVariant::operator=(varSrc); + return *this; + } + +inline const COXVariant& COXVariant::operator=(const COleVariant& varSrc) + { + COleVariant::operator=(varSrc); + return *this; + } + +inline const COXVariant& COXVariant::operator=(const LPCTSTR lpszSrc) + { + COleVariant::operator=(lpszSrc); + return *this; + } + +inline const COXVariant& COXVariant::operator=(const CString& strSrc) + { + COleVariant::operator=(strSrc); + return *this; + } + +inline const COXVariant& COXVariant::operator=(BYTE nSrc) + { + COleVariant::operator=(nSrc); + return *this; + } + +inline const COXVariant& COXVariant::operator=(short nSrc) + { + COleVariant::operator=(nSrc); + return *this; + } + +inline const COXVariant& COXVariant::operator=(long lSrc) + { + COleVariant::operator=(lSrc); + return *this; + } + +inline const COXVariant& COXVariant::operator=(const COleCurrency& curSrc) + { + COleVariant::operator=(curSrc); + return *this; + } + +inline const COXVariant& COXVariant::operator=(bool bSrc) + { + vt = VT_BOOL; + + if (!bSrc) + V_BOOL(this) = AFX_OLE_FALSE; + else + V_BOOL(this) = AFX_OLE_TRUE; + + return *this; + } + +inline const COXVariant& COXVariant::operator=(float fltSrc) + { + COleVariant::operator=(fltSrc); + return *this; + } + +inline const COXVariant& COXVariant::operator=(double dblSrc) + { + COleVariant::operator=(dblSrc); + return *this; + } + +inline const COXVariant& COXVariant::operator=(const COleDateTime& dateSrc) + { + COleVariant::operator=(dateSrc); + return *this; + } + +inline const COXVariant& COXVariant::operator=(const CByteArray& arrSrc) + { + COleVariant::operator=(arrSrc); + return *this; + } + +inline const COXVariant& COXVariant::operator=(const CLongBinary& lbSrc) + { + COleVariant::operator=(lbSrc); + return *this; + } + +inline COXVariant::~COXVariant() + { + } + +// protected: +// private: + +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXVerinfo.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXVerinfo.h new file mode 100644 index 0000000..1167efe --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXVerinfo.h @@ -0,0 +1,150 @@ +// ========================================================================== +// Class Specification : COXVersionInfo +// ========================================================================== + +// Header file : OXVerinfo.h + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// YES Derived from CObject + +// NO Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// NO Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Desciption : +// This class can be used to retrieve the version information +// from a file 5EXE, DLL, etc) + +// Remark: +// *** + +// Prerequisites (necessary conditions): +// *** + +///////////////////////////////////////////////////////////////////////////// +#ifndef __VERINFO_H__ +#define __VERINFO_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + + +class OX_CLASS_DECL COXVersionInfo : public CObject +{ +DECLARE_DYNAMIC(COXVersionInfo) + +// Data members ------------------------------------------------------------- +public: + DWORD m_dwSignature; + DWORD m_dwStrucVersion; + DWORD m_dwFileVersionMS; + DWORD m_dwFileVersionLS; + DWORD m_dwProductVersionMS; + DWORD m_dwProductVersionLS; + DWORD m_dwFileFlagsMask; + DWORD m_dwFileFlags; + DWORD m_dwFileOS; + DWORD m_dwFileType; + DWORD m_dwFileSubtype; + DWORD m_dwFileDateMS; + DWORD m_dwFileDateLS; + + DWORD m_dwLanguageCountryID; + CString m_sLanguageCountry; + + CString m_sComments; + CString m_sCompanyName; + CString m_sFileDescription; + CString m_sFileVersion; + CString m_sInternalName; + CString m_sLegalCopyright; + CString m_sLegalTrademarks; + CString m_sOriginalFilename; + CString m_sPrivateBuild; + CString m_sProductName; + CString m_sProductVersion; + CString m_sSpecialBuild; + +protected: + BOOL m_bValid; + + static const DWORD m_dwFixedFileInfoSignature; + static const DWORD m_dwAmericanEnglishTranslation; + static LPCTSTR m_pszTranslation; + static LPCTSTR m_pszFileInfo; + +private: + +// Member functions --------------------------------------------------------- +public: + COXVersionInfo(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Contructor of object + // It will initialize the internal state + + BOOL ReadInfo(LPCTSTR pszPathName); + // --- In : pszPathName : The full path of the file of which the version info is requested + // --- Out : + // --- Returns : Whether version info was found + // --- Effect : Extracts the version info for the file + + BOOL ContainsValidInfo(); + // --- In : + // --- Out : + // --- Returns : Whether this version info contains valid info + // --- Effect : + + CString GetOSName(); + // --- In : + // --- Out : + // --- Returns : A text specifying the Operating System + // --- Effect : + + void Empty(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Clears the object + +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + + virtual ~COXVersionInfo(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of object + +protected: + +private: + +// Message handlers --------------------------------------------------------- + +}; + +#endif +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXWebView.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXWebView.h new file mode 100644 index 0000000..22ddbdb --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXWebView.h @@ -0,0 +1,153 @@ +// ============================================================================= +// Class Specification : COXWebView +// ============================================================================= +// +// Header file : OXWebView.h +// +// ///////////////////////////////////////////////////////////////////////////// +// +// Properties: +// +// NO Abstract class (does not have any objects) +// YES Derived from CObject +// YES Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// YES Has a message map +// NO Needs a resource (template) +// NO Persistent objects (saveable on disk) +// NO Uses exceptions +// +//////////////////////////////////////////////////////////////////////////////// +// +// Desciption : +// This class provides a simple to use html viewer by leveraging +// Microsoft's Internet Explorer web control. +// +// Remark: +// +// Prerequisites (necessary conditions): +// The user must have Microsoft Internet Explorer v3.x (or higher) +// installed on his machine in order for this class to function. +// +///////////////////////////////////////////////////////////////////////////// + +#ifndef __OXWEBVIEW_H__ +#define __OXWEBVIEW_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + + +#include +#include "OXWebCtrl.h" + + +class OX_CLASS_DECL COXWebView : public CView +{ +// Data members ------------------------------------------------------------- +public: +protected: +private: + static CFont* m_pfontToolbarURL; + static int m_nNumInstantiated; + + CComboBox m_cbxToolbarURL; + COXWebCtrl m_WebCtrl; + CToolBar m_Toolbar; + CToolTipCtrl m_Tooltips; + + BOOL m_bCanGoBack; + BOOL m_bCanGoForward; + BOOL m_bCanRefresh; + +// Member functions --------------------------------------------------------- +public: + virtual ~COXWebView(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of object + + COXWebCtrl& GetWebControl() + { return m_WebCtrl; } + // --- In : + // --- Out : + // --- Returns : A reference to the web control embedded within the view. + // --- Effect : This method allows the user to get at the web control + // if access is needed. + + CToolBar& GetToolbar() + { return m_Toolbar; } + // --- In : + // --- Out : + // --- Returns : A reference to the toolbar contained within the view. + // --- Effect : This method allows the user to get at the toolbar of + // the web view. + + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(COXWebView) + public: + virtual void OnDraw(CDC* pDC); // overridden to draw this view + protected: + virtual BOOL OnPreparePrinting(CPrintInfo* pInfo); + virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo); + virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo); + //}}AFX_VIRTUAL + +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + DECLARE_DYNCREATE(COXWebView) + enum { IDC_WEB_CTRL = 100, IDC_TOOLBAR_URL = 101 }; + + COXWebView(); // create from serialization only + virtual void BeforeNavigate(LPCTSTR pcszURL, long lFlags, LPCTSTR pcszTargetFrameName, VARIANT* PostData, LPCTSTR pcszHeaders, VARIANT_BOOL* pbCancel); + virtual void NavigateComplete(LPCTSTR pcszURL); + virtual void StatusTextChange(LPCTSTR pcszText); + virtual void Quit(VARIANT_BOOL* pbCancel); + virtual void DownloadBegin(); + virtual void NewWindow(LPCTSTR pcszURL, long lFlags, LPCTSTR pcszTargetFrameName, VARIANT* PostData, LPCTSTR pcszHeaders, VARIANT_BOOL* pbCancel); + virtual void ProgressChange(long lProgress, long lProgressMax); + virtual void DownloadComplete(); + virtual void CommandStateChange(long lCmdID, BOOL bEnabled); + virtual void PropertyChange(LPCTSTR pcszProperty); + virtual void TitleChange(LPCTSTR pcszTitle); + virtual void FrameBeforeNavigate(LPCTSTR pcszURL, long lFlags, LPCTSTR pcszTargetFrameName, VARIANT* PostData, LPCTSTR pcszHeaders, VARIANT_BOOL* pbCancel); + virtual void FrameNavigateComplete(LPCTSTR pcszURL); + virtual void FrameNewWindow(LPCTSTR pcszURL, long lFlags, LPCTSTR pcszTargetFrameName, VARIANT* PostData, LPCTSTR pcszHeaders, VARIANT_BOOL* pbCancel); + + //{{AFX_MSG(COXWebView) + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg void OnWebviewBack(); + afx_msg void OnWebviewForward(); + afx_msg void OnUpdateWebviewBack(CCmdUI* pCmdUI); + afx_msg void OnUpdateWebviewForward(CCmdUI* pCmdUI); + afx_msg void OnWebviewHome(); + afx_msg void OnWebviewSearch(); + afx_msg void OnUpdateWebviewStop(CCmdUI* pCmdUI); + afx_msg void OnWebviewStop(); + afx_msg void OnUpdateFilePrintPreview(CCmdUI* pCmdUI); + afx_msg void OnFilePrint(); + afx_msg void OnUpdateWebviewRefresh(CCmdUI* pCmdUI); + afx_msg void OnWebviewRefresh(); + //}}AFX_MSG + afx_msg void OnToolbarURLChange(); + afx_msg BOOL OnTooltipNeedText(UINT id, NMHDR* pNMHDR, LRESULT* pResult); + DECLARE_MESSAGE_MAP() + DECLARE_EVENTSINK_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // __OXWEBVIEW_H__ + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXWebView.rc b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXWebView.rc new file mode 100644 index 0000000..d0dfe61 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/OXWebView.rc @@ -0,0 +1,117 @@ +//Microsoft Developer Studio generated resource script. +// +#ifndef _OXWEBVIEW_RC__ +#define _OXWEBVIEW_RC__ +#include "OXMainRes.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Toolbar +// + +IDR_OX_WEBVIEW_BAR TOOLBAR DISCARDABLE 16, 15 +BEGIN + BUTTON ID_OX_WEBVIEW_BACK + BUTTON ID_OX_WEBVIEW_FORWARD + BUTTON ID_OX_WEBVIEW_STOP + BUTTON ID_OX_WEBVIEW_REFRESH + BUTTON ID_OX_WEBVIEW_HOME + BUTTON ID_OX_WEBVIEW_SEARCH +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDB_OX_WEBVIEW_BAR BITMAP DISCARDABLE "res\\OXWebBar.bmp" +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// Dutch (Belgium) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NLB) +#ifdef _WIN32 +LANGUAGE LANG_DUTCH, SUBLANG_DUTCH_BELGIAN +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resrc1.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + ID_OX_WEBVIEW_BACK "Navigates to previous page\nBack" + ID_OX_WEBVIEW_STOP "Stops downloading the current page\nStop" + ID_OX_WEBVIEW_HOME "Navigates to your start page\nHome" + ID_OX_WEBVIEW_SEARCH "Navigates to your search page\nSearch" + ID_OX_WEBVIEW_FORWARD "Navigates to next page\nForward" + ID_OX_WEBVIEW_REFRESH "Refreshes the current page\nRefresh" +END + +#endif // Dutch (Belgium) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + +#endif //_OXWEBVIEW_RC__ diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/PROGRESS.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/PROGRESS.h new file mode 100644 index 0000000..ba9445b --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/PROGRESS.h @@ -0,0 +1,122 @@ +// ========================================================================== +// Class Specification : COXDiffProgress +// ========================================================================== + +// Header file : progress.h + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// YES Derived from CObject + +// NO Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// NO Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Desciption : +// This class encapsulates a progress bar that will be used +// when calculating the binary differences +// You can derive from this class and use and own implementation + +// Remark: +// *** + +// Prerequisites (necessary conditions): +// *** + +///////////////////////////////////////////////////////////////////////////// + +#ifndef __PROGRESS_H__ +#define __PROGRESS_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + + +class OX_CLASS_DECL COXDiffProgress : public CObject +{ +DECLARE_DYNAMIC(COXDiffProgress) +// Data members ------------------------------------------------------------- +public: + +protected: + LONG m_MinVal; + LONG m_MaxVal; + LONG m_CurPos; + +private: + +// Member functions --------------------------------------------------------- +public: + COXDiffProgress(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Contructor of object + + virtual void Init(LONG minVal, LONG maxVal, LPCTSTR pszMessage); + // --- In : minVal : Minimum value + // maxVal : Maximum value + // pszMessage : Message text to show + // --- Out : + // --- Returns : + // --- Effect : Initializes the progress bar + + virtual BOOL Adjust(LONG curVal); + // --- In : curVal : The new current value + // representing the progress + // --- Out : + // --- Returns : Whether the action may continue (TRUE) + // returning FALSE will abort the action in progress + // --- Effect : Adjust the progress bar + + virtual void Abort(LPCTSTR pszMessage); + // --- In : pszMessage : The abort message + // --- Out : + // --- Returns : + // --- Effect : This function shows a message to the user and + // aborts the program + // This function should never return + + virtual void Close(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Closes the progress bar + +#ifdef _DEBUG + virtual void Dump(CDumpContext&) const; + virtual void AssertValid() const; +#endif //_DEBUG + + virtual ~COXDiffProgress(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of object + +protected: + +private: + +}; + +#endif // __PROGRESS_H__ +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/UTB64Bit.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/UTB64Bit.h new file mode 100644 index 0000000..b1ae65c --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/UTB64Bit.h @@ -0,0 +1,43 @@ + + +#if _MSC_VER < 1400 + +#ifndef GetWindowLongPtr +#define GetWindowLongPtr GetWindowLong +#endif + +#ifndef SetWindowLongPtr +#define SetWindowLongPtr SetWindowLong +#endif + +#ifndef GetClassLongPtr +#define GetClassLongPtr GetClassLong +#endif + +#ifndef SetClassLongPtr +#define SetClassLongPtr SetClassLong +#endif + +#ifndef ULongToPtr +#define ULongToPtr(x) x +#endif + +#ifndef LongToPtr +#define LongToPtr(x) x +#endif + +#ifndef PtrToUint +#define PtrToUint(x) x +#endif + +#ifndef PtrToInt +#define PtrToInt(x) x +#endif + +typedef DWORD DWORD_PTR; +typedef LONG LONG_PTR; +typedef ULONG ULONG_PTR; + +// Frustratingly, INT_PTR is an int in VC2005, and a long in VC6, so we can't define it here, the code needs to just handle it elsewhere + +#endif \ No newline at end of file diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/XMAINFRM.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/XMAINFRM.h new file mode 100644 index 0000000..cd930ae --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/XMAINFRM.h @@ -0,0 +1,151 @@ +// ========================================================================== +// Class Specification : COXMainFrame +// ========================================================================== + +// Header file : xmainfrm.h + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// YES Derived from CMDIFrameWnd + +// YES Is a Cwnd. +// YES Two stage creation (constructor & Create()) +// YES Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// NO Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Desciption : +// This is a base class that is used to provide a basic layer +// for all MainFrames that we want to have a bitmap and/or color shown as +// background. Palette handling is provided. It has a subclass for the MDICLIENT. +// There is also some functionality to save and restore its position on +// on the screen + +// Remark: +// *** + +// Prerequisites (necessary conditions): +// *** + +///////////////////////////////////////////////////////////////////////////// +#ifndef __X_MAINFRAME_H__ +#define __X_MAINFRAME_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + +#include "xmdiclt.h" + +// User message for sending palette changes to this MDI Childs +#define WM_DOREALIZE (WM_USER + 105) + +class OX_CLASS_DECL COXMainFrame : public CMDIFrameWnd +{ +DECLARE_DYNAMIC(COXMainFrame) + +// Data members ------------------------------------------------------------- +public: + WINDOWPLACEMENT* m_pWindowPlacement; + // --- The initial window placement. + // This is used to initially show the window + // The last used placement is persistently saved, and used the next time + // the window is created + +protected: + COXMDIClient m_XMDIClient; + +// Member functions --------------------------------------------------------- +public: + COXMainFrame(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Contructor of object + // It will initialize the internal state + + virtual BOOL CreateClient(LPCREATESTRUCT lpCreateStruct, CMenu* pWindowMenu ); + // --- In : lpCreateStruct : A long pointer to a CREATESTRUCT structure. + // pWindowMenu : A pointer to the Window pop-up menu. + // --- Out : + // --- Returns : Nonzero if successful; otherwise 0. + // --- Effect : Creates the MDI client window that manages the CMDIChildWnd objects. + // This member function should be called if you override the + // OnCreate member function directly. + + void InitialShowWindow(WINDOWPLACEMENT& windowPlacement, UINT nCmdShow); + // --- In : windowPlacement : The placement of the mainframe + // that must be used the show the window initialy + // nCmdShow : + // --- Out : + // --- Returns : + // --- Effect : Show the window in the correct state + + BOOL SetPaletteState(BOOL bBackGround = TRUE); + // --- In : bBackGround : whether the DIB on the MDI CLIENT is treated as + // a background image or foreground for palette selecting + // --- Out : + // --- Returns : successful or not + // --- Effect : Set this parameter always BEFORE you set a new Background + + BOOL GetPaletteState(); + // --- In : + // --- Out : + // --- Returns : whether the DIB on the MDI CLIENT is treated as + // a background or foreground image for palette selecting + // --- Effect : + + BOOL SetWallPaper(COLORREF rgbColor = RGB(192, 192, 192), + EWallOrg eWallOrganisation = WP_Center , COXDIB* pDib = NULL ); + // --- In : rgbColor : The background color of te MDICLIENT + // eWallOrganisation : the organisation of the bitmap on the MDI CLIENT + // pDib : the Device Independant Bitmap to be painted on the MDI CLIENT + // --- Out : + // --- Returns : Succeeded or not + // --- Effect : Paints a DIB with a special organisation and back color on the + // Client area of the MDI Client of this mainframe + + virtual ~COXMainFrame(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of object + +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + +// Message handlers --------------------------------------------------------- + //{{AFX_MSG(COXMainFrame) + afx_msg void OnPaletteChanged(CWnd* pFocusWnd); + afx_msg BOOL OnQueryNewPalette(); + afx_msg void OnClose(); + afx_msg void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized); + //}}AFX_MSG + + DECLARE_MESSAGE_MAP() + +private: + +}; + +#endif +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/XMDICLT.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/XMDICLT.h new file mode 100644 index 0000000..ea99ff3 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/XMDICLT.h @@ -0,0 +1,146 @@ +// ========================================================================== +// Class Specification : COXMDIClient +// ========================================================================== + +// Header file : xmdiclt.h + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// YES Derived from CWnd + +// YES Is a Cwnd. +// YES Two stage creation (constructor & Create()) +// YES Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// NO Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Desciption : +// This class implements a MDIClient area. This is the window in the client area +// of the MDiFrameWindow and which manages all the mdichild framewindows +// This implementation takes care of painting a bitmap on its paint DC + +// Remark: + +// Prerequisites (necessary conditions): + +///////////////////////////////////////////////////////////////////////////// + +#ifndef __XMDICLT_H__ +#define __XMDICLT_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + +#include "oxdib.h" // Encapsulation of a Device independant bitmap +#include "screen.h" // Enumeration of possible screen organisations + + +// User message for sending palette changes to this MDI CLIENT +#define WM_DOMDICLTREALIZE (WM_USER + 104) + +class OX_CLASS_DECL COXMDIClient : public CWnd +{ +// Data members ------------------------------------------------------------- +public: +protected: + COXDIB m_bmpBackGround; + CPalette* m_pPictPalette; + CBitmap* m_pTotalNewBitmap; + COLORREF m_rgbBkColor; + EWallOrg m_eWallPaperOrganisation; + + CSize m_sizeClient; + CSize m_DibSize; + + HBITMAP m_hOldDestBitmap; + HBITMAP m_hOldSrcBitmap; + CDC m_MemDCSrc; + CDC m_MemDCDest; + + BOOL m_bFirstCreation; + BOOL m_bBackGround; + BOOL m_bWin4; + + static WNDPROC pfnSuper; + +// Member functions --------------------------------------------------------- +public: + COXMDIClient(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Contructor of object + // It will initialize the internal state + + virtual ~COXMDIClient(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of object + + BOOL SetPaletteState(BOOL bBackGround = TRUE, EPalUpdate ePalUpdate = PU_IntelUpdate); + // --- In : bBackGround : whether the DIB on the MDI CLIENT is treated as + // a background image or foreground for palette selecting + // ePalUpdate : Specifying PU_NoUpdate causes the palette not to be realized now + // Specifying PU_IntelUpdate causes the palette to be realized intelligently + // Specifying PU_ForceUpdate causes the palette to be realized now + // --- Out : + // --- Returns : successful or not + // --- Effect : Set this parameter always BEFORE you set a new Background + + BOOL GetPaletteState(); + // --- In : + // --- Out : + // --- Returns : whether the DIB on the MDI CLIENT is treated as + // a background or foreground image for palette selecting + // --- Effect : + + BOOL SetNewBackGround(COLORREF rgbColor = GetSysColor(COLOR_APPWORKSPACE), + EWallOrg eWallOrganisation = WP_Center , COXDIB* pDib = NULL ); + // --- In : rgbColor : The background color of te MDICLIENT + // eWallOrganisation : the organisation of the bitmap on the MDI CLIENT + // pDib : the Device Independant Bitmap to be painted on the MDI CLIENT + // --- Out : + // --- Returns : Succeeded or not + // --- Effect : Paints a DIB with a special organisation and back color on the + // client area of this MDI client window + + virtual WNDPROC* GetSuperWndProcAddr(); + // --- In : + // --- Out : + // --- Returns : The address in which to store the default WndProc for this class. + // --- Effect : Needed when we subclass a Windows object + + +protected: + BOOL PrepareMemDC(int nWidth, int nHeight); + +// Message handlers --------------------------------------------------------- + // Generated message map functions + //{{AFX_MSG(COXMDIClient) + afx_msg BOOL OnEraseBkgnd(CDC* pDC); + afx_msg void OnSize(UINT nType, int cx, int cy); + //}}AFX_MSG + + afx_msg LRESULT OnDoMDICltRealize(WPARAM wParam, LPARAM lParam); // user message + DECLARE_MESSAGE_MAP() +}; + +#endif +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/oxmdisp.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/oxmdisp.h new file mode 100644 index 0000000..9f082f1 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/include/oxmdisp.h @@ -0,0 +1,1734 @@ +// ========================================================================== +// Class Specification : MAPI Framework +// COXMSession; +// COXMInfoStores; +// COXMInfoStore; +// COXMFolders; +// COXMFolder; +// COXMMessages; +// COXMMessage; +// COXMFields; +// COXMField; +// COXMRecipients; +// COXMRecipient; +// COXMAttachments; +// COXMAttachment; +// COXMAddressEntry; + +// ========================================================================== + +// Header file : oxmdisp.h + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// NO Derived from CObject + +// NO Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// NO Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Desciption : +// These classes encapsulate the OLE Messaging client interface which was originally +// designed to develop powerful Visual Basic Messaging applications. +// The OLE Messaging objects use variants as input and output parameters. +// This is a good solution for Visual Basic, because Visual Basic can automatically +// cast variables. In C++ you have to cast these parameters manually to the correct +// variable types. +// The classes in this framework do this type conversion for you. + +// Remark: +// For a full documentation on these classes we refer to the Microsoft SDK documentation: +// SDK +// Win32 SDK +// Win32 Messaging API (MAPI) +// OLE Messaging Library + +// Prerequisites (necessary conditions): +// *** + +///////////////////////////////////////////////////////////////////////////// + +#ifndef __OXMDISP_H__ +#define __OXMDISP_H__ + + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDllExt.h" + + +// Predeclarations +class COXMSession; +class COXMInfoStores; +class COXMInfoStore; +class COXMFolders; +class COXMFolder; +class COXMMessages; +class COXMMessage; +class COXMFields; +class COXMField; +class COXMRecipients; +class COXMRecipient; +class COXMAttachments; +class COXMAttachment; +class COXMAddressEntry; + +enum EOXMClass +{ + oxmAddressEntry = 8, + oxmAttachment = 5, + oxmAttachments = 21, + oxmField = 6, + oxmFields = 22, + oxmFolder = 2, + oxmFolders = 18, + oxmInfoStore = 1, + oxmInfoStores = 17, + oxmMsg = 3, + oxmMessages = 19, + oxmRecipient = 4, + oxmRecipients = 20, + oxmSession = 0 +}; + +enum EOXMDisplayType +{ + oxmdtMailUser = 0, + oxmdtDistList = 1, + oxmdtForum = 2, + oxmdtAgent = 3, + oxmdtOrganisation = 4, + oxmdtPrivateDistList = 5, + oxmdtRemoteMailUser = 6 +}; + +enum EOXMRecipientType +{ + oxmrtTo = 1, + oxmrtCc = 2, + oxmrtBcc = 3 +}; + +enum EOXMAttachmentType +{ + oxmatFileData = 1, + oxmatFileLink = 2, + oxmatOleObject = 3 +}; + + +///////////////////////////////////////////////////////////////////////////// +// COXMSession wrapper class + +class OX_CLASS_DECL COXMSession : public COleDispatchDriver +{ +// Member Functions +public: + COXMSession() {} // Calls COleDispatchDriver default constructor + COXMSession(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + COXMSession(const COXMSession& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + // --- In: pDispatch: the IDispatch pointer of the OLE messaging Session object + // dispatchSrc: the source object which will be copied + // --- Out: none + // --- Returns: none + // --- Effect: constructs this rapper object and attaches the real dispatch Interface with it + // The copy constructor version will increment the reference count of the IDispatch interface + + CString GetApplication(); + // --- In: none + // --- Out: none + // --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging." + // --- Effect: none + + EOXMClass GetClass(); + // --- In: none + // --- Out: none + // --- Returns: the OLE Messaging Library class type (see EOXMClass definition) + // --- Effect: none + + LPUNKNOWN GetMapiobject(); + // --- In: none + // --- Out: none + // --- Returns: an IUnknown pointer to the real Extended MAPI Session (IMAPISession) object. + // --- Effect: none + + void SetMapiobject(LPUNKNOWN pSession); + // --- In: pSession: IUnknown pointer of an Extended MAPI Session (IMAPISession) object + // --- Out: none + // --- Returns: none + // --- Effect: Attaches an IUnknown pointer of an Extended MAPI Session (IMAPISession) object. + + CString GetVersion(); + // --- In: none + // --- Out: none + // --- Returns: the version number of the OLE Messaging Library as a string, for example, "1.00". + // --- Effect: none + + CString GetOperatingSystem(); + // --- In: none + // --- Out: none + // --- Returns: the name and version number of the current operating system. + // --- Effect: none + + CString GetName(); + // --- In: none + // --- Out: none + // --- Returns: the name of the profile logged on to this session. + // --- Effect: none + + COXMAddressEntry GetCurrentUser(); + // --- In: none + // --- Out: none + // --- Returns: the active user as an AddressEntry object. + // --- Effect: none + + COXMFolder GetInbox(); + // --- In: none + // --- Out: none + // --- Returns: a Folder object representing the current user's default Inbox folder. + // --- Effect: none + + COXMFolder GetOutbox(); + // --- In: none + // --- Out: none + // --- Returns: a Folder object representing the current user's default Outbox folder. + // --- Effect: none + + COXMInfoStores GetInfoStores(); + // --- In: none + // --- Out: none + // --- Returns: an InfoStores object representing a collection of available information stores. Each InfoStore object contains a root folder object. + // --- Effect: none + + void Logon(CString sProfileName = _T(""), CString sProfilePassword = _T(""), BOOL bShowDialog = TRUE, BOOL bNewSession = FALSE, HWND hParentWindow = NULL); + // --- In: sProfileName: specifies the user's logon name. To prompt the user to enter a logon name, omit profileName and set showDialog to TRUE. + // sProfilePassword: specifies the user's logon password. + // bShowDialog: If TRUE, displays a logon dialog box. + // bNewSession: Determines whether the application opens a new MAPI session or uses the current shared MAPI session. + // hParentWindow: Specifies the parent window handle for the logon dialog box. A value of 0 (the default) specifies that any dialog box + // displayed is application modal. + // --- Out: none + // --- Returns: none + // --- Effect: The Logon method logs on to the MAPI system. + // --- COleDispatchException: MAPI_E_LOGON_FAILURE if not successful + + void Logoff(); + // --- In: none + // --- Out: none + // --- Returns: none + // --- Effect: logs off from the MAPI system. + + COXMInfoStore GetInfoStore(CString sStoreID); + // --- In: specifies the unique identifier of the store to retrieve + // --- Out: none + // --- Returns: if successful an InfoStore object that can be used to + // navigate through both public folders and the user's personal folders. + // If not successful: an COXMInfoStore object with an m_lpDispatch member + // set to NULL + // --- Effect: none + + COXMFolder GetFolder(CString sFolderID, CString sStoreID = _T("")); + // --- In: sFolderId: specifies the unique identifier of the folder. When you provide an empty string, some providers return the root folder. + // sStoreID: specifies the unique identifier of the store. The default value is an empty string, which corresponds to the default store. + // --- Out: none + // --- Returns: if successful a Folder object from a MAPI information store. + // If not successful: an COXMInfoStore object with an m_lpDispatch member + // set to NULL + // --- Effect: none + + COXMMessage GetMessage(CString sMessageID, CString sStoreID = _T("")); + // --- In: sMessageID:specifies the unique identifier of the message. + // sStoreID: specifies the unique identifier of the store. The default value is an empty string, which corresponds to the default store. + // --- Out: none + // --- Returns: if successful a Message object from a MAPI information store. + // If not successful: an COXMInfoStore object with an m_lpDispatch member + // set to NULL + // --- Effect: none + + COXMAddressEntry GetAddressEntry(CString sEntryID); + // --- In: sEntryID: specifies the unique identifier of the address entry. + // --- Out: none + // --- Returns: On successful return, represents the AddressEntry object specified by entryID. + // --- Effect: none + + COXMRecipients AddressBook(LPDISPATCH pRecipients = NULL, + CString sTitle = _T(""), + BOOL bOneAddress = FALSE, + BOOL bForceResolution = TRUE, + LONG nRecipLists = 0, + CString sTOLabel = _T(""), + CString sCCLabel = _T(""), + CString sBCCLabel = _T(""), + HWND hParentWindow = NULL); + // --- In: pRecipients: A Recipients collection object that provides the initial value for the recipient list boxes in the address book. + // sTitle: The title or caption of the address book dialog box. + // bOneAddress: Allows the user to enter or select only one address. + // bForceResolution: If TRUE, attempts to resolve all names before closing the address book. Prompts the user to resolve any ambiguous names. + // nRecipLists: The number of recipient list boxes to display in the address book dialog box: + // 0: no list boxes; 1: To; 2: To and CC; 3: TO, CC and BCC + // sTOLabel:The caption for the button associated with the first list box + // sCCLabel:The caption for the button associated with the second list box + // sBCCLabel:The caption for the button associated with the third list box + // hParentWindow:The parent window handle for the address book dialog box. A value of 0 (the default) specifies that any dialog box displayed is application modal. + // --- Out: none + // --- Returns: The selections are returned in a Recipients collection object. + // --- Effect: The AddressBook method displays the MAPI dialog box that allows the user to select entries from the address book. + +}; + +///////////////////////////////////////////////////////////////////////////// +// COXMInfoStores wrapper class + +class OX_CLASS_DECL COXMInfoStores : public COleDispatchDriver +{ +// Member Functions +public: + COXMInfoStores() {} // Calls COleDispatchDriver default constructor + COXMInfoStores(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + COXMInfoStores(const COXMInfoStores& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + // --- In: pDispatch: the IDispatch pointer of the OLE messaging InfoStores object + // dispatchSrc: the source object which will be copied + // --- Out: none + // --- Returns: none + // --- Effect: constructs this rapper object and attaches the real dispatch Interface with it + // The copy constructor version will increment the reference count of the IDispatch interface + + CString GetApplication(); + // --- In: none + // --- Out: none + // --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging." + // --- Effect: none + + EOXMClass GetClass(); + // --- In: none + // --- Out: none + // --- Returns: the OLE Messaging Library class type (see EOXMClass definition) + // --- Effect: none + + COXMSession GetSession(); + // --- In: none + // --- Out: none + // --- Returns: the top-level Session object associated with the specified OLE Messaging Library object + // --- Effect: none + + LONG GetCount(); + // --- In: none + // --- Out: none + // --- Returns: the number of InfoStore objects in the collection. + // --- Effect: none + + COXMInfoStore GetItem(LONG nItem); + // --- In: nItem: the index + // --- Out: none + // --- Returns: a single item from this collection. + // --- Effect: none +}; + +///////////////////////////////////////////////////////////////////////////// +// COXMInfoStore wrapper class + +class OX_CLASS_DECL COXMInfoStore : public COleDispatchDriver +{ +// Member Functions +public: + COXMInfoStore() {} // Calls COleDispatchDriver default constructor + COXMInfoStore(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + COXMInfoStore(const COXMInfoStore& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + // --- In: pDispatch: the IDispatch pointer of the OLE messaging InfoStore object + // dispatchSrc: the source object which will be copied + // --- Out: none + // --- Returns: none + // --- Effect: constructs this rapper object and attaches the real dispatch Interface with it + // The copy constructor version will increment the reference count of the IDispatch interface + + CString GetApplication(); + // --- In: none + // --- Out: none + // --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging." + // --- Effect: none + + EOXMClass GetClass(); + // --- In: none + // --- Out: none + // --- Returns: the OLE Messaging Library class type (see EOXMClass definition) + // --- Effect: none + + COXMSession GetSession(); + // --- In: none + // --- Out: none + // --- Returns: the top-level Session object associated with the specified OLE Messaging Library object + // --- Effect: none + + COXMInfoStores GetParent(); + // --- In: none + // --- Out: none + // --- Returns: the collection this store belongs to + // --- Effect: none + + LONG GetIndex(); + // --- In: none + // --- Out: none + // --- Returns: the index number for the InfoStore object within the parent InfoStores collection. + // --- Effect: none + + CString GetName(); + // --- In: none + // --- Out: none + // --- Returns: the name of the InfoStore object as a string. Read-only. The string "Public Folders" is the name of the InfoStore object that contains the public folders. + // --- Effect: none + + CString GetId(); + // --- In: none + // --- Out: none + // --- Returns: the unique identifier of this InfoStore object as a string. + // --- Effect: none + + CString GetProviderName(); + // --- In: none + // --- Out: none + // --- Returns: the name of the InfoStore provider as a string. + // --- Effect: none + + COXMFolder GetRootFolder(); + // --- In: none + // --- Out: none + // --- Returns: a folder object representing the root of the IPM tree for this InfoStore object. + // --- Effect: none + +}; + +///////////////////////////////////////////////////////////////////////////// +// COXMFolder wrapper class + +class OX_CLASS_DECL COXMFolder : public COleDispatchDriver +{ +// Member Functions +public: + COXMFolder() {} // Calls COleDispatchDriver default constructor + COXMFolder(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + COXMFolder(const COXMFolder& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + // --- In: pDispatch: the IDispatch pointer of the OLE messaging Folder object + // dispatchSrc: the source object which will be copied + // --- Out: none + // --- Returns: none + // --- Effect: constructs this rapper object and attaches the real dispatch Interface with it + // The copy constructor version will increment the reference count of the IDispatch interface + + CString GetApplication(); + // --- In: none + // --- Out: none + // --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging." + // --- Effect: none + + EOXMClass GetClass(); + // --- In: none + // --- Out: none + // --- Returns: the OLE Messaging Library class type (see EOXMClass definition) + // --- Effect: none + + COXMSession GetSession(); + // --- In: none + // --- Out: none + // --- Returns: the top-level Session object associated with the specified OLE Messaging Library object + // --- Effect: none + + LPDISPATCH GetParent(); + // --- In: none + // --- Out: none + // --- Returns: The Parent property returns the parent of the object. + // An Inbox, Outbox and Root folder return a Session Object + // Other Folders return a Folders collection + // --- Effect: none + + LPUNKNOWN GetMapiobject(); + // --- In: none + // --- Out: none + // --- Returns: returns an IUnknown pointer to the real Extended MAPI Folder (IMAPIFolder) object. + // --- Effect: + + void SetMapiobject(LPUNKNOWN pSession); + // --- In: pSession: an IUnknown pointer to the real Extended MAPI Folder (IMAPIFolder) object. + // --- Out: none + // --- Returns: none + // --- Effect: Attaches an IUnknown pointer of an Extended MAPI Folder (IMAPIFolder) object. + + CString GetName(); + // --- In: none + // --- Out: none + // --- Returns: the name of the Folder object as a string. + // --- Effect: none + + void SetName(CString sName); + // --- In: none + // --- Out: none + // --- Returns: the name of the Folder object as a string. + // --- Effect: none + + CString GetId(); + // --- In: none + // --- Out: none + // --- Returns: the unique identifier of this Folder object as a string. + // --- Effect: none + + CString GetFolderID(); + // --- In: none + // --- Out: none + // --- Returns: the unique identifier of this subfolder's parent folder as a string. + // --- Effect: none + + CString GetStoreID(); + // --- In: none + // --- Out: none + // --- Returns: the identifier of the Store object in which this Folder object resides. + // --- Effect: none + + COXMFolders GetFolders(); + // --- In: none + // --- Out: none + // --- Returns: a collection of subfolders within the parent folder. + // --- Effect: none + + COXMMessages GetMessages(); + // --- In: none + // --- Out: none + // --- Returns: a Messages collection object within the folder. + // --- Effect: none + + COXMFields GetFields(); + // --- In: none + // --- Out: none + // --- Returns: a single field (a Field object) or a collection of fields (a Fields collection object) of the Folder object. + // --- Effect: none + + void Update(BOOL bMakePermanent = TRUE, BOOL bRrefreshObject = FALSE); + // --- In: bMakePermanent: TRUE indicates that the property cache is flushed and all changes are committed in the underlying store. + // FALSE indicates that the property cache is flushed and not committed to the store. + // bRrefreshObject: TRUE indicates that the property cache is reloaded from the values in the underlying store. + // FALSE indicates that the property cache is not reloaded. + // --- Out: none + // --- Returns: none + // --- Effect: Saves the folder in the MAPI system. + +}; + +///////////////////////////////////////////////////////////////////////////// +// COXMFolders wrapper class + +class OX_CLASS_DECL COXMFolders : public COleDispatchDriver +{ +// Member Functions +public: + COXMFolders() {} // Calls COleDispatchDriver default constructor + COXMFolders(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + COXMFolders(const COXMFolders& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + // --- In: pDispatch: the IDispatch pointer of the OLE messaging Folders object + // dispatchSrc: the source object which will be copied + // --- Out: none + // --- Returns: none + // --- Effect: constructs this rapper object and attaches the real dispatch Interface with it + // The copy constructor version will increment the reference count of the IDispatch interface + + CString GetApplication(); + // --- In: none + // --- Out: none + // --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging." + // --- Effect: none + + EOXMClass GetClass(); + // --- In: none + // --- Out: none + // --- Returns: the OLE Messaging Library class type (see EOXMClass definition) + // --- Effect: none + + COXMSession GetSession(); + // --- In: none + // --- Out: none + // --- Returns: the top-level Session object associated with the specified OLE Messaging Library object + // --- Effect: none + + COXMFolder GetParent(); + // --- In: none + // --- Out: none + // --- Returns: a Folder object + // --- Effect: none + + COXMFolder GetFirst(); + // --- In: none + // --- Out: none + // --- Returns: the first object in the Folders collection. + // Returns an object witch a m_lpDispatch member set to NULL if no first object exists. + // --- Effect: increments the internal item pointer + + COXMFolder GetNext(); + // --- In: none + // --- Out: none + // --- Returns: the first object in the Folders collection. + // Returns an object with a m_lpDispatch member set to NULL if no first object exists. + // --- Effect: increments the internal item pointer + + COXMFolder GetLast(); + // --- In: none + // --- Out: none + // --- Returns: the last object in the Folders collection. + // Returns an object with a m_lpDispatch member set to NULL if no last object exists. + // --- Effect: none + + COXMFolder GetPrevious(); + // --- In: none + // --- Out: none + // --- Returns: the first object in the Folders collection. + // Returns an object witch a m_lpDispatch member set to NULL if no first object exists. + // --- Effect: decrements the internal item pointer + +}; +///////////////////////////////////////////////////////////////////////////// +// COXMMessages wrapper class + +class OX_CLASS_DECL COXMMessages : public COleDispatchDriver +{ +// Member Functions +public: + COXMMessages() {} // Calls COleDispatchDriver default constructor + COXMMessages(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + COXMMessages(const COXMMessages& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + // --- In: pDispatch: the IDispatch pointer of the OLE messaging Messages object + // dispatchSrc: the source object which will be copied + // --- Out: none + // --- Returns: none + // --- Effect: constructs this rapper object and attaches the real dispatch Interface with it + // The copy constructor version will increment the reference count of the IDispatch interface + + CString GetApplication(); + // --- In: none + // --- Out: none + // --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging." + // --- Effect: none + + EOXMClass GetClass(); + // --- In: none + // --- Out: none + // --- Returns: the OLE Messaging Library class type (see EOXMClass definition) + // --- Effect: none + + COXMSession GetSession(); + // --- In: none + // --- Out: none + // --- Returns: the top-level Session object associated with the specified OLE Messaging Library object + // --- Effect: none + + COXMFolder GetParent(); + // --- In: none + // --- Out: none + // --- Returns: the parent of the object. + // --- Effect: none + + COXMMessage Add(CString sSubject = _T(""), CString sText = _T(""), CString sType = _T(""), LONG nImportance=1); + // --- In: sSubject: The subject of the message. + // sText: The body text of the message. + // sType: The message class of the message. When ommited type is IPM.Note. + // nImportance: 0: Low priority; 1: Normal priority (default); 2: High priority + // --- Out: none + // --- Returns: a new created Message object + // --- Effect: creates and returns a new Message object in the Messages collection + + void Delete(BOOL bSubFolders = TRUE); + // --- In: bSubFolders: if TRUE: deletes all subfolders too + // --- Out: none + // --- Returns: none + // --- Effect: deletes all messages in the collection. + + void Sort(LONG nSortOrder); + // --- In: nSortOrder: 0: No sort; 1: Ascending; 2: Descending + // --- Out: none + // --- Returns: none + // --- Effect: sorts the messages in the collection according to the specified sort order + + COXMMessage GetFirst(CString sFilter = _T("")); + // --- In: sFilter: Specifies the message class of the object, such as the default value, IPM.Note (if ommitted). + // Corresponds to the Type property of the Message object. + // --- Out: none + // --- Returns: the first Message object in the collection. + // --- Effect: increments the internal item pointer + + COXMMessage GetNext(); + // --- In: none + // --- Out: none + // --- Returns: The next object in the Messages collection. Nothing if no next object exists. + // --- Effect: increments the internal item pointer + + COXMMessage GetLast(CString sFilter = _T("")); + // --- In: sFilter: Specifies the message class of the object, such as the default value, IPM.Note (if ommitted). + // Corresponds to the Type property of the Message object. + // --- Out: none + // --- Returns: the last Message object in the collection. + // --- Effect: remembers the filter + + COXMMessage GetPrevious(); + // --- In: none + // --- Out: none + // --- Returns: The previous object in the collection. Nothing if no previous object exists. + // --- Effect: decrements the internal item pointer + +}; + +///////////////////////////////////////////////////////////////////////////// +// COXMMessage wrapper class + +class OX_CLASS_DECL COXMMessage : public COleDispatchDriver +{ +// Member Functions +public: + COXMMessage() {} // Calls COleDispatchDriver default constructor + COXMMessage(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + COXMMessage(const COXMMessage& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + // --- In: pDispatch: the IDispatch pointer of the OLE messaging Session object + // dispatchSrc: the source object which will be copied + // --- Out: none + // --- Returns: none + // --- Effect: constructs this rapper object and attaches the real dispatch Interface with it + // The copy constructor version will increment the reference count of the IDispatch interface + + CString GetApplication(); + // --- In: none + // --- Out: none + // --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging." + // --- Effect: none + + EOXMClass GetClass(); + // --- In: none + // --- Out: none + // --- Returns: the OLE Messaging Library class type (see EOXMClass definition) + // --- Effect: none + + COXMSession GetSession(); + // --- In: none + // --- Out: none + // --- Returns: the top-level Session object associated with the specified OLE Messaging Library object + // --- Effect: none + + COXMMessages GetParent(); + // --- In: none + // --- Out: none + // --- Returns: The parent of the object which is the messages collection. + // --- Effect: none + + LPUNKNOWN GetMapiobject(); + // --- In: none + // --- Out: none + // --- Returns: an IUnknown pointer to the real Extended MAPI Session (IMAPISession) object. + // --- Effect: none + + void SetMapiobject(LPUNKNOWN pSession); + // --- In: pSession: IUnknown pointer of an Extended MAPI Session (IMAPISession) object + // --- Out: none + // --- Returns: none + // --- Effect: Attaches an IUnknown pointer of an Extended MAPI Session (IMAPISession) object. + + CString GetId(); + // --- In: none + // --- Out: none + // --- Returns: the unique ID of the object as a string. + // --- Effect: none + + CString GetFolderID(); + // --- In: none + // --- Out: none + // --- Returns: the unique ID of the folder in which the message resides. + // --- Effect: none + + CString GetStoreID(); + // --- In: none + // --- Out: none + // --- Returns: The unique identifier for the information store that contains this message. + // --- Effect: none + + CString GetType(); + // --- In: none + // --- Out: none + // --- Returns: the MAPI message class for the message. + // --- Effect: none + + void SetType(CString sType); + // --- In: the MAPI message class for the message. + // --- Out: none + // --- Returns: none + // --- Effect: sets the MAPI message class for the message. + + LONG GetSize(); + // --- In: none + // --- Out: none + // --- Returns: The approximate size in bytes of the message. + // --- Effect: none + + LONG GetImportance(); + // --- In: none + // --- Out: none + // --- Returns: the importance of the message as one of mapiNormal (the default), mapiLow, or mapiHigh. + // --- Effect: none + + void SetImportance(LONG); + // --- In: the importancy of the message. + // --- Out: none + // --- Returns: none + // --- Effect: sets the importance of the message as one of mapiNormal (the default), mapiLow, or mapiHigh. + + CString GetSubject(); + // --- In: none + // --- Out: none + // --- Returns: Returns the subject of the message as a string. + // --- Effect: none + + void SetSubject(CString); + // --- In: the subject of the message as a string. + // --- Out: none + // --- Returns: none + // --- Effect: sets the subject of the message as a string. + + COXMAddressEntry GetSender(); + // --- In: none + // --- Out: none + // --- Returns: the originator or original author of a message as an AddressEntry object. + // --- Effect: none + + COleDateTime GetTimeSent(); + // --- In: none + // --- Out: none + // --- Returns: the date and time the message was sent as a vbDate variant data type. + // --- Effect: none + + void SetTimeSent(COleDateTime); + // --- In: the date and time the message was sent + // --- Out: none + // --- Returns: none + // --- Effect: Sets the date and time the message was sent as a vbDate variant data type. + + COleDateTime GetTimeReceived(); + // --- In: none + // --- Out: none + // --- Returns: the date and time the message was received as a vbDate variant data type. + // --- Effect: none + + void SetTimeReceived(COleDateTime); + // --- In: the date and time the message was received. + // --- Out: none + // --- Returns: none + // --- Effect: Sets the date and time the message was received as a vbDate variant data type. + + CString GetText(); + // --- In: none + // --- Out: none + // --- Returns: the body text of the message as a string. + // --- Effect: none + + void SetText(CString); + // --- In: the body text of the message. + // --- Out: none + // --- Returns: none + // --- Effect: sets the body text of the message as a string. + + BOOL GetSent(); + // --- In: none + // --- Out: none + // --- Returns: TRUE if the message has been sent through the MAPI system. + // --- Effect: none + + void SetSent(BOOL); + // --- In: TRUE or FALSE + // --- Out: none + // --- Returns: none + // --- Effect: flags the message that it has been sent or not. + + BOOL GetSubmitted(); + // --- In: none + // --- Out: none + // --- Returns: TRUE when the message has been submitted. + // --- Effect: none + + void SetSubmitted(BOOL); + // --- In: TRUE or FALSE + // --- Out: none + // --- Returns: none + // --- Effect: flags the message that has been submitted or not. + + BOOL GetUnread(); + // --- In: none + // --- Out: none + // --- Returns: TRUE if the message has not been read by the current user. + // --- Effect: none + + void SetUnread(BOOL ); + // --- In: TRUE or FALSE + // --- Out: none + // --- Returns: none + // --- Effect: flags the message that has not been read by the current user, or not. + + BOOL GetSigned(); + // --- In: none + // --- Out: none + // --- Returns: TRUE if the message has been tagged with a digital signature. + // --- Effect: none + + void SetSigned(BOOL); + // --- In: TRUE or FALSE + // --- Out: none + // --- Returns: none + // --- Effect: flags the message that has been tagged with a digital signature, or not. + + BOOL GetEncrypted(); + // --- In: none + // --- Out: none + // --- Returns: TRUE if the message has been encrypted. + // --- Effect: none + + void SetEncrypted(BOOL); + // --- In: TRUE or FALSE + // --- Out: none + // --- Returns: none + // --- Effect: flags the message that has been encrypted, or not. + + BOOL GetReadReceipt(); + // --- In: none + // --- Out: none + // --- Returns: TRUE if a read-receipt notification message is requested. + // --- Effect: none + + void SetReadReceipt(BOOL); + // --- In: TRUE or FALSE + // --- Out: none + // --- Returns: none + // --- Effect: flags that a read-receipt notification message is requested, or not. + + BOOL GetDeliveryReceipt(); + // --- In: none + // --- Out: none + // --- Returns: TRUE if a delivery-receipt notification message is requested. + // --- Effect: none + + void SetDeliveryReceipt(BOOL); + // --- In: TRUE or FALSE + // --- Out: none + // --- Returns: none + // --- Effect: flags that a delivery-receipt notification message is requested, or not. + + CString GetConversationIndex(); + // --- In: none + // --- Out: none + // --- Returns: the index to the conversation thread of the message. + // --- Effect: none + + void SetConversationIndex(CString); + // --- In: index to the conversation thread of the message + // --- Out: none + // --- Returns: none + // --- Effect: sets the index to the conversation thread of the message. + + CString GetConversationTopic(); + // --- In: none + // --- Out: none + // --- Returns: the name of the conversation thread. + // --- Effect: none + + void SetConversationTopic(CString); + // --- In: name of the conversation thread. + // --- Out: none + // --- Returns: none + // --- Effect: specifies the name of the conversation thread. + + COXMFields GetFields(); + // --- In: none + // --- Out: none + // --- Returns: a single field (a Field object) or a collection of fields (a Fields collection object) of the Message object. + // --- Effect: none + + COXMRecipients GetRecipients(); + // --- In: none + // --- Out: none + // --- Returns: a single Recipient object or a Recipients collection object. + // --- Effect: none + + COXMAttachments GetAttachments(); + // --- In: none + // --- Out: none + // --- Returns: a single Attachment object or an Attachments collection. + // --- Effect: none + + void Delete(); + // --- In: none + // --- Out: none + // --- Returns: none + // --- Effect: deletes the Message object. + + void Update(BOOL bMakePermanent = TRUE, BOOL bRefreshObject = FALSE); + // --- In: bMakePermanent: TRUE indicates that the property cache is flushed and all changes are committed to the underlying store. + // FALSE indicates that the property cache is flushed and not committed to the store. + // bRefreshObject: TRUE indicates that the property cache is reloaded from the values in the underlying store. + // FALSE indicates that the property cache is not reloaded. + // --- Out: none + // --- Returns: none + // --- Effect: Saves the message in the MAPI system. + + void Send(BOOL bSaveCopy = TRUE, BOOL bShowDialog = FALSE, HWND hParentWindow = NULL); + // --- In: bSaveCopy: Saves a copy of the Message in a user folder, such as the Sent Messages folder. + // bShowDialog: Displays a Send Message dialog box where the user can change the message contents or recipients. + // hParentWindow: The parent window handle for the Send Message dialog box. + // A value of NULL (the default) specifies that any dialog box displayed is application-modal. + // --- Out: none + // --- Returns: none + // --- Effect: Sends the message to the recipients via the MAPI system. + + void Options(HWND hParentWindow = NULL); + // --- In: hParentWindow: The parent window handle for the options dialog box. + // A value of NULL (the default) specifies an application-modal dialog box. + // --- Out: none + // --- Returns: none + // --- Effect: Displays a message options dialog box where the user can change the submission options for a message. + +}; + +///////////////////////////////////////////////////////////////////////////// +// COXMFields wrapper class + +class OX_CLASS_DECL COXMFields : public COleDispatchDriver +{ +// Member Functions +public: + COXMFields() {} // Calls COleDispatchDriver default constructor + COXMFields(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + COXMFields(const COXMFields& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + // --- In: pDispatch: the IDispatch pointer of the OLE messaging Fields object + // dispatchSrc: the source object which will be copied + // --- Out: none + // --- Returns: none + // --- Effect: constructs this rapper object and attaches the real dispatch Interface with it + // The copy constructor version will increment the reference count of the IDispatch interface + + CString GetApplication(); + // --- In: none + // --- Out: none + // --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging." + // --- Effect: none + + EOXMClass GetClass(); + // --- In: none + // --- Out: none + // --- Returns: the OLE Messaging Library class type (see EOXMClass definition) + // --- Effect: none + + COXMSession GetSession(); + // --- In: none + // --- Out: none + // --- Returns: the top-level Session object associated with the specified OLE Messaging Library object + // --- Effect: none + + LPDISPATCH GetParent(); + // --- In: none + // --- Out: none + // --- Returns: The parent of the object (Message or Folder object). + // --- Effect: none + + LONG GetCount(); + // --- In: none + // --- Out: none + // --- Returns: The number of Field objects in the collection. + // --- Effect: none + + COXMField GetItem(COleVariant vItem, CString sPropSetID = _T("")); + // --- In: vItem: + short -> index within collection + // + LONG -> property tag value for the MAPI property to be retrieved + // + string -> Specifies the name of the user-defined property + // sPropSetID: Contains the unique identifier for the property set, represented as a string + // of hexadecimal characters. When propsetID is not supplied, the property set used for + // the access is the default property set value set by this collection's SetNamespace + // method, or the initial default property set value, PS_PUBLIC_STRINGS. + // --- Out: none + // --- Returns: a single item from a collection. + // --- Effect: none + + void SetNamespace(CString sPropsetID); + // --- In: sPropsetID: Contains a unique identifier that identifies the property set, + // represented as a string of hexadecimal characters. The PropsetID + // identifies the property set to be used for subsequent property accesses + // using the Field object and Fields collection. An empty string resets + // the default to the property set PS_PUBLIC_STRINGS. + // --- Out: none + // --- Returns: none + // --- Effect: Selects the property set that is to be used for subsequent property + // accesses using the Add method and Item property. + + COXMField Add(CString sName, COleVariant value, CString sPropsetID = _T("")); + // --- In: sName: the name of the new field object + // value: the value of the field. There are limited number of supported types: + // VT_NULL, VT_I2, VT_I4, VT_R4, VT_R8, VT_CY, VT_DATE, VT_BSTR, + // VT_BOOL, VT_UNKNOWN, VT_BLOB + // --- Out: none + // --- Return: The new added field object + // --- Effect: Creates a new Field object in the Fields collection. + + void Delete(); + // --- In: none + // --- Out: none + // --- Returns: none + // --- Effect: Deletes all user-defined fields of this collection object. +}; + +///////////////////////////////////////////////////////////////////////////// +// COXMField wrapper class + +class OX_CLASS_DECL COXMField : public COleDispatchDriver +{ +// Member Functions + public: + COXMField() {} // Calls COleDispatchDriver default constructor + COXMField(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + COXMField(const COXMField& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + // --- In: pDispatch: the IDispatch pointer of the OLE messaging Field object + // dispatchSrc: the source object which will be copied + // --- Out: none + // --- Returns: none + // --- Effect: constructs this rapper object and attaches the real dispatch Interface with it + // The copy constructor version will increment the reference count of the IDispatch interface + + CString GetApplication(); + // --- In: none + // --- Out: none + // --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging." + // --- Effect: none + + EOXMClass GetClass(); + // --- In: none + // --- Out: none + // --- Returns: the OLE Messaging Library class type (see EOXMClass definition) + // --- Effect: none + + COXMSession GetSession(); + // --- In: none + // --- Out: none + // --- Returns: the top-level Session object associated with the specified OLE Messaging Library object + // --- Effect: none + + COXMFields GetParent(); + // --- In: none + // --- Out: none + // --- Returns: the parent of the object which is the collection object. + // --- Effect: none + + LONG GetIndex(); + // --- In: none + // --- Out: none + // --- Returns: the index number of this Field object within the Fields collection. + // --- Effect: none + + LONG GetType(); + // --- In: none + // --- Out: none + // --- Returns: the variant data type of the Field object. + // --- Effect: none + + CString GetName(); + // --- In: none + // --- Out: none + // --- Returns: the name of the field as a string. + // --- Effect: none + + LONG GetId(); + // --- In: none + // --- Out: none + // --- Returns: the unique ID of the object as a long integer. + // --- Effect: none + + COleVariant GetValue(); + // --- In: none + // --- Out: none + // --- Returns: the value of the Field object. + // --- Effect: none + + void SetValue(COleVariant); + // --- In: value of the Field object. + // --- Out: none + // --- Returns: none + // --- Effect: sets value of the Field object. + + void Delete(); + // --- In: none + // --- Out: none + // --- Returns: none + // --- Effect: deletes the user-defined or optional Field object + + void ReadFromFile(CString sPath); + // --- In: sPath: The full path and file name to read + // --- Out: none + // --- Returns: none + // --- Effect: loads the value of a string or binary field from the specified file + + void WriteToFile(CString sPath); + // --- In: sPath: The full path and file name to read + // --- Out: none + // --- Returns: none + // --- Effect: saves the field value to a file in the file system +}; + +///////////////////////////////////////////////////////////////////////////// +// COXMRecipients wrapper class + +class OX_CLASS_DECL COXMRecipients : public COleDispatchDriver +{ +// member Functions +public: + COXMRecipients() {} // Calls COleDispatchDriver default constructor + COXMRecipients(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + COXMRecipients(const COXMRecipients& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + // --- In: pDispatch: the IDispatch pointer of the OLE messaging Recipients object + // dispatchSrc: the source object which will be copied + // --- Out: none + // --- Returns: none + // --- Effect: constructs this rapper object and attaches the real dispatch Interface with it + // The copy constructor version will increment the reference count of the IDispatch interface + + CString GetApplication(); + // --- In: none + // --- Out: none + // --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging." + // --- Effect: none + + EOXMClass GetClass(); + // --- In: none + // --- Out: none + // --- Returns: the OLE Messaging Library class type (see EOXMClass definition) + // --- Effect: none + + COXMSession GetSession(); + // --- In: none + // --- Out: none + // --- Returns: the top-level Session object associated with the specified OLE Messaging Library object + // --- Effect: none + + COXMFolder GetParent(); + // --- In: none + // --- Out: none + // --- Returns: the parent of the object which is a COXMFolder object. + // --- Effect: none + + COXMRecipient GetItem(LONG nIndex); + // --- In: nIndex: the index within the collection + // --- Out: none + // --- Returns: a single Recipient from the collection. + // --- Effect: none + + LONG GetCount(); + // --- In: none + // --- Out: none + // --- Returns: the number of Recipient objects in the collection. + // --- Effect: none + + BOOL GetResolved(); + // --- In: none + // --- Out: none + // --- Returns: TRUE if all of the recipients in the collection are resolved. + // --- Effect: none + + COXMRecipient Add(CString sName = _T(""), CString sAddress = _T(""), EOXMRecipientType eType = oxmrtTo, CString sEntryID = _T("")); + // --- In: sName: The display name of the recipient. + // sAddress: The address of the recipient. + // eType: oxmrtTo, oxmrtCc or oxmrtBcc + // sEntryID: The identifier of a valid AddressEntry object for this recipient. + // When present, the other parameters are not used. When not present, + // the method uses the name, address, and type parameters to determine the recipient. + // --- Out: none + // --- Returns: represents the new Recipient object added to the collection + // --- Effect: creates a new Recipient object in the Recipients collection + + void Delete(); + // --- In: none + // --- Out: none + // --- Returns: none + // --- Effect: deletes all Recipients in the collection + + void Resolve(BOOL bShowDialog = TRUE); + // --- In: bShowDialog: if dialog should be shown or not + // --- Out: none + // --- Returns: none + // --- Effect: searches the Recipients collection to resolve all names +}; + +///////////////////////////////////////////////////////////////////////////// +// COXMRecipient wrapper class + +class OX_CLASS_DECL COXMRecipient : public COleDispatchDriver +{ +public: + COXMRecipient() {} // Calls COleDispatchDriver default constructor + COXMRecipient(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + COXMRecipient(const COXMRecipient& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + // --- In: pDispatch: the IDispatch pointer of the OLE messaging Recipient object + // dispatchSrc: the source object which will be copied + // --- Out: none + // --- Returns: none + // --- Effect: constructs this rapper object and attaches the real dispatch Interface with it + // The copy constructor version will increment the reference count of the IDispatch interface + + CString GetApplication(); + // --- In: none + // --- Out: none + // --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging." + // --- Effect: none + + EOXMClass GetClass(); + // --- In: none + // --- Out: none + // --- Returns: the OLE Messaging Library class type (see EOXMClass definition) + // --- Effect: none + + COXMSession GetSession(); + // --- In: none + // --- Out: none + // --- Returns: the top-level Session object associated with the specified OLE Messaging Library object + // --- Effect: none + + COXMRecipients GetParent(); + // --- In: none + // --- Out: none + // --- Returns: the parent of the object. + // --- Effect: none + + LONG GetIndex(); + // --- In: none + // --- Out: none + // --- Returns: the index number of this Recipient object within the Recipients collection. + // --- Effect: none + + EOXMDisplayType GetDisplayType(); + // --- In: none + // --- Out: none + // --- Returns: Identifies the recipient type. Enables special processing based on the type, + // such as displaying an icon associated with that type. + // oxmdtMailUser (0) Local user + // oxmdtDistList (1) Distribution list + // oxmdtForum (2) Public folder + // oxmdtAgent (3) Agent + // oxmdtOrganisation (4) Organization + // oxmdtPrivateDistList (5) Private distribution list + // oxmdtRemoteMailUser (6) Remote user + // --- Effect: none + + CString GetName(); + // --- In: none + // --- Out: none + // --- Returns: the name of this Recipient object. + // --- Effect: none + + void SetName(CString); + // --- In: the name of this Recipient object. + // --- Out: none + // --- Returns: none + // --- Effect: sets the name of this Recipient object. + + EOXMRecipientType GetType(); + // --- In: none + // --- Out: none + // --- Returns: the type of the Recipient object + // oxmrtTo (1) The recipient is on the To: line + // oxmrtCc (2) The recipient is on the Cc: line. + // oxmrtBcc (3)The recipient is on the Bcc: line. + // --- Effect: none + + void SetType(EOXMRecipientType); + // --- In: the type of the Recipient object + // oxmrtTo (1) The recipient is on the To: line + // oxmrtCc (2) The recipient is on the Cc: line. + // oxmrtBcc (3)The recipient is on the Bcc: line. + // --- Out: none + // --- Returns: none + // --- Effect: Sets the type of the Recipient object + + CString GetAddress(); + // --- In: none + // --- Out: none + // --- Returns: the full address for this recipient. + // --- Effect: none + + void SetAddress(CString); + // --- In: the full address for this recipient. + // --- Out: none + // --- Returns: none + // --- Effect: sets the full address for this recipient. + + COXMAddressEntry GetAddressEntry(); + // --- In: none + // --- Out: none + // --- Returns: the AddressEntry object for this recipient. + // --- Effect: none + + void SetAddressEntry(LPDISPATCH); + // --- In: the AddressEntry object. + // --- Out: none + // --- Returns: none + // --- Effect: Sets the AddressEntry object for this recipient. + + void Delete(); + // --- In: none + // --- Out: none + // --- Returns: none + // --- Effect: deletes the Recipient object + + void Resolve(BOOL bShowDialog = TRUE); + // --- In: bShowDialog: if dialog should be shown or not + // --- Out: none + // --- Returns: none + // --- Effect: Resolves address information. When the Recipient object's Name property + // is supplied, looks up the corresponding address from the address book. + // When the Recipient object's Address property is supplied, resolves as a + // custom address. +}; + +///////////////////////////////////////////////////////////////////////////// +// COXMAttachments wrapper class + +class OX_CLASS_DECL COXMAttachments : public COleDispatchDriver +{ +// Member Functions +public: + COXMAttachments() {} // Calls COleDispatchDriver default constructor + COXMAttachments(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + COXMAttachments(const COXMAttachments& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + // --- In: pDispatch: the IDispatch pointer of the OLE messaging Attachments object + // dispatchSrc: the source object which will be copied + // --- Out: none + // --- Returns: none + // --- Effect: constructs this rapper object and attaches the real dispatch Interface with it + // The copy constructor version will increment the reference count of the IDispatch interface + + CString GetApplication(); + // --- In: none + // --- Out: none + // --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging." + // --- Effect: none + + EOXMClass GetClass(); + // --- In: none + // --- Out: none + // --- Returns: the OLE Messaging Library class type (see EOXMClass definition) + // --- Effect: none + + COXMSession GetSession(); + // --- In: none + // --- Out: none + // --- Returns: the top-level Session object associated with the specified OLE Messaging Library object + // --- Effect: none + + COXMMessage GetParent(); + // --- In: none + // --- Out: none + // --- Returns: the parent of the object. + // --- Effect: none + + COXMAttachment GetItem(LONG nIndex); + // --- In: nIndex: the index within the collection + // --- Out: none + // --- Returns: a single item from a collection. + // --- Effect: none + + LONG GetCount(); + // --- In: none + // --- Out: none + // --- Returns: the number of Attachment objects in the collection. + // --- Effect: none + + COXMAttachment Add(CString sName = _T(""), LONG nPosition = 0, EOXMAttachmentType eType = oxmatFileData, CString sSource = _T("")); + // --- In: sName: The display name of the attachment. To allow a user to click on the attachment that + // appears in the message and activate an associated application, supply the full filename, + // including the file extension. In case of an OleObject you have to specify the Class name + // ex: EXCEL.DOCUMENT + // nPosition: The position of the attachment within the body text of the message. + // eType: oxmatFileData, oxmatFileLink or oxmatOleObject + // sSource: depending of the value for type: + // FileData Specifies a full path and file name that contains the data for the attachment. + // For example, C:\DOCUMENT\BUDGET.XLS. The data is read into the attachment. + // FileLink Specifies a full path name in a universal naming convention (UNC) format, + // such as \\SALES\INFO\PRODUCTS\NEWS.DOC. The attachment is a link, so the Add + // method does not read the data. + // OleObject Specifies a full path and file name to a valid OLE docfile. For example, + // C:\DOCUMENT\BUDGET2.XLS. The data is read into the attachment. + // --- Out: none + // --- Returns: none + // --- Effect: creates a new Attachment object in the Attachments collection + + void Delete(); + // --- In:none + // --- Out: none + // --- Returns: none + // --- Effect: deletes the entire Attachments collection +}; + +///////////////////////////////////////////////////////////////////////////// +// COXMAttachment wrapper class + +class OX_CLASS_DECL COXMAttachment : public COleDispatchDriver +{ +// Member Functions +public: + COXMAttachment() {} // Calls COleDispatchDriver default constructor + COXMAttachment(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + COXMAttachment(const COXMAttachment& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + // --- In: pDispatch: the IDispatch pointer of the OLE messaging Attachment object + // dispatchSrc: the source object which will be copied + // --- Out: none + // --- Returns: none + // --- Effect: constructs this rapper object and attaches the real dispatch Interface with it + // The copy constructor version will increment the reference count of the IDispatch interface + + CString GetApplication(); + // --- In: none + // --- Out: none + // --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging." + // --- Effect: none + + EOXMClass GetClass(); + // --- In: none + // --- Out: none + // --- Returns: the OLE Messaging Library class type (see EOXMClass definition) + // --- Effect: none + + COXMSession GetSession(); + // --- In: none + // --- Out: none + // --- Returns: the top-level Session object associated with the specified OLE Messaging Library object + // --- Effect: none + + COXMAttachments GetParent(); + // --- In: none + // --- Out: none + // --- Returns: the parent of the object. + // --- Effect: none + + CString GetName(); + // --- In: none + // --- Out: none + // --- Returns: the display name of the Attachment object as a string (FileData or FileLink type attachments) + // returns the OLE class name for OleObject attachments (see GetType and SetType functions) + // --- Effect: none + + void SetName(CString); + // --- In: the name of this Attachment object. + // --- Out: none + // --- Returns: none + // --- Effect: sets the display name of the Attachment object as a string + + EOXMAttachmentType GetType(); + // --- In: none + // --- Out: none + // --- Returns: describes the attachment type: oxmatFileData, oxmatFileLink or oxmatOleObject + // --- Effect: none + + void SetType(EOXMAttachmentType); + // --- In: the type of the Attachment object: + // oxmatFileData + // oxmatFileLink + // oxmatOleObject + // --- Out: none + // --- Returns: none + // --- Effect: Sets the type of the Attachment object + + LONG GetIndex(); + // --- In: none + // --- Out: none + // --- Returns: the index number for the Attachment object within the Attachments collection. + // --- Effect: none + + LONG GetPosition(); + // --- In: none + // --- Out: none + // --- Returns: the position of the attachment within the body text of the message. + // --- Effect: none + + void SetPosition(LONG); + // --- In: the position of the attachment. + // --- Out: none + // --- Returns: none + // --- Effect: sets the position of the attachment within the body text of the message. + + CString GetSource(); + // --- In: none + // --- Out: none + // --- Returns:the full path name of the attachment data file (For FileLink attachments). + // For OleObject attachments, returns the OLE class name for the attachment. + // --- Effect: none + + void SetSource(CString); + // --- In: the source for this attachment + // --- Out: none + // --- Returns:none + // --- Effect: When using oxmatFileData or oxmatOleObject this value is set by the ReadFromFile + // or WriteToFile functions. + + + void Delete(); + // --- In: none + // --- Out: none + // --- Returns: none + // --- Effect: deletes the attachment. + + void ReadFromFile(CString sPath); + // --- In: sPath: The full path and file name to read. For example, C:\DOCUMENT\BUDGET.XLS. + // --- Out: none + // --- Returns: none + // --- Effect: loads the contents of an attachment from a file + + void WriteToFile(CString sPath); + // --- In: sPath: The full path and file name for the saved attachment. For example, C:\DOCUMENT\BUDGET.XLS. + // --- Out: none + // --- Returns: none + // --- Effect: Saves the attachment to a file in the file system. + // Note that if the file already exists, this method overwrites it without warning. + +}; + +///////////////////////////////////////////////////////////////////////////// +// COXMAddressEntry wrapper class + +class OX_CLASS_DECL COXMAddressEntry : public COleDispatchDriver +{ +// Data Members +public: + BOOL m_bCurrentSessionUser; +// Member Functions +public: + COXMAddressEntry() : m_bCurrentSessionUser(FALSE) {} // Calls COleDispatchDriver default constructor + COXMAddressEntry(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch), m_bCurrentSessionUser(FALSE) {} + COXMAddressEntry(const COXMAddressEntry& dispatchSrc) : COleDispatchDriver(dispatchSrc), m_bCurrentSessionUser(FALSE) {} + // --- In: pDispatch: the IDispatch pointer of the OLE messaging AddressEntry object + // dispatchSrc: the source object which will be copied + // --- Out: none + // --- Returns: none + // --- Effect: constructs this rapper object and attaches the real dispatch Interface with it + // The copy constructor version will increment the reference count of the IDispatch interface + + CString GetApplication(); + // --- In: none + // --- Out: none + // --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging." + // --- Effect: none + + EOXMClass GetClass(); + // --- In: none + // --- Out: none + // --- Returns: the OLE Messaging Library class type (see EOXMClass definition) + // --- Effect: none + + COXMSession GetSession(); + // --- In: none + // --- Out: none + // --- Returns: the top-level Session object associated with the specified OLE Messaging Library object + // --- Effect: none + + COXMRecipient GetParent(); + // --- In: none + // --- Out: none + // --- Returns: the parent of the object. + // m_lpDispatch member of returned object can be NULL (Current User) + // --- Effect: none + + EOXMDisplayType GetDisplayType(); + // --- In: none + // --- Out: none + // --- Returns: Identifies the type of the address entry. This property enables special + // processing based on the type, such as displaying an icon associated with that type. + // oxmdtMailUser (0) Local user + // oxmdtDistList (1) Distribution list + // oxmdtForum (2) Public folder + // oxmdtAgent (3) Agent + // oxmdtOrganisation (4) Organization + // oxmdtPrivateDistList (5) Private distribution list + // oxmdtRemoteMailUser (6) Remote user + // --- Effect: none + + CString GetName(); + // --- In: none + // --- Out: none + // --- Returns: the display name or alias of the AddressEntry object as a string. + // --- Effect: none + + void SetName(CString); + // --- In: the display name or alias of the AddressEntry object + // --- Out: none + // --- Returns: none + // --- Effect: sets the display name or alias of the AddressEntry object as a string. + + CString GetAddress(); + // --- In: none + // --- Out: none + // --- Returns: the messaging address of an address list entry or message recipient. + // --- Effect: none + + void SetAddress(CString); + // --- In: the messaging address of an address list entry or message recipient. + // --- Out: none + // --- Returns: none + // --- Effect: Sets the messaging address of an address list entry or message recipient. + + CString GetType(); + // --- In: none + // --- Out: none + // --- Returns: the address type, such as "SMTP," "Fax," or "X.400." + // --- Effect: none + + void SetType(CString); + // --- In: the address type + // --- Out: none + // --- Returns: none + // --- Effect: Specifies the address type, such as "SMTP," "Fax," or "X.400." + + CString GetId(); + // --- In: none + // --- Out: none + // --- Returns: the unique ID of the object as a string. + // --- Effect: none + + COXMFields GetFields(); + // --- In: none + // --- Out: none + // --- Returns: a single field (a Field object) or a collection of fields (a Fields collection object) of the Folder object. + // --- Effect: none + + void Details(HWND hParentWindow = NULL); + // --- In: hParentWindow: The parent window handle for the details dialog box. + // A value of NULL specifies a application modal dialog box. + // --- Out: none + // --- Returns: none + // --- Effect: displays a dialog box that provides detailed information about an AddressEntry object + + void Update(BOOL bMakePermanent = TRUE, BOOL bRefreshObject = FALSE); + // --- In: bMakePermanent: TRUE indicates that the property cache is flushed and all changes are + // committed in the underlying store. FALSE indicates that the property cache is flushed and + // not committed to the store. + // bRefreshObject: TRUE indicates that the property cache is reloaded from the values in the + // underlying store. FALSE indicates that the property cache is not reloaded. + // --- Out: none + // --- Returns: none + // --- Effect: Saves AddressEntry object changes in the MAPI system + + void Delete(); + // --- In: none + // --- Out: none + // --- Returns: none + // --- Effect: deletes the specified address from the address book +}; + + +#endif diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/ChildFrm.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/ChildFrm.cpp new file mode 100644 index 0000000..d18fd28 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/ChildFrm.cpp @@ -0,0 +1,69 @@ +// ChildFrm.cpp : implementation of the CChildFrame class +// + +#include "stdafx.h" +#include "Communicator.h" + +#include "ChildFrm.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame + +IMPLEMENT_DYNCREATE(CChildFrame, CMDIChildWnd) + +BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWnd) + //{{AFX_MSG_MAP(CChildFrame) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame construction/destruction + +CChildFrame::CChildFrame() +{ + // TODO: add member initialization code here + +} + +CChildFrame::~CChildFrame() +{ +} + +BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs) +{ + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + cs.style &= ~WS_MAXIMIZEBOX; + cs.style &= ~WS_MINIMIZEBOX; + cs.style |= WS_MAXIMIZE; + + + return CMDIChildWnd::PreCreateWindow(cs); +} + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame diagnostics + +#ifdef _DEBUG +void CChildFrame::AssertValid() const +{ + CMDIChildWnd::AssertValid(); +} + +void CChildFrame::Dump(CDumpContext& dc) const +{ + CMDIChildWnd::Dump(dc); +} + +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame message handlers diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/ChildFrm.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/ChildFrm.h new file mode 100644 index 0000000..089fffc --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/ChildFrm.h @@ -0,0 +1,40 @@ +// ChildFrm.h : interface of the CChildFrame class +// +///////////////////////////////////////////////////////////////////////////// + +class CChildFrame : public CMDIChildWnd +{ + DECLARE_DYNCREATE(CChildFrame) +public: + CChildFrame(); + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CChildFrame) + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CChildFrame(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +// Generated message map functions +protected: + //{{AFX_MSG(CChildFrame) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.cpp new file mode 100644 index 0000000..291ef03 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.cpp @@ -0,0 +1,188 @@ +// Communicator.cpp : Defines the class behaviors for the application. +// + +#include "stdafx.h" +#include "Communicator.h" +#include "utsampleAbout.h" +#include "MainFrm.h" +#include "ChildFrm.h" +#include "CommunicatorDoc.h" +#include "CommunicatorView.h" +#include "HexView.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CCommunicatorApp + +BEGIN_MESSAGE_MAP(CCommunicatorApp, CWinApp) + //{{AFX_MSG_MAP(CCommunicatorApp) + ON_COMMAND(ID_APP_ABOUT, OnAppAbout) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG_MAP + // Standard file based document commands + ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) + ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CCommunicatorApp construction + +CCommunicatorApp::CCommunicatorApp() + : + m_pHexDocTemplate(NULL) + { + } + +///////////////////////////////////////////////////////////////////////////// +// The one and only CCommunicatorApp object + +CCommunicatorApp theApp; +static HINSTANCE g_hRichEdDLL=NULL; + +// This identifier was generated to be statistically unique for your app. +// You may change it if you prefer to choose a specific identifier. + +// {F44C48E0-6DD7-11CF-8508-00AA0021F02C} +static const CLSID clsid = +{ 0xf44c48e0, 0x6dd7, 0x11cf, { 0x85, 0x8, 0x0, 0xaa, 0x0, 0x21, 0xf0, 0x2c } }; + +///////////////////////////////////////////////////////////////////////////// +// CCommunicatorApp initialization + +BOOL CCommunicatorApp::InitInstance() +{ + if (!AfxSocketInit()) + { + AfxMessageBox(IDP_SOCKETS_INIT_FAILED); + return FALSE; + } + + // Initialize RichEdit control + // for About Dialog + if(g_hRichEdDLL==NULL) + { + g_hRichEdDLL=::LoadLibrary(_T("RICHED32.DLL")); + if(g_hRichEdDLL==NULL) + TRACE(_T("Cannot load library to display RichEditTextControl")); + } + + + // Initialize OLE libraries + if (!AfxOleInit()) + { + AfxMessageBox(IDP_OLE_INIT_FAILED); + return FALSE; + } + + + +#ifdef _AFXDLL + Enable3dControls(); // Call this when using MFC in a shared DLL +#else + Enable3dControlsStatic(); // Call this when linking to MFC statically +#endif + + LoadStdProfileSettings(); // Load standard INI file options (including MRU) + + // Register the application's document templates. Document templates + // serve as the connection between documents, frame windows and views. + + CMultiDocTemplate* pDocTemplate; + pDocTemplate = new CMultiDocTemplate( + IDR_COMMTYPE, + RUNTIME_CLASS(CCommunicatorDoc), + RUNTIME_CLASS(CChildFrame), // custom MDI child frame + RUNTIME_CLASS(CCommunicatorView)); + AddDocTemplate(pDocTemplate); + + m_pHexDocTemplate = new CMultiDocTemplate( + IDR_COMMTYPE, + RUNTIME_CLASS(CCommunicatorDoc), + RUNTIME_CLASS(CChildFrame), // custom MDI child frame + RUNTIME_CLASS(CHexView)); + + // Connect the COleTemplateServer to the document template. + // The COleTemplateServer creates new documents on behalf + // of requesting OLE containers by using information + // specified in the document template. + m_server.ConnectTemplate(clsid, pDocTemplate, FALSE); + + // Register all OLE server factories as running. This enables the + // OLE libraries to create objects from other applications. + COleTemplateServer::RegisterAll(); + // Note: MDI applications register all server objects without regard + // to the /Embedding or /Automation on the command line. + + // create main MDI Frame window + CMainFrame* pMainFrame = new CMainFrame; + if (!pMainFrame->LoadFrame(IDR_MAINFRAME)) + return FALSE; + m_pMainWnd = pMainFrame; + + // Enable drag/drop open + m_pMainWnd->DragAcceptFiles(); + + // Enable DDE Execute open + EnableShellOpen(); + RegisterShellFileTypes(TRUE); + + // Parse command line for standard shell commands, DDE, file open + CCommandLineInfo cmdInfo; + ParseCommandLine(cmdInfo); + + // Check to see if launched as OLE server + if (cmdInfo.m_bRunEmbedded || cmdInfo.m_bRunAutomated) + { + // Application was run with /Embedding or /Automation. Don't show the + // main window in this case. + return TRUE; + } + + // When a server application is launched stand-alone, it is a good idea + // to update the system registry in case it has been damaged. + m_server.UpdateRegistry(OAT_DISPATCH_OBJECT); + COleObjectFactory::UpdateRegistryAll(); + + // Dispatch commands specified on the command line + if (!ProcessShellCommand(cmdInfo)) + return FALSE; + + // The main window has been initialized, so show and update it. + pMainFrame->ShowWindow(m_nCmdShow); + pMainFrame->UpdateWindow(); + + return TRUE; +} + +///////////////////////////////////////////////////////////////////////////// +// CAboutDlg dialog used for App About + + + +// App command to run the dialog +void CCommunicatorApp::OnAppAbout() +{ + CUTSampleAboutDlg aboutDlg(IDR_MAINFRAME,ID_DESCRIPTION_FILE); + aboutDlg.DoModal(); +} + +///////////////////////////////////////////////////////////////////////////// +// CCommunicatorApp commands + +int CCommunicatorApp::ExitInstance() + { + if (m_pHexDocTemplate != NULL) + delete m_pHexDocTemplate; + + // unload the library + if(g_hRichEdDLL!=NULL) + ::FreeLibrary(g_hRichEdDLL); + + return CWinApp::ExitInstance(); + } diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.dsp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.dsp new file mode 100644 index 0000000..727ac6f --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.dsp @@ -0,0 +1,318 @@ +# Microsoft Developer Studio Project File - Name="Communicator" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=Communicator - Win32 Unicode_Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "Communicator.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "Communicator.mak" CFG="Communicator - Win32 Unicode_Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "Communicator - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "Communicator - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE "Communicator - Win32 Release_Shared" (based on "Win32 (x86) Application") +!MESSAGE "Communicator - Win32 Unicode_Debug" (based on "Win32 (x86) Application") +!MESSAGE "Communicator - Win32 Unicode_Release" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "Communicator - Win32 Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir ".\Release" +# PROP BASE Intermediate_Dir ".\Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir ".\Release" +# PROP Intermediate_Dir ".\Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\include" /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x813 /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x813 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"Communicator.exe" /section:.sdata,rws +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "Communicator - Win32 Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir ".\Debug" +# PROP BASE Intermediate_Dir ".\Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir ".\Debug" +# PROP Intermediate_Dir ".\Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\include" /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /FR /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x813 /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x813 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 +# ADD LINK32 /nologo /subsystem:windows /profile /debug /machine:I386 /out:"Communicator.exe" /section:.sdata,rws + +!ELSEIF "$(CFG)" == "Communicator - Win32 Release_Shared" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Communic" +# PROP BASE Intermediate_Dir "Communic" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release_Shared" +# PROP Intermediate_Dir "Release_Shared" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W4 /GX /O2 /I "..\..\include" /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x813 /d "NDEBUG" +# ADD RSC /l 0x813 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /out:"Communicator.exe" /section:.sdata,rws +# SUBTRACT BASE LINK32 /pdb:none +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"Communicator.exe" /section:.sdata,rws +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "Communicator - Win32 Unicode_Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Communi0" +# PROP BASE Intermediate_Dir "Communi0" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Unicode_Debug" +# PROP Intermediate_Dir "Unicode_Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W4 /Gm /GX /Zi /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /FR /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\include" /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /D "_UNICODE" /FR /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x813 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x813 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /profile /debug /machine:I386 /out:"Communicator.exe" /section:.sdata,rws +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /profile /debug /machine:I386 /out:"Communicator.exe" /section:.sdata,rws + +!ELSEIF "$(CFG)" == "Communicator - Win32 Unicode_Release" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Communi1" +# PROP BASE Intermediate_Dir "Communi1" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Unicode_Release" +# PROP Intermediate_Dir "Unicode_Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\include" /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x813 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +# ADD RSC /l 0x813 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /out:"Communicator.exe" /section:.sdata,rws +# SUBTRACT BASE LINK32 /pdb:none +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /machine:I386 /out:"Communicator.exe" /section:.sdata,rws +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "Communicator - Win32 Release" +# Name "Communicator - Win32 Debug" +# Name "Communicator - Win32 Release_Shared" +# Name "Communicator - Win32 Unicode_Debug" +# Name "Communicator - Win32 Unicode_Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90" +# Begin Group "UTSource" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\source\OXBlob.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\source\OXCommMsg.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\source\OXCommunicator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\source\OXVariant.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\UTSampleAbout\UTSampleAbout.cpp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ChildFrm.cpp +# End Source File +# Begin Source File + +SOURCE=.\Communicator.cpp +# End Source File +# Begin Source File + +SOURCE=.\Communicator.odl +# End Source File +# Begin Source File + +SOURCE=.\Communicator.rc +# End Source File +# Begin Source File + +SOURCE=.\CommunicatorDoc.cpp +# End Source File +# Begin Source File + +SOURCE=.\CommunicatorView.cpp +# End Source File +# Begin Source File + +SOURCE=.\HexView.cpp +# End Source File +# Begin Source File + +SOURCE=.\MainFrm.cpp +# End Source File +# Begin Source File + +SOURCE=.\OXDataCommunicator.cpp +# End Source File +# Begin Source File + +SOURCE=.\ReadMe.txt +# End Source File +# Begin Source File + +SOURCE=.\SendDataDlg.cpp +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd" +# Begin Source File + +SOURCE=.\ChildFrm.h +# End Source File +# Begin Source File + +SOURCE=.\Communicator.h +# End Source File +# Begin Source File + +SOURCE=.\CommunicatorDoc.h +# End Source File +# Begin Source File + +SOURCE=.\CommunicatorView.h +# End Source File +# Begin Source File + +SOURCE=.\HexView.h +# End Source File +# Begin Source File + +SOURCE=.\MainFrm.h +# End Source File +# Begin Source File + +SOURCE=.\OXDataCommunicator.h +# End Source File +# Begin Source File + +SOURCE=.\SendDataDlg.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\res\Communicator.ico +# End Source File +# Begin Source File + +SOURCE=.\res\Communicator.rc2 +# End Source File +# Begin Source File + +SOURCE=.\res\CommunicatorDoc.ico +# End Source File +# Begin Source File + +SOURCE=.\CommunicatorInfo.rtf +# End Source File +# End Group +# End Target +# End Project diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.dsw b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.dsw new file mode 100644 index 0000000..7e2c2a4 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "Communicator"=.\Communicator.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.h new file mode 100644 index 0000000..53c3652 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.h @@ -0,0 +1,45 @@ +// Communicator.h : main header file for the COMMUNICATOR application +// +//----------------- Dundas Software ---------------------------------------- +//======================================================================== + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols + +///////////////////////////////////////////////////////////////////////////// +// CCommunicatorApp: +// See Communicator.cpp for the implementation of this class +// + +class CCommunicatorApp : public CWinApp +{ +public: + CCommunicatorApp(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CCommunicatorApp) + public: + virtual BOOL InitInstance(); + virtual int ExitInstance(); + //}}AFX_VIRTUAL + +// Implementation + COleTemplateServer m_server; + // Server object for document creation + + CMultiDocTemplate* m_pHexDocTemplate; + + //{{AFX_MSG(CCommunicatorApp) + afx_msg void OnAppAbout(); + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.odl b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.odl new file mode 100644 index 0000000..11563a9 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.odl @@ -0,0 +1,39 @@ +// Communicator.odl : type library source for Communicator.exe + +// This file will be processed by the Make Type Library (mktyplib) tool to +// produce the type library (Communicator.tlb). + +[ uuid(F44C48E1-6DD7-11CF-8508-00AA0021F02C), version(1.0) ] +library Communicator +{ + importlib("stdole32.tlb"); + + // Primary dispatch interface for CCommunicatorDoc + + [ uuid(F44C48E2-6DD7-11CF-8508-00AA0021F02C) ] + dispinterface IComm + { + properties: + // NOTE - ClassWizard will maintain property information here. + // Use extreme caution when editing this section. + //{{AFX_ODL_PROP(CCommunicatorDoc) + //}}AFX_ODL_PROP + + methods: + // NOTE - ClassWizard will maintain method information here. + // Use extreme caution when editing this section. + //{{AFX_ODL_METHOD(CCommunicatorDoc) + //}}AFX_ODL_METHOD + + }; + + // Class information for CCommunicatorDoc + + [ uuid(F44C48E0-6DD7-11CF-8508-00AA0021F02C) ] + coclass CCommunicatorDoc + { + [default] dispinterface IComm; + }; + + //{{AFX_APPEND_ODL}} +}; diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.rc b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.rc new file mode 100644 index 0000000..a2cbb97 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.rc @@ -0,0 +1,404 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_COMMTYPE ICON DISCARDABLE "res\\CommunicatorDoc.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_MAINFRAME MENU PRELOAD DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&New\tCtrl+N", ID_FILE_NEW + MENUITEM SEPARATOR + MENUITEM "E&xit", ID_APP_EXIT + END + POPUP "&Help" + BEGIN + MENUITEM "&About Communicator...", ID_APP_ABOUT + END +END + +IDR_COMMTYPE MENU PRELOAD DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&New\tCtrl+N", ID_FILE_NEW + MENUITEM SEPARATOR + MENUITEM "E&xit", ID_APP_EXIT + END + POPUP "&Window" + BEGIN + MENUITEM "Tile ", ID_WINDOW_TILE_VERT + END + POPUP "&Help" + BEGIN + MENUITEM "&About Communicator...", ID_APP_ABOUT + END +END + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "COMMUNICATOR MFC Application\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "COMMUNICATOR\0" + VALUE "LegalCopyright", "Copyright © 1996\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "COMMUNICATOR.EXE\0" + VALUE "ProductName", "COMMUNICATOR Application\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDR_MAINFRAME BITMAP MOVEABLE PURE "res\\Toolbar.bmp" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDP_OLE_INIT_FAILED "OLE initialization failed. Make sure that the OLE libraries are the correct version." + IDP_SOCKETS_INIT_FAILED "Windows sockets initialization failed." +END + +STRINGTABLE PRELOAD DISCARDABLE +BEGIN + IDR_MAINFRAME "Communicator" + IDR_COMMTYPE "\nComm\nComm\nCommun Files (*.cmm)\n.CMM\nCommunicator.Document\nComm Document" + IDS_INVALID_VALUE "The specified value is not valid for this type" + IDS_FAILED_LISTEN "The Listen failed" + IDS_FAILED_CONNECT "Failed to establish connection" +END + +STRINGTABLE PRELOAD DISCARDABLE +BEGIN + AFX_IDS_APP_TITLE "Communicator" + AFX_IDS_IDLEMESSAGE "Ready" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_INDICATOR_EXT "EXT" + ID_INDICATOR_CAPS "CAP" + ID_INDICATOR_NUM "NUM" + ID_INDICATOR_SCRL "SCRL" + ID_INDICATOR_OVR "OVR" + ID_INDICATOR_REC "REC" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_NEW "Create a new document\nNew" + ID_FILE_OPEN "Open an existing document\nOpen" + ID_FILE_CLOSE "Close the active document\nClose" + ID_FILE_SAVE "Save the active document\nSave" + ID_FILE_SAVE_AS "Save the active document with a new name\nSave As" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_APP_ABOUT "Display program information, version number and copyright\nAbout" + ID_APP_EXIT "Quit the application; prompts to save documents\nExit" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_MRU_FILE1 "Open this document" + ID_FILE_MRU_FILE2 "Open this document" + ID_FILE_MRU_FILE3 "Open this document" + ID_FILE_MRU_FILE4 "Open this document" + ID_FILE_MRU_FILE5 "Open this document" + ID_FILE_MRU_FILE6 "Open this document" + ID_FILE_MRU_FILE7 "Open this document" + ID_FILE_MRU_FILE8 "Open this document" + ID_FILE_MRU_FILE9 "Open this document" + ID_FILE_MRU_FILE10 "Open this document" + ID_FILE_MRU_FILE11 "Open this document" + ID_FILE_MRU_FILE12 "Open this document" + ID_FILE_MRU_FILE13 "Open this document" + ID_FILE_MRU_FILE14 "Open this document" + ID_FILE_MRU_FILE15 "Open this document" + ID_FILE_MRU_FILE16 "Open this document" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_NEXT_PANE "Switch to the next window pane\nNext Pane" + ID_PREV_PANE "Switch back to the previous window pane\nPrevious Pane" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_SCSIZE "Change the window size" + AFX_IDS_SCMOVE "Change the window position" + AFX_IDS_SCCLOSE "Close the active window and prompts to save the documents" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_SCRESTORE "Restore the window to normal size" + AFX_IDS_SCTASKLIST "Activate Task List" + AFX_IDS_MDICHILD "Activate this window" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_DESCRIPTION_FILE "communicatorinfo.rtf" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// Dutch (Belgium) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NLB) +#ifdef _WIN32 +LANGUAGE LANG_DUTCH, SUBLANG_DUTCH_BELGIAN +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON DISCARDABLE "res\\Communicator.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_SEND_DATA DIALOG DISCARDABLE 0, 0, 190, 230 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Send data" +FONT 8, "MS Sans Serif" +BEGIN + EDITTEXT IDC_VALUE,7,104,155,14,ES_AUTOHSCROLL + DEFPUSHBUTTON "&Add",IDC_ADD,70,124,50,14 + LISTBOX IDC_LIST,7,150,176,49,WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "OK",IDOK,40,206,50,14 + PUSHBUTTON "Cancel",IDCANCEL,100,206,50,14 + CONTROL "&Empty",IDC_EMPTY,"Button",BS_AUTORADIOBUTTON | + WS_GROUP,17,20,35,10 + CONTROL "&Null",IDC_NULL,"Button",BS_AUTORADIOBUTTON,17,33,28,10 + CONTROL "&Bool",IDC_BOOL,"Button",BS_AUTORADIOBUTTON,17,46,30,10 + CONTROL "&UI1 (char)",IDC_UI1,"Button",BS_AUTORADIOBUTTON,17,59, + 45,10 + CONTROL "&I2 (short)",IDC_I2,"Button",BS_AUTORADIOBUTTON,63,20, + 41,10 + CONTROL "&I4 (int)",IDC_I4,"Button",BS_AUTORADIOBUTTON,63,33,33, + 10 + CONTROL "&CY (Currency)",IDC_CY,"Button",BS_AUTORADIOBUTTON,63, + 46,57,10 + CONTROL "&R4 (float)",IDC_R4,"Button",BS_AUTORADIOBUTTON,63,59, + 43,10 + CONTROL "&R8 (double)",IDC_R8,"Button",BS_AUTORADIOBUTTON,120,20, + 51,10 + CONTROL "&Str",IDC_BSTR,"Button",BS_AUTORADIOBUTTON,120,33,29,10 + CONTROL "&Date",IDC_DATE,"Button",BS_AUTORADIOBUTTON,120,46,33, + 10 + CONTROL "&Error",IDC_ERROR,"Button",BS_AUTORADIOBUTTON,120,59,31, + 10 + CONTROL "&Binary Large Object",IDC_BINARY,"Button", + BS_AUTORADIOBUTTON,63,74,73,10 + LTEXT "&Value",IDC_STATIC,7,91,19,8 + GROUPBOX "Type",IDC_STATIC,7,7,176,81 + DEFPUSHBUTTON "...",IDC_BROWSE,168,104,15,14 +END + +IDD_COMMUNICATOR_FORM DIALOG DISCARDABLE 0, 0, 246, 277 +STYLE WS_CHILD +FONT 8, "MS Sans Serif" +BEGIN + GROUPBOX "Server",IDC_SERVER_GROUP,7,7,232,103 + LTEXT "Local Address",IDC_LOCAL_ADDRESS_LABEL,15,17,46,8 + EDITTEXT IDC_LOCAL_ADDRESS,15,29,62,12,ES_AUTOHSCROLL | + ES_READONLY | NOT WS_TABSTOP + LTEXT "Local Port",IDC_LOCAL_PORT_LABEL,82,17,35,8 + EDITTEXT IDC_LOCAL_PORT,82,29,34,12,ES_AUTOHSCROLL + PUSHBUTTON "&Listen",IDC_LISTEN,127,28,50,14 + PUSHBUTTON "Shut&down",IDC_SHUTDOWN,182,28,50,14 + LTEXT "Client Addresses",IDC_CLIENT_ADDRESSES_LABEL,15,47,60,8 + LISTBOX IDC_CLIENT_ADDRESSES,15,58,157,44,LBS_NOINTEGRALHEIGHT | + LBS_EXTENDEDSEL | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "&Send",IDC_SEND_CLIENT,182,60,50,14 + PUSHBUTTON "&Disconnect",IDC_DISCONNECT_CLIENT,182,85,50,14 + GROUPBOX "Client",IDC_CLIENT_GROUP,7,113,232,50 + LTEXT "Remote Address",IDC_REMOTE_ADDRESS_LABEL,14,127,57,8 + EDITTEXT IDC_REMOTE_ADDRESS,14,139,62,12,ES_AUTOHSCROLL | NOT + WS_TABSTOP + LTEXT "Remote Port",IDC_REMOTE_PORT_LABEL,82,128,39,8 + EDITTEXT IDC_REMOTE_PORT,82,138,34,12,ES_AUTOHSCROLL + PUSHBUTTON "&Connect",IDC_CONNECT_SERVER,125,126,50,14 + PUSHBUTTON "&Send",IDC_SEND_SERVER,182,126,50,14 + PUSHBUTTON "Disconnect",IDC_DISCONNECT_SERVER,182,144,50,14 + PUSHBUTTON "&Spy",IDC_SPY,59,170,50,14 + LTEXT "Received Data",-1,7,175,47,8 + EDITTEXT IDC_RECEIVED_DATA,7,189,232,61,ES_MULTILINE | + ES_AUTOHSCROLL | WS_VSCROLL + PUSHBUTTON "Cancel Actions",IDC_CANCEL,93,256,59,14 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_SEND_DATA, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 183 + TOPMARGIN, 7 + BOTTOMMARGIN, 220 + END + + IDD_COMMUNICATOR_FORM, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 239 + TOPMARGIN, 7 + BOTTOMMARGIN, 270 + END +END +#endif // APSTUDIO_INVOKED + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "#include ""utsampleAbout.rc""\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif\r\n" + "#include ""res\\Communicator.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "#endif\0" +END + +#endif // APSTUDIO_INVOKED + +#endif // Dutch (Belgium) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES +#include "utsampleAbout.rc" +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif +#include "res\Communicator.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +#endif +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.reg b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.reg new file mode 100644 index 0000000..2348177 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/Communicator.reg @@ -0,0 +1,19 @@ +REGEDIT +; This .REG file may be used by your SETUP program. +; If a SETUP program is not available, the entries below will be +; registered in your InitInstance automatically with a call to +; CWinApp::RegisterShellFileTypes and COleObjectFactory::UpdateRegistryAll. + +HKEY_CLASSES_ROOT\.CMM = Communicator.Document +HKEY_CLASSES_ROOT\Communicator.Document\shell\open\command = COMMUNICATOR.EXE %1 +HKEY_CLASSES_ROOT\Communicator.Document\shell\open\ddeexec = [open("%1")] +HKEY_CLASSES_ROOT\Communicator.Document\shell\open\ddeexec\application = COMMUNICATOR + ; note: the application is optional + ; (it defaults to the app name in "command") + +HKEY_CLASSES_ROOT\Communicator.Document = Comm Document +HKEY_CLASSES_ROOT\Communicator.Document\CLSID = {F44C48E0-6DD7-11CF-8508-00AA0021F02C} + +HKEY_CLASSES_ROOT\CLSID\{F44C48E0-6DD7-11CF-8508-00AA0021F02C} = Comm Document +HKEY_CLASSES_ROOT\CLSID\{F44C48E0-6DD7-11CF-8508-00AA0021F02C}\LocalServer32 = COMMUNICATOR.EXE +HKEY_CLASSES_ROOT\CLSID\{F44C48E0-6DD7-11CF-8508-00AA0021F02C}\ProgId = Communicator.Document diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/CommunicatorDoc.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/CommunicatorDoc.cpp new file mode 100644 index 0000000..fdc1072 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/CommunicatorDoc.cpp @@ -0,0 +1,465 @@ +// CommunicatorDoc.cpp : implementation of the CCommunicatorDoc class +// + +#include "stdafx.h" +#include "Communicator.h" + +#include "CommunicatorDoc.h" +#include "OXCommMsg.h" +#include "HexView.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CCommunicatorDoc + +IMPLEMENT_DYNCREATE(CCommunicatorDoc, CDocument) + +BEGIN_MESSAGE_MAP(CCommunicatorDoc, CDocument) + //{{AFX_MSG_MAP(CCommunicatorDoc) + ON_BN_CLICKED(IDC_SPY, OnSpy) + ON_BN_CLICKED(IDC_CANCEL, OnCancel) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +BEGIN_DISPATCH_MAP(CCommunicatorDoc, CDocument) + //{{AFX_DISPATCH_MAP(CCommunicatorDoc) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_DISPATCH_MAP +END_DISPATCH_MAP() + +// Note: we add support for IID_IComm to support typesafe binding +// from VBA. This IID must match the GUID that is attached to the +// dispinterface in the .ODL file. + +// {F44C48E2-6DD7-11CF-8508-00AA0021F02C} +static const IID IID_IComm = +{ 0xf44c48e2, 0x6dd7, 0x11cf, { 0x85, 0x8, 0x0, 0xaa, 0x0, 0x21, 0xf0, 0x2c } }; + +BEGIN_INTERFACE_MAP(CCommunicatorDoc, CDocument) + INTERFACE_PART(CCommunicatorDoc, IID_IComm, Dispatch) +END_INTERFACE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CCommunicatorDoc construction/destruction + +CCommunicatorDoc::CCommunicatorDoc() + : + m_dataCommunicator(this), + m_pCancelWnd(NULL), + m_nTimeOut(10000) + { + m_pCancelWnd = AfxGetMainWnd(); + + EnableAutomation(); + + AfxOleLockApp(); + } + +CCommunicatorDoc::~CCommunicatorDoc() + { + AfxOleUnlockApp(); + Shutdown(); + } + +BOOL CCommunicatorDoc::OnNewDocument() + { + if (!CDocument::OnNewDocument()) + return FALSE; + + // Get the local server name + const int nMaxAddressLength = 128; + char szLocalAddress[nMaxAddressLength]; + gethostname(szLocalAddress, nMaxAddressLength); + m_sLocalAddress = szLocalAddress; + + return TRUE; + } + +CString CCommunicatorDoc::GetLocalAddress() const + { + return m_sLocalAddress; + } + +UINT CCommunicatorDoc::GetLocalPort() const + { + CString sAddress; + UINT nPort; + if ((m_dataCommunicator.m_hSocket != INVALID_SOCKET) && + ((CAsyncSocket*)&m_dataCommunicator)->GetSockName(sAddress, nPort)) + { + return nPort; + } + else + return 0; + } + +BOOL CCommunicatorDoc::IsOpen() + { + return m_dataCommunicator.IsOpen(); + } + +BOOL CCommunicatorDoc::IsListening() + { + return m_dataCommunicator.IsListening(); + } + +BOOL CCommunicatorDoc::IsBlocking() + { + return m_dataCommunicator.AreAnyBlocking(); + } + +void CCommunicatorDoc::CancelBlocking() + { + m_dataCommunicator.CancelAllBlockingCalls(); + } + +BOOL CCommunicatorDoc::Listen(long nServerPort) + { + BOOL bSuccess = TRUE; + if (m_dataCommunicator.m_hSocket != INVALID_SOCKET); + { + if (m_dataCommunicator.Create(nServerPort) && + m_dataCommunicator.Listen()) + { + m_dataCommunicator.Initialize(m_nTimeOut, m_pCancelWnd); + } + else + { + TRACE(_T("CComServerDoc::Listen : Failed to create socket server\n")); + m_dataCommunicator.Close(); + bSuccess = FALSE; + } + } + ASSERT(bSuccess == m_dataCommunicator.IsListening()); + return bSuccess; + } + +void CCommunicatorDoc::Shutdown() + { + // ... m_pDataCommunicator may already be NULL + TRY + { + m_dataCommunicator.Close(); + } + END_TRY + // Warn view of shutdown + UpdateAllViews(NULL, NotifyRemoveAllClients, NULL); + } + +void CCommunicatorDoc::DisconnectClient(HCLIENT_COMMUNICATOR hClient) + { + COXCommunicator* pClientCommunicator = m_dataCommunicator.GetClientCommunicator(hClient); + if (pClientCommunicator == NULL) + return; + TRY + { + pClientCommunicator->Close(); + } + END_TRY + + // Warn view + CHintData hintData; + hintData.m_hClient = hClient; + UpdateAllViews(NULL, NotifyRemoveClient, &hintData); + } + +BOOL CCommunicatorDoc::Send(HCLIENT_COMMUNICATOR hClient, COXCommMsg* pCommMsg) + { + ASSERT(pCommMsg != NULL); + COXCommunicator* pClientCommunicator = m_dataCommunicator.GetClientCommunicator(hClient); + if (pClientCommunicator == NULL) + return FALSE; + BOOL bSuccess = FALSE; + TRY + { + pCommMsg->Serialize(*pClientCommunicator->GetOutStream()); + pClientCommunicator->GetOutStream()->Flush(); + bSuccess = TRUE; + } + END_TRY + return bSuccess; + } + +BOOL CCommunicatorDoc::ConnectServer(CString sRemoteAddress, int nRemotePort, int nLocalPort) + { + BOOL bSuccess = TRUE; + if (!m_dataCommunicator.Create(nLocalPort) || + !(m_dataCommunicator.Initialize(m_nTimeOut, m_pCancelWnd), TRUE) || + !m_dataCommunicator.Connect(sRemoteAddress, nRemotePort)) + { + TRACE(_T("CComServerDoc::ConnectServer : Failed to create socket server\n")); + + m_dataCommunicator.Close(); + bSuccess = FALSE; + } + return bSuccess; + } + +BOOL CCommunicatorDoc::SendServer(COXCommMsg* pCommMsg) + { + BOOL bSuccess = FALSE; + TRY + { + if (m_dataCommunicator.GetOutStream() != NULL) + { + pCommMsg->Serialize(*m_dataCommunicator.GetOutStream()); + m_dataCommunicator.GetOutStream()->Flush(); + bSuccess = TRUE; + } + } + END_TRY + return bSuccess; + } + +void CCommunicatorDoc::OnReceive(HCLIENT_COMMUNICATOR hClient, COXCommunicator* pCommunicator, int nErrorCode) + { + POSITION pos = GetFirstViewPosition(); + if (pos != NULL) + GetNextView(pos); + if (pos == NULL) + // At most one view is attached to this doc, which cannot be a Spy view + OnReceiveDirect(hClient, pCommunicator, nErrorCode); + else + // More than one view is attached to this doc, + // at least one of them must be Spy view + OnReceiveHex(hClient, pCommunicator, nErrorCode); + } + +void CCommunicatorDoc::OnReceiveDirect(HCLIENT_COMMUNICATOR hClient, + COXCommunicator* pCommunicator, int nErrorCode) + { + UNREFERENCED_PARAMETER(nErrorCode); + + if (pCommunicator->GetMaxReadable() == 0) + // Ignore no data + return; + + CArchive* pInStream = pCommunicator->GetInStream(); + + CHintData hintData; + COXCommMsg commMsg; + + BOOL bVariantSuccess = FALSE; + + // Read the data directly in a variant array + TRY + { + commMsg.Serialize(*pInStream); + bVariantSuccess = TRUE; + } + CATCH(CFileException, e) + { + TRACE(_T("CComServerDoc::OnClientReceive : Catching CFileException\n")); + } + AND_CATCH(CArchiveException, e) + { + TRACE(_T("CComServerDoc::OnClientReceive : Catching CArchiveException\n")); + } + END_CATCH + + hintData.m_hClient = hClient; + hintData.m_pData = NULL; + hintData.m_nDataLength = 0; + if (bVariantSuccess) + hintData.m_pCommMsg = &commMsg; + UpdateAllViews(NULL, NotifyAddData, &hintData); + } + +void CCommunicatorDoc::OnReceiveHex(HCLIENT_COMMUNICATOR hClient, COXCommunicator* pCommunicator, int nErrorCode) + { + UNREFERENCED_PARAMETER(nErrorCode); + + if (pCommunicator->GetMaxReadable() == 0) + // Ignore no data + return; + + CArchive* pInStream = pCommunicator->GetInStream(); + + CHintData hintData; + UINT nDataLength = 0; + BYTE* pData = NULL; + COXCommMsg commMsg; + + BOOL bDataSuccess = FALSE; + BOOL bVariantSuccess = FALSE; + + // First read into memory block + CMemFile memFile; + TRY + { + unsigned char pc[2];; + pc[1] = '\0'; + do + { + do + { + pInStream->Read(pc, 1); + memFile.Write(pc, 1); + } while (!pInStream->IsBufferEmpty()); + } while(pCommunicator->GetMaxReadable() != 0); + nDataLength = memFile.GetLength(); + pData = memFile.Detach(); + bDataSuccess = TRUE; + } + CATCH(CFileException, e) + { + TRACE(_T("CComServerDoc::OnReceive : Catching CFileException\n")); + if (pData == NULL) + { + nDataLength = memFile.GetLength(); + pData = memFile.Detach(); + } + } + AND_CATCH(CArchiveException, e) + { + TRACE(_T("CComServerDoc::OnReceive : Catching CArchiveException\n")); + if (pData == NULL) + { + nDataLength = memFile.GetLength(); + pData = memFile.Detach(); + } + } + END_CATCH + + // Now reread the data in a variant array + TRY + { + memFile.Attach(pData, nDataLength); + CArchive inStream(&memFile, CArchive::load); + commMsg.Serialize(inStream); + memFile.Detach(); + bVariantSuccess = TRUE; + } + CATCH(CFileException, e) + { + TRACE(_T("CComServerDoc::OnClientReceive : Catching CFileException\n")); + memFile.Detach(); + } + AND_CATCH(CArchiveException, e) + { + TRACE(_T("CComServerDoc::OnClientReceive : Catching CArchiveException\n")); + memFile.Detach(); + } + END_CATCH + + hintData.m_hClient = hClient; + if (bDataSuccess) + { + hintData.m_pData = pData; + hintData.m_nDataLength = nDataLength; + } + if (bVariantSuccess) + hintData.m_pCommMsg = &commMsg; + UpdateAllViews(NULL, NotifyAddData, &hintData); + + // Clean up memory + free(pData); + } + +void CCommunicatorDoc::OnClientCreate(HCLIENT_COMMUNICATOR hClient, + COXCommunicator* pClientCommunicator) + { + CHintData hintData; + hintData.m_hClient = hClient; + pClientCommunicator->GetPeerName(hintData.m_sClientAddress, hintData.m_nClientPort); + UpdateAllViews(NULL, NotifyAddClient, &hintData); + } + +void CCommunicatorDoc::OnClientReceive(HCLIENT_COMMUNICATOR hClient, + COXCommunicator* pClientCommunicator, + DWORD nSize, int nErrorCode) + { + UNREFERENCED_PARAMETER(nSize); + OnReceive(hClient, pClientCommunicator, nErrorCode); + } + +void CCommunicatorDoc::OnClientClose(HCLIENT_COMMUNICATOR hClient, + COXCommunicator* pClientCommunicator, + int nErrorCode) + { + UNREFERENCED_PARAMETER(nErrorCode); + UNREFERENCED_PARAMETER(pClientCommunicator); + CHintData hintData; + hintData.m_hClient = hClient; + UpdateAllViews(NULL, NotifyRemoveClient, &hintData); + } + +void CCommunicatorDoc::OnServerReceive(DWORD nSize, int nErrorCode) + { + UNREFERENCED_PARAMETER(nSize); + OnReceive(0, &m_dataCommunicator, nErrorCode); + } + +void CCommunicatorDoc::OnServerClose(int nErrorCode) + { + UNREFERENCED_PARAMETER(nErrorCode); + } + +///////////////////////////////////////////////////////////////////////////// +// CCommunicatorDoc serialization + +void CCommunicatorDoc::Serialize(CArchive& ar) + { + if (ar.IsStoring()) + { + // TODO: add storing code here + } + else + { + // TODO: add loading code here + } + } + +///////////////////////////////////////////////////////////////////////////// +// CCommunicatorDoc diagnostics + +#ifdef _DEBUG +void CCommunicatorDoc::AssertValid() const + { + CDocument::AssertValid(); + } + +void CCommunicatorDoc::Dump(CDumpContext& dc) const + { + CDocument::Dump(dc); + } +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CCommunicatorDoc commands + +void CCommunicatorDoc::OnSpy() + { + COleDateTime oleDate; + SYSTEMTIME t; + t.wYear = 1996; + t.wMonth = 10; + t.wDay = 6; + t.wHour = 16; + t.wMinute = 53; + t.wSecond = 24; + + oleDate = t; + + + CFrameWnd* pHexFrame = NULL; + pHexFrame = ((CCommunicatorApp*)AfxGetApp())->m_pHexDocTemplate->CreateNewFrame(this, NULL); + pHexFrame->InitialUpdateFrame(this, TRUE); + } + +void CCommunicatorDoc::OnCancel() + { + m_dataCommunicator.CancelAllBlockingCalls(); + } + +BOOL CCommunicatorDoc::IsModified() + { + // Never ask to save the doc + return FALSE; + } \ No newline at end of file diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/CommunicatorDoc.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/CommunicatorDoc.h new file mode 100644 index 0000000..bdb300c --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/CommunicatorDoc.h @@ -0,0 +1,118 @@ +// CommunicatorDoc.h : interface of the CCommunicatorDoc class +// +///////////////////////////////////////////////////////////////////////////// + +#include "OXDataCommunicator.h" + +class COXCommMsg; + +class CCommunicatorDoc : public CDocument +{ +protected: // create from serialization only + CCommunicatorDoc(); + DECLARE_DYNCREATE(CCommunicatorDoc) + +// Attributes +public: + +// Operations +public: + CString GetLocalAddress() const; + UINT GetLocalPort() const; + BOOL IsOpen(); + BOOL IsListening(); + BOOL IsBlocking(); + void CancelBlocking(); + + BOOL Listen(long nServerPort); + void Shutdown(); + void DisconnectClient(HCLIENT_COMMUNICATOR hClient); + BOOL Send(HCLIENT_COMMUNICATOR hClient, COXCommMsg* pCommMsg); + BOOL ConnectServer(CString sRemoteAddress, int nRemotePort, int nLocalPort); + BOOL SendServer(COXCommMsg* pCommMsg); + + void OnReceive(HCLIENT_COMMUNICATOR hClient, COXCommunicator* pCommunicator, int nErrorCode); + void OnReceiveDirect(HCLIENT_COMMUNICATOR hClient, COXCommunicator* pCommunicator, int nErrorCode); + void OnReceiveHex(HCLIENT_COMMUNICATOR hClient, COXCommunicator* pCommunicator, int nErrorCode); + + void OnClientCreate(HCLIENT_COMMUNICATOR hClient, COXCommunicator* pClientCommunicator); + void OnClientReceive(HCLIENT_COMMUNICATOR hClient, COXCommunicator* pClientCommunicator, DWORD nSize, int nErrorCode); + void OnClientClose(HCLIENT_COMMUNICATOR hClient, COXCommunicator* pClientCommunicator, int nErrorCode); + void OnServerReceive(DWORD nSize, int nErrorCode); + void OnServerClose(int nErrorCode); + + enum + { + NotifyAddClient = 1, + NotifyRemoveClient = 2, + NotifyRemoveAllClients =3, + NotifyAddData = 4 + }; + + class CHintData : public CObject + { + public: + HCLIENT_COMMUNICATOR m_hClient; + CString m_sClientAddress; + UINT m_nClientPort; + COXCommMsg* m_pCommMsg; + BYTE* m_pData; + UINT m_nDataLength; + CHintData() + : + m_hClient(0), + m_sClientAddress(""), + m_nClientPort(0), + m_pCommMsg(NULL), + m_pData(NULL), + m_nDataLength(0) + { + } + }; + + + // Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CCommunicatorDoc) + public: + virtual BOOL OnNewDocument(); + virtual void Serialize(CArchive& ar); + //}}AFX_VIRTUAL + + virtual BOOL IsModified(); + +protected: + CString m_sLocalAddress; + COXDataCommunicator m_dataCommunicator; + CWnd* m_pCancelWnd; + UINT m_nTimeOut; + + +// Implementation +public: + virtual ~CCommunicatorDoc(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + +// Generated message map functions +protected: + //{{AFX_MSG(CCommunicatorDoc) + afx_msg void OnSpy(); + afx_msg void OnCancel(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + + // Generated OLE dispatch map functions + //{{AFX_DISPATCH(CCommunicatorDoc) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_DISPATCH + DECLARE_DISPATCH_MAP() + DECLARE_INTERFACE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/CommunicatorInfo.rtf b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/CommunicatorInfo.rtf new file mode 100644 index 0000000000000000000000000000000000000000..1caed0fcfacbd987172d987e24db5b89db2c8e67 GIT binary patch literal 1929 zcmbtVOK;;g5bilZ{=?h~6wQK?ZOPu89K{BD*cMo4fgX6FsF6i1MG7Ki#|Zr2JJchw zH(Q{)C2VOpGo1P6MZNIWmk}4nDPCY%vhegGPhuDPdnI=GVHKb z<^7pN5ieU?3&TrUiPoWyVRx!?t9xlYO5sV>=-^L0!snpf3upf-Jm22DaA~z|$vrPrUMobQUspde%fY} z_Rh+$=s&<89-7u3R6+T1wnh*|p}ew2Xed$mt|fu5goj#uMNl44IE5_;Q-BjCQQku5 z@WU0%`5X9)JW$FVMKH#-9nF7yjWeifMb+n}x|=1`1i$gd&`%$9u00Wy!Nw?4pz*!D zG5*=-{MS4^pRWKgcp*)X&ptE>$vO4ad1FMbDIkjBbm#3I;RfG!NLf*2^3GvbYUFNLIHujO1)Zf5v8u zP5&l}u_znq@LG)Y1B+j|6E9=&=CMEfz-DBxUs161J&lQXX(=7fY{}9cJU#cVN4qGXc})FO?ORgy5a zc}&xIy`+fKG-FA6d$ZZ5Ddj6=>xUs@Ych6;A;dK8Qx // for OnIdleUpdateCmdUI +#include // For mutex support + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CCommunicatorView + +#pragma data_seg(".sdata") +// Store the usage count of this application so that multiple instances will +// cascade nicely on the screen +LONG nUsageCount = 0; +#pragma data_seg() + + +IMPLEMENT_DYNCREATE(CCommunicatorView, CFormView) + +BEGIN_MESSAGE_MAP(CCommunicatorView, CFormView) + //{{AFX_MSG_MAP(CCommunicatorView) + ON_BN_CLICKED(IDC_CONNECT_SERVER, OnConnectServer) + ON_BN_CLICKED(IDC_DISCONNECT_CLIENT, OnDisconnectClient) + ON_BN_CLICKED(IDC_DISCONNECT_SERVER, OnDisconnectServer) + ON_BN_CLICKED(IDC_LISTEN, OnListen) + ON_BN_CLICKED(IDC_SEND_CLIENT, OnSendClient) + ON_BN_CLICKED(IDC_SEND_SERVER, OnSendServer) + ON_BN_CLICKED(IDC_SHUTDOWN, OnShutdown) + ON_MESSAGE_VOID(WM_IDLEUPDATECMDUI, OnIdleUpdateCmdUI) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CCommunicatorView construction/destruction + +CCommunicatorView::CCommunicatorView() + : CFormView(CCommunicatorView::IDD) + { + //{{AFX_DATA_INIT(CCommunicatorView) + m_sLocalAddress = _T(""); + m_nLocalPort = 1000; + m_sRemoteAddress = _T(""); + m_nRemotePort = 1000; + //}}AFX_DATA_INIT + // TODO: add construction code here + + } + +CCommunicatorView::~CCommunicatorView() + { + } + +void CCommunicatorView::DoDataExchange(CDataExchange* pDX) + { + CFormView::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CCommunicatorView) + DDX_Control(pDX, IDC_CANCEL, m_wndCancel); + DDX_Control(pDX, IDC_LOCAL_PORT_LABEL, m_wndLocalPortLabel); + DDX_Control(pDX, IDC_SERVER_GROUP, m_wndServerGroup); + DDX_Control(pDX, IDC_REMOTE_ADDRESS_LABEL, m_wndRemoteAddressLabel); + DDX_Control(pDX, IDC_REMOTE_PORT_LABEL, m_wndRemotePortLabel); + DDX_Control(pDX, IDC_LOCAL_ADDRESS_LABEL, m_wndLocalAddressLabel); + DDX_Control(pDX, IDC_CLIENT_GROUP, m_wndClientGroup); + DDX_Control(pDX, IDC_CLIENT_ADDRESSES_LABEL, m_wndClientAddressLabel); + DDX_Control(pDX, IDC_SEND_SERVER, m_wndSendServer); + DDX_Control(pDX, IDC_DISCONNECT_SERVER, m_wndDisconnectServer); + DDX_Control(pDX, IDC_CONNECT_SERVER, m_wndConnectServer); + DDX_Control(pDX, IDC_REMOTE_PORT, m_wndRemotePort); + DDX_Control(pDX, IDC_REMOTE_ADDRESS, m_wndRemoteAddress); + DDX_Control(pDX, IDC_DISCONNECT_CLIENT, m_wndDisconnectClient); + DDX_Control(pDX, IDC_SEND_CLIENT, m_wndSendClient); + DDX_Control(pDX, IDC_SHUTDOWN, m_wndShutdown); + DDX_Control(pDX, IDC_LISTEN, m_wndListen); + DDX_Control(pDX, IDC_LOCAL_PORT, m_wndLocalPort); + DDX_Control(pDX, IDC_LOCAL_ADDRESS, m_wndLocalAddress); + DDX_Control(pDX, IDC_CLIENT_ADDRESSES, m_wndClientAddresses); + DDX_Control(pDX, IDC_RECEIVED_DATA, m_wndReceivedData); + DDX_Text(pDX, IDC_LOCAL_ADDRESS, m_sLocalAddress); + DDX_Text(pDX, IDC_LOCAL_PORT, m_nLocalPort); + DDX_Text(pDX, IDC_REMOTE_ADDRESS, m_sRemoteAddress); + DDX_Text(pDX, IDC_REMOTE_PORT, m_nRemotePort); + //}}AFX_DATA_MAP + } + +BOOL CCommunicatorView::PreCreateWindow(CREATESTRUCT& cs) + { + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + return CFormView::PreCreateWindow(cs); + } + +///////////////////////////////////////////////////////////////////////////// +// CCommunicatorView diagnostics + +#ifdef _DEBUG +void CCommunicatorView::AssertValid() const + { + CFormView::AssertValid(); + } + +void CCommunicatorView::Dump(CDumpContext& dc) const + { + CFormView::Dump(dc); + } + +CCommunicatorDoc* CCommunicatorView::GetDocument() // non-debug version is inline + { + ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CCommunicatorDoc))); + return (CCommunicatorDoc*)m_pDocument; + } +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CCommunicatorView message handlers + +void CCommunicatorView::OnConnectServer() + { + if (GetDocument()->IsBlocking()) + { + TRACE(_T("CCommunicatorView::OnConnectServer : Communicator is still blocking\n")); + MessageBeep(0xFFFF); + return; + } + + UpdateData(TRUE); + // If remote address is not filled out, try a local connection + if (m_sRemoteAddress.IsEmpty()) + { + m_sRemoteAddress = GetDocument()->GetLocalAddress(); + UpdateData(FALSE); + } + // Do not use the specified local port, let winsockets pick one + if (!GetDocument()->ConnectServer(m_sRemoteAddress, m_nRemotePort, 0)) + AfxMessageBox(IDS_FAILED_CONNECT, MB_ICONEXCLAMATION); + m_nLocalPort = GetDocument()->GetLocalPort(); + UpdateData(FALSE); + } + +void CCommunicatorView::OnDisconnectClient() + { + if (GetDocument()->IsBlocking()) + { + TRACE(_T("CCommunicatorView::OnDisconnectClient : Communicator is still blocking\n")); + MessageBeep(0xFFFF); + return; + } + + UINT nSelCount = m_wndClientAddresses.GetSelCount(); + if (0 < nSelCount) + { + int index; + int* rgSels = new int[nSelCount]; + m_wndClientAddresses.GetSelItems(nSelCount, rgSels); + for (index = (int)nSelCount - 1; 0 <= index; index--) + GetDocument()->DisconnectClient(m_wndClientAddresses.GetItemData(rgSels[index])); + delete rgSels; + } + } + +void CCommunicatorView::OnDisconnectServer() + { + if (GetDocument()->IsBlocking()) + { + TRACE(_T("CCommunicatorView::OnDisconnectServer : Communicator is still blocking\n")); + MessageBeep(0xFFFF); + return; + } + + GetDocument()->Shutdown(); + } + +void CCommunicatorView::OnListen() + { + if (GetDocument()->IsBlocking()) + { + TRACE(_T("CCommunicatorView::OnListen : Communicator is still blocking\n")); + MessageBeep(0xFFFF); + return; + } + + UpdateData(TRUE); + if (!GetDocument()->Listen(m_nLocalPort)) + AfxMessageBox(IDS_FAILED_LISTEN, MB_ICONEXCLAMATION); + } + +void CCommunicatorView::OnSendClient() + { + if (GetDocument()->IsBlocking()) + { + TRACE(_T("CCommunicatorView::OnSendClient : Communicator is still blocking\n")); + MessageBeep(0xFFFF); + return; + } + + COXCommMsg* pCommMsg = new COXCommMsg; + + CSendDataDlg dlg(pCommMsg); + if (dlg.DoModal() == IDOK) + { + UINT nSelCount = m_wndClientAddresses.GetSelCount(); + if (0 < nSelCount) + { + int index; + int* rgSels = new int[nSelCount]; + m_wndClientAddresses.GetSelItems(nSelCount, rgSels); + for (index = 0; index < (int)nSelCount; index++) + GetDocument()->Send(m_wndClientAddresses.GetItemData(rgSels[index]), pCommMsg); + delete rgSels; + } + } + delete pCommMsg; + } + +void CCommunicatorView::OnSendServer() + { + if (GetDocument()->IsBlocking()) + { + TRACE(_T("CCommunicatorView::OnSendServer : Communicator is still blocking\n")); + MessageBeep(0xFFFF); + return; + } + + COXCommMsg* pCommMsg = new COXCommMsg; + + CSendDataDlg dlg(pCommMsg); + if (dlg.DoModal() == IDOK) + GetDocument()->SendServer(pCommMsg); + + delete pCommMsg; + } + +void CCommunicatorView::OnShutdown() + { + if (GetDocument()->IsBlocking()) + { + TRACE(_T("CCommunicatorView::OnShutdown : Communicator is still blocking\n")); + MessageBeep(0xFFFF); + return; + } + + GetDocument()->Shutdown(); + } + +void CCommunicatorView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint) + { + UNREFERENCED_PARAMETER(pSender); + CCommunicatorDoc::CHintData* pHintData = (CCommunicatorDoc::CHintData*)pHint; + CString sText; + int index; + switch(lHint) + { + case CCommunicatorDoc::NotifyAddClient: + // Add the client address to the list + sText.Format(_T("%i. %s (%i)"), pHintData->m_hClient, + (LPCTSTR)pHintData->m_sClientAddress, pHintData->m_nClientPort); + + index = m_wndClientAddresses.AddString(sText); + m_wndClientAddresses.SetItemData(index, pHintData->m_hClient); + // If nothing is selected, select this item + if (m_wndClientAddresses.GetSelCount() == 0) + m_wndClientAddresses.SetSel(index); + break; + case CCommunicatorDoc::NotifyRemoveClient: + // Remove the client address from the list + for (index = 0; index < m_wndClientAddresses.GetCount(); index++) + { + if ((int)m_wndClientAddresses.GetItemData(index) == pHintData->m_hClient) + m_wndClientAddresses.DeleteString(index); + } + // If nothing is selected, select the first one + if (m_wndClientAddresses.GetSelCount() == 0) + m_wndClientAddresses.SetSel(0); + break; + case CCommunicatorDoc::NotifyRemoveAllClients: + // Remove all the client address from the list + m_wndClientAddresses.ResetContent(); + break; + case CCommunicatorDoc::NotifyAddData: + // Show the received data + ShowData(pHintData); + break; + default: + break; + } + } + +void CCommunicatorView::ShowData(CCommunicatorDoc::CHintData* pHintData) + { + CString sText; + CString sValue; + if (pHintData->m_pCommMsg == NULL) + { + if (pHintData->m_nDataLength != 0) + sText.Format(_T("%i. (length = %i)\r\n"), + pHintData->m_hClient, pHintData->m_nDataLength); + else + sText.Format(_T("%i. (length = unknown)\r\n"), + pHintData->m_hClient); + AddText(sText); + return; + } + + sText.Format(_T("%i. Array of size %i\r\n"), + pHintData->m_hClient, pHintData->m_pCommMsg->GetSize()); + AddText(sText); + + COXVariant variant; + UINT nOleType; + UINT nType; + for (int index = 0; index < pHintData->m_pCommMsg->GetSize(); index++) + { + // Convert variant to string to visualize + variant = pHintData->m_pCommMsg->GetAt(index); + nOleType = V_VT(&variant); + for (nType = 0; + (nType < COXCommMsg::m_nArgumentTypesCount) && (nOleType != (UINT)COXCommMsg::m_types[nType]); + nType++) + ; + // ... Must have found the type + ASSERT(nType < COXCommMsg::m_nArgumentTypesCount); + + sValue.Empty(); + TRY + { + if (nOleType != COXCommMsg::ATBlob) + { + if (V_VT(&variant) == COXCommMsg::ATError) + // ... Variant is a union, just change the type + // oleVariant.lVal= oleVariant.scode ; + V_VT(&variant) = COXCommMsg::ATI4; + variant.ChangeType(COXCommMsg::ATStr); + sValue = V_BSTR(&variant); + } + else + { + ASSERT(nOleType == COXCommMsg::ATBlob); + CString sTempPath; + CString sTempFileName; + COXBlob blob; + VERIFY(::GetTempPath(_MAX_PATH, sTempPath.GetBuffer(_MAX_PATH)) != 0); + sTempPath.ReleaseBuffer(); + VERIFY(::GetTempFileName(sTempPath, _T("BLB"), 0, + sTempFileName.GetBuffer(_MAX_PATH)) != 0); + sTempFileName.ReleaseBuffer(); + blob = variant; + blob.WriteRaw(sTempFileName); + sValue.Format(_T(" (stored as %s)"), blob.GetSize(), sTempFileName); + } + } + END_TRY + sText.Format(_T("\t%i. (%s) %s\r\n"), + index + 1, + (LPCTSTR)COXCommMsg::m_typeNames[nType], + (LPCTSTR)sValue); + AddText(sText); + } + } + +void CCommunicatorView::AddText(LPCTSTR pszText) + { + LONG nWindowTextLength; + nWindowTextLength = m_wndReceivedData.GetWindowTextLength(); + m_wndReceivedData.SetSel(nWindowTextLength, nWindowTextLength); + m_wndReceivedData.ReplaceSel(pszText); + } + +void CCommunicatorView::OnInitialUpdate() + { + CFormView::OnInitialUpdate(); + + // Show local server name + m_sLocalAddress = GetDocument()->GetLocalAddress(); + UpdateData(FALSE); + + // Fit frame around view + ResizeParentToFit(FALSE); + + // Fit mainframe around frame, do this only once + static bMainFrameResized = FALSE; + if (!bMainFrameResized) + { + bMainFrameResized = TRUE; + + // Get the size of frame and main frame + CRect frameRect; + CRect mainFrameRect; + CRect mainFrameClientRect; + GetParentFrame()->GetWindowRect(frameRect); + AfxGetMainWnd()->GetWindowRect(mainFrameRect); + AfxGetMainWnd()->GetClientRect(mainFrameClientRect); + + // Resize the mainframe so that this view frame will completely fill the client area + mainFrameRect.right += frameRect.Width() - mainFrameClientRect.Width(); + mainFrameRect.bottom += frameRect.Height() - mainFrameClientRect.Height(); + + // Take other windows into account that also populate the main frames client area + CWnd* pChild; + CRect childRect; + pChild = AfxGetMainWnd()->GetWindow(GW_CHILD); + while (pChild != NULL) + { + // ... Skip the MDI frame window + if (pChild != GetParentFrame()->GetParent()) + { + pChild->GetWindowRect(childRect); + // Statusbar and buttonbar take up the entire width (or height) + // Use the smallest of the two + if (childRect.Height() < childRect.Width()) + mainFrameRect.bottom += childRect.Height(); + else + mainFrameRect.right += childRect.Width(); + } + pChild = pChild->GetWindow(GW_HWNDNEXT); + } + + // Position multiple instance next to each other + CMutex mutex(FALSE, _T("COMMUNICATOR_MOVE")); + // ... Lock the mutex, destructor will unlock + CSingleLock lock(&mutex, TRUE); + nUsageCount++; + + // If at most two instances are running + if (nUsageCount <= 2) + { + // Put main frame in top left corner (0,0) + mainFrameRect.right -= mainFrameRect.left; + mainFrameRect.bottom -= mainFrameRect.top; + mainFrameRect.left = 0; + mainFrameRect.top = 0; + + // Position it next to the other instance (if it exists) + mainFrameRect.left = mainFrameRect.right * (nUsageCount - 1); + mainFrameRect.right = mainFrameRect.right * nUsageCount; + } + + AfxGetMainWnd()->MoveWindow(mainFrameRect); + } + } + +void CCommunicatorView::OnIdleUpdateCmdUI() + { + BOOL bClientSelected = (0 < m_wndClientAddresses.GetSelCount()); + BOOL bOpen = GetDocument()->IsOpen(); + BOOL bServer = FALSE; + BOOL bClient = FALSE; + if (bOpen) + { + bServer = GetDocument()->IsListening(); + bClient = !bServer; + } + + // Conditionally disable controls + // Server + m_wndServerGroup. EnableWindow(!bOpen || bServer); + m_wndLocalAddressLabel. EnableWindow(!bOpen); + m_wndLocalAddress. EnableWindow(!bOpen); + m_wndLocalPortLabel. EnableWindow(!bOpen); + m_wndLocalPort. EnableWindow(!bOpen); + m_wndListen. EnableWindow(!bOpen); + m_wndShutdown. EnableWindow(bServer); + m_wndSendClient. EnableWindow(bServer && bClientSelected); + m_wndDisconnectClient. EnableWindow(bServer && bClientSelected); + m_wndClientAddressLabel.EnableWindow(bServer); + m_wndClientAddresses. EnableWindow(bServer); + + // Client + m_wndClientGroup. EnableWindow(!bOpen || bClient); + m_wndRemoteAddressLabel.EnableWindow(!bOpen); + m_wndRemoteAddress. EnableWindow(!bOpen); + m_wndRemotePortLabel. EnableWindow(!bOpen); + m_wndRemotePort. EnableWindow(!bOpen); + m_wndConnectServer. EnableWindow(!bOpen); + m_wndSendServer. EnableWindow(bClient); + m_wndDisconnectServer. EnableWindow(bClient); + + // Global + m_wndCancel. EnableWindow(bOpen); + } + +void CCommunicatorView::PostNcDestroy() + { + // Relase this instance count + CMutex mutex(FALSE, _T("COMMUNICATOR_MOVE")); + // ... Lock the mutex, destructor will unlock + CSingleLock lock(&mutex, TRUE); + nUsageCount--; + + CFormView::PostNcDestroy(); + } diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/CommunicatorView.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/CommunicatorView.h new file mode 100644 index 0000000..c916081 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/CommunicatorView.h @@ -0,0 +1,94 @@ +// CommunicatorView.h : interface of the CCommunicatorView class +// + +///////////////////////////////////////////////////////////////////////////// + +class CCommunicatorView : public CFormView +{ +protected: // create from serialization only + CCommunicatorView(); + DECLARE_DYNCREATE(CCommunicatorView) + +public: + //{{AFX_DATA(CCommunicatorView) + enum { IDD = IDD_COMMUNICATOR_FORM }; + CButton m_wndCancel; + CStatic m_wndLocalPortLabel; + CButton m_wndServerGroup; + CStatic m_wndRemoteAddressLabel; + CStatic m_wndRemotePortLabel; + CStatic m_wndLocalAddressLabel; + CButton m_wndClientGroup; + CStatic m_wndClientAddressLabel; + CButton m_wndSendServer; + CButton m_wndDisconnectServer; + CButton m_wndConnectServer; + CEdit m_wndRemotePort; + CEdit m_wndRemoteAddress; + CButton m_wndDisconnectClient; + CButton m_wndSendClient; + CButton m_wndShutdown; + CButton m_wndListen; + CEdit m_wndLocalPort; + CEdit m_wndLocalAddress; + CListBox m_wndClientAddresses; + CEdit m_wndReceivedData; + CString m_sLocalAddress; + int m_nLocalPort; + CString m_sRemoteAddress; + int m_nRemotePort; + //}}AFX_DATA + +// Attributes +public: + CCommunicatorDoc* GetDocument(); + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CCommunicatorView) + public: + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + virtual void OnInitialUpdate(); + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + virtual void OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint); + virtual void PostNcDestroy(); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CCommunicatorView(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + void ShowData(CCommunicatorDoc::CHintData* pHintData); + void AddText(LPCTSTR pszText); + +// Generated message map functions +protected: + //{{AFX_MSG(CCommunicatorView) + afx_msg void OnConnectServer(); + afx_msg void OnDisconnectClient(); + afx_msg void OnDisconnectServer(); + afx_msg void OnListen(); + afx_msg void OnSendClient(); + afx_msg void OnSendServer(); + afx_msg void OnShutdown(); + afx_msg void OnIdleUpdateCmdUI(); + afx_msg void OnCancel(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +#ifndef _DEBUG // debug version in CommunicatorView.cpp +inline CCommunicatorDoc* CCommunicatorView::GetDocument() + { return (CCommunicatorDoc*)m_pDocument; } +#endif + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/HexView.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/HexView.cpp new file mode 100644 index 0000000..d1ad445 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/HexView.cpp @@ -0,0 +1,153 @@ +// HexView.cpp : implementation file +// + +#include "stdafx.h" +#include "Communicator.h" +#include "CommunicatorDoc.h" +#include "HexView.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CHexView + +IMPLEMENT_DYNCREATE(CHexView, CEditView) + +CHexView::CHexView() + { + } + +CHexView::~CHexView() + { + } + + +BEGIN_MESSAGE_MAP(CHexView, CEditView) + //{{AFX_MSG_MAP(CHexView) + // NOTE - the ClassWizard will add and remove mapping macros here. + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CHexView diagnostics + +#ifdef _DEBUG +void CHexView::AssertValid() const + { + CEditView::AssertValid(); + } + +void CHexView::Dump(CDumpContext& dc) const + { + CEditView::Dump(dc); + } +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CHexView message handlers + +void CHexView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint) + { + UNREFERENCED_PARAMETER(pSender); + CCommunicatorDoc::CHintData* pHintData = (CCommunicatorDoc::CHintData*)pHint; + CString sText; + + if (lHint == CCommunicatorDoc::NotifyAddData) + { + sText.Format(_T("%i. Data length = 0x%X (%i)\r\n"), + pHintData->m_hClient, pHintData->m_nDataLength, pHintData->m_nDataLength); + AddText(sText); + + // Show the received data + if (pHintData->m_pData == NULL) + { + sText = _T("\t\r\n"); + AddText(sText); + return; + } + + BYTE* pData = pHintData->m_pData; + UINT nMaxIndex = pHintData->m_nDataLength; + UINT nIndex = 0; + CString sRaw; + CString sHex; + CString sHexTemp; + while (nIndex < nMaxIndex) + { + // Split in two parts (of 8 bytes) seperated by a space + sRaw.Empty(); + sHex.Empty(); + + // ... Add offset + sRaw.Format(_T("%4.4X "), nIndex); + + for (int nLoop = 0; nLoop < 2; nLoop++) + { + // Calculate 8 bytes + UINT nPartIndex = 0; + while (nPartIndex < 8 && nIndex < nMaxIndex) + { + if (isprint(pData[nIndex])) + sRaw += (char)pData[nIndex]; + else + sRaw += _T('.'); + sHexTemp.Format(_T("%2.2X "), pData[nIndex]); + sHex += sHexTemp; + nPartIndex++; + nIndex++; + } + + sRaw += _T(' '); + sHex += _T(' '); + } + + // Show the text + sText.Format(_T("%-24.24s|%s\r\n"), sRaw, sHex); + AddText(sText); + } + AddText(_T("\r\n")); + } + } + +void CHexView::AddText(LPCTSTR pszText) + { + LONG nWindowTextLength; + nWindowTextLength = GetEditCtrl().GetWindowTextLength(); + GetEditCtrl().SetSel(nWindowTextLength, nWindowTextLength); + GetEditCtrl().ReplaceSel(pszText); + } + + +BOOL CHexView::PreCreateWindow(CREATESTRUCT& cs) + { + BOOL bRet = CEditView::PreCreateWindow(cs); + cs.style |= ES_READONLY; + return bRet; + } + +void CHexView::OnInitialUpdate() + { + CEditView::OnInitialUpdate(); + + // Create a fixed size font + m_font.CreateFont( 0, // nHeight + 0, // nWidth + 0, // nEscapement + 0, // nOrientation + FW_DONTCARE, // nWeight + FALSE, // bItalic + FALSE, // bUnderline + 0, // cStrikeOut + DEFAULT_CHARSET, // nCharSet + OUT_DEFAULT_PRECIS, // nOutPrecision + CLIP_DEFAULT_PRECIS, // nClipPrecision + DEFAULT_QUALITY, // nQuality + FIXED_PITCH, // nPitchAndFamily + NULL); // lpszFacename + + GetEditCtrl().SetFont(&m_font, FALSE); + } diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/HexView.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/HexView.h new file mode 100644 index 0000000..df0a2b5 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/HexView.h @@ -0,0 +1,48 @@ +// HexView.h : header file +// + +///////////////////////////////////////////////////////////////////////////// +// CHexView view + +class CHexView : public CEditView +{ +protected: + CHexView(); // protected constructor used by dynamic creation + DECLARE_DYNCREATE(CHexView) + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CHexView) + public: + virtual void OnInitialUpdate(); + protected: + virtual void OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint); + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + //}}AFX_VIRTUAL + +// Implementation +protected: + CFont m_font; + + void AddText(LPCTSTR pszText); + virtual ~CHexView(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + + // Generated message map functions +protected: + //{{AFX_MSG(CHexView) + // NOTE - the ClassWizard will add and remove member functions here. + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/MainFrm.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/MainFrm.cpp new file mode 100644 index 0000000..fbacc89 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/MainFrm.cpp @@ -0,0 +1,128 @@ +// MainFrm.cpp : implementation of the CMainFrame class +// + +#include "stdafx.h" +#include "Communicator.h" +#include "CommunicatorDoc.h" + +#include "MainFrm.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame + +IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWnd) + +BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd) + //{{AFX_MSG_MAP(CMainFrame) + ON_WM_CREATE() + ON_WM_CLOSE() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +static UINT indicators[] = +{ + ID_SEPARATOR, // status line indicator + ID_INDICATOR_CAPS, + ID_INDICATOR_NUM, + ID_INDICATOR_SCRL, +}; + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame construction/destruction + +CMainFrame::CMainFrame() +{ + // TODO: add member initialization code here + +} + +CMainFrame::~CMainFrame() +{ +} + +int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) +{ + if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1) + return -1; + return 0; +} + +BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) +{ + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs +// cs.style &= ~WS_MAXIMIZEBOX; + cs.style |= WS_MAXIMIZE; + + cs.style &= ~WS_MINIMIZEBOX; + + return CMDIFrameWnd::PreCreateWindow(cs); +} + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame diagnostics + +#ifdef _DEBUG +void CMainFrame::AssertValid() const +{ + CMDIFrameWnd::AssertValid(); +} + +void CMainFrame::Dump(CDumpContext& dc) const +{ + CMDIFrameWnd::Dump(dc); +} + +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame message handlers + +void CMainFrame::OnClose() + { + // Check whether there are documents that are still blocking + // (and thus have started a second message loop) + BOOL bBlocking = FALSE; + + POSITION pos; + CDocTemplate* pDocTemplate; + CCommunicatorDoc* pComDoc; + + // Get the one (and only) document template + pos = AfxGetApp()->GetFirstDocTemplatePosition(); + // ... Should have at least one template + ASSERT(pos != 0); + pDocTemplate = AfxGetApp()->GetNextDocTemplate(pos); + ASSERT(pDocTemplate != 0); + // ... Should have exactly one template + ASSERT(pos == 0); + + // Iterate all the documents + pos = pDocTemplate->GetFirstDocPosition(); + while (pos != NULL) + { + pComDoc = (CCommunicatorDoc*)pDocTemplate->GetNextDoc(pos); + ASSERT(pComDoc != 0); + ASSERT(pComDoc->IsKindOf(RUNTIME_CLASS(CCommunicatorDoc))); + if (pComDoc->IsBlocking()) + { + bBlocking = TRUE; + pComDoc->CancelBlocking(); + } + } + + // If blocking abort close and repost message + if (bBlocking) + { + TRACE(_T("CMainFrame::OnClose : Detected communicators that are still blocking, cancelling blocking and reposting WM_CLOSE\n")); + PostMessage(WM_CLOSE); + } + else + CMDIFrameWnd::OnClose(); + } diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/MainFrm.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/MainFrm.h new file mode 100644 index 0000000..92bf6f9 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/MainFrm.h @@ -0,0 +1,44 @@ +// MainFrm.h : interface of the CMainFrame class +// +///////////////////////////////////////////////////////////////////////////// + +class CMainFrame : public CMDIFrameWnd +{ + DECLARE_DYNAMIC(CMainFrame) +public: + CMainFrame(); + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CMainFrame) + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CMainFrame(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: // control bar embedded members + CStatusBar m_wndStatusBar; + CToolBar m_wndToolBar; + +// Generated message map functions +protected: + //{{AFX_MSG(CMainFrame) + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnClose(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/OXDataCommunicator.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/OXDataCommunicator.cpp new file mode 100644 index 0000000..0756524 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/OXDataCommunicator.cpp @@ -0,0 +1,87 @@ +// ========================================================================== +// Class Implementation : COXDataCommunicator +// ========================================================================== + +// Source file : OXDataCommunicator.cpp + +//----------------- Dundas Software ---------------------------------------- +//======================================================================== + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include "OXDataCommunicator.h" +#include "CommunicatorDoc.h" + +#ifdef _DEBUG +#undef THIS_FILE +static char BASED_CODE THIS_FILE[] = __FILE__; +#endif + +IMPLEMENT_DYNAMIC(COXDataCommunicator, COXCommunicator) + +///////////////////////////////////////////////////////////////////////////// +// Definition of static members + +// Data members ------------------------------------------------------------- +// protected: + +// private: + +// Member functions --------------------------------------------------------- +// public: +COXDataCommunicator::COXDataCommunicator(CCommunicatorDoc* pCommunicatorDoc, UINT nStreamBufferSize /* = 4096 */) + : + COXCommunicator(nStreamBufferSize), + m_pCommunicatorDoc(pCommunicatorDoc) + { + ASSERT_VALID(this); + ASSERT(pCommunicatorDoc != NULL); + } + +void COXDataCommunicator::OnClientCreate(HCLIENT_COMMUNICATOR hClient, COXCommunicator* pClientCommunicator) + { + m_pCommunicatorDoc->OnClientCreate(hClient, pClientCommunicator); + } + +void COXDataCommunicator::OnClientReceive(HCLIENT_COMMUNICATOR hClient, COXCommunicator* pClientCommunicator, DWORD nSize, int nErrorCode) + { + m_pCommunicatorDoc->OnClientReceive(hClient, pClientCommunicator, nSize, nErrorCode); + } + +void COXDataCommunicator::OnClientClose(HCLIENT_COMMUNICATOR hClient, COXCommunicator* pClientCommunicator, int nErrorCode) + { + m_pCommunicatorDoc->OnClientClose(hClient, pClientCommunicator, nErrorCode); + } + +void COXDataCommunicator::OnServerReceive(DWORD nSize, int nErrorCode) + { + m_pCommunicatorDoc->OnServerReceive(nSize, nErrorCode); + } + +void COXDataCommunicator::OnServerClose(int nErrorCode) + { + m_pCommunicatorDoc->OnServerClose(nErrorCode); + } + +#ifdef _DEBUG +void COXDataCommunicator::AssertValid() const + { + COXCommunicator::AssertValid(); + } + +void COXDataCommunicator::Dump(CDumpContext& dc) const + { + COXCommunicator::Dump(dc); + } +#endif //_DEBUG + +COXDataCommunicator::~COXDataCommunicator() + { + } + +// protected: + +// private: + +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/OXDataCommunicator.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/OXDataCommunicator.h new file mode 100644 index 0000000..a5d6988 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/OXDataCommunicator.h @@ -0,0 +1,102 @@ +// ========================================================================== +// Class Specification : COXDataCommunicator +// ========================================================================== + +// Header file : OXDataCommunicator.h + +//----------------- Dundas Software ---------------------------------------- +//======================================================================== + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// YES Derived from COXCommunicator + +// NO Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// NO Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Desciption : + +// Remark: + +// Prerequisites (necessary conditions): + +///////////////////////////////////////////////////////////////////////////// + +#ifndef __OXDATACOMMUNICATOR_H__ +#define __OXDATACOMMUNICATOR_H__ + +#include "OXCommunicator.h" + +class CCommunicatorDoc; + +class COXDataCommunicator : public COXCommunicator +{ +DECLARE_DYNAMIC(COXDataCommunicator) + +// Data members ------------------------------------------------------------- +public: + +protected: + CCommunicatorDoc* m_pCommunicatorDoc; + +private: + +// Member functions --------------------------------------------------------- +public: + + COXDataCommunicator(CCommunicatorDoc* pCommunicatorDoc, UINT nStreamBufferSize = 4096); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Constructs the object + + virtual void OnClientCreate(HCLIENT_COMMUNICATOR hClient, COXCommunicator* pClientCommunicator); + virtual void OnClientReceive(HCLIENT_COMMUNICATOR hClient, COXCommunicator* pClientCommunicator, DWORD nSize, int nErrorCode); + virtual void OnClientClose(HCLIENT_COMMUNICATOR hClient, COXCommunicator* pClientCommunicator, int nErrorCode); + + virtual void OnServerReceive(DWORD nSize, int nErrorCode); + virtual void OnServerClose(int nErrorCode); + +#ifdef _DEBUG + virtual void AssertValid() const; + // --- In : + // --- Out : + // --- Returns : + // --- Effect : AssertValid performs a validity check on this object + // by checking its internal state. + // In the Debug version of the library, AssertValid may assert and + // thus terminate the program. + + virtual void Dump(CDumpContext& dc) const; + // --- In : dc : The diagnostic dump context for dumping, usually afxDump. + // --- Out : + // --- Returns : + // --- Effect : Dumps the contents of the object to a CDumpContext object. + // It provides diagnostic services for yourself and + // other users of your class. + // Note The Dump function does not print a newline character + // at the end of its output. +#endif + + virtual ~COXDataCommunicator(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of the object + +protected: + +private: +}; + +#endif // __OXDATACOMMUNICATOR_H__ +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/SendDataDlg.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/SendDataDlg.h new file mode 100644 index 0000000..5a5e19d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/SendDataDlg.h @@ -0,0 +1,42 @@ +// SendDataDlg.h : header file +// + +///////////////////////////////////////////////////////////////////////////// +// CSendDataDlg dialog + +#include "OXCommMsg.h" + +class CSendDataDlg : public CDialog +{ +// Construction +public: + CSendDataDlg(COXCommMsg* pCommMsg, CWnd* pParent = NULL); // standard constructor + +// Dialog Data + //{{AFX_DATA(CSendDataDlg) + enum { IDD = IDD_SEND_DATA }; + CButton m_wndBrowse; + CListBox m_wndList; + CString m_sValue; + int m_nType; + //}}AFX_DATA + + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CSendDataDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + COXCommMsg* m_pCommMsg; + + // Generated message map functions + //{{AFX_MSG(CSendDataDlg) + afx_msg void OnAdd(); + afx_msg void OnBrowse(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/StdAfx.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/StdAfx.cpp new file mode 100644 index 0000000..6dd5774 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/StdAfx.cpp @@ -0,0 +1,6 @@ +// stdafx.cpp : source file that includes just the standard includes +// Communicator.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/StdAfx.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/StdAfx.h new file mode 100644 index 0000000..518dcc6 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/StdAfx.h @@ -0,0 +1,17 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers + +#include // MFC core and standard components +#include // MFC extensions +#include // MFC OLE automation classes +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for Windows 95 Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + +#include // MFC socket extensions + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/res/Communicator.ico b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/res/Communicator.ico new file mode 100644 index 0000000000000000000000000000000000000000..7eef0bcbe6580a6f464d688906172c2d9de44262 GIT binary patch literal 1078 zcmc&zF>b>!3}jLb9s)T}@Kod(893@u8ajANzT`op9^o+)S?=nU(FD@%0s)Sg^oyC8{H z9myetc;MEP)59v(LMa~xK8Yu^jIR*H22uCFiq5%C{s7(PJi>o15i^bmX4(vPxWAio z9ryY#AU_jfnd047-@`)XzL?%iS$gQyFP{44kS9X)fN{{QoL~hO-&=q&20Zr*cxFAt PkaNE{wR~2C$NfnjhSXWT literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/res/Communicator.rc2 b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/res/Communicator.rc2 new file mode 100644 index 0000000..3e20138 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/res/Communicator.rc2 @@ -0,0 +1,13 @@ +// +// COMMUNICATOR.RC2 - resources Microsoft Visual C++ does not edit directly +// + +#ifdef APSTUDIO_INVOKED + #error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// Add manually edited resources here... + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/res/CommunicatorDoc.ico b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/res/CommunicatorDoc.ico new file mode 100644 index 0000000000000000000000000000000000000000..2a1f1ae6ef15e51df8c39bc028bbfb2171822ba5 GIT binary patch literal 1078 zcmcJNF;c@Y5JlGsgIpoERJdY%i*S@2!JS&si6f-)RXoFGDAfg5;z_dQBoi_)1DpI^ z{oS?KlD%25H@>BZ{KJV|_dD9_G1MV<{5a&-}7^W%4AM)k- zx&P*V(j}a@*Y~UhksXTAK!NRyiYN-8NMyKz<)2v9@tUao7A!g+SzkAcsHvdq6!0vQ z#-rA6>0BAr)4*u6Y57EdkamnXf Uh-a7VEuQ2KJb_2>o71HC3-%7w@Bjb+ literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/res/Toolbar.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/res/Toolbar.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d501723c1ceb781cccf04bc42408a2bee6b0eab4 GIT binary patch literal 1078 zcmb_byK2Kg5WFD46)N-_DGd%mbvRHJ@+(`2Y#@z5De^h$T}Yp#;yM?~%&rw%!DZII z_s!1Ct^M-)Tn3AG^p9vgT8;J){9rDyxEsA+?t8wt)o$n@0`>@NK8bGHkdKdb4m#tglAgQo-)Js1!#;+~GSl z37z4Z<|(I?jV44Q_xOeQ!(IFmLY86pVjciLPfC9(?0)$t7hw7W^>>N<@a4LVKPMb~ ze5>=j|BL>!3lPen5hUo~ANKN`l7C&3 z%0PPq3XFRT-e1OO0*EKjOA>DIfd!JKE>l7s8ZOWoALnDl7bEaBMvn{Ll0`lMj_p*2 zeyj@cEB=w(f%+@Ig9SfK=ePQ9c)El>T>d0F2ei{lnHqPg}It<8 literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/resource.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/resource.h new file mode 100644 index 0000000..13ee706 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/resource.h @@ -0,0 +1,66 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by Communicator.rc +// +#define IDD_ABOUTBOX 100 +#define IDP_OLE_INIT_FAILED 100 +#define IDD_COMMUNICATOR_FORM 101 +#define IDP_SOCKETS_INIT_FAILED 104 +#define IDR_MAINFRAME 128 +#define IDR_COMMTYPE 129 +#define IDD_SEND_DATA 130 +#define IDS_INVALID_VALUE 130 +#define IDS_FAILED_LISTEN 131 +#define IDS_FAILED_CONNECT 132 +#define IDC_LOCAL_ADDRESS 1000 +#define IDC_LOCAL_PORT 1001 +#define IDC_CLIENT_ADDRESSES 1002 +#define IDC_SEND_CLIENT 1003 +#define IDC_DISCONNECT_CLIENT 1004 +#define IDC_RECEIVED_DATA 1005 +#define IDC_LISTEN 1006 +#define IDC_CANCEL 1007 +#define IDC_SHUTDOWN 1008 +#define IDC_EMPTY 1009 +#define IDC_LOCAL_ADDRESS_LABEL 1009 +#define IDC_NULL 1010 +#define IDC_LOCAL_PORT_LABEL 1010 +#define IDC_BOOL 1011 +#define IDC_CLIENT_ADDRESSES_LABEL 1011 +#define IDC_UI1 1012 +#define IDC_REMOTE_PORT 1012 +#define IDC_I2 1013 +#define IDC_CONNECT_SERVER 1013 +#define IDC_I4 1014 +#define IDC_DISCONNECT_SERVER 1014 +#define IDC_CY 1015 +#define IDC_SEND_SERVER 1015 +#define IDC_R4 1016 +#define IDC_REMOTE_ADDRESS 1016 +#define IDC_R8 1017 +#define IDC_SPY 1017 +#define IDC_BSTR 1018 +#define IDC_REMOTE_ADDRESS_LABEL 1018 +#define IDC_DATE 1019 +#define IDC_REMOTE_PORT_LABEL 1019 +#define IDC_ERROR 1020 +#define IDC_SERVER_GROUP 1020 +#define IDC_VALUE 1021 +#define IDC_CLIENT_GROUP 1021 +#define IDC_ADD 1022 +#define IDC_LIST 1023 +#define IDC_BINARY 1024 +#define IDC_BROWSE 1025 +#define ID_DESCRIPTION_FILE 61216 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_3D_CONTROLS 1 +#define _APS_NEXT_RESOURCE_VALUE 132 +#define _APS_NEXT_COMMAND_VALUE 32772 +#define _APS_NEXT_CONTROL_VALUE 1022 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/senddatadlg.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/senddatadlg.cpp new file mode 100644 index 0000000..7699015 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Communicator/senddatadlg.cpp @@ -0,0 +1,142 @@ +// SendDataDlg.cpp : implementation file +// + +#include "stdafx.h" +#include "Communicator.h" +#include "SendDataDlg.h" +#include "OXBlob.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CSendDataDlg dialog + + +CSendDataDlg::CSendDataDlg(COXCommMsg* pCommMsg, CWnd* pParent /*=NULL*/) + : + CDialog(CSendDataDlg::IDD, pParent), + m_pCommMsg(pCommMsg) + { + //{{AFX_DATA_INIT(CSendDataDlg) + m_sValue = _T(""); + m_nType = 9; + //}}AFX_DATA_INIT + } + + +void CSendDataDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CSendDataDlg) + DDX_Control(pDX, IDC_BROWSE, m_wndBrowse); + DDX_Control(pDX, IDC_LIST, m_wndList); + DDX_Text(pDX, IDC_VALUE, m_sValue); + DDX_Radio(pDX, IDC_EMPTY, m_nType); + //}}AFX_DATA_MAP +} + + +BEGIN_MESSAGE_MAP(CSendDataDlg, CDialog) + //{{AFX_MSG_MAP(CSendDataDlg) + ON_BN_CLICKED(IDC_ADD, OnAdd) + ON_BN_CLICKED(IDC_BROWSE, OnBrowse) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CSendDataDlg message handlers + +void CSendDataDlg::OnAdd() + { + UINT nOleType = 0; + COXVariant oleVariant; + BOOL bSuccess = FALSE; + CString sValue; + + UpdateData(TRUE); + ASSERT((0 <= m_nType) && (m_nType < COXCommMsg::m_nArgumentTypesCount)); + nOleType = COXCommMsg::m_types[m_nType]; + + // Assign as string and then let OLE convert it + oleVariant = m_sValue; + long nFileLength = 0; + TRY + { + if (nOleType == COXCommMsg::ATBlob) + { + COXBlob blob; + bSuccess = blob.ReadRaw(m_sValue); + nFileLength = blob.GetSize(); + oleVariant = blob; + } + else if (nOleType != COXCommMsg::ATError) + { + oleVariant.ChangeType((VARTYPE)nOleType); + bSuccess = TRUE; + } + else + { + // Conversions to and from VT_ERROR is not available from OLE + // Use a VT_I4 instead + oleVariant.ChangeType(COXCommMsg::ATI4); + // ... Variant is a union, just change the type + // oleVariant.scode = oleVariant.lVal; + V_VT(&oleVariant) = (VARTYPE)nOleType; + bSuccess = TRUE; + } + } + END_TRY + + if (bSuccess) + { + m_pCommMsg->Add(oleVariant); + // Convert back to string to visualize + CString sText; + TRY + { + if (nOleType == COXCommMsg::ATBlob) + sText.Format(_T(""), nFileLength); + else + { + if (V_VT(&oleVariant) == COXCommMsg::ATError) + // ... Variant is a union, just change the type + // oleVariant.lVal= oleVariant.scode ; + V_VT(&oleVariant) = COXCommMsg::ATI4; + oleVariant.ChangeType(COXCommMsg::ATStr); + sText = V_BSTR(&oleVariant); + } + } + END_TRY + sValue.Format(_T("%i. (%s) %s"), + m_wndList.GetCount() + 1, + (LPCTSTR)COXCommMsg::m_typeNames[m_nType], + (LPCTSTR)sText); + m_wndList.AddString(sValue); + m_wndList.SetTopIndex(m_wndList.GetCount() - 1); + } + else + { + AfxMessageBox(IDS_INVALID_VALUE, MB_ICONEXCLAMATION); + } + } + +void CSendDataDlg::OnBrowse() + { + UpdateData(TRUE); + static TCHAR szFilter[] = _T("All Files (*.*) | *.* ||"); + CFileDialog fileDlg(TRUE, NULL, _T("*.*"), NULL, szFilter); + + if (fileDlg.DoModal() == IDOK) + { + m_sValue = fileDlg.GetPathName(); + // ... Set to Blob type by default + m_nType = 12; + UpdateData(FALSE); + } + + } + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/CgiHandler.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/CgiHandler.cpp new file mode 100644 index 0000000..2d11e20 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/CgiHandler.cpp @@ -0,0 +1,162 @@ +// CgiHandler.cpp : implementation file +// + +#include "stdafx.h" +#include "CgiHandler.h" +#include "CgiToOleDrv.h" +#include "MailEngine.h" +#include "XString.h" + +#define MR_PROFILE _T("Profile") +#define MR_PASSWORD _T("Password") +#define MR_TO _T("To") +#define MR_SUBJECT _T("Subject") +#define MR_CONTENT _T("Content") +#define MR_ATTCOUNT _T("AttCount") +#define MR_ATTACHMENT _T("Attachment") + + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CCgiHandler + +IMPLEMENT_DYNCREATE(CCgiHandler, COXOwnThreadCmdTarget) + +CCgiHandler::CCgiHandler() +{ + EnableAutomation(); + EnableOwnThread(); + + AfxOleLockApp(); +} + +CCgiHandler::~CCgiHandler() +{ + // To terminate the application when all objects created with + // with OLE automation, the destructor calls AfxOleUnlockApp. + + AfxOleUnlockApp(); +} + + +void CCgiHandler::OnFinalRelease() +{ + // When the last reference for an automation object is released + // OnFinalRelease is called. The base class will automatically + // deletes the object. Add additional cleanup required for your + // object before calling the base class. + + COXOwnThreadCmdTarget::OnFinalRelease(); +} + + +BEGIN_MESSAGE_MAP(CCgiHandler, COXOwnThreadCmdTarget) + //{{AFX_MSG_MAP(CCgiHandler) + // NOTE - the ClassWizard will add and remove mapping macros here. + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +BEGIN_DISPATCH_MAP(CCgiHandler, COXOwnThreadCmdTarget) + //{{AFX_DISPATCH_MAP(CCgiHandler) + DISP_FUNCTION(CCgiHandler, "OnGet", OnGet, VT_EMPTY, VTS_DISPATCH VTS_BSTR) + DISP_FUNCTION(CCgiHandler, "OnPost", OnPost, VT_EMPTY, VTS_DISPATCH VTS_BSTR VTS_BSTR) + //}}AFX_DISPATCH_MAP +END_DISPATCH_MAP() + +// Note: we add support for IID_ICgiHandler to support typesafe binding +// from VBA. This IID must match the GUID that is attached to the +// dispinterface in the .ODL file. + +// {48452B96-D40F-11CF-AA2E-00AA00489A36} +static const IID IID_ICgiHandler = +{ 0x48452b96, 0xd40f, 0x11cf, { 0xaa, 0x2e, 0x0, 0xaa, 0x0, 0x48, 0x9a, 0x36 } }; + +BEGIN_INTERFACE_MAP(CCgiHandler, CCmdTarget) + INTERFACE_PART(CCgiHandler, IID_ICgiHandler, Dispatch) +END_INTERFACE_MAP() + +// {48452B97-D40F-11CF-AA2E-00AA00489A36} +IMPLEMENT_OLECREATE(CCgiHandler, "OXSENDMAIL.CGIHANDLER", 0x48452b97, 0xd40f, 0x11cf, 0xaa, 0x2e, 0x0, 0xaa, 0x0, 0x48, 0x9a, 0x36) + +///////////////////////////////////////////////////////////////////////////// +// CCgiHandler message handlers + +#include "MailEngine.h" + +void CCgiHandler::OnGet(LPDISPATCH pCgiObj, LPCTSTR sCommand) +{ + UNUSED(sCommand); + CCgiDispatchDrv cgiObj; + + cgiObj.AttachDispatch(pCgiObj, FALSE); + cgiObj.SetOutput(_T("\n\n")); + cgiObj.SetOutput(_T("

    CGI Get Method is not supported !!

    \n")); + cgiObj.SetOutput(_T("\n\n")); +} + + +void CCgiHandler::OnPost(LPDISPATCH pCgiObj, LPCTSTR sInputType, LPCTSTR sInputBuffer) +{ + UNUSED(sInputType); + UNUSED(sInputBuffer); + + CCgiDispatchDrv cgiObj; + CString sProfile; + CString sPassword; + CString sTo; + CString sSubject; + CString sContent; + COXString sAttCount; + int nAttCount; + CStringArray sAttachments; + short nLastError; + CString sOutputString; + COleVariant sInputPar; + + cgiObj.AttachDispatch(pCgiObj, FALSE); + + sInputPar = MR_PROFILE; + sProfile = cgiObj.GetInput(sInputPar); + sInputPar = MR_PASSWORD; + sPassword = cgiObj.GetInput(sInputPar); + sInputPar = MR_TO; + sTo = cgiObj.GetInput(sInputPar); + sInputPar = MR_SUBJECT; + sSubject = cgiObj.GetInput(sInputPar); + sInputPar = MR_CONTENT; + sContent = cgiObj.GetInput(sInputPar); + sInputPar = MR_ATTCOUNT; + sAttCount = cgiObj.GetInput(sInputPar); + nAttCount = sAttCount.GetInt(); + sInputPar = MR_ATTACHMENT; + for (int i=0 ; i")); + + BOOL bResult = theMailEngine.Send( + sProfile, + sPassword, + sTo, + sSubject, + sContent, + sAttachments, + nLastError); + + if (bResult) + { + sOutputString.Format(_T("

    Mail sent successfully !!

    \n")); + } + else + { + sOutputString.Format(_T("

    Mail failed !!

    \n")); + } + cgiObj.SetOutput(sOutputString); + + cgiObj.SetOutput(_T("")); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/CgiHandler.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/CgiHandler.h new file mode 100644 index 0000000..6b2a93b --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/CgiHandler.h @@ -0,0 +1,65 @@ +// CgiHandler.h : header file +// + +///////////////////////////////////////////////////////////////////////////// +// HTML of the implementation of this sendmail utility +///////////////////////////////////////////////////////////////////////////// +//
    +// +// +// +// +// +// +// +//
    +// +// In stead of CgiToOle.exe you can use IsapiOle.dll in case of an ISAPI compliant HTTP server + +#include "OXOwnThreadCmdTarget.h" + + +///////////////////////////////////////////////////////////////////////////// +// CCgiHandler command target + +class CCgiHandler : public COXOwnThreadCmdTarget +{ + DECLARE_DYNCREATE(CCgiHandler) + + CCgiHandler(); // protected constructor used by dynamic creation + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CCgiHandler) + public: + virtual void OnFinalRelease(); + //}}AFX_VIRTUAL + +// Implementation +protected: + virtual ~CCgiHandler(); + + // Generated message map functions + //{{AFX_MSG(CCgiHandler) + // NOTE - the ClassWizard will add and remove member functions here. + //}}AFX_MSG + + DECLARE_MESSAGE_MAP() + DECLARE_OLECREATE(CCgiHandler) + + // Generated OLE dispatch map functions + //{{AFX_DISPATCH(CCgiHandler) + afx_msg void OnGet(LPDISPATCH pCgiObj, LPCTSTR sCommand); + afx_msg void OnPost(LPDISPATCH pCgiObj, LPCTSTR sInputType, LPCTSTR sInputBuffer); + //}}AFX_DISPATCH + DECLARE_DISPATCH_MAP() + DECLARE_INTERFACE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailCmd.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailCmd.h new file mode 100644 index 0000000..6fb2932 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailCmd.h @@ -0,0 +1,89 @@ +// +//////////////////////////////////////////////////////////////////////////////// +// +// Desciption : +// CMailCmd class + +// Remark: +// +// Prerequisites (necessary conditions): +// +///////////////////////////////////////////////////////////////////////////// + +#ifndef __MAILCMD_H_ +#define __MAILCMD_H_ + +enum EMailCmd +{ + mcNothing = 0, + mcLogOn, + mcLogOff, + mcSend +}; + +class CMailCmd : public COXEngineCmd +{ +// Data Members +public: + EMailCmd eCmd; + +protected: + +private: + +// Member Functions +public: + CMailCmd(EMailCmd eC = mcNothing, BOOL bSynchrone = TRUE, COXDoneNotifier* pDoneNotifier = NULL) : + COXEngineCmd(bSynchrone, pDoneNotifier), + eCmd(eC) {} + virtual ~CMailCmd() {} + +protected: + +private: +}; + +class CMCLogOn: public CMailCmd +{ +public: + CString sProfile; + CString sPassword; + BOOL bResult; + + CMCLogOn(CString sProf, CString sPassw) : + CMailCmd(mcLogOn), + sProfile(sProf), + sPassword(sPassw), + bResult(FALSE) {} +}; + +class CMCLogOff: public CMailCmd +{ +public: + CMCLogOff() : + CMailCmd(mcLogOff) {} +}; + +class CMCSend: public CMailCmd +{ +public: + CString sRecipient; + CString sSubject; + CString sContent; + CStringArray sAttachments; + short nError; + + CMCSend(CString sRecip, + CString sSubj, + CString sCont, + const CStringArray& sAttatchs) : + CMailCmd(mcSend), + sSubject(sSubj), + sContent(sCont), + sRecipient(sRecip), + nError(0) { + sAttachments.Copy(sAttatchs);} +}; + + +#endif // __MAILCMD_H_ diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailEngine.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailEngine.cpp new file mode 100644 index 0000000..dad4ae2 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailEngine.cpp @@ -0,0 +1,185 @@ +// MailEngine.cpp : implementation file +// + +#include "stdafx.h" +#include "MailEngine.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +short CMailEngine::defError = 0; + +CMailEngine theMailEngine; + +///////////////////////////////////////////////////////////////////////////// +// CMailEngine + +CMailEngine::CMailEngine() +{ +} + +CMailEngine::~CMailEngine() +{ +} + +BOOL CMailEngine::LogOn(CString sProfile, CString sPassword) +{ + BOOL bResult; + + CMCLogOn* pCmd = new CMCLogOn(sProfile, sPassword); + PostCommand(pCmd); + bResult = pCmd->bResult; + pCmd->Release(); + return bResult; +} + +void CMailEngine::LogOff() +{ + CMailCmd* pCmd = new CMCLogOff(); + PostCommand(pCmd); + pCmd->Release(); +} + +BOOL CMailEngine::IsLoggedOn() +{ + return m_sendMail.IsInitialized(); +} + +BOOL CMailEngine::Send(CString sProfile, + CString sPassword, + CString sRecipient, + CString sSubject, + CString sContent, + const CStringArray& sAttachments, + short& nError) +{ + CMailCmd* pCmd; + + pCmd = new CMCLogOn(sProfile, sPassword); + PostCommand(pCmd); + pCmd->Release(); + + pCmd = new CMCSend(sRecipient, + sSubject, + sContent, + sAttachments); + PostCommand(pCmd); + nError = ((CMCSend*)pCmd)->nError; + pCmd->Release(); + + return (nError == 0); +} + + +// protected: + +void CMailEngine::OnExecuteCmd(COXEngineCmd* pCmd) +{ + switch (((CMailCmd*) pCmd)->eCmd) + { + case mcLogOn: + OnLogOn(*((CMCLogOn*) pCmd)); + break; + case mcLogOff: + OnLogOff(*((CMCLogOff*) pCmd)); + break; + case mcSend: + OnSend(*((CMCSend*) pCmd)); + break; + default: + TRACE(_T("'CMailEngine::OnThreadEvent' Unknown command ! \n")); + ASSERT(FALSE); + break; + } +} + +void CMailEngine::OnThreadDestruction() +{ + COXThreadEngine::OnThreadDestruction(); + if (m_sendMail.IsInitialized()) + m_sendMail.Uninitialize(); +} + +void CMailEngine::OnLogOn(CMCLogOn& cmd) +{ + CString sProfile; +// HANDLE hToken; + + sProfile = m_sendMail.GetProfile(); + + if (sProfile != cmd.sProfile) + { + if (m_sendMail.IsInitialized()) + m_sendMail.Uninitialize(); + } + else if (m_sendMail.IsInitialized()) + { + cmd.bResult = TRUE; + return; + } + + +//LOGON32_LOGON_BATCH +//LOGON32_LOGON_INTERACTIVE +//LOGON32_LOGON_SERVICE + +/* if (!::LogonUser(_T("Kris"), _T("PERIDEV"), _T("poke725"), LOGON32_LOGON_BATCH, LOGON32_PROVIDER_DEFAULT, &hToken)) + { + DWORD dwResult = GetLastError(); + if (dwResult == ERROR_PRIVILEGE_NOT_HELD) + { + cmd.bResult = FALSE; + } + cmd.bResult = FALSE; + return; + } + if (!ImpersonateLoggedOnUser(hToken)) + { + cmd.bResult = FALSE; + return; + } +*/ + if (m_sendMail.Initialize(cmd.sProfile, cmd.sPassword)==FALSE) + { + cmd.bResult = FALSE; + return; + } + cmd.bResult = TRUE; +} + +void CMailEngine::OnLogOff(CMCLogOff& cmd) +{ + UNUSED(cmd); + if (m_sendMail.IsInitialized()) + m_sendMail.Uninitialize(); +} + +void CMailEngine::OnSend(CMCSend& cmd) +{ + CString sAttachments; + + if (m_sendMail.IsInitialized() == FALSE) + { + cmd.nError = MR_MMERR_LOGON; + return; + } + + COXSendMail::CMessage message; + + message.m_sSubject = cmd.sSubject; + message.m_sContent = cmd.sContent; + message.AddRecipient(cmd.sRecipient, COXSendMail::rtTO); + for (int i=0 ; i= m_sAttachments.GetSize()) + return FALSE; + strResult = m_sAttachments[nIndex]; + return strResult.AllocSysString(); +} + +BOOL CMailMessage::RemoveAttachment(short nIndex) +{ + if (nIndex >= m_sAttachments.GetSize()) + return FALSE; + m_sAttachments.RemoveAt(nIndex); + m_nAttachmentCount = (short)m_sAttachments.GetSize(); + return TRUE; +} + + +void CMailMessage::OnSubjectChanged() {} +void CMailMessage::OnContentChanged() {} +void CMailMessage::OnAttachmentCountChanged() {GetNotSupported();} +void CMailMessage::OnLastErrorChanged() {GetNotSupported();} +void CMailMessage::OnToChanged() {} +void CMailMessage::OnProfileChanged() {} +void CMailMessage::OnPasswordChanged() {} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailMessage.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailMessage.h new file mode 100644 index 0000000..2881640 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailMessage.h @@ -0,0 +1,91 @@ +// MailMessage.h : header file +// + + + +///////////////////////////////////////////////////////////////////////////// +// Visual Basic sample of the implementation of this ole object +///////////////////////////////////////////////////////////////////////////// +// Dim msg As Object +// Dim bResult As Boolean +// +// Set msg = CreateObject("OXSENDMAIL.MESSAGE") +// msg.Profile = "Kris" +// msg.Password = "" +// msg.To = "Kris" +// msg.Subject = "Hello to myself" +// msg.Content = "Hello and bye bye !!" +// bResult = msg.AddAttachment("c:\test.bmp") +// bResult = msg.Send() +// + +#include "OXOwnThreadCmdTarget.h" + + +///////////////////////////////////////////////////////////////////////////// +// CMailMessage command target + +class CMailEngine; + +class CMailMessage : public COXOwnThreadCmdTarget +{ +friend CMailEngine; + +DECLARE_DYNCREATE(CMailMessage) + +// Data Members +public: + +protected: + CStringArray m_sAttachments; + // See the OLE generated dispatch map functions in the function section below + +private: + +// Member Functions +public: + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CMailMessage) + virtual void OnFinalRelease(); + //}}AFX_VIRTUAL + +protected: + CMailMessage(); // protected constructor used by dynamic creation + virtual ~CMailMessage(); + + // Generated message map functions + //{{AFX_MSG(CMailMessage) + // NOTE - the ClassWizard will add and remove member functions here. + //}}AFX_MSG + + DECLARE_MESSAGE_MAP() + DECLARE_OLECREATE(CMailMessage) + + // Generated OLE dispatch map functions + //{{AFX_DISPATCH(CMailMessage) + CString m_sSubject; + afx_msg void OnSubjectChanged(); + CString m_sContent; + afx_msg void OnContentChanged(); + short m_nAttachmentCount; + afx_msg void OnAttachmentCountChanged(); + short m_nLastError; + afx_msg void OnLastErrorChanged(); + CString m_sTo; + afx_msg void OnToChanged(); + CString m_sProfile; + afx_msg void OnProfileChanged(); + CString m_sPassword; + afx_msg void OnPasswordChanged(); + afx_msg BOOL AddAttachment(LPCTSTR sFilePatch); + afx_msg BSTR GetAttachment(short nIndex); + afx_msg BOOL RemoveAttachment(short nIndex); + afx_msg BOOL Send(); + //}}AFX_DISPATCH + DECLARE_DISPATCH_MAP() + DECLARE_INTERFACE_MAP() + +private: +}; + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.SUP b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.SUP new file mode 100644 index 0000000..0e8aaf8 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.SUP @@ -0,0 +1,6 @@ +//SUPPRESSIONPROJ:MailSend +//VERSION:5.00 +//ENABLE:Yes +!include Mfc.sup +!include Rtl.sup + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.clw b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.clw new file mode 100644 index 0000000..caef61f --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.clw @@ -0,0 +1,124 @@ +; CLW file contains information for the MFC ClassWizard + +[General Info] +Version=1 +LastClass=CMailSendDlg +LastTemplate=CDialog +NewFileInclude1=#include "stdafx.h" +NewFileInclude2=#include "mailsend.h" +LastPage=0 + +ClassCount=5 +Class1=CCgiHandler +Class2=CMailMessage +Class3=CMailSendApp +Class4=CAboutDlg +Class5=CMailSendDlg + +ResourceCount=4 +Resource1=IDD_ABOUTBOX (English (U.S.)) +Resource2=IDD_MAILSEND_DIALOG +Resource3=IDD_ABOUTBOX +Resource4=IDD_MAILSEND_DIALOG (English (Canada)) + +[CLS:CCgiHandler] +Type=0 +BaseClass=COXOwnThreadCmdTarget +HeaderFile=CgiHandler.h +ImplementationFile=CgiHandler.cpp + +[CLS:CMailMessage] +Type=0 +BaseClass=COXOwnThreadCmdTarget +HeaderFile=MailMessage.h +ImplementationFile=MailMessage.cpp + +[CLS:CMailSendApp] +Type=0 +BaseClass=CWinApp +HeaderFile=MailSend.h +ImplementationFile=MailSendDlg.cpp + +[CLS:CAboutDlg] +Type=0 +BaseClass=CDialog +HeaderFile=MailSendDlg.cpp +ImplementationFile=MailSendDlg.cpp + +[CLS:CMailSendDlg] +Type=0 +BaseClass=CDialog +HeaderFile=MailSendDlg.h +ImplementationFile=MailSendDlg.cpp +Filter=D +VirtualFilter=dWC +LastObject=IDC_BUTTON_REMOVEATTACHMENT + +[DLG:IDD_ABOUTBOX] +Type=1 +Class=CAboutDlg +ControlCount=8 +Control1=IDC_STATIC,static,1342177283 +Control2=IDC_STATIC,static,1342308480 +Control3=IDC_STATIC,static,1342308352 +Control4=IDOK,button,1342373889 +Control5=IDC_STATIC,static,1342308352 +Control6=IDC_STATIC,static,1342308352 +Control7=IDC_STATIC,static,1342308352 +Control8=IDC_STATIC,static,1342308352 + +[DLG:IDD_MAILSEND_DIALOG] +Type=1 +Class=CMailSendDlg +ControlCount=15 +Control1=IDC_PROFILE,edit,1350631552 +Control2=IDC_PASSWORD,edit,1350631552 +Control3=IDC_ADDRESS,edit,1350631552 +Control4=IDC_SUBJECT,edit,1350631552 +Control5=IDC_CONTENT,edit,1352728580 +Control6=IDC_ATTACHMENT,edit,1350631552 +Control7=IDC_SEND_MAIL,button,1342242816 +Control8=IDC_ABOUT,button,1342242816 +Control9=IDCANCEL,button,1342242816 +Control10=IDC_STATIC,static,1342308352 +Control11=IDC_STATIC,static,1342308352 +Control12=IDC_STATIC,static,1342308352 +Control13=IDC_STATIC,static,1342308352 +Control14=IDC_STATIC,static,1342308352 +Control15=IDC_STATIC,static,1342308352 + +[DLG:IDD_ABOUTBOX (English (U.S.))] +Type=1 +Class=? +ControlCount=8 +Control1=IDC_STATIC,static,1342177283 +Control2=IDC_STATIC,static,1342308480 +Control3=IDC_STATIC,static,1342308352 +Control4=IDOK,button,1342373889 +Control5=IDC_STATIC,static,1342308352 +Control6=IDC_STATIC,static,1342308352 +Control7=IDC_STATIC,static,1342308352 +Control8=IDC_STATIC,static,1342308352 + +[DLG:IDD_MAILSEND_DIALOG (English (Canada))] +Type=1 +Class=CMailSendDlg +ControlCount=17 +Control1=IDC_PROFILE,edit,1350631552 +Control2=IDC_PASSWORD,edit,1350631552 +Control3=IDC_ADDRESS,edit,1350631552 +Control4=IDC_SUBJECT,edit,1350631552 +Control5=IDC_CONTENT,edit,1352728580 +Control6=IDC_SEND_MAIL,button,1342242816 +Control7=IDC_ABOUT,button,1342242816 +Control8=IDCANCEL,button,1342242816 +Control9=IDC_STATIC,static,1342308352 +Control10=IDC_STATIC,static,1342308352 +Control11=IDC_STATIC,static,1342308352 +Control12=IDC_STATIC,static,1342308352 +Control13=IDC_STATIC,static,1342308352 +Control14=IDC_STATIC,static,1342308352 +Control15=IDC_LIST_ATTACHMENTS,listbox,1352728833 +Control16=IDC_BUTTON_ADDATTACHMENT,button,1342242816 +Control17=IDC_BUTTON_REMOVEATTACHMENT,button,1342242816 + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.cpp new file mode 100644 index 0000000..81c64fc --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.cpp @@ -0,0 +1,83 @@ +// MailSend.cpp : Defines the class behaviors for the application. +// + +#include "stdafx.h" +#include "MailSend.h" +#include "MailSendDlg.h" +#include "MailEngine.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CMailSendApp construction + +CMailSendApp::CMailSendApp() +{ + // TODO: add construction code here, + // Place all significant initialization in InitInstance +} + +///////////////////////////////////////////////////////////////////////////// +// The one and only CMailSendApp object +CMailSendApp theApp; + +///////////////////////////////////////////////////////////////////////////// +// CMailSendApp initialization + +BOOL CMailSendApp::InitInstance() +{ + // Initialize OLE libraries + if (!AfxOleInit()) + { + AfxMessageBox(IDP_OLE_INIT_FAILED); + return FALSE; + } + + // 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 + + // Register all OLE server (factories) as running. This enables the + // OLE libraries to create objects from other applications. + COleTemplateServer::RegisterAll(); + + theMailEngine.Initialize(); + + // Parse the command line to see if launched as OLE server + if (RunEmbedded() || RunAutomated()) + { + // Application was run with /Embedding or /Automation. Don't show the + // main window in this case. + return TRUE; + } + + // When a server application is launched stand-alone, it is a good idea + // to update the system registry in case it has been damaged. + COleObjectFactory::UpdateRegistryAll(); + + CMailSendDlg dlg; + m_pMainWnd = &dlg; + dlg.DoModal(); + + // Since the dialog has been closed, return FALSE so that we exit the + // application, rather than start the application's message pump. + return FALSE; +} + +int CMailSendApp::ExitInstance() +{ + theMailEngine.Terminate(); + + return CWinApp::ExitInstance(); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.dsp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.dsp new file mode 100644 index 0000000..c6c6f2e --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.dsp @@ -0,0 +1,337 @@ +# Microsoft Developer Studio Project File - Name="MailSend" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=MailSend - Win32 Unicode_Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "MailSend.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "MailSend.mak" CFG="MailSend - Win32 Unicode_Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "MailSend - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "MailSend - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE "MailSend - Win32 Release_Shared" (based on "Win32 (x86) Application") +!MESSAGE "MailSend - Win32 Unicode_Debug" (based on "Win32 (x86) Application") +!MESSAGE "MailSend - Win32 Unicode_Release" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "MailSend - Win32 Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir ".\Release" +# PROP BASE Intermediate_Dir ".\Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir ".\Release" +# PROP Intermediate_Dir ".\Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\include" /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "NOT_REGISTERED" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x813 /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x813 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 mapi32.lib /nologo /subsystem:windows /machine:I386 /out:"MailSend.exe" + +!ELSEIF "$(CFG)" == "MailSend - Win32 Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir ".\Debug" +# PROP BASE Intermediate_Dir ".\Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir ".\Debug" +# PROP Intermediate_Dir ".\Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\include" /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "NOT_REGISTERED" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x813 /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x813 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 +# ADD LINK32 mapi32.lib /nologo /subsystem:windows /debug /machine:I386 /out:"MailSend.exe" + +!ELSEIF "$(CFG)" == "MailSend - Win32 Release_Shared" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "MailSend" +# PROP BASE Intermediate_Dir "MailSend" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release_Shared" +# PROP Intermediate_Dir "Release_Shared" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "NOT_REGISTERED" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W4 /GX /O2 /I "..\..\include" /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "NOT_REGISTERED" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x813 /d "NDEBUG" +# ADD RSC /l 0x813 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 mapi32.lib /nologo /subsystem:windows /machine:I386 /out:"MailSend.exe" +# ADD LINK32 mapi32.lib /nologo /subsystem:windows /machine:I386 /out:"MailSend.exe" + +!ELSEIF "$(CFG)" == "MailSend - Win32 Unicode_Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "MailSen0" +# PROP BASE Intermediate_Dir "MailSen0" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Unicode_Debug" +# PROP Intermediate_Dir "Unicode_Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /D "NOT_REGISTERED" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\include" /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /D "NOT_REGISTERED" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x813 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x813 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 mapi32.lib /nologo /subsystem:windows /debug /machine:I386 /out:"MailSend.exe" +# ADD LINK32 mapi32.lib /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /debug /machine:I386 /out:"MailSend.exe" + +!ELSEIF "$(CFG)" == "MailSend - Win32 Unicode_Release" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "MailSen1" +# PROP BASE Intermediate_Dir "MailSen1" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Unicode_Release" +# PROP Intermediate_Dir "Unicode_Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "NOT_REGISTERED" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\include" /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "NOT_REGISTERED" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x813 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "NDEBUG" +# ADD RSC /l 0x813 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 mapi32.lib /nologo /subsystem:windows /machine:I386 /out:"MailSend.exe" +# ADD LINK32 mapi32.lib /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /machine:I386 /out:"MailSend.exe" + +!ENDIF + +# Begin Target + +# Name "MailSend - Win32 Release" +# Name "MailSend - Win32 Debug" +# Name "MailSend - Win32 Release_Shared" +# Name "MailSend - Win32 Unicode_Debug" +# Name "MailSend - Win32 Unicode_Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90" +# Begin Group "UTSource" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\source\OXDispatchMarshaller.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\source\OXFinalReleaseWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\source\oxmdisp.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\source\OXOwnThread.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\source\OXOwnThreadCmdTarget.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\source\OXSendMail.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\source\OXThreadEngine.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\Xstring.cpp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\CgiHandler.cpp +# End Source File +# Begin Source File + +SOURCE=.\cgitooledrv.cpp +# End Source File +# Begin Source File + +SOURCE=.\MailEngine.cpp +# End Source File +# Begin Source File + +SOURCE=.\MailMessage.cpp +# End Source File +# Begin Source File + +SOURCE=.\MailSend.cpp +# End Source File +# Begin Source File + +SOURCE=.\MailSend.odl +# End Source File +# Begin Source File + +SOURCE=.\MailSend.rc +# End Source File +# Begin Source File + +SOURCE=.\MailSendDlg.cpp +# End Source File +# Begin Source File + +SOURCE=.\ReadMe.txt +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd" +# Begin Source File + +SOURCE=.\CgiHandler.h +# End Source File +# Begin Source File + +SOURCE=.\CgiToOleDrv.h +# End Source File +# Begin Source File + +SOURCE=.\MailCmd.h +# End Source File +# Begin Source File + +SOURCE=.\MailEngine.h +# End Source File +# Begin Source File + +SOURCE=.\MailMessage.h +# End Source File +# Begin Source File + +SOURCE=.\MailSend.h +# End Source File +# Begin Source File + +SOURCE=.\MailSendDlg.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXDispatchMarshaller.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXFinalReleaseWnd.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\oxmdisp.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXOwnThread.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXOwnThreadCmdTarget.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXSendMail.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXThreadEngine.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# Begin Source File + +SOURCE=.\XString.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\res\MailSend.ico +# End Source File +# Begin Source File + +SOURCE=.\res\MailSend.rc2 +# End Source File +# End Group +# End Target +# End Project diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.dsw b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.dsw new file mode 100644 index 0000000..e0fe28e --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "MailSend"=".\MailSend.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.h new file mode 100644 index 0000000..ff6104d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.h @@ -0,0 +1,38 @@ +// MailSend.h : main header file for the MAILSEND application +// + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols + +///////////////////////////////////////////////////////////////////////////// +// CMailSendApp: +// See MailSend.cpp for the implementation of this class +// + +class CMailSendApp : public CWinApp +{ +public: + CMailSendApp(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CMailSendApp) + public: + virtual BOOL InitInstance(); + virtual int ExitInstance(); + //}}AFX_VIRTUAL + +// Implementation + + //{{AFX_MSG(CMailSendApp) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.odl b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.odl new file mode 100644 index 0000000..a8d5b4a --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.odl @@ -0,0 +1,108 @@ +// MailSend.odl : type library source for MailSend.exe + +// This file will be processed by the Make Type Library (mktyplib) tool to +// produce the type library (MailSend.tlb). + +[ uuid(48452B61-D40F-11CF-AA2E-00AA00489A36), version(1.0) ] +library MailSend +{ + importlib("stdole32.tlb"); + + + // Primary dispatch interface for CMail + + [ uuid(48452B66-D40F-11CF-AA2E-00AA00489A36) ] + dispinterface IMail + { + properties: + // NOTE - ClassWizard will maintain property information here. + // Use extreme caution when editing this section. + //{{AFX_ODL_PROP(CMail) + //}}AFX_ODL_PROP + + methods: + // NOTE - ClassWizard will maintain method information here. + // Use extreme caution when editing this section. + //{{AFX_ODL_METHOD(CMail) + //}}AFX_ODL_METHOD + + }; + + // Class information for CMail + + [ uuid(48452B67-D40F-11CF-AA2E-00AA00489A36) ] + coclass MAIL + { + [default] dispinterface IMail; + }; + + // Primary dispatch interface for CMailMessage + + [ uuid(48452B86-D40F-11CF-AA2E-00AA00489A36) ] + dispinterface IMailMessage + { + properties: + // NOTE - ClassWizard will maintain property information here. + // Use extreme caution when editing this section. + //{{AFX_ODL_PROP(CMailMessage) + [id(1)] BSTR Subject; + [id(2)] BSTR Content; + [id(3)] short AttachmentCount; + [id(4)] short LastError; + [id(5)] BSTR To; + [id(6)] BSTR Profile; + [id(7)] BSTR Password; + //}}AFX_ODL_PROP + + methods: + // NOTE - ClassWizard will maintain method information here. + // Use extreme caution when editing this section. + //{{AFX_ODL_METHOD(CMailMessage) + [id(8)] boolean AddAttachment(BSTR sFilePath); + [id(9)] BSTR GetAttachment(short nIndex); + [id(10)] boolean RemoveAttachment(short nIndex); + [id(11)] boolean Send(); + //}}AFX_ODL_METHOD + + }; + + // Class information for CMailMessage + + [ uuid(48452B87-D40F-11CF-AA2E-00AA00489A36) ] + coclass CMailMessage + { + [default] dispinterface IMailMessage; + }; + + // Primary dispatch interface for CCgiHandler + + [ uuid(48452B96-D40F-11CF-AA2E-00AA00489A36) ] + dispinterface ICgiHandler + { + properties: + // NOTE - ClassWizard will maintain property information here. + // Use extreme caution when editing this section. + //{{AFX_ODL_PROP(CCgiHandler) + //}}AFX_ODL_PROP + + methods: + // NOTE - ClassWizard will maintain method information here. + // Use extreme caution when editing this section. + //{{AFX_ODL_METHOD(CCgiHandler) + [id(1)] void OnGet(IDispatch* pCgiObj, BSTR sCommand); + [id(2)] void OnPost(IDispatch* pCgiObj, BSTR sInputType, BSTR sInputBuffer); + //}}AFX_ODL_METHOD + + }; + + // Class information for CCgiHandler + + [ uuid(48452B97-D40F-11CF-AA2E-00AA00489A36) ] + coclass CCgiHandler + { + [default] dispinterface ICgiHandler; + } + + + //{{AFX_APPEND_ODL}} +}; diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.rc b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.rc new file mode 100644 index 0000000..b3fb9e6 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSend.rc @@ -0,0 +1,269 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 253, 214 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "About SendMail" +FONT 8, "MS Sans Serif" +BEGIN + ICON IDR_MAINFRAME,IDC_STATIC,13,18,20,20 + LTEXT "SendMail Version 1.0",IDC_STATIC,40,10,119,8, + SS_NOPREFIX + LTEXT "Copyright © The Code Project 1997",IDC_STATIC,40,25,119, + 8 + DEFPUSHBUTTON "OK",IDOK,214,7,32,14,WS_GROUP + LTEXT "This application is an OLE server which offers a Message object that you can call (even from within NT services) to send a mail message via a MAPI compliant system.\nMessage OLE object: (OXSENDMAIL.MESSAGE)", + IDC_STATIC,37,45,189,34 + LTEXT "Properties:\n\tFrom \t\t\tstring\n\tTo\t\t\tstring\n\tSubject\t\t\tstring\n\tContent\t\t\tstring\n\tAttachmentCount\tinteger\n\tLastError\t\tlong", + IDC_STATIC,37,81,171,57 + LTEXT "Methods:\n\tBOOL AddAttachment ( path ) path is string\n\tstring GetAttachment ( index ) index is integer\n\tRemoveAttachment ( index )\n\tBOOL Send ()", + IDC_STATIC,37,138,188,43 + LTEXT "ALSO ACCESSIBLE WITH CGI AND ISAPI\nCheck the Readme.txt file.", + IDC_STATIC,37,185,189,19 +END + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "MAILSEND MFC Application\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "MAILSEND\0" + VALUE "LegalCopyright", "Copyright © 1996\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "MAILSEND.EXE\0" + VALUE "ProductName", "MAILSEND Application\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_ABOUTBOX, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 246 + TOPMARGIN, 7 + BOTTOMMARGIN, 207 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDP_OLE_INIT_FAILED "OLE initialization failed. Make sure that the OLE libraries are the correct version." + IDS_ABOUTBOX "&About MailSend..." +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// Dutch (Belgium) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NLB) +#ifdef _WIN32 +LANGUAGE LANG_DUTCH, SUBLANG_DUTCH_BELGIAN +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif\r\n" + "#include ""res\\MailSend.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "#endif\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON DISCARDABLE "res\\MailSend.ico" +#endif // Dutch (Belgium) resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// English (Canada) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENC) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_CAN +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_MAILSEND_DIALOG DIALOG DISCARDABLE 0, 0, 214, 252 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "MailSend sample" +FONT 8, "MS Sans Serif" +BEGIN + EDITTEXT IDC_PROFILE,57,7,150,12,ES_AUTOHSCROLL + EDITTEXT IDC_PASSWORD,57,24,150,12,ES_AUTOHSCROLL + EDITTEXT IDC_ADDRESS,57,49,150,12,ES_AUTOHSCROLL + EDITTEXT IDC_SUBJECT,57,65,150,12,ES_AUTOHSCROLL + EDITTEXT IDC_CONTENT,57,82,150,39,ES_MULTILINE | WS_VSCROLL + PUSHBUTTON "Send message",IDC_SEND_MAIL,7,228,57,17 + PUSHBUTTON "About...",IDC_ABOUT,78,228,57,17 + PUSHBUTTON "Close",IDCANCEL,149,228,57,17 + LTEXT "Profile Name: ",IDC_STATIC,7,9,45,8 + LTEXT "Password: ",IDC_STATIC,7,26,36,8 + LTEXT "Address: ",IDC_STATIC,8,51,30,8 + LTEXT "Subject: ",IDC_STATIC,7,67,30,8 + LTEXT "Attachment: ",IDC_STATIC,7,130,41,8 + LTEXT "Content: ",IDC_STATIC,7,84,30,8 + LISTBOX IDC_LIST_ATTACHMENTS,56,131,151,87,LBS_NOINTEGRALHEIGHT | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Add",IDC_BUTTON_ADDATTACHMENT,7,145,37,15 + PUSHBUTTON "Remove",IDC_BUTTON_REMOVEATTACHMENT,7,167,37,15 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_MAILSEND_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 207 + TOPMARGIN, 7 + BOTTOMMARGIN, 245 + END +END +#endif // APSTUDIO_INVOKED + +#endif // English (Canada) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif +#include "res\MailSend.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +#endif +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSendDlg.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSendDlg.cpp new file mode 100644 index 0000000..2c69aef --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/MailSendDlg.cpp @@ -0,0 +1,255 @@ +// MailSendDlg.cpp : implementation file +// + +#include "stdafx.h" +#include "MailSend.h" +#include "MailSendDlg.h" +#include "MailEngine.h" + +#include "oxmdisp.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CAboutDlg dialog used for App About + +class CAboutDlg : public CDialog +{ +public: + CAboutDlg(); + +// Dialog Data + //{{AFX_DATA(CAboutDlg) + enum { IDD = IDD_ABOUTBOX }; + //}}AFX_DATA + + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CAboutDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + //{{AFX_MSG(CAboutDlg) + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) +{ + //{{AFX_DATA_INIT(CAboutDlg) + //}}AFX_DATA_INIT +} + +void CAboutDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CAboutDlg) + //}}AFX_DATA_MAP +} + +BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) + //{{AFX_MSG_MAP(CAboutDlg) + // No message handlers + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + + +///////////////////////////////////////////////////////////////////////////// +// CMailSendApp + +BEGIN_MESSAGE_MAP(CMailSendApp, CWinApp) + //{{AFX_MSG_MAP(CMailSendApp) + // 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() + +///////////////////////////////////////////////////////////////////////////// +// CMailSendDlg dialog + +CMailSendDlg::CMailSendDlg(CWnd* pParent /*=NULL*/) + : CDialog(CMailSendDlg::IDD, pParent) +{ + //{{AFX_DATA_INIT(CMailSendDlg) + m_sAddress = _T(""); + m_sContent = _T(""); + m_sPassword = _T(""); + m_sProfile = _T(""); + m_sSubject = _T(""); + //}}AFX_DATA_INIT + // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 + m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); +} + +void CMailSendDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CMailSendDlg) + DDX_Control(pDX, IDC_LIST_ATTACHMENTS, m_lbAttachments); + DDX_Text(pDX, IDC_ADDRESS, m_sAddress); + DDX_Text(pDX, IDC_CONTENT, m_sContent); + DDX_Text(pDX, IDC_PASSWORD, m_sPassword); + DDX_Text(pDX, IDC_PROFILE, m_sProfile); + DDX_Text(pDX, IDC_SUBJECT, m_sSubject); + //}}AFX_DATA_MAP +} + +BEGIN_MESSAGE_MAP(CMailSendDlg, CDialog) + //{{AFX_MSG_MAP(CMailSendDlg) + ON_WM_SYSCOMMAND() + ON_WM_PAINT() + ON_WM_QUERYDRAGICON() + ON_BN_CLICKED(IDC_SEND_MAIL, OnSendMail) + ON_BN_CLICKED(IDC_ABOUT, OnAbout) + ON_BN_CLICKED(IDC_BUTTON_ADDATTACHMENT, OnButtonAddattachment) + ON_BN_CLICKED(IDC_BUTTON_REMOVEATTACHMENT, OnButtonRemoveattachment) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CMailSendDlg message handlers + +BOOL CMailSendDlg::OnInitDialog() +{ + CDialog::OnInitDialog(); + + // Add "About..." menu item to system menu. + + // IDM_ABOUTBOX must be in the system command range. + ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); + ASSERT(IDM_ABOUTBOX < 0xF000); + + CMenu* pSysMenu = GetSystemMenu(FALSE); + CString strAboutMenu; + strAboutMenu.LoadString(IDS_ABOUTBOX); + if (!strAboutMenu.IsEmpty()) + { + pSysMenu->AppendMenu(MF_SEPARATOR); + pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); + } + + // Set the icon for this dialog. The framework does this automatically + // when the application's main window is not a dialog + SetIcon(m_hIcon, TRUE); // Set big icon + SetIcon(m_hIcon, FALSE); // Set small icon + + // TODO: Add extra initialization here + m_sProfile=_T("Microsoft Outlook"); + m_sAddress=_T("info@theUltimateToolBox.com"); + m_sSubject=_T("Test Mail Send"); + m_sContent=_T("This is a message sent to check the MailSend sample functionality"); + + UpdateData(FALSE); + + return TRUE; // return TRUE unless you set the focus to a control +} + +void CMailSendDlg::OnSysCommand(UINT nID, LPARAM lParam) +{ + if ((nID & 0xFFF0) == IDM_ABOUTBOX) + { + CAboutDlg dlgAbout; + dlgAbout.DoModal(); + } + else + { + CDialog::OnSysCommand(nID, lParam); + } +} + +// If you add a minimize button to your dialog, you will need the code below +// to draw the icon. For MFC applications using the document/view model, +// this is automatically done for you by the framework. + +void CMailSendDlg::OnPaint() +{ + if (IsIconic()) + { + CPaintDC dc(this); // device context for painting + + SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); + + // Center icon in client rectangle + int cxIcon = GetSystemMetrics(SM_CXICON); + int cyIcon = GetSystemMetrics(SM_CYICON); + CRect rect; + GetClientRect(&rect); + int x = (rect.Width() - cxIcon + 1) / 2; + int y = (rect.Height() - cyIcon + 1) / 2; + + // Draw the icon + dc.DrawIcon(x, y, m_hIcon); + } + else + { + CDialog::OnPaint(); + } +} + +// The system calls this to obtain the cursor to display while the user drags +// the minimized window. +HCURSOR CMailSendDlg::OnQueryDragIcon() +{ + return (HCURSOR) m_hIcon; +} + +void CMailSendDlg::OnSendMail() +{ + // TODO: Add your control notification handler code here + + UpdateData(); + + CStringArray sAttachments; + for(int nIndex=0; nIndex + + + + + + + + + + +Info: + +HTTP: www.theUltimateToolbox.com + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/SendMail.CPP b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/SendMail.CPP new file mode 100644 index 0000000..c16f8f4 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/SendMail.CPP @@ -0,0 +1,606 @@ +// ========================================================================== +// Class Implementation : CSendMail +// ========================================================================== + +// Source file : SendMail.cpp + +//----------------- Dundas Software ---------------------------------------- +//======================================================================== + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" // standard MFC include +#include "SendMail.h" + +#pragma warning(disable: 4228) +#include +#include +#include +#include + +#define USES_IID_IMAPIFolder +#define INITGUID +#include +#include +#pragma warning(default: 4228) + +#ifdef _DEBUG +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +#define _countof(array) (sizeof(array)/sizeof(array[0])) + +///////////////////////////////////////////////////////////////////////////// +// MAPI implementation helpers and globals + +static BOOL IsMailAvail = (BOOL)-1; // start out not determined + +///////////////////////////////////////////////////////////////////////////// +// _AFX_MAIL_STATE + +class _AFX_MAIL_STATE : public CNoTrackObject +{ +public: + HINSTANCE m_hInstMail; // handle to MAPI32.DLL + virtual ~_AFX_MAIL_STATE(); +}; + +_AFX_MAIL_STATE::~_AFX_MAIL_STATE() +{ + if (m_hInstMail != NULL) + ::FreeLibrary(m_hInstMail); +} + +_AFX_MAIL_STATE* _afxMailState; +int nCount = 0; + +CSendMail::CSendMail() : + m_pMAPISession(NULL), + m_pAddressBook(NULL), + m_peidDefaultMDB(NULL), + m_cbeidDefaultMDB(0), + m_pDefaultMDB(NULL), + m_pRootFolder(NULL), + m_szRecipient(NULL), + m_uLogoffFlags(LOGOFF_ORDERLY), + m_szAttachData(NULL) +{ + if (nCount==0) + _afxMailState = new _AFX_MAIL_STATE; + nCount++; +} + + +CSendMail::~CSendMail() +{ + nCount--; + if (nCount==0) + delete _afxMailState; +} + + +CString CSendMail::GetReturnMsg(int nErr) +{ + CString sErrorMsg; + switch(nErr) + { + case SUCCESS_SUCCESS: + sErrorMsg = _T("Sending of Mail was succesful"); + break; + case MAPI_E_USER_ABORT: + sErrorMsg = _T("Sending of Mail has been aborted by user"); + break; + case MAPI_E_FAILURE: + sErrorMsg = _T("Sending of Mail was not succesful"); + break; + case MAPI_E_LOGIN_FAILURE: + sErrorMsg = _T("login failure"); + break; + case MAPI_E_DISK_FULL: + sErrorMsg = _T("Disk full"); + break; + case MAPI_E_INSUFFICIENT_MEMORY: + sErrorMsg = _T("not enough memory"); + break; + case MAPI_E_ACCESS_DENIED: + sErrorMsg = _T("access denied"); + break; + case MAPI_E_TOO_MANY_SESSIONS: + sErrorMsg = _T("too many sessions open"); + break; + case MAPI_E_TOO_MANY_FILES: + sErrorMsg = _T("too many open files"); + break; + case MAPI_E_TOO_MANY_RECIPIENTS: + sErrorMsg = _T("too many recipients specified"); + break; + case MAPI_E_ATTACHMENT_NOT_FOUND: + sErrorMsg = _T("attachment not found"); + break; + case MAPI_E_ATTACHMENT_OPEN_FAILURE: + sErrorMsg = _T("could not open attachment"); + break; + case MAPI_E_ATTACHMENT_WRITE_FAILURE: + sErrorMsg = _T("could not write attachment"); + break; + case MAPI_E_UNKNOWN_RECIPIENT: + sErrorMsg = _T("unknown recipient"); + break; + case MAPI_E_BAD_RECIPTYPE: + sErrorMsg = _T("unknown reciptype"); + break; + case MAPI_E_NO_MESSAGES: + sErrorMsg = _T("no messages"); + break; + case MAPI_E_INVALID_MESSAGE: + sErrorMsg = _T("invalid message"); + break; + case MAPI_E_TEXT_TOO_LARGE: + sErrorMsg = _T("text too large"); + break; + case MAPI_E_INVALID_SESSION: + sErrorMsg = _T("invalid session"); + break; + case MAPI_E_TYPE_NOT_SUPPORTED: + sErrorMsg = _T("type not supported"); + break; + case MAPI_E_AMBIG_RECIP: + sErrorMsg = _T("ambiguous recipiebt"); + break; + case MAPI_E_MESSAGE_IN_USE: + sErrorMsg = _T("message in use"); + break; + case MAPI_E_NETWORK_FAILURE: + sErrorMsg = _T("network failure"); + break; + case MAPI_E_INVALID_EDITFIELDS: + sErrorMsg = _T("invalid editfields"); + break; + case MAPI_E_INVALID_RECIPS: + sErrorMsg = _T("invalid recipients"); + break; + case MAPI_E_NOT_SUPPORTED: + sErrorMsg = _T("not supported request"); + break; + default: + sErrorMsg = _T("unknown error"); + break; + } + + return sErrorMsg; +} + +BOOL CSendMail::Initialize(CString sProfileName, CString sPassword) +{ + ASSERT_VALID(this); + HRESULT hResult; + + if (IsInitialized()) + Uninitialize(); + + // Initialize the MAPI libraries before calling ANY MAPI function + MAPIINIT_0 MAPIINIT = { 0, MAPI_NT_SERVICE | MAPI_MULTITHREAD_NOTIFICATIONS }; + hResult = MAPIInitialize(&MAPIINIT); + if (!FAILED (hResult)) + { + // Logon onto the message subsystem. We are going to ask the user to + // select a profile to log into. The UI for this will be provided by MAPI. + hResult = MAPILogonEx((ULONG)NULL, + sProfileName.GetBuffer(256), + sPassword.GetBuffer(256), + MAPI_NO_MAIL | MAPI_EXTENDED | MAPI_EXPLICIT_PROFILE /*| MAPI_USE_DEFAULT */| MAPI_NEW_SESSION, + &m_pMAPISession); + + sProfileName.ReleaseBuffer(); + sPassword.ReleaseBuffer(); + + if (!FAILED (hResult)) + { + // get the address book + // be sure to have the correct address book set as the default + // see the Addressing tab in the profile config control panel applet + hResult = m_pMAPISession->OpenAddressBook(NULL, NULL, 0, &m_pAddressBook); + if (!FAILED(hResult)) + { + if (InitializeMessageStore()) + { + // get the root folder + ULONG uObjType; + hResult = m_pDefaultMDB->OpenEntry(0, + NULL, + (LPIID)&IID_IMAPIFolder, + MAPI_MODIFY, + &uObjType, + (LPUNKNOWN *)&m_pRootFolder); + + if (!FAILED(hResult)) + { + m_sMAPIProfile = sProfileName; + return TRUE; + } + } + } + } + Uninitialize(); + } + else + MAPIUninitialize(); + return FALSE; +} + +BOOL CSendMail::IsInitialized() const +{ + return (m_pMAPISession!=NULL); +} + +void CSendMail::Uninitialize() +{ + if (m_pRootFolder != NULL) + { + m_pRootFolder->Release(); + m_pRootFolder = NULL; + } + + if (m_pDefaultMDB != NULL) + { + m_pDefaultMDB->StoreLogoff(&m_uLogoffFlags); + m_pDefaultMDB->Release(); + m_pDefaultMDB = NULL; + } + + if (m_peidDefaultMDB != NULL) + { + MAPIFreeBuffer(m_peidDefaultMDB); + m_peidDefaultMDB = NULL; + } + + if (m_pAddressBook != NULL) + { + m_pAddressBook->Release(); + m_pAddressBook = NULL; + } + + if (m_pMAPISession!=NULL) + { + ULONG ulUIParam = (ULONG)NULL; // null window handle + ULONG ulFlags = 0; + ULONG ulReserved = 0; + + m_pMAPISession->Logoff(ulUIParam, ulFlags, ulReserved); + m_pMAPISession->Release(); + m_pMAPISession = NULL; + MAPIUninitialize(); + } +} + +CString CSendMail::GetProfile() const +{ + CString sProfile; + + if (IsInitialized()) + sProfile = m_sMAPIProfile; + return sProfile; +} + +BOOL CSendMail::InitializeMessageStore() +{ + LPSRowSet pRow = NULL; + ULONG ulRow; + ULONG uRowCount; + HRESULT hResult; + LPMAPITABLE pStoresTable; + LPSPropValue pProps; + BOOL bFound; + + +// The order for this enumaration must match the order of the properties +// in the tag array below + enum + { + DEFAULT_STORE, + STORE_EID, + MSG_STORES_TABLE_PROPS // number columns in the proptagarray + }; + + SizedSPropTagArray (MSG_STORES_TABLE_PROPS, sptMsgStores) = + { + MSG_STORES_TABLE_PROPS, + { + PR_DEFAULT_STORE, + PR_ENTRYID, + } + }; + +///// end of local declarations + + m_cbeidDefaultMDB = 0; + m_peidDefaultMDB = NULL; + + +// first get a table of the message stores available + hResult = m_pMAPISession->GetMsgStoresTable (0, &pStoresTable); + if (FAILED(hResult)) + return FALSE; + + +// we only want the default store flag and the entry id + hResult = pStoresTable->SetColumns((LPSPropTagArray)&sptMsgStores, 0); + if (FAILED(hResult)) + return FALSE; + + pStoresTable->GetRowCount(0, &uRowCount); // one row corresponds to one MDB provider +// typically no one should have more than +// 6 or 7 MDB providers. + +// Get row(s) from the message stores table + hResult = pStoresTable->QueryRows(uRowCount, 0, &pRow); + if (FAILED(hResult)) + return FALSE; + + bFound = FALSE; +// loop through each row -- each row represents the properties of a message store + for (ulRow=0; ulRowcRows; ulRow++) + { + pProps = pRow->aRow[ulRow].lpProps; + + if (pProps[DEFAULT_STORE].Value.b == 1) // we found it! + { + + m_cbeidDefaultMDB = pProps[STORE_EID].Value.bin.cb; + hResult = MAPIAllocateBuffer(m_cbeidDefaultMDB, (LPVOID *)&m_peidDefaultMDB); + if (FAILED(hResult)) + return FALSE; + + memcpy(m_peidDefaultMDB, pProps[STORE_EID].Value.bin.lpb, m_cbeidDefaultMDB); + + bFound = TRUE; + } +/// else ignore the non-defaults + } + + if (bFound) + hResult = S_OK; + else + hResult = MAPI_E_NOT_FOUND; + + + +// clean up if neccessary + if (pRow != NULL) + FreeProws(pRow); + + if (pStoresTable != NULL) + pStoresTable->Release(); + + + if (FAILED(hResult)) // there was an error + return FALSE; + +// open the default message store + m_pDefaultMDB = NULL; + hResult = m_pMAPISession->OpenMsgStore ((ULONG)NULL, + m_cbeidDefaultMDB, + m_peidDefaultMDB, + NULL, + MDB_WRITE, + &m_pDefaultMDB); + if (FAILED(hResult)) + return FALSE; + + return TRUE; +} + +BOOL CSendMail::SendMapiMail(CString sTo, CString sSubject, CString sDescription, CString sAtt) +{ + LPMESSAGE pMessage; + HRESULT hResult; + + pMessage = ComposeMessage(sTo, + sSubject, + sDescription, + sAtt); + if (pMessage == NULL) + return FALSE; + + hResult = pMessage->SubmitMessage(FORCE_SUBMIT); + + if (pMessage != NULL) + pMessage->Release(); + + if (FAILED(hResult)) + return FALSE; + return TRUE; +} + + +//************************************************************* + + +LPMESSAGE CSendMail::ComposeMessage(LPCTSTR szRecipient, + LPCTSTR szSubject, + LPCTSTR szDescription, + LPCTSTR szAtt) +{ + HRESULT hrRet = 0; + LPMESSAGE pMessage = NULL; + SPropValue pMessageProps[5]; + LPADRLIST pAddressList = NULL; + LPSPropProblemArray pPropProblems; + + // create the message + hrRet = m_pRootFolder->CreateMessage(NULL, 0, &pMessage); + if (FAILED(hrRet)) + return NULL; + + // setup the properties + pMessageProps[0].ulPropTag = PR_MESSAGE_CLASS; + pMessageProps[0].Value.lpszA = "IPM.NOTE"; + + pMessageProps[1].ulPropTag = PR_PRIORITY; + pMessageProps[1].Value.l = 0; + + pMessageProps[2].ulPropTag = PR_SUBJECT; + pMessageProps[2].Value.lpszA = (LPTSTR) szSubject; + + pMessageProps[3].ulPropTag = PR_BODY; + pMessageProps[3].Value.lpszA = (LPTSTR) szDescription; + + // set the message submission time + SYSTEMTIME tSysTime; + FILETIME tSubmitTime; + GetSystemTime(&tSysTime); + SystemTimeToFileTime(&tSysTime, &tSubmitTime); // convert to file time + + pMessageProps[4].ulPropTag = PR_CLIENT_SUBMIT_TIME; + pMessageProps[4].Value.ft = tSubmitTime; + + + // build the recipients list + pAddressList = GetRecipient(szRecipient); + if (pAddressList) + { + // set the properties + hrRet = pMessage->SetProps(5, pMessageProps, &pPropProblems); + if (!FAILED(hrRet)) + { + // set the recipients to the message + hrRet = pMessage->ModifyRecipients(MODRECIP_ADD, pAddressList); + if (!FAILED(hrRet)) + { + // Create the attachment + AddAttachments(pMessage, szAtt); + hrRet = pMessage->SaveChanges(KEEP_OPEN_READWRITE); + } + } + + // GetRecipient allocates memory pointed to by pAddressList. + // use MAPIFreeBuffer to free memory after using it + // for modifying the recipients + MAPIFreeBuffer(pAddressList); + + if (!FAILED(hrRet)) + return pMessage; + } + + if (pMessage != NULL) + pMessage->Release(); + + return NULL; +} + + +LPADRLIST CSendMail::GetRecipient(LPCTSTR szRecipient) +{ + HRESULT hrRet; + LPADRLIST pAddressList; + +// allocate address list for one recipient + MAPIAllocateBuffer(sizeof(ADRLIST) + sizeof(ADRENTRY) * 1, + (LPVOID *) &pAddressList); +// allocate space for properties + MAPIAllocateBuffer(sizeof(SPropValue) * 2, + (LPVOID *) &(pAddressList->aEntries[0].rgPropVals) ); + +// set properties for address list + pAddressList->cEntries = 1; + pAddressList->aEntries[0].cValues = 2; + pAddressList->aEntries[0].rgPropVals[0].ulPropTag = PR_DISPLAY_NAME; + pAddressList->aEntries[0].rgPropVals[0].Value.lpszA = (LPTSTR) szRecipient; + pAddressList->aEntries[0].rgPropVals[1].ulPropTag = PR_RECIPIENT_TYPE; + pAddressList->aEntries[0].rgPropVals[1].Value.l = MAPI_TO; + + +// resolve the address + hrRet = m_pAddressBook->ResolveName(0, 0, NULL, pAddressList); + if (FAILED(hrRet)) + { + MAPIFreeBuffer(pAddressList); + pAddressList = NULL; + } + + return pAddressList; +} + +HRESULT CSendMail::AddAttachments(LPMESSAGE pMessage, LPCTSTR szAttachData) +{ + HRESULT hrRet; + UINT idx; + LPSTR szAttachment; + +// if there are no attachments, just return + if (szAttachData == NULL || _tcslen(szAttachData) == 0) + return 0; + + enum { REND_POS, PATH_NAME, ATT_METHOD, DISP_NAME, ATT_FILENAME, ATT_DIM}; + + SizedSPropTagArray(ATT_DIM , sptAttachTags) = + { ATT_DIM, + { PR_RENDERING_POSITION, PR_ATTACH_PATHNAME, + PR_ATTACH_METHOD, PR_DISPLAY_NAME, PR_ATTACH_FILENAME } + }; + SPropValue spvAttachProps[ATT_DIM]; + + +// Count the number of attachments in the AttachmentData + CString sAttachment; + int nIndex = 0; + if (!AfxExtractSubString(sAttachment, szAttachData, nIndex++, _T('|'))) + return 0; + while (!sAttachment.IsEmpty()) + { + + LPATTACH lpAttach = NULL; + ULONG ulAttachNum = 0; + szAttachment = sAttachment.GetBuffer(_MAX_PATH); + + hrRet = pMessage->CreateAttach(NULL, 0, &ulAttachNum, &lpAttach); + if (FAILED(hrRet)) + return hrRet; + + for(idx = 0; idx < ATT_DIM; ++idx) + { + spvAttachProps[idx].ulPropTag = sptAttachTags.aulPropTag[idx]; + spvAttachProps[idx].dwAlignPad = 0; + } + + +// Split the path of the attachment, so we can extract the filename +// to display under the attachment + TCHAR pszDrive[_MAX_DRIVE]; + TCHAR pszSubdir[_MAX_DIR]; + TCHAR pszBaseName[_MAX_FNAME]; + TCHAR pszExtender[_MAX_EXT]; + TCHAR pszFileName[_MAX_FNAME + _MAX_EXT]; + + _tsplitpath(szAttachment, pszDrive, pszSubdir, pszBaseName, pszExtender); + _tmakepath(pszFileName, NULL, NULL, pszBaseName, pszExtender); + + spvAttachProps[REND_POS].Value.l = -1; + spvAttachProps[PATH_NAME].Value.LPSZ = szAttachment; +/* + ATTACH_BY_REF_RESOLVE means the spooler will resolve the attachment into ATTACH_BY_VALUE + and place the attachment data in PR_ATTACH_DATA_BIN + */ + spvAttachProps[ATT_METHOD].Value.l = ATTACH_BY_REF_RESOLVE; + spvAttachProps[DISP_NAME].Value.LPSZ = pszFileName; + spvAttachProps[ATT_FILENAME].Value.LPSZ = pszFileName; + + hrRet = lpAttach->SetProps(ATT_DIM, spvAttachProps, NULL); + if (FAILED(hrRet)) + return hrRet; + + hrRet = lpAttach->SaveChanges(KEEP_OPEN_READWRITE); + if (FAILED(hrRet)) + return hrRet; + + sAttachment.ReleaseBuffer(); + szAttachment = NULL; + UlRelease(lpAttach); + + sAttachment.Empty(); + AfxExtractSubString(sAttachment, szAttachData, nIndex++, _T('|')); + } + + return hrRet; +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/SendMail.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/SendMail.h new file mode 100644 index 0000000..ce6641b --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/SendMail.h @@ -0,0 +1,90 @@ +// ========================================================================== +// Class Specification : CSendMail +// ========================================================================== + +// Header file : SendMail.h + +//----------------- Dundas Software ---------------------------------------- +//======================================================================== + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// YES Derived from CObject + +// NO Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// NO Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Desciption : +// +// + +// Remark: +// *** +// Prerequisites (necessary conditions): +// *** + +///////////////////////////////////////////////////////////////////////////// + +#ifndef __SENDMAIL_H__ +#define __SENDMAIL_H__ + +#include + +class CSendMail : public CObject +{ +protected: + + LPMAPISESSION m_pMAPISession; + LPADRBOOK m_pAddressBook; + LPENTRYID m_peidDefaultMDB; + ULONG m_cbeidDefaultMDB; + LPMDB m_pDefaultMDB; + LPMAPIFOLDER m_pRootFolder; + LPSTR m_szRecipient; + ULONG m_uLogoffFlags; + LPSTR m_szAttachData; + CString m_sMAPIProfile; + +public: + CSendMail(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Contructor of object + // It will initialize the internal state + + ~CSendMail(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of object + + + BOOL Initialize(CString sProfileName, CString sPassword = NULL); + BOOL IsInitialized() const; + void Uninitialize(); + CString GetProfile() const; + BOOL SendMapiMail(CString sTo, CString sSubject, CString sDescription, CString sAtt); + +protected: + CString GetReturnMsg(int nErr); + BOOL InitializeMessageStore(); + + + LPMESSAGE ComposeMessage(LPCTSTR szRecipient, LPCTSTR szSubject, LPCTSTR szDescription, LPCTSTR szAtt); + LPADRLIST GetRecipient(LPCTSTR szRecipient); + HRESULT AddAttachments(LPMESSAGE pMessage, LPCTSTR szAttachData); +}; + +#endif // __MAILTO_H__ +// ========================================================================== + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/StdAfx.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/StdAfx.cpp new file mode 100644 index 0000000..be1f304 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/StdAfx.cpp @@ -0,0 +1,6 @@ +// stdafx.cpp : source file that includes just the standard includes +// MailSend.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/StdAfx.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/StdAfx.h new file mode 100644 index 0000000..76b955a --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/StdAfx.h @@ -0,0 +1,18 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers + +#include // MFC core and standard components +#include // MFC extensions +#include // MFC OLE automation classes +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for Windows 95 Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for standard templates + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/cgitooledrv.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/cgitooledrv.cpp new file mode 100644 index 0000000..aa19718 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/cgitooledrv.cpp @@ -0,0 +1,102 @@ +// Machine generated IDispatch wrapper class(es) created with ClassWizard + +#include "stdafx.h" +#include "cgitooledrv.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + + + +///////////////////////////////////////////////////////////////////////////// +// CCgiDispatchDrv properties + +///////////////////////////////////////////////////////////////////////////// +// CCgiDispatchDrv operations + +void CCgiDispatchDrv::SetOutput(LPCTSTR sOutput) +{ + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x1, DISPATCH_METHOD, VT_EMPTY, NULL, parms, + sOutput); +} + +CString CCgiDispatchDrv::GetInput(const VARIANT& vIndex) +{ + CString result; + static BYTE parms[] = + VTS_VARIANT; + InvokeHelper(0x2, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, + &vIndex); + return result; +} + +CString CCgiDispatchDrv::GetPathInfo() +{ + CString result; + InvokeHelper(0x3, DISPATCH_METHOD, VT_BSTR, (void*)&result, NULL); + return result; +} + +CString CCgiDispatchDrv::GetScriptName() +{ + CString result; + InvokeHelper(0x4, DISPATCH_METHOD, VT_BSTR, (void*)&result, NULL); + return result; +} + +CString CCgiDispatchDrv::GetAccepted() +{ + CString result; + InvokeHelper(0x5, DISPATCH_METHOD, VT_BSTR, (void*)&result, NULL); + return result; +} + +CString CCgiDispatchDrv::GetRemoteAddress() +{ + CString result; + InvokeHelper(0x6, DISPATCH_METHOD, VT_BSTR, (void*)&result, NULL); + return result; +} + +CString CCgiDispatchDrv::GetClientInfo(LPCTSTR sInfoKey) +{ + CString result; + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x7, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, + sInfoKey); + return result; +} + +CString CCgiDispatchDrv::GetServerName() +{ + CString result; + InvokeHelper(0x8, DISPATCH_METHOD, VT_BSTR, (void*)&result, NULL); + return result; +} + +short CCgiDispatchDrv::GetServerPort() +{ + short result; + InvokeHelper(0x9, DISPATCH_METHOD, VT_I2, (void*)&result, NULL); + return result; +} + +CString CCgiDispatchDrv::GetServerProtocol() +{ + CString result; + InvokeHelper(0xa, DISPATCH_METHOD, VT_BSTR, (void*)&result, NULL); + return result; +} + +CString CCgiDispatchDrv::GetServerSoftware() +{ + CString result; + InvokeHelper(0xb, DISPATCH_METHOD, VT_BSTR, (void*)&result, NULL); + return result; +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/cgitooledrv.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/cgitooledrv.h new file mode 100644 index 0000000..4de045e --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/cgitooledrv.h @@ -0,0 +1,28 @@ +// Machine generated IDispatch wrapper class(es) created with ClassWizard +///////////////////////////////////////////////////////////////////////////// +// CCgiDispatchDrv wrapper class + +class CCgiDispatchDrv : public COleDispatchDriver +{ +public: + CCgiDispatchDrv() {} // Calls COleDispatchDriver default constructor + CCgiDispatchDrv(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + CCgiDispatchDrv(const CCgiDispatchDrv& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + +// Attributes +public: + +// Operations +public: + void SetOutput(LPCTSTR sOutput); + CString GetInput(const VARIANT& vIndex); + CString GetPathInfo(); + CString GetScriptName(); + CString GetAccepted(); + CString GetRemoteAddress(); + CString GetClientInfo(LPCTSTR sInfoKey); + CString GetServerName(); + short GetServerPort(); + CString GetServerProtocol(); + CString GetServerSoftware(); +}; diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/res/MailSend.ico b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/res/MailSend.ico new file mode 100644 index 0000000000000000000000000000000000000000..7eef0bcbe6580a6f464d688906172c2d9de44262 GIT binary patch literal 1078 zcmc&zF>b>!3}jLb9s)T}@Kod(893@u8ajANzT`op9^o+)S?=nU(FD@%0s)Sg^oyC8{H z9myetc;MEP)59v(LMa~xK8Yu^jIR*H22uCFiq5%C{s7(PJi>o15i^bmX4(vPxWAio z9ryY#AU_jfnd047-@`)XzL?%iS$gQyFP{44kS9X)fN{{QoL~hO-&=q&20Zr*cxFAt PkaNE{wR~2C$NfnjhSXWT literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/res/MailSend.rc2 b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/res/MailSend.rc2 new file mode 100644 index 0000000..15ac259 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/res/MailSend.rc2 @@ -0,0 +1,13 @@ +// +// MAILSEND.RC2 - resources Microsoft Visual C++ does not edit directly +// + +#ifdef APSTUDIO_INVOKED + #error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// Add manually edited resources here... + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/resource.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/resource.h new file mode 100644 index 0000000..f5f0ef2 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/MailSend/resource.h @@ -0,0 +1,31 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by MailSend.rc +// +#define IDM_ABOUTBOX 0x0010 +#define IDD_ABOUTBOX 100 +#define IDP_OLE_INIT_FAILED 100 +#define IDS_ABOUTBOX 101 +#define IDD_MAILSEND_DIALOG 102 +#define IDR_MAINFRAME 128 +#define IDC_SEND_MAIL 1002 +#define IDC_ABOUT 1003 +#define IDC_PROFILE 1004 +#define IDC_PASSWORD 1005 +#define IDC_ADDRESS 1006 +#define IDC_SUBJECT 1007 +#define IDC_LIST_ATTACHMENTS 1008 +#define IDC_CONTENT 1009 +#define IDC_BUTTON_ADDATTACHMENT 1010 +#define IDC_BUTTON_REMOVEATTACHMENT 1011 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 130 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 1011 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/ChildFrm.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/ChildFrm.cpp new file mode 100644 index 0000000..bfa623a --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/ChildFrm.cpp @@ -0,0 +1,65 @@ +// ChildFrm.cpp : implementation of the CChildFrame class +// + +#include "stdafx.h" +#include "Preview.h" + +#include "ChildFrm.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame + +IMPLEMENT_DYNCREATE(CChildFrame, CMDIChildWnd) + +BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWnd) + //{{AFX_MSG_MAP(CChildFrame) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame construction/destruction + +CChildFrame::CChildFrame() +{ + // TODO: add member initialization code here + +} + +CChildFrame::~CChildFrame() +{ +} + +BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs) +{ + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + return CMDIChildWnd::PreCreateWindow(cs); +} + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame diagnostics + +#ifdef _DEBUG +void CChildFrame::AssertValid() const +{ + CMDIChildWnd::AssertValid(); +} + +void CChildFrame::Dump(CDumpContext& dc) const +{ + CMDIChildWnd::Dump(dc); +} + +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame message handlers diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/ChildFrm.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/ChildFrm.h new file mode 100644 index 0000000..089fffc --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/ChildFrm.h @@ -0,0 +1,40 @@ +// ChildFrm.h : interface of the CChildFrame class +// +///////////////////////////////////////////////////////////////////////////// + +class CChildFrame : public CMDIChildWnd +{ + DECLARE_DYNCREATE(CChildFrame) +public: + CChildFrame(); + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CChildFrame) + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CChildFrame(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +// Generated message map functions +protected: + //{{AFX_MSG(CChildFrame) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/MainFrm.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/MainFrm.cpp new file mode 100644 index 0000000..be1919f --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/MainFrm.cpp @@ -0,0 +1,91 @@ +// MainFrm.cpp : implementation of the CMainFrame class +// + +#include "stdafx.h" +#include "Preview.h" + +#include "MainFrm.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame + +IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWnd) + +BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd) + //{{AFX_MSG_MAP(CMainFrame) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code ! + ON_WM_CREATE() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +static UINT indicators[] = +{ + ID_SEPARATOR, // status line indicator + ID_INDICATOR_CAPS, + ID_INDICATOR_NUM, + ID_INDICATOR_SCRL, +}; + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame construction/destruction + +CMainFrame::CMainFrame() +{ + // TODO: add member initialization code here + +} + +CMainFrame::~CMainFrame() +{ +} + +int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) +{ + if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1) + return -1; + + + if (!m_wndStatusBar.Create(this) || + !m_wndStatusBar.SetIndicators(indicators, + sizeof(indicators)/sizeof(UINT))) + { + TRACE0("Failed to create status bar\n"); + return -1; // fail to create + } + + return 0; +} + +BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) +{ + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + return CMDIFrameWnd::PreCreateWindow(cs); +} + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame diagnostics + +#ifdef _DEBUG +void CMainFrame::AssertValid() const +{ + CMDIFrameWnd::AssertValid(); +} + +void CMainFrame::Dump(CDumpContext& dc) const +{ + CMDIFrameWnd::Dump(dc); +} + +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame message handlers diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/MainFrm.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/MainFrm.h new file mode 100644 index 0000000..3b6ba60 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/MainFrm.h @@ -0,0 +1,44 @@ +// MainFrm.h : interface of the CMainFrame class +// +///////////////////////////////////////////////////////////////////////////// + +class CMainFrame : public CMDIFrameWnd +{ + DECLARE_DYNAMIC(CMainFrame) +public: + CMainFrame(); + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CMainFrame) + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CMainFrame(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: // control bar embedded members + CStatusBar m_wndStatusBar; + +// Generated message map functions +protected: + //{{AFX_MSG(CMainFrame) + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/OXDocMgr.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/OXDocMgr.cpp new file mode 100644 index 0000000..8a5c6e8 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/OXDocMgr.cpp @@ -0,0 +1,113 @@ +#include "stdafx.h" +#include "OXDocMgr.h" +#include "OXWinApp.h" +#include "OXPrvDlg.h" + +IMPLEMENT_DYNAMIC(COXDocManager, CDocManager) + +static void AppendFilterSuffix(CString& filter, OPENFILENAME& ofn, + CDocTemplate* pTemplate, CString* pstrDefaultExt) +{ + ASSERT_VALID(pTemplate); + ASSERT_KINDOF(CDocTemplate, pTemplate); + + CString strFilterExt, strFilterName; + if (pTemplate->GetDocString(strFilterExt, CDocTemplate::filterExt) && + !strFilterExt.IsEmpty() && + pTemplate->GetDocString(strFilterName, CDocTemplate::filterName) && + !strFilterName.IsEmpty()) + { + // a file based document template - add to filter list +#ifndef _MAC + ASSERT(strFilterExt[0] == '.'); +#endif + if (pstrDefaultExt != NULL) + { + // set the default extension +#ifndef _MAC + *pstrDefaultExt = ((LPCTSTR)strFilterExt) + 1; // skip the '.' +#else + *pstrDefaultExt = strFilterExt; +#endif + ofn.lpstrDefExt = (LPTSTR)(LPCTSTR)(*pstrDefaultExt); + ofn.nFilterIndex = ofn.nMaxCustFilter + 1; // 1 based number + } + + // add to filter + filter += strFilterName; + ASSERT(!filter.IsEmpty()); // must have a file type name + filter += (TCHAR)'\0'; // next string please +#ifndef _MAC + filter += (TCHAR)'*'; +#endif + filter += strFilterExt; + filter += (TCHAR)'\0'; // next string please + ofn.nMaxCustFilter++; + } +} + +COXDocManager::COXDocManager() +{ +} + +BOOL COXDocManager::DoPromptFileName(CString& fileName, UINT nIDSTitle, + DWORD lFlags, BOOL bOpenFileDialog, CDocTemplate* pTemplate) +{ + ASSERT(AfxGetApp()->IsKindOf(RUNTIME_CLASS(COXWinApp))); + + CFileDialog* pDlgFile = ((COXWinApp*) AfxGetApp())->NewFileDialog(bOpenFileDialog); + + CString title; + VERIFY(title.LoadString(nIDSTitle)); + + pDlgFile->m_ofn.Flags |= lFlags; + + CString strFilter; + CString strDefault; + if (pTemplate != NULL) + { + ASSERT_VALID(pTemplate); + AppendFilterSuffix(strFilter, pDlgFile->m_ofn, pTemplate, &strDefault); + } + else + { + // do for all doc template + POSITION pos = m_templateList.GetHeadPosition(); + BOOL bFirst = TRUE; + while (pos != NULL) + { + CDocTemplate* pTemplate = (CDocTemplate*)m_templateList.GetNext(pos); + AppendFilterSuffix(strFilter, pDlgFile->m_ofn, pTemplate, + bFirst ? &strDefault : NULL); + bFirst = FALSE; + } + } + + // append the "*.*" all files filter + CString allFilter; + VERIFY(allFilter.LoadString(AFX_IDS_ALLFILTER)); + strFilter += allFilter; + strFilter += (TCHAR)'\0'; // next string please +#ifndef _MAC + strFilter += _T("*.*"); +#else + strFilter += _T("****"); +#endif + strFilter += (TCHAR)'\0'; // last string + pDlgFile->m_ofn.nMaxCustFilter++; + + pDlgFile->m_ofn.lpstrFilter = strFilter; +#ifndef _MAC + pDlgFile->m_ofn.lpstrTitle = title; +#else + pDlgFile->m_ofn.lpstrPrompt = title; +#endif + pDlgFile->m_ofn.lpstrFile = fileName.GetBuffer(_MAX_PATH); + + BOOL bResult = pDlgFile->DoModal() == IDOK ? TRUE : FALSE; + fileName.ReleaseBuffer(); + + delete pDlgFile; + + return bResult; +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/OXDocMgr.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/OXDocMgr.h new file mode 100644 index 0000000..4ea50fa --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/OXDocMgr.h @@ -0,0 +1,11 @@ +class COXDocManager : public CDocManager +{ + DECLARE_DYNAMIC(COXDocManager) +public: + + COXDocManager(); + + // helper for standard commdlg dialogs + virtual BOOL DoPromptFileName(CString& fileName, UINT nIDSTitle, + DWORD lFlags, BOOL bOpenFileDialog, CDocTemplate* pTemplate); +}; \ No newline at end of file diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/OXWinApp.H b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/OXWinApp.H new file mode 100644 index 0000000..cdaa523 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/OXWinApp.H @@ -0,0 +1,36 @@ + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + + +///////////////////////////////////////////////////////////////////////////// +// COXWinApp: +// +// + +class COXWinApp : public CWinApp +{ +DECLARE_DYNAMIC(COXWinApp) +// Data Members +public: + +protected: + +private: + +// Member Functions +public: + COXWinApp(); + void AddDocTemplate(CDocTemplate* pTemplate); + virtual CFileDialog* NewFileDialog(BOOL bOpenFileDialog); + +protected: + +private: + + +}; + + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/OXWinApp.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/OXWinApp.cpp new file mode 100644 index 0000000..3eeb302 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/OXWinApp.cpp @@ -0,0 +1,36 @@ +#include "stdafx.h" +#include "OXWinApp.h" +#include "OXDocMgr.h" +#include "OXPrvDlg.h" + +#ifdef _DEBUG +#undef THIS_FILE +static char BASED_CODE THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// COXWinApp + + +IMPLEMENT_DYNAMIC(COXWinApp, CWinApp) + +///////////////////////////////////////////////////////////////////////////// +// COXWinApp construction + +COXWinApp::COXWinApp() +{ +} + +void COXWinApp::AddDocTemplate(CDocTemplate* pTemplate) +{ + if (m_pDocManager == NULL) + m_pDocManager = new COXDocManager; + m_pDocManager->AddDocTemplate(pTemplate); +} + +CFileDialog* COXWinApp::NewFileDialog(BOOL bOpenFileDialog) +{ + return new CFileDialog(bOpenFileDialog); +} + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.001 b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.001 new file mode 100644 index 0000000..4210aef --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.001 @@ -0,0 +1,338 @@ +# Microsoft Developer Studio Project File - Name="Preview" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 5.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=Preview - Win32 Unicode_Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "Preview.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "Preview.mak" CFG="Preview - Win32 Unicode_Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "Preview - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "Preview - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE "Preview - Win32 Release_Shared" (based on "Win32 (x86) Application") +!MESSAGE "Preview - Win32 Unicode_Debug" (based on "Win32 (x86) Application") +!MESSAGE "Preview - Win32 Unicode_Release" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP Scc_ProjName ""$/Ultimate Toolbox MFC/Working/Code/Samples/graphics/preview", TEMAAAAA" +# PROP Scc_LocalPath "." +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "Preview - Win32 Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir ".\Release" +# PROP BASE Intermediate_Dir ".\Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir ".\Release" +# PROP Intermediate_Dir ".\Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "NOT_REGISTERED" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"Preview.exe" + +!ELSEIF "$(CFG)" == "Preview - Win32 Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir ".\Preview_" +# PROP BASE Intermediate_Dir ".\Preview_" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir ".\Preview_" +# PROP Intermediate_Dir ".\Preview_" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /Zi /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /D "NOT_REGISTERED" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 +# ADD LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"Preview.exe" + +!ELSEIF "$(CFG)" == "Preview - Win32 Release_Shared" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Preview_" +# PROP BASE Intermediate_Dir "Preview_" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release_Shared" +# PROP Intermediate_Dir "Release_Shared" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "NOT_REGISTERED" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "NOT_REGISTERED" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /out:"Preview.exe" +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"Preview.exe" + +!ELSEIF "$(CFG)" == "Preview - Win32 Unicode_Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Preview0" +# PROP BASE Intermediate_Dir "Preview0" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Unicode_Debug" +# PROP Intermediate_Dir "Unicode_Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W4 /Gm /GX /Zi /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /D "NOT_REGISTERED" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /Zi /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /D "NOT_REGISTERED" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"Preview.exe" +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /debug /machine:I386 /out:"Preview.exe" + +!ELSEIF "$(CFG)" == "Preview - Win32 Unicode_Release" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Preview1" +# PROP BASE Intermediate_Dir "Preview1" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Unicode_Release" +# PROP Intermediate_Dir "Unicode_Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "NOT_REGISTERED" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "NOT_REGISTERED" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /out:"Preview.exe" +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /machine:I386 /out:"Preview.exe" + +!ENDIF + +# Begin Target + +# Name "Preview - Win32 Release" +# Name "Preview - Win32 Debug" +# Name "Preview - Win32 Release_Shared" +# Name "Preview - Win32 Unicode_Debug" +# Name "Preview - Win32 Unicode_Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90" +# Begin Group "UTSource" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\Source\Dir.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\Dirlist.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\File.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\Filelist.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXBmpPrv.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\Oxdib.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXPrvDlg.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\Path.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\Pathiter.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\UTSampleAbout\UTSampleAbout.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\Xstring.cpp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ChildFrm.cpp +# End Source File +# Begin Source File + +SOURCE=.\MainFrm.cpp +# End Source File +# Begin Source File + +SOURCE=.\OXDocMgr.cpp +# End Source File +# Begin Source File + +SOURCE=.\OXWinApp.CPP +# End Source File +# Begin Source File + +SOURCE=.\Preview.cpp +# End Source File +# Begin Source File + +SOURCE=.\Preview.rc +# End Source File +# Begin Source File + +SOURCE=.\PreviewDoc.cpp +# End Source File +# Begin Source File + +SOURCE=.\PreviewView.cpp +# End Source File +# Begin Source File + +SOURCE=.\ReadMe.txt +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd" +# Begin Source File + +SOURCE=.\ChildFrm.h +# End Source File +# Begin Source File + +SOURCE=.\MainFrm.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXBmpPrv.h +# End Source File +# Begin Source File + +SOURCE=.\OXDocMgr.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXPrvDlg.h +# End Source File +# Begin Source File + +SOURCE=.\OXWinApp.H +# End Source File +# Begin Source File + +SOURCE=.\Preview.h +# End Source File +# Begin Source File + +SOURCE=.\PreviewDoc.h +# End Source File +# Begin Source File + +SOURCE=.\PreviewView.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\res\Preview.ico +# End Source File +# Begin Source File + +SOURCE=.\res\Preview.rc2 +# End Source File +# Begin Source File + +SOURCE=.\res\PreviewDoc.ico +# End Source File +# Begin Source File + +SOURCE=.\test.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\Toolbar.bmp +# End Source File +# End Group +# End Target +# End Project diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.clw b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.clw new file mode 100644 index 0000000..ebe3d03 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.clw @@ -0,0 +1,95 @@ +; CLW file contains information for the MFC ClassWizard + +[General Info] +Version=1 +LastClass=CPreviewApp +LastTemplate=CDialog +NewFileInclude1=#include "stdafx.h" +NewFileInclude2=#include "preview.h" +LastPage=0 + +ClassCount=5 +Class1=CChildFrame +Class2=CMainFrame +Class3=CPreviewApp +Class4=CPreviewDoc +Class5=CMyPreviewView + +ResourceCount=2 +Resource1=IDR_MAINFRAME +Resource2=IDR_PREVTYPE + +[CLS:CChildFrame] +Type=0 +BaseClass=CMDIChildWnd +HeaderFile=ChildFrm.h +ImplementationFile=ChildFrm.cpp +LastObject=CChildFrame + +[CLS:CMainFrame] +Type=0 +BaseClass=CMDIFrameWnd +HeaderFile=MainFrm.h +ImplementationFile=MainFrm.cpp + +[CLS:CPreviewApp] +Type=0 +BaseClass=COXWinApp +HeaderFile=Preview.h +ImplementationFile=Preview.cpp +Filter=N +VirtualFilter=AC +LastObject=CPreviewApp + +[CLS:CPreviewDoc] +Type=0 +BaseClass=CDocument +HeaderFile=PreviewDoc.h +ImplementationFile=PreviewDoc.cpp + +[CLS:CMyPreviewView] +Type=0 +BaseClass=CView +HeaderFile=PreviewView.h +ImplementationFile=PreviewView.cpp + +[MNU:IDR_MAINFRAME] +Type=1 +Class=? +Command1=ID_FILE_NEW +Command2=ID_FILE_OPEN +Command3=ID_APP_EXIT +Command4=ID_VIEW_STATUS_BAR +Command5=ID_APP_ABOUT +CommandCount=5 + +[MNU:IDR_PREVTYPE] +Type=1 +Class=? +Command1=ID_FILE_NEW +Command2=ID_FILE_OPEN +Command3=ID_FILE_CLOSE +Command4=ID_APP_EXIT +Command5=ID_VIEW_STATUS_BAR +Command6=ID_APP_ABOUT +CommandCount=6 + +[ACL:IDR_MAINFRAME] +Type=1 +Class=? +Command1=ID_FILE_NEW +Command2=ID_FILE_OPEN +Command3=ID_FILE_SAVE +Command4=ID_FILE_PRINT +Command5=ID_EDIT_UNDO +Command6=ID_EDIT_CUT +Command7=ID_EDIT_COPY +Command8=ID_EDIT_PASTE +Command9=ID_EDIT_UNDO +Command10=ID_EDIT_CUT +Command11=ID_EDIT_COPY +Command12=ID_EDIT_PASTE +Command13=ID_NEXT_PANE +Command14=ID_PREV_PANE +CommandCount=14 + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.cpp new file mode 100644 index 0000000..0e7d296 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.cpp @@ -0,0 +1,144 @@ +// Preview.cpp : Defines the class behaviors for the application. +// + +#include "stdafx.h" +#include "utsampleabout.h" +#include "Preview.h" + +#include "MainFrm.h" +#include "ChildFrm.h" +#include "PreviewDoc.h" +#include "PreviewView.h" +#include "OXBmpPrv.h" + + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CPreviewApp + +BEGIN_MESSAGE_MAP(CPreviewApp, COXWinApp) + //{{AFX_MSG_MAP(CPreviewApp) + ON_COMMAND(ID_APP_ABOUT, OnAppAbout) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG_MAP + // Standard file based document commands + ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) + ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) + // Standard print setup command + ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CPreviewApp construction + +CPreviewApp::CPreviewApp() +{ + // TODO: add construction code here, + // Place all significant initialization in InitInstance +} + +///////////////////////////////////////////////////////////////////////////// +// The one and only CPreviewApp object + +CPreviewApp theApp; +static HINSTANCE g_hRichEdDLL=NULL; + +///////////////////////////////////////////////////////////////////////////// +// CPreviewApp initialization + +BOOL CPreviewApp::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 + + // Initialize RichEdit control + // for About Dialog + if(g_hRichEdDLL==NULL) + { + g_hRichEdDLL=::LoadLibrary(_T("RICHED32.DLL")); + if(g_hRichEdDLL==NULL) + TRACE(_T("Cannot load library to display RichEditTextControl")); + } + + LoadStdProfileSettings(); // Load standard INI file options (including MRU) + + // Register the application's document templates. Document templates + // serve as the connection between documents, frame windows and views. + + CMultiDocTemplate* pDocTemplate; + pDocTemplate = new CMultiDocTemplate( + IDR_PREVTYPE, + RUNTIME_CLASS(CPreviewDoc), + RUNTIME_CLASS(CChildFrame), // custom MDI child frame + RUNTIME_CLASS(CMyPreviewView)); + AddDocTemplate(pDocTemplate); + + // create main MDI Frame window + CMainFrame* pMainFrame = new CMainFrame; + if (!pMainFrame->LoadFrame(IDR_MAINFRAME)) + return FALSE; + m_pMainWnd = pMainFrame; + + // Enable drag/drop open + m_pMainWnd->DragAcceptFiles(); + + // Enable DDE Execute open + EnableShellOpen(); + RegisterShellFileTypes(TRUE); + + // Parse command line for standard shell commands, DDE, file open + CCommandLineInfo cmdInfo; + ParseCommandLine(cmdInfo); + + // Dispatch commands specified on the command line + if (!ProcessShellCommand(cmdInfo)) + return FALSE; + + // The main window has been initialized, so show and update it. + pMainFrame->ShowWindow(m_nCmdShow); + pMainFrame->UpdateWindow(); + + return TRUE; +} + +CFileDialog* CPreviewApp::NewFileDialog(BOOL bOpenFileDialog) +{ + return new COXBmpFileDialog(bOpenFileDialog); +} + +///////////////////////////////////////////////////////////////////////////// + +// App command to run the dialog +void CPreviewApp::OnAppAbout() +{ + CUTSampleAboutDlg aboutDlg(IDR_MAINFRAME,ID_DESCRIPTION_FILE); + aboutDlg.DoModal(); +} + +///////////////////////////////////////////////////////////////////////////// +// CPreviewApp commands + +int CPreviewApp::ExitInstance() +{ + // TODO: Add your specialized code here and/or call the base class + + // unload the library + if(g_hRichEdDLL!=NULL) + ::FreeLibrary(g_hRichEdDLL); + + return COXWinApp::ExitInstance(); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.dsp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.dsp new file mode 100644 index 0000000..3eee0da --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.dsp @@ -0,0 +1,337 @@ +# Microsoft Developer Studio Project File - Name="Preview" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=Preview - Win32 Unicode_Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "Preview.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "Preview.mak" CFG="Preview - Win32 Unicode_Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "Preview - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "Preview - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE "Preview - Win32 Release_Shared" (based on "Win32 (x86) Application") +!MESSAGE "Preview - Win32 Unicode_Debug" (based on "Win32 (x86) Application") +!MESSAGE "Preview - Win32 Unicode_Release" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "Preview - Win32 Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir ".\Release" +# PROP BASE Intermediate_Dir ".\Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir ".\Release" +# PROP Intermediate_Dir ".\Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "NOT_REGISTERED" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"Preview.exe" + +!ELSEIF "$(CFG)" == "Preview - Win32 Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir ".\Preview_" +# PROP BASE Intermediate_Dir ".\Preview_" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir ".\Preview_" +# PROP Intermediate_Dir ".\Preview_" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /D "NOT_REGISTERED" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 +# ADD LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"Preview.exe" + +!ELSEIF "$(CFG)" == "Preview - Win32 Release_Shared" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Preview_" +# PROP BASE Intermediate_Dir "Preview_" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release_Shared" +# PROP Intermediate_Dir "Release_Shared" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "NOT_REGISTERED" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "NOT_REGISTERED" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /out:"Preview.exe" +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"Preview.exe" + +!ELSEIF "$(CFG)" == "Preview - Win32 Unicode_Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Preview0" +# PROP BASE Intermediate_Dir "Preview0" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Unicode_Debug" +# PROP Intermediate_Dir "Unicode_Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W4 /Gm /GX /Zi /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /D "NOT_REGISTERED" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /D "NOT_REGISTERED" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"Preview.exe" +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /debug /machine:I386 /out:"Preview.exe" + +!ELSEIF "$(CFG)" == "Preview - Win32 Unicode_Release" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Preview1" +# PROP BASE Intermediate_Dir "Preview1" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Unicode_Release" +# PROP Intermediate_Dir "Unicode_Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "NOT_REGISTERED" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /I "..\..\include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "NOT_REGISTERED" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /i "..\..\include" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /out:"Preview.exe" +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /machine:I386 /out:"Preview.exe" + +!ENDIF + +# Begin Target + +# Name "Preview - Win32 Release" +# Name "Preview - Win32 Debug" +# Name "Preview - Win32 Release_Shared" +# Name "Preview - Win32 Unicode_Debug" +# Name "Preview - Win32 Unicode_Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90" +# Begin Group "UTSource" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\Source\Dir.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\Dirlist.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\File.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\Filelist.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\Source\OXBmpPrv.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\Oxdib.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\Source\OXPrvDlg.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\Path.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\Pathiter.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\UTSampleAbout\UTSampleAbout.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\Xstring.cpp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ChildFrm.cpp +# End Source File +# Begin Source File + +SOURCE=.\MainFrm.cpp +# End Source File +# Begin Source File + +SOURCE=.\OXDocMgr.cpp +# End Source File +# Begin Source File + +SOURCE=.\OXWinApp.CPP +# End Source File +# Begin Source File + +SOURCE=.\Preview.cpp +# End Source File +# Begin Source File + +SOURCE=.\Preview.rc +# End Source File +# Begin Source File + +SOURCE=.\PreviewDoc.cpp +# End Source File +# Begin Source File + +SOURCE=.\PreviewView.cpp +# End Source File +# Begin Source File + +SOURCE=.\ReadMe.txt +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd" +# Begin Source File + +SOURCE=.\ChildFrm.h +# End Source File +# Begin Source File + +SOURCE=.\MainFrm.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXBmpPrv.h +# End Source File +# Begin Source File + +SOURCE=.\OXDocMgr.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXPrvDlg.h +# End Source File +# Begin Source File + +SOURCE=.\OXWinApp.H +# End Source File +# Begin Source File + +SOURCE=.\Preview.h +# End Source File +# Begin Source File + +SOURCE=.\PreviewDoc.h +# End Source File +# Begin Source File + +SOURCE=.\PreviewView.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\res\Preview.ico +# End Source File +# Begin Source File + +SOURCE=.\res\Preview.rc2 +# End Source File +# Begin Source File + +SOURCE=.\res\PreviewDoc.ico +# End Source File +# Begin Source File + +SOURCE=.\test.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\Toolbar.bmp +# End Source File +# End Group +# End Target +# End Project diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.dsw b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.dsw new file mode 100644 index 0000000..f42c11c --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "Preview"=".\Preview.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.h new file mode 100644 index 0000000..27f8958 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.h @@ -0,0 +1,42 @@ +// Preview.h : main header file for the PREVIEW application +// + +#include "OXWinApp.h" + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols + +///////////////////////////////////////////////////////////////////////////// +// CPreviewApp: +// See Preview.cpp for the implementation of this class +// + +class CPreviewApp : public COXWinApp +{ +public: + CPreviewApp(); + virtual CFileDialog* NewFileDialog(BOOL bOpenFileDialog); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CPreviewApp) + public: + virtual BOOL InitInstance(); + virtual int ExitInstance(); + //}}AFX_VIRTUAL + +// Implementation + + //{{AFX_MSG(CPreviewApp) + afx_msg void OnAppAbout(); + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.rc b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.rc new file mode 100644 index 0000000..d8fb376 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.rc @@ -0,0 +1,349 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "OXCommon.h" + +#include "afxres.h" +#include + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""OXCommon.h"" \r\n" + "\r\n" + "#include ""afxres.h""\r\n" + "#include \r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""utsampleabout.rc""\r\n" + "#include ""OXCommon.rc"" \r\n" + "\r\n" + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif\r\n" + "#include ""res\\Preview.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "#include ""afxprint.rc"" // printing/print preview resources\r\n" + "#endif\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON DISCARDABLE "res\\Preview.ico" +IDR_PREVTYPE ICON DISCARDABLE "res\\PreviewDoc.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_MAINFRAME MENU PRELOAD DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&New\tCtrl+N", ID_FILE_NEW + MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN + MENUITEM SEPARATOR + MENUITEM "E&xit", ID_APP_EXIT + END + POPUP "&View" + BEGIN + MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR + END + POPUP "&Help" + BEGIN + MENUITEM "&About Preview...", ID_APP_ABOUT + END +END + +IDR_PREVTYPE MENU PRELOAD DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&New\tCtrl+N", ID_FILE_NEW + MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN + MENUITEM "&Close", ID_FILE_CLOSE + MENUITEM SEPARATOR + MENUITEM "E&xit", ID_APP_EXIT + END + POPUP "&View" + BEGIN + MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR + END + POPUP "&Help" + BEGIN + MENUITEM "&About Preview...", ID_APP_ABOUT + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Accelerator +// + +IDR_MAINFRAME ACCELERATORS PRELOAD MOVEABLE PURE +BEGIN + "N", ID_FILE_NEW, VIRTKEY, CONTROL + "O", ID_FILE_OPEN, VIRTKEY, CONTROL + "S", ID_FILE_SAVE, VIRTKEY, CONTROL + "P", ID_FILE_PRINT, VIRTKEY, CONTROL + "Z", ID_EDIT_UNDO, VIRTKEY, CONTROL + "X", ID_EDIT_CUT, VIRTKEY, CONTROL + "C", ID_EDIT_COPY, VIRTKEY, CONTROL + "V", ID_EDIT_PASTE, VIRTKEY, CONTROL + VK_BACK, ID_EDIT_UNDO, VIRTKEY, ALT + VK_DELETE, ID_EDIT_CUT, VIRTKEY, SHIFT + VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL + VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT + VK_F6, ID_NEXT_PANE, VIRTKEY + VK_F6, ID_PREV_PANE, VIRTKEY, SHIFT +END + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "PREVIEW MFC Application\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "PREVIEW\0" + VALUE "LegalCopyright", "Copyright © 1996\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "PREVIEW.EXE\0" + VALUE "ProductName", "PREVIEW Application\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE PRELOAD DISCARDABLE +BEGIN + IDR_MAINFRAME "Preview Demo" + IDR_PREVTYPE "\nPrev\nPreview\nBitmap Files (*.bmp)\n.BMP\nPreview.Document\nPrev Document" + ID_DESCRIPTION_FILE "previewInfo.rtf" +END + +STRINGTABLE PRELOAD DISCARDABLE +BEGIN + AFX_IDS_APP_TITLE "Preview" + AFX_IDS_IDLEMESSAGE "Ready" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_INDICATOR_EXT "EXT" + ID_INDICATOR_CAPS "CAP" + ID_INDICATOR_NUM "NUM" + ID_INDICATOR_SCRL "SCRL" + ID_INDICATOR_OVR "OVR" + ID_INDICATOR_REC "REC" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_NEW "Create a new document\nNew" + ID_FILE_OPEN "Open an existing document\nOpen" + ID_FILE_CLOSE "Close the active document\nClose" + ID_FILE_SAVE "Save the active document\nSave" + ID_FILE_SAVE_AS "Save the active document with a new name\nSave As" + ID_FILE_PAGE_SETUP "Change the printing options\nPage Setup" + ID_FILE_PRINT_SETUP "Change the printer and printing options\nPrint Setup" + ID_FILE_PRINT "Print the active document\nPrint" + ID_FILE_PRINT_PREVIEW "Display full pages\nPrint Preview" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_APP_ABOUT "Display program information, version number and copyright\nAbout" + ID_APP_EXIT "Quit the application; prompts to save documents\nExit" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_MRU_FILE1 "Open this document" + ID_FILE_MRU_FILE2 "Open this document" + ID_FILE_MRU_FILE3 "Open this document" + ID_FILE_MRU_FILE4 "Open this document" + ID_FILE_MRU_FILE5 "Open this document" + ID_FILE_MRU_FILE6 "Open this document" + ID_FILE_MRU_FILE7 "Open this document" + ID_FILE_MRU_FILE8 "Open this document" + ID_FILE_MRU_FILE9 "Open this document" + ID_FILE_MRU_FILE10 "Open this document" + ID_FILE_MRU_FILE11 "Open this document" + ID_FILE_MRU_FILE12 "Open this document" + ID_FILE_MRU_FILE13 "Open this document" + ID_FILE_MRU_FILE14 "Open this document" + ID_FILE_MRU_FILE15 "Open this document" + ID_FILE_MRU_FILE16 "Open this document" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_NEXT_PANE "Switch to the next window pane\nNext Pane" + ID_PREV_PANE "Switch back to the previous window pane\nPrevious Pane" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_WINDOW_NEW "Open another window for the active document\nNew Window" + ID_WINDOW_ARRANGE "Arrange icons at the bottom of the window\nArrange Icons" + ID_WINDOW_CASCADE "Arrange windows so they overlap\nCascade Windows" + ID_WINDOW_TILE_HORZ "Arrange windows as non-overlapping tiles\nTile Windows" + ID_WINDOW_TILE_VERT "Arrange windows as non-overlapping tiles\nTile Windows" + ID_WINDOW_SPLIT "Split the active window into panes\nSplit" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_EDIT_CLEAR "Erase the selection\nErase" + ID_EDIT_CLEAR_ALL "Erase everything\nErase All" + ID_EDIT_COPY "Copy the selection and put it on the Clipboard\nCopy" + ID_EDIT_CUT "Cut the selection and put it on the Clipboard\nCut" + ID_EDIT_FIND "Find the specified text\nFind" + ID_EDIT_PASTE "Insert Clipboard contents\nPaste" + ID_EDIT_REPEAT "Repeat the last action\nRepeat" + ID_EDIT_REPLACE "Replace specific text with different text\nReplace" + ID_EDIT_SELECT_ALL "Select the entire document\nSelect All" + ID_EDIT_UNDO "Undo the last action\nUndo" + ID_EDIT_REDO "Redo the previously undone action\nRedo" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_VIEW_TOOLBAR "Show or hide the toolbar\nToggle ToolBar" + ID_VIEW_STATUS_BAR "Show or hide the status bar\nToggle StatusBar" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_SCSIZE "Change the window size" + AFX_IDS_SCMOVE "Change the window position" + AFX_IDS_SCMINIMIZE "Reduce the window to an icon" + AFX_IDS_SCMAXIMIZE "Enlarge the window to full size" + AFX_IDS_SCNEXTWINDOW "Switch to the next document window" + AFX_IDS_SCPREVWINDOW "Switch to the previous document window" + AFX_IDS_SCCLOSE "Close the active window and prompts to save the documents" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_SCRESTORE "Restore the window to normal size" + AFX_IDS_SCTASKLIST "Activate Task List" + AFX_IDS_MDICHILD "Activate this window" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_PREVIEW_CLOSE "Close print preview mode\nCancel Preview" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#include "utsampleabout.rc" +#include "OXCommon.rc" + +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif +#include "res\Preview.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +#include "afxprint.rc" // printing/print preview resources +#endif +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.reg b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.reg new file mode 100644 index 0000000..3061861 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/Preview.reg @@ -0,0 +1,14 @@ +REGEDIT +; This .REG file may be used by your SETUP program. +; If a SETUP program is not available, the entries below will be +; registered in your InitInstance automatically with a call to +; CWinApp::RegisterShellFileTypes and COleObjectFactory::UpdateRegistryAll. + +HKEY_CLASSES_ROOT\.BMP = Preview.Document +HKEY_CLASSES_ROOT\Preview.Document\shell\open\command = PREVIEW.EXE %1 +HKEY_CLASSES_ROOT\Preview.Document\shell\open\ddeexec = [open("%1")] +HKEY_CLASSES_ROOT\Preview.Document\shell\open\ddeexec\application = PREVIEW + ; note: the application is optional + ; (it defaults to the app name in "command") + +HKEY_CLASSES_ROOT\Preview.Document = Prev Document diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/PreviewDoc.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/PreviewDoc.cpp new file mode 100644 index 0000000..7beb41d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/PreviewDoc.cpp @@ -0,0 +1,82 @@ +// PreviewDoc.cpp : implementation of the CPreviewDoc class +// + +#include "stdafx.h" +#include "Preview.h" + +#include "PreviewDoc.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CPreviewDoc + +IMPLEMENT_DYNCREATE(CPreviewDoc, CDocument) + +BEGIN_MESSAGE_MAP(CPreviewDoc, CDocument) + //{{AFX_MSG_MAP(CPreviewDoc) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CPreviewDoc construction/destruction + +CPreviewDoc::CPreviewDoc() +{ + // TODO: add one-time construction code here + +} + +CPreviewDoc::~CPreviewDoc() +{ +} + +BOOL CPreviewDoc::OnNewDocument() +{ + if (!CDocument::OnNewDocument()) + return FALSE; + + // TODO: add reinitialization code here + // (SDI documents will reuse this document) + + return TRUE; +} + +///////////////////////////////////////////////////////////////////////////// +// CPreviewDoc serialization + +void CPreviewDoc::Serialize(CArchive& ar) +{ + if (ar.IsStoring()) + { + // TODO: add storing code here + } + else + { + // TODO: add loading code here + } +} + +///////////////////////////////////////////////////////////////////////////// +// CPreviewDoc diagnostics + +#ifdef _DEBUG +void CPreviewDoc::AssertValid() const +{ + CDocument::AssertValid(); +} + +void CPreviewDoc::Dump(CDumpContext& dc) const +{ + CDocument::Dump(dc); +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CPreviewDoc commands diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/PreviewDoc.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/PreviewDoc.h new file mode 100644 index 0000000..cb2d0c2 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/PreviewDoc.h @@ -0,0 +1,44 @@ +// PreviewDoc.h : interface of the CPreviewDoc class +// +///////////////////////////////////////////////////////////////////////////// + +class CPreviewDoc : public CDocument +{ +protected: // create from serialization only + CPreviewDoc(); + DECLARE_DYNCREATE(CPreviewDoc) + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CPreviewDoc) + public: + virtual BOOL OnNewDocument(); + virtual void Serialize(CArchive& ar); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CPreviewDoc(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + +// Generated message map functions +protected: + //{{AFX_MSG(CPreviewDoc) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/PreviewView.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/PreviewView.cpp new file mode 100644 index 0000000..7dd2f84 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/PreviewView.cpp @@ -0,0 +1,91 @@ +// PreviewView.cpp : implementation of the CMyPreviewView class +// + +#include "stdafx.h" +#include "Preview.h" + +#include "PreviewDoc.h" +#include "PreviewView.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CMyPreviewView + +IMPLEMENT_DYNCREATE(CMyPreviewView, CView) + +BEGIN_MESSAGE_MAP(CMyPreviewView, CView) + //{{AFX_MSG_MAP(CMyPreviewView) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG_MAP + // Standard printing commands + ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint) + ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint) + ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CMyPreviewView construction/destruction + +CMyPreviewView::CMyPreviewView() +{ + // TODO: add construction code here + +} + +CMyPreviewView::~CMyPreviewView() +{ +} + +BOOL CMyPreviewView::PreCreateWindow(CREATESTRUCT& cs) +{ + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + return CView::PreCreateWindow(cs); +} + +///////////////////////////////////////////////////////////////////////////// +// CMyPreviewView drawing + +void CMyPreviewView::OnDraw(CDC* pDC) +{ + CPreviewDoc* pDoc = GetDocument(); + ASSERT_VALID(pDoc); + pDC->TextOut(10,20,"Select Open from File Menu option To Preview a BMP file without opening it "); + // TODO: add draw code for native data here +} + +///////////////////////////////////////////////////////////////////////////// +// CMyPreviewView printing + + + +///////////////////////////////////////////////////////////////////////////// +// CMyPreviewView diagnostics + +#ifdef _DEBUG +void CMyPreviewView::AssertValid() const +{ + CView::AssertValid(); +} + +void CMyPreviewView::Dump(CDumpContext& dc) const +{ + CView::Dump(dc); +} + +CPreviewDoc* CMyPreviewView::GetDocument() // non-debug version is inline +{ + ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CPreviewDoc))); + return (CPreviewDoc*)m_pDocument; +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CMyPreviewView message handlers diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/PreviewView.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/PreviewView.h new file mode 100644 index 0000000..90bc04d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/PreviewView.h @@ -0,0 +1,51 @@ +// PreviewView.h : interface of the CMyPreviewView class +// +///////////////////////////////////////////////////////////////////////////// + +class CMyPreviewView : public CView +{ +protected: // create from serialization only + CMyPreviewView(); + DECLARE_DYNCREATE(CMyPreviewView) + +// Attributes +public: + CPreviewDoc* GetDocument(); + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CMyPreviewView) + public: + virtual void OnDraw(CDC* pDC); // overridden to draw this view + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + protected: + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CMyPreviewView(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + +// Generated message map functions +protected: + //{{AFX_MSG(CMyPreviewView) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +#ifndef _DEBUG // debug version in PreviewView.cpp +inline CPreviewDoc* CMyPreviewView::GetDocument() + { return (CPreviewDoc*)m_pDocument; } +#endif + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/StdAfx.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/StdAfx.cpp new file mode 100644 index 0000000..b55f25b --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/StdAfx.cpp @@ -0,0 +1,6 @@ +// stdafx.cpp : source file that includes just the standard includes +// Preview.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/StdAfx.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/StdAfx.h new file mode 100644 index 0000000..49a2dde --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/StdAfx.h @@ -0,0 +1,16 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers + +#include // MFC core and standard components +#include // MFC extensions +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for Windows 95 Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/previewInfo.rtf b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/previewInfo.rtf new file mode 100644 index 0000000000000000000000000000000000000000..43480537ab39ff84ee35bd8471e653a9c3ab4493 GIT binary patch literal 2030 zcmbVNOOM+&5bn7^|HGV`w%K*%M>c75^QMdRkWEm#NDsPD(nw;KA_a0}ud(od??+iq z?5$lS3-}>%$eGc64?Uz_%5kb}&}qSCnZ#dF*~>}tke1GhWCj;WT86a_f!-}>fz7mF zuglk4gvM#r8 zo{J={JhM&G%ygW*{?F2Q@~U6N|M5;_ijQQJt;Wf8nzqUpX={{5!)Pu{uhJaPkkQ{p zbfbi6>71Fnd%AW_<1D?=%D9TwT59^>d8K*%=zK<~fxL9MKA9o!1bMID|1%uhWjfmQ z3L8!xPH0){K)F$vdF$Ou7nq)+wc3y?NjI(GhOKB@VKv`%dZP`$Z`o3D(6YkuzG+gP z6=_RaM!W1Npr~RCDD$CI=rq7LOe)4Q6?h1g&XY2RVvWm#B7rP(5!=|8DLb2sc2*fJ zn-MKs!?9l=sjSdSd+C%Rw_@*g5o@86N5PfSCf<&Y1~fZ4o*Bk=!%8~O;rDaF)Nc9!3A({t+oXQ*~eQe_mZX0vX|TKQPzYWuv7S6BHs~DF{SMv zDr`vH7c`E}%;;q6r&BG&D_zxsF|W}#T|a*gsDyo~a(;T+kIvtPh zriE178l9^MRJb5$Tk<+0(FxQkh#0e>C~Oi2*`hAiHK^4EE@Hxu`2O~Sz>0WvyByI^ z%bI~>Pbx4LNH%e!)Qm9AMhVSX6z-Kg3zTu>jB)O+&nNEZN9y^8;oYE%$%`w<0DeJ@ zgH$f4RfYv!*UA0kP0;6U02nh_@0k@);_(9W#@NKJE)!D9jFbtmOJx+PHWEZ zGFZznmnbGW5Yt(pA9>cHx6GS1rg^Hje0Gwk_iyl#2qSzZfEt_7gFJut;nz2R&Y=cX zF@eb7(O@(?8v_6ZtY!tkdt&{sF@A;a2j4txp9=-sfr&jXLRlwh_n?=($Mz-}=;$%R z*O(FBN%YpOqZ2?K#~7Zq_ge@uvNE)s!>upqQx}BV4i*b_Li&z2uJe(ypE!qJ!6Zlt Y0>d&@?rdWRRKe>tOp?8j@FM)~UkIYd?f?J) literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/res/Preview.ico b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/res/Preview.ico new file mode 100644 index 0000000000000000000000000000000000000000..7eef0bcbe6580a6f464d688906172c2d9de44262 GIT binary patch literal 1078 zcmc&zF>b>!3}jLb9s)T}@Kod(893@u8ajANzT`op9^o+)S?=nU(FD@%0s)Sg^oyC8{H z9myetc;MEP)59v(LMa~xK8Yu^jIR*H22uCFiq5%C{s7(PJi>o15i^bmX4(vPxWAio z9ryY#AU_jfnd047-@`)XzL?%iS$gQyFP{44kS9X)fN{{QoL~hO-&=q&20Zr*cxFAt PkaNE{wR~2C$NfnjhSXWT literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/res/Preview.rc2 b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/res/Preview.rc2 new file mode 100644 index 0000000..8669738 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/res/Preview.rc2 @@ -0,0 +1,13 @@ +// +// PREVIEW.RC2 - resources Microsoft Visual C++ does not edit directly +// + +#ifdef APSTUDIO_INVOKED + #error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// Add manually edited resources here... + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/res/PreviewDoc.ico b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/res/PreviewDoc.ico new file mode 100644 index 0000000000000000000000000000000000000000..2a1f1ae6ef15e51df8c39bc028bbfb2171822ba5 GIT binary patch literal 1078 zcmcJNF;c@Y5JlGsgIpoERJdY%i*S@2!JS&si6f-)RXoFGDAfg5;z_dQBoi_)1DpI^ z{oS?KlD%25H@>BZ{KJV|_dD9_G1MV<{5a&-}7^W%4AM)k- zx&P*V(j}a@*Y~UhksXTAK!NRyiYN-8NMyKz<)2v9@tUao7A!g+SzkAcsHvdq6!0vQ z#-rA6>0BAr)4*u6Y57EdkamnXf Uh-a7VEuQ2KJb_2>o71HC3-%7w@Bjb+ literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/res/Toolbar.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/res/Toolbar.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d501723c1ceb781cccf04bc42408a2bee6b0eab4 GIT binary patch literal 1078 zcmb_byK2Kg5WFD46)N-_DGd%mbvRHJ@+(`2Y#@z5De^h$T}Yp#;yM?~%&rw%!DZII z_s!1Ct^M-)Tn3AG^p9vgT8;J){9rDyxEsA+?t8wt)o$n@0`>@NK8bGHkdKdb4m#tglAgQo-)Js1!#;+~GSl z37z4Z<|(I?jV44Q_xOeQ!(IFmLY86pVjciLPfC9(?0)$t7hw7W^>>N<@a4LVKPMb~ ze5>=j|BL>!3lPen5hUo~ANKN`l7C&3 z%0PPq3XFRT-e1OO0*EKjOA>DIfd!JKE>l7s8ZOWoALnDl7bEaBMvn{Ll0`lMj_p*2 zeyj@cEB=w(f%+@Ig9SfK=ePQ9c)El>T>d0F2ei{lnHqPg}It<8 literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/resource.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/resource.h new file mode 100644 index 0000000..a78edd0 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/resource.h @@ -0,0 +1,20 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by Preview.rc +// +#define IDD_ABOUTBOX 100 +#define IDR_MAINFRAME 128 +#define IDR_PREVTYPE 129 +#define ID_DESCRIPTION_FILE 130 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_3D_CONTROLS 1 +#define _APS_NEXT_RESOURCE_VALUE 130 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 1000 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/test.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Preview/test.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2cbab351c44862ae265c5224ae3d10e7526460eb GIT binary patch literal 1270 zcmd6ky>Y`Z429vlG~UEzW=NlPQfmaaJZ(TvATx#fa2~fZ9{xy1a+M~KNsu2N0FwUr ze7up^7ta?S?>0`Pfyv?`8m5Vee>6?%c;+Ro>&hO1O@6d(Sn=Qwh^O+}YOOy9QO14X zp0kL)g;z^p3gew(ucSENipi@cn4A+#ZXHaX^X+fE)gSwoIFC2B8@Kb1_bP=WdPh0Y ziw8Qw_A({0&AxHJfQmU0?+|`&ksfz}5l3M8&68HzVQsOOCrQ}LrNfaN3Bs@El!$Dg zK;zf5f66f@)*}TA^|L%zaIUrEM51-RXu4F;4gjsMp9jYpIJRtBhhL~|8pnUI;5wQu p0Zj6sv5N)d);Sm!g0(}>XXAS3hy)%pI^6g08sSlA&_?7xES@3N2sr=% literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDEMO.TXT b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDEMO.TXT new file mode 100644 index 0000000..235558e --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDEMO.TXT @@ -0,0 +1,85 @@ +SEH - to - C++ exceptions +------------------------- + +The class COXSEHException implements the functionality to convert +Structured Exception Handling of WIN 32 to MFC C++ Exception Handling. +In this way you can catch the native exceptions of WIN 32 using TRY/CATCH or +try/catch. + +Now you can make your application very robust. It will never end with a cryptic +message and you will always be able to warn the user with a clear statement. + +To enable this feature you have only to call the static function +COXSEHException::EnableSEHTrapping(). From that moment on all WIN 32 +exceptions are converted to C++ exceptions : + COXSEHMemoryException + COXSEHMathException + COXSEHSpecialException + +Now you can catch access violations, numeric overflow, divide by zero and +other critical conditions. For some exceptions additional information is +provided. When an access violation occurs you can see whether it was a read +or write fault and which virtual memory address was accessed incorrectly. + +Look at the following example : + + COXSEHException::EnableSEHTrapping(); + TRY + { + // Use invalid memory address + int* pa = NULL; + *pa = 0; + } + CATCH(COXSEHMemoryException, px) + { + if (px->GetCause() == EXCEPTION_ACCESS_VIOLATION) + { + CString sMsg; + sMsg.Format("Access violation trapped with TRY, CATCH " + "while trying to %s at address 0x%8.8lx", + px->GetReadWriteFlag() ? "READ" : "WRITE", + px->GetAddress()); + AfxMessageBox(sMsg); + } + else + AfxMessageBox("Memory exception trapped with TRY, CATCH"); + } + END_CATCH + + +By default, Windows NT has all the Floating Point exceptions turned off and computations result in NAN or INFINITY rather than in an exception. +But this can be enabled by supplying TRUE as first parameter when enabling +the conversion. + + COXSEHException::EnableSEHTrapping(TRUE); + TRY + { + // Divide by zero + double x = 1.0; + double a = 0.0; + x = x / a; + } + CATCH(COXSEHMathException, px) + { + if (px->GetCause() == EXCEPTION_FLT_DIVIDE_BY_ZERO) + AfxMessageBox("Float divide by zero trapped with TRY, CATCH"); + else + AfxMessageBox("Other math exception trapped with TRY, CATCH"); + } + END_CATCH + +Because all of the exception classes used are derived from CException, +you can install a global handler that will trap all the exceptions. + TRY + { + // Start program + // ... + } + CATCH(CException, px) + { + // Handle the exception + if (px->IsKindOf(RUNTIME_CLASS(COXSEHMathException))) + // Handle math exceptions + // ... + } + END_CATCH diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemo.clw b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemo.clw new file mode 100644 index 0000000..b473bbc --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemo.clw @@ -0,0 +1,45 @@ +; CLW file contains information for the MFC ClassWizard + +[General Info] +Version=1 +LastClass=CSEHDemoApp +LastTemplate=CDialog +NewFileInclude1=#include "stdafx.h" +NewFileInclude2=#include "sehdemo.h" +LastPage=0 + +ClassCount=2 +Class1=CSEHDemoApp +Class2=CSEHDemoDlg + +ResourceCount=1 +Resource1=IDD_SEHDEMO_DIALOG + +[CLS:CSEHDemoApp] +Type=0 +BaseClass=CWinApp +HeaderFile=SEHDemo.h +ImplementationFile=SEHDemo.cpp +Filter=N +VirtualFilter=AC +LastObject=CSEHDemoApp + +[CLS:CSEHDemoDlg] +Type=0 +BaseClass=CDialog +HeaderFile=SEHDemoDlg.h +ImplementationFile=SEHDemoDlg.cpp + +[DLG:IDD_SEHDEMO_DIALOG] +Type=1 +Class=CSEHDemoDlg +ControlCount=8 +Control1=IDOK,button,1342242817 +Control2=IDCANCEL,button,1342242816 +Control3=IDC_TRAP,button,1342242819 +Control4=IDC_ACCESS_VIOLATION,button,1342242816 +Control5=IDC_ZERO_FLOAT,button,1342242816 +Control6=IDC_ZERO_INTEGER,button,1342242816 +Control7=IDC_TRAP_FL,button,1342242819 +Control8=IDC_BREAKPOINT,button,1342242816 + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemo.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemo.cpp new file mode 100644 index 0000000..65c46e8 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemo.cpp @@ -0,0 +1,96 @@ +// SEHDemo.cpp : Defines the class behaviors for the application. +// +//----------------- Dundas Software ---------------------------------------- +//======================================================================== + +#include "stdafx.h" +#include "SEHDemo.h" +#include "SEHDemoDlg.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CSEHDemoApp + +BEGIN_MESSAGE_MAP(CSEHDemoApp, CWinApp) + //{{AFX_MSG_MAP(CSEHDemoApp) + // 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() + +///////////////////////////////////////////////////////////////////////////// +// CSEHDemoApp construction + +CSEHDemoApp::CSEHDemoApp() +{ + // TODO: add construction code here, + // Place all significant initialization in InitInstance +} + +///////////////////////////////////////////////////////////////////////////// +// The one and only CSEHDemoApp object + +CSEHDemoApp theApp; +static HINSTANCE g_hRichEdDLL=NULL; + +///////////////////////////////////////////////////////////////////////////// +// CSEHDemoApp initialization + +BOOL CSEHDemoApp::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 + + // Initialize RichEdit control + // for About Dialog + if(g_hRichEdDLL==NULL) + { + g_hRichEdDLL=::LoadLibrary(_T("RICHED32.DLL")); + if(g_hRichEdDLL==NULL) + TRACE(_T("Cannot load library to display RichEditTextControl")); + } + + CSEHDemoDlg 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; +} + + +int CSEHDemoApp::ExitInstance() +{ + // TODO: Add your specialized code here and/or call the base class + + // unload the library + if(g_hRichEdDLL!=NULL) + ::FreeLibrary(g_hRichEdDLL); + + return CWinApp::ExitInstance(); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemo.dsp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemo.dsp new file mode 100644 index 0000000..6c03b7c --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemo.dsp @@ -0,0 +1,241 @@ +# Microsoft Developer Studio Project File - Name="SEHDemo" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=SEHDemo - Win32 Unicode_Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "SEHDemo.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "SEHDemo.mak" CFG="SEHDemo - Win32 Unicode_Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "SEHDemo - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "SEHDemo - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE "SEHDemo - Win32 Release_Shared" (based on "Win32 (x86) Application") +!MESSAGE "SEHDemo - Win32 Unicode_Debug" (based on "Win32 (x86) Application") +!MESSAGE "SEHDemo - Win32 Unicode_Release" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "SEHDemo - Win32 Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir ".\Release" +# PROP BASE Intermediate_Dir ".\Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir ".\Release" +# PROP Intermediate_Dir ".\Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x813 /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"SEHDemo.exe" + +!ELSEIF "$(CFG)" == "SEHDemo - Win32 Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir ".\Debug" +# PROP BASE Intermediate_Dir ".\Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir ".\Debug" +# PROP Intermediate_Dir ".\Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x813 /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 +# ADD LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"SEHDemo.exe" + +!ELSEIF "$(CFG)" == "SEHDemo - Win32 Release_Shared" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "SEHDemo_" +# PROP BASE Intermediate_Dir "SEHDemo_" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release_Shared" +# PROP Intermediate_Dir "Release_Shared" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W4 /GX /O2 /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /out:"SEHDemo.exe" +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"SEHDemo.exe" + +!ELSEIF "$(CFG)" == "SEHDemo - Win32 Unicode_Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "SEHDemo0" +# PROP BASE Intermediate_Dir "SEHDemo0" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Unicode_Debug" +# PROP Intermediate_Dir "Unicode_Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W4 /Gm /GX /Zi /Od /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\include" /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"SEHDemo.exe" +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /debug /machine:I386 /out:"SEHDemo.exe" + +!ELSEIF "$(CFG)" == "SEHDemo - Win32 Unicode_Release" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "SEHDemo1" +# PROP BASE Intermediate_Dir "SEHDemo1" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Unicode_Release" +# PROP Intermediate_Dir "Unicode_Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /out:"SEHDemo.exe" +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /machine:I386 /out:"SEHDemo.exe" + +!ENDIF + +# Begin Target + +# Name "SEHDemo - Win32 Release" +# Name "SEHDemo - Win32 Debug" +# Name "SEHDemo - Win32 Release_Shared" +# Name "SEHDemo - Win32 Unicode_Debug" +# Name "SEHDemo - Win32 Unicode_Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90" +# Begin Group "UTSource" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\source\OXSEH.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\UTSampleAbout\UTSampleAbout.cpp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ReadMe.txt +# End Source File +# Begin Source File + +SOURCE=.\SEHDemo.cpp +# End Source File +# Begin Source File + +SOURCE=.\SEHDemo.rc +# End Source File +# Begin Source File + +SOURCE=.\SEHDemoDlg.cpp +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd" +# Begin Source File + +SOURCE=.\SEHDemo.h +# End Source File +# Begin Source File + +SOURCE=.\SEHDemoDlg.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\res\SEHDemo.ico +# End Source File +# Begin Source File + +SOURCE=.\res\SEHDemo.rc2 +# End Source File +# End Group +# End Target +# End Project diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemo.dsw b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemo.dsw new file mode 100644 index 0000000..729fd12 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemo.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "SEHDemo"=".\SEHDemo.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemo.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemo.h new file mode 100644 index 0000000..3357501 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemo.h @@ -0,0 +1,40 @@ +// SEHDemo.h : main header file for the SEHDEMO application +// +//----------------- Dundas Software ---------------------------------------- +//======================================================================== + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols + +///////////////////////////////////////////////////////////////////////////// +// CSEHDemoApp: +// See SEHDemo.cpp for the implementation of this class +// + +class CSEHDemoApp : public CWinApp +{ +public: + CSEHDemoApp(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CSEHDemoApp) + public: + virtual BOOL InitInstance(); + virtual int ExitInstance(); + //}}AFX_VIRTUAL + +// Implementation + + //{{AFX_MSG(CSEHDemoApp) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemo.rc b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemo.rc new file mode 100644 index 0000000..f827e7a --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemo.rc @@ -0,0 +1,198 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_SEHDEMO_DIALOG DIALOGEX 0, 0, 124, 143 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +EXSTYLE WS_EX_APPWINDOW +CAPTION "SEH Demo" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "OK",IDOK,7,122,50,14 + PUSHBUTTON "Cancel",IDCANCEL,67,122,50,14 + CONTROL "&Trap SEH exceptions",IDC_TRAP,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,7,82,10 + PUSHBUTTON "&Access Violation",IDC_ACCESS_VIOLATION,7,42,110,13 + PUSHBUTTON "Divide &float by zero",IDC_ZERO_FLOAT,7,60,110,13 + PUSHBUTTON "Divide &integer by zero",IDC_ZERO_INTEGER,7,78,110,13 + CONTROL "Trap Floating &Point exceptions",IDC_TRAP_FL,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,22,110,10 + PUSHBUTTON "&Breakpoint",IDC_BREAKPOINT,7,96,110,13 +END + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "SEHDEMO MFC Application\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "SEHDEMO\0" + VALUE "LegalCopyright", "Copyright © 1996\0" + VALUE "OriginalFilename", "SEHDEMO.EXE\0" + VALUE "ProductName", "SEHDEMO Application\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_SEHDEMO_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 117 + TOPMARGIN, 7 + BOTTOMMARGIN, 136 + END +END +#endif // APSTUDIO_INVOKED + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""utsampleabout.rc""\r\n" + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif\r\n" + "#include ""res\\SEHDemo.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "#endif\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON DISCARDABLE "res\\SEHDemo.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_ABOUTBOX "&About SEHDemo..." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDR_MAINFRAME "COXSEHExceptions demo" + ID_DESCRIPTION_FILE "sehDemoInfo.rtf" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#include "utsampleabout.rc" +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif +#include "res\SEHDemo.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +#endif +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemoDlg.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemoDlg.cpp new file mode 100644 index 0000000..84e2e7e --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemoDlg.cpp @@ -0,0 +1,246 @@ +// SEHDemoDlg.cpp : implementation file +// +//----------------- Dundas Software ---------------------------------------- +//======================================================================== + + +#include "stdafx.h" +#include "utsampleabout.h" +#include "SEHDemo.h" +#include "SEHDemoDlg.h" +#include "OXSEH.h" +#include + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////////////////////////////////// +// CSEHDemoDlg dialog + +CSEHDemoDlg::CSEHDemoDlg(CWnd* pParent /*=NULL*/) + : CDialog(CSEHDemoDlg::IDD, pParent) +{ + //{{AFX_DATA_INIT(CSEHDemoDlg) + // NOTE: the ClassWizard will add member initialization here + //}}AFX_DATA_INIT + // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 + m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); +} + +void CSEHDemoDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CSEHDemoDlg) + DDX_Control(pDX, IDC_TRAP_FL, m_wndFPTrap); + DDX_Control(pDX, IDC_TRAP, m_wndTrap); + //}}AFX_DATA_MAP +} + +BEGIN_MESSAGE_MAP(CSEHDemoDlg, CDialog) + //{{AFX_MSG_MAP(CSEHDemoDlg) + ON_WM_SYSCOMMAND() + ON_WM_PAINT() + ON_WM_QUERYDRAGICON() + ON_BN_CLICKED(IDC_ACCESS_VIOLATION, OnAccessViolation) + ON_BN_CLICKED(IDC_TRAP, OnTrap) + ON_BN_CLICKED(IDC_ZERO_FLOAT, OnZeroFloat) + ON_BN_CLICKED(IDC_ZERO_INTEGER, OnZeroInteger) + ON_BN_CLICKED(IDC_TRAP_FL, OnTrapFl) + ON_BN_CLICKED(IDC_BREAKPOINT, OnBreakpoint) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CSEHDemoDlg message handlers + +BOOL CSEHDemoDlg::OnInitDialog() +{ + CDialog::OnInitDialog(); + + // Add "About..." menu item to system menu. + + // IDM_ABOUTBOX must be in the system command range. + ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); + ASSERT(IDM_ABOUTBOX < 0xF000); + + CMenu* pSysMenu = GetSystemMenu(FALSE); + CString strAboutMenu; + strAboutMenu.LoadString(IDS_ABOUTBOX); + if (!strAboutMenu.IsEmpty()) + { + pSysMenu->AppendMenu(MF_SEPARATOR); + pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); + } + + // Set the icon for this dialog. The framework does this automatically + // when the application's main window is not a dialog + SetIcon(m_hIcon, TRUE); // Set big icon + SetIcon(m_hIcon, FALSE); // Set small icon + + // TODO: Add extra initialization here + + return TRUE; // return TRUE unless you set the focus to a control +} + +void CSEHDemoDlg::OnSysCommand(UINT nID, LPARAM lParam) +{ + if ((nID & 0xFFF0) == IDM_ABOUTBOX) + { + CUTSampleAboutDlg dlgAbout(IDR_MAINFRAME,ID_DESCRIPTION_FILE); + dlgAbout.DoModal(); + } + else + { + CDialog::OnSysCommand(nID, lParam); + } +} + +// If you add a minimize button to your dialog, you will need the code below +// to draw the icon. For MFC applications using the document/view model, +// this is automatically done for you by the framework. + +void CSEHDemoDlg::OnPaint() +{ + if (IsIconic()) + { + CPaintDC dc(this); // device context for painting + + SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); + + // Center icon in client rectangle + int cxIcon = GetSystemMetrics(SM_CXICON); + int cyIcon = GetSystemMetrics(SM_CYICON); + CRect rect; + GetClientRect(&rect); + int x = (rect.Width() - cxIcon + 1) / 2; + int y = (rect.Height() - cyIcon + 1) / 2; + + // Draw the icon + dc.DrawIcon(x, y, m_hIcon); + } + else + { + CDialog::OnPaint(); + } +} + +// The system calls this to obtain the cursor to display while the user drags +// the minimized window. +HCURSOR CSEHDemoDlg::OnQueryDragIcon() +{ + return (HCURSOR) m_hIcon; +} + +void CSEHDemoDlg::OnAccessViolation() + { + TRY + { + // Use invalid virtual memory address + int* pa = (int*)0x123; + *pa = 0; + } + CATCH(COXSEHMemoryException, px) + { + if (px->GetCause() == EXCEPTION_ACCESS_VIOLATION) + if (px->IsInfoAvailable()) + { + CString sMsg; + sMsg.Format(_T("Access violation trapped with TRY, CATCH while trying to %s at address 0x%8.8lX"), + !px->GetReadWriteFlag() ? _T("READ") : _T("WRITE"), px->GetAddress()); + AfxMessageBox(sMsg); + } + else + AfxMessageBox(_T("Access violation trapped with TRY, CATCH")); + else + AfxMessageBox(_T("Unknown memory exception trapped with TRY, CATCH")); + } + END_CATCH + } + +void CSEHDemoDlg::OnZeroFloat() + { + TRY + { + // Divide by zero + double x = 1.0; + double a = 0.0; + x = x / a; + } + CATCH(COXSEHMathException, px) + { + if (px->GetCause() == EXCEPTION_FLT_DIVIDE_BY_ZERO) + AfxMessageBox(_T("Float divide by zero trapped with TRY, CATCH")); + else + AfxMessageBox(_T("Unknown math exception trapped with TRY, CATCH")); + } + END_CATCH + } + +void CSEHDemoDlg::OnZeroInteger() + { + TRY + { + // Divide by zero + int x = 1; + int a = 0; + x = x / a; + } + CATCH(COXSEHMathException, px) + { + if (px->GetCause() == EXCEPTION_INT_DIVIDE_BY_ZERO) + AfxMessageBox(_T("Integer divide by zero trapped with TRY, CATCH")); + else + AfxMessageBox(_T("Unknown math exception trapped with TRY, CATCH")); + } + END_CATCH + } + +void CSEHDemoDlg::OnBreakpoint() + { + TRY + { + // Debug break : This can only be catched when not running in debugger + DebugBreak(); + } + CATCH(COXSEHSpecialException, px) + { + if (px->GetCause() == EXCEPTION_BREAKPOINT) + AfxMessageBox(_T("Breakpoint trapped with TRY, CATCH")); + else + AfxMessageBox(_T("Unknown special exception trapped with TRY, CATCH")); + } + END_CATCH + } + +void CSEHDemoDlg::OnTrap() + { + if (m_wndTrap.GetCheck() & 0x0001) + if (m_wndFPTrap.GetCheck() & 0x0001) + COXSEHException::EnableSEHTrapping(TRUE); + else + COXSEHException::EnableSEHTrapping(FALSE); + else + COXSEHException::DisableSEHTrapping(); + } + +void CSEHDemoDlg::OnTrapFl() + { + // If already trapping : turn of temporary so we can change the FP parameter + if (COXSEHException::IsSEHTrappingEnabled()) + COXSEHException::DisableSEHTrapping(); + // (Re-)enable SEH trapping + if (m_wndFPTrap.GetCheck() & 0x0001) + COXSEHException::EnableSEHTrapping(TRUE); + else + COXSEHException::EnableSEHTrapping(FALSE); + // Make sure SEH is checked + m_wndTrap.SetCheck(0x0001); + } + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemoDlg.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemoDlg.h new file mode 100644 index 0000000..b76d888 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/SEHDemoDlg.h @@ -0,0 +1,44 @@ +// SEHDemoDlg.h : header file +// + +///////////////////////////////////////////////////////////////////////////// +// CSEHDemoDlg dialog + +class CSEHDemoDlg : public CDialog +{ +// Construction +public: + CSEHDemoDlg(CWnd* pParent = NULL); // standard constructor + +// Dialog Data + //{{AFX_DATA(CSEHDemoDlg) + enum { IDD = IDD_SEHDEMO_DIALOG }; + CButton m_wndFPTrap; + CButton m_wndTrap; + //}}AFX_DATA + + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CSEHDemoDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + HICON m_hIcon; + + // Generated message map functions + //{{AFX_MSG(CSEHDemoDlg) + virtual BOOL OnInitDialog(); + afx_msg void OnSysCommand(UINT nID, LPARAM lParam); + afx_msg void OnPaint(); + afx_msg HCURSOR OnQueryDragIcon(); + afx_msg void OnAccessViolation(); + afx_msg void OnTrap(); + afx_msg void OnZeroFloat(); + afx_msg void OnZeroInteger(); + afx_msg void OnTrapFl(); + afx_msg void OnBreakpoint(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/StdAfx.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/StdAfx.cpp new file mode 100644 index 0000000..649dad2 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/StdAfx.cpp @@ -0,0 +1,6 @@ +// stdafx.cpp : source file that includes just the standard includes +// SEHDemo.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/StdAfx.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/StdAfx.h new file mode 100644 index 0000000..49a2dde --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/StdAfx.h @@ -0,0 +1,16 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers + +#include // MFC core and standard components +#include // MFC extensions +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for Windows 95 Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/res/SEHDemo.ico b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/res/SEHDemo.ico new file mode 100644 index 0000000000000000000000000000000000000000..7eef0bcbe6580a6f464d688906172c2d9de44262 GIT binary patch literal 1078 zcmc&zF>b>!3}jLb9s)T}@Kod(893@u8ajANzT`op9^o+)S?=nU(FD@%0s)Sg^oyC8{H z9myetc;MEP)59v(LMa~xK8Yu^jIR*H22uCFiq5%C{s7(PJi>o15i^bmX4(vPxWAio z9ryY#AU_jfnd047-@`)XzL?%iS$gQyFP{44kS9X)fN{{QoL~hO-&=q&20Zr*cxFAt PkaNE{wR~2C$NfnjhSXWT literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/res/SEHDemo.rc2 b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/res/SEHDemo.rc2 new file mode 100644 index 0000000..86bb686 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/res/SEHDemo.rc2 @@ -0,0 +1,13 @@ +// +// SEHDEMO.RC2 - resources Microsoft Visual C++ does not edit directly +// + +#ifdef APSTUDIO_INVOKED + #error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// Add manually edited resources here... + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/resource.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/resource.h new file mode 100644 index 0000000..bde2fe9 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/resource.h @@ -0,0 +1,28 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by SEHDemo.rc +// +#define IDM_ABOUTBOX 0x0010 +#define IDD_ABOUTBOX 100 +#define IDS_ABOUTBOX 101 +#define IDD_SEHDEMO_DIALOG 102 +#define IDR_MAINFRAME 128 +#define ID_DESCRIPTION_FILE 129 +#define IDC_TRAP 1001 +#define IDC_ACCESS_VIOLATION 1002 +#define IDC_ZERO_FLOAT 1003 +#define IDC_ZERO_INTEGER 1004 +#define IDC_TRAP_FL 1005 +#define IDC_BREAKPOINT 1006 +#define IDC_UNHANDLED 1007 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 129 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 1008 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/sehDemoInfo.rtf b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/SEHDemo/sehDemoInfo.rtf new file mode 100644 index 0000000000000000000000000000000000000000..3c522d2589f94bac71babffd1d96a72c7f7e2baf GIT binary patch literal 1364 zcmZ`(!EW0y4BdIa{(;90?NTQhwxKUrEj(OaI=J^T!tmFF3+Ci zXquJmYP4CYDr8S#2FtF_o#{_!!zrY?CJ(pN!d<-GAI=XRK7Dw<&6G2arGCa#B-x6I zY?9@sq2%n%)^zs$OoAeMgLXAd=JRZgTx4s5TChneKmVF3ft$nf;tD=PaPnCk9RWQm zS_kc{e|0+t$tYRi<^C*zdmSqHWrD6T5TwqTAMOzrKYvT&i+wUs28FQBHK5SSFQ^Jo zDU!{Nb_V;3$6%XUxK!Xa#HDfVF%){E3xd3Zzr+sE7T`if42pHo3JoY{3t0-{$sXc> z6fPZucQw7}3b5GSmPl<&#{yeoL3>!Ui?xag+*f3!)Ek80lxo-?|8K+-L0eG|NC#-q z0|FBYNQPDrN@-?UN8D|trR$C6&`9x`YR6rK!;ytPv?qiL0j3-?sbIRvi0&`@4oADm zemAXXVEQ%xx?UTq$p#Ms7Rtt|*fts+x+uPoD3k|S25wYn#ANU+-j$#?+OEKraDROZ z^H~hJxm@&)d3$dH4!kLaI!d07gv$Dz}-pjkjdCY( zia2oBUyXkTyzKJE2f+2(h+77mM0l+>2GF$FdB_PcHx#>Sk!?>=Prx$%bnY)ywUm@V*rwN? 0){ + + loop = lstrlen(buf); + while(loop > 0){ + if(buf[loop]== _T('.')){ + break; + } + loop --; + } + while(loop > 0){ + if(buf[loop]== _T('\\')){ + buf[loop] = 0; + break; + } + loop --; + } + } + + if(loop == 0){ + + delete[] buf; + + //create the temp buffer + buf = new TCHAR[MAX_PATH + 1]; + + _tgetcwd(buf,255); + } + + string = buf; + + delete[] buf; + + return string; +} + +void PumpMessages() +{ + static MSG msg; + while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } +} \ No newline at end of file diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/Globals.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/Globals.h new file mode 100644 index 0000000..8d5b4ca --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/Globals.h @@ -0,0 +1,9 @@ +#ifndef __GLOBALS_H__INCLUDED +#define __GLOBALS_H__INCLUDED + +#include + +CString GetAppDir(); +void PumpMessages(); + +#endif \ No newline at end of file diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/MainFrame.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/MainFrame.cpp new file mode 100644 index 0000000..5b10b9d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/MainFrame.cpp @@ -0,0 +1,107 @@ +// MainFrame.cpp : implementation of the CMainFrame class +// + +#include "stdafx.h" +#include "Serial.h" + +#include "MainFrame.h" + +#include "SerialView.h" +#include "SendView.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame + +IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd) + +BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) + //{{AFX_MSG_MAP(CMainFrame) + ON_WM_CREATE() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +static UINT indicators[] = +{ + ID_SEPARATOR // status line indicator +}; + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame construction/destruction + +CMainFrame::CMainFrame() +{ +} + +CMainFrame::~CMainFrame() +{ +} + +int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) +{ + if (CFrameWnd::OnCreate(lpCreateStruct) == -1) + return -1; + + if (!m_wndStatusBar.Create(this) || !m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT))) + { + TRACE0("Failed to create status bar\n"); + return -1; // fail to create + } + + return 0; +} + +BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) +{ + if (!CFrameWnd::PreCreateWindow(cs)) + return FALSE; + + // Remove the "Untitled" from the caption + cs.style &= ~FWS_ADDTOTITLE; + + return TRUE; +} + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame diagnostics + +#ifdef _DEBUG +void CMainFrame::AssertValid() const +{ + CFrameWnd::AssertValid(); +} + +void CMainFrame::Dump(CDumpContext& dc) const +{ + CFrameWnd::Dump(dc); +} + +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame message handlers + +BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) +{ + UNREFERENCED_PARAMETER(lpcs); + + // Create a splitter on the frame where the upper pane is the "terminal" view + // and the lower view is the Send view. + if (!m_wndSplitter.CreateStatic(this, 2, 1)) + return FALSE; + + if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CSerialView), CSize(0, 0), pContext)) + return FALSE; + + if (!m_wndSplitter.CreateView(1, 0, RUNTIME_CLASS(CSendView), CSize(0, 0), pContext)) + return FALSE; + + m_wndSplitter.SetRowInfo(0, 400, 0); + return TRUE; +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/MainFrame.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/MainFrame.h new file mode 100644 index 0000000..cbaef4e --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/MainFrame.h @@ -0,0 +1,59 @@ +// MainFrame.h : interface of the CMainFrame class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_MAINFRAME_H__172F9582_051F_11D2_88B0_0080C859A484__INCLUDED_) +#define AFX_MAINFRAME_H__172F9582_051F_11D2_88B0_0080C859A484__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +class CMainFrame : public CFrameWnd +{ +protected: // create from serialization only + CMainFrame(); + DECLARE_DYNCREATE(CMainFrame) + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CMainFrame) + public: + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + protected: + virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CMainFrame(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: // control bar embedded members + CStatusBar m_wndStatusBar; + + CSplitterWnd m_wndSplitter; + +// Generated message map functions +protected: + //{{AFX_MSG(CMainFrame) + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_MAINFRAME_H__172F9582_051F_11D2_88B0_0080C859A484__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/SendView.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/SendView.cpp new file mode 100644 index 0000000..7ec7381 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/SendView.cpp @@ -0,0 +1,113 @@ +// SendView.cpp : implementation file +// + +#include "stdafx.h" +#include "serial.h" +#include "SendView.h" + +#include "SerialDoc.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CSendView + +IMPLEMENT_DYNCREATE(CSendView, CEditView) + +CSendView::CSendView() +{ + m_font.m_hObject = NULL; +} + +CSendView::~CSendView() +{ + m_font.DeleteObject(); +} + +BOOL CSendView::PreCreateWindow(CREATESTRUCT& cs) +{ + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + BOOL bPreCreated = CEditView::PreCreateWindow(cs); + cs.style &= ~(ES_AUTOHSCROLL | WS_HSCROLL); // Enable word-wrapping + + return bPreCreated; +} + +BEGIN_MESSAGE_MAP(CSendView, CEditView) + //{{AFX_MSG_MAP(CSendView) + ON_WM_CHAR() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CSendView drawing + +void CSendView::OnDraw(CDC* pDC) +{ + UNREFERENCED_PARAMETER(pDC); + + CDocument* pDoc = GetDocument(); + // TODO: add draw code here +} + +///////////////////////////////////////////////////////////////////////////// +// CSendView diagnostics + +#ifdef _DEBUG +void CSendView::AssertValid() const +{ + CEditView::AssertValid(); +} + +void CSendView::Dump(CDumpContext& dc) const +{ + CEditView::Dump(dc); +} + +CSerialDoc* CSendView::GetDocument() // non-debug version is inline +{ + ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CSerialDoc))); + return (CSerialDoc*)m_pDocument; +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CSendView message handlers + + +void CSendView::OnInitialUpdate() +{ + CEditView::OnInitialUpdate(); + + // Create a new font for this view + if (m_font.m_hObject == NULL) + { + if (m_font.CreatePointFont(110, _T("Arial"))) + SetFont(&m_font); + } +} + +void CSendView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) +{ + CSerialDoc* pDoc = GetDocument(); + ASSERT_VALID(pDoc); + + // Route this message to the document class whereupon the keystroke will + // be send through to the receiving end. + if (pDoc != NULL) + { + for (UINT n = 0; n < nRepCnt; n++) + { + if (!pDoc->SendKeyDown(nChar)) + ; + } + } + + CEditView::OnChar(nChar, nRepCnt, nFlags); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/SendView.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/SendView.h new file mode 100644 index 0000000..275dac2 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/SendView.h @@ -0,0 +1,68 @@ +#if !defined(AFX_SENDVIEW_H__26E6D944_0616_11D2_88B2_0080C859A484__INCLUDED_) +#define AFX_SENDVIEW_H__26E6D944_0616_11D2_88B2_0080C859A484__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// SendView.h : header file +// + +///////////////////////////////////////////////////////////////////////////// +// CSendView view + +class CSerialDoc; + +class CSendView : public CEditView +{ +protected: + CSendView(); // protected constructor used by dynamic creation + DECLARE_DYNCREATE(CSendView) + +// Attributes +public: + CSerialDoc* GetDocument(); + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CSendView) + public: + virtual void OnInitialUpdate(); + protected: + virtual void OnDraw(CDC* pDC); // overridden to draw this view + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + //}}AFX_VIRTUAL + +// Implementation +protected: + virtual ~CSendView(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + CFont m_font; + + +// Generated message map functions +protected: + //{{AFX_MSG(CSendView) + afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +#ifndef _DEBUG // debug version in SerialView.cpp +inline CSerialDoc* CSendView::GetDocument() + { return (CSerialDoc*)m_pDocument; } +#endif + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_SENDVIEW_H__26E6D944_0616_11D2_88B2_0080C859A484__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/Serial.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/Serial.cpp new file mode 100644 index 0000000..b15897b --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/Serial.cpp @@ -0,0 +1,127 @@ +// Serial.cpp : Defines the class behaviors for the application. +// + +#include "stdafx.h" +#include "Serial.h" + +#include "MainFrame.h" +#include "SerialDoc.h" +#include "SerialView.h" + +#include "UTSampleAbout.h" + +#include "oxscfile.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CSerialApp + +BEGIN_MESSAGE_MAP(CSerialApp, CWinApp) + //{{AFX_MSG_MAP(CSerialApp) + ON_COMMAND(ID_APP_ABOUT, OnAppAbout) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG_MAP + // Standard file based document commands + ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) + ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CSerialApp construction + +CSerialApp::CSerialApp() +{ + // TODO: add construction code here, + // Place all significant initialization in InitInstance +} + +///////////////////////////////////////////////////////////////////////////// +// The one and only CSerialApp object + +CSerialApp theApp; +static HINSTANCE g_hRichEdDLL=NULL; + +///////////////////////////////////////////////////////////////////////////// +// CSerialApp initialization + +BOOL CSerialApp::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 + + // Change the registry key under which our settings are stored. + // You should modify this string to be something appropriate + // such as the name of your company or organization. + SetRegistryKey(_T("Local AppWizard-Generated Applications")); + + LoadStdProfileSettings(0); // Load standard INI file options (including MRU) + + // Register the application's document templates. Document templates + // serve as the connection between documents, frame windows and views. + + CSingleDocTemplate* pDocTemplate; + pDocTemplate = new CSingleDocTemplate( + IDR_MAINFRAME, + RUNTIME_CLASS(CSerialDoc), + RUNTIME_CLASS(CMainFrame), // main SDI frame window + RUNTIME_CLASS(CSerialView)); + AddDocTemplate(pDocTemplate); + + // Initialize RichEdit control + // for About Dialog + if(g_hRichEdDLL==NULL) + { + g_hRichEdDLL=::LoadLibrary(_T("RICHED32.DLL")); + if(g_hRichEdDLL==NULL) + TRACE(_T("Cannot load library to display RichEditTextControl")); + } + + // Parse command line for standard shell commands, DDE, file open + CCommandLineInfo cmdInfo; + ParseCommandLine(cmdInfo); + + // Dispatch commands specified on the command line + if (!ProcessShellCommand(cmdInfo)) + return FALSE; + + // The one and only window has been initialized, so show and update it. + m_pMainWnd->ShowWindow(SW_SHOW); + m_pMainWnd->UpdateWindow(); + + return TRUE; +} + +// App command to run the dialog +void CSerialApp::OnAppAbout() +{ + CUTSampleAboutDlg aboutDlg(IDR_MAINFRAME, ID_DESCRIPTION_FILE); + aboutDlg.DoModal(); +} + +///////////////////////////////////////////////////////////////////////////// +// CSerialApp commands + +int CSerialApp::ExitInstance() +{ + // TODO: Add your specialized code here and/or call the base class + + // unload the library + if(g_hRichEdDLL!=NULL) + ::FreeLibrary(g_hRichEdDLL); + + return CWinApp::ExitInstance(); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/Serial.dsp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/Serial.dsp new file mode 100644 index 0000000..c817ab3 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/Serial.dsp @@ -0,0 +1,358 @@ +# Microsoft Developer Studio Project File - Name="Serial" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=Serial - Win32 Unicode_Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "Serial.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "Serial.mak" CFG="Serial - Win32 Unicode_Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "Serial - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "Serial - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE "Serial - Win32 Release_Shared" (based on "Win32 (x86) Application") +!MESSAGE "Serial - Win32 Unicode_Debug" (based on "Win32 (x86) Application") +!MESSAGE "Serial - Win32 Unicode_Release" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "Serial - Win32 Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /i "..\..\include" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"Serial.exe" + +!ELSEIF "$(CFG)" == "Serial - Win32 Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /FR /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /i "..\..\include" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"Serial.exe" /pdbtype:sept + +!ELSEIF "$(CFG)" == "Serial - Win32 Release_Shared" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Serial__" +# PROP BASE Intermediate_Dir "Serial__" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release_Shared" +# PROP Intermediate_Dir "Release_Shared" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /i "..\..\include" /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"Serial.exe" + +!ELSEIF "$(CFG)" == "Serial - Win32 Unicode_Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Serial_0" +# PROP BASE Intermediate_Dir "Serial_0" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Unicode_Debug" +# PROP Intermediate_Dir "Unicode_Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W4 /Gm /GX /Zi /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /FR /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_UNICODE" /FR /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /i "..\..\include" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"Serial.exe" /pdbtype:sept +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /debug /machine:I386 /out:"Serial.exe" /pdbtype:sept + +!ELSEIF "$(CFG)" == "Serial - Win32 Unicode_Release" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Serial_1" +# PROP BASE Intermediate_Dir "Serial_1" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Unicode_Release" +# PROP Intermediate_Dir "Unicode_Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /i "..\..\include" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /out:"Serial.exe" +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /machine:I386 /out:"Serial.exe" + +!ENDIF + +# Begin Target + +# Name "Serial - Win32 Release" +# Name "Serial - Win32 Debug" +# Name "Serial - Win32 Release_Shared" +# Name "Serial - Win32 Unicode_Debug" +# Name "Serial - Win32 Unicode_Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Group "UTSource" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\source\OXCRCChk.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\source\OXSCCFG.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\source\OXSCEXCP.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\source\OXSCFILE.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\source\OXSCSTP.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\include\OXSERCOM.RC +# PROP Exclude_From_Build 1 +# End Source File +# Begin Source File + +SOURCE=..\..\source\OXSRLZR.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\UTSampleAbout\UTSampleAbout.cpp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\Globals.cpp +# End Source File +# Begin Source File + +SOURCE=.\MainFrame.cpp +# End Source File +# Begin Source File + +SOURCE=.\SendView.cpp +# End Source File +# Begin Source File + +SOURCE=.\Serial.cpp +# End Source File +# Begin Source File + +SOURCE=.\Serial.rc +# End Source File +# Begin Source File + +SOURCE=.\SerialDoc.cpp +# End Source File +# Begin Source File + +SOURCE=.\SerialView.cpp +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# Begin Source File + +SOURCE=.\TimeoutDlg.cpp +# End Source File +# Begin Source File + +SOURCE=.\TransferDlg.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\Globals.h +# End Source File +# Begin Source File + +SOURCE=.\MainFrame.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\oxcrcchk.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXCRCChk.inl +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXSCCFG.H +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXSCCNST.H +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\oxscexcp.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\oxscfile.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXSCSTP.H +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\Oxsercom.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\oxsrlzr.h +# End Source File +# Begin Source File + +SOURCE=.\Resource.h +# End Source File +# Begin Source File + +SOURCE=.\SendView.h +# End Source File +# Begin Source File + +SOURCE=.\Serial.h +# End Source File +# Begin Source File + +SOURCE=.\SerialDoc.h +# End Source File +# Begin Source File + +SOURCE=.\SerialView.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# Begin Source File + +SOURCE=.\TimeoutDlg.h +# End Source File +# Begin Source File + +SOURCE=.\TransferDlg.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\res\Serial.ico +# End Source File +# Begin Source File + +SOURCE=.\res\Serial.rc2 +# End Source File +# Begin Source File + +SOURCE=.\res\SerialDoc.ico +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ReadMe.txt +# End Source File +# End Target +# End Project diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/Serial.dsw b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/Serial.dsw new file mode 100644 index 0000000..c5eb3bb --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/Serial.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "Serial"=.\Serial.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/Serial.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/Serial.h new file mode 100644 index 0000000..7136521 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/Serial.h @@ -0,0 +1,51 @@ +// Serial.h : main header file for the SERIAL application +// + +#if !defined(AFX_SERIAL_H__172F957E_051F_11D2_88B0_0080C859A484__INCLUDED_) +#define AFX_SERIAL_H__172F957E_051F_11D2_88B0_0080C859A484__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols + +///////////////////////////////////////////////////////////////////////////// +// CSerialApp: +// See Serial.cpp for the implementation of this class +// + +class CSerialApp : public CWinApp +{ +public: + CSerialApp(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CSerialApp) + public: + virtual BOOL InitInstance(); + virtual int ExitInstance(); + //}}AFX_VIRTUAL + +// Implementation + + //{{AFX_MSG(CSerialApp) + afx_msg void OnAppAbout(); + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_SERIAL_H__172F957E_051F_11D2_88B0_0080C859A484__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/Serial.rc b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/Serial.rc new file mode 100644 index 0000000..90b3304 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/Serial.rc @@ -0,0 +1,423 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif\r\n" + "#include ""res\\Serial.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "#include ""oxsercom.rc"" // SerialComm class components\r\n" + "#include ""UTSampleAbout.rc"" // UT About box\r\n" + "#endif\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON DISCARDABLE "res\\Serial.ico" +IDR_SERIALTYPE ICON DISCARDABLE "res\\SerialDoc.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_MAINFRAME MENU PRELOAD DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&Connect", IDM_CONNECT + MENUITEM "&Disconnect", IDM_DISCONNECT + MENUITEM SEPARATOR + MENUITEM "&Receive", IDM_RECEIVE + MENUITEM "&Send...", IDM_SEND + MENUITEM SEPARATOR + MENUITEM "E&xit", ID_APP_EXIT + END + POPUP "&Tools" + BEGIN + MENUITEM "Serial COMM Setup...", IDM_SERIAL_SETUP + MENUITEM "Set Timeouts...", IDM_SET_TIMEOUT + END + POPUP "&Help" + BEGIN + MENUITEM "&About Serial...", ID_APP_ABOUT + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Accelerator +// + +IDR_MAINFRAME ACCELERATORS PRELOAD MOVEABLE PURE +BEGIN + "N", ID_FILE_NEW, VIRTKEY, CONTROL + "O", ID_FILE_OPEN, VIRTKEY, CONTROL + "S", ID_FILE_SAVE, VIRTKEY, CONTROL + "Z", ID_EDIT_UNDO, VIRTKEY, CONTROL + "X", ID_EDIT_CUT, VIRTKEY, CONTROL + "C", ID_EDIT_COPY, VIRTKEY, CONTROL + "V", ID_EDIT_PASTE, VIRTKEY, CONTROL + VK_BACK, ID_EDIT_UNDO, VIRTKEY, ALT + VK_DELETE, ID_EDIT_CUT, VIRTKEY, SHIFT + VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL + VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT + VK_F6, ID_NEXT_PANE, VIRTKEY + VK_F6, ID_PREV_PANE, VIRTKEY, SHIFT +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_TIMEOUT DIALOG DISCARDABLE 0, 0, 190, 71 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Set Timout Values" +FONT 8, "MS Sans Serif" +BEGIN + LTEXT "ReadTimeout:",IDC_STATIC,7,7,71,8 + EDITTEXT IDC_TIMEOUT_RX,7,17,71,14,ES_AUTOHSCROLL | ES_NUMBER + LTEXT "Write Timeout:",IDC_STATIC,7,38,47,8 + EDITTEXT IDC_TIMEOUT_TX,7,50,71,14,ES_AUTOHSCROLL | ES_NUMBER + DEFPUSHBUTTON "OK",IDOK,133,7,50,14 + PUSHBUTTON "Cancel",IDCANCEL,133,24,50,14 + LTEXT "milliseconds",IDC_STATIC,82,22,42,9 + LTEXT "milliseconds",IDC_STATIC,82,55,42,9 +END + +IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 245, 89 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "About Serial" +FONT 8, "MS Sans Serif" +BEGIN + ICON IDR_MAINFRAME,IDC_STATIC,11,7,21,20 + LTEXT "Serial Communication Sample",IDC_STATIC,40,6,119,8, + SS_NOPREFIX + LTEXT "Copyright (C) 1997-98 The Code Project",IDC_STATIC,40, + 24,155,8 + DEFPUSHBUTTON "OK",IDOK,206,7,32,14,WS_GROUP + LTEXT "Ultimate Toolbox development kit",IDC_STATIC,40,15,106, + 8 + GROUPBOX "Contacting The Code Project",IDC_STATIC,7,37,231,42 + LTEXT "Phone",IDC_STATIC,16,49,22,8 + LTEXT "EMail",IDC_STATIC,16,58,18,8 + LTEXT "WWW",IDC_STATIC,16,67,23,8 + LTEXT "+1 (416) 642 1998",IDC_STATIC,50,49,123,8 + LTEXT "sales@theUltimateToolbox.com",IDC_STATIC,50,58,100,8 + LTEXT "www.theUltimateToolbox.com",IDC_STATIC,50,67,95,8 +END + +IDD_TRANSFER DIALOG DISCARDABLE 0, 0, 284, 74 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Transfering file..." +FONT 8, "MS Sans Serif" +BEGIN + LTEXT "",IDC_TRANSFER_TEXT,7,7,270,19 + CONTROL "Progress1",IDC_TRANSFER_PROGRESS,"msctls_progress32", + WS_BORDER,7,34,270,14 + PUSHBUTTON "Cancel",IDCANCEL,227,53,50,14 + LTEXT "Press CANCEL at any time stop the transfer.",IDC_STATIC, + 7,58,199,9 +END + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "Serial MFC Application\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "Serial\0" + VALUE "LegalCopyright", "Copyright (C) 1998\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "Serial.EXE\0" + VALUE "ProductName", "Serial Application\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_TIMEOUT, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 183 + VERTGUIDE, 78 + VERTGUIDE, 82 + TOPMARGIN, 7 + BOTTOMMARGIN, 64 + HORZGUIDE, 31 + END + + IDD_ABOUTBOX, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 238 + TOPMARGIN, 7 + BOTTOMMARGIN, 82 + END + + IDD_TRANSFER, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 277 + TOPMARGIN, 7 + BOTTOMMARGIN, 67 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE PRELOAD DISCARDABLE +BEGIN + IDR_MAINFRAME "Serial - An Ultimate Toolbox Sample Application" +END + +STRINGTABLE PRELOAD DISCARDABLE +BEGIN + AFX_IDS_APP_TITLE "Serial" + AFX_IDS_IDLEMESSAGE "Ready" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_INDICATOR_EXT "EXT" + ID_INDICATOR_CAPS "CAP" + ID_INDICATOR_NUM "NUM" + ID_INDICATOR_SCRL "SCRL" + ID_INDICATOR_OVR "OVR" + ID_INDICATOR_REC "REC" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_NEW "Create a new document\nNew" + ID_FILE_OPEN "Open an existing document\nOpen" + ID_FILE_CLOSE "Close the active document\nClose" + ID_FILE_SAVE "Save the active document\nSave" + ID_FILE_SAVE_AS "Save the active document with a new name\nSave As" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_APP_ABOUT "Display program information, version number and copyright\nAbout" + ID_APP_EXIT "Quit the application; prompts to save documents\nExit" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_MRU_FILE1 "Open this document" + ID_FILE_MRU_FILE2 "Open this document" + ID_FILE_MRU_FILE3 "Open this document" + ID_FILE_MRU_FILE4 "Open this document" + ID_FILE_MRU_FILE5 "Open this document" + ID_FILE_MRU_FILE6 "Open this document" + ID_FILE_MRU_FILE7 "Open this document" + ID_FILE_MRU_FILE8 "Open this document" + ID_FILE_MRU_FILE9 "Open this document" + ID_FILE_MRU_FILE10 "Open this document" + ID_FILE_MRU_FILE11 "Open this document" + ID_FILE_MRU_FILE12 "Open this document" + ID_FILE_MRU_FILE13 "Open this document" + ID_FILE_MRU_FILE14 "Open this document" + ID_FILE_MRU_FILE15 "Open this document" + ID_FILE_MRU_FILE16 "Open this document" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_NEXT_PANE "Switch to the next window pane\nNext Pane" + ID_PREV_PANE "Switch back to the previous window pane\nPrevious Pane" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_WINDOW_SPLIT "Split the active window into panes\nSplit" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_EDIT_CLEAR "Erase the selection\nErase" + ID_EDIT_CLEAR_ALL "Erase everything\nErase All" + ID_EDIT_COPY "Copy the selection and put it on the Clipboard\nCopy" + ID_EDIT_CUT "Cut the selection and put it on the Clipboard\nCut" + ID_EDIT_FIND "Find the specified text\nFind" + ID_EDIT_PASTE "Insert Clipboard contents\nPaste" + ID_EDIT_REPEAT "Repeat the last action\nRepeat" + ID_EDIT_REPLACE "Replace specific text with different text\nReplace" + ID_EDIT_SELECT_ALL "Select the entire document\nSelect All" + ID_EDIT_UNDO "Undo the last action\nUndo" + ID_EDIT_REDO "Redo the previously undone action\nRedo" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_VIEW_STATUS_BAR "Show or hide the status bar\nToggle StatusBar" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_SCSIZE "Change the window size" + AFX_IDS_SCMOVE "Change the window position" + AFX_IDS_SCMINIMIZE "Reduce the window to an icon" + AFX_IDS_SCMAXIMIZE "Enlarge the window to full size" + AFX_IDS_SCNEXTWINDOW "Switch to the next document window" + AFX_IDS_SCPREVWINDOW "Switch to the previous document window" + AFX_IDS_SCCLOSE "Close the active window and prompts to save the documents" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_SCRESTORE "Restore the window to normal size" + AFX_IDS_SCTASKLIST "Activate Task List" + ID_DESCRIPTION_FILE "SerialInfo.rtf" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDM_SERIAL_SETUP "Setup comm serial variables" + IDM_CONFIG_LOAD "Load a previously saved comm configuration." + IDM_CONFIG_SAVE "Save the current comm config as a new filename" + IDM_TIMEOUT "Set timeout values for reading and writing on the port" + IDM_FILE_READ "Reads an incoming file" + IDM_FILE_WRITE "Writes an outgoing file" + IDM_PURGE_RX "Purges the receive queue" + IDM_PURGE_TX "Purges the transmit queue" + IDM_OPEN "Opens the serial communication device" + IDM_CLOSE "Closes the serial communication device" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDM_CONNECT "Opens the serial communication device" + IDM_DISCONNECT "Closes the serial communication device" + IDM_RECEIVE "Reads incoming files" + IDM_SEND "Writes an outgoing file (sends)" + IDM_SET_TIMEOUT "Set timeout values for reading and writing on the port" + IDM_OPTIONS_RECEIVE "Automatically receive incoming files" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif +#include "res\Serial.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +#include "oxsercom.rc" // SerialComm class components +#include "UTSampleAbout.rc" // UT About box +#endif +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/SerialDoc.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/SerialDoc.cpp new file mode 100644 index 0000000..c4790d3 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/SerialDoc.cpp @@ -0,0 +1,608 @@ +// SerialDoc.cpp : implementation of the CSerialDoc class +// + +#include "stdafx.h" +#include "Serial.h" +#include "SerialDoc.h" + +#include "MainFrame.h" +#include "SerialView.h" + +#include "TimeoutDlg.h" +#include "TransferDlg.h" + +#include "OXSCSTP.H" +#include "OXSCFILE.H" +#include "OXSCEXCP.H" + +#include "Globals.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +static TCHAR _szAllFilesFilter[] = _T("All Files (*.*)|*.*||"); + +typedef struct tagTHREADINFO +{ + COXSerialCommFile* pCommDevice; + HANDLE hEvent; + UINT msgOutput; + UINT msgBackspace; + HWND hWnd; +} THREADINFO, *PTHREADINFO, FAR* LPTHREADINFO; + + +///////////////////////////////////////////////////////////////////////////// +// CSerialDoc + +IMPLEMENT_DYNCREATE(CSerialDoc, CDocument) + +BEGIN_MESSAGE_MAP(CSerialDoc, CDocument) + //{{AFX_MSG_MAP(CSerialDoc) + ON_COMMAND(IDM_CONNECT, OnConnect) + ON_UPDATE_COMMAND_UI(IDM_CONNECT, OnUpdateConnect) + ON_COMMAND(IDM_DISCONNECT, OnDisconnect) + ON_UPDATE_COMMAND_UI(IDM_DISCONNECT, OnUpdateDisconnect) + ON_COMMAND(IDM_RECEIVE, OnReceive) + ON_UPDATE_COMMAND_UI(IDM_RECEIVE, OnUpdateReceive) + ON_COMMAND(IDM_SEND, OnSend) + ON_UPDATE_COMMAND_UI(IDM_SEND, OnUpdateSend) + ON_COMMAND(IDM_SERIAL_SETUP, OnSerialSetup) + ON_UPDATE_COMMAND_UI(IDM_SERIAL_SETUP, OnUpdateSerialSetup) + ON_COMMAND(IDM_SET_TIMEOUT, OnSetTimeout) + ON_UPDATE_COMMAND_UI(IDM_SET_TIMEOUT, OnUpdateSetTimeout) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CSerialDoc construction/destruction + +CSerialDoc::CSerialDoc() +{ + m_pCommFile = NULL; + m_pCommConfig = NULL; + + m_dwTxTimeout = + m_dwRxTimeout = 200L; + + m_pIncomingTextThread = NULL; +} + +CSerialDoc::~CSerialDoc() +{ + ASSERT_VALID(m_pCommFile); + ASSERT_VALID(m_pCommConfig); + + if (m_pIncomingTextThread != NULL) + { + m_pIncomingTextThread->ResumeThread(); + m_eventClose.SetEvent(); + ::WaitForSingleObject(m_pIncomingTextThread->m_hThread, INFINITE); + } + + if (m_pCommConfig != NULL) + { + delete m_pCommConfig; + m_pCommConfig = NULL; + } + + if (m_pCommFile != NULL) + { + delete m_pCommFile; + m_pCommFile = NULL; + } +} + +///////////////////////////////////////////////////////////////////////////// +// CSerialDoc serialization + +void CSerialDoc::Serialize(CArchive& ar) +{ + // CEditView contains an edit control which handles all serialization + ((CEditView*) m_viewList.GetHead())->SerializeRaw(ar); +} + +///////////////////////////////////////////////////////////////////////////// +// CSerialDoc diagnostics + +#ifdef _DEBUG +void CSerialDoc::AssertValid() const +{ + CDocument::AssertValid(); +} + +void CSerialDoc::Dump(CDumpContext& dc) const +{ + CDocument::Dump(dc); +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CSerialDoc helpers + +inline CSerialView* CSerialDoc::GetView() const +{ + // Returns a pointer to the "Terminal" view + + ASSERT_VALID(this); + ASSERT_VALID(AfxGetMainWnd()); + + POSITION pos = GetFirstViewPosition(); + + if (pos != NULL) + { + CSerialView* pView = (CSerialView*) GetNextView(pos); + ASSERT_VALID(pView); + ASSERT_KINDOF(CSerialView, pView); + + return pView; + } + + ASSERT(FALSE); + return NULL; +} + +BOOL CSerialDoc::SendKeyDown(UINT nChar) +{ + // If a connection is open SendKeyDown will send nChar to the receiving side's + // "Terminal" view. If the connection is closed, nothing happens. + // + // + + if (!m_pCommFile->IsOpen()) + return FALSE; + + if (nChar == VK_RETURN) + { + GetView()->Output(_T("\r\n")); + m_pCommFile->Write(_T("\r\n"), sizeof(_T("\r\n"))); + } + else if (nChar == VK_BACK) + { + GetView()->Backspace(); + m_pCommFile->Write(_T("\b"), sizeof(_T("\b"))); + } + else + { + GetView()->Output(_T("%c"), (char) nChar); + m_pCommFile->Write(&nChar, sizeof(nChar)); + } + + return TRUE; +} + +///////////////////////////////////////////////////////////////////////////// +// Thread & Thread helper functions + +DWORD ReadEventBytesFromPort(COXSerialCommFile* pCommHandle, LPBYTE pbBuffer, DWORD dwLength) +{ + // + // pCommHandle - a pointer to a COXSerialCommFile object from which to receive + // pbBuffer - buffer to receive incoming data + // dwLength - size of pbBuffer + // + // + // This function will determine if there is any data to be read on pCommHandle, if + // there is it is read into pbBuffer. + + DWORD dwBytesToRead = 0; + + TRY + { + dwBytesToRead = pCommHandle->GetBytesToRead(); + + if (dwBytesToRead > dwLength) + dwBytesToRead = dwLength; + + return pCommHandle->Read(pbBuffer, dwBytesToRead); + } + CATCH(COXSerialCommException, e) + { + TRACE(_T("There was an error trying to read from the COMM port.\n")); + + e->ReportError(MB_OK | MB_ICONSTOP); + } + END_CATCH + + return 0; +} + +UINT IncomingTextThread(LPVOID pParam) +{ + // + // pParam - pointer to THREADINFO structure + // + // This thread will monitor incoming data. Any incoming data is sent to the + // "Terminal" window as output text. + // + // This thread is suspended and resumed to minimize overhead. + + PTHREADINFO pInfo = NULL; + pInfo = (PTHREADINFO) pParam; + + if (pInfo == NULL) + return (UINT)-1; + + //////////////////////////////////////////////////////////////////////////// + // Monitor incoming data + + BYTE bBuffer[256]; + DWORD dwBytesRead = 0; + + while (WaitForSingleObject(pInfo->hEvent, 0) != WAIT_OBJECT_0) + { + bBuffer[0] = 0; + dwBytesRead = ReadEventBytesFromPort(pInfo->pCommDevice, bBuffer, sizeof(bBuffer)); + ASSERT(dwBytesRead <= sizeof(bBuffer)); + + if (dwBytesRead > 0) + { + if (bBuffer[0] == _T('\b')) + SendMessage(pInfo->hWnd, pInfo->msgBackspace, 0, 0); + else + SendMessage(pInfo->hWnd, pInfo->msgOutput, 0, (LPARAM) bBuffer); + } + } + + delete pInfo; + + return 0; +} + +///////////////////////////////////////////////////////////////////////////// +// CSerialDoc overrides + +BOOL CSerialDoc::SaveModified() +{ + return TRUE; // don't allow saving +} + +BOOL CSerialDoc::OnNewDocument() +{ + if (!CDocument::OnNewDocument()) + return FALSE; + + ((CEditView*) m_viewList.GetHead())->SetWindowText(NULL); + + + // + // Create the COXSerialCommFile and COXSerialCommConfig objects + // + ASSERT(m_pCommConfig == NULL); + if (m_pCommConfig == NULL && (m_pCommConfig = new COXSerialCommConfig()) == NULL) + { + TRACE(_T("Unable to allocate new COXSerialCommConfig object\n")); + return -1; + } + ASSERT_VALID(m_pCommConfig); + + ASSERT(m_pCommFile == NULL); + if (m_pCommFile == NULL && (m_pCommFile = new COXSerialCommFile()) == NULL) + { + TRACE(_T("Unable to allocate new COXSerialCommFile object\n")); + return -1; + } + ASSERT_VALID(m_pCommFile); + + return TRUE; +} + +///////////////////////////////////////////////////////////////////////////// +// CSerialDoc message handlers + +void CSerialDoc::OnConnect() +{ + ASSERT_VALID(m_pCommFile); + ASSERT_VALID(m_pCommConfig); + + if (m_pCommFile == NULL || m_pCommConfig == NULL) + return; + + // + // Attempt to make a connection + // + COXSerialCommException e; + if (!m_pCommFile->Open(*m_pCommConfig, &e)) + { + TRACE(_T("Unable to open serial communication device\n")); + + TCHAR szBuffer[256]; + + e.GetErrorMessage(szBuffer, sizeof(szBuffer)); + GetView()->Output(szBuffer); + GetView()->Output(_T("\r\n")); + + return; + } + else + { + // + // setup which events we want to recieve on this comm port + // + DWORD dwEventMask; + if (m_pCommFile->GetCommMask(dwEventMask)) + { + dwEventMask |= EV_RXCHAR; + VERIFY(m_pCommFile->SetCommMask(dwEventMask)); + } + else + { + GetView()->Output(_T("Error (#%d): Unable to set event states on %s.\r\n"), ::GetLastError(), m_pCommConfig->GetCommName()); + } + + GetView()->Output(_T("A serial connection has been established on port %s.\r\n"), m_pCommConfig->GetCommName()); + } + + // + // Create the new thread (if not created before); If the user has already connected + // before we resume the suspended thread. + // + if (m_pIncomingTextThread == NULL) + { + PTHREADINFO pInfo = new THREADINFO; + if (pInfo == NULL) + return; + + pInfo->hEvent = (HANDLE) m_eventClose; + pInfo->pCommDevice = m_pCommFile; + pInfo->msgOutput = IDM_OUTPUT; + pInfo->msgBackspace = IDM_BACKSPACE; + pInfo->hWnd = GetView()->GetSafeHwnd(); + + m_pIncomingTextThread = AfxBeginThread(IncomingTextThread, pInfo, THREAD_PRIORITY_IDLE); + } + else + { + // Thread already exists, resume it + ASSERT_VALID(m_pIncomingTextThread); + m_pIncomingTextThread->ResumeThread(); + } +} + +void CSerialDoc::OnUpdateConnect(CCmdUI* pCmdUI) +{ + ASSERT_VALID(m_pCommFile); + ASSERT_VALID(m_pCommConfig); + + if (m_pCommFile == NULL || m_pCommConfig == NULL) + pCmdUI->Enable(FALSE); + else + pCmdUI->Enable(m_pCommFile->IsOpen() == FALSE); +} + +void CSerialDoc::OnDisconnect() +{ + ASSERT_VALID(m_pCommFile); + ASSERT_VALID(m_pCommConfig); + ASSERT_VALID(m_pIncomingTextThread); + + if (m_pCommFile == NULL || m_pCommConfig == NULL) + return; + + // + // Close the communications port and suspend the IncomingTextThread + // (the thread is closed in the destructor) + // + m_pIncomingTextThread->SuspendThread(); + + m_pCommFile->Close(); + GetView()->Output(_T("The communication port has been closed.\r\n")); +} + +void CSerialDoc::OnUpdateDisconnect(CCmdUI* pCmdUI) +{ + ASSERT_VALID(m_pCommFile); + ASSERT_VALID(m_pCommConfig); + + if (m_pCommFile == NULL || m_pCommConfig == NULL) + pCmdUI->Enable(FALSE); + else + pCmdUI->Enable(m_pCommFile->IsOpen()); +} + +void CSerialDoc::OnReceive() +{ + ASSERT_VALID(m_pCommFile); + ASSERT_VALID(m_pCommConfig); + ASSERT_VALID(m_pIncomingTextThread); + + if (m_pCommFile == NULL || m_pCommConfig == NULL) + { + GetView()->Output(_T("Invalid handles, unable to read.\r\n")); + return; + } + + ASSERT(m_pCommFile->IsOpen() == TRUE); + + // + // Clear the send and receive queues + m_pCommFile->PurgeRx(); + m_pCommFile->PurgeTx(); + + GetView()->Output(_T("Waiting for incoming files...\r\n")); + + CTransferDlg dlg; + + // Setup the transfer dialog + // + dlg.m_bSending = FALSE; + dlg.m_pCommFile = m_pCommFile; + dlg.m_pFile = NULL; + + ///////////////// + // Suspend the incoming Text thread + m_pIncomingTextThread->SuspendThread(); + + // + // Show the dialog + // (the dialog will automatically terminate when the transfer is done) + // + if (dlg.DoModal() == IDCANCEL) + { + m_pCommFile->PurgeTx(); + m_pCommFile->PurgeRx(); + GetView()->Output(_T("Receive file cancelled by user.\r\n")); + } + else + { + GetView()->Output(dlg.m_sMessage); + } + + ///////////////// + // Resume the incoming Text thread + m_pIncomingTextThread->ResumeThread(); +} + +void CSerialDoc::OnUpdateReceive(CCmdUI* pCmdUI) +{ + ASSERT_VALID(m_pCommFile); + ASSERT_VALID(m_pCommConfig); + + if (m_pCommFile == NULL || m_pCommConfig == NULL) + pCmdUI->Enable(FALSE); + else + pCmdUI->Enable(m_pCommFile->IsOpen()); +} + +void CSerialDoc::OnSend() +{ + ASSERT_VALID(m_pCommFile); + ASSERT_VALID(m_pCommConfig); + ASSERT_VALID(m_pIncomingTextThread); + + if (m_pCommFile == NULL || m_pCommConfig == NULL) + { + GetView()->Output(_T("Invalid handles, unable to write.\r\n")); + return; + } + + ASSERT(m_pCommFile->IsOpen() == TRUE); + + // + // Purge the incoming and outgoing queues + // + m_pCommFile->PurgeRx(); + m_pCommFile->PurgeTx(); + + // + // Prompt the user for the file to send + // + CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, _szAllFilesFilter); + if (dlg.DoModal() == IDOK) + { + ///////////////// + // Suspend the Incoming text thread + m_pIncomingTextThread->SuspendThread(); + + CFile f; + if (f.Open(dlg.GetPathName(), CFile::modeRead)) + { + GetView()->Output(_T("Sending file %s which is %d bytes long; "), dlg.GetPathName(), f.GetLength()); + + CTransferDlg tdlg; + + // + // setup the transfer dialog + // + tdlg.m_sMessage.Format(_T("Waiting for other side to confirm transfer")); + tdlg.m_sFilename = dlg.GetFileName(); + tdlg.m_pCommFile = m_pCommFile; + tdlg.m_pFile = &f; + tdlg.m_bSending = TRUE; + + // + // Show the dialog + // + if (tdlg.DoModal() == IDCANCEL) + { + m_pCommFile->PurgeTx(); + m_pCommFile->PurgeRx(); + GetView()->Output(_T("Transfer cancelled.\r\n")); + } + else + { + GetView()->Output(tdlg.m_sMessage); + } + } + else + GetView()->Output(_T("Error: Unable to send; There was an error opening the file.\r\n")); + + ///////////////// + // Resume the Incoming Text Thread + m_pIncomingTextThread->ResumeThread(); + } +} + +void CSerialDoc::OnUpdateSend(CCmdUI* pCmdUI) +{ + ASSERT_VALID(m_pCommFile); + ASSERT_VALID(m_pCommConfig); + + if (m_pCommFile == NULL || m_pCommConfig == NULL) + pCmdUI->Enable(FALSE); + else + pCmdUI->Enable(m_pCommFile->IsOpen()); +} + +void CSerialDoc::OnSerialSetup() +{ + ASSERT_VALID(m_pCommConfig); + + if (m_pCommConfig != NULL) + { + // + // Allow the user to edit COMM properties + // + // COXSerialCommConfig takes care of data validation + m_pCommConfig->DoConfigDialog(); + } +} + +void CSerialDoc::OnUpdateSerialSetup(CCmdUI* pCmdUI) +{ + ASSERT_VALID(m_pCommFile); + ASSERT_VALID(m_pCommConfig); + + if (m_pCommFile == NULL || m_pCommConfig == NULL) + pCmdUI->Enable(FALSE); + else + pCmdUI->Enable(!m_pCommFile->IsOpen()); +} + +void CSerialDoc::OnSetTimeout() +{ + ASSERT_VALID(m_pCommConfig); + + if (m_pCommConfig != NULL) + { + // + // Allow user to change Send/Receive timeouts by showing the CTimeoutDlg + // dialog. + // + CTimeoutDlg dlg; + + dlg.m_dwRxTimeout = m_dwRxTimeout; + dlg.m_dwTxTimeout = m_dwTxTimeout; + + if (dlg.DoModal() == IDOK) + { + m_dwRxTimeout = dlg.m_dwRxTimeout; + m_dwTxTimeout = dlg.m_dwTxTimeout; + GetView()->Output(_T("Timeout values set to Rx: %d, Tx: %d.\r\n"), m_dwRxTimeout, m_dwTxTimeout); + } + } +} + +void CSerialDoc::OnUpdateSetTimeout(CCmdUI* pCmdUI) +{ + ASSERT_VALID(m_pCommFile); + ASSERT_VALID(m_pCommConfig); + + if (m_pCommFile == NULL || m_pCommConfig == NULL) + pCmdUI->Enable(FALSE); + else + pCmdUI->Enable(!m_pCommFile->IsOpen()); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/SerialDoc.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/SerialDoc.h new file mode 100644 index 0000000..a6f83a6 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/SerialDoc.h @@ -0,0 +1,83 @@ +// SerialDoc.h : interface of the CSerialDoc class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_SERIALDOC_H__172F9584_051F_11D2_88B0_0080C859A484__INCLUDED_) +#define AFX_SERIALDOC_H__172F9584_051F_11D2_88B0_0080C859A484__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +class COXSerialCommConfig; +class COXSerialCommFile; +class CSerialView; + +class CSerialDoc : public CDocument +{ +protected: // create from serialization only + CSerialDoc(); + DECLARE_DYNCREATE(CSerialDoc) + +// Attributes +public: + CSerialView* GetView() const; + BOOL SendKeyDown(UINT nChar); + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CSerialDoc) + public: + virtual BOOL OnNewDocument(); + virtual void Serialize(CArchive& ar); + protected: + virtual BOOL SaveModified(); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CSerialDoc(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + COXSerialCommFile* m_pCommFile; + COXSerialCommConfig* m_pCommConfig; + + DWORD m_dwTxTimeout; + DWORD m_dwRxTimeout; + + CEvent m_eventClose; + + CWinThread* m_pIncomingTextThread; + +// Generated message map functions +protected: + //{{AFX_MSG(CSerialDoc) + afx_msg void OnConnect(); + afx_msg void OnUpdateConnect(CCmdUI* pCmdUI); + afx_msg void OnDisconnect(); + afx_msg void OnUpdateDisconnect(CCmdUI* pCmdUI); + afx_msg void OnReceive(); + afx_msg void OnUpdateReceive(CCmdUI* pCmdUI); + afx_msg void OnSend(); + afx_msg void OnUpdateSend(CCmdUI* pCmdUI); + afx_msg void OnSerialSetup(); + afx_msg void OnUpdateSerialSetup(CCmdUI* pCmdUI); + afx_msg void OnSetTimeout(); + afx_msg void OnUpdateSetTimeout(CCmdUI* pCmdUI); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_SERIALDOC_H__172F9584_051F_11D2_88B0_0080C859A484__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/SerialInfo.rtf b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/SerialInfo.rtf new file mode 100644 index 0000000000000000000000000000000000000000..d27b19ae094213a66e0c3542dc9f5e517f001c4f GIT binary patch literal 1674 zcmcIkOK;mS4BmOb{sT`N(4vFmY;Ca|g9R9d4n@<`po=WiwpP6+$!*gh|9zC=yxJhQ z0ft``$?qdSa>;ybMvR*v^G&#RRDLa4jZIUed*szsSu9y&O^lVImx49nNrnJ7bC{DO z%+bqcvLe%nHQs7&SR*>_1I7~O3td^2t>xD0{NEDprN#ii@CojcPd+jpj=VLlKD=Kt zVU_iSf_bb9)_O!!uuAn4HR~N4L&e92KBDP+}1&EXeyzQejRGY?n5LUbN*{+Qn45Lf<2;&ke88eLG+~%4L43CAFawU32Zq@)@8nyKcsFbBH=N>mwQ8`aUnD@?+7ITlROM$q` zS)El2W3{Bu6Yet}VopSJCWTD0;HtHxf=-{z`<;gcM7t-a6ItfbbJ=#0g!DvhhUxiv zR-13Qzzw`Ns^2Mizq#94NaIfAZWH^d)w(xQtSdQ4ec!9Rrs)|F9{k@<$ySgD<}W*^ z|E^C#tIb;l3)_1LYj!ktd&IJ^I7y}YgCYX8i5iAAaOb?`qMK~c9@AQy;C+GK%xHbg zNMA!P`I4)5G6qc)()`tc&jPdBprci!XfK@ft9q&G3u&MyUi6H(ZhhJ;N14*jPRk~o qj7kM-WZV07*EcS}JyD7tx#npaNu;$558FrwI-^A&b~>Xy{q7%6IsKindOf(RUNTIME_CLASS(CSerialDoc))); + return (CSerialDoc*)m_pDocument; +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CSerialView message handlers + +void CSerialView::OnInitialUpdate() +{ + CEditView::OnInitialUpdate(); + + GetEditCtrl().SetReadOnly(TRUE); + + // + // Create the font for this view + // + if (m_font.m_hObject == NULL) + { + if (m_font.CreatePointFont(95, _T("Fixedsys"))) + SetFont(&m_font); + } + + // Output some text + Output(_T("Serial - An Ultimate Toolbox Sample Application\r\n")); + Output(_T("Copyright 1998 by The Code Project - http://www.theUltimateToolbox.com\r\n")); + Output(_T("----------------------------------------------------------\r\n\r\n\r\n")); +} + +HBRUSH CSerialView::CtlColor(CDC* pDC, UINT nCtlColor) +{ + UNREFERENCED_PARAMETER(nCtlColor); + + // + // Use custom colours to paint the control + // + pDC->SetTextColor(m_clrText); + pDC->SetBkColor(m_clrBkgnd); + return m_brBkgnd; +} + +void CSerialView::Output(LPCTSTR pszOutput, ...) +{ + // + // void Output(LPCTSTR pszOutput, ...) + // + // Outputs a formatted string to the edit window + // + // IN + // pszOutput: A format-control string. + // + // OUT + // none + // + // RETURN + // none + + int nLength = GetEditCtrl().GetWindowTextLength(); + TCHAR szBuffer[1024]; + + va_list argptr; + + va_start(argptr, pszOutput); + _vstprintf(szBuffer, pszOutput, argptr); + va_end(argptr); + GetEditCtrl().SetSel(nLength, nLength); + GetEditCtrl().ReplaceSel(szBuffer); +} + +void CSerialView::Backspace() +{ + int nLength = GetEditCtrl().GetWindowTextLength(); + + GetEditCtrl().SetReadOnly(FALSE); + GetEditCtrl().SetSel(nLength - 1, nLength); + GetEditCtrl().Clear(); + GetEditCtrl().SetReadOnly(TRUE); +} + +LONG CSerialView::OnOutput(WPARAM wParam, LPARAM lParam) +{ + UNREFERENCED_PARAMETER(wParam); + + // + // This message is sent from the IncomingTextThread function + // on receipt of an incoming character notification. The + // character (string) is pointed to by lParam + Output((LPCTSTR) lParam); + return 0; +} + +LONG CSerialView::OnBackspace(WPARAM wParam, LPARAM lParam) +{ + UNREFERENCED_PARAMETER(wParam); + UNREFERENCED_PARAMETER(lParam); + + // + // This message is sent from the IncomingTextThread function + // on receipt of an incoming character notification. The + // character is always the backspace character + Backspace(); + return 0; +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/SerialView.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/SerialView.h new file mode 100644 index 0000000..9902b8c --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/SerialView.h @@ -0,0 +1,78 @@ +// SerialView.h : interface of the CSerialView class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_SERIALVIEW_H__172F9586_051F_11D2_88B0_0080C859A484__INCLUDED_) +#define AFX_SERIALVIEW_H__172F9586_051F_11D2_88B0_0080C859A484__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#define IDM_OUTPUT (WM_USER + 100) +#define IDM_BACKSPACE (WM_USER + 101) + +class CSerialDoc; + +class CSerialView : public CEditView +{ +protected: // create from serialization only + CSerialView(); + DECLARE_DYNCREATE(CSerialView) + +// Attributes +public: + CSerialDoc* GetDocument(); + +// Operations +public: + void Output(LPCTSTR pszOutput, ...); + void Backspace(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CSerialView) + public: + virtual void OnDraw(CDC* pDC); // overridden to draw this view + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + virtual void OnInitialUpdate(); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CSerialView(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + CFont m_font; + CBrush m_brBkgnd; + + COLORREF m_clrText; + COLORREF m_clrBkgnd; + + +// Generated message map functions +protected: + afx_msg LONG OnOutput(WPARAM wParam, LPARAM lParam); + afx_msg LONG OnBackspace(WPARAM wParam, LPARAM lParam); + + //{{AFX_MSG(CSerialView) + afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +#ifndef _DEBUG // debug version in SerialView.cpp +inline CSerialDoc* CSerialView::GetDocument() + { return (CSerialDoc*)m_pDocument; } +#endif + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_SERIALVIEW_H__172F9586_051F_11D2_88B0_0080C859A484__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/StdAfx.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/StdAfx.cpp new file mode 100644 index 0000000..28e1767 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/StdAfx.cpp @@ -0,0 +1,6 @@ +// stdafx.cpp : source file that includes just the standard includes +// Serial.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/StdAfx.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/StdAfx.h new file mode 100644 index 0000000..fd4017d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/StdAfx.h @@ -0,0 +1,26 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#if !defined(AFX_STDAFX_H__172F9580_051F_11D2_88B0_0080C859A484__INCLUDED_) +#define AFX_STDAFX_H__172F9580_051F_11D2_88B0_0080C859A484__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers + +#include // MFC core and standard components +#include // MFC extensions +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for Windows Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + +#include + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_STDAFX_H__172F9580_051F_11D2_88B0_0080C859A484__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/TimeoutDlg.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/TimeoutDlg.cpp new file mode 100644 index 0000000..05abfd8 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/TimeoutDlg.cpp @@ -0,0 +1,82 @@ +// TimeoutDlg.cpp : implementation file +// + +#include "stdafx.h" +#include "Serial.h" +#include "TimeoutDlg.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CTimeoutDlg dialog + + +CTimeoutDlg::CTimeoutDlg(CWnd* pParent /*=NULL*/) + : CDialog(CTimeoutDlg::IDD, pParent) +{ + //{{AFX_DATA_INIT(CTimeoutDlg) + // NOTE: the ClassWizard will add member initialization here + //}}AFX_DATA_INIT + + m_dwRxTimeout = + m_dwTxTimeout = 0; +} + + +void CTimeoutDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CTimeoutDlg) + // NOTE: the ClassWizard will add DDX and DDV calls here + //}}AFX_DATA_MAP +} + + +BEGIN_MESSAGE_MAP(CTimeoutDlg, CDialog) + //{{AFX_MSG_MAP(CTimeoutDlg) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CTimeoutDlg message handlers + +void CTimeoutDlg::OnOK() +{ + UpdateData(TRUE); + CString sBuffer; + + // + // Retreive the dialog data + // + GetDlgItemText(IDC_TIMEOUT_RX, sBuffer); + m_dwRxTimeout = _ttol(sBuffer); + + GetDlgItemText(IDC_TIMEOUT_TX, sBuffer); + m_dwTxTimeout = _ttol(sBuffer); + + CDialog::OnOK(); +} + +BOOL CTimeoutDlg::OnInitDialog() +{ + CDialog::OnInitDialog(); + + // + // Set the dialog data + // + TCHAR szBuffer[20]; + _ltot(m_dwRxTimeout, szBuffer, 10); + SetDlgItemText(IDC_TIMEOUT_RX, szBuffer); + + _ltot(m_dwTxTimeout, szBuffer, 10); + SetDlgItemText(IDC_TIMEOUT_TX, szBuffer); + + UpdateData(FALSE); + + return TRUE; // return TRUE unless you set the focus to a control + // EXCEPTION: OCX Property Pages should return FALSE +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/TimeoutDlg.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/TimeoutDlg.h new file mode 100644 index 0000000..a24e55b --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/TimeoutDlg.h @@ -0,0 +1,49 @@ +#if !defined(AFX_TIMEOUTDLG_H__172F958D_051F_11D2_88B0_0080C859A484__INCLUDED_) +#define AFX_TIMEOUTDLG_H__172F958D_051F_11D2_88B0_0080C859A484__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// TimeoutDlg.h : header file +// + +///////////////////////////////////////////////////////////////////////////// +// CTimeoutDlg dialog + +class CTimeoutDlg : public CDialog +{ +// Construction +public: + CTimeoutDlg(CWnd* pParent = NULL); // standard constructor + +// Dialog Data + //{{AFX_DATA(CTimeoutDlg) + enum { IDD = IDD_TIMEOUT }; + // NOTE: the ClassWizard will add data members here + //}}AFX_DATA + + DWORD m_dwRxTimeout; + DWORD m_dwTxTimeout; + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CTimeoutDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + + // Generated message map functions + //{{AFX_MSG(CTimeoutDlg) + virtual void OnOK(); + virtual BOOL OnInitDialog(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_TIMEOUTDLG_H__172F958D_051F_11D2_88B0_0080C859A484__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/TransferDlg.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/TransferDlg.cpp new file mode 100644 index 0000000..cce634f --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/TransferDlg.cpp @@ -0,0 +1,398 @@ +// TransferDlg.cpp : implementation file +// + +#include "stdafx.h" +#include "serial.h" +#include "TransferDlg.h" + +#include "OXSCFILE.H" +#include "OXCRCCHK.H" + +#include "Globals.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +#define IDM_START_SENDING (WM_USER + 10) +#define IDM_START_RECEIVING (WM_USER + 11) + +//#define __USE_MESSAGES +// +// Uncomment the above directive if you wish MESSAGE-ing between the two +// sides enabled. Obviosly a "Real" protocol would implement such a device but this +// application is only intended as a sample and hence does not cover advanced +// topics like synchronization. Popular protocols are Z-modem, Y-modem, and X-modem. +// +// +#define MESSAGE_TYPE UINT +#define MESSAGE_SIZE sizeof(UINT) +#define MESSAGE_NONE (0x0000) +#define MESSAGE_CANCEL (0x0001) +#define MESSAGE_STOPPED (0x0002) +#define MESSAGE_WANTSEND (0x0004) +#define MESSAGE_OKAYSEND (0x0008) + +///////////////////////////////////////////////////////////////////////////// +// CTransferDlg dialog + +CTransferDlg::CTransferDlg(CWnd* pParent /*=NULL*/) + : CDialog(CTransferDlg::IDD, pParent) +{ + //{{AFX_DATA_INIT(CTransferDlg) + // NOTE: the ClassWizard will add member initialization here + //}}AFX_DATA_INIT + + m_pFile = NULL; + m_pCommFile = NULL; + + m_bSending = TRUE; + m_bCancelPressed = FALSE; +} + +void CTransferDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CTransferDlg) + // NOTE: the ClassWizard will add DDX and DDV calls here + //}}AFX_DATA_MAP +} + +BEGIN_MESSAGE_MAP(CTransferDlg, CDialog) + //{{AFX_MSG_MAP(CTransferDlg) + //}}AFX_MSG_MAP + ON_MESSAGE(IDM_START_SENDING, OnStartSending) + ON_MESSAGE(IDM_START_RECEIVING, OnStartReceiving) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CTransferDlg message handlers + +BOOL CTransferDlg::OnInitDialog() +{ + CDialog::OnInitDialog(); + + SetDlgItemText(IDC_TRANSFER_TEXT, m_sMessage); + + // + // Start either Receivng or Sending data + // + if (m_bSending) + PostMessage(IDM_START_SENDING); + else + PostMessage(IDM_START_RECEIVING); + + return TRUE; // return TRUE unless you set the focus to a control + // EXCEPTION: OCX Property Pages should return FALSE +} + +LONG CTransferDlg::OnStartReceiving(WPARAM, LPARAM) +{ + // + // + // This function (message handler) will begin receiving data on the + // COMM port. This function is not multi-threaded, instead it uses + // the global PumpMessages function to maintain the Applications message + // pump. This function should be implemented as another thread, but, as + // mentioned before, this is left up to you to implement. + // + // The function will wait for incoming data to appear in the Receive queue. + // Once data is found it begins receiving it by first, reading the filesize, + // next the filename, and then the file checksum. After all this + // the file is read in 1024 chunks until complete. Again, this is a very simple + // protocol. You should investigate Z-modem, Y-modem and other popular + // protocols. + // + // The file checksum is only checked once at the end of the transmission. This is + // done for simplicity. Idealy, you would check the checksum of each transmitted + // packet. Thus, if the checksum of a packed failed you could simply ask to have + // it transmitted instead of having the whole file re-transmitted (as the case + // would be in this scenario). + // + // On completion, CDialog::OnOK or CDialog::OnCancel is called to close the dialog + // window. + // + + ASSERT_VALID(m_pCommFile); + + if (m_pCommFile == NULL) + { + CDialog::OnCancel(); + return -1; + } + ShowWindow(SW_SHOW); + + CString sNewFilename = GetAppDir(); + CFile f; + BYTE bBuffer[1024]; + UINT nBytesReceived = 0; + UINT nTotalBytesReceived = 0; + + DWORD dwFileSize; + TCHAR szFilename[MAX_PATH]; + DWORD dwChecksum; + + TRY + { + // Wait + m_sMessage.Format(_T("Waiting for incoming files...")); + SetDlgItemText(IDC_TRANSFER_TEXT, m_sMessage); + + while (m_pCommFile->IsRxQueueEmpty() && !m_bCancelPressed) + { + PumpMessages(); + } + + if (m_bCancelPressed) + { + CDialog::OnCancel(); + return 0; + } + + // first: read the filesize + m_pCommFile->Read(&dwFileSize, sizeof(dwFileSize)); + + // second: read the filename + m_pCommFile->Read(szFilename, sizeof(szFilename)); + + // display message about incoming file + m_sMessage.Format(_T("file %s (%d bytes long) detected.\r\n"), szFilename, dwFileSize); + SetDlgItemText(IDC_TRANSFER_TEXT, m_sMessage); + + // third: read the checksum + m_pCommFile->Read(&dwChecksum, sizeof(dwChecksum)); + + CProgressCtrl* pProg = (CProgressCtrl*) GetDlgItem(IDC_TRANSFER_PROGRESS); + ASSERT_VALID(pProg); + + pProg->SetRange(0, 100); + pProg->SetPos(0); + + // fourth: read the incoming data (streamed into a file object) + sNewFilename += _T('\\'); + sNewFilename += szFilename; + if (!f.Open(sNewFilename, CFile::modeCreate | CFile::modeWrite | CFile::shareDenyWrite | CFile::shareDenyRead)) + { + m_sMessage.Format(_T("Error: Unable to create the new file.")); + } + else + { + TRY + { + // + // Keep reading the file until either the user cancels or + // the file has finsihed. + // + while ((nTotalBytesReceived < dwFileSize) && !m_bCancelPressed) + { + nBytesReceived = m_pCommFile->Read(bBuffer, sizeof(bBuffer)); + nTotalBytesReceived += nBytesReceived; + + m_sMessage.Format(_T("%s\n%d of %d bytes received."), sNewFilename, nTotalBytesReceived, dwFileSize); + SetDlgItemText(IDC_TRANSFER_TEXT, m_sMessage); + + f.Write(bBuffer, nBytesReceived); + + pProg->SetPos(((nTotalBytesReceived * 100 / (UINT) dwFileSize))); + PumpMessages(); + } + + if (m_bCancelPressed) + { +#ifdef __USE_MESSAGES + // the transfer has been cancelled; wait for the other side to + // acknowledge receipt of this message + MESSAGE_TYPE message = MESSAGE_CANCEL; + m_pCommFile->Write(&message, MESSAGE_SIZE); + do + { + m_pCommFile->Read(&message, MESSAGE_SIZE); + } + while (message != MESSAGE_STOPPED); +#endif + + m_sMessage.Format(_T("Transfer was cancelled\r\n")); + + CDialog::OnCancel(); + return 0; + } + + f.Close(); + } + CATCH(CFileException, e) + { + TCHAR szError[256]; + e->GetErrorMessage(szError, sizeof(szError)); + + m_sMessage.Format(_T("Error: %s\r\n"), szError); + } + END_CATCH + } + } + CATCH(COXSerialCommException, e) + { + m_sMessage.Format(_T("An Exception occurred (%d)\r\n"), e->m_cause); + } + END_CATCH + + // perform simple integrity check on the file + if (nTotalBytesReceived == dwFileSize) + { + COXCheckSum32 checksum; + DWORD dwNewChecksum; + TRY + { + dwNewChecksum = checksum.CalculateFile(sNewFilename); + TRACE(_T("%s has checksum of %d\n"), sNewFilename, dwNewChecksum); + } + CATCH(CFileException, e) + { + m_sMessage.Format(_T("%s successfully received\r\nChecksum test failed.\r\n"), sNewFilename); + CDialog::OnOK(); + return 0; + } + END_CATCH + + if (dwChecksum == dwNewChecksum) + { + m_sMessage.Format(_T("%s successfully received\r\nFile passed integrity check (%d)\r\n"), sNewFilename, dwNewChecksum); + } + else + { + m_sMessage.Format(_T("%s successfully received\r\nFile failed integrity check (remote:%d; local:%d)\r\n"), sNewFilename, dwChecksum, dwNewChecksum); + } + } + else + { + m_sMessage.Format(_T("%s was not properly received (%d bytes not received)\r\n"), sNewFilename, dwFileSize - nTotalBytesReceived); + } + + + CDialog::OnOK(); + + return 0; +} + +LONG CTransferDlg::OnStartSending(WPARAM, LPARAM) +{ + // + // + // The function will begin sending the file over the COMM port. It assumes that + // the awaiting client is ready to receive. Really however, A + // "Are you ready to receive" message should be send to the client to ensure + // the transfer works properly. In this application if the user isn't waiting to + // receive a file, the data will appear in his/her "Terminal" window. + // + // This function should run in a thread. Instead, for simplicity's sake it uses the + // simple PumpMessage function to maintain the application's message pump. + // + // See CTransferDlg::OnStartReceiving for more information about the protocol used + // to transfer files. + // + + ASSERT_VALID(m_pFile); + ASSERT_VALID(m_pCommFile); + + if (m_pFile == NULL || m_pCommFile == NULL || m_sFilename.IsEmpty()) + { + CDialog::OnCancel(); + return -1; + } + + ShowWindow(SW_SHOW); + + CProgressCtrl* pProg = (CProgressCtrl*) GetDlgItem(IDC_TRANSFER_PROGRESS); + ASSERT_VALID(pProg); + + DWORD dwTotal = 0; + DWORD dwCount = 0; + + // CFile object m_pFile already open + COXCheckSum32 checksum; + DWORD dwChecksum; + TRY + { + // calculate the file checksum + dwChecksum = checksum.CalculateFile(m_pFile); + m_pFile->SeekToBegin(); + + TRACE(_T("%s has checksum of %d\n"), m_sFilename, dwChecksum); + } + CATCH(CFileException, e) + { + m_sMessage.Format(_T("Fatal Error: Unable to calculate file checksum\r\n")); + TRACE(_T("Unable to calculate file checksum\r\n")); + return -1; + } + END_CATCH + + BYTE bBuffer[1024]; + TCHAR szFilename[MAX_PATH]; + + lstrcpy(szFilename, (LPCTSTR) m_sFilename); + + // first: send number of bytes this file is + DWORD dwFileSize = m_pFile->GetLength(); + m_pCommFile->Write(&dwFileSize, sizeof(DWORD)); + + // second: send filename + m_pCommFile->Write(&szFilename, sizeof(szFilename)); + + // third: send checksum + m_pCommFile->Write(&dwChecksum, sizeof(dwChecksum)); + + pProg->SetRange(0, 100); + pProg->SetPos(0); + + // fourth: write the file + while ((dwCount = m_pFile->Read(bBuffer, sizeof(bBuffer))) != 0 && !m_bCancelPressed) + { + dwTotal += dwCount; + m_pCommFile->Write(bBuffer, dwCount); + + m_sMessage.Format(_T("%s\n%d of %d bytes sent"), m_sFilename, dwTotal, dwFileSize); + SetDlgItemText(IDC_TRANSFER_TEXT, m_sMessage); + + pProg->SetPos(((dwTotal * 100 / dwFileSize))); + +#ifdef __USE_MESSAGES + m_pCommFile->Read(&message, MESSAGE_SIZE); + if (message == MESSAGE_CANCEL) + { + m_bCancelPressed = TRUE; + message = MESSAGE_STOPPED; + m_pCommFile->Write(&message, MESSAGE_SIZE); + break; + } +#endif + + PumpMessages(); + } + +#ifdef __USE_MESSAGES + if (message == MESSAGE_CANCEL) + m_sMessage.Format(_T("Other side cancelled transfer; %d of %d bytes sent\r\n"), dwTotal, dwFileSize); + else + m_sMessage.Format(_T("Finished. Successfully sent %d byte(s).\r\n"), dwTotal); +#else + m_sMessage.Format(_T("Finished. Successfully sent %d byte(s).\r\n"), dwTotal); +#endif + + if (m_bCancelPressed) + CDialog::OnCancel(); + else + CDialog::OnOK(); + + return 0; +} + +void CTransferDlg::OnCancel() +{ + // User has pressed the cancel button; Disable the button and set + // flag + // + m_bCancelPressed = TRUE; + GetDlgItem(IDCANCEL)->EnableWindow(FALSE); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/TransferDlg.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/TransferDlg.h new file mode 100644 index 0000000..c152b21 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/TransferDlg.h @@ -0,0 +1,63 @@ +#if !defined(AFX_TRANSFERDLG_H__26E6D945_0616_11D2_88B2_0080C859A484__INCLUDED_) +#define AFX_TRANSFERDLG_H__26E6D945_0616_11D2_88B2_0080C859A484__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// TransferDlg.h : header file +// + +///////////////////////////////////////////////////////////////////////////// +// CTransferDlg dialog + +class COXSerialCommFile; + +class CTransferDlg : public CDialog +{ +// Construction +public: + CTransferDlg(CWnd* pParent = NULL); // standard constructor + +// Dialog Data + //{{AFX_DATA(CTransferDlg) + enum { IDD = IDD_TRANSFER }; + // NOTE: the ClassWizard will add data members here + //}}AFX_DATA + +protected: + BOOL m_bCancelPressed; + +public: + CString m_sFilename; + CString m_sMessage; + + COXSerialCommFile* m_pCommFile; + + CFile* m_pFile; + + BOOL m_bSending; + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CTransferDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + afx_msg LONG OnStartSending(WPARAM, LPARAM); + afx_msg LONG OnStartReceiving(WPARAM, LPARAM); + + // Generated message map functions + //{{AFX_MSG(CTransferDlg) + virtual BOOL OnInitDialog(); + virtual void OnCancel(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_TRANSFERDLG_H__26E6D945_0616_11D2_88B2_0080C859A484__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/res/Serial.ico b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/res/Serial.ico new file mode 100644 index 0000000000000000000000000000000000000000..7eef0bcbe6580a6f464d688906172c2d9de44262 GIT binary patch literal 1078 zcmc&zF>b>!3}jLb9s)T}@Kod(893@u8ajANzT`op9^o+)S?=nU(FD@%0s)Sg^oyC8{H z9myetc;MEP)59v(LMa~xK8Yu^jIR*H22uCFiq5%C{s7(PJi>o15i^bmX4(vPxWAio z9ryY#AU_jfnd047-@`)XzL?%iS$gQyFP{44kS9X)fN{{QoL~hO-&=q&20Zr*cxFAt PkaNE{wR~2C$NfnjhSXWT literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/res/Serial.rc2 b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/res/Serial.rc2 new file mode 100644 index 0000000..bffa808 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/res/Serial.rc2 @@ -0,0 +1,13 @@ +// +// SERIAL.RC2 - resources Microsoft Visual C++ does not edit directly +// + +#ifdef APSTUDIO_INVOKED + #error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// Add manually edited resources here... + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/res/SerialDoc.ico b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/res/SerialDoc.ico new file mode 100644 index 0000000000000000000000000000000000000000..2a1f1ae6ef15e51df8c39bc028bbfb2171822ba5 GIT binary patch literal 1078 zcmcJNF;c@Y5JlGsgIpoERJdY%i*S@2!JS&si6f-)RXoFGDAfg5;z_dQBoi_)1DpI^ z{oS?KlD%25H@>BZ{KJV|_dD9_G1MV<{5a&-}7^W%4AM)k- zx&P*V(j}a@*Y~UhksXTAK!NRyiYN-8NMyKz<)2v9@tUao7A!g+SzkAcsHvdq6!0vQ z#-rA6>0BAr)4*u6Y57EdkamnXf Uh-a7VEuQ2KJb_2>o71HC3-%7w@Bjb+ literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/resource.h b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/resource.h new file mode 100644 index 0000000..a7315ad --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/samples/Serial/resource.h @@ -0,0 +1,42 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by Serial.rc +// +#define IDD_ABOUTBOX 100 +#define IDR_MAINFRAME 128 +#define IDR_SERIALTYPE 129 +#define IDD_TIMEOUT 130 +#define IDD_TRANSFER 132 +#define IDC_TIMEOUT_RX 1000 +#define IDC_TIMEOUT_TX 1001 +#define IDC_TRANSFER_PROGRESS 1004 +#define IDC_TRANSFER_TEXT 1005 +#define IDM_SERIAL_SETUP 32771 +#define IDM_CONFIG_LOAD 32772 +#define IDM_CONFIG_SAVE 32773 +#define IDM_TIMEOUT 32774 +#define IDM_FILE_READ 32776 +#define IDM_FILE_WRITE 32777 +#define IDM_PURGE_RX 32780 +#define IDM_PURGE_TX 32781 +#define IDM_OPEN 32782 +#define IDM_CLOSE 32783 +#define IDM_CONNECT 32785 +#define IDM_DISCONNECT 32786 +#define IDM_RECEIVE 32788 +#define IDM_SEND 32789 +#define IDM_SET_TIMEOUT 32790 +#define IDM_OPTIONS_RECEIVE 32791 +#define ID_DESCRIPTION_FILE 61204 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_3D_CONTROLS 1 +#define _APS_NEXT_RESOURCE_VALUE 133 +#define _APS_NEXT_COMMAND_VALUE 32792 +#define _APS_NEXT_CONTROL_VALUE 1006 +#define _APS_NEXT_SYMED_VALUE 102 +#endif +#endif diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/BDIFCALC.CPP b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/BDIFCALC.CPP new file mode 100644 index 0000000..728611d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/BDIFCALC.CPP @@ -0,0 +1,2120 @@ +// ========================================================================== +// Class Implementation : COXBinDiffCalculator +// ========================================================================== + +// Source file : bdifcalc.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" // standard MFC include +#include "bdifcalc.h" // class specification +#include "progress.h" // progress bar +#include "oxdflhdr.h" // file header + +#include + +#ifdef _DEBUG +#undef THIS_FILE +static char BASED_CODE THIS_FILE[] = __FILE__; +#endif + +IMPLEMENT_DYNAMIC(COXBinDiffCalculator, CObject) + +#define new DEBUG_NEW + +///////////////////////////////////////////////////////////////////////////// +// Definition of static members +const double COXBinDiffCalculator::m_cMinMeanChunkLen = 20.0; +const double COXBinDiffCalculator::m_cMaxMeanChunkLen = 80.0; +const double COXBinDiffCalculator::m_cBigChunkLen = 500.0; +const TCHAR* COXBinDiffCalculator::m_cFileHeader = TEXT("BinDiff0001"); + +// If m_cDropEOL is TRUE, cr and lf are not allowed to function as delimiters +const BOOL COXBinDiffCalculator::m_cDropEOL = FALSE; + +const DWORD COXBinDiffCalculator::m_cBufSiz = 128; +const WORD COXBinDiffCalculator::m_cMinMatchLen = 6; +// ... Must be >= m_cMinMatchLen +const WORD COXBinDiffCalculator::m_cMinEqualRunLen = (COXBinDiffCalculator::m_cMinMatchLen+4); + +// Tag values. A tag value is encoded in the 4 lowest bits of a tag byte. +// The 4 high bits of the tag byte are used for encoding a value 0-15. +const BYTE COXBinDiffCalculator::m_cTagSmallDiff = 0; +const BYTE COXBinDiffCalculator::m_cTagMediumDiff = 1; +const BYTE COXBinDiffCalculator::m_cTagLargeDiff = 2; +const BYTE COXBinDiffCalculator::m_cTagSmallNearCopy = 3; +const BYTE COXBinDiffCalculator::m_cTagMediumNearCopy = 4; +const BYTE COXBinDiffCalculator::m_cTagLargeNearCopy = 5; +const BYTE COXBinDiffCalculator::m_cTagSmallDistantCopy = 6; +const BYTE COXBinDiffCalculator::m_cTagMediumDistantCopy = 7; +const BYTE COXBinDiffCalculator::m_cTagLargeDistantCopy = 8; +const BYTE COXBinDiffCalculator::m_cTagSmallFarCopy = 9; +const BYTE COXBinDiffCalculator::m_cTagMediumFarCopy = 0x0A; +const BYTE COXBinDiffCalculator::m_cTagLargeFarCopy = 0x0B; +// ... Tags 0x0C,0x0D,0x0E unused. +const BYTE COXBinDiffCalculator::m_cTagEOF = 0x0F; + +// Maximum values encodable by different tags. +// 4-bit value (0-15) is used to encode a value 1 - m_cSmallSize; +// 12-bit value (0-4095) is used to encode a value m_cSmallSize+1 - m_cMediumSize; +// 20-bit value (0-1048575) is used to encode a value m_cMediumSize+1 - m_cLargeSize; +const DWORD COXBinDiffCalculator::m_cSmallSize = 16L; +const DWORD COXBinDiffCalculator::m_cMediumSize = (4096L + COXBinDiffCalculator::m_cSmallSize); +const DWORD COXBinDiffCalculator::m_cLargeSize = (1048576L + COXBinDiffCalculator::m_cMediumSize); + +// Maximum file positions encodable in 2 or 3 bytes +const DWORD COXBinDiffCalculator::m_cNearDistance = 0xFFFFL; +const DWORD COXBinDiffCalculator::m_cDistantDistance = 0xFFFFFF; + +const DWORD COXBinDiffCalculator::m_cMaxStrLen = 255; + + +// Data members ------------------------------------------------------------- +// protected: + // COXDiffProgress* m_pProgressBar; + // --- Pointer to the progress bar (may be derived from COXDiffProgress) + +// private: + +// Member functions --------------------------------------------------------- +// public: + +COXBinDiffCalculator::COXBinDiffCalculator() + : +#if ! BDEXTR + m_LstFreeTreeNode(NULL), + m_LstFreeMatchBlock(NULL), +#endif /* ! BDEXTR */ + m_pProgressBar(NULL) + { + m_pProgressBar = new COXDiffProgress; + } + +#if ! BDEXTR +void COXBinDiffCalculator::SubtractFiles(LPCTSTR orgFilNam, LPCTSTR derivedFilNam, LPCTSTR diffFilNam, + COXDiffFileHeader* pHeader) + { + CStdioFile OrgFil; + CStdioFile DerivedFil; + CStdioFile DiffFil; + + if (!DiffFil.Open(diffFilNam, CFile:: modeCreate | CFile::modeReadWrite | CFile::typeBinary)) + { + CString errMsg; + + errMsg = TEXT("Cannot open file "); + errMsg += diffFilNam; + ASSERT(m_pProgressBar != NULL); + m_pProgressBar->Abort(errMsg); + } + + if (!OrgFil.Open(orgFilNam, CFile::modeRead | CFile::typeBinary | CFile::shareDenyWrite)) + { + CString errMsg; + + errMsg = TEXT("Cannot open file "); + errMsg += orgFilNam; + ASSERT(m_pProgressBar != NULL); + m_pProgressBar->Abort(errMsg); + } + + + if (!DerivedFil .Open(derivedFilNam, CFile::modeRead | CFile::typeBinary | CFile::shareDenyWrite)) + { + CString errMsg; + + errMsg = TEXT("Cannot open file "); + errMsg += derivedFilNam; + ASSERT(m_pProgressBar != NULL); + m_pProgressBar->Abort(errMsg); + } + + SubtractFiles(&OrgFil, &DerivedFil, &DiffFil, pHeader); + + OrgFil.Close(); + DerivedFil.Close(); + DiffFil.Close(); + } + +void COXBinDiffCalculator::SubtractFiles(CFile* pOrgFil, CFile* pDerivedFil, CFile* pDiffFil, + COXDiffFileHeader* pHeader) + { + COXTreeNode* pOrgTreeRoot = NULL; + int delim; + COXMatchBlock* pMatchLst = NULL; + LONG size; + LONG orgSum; + LONG orgSize; + LONG derivedSum; + LONG derivedSize; + + // if no special header was specified, suplly a default header + BOOL bDefHeader(FALSE); + if (pHeader == NULL) + { + pHeader = new COXDiffFileHeader(m_cFileHeader); + bDefHeader = TRUE; + } + DWORD nBeginHeaderPos = pDiffFil->GetPosition(); + pHeader->WriteHeader(pDiffFil); + DWORD nEndHeaderPos = pDiffFil->GetPosition(); + + orgSize = pOrgFil->GetLength(); + size = derivedSize = pDerivedFil->GetLength(); + + // Write dummy check-data; gets rewritten at end of this procedure + WriteLongNBytes(0L,pDiffFil,4); + WriteLongNBytes(0L,pDiffFil,4); + WriteLongNBytes(0L,pDiffFil,4); + WriteLongNBytes(0L,pDiffFil,4); + + orgSum = 0; + derivedSum = 0; + + // Dummy block + { + if (size == 0) + { + int byte; + BYTE helpByte; + // ... EOF on diff fil + pDiffFil->Write(&m_cTagEOF, 1); + // ... Adjust checksum + do + { + if (pOrgFil->Read(&helpByte, 1) == 1) + byte = helpByte; + else + byte = EOF; + if (byte != EOF) + { + orgSum += byte; + } + } while (byte != EOF); + } + else + { + // Find suitable delimiter + delim = FindDelimiter(pOrgFil,m_cMinMeanChunkLen,m_cMaxMeanChunkLen); + if (delim < 0) + delim = 0; + // Build indexed position tree + pOrgTreeRoot = BuildTree(pOrgFil,delim,orgSum); + + // Match files + pMatchLst = MatchFiles(pOrgTreeRoot,pOrgFil,pDerivedFil,delim,derivedSum); + + // Write diff file + DumpDiff(pMatchLst,pDerivedFil,pDiffFil); + } + } + + if (pMatchLst != NULL) + DeleteMatchBlocks(pMatchLst); + + if (pOrgTreeRoot != NULL) + DeleteTreeNode(pOrgTreeRoot); + + + // MSDOS has no resource fork: encode extra EOF + pDiffFil->Write(&m_cTagEOF, 1); + + // Adjust the check-data + pDiffFil->Seek(nEndHeaderPos - nBeginHeaderPos, CFile::begin); + + WriteLongNBytes(orgSize,pDiffFil,4); + WriteLongNBytes(orgSum,pDiffFil,4); + WriteLongNBytes(derivedSize,pDiffFil,4); + WriteLongNBytes(derivedSum,pDiffFil,4); + + if (bDefHeader) + delete pHeader; + } +#endif /* ! BDEXTR */ + +void COXBinDiffCalculator::AddFiles(LPCTSTR orgFilNam, LPCTSTR derivedFilNam, LPCTSTR diffFilNam, + COXDiffFileHeader* pHeader) + { + CStdioFile OrgFil; + CStdioFile DerivedFil; + CFile DiffFil; + CFileException* pFileEx = new CFileException; + if (!DiffFil.Open(diffFilNam, CFile::modeRead | CFile::typeBinary | CFile::shareDenyWrite, pFileEx)) + { + CString errMsg; + errMsg = TEXT("Cannot open file "); + errMsg += diffFilNam; + ASSERT(m_pProgressBar != NULL); + m_pProgressBar->Abort(errMsg); + THROW(pFileEx); + } + + if (!OrgFil.Open(orgFilNam, CFile::modeRead | CFile::typeBinary | CFile::shareDenyWrite, pFileEx)) + { + CString errMsg; + + errMsg = TEXT("Cannot open file "); + errMsg += orgFilNam; + ASSERT(m_pProgressBar != NULL); + m_pProgressBar->Abort(errMsg); + THROW(pFileEx); + } + + if (!DerivedFil.Open(derivedFilNam, CFile:: modeCreate | CFile::modeReadWrite | CFile::typeBinary, pFileEx)) + { + CString errMsg; + + errMsg =TEXT(" Cannot open file "); + errMsg += derivedFilNam; + ASSERT(m_pProgressBar != NULL); + m_pProgressBar->Abort(errMsg); + THROW(pFileEx); + } + +#ifdef WIN32 + pFileEx->Delete(); +#else + delete pFileEx; +#endif + + AddFiles(&OrgFil, &DerivedFil, &DiffFil, pHeader); + + DerivedFil.Close(); + OrgFil.Close(); + DiffFil.Close(); + + } + +void COXBinDiffCalculator::AddFiles(CFile* pOrgFil, CFile* pDerivedFil, CFile* pDiffFil, + COXDiffFileHeader* pHeader) + { + int c; + BYTE helpByte; + LONG blockLen; + LONG blockPos; + int tag; + LONG derivedSize; + LONG derivedSum; + LONG orgSize; + LONG orgSum; + LONG checkDerivedSize; + LONG checkDerivedSum; + LONG checkOrgSize; + LONG checkOrgSum; + LONG prevDiffPos; + LONG diffPos; + LONG curPos; + + BOOL bDefHeader(FALSE); + TRY + { + // if no special header was specified, suplly a default header + if (pHeader == NULL) + { + pHeader = new COXDiffFileHeader(m_cFileHeader); + bDefHeader = TRUE; + } + + pHeader->ReadHeader(pDiffFil); + } + CATCH_ALL(e) + { + ASSERT(m_pProgressBar != NULL); + if (bDefHeader) + delete pHeader; + m_pProgressBar->Abort(TEXT("Incorrect difference header")); + THROW_LAST(); + } + END_CATCH_ALL + + // Read sizes and checksums of original and updated file + checkOrgSize = ReadLongNBytes(pDiffFil,4); + checkOrgSum = ReadLongNBytes(pDiffFil,4); + orgSize = 0; + orgSum = 0; + checkDerivedSize = ReadLongNBytes(pDiffFil,4); + checkDerivedSum = ReadLongNBytes(pDiffFil,4); + derivedSize = 0; + derivedSum = 0; + + { + orgSize += pOrgFil->GetLength(); + + ASSERT(m_pProgressBar != NULL); + m_pProgressBar->Init(0,pOrgFil->GetLength(),TEXT("Checking:")); + curPos = 0; + c = EOF; + while (pOrgFil->Read(&helpByte, 1) == 1) + { + c = helpByte; + if ((curPos & 0xFFF) == 0) + if (!m_pProgressBar->Adjust(curPos)) + m_pProgressBar->Abort(TEXT("Aborting")); + orgSum += c; + curPos++; + } + pOrgFil->Seek(0L, CFile::begin); + m_pProgressBar->Close(); + + ASSERT(m_pProgressBar != NULL); + m_pProgressBar->Init(0,pDiffFil->GetLength(),TEXT("Apply diff:")); + tag = 0; + prevDiffPos = 0; + diffPos = 0; + while (tag != m_cTagEOF && pDiffFil->Read(&helpByte, 1) == 1) + { + c = helpByte; + diffPos++; + + // Adjust bar every 256 bytes + if (diffPos - prevDiffPos > 0xFF) + { + if (!m_pProgressBar->Adjust(diffPos)) + m_pProgressBar->Abort(TEXT("Aborting")); + prevDiffPos = diffPos; + } + + tag = c & 0x0F; + switch (tag) + { + case m_cTagSmallDiff: + blockLen = (c >> 4) + 1; + CopyFileChars(blockLen,pDiffFil,pDerivedFil,derivedSum); + diffPos += blockLen; + derivedSize += blockLen; + break; + case m_cTagMediumDiff: + blockLen = (c >> 4); + if (pDiffFil->Read(&helpByte, 1) == 1) + c = helpByte; + else + c = EOF; + diffPos++; + if (c != EOF) + { + blockLen = ((blockLen << 8) | c) + m_cSmallSize + 1; + CopyFileChars(blockLen,pDiffFil,pDerivedFil,derivedSum); + diffPos += blockLen; + derivedSize += blockLen; + } + break; + case m_cTagLargeDiff: + blockLen = (c >> 4); + if (pDiffFil->Read(&helpByte, 1) == 1) + c = helpByte; + else + c = EOF; + diffPos++; + if (c != EOF) + { + blockLen = (blockLen << 8) | c; + if (pDiffFil->Read(&helpByte, 1) == 1) + c = helpByte; + else + c = EOF; + diffPos++; + if (c != EOF) + { + blockLen = ((blockLen << 8) | c) + m_cMediumSize + 1; + } + CopyFileChars(blockLen,pDiffFil,pDerivedFil,derivedSum); + diffPos += blockLen; + derivedSize += blockLen; + } + break; + case m_cTagSmallNearCopy: + blockLen = (c >> 4) + 1; + blockPos = ReadLongNBytes(pDiffFil,2); + diffPos += 2; + pOrgFil->Seek(blockPos, CFile::begin); + CopyFileChars(blockLen,pOrgFil,pDerivedFil,derivedSum); + derivedSize += blockLen; + break; + case m_cTagMediumNearCopy: + blockLen = (c >> 4); + if (pDiffFil->Read(&helpByte, 1) == 1) + c = helpByte; + else + c = EOF; + diffPos++; + if (c != EOF) + { + blockLen = ((blockLen << 8) | c) + m_cSmallSize + 1; + blockPos = ReadLongNBytes(pDiffFil,2); + diffPos += 2; + pOrgFil->Seek(blockPos, CFile::begin); + CopyFileChars(blockLen,pOrgFil,pDerivedFil,derivedSum); + derivedSize += blockLen; + } + break; + case m_cTagLargeNearCopy: + blockLen = (c >> 4); + if (pDiffFil->Read(&helpByte, 1) == 1) + c = helpByte; + else + c = EOF; + diffPos++; + if (c != EOF) + { + blockLen = (blockLen << 8) | c; + if (pDiffFil->Read(&helpByte, 1) == 1) + c = helpByte; + else + c = EOF; + diffPos++; + if (c != EOF) + { + blockLen = ((blockLen << 8) | c) + m_cMediumSize + 1; + blockPos = ReadLongNBytes(pDiffFil,2); + diffPos += 2; + pOrgFil->Seek(blockPos, CFile::begin); + CopyFileChars(blockLen,pOrgFil,pDerivedFil,derivedSum); + derivedSize += blockLen; + } + } + break; + case m_cTagSmallDistantCopy: + blockLen = (c >> 4) + 1; + blockPos = ReadLongNBytes(pDiffFil,3); + diffPos += 3; + pOrgFil->Seek(blockPos, CFile::begin); + CopyFileChars(blockLen,pOrgFil,pDerivedFil,derivedSum); + derivedSize += blockLen; + break; + case m_cTagMediumDistantCopy: + blockLen = (c >> 4); + if (pDiffFil->Read(&helpByte, 1) == 1) + c = helpByte; + else + c = EOF; + diffPos++; + if (c != EOF) + { + blockLen = ((blockLen << 8) | c) + m_cSmallSize + 1; + blockPos = ReadLongNBytes(pDiffFil,3); + diffPos += 3; + pOrgFil->Seek(blockPos, CFile::begin); + CopyFileChars(blockLen,pOrgFil,pDerivedFil,derivedSum); + derivedSize += blockLen; + } + break; + case m_cTagLargeDistantCopy: + blockLen = (c >> 4); + if (pDiffFil->Read(&helpByte, 1) == 1) + c = helpByte; + else + c = EOF; + diffPos++; + if (c != EOF) + { + blockLen = (blockLen << 8) | c; + if (pDiffFil->Read(&helpByte, 1) == 1) + c = helpByte; + else + c = EOF; + diffPos++; + if (c != EOF) + { + blockLen = ((blockLen << 8) | c) + m_cMediumSize + 1; + blockPos = ReadLongNBytes(pDiffFil,3); + diffPos += 3; + pOrgFil->Seek(blockPos, CFile::begin); + CopyFileChars(blockLen,pOrgFil,pDerivedFil,derivedSum); + derivedSize += blockLen; + } + } + break; + case m_cTagSmallFarCopy: + blockLen = (c >> 4) + 1; + blockPos = ReadLongNBytes(pDiffFil,4); + diffPos += 4; + pOrgFil->Seek(blockPos, CFile::begin); + CopyFileChars(blockLen,pOrgFil,pDerivedFil,derivedSum); + derivedSize += blockLen; + break; + case m_cTagMediumFarCopy: + blockLen = (c >> 4); + if (pDiffFil->Read(&helpByte, 1) == 1) + c = helpByte; + else + c = EOF; + diffPos++; + if (c != EOF) + { + blockLen = ((blockLen << 8) | c) + m_cSmallSize + 1; + blockPos = ReadLongNBytes(pDiffFil,4); + diffPos += 4; + pOrgFil->Seek(blockPos, CFile::begin); + CopyFileChars(blockLen,pOrgFil,pDerivedFil,derivedSum); + derivedSize += blockLen; + } + break; + case m_cTagLargeFarCopy: + blockLen = (c >> 4); + if (pDiffFil->Read(&helpByte, 1) == 1) + c = helpByte; + else + c = EOF; + diffPos++; + if (c != EOF) + { + blockLen = (blockLen << 8) | c; + if (pDiffFil->Read(&helpByte, 1) == 1) + c = helpByte; + else + c = EOF; + diffPos++; + if (c != EOF) + { + blockLen = ((blockLen << 8) | c) + m_cMediumSize + 1; + blockPos = ReadLongNBytes(pDiffFil,4); + diffPos += 4; + pOrgFil->Seek(blockPos, CFile::begin); + CopyFileChars(blockLen,pOrgFil,pDerivedFil,derivedSum); + derivedSize += blockLen; + } + } + break; + case m_cTagEOF: + break; + default: + ASSERT(m_pProgressBar != NULL); + m_pProgressBar->Abort(TEXT("Unknown tag in diff file - possibly created by a more recent BinDiff")); + break; + } + } + + m_pProgressBar->Close(); + + if (bDefHeader) + delete pHeader; + + } // End of dummy block + + if (orgSize != checkOrgSize || orgSum != checkOrgSum) + { + ASSERT(m_pProgressBar != NULL); + m_pProgressBar->Abort(TEXT("Original file is not the file the diff was created with.")); + } + + if (derivedSize != checkDerivedSize || derivedSum != checkDerivedSum) + { + ASSERT(m_pProgressBar != NULL); + m_pProgressBar->Abort(TEXT("CRC failure : New derived file is corrupt.\nPatch file could be invalid")); + } + } + +void COXBinDiffCalculator::ReplaceProgressBar(COXDiffProgress* pProgressBar) + { + // ... Should already have a progress bar + ASSERT(m_pProgressBar != NULL); + // ... Not allowed to replace by an empty one + ASSERT(pProgressBar != NULL); + delete m_pProgressBar; + m_pProgressBar = pProgressBar; + } + +#ifdef _DEBUG +void COXBinDiffCalculator::Dump(CDumpContext& dc) const + { + CObject::Dump(dc); + } + +void COXBinDiffCalculator::AssertValid() const + { + CObject::AssertValid(); + } +#endif + +COXBinDiffCalculator::~COXBinDiffCalculator() + { + // ... Should always have a progress bar + ASSERT(m_pProgressBar != NULL); + delete m_pProgressBar; + + if (m_LstFreeTreeNode != NULL) + DeleteTreeNode(m_LstFreeTreeNode); + + DeleteMatchBlocks(m_LstFreeMatchBlock); + } + +// protected: +void COXBinDiffCalculator::DeleteTreeNode(COXTreeNode* pTreeNode) + // --- In : pTreeNode : The tree node to delete + // --- Out : + // --- Returns : + // --- Effect : recursive function. First deletes its children then deletes itself + { + ASSERT(pTreeNode != NULL); + + if (pTreeNode->pGE != NULL) + DeleteTreeNode(pTreeNode->pGE); + + if (pTreeNode->pLT != NULL) + DeleteTreeNode(pTreeNode->pLT); + + delete pTreeNode; + pTreeNode = NULL; + } + +void COXBinDiffCalculator::CopyFileChars(LONG count, CFile* pInFile, CFile* pOutFile, LONG& sum) + // --- In : count : The number of bytes to copy + // pInFile : The input file + // pOutFile : The output file + // sum : The previous checksum + // --- Out : sum :The checksum after to bytes are copied + // --- Returns : + // --- Effect : Copies the specified number of bytes from the in file + // to the out file and adjusts the checksum + { + const UINT nBufferLength = 2048; + BYTE pBuffer[nBufferLength + 1]; + UINT nLengthToRead; + UINT nLengthRead; + BYTE* pByte; + BYTE* pLastByte; + + while (0 < count) + { + // Copy the bytes + nLengthToRead = nBufferLength < (UINT)count ? nBufferLength : (UINT)count; + nLengthRead = pInFile->Read(pBuffer, nLengthToRead); + if (nLengthRead == 0) + AfxThrowFileException(CFileException::endOfFile); + + pOutFile->Write(pBuffer, nLengthRead); + count -= nLengthRead; + // Add all the bytes together (for checksum) + pByte = pBuffer; + pLastByte = &pBuffer[nLengthRead - 1]; + while(pByte <= pLastByte) + sum += *(pByte++); + } + } + +LONG COXBinDiffCalculator::ReadLongNBytes(CFile* pFile,int n) + // --- In : pFile : The input file + // n : The number of bytes to read + // --- Out : + // --- Returns : The number represented by those bytes + // --- Effect : It is expected that the MOST SIGNIFICANT bytes come FIRST + { + LONG x; + BYTE byte; + + x = 0; + while (n > 0) + { + if (pFile->Read(&byte, 1) == 1) + x = (x << 8) | byte; + else + { + n = 0; + TRACE(_T("COXBinDiffCalculator::ReadLongNBytes : EOF Encountered while reading long\n")); + AfxThrowFileException(CFileException::endOfFile); + } + n--; + } + + return x; + } + + +#if ! BDEXTR +void COXBinDiffCalculator::WriteLongNBytes(LONG x, CFile* pFile,int n) + // --- In : x : The long number to write + // pFile : The output file + // n : The number of bytes to write + // --- Out : + // --- Returns : + // --- Effect : It is expected that the MOST SIGNIFICANT bytes come FIRST + // Writes the specified number (x) as a number of bytes (n) + // to the output file + { + BYTE byte = 0; + while (n > 4) + { + pFile->Write(&byte, 1); + n--; + } + + if (n == 4) + { + byte = BYTE((x >> 24) & 0xFF); + pFile->Write(&byte, 1); + n--; + } + + if (n == 3) + { + byte = BYTE((x >> 16) & 0xFF); + pFile->Write(&byte, 1); + n--; + } + + if (n == 2) + { + byte = BYTE((x >> 8) & 0xFF); + pFile->Write(&byte, 1); + n--; + } + + if (n == 1) + { + byte = BYTE(x & 0xFF); + pFile->Write(&byte, 1); + } + } + +void COXBinDiffCalculator::ScanFile(CFile* pFile, COXByteAttribs* byteTable) + // --- In : pFile : input file + // byteTable : table to store statistical info in + // --- Out : byteTable : table with statistical info + // --- Returns : + // --- Effect : Makes a statistical scan of the specified file + // Scans file and for each byte 0-255, calculate + // mean distance and standard deviation of the distances + // between occurences of these bytes: + // + // E.g. look at byte b in the file: + // + // ------b---------b-----b-----------b------b-----b---- + // < d1 >< d2 >< d3 >< d4 >< d5 >< d6 > + // < 7 >< 10 >< 6 >< 12 >< 7 >< 6 > + // The mean and std.dev. are calculated on distances d1,d2,... for byte b. + { + int byte; + BYTE helpByte; + DWORD curPos; + DWORD dist; + COXByteAttribs* pByteAttribs; + double dDist; + + // Initialize tables + pByteAttribs = byteTable; + for (byte = 0; byte < 256; byte++) + { + pByteAttribs->lastPos = -1L; + pByteAttribs->sum = 0L; + pByteAttribs->sumSquares = 0.0; + pByteAttribs->mean = 0.0; + pByteAttribs->stdDev = 0.0; + pByteAttribs->cnt = 0L; + pByteAttribs++; + } + + // Scan through file + pFile->Seek(0L,CFile::begin); + curPos = 0L; + do + { + // Adjust progress bar every 4 K bytes + if ((curPos & 0xFFF) == 0) + if (!m_pProgressBar->Adjust(curPos)) + m_pProgressBar->Abort(TEXT("Aborting")); + + if (pFile->Read(&helpByte, 1) == 1) + byte = helpByte; + else + byte = EOF; + if (byte != EOF) + { + pByteAttribs = &byteTable[byte]; + // ... Calculate distance from last occurrence of this byte + dDist = dist = curPos - pByteAttribs->lastPos; + // ... Remember this byte's position + pByteAttribs->lastPos = curPos; + pByteAttribs->sum += dist; + pByteAttribs->sumSquares += dDist * dDist; + + // ...cnt contains the number of occurrences + pByteAttribs->cnt++; + } + curPos++; + } while (byte != EOF); + + // Calculate mean and standard deviation for all bytes. + pByteAttribs = byteTable; + for (byte = 0; byte < 256; byte++) + { + // Make byte 'occur' just after EOF + dDist = dist = curPos - pByteAttribs->lastPos; + pByteAttribs->sum += dist; + pByteAttribs->sumSquares += dDist*dDist; + pByteAttribs->cnt++; + + // Calculate mean. Bytes that did not occur get mean equal to FILE size + pByteAttribs->mean = + (double) pByteAttribs->sum / (double) pByteAttribs->cnt; + + // Calculate standard deviation. We could also use the variance + // but I like the std. dev. more. + pByteAttribs->stdDev = + sqrt(pByteAttribs->sumSquares / (double) pByteAttribs->cnt + - pByteAttribs->mean*pByteAttribs->mean); + + pByteAttribs++; + } + + } + +int COXBinDiffCalculator::FindDelimiter(CFile* pFile, double minMeanChunkLen, double maxMeanChunkLen) + // --- In : pFile : input file + // byteTable + // --- Out : + // --- Returns : + // --- Effect : Analyze open file and determine a suitable delimiter + // for chopping the file into chunks. + // This routine changes the current file position. + { + int byte; + int bestByte; + COXByteAttribs byteTable[256]; + LONG filSiz; + + filSiz = pFile->GetLength(); + ASSERT(m_pProgressBar != NULL); + m_pProgressBar->Init(0L,filSiz,TEXT("Pass 1 of 3:")); + + ScanFile(pFile,byteTable); + + // Determine best byte + bestByte = -1; + while (bestByte == -1 + && maxMeanChunkLen < m_cBigChunkLen + && maxMeanChunkLen < filSiz) + { + COXByteAttribs* pByteAttribs; + COXByteAttribs* pBestByteAttribs; + + pByteAttribs = byteTable; + pBestByteAttribs = NULL; + for (byte = 0; byte < 256; byte++) + { +#if m_cDropEOL + if (byte != '\015' && byte != '\012') +#endif + { + // Check if chunk length is between minMeanLen and maxMeanLen. + if (pByteAttribs->mean >= minMeanChunkLen && + pByteAttribs->mean <= maxMeanChunkLen) + { + if (bestByte == -1) + { + bestByte = byte; + pBestByteAttribs = pByteAttribs; + } + else + { + // Compare stddev: if it is lower, + // the byte is better + if (pBestByteAttribs->stdDev > pByteAttribs->stdDev) + { + bestByte = byte; + pBestByteAttribs = pByteAttribs; + } + } + } + } + pByteAttribs++; + } + // Increase allowable chunk length for the case no acceptable delimiter was + // found: we will loop then + maxMeanChunkLen += 50; + } + + m_pProgressBar->Close(); + + return(bestByte); + + } + +COXBinDiffCalculator::COXTreeNode* COXBinDiffCalculator::NewTreeNode() + // --- In : + // --- Out : + // --- Returns : The new tree node + // --- Effect : Create a new tree node or reuse one of the free list + { + COXTreeNode* pTreeNode; + + if (m_LstFreeTreeNode == NULL) + { + pTreeNode = new COXTreeNode(); + } + else + { + pTreeNode = m_LstFreeTreeNode; + m_LstFreeTreeNode = m_LstFreeTreeNode->pGE; + } + + pTreeNode->filPos = 0L; + pTreeNode->pGE = NULL; + pTreeNode->pLT = NULL; + + return(pTreeNode); + } + +void COXBinDiffCalculator::FreeTreeNode(COXTreeNode* pTreeNode) + // --- In : pTreeNode : The node to free + // --- Out : + // --- Returns : + // --- Effect : Releases a tree node by putting on the free list + { + pTreeNode->pGE = m_LstFreeTreeNode; + m_LstFreeTreeNode = pTreeNode; + } + +int COXBinDiffCalculator::CmpNode(COXTreeNode* pNode1, CFile* pFil1, COXTreeNode* pNode2, + CFile* pFil2, int delim, LONG* pEqualLen) + // --- In : pNode1 : + // pFil1 : + // pNode2 : + // pFil2 : + // delim : The chopping character + // pEqualLen : Number of equal characters encountered. + // --- Out : + // --- Returns : -1, 0, 1 if <, = , >. + // --- Effect : Compare two tree nodes + // Every tree node has m_cMinMatchLen characters of + // the file buffered within the node: first compare these + // If all these characters are equal, read characters from + // the associated files and compare these. + // If the nodes are different, set equalLen to the + // number of equal characters encountered. + { + LONG pos1; + BYTE buf1[m_cBufSiz]; + BYTE* p1; + LONG pos2; + BYTE buf2[m_cBufSiz]; + BYTE* p2; + int result; + LONG l; + + pos1 = pNode1->filPos; + pos2 = pNode2->filPos; + // ... -2 means: not yet defined + result = -2; + *pEqualLen = 0; + + // First compare the m_cMinMatchLen buffered bytes from both nodes + p1 = pNode1->bytes; + p2 = pNode2->bytes; + l = 0; + while (l < m_cMinMatchLen && *p1 == *p2 && *p1 != delim /* && *p2 != delim */) + { + p1++; + p2++; + l++; + (*pEqualLen)++; + } + + if (l == m_cMinMatchLen) + { + // If no difference was found, we will have to compare both files from + // m_cMinMatchLen bytes after pos1 and pos2. + pos1 += m_cMinMatchLen; + pos2 += m_cMinMatchLen; + } + else if (*p1 == delim && *p2 != delim) + { + result = -1; // node 1 < node 2 because node 1 is shorter + } + else if (*p2 == delim && *p1 != delim) + { + result = 1; // node 2 < node 1 because node 2 is shorter + } + else if (*p1 == *p2 && *p1 == delim) + { + result = 0; // node 1 == node 2: both end in a delimiter at the same time + } + else if (*p1 < *p2) + { + result = -1; // node 1 < node 2 because a different character found + } + else if (*p2 < *p1) + { + result = 1; // node 2 < node 1 because a different character found + } + + // If result is -2, no difference was found in the buffered bytes. Start + // reading bytes from the files in chuncks of m_cBufSiz bytes. + if (result == -2) + { + do + { + // Read a buffer from file 1. Pad file with delimiter after eof. + pFil1->Seek(pos1,CFile::begin); + l = pFil1->Read(buf1,(UINT)m_cBufSiz); + if (l < m_cBufSiz) + buf1[l] = BYTE(delim); + // Read a buffer from file 2. Pad file with delimiter after eof. + pFil2->Seek(pos2,CFile::begin); + l = pFil2->Read(buf2,(UINT)m_cBufSiz); + if (l < m_cBufSiz) + buf2[l] = BYTE(delim); + + // Compare buffers + p1 = buf1; + p2 = buf2; + l = 0; + while (l < m_cBufSiz && *p1 == *p2 && *p1 != delim /* && *p2 != delim */) + { + p1++; + p2++; + l++; + (*pEqualLen)++; + } + + // If no difference was found: set file positions to read new buffers + if (l == m_cBufSiz) + { + pos1 += m_cBufSiz; + pos2 += m_cBufSiz; + } + else if (*p1 == delim && *p2 != delim) + { + result = -1; /* node 1 < node 2 */ + } + else if (*p2 == delim && *p1 != delim) + { + result = 1; /* node 2 < node 1 */ + } + else if (*p1 == *p2 && *p1 == delim) + { + result = 0; /* node 1 == node 2 */ + } + else if (*p1 < *p2) + { + result = -1; + } + else if (*p2 < *p1) + { + result = 1; + } + } while (result == -2); + } + return(result); + } + +void COXBinDiffCalculator::FindBestMatch(COXTreeNode* pOrgTreeRoot, + COXTreeNode** ppOrgTreeNode, CFile* pOrgFil, COXTreeNode* pDerivedTreeNode, + CFile* pDerivedFil, int delim, LONG* pMatchLen) + // --- In : pOrgTreeRoot : + // ppOrgTreeNode : + // pOrgFil : + // pDerivedTreeNode : + // pDerivedFil : + // delim : + // pMatchLen : + // --- Out : + // --- Returns : + // --- Effect : From a tree with root node pOrgTreeRoot, find the node + // pOrgTreeNode that best matches pDerivedTreeNode. + // Also find length of match. + { + int direction; + COXTreeNode* pNode; + LONG equalLen; + + // Find best location from tree + *ppOrgTreeNode = NULL; + pNode = pOrgTreeRoot; + *pMatchLen = 0L; + + // Descend tree and remember node with longest match + while (pNode != NULL) + { + direction = CmpNode(pDerivedTreeNode,pDerivedFil,pNode,pOrgFil,delim,&equalLen); + + // Remember match if length is greater than previous best + if (equalLen > *pMatchLen) + { + *pMatchLen = equalLen; + *ppOrgTreeNode = pNode; + } + + if (direction == -1) + { + pNode = pNode->pLT; + } + else if (direction == 1) + { + pNode = pNode->pGE; + } + else /* Node is equal: stop search */ + { + pNode = NULL; + } + } + } + +void COXBinDiffCalculator::AddTreeNode(COXTreeNode** ppTreeRoot, CFile* pFile, + int delim, COXTreeNode* pNewNode) + // --- In : ppTreeRoot : Root of the tree + // pFile : + // delim : + // pNewNode : The new node to add + // --- Out : + // --- Returns : + // --- Effect : Add new node to index tree and linked list. + { + COXTreeNode* pNode; + COXTreeNode* pPrvNode; + int cmp=0; + LONG equalLen; + + // Find location in tree + pNode = *ppTreeRoot; + pPrvNode = NULL; + while (pNode != NULL) + { + pPrvNode = pNode; + cmp = CmpNode(pNewNode,pFile,pNode,pFile,delim,&equalLen); + if (cmp == -1) + { + pNode = pNode->pLT; + } + else if (cmp == 1) + { + pNode = pNode->pGE; + } + else // There is an equal node: stop looking + { + pNode = NULL; + } + } + + if (pPrvNode == NULL) + { + *ppTreeRoot = pNewNode; + } + else + { + if (cmp == -1) + { + pPrvNode->pLT = pNewNode; + } + else if (cmp == 1) + { + pPrvNode->pGE = pNewNode; + } + else + { + FreeTreeNode(pNewNode); + } + } + } + +COXBinDiffCalculator::COXTreeNode* COXBinDiffCalculator::BuildTree(CFile* pFile, int delim, LONG& OrgSum) + // --- In : pFile : + // delim : + // OrgSum + // --- Out : OrgSum + // --- Returns : + // --- Effect : Build index tree: divide file in chunks by using the delimiter. + // We also create chunks of strings that contain m_cMinMatchLen + // or more equal bytes. + { + COXTreeNode* pTreeRoot; + COXTreeNode* pNewNode; + COXTreeNode* pEqualRunNode; + int byte; + BYTE helpByte; + int prevByte; + LONG equalByteCnt; + LONG curPos; + LONG prevPos; + LONG len; + BYTE* pByte; + + ASSERT(m_pProgressBar != NULL); + m_pProgressBar->Init(0L,pFile->GetLength(),TEXT("Pass 2 of 3:")); + + pTreeRoot = NULL; + + curPos = 0; + prevPos = 0; + do + { + if (curPos - prevPos > 0x3FF) + { + if (!m_pProgressBar->Adjust(curPos)) + m_pProgressBar->Abort(TEXT("Aborting")); + prevPos = curPos; + } + + // Restore file position (because it is destroyed by CmpNode) + pFile->Seek(curPos,CFile::begin); + + // Prepare new node + pNewNode = NewTreeNode(); + + len = 0; + pNewNode->filPos = curPos; + pByte = pNewNode->bytes; + byte = -1; + equalByteCnt = 0; + do + { + prevByte = byte; + if (pFile->Read(&helpByte, 1) == 1) + { + byte = helpByte; + if (byte == prevByte) + { + equalByteCnt++; + } + else + { + // No need to check for m_cMinEqualRunLen or more equal bytes here; + // if they were here, they will be added to the tree anyhow. This + // loop only executes at most m_cMinMatchLen times. + equalByteCnt = 1; + } + OrgSum += byte; + *(pByte++) = BYTE(byte); + } + else + { + byte = EOF; + *(pByte++) = BYTE(delim); + } + + len++; + } while (len < m_cMinMatchLen && byte != delim && byte != EOF); + + while (byte != delim && byte != EOF) + { + prevByte = byte; + if (pFile->Read(&helpByte, 1) == 1) + { + byte = helpByte; + if (byte == prevByte) + { + equalByteCnt++; + } + else + { + // Check for LONG runs of equal bytes, and add these to + // the tree also. + if (equalByteCnt >= m_cMinEqualRunLen) + { + pEqualRunNode = NewTreeNode(); + // Buffered characters consists of m_cMinMatchLen equal bytes + memset(pEqualRunNode->bytes,prevByte,m_cMinMatchLen); + // Calculate position of start of run + pEqualRunNode->filPos = curPos + len - equalByteCnt; + AddTreeNode(&pTreeRoot,pFile,delim,pEqualRunNode); + pFile->Seek(curPos+len+1,CFile::begin); // Restore file position + } + equalByteCnt = 1; + } + OrgSum += byte; + } + else + byte = EOF; + len++; + } + + AddTreeNode(&pTreeRoot,pFile,delim,pNewNode); + curPos += len; + } while (byte != EOF); + + m_pProgressBar->Close(); + + return(pTreeRoot); + } + +void COXBinDiffCalculator::ExtendMatch(LONG& OrgFilPos, CFile* pOrgFil, + LONG& DerivedFilPos, CFile* pDerivedFil, LONG& MatchLen) + // --- In : OrgFilPos : + // pOrgFil : + // DerivedFilPos : + // pDerivedFil : + // MatchLen : + // --- Out : OrgFilPos : + // DerivedFilPos : + // MatchLen : + // --- Returns : + // --- Effect : Extend match in two directions, ignoring delimiters: + // if there is a match of length n at position p and p', + // it can be changed into a match of length n+m+q + // at position p - m and p' - m + // + // < m >< n >< q > + // p + // ...aaazzzzzzzzxxxxxxxxxxxyyyyyyyccccccccccccccccc (pOrgFil) + // ...bbbzzzzzzzzxxxxxxxxxxxyyyyyyyddddddddddddddddd (pDerivedFil) + // p' + { + BYTE buf1[m_cBufSiz]; + BYTE buf2[m_cBufSiz]; + int l; + LONG step; + BOOL isDone; + BYTE* p1; + BYTE* p2; + LONG endPos1, endPos2; + + // First, try to read forward and extend match toward the end + isDone = FALSE; + endPos1 = OrgFilPos + MatchLen; + endPos2 = DerivedFilPos + MatchLen; + while (! isDone) + { + step = m_cBufSiz; + pOrgFil->Seek(endPos1,CFile::begin); + // ... Eventually shrink step if pOrgFil is too short + step = (UINT)pOrgFil->Read(buf1,(UINT)step); + + pDerivedFil->Seek(endPos2,CFile::begin); + // ... Eventually shrink step if derivedFil is too short + step = (UINT)pDerivedFil->Read(buf2,(UINT)step); + + // ...step < m_cBufSiz if one of the files at eof: stop comparing + isDone = (step < m_cBufSiz); + + // ... Prepare endPos1 and endPos2 for reading next buffer + endPos1 += step; + endPos2 += step; + + p1 = buf1; + p2 = buf2; + while (*p1 == *p2 && step > 0) + { + p1++; + p2++; + step--; + MatchLen++; + } + + // ... step > 0 if *p1 != *p2 found: stop comparing + isDone = isDone || step > 0; + } + + // Second, try to read backwards and extend the match towards the file start. + // Stop extending if orgFilPos or derivedFilPos equal 0. + isDone = FALSE; + while (OrgFilPos > 0 && DerivedFilPos > 0 && ! isDone) + { + // Try to step m_cBufSiz bytes back. If orgFilPos or derivedFilPos is + // less than that, reduce the step size accordingly. + step = m_cBufSiz; + if (OrgFilPos < step) + step = OrgFilPos; + if (DerivedFilPos < step) + step = DerivedFilPos; + + // ...Jump back 'step' bytes and read two buffers of 'step' bytes. + (OrgFilPos) -= step; + pOrgFil->Seek(OrgFilPos,CFile::begin); + pOrgFil->Read(buf1,(UINT)step); + + DerivedFilPos -= step; + pDerivedFil->Seek(DerivedFilPos,CFile::begin); + pDerivedFil->Read(buf2,(UINT)step); + + // ... Put pointers at the end of the buffers + p1 = buf1 + step - 1; + p2 = buf2 + step - 1; + + // ...Run backwards until a difference found or at start of buffer + l = (int)step; + while (*p1 == *p2 && l > 0) + { + p1--; + p2--; + l--; + // Adjust matchLen for each matched byte. + MatchLen++; + } + + isDone = (l > 0); + + // Adjust orgFilPos and derivedFilPos: add length of unequal part of buffer + OrgFilPos += l; + DerivedFilPos += l; + } + } + +void COXBinDiffCalculator::DeleteMatchBlocks(COXMatchBlock* pBlock) + { + COXMatchBlock* pMatchBlock = pBlock; + COXMatchBlock* pMatchBlockNext; + + while(pMatchBlock != NULL) + { + pMatchBlockNext = pMatchBlock->pNxt; + delete pMatchBlock; + pMatchBlock = pMatchBlockNext; + } + } + +COXBinDiffCalculator::COXMatchBlock* COXBinDiffCalculator::NewMatchBlock(void) + // --- In : + // --- Out : + // --- Returns : The new match block + // --- Effect : Create a new match block or reuse one of the free list + { + COXMatchBlock* pMatchBlock; + + if (m_LstFreeMatchBlock == NULL) + { + pMatchBlock = new COXMatchBlock(); + } + else + { + pMatchBlock = m_LstFreeMatchBlock; + m_LstFreeMatchBlock = m_LstFreeMatchBlock->pNxt; + } + + pMatchBlock->orgFilPos = 0L; + pMatchBlock->len = 0L; + pMatchBlock->derivedFilPos = 0L; + pMatchBlock->pNxt = NULL; + + return(pMatchBlock); + } + +void COXBinDiffCalculator::FreeMatchBlock(COXBinDiffCalculator::COXMatchBlock* pMatchBlock) + // --- In : pMatchBlock : Block to release + // --- Out : + // --- Returns : The new match block + // --- Effect : Release a match block: put on the free list + { + pMatchBlock->pNxt = m_LstFreeMatchBlock; + m_LstFreeMatchBlock = pMatchBlock; + } + +void COXBinDiffCalculator::AddMatch(COXBinDiffCalculator::COXTreeNode* pOrgTreeNode, + CFile* pOrgFil, COXBinDiffCalculator::COXTreeNode* pDerivedTreeNode, + CFile* pDerivedFil, LONG matchLen, COXBinDiffCalculator::COXMatchBlock** ppMatchLst) + // --- In : pOrgTreeNode : + // pOrgFil : + // pDerivedTreeNode : + // pDerivedFil : + // matchLen : + // ppMatchLst : + // --- Out : + // --- Returns : + // --- Effect : Add new match between pOrgTreeNode and pDerivedTreeNode, + // with length matchlen. If the match is LONG enough + // (after extending): add it to the list of matches. + // The list of matches is kept in order of increasing + // starting position in derivedFil. + // If a new match is added that is completely part of + // an existing match, it is dropped. + // If a new match is added that encloses one or more existing + // matches, the enclosed matches are dropped, and the new one + // is added. + // The resulting list will only contain matches with different + // derivedFilPos values: if there would be two equal derivedFilPos + // values, one of the two blocks would enclose the other and + // would have been dropped. + { + LONG orgFilPos, derivedFilPos; + LONG distance; + COXMatchBlock* pMatchBlock; + COXMatchBlock* pPrvMatchBlock; + COXMatchBlock* pNxtMatchBlock; + BOOL dropNewMatch; + + orgFilPos = pOrgTreeNode->filPos; + derivedFilPos = pDerivedTreeNode->filPos; + + // Pass 1: check if there are matchblocks that enclose the new match + // (relative to derivedFil), in a way that they are an expansion of this + // new match block. This saves us expanding this block, because after + // expansion, it would be the same as the overlapping block. + // This is done by checking the distance between the positions for + // orgFil and derivedFil: if the larger block and the smaller block have + // the same distance, and the smaller block is part of the larger + // one, the smaller will expand to be equal to the larger one. + + distance = orgFilPos - derivedFilPos; + + pMatchBlock = *ppMatchLst; + dropNewMatch = FALSE; + while (pMatchBlock != NULL + && pMatchBlock->derivedFilPos <= derivedFilPos + && ! dropNewMatch) + { + dropNewMatch = + ( + // ...pMatchBlock->derivedFilPos <= derivedFilPos + // && Already tested in while condition + derivedFilPos <= pMatchBlock->derivedFilPos + pMatchBlock->len + && + pMatchBlock->distance == distance + ); + pMatchBlock = pMatchBlock->pNxt; + } + + if (! dropNewMatch) + { + ExtendMatch(orgFilPos,pOrgFil,derivedFilPos,pDerivedFil,matchLen); + + if (matchLen >= m_cMinMatchLen) + { + // Pass 2: check if there are matchblocks that enclose the new match + // (relative to derivedFil). + pMatchBlock = *ppMatchLst; + while (pMatchBlock != NULL + && pMatchBlock->derivedFilPos <= derivedFilPos + && ! dropNewMatch) + { + dropNewMatch = + ( + // pMatchBlock->derivedFilPos <= derivedFilPos + // && Already tested in while condition */ + derivedFilPos+matchLen <= + pMatchBlock->derivedFilPos + pMatchBlock->len + ); + pMatchBlock = pMatchBlock->pNxt; + } + + if (! dropNewMatch) + { + // Pass 3: drop all matchblocks from list that are enclosed by the new one + pMatchBlock = *ppMatchLst; + pPrvMatchBlock = NULL; + while (pMatchBlock != NULL) + { + pNxtMatchBlock = pMatchBlock->pNxt; + //... Check if pMatchBlock completely enclosed by new match + if + ( + derivedFilPos <= pMatchBlock->derivedFilPos + && + pMatchBlock->derivedFilPos + pMatchBlock->len <= + derivedFilPos+matchLen + ) + { + // ...If completely enclosed: remove from list + if (pPrvMatchBlock == NULL) + { + *ppMatchLst = pNxtMatchBlock; + } + else + { + pPrvMatchBlock->pNxt = pNxtMatchBlock; + } + FreeMatchBlock(pMatchBlock); + } + else + { + pPrvMatchBlock = pMatchBlock; + } + pMatchBlock = pNxtMatchBlock; + } + + // Pass 4: Find location to add match to list; keep list sorted on + // derivedFilPos. + pNxtMatchBlock = *ppMatchLst; + pPrvMatchBlock = NULL; + while (pNxtMatchBlock != NULL + && pNxtMatchBlock->derivedFilPos < derivedFilPos) + { + pPrvMatchBlock = pNxtMatchBlock; + pNxtMatchBlock = pNxtMatchBlock->pNxt; + } + + // Add new match + pMatchBlock = NewMatchBlock(); + pMatchBlock->orgFilPos = orgFilPos; + pMatchBlock->derivedFilPos = derivedFilPos; + pMatchBlock->distance = distance; + pMatchBlock->len = matchLen; + pMatchBlock->pNxt = pNxtMatchBlock; + if (pPrvMatchBlock == NULL) + { + *ppMatchLst = pMatchBlock; + } + else + { + pPrvMatchBlock->pNxt = pMatchBlock; + } + } + } + } + } + +void COXBinDiffCalculator::ShrinkMatchList(COXBinDiffCalculator::COXMatchBlock** ppMatchLst) + // --- In : ppMatchLst + // --- Out : + // --- Returns : + // --- Effect : Clean up the list of matches: shrink overlapping matches + // and drop those that become too short + { + COXMatchBlock* pMatchBlock; + COXMatchBlock* pPrvMatchBlock; + COXMatchBlock* pNxtMatchBlock; + LONG distance; + + pPrvMatchBlock = NULL; + pMatchBlock = *ppMatchLst; + while (pMatchBlock != NULL) + { + pNxtMatchBlock = pMatchBlock->pNxt; + if (pNxtMatchBlock != NULL) + { + // ... distance is maximal length of pMatchBlock without overlap + distance = pNxtMatchBlock->derivedFilPos - pMatchBlock->derivedFilPos; + // ... Shrink block if too long + if (distance < pMatchBlock->len) + { + pMatchBlock->len = distance; + } + } + // Drop blocks that become too short. + if (pMatchBlock->len < m_cMinMatchLen) + { + if (pPrvMatchBlock == NULL) + { + *ppMatchLst = pNxtMatchBlock; + } + else + { + pPrvMatchBlock->pNxt = pNxtMatchBlock; + } + FreeMatchBlock(pMatchBlock); + } + else + { + pPrvMatchBlock = pMatchBlock; + } + + pMatchBlock = pNxtMatchBlock; + } + } + +COXBinDiffCalculator::COXMatchBlock* COXBinDiffCalculator::MatchFiles( + COXBinDiffCalculator::COXTreeNode* pOrgTreeRoot,CFile* pOrgFil, + CFile* pDerivedFil, int delim, LONG& DerivedSum) + // --- In : pOrgTreeRoot : + // pOrgFil : + // pDerivedFil : + // delim : + // DerivedSum + // --- Out : DerivedSum + // --- Returns : The matched block + // --- Effect : Compare chunks from file 2 with tree from file 1 + { + COXTreeNode* pOrgTreeNode; + LONG matchLen; + COXMatchBlock* pMatchLst; + int byte; + BYTE helpByte; + int prevByte; + LONG curPos; + LONG prevPos; + COXTreeNode treeNode; + COXTreeNode equalRunNode; + LONG len; + LONG equalByteCnt; + BYTE* pByte; + + ASSERT(m_pProgressBar != NULL); + m_pProgressBar->Init(0L,pDerivedFil->GetLength(),TEXT("Pass 3 of 3:")); + + pMatchLst = NULL; + + curPos = 0; + prevPos = 0; + do + { + if (curPos - prevPos > 0x3FF) + { + if (!m_pProgressBar->Adjust(curPos)) + m_pProgressBar->Abort(TEXT("Aborting")); + prevPos = curPos; + } + + // Restore FILE position (destroyed by FindBestMatch below) + pDerivedFil->Seek(curPos,CFile::begin); + + // Buffer some characters from the file. + len = 0; + treeNode.filPos = curPos; + pByte = treeNode.bytes; + byte = -1; + equalByteCnt = 0; + do + { + prevByte = byte; + if (pDerivedFil->Read(&helpByte, 1) == 1) + { + byte = helpByte; + if (byte == prevByte) + { + equalByteCnt++; + } + else + { + // No need to check for m_cMinMatchLen or more equal bytes here; + // if they were here, they will be checked against the tree + // anyhow. This loop only executes at most m_cMinMatchLen times. + equalByteCnt = 1; + } + DerivedSum += byte; + *(pByte++) = BYTE(byte); + } + else + { + byte = EOF; + *(pByte++) = BYTE(delim); + } + len++; + } while (len < m_cMinMatchLen && byte != delim && byte != EOF); + + while (byte != delim && byte != EOF) + { + prevByte = byte; + if (pDerivedFil->Read(&helpByte, 1) == 1) + { + byte = helpByte; + if (byte == prevByte) + { + equalByteCnt++; + } + else + { + // Check for LONG runs of equal bytes, and check these against + // the tree also. + if (equalByteCnt >= m_cMinEqualRunLen) + { + // ... Buffered characters consists of m_cMinMatchLen equal bytes + memset(equalRunNode.bytes,prevByte,m_cMinMatchLen); + // ...Calculate position of start of run + equalRunNode.filPos = curPos + len - equalByteCnt; + // Search best match in original tree + FindBestMatch(pOrgTreeRoot,&pOrgTreeNode,pOrgFil, + &equalRunNode,pDerivedFil, + delim,&matchLen); + + if (pOrgTreeNode != NULL) + { + // Add match to list of matches + AddMatch(pOrgTreeNode,pOrgFil, + &equalRunNode,pDerivedFil, + matchLen,&pMatchLst); + } + pDerivedFil->Seek(curPos+len+1, CFile::begin); /* Restore file position */ + } + // Reset equal byte count to 1. + equalByteCnt = 1; + } + DerivedSum += byte; + } + else + byte = EOF; + len++; + } + curPos += len; + + // Search best match in original tree + FindBestMatch(pOrgTreeRoot,&pOrgTreeNode,pOrgFil, + &treeNode,pDerivedFil, + delim,&matchLen); + + if (pOrgTreeNode != NULL) + { + // Add match to list of matches + AddMatch(pOrgTreeNode,pOrgFil, + &treeNode,pDerivedFil, + matchLen,&pMatchLst); + } + + } while (byte != EOF); + + // Remove overlapping matches + ShrinkMatchList(&pMatchLst); + + m_pProgressBar->Close(); + + return(pMatchLst); + } + +void COXBinDiffCalculator::DumpDiff(COXBinDiffCalculator::COXMatchBlock* pMatchLst, CFile* pDerivedFil, CFile* pDiffFil) + // --- In : pMatchLst : + // pDerivedFil : + // pDiffFil : + // --- Out : + // --- Returns : + // --- Effect : Write diff file + { + COXMatchBlock* pMatchBlock; + LONG len, pos; + LONG blockPos; + LONG writeLen; + LONG blockLen; + LONG codeLen; + LONG filSiz; + LONG nextPos; + BYTE byte; + + filSiz = pDerivedFil->GetLength(); + + // Descend match block list. Resulting FILE is a series of matches and + // non-matches between original FILE and derived FILE. + pMatchBlock = pMatchLst; + len = filSiz; + pos = 0; + + // Repeat until all bytes of derivedFil have been checked + while (len > 0) + { + // Get next matching position from match block. If there is none, + // set nextPos beyond eof on derived file. + // If there are unmatched bytes between the last position written + // and the next position, write them to the diff file. + // Possibly there are no unmatched bytes (nextPos == pos), in case + // of consecutive match blocks. + nextPos = pMatchBlock != NULL ? pMatchBlock->derivedFilPos : filSiz; + if (nextPos > pos) + { + // There are unmatched bytes: write one or more block of unmatched bytes + // from derivedFil + pDerivedFil->Seek(pos,CFile::begin); + writeLen = nextPos - pos; + while (writeLen > 0) + { + // If remaining block is small, use tag for small + // blocks (1 tag/length byte) + if (writeLen <= m_cSmallSize) + { + blockLen = writeLen; + codeLen = blockLen - 1; /* Encode length 1-m_cSmallSize by subtr. 1 */ + // ... codeLen: 4 bit value + // ... bit 3-0 | Tag + byte = BYTE((codeLen << 4) | m_cTagSmallDiff); + pDiffFil->Write(&byte, 1); + } + // If remaining block is medium size use tag for + // medium blocks (2 tag/length bytes) + else if (writeLen <= m_cMediumSize) + { + blockLen = writeLen; + // ... Encode length m_cSmallSize+1 - m_cMediumSize by subtr. m_cSmallSize+1 + codeLen = blockLen - m_cSmallSize - 1; + // ... codeLen: 12 bit value + // ... bit 11-8 | Tag + byte = BYTE(((codeLen >> 4) & 0xF0) | m_cTagMediumDiff); + pDiffFil->Write(&byte, 1); + // ... bit 7-0 + byte = BYTE((codeLen ) & 0xFF); + pDiffFil->Write(&byte, 1); + } + else + { + // If remaining block is large: write a large block, + // and then re-check the remaining length + if (writeLen > m_cLargeSize) + { + blockLen = m_cLargeSize; + } + else + { + blockLen = writeLen; + } + // ... Encode length m_cMediumSize+1 - m_cLargeSize by subtracting m_cMediumSize+1 + codeLen = blockLen - m_cMediumSize - 1; + // ... codeLen: 20 bit value + // ... bit 19-16 | Tag + byte = BYTE(((codeLen >> 12) & 0xF0) | m_cTagLargeDiff); + pDiffFil->Write(&byte, 1); + // ... bit 15-8 + byte = BYTE((codeLen >> 8) & 0xFF); + pDiffFil->Write(&byte, 1); + // ... bit 7-0 + byte = BYTE((codeLen ) & 0xFF); + pDiffFil->Write(&byte, 1); + } + + writeLen -= blockLen; + len -= blockLen; + + while (blockLen > 0) + { + pDerivedFil->Read(&byte, 1); + pDiffFil->Write(&byte, 1); + blockLen--; + } + } + pos = nextPos; + } + + // Write block of matching bytes: encode them as a count and a file position + // in the original file. + if (pMatchBlock != NULL) + { + blockPos = pMatchBlock->orgFilPos; + writeLen = pMatchBlock->len; + while (writeLen > 0) + { + if (writeLen <= m_cSmallSize) + { + blockLen = writeLen; + codeLen = blockLen - 1; + if (blockPos <= m_cNearDistance) + { + // ... codeLen: 4 bit value + // ... bit 3-0 | Tag + byte = BYTE((codeLen << 4) | m_cTagSmallNearCopy); + pDiffFil->Write(&byte, 1); + + // ... blockPos: 16 bit value + WriteLongNBytes(blockPos,pDiffFil,2); + } + else if (blockPos <= m_cDistantDistance) + { + // ... codeLen: 4 bit value + // ... bit 3-0 | Tag + byte = BYTE((codeLen << 4) | m_cTagSmallDistantCopy); + pDiffFil->Write(&byte, 1); + + // ... blockPos: 24 bit value + WriteLongNBytes(blockPos,pDiffFil,3); + } + else + { + // ... codeLen: 4 bit value + // ... bit 3-0 | Tag + byte = BYTE((codeLen << 4) | m_cTagSmallFarCopy); + pDiffFil->Write(&byte, 1); + + // ... blockPos: 32 bit value + WriteLongNBytes(blockPos,pDiffFil,4); + } + } + else if (writeLen <= m_cMediumSize) + { + blockLen = writeLen; + codeLen = blockLen - m_cSmallSize - 1; + if (blockPos <= m_cNearDistance) + { + // ... codeLen: 12 bit value + // ... bit 11-8 | Tag + byte = BYTE(((codeLen >> 4) & 0xF0) | m_cTagMediumNearCopy); + pDiffFil->Write(&byte, 1); + // ... bit 7-0 + byte = BYTE((codeLen) & 0xFF); + pDiffFil->Write(&byte, 1); + + // ... blockPos: 16 bit value + WriteLongNBytes(blockPos,pDiffFil,2); + } + else if (blockPos <= m_cDistantDistance) + { + // ... codeLen: 12 bit value + // ... bit 11-8 | Tag + byte = BYTE(((codeLen >> 4) & 0xF0) |m_cTagMediumDistantCopy); + pDiffFil->Write(&byte, 1); + // ... bit 7-0 + byte = BYTE((codeLen) & 0xFF); + pDiffFil->Write(&byte, 1); + + // ... blockPos: 24 bit value + WriteLongNBytes(blockPos,pDiffFil,3); + } + else + { + // ... codeLen: 12 bit value + // ... bit 11-8 | Tag + byte = BYTE(((codeLen >> 4) & 0xF0) | m_cTagMediumFarCopy); + pDiffFil->Write(&byte, 1); + // ... bit 7-0 + byte = BYTE((codeLen) & 0xFF); + pDiffFil->Write(&byte, 1); + + // ... blockPos: 32 bit value + WriteLongNBytes(blockPos,pDiffFil,4); + } + } + else + { + if (writeLen > m_cLargeSize) + { + blockLen = m_cLargeSize; + } + else + { + blockLen = writeLen; + } + codeLen = blockLen - m_cMediumSize - 1; + if (blockPos <= m_cNearDistance) + { + /* codeLen: 20 bit value */ + /* bit 19-16 | Tag */ + byte = BYTE(((codeLen >> 12) & 0xF0) | m_cTagLargeNearCopy); + pDiffFil->Write(&byte, 1); + /* bit 15-8 */ + byte = BYTE((codeLen >> 8) & 0xFF); + pDiffFil->Write(&byte, 1); + /* bit 7-0 */ + byte = BYTE((codeLen) & 0xFF); + pDiffFil->Write(&byte, 1); + + /* blockPos: 16 bit value */ + WriteLongNBytes(blockPos,pDiffFil,2); + } + else if (blockPos <= m_cDistantDistance) + { + /* codeLen: 20 bit value */ + /* bit 19-16 | Tag */ + byte = BYTE(((codeLen >> 12) & 0xF0) | m_cTagLargeDistantCopy); + pDiffFil->Write(&byte, 1); + /* bit 15-8 */ + byte = BYTE((codeLen >> 8) & 0xFF); + pDiffFil->Write(&byte, 1); + /* bit 7-0 */ + byte = BYTE((codeLen) & 0xFF); + pDiffFil->Write(&byte, 1); + + /* blockPos: 24 bit value */ + WriteLongNBytes(blockPos,pDiffFil,3); + } + else + { + /* codeLen: 20 bit value */ + /* bit 19-16 | Tag */ + byte = BYTE(((codeLen >> 12) & 0xF0) | m_cTagLargeFarCopy); + pDiffFil->Write(&byte, 1); + /* bit 15-8 */ + byte = BYTE((codeLen >> 8) & 0xFF); + pDiffFil->Write(&byte, 1); + /* bit 7-0 */ + byte = BYTE((codeLen) & 0xFF); + pDiffFil->Write(&byte, 1); + + /* blockPos: 32 bit value */ + WriteLongNBytes(blockPos,pDiffFil,4); + } + } + writeLen -= blockLen; + + // ... A bug that was present in the previous version (if writeLen > m_cLargeSize) + // is corrected by the following line + blockPos += blockLen; + + len -= blockLen; + pos += blockLen; + } + pMatchBlock = pMatchBlock->pNxt; + } + } + pDiffFil->Write(&m_cTagEOF, 1); + } + +#endif // ! BDEXTR + +// private: +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXBlob.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXBlob.cpp new file mode 100644 index 0000000..537f305 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXBlob.cpp @@ -0,0 +1,156 @@ +// ========================================================================== +// Class Implementation : COXBlob +// ========================================================================== + +// Source file : OXBlob.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include "OXBlob.h" + +#include // For CLongBinary + +#ifdef _DEBUG +#undef THIS_FILE +static char BASED_CODE THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// Definition of static functions +IMPLEMENT_DYNAMIC(COXBlob, CByteArray); + +// Data members ------------------------------------------------------------- +// protected: +// private: + +// Member functions --------------------------------------------------------- +// public: +COXBlob::COXBlob(const CLongBinary& lbSrc) + : + CByteArray() + { + SetSize(lbSrc.m_dwDataLength); + ASSERT((lbSrc.m_dwDataLength == 0) || (GetData() != NULL)); + BYTE* pData = (BYTE*)::GlobalLock(lbSrc.m_hData); + ASSERT(pData != NULL); + memcpy(GetData(), pData, lbSrc.m_dwDataLength); + ::GlobalUnlock(lbSrc.m_hData); + } + +COXBlob& COXBlob::operator=(const CLongBinary& lbSrc) + { + SetSize(lbSrc.m_dwDataLength); + ASSERT((lbSrc.m_dwDataLength == 0) || (GetData() != NULL)); + BYTE* pData = (BYTE*)::GlobalLock(lbSrc.m_hData); + ASSERT(pData != NULL); + memcpy(GetData(), pData, lbSrc.m_dwDataLength); + ::GlobalUnlock(lbSrc.m_hData); + return *this; + } + + +BOOL COXBlob::ReadRaw(LPCTSTR pszPath) + { + CFileStatus fileStatus; + if (!CFile::GetStatus(pszPath, fileStatus)) + { + TRACE(_T("COXBlob::ReadRaw : Specified file does not exist (%s)\n"), pszPath); + return FALSE; + } + + // Read as a only dimensional array of unsigned bytes + BOOL bSuccess = TRUE; + + // Fill with the actual data + SetSize(fileStatus.m_size); + TRY + { + CFile file(pszPath, CFile::modeRead | CFile::shareDenyNone); + file.Read(GetData(), fileStatus.m_size); + file.Close(); + } + CATCH(CFileException, px) + { + TRACE(_T("COXBlob::ReadRaw : Catching File exception\n")); + bSuccess = FALSE; + } + END_CATCH + + if (!bSuccess) + // Clean up after failure + RemoveAll(); + + return bSuccess; + } + +BOOL COXBlob::WriteRaw(LPCTSTR pszPath) + { + BOOL bSuccess = TRUE; + + TRY + { + CFile file(pszPath, CFile::modeWrite | CFile::modeCreate | CFile::shareDenyWrite); + file.Write(GetData(), GetSize()); + file.Close(); + } + CATCH(CFileException, px) + { + TRACE(_T("COXBlob::WriteRaw : Catching File exception\n")); + bSuccess = FALSE; + } + END_CATCH + + return bSuccess;; + } + +// protected: +BOOL COXBlob::CopyVariant(LPCVARIANT pSrc) + // --- In : pSrc : Pointer to the source variant + // --- Out : + // --- Returns : Whether it succeeded or not + // --- Effect : Copies the contents of the source variant to this blob object + // The supported types are VT_EMPTY and 1-dim (VT_UI1 | VT_ARRAY) + { + if (V_VT(pSrc) == VT_EMPTY) + { + // Empty variant, just clear the blob + RemoveAll(); + return TRUE; + } + + if (V_VT(pSrc) != (VT_UI1 | VT_ARRAY) || + SafeArrayGetDim(V_ARRAY(pSrc)) != 1) + { + TRACE(_T("COXBlob::CopyVariant : Input variant not a one dimensional array of bytes.\n")); + return FALSE; + } + + DWORD lSize; + long lLower, lUpper; + void* pDest; + + // ... Make sure that it is an array of BYTEs + ASSERT(SafeArrayGetElemsize(V_ARRAY(pSrc)) == 1); + // ... Get the lower and upper bound + COXVariant::CheckError(SafeArrayGetLBound(V_ARRAY(pSrc), 1, &lLower)); + COXVariant::CheckError(SafeArrayGetUBound(V_ARRAY(pSrc), 1, &lUpper)); + lSize = (DWORD)(lUpper - lLower + 1); + // ... Get a pointer to the actual data and copy it + COXVariant::CheckError(SafeArrayAccessData(V_ARRAY(pSrc), &pDest)); + SetSize(lSize); + memcpy(GetData(), pDest, lSize); + COXVariant::CheckError(SafeArrayUnaccessData(V_ARRAY(pSrc))); + + return TRUE; + } + +// private: +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXBmpPrv.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXBmpPrv.cpp new file mode 100644 index 0000000..1f265fc --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXBmpPrv.cpp @@ -0,0 +1,158 @@ +// ========================================================================== +// Class Implementation : COXBmpFileDialog +// ========================================================================== + +// Source file : oxbmpprv.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" // standard MFC include +#include "OXCommon.h" +#include "oxbmpprv.h" // class specification +#include "path.h" + +#ifdef _DEBUG +#undef THIS_FILE +static char BASED_CODE THIS_FILE[] = __FILE__; +#endif + + +///////////////////////////////////////////////////////////////////////////// +// Definition of static members + + +// Data members ------------------------------------------------------------- +// protected: + +// private: + +// Member functions --------------------------------------------------------- +// public: + + +IMPLEMENT_DYNAMIC(COXBmpFileDialog, COXPreviewDialog) + + +COXBmpFileDialog::COXBmpFileDialog(BOOL bOpenFileDialog, LPCTSTR lpszDefExt, LPCTSTR lpszFileName, + DWORD dwFlags, LPCTSTR lpszFilter, CWnd* pParentWnd) + : COXPreviewDialog(bOpenFileDialog, lpszDefExt, lpszFileName, dwFlags, lpszFilter, pParentWnd) + { + } + +COXBmpFileDialog::~COXBmpFileDialog() + { + } + +#ifndef WIN32 +int COXBmpFileDialog::DoModal() +{ + ASSERT_VALID(this); + ASSERT(CFileDialog::m_ofn.Flags & OFN_ENABLEHOOK); + ASSERT(CFileDialog::m_ofn.lpfnHook != NULL); // can still be a user hook + + BOOL bResult; + + CFileDialog::m_ofn.hwndOwner = PreModal(); + if (m_bOpenFileDialog) + bResult = ::GetOpenFileName(&(CFileDialog::m_ofn)); + else + bResult = ::GetSaveFileName(&(CFileDialog::m_ofn)); + PostModal(); + + return bResult ? IDOK : IDCANCEL; +} +#endif + +// protected: + +void COXBmpFileDialog::OnNewFileSelect(const CString& sFilename) + { + COXPathSpec pathPreview(sFilename); + + if (!sFilename.IsEmpty() && + pathPreview.Exists() && + pathPreview.GetExtender().CompareNoCase(_T("bmp")) == 0) + { + m_dib.Read(pathPreview.GetPath()); + } + else + { + m_dib.Empty(); + } + } + +void COXBmpFileDialog::OnPaintPreview(CDC* pDC, const CRect& paintRect) +{ + if (m_dib.IsEmpty()) + { + // Paint space of dib with current selected brush +#ifdef WIN32 + pDC->FillRect(paintRect, pDC->GetCurrentBrush()); +#else + CBrush* pBrush = (CBrush*)pDC->SelectStockObject(HOLLOW_BRUSH); + pDC->SelectObject(pBrush); + pDC->FillRect(paintRect, pBrush); +#endif + pDC->MoveTo(paintRect.left, paintRect.top); + pDC->LineTo(paintRect.right, paintRect.bottom); + pDC->MoveTo(paintRect.right, paintRect.top); + pDC->LineTo(paintRect.left, paintRect.bottom); + } + else + { + CRect dibRect; + CSize dibSize; + dibSize = m_dib.GetSize(); + dibRect.SetRect(0,0, dibSize.cx, dibSize.cy); + + CPalette* pPalette = m_dib.GetPalette(); + if (pPalette != NULL) + { + CPalette* pOldPalette=pDC->SelectPalette(pPalette, FALSE); + pDC->RealizePalette(); + pDC->SelectPalette(pOldPalette, FALSE); + } + + m_dib.Paint(pDC, paintRect, dibRect); + } +} + +void COXBmpFileDialog::OnDoRealizePalette(CWnd* pFocusWnd) +{ + UINT nColorsChanged = 0; + + CPalette* pPalette = m_dib.GetPalette(); + if (pPalette != NULL) + { + CClientDC appDC(this); + + // bForceBackground flag is FALSE only if pFocusWnd != this (this dialog) + CPalette* oldPalette = appDC.SelectPalette(pPalette, pFocusWnd != this); + if (oldPalette != NULL) + { + nColorsChanged = appDC.RealizePalette(); + appDC.SelectPalette(oldPalette, TRUE); + } + else + { + TRACE(_T("\tSelectPalette failed in COXBmpFileDialog::OnDoRealizePalette\n")); + return; + } + } + + if (nColorsChanged != 0) + { + m_preview.Invalidate(FALSE); + } +} + + +// private: + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXCmdLne.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXCmdLne.cpp new file mode 100644 index 0000000..39ee084 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXCmdLne.cpp @@ -0,0 +1,101 @@ +// ========================================================================== +// Class Implementation : COXCommandLine +// ========================================================================== + +// Source file : OXCmdLne.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include +#include "OXCmdLne.h" + +#ifdef _DEBUG +#undef THIS_FILE +static char BASED_CODE THIS_FILE[] = __FILE__; +#endif + +IMPLEMENT_DYNAMIC(COXCommandLine, CObject) + +#define new DEBUG_NEW + +void COXCommandLine::Tokenize(LPTSTR pszCmdLine) + { + LPTSTR delimiters = _T(" =\r\n"); + CString token; + LPCTSTR curTok = _tcstok(pszCmdLine, delimiters); + while (curTok != NULL) + { + if (*curTok == _T('\'') || *curTok == _T('"')) + { + TCHAR quote[2]; + *quote = *curTok; + quote[1] = 0; + LPTSTR pLastToken = _tcsrchr(curTok, quote[0]); + if (pLastToken != curTok) + { + *pLastToken = '\0'; + token = (curTok + 1); + curTok = token; + } + else + { + token = (curTok + 1); + token += _T(" "); + curTok = _tcstok(NULL, quote); + token += curTok; + curTok = token; + } + } + + m_Tokens.Add(curTok); + m_NumTokens++; + curTok = _tcstok(NULL, delimiters); + } + + // A sentinel + m_Tokens.Add(_T("|")); + } + +COXCommandLine::COXCommandLine(LPCSTR psczCmdLine) + { + CString sCmdLine(psczCmdLine); + m_Tokens.RemoveAll(); + m_NumTokens = 0; + Tokenize(sCmdLine.GetBuffer(0)); + + sCmdLine.ReleaseBuffer(); + } + +#ifdef WIN32 +COXCommandLine::COXCommandLine(LPCWSTR psczCmdLine) + { + CString sCmdLine(psczCmdLine); + m_Tokens.RemoveAll(); + m_NumTokens = 0; + Tokenize(sCmdLine.GetBuffer(0)); + + sCmdLine.ReleaseBuffer(); + } + +#endif + +COXCommandLine::COXCommandLine(CStdioFile* pInfile) + { + m_Tokens.RemoveAll(); + m_NumTokens = 0; + TCHAR ReadLine[256]; + while (pInfile->ReadString(ReadLine, 256) != NULL) + Tokenize(ReadLine); + } + +COXCommandLine::~COXCommandLine() + { + } diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXCmdOpd.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXCmdOpd.cpp new file mode 100644 index 0000000..1503cb9 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXCmdOpd.cpp @@ -0,0 +1,74 @@ +// ========================================================================== +// Class Implementation : COXCommandOptionDesc +// ========================================================================== + +// Source file : OXCmdOpd.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// +// Example: +// BOOL CMyApp::InitInstance() +// { +// COXCommandOptionDesc codOption1(_T("RUN"), 0, _T("Automatically run sumpn")); +// COXCommandOptionDesc codOption2(_T("EMF"), COD_ARGOK | COD_REP_LAST, _T("Gimme a file")); +// } +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include "OXCmdOpd.h" + +#ifdef _DEBUG +#undef THIS_FILE +static char BASED_CODE THIS_FILE[] = __FILE__; +#endif + +IMPLEMENT_DYNAMIC(COXCommandOptionDesc, CObject) + +#define new DEBUG_NEW + +COXCommandOptionDesc::COXCommandOptionDesc() + { + } + +COXCommandOptionDesc::COXCommandOptionDesc(LPCTSTR psczOptionName, int iFlags, + LPCTSTR psczDescription, + LPCTSTR psczAbbr /* = _T("") */) + : m_sOptionName(psczOptionName), + m_nFlags(iFlags), + m_sDescription(psczDescription), + m_sAbbr(psczAbbr) + { + m_sOptionName.MakeUpper(); + m_sAbbr.MakeUpper(); + } + +COXCommandOptionDesc::COXCommandOptionDesc(const COXCommandOptionDesc& OptDescSrc) + : m_sOptionName(OptDescSrc.m_sOptionName), + m_nFlags(OptDescSrc.m_nFlags), + m_sDescription(OptDescSrc.m_sDescription), + m_sAbbr(OptDescSrc.m_sAbbr) + { + } + +COXCommandOptionDesc& COXCommandOptionDesc::operator=(const COXCommandOptionDesc& OptDescSrc) +{ + if(this==&OptDescSrc) + return *this; + + m_sOptionName = OptDescSrc.m_sOptionName; + m_nFlags = OptDescSrc.m_nFlags; + m_sDescription = OptDescSrc.m_sDescription; + m_sAbbr = OptDescSrc.m_sAbbr; + + return *this; +} + +COXCommandOptionDesc::~COXCommandOptionDesc() + { + } diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXCmdOpt.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXCmdOpt.cpp new file mode 100644 index 0000000..962028e --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXCmdOpt.cpp @@ -0,0 +1,476 @@ +// ========================================================================== +// Class Implementation : COXCommandOptions +// ========================================================================== + +// Source file : OXCmdOpt.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include "OXCmdOpt.h" +#include "OXCmdlex.h" + +#ifdef _DEBUG +#undef THIS_FILE +static char BASED_CODE THIS_FILE[] = __FILE__; +#endif + +IMPLEMENT_DYNAMIC(COXCommandOptions, CObject) + +#define new DEBUG_NEW + +COXCommandOptions::COXCommandOptions() + { + } + +COXCommandOptions::~COXCommandOptions() + { + for (int i = m_CmdOptDescList.GetSize() - 1; i >= 0 ; i--) + { + delete m_CmdOptDescList[i]; + } + + ResetMaps(); + } + +void COXCommandOptions::ResetMaps() + { + POSITION pos = m_Values.GetStartPosition(); + CString sKey; + CObject* pVal; + while (pos != NULL) + { + m_Values.GetNextAssoc(pos, sKey, pVal); + delete pVal; + } + + m_Values.RemoveAll(); + m_AbbrMap.RemoveAll(); + } + +void COXCommandOptions::Add(COXCommandOptionDesc* pOptionDesc) + { + BOOL bInserted = FALSE; + COXCommandOptionDesc* pNewOptDesc = new COXCommandOptionDesc(*pOptionDesc); + + for (int i = 0; i < m_CmdOptDescList.GetSize(); i++) + { + CString sArrayElement = ((COXCommandOptionDesc*)(m_CmdOptDescList[i]))->GetOptName(); + CString sNewElement = pNewOptDesc->GetOptName(); + // Insert with longest GetOptName's first + // assume this makes a difference to the order of the AbbrMap ??? + if (sNewElement.GetLength() >= sArrayElement.GetLength()) + { + bInserted = TRUE; + m_CmdOptDescList.InsertAt(i, pNewOptDesc, 1); + break; + } + } + + if (!bInserted) + m_CmdOptDescList.Add(pNewOptDesc); + } + +void COXCommandOptions::Add(LPCTSTR pszcOptionName, int iFlags, + LPCTSTR pszcDescription, LPCTSTR pszcAbbr /* = _T("") */) + { + COXCommandOptionDesc Cod(pszcOptionName, iFlags, pszcDescription, pszcAbbr); + Add(&Cod); + } + +BOOL COXCommandOptions::Remove(LPCTSTR pszcOption) + { + CString sOption = pszcOption; + sOption.MakeUpper(); + CObject* pTmp = NULL; + + // what kind of option is it? + if (m_Values.Lookup(sOption, pTmp)) + { + // delete the list of values associated with this option + delete (CMapStringToString*)pTmp; + } + + // Remove the entry from the values list + m_Values.RemoveKey(sOption); + + // Remove the entry from the abbreviations list + m_AbbrMap.RemoveKey(sOption); + + BOOL bFound(FALSE); + for (int i = 0; i < m_CmdOptDescList.GetSize(); i++) + { + COXCommandOptionDesc* pOpt = (COXCommandOptionDesc*)m_CmdOptDescList[i]; + if (pOpt->GetOptName() == sOption) + { + delete pOpt; + m_CmdOptDescList.RemoveAt(i); + bFound = TRUE; + break; + } + } + + return bFound; + } + +// walk through CmdOptDescList, gathering .GetOptName() abbreviations +void COXCommandOptions::BuildAbbrTable() + { + CStringArray Abbray; // Abbreviation Array :-) + CUIntArray Indaray; // Index Array + CStringArray Clash; // Clash array + + // Initialize Abbray with complete option names (and Indaray with pointers) + // This array is size sorted because CmdOptDescList is size sorted + for (int i = 0; i < m_CmdOptDescList.GetSize(); i++) + { + Abbray.Add(((COXCommandOptionDesc*)(m_CmdOptDescList[i]))->GetOptName()); + Indaray.Add(i); + CString sReqAbbr = ((COXCommandOptionDesc*)(m_CmdOptDescList[i]))->GetOptAbbr(); + if (sReqAbbr.GetLength()) + { + Abbray.Add(sReqAbbr); + Indaray.Add(i); + } + } + + // Now walk through AbbrMap extending it as we go with abbreviations + int iAbbr; + for (iAbbr = 0;iAbbr < Abbray.GetSize(); iAbbr++) + { + CString sAbbr = Abbray[iAbbr]; + // Abbr is the name already in the map + int iNewAbbrLength = sAbbr.GetLength() - 1; + if (iNewAbbrLength) + { // No zero length abbreviations + // NewAbbr is the name we are trying to add to map + CString sNewAbbr = sAbbr.GetBufferSetLength(iNewAbbrLength); + + // See if sNewAbbr is unique (ignoring all the entries we've already processed) + BOOL bUnique = TRUE; + + int iCmp; + for (iCmp = iAbbr+ 1; iCmp < Abbray.GetSize(); iCmp++) + { + // Is sNewAbbr an abbreviation of sCmp? + // Assumes that Left() returns all characters (without + // complaint) in the case that Left() is passed a number + // larger than the string length. + CString sCmp = Abbray.GetAt(iCmp).Left(sNewAbbr.GetLength()); + + if (sCmp == sNewAbbr) + { + // sNewAbbr is not unique ... abandon it + bUnique = FALSE; + break; + } + } + // Did we previously find a clash that's a substring of sNewAbbr + if (bUnique) + { + for (int iClash = 0; iClash < Clash.GetSize(); iClash++) + { + CString sCmp = Clash.GetAt(iClash); + if (sCmp == sNewAbbr) + { + bUnique = FALSE; + break; + } + } + } + + if (bUnique) + { + Abbray.Add(sNewAbbr); + Indaray.Add(Indaray[iAbbr]); + } + else + { + Clash.Add(sNewAbbr); + } + } + } + + ASSERT(Abbray.GetSize() == Indaray.GetSize()); + + // Hmmm, this will freak if user calls this twice ... handle that case -tab + ASSERT(m_AbbrMap.GetCount() == 0); + + // Now Build AbbrMap from Abbray and Indaray + for (int j = 0; j < Abbray.GetSize(); j++) + { + m_AbbrMap.SetAt(Abbray[j], m_CmdOptDescList[Indaray[j]]); + } + } + +// Construct array of actual parameters based on command line +CString COXCommandOptions::ParseCmdLine(COXCommandLine& cl, CStringList* pRestList /* = NULL */) + { + CString sReturn; + + // Clear all previous maps and rebuild afterwards + ResetMaps(); + BuildAbbrTable(); + + int iNumArgs = cl.GetNumArgs(); + for (int iArg = 0; iArg < iNumArgs; iArg++) + { + if ((cl[iArg][0] == _T('-')) || (cl[iArg][0] == _T('/'))) + { + CString sToken = cl[iArg].Mid(1); + sToken.MakeUpper(); + COXCommandOptionDesc* Opt = (COXCommandOptionDesc*)m_AbbrMap[sToken]; + + if (Opt != NULL) + { // Valid switch or abbreviation + CObject* pTmp = NULL; + BOOL bIsAlreadyThere = m_Values.Lookup(Opt->GetOptName(), pTmp); + if (bIsAlreadyThere && (!Opt->IsRepeatable())) + { + TCHAR msg[80]; + _stprintf(msg, _T("%s can only be specified once\r\n"), sToken); + TRACE(msg); + THROW(new COXCommandLineException(msg, this)); + } + else if (bIsAlreadyThere && Opt->ReturnsFirstRep()) + { + // It's already there ... do nothing + } + else + { + // Either it's not already there or it is already + // there and repetitions are allowed + + // Assign new value to insert to sValue + if (!Opt->TakesArg()) + { + m_Values[Opt->GetOptName()] = new CStringList; + } + else if (Opt->ReturnsAssociative()) + { + if (iArg + 2 > iNumArgs - 1) + { + TCHAR msg[80]; + _stprintf(msg, _T("%s requires 2 arguments\r\n"), Opt->GetOptName()); + TRACE(msg); + THROW(new COXCommandLineException(msg, this)); + } + + CMapStringToString* assocmap; + if (!m_Values.Lookup(Opt->GetOptName(), pTmp)) + { + assocmap = new CMapStringToString; + m_Values[Opt->GetOptName()] = assocmap; + } + else + { + assocmap = (CMapStringToString*)pTmp; + } + + CString sKey = cl[++iArg]; + (*assocmap)[sKey] = cl[++iArg]; + } + else if (Opt->ReturnsArray()) + { + if (iArg + 1 > iNumArgs - 1) + { + TCHAR msg[80]; + _stprintf(msg, _T("%s requires an argument\r\n"), Opt->GetOptName()); + TRACE(msg); + THROW(new COXCommandLineException(msg, this)); + } + + CStringList* pVals; + if (!m_Values.Lookup(Opt->GetOptName(), pTmp)) + { + pVals = new CStringList; + m_Values[Opt->GetOptName()] = pVals; + } + else + { + pVals = (CStringList*)pTmp; + } + + pVals->AddTail(cl[++iArg]); + } + else + { + // It's not already there and we expect an argument + + if ((cl[iArg + 1] == _T("|")) || (cl[iArg + 1][0] == _T('-')) || (cl[iArg + 1][0] == _T('/'))) + { + TCHAR msg[80]; + _stprintf(msg, _T("%s requires an argument\r\n"), Opt->GetOptName()); + TRACE(msg); + THROW(new COXCommandLineException(msg, this)); + } + + CObject* pTmp; + if (m_Values.Lookup(Opt->GetOptName(), pTmp)) + { + delete pTmp; + } + + CStringList* pVals = new CStringList; + pVals->AddTail(cl[++iArg]); + m_Values[Opt->GetOptName()] = pVals; + } + } + + } + else + { + TCHAR msg[80]; + _stprintf(msg, _T("%s is not a valid switch\r\n"), sToken); + TRACE(msg); + THROW(new COXCommandLineException(msg, this)); + } + } + else + { + if (pRestList != NULL) + { + ASSERT(pRestList->IsKindOf(RUNTIME_CLASS(CStringList))); + pRestList->AddTail(cl[iArg]); + } + + sReturn += cl[iArg] + _T(" "); + } + } + + // Glue the remaining strings back together + while (iArg < cl.GetNumArgs()) + { + sReturn += cl[iArg++] + _T(" "); + } + + return sReturn; + } + +const COXCommandOptionDesc* COXCommandOptions::GetOptionObject(LPCTSTR psczOption) const + { + CString sOption(psczOption); + sOption.MakeUpper(); + BOOL bFound(FALSE); + COXCommandOptionDesc* pOpt = NULL; + for (int i = 0; i < m_CmdOptDescList.GetSize(); i++) + { + pOpt = (COXCommandOptionDesc*)m_CmdOptDescList[i]; + if (pOpt->GetOptName() == sOption) + { + bFound = TRUE; + break; + } + } + + return bFound ? pOpt : NULL; + } + +BOOL COXCommandOptions::IsEnabled(LPCTSTR pszcOption) const + { + CString sOption = pszcOption; + sOption.MakeUpper(); + CObject* pTmp; + return (m_Values.Lookup(sOption, pTmp)); + } + +CString COXCommandOptions::GetValue(LPCTSTR pszcOption) const + { + CString sOption = pszcOption; + sOption.MakeUpper(); + COXCommandOptionDesc* pOpt = NULL; + CObject* pTmp = NULL; + + m_AbbrMap.Lookup(sOption, pTmp); + pOpt = (COXCommandOptionDesc*)pTmp; + ASSERT(pOpt != NULL && !pOpt->ReturnsArray() && !pOpt->ReturnsAssociative()); + CStringList* pList; + if (m_Values.Lookup(sOption, pTmp)) + { + pList = (CStringList*)pTmp; + + return pList->GetHead(); + } + else + { + return _T(""); + } + } + +const CStringList* COXCommandOptions::GetValues(LPCTSTR pszcOption) const + { + CString sOption = pszcOption; + sOption.MakeUpper(); + COXCommandOptionDesc* pOpt = NULL; + CObject* pTmp = NULL; + + m_AbbrMap.Lookup(sOption, pTmp); + pOpt = (COXCommandOptionDesc*)pTmp; + ASSERT(pOpt != NULL && pOpt->ReturnsArray()); + if (m_Values.Lookup(sOption, pTmp)) + { + return (CStringList*)pTmp; + } + else + { + return NULL; + } + } + +const CMapStringToString* COXCommandOptions::GetAssocPairs(LPCTSTR pszcOption) const + { + CString sOption = pszcOption; + sOption.MakeUpper(); + COXCommandOptionDesc* pOpt = NULL; + CObject* pTmp = NULL; + + m_AbbrMap.Lookup(sOption, pTmp); + pOpt = (COXCommandOptionDesc*)pTmp; + ASSERT(pOpt != NULL && pOpt->ReturnsAssociative()); + if (m_Values.Lookup(sOption, pTmp)) + { + return (CMapStringToString*)pTmp; + } + else + { + return NULL; + } + } + +CString COXCommandOptions::Usage(LPCTSTR pszcMsg) const + { + CString sMsg(pszcMsg); + + sMsg += _T("\n"); + + CString sLine; + for (int i = 0; i < m_CmdOptDescList.GetSize(); i++) + { + COXCommandOptionDesc* pOpt = (COXCommandOptionDesc*)m_CmdOptDescList[i]; + CString sAbbr = pOpt->GetOptAbbr(); + if (sAbbr.GetLength() != 0) + { + CString sTmp(_T("(-")); + sTmp += sAbbr; + sTmp += _T(")"); + sAbbr = sTmp; + } + + _stprintf(sLine.GetBuffer(100), _T("-%s\t%s\t%s\n"), pOpt->GetOptName(), sAbbr, pOpt->GetDescription()); + sLine.ReleaseBuffer(); + sMsg += sLine; + } + + return sMsg; + } + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXCmdlEx.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXCmdlEx.cpp new file mode 100644 index 0000000..f70c42c --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXCmdlEx.cpp @@ -0,0 +1,96 @@ +// ========================================================================== +// Class Implementation : COXCommandLineException +// ========================================================================== + +// Source file : oxcmdlex.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" // standard MFC include +#include "oxcmdlex.h" // class specification +#include "oxcmdopt.h" + +#ifdef WIN32 + #include "wincon.h" // for AllocConsole call +#endif + +#ifdef _DEBUG +#undef THIS_FILE +static char BASED_CODE THIS_FILE[] = __FILE__; +#endif + +IMPLEMENT_DYNAMIC( COXCommandLineException, CException ); + +#define new DEBUG_NEW + +///////////////////////////////////////////////////////////////////////////// +// Definition of static members + + +// Data members ------------------------------------------------------------- +// protected: + +// private: + +// Member functions --------------------------------------------------------- +// public: +COXCommandLineException::COXCommandLineException(LPCTSTR pszcError, + COXCommandOptions* pCmdOpt /* = NULL */) + { + if (pCmdOpt != NULL) + { + ASSERT(pCmdOpt->IsKindOf(RUNTIME_CLASS(COXCommandOptions))); + m_sErrMsg = pCmdOpt->Usage(pszcError); + } + else + m_sErrMsg = pszcError; + } + +BOOL COXCommandLineException::GetErrorMessage(LPTSTR lpszError, UINT nMaxError, + UINT* /* pnHelpContext */ /* = NULL */) + { + ASSERT(lpszError != NULL && AfxIsValidString(lpszError, nMaxError)); + + lstrcpyn(lpszError, m_sErrMsg, nMaxError); + + return TRUE; + } + +BOOL COXCommandLineException::WriteToStdErr() + { +#ifdef WIN32 + DWORD written; + HANDLE StdErr = GetStdHandle(STD_ERROR_HANDLE); + if (StdErr == INVALID_HANDLE_VALUE) + { + if (AllocConsole()) + StdErr = GetStdHandle(STD_ERROR_HANDLE); + else + return FALSE; + } + + if (StdErr != INVALID_HANDLE_VALUE) + { + WriteFile(StdErr, m_sErrMsg, m_sErrMsg.GetLength(), &written, 0); + return TRUE; + } + + return FALSE; +#else + fprintf(stderr, m_sErrMsg); + return TRUE; +#endif + } + +// protected: + +// private: + +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXCommMsg.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXCommMsg.cpp new file mode 100644 index 0000000..80f3a34 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXCommMsg.cpp @@ -0,0 +1,127 @@ +// ========================================================================== +// Class Implementation : COXCommMsg +// ========================================================================== + +// Source file : OXCommMsg.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include "OXCommMsg.h" + +#ifdef _DEBUG +#undef THIS_FILE +static char BASED_CODE THIS_FILE[] = __FILE__; +#endif + +// ... Skip templated base class +IMPLEMENT_DYNAMIC(COXCommMsg, CObject) + +///////////////////////////////////////////////////////////////////////////// +// Definition of static members +COXCommMsg::EOXArgumentTypes COXCommMsg::m_types[COXCommMsg::m_nArgumentTypesCount] = + { + COXCommMsg::ATEmpty, + COXCommMsg::ATNull, + COXCommMsg::ATBool, + COXCommMsg::ATUI1, + COXCommMsg::ATI2, + COXCommMsg::ATI4, + COXCommMsg::ATCy, + COXCommMsg::ATR4, + COXCommMsg::ATR8, + COXCommMsg::ATStr, + COXCommMsg::ATDate, + COXCommMsg::ATError, + COXCommMsg::ATBlob + }; + +LPCTSTR COXCommMsg::m_typeNames[COXCommMsg::m_nArgumentTypesCount] = + { + _T("Empty"), + _T("Null"), + _T("Bool"), + _T("UI1"), + _T("I2"), + _T("I4"), + _T("Cy"), + _T("R4"), + _T("R8"), + _T("Str"), + _T("Date"), + _T("Error"), + _T("Blob") + }; + +WORD COXCommMsg::m_nMagicNumber = 0x01FE; +WORD COXCommMsg::m_nVariantType = 0x0001; + +// Data members ------------------------------------------------------------- +// protected: + +// private: + +// Member functions --------------------------------------------------------- +// public: +COXCommMsg::COXCommMsg() + { + ASSERT_VALID(this); + } + +void COXCommMsg::Serialize(CArchive& ar) + { + // First write magic number + if (ar.IsLoading()) + { + WORD nMagicNumber; + WORD nType; + ar >> nMagicNumber; + if (nMagicNumber != m_nMagicNumber) + { + TRACE(_T("COXCommMsg::Serialize : Magic number is invalid, throwing CArchiveException\n")); + AfxThrowArchiveException(CArchiveException::badClass); + } + ar >> nType; + if (nType != m_nVariantType) + { + TRACE(_T("COXCommMsg::Serialize : Type is invalid, throwing CArchiveException\n")); + AfxThrowArchiveException(CArchiveException::badClass); + } + } + else + { + ar << m_nMagicNumber; + ar << m_nVariantType; + } + + // Call base class implementation + CArray::Serialize(ar); + } + +#ifdef _DEBUG +void COXCommMsg::AssertValid() const + { + CArray::AssertValid(); + } + +void COXCommMsg::Dump(CDumpContext& dc) const + { + CArray::Dump(dc); + } +#endif //_DEBUG + +COXCommMsg::~COXCommMsg() + { + } + +// protected: +// private: + +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXCommunicator.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXCommunicator.cpp new file mode 100644 index 0000000..4fc1060 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXCommunicator.cpp @@ -0,0 +1,573 @@ +// ========================================================================== +// Class Implementation : COXCommunicator +// ========================================================================== + +// Source file : OXCommunicator.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include "OXCommunicator.h" + +#ifdef _DEBUG +#undef THIS_FILE +static char BASED_CODE THIS_FILE[] = __FILE__; +#endif + +IMPLEMENT_DYNAMIC(COXCommunicator, CSocket) + +///////////////////////////////////////////////////////////////////////////// +// Definition of static members +HCLIENT_COMMUNICATOR COXCommunicator::m_nLastUsedHandle = 0; +CMap COXCommunicator::m_TimerToCommunicator; + +// Data members ------------------------------------------------------------- +// protected: + // COXCommunicator* m_pMasterCommunicator; + // --- The master communicator to which events should be routed + // Null if this communicator does not have a master + + // CMap m_connections; + // --- Map from the client communicator objects to their handle + + // CSocketFile* m_pFile; + // --- Socket file used for communication. This will be constructed when the + // communication is executed for the first time + + // CArchive* m_pInStream; + // CArchive* m_pOutStream; + // --- In (load) and out (store) stream used on top of m_pFile + + // HWND m_hCancelWindow; + // --- Handle of the window which messages will be dispatch during a blocking call + + // UINT m_nTimeOut; + // --- Time out value of a blocking call + + // UINT m_nTimerID; + // --- ID of the timer used to notify of a time out + +// private: + +// Member functions --------------------------------------------------------- +// public: +COXCommunicator::COXCommunicator(UINT nStreamBufferSize /* = 4096 */, + COXCommunicator* pMasterCommunicator /* = NULL */) + : + m_nStreamBufferSize(nStreamBufferSize), + m_pMasterCommunicator(pMasterCommunicator), + m_pFile(NULL), + m_pInStream(NULL), + m_pOutStream(NULL), + m_nTimerID(0), + m_hCancelWindow(NULL), + m_nTimeOut(0) + { + ASSERT_VALID(this); + } + +HCLIENT_COMMUNICATOR COXCommunicator::GetClientHandle(COXCommunicator* pClientCommunicator) + { + HCLIENT_COMMUNICATOR hClientCommunicator; + if (m_connections.Lookup(pClientCommunicator, hClientCommunicator)) + return hClientCommunicator; + else + { + TRACE(_T("COXCommunicator::GetClientHandle : Client communicator not found, returning 0\n")); + return (HCLIENT_COMMUNICATOR)0; + } + } + +COXCommunicator* COXCommunicator::GetClientCommunicator(HCLIENT_COMMUNICATOR hClient) + { + COXCommunicator* pCommunicator; + HCLIENT_COMMUNICATOR hClientCommunicator; + POSITION pos; + pos = m_connections.GetStartPosition(); + while (pos != NULL) + { + m_connections.GetNextAssoc(pos, pCommunicator, hClientCommunicator); + if (hClient == hClientCommunicator) + return pCommunicator; + } + TRACE(_T("COXCommunicator::GetClientCommunicator : Handle not found, returning NULL\n")); + return NULL; + } + +void COXCommunicator::Initialize(UINT uTimeOut /* = 10000 */, CWnd* pCancelWnd /* = NULL */) + { + SetTimeOut(uTimeOut); + SetCancelWindow(pCancelWnd); + } + +void COXCommunicator::SetCancelWindow(CWnd* pWnd) + { + m_hCancelWindow = pWnd->GetSafeHwnd(); + } + +void COXCommunicator::SetTimeOut(UINT uTimeOut) + { + m_nTimeOut = uTimeOut; + } + +BOOL COXCommunicator::IsOpen() + { + return (m_hSocket != INVALID_SOCKET); + } + +BOOL COXCommunicator::IsListening() + { + BOOL bListening; + int nSize = sizeof(bListening); + if (GetSockOpt(SO_ACCEPTCONN, &bListening, &nSize)) + return bListening; + else + { + TRACE(_T("COXCommunicator::IsListening : Could not get the listening state\n")); + return FALSE; + } + } + +BOOL COXCommunicator::IsBlocking() + { + return (m_pbBlocking != NULL) && *m_pbBlocking; + } + +BOOL COXCommunicator::AreAnyBlocking() + { + BOOL bBlocking; + // Get the blocking state of this communicator + bBlocking = IsBlocking(); + + // Get the blocking state of all clients + COXCommunicator* pCommunicator; + HCLIENT_COMMUNICATOR hDummy; + POSITION pos; + pos = m_connections.GetStartPosition(); + while (!bBlocking && (pos != NULL)) + { + m_connections.GetNextAssoc(pos, pCommunicator, hDummy); + bBlocking = pCommunicator->IsBlocking(); + } + + return bBlocking; + } + +void COXCommunicator::CancelAllBlockingCalls() + { + // Cancel blocking call of this communicator + CancelBlockingCall(); + + // Cancel blocking call of all clients + COXCommunicator* pCommunicator; + HCLIENT_COMMUNICATOR hDummy; + POSITION pos; + pos = m_connections.GetStartPosition(); + while (pos != NULL) + { + m_connections.GetNextAssoc(pos, pCommunicator, hDummy); + pCommunicator->CancelBlockingCall(); + } + } + +DWORD COXCommunicator::GetMaxReadable() + { + DWORD nNumberReadable; + if (IOCtl(FIONREAD, &nNumberReadable)) + return nNumberReadable; + else + { + TRACE(_T("COXCommunicator::GetMaxReadable : Function IOCtl() failed, returning 0\n")); + return 0; + } + } + +CArchive* COXCommunicator::GetInStream() + { + if (m_pFile == NULL) + m_pFile = new CSocketFile(this); + if (m_pInStream == NULL) + m_pInStream = new CArchive(m_pFile,CArchive::load, m_nStreamBufferSize); + return m_pInStream; + } + +CArchive* COXCommunicator::GetOutStream() + { + if (m_pFile == NULL) + m_pFile = new CSocketFile(this); + if (m_pOutStream == NULL) + m_pOutStream = new CArchive(m_pFile,CArchive::store, m_nStreamBufferSize); + return m_pOutStream; + } + + +void COXCommunicator::OnClientCreate(HCLIENT_COMMUNICATOR /* hClient */, COXCommunicator* /* pClientCommunicator */) + { + // Do nothing by default + } + +void COXCommunicator::OnClientReceive(HCLIENT_COMMUNICATOR /* hClient */, COXCommunicator* /* pClientCommunicator */, DWORD /* nSize */, int /* nErrorCode */) + { + // Do nothing by default + } + +void COXCommunicator::OnClientClose(HCLIENT_COMMUNICATOR /* hClient */, COXCommunicator* /* pClientCommunicator */, int /* nErrorCode */) + { + // Do nothing by default + } + +void COXCommunicator::OnClientDestroy(HCLIENT_COMMUNICATOR /* hClient */, COXCommunicator* /* pClientCommunicator */) + { + // Do nothing by default + } + +void COXCommunicator::OnServerReceive(DWORD /* nSize */, int /* nErrorCode */) + { + // Do nothing by default + } + +void COXCommunicator::OnServerClose(int /* nErrorCode */) + { + // Do nothing by default + } + +BOOL COXCommunicator::OnMessagePending() + { + // NOTE : When the function returns + // TRUE : Allow user-interface updates (pThread->OnIdle(-1);) + // FALSE : No work to do -- allow CPU to sleep (WaitMessage();) + + MSG msg; + // Check for messages for the cancel window and + // timer message and WM_QUIT + if( ((m_hCancelWindow != NULL) && ::PeekMessage(&msg, m_hCancelWindow, NULL, NULL, PM_REMOVE)) || + ::PeekMessage(&msg, NULL, WM_TIMER, WM_TIMER, PM_REMOVE) || + ::PeekMessage(&msg, NULL, WM_QUIT, WM_QUIT, PM_REMOVE) ) + { + // Abort loop on WM_QUIT + if (msg.message == WM_QUIT) + { + // ... Cancel the current blocking call + TRACE(_T("COXCommunicator::OnMessagePending : WM_QUIT detected, reposting")); + CancelBlockingCall(); + AfxPostQuitMessage(0); + // ... No need for idle time processing + return FALSE; + } + // Pump message + if (!AfxGetThread()->PreTranslateMessage(&msg)) + { + ::TranslateMessage(&msg); + ::DispatchMessage(&msg); + } + // ... No need for idle time processing + return FALSE; + }; + // Call base class implementation (will process WM_PAINT) + return CSocket::OnMessagePending(); + } + +BOOL COXCommunicator::Accept(CAsyncSocket& rConnectedSocket, + SOCKADDR* lpSockAddr /* = NULL */, int* lpSockAddrLen /* = NULL */) + { + BOOL bRet; + // ... Start a new timer if necessary + CreateTimer(); + bRet = CSocket::Accept(rConnectedSocket, lpSockAddr, lpSockAddrLen); + CloseTimer(); + return bRet; + } + +int COXCommunicator::Receive(void* lpBuf, int nBufLen, int nFlags /* = 0 */) + { + int nRet; + // ... Start a new timer if necessary + CreateTimer(); + nRet = CSocket::Receive(lpBuf, nBufLen, nFlags); + CloseTimer(); + return nRet; + } + +int COXCommunicator::Send(const void* lpBuf, int nBufLen, int nFlags /* = 0 */) + { + int nRet; + // ... Start a new timer if necessary + CreateTimer(); + nRet = CSocket::Send(lpBuf, nBufLen, nFlags); + CloseTimer(); + return nRet; + } + +void COXCommunicator::Close() + { + // First close all the client connectiosn + COXCommunicator* pCommunicator; + HCLIENT_COMMUNICATOR hClientCommunicator; + POSITION pos; + pos = m_connections.GetStartPosition(); + while (pos != NULL) + { + m_connections.GetNextAssoc(pos, pCommunicator, hClientCommunicator); + pCommunicator->Close(); + OnClientDestroy(hClientCommunicator, pCommunicator); + delete pCommunicator; + } + m_connections.RemoveAll(); + + // ... Start a new timer if necessary + CreateTimer(); + CSocket::Close(); + CloseTimer(); + } + +#ifdef _DEBUG +void COXCommunicator::AssertValid() const + { + CSocket::AssertValid(); + } + +void COXCommunicator::Dump(CDumpContext& dc) const + { + CSocket::Dump(dc); + } +#endif //_DEBUG + +COXCommunicator::~COXCommunicator() + { + COXCommunicator* pCommunicator; + HCLIENT_COMMUNICATOR hClientCommunicator; + POSITION pos; + pos = m_connections.GetStartPosition(); + while (pos != NULL) + { + m_connections.GetNextAssoc(pos, pCommunicator, hClientCommunicator); + OnClientDestroy(hClientCommunicator, pCommunicator); + delete pCommunicator; + } + m_connections.RemoveAll(); + + // Clean everything up + delete m_pOutStream; + delete m_pInStream; + delete m_pFile; + + // If we still have a timer running, stop it now + if (m_nTimerID != 0) + StopTimer(m_nTimerID); + } + +// protected: +void COXCommunicator::OnAccept(int nErrorCode) + // --- In : nErrorCode : The most recent error code of the communicator + // --- Out : + // --- Returns : + // --- Effect : Creates a new client socket and accepts the call + { + CSocket::OnAccept(nErrorCode); + + COXCommunicator* pCommunicator = new COXCommunicator(m_nStreamBufferSize, this); + + if (Accept(*pCommunicator)) + { + // Inherit timeout and cancel window from parent + pCommunicator->Initialize(m_nTimeOut, CWnd::FromHandle(m_hCancelWindow)); + m_connections.SetAt(pCommunicator, ++m_nLastUsedHandle); + OnClientCreate(m_nLastUsedHandle, pCommunicator); + } + else + delete pCommunicator; + } + +void COXCommunicator::OnReceive(int nErrorCode) + // --- In : nErrorCode : The most recent error code of the communicator + // --- Out : + // --- Returns : + // --- Effect : Notifies the master communicator or calls the notification function + { + CSocket::OnReceive(nErrorCode); + if (m_pMasterCommunicator != NULL) + m_pMasterCommunicator->OnNotifyReceive(this, GetMaxReadable(), nErrorCode); + else + OnServerReceive(GetMaxReadable(), nErrorCode); + } + +void COXCommunicator::OnClose(int nErrorCode) + // --- In : nErrorCode : The most recent error code of the communicator + // --- Out : + // --- Returns : + // --- Effect : Notifies the master communicator or calls the notification function + { + CSocket::OnClose(nErrorCode); + if (m_pMasterCommunicator != NULL) + m_pMasterCommunicator->OnNotifyClose(this, nErrorCode); + else + OnServerClose(nErrorCode); + // The other connection has closed its socket, we close ours as well + Close(); + } + +void COXCommunicator::OnNotifyReceive(COXCommunicator* pClientCommunicator, DWORD nSize, int nErrorCode) + // --- In : pClientCommunicator : The client communicator from which the notification originates + // nErrorCode : The most recent error code of the communicator + // --- Out : + // --- Returns : + // --- Effect : Handles a notification of a client communicatorNotifies the master communicator or calls the notification function + { + HCLIENT_COMMUNICATOR hClientCommunicator; + VERIFY(m_connections.Lookup(pClientCommunicator, hClientCommunicator)); + OnClientReceive(hClientCommunicator, pClientCommunicator, nSize, nErrorCode); + } + +void COXCommunicator::OnNotifyClose(COXCommunicator* pClientCommunicator, int nErrorCode) + // --- In : pClientCommunicator : The client communicator from which the notification originates + // nErrorCode : The most recent error code of the communicator + // --- Out : + // --- Returns : + // --- Effect : Handles a notification of a client communicatorNotifies the master communicator or calls the notification function + { + HCLIENT_COMMUNICATOR hClientCommunicator; + VERIFY(m_connections.Lookup(pClientCommunicator, hClientCommunicator)); + OnClientClose(hClientCommunicator, pClientCommunicator, nErrorCode); + } + +void COXCommunicator::OnNotifyKill(COXCommunicator* pClientCommunicator, int /* nErrorCode */) + // --- In : pClientCommunicator : The client communicator from which the notification originates + // nErrorCode : The most recent error code of the communicator + // --- Out : + // --- Returns : + // --- Effect : Handles a notification of a client communicatorNotifies the master communicator or calls the notification function + { + HCLIENT_COMMUNICATOR hClientCommunicator; + VERIFY(m_connections.Lookup(pClientCommunicator, hClientCommunicator)); + OnClientDestroy(hClientCommunicator, pClientCommunicator); + // Delete client connection (has already been closed) + ASSERT(pClientCommunicator->IsOpen()); + m_connections.RemoveKey(pClientCommunicator); + delete pClientCommunicator; + } + +void COXCommunicator::CreateTimer() + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Starts a new timer and stores the timer id + { + // ... Start new timer + ASSERT(m_nTimerID == 0); + if (m_nTimeOut != 0) + m_nTimerID = StartTimer(this, m_nTimeOut); + } + +void COXCommunicator::CloseTimer() + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Closes the started timer (if any) + { + // ... Stop previous timer if still running + if (m_nTimerID != 0) + StopTimer(m_nTimerID); + m_nTimerID = 0; + } + +UINT COXCommunicator::StartTimer(COXCommunicator* pCommunicator, UINT nTimeOut) + // --- In : pCommunicator : The communicator that requests a timer + // nTimeOut : The time out in milli seconds + // --- Out : + // --- Returns : The timer id of the started timer + // --- Effect : Starts a new timer and registers the specified communicator + { + ASSERT(nTimeOut != 0); + // ... Should not yet have a timer + ASSERT(pCommunicator->m_nTimerID == 0); + + UINT nTimerID; + // ... Start timer + nTimerID = ::SetTimer(NULL, 0, nTimeOut, TimerProc); + if (nTimerID == 0) + AfxThrowResourceException(); + // ... Store mapping from timer ID to object + m_TimerToCommunicator.SetAt(nTimerID, pCommunicator); + return nTimerID; + } + +void COXCommunicator::StopTimer(UINT nTimerID) + // --- In : nTimerID + // --- Out : + // --- Returns : + // --- Effect : Stops the specified timer + { + // ... Remove mapping from timer ID to object + m_TimerToCommunicator.RemoveKey(nTimerID); + // ... Stop timer + ::KillTimer(NULL, nTimerID); + } + +VOID CALLBACK COXCommunicator::TimerProc(HWND /* hWnd */, UINT /* nMsg */, UINT nTimerID, DWORD /* dwTime */) + // --- In : hWnd : + // nMsg : + // nTimerID : + // dwTime) + // --- Out : + // --- Returns : + // --- Effect : Function that handles a timed out timer + // It will cancel the blocking call of the associated communicator +{ + ASSERT(nTimerID != 0); + // Warn object that started the timer + COXCommunicator* pCommunicator; + if (m_TimerToCommunicator.Lookup(nTimerID, pCommunicator)) + { + TRACE(_T("COXCommunicator::TimerProc : Time out reached, cancelling blocking call ...\n")); + pCommunicator->CancelBlockingCall(); + pCommunicator->m_nTimerID = 0; + } + // Stop the timer + StopTimer(nTimerID); +} + +BOOL COXCommunicator::ConnectHelper(const SOCKADDR* lpSockAddr, int nSockAddrLen) + // Same as base class but with a timer + { + BOOL bRet; + // ... Start a new timer if necessary + CreateTimer(); + bRet = CSocket::ConnectHelper(lpSockAddr, nSockAddrLen); + CloseTimer(); + return bRet; + } + +int COXCommunicator::ReceiveFromHelper(void* lpBuf, int nBufLen, + SOCKADDR* lpSockAddr, int* lpSockAddrLen, int nFlags) + // Same as base class but with a timer + { + int nRet; + // ... Start a new timer if necessary + CreateTimer(); + nRet = CSocket::ReceiveFromHelper(lpBuf, nBufLen, lpSockAddr, lpSockAddrLen, nFlags); + CloseTimer(); + return nRet; + } + +int COXCommunicator::SendToHelper(const void* lpBuf, int nBufLen, + const SOCKADDR* lpSockAddr, int nSockAddrLen, int nFlags) + // Same as base class but with a timer + { + int nRet; + // ... Start a new timer if necessary + CreateTimer(); + nRet = CSocket::SendToHelper(lpBuf, nBufLen, lpSockAddr, nSockAddrLen, nFlags); + CloseTimer(); + return nRet; + } + +// private: + +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXDFlHdr.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXDFlHdr.cpp new file mode 100644 index 0000000..106fdb4 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXDFlHdr.cpp @@ -0,0 +1,160 @@ +// ========================================================================== +// Class Implementation : COXDiffFileHeader +// ========================================================================== + +// Header file : OXDFlHdr.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + + +#include "stdafx.h" +#include "oxdflhdr.h" + +#ifdef _DEBUG +#undef THIS_FILE +static char BASED_CODE THIS_FILE[] = __FILE__; +#endif + +IMPLEMENT_DYNAMIC(COXDiffFileHeader, CObject) + +///////////////////////////////////////////////////////////////////////////// +// Definition of static members + + +// Data members ------------------------------------------------------------- +// protected: + +// private: + +// Member functions --------------------------------------------------------- +// public: + +COXDiffFileHeader::COXDiffFileHeader(CString sSignature) + : m_sSignText(sSignature) + { + } + +CString COXDiffFileHeader::GetSignature() const + { + return m_sSignText; + } + +void COXDiffFileHeader::ReadHeader(CFile* pFile) + { + ASSERT_VALID(pFile); + + CArchive readArchive(pFile, CArchive::load); + + Read(readArchive); + readArchive.Close(); + } + +void COXDiffFileHeader::WriteHeader(CFile* pFile) + { + ASSERT_VALID(pFile); + + CArchive writeArchive(pFile, CArchive::store | CArchive::bNoFlushOnDelete); + Write(writeArchive); + + writeArchive.Flush(); + writeArchive.Close(); + } + +void COXDiffFileHeader::Serialize(CArchive& ar) + { + ASSERT_VALID(this); + if (ar.IsStoring()) + Write(ar); + else + Read(ar); + ASSERT_VALID(this); + } + +void COXDiffFileHeader::Read(CArchive& ar, BOOL bReportLogicalErrors /* = TRUE */) +{ + ASSERT_VALID(this); + char pszSignature[255 + 1]; + + + if (ar.Read(pszSignature, m_sSignText.GetLength()) != (UINT)m_sSignText.GetLength()) + { + TRACE(_T("*** COXDiffFileHeader::Read : End Of File reached while reading signature\n")); + AfxThrowArchiveException(CArchiveException::endOfFile); + } + pszSignature[m_sSignText.GetLength()] = '\0'; + + // ... Transfering to data members + CString sSignature = CString(pszSignature); + if (sSignature != m_sSignText) + { + TRACE(_T("*** COXDiffFileHeader::Read : Invalid signature\n")); + if (bReportLogicalErrors) + AfxThrowArchiveException(CArchiveException::badSchema); + } + + ASSERT_VALID(this); +} + +void COXDiffFileHeader::Write(CArchive& ar) + { + ASSERT_VALID(this); + + ar.Write((LPCTSTR)m_sSignText, m_sSignText.GetLength()); + + ASSERT_VALID(this); + } + +COXDiffFileHeader::COXDiffFileHeader(const COXDiffFileHeader& HdrSrc) + { + ASSERT_VALID(&HdrSrc); + + m_sSignText = HdrSrc.m_sSignText; + ASSERT_VALID(this); + } + +COXDiffFileHeader& COXDiffFileHeader::operator=(const COXDiffFileHeader& HdrSrc) + { + ASSERT_VALID(this); + ASSERT_VALID(&HdrSrc); + + if(this==&HdrSrc) + return *this; + + m_sSignText = HdrSrc.m_sSignText; + ASSERT_VALID(this); + + return *this; + } + + +COXDiffFileHeader::~COXDiffFileHeader() + { + } + +// protected: + +// private: + +// Diagnostics --------------------------------------------------------------- +#ifdef _DEBUG +void COXDiffFileHeader::AssertValid() const + { + CObject::AssertValid(); + } + +void COXDiffFileHeader::Dump(CDumpContext& dc) const + { + CObject::Dump(dc); + + dc << "\nm_sSignText : " << m_sSignText << "\n"; + } +#endif //_DEBUG + +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXDispatchMarshaller.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXDispatchMarshaller.cpp new file mode 100644 index 0000000..7056fba --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXDispatchMarshaller.cpp @@ -0,0 +1,90 @@ +// ========================================================================== +// Class Implementation : COXDispatchMarshaller +// ========================================================================== + +// Source file : OXDispatchMarshaller.h + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include "OXDispatchMarshaller.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + + +const LARGE_INTEGER bZero = {0,0}; + +COXDispatchMarshaller::COXDispatchMarshaller() : + m_pStream(NULL), + m_hMutexEvent(NULL) +{ + HRESULT hr; + + m_hMutexEvent = CreateEvent(NULL,FALSE,TRUE,NULL); + // create an IStream to be used for marshalling new objects between + // the worker and the CClassFactory + hr = CreateStreamOnHGlobal(NULL, TRUE, &m_pStream); + if (hr!=S_OK) + m_pStream=NULL; +} + +COXDispatchMarshaller::~COXDispatchMarshaller() +{ + if (m_pStream != NULL) + m_pStream->Release(); + CloseHandle(m_hMutexEvent); +} + +HRESULT COXDispatchMarshaller::Marshal(IDispatch* pDisp) +{ + HRESULT hResult; + + WaitForSingleObject(m_hMutexEvent, INFINITE); + hResult = m_pStream->Seek(bZero, STREAM_SEEK_SET, NULL); + if (hResult==S_OK) + { + hResult = CoMarshalInterface(m_pStream, + IID_IDispatch, + pDisp, + MSHCTX_INPROC, + NULL, + MSHLFLAGS_NORMAL); + if (hResult==S_OK) + { + // pDisp is now referenced by its marshal-data in vpstmMarshalling. + // we release our local reference here so the unmarshaller will + // have the sole reference. a common mistake is to forget this + // release and end up with orphaned objects in the server. + pDisp->Release(); + } + } + return hResult; +} + +HRESULT COXDispatchMarshaller::Unmarshal(void** pDisp) +{ + HRESULT hResult; + + ASSERT(WaitForSingleObject(m_hMutexEvent, 0)==WAIT_TIMEOUT); + hResult = m_pStream->Seek(bZero, STREAM_SEEK_SET, NULL); + if (hResult==S_OK) + hResult = CoUnmarshalInterface(m_pStream, IID_IDispatch, pDisp); + SetEvent(m_hMutexEvent); + return hResult; +} + +BOOL COXDispatchMarshaller::CheckStream() +{ + return (m_pStream!=NULL); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXFinalReleaseWnd.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXFinalReleaseWnd.cpp new file mode 100644 index 0000000..c20808c --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXFinalReleaseWnd.cpp @@ -0,0 +1,62 @@ +// ========================================================================== +// Class Implementation : COXFinalReleaseWnd +// ========================================================================== + +// Source file : OXFinalReleaseWnd.h + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include "OXFinalReleaseWnd.h" +#include "OXOwnThread.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + + +// Static members +// m_sClassName is a static member so that it can be used for the registration +// of all the COXFinalReleaseWnd objects in the same process space +CString COXFinalReleaseWnd::m_sClassName; + +///////////////////////////////////////////////////////////////////////////// +// COXFinalReleaseWnd + +COXFinalReleaseWnd::COXFinalReleaseWnd(COXOwnThread* pOwnThread) : + m_pOwnThread(pOwnThread) +{ + if (m_sClassName.IsEmpty()) + m_sClassName = AfxRegisterWndClass(0); + CreateEx(0, m_sClassName, _T("OwnThreadFinalReleaseWnd"),0,0,0,0,0,NULL,NULL); +} + +COXFinalReleaseWnd::~COXFinalReleaseWnd() +{ +} + +BEGIN_MESSAGE_MAP(COXFinalReleaseWnd, CWnd) + ON_MESSAGE(WMOX_FINAL_RELEASE, OnObjectFinalRelease) +END_MESSAGE_MAP() + +LONG COXFinalReleaseWnd::OnObjectFinalRelease(UINT, LONG) +// --- In : none +// --- Out : none +// --- Returns : always zero +// --- Effect : calls the OnFinalRelease function of our parent COXOwnThread object +{ + m_pOwnThread->OnFinalRelease(); + return 0; +} + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXMetafileViewer.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXMetafileViewer.cpp new file mode 100644 index 0000000..d45f250 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXMetafileViewer.cpp @@ -0,0 +1,135 @@ +// OXMetafileViewer.cpp : implementation file +// + +#include "stdafx.h" +#include "OXMetafileViewer.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + + +IMPLEMENT_DYNAMIC(COXMetafileViewer, COXScrollWnd) + + +///////////////////////////////////////////////////////////////////////////// +// COXMetafileViewer + +COXMetafileViewer::COXMetafileViewer() +{ + SetSmoothScrolling(TRUE); +} + +COXMetafileViewer::~COXMetafileViewer() +{ + m_MetaFile.CloseFile(); +} + + +BEGIN_MESSAGE_MAP(COXMetafileViewer, COXScrollWnd) + //{{AFX_MSG_MAP(COXMetafileViewer) + ON_WM_PAINT() + ON_WM_ERASEBKGND() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + + +///////////////////////////////////////////////////////////////////////////// +// COXMetafileViewer message handlers + + + +void COXMetafileViewer::OnPaint() +{ + CPaintDC dc(this); // device context for painting + + // TODO: Add your message handler code here + OnPrepareDC(&dc); + + // get the size of image + CRect rect; + GetClientRect(rect); + CSize sizeMetafileSize=GetMetafileSize(); + rect.right=rect.left+sizeMetafileSize.cx; + rect.bottom=rect.top+sizeMetafileSize.cy; + CRect rectPaint=rect; + // transform coordinates of boundary rectangle + // taking into account current zoom level + NormalToScaled(&rectPaint); + + /// + DrawMetafile(&dc,rectPaint); + + // Do not call COXScrollWnd::OnPaint() for painting messages +} + +BOOL COXMetafileViewer::OnEraseBkgnd(CDC* pDC) +{ + // TODO: Add your message handler code here and/or call default + + ASSERT_VALID(pDC); + + CRect rect; + GetClientRect(rect); + CBrush brush(::GetSysColor(COLOR_WINDOW)); + pDC->FillRect(rect,&brush); + + return TRUE; +} + +BOOL COXMetafileViewer::LoadFile(LPCTSTR lpszPathName) +{ + if(m_MetaFile.LoadFile(lpszPathName)!=NULL) + return InitializeImage(); + else + return FALSE; +} + + +BOOL COXMetafileViewer::LoadResource(UINT nIDResource, + CString strResType/*=_T("METAFILE")*/) +{ + if(m_MetaFile.LoadFile(nIDResource,strResType)!=NULL) + return InitializeImage(); + else + return FALSE; +} + +BOOL COXMetafileViewer::InitializeImage(const CSize& sizePage/*=CSize(10,10)*/, + const CSize& sizeLine/*=CSize(1,1)*/) +{ + CSize sizeMetafileSize=GetMetafileSize(); + SetScrollSizes(MM_TEXT,sizeMetafileSize,sizePage,sizeLine); + SetZoomAlign(ZA_CENTER); + + if(IsAlwaysFitWindow()) + ZoomToWindow(); + else + RedrawWindow(); + + return TRUE; +} + + +BOOL COXMetafileViewer::DrawMetafile(CDC* pDC, const CRect& rectDest) +{ + // set neccessary map mode + int oldMapMode; + oldMapMode=pDC->SetMapMode(MM_TEXT); + + CRect rect=rectDest; + BOOL bSuccess=m_MetaFile.PlayFile(pDC,&rect); + + pDC->SetMapMode(oldMapMode); + + return bSuccess; +} + +CSize COXMetafileViewer::GetMetafileSize() +{ + return m_MetaFile.GetSize(); +} + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXOwnThread.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXOwnThread.cpp new file mode 100644 index 0000000..2a0f04a --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXOwnThread.cpp @@ -0,0 +1,284 @@ +// ========================================================================== +// Class Implementation : COXOwnThread +// ========================================================================== + +// Source file : OXOwnThread.h + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include "OXOwnThread.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// Remarks about the protected data members +// BOOL m_bHasOwnThread; // if the own thread is enabled or not +// HANDLE m_hCreatedEvent; // event for synchronisation during thread startup +// HANDLE m_hThreadEvent; // see 'SetThreadEvent' and 'OnThreadEvent' functions +// HANDLE m_hEndEvent; // event for synchronisation during thread cleanup +// HRESULT m_hCreateResult; // result value of the creation of the own thread +// LPUNKNOWN m_pMarshalledPunk; // the marshalled object pointer; to be passed to the Owner thread +// BOOL m_bEndThread; // ends the Own thread when set to TRUE +// DWORD m_nOwnerThreadID; // ThreadID of the owner thread (thread that created the object) +// DWORD m_nOwnThreadID; // ThreadID of the Own thread +// COXDispatchMarshaller +// m_dispatchMarshaller; // Encapsulation of the marshal stream +// COXFinalReleaseWnd +// m_finalReleaseWnd; // Helper window for re-routing the releasing of the object from +// // the Own thread to the Owner thread +// +// // The COXFinalReleaseWnd must be able to call a protected member function +// // of this COXOwnThread object in order to release this object +// friend COXFinalReleaseWnd; + + +///////////////////////////////////////////////////////////////////////////// +// COXOwnThread + +COXOwnThread::COXOwnThread() : + m_hCreatedEvent(NULL), + m_hThreadEvent(NULL), + m_hEndEvent(NULL), + m_pMarshalledPunk(NULL), + m_bEndThread(FALSE), + m_nOwnerThreadID(0), + m_nOwnThreadID(0), +#pragma warning(disable : 4355) // turn off the + m_finalReleaseWnd(this), +#pragma warning (default : 4355) // Turn the warning back on + m_bHasOwnThread(FALSE) +// --- In : none +// --- Out : none +// --- Returns : nothing +// --- Effect : Constructs the object and retrieves the thread ID of the Owners thread +// in order to be able to re-route later the releasing from the Own thread +// back to the Owners Thread. +{ + m_nOwnerThreadID = AfxGetThread()->m_nThreadID; +} + +COXOwnThread::~COXOwnThread() +// --- In : none +// --- Out : none +// --- Returns : nothing +// --- Effect : Destructs the object and waits until the own thread is terminated +{ + // The destructor can only be called from the same thread + // that called the constructor ! + ASSERT(AfxGetThread()->m_nThreadID==m_nOwnerThreadID); + m_finalReleaseWnd.DestroyWindow(); + EndThread(); + if (m_hCreatedEvent) CloseHandle(m_hCreatedEvent); + if (m_hThreadEvent) CloseHandle(m_hThreadEvent); + if (m_hEndEvent) CloseHandle(m_hEndEvent); +} + +BOOL COXOwnThread::EnableOwnThread() +{ + // This function can only be called from the same thread + // that called the constructor ! + ASSERT(AfxGetThread()->m_nThreadID==m_nOwnerThreadID); + + if (m_dispatchMarshaller.CheckStream() && m_finalReleaseWnd.m_hWnd) + { + + m_hCreatedEvent = CreateEvent(NULL, FALSE, FALSE, NULL); + m_hThreadEvent = CreateEvent(NULL, FALSE, FALSE, NULL); + m_hEndEvent = CreateEvent(NULL, TRUE, FALSE, NULL); + + AfxBeginThread(StartThread, this); + + WaitForSingleObject(m_hCreatedEvent, INFINITE); + if (m_hCreateResult==S_OK) + { + // unmarshal an IUnknown from the scratch stream. if unmarshalling + // fails, it takes care of releasing the object inside the marshal-data + HRESULT hr = m_dispatchMarshaller.Unmarshal((void **)&m_pMarshalledPunk); + if (hr==S_OK) + m_bHasOwnThread = TRUE; + else + { + m_bEndThread=TRUE; + SetThreadEvent(); + WaitForSingleObject(m_hEndEvent, INFINITE); + } + } + } +#ifdef _DEBUG + if (!m_bHasOwnThread) + TRACE(_T("Can't enable own thread in 'COXOwnThreadCmdTarget::EnableOwnThread' \n'OLE_NO_OWNTRHEAD'-macro defined !\n")); +#endif + return m_bHasOwnThread; +} + +BOOL COXOwnThread::HasOwnThread() +{ + return m_bHasOwnThread; +} + +BOOL COXOwnThread::FinalReleaseRouter() +{ + if (AfxGetThread()->m_nThreadID==m_nOwnerThreadID) + return FALSE; + else if (AfxGetThread()->m_nThreadID==m_nOwnThreadID) + { + if (m_finalReleaseWnd.m_hWnd) + m_finalReleaseWnd.PostMessage(WMOX_FINAL_RELEASE); + } +#ifdef _DEBUG + else + { + ASSERT(FALSE); + TRACE(_T("Call from an illegal thread !\n")); + } +#endif + return TRUE; +} + +void COXOwnThread::SetThreadEvent() +{ + SetEvent(m_hThreadEvent); +} + +// protected function + +void COXOwnThread::Run() +// --- In : none +// --- Out : none +// --- Returns : nothing +// --- Effect : this function keeps the Own thread running until m_bEndThread is set +// to TRUE. +{ + MSG msg; + + m_nOwnThreadID = AfxGetThread()->m_nThreadID; + + // initialize COM + m_hCreateResult = CoInitialize(NULL); + if (m_hCreateResult==S_OK) + { + m_hCreateResult = m_dispatchMarshaller.Marshal(GetIDispatch(FALSE)); + SetEvent(m_hCreatedEvent); + + // apartment message/event loop + // (see SDK documentation for MsgWaitForMultipleObjects) + // here worker message loops last forever. in situations without a + // static number of worker threads, the loop could easily be terminated by + // WM_QUITs sent from the main thread which might manage the worker thread + // pool more carefully. + + if (m_hCreateResult==S_OK) + { + DWORD dwWaitResult; + + while (!m_bEndThread) + { + // wait for any message sent or posted to this queue + // or for one of the passed handles to become signaled + dwWaitResult = MsgWaitForMultipleObjects(1, &m_hThreadEvent, FALSE, INFINITE, QS_ALLINPUT); + + // result tells us the type of event we have: + // a message or a signaled handle + + // if there are one or more messages in the queue ... + if (dwWaitResult == (WAIT_OBJECT_0 + 1)) + { + // dispatch all of the messages in this next loop + // (here is where we'd check for WM_QUITs to end this + // worker thread if we wanted to) + while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) + DispatchMessage(&msg); + } + else if (!m_bEndThread) + OnThreadEvent(); + } + } + } + else + SetEvent(m_hCreatedEvent); + OnThreadDestroy(); + CoUninitialize(); + SetEvent(m_hEndEvent); +} + +UINT __cdecl COXOwnThread::StartThread(LPVOID pOwnThread) +// --- In : pOwnThread: the this pointer passed by the creating of the thread +// --- Out : none +// --- Returns : always zero +// --- Effect : this is a static function so we pass the control to a non static function (Run) +{ + ((COXOwnThread*) pOwnThread)->Run(); + return 0; +} + +LPUNKNOWN COXOwnThread::GetInterfaceHook(const void*) +// --- In : none +// --- Out : none +// --- Returns : the marshalled IDispatch handle if the call is done by the Owner thread +// --- Effect : This is a first chance hook function. +// If the call is done by the Own thread we return NULL (in this case +// we don't want to hook). If the call is done by the Owner thread +// we return the marshalled IDispatch handle. +{ + if (m_bHasOwnThread) + { + if (AfxGetThread()->m_nThreadID==m_nOwnerThreadID) + return m_pMarshalledPunk; +#ifdef _DEBUG + else if (AfxGetThread()->m_nThreadID!=m_nOwnThreadID) + { + ASSERT(FALSE); + TRACE(_T("Call from an illegal thread !\n")); + } +#endif + } + return NULL; +} + +void COXOwnThread::EndThread() +// --- In : none +// --- Out : none +// --- Returns : nothing +// --- Effect : This function is called by the destructor and ends +// the own thread. +{ + if (HasOwnThread()) + { + m_bEndThread=TRUE; + SetThreadEvent(); + WaitForSingleObject(m_hEndEvent, INFINITE); + } +} + +void COXOwnThread::OnThreadEvent() +// --- In : none +// --- Out : none +// --- Returns : nothing +// --- Effect : You can override this function, if you want to let the +// Own thread handle some specific things. +// If you call the SetThreadEvent from within the Owner thread +// then this notification will be handled by the Own thread. +{ +} + +void COXOwnThread::OnThreadDestroy() +// --- In : none +// --- Out : none +// --- Returns : nothing +// --- Effect : You can override this function, if you have some things +// to be cleaned up by the own thread. +{ +} + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXOwnThreadCmdTarget.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXOwnThreadCmdTarget.cpp new file mode 100644 index 0000000..7a4b5b5 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXOwnThreadCmdTarget.cpp @@ -0,0 +1,93 @@ +// ========================================================================== +// Class Implementation : COXOwnThreadCmdTarget +// ========================================================================== + +// Source file : OXOwnThreadCmdTarget.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include "OXOwnThreadCmdTarget.h" + +#ifdef _DEBUG +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +IMPLEMENT_DYNCREATE(COXOwnThreadCmdTarget, CCmdTarget) + +#define new DEBUG_NEW + +///////////////////////////////////////////////////////////////////////////// +// COXOwnThreadCmdTarget + + +COXOwnThreadCmdTarget::COXOwnThreadCmdTarget() +// --- In : none +// --- Out : none +// --- Returns : nothing +// --- Effect : constructs the object +{ +} + +COXOwnThreadCmdTarget::~COXOwnThreadCmdTarget() +// --- In : none +// --- Out : none +// --- Returns : nothing +// --- Effect : destructs the object +{ +} + +void COXOwnThreadCmdTarget::OnFinalRelease() +// --- In : none +// --- Out : none +// --- Returns : nothing +// --- Effect : will re-route the call if necessary +// It is important that the destruction of the object is done +// by the same thread that constructed the object. +// There for 'FinalReleaseRouter' will check if the call is made by +// the Owner thread or by the Own thread; +// In case it is made by the Own thread the call is re-routed and +// OnFinalRelease returns immediately +{ + if (FinalReleaseRouter()) + return; + CCmdTarget::OnFinalRelease(); +} + +LPDISPATCH COXOwnThreadCmdTarget::GetIDispatch(BOOL bAddRef) +{ + return CCmdTarget::GetIDispatch(bAddRef); +} + +BEGIN_MESSAGE_MAP(COXOwnThreadCmdTarget, CCmdTarget) + //{{AFX_MSG_MAP(COXOwnThreadCmdTarget) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +BEGIN_DISPATCH_MAP(COXOwnThreadCmdTarget, CCmdTarget) + //{{AFX_DISPATCH_MAP(COXOwnThreadCmdTarget) + //}}AFX_DISPATCH_MAP +END_DISPATCH_MAP() + + +LPUNKNOWN COXOwnThreadCmdTarget::GetInterfaceHook(const void* CIID) +// --- In : Class ID of the wanted interface +// --- Out : none +// --- Returns : The interface handle +// --- Effect : Re-routes this function to the COXOwnThread base class +// which will determine to hook the marshalled IDispatch handle +// in case this call is done by the Owner thread +{ + return COXOwnThread::GetInterfaceHook(CIID); +} + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXPrvDlg.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXPrvDlg.cpp new file mode 100644 index 0000000..2d76bcf --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXPrvDlg.cpp @@ -0,0 +1,309 @@ +// ========================================================================== +// Class Implementation : COXPreviewDialog +// ========================================================================== + +// Source file : OXPrvDlg.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" // standard MFC include +#include "OXCommon.h" +#include +#include "OXPrvDlg.h" // class specification +#include "path.h" + +#define MORE_THAN_ONE 0xffff + +#ifdef _DEBUG +#undef THIS_FILE +static char BASED_CODE THIS_FILE[] = __FILE__; +#endif + + +///////////////////////////////////////////////////////////////////////////// +// Definition of static members + + +// Data members ------------------------------------------------------------- +// protected: + +COXPreviewDialog::COXPreview::COXPreview() +{ +} + +void COXPreviewDialog::COXPreview::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) +{ + CDC* pDC = CDC::FromHandle(lpDrawItemStruct->hDC); + CRect rect(lpDrawItemStruct->rcItem); + + ((COXPreviewDialog*)GetParent())->OnPaintPreview(pDC, rect); +} + + +// private: + +// Member functions --------------------------------------------------------- +// public: + + +IMPLEMENT_DYNAMIC(COXPreviewDialog, CFileDialog) + + +COXPreviewDialog::COXPreviewDialog(BOOL bOpenFileDialog, LPCTSTR lpszDefExt, + LPCTSTR lpszFileName, DWORD dwFlags, + LPCTSTR lpszFilter, CWnd* pParentWnd) + : CFileDialog( bOpenFileDialog, lpszDefExt, lpszFileName, dwFlags, + lpszFilter, pParentWnd), + m_bPreview(FALSE), + m_bPrevPreview(FALSE) +{ + m_ofn.hInstance = AfxGetResourceHandle(); +#ifdef WIN32 + SetTemplate(_T("PREVIEWFILEOPEN"), _T("PREVIEWFILEOPEN95")); +#else + m_ofn.lpTemplateName = _T("PREVIEWFILEOPEN"); + m_ofn.Flags |= OFN_ENABLETEMPLATE; +#endif +} + +COXPreviewDialog::~COXPreviewDialog() +{ +} + +BEGIN_MESSAGE_MAP(COXPreviewDialog, CFileDialog) + ON_BN_CLICKED(IDC_PREVIEW, OnPreview) + ON_WM_PALETTECHANGED() + ON_WM_ACTIVATE() +END_MESSAGE_MAP() + +void COXPreviewDialog::DoDataExchange(CDataExchange* pDX) +{ + CFileDialog::DoDataExchange(pDX); + + DDX_Control(pDX, IDC_PREVIEW_FRAME, m_previewFrame); + DDX_Control(pDX, IDC_PREVIEW_WND, m_preview); + DDX_Check(pDX, IDC_PREVIEW, m_bPreview); +} + +// protected: +void COXPreviewDialog::OnNewFileSelect(const CString& /* sFilename */) +{ +} + +void COXPreviewDialog::OnPaintPreview(CDC* /* pDC */, const CRect& /* paintRect */) +{ +} + +void COXPreviewDialog::OnDoRealizePalette(CWnd* /* pFocusWnd */) +{ +} + +void COXPreviewDialog::OnLBSelChangedNotify(UINT /* nIDBox */, UINT /* iCurSel */, UINT /* nCode */) + // Notification for Windows 3.1 , Win32s, and Windows NT 3.51 +{ +#ifdef WIN32 + ASSERT(IsWin95() == FALSE); + if (IsWin95()) + return; +#endif + + CListBox fileLB; + int nFileCount = 0; + COXPathSpec pathPreview; + CWnd* pPreview = NULL; + CWnd* pFileList = NULL; + CWnd* pDirStatic = NULL; + + pPreview = GetDlgItem(IDC_PREVIEW); + pFileList = GetDlgItem(lst1); + if (pFileList != NULL) + { + fileLB.Attach(pFileList->m_hWnd); + nFileCount = fileLB.GetSelCount(); + } + + if (nFileCount > 1 && pPreview != NULL) + { + m_bPreview = FALSE; + pPreview->EnableWindow(FALSE); + } + else + pPreview->EnableWindow(TRUE); + + if (nFileCount == 1) + { + CString sDir; + CString sFileName; + int nIndex; + int nNum = 0; + + pDirStatic = GetDlgItem(stc1); + if (pDirStatic != NULL) +#ifdef WIN32 + nNum = pDirStatic->GetWindowText(sDir.GetBuffer(MAX_PATH), MAX_PATH); +#else + nNum = pDirStatic->GetWindowText(sDir.GetBuffer(_MAX_PATH), _MAX_PATH); +#endif + sDir.ReleaseBuffer(); + fileLB.GetSelItems(1, &nIndex); + fileLB.GetText(nIndex, sFileName); + pathPreview.SetDirectory(sDir); + pathPreview.SetFileName(sFileName); + m_sSelectedFile = pathPreview.GetPath(); + } + else + m_sSelectedFile.Empty(); + + fileLB.Detach(); + + UpdateData(FALSE); + + CheckFileSelection(); +} + + +void COXPreviewDialog::OnPreview() +{ + UpdateData(TRUE); + CheckFileSelection(); +} + +void COXPreviewDialog::CheckFileSelection() +{ + CString sFile; + + if ((m_sPrevSelectedFile.CompareNoCase(m_sSelectedFile) != 0) || + (m_bPrevPreview != m_bPreview)) + { + if (m_bPreview) + sFile = m_sSelectedFile; + + OnNewFileSelect(sFile); + UpdateData(FALSE); + + if (!m_sSelectedFile.IsEmpty() && m_bPreview) + { + m_preview.ShowWindow(SW_SHOW); + m_preview.Invalidate(FALSE); + } + else if (m_preview.m_hWnd) + m_preview.ShowWindow(SW_HIDE); + + m_sPrevSelectedFile = m_sSelectedFile; + m_bPrevPreview = m_bPreview; + } +} + +#ifdef WIN32 + +void COXPreviewDialog::OnFileNameChange() + // Notification for Windows 95 and Windows NT 4.0 +{ + ASSERT(IsWin95()); + if (!IsWin95()) + return; + + HWND hPreview; + int nFileCount; + CString sPreviewFile; + COXPathSpec pathPreview; + + GetDlgItem(IDC_PREVIEW, &hPreview); + + sPreviewFile = GetFilePath(); + pathPreview.SetPath(sPreviewFile); + if (sPreviewFile.IsEmpty()) + nFileCount = 0; + else if (pathPreview.Exists()) + nFileCount = 1; + else + nFileCount = MORE_THAN_ONE; + + if (nFileCount>1) + { + m_bPreview = FALSE; + ::EnableWindow(hPreview, FALSE); + } + else + ::EnableWindow(hPreview, TRUE); + + if (nFileCount==1) + m_sSelectedFile = pathPreview.GetPath(); + else + m_sSelectedFile.Empty(); + + UpdateData(FALSE); + + CheckFileSelection(); +} + +BOOL COXPreviewDialog::IsWin95() +{ + static BOOL bFound = FALSE; + static BOOL bWin95 = FALSE; + + if (!bFound) + { + OSVERSIONINFO info; + info.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + + GetVersionEx(&info); + bFound = TRUE; + if (info.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS || + (info.dwPlatformId == VER_PLATFORM_WIN32_NT && info.dwMajorVersion >= 4)) + bWin95 = TRUE; + } + + return bWin95; +} + +CString COXPreviewDialog::GetFilePath() const +{ + ASSERT(::IsWindow(m_hWnd)); + ASSERT(m_ofn.Flags & OFN_EXPLORER); + + CString strResult; + if (GetParent()->SendMessage(CDM_GETFILEPATH, (WPARAM)MAX_PATH, (LPARAM)strResult.GetBuffer(MAX_PATH)) < 0) + strResult.Empty(); + else + strResult.ReleaseBuffer(); + + return strResult; +} + +#endif + +// private: + + + +BOOL COXPreviewDialog::OnInitDialog() +{ + CFileDialog::OnInitDialog(); + + m_preview.ShowWindow(SW_HIDE); + + return TRUE; // return TRUE unless you set the focus to a control + // EXCEPTION: OCX Property Pages should return FALSE +} + +void COXPreviewDialog::OnPaletteChanged(CWnd* pFocusWnd) +{ + OnDoRealizePalette(pFocusWnd); +} + +void COXPreviewDialog::OnActivate(UINT nState, CWnd* /* pWndOther */, + BOOL /* bMinimized */) +{ + if (nState == WA_CLICKACTIVE || nState == WA_ACTIVE) + OnDoRealizePalette(this); +} + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXResultObj.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXResultObj.cpp new file mode 100644 index 0000000..523e456 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXResultObj.cpp @@ -0,0 +1,214 @@ +// ========================================================================== +// Class Implementation : COXResultObj +// ========================================================================== + +// Source file : OXResultObj.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include "OXResultObj.h" + +#ifdef _DEBUG +#undef THIS_FILE +static char BASED_CODE THIS_FILE[] = __FILE__; +#endif + +IMPLEMENT_DYNAMIC(COXResultObj, CObject) + +#define new DEBUG_NEW + +///////////////////////////////////////////////////////////////////////////// +// Definition of static members +// Data members ------------------------------------------------------------- +// protected: + +// private: + +// Member functions --------------------------------------------------------- +// public: + +COXResultObj::COXResultObj() + : + m_defaultPart() + { + ASSERT_VALID(this); + } + +COXResultObj::COXResultObj(const COXResultPart& resultPart) + : + m_defaultPart(resultPart) + { + ASSERT_VALID(&resultPart); + ASSERT_VALID(this); + } + +COXResultObj::COXResultObj(const COXResultObj& result) + : + m_defaultPart() + { + ASSERT_VALID(&result); + // ... This object is still empty, so appending the specified object + // is the same as copying it + Append(result); + ASSERT_VALID(this); + } + +COXResultObj& COXResultObj::operator=(const COXResultObj& result) + { + ASSERT_VALID(&result); + + if(this==&result) + return *this; + + // Empty the object and append the specified object + Empty(); + Append(result); + + ASSERT_VALID(this); + return *this; + } + +void COXResultObj::operator+=(const COXResultPart& resultPart) + { + ASSERT_VALID(this); + Add(resultPart); + ASSERT_VALID(this); + } + +void COXResultObj::operator+=(const COXResultObj& result) + { + ASSERT_VALID(&result); + Append(result); + ASSERT_VALID(this); + } + +COXResultPart& COXResultObj::GetDefaultPart() + { + ASSERT_VALID(this); + ASSERT_VALID(&m_defaultPart); + return m_defaultPart; + } + +COXResultPart COXResultObj::GetDefaultPart() const + { + ASSERT_VALID(this); + ASSERT_VALID(&m_defaultPart); + return m_defaultPart; + } + +void COXResultObj::SetDefaultPart(const COXResultPart& defaultPart) + { + ASSERT_VALID(this); + ASSERT_VALID(&defaultPart); + m_defaultPart = defaultPart; + ASSERT_VALID(this); + } + +void COXResultObj::Empty() + { + ASSERT_VALID(this); + RemoveAll(); + ASSERT_VALID(this); + } + +BOOL COXResultObj::IsEmpty() const + { + ASSERT_VALID(this); + return (GetSize() == 0); + } + +COXResultPart& COXResultObj::GetMostSeverePart() + { + ASSERT_VALID(this); + if (IsEmpty()) + { + // ... Trying to directly access an item while the list is empty, + // returning default part + return m_defaultPart; + } + + ASSERT(!IsEmpty()); + COXResultPart* pResultItem = &ElementAt(0); + for (int nIndex = 1; nIndex < GetSize(); nIndex++) + { + if (ElementAt(nIndex).GetSeverityEx() > pResultItem->GetSeverityEx()) + pResultItem = &ElementAt(nIndex); + } + + ASSERT_VALID(this); + ASSERT_KINDOF(COXResultPart, pResultItem); + ASSERT_VALID(pResultItem); + return *pResultItem; + } + +COXResultPart COXResultObj::GetMostSeverePart() const + { + ASSERT_VALID(this); + if (IsEmpty()) + { + // ... Trying to directly access an item while the list is empty, + // returning default item + return m_defaultPart; + } + + COXResultPart resultPart; + ASSERT(!IsEmpty()); + resultPart = GetAt(0); + for (int nIndex = 1; nIndex < GetSize(); nIndex++) + { + if (GetAt(nIndex).GetSeverityEx() > resultPart.GetSeverityEx()) + resultPart = GetAt(nIndex); + } + + ASSERT_VALID(this); + ASSERT_KINDOF(COXResultPart, &resultPart); + ASSERT_VALID(&resultPart); + return resultPart; + } + +COXResultPart* COXResultObj::operator->() + { + return &GetMostSeverePart(); + } + +void COXResultObj::Serialize(CArchive& ar) + { + ASSERT_VALID(this); + + // Call base class implementation first + CObject::Serialize(ar); + + // ... No extra members to serialize + + ASSERT_VALID(this); + } + +#ifdef _DEBUG +void COXResultObj::AssertValid() const + { + CObject::AssertValid(); + ASSERT_VALID(&m_defaultPart); + } + +void COXResultObj::Dump(CDumpContext& dc) const + { + CObject::Dump(dc); + } +#endif //_DEBUG + +COXResultObj::~COXResultObj() + { + } + +// protected: +// private: + +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXResultPart.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXResultPart.cpp new file mode 100644 index 0000000..86542c6 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXResultPart.cpp @@ -0,0 +1,504 @@ +// ========================================================================== +// Class Implementation : COXResultPart +// ========================================================================== + +// Source file : OXResultPart.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include "OXResultPart.h" + +#ifdef _DEBUG +#undef THIS_FILE +static char BASED_CODE THIS_FILE[] = __FILE__; +#endif + +IMPLEMENT_SERIAL(COXResultPart, CObject, 1 | VERSIONABLE_SCHEMA) + +#define new DEBUG_NEW + +///////////////////////////////////////////////////////////////////////////// +// Definition of static members +static TCHAR szUnknownError[] = _T("*** Unknown Error ***"); + +// --- Use the user default language for message retrieval +DWORD COXResultPart::m_dwLangID = MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT); + +// Data members ------------------------------------------------------------- +// protected: + // COleDateTime m_creationTime; + // --- The timestamp that was made when this return items was created + + // HRESULT m_resultCode; + // --- The actual result code (actually a LONG) + + // CString m_sResultMessage; + // --- A message specifying the result + + // DWORD m_dwExtra; + // --- An extra data member to store user data + + +// private: + +// Member functions --------------------------------------------------------- +// public: + +COXResultPart::COXResultPart() + { + Initialize(); + ASSERT_VALID(this); + } + +COXResultPart::COXResultPart(HRESULT resultCode, ...) + { + va_list args; + + va_start(args, resultCode); + InitializeEx(resultCode, &args); + va_end(args); + + ASSERT_VALID(this); + } + +COXResultPart::COXResultPart(LPCTSTR pszModuleName, HRESULT resultCode, ...) + { + ASSERT(pszModuleName == NULL || AfxIsValidString(pszModuleName)); + va_list args; + + va_start(args, resultCode); + InitializeEx(pszModuleName, resultCode, &args); + va_end(args); + + ASSERT_VALID(this); + } + +BOOL COXResultPart::Initialize() + { + // ... Object does not have to be valid before this call + m_creationTime = COleDateTime::GetCurrentTime(); + m_resultCode = 0; + m_sResultMessage.Empty(); + m_dwExtra = 0; + + ASSERT_VALID(this); + return TRUE; + } + +BOOL COXResultPart::Initialize(HRESULT resultCode, ...) + { + // ... Object does not have to be valid before this call + va_list args; + + va_start(args, resultCode); + BOOL bSuccess = InitializeEx(resultCode, &args); + va_end(args); + + ASSERT_VALID(this); + return bSuccess; + } + +BOOL COXResultPart::Initialize(LPCTSTR pszModuleName, HRESULT resultCode, ...) + { + ASSERT(pszModuleName == NULL || AfxIsValidString(pszModuleName)); + // ... Object does not have to be valid before this call + va_list args; + + va_start(args, resultCode); + BOOL bSuccess = InitializeEx(pszModuleName, resultCode, &args); + va_end(args); + + ASSERT_VALID(this); + return bSuccess; + } + +BOOL COXResultPart::InitializeSpecial(LPCTSTR pszModuleName, DWORD dwResultCode, ...) + { + ASSERT(pszModuleName == NULL || AfxIsValidString(pszModuleName)); + // ... Object does not have to be valid before this call + va_list args; + + va_start(args, dwResultCode); + BOOL bSuccess = InitializeExSpecial(pszModuleName, dwResultCode, &args); + va_end(args); + + ASSERT_VALID(this); + return bSuccess; + } + +COXResultPart::COXResultPart(const COXResultPart& resultItem) + : + m_creationTime( resultItem.m_creationTime), + m_resultCode( resultItem.m_resultCode), + m_sResultMessage( resultItem.m_sResultMessage), + m_dwExtra( resultItem.m_dwExtra) + { + ASSERT_VALID(&resultItem); + ASSERT_VALID(this); + } + +HRESULT COXResultPart::GetResultCode() const + { + ASSERT_VALID(this); + return m_resultCode; + } + +void COXResultPart::SetResultCode(HRESULT resultCode) + { + ASSERT_VALID(this); + m_resultCode = resultCode; + ASSERT_VALID(this); + } + +CString COXResultPart::GetResultMessage() const + { + ASSERT_VALID(this); + return m_sResultMessage; + } + +void COXResultPart::SetResultMessage(CString sResultMessage) + { + ASSERT_VALID(this); + m_sResultMessage = sResultMessage; + ASSERT_VALID(this); + } + +void COXResultPart::AppendMessage(CString sMessage) + { + ASSERT_VALID(this); + m_sResultMessage += sMessage; + ASSERT_VALID(this); + } + +CString COXResultPart::BuildExtendedMessage() const + { + CString sExtendedMessage; + CString sMsg; + + sMsg.Format(_T("Creation time : %s\n"), m_creationTime.Format()); + sExtendedMessage += sMsg; + + sMsg.Format(_T("Code : 0x%8.8X (%1.1X.%1.1X.%1.1X.%1.1X.%1.1X.%3.3X.%4.4X)\n"), + m_resultCode, + HRESULT_SEVERITY(m_resultCode), // S - Severity - indicates success/fail + (((m_resultCode) >> 30) & 0x1), // R - reserved - NT's second severity bit + (((m_resultCode) >> 29) & 0x1), // C - reserved - NT's C field + (((m_resultCode) >> 28) & 0x1), // N - reserved - indicate a mapped NT status value + (((m_resultCode) >> 27) & 0x1), // r - reserved - message ids for display strings. + HRESULT_FACILITY(m_resultCode), // Facility - is the facility code + HRESULT_CODE(m_resultCode)); // Code - is the facility's status code + sExtendedMessage += sMsg; + + sMsg.Format(_T("Message : %s\n"), m_sResultMessage); + sExtendedMessage += sMsg; + + // Show extra data only when not 0 + if (m_dwExtra != 0) + { + sMsg.Format(_T("Extra data : %u = 0x%8.8X\n"), m_dwExtra, m_dwExtra); + sExtendedMessage += sMsg; + } + + return sExtendedMessage; + } + +COleDateTime COXResultPart::GetTimeStamp() const + { + return m_creationTime; + } + +void COXResultPart::SetTimeStamp(COleDateTime creationTime) + { + ASSERT(creationTime.GetStatus() == COleDateTime::valid); + ASSERT_VALID(this); + m_creationTime = creationTime; + ASSERT_VALID(this); + } + +DWORD COXResultPart::GetExtraData() const + { + ASSERT_VALID(this); + return m_dwExtra; + } + +void COXResultPart::SetExtraData(DWORD dwExtra) + { + ASSERT_VALID(this); + m_dwExtra = dwExtra; + ASSERT_VALID(this); + } + +COXResultPart& COXResultPart::operator=(const COXResultPart& resultItem) + { + if(this==&resultItem) + return *this; + + ASSERT_VALID(&resultItem); + m_creationTime = resultItem.m_creationTime; + m_resultCode = resultItem.m_resultCode; + m_sResultMessage = resultItem.m_sResultMessage; + m_dwExtra = resultItem.m_dwExtra; + ASSERT_VALID(this); + return *this; + } + +BOOL COXResultPart::Succeeded() const + { + ASSERT_VALID(this); + return SUCCEEDED(m_resultCode); + } + +BOOL COXResultPart::Failed() const + { + ASSERT_VALID(this); + return FAILED(m_resultCode); + } + +WORD COXResultPart::GetCode() const + { + ASSERT_VALID(this); + return (WORD)HRESULT_CODE(m_resultCode); + } + +WORD COXResultPart::GetFacility() const + { + ASSERT_VALID(this); + return (WORD)HRESULT_FACILITY(m_resultCode); + } + +WORD COXResultPart::GetSeverity() const + { + ASSERT_VALID(this); + return (WORD)HRESULT_SEVERITY(m_resultCode); + } + +WORD COXResultPart::GetSeverityEx() const + { + ASSERT_VALID(this); + return (WORD)((m_resultCode >> 30) & 0x3); + } + +void COXResultPart::Serialize(CArchive& ar) + { + ASSERT_VALID(this); + + // Call base class implementation first + CObject::Serialize(ar); + + // Then serailze members + if (ar.IsLoading()) + { + ar >> m_creationTime; + ar >> m_resultCode; + ar >> m_sResultMessage; + ar >> m_dwExtra; + } + else + { + ar << m_creationTime; + ar << m_resultCode; + ar << m_sResultMessage; + ar << m_dwExtra; + } + + ASSERT_VALID(this); + } + +#ifdef _DEBUG +void COXResultPart::AssertValid() const + { + CObject::AssertValid(); + ASSERT(m_creationTime.GetStatus() != COleDateTime::invalid); + } + +void COXResultPart::Dump(CDumpContext& dc) const + { + CObject::Dump(dc); + dc << "\nm_creationTime : " << m_creationTime; + dc << "\nm_resultCode : " << m_resultCode; + dc << "\nm_sResultMessage : " << m_sResultMessage; + dc << "\nm_dwExtra : " << m_dwExtra; + dc << "\n"; + } +#endif //_DEBUG + +COXResultPart::~COXResultPart() + { + } + +// protected: +BOOL COXResultPart::InitializeEx(HRESULT resultCode, va_list* pArgs) + // --- In : resultCode : Result code to use + // pArgs : Optional parameters used to build the message + // --- Out : + // --- Returns : Whether the message could be retrieved successfully + // --- Effect : Initializes a result part object with the specified + // resultcode + // The appropriate message is retrieved from resource + // and for this the optional parameters may be used + { + // ... Object does not have to be valid before this call + m_creationTime = COleDateTime::GetCurrentTime(); + if (HRESULT_FACILITY(resultCode) == 0) + // ... No facility specified, we assume WIN32 code + m_resultCode = HRESULT_FROM_WIN32(resultCode); + else + m_resultCode = resultCode; + m_sResultMessage.Empty(); + m_dwExtra = 0; + BOOL bSuccess = RetrieveResultMessage(_T(""), m_resultCode, pArgs, m_sResultMessage); + + ASSERT_VALID(this); + return bSuccess; + } + +BOOL COXResultPart::InitializeEx(LPCTSTR pszModuleName, HRESULT resultCode, va_list* pArgs) + // --- In : pszModuleName : Name of the module containing the message resource + // resultCode : Result code to use + // pArgs : Optional parameters used to build the message + // --- Out : + // --- Returns : Whether the message could be retrieved successfully + // --- Effect : Initializes a result part object with the specified + // resultcode + // The appropriate message is retrieved from resource + // and for this the optional parameters may be used + { + ASSERT(pszModuleName == NULL || AfxIsValidString(pszModuleName)); + // ... Object does not have to be valid before this call + m_creationTime = COleDateTime::GetCurrentTime(); + if (HRESULT_FACILITY(resultCode) == 0) + // ... No facility specified, we assume WIN32 code + m_resultCode = HRESULT_FROM_WIN32(resultCode); + else + m_resultCode = resultCode; + m_sResultMessage.Empty(); + m_dwExtra = 0; + BOOL bSuccess = RetrieveResultMessage(CString(pszModuleName), m_resultCode, pArgs, m_sResultMessage); + + ASSERT_VALID(this); + return bSuccess; + } + +BOOL COXResultPart::InitializeExSpecial(LPCTSTR pszModuleName, DWORD dwResultCode, va_list* pArgs) + // --- In : pszModuleName : Name of the module containing the message resource + // resultCode : Result code to use + // pArgs : Optional parameters used to build the message + // --- Out : + // --- Returns : Whether the message could be retrieved successfully + // --- Effect : Initializes a result part object with the specified + // resultcode + // The appropriate message is retrieved from resource + // and for this the optional parameters may be used + { + ASSERT(pszModuleName == NULL || AfxIsValidString(pszModuleName)); + // ... Object does not have to be valid before this call + m_creationTime = COleDateTime::GetCurrentTime(); + m_resultCode = dwResultCode; + m_sResultMessage.Empty(); + m_dwExtra = 0; + BOOL bSuccess = RetrieveSpecialMessage(CString(pszModuleName), dwResultCode, pArgs, m_sResultMessage); + + ASSERT_VALID(this); + return bSuccess; + } + +BOOL COXResultPart::RetrieveSpecialMessage(CString sModuleName, DWORD dwResultCode, + va_list* pArgs, CString& sResultMessage) + // --- In : pszModuleName : Name of the module containing the message resource + // resultCode : Result code to use + // pARgs : Optional parameters used to build the message + // --- Out : sResultMessage : The resulting message + // --- Returns : Whether the message could be retrieved successfully + // --- Effect : Initializes a result part with the specified result + { + LPTSTR pszMsgBuf = NULL; + BOOL bUnknown = FALSE; + DWORD dwFlags = FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_FROM_HMODULE; + HMODULE hModule = NULL; + + // ... Get the module handle if a module name is specified + if (!sModuleName.IsEmpty()) + { + hModule = ::GetModuleHandle(sModuleName); + dwFlags = FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_HMODULE | FORMAT_MESSAGE_IGNORE_INSERTS; + if (hModule == NULL) + TRACE(_T("COXResultPart::RetrieveResultMessage : Module '%s' not found\n"), (LPCTSTR)sModuleName); + } + + // ... Get the actual message + if (::FormatMessage(dwFlags, hModule, dwResultCode, m_dwLangID, + (LPTSTR)&pszMsgBuf, 0, pArgs) == 0) + { + TRACE2("COXResultPart::RetrieveResultMessage : No message was found for result code %i == 0x%8.8X\n", + dwResultCode, dwResultCode); + pszMsgBuf = szUnknownError; + bUnknown = TRUE; + } + sResultMessage = pszMsgBuf; + + // ... Clean up + if (!bUnknown) + LocalFree(pszMsgBuf); + + return !bUnknown; + } + +BOOL COXResultPart::RetrieveResultMessage(CString sModuleName, HRESULT resultCode, + va_list* pArgs, CString& sResultMessage) + // --- In : pszModuleName : Name of the module containing the message resource + // resultCode : Result code to use + // pARgs : Optional parameters used to build the message + // --- Out : sResultMessage : The resulting message + // --- Returns : Whether the message could be retrieved successfully + // --- Effect : Initializes a result part with the specified result + { + LPTSTR pszMsgBuf = NULL; + BOOL bUnknown = FALSE; + DWORD dwFlags = FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_FROM_HMODULE; + HMODULE hModule = NULL; + + // ... Remove the facility part if FACILITY_WIN32 + if (HRESULT_FACILITY(resultCode) == FACILITY_WIN32) + { + resultCode = HRESULT_CODE(resultCode); + dwFlags &= ~FORMAT_MESSAGE_FROM_HMODULE; + } + + // ... Get the module handle if a module name is specified + if (!sModuleName.IsEmpty()) + { + hModule = ::GetModuleHandle(sModuleName); + dwFlags = FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_HMODULE; + if (hModule == NULL) + TRACE(_T("COXResultPart::RetrieveResultMessage : Module '%s' not found\n"), (LPCTSTR)sModuleName); + } + + // ... Get the actual message + if (::FormatMessage(dwFlags, hModule, resultCode, m_dwLangID, + (LPTSTR)&pszMsgBuf, 0, pArgs) == 0) + { + TRACE2("COXResultPart::RetrieveResultMessage : No message was found for result code %i == 0x%8.8X\n", + resultCode, resultCode); + pszMsgBuf = szUnknownError; + bUnknown = TRUE; + } + sResultMessage = pszMsgBuf; + + // ... Clean up + if (!bUnknown) + LocalFree(pszMsgBuf); + + return !bUnknown; + } + +// private: + +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSCCFG.CPP b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSCCFG.CPP new file mode 100644 index 0000000..ceba9a6 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSCCFG.CPP @@ -0,0 +1,214 @@ +// ========================================================================== +// Class Implementation : COXSerialCommConfig +// ========================================================================== + +// Source file : oxsccfg.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +//////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include "OXSCCFG.H" +#include "OXSCSTP.H" +#include "OXSRLZR.H" +#include "OXSCCNST.H" + +//private headers +#include "OXRSERCM.H" + +IMPLEMENT_SERIAL(COXSerialCommConfig, CObject, 1) + + +COXSerialCommConfig::COXSerialCommConfig() : +m_nPortId(0), +m_nBaudRate(CBR_9600), +m_nByteSize(8), +m_nParity(NOPARITY), +m_nStopBits(ONESTOPBIT), +m_eFlowControl(NONE), +m_nSizeReceivingQueue(DefaultSizeReceivingQueue), +m_nSizeTransmissionQueue(DefaultSizeTransmissionQueue), +m_nCdTimeout(DefaultCdTimeout), +m_nCtsTimeout(DefaultCtsTimeout), +m_nDsrTimeout(DefaultDsrTimeout) + { + } + +COXSerialCommConfig::COXSerialCommConfig(COXSerialCommConfig& config) + { + m_nPortId=config.m_nPortId; + m_nBaudRate=config.m_nBaudRate; + m_nByteSize=config.m_nByteSize; + m_nParity=config.m_nParity; + m_nStopBits=config.m_nStopBits; + m_eFlowControl=config.m_eFlowControl; + + m_nSizeReceivingQueue=config.m_nSizeReceivingQueue; + m_nSizeTransmissionQueue=config.m_nSizeTransmissionQueue; + m_nCdTimeout=config.m_nCdTimeout; + + m_nCtsTimeout=config.m_nCtsTimeout; + m_nDsrTimeout=config.m_nDsrTimeout; + } + +CString COXSerialCommConfig::GetCommName() const + { + CString sComX; + +// sComX.Format(_T("COM%c"), (char) (m_nPortId + '1')); + sComX.Format(_T("COM%d"), m_nPortId+1); + return sComX; + } + +int COXSerialCommConfig::DoConfigDialog(CString sTitle /* = NULL */) + { + int nResult; + COXSerialCommSetup dlg(sTitle); + + dlg.m_config = *this; + if ((nResult = dlg.DoModal()) == IDOK) + *this = dlg.m_config; + return nResult; + } + +BOOL COXSerialCommConfig::IsPortAvailable() const + { + CString sComX; + HANDLE hCommDevice; + +/* if (m_nPortId > 8) + return FALSE;*/ +// sComX.Format(_T("COM%c"), (char)m_nPortId + '1'); + sComX.Format(_T("COM%d"), m_nPortId+1); + if ((hCommDevice =::CreateFile(sComX, + GENERIC_READ | + GENERIC_WRITE, + 0, + NULL, + OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL | + FILE_FLAG_SEQUENTIAL_SCAN, + NULL)) + != INVALID_HANDLE_VALUE) + { + CloseHandle(hCommDevice); + return TRUE; + } + TRACE1("COXSerialCommConfig::IsPortAvailable(): port %s unavailable",sComX); + return FALSE; + } + +BOOL COXSerialCommConfig::Load(CString sFileName) + { + COXSerializer serializer; + BOOL bRetVal = TRUE; + + if (sFileName.IsEmpty()) + sFileName.LoadString(IDS_DEFAULTFILE); + VERIFY(serializer.Initialize(sFileName, this)); + if (!serializer.Load(FALSE)) + { + if (serializer.m_fileException.m_cause == CFileException::fileNotFound) + { + CString sString; + sString.Format(IDS_MSG_DEFAULT_CONFIG, GetCommName()); + AfxMessageBox(sString, MB_OK | MB_ICONINFORMATION); + } + else + { + if (!serializer.Load()) + { + CString sString; + sString.Format(IDS_MSG_BAD_CONFIG, GetCommName()); + AfxMessageBox(sString, MB_OK | MB_ICONINFORMATION); + bRetVal = FALSE; + } + } + serializer.Save(); + } + return bRetVal; + } + +BOOL COXSerialCommConfig::Save(CString sFileName) + { + COXSerializer serializer; + BOOL bRetVal = TRUE; + + if (sFileName.IsEmpty()) + sFileName.LoadString(IDS_DEFAULTFILE); + VERIFY(serializer.Initialize(sFileName,this)); + if (!serializer.Save()) + { + CString sString; + sString.Format(IDS_MSG_NO_SAVE, GetCommName()); + AfxMessageBox(sString, MB_OK | MB_ICONINFORMATION); + bRetVal = FALSE; + } + return bRetVal; + } + +COXSerialCommConfig& COXSerialCommConfig::operator = (const COXSerialCommConfig& config) + { + m_nPortId = config.m_nPortId; + m_nBaudRate = config.m_nBaudRate; + m_nByteSize = config.m_nByteSize; + m_nParity= config.m_nParity; + m_nStopBits = config.m_nStopBits; + m_eFlowControl = config.m_eFlowControl; + + m_nSizeReceivingQueue = config.m_nSizeReceivingQueue; + m_nSizeTransmissionQueue = config.m_nSizeTransmissionQueue; + m_nCdTimeout = config.m_nCdTimeout; + m_nCtsTimeout = config.m_nCtsTimeout; + m_nDsrTimeout = config.m_nDsrTimeout; + + return *this; + } + +// protected: + +void COXSerialCommConfig::Serialize(CArchive& ar) +// --- In: ar: the archive this object has to serialize to or from +// --- Out: none +// --- Returns: none +// --- Effect: reading or writing to the archive depending of +// the read/write state of the archive + { + CObject::Serialize(ar); + + if (ar.IsStoring()) + { + ar << m_nPortId; + ar << (WORD)m_nBaudRate; + ar << m_nByteSize; + ar << m_nParity; + ar << m_nStopBits; + ar << (WORD)m_eFlowControl; + ar << (WORD)m_nSizeReceivingQueue; + ar << (WORD)m_nSizeTransmissionQueue; + ar << (WORD)m_nCdTimeout; + ar << (WORD)m_nCtsTimeout; + ar << (WORD)m_nDsrTimeout; + } + else + { + ar >> m_nPortId; + WORD tmp; + ar >> tmp; m_nBaudRate = (UINT) tmp; + ar >> m_nByteSize; + ar >> m_nParity; + ar >> m_nStopBits; + ar >> tmp; m_eFlowControl = (EFlowControl) tmp; + ar >> tmp; m_nSizeReceivingQueue = (UINT) tmp; + ar >> tmp; m_nSizeTransmissionQueue = (UINT) tmp; + ar >> tmp; m_nCdTimeout = (UINT) tmp; + ar >> tmp; m_nCtsTimeout = (UINT) tmp; + ar >> tmp; m_nDsrTimeout = (UINT) tmp; + } + } diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSCEXCP.CPP b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSCEXCP.CPP new file mode 100644 index 0000000..c9c46c5 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSCEXCP.CPP @@ -0,0 +1,119 @@ +#include "stdafx.h" +#include "OXSCEXCP.H" +#include "OXRSERCM.H" + +#ifdef _DEBUG +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +#define new DEBUG_NEW + +#ifdef _DEBUG +// character strings to use for dumping COXSerialCommException + +static const LPCTSTR rgszCOXSerialCommExceptionCause[] = + { + _T("none"), + _T("notAvailable"), + _T("breakDetect"), + _T("rxTimeout"), + _T("ctsTimeout"), + _T("dsrTimeout"), + _T("cdTimeout"), + _T("frameError"), + _T("parityError"), + _T("overrunError"), + _T("rxQueueOverflow"), + _T("txQueueFull"), + _T("wmQuitReceived"), + _T("ioError"), + _T("modeError") + }; +static const TCHAR szUnknown[] = _T("unknown"); +#endif + +COXSerialCommException::COXSerialCommException(int cause /*= none*/, LPCTSTR lpszSerialCommName /* = NULL */) : +CFileException(CFileException::generic, -1, lpszSerialCommName), +m_ext_cause(cause) + { + } + +COXSerialCommException::COXSerialCommException(COXSerialCommException& other) : + CFileException(other.m_cause, -1, m_strFileName), + m_ext_cause(other.m_ext_cause) + { + } + +COXSerialCommException& COXSerialCommException::operator = (const COXSerialCommException& other) + { + m_cause = other.m_cause; + m_ext_cause = other.m_ext_cause; + m_lOsError = other.m_lOsError; + m_strFileName = other.m_strFileName; + return *this; + } + + +BOOL COXSerialCommException::GetErrorMessage(LPTSTR lpszError, UINT nMaxError, + PUINT pnHelpContext) + { + ASSERT(lpszError != NULL && AfxIsValidString(lpszError, nMaxError)); + + if (pnHelpContext != NULL) + *pnHelpContext = m_ext_cause + IDS_SERIAL_NONE; + + // we can use CString here; archive errors aren't caused + // by being out of memory. + + CString sMessage; + CString sSerialCommName = m_strFileName; + if (sSerialCommName.IsEmpty()) + sSerialCommName.LoadString(IDS_SERIAL_NONAME); + AfxFormatString1(sMessage, + m_ext_cause + IDS_SERIAL_NONE, sSerialCommName); + lstrcpyn(lpszError, sMessage, nMaxError); + + return TRUE; + } + + + ///////////////////////////////////////////////////////////////////////////// + // CArchiveException + +#ifdef _DEBUG +void COXSerialCommException::Dump(CDumpContext& dc) const + { + CFileException::Dump(dc); + + dc << _T(" m_ext_cause = "); + if (m_ext_cause >= 0 && m_ext_cause < (sizeof(rgszCOXSerialCommExceptionCause)/sizeof(LPCTSTR))) + dc << rgszCOXSerialCommExceptionCause[m_ext_cause]; + else + dc << szUnknown; + + dc << _T("\n"); + } +#endif //_DEBUG + +void AFXAPI AfxThrowSerialCommException(int cause, + LPCTSTR lpszSerialCommName /* = NULL */) + { +#ifdef _DEBUG + LPCTSTR lpsz; + if (cause >= 0 && cause < (sizeof(rgszCOXSerialCommExceptionCause)/sizeof(LPCTSTR))) + lpsz = rgszCOXSerialCommExceptionCause[cause]; + else + lpsz = szUnknown; + TRACE1("COXSerialComm exception: %hs.\n", lpsz); + +#endif //_DEBUG + + THROW(new COXSerialCommException(cause, lpszSerialCommName)); + } + +IMPLEMENT_DYNAMIC(COXSerialCommException, CException) + +///////////////////////////////////////////////////////////////////////////// + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSCFILE.CPP b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSCFILE.CPP new file mode 100644 index 0000000..86ccb50 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSCFILE.CPP @@ -0,0 +1,458 @@ +// ========================================================================== +// Class Implementation : COXSerialCommFile +// ========================================================================== + +// Source file : oxscfile.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include "OXSCFILE.H" +#include "OXSCCNST.H" + + +//private headers +#include "OXRSERCM.H" + + +COXSerialCommFile::COXSerialCommFile() : +m_hCommDevice(NULL) + { + m_bCloseOnDelete = TRUE; + } + +COXSerialCommFile::~COXSerialCommFile() + { + if (m_hCommDevice) + Close(); + } + +BOOL COXSerialCommFile::Open(const COXSerialCommConfig& config, + COXSerialCommException* pException /* = NULL */) + { + if (pException) + { + pException->m_ext_cause = COXSerialCommException::none; + pException->m_strFileName = config.GetCommName(); + } + + if (m_hCommDevice) + Close(); + + if (!config.IsPortAvailable()) + { + if (pException) + pException->m_ext_cause = COXSerialCommException::notAvailable; + return FALSE; + } + + VERIFY ( (m_hCommDevice =::CreateFile(config.GetCommName(), + GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN, NULL)) != + INVALID_HANDLE_VALUE); + + if (m_hCommDevice == INVALID_HANDLE_VALUE) + { + if (pException) + pException->m_ext_cause = COXSerialCommException::notAvailable; + return FALSE; + } + + ::SetupComm(m_hCommDevice, config.m_nSizeReceivingQueue, + config.m_nSizeTransmissionQueue); + + DCB dcb; + ::GetCommState(m_hCommDevice, &dcb); + dcb.BaudRate = config.m_nBaudRate; + dcb.ByteSize = config.m_nByteSize; + dcb.Parity = config.m_nParity; + dcb.StopBits = config.m_nStopBits; + dcb.fBinary = TRUE; + dcb.fParity = TRUE; + dcb.fNull = FALSE; + if (config.m_eFlowControl == COXSerialCommConfig::HARDWARE) + { + dcb.fOutxCtsFlow = TRUE; + dcb.fOutxDsrFlow = TRUE; + dcb.fDtrControl = DTR_CONTROL_HANDSHAKE; + dcb.fDsrSensitivity = TRUE; + dcb.fRtsControl = RTS_CONTROL_HANDSHAKE; + } + else + { + dcb.fOutxCtsFlow = FALSE; + dcb.fOutxDsrFlow = FALSE; + dcb.fDtrControl = DTR_CONTROL_ENABLE; + dcb.fDsrSensitivity = FALSE; + dcb.fRtsControl = RTS_CONTROL_ENABLE; + } + dcb.XonLim = 1; + dcb.XoffLim = (WORD)(config.m_nSizeReceivingQueue / 2); + if (config.m_eFlowControl == COXSerialCommConfig::XON_XOFF) + { + dcb.fOutX = TRUE; + dcb.fInX = TRUE; + } + else + { + dcb.fOutX = FALSE; + dcb.fInX = FALSE; + } + dcb.fAbortOnError = TRUE; + + VERIFY ( ::SetCommState(m_hCommDevice, &dcb) != FALSE ); + COMSTAT tmp; + + + GetCommException(tmp); + SetTimeouts(config.m_nDsrTimeout, config.m_nCtsTimeout); + + PurgeRx(); + PurgeTx(); + + m_strFileName = config.GetCommName(); + + return TRUE; + } + +BOOL COXSerialCommFile::SetTimeouts(DWORD dwRxTimeout/*=5000*/, DWORD dwTxTimeout/*=5000*/) + { + if (m_hCommDevice == NULL) + { + TRACE(_T("'COXSerialCommFile::SetTimeouts': NULL handle !")); + ASSERT(FALSE); + return FALSE; + } + + COMMTIMEOUTS commTimeOuts ; + commTimeOuts.ReadIntervalTimeout = dwRxTimeout; + commTimeOuts.ReadTotalTimeoutMultiplier = 1; + commTimeOuts.ReadTotalTimeoutConstant = dwRxTimeout; + commTimeOuts.WriteTotalTimeoutMultiplier = 1; + commTimeOuts.WriteTotalTimeoutConstant = dwTxTimeout; + + SetCommTimeouts( m_hCommDevice, &commTimeOuts ) ; + return TRUE; + } + + +void COXSerialCommFile::Close() + { + if (m_hCommDevice) + { + PurgeRx(); + PurgeTx(); + CloseHandle(m_hCommDevice); + m_hCommDevice = NULL; + } + } + +UINT COXSerialCommFile::Read( void* lpBuf, UINT nCount ) + { + DWORD dwByteRead = 0; + + if (m_hCommDevice == NULL ) + { + TRACE(_T("'COXSerialCommFile::Read': NULL handle !")); + ASSERT(FALSE); + return 0; + } + + if (!ReadFile(m_hCommDevice, lpBuf, nCount, &dwByteRead, NULL)) + { + if (GetLastError() == ERROR_HANDLE_EOF) + AfxThrowSerialCommException(COXSerialCommException::rxTimeout, m_strFileName); + else + { + COMSTAT comstat; + AfxThrowSerialCommException(GetCommException(comstat), m_strFileName); + } + } +/* else + { + if (dwByteRead != (DWORD)nCount) + { + AfxThrowSerialCommException(COXSerialCommException::rxTimeout, m_strFileName); + } + } +*/ + return dwByteRead; + } + +void COXSerialCommFile::Write( const void* lpBuf, UINT nCount ) + { + DWORD dwByteWritten; + + if ( m_hCommDevice == NULL ) + { + TRACE(_T("'COXSerialCommFile::Write': NULL handle !")); + ASSERT(FALSE); + return; + } + + WriteFile(m_hCommDevice, lpBuf, nCount, &dwByteWritten, NULL); + if (dwByteWritten != nCount) + { + COMSTAT tmp; + AfxThrowSerialCommException(GetCommException(tmp), m_strFileName); + } + } + +void COXSerialCommFile::PurgeRx() + { + if ( m_hCommDevice == NULL ) + { + TRACE(_T("'COXSerialCommFile::PurgeRx': NULL handle !")); + ASSERT(FALSE); + return; + } + PurgeComm(m_hCommDevice, PURGE_RXABORT | PURGE_RXCLEAR); + } + +void COXSerialCommFile::PurgeTx() + { + if ( m_hCommDevice == NULL ) + { + TRACE(_T("'COXSerialCommFile::PurgeTx': NULL handle !")); + ASSERT(FALSE); + return; + } + PurgeComm(m_hCommDevice, PURGE_TXABORT | PURGE_TXCLEAR); + } + +BOOL COXSerialCommFile::IsTxQueueEmpty() const + { + COMSTAT comstat; + + if ( m_hCommDevice == NULL ) + { + TRACE(_T("'COXSerialCommFile::IsTxQueueEmpty': NULL handle !")); + ASSERT(FALSE); + return FALSE; + } + GetCommException(comstat); + return (comstat.cbOutQue == 0) ? TRUE : FALSE; + } + +BOOL COXSerialCommFile::IsRxQueueEmpty() const + { + COMSTAT comstat; + + if ( m_hCommDevice == NULL ) + { + TRACE(_T("'COXSerialCommFile::IsRxQueueEmpty': NULL handle !")); + ASSERT(FALSE); + return FALSE; + } + GetCommException(comstat); + return (comstat.cbInQue == 0) ? TRUE : FALSE; + } + +void COXSerialCommFile::SetDTR(BOOL bValue) + { + int nFunction; + + if ( m_hCommDevice == NULL ) + { + TRACE(_T("'COXSerialCommFile::SetDTR': NULL handle !")); + ASSERT(FALSE); + return; + } + nFunction = (bValue == TRUE) ? SETDTR : CLRDTR; + ::EscapeCommFunction(m_hCommDevice, nFunction); + } + +void COXSerialCommFile::SetRTS(BOOL bValue) + { + int nFunction; + + if ( m_hCommDevice == NULL ) + { + TRACE(_T("'COXSerialCommFile::SetRTS': NULL handle !")); + ASSERT(FALSE); + return; + } + nFunction = (bValue == TRUE) ? SETRTS : CLRRTS; + ::EscapeCommFunction(m_hCommDevice, nFunction); + } + +BOOL COXSerialCommFile::GetCTS() const + { + DWORD dwPortStatus; + + if ( m_hCommDevice == NULL ) + { + TRACE(_T("'COXSerialCommFile::GetCTS': NULL handle !")); + ASSERT(FALSE); + return FALSE; + } + GetCommModemStatus(m_hCommDevice, &dwPortStatus); + return ( (dwPortStatus & MS_CTS_ON) ? TRUE : FALSE); + } + +BOOL COXSerialCommFile::GetDSR() const + { + DWORD dwPortStatus; + + if ( m_hCommDevice == NULL ) + { + TRACE(_T("'COXSerialCommFile::GetDSR': NULL handle !")); + ASSERT(FALSE); + return FALSE; + } + GetCommModemStatus(m_hCommDevice, &dwPortStatus); + return ( (dwPortStatus & MS_DSR_ON) ? TRUE : FALSE); + } + +BOOL COXSerialCommFile::GetCD() const + { + DWORD dwPortStatus; + + if ( m_hCommDevice == NULL ) + { + TRACE(_T("'COXSerialCommFile::GetCD': NULL handle !")); + ASSERT(FALSE); + return FALSE; + } + GetCommModemStatus(m_hCommDevice, &dwPortStatus); + return ( (dwPortStatus & MS_RLSD_ON) ? TRUE : FALSE); + } + +BOOL COXSerialCommFile::GetRI() const + { + DWORD dwPortStatus; + + if ( m_hCommDevice == NULL ) + { + TRACE(_T("'COXSerialCommFile::GetRI': NULL handle !")); + ASSERT(FALSE); + return FALSE; + } + GetCommModemStatus(m_hCommDevice, &dwPortStatus); + return ( (dwPortStatus & MS_RING_ON) ? TRUE : FALSE); + } + +COXSerialCommException::VALUE COXSerialCommFile::GetCommException(COMSTAT& comstat) const + { + COXSerialCommException::VALUE exception = COXSerialCommException::none; + DWORD dwError = 0; + + if ( m_hCommDevice == NULL ) + { + TRACE(_T("'COXSerialCommFile::GetCommException': NULL handle !")); + ASSERT(FALSE); + return COXSerialCommException::ioError; + } + + VERIFY (::ClearCommError(m_hCommDevice, &dwError, &comstat)); + if (dwError != 0) + { + if (dwError & CE_RXPARITY) + exception = COXSerialCommException::parityError; + else if (dwError & CE_OVERRUN) + exception = COXSerialCommException::overrunError; + else if (dwError & CE_FRAME) + exception = COXSerialCommException::frameError; + else if (dwError & CE_BREAK) + exception = COXSerialCommException::breakDetect; + else if (dwError & CE_IOE) + exception = COXSerialCommException::ioError; + else if (dwError & CE_MODE) + exception = COXSerialCommException::modeError; + else if (dwError & CE_RXOVER) + exception = COXSerialCommException::rxQueueOverflow; + else if (dwError & CE_TXFULL) + exception = COXSerialCommException::txQueueFull; + else + exception = COXSerialCommException::none; + } + return exception; + } + + +BOOL COXSerialCommFile::SetCommMask(const DWORD dwEventMask) +{ + if (m_hCommDevice == NULL) + { + TRACE(_T("'COXSerialCommFile::SetCommMask': NULL handle !")); + ASSERT(FALSE); + return FALSE; + } + + return ::SetCommMask(m_hCommDevice, dwEventMask); +} + +BOOL COXSerialCommFile::GetCommMask(DWORD& dwEventMask) const +{ + if (m_hCommDevice == NULL) + { + TRACE(_T("'COXSerialCommFile::GetCommMask': NULL handle !")); + ASSERT(FALSE); + return FALSE; + } + + return ::GetCommMask(m_hCommDevice, &dwEventMask); +} + +BOOL COXSerialCommFile::GetCommProperties(LPCOMMPROP lpCommProp) const +{ + if (m_hCommDevice == NULL) + { + TRACE(_T("'COXSerialCommFile::GetCommProperties': NULL handle !")); + ASSERT(FALSE); + return FALSE; + } + + return ::GetCommProperties(m_hCommDevice, lpCommProp); +} + +UINT COXSerialCommFile::GetBytesToRead() const +{ + if (m_hCommDevice == NULL) + { + TRACE(_T("'COXSerialCommFile::GetBytesToRead': NULL handle !")); + ASSERT(FALSE); + return 0; + } + + COXSerialCommException::VALUE exception = COXSerialCommException::none; + + COMSTAT cs; + ::ZeroMemory((void*)&cs,sizeof(cs)); + if ((exception = GetCommException(cs)) != COXSerialCommException::none) + { + AfxThrowSerialCommException(exception, m_strFileName); + return 0; + } + + return cs.cbInQue; +} + +UINT COXSerialCommFile::GetBytesToWrite() const +{ + if (m_hCommDevice == NULL) + { + TRACE(_T("'COXSerialCommFile::GetBytesToWrite': NULL handle !")); + ASSERT(FALSE); + return 0; + } + + COXSerialCommException::VALUE exception = COXSerialCommException::none; + + COMSTAT cs; + ::ZeroMemory((void*)&cs,sizeof(cs)); + if ((exception = GetCommException(cs)) != COXSerialCommException::none) + { + AfxThrowSerialCommException(exception, m_strFileName); + return 0; + } + + return cs.cbOutQue; +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSCSTP.CPP b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSCSTP.CPP new file mode 100644 index 0000000..15d5570 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSCSTP.CPP @@ -0,0 +1,312 @@ +// ========================================================================== +// Class Implementation : COXSerialCommSetup +// ========================================================================== + +// Source file : oxscstp.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include "OXSCSTP.H" +#include "OXSCCNST.H" + +COXSerialCommSetup::COXSerialCommSetup(CString sTitle /*= _T("")*/, CWnd* pParent /*=NULL*/) + : CDialog(COXSerialCommSetup::IDD, pParent), + m_sCommTitle(sTitle) + { + //{{AFX_DATA_INIT(COXSerialCommSetup) + m_sBaudRate = _T(""); + m_sDataBit = _T(""); + m_sParity = _T(""); + m_sPort = _T(""); + m_sStopBit = _T(""); + m_sFlowControl = _T(""); + //}}AFX_DATA_INIT + } + +void COXSerialCommSetup::DoDataExchange(CDataExchange* pDX) + { + if (!pDX->m_bSaveAndValidate) + { // if loading + m_sPort = _T("Com x"); + m_sPort.SetAt(4, (TCHAR)(m_config.m_nPortId + _T('1'))); + m_sBaudRate = BaudRateToString(m_config.m_nBaudRate); + m_sDataBit = _T("x"); + m_sDataBit.SetAt(0, (TCHAR)(m_config.m_nByteSize + _T('0'))); + m_sParity = ParityToString(m_config.m_nParity); + m_sStopBit = (m_config.m_nStopBits == ONESTOPBIT) ? _T("1") : _T("2"); + m_sFlowControl = FlowControlToString(m_config.m_eFlowControl); + } + + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(COXSerialCommSetup) + DDX_CBString(pDX, IDC_BAUDRATE, m_sBaudRate); + DDX_CBString(pDX, IDC_DATABIT, m_sDataBit); + DDX_CBString(pDX, IDC_PARITY, m_sParity); + DDX_CBString(pDX, IDC_PORT, m_sPort); + DDX_CBString(pDX, IDC_STOPBIT, m_sStopBit); + DDX_CBString(pDX, IDC_FLOWCONTROL, m_sFlowControl); + //}}AFX_DATA_MAP + + if (pDX->m_bSaveAndValidate) + { // if saving + m_config.m_nPortId = (BYTE) (m_sPort[4] - _T('1')); + m_config.m_nBaudRate = BaudRateToVal(m_sBaudRate); + m_config.m_nByteSize = (BYTE) (m_sDataBit[0] - _T('0')); + m_config.m_nParity = ParityToVal(m_sParity); + m_config.m_nStopBits = (m_sStopBit == _T("1")) ? (BYTE)ONESTOPBIT : (BYTE)TWOSTOPBITS; + m_config.m_eFlowControl = FlowControlToVal(m_sFlowControl); + } + } + +BEGIN_MESSAGE_MAP(COXSerialCommSetup, CDialog) +//{{AFX_MSG_MAP(COXSerialCommSetup) +//}}AFX_MSG_MAP +END_MESSAGE_MAP() + + +BOOL COXSerialCommSetup::OnInitDialog() + { + CDialog::OnInitDialog(); + + if (!m_sCommTitle.IsEmpty()) + SetWindowText(m_sCommTitle); + + CenterWindow(); + return TRUE; + } + +void COXSerialCommSetup::OnOK() + { + if (UpdateData(TRUE)) + { + if (!m_config.IsPortAvailable()) + { + AfxMessageBox(IDS_MSG_NO_PORT_AVAILABLE, MB_OK | MB_ICONSTOP); + CWnd* pPort = GetDlgItem(IDC_PORT); ASSERT (pPort != NULL); + pPort->SetFocus(); + } + else + CDialog::OnOK(); + } + } + +CString COXSerialCommSetup::BaudRateToString(UINT nVal) + { + CString sString; + + if (HIBYTE(nVal) != 0xff) + { + sString.Format(_T("%d"), nVal); + } + else + { + switch (nVal) + { + case CBR_110: + sString.LoadString(IDS_110); + break; + case CBR_300: + sString.LoadString(IDS_300); + break; + case CBR_600: + sString.LoadString(IDS_600); + break; + case CBR_1200: + sString.LoadString(IDS_1200); + break; + case CBR_2400: + sString.LoadString(IDS_2400); + break; + case CBR_4800: + sString.LoadString(IDS_4800); + break; + case CBR_9600: + sString.LoadString(IDS_9600); + break; + case CBR_14400: + sString.LoadString(IDS_14400); + ASSERT(FALSE); // not to be used (win3.1 bug!) + break; + case CBR_19200: + sString.LoadString(IDS_19200); + break; + case CBR_38400: + sString.LoadString(IDS_38400); + break; + case CBR_56000: + sString.LoadString(IDS_56000); + break; +#ifdef WIN32 + case CBR_57600: + sString.LoadString(IDS_57600); + break; + case CBR_115200: + sString.LoadString(IDS_115200); + break; +#endif + case CBR_128000: + sString.LoadString(IDS_128000); + break; + case CBR_256000: + sString.LoadString(IDS_256000); + break; + default: + sString.LoadString(IDS_9600); + ASSERT(FALSE); + break; + } + } + return sString; + } + +CString COXSerialCommSetup::ParityToString(BYTE nVal) + { + CString sString; + + switch (nVal) + { + case NOPARITY: + sString.LoadString(IDS_NOPARITY); + break; + case ODDPARITY: + sString.LoadString(IDS_ODD); + break; + case EVENPARITY: + sString.LoadString(IDS_EVEN); + break; + case MARKPARITY: + sString.LoadString(IDS_MARK); + break; + case SPACEPARITY: + sString.LoadString(IDS_SPACE); + break; + default: + sString.LoadString(IDS_EVEN); + ASSERT(FALSE); + break; + } + return sString; + } + +CString COXSerialCommSetup::FlowControlToString(COXSerialCommConfig::EFlowControl eVal) + { + CString sString; + + switch (eVal) + { + case COXSerialCommConfig::NONE: + sString.LoadString(IDS_NONE); + break; + case COXSerialCommConfig::HARDWARE: + sString.LoadString(IDS_HARDWARE); + break; + case COXSerialCommConfig::XON_XOFF: + sString.LoadString(IDS_XONXOFF); + break; + default: + sString.LoadString(IDS_NONE); + ASSERT(FALSE); + break; + } + return sString; + } + +UINT COXSerialCommSetup::BaudRateToVal(CString sString) + { + CString sTemp; + UINT nRetVal; + + sTemp.LoadString(IDS_14400); + if (sString == sTemp) + nRetVal = 14400; // to avoid windows 3.1 bug! + else { + if (sTemp.LoadString(IDS_110) && sString == sTemp) + nRetVal = CBR_110; + else if (sTemp.LoadString(IDS_300) && sString == sTemp) + nRetVal = CBR_300; + else if (sTemp.LoadString(IDS_600) && sString == sTemp) + nRetVal = CBR_600; + else if (sTemp.LoadString(IDS_1200) && sString == sTemp) + nRetVal = CBR_1200; + else if (sTemp.LoadString(IDS_2400) && sString == sTemp) + nRetVal = CBR_2400; + else if (sTemp.LoadString(IDS_4800) && sString == sTemp) + nRetVal = CBR_4800; + else if (sTemp.LoadString(IDS_9600) && sString == sTemp) + nRetVal = CBR_9600; + else if (sTemp.LoadString(IDS_14400) && sString == sTemp) + nRetVal = CBR_14400; + else if (sTemp.LoadString(IDS_19200) && sString == sTemp) + nRetVal = CBR_19200; + else if (sTemp.LoadString(IDS_38400) && sString == sTemp) + nRetVal = CBR_38400; + else if (sTemp.LoadString(IDS_56000) && sString == sTemp) + nRetVal = CBR_56000; +#ifdef WIN32 + else if (sTemp.LoadString(IDS_57600) && sString == sTemp) + nRetVal = CBR_57600; + else if (sTemp.LoadString(IDS_115200) && sString == sTemp) + nRetVal = CBR_115200; +#endif + else if (sTemp.LoadString(IDS_128000) && sString == sTemp) + nRetVal = CBR_128000; + else if (sTemp.LoadString(IDS_256000) && sString == sTemp) + nRetVal = CBR_256000; + else + { + ASSERT(FALSE); + nRetVal = CBR_9600; + } + } + return nRetVal; + } + +BYTE COXSerialCommSetup::ParityToVal(CString sString) + { + CString sTemp; + BYTE nRetVal; + + if (sTemp.LoadString(IDS_NOPARITY) && sString == sTemp) + nRetVal = NOPARITY; + else if (sTemp.LoadString(IDS_ODD) && sString == sTemp) + nRetVal = ODDPARITY; + else if (sTemp.LoadString(IDS_EVEN) && sString == sTemp) + nRetVal = EVENPARITY; + else if (sTemp.LoadString(IDS_MARK) && sString == sTemp) + nRetVal = MARKPARITY; + else if (sTemp.LoadString(IDS_SPACE) && sString == sTemp) + nRetVal = SPACEPARITY; + else + { + ASSERT(FALSE); + nRetVal = EVENPARITY; + } + return nRetVal; + } + +COXSerialCommConfig::EFlowControl COXSerialCommSetup::FlowControlToVal(CString sString) + { + CString sTemp; + COXSerialCommConfig::EFlowControl eRetVal; + + if (sTemp.LoadString(IDS_NONE) && sString == sTemp) + eRetVal = COXSerialCommConfig::NONE; + else if (sTemp.LoadString(IDS_HARDWARE) && sString == sTemp) + eRetVal = COXSerialCommConfig::HARDWARE; + else if (sTemp.LoadString(IDS_XONXOFF) && sString == sTemp) + eRetVal = COXSerialCommConfig::XON_XOFF; + else + { + ASSERT(0); + eRetVal = COXSerialCommConfig::NONE; + } + return eRetVal; + } diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSEH.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSEH.cpp new file mode 100644 index 0000000..33fb217 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSEH.cpp @@ -0,0 +1,342 @@ +// ========================================================================== +// Class Implementation : COXSEHException +// ========================================================================== + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include "OXSEH.h" + +#if (0 < OXSEH_USE_FP) +#include +#endif + +#ifdef _DEBUG +#undef THIS_FILE +static char BASED_CODE THIS_FILE[] = __FILE__; +#endif + +IMPLEMENT_DYNAMIC(COXSEHException, CException) +IMPLEMENT_DYNAMIC(COXSEHMemoryException, COXSEHException) +IMPLEMENT_DYNAMIC(COXSEHMathException, COXSEHException) +IMPLEMENT_DYNAMIC(COXSEHSpecialException, COXSEHException) + +#define new DEBUG_NEW + +///////////////////////////////////////////////////////////////////////////// +// Definition of static members +CThreadLocal COXSEHException::m_pSEHState; + +// Data members ------------------------------------------------------------- +// protected: + // _EXCEPTION_POINTERS* m_pEP; + // --- The information about the SEH (See the Win32 API GetExceptionCode()) + + // class COXSEHState + // --- Helper class to organize data per thread + + // BOOL m_bSEHTrapping; + // --- Whether SEH translation is enabled + + // BOOL m_bFPTrapping; + // --- Whether FP exceptions are enabled + + // int m_nPreviousFPControl; + // --- The state of the FPU control word before the FP exceptions were enabled (otherwise 0) + // int m_nFPControlMask; + // --- The new state of the FPU control word when the FP exceptions are enabled + + // _se_translator_function m_pfPreviousTranslator; + // --- The translator that was installed before this one + + // static CThreadLocal m_pSEHState; + // --- The access pointer-object (like smart-pointer) to the different objects. + // The object associated with the current thread will be used. +// private: + +// Member functions --------------------------------------------------------- +// public: +void COXSEHException::EnableSEHTrapping(BOOL bTrapFP /* = FALSE */) + { + // Should not invoke this function twice without an intermediate call to + // DisableSEHTrapping() ! + // Thes states are organized on a per-thread base + ASSERT(!m_pSEHState->m_bSEHTrapping); + ASSERT(!m_pSEHState->m_bFPTrapping); + +#if (0 < OXSEH_USE_FP) + if (bTrapFP) + { + // To trap floating point exceptions under WIN32, we must use _controlfp(). + int cw = ::_controlfp(0,0); + m_pSEHState->m_nPreviousFPControl = cw; + cw &= ~m_pSEHState->m_nFPControlMask; + ::_controlfp(cw, _MCW_EM); + m_pSEHState->m_bFPTrapping = TRUE; + } +#else + // For this class to use FP exceptions, define OXSEH_USE_FP as 1 + ASSERT(!bTrapFP); +#endif // OXSEH_USE_FP + + // To use C++ Exception handling (try, catch) for structured exceptions, + // install a function to redirect them to C++ catch handlers. + m_pSEHState->m_pfPreviousTranslator = _set_se_translator(MapSEHToCPPExceptions); + m_pSEHState->m_bSEHTrapping = TRUE; + } + +void COXSEHException::DisableSEHTrapping() + { + // Should not invoke this finction without a previos call to EnsableSEHTrapping() ! + ASSERT(m_pSEHState->m_bSEHTrapping); + +#if (0 < OXSEH_USE_FP) + if (m_pSEHState->m_bFPTrapping) + { + // Reset to the previous trapping state + _clearfp(); + ::_controlfp(m_pSEHState->m_nPreviousFPControl, (unsigned int)~0); + m_pSEHState->m_bFPTrapping = FALSE; + } +#endif // OXSEH_USE_FP + + // Re-install the previous C++ exception translator + // The return code must be our mapping function ! + VERIFY(MapSEHToCPPExceptions == _set_se_translator (m_pSEHState->m_pfPreviousTranslator)); + m_pSEHState->m_bSEHTrapping = FALSE; + } + +BOOL COXSEHException::IsSEHTrappingEnabled() + { + return m_pSEHState->m_bSEHTrapping; + } + +BOOL COXSEHException::IsSEHFPTrappingEnabled() + { + return m_pSEHState->m_bFPTrapping; + } + +COXSEHException::COXSEHException(EXCEPTION_POINTERS* pEP /* = NULL */) + : + m_pEP(pEP) + { + } + +UINT COXSEHException::GetCause() + { + if (m_pEP != NULL) + return m_pEP->ExceptionRecord->ExceptionCode; + else + { + TRACE0("COXSEHException::GetCause : Exception pointers not available, returning 0\n"); + return 0; + } + } + +#ifdef _DEBUG +void COXSEHException::Dump(CDumpContext& dc) const + { + CException::Dump(dc); + dc << _T("\nm_pEP : ") << (void*)m_pEP; + if (m_pEP != NULL) + dc << _T("\n\t with cause : ") << m_pEP->ExceptionRecord->ExceptionCode; + } + +void COXSEHException::AssertValid() const + { + CException::AssertValid(); + } +#endif + +COXSEHException::~COXSEHException() + { + } + +// COXSEHMemoryException ----------------------------------------------------- +COXSEHMemoryException::COXSEHMemoryException(EXCEPTION_POINTERS* pEP /* = NULL */) + : + COXSEHException(pEP) + { + } + +BOOL COXSEHMemoryException::IsInfoAvailable() + { + return (m_pEP != NULL) && (2 <= m_pEP->ExceptionRecord->NumberParameters); + } + +BOOL COXSEHMemoryException::GetReadWriteFlag() + { + if (IsInfoAvailable()) + return m_pEP->ExceptionRecord->ExceptionInformation[0]; + else + { + TRACE0("COXSEHException::GetReadWriteFlag : Exception information available, returning FALSE\n"); + return FALSE; + } + } + +DWORD COXSEHMemoryException::GetAddress() + { + if (IsInfoAvailable()) + return m_pEP->ExceptionRecord->ExceptionInformation[1]; + else + { + TRACE0("COXSEHException::GetAddress : Exception information available, returning FALSE\n"); + return FALSE; + } + } + +#ifdef _DEBUG +void COXSEHMemoryException::Dump(CDumpContext& dc) const + { + COXSEHException::Dump(dc); + if ((m_pEP != NULL) && (2 <= m_pEP->ExceptionRecord->NumberParameters)) + { + dc << _T("\n\t with Read/Write flag : ") << m_pEP->ExceptionRecord->ExceptionInformation[0]; + dc << _T("\n\t for memory adress : ") << m_pEP->ExceptionRecord->ExceptionInformation[1]; + } + } + +void COXSEHMemoryException::AssertValid() const + { + COXSEHException::AssertValid(); + } +#endif + +COXSEHMemoryException::~COXSEHMemoryException() + { + } + +// COXSEHMathException ----------------------------------------------------- +COXSEHMathException::COXSEHMathException(EXCEPTION_POINTERS* pEP /* = NULL */) + : + COXSEHException(pEP) + { + } + +#ifdef _DEBUG +void COXSEHMathException::Dump(CDumpContext& dc) const + { + COXSEHException::Dump(dc); + } + +void COXSEHMathException::AssertValid() const + { + COXSEHException::AssertValid(); + } +#endif + +COXSEHMathException::~COXSEHMathException() + { + } + +// COXSEHSpecialException ----------------------------------------------------- +COXSEHSpecialException::COXSEHSpecialException(EXCEPTION_POINTERS* pEP /* = NULL */) + : + COXSEHException(pEP) + { + } + +#ifdef _DEBUG +void COXSEHSpecialException::Dump(CDumpContext& dc) const + { + COXSEHException::Dump(dc); + } + +void COXSEHSpecialException::AssertValid() const + { + COXSEHException::AssertValid(); + } +#endif + +COXSEHSpecialException::~COXSEHSpecialException() + { + } + +// protected: +void __cdecl COXSEHException::MapSEHToCPPExceptions(UINT uCode, EXCEPTION_POINTERS* pEP) + // --- In : uCode : See the Win32 API GetExceptionCode() + // pEP : See the Win32 API GetExceptionInformation() + // --- Out : + // --- Returns : + // --- Effect : This function is called when a SEH is thrown + // It converts it to a C++ exception + { + if ( (uCode == EXCEPTION_ACCESS_VIOLATION) || + (uCode == EXCEPTION_DATATYPE_MISALIGNMENT) || + (uCode == EXCEPTION_ARRAY_BOUNDS_EXCEEDED) || + (uCode == EXCEPTION_STACK_OVERFLOW) || + (uCode == EXCEPTION_INVALID_DISPOSITION) || + (uCode == EXCEPTION_IN_PAGE_ERROR) || + (uCode == EXCEPTION_GUARD_PAGE) ) + { + TRACE1("COXSEHException::MapSEHToCPPExceptions : Translating to COXSEHMemoryException : 0x%lx\n", uCode); + THROW(new COXSEHMemoryException(pEP)); + } + else if ( (uCode == EXCEPTION_FLT_DENORMAL_OPERAND) || + (uCode == EXCEPTION_FLT_DIVIDE_BY_ZERO) || + (uCode == EXCEPTION_FLT_INEXACT_RESULT) || + (uCode == EXCEPTION_FLT_INVALID_OPERATION) || + (uCode == EXCEPTION_FLT_OVERFLOW) || + (uCode == EXCEPTION_FLT_STACK_CHECK) || + (uCode == EXCEPTION_FLT_UNDERFLOW) || + (uCode == EXCEPTION_FLT_STACK_CHECK) || + (uCode == EXCEPTION_INT_DIVIDE_BY_ZERO) || + (uCode == EXCEPTION_INT_OVERFLOW) ) + { + TRACE1("COXSEHException::MapSEHToCPPExceptions : Translating to COXSEHMathException : 0x%lx\n", uCode); + +#if (0 < OXSEH_USE_FP) + ASSERT(m_pSEHState->m_bFPTrapping); + // Make sure the exception flags in the floating-point status word is cleared + // The return value (the FP status word) is ignored, because it identifies the + // type of exception, but we already know that (through uCode) + _clearfp(); + + // Empty the FPU stack + // One way to do this by calling pop directly, but then we + // have to know how many elements are on the stack + // double dummy; + // _asm + // { + // fstp dummy; + // } + + // Another solution is to reset the FPU, + // but then we have to re-enable the exception trapping + int cw = ::_controlfp(0,0); + _fpreset(); + ::_controlfp(cw, _MCW_EM); +#endif // OXSEH_USE_FP + + THROW(new COXSEHMathException(pEP)); + } + else if ( (uCode == EXCEPTION_BREAKPOINT) || + (uCode == EXCEPTION_SINGLE_STEP) || + (uCode == EXCEPTION_PRIV_INSTRUCTION) || + (uCode == EXCEPTION_ILLEGAL_INSTRUCTION) || + (uCode == EXCEPTION_NONCONTINUABLE_EXCEPTION) ) + { + TRACE1("COXSEHException::MapSEHToCPPExceptions : Translating to COXSEHSpecialException : 0x%lx\n", uCode); + THROW(new COXSEHSpecialException(pEP)); + } + else + { + TRACE1("COXSEHException::MapSEHToCPPExceptions : Translating to COXSEHException : 0x%lx\n", uCode); + THROW(new COXSEHException(pEP)); + } + } + + +// private: + +// Message handlers --------------------------------------------------------- + +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSPtr.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSPtr.cpp new file mode 100644 index 0000000..d41c2bb --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSPtr.cpp @@ -0,0 +1,30 @@ +// ========================================================================== +// Template Implementation : COXSPtr +// ========================================================================== + +// Source file : OXSPtr.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +///////////////////////////////////////////////////////////////////////////// +#include "stdafx.h" +#include "OXSPtr.h" + +// ////////////////////////////////////////////////////////////////////////// +// Definition of static variables + +// Define the only valid COXObjectCreator object +OX_CLASS_DECL COXObjectCreator NEW_OBJECT; + +#if defined(_DEBUG) && !defined(DISABLE_SMART_CHECK) +// Use a global object that keeps track of smart pointers and +// that will be used for debugging purposes +COXSmartWatcher smartWatcher; +#endif + +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSRLZR.CPP b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSRLZR.CPP new file mode 100644 index 0000000..76ed362 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSRLZR.CPP @@ -0,0 +1,174 @@ +// ========================================================================== +// Class Implementation : COXSerializer +// ========================================================================== + +// Source file : oxsrlzr.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include "OXSRLZR.H" + +#ifdef _DEBUG + #undef THIS_FILE + static char BASED_CODE THIS_FILE[] = __FILE__; + #define new DEBUG_NEW +#endif + +static TCHAR BASED_CODE MsgOutOfMemory[]= _T("Out of Memory!"); +static TCHAR BASED_CODE no_resource_string_available[] = _T("RC error: No RESSERLZR.RC file found"); + +COXSerializer::COXSerializer() : + m_bInitialized(FALSE), + m_pObject(NULL) +{ +} + +COXSerializer::~COXSerializer() +{ +} + +BOOL COXSerializer::Initialize(CString sFileName, CObject* pObject) +{ + if (pObject == NULL) + { + TRACE0("COXSerializer::Initialize: pObject argument can't be NULL"); + ASSERT(FALSE); + return FALSE; + } + ASSERT_VALID(pObject); + if (pObject->IsSerializable() == FALSE) + return FALSE; + + m_fileException.m_cause = CFileException::none; + m_fileException.m_lOsError = 0L; + m_archiveException.m_cause = CArchiveException::none; + m_bMemoryException = FALSE; + + m_bInitialized = TRUE; + m_sFileName = sFileName; + m_pObject = pObject; + return TRUE; +} + +BOOL COXSerializer::Load(BOOL bDisplayException) +{ + CFile file; + CArchive* pArchive=NULL; + + if (m_bInitialized==FALSE) + return FALSE; + + m_fileException.m_cause = CFileException::none; + m_fileException.m_lOsError = 0L; + m_archiveException.m_cause = CArchiveException::none; + m_bMemoryException = FALSE; + + if (!file.Open(m_sFileName, CFile::modeRead | CFile::typeBinary | + CFile::shareExclusive, &m_fileException)) + { + if (bDisplayException) + m_fileException.ReportError(); + return FALSE; + } + TRY + { + pArchive = new CArchive(&file, CArchive::load); + m_pObject->Serialize(*pArchive); + delete pArchive; + file.Close(); + } + CATCH (CMemoryException, e) + { + m_bMemoryException = TRUE; + delete pArchive; + if (bDisplayException) + AfxMessageBox(MsgOutOfMemory); + return FALSE; + } + AND_CATCH (CArchiveException, e) + { + m_archiveException.m_cause = e->m_cause; + if (bDisplayException) + e->ReportError(); + delete pArchive; + return FALSE; + } + AND_CATCH (CFileException, e) + { + m_fileException.m_cause = e->m_cause; + m_fileException.m_lOsError = e->m_lOsError; + if (bDisplayException) + e->ReportError(); + delete pArchive; + return FALSE; + } + END_CATCH + + return TRUE; +} + +BOOL COXSerializer::Save(BOOL bDisplayException) +{ + CFile file; + CArchive* pArchive=NULL; + + if (m_bInitialized==FALSE) + return FALSE; + m_fileException.m_cause = CFileException::none; + m_fileException.m_lOsError = 0L; + m_archiveException.m_cause = CArchiveException::none; + m_bMemoryException = FALSE; + + if (!file.Open(m_sFileName, CFile::modeCreate | CFile::modeWrite | + CFile::typeBinary | CFile::shareExclusive, + &m_fileException)) + { + if (bDisplayException) + m_fileException.ReportError(); + return FALSE; + } + TRY + { + pArchive = new CArchive(&file, CArchive::store); + m_pObject->Serialize(*pArchive); + delete pArchive; + file.Close(); + } + CATCH (CMemoryException, e) + { + m_bMemoryException = TRUE; + delete pArchive; + if (bDisplayException) + AfxMessageBox(MsgOutOfMemory); + return FALSE; + } + AND_CATCH (CArchiveException, e) + { + m_archiveException.m_cause = e->m_cause; + if (bDisplayException) + e->ReportError(); + delete pArchive; + return FALSE; + } + AND_CATCH (CFileException, e) + { + m_fileException.m_cause = e->m_cause; + m_fileException.m_lOsError = e->m_lOsError; + if (bDisplayException) + e->ReportError(); + delete pArchive; + return FALSE; + } + END_CATCH + + return(TRUE); +} + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSendMail.CPP b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSendMail.CPP new file mode 100644 index 0000000..e02f617 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXSendMail.CPP @@ -0,0 +1,857 @@ +// ========================================================================== +// Class Implementation : COXSendMail +// ========================================================================== + +// Source file : SendMail.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" // standard MFC include +#include "OXSendMail.h" + +#pragma warning(disable: 4228) +#include +#include +#include +#include + +#define USES_IID_IMAPIFolder +#define INITGUID +#include +#include +#pragma warning(default: 4228) + +#ifdef _DEBUG +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + + +COXSendMail::CMessage::CMessage() +{ +} + +COXSendMail::CMessage::~CMessage() +{ + int i; + + for (i=0 ; isName = sRecipient; + pRecipient->eType = eType; + m_recipients.Add(pRecipient); +} + +void COXSendMail::CMessage::AddAttachment(CString sAttachment, EAttachmentType eType, CString sOleDocument /*= _T("")*/) +{ + SAttachment* pAttachment = new SAttachment; + + pAttachment->sPath = sAttachment; + pAttachment->eType = eType; + pAttachment->sOleDocument = sOleDocument; + m_attachments.Add(pAttachment); +} + + +#ifndef OX_MAPI_DIRECT + +COXSendMail::COXSendMail() +{ +} + +COXSendMail::~COXSendMail() +{ + if (IsInitialized()) + Uninitialize(); +} + + +BOOL COXSendMail::Initialize(CString sProfileName, CString sPassword) +{ + ASSERT_VALID(this); + + LPMAPISESSION pMAPISession; + HRESULT hResult; + BOOL bMAPIInitialized = FALSE; + BOOL bResult = TRUE; + + TRY + { + MAPIINIT_0 MAPIINIT = { 0, MAPI_NT_SERVICE | MAPI_MULTITHREAD_NOTIFICATIONS }; + hResult = MAPIInitialize(&MAPIINIT); + if (FAILED (hResult)) + return FALSE; + + bMAPIInitialized = TRUE; + + hResult = MAPILogonEx( + (ULONG)NULL, + sProfileName.GetBuffer(256), + sPassword.GetBuffer(256), + MAPI_LOGON_UI | MAPI_NO_MAIL | MAPI_EXTENDED | MAPI_EXPLICIT_PROFILE | MAPI_NEW_SESSION, + &pMAPISession); + + sProfileName.ReleaseBuffer(); + sPassword.ReleaseBuffer(); + + if (FAILED (hResult)) + { + MAPIUninitialize(); + return FALSE; + } + + if (m_objSession.m_lpDispatch == NULL) + { + if (m_objSession.CreateDispatch(_T("MAPI.Session")) == FALSE) + { + MAPIUninitialize(); + bResult = FALSE; + } + } + if (bResult) + m_objSession.SetMapiobject(pMAPISession); + } + CATCH_ALL(e) + { + if (bMAPIInitialized) + MAPIUninitialize(); + bResult = FALSE; + } + END_CATCH_ALL + + if (bResult) + m_sMAPIProfile = sProfileName; + return bResult; +} + +BOOL COXSendMail::IsInitialized() +{ + if (m_objSession.m_lpDispatch) + if (m_objSession.GetMapiobject() != NULL) + return TRUE; + return FALSE; +} + +void COXSendMail::Uninitialize() +{ + TRY + { + ASSERT(m_objSession.m_lpDispatch); + if (m_objSession.m_lpDispatch) + m_objSession.Logoff(); + } + CATCH_ALL(e) + { + } + END_CATCH_ALL + m_objSession.ReleaseDispatch(); + MAPIUninitialize(); +} + +CString COXSendMail::GetProfile() +{ + CString sProfile; + + if (IsInitialized()) + sProfile = m_sMAPIProfile; + return sProfile; +} + +BOOL COXSendMail::SendMessage(CMessage& message) +{ + COXMMessage objMessage; + COXMRecipient objOneRecip; + COXMAttachment objAttachment; + ASSERT(m_objSession.m_lpDispatch); + + if (m_objSession.m_lpDispatch == NULL) + return FALSE; + + TRY + { + // create new message and set subject and content + objMessage = m_objSession.GetOutbox().GetMessages().Add(); + objMessage.SetSubject(message.m_sSubject); + objMessage.SetText(message.m_sContent); + + // set the recipients + for (int i=0 ; isName); + switch (message.m_recipients[i]->eType) + { + case rtCC: + objOneRecip.SetType(oxmrtCc); + break; + case rtBCC: + objOneRecip.SetType(oxmrtBcc); + break; + default: + objOneRecip.SetType(oxmrtTo); + } + objOneRecip.Resolve(FALSE); + } + + // add the attachments + for (i=0 ; isPath; + _tsplitpath(sAttachment, pszDrive, pszSubdir, pszBaseName, pszExtender); + _tmakepath(sAttachment.GetBuffer(_MAX_PATH), NULL, NULL, pszBaseName, pszExtender); + sAttachment.ReleaseBuffer(); + + objAttachment = objMessage.GetAttachments().Add(sAttachment); + objAttachment.SetName(sAttachment); + objAttachment.SetType((EOXMAttachmentType) message.m_attachments[i]->eType); + objAttachment.ReadFromFile(message.m_attachments[i]->sPath); + } + + // send the message + objMessage.Send(); + } + CATCH_ALL(e) + { + return FALSE; + } + END_CATCH_ALL + + return TRUE; + +} + +#endif + + + +CString COXSendMail::GetReturnMsg(int nErr) +{ + CString sErrorMsg; + switch(nErr) + { + case SUCCESS_SUCCESS: + sErrorMsg = _T("Sending of Mail was succesful"); + break; + case MAPI_E_USER_ABORT: + sErrorMsg = _T("Sending of Mail has been aborted by user"); + break; + case MAPI_E_FAILURE: + sErrorMsg = _T("Sending of Mail was not succesful"); + break; + case MAPI_E_LOGIN_FAILURE: + sErrorMsg = _T("login failure"); + break; + case MAPI_E_DISK_FULL: + sErrorMsg = _T("Disk full"); + break; + case MAPI_E_INSUFFICIENT_MEMORY: + sErrorMsg = _T("not enough memory"); + break; + case MAPI_E_ACCESS_DENIED: + sErrorMsg = _T("access denied"); + break; + case MAPI_E_TOO_MANY_SESSIONS: + sErrorMsg = _T("too many sessions open"); + break; + case MAPI_E_TOO_MANY_FILES: + sErrorMsg = _T("too many open files"); + break; + case MAPI_E_TOO_MANY_RECIPIENTS: + sErrorMsg = _T("too many recipients specified"); + break; + case MAPI_E_ATTACHMENT_NOT_FOUND: + sErrorMsg = _T("attachment not found"); + break; + case MAPI_E_ATTACHMENT_OPEN_FAILURE: + sErrorMsg = _T("could not open attachment"); + break; + case MAPI_E_ATTACHMENT_WRITE_FAILURE: + sErrorMsg = _T("could not write attachment"); + break; + case MAPI_E_UNKNOWN_RECIPIENT: + sErrorMsg = _T("unknown recipient"); + break; + case MAPI_E_BAD_RECIPTYPE: + sErrorMsg = _T("unknown reciptype"); + break; + case MAPI_E_NO_MESSAGES: + sErrorMsg = _T("no messages"); + break; + case MAPI_E_INVALID_MESSAGE: + sErrorMsg = _T("invalid message"); + break; + case MAPI_E_TEXT_TOO_LARGE: + sErrorMsg = _T("text too large"); + break; + case MAPI_E_INVALID_SESSION: + sErrorMsg = _T("invalid session"); + break; + case MAPI_E_TYPE_NOT_SUPPORTED: + sErrorMsg = _T("type not supported"); + break; + case MAPI_E_AMBIG_RECIP: + sErrorMsg = _T("ambiguous recipiebt"); + break; + case MAPI_E_MESSAGE_IN_USE: + sErrorMsg = _T("message in use"); + break; + case MAPI_E_NETWORK_FAILURE: + sErrorMsg = _T("network failure"); + break; + case MAPI_E_INVALID_EDITFIELDS: + sErrorMsg = _T("invalid editfields"); + break; + case MAPI_E_INVALID_RECIPS: + sErrorMsg = _T("invalid recipients"); + break; + case MAPI_E_NOT_SUPPORTED: + sErrorMsg = _T("not supported request"); + break; + default: + sErrorMsg = _T("unknown error"); + break; + } + + return sErrorMsg; +} + + + + + + +///////////////////////////////////////////////////////////////////////////// +// The Extended MAPI alternative + + + +#ifdef OX_MAPI_DIRECT +///////////////////////////////////////////////////////////////////////////// +// MAPI implementation helpers and globals + +#define _countof(array) (sizeof(array)/sizeof(array[0])) + +static BOOL IsMailAvail = (BOOL)-1; // start out not determined + +// _AFX_MAIL_STATE + +class OX_CLASS_DECL _AFX_MAIL_STATE : public CNoTrackObject +{ +public: + HINSTANCE m_hInstMail; // handle to MAPI32.DLL + virtual ~_AFX_MAIL_STATE(); +}; + +_AFX_MAIL_STATE::~_AFX_MAIL_STATE() +{ + if (m_hInstMail != NULL) + ::FreeLibrary(m_hInstMail); +} + +_AFX_MAIL_STATE* _afxMailState; +int nCount = 0; + + + +COXSendMail::COXSendMail() : + m_pMAPISession(NULL), + m_pAddressBook(NULL), + m_peidDefaultMDB(NULL), + m_cbeidDefaultMDB(0), + m_pDefaultMDB(NULL), + m_pRootFolder(NULL), + m_szRecipient(NULL), + m_uLogoffFlags(LOGOFF_ORDERLY), + m_szAttachData(NULL) +{ + if (nCount==0) + _afxMailState = new _AFX_MAIL_STATE; + nCount++; +} + + +COXSendMail::~COXSendMail() +{ + if (IsInitialized()) + Uninitialize(); + + nCount--; + if (nCount==0) + delete _afxMailState; +} + +BOOL COXSendMail::Initialize(CString sProfileName, CString sPassword) +{ + ASSERT_VALID(this); + + HRESULT hResult; + + if (IsInitialized()) + Uninitialize(); + + // Initialize the MAPI libraries before calling ANY MAPI function + MAPIINIT_0 MAPIINIT = { 0, MAPI_NT_SERVICE | MAPI_MULTITHREAD_NOTIFICATIONS }; + hResult = MAPIInitialize(&MAPIINIT); + if (!FAILED (hResult)) + { + // Logon onto the message subsystem. We are going to ask the user to + // select a profile to log into. The UI for this will be provided by MAPI. + hResult = MAPILogonEx((ULONG)NULL, + sProfileName.GetBuffer(256), + sPassword.GetBuffer(256), + MAPI_NO_MAIL | MAPI_EXTENDED | MAPI_EXPLICIT_PROFILE /*| MAPI_USE_DEFAULT */| MAPI_NEW_SESSION, + &m_pMAPISession); + + sProfileName.ReleaseBuffer(); + sPassword.ReleaseBuffer(); + + if (!FAILED (hResult)) + { + // get the address book + // be sure to have the correct address book set as the default + // see the Addressing tab in the profile config control panel applet + hResult = m_pMAPISession->OpenAddressBook(NULL, NULL, 0, &m_pAddressBook); + if (!FAILED(hResult)) + { + if (InitializeMessageStore()) + { + // get the root folder + ULONG uObjType; + hResult = m_pDefaultMDB->OpenEntry(0, + NULL, + (LPIID)&IID_IMAPIFolder, + MAPI_MODIFY, + &uObjType, + (LPUNKNOWN *)&m_pRootFolder); + + if (!FAILED(hResult)) + { + m_sMAPIProfile = sProfileName; + return TRUE; + } + } + } + } + Uninitialize(); + } + else + MAPIUninitialize(); + return FALSE; +} + +BOOL COXSendMail::IsInitialized() +{ + return (m_pMAPISession!=NULL); +} + +void COXSendMail::Uninitialize() +{ + if (m_pRootFolder != NULL) + { + m_pRootFolder->Release(); + m_pRootFolder = NULL; + } + + if (m_pDefaultMDB != NULL) + { + m_pDefaultMDB->StoreLogoff(&m_uLogoffFlags); + m_pDefaultMDB->Release(); + m_pDefaultMDB = NULL; + } + + if (m_peidDefaultMDB != NULL) + { + MAPIFreeBuffer(m_peidDefaultMDB); + m_peidDefaultMDB = NULL; + } + + if (m_pAddressBook != NULL) + { + m_pAddressBook->Release(); + m_pAddressBook = NULL; + } + + if (m_pMAPISession!=NULL) + { + ULONG ulUIParam = (ULONG)NULL; // null window handle + ULONG ulFlags = 0; + ULONG ulReserved = 0; + + m_pMAPISession->Logoff(ulUIParam, ulFlags, ulReserved); + m_pMAPISession->Release(); + m_pMAPISession = NULL; + MAPIUninitialize(); + } +} + +CString COXSendMail::GetProfile() +{ + CString sProfile; + + if (IsInitialized()) + sProfile = m_sMAPIProfile; + return sProfile; +} + +BOOL COXSendMail::SendMessage(CMessage& message) +{ + LPMESSAGE pMessage; + HRESULT hResult; + + pMessage = ComposeMessage(message); + if (pMessage == NULL) + return FALSE; + + hResult = pMessage->SubmitMessage(FORCE_SUBMIT); + + if (pMessage != NULL) + pMessage->Release(); + + if (FAILED(hResult)) + return FALSE; + return TRUE; +} + + +// protected functions + + +BOOL COXSendMail::InitializeMessageStore() +{ + LPSRowSet pRow = NULL; + ULONG ulRow; + ULONG uRowCount; + HRESULT hResult; + LPMAPITABLE pStoresTable; + LPSPropValue pProps; + BOOL bFound; + + +// The order for this enumaration must match the order of the properties +// in the tag array below + enum + { + DEFAULT_STORE, + STORE_EID, + MSG_STORES_TABLE_PROPS // number columns in the proptagarray + }; + + SizedSPropTagArray (MSG_STORES_TABLE_PROPS, sptMsgStores) = + { + MSG_STORES_TABLE_PROPS, + { + PR_DEFAULT_STORE, + PR_ENTRYID, + } + }; + +///// end of local declarations + + m_cbeidDefaultMDB = 0; + m_peidDefaultMDB = NULL; + + +// first get a table of the message stores available + hResult = m_pMAPISession->GetMsgStoresTable (0, &pStoresTable); + if (FAILED(hResult)) + return FALSE; + + +// we only want the default store flag and the entry id + hResult = pStoresTable->SetColumns((LPSPropTagArray)&sptMsgStores, 0); + if (FAILED(hResult)) + return FALSE; + + pStoresTable->GetRowCount(0, &uRowCount); // one row corresponds to one MDB provider +// typically no one should have more than +// 6 or 7 MDB providers. + +// Get row(s) from the message stores table + hResult = pStoresTable->QueryRows(uRowCount, 0, &pRow); + if (FAILED(hResult)) + return FALSE; + + bFound = FALSE; +// loop through each row -- each row represents the properties of a message store + for (ulRow=0; ulRowcRows; ulRow++) + { + pProps = pRow->aRow[ulRow].lpProps; + + if (pProps[DEFAULT_STORE].Value.b == 1) // we found it! + { + + m_cbeidDefaultMDB = pProps[STORE_EID].Value.bin.cb; + hResult = MAPIAllocateBuffer(m_cbeidDefaultMDB, (LPVOID *)&m_peidDefaultMDB); + if (FAILED(hResult)) + return FALSE; + + memcpy(m_peidDefaultMDB, pProps[STORE_EID].Value.bin.lpb, m_cbeidDefaultMDB); + + bFound = TRUE; + } +/// else ignore the non-defaults + } + + if (bFound) + hResult = S_OK; + else + hResult = MAPI_E_NOT_FOUND; + + + +// clean up if neccessary + if (pRow != NULL) + FreeProws(pRow); + + if (pStoresTable != NULL) + pStoresTable->Release(); + + + if (FAILED(hResult)) // there was an error + return FALSE; + +// open the default message store + m_pDefaultMDB = NULL; + hResult = m_pMAPISession->OpenMsgStore ((ULONG)NULL, + m_cbeidDefaultMDB, + m_peidDefaultMDB, + NULL, + MDB_WRITE, + &m_pDefaultMDB); + if (FAILED(hResult)) + return FALSE; + + return TRUE; +} + +LPMESSAGE COXSendMail::ComposeMessage(CMessage& message) +{ + HRESULT hrRet = 0; + LPMESSAGE pMessage = NULL; + SPropValue pMessageProps[5]; + LPSPropProblemArray pPropProblems; + + // create the message + hrRet = m_pRootFolder->CreateMessage(NULL, 0, &pMessage); + if (FAILED(hrRet)) + return NULL; + + // setup the properties + pMessageProps[0].ulPropTag = PR_MESSAGE_CLASS; + pMessageProps[1].ulPropTag = PR_PRIORITY; + pMessageProps[2].ulPropTag = PR_SUBJECT; + pMessageProps[3].ulPropTag = PR_BODY; + pMessageProps[4].ulPropTag = PR_CLIENT_SUBMIT_TIME; + + pMessageProps[0].Value.lpszA = "IPM.NOTE"; + pMessageProps[1].Value.l = PRIO_NORMAL; +#ifdef _UNICODE + pMessageProps[2].Value.lpszW = message.m_sSubject.GetBuffer(message.m_sSubject.GetLength()); + pMessageProps[3].Value.lpszW = message.m_sContent.GetBuffer(message.m_sContent.GetLength()); +#else + pMessageProps[2].Value.lpszA = message.m_sSubject.GetBuffer(message.m_sSubject.GetLength()); + pMessageProps[3].Value.lpszA = message.m_sContent.GetBuffer(message.m_sContent.GetLength()); +#endif + message.m_sSubject.ReleaseBuffer(); + message.m_sContent.ReleaseBuffer(); + + // set the message submission time + SYSTEMTIME tSysTime; + FILETIME tSubmitTime; + GetSystemTime(&tSysTime); + SystemTimeToFileTime(&tSysTime, &tSubmitTime); // convert to file time + pMessageProps[4].Value.ft = tSubmitTime; + + + // set the properties + hrRet = pMessage->SetProps(5, pMessageProps, &pPropProblems); + if (!FAILED(hrRet)) + { + hrRet = AddRecipients(pMessage, message.m_recipients); + if (!FAILED(hrRet)) + { + // Create the attachment + AddAttachments(pMessage, message.m_attachments); + hrRet = pMessage->SaveChanges(KEEP_OPEN_READWRITE); + } + + if (!FAILED(hrRet)) + return pMessage; + } + + if (pMessage != NULL) + pMessage->Release(); + + return NULL; +} + + +HRESULT COXSendMail::AddRecipients(LPMESSAGE pMessage, CRecipientArray& recipients) +{ + HRESULT hrRet; + LPADRLIST pAddressList; + +// allocate address list for one recipient + MAPIAllocateBuffer(sizeof(ADRLIST) + sizeof(ADRENTRY) * recipients.GetSize(), + (LPVOID *) &pAddressList); + +// set properties for address list + pAddressList->cEntries = recipients.GetSize(); + for (int i=0 ; iaEntries[i].rgPropVals) ); + + pAddressList->aEntries[i].cValues = 2; + pAddressList->aEntries[i].rgPropVals[0].ulPropTag = PR_DISPLAY_NAME; + pAddressList->aEntries[i].rgPropVals[0].Value.lpszA = recipients[i]->sName.GetBuffer(recipients[i]->sName.GetLength()); + pAddressList->aEntries[i].rgPropVals[1].ulPropTag = PR_RECIPIENT_TYPE; + recipients[i]->sName.ReleaseBuffer(); + switch (recipients[i]->eType) + { + case rtTO: + pAddressList->aEntries[i].rgPropVals[1].Value.l = MAPI_TO; + break; + case rtCC: + pAddressList->aEntries[i].rgPropVals[1].Value.l = MAPI_CC; + break; + case rtBCC: + pAddressList->aEntries[i].rgPropVals[1].Value.l = MAPI_BCC; + break; + } + } + +// resolve the address + hrRet = m_pAddressBook->ResolveName(0, 0, NULL, pAddressList); + if (!FAILED(hrRet)) + { + // set the recipients to the message + hrRet = pMessage->ModifyRecipients(MODRECIP_ADD, pAddressList); + } + + for (i=0 ; iaEntries[i].rgPropVals); + + MAPIFreeBuffer(pAddressList); + + return hrRet; +} + +HRESULT COXSendMail::AddAttachments(LPMESSAGE pMessage, CAttachmentArray& attachments) +{ + HRESULT hrRet; + UINT idx; + LPTSTR szAttachment; + +// if there are no attachments, just return + if (attachments.GetSize() == 0) + return 0; + + enum + { + REND_POS, + PATH_NAME, + ATT_METHOD, + DISP_NAME, + ATT_FILENAME, + ATT_DIM + }; + + SizedSPropTagArray(ATT_DIM , sptAttachTags) = + { + ATT_DIM, + { + PR_RENDERING_POSITION, + PR_ATTACH_PATHNAME, + PR_ATTACH_METHOD, + PR_DISPLAY_NAME, + PR_ATTACH_FILENAME + } + }; + SPropValue spvAttachProps[ATT_DIM]; + + + CString sAttachment; + + for (int i=0 ; isPath; + + LPATTACH lpAttach = NULL; + ULONG ulAttachNum = 0; + + hrRet = pMessage->CreateAttach(NULL, 0, &ulAttachNum, &lpAttach); + if (FAILED(hrRet)) + return hrRet; + + for(idx = 0; idx < ATT_DIM; ++idx) + { + spvAttachProps[idx].ulPropTag = sptAttachTags.aulPropTag[idx]; + spvAttachProps[idx].dwAlignPad = 0; + } + + +// Split the path of the attachment, so we can extract the filename +// to display under the attachment + TCHAR pszDrive[_MAX_DRIVE]; + TCHAR pszSubdir[_MAX_DIR]; + TCHAR pszBaseName[_MAX_FNAME]; + TCHAR pszExtender[_MAX_EXT]; + TCHAR pszFileName[_MAX_FNAME + _MAX_EXT]; + + szAttachment = sAttachment.GetBuffer(_MAX_PATH); + + _tsplitpath(szAttachment, pszDrive, pszSubdir, pszBaseName, pszExtender); + _tmakepath(pszFileName, NULL, NULL, pszBaseName, pszExtender); + + spvAttachProps[REND_POS].Value.l = -1; + spvAttachProps[PATH_NAME].Value.LPSZ = szAttachment; + spvAttachProps[ATT_METHOD].Value.l = ATTACH_BY_REF_RESOLVE; +// spvAttachProps[ATT_METHOD].Value.l = ATTACH_BY_VALUE; + spvAttachProps[DISP_NAME].Value.LPSZ = pszFileName; + spvAttachProps[ATT_FILENAME].Value.LPSZ = pszFileName; + + hrRet = lpAttach->SetProps(ATT_DIM, spvAttachProps, NULL); + if (FAILED(hrRet)) + { + sAttachment.ReleaseBuffer(); + return hrRet; + } + + hrRet = lpAttach->SaveChanges(KEEP_OPEN_READWRITE); + + sAttachment.ReleaseBuffer(); + if (FAILED(hrRet)) + return hrRet; + + szAttachment = NULL; + UlRelease(lpAttach); + } + + return hrRet; +} + +#endif + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXStaticMenuItem.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXStaticMenuItem.cpp new file mode 100644 index 0000000..d8018ba --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXStaticMenuItem.cpp @@ -0,0 +1,204 @@ +// OXStaticMenuItem.cpp : implementation file +// + +#include "stdafx.h" +#include "OXStaticMenuItem.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// COXStaticMenuItem + +COXStaticMenuItem::COXStaticMenuItem() +{ + m_bPressedDown=FALSE; + m_clrActive=RGB(192,0,0); + m_clrNormalText=GetTextColor(); +} + +COXStaticMenuItem::~COXStaticMenuItem() +{ + if(::IsWindow(GetSafeHwnd())) + DestroyWindow(); +} + + +BEGIN_MESSAGE_MAP(COXStaticMenuItem, COXStaticText) + //{{AFX_MSG_MAP(COXStaticMenuItem) + ON_WM_LBUTTONDOWN() + ON_WM_LBUTTONUP() + ON_WM_CREATE() + //}}AFX_MSG_MAP + ON_MESSAGE(HWM_MOUSEENTER, OnMouseEnter) + ON_MESSAGE(HWM_MOUSELEAVE, OnMouseLeave) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// COXStaticMenuItem message handlers + +static BOOL bIsCreating=FALSE; + +int COXStaticMenuItem::OnCreate(LPCREATESTRUCT lpCreateStruct) +{ + bIsCreating=TRUE; + + if(COXStaticText::OnCreate(lpCreateStruct)==-1) + return -1; + + m_MouseSpy.HookWindow(this); + // call this function in oder to get HWM_MOUSEENTER and HWM_MOUSELEAVE messages + m_MouseSpy.InstallSpy(); + + return 0; +} + +void COXStaticMenuItem::PreSubclassWindow() +{ + // TODO: Add your specialized code here and/or call the base class + + if(!bIsCreating) + { + m_MouseSpy.HookWindow(this); + // call this function in oder to get HWM_MOUSEENTER and + // HWM_MOUSELEAVE messages + m_MouseSpy.InstallSpy(); + } + + COXStaticText::PreSubclassWindow(); +} + +LONG COXStaticMenuItem::OnMouseEnter(WPARAM wParam, LPARAM lParam) +{ + UNREFERENCED_PARAMETER(wParam); + UNREFERENCED_PARAMETER(lParam); + + CWnd* pParentWnd=GetParent(); + ASSERT(pParentWnd); + CRect rect; + GetWindowRect(rect); + rect.InflateRect(1,1,0,0); + pParentWnd->ScreenToClient(rect); + MoveWindow(rect); + + m_clrNormalText=GetTextColor(); + SetTextColor(m_clrActive,TRUE); + + NotifyParent(SMIN_ACTIVATED); + + return (LONG)0; +} + +LONG COXStaticMenuItem::OnMouseLeave(WPARAM wParam, LPARAM lParam) +{ + UNREFERENCED_PARAMETER(wParam); + UNREFERENCED_PARAMETER(lParam); + + CWnd* pParentWnd=GetParent(); + ASSERT(pParentWnd); + CRect rect; + GetWindowRect(rect); + if(m_bPressedDown) + { + rect.OffsetRect(-2,-2); + m_bPressedDown=FALSE; + } + rect.DeflateRect(1,1,0,0); + pParentWnd->ScreenToClient(rect); + MoveWindow(rect); + + SetTextColor(m_clrNormalText,TRUE); + + NotifyParent(SMIN_DEACTIVATED); + + return (LONG)0; +} + +void COXStaticMenuItem::OnLButtonDown(UINT nFlags, CPoint point) +{ + // TODO: Add your message handler code here and/or call default + + CWnd* pParentWnd=GetParent(); + ASSERT(pParentWnd); + CRect rect; + GetWindowRect(rect); + rect.OffsetRect(2,2); + pParentWnd->ScreenToClient(rect); + MoveWindow(rect); + + m_bPressedDown=TRUE; + + COXStaticText::OnLButtonDown(nFlags, point); +} + +void COXStaticMenuItem::OnLButtonUp(UINT nFlags, CPoint point) +{ + // TODO: Add your message handler code here and/or call default + + if(m_bPressedDown) + { + CWnd* pParentWnd=GetParent(); + ASSERT(pParentWnd); + CRect rect; + GetWindowRect(rect); + rect.OffsetRect(-2,-2); + pParentWnd->ScreenToClient(rect); + MoveWindow(rect); + + m_bPressedDown=FALSE; + + NotifyParent(SMIN_CLICKED); + } + + COXStaticText::OnLButtonUp(nFlags, point); +} + +void COXStaticMenuItem::SetProperties(COLORREF clrText/*=::GetSysColor(COLOR_BTNTEXT)*/, + COLORREF clrBack/*=::GetSysColor(COLOR_BTNFACE)*/, + COLORREF clrActive/*=RGB(192,0,0)*/, + int nFontHeight/*=12*/, + int nFontWeight/*=FW_NORMAL*/, + CString sFontName/*=_T("MS Sans Serif")*/, + BOOL bEmboss/*=TRUE*/, + int nHorzAlignment/*=OX_ALIGNHORZ_LEFT*/, + int nVertAlignment/*=OX_ALIGNVERT_CENTER*/) +{ + SetTextColor(clrText); + SetBkColor(clrBack); + m_clrActive=clrActive; + LOGFONT lf; + if(GetLogFont(&lf)) + { + lf.lfHeight=nFontHeight; + lf.lfWeight=nFontWeight; + SetLogFont(&lf); + } + SetFontName(sFontName); + + SetEmboss(bEmboss); + SetHorzAlignment(nHorzAlignment); + SetVertAlignment(nVertAlignment); + SetCharSet(ANSI_CHARSET,TRUE); +} + + +void COXStaticMenuItem::NotifyParent(int nEventID) +{ + ASSERT(IsWindow(GetSafeHwnd())); + ASSERT(nEventID==SMIN_ACTIVATED || nEventID==SMIN_DEACTIVATED || + nEventID==SMIN_CLICKED); + + CWnd* pParentWnd=GetParent(); + ASSERT(pParentWnd!=NULL); + + NMHDR nmhdr; + nmhdr.code=nEventID; + nmhdr.hwndFrom=GetSafeHwnd(); + nmhdr.idFrom=GetDlgCtrlID(); + pParentWnd->SendMessage(WM_NOTIFY,nmhdr.idFrom,(LPARAM)&nmhdr); +} + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXThreadEngine.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXThreadEngine.cpp new file mode 100644 index 0000000..cf116b9 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXThreadEngine.cpp @@ -0,0 +1,399 @@ +// ========================================================================== +// Class Implementation : COXThreadEngine +// ========================================================================== + +// Source file : OXThreadEngine.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include "OXThreadEngine.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +// timeout value (in msec) for the thread termination (see 'COXThreadEngine::Terminate()') +#define OXTE_TERMINATION_TIMEOUT 10000 + +///////////////////////////////////////////////////////////////////////////// +// COXEngineCmd +// + +// Definition of static members --------------------------------------------- + +DWORD COXEngineCmd::m_dwGlobalIndex = 0; + + +// Data members ------------------------------------------------------------- +// protected: + + // COXDoneNotifier* m_pDoneNotifier; + // --- For optional notification after execution + + // HANDLE m_hFinishedEvent; + // --- Used for synchronisation of synchrone commands + + // LONG m_nRef; + // --- Used for reference counting + +// private: + + // static DWORD m_dwGlobalIndex; + // --- Internal cyclic counter + +// Implementation of macros ------------------------------------------------- +IMPLEMENT_DYNAMIC(COXEngineCmd, CObject) + +// Member functions --------------------------------------------------------- + +// public: + +COXEngineCmd::COXEngineCmd(BOOL bSynchrone /*= TRUE*/, COXDoneNotifier* pDoneNotifier /*= NULL*/) : + m_hFinishedEvent(NULL), + m_dwIndex(++m_dwGlobalIndex), + m_pDoneNotifier(pDoneNotifier), + m_nRef(2+(pDoneNotifier!=NULL?1:0)) // One release has to be done after PostCommand(); + // Another one will be done by the engine after the + // execution + // In case of notification a release has +{ // to be done after notification + if (bSynchrone) // + m_hFinishedEvent = CreateEvent(NULL, FALSE, FALSE, NULL); +} + +COXEngineCmd::~COXEngineCmd() +{ + if (m_hFinishedEvent) + CloseHandle(m_hFinishedEvent); +} + +void COXEngineCmd::Release() +{ + if (InterlockedDecrement(&m_nRef) == 0) + delete this; +} + +BOOL COXEngineCmd::IsSynchrone() const +{ + return (m_hFinishedEvent!=NULL); +} + + +///////////////////////////////////////////////////////////////////////////// +// COXThreadEngine::COXEngineCmdList + +// Data members ------------------------------------------------------------- + +// protected: + + // HANDLE m_hMutex; + // --- mutex for lock functionality + +// Member functions --------------------------------------------------------- + +// public: + +COXThreadEngine::COXEngineCmdList::COXEngineCmdList() : + m_hMutex(NULL) +// --- In : none +// --- Out : none +// --- Returns : none +// --- Effect : constructs the command list and creates the internal mutex +{ + m_hMutex = CreateMutex(NULL, FALSE, NULL); +} + +COXThreadEngine::COXEngineCmdList::~COXEngineCmdList() +// --- In : none +// --- Out : none +// --- Returns : none +// --- Effect : destructs the command list and closes the mutex handle +{ + if (m_hMutex) + CloseHandle(m_hMutex); +} + +void COXThreadEngine::COXEngineCmdList::Lock() +// --- In : none +// --- Out : none +// --- Returns : none +// --- Effect : locks the list exclusively +{ + WaitForSingleObject(m_hMutex, INFINITE); +} + +void COXThreadEngine::COXEngineCmdList::Unlock() +// --- In : none +// --- Out : none +// --- Returns : none +// --- Effect : unlocks the list +{ + VERIFY(ReleaseMutex(m_hMutex)); +} + + +///////////////////////////////////////////////////////////////////////////// +// COXThreadEngineBase + +// Data members ------------------------------------------------------------- + +// protected: + + // BOOL m_bEndThread; + // --- Thread shall terminate during next thread event + + // BOOL m_bInitialized; + // --- If successfully initialised + + // CWinThread* m_pThread; + // --- Thread pointer of the engines thread + + // HANDLE m_hCreatedEvent; + // --- Event for initialisation synchronisation + + // HANDLE m_hEndEvent; + // --- Event for termination synchronisation + + // HANDLE m_hThreadEvent; + // --- event when a new command is posted + + // COXEngineCmdList m_cmdList; + // --- the command queue of the engine + + + +// Member functions --------------------------------------------------------- + +// public: + + + +COXThreadEngine::COXThreadEngine() : + m_hCreatedEvent(NULL), + m_bInitialized(FALSE), + m_bEndThread(FALSE), + m_hEndEvent(NULL), + m_hThreadEvent(NULL), + m_pThread(NULL), + m_nTerinationTimeout(OXTE_TERMINATION_TIMEOUT) +{ + m_hCreatedEvent = CreateEvent(NULL, FALSE, FALSE, NULL); + m_hEndEvent = CreateEvent(NULL, FALSE, FALSE, NULL); + m_hThreadEvent = CreateEvent(NULL, FALSE, FALSE, NULL); +} + +COXThreadEngine::~COXThreadEngine() +{ + if (m_hEndEvent) + CloseHandle(m_hEndEvent); + if (m_hCreatedEvent) + CloseHandle(m_hCreatedEvent); + if (m_hThreadEvent) + CloseHandle(m_hThreadEvent); +} + +BOOL COXThreadEngine::Initialize() +{ + DWORD dwWaitResult; + + if (IsInitialized()) + { + TRACE0("COXThreadEngine::Initialize() -> Already initialized !!"); + ASSERT(FALSE); + return FALSE; + } + m_pThread = AfxBeginThread((AFX_THREADPROC)StartThread, this); + if (m_pThread) + { + while (TRUE) + { + dwWaitResult = ::WaitForSingleObject(&m_hCreatedEvent,INFINITE); + //dwWaitResult = MsgWaitForMultipleObjects(1, &m_hCreatedEvent, FALSE, INFINITE, QS_ALLINPUT); + if (dwWaitResult == (WAIT_OBJECT_0 + 1)) + // You must avoid a WM_QUIT to be send during initialization + VERIFY(AfxGetThread()->PumpMessage()); + else + return TRUE; + } + } + return FALSE; +} + +BOOL COXThreadEngine::IsInitialized() +{ + return m_bInitialized; +} + +void COXThreadEngine::Terminate() +{ + DWORD dwWaitResult; + BOOL bEnd = FALSE; + BOOL bPostQuit = FALSE; + + if (m_pThread==NULL) + return; + + m_bEndThread = TRUE; + SetEvent(m_hThreadEvent); + + while (!bEnd) + { + dwWaitResult = MsgWaitForMultipleObjects(1, &m_hEndEvent, FALSE, m_nTerinationTimeout, QS_ALLINPUT); + + if (dwWaitResult == (WAIT_OBJECT_0 + 1)) + { + MSG msg; + // making sure there is a msg in the queue + // we don't want PumpMessage() to hang + if (PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)) + bPostQuit = (!AfxGetThread()->PumpMessage()) || bPostQuit; + } + else + { + if (m_pThread && (dwWaitResult != WAIT_OBJECT_0)) + TerminateThread(m_pThread->m_hThread, 0); + bEnd = TRUE; + } + } + if (bPostQuit) + { + AfxPostQuitMessage(0); + Sleep(200); // Give the terminating thread the time to terminate + } + m_bEndThread = FALSE; + m_bInitialized = FALSE; +} + +void COXThreadEngine::PostCommand(COXEngineCmd* pCmd, BOOL bASAP /*= FALSE*/) +{ + m_cmdList.Lock(); + if (bASAP) + m_cmdList.AddHead(pCmd); + else + m_cmdList.AddTail(pCmd); + m_cmdList.Unlock(); + SetEvent(m_hThreadEvent); + if (pCmd->m_hFinishedEvent) + WaitForSingleObject(pCmd->m_hFinishedEvent, INFINITE); +} + +// protected: + +UINT COXThreadEngine::StartThread( LPVOID pParam ) +// --- In : pParam: the engine itself (it needs to be past on as a parameter +// because this is a static functions) +// --- Out : none +// --- Returns : always zero (indicates that the thread terminated normally) +// --- Effect : calls the Run() functions which implements a message loop +{ + ((COXThreadEngine*) pParam)->Run(); + return 0; +} + +void COXThreadEngine::Run() +// --- In : none +// --- Out : none +// --- Returns : none +// --- Effect : implements a loop which ends if Terminate() is called; +// this loop reacts on every command that is added to the engines queue +{ + MSG msg; + HRESULT hr; + + hr = CoInitialize(NULL); + if (hr==S_OK) + m_bInitialized = OnThreadCreation(); + SetEvent(m_hCreatedEvent); + if (m_bInitialized) + { + DWORD dwWaitResult; + + while (!m_bEndThread) + { + dwWaitResult = MsgWaitForMultipleObjects(1, &m_hThreadEvent, FALSE, INFINITE, QS_ALLINPUT); + if (dwWaitResult == (WAIT_OBJECT_0 + 1)) + { + while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) + DispatchMessage(&msg); + } + else if (!m_bEndThread) + OnThreadEvent(); + } + OnThreadDestruction(); + m_pThread = NULL; + CoUninitialize(); + SetEvent(m_hEndEvent); + } + m_pThread = NULL; +} + +BOOL COXThreadEngine::OnThreadCreation() +// --- In : none +// --- Out : none +// --- Returns : if initialisation of the engine will be successful or not +// --- Effect : is called by the engine when the thread is started +// overload this function if you need to do some specific +// initialisation +{ + return TRUE; +} + +void COXThreadEngine::OnThreadDestruction() +// --- In : none +// --- Out : none +// --- Returns : none +// --- Effect : is called by the engine when the thread is terminated; +// overload this function if you need to do some specific +// uninitialisation; +// dont forget to call this base function on the +// end of your overloaded version +{ + COXEngineCmd* pCmd; + while (m_cmdList.GetCount()) + { + pCmd = m_cmdList.RemoveHead(); + pCmd->Release(); // the one that will not be done by OnThreadEvent() + if (pCmd->m_pDoneNotifier) + pCmd->Release(); // the one that will not be done by the notifier + } +} + +void COXThreadEngine::OnThreadEvent() +// --- In : none +// --- Out : none +// --- Returns : none +// --- Effect : if a thread event occurs, this function is called to execute all +// the commands in the engine queue (from head to tail) +{ + COXEngineCmd* pCmd; + COXDoneNotifier* pDoneNotifier; + HANDLE hFinishedEvent; + + m_cmdList.Lock(); + while (!m_bEndThread && m_cmdList.GetCount()) + { + pCmd = m_cmdList.RemoveHead(); + m_cmdList.Unlock(); + hFinishedEvent = pCmd->m_hFinishedEvent; + pDoneNotifier = pCmd->m_pDoneNotifier; + OnExecuteCmd(pCmd); + + if (pDoneNotifier) + pDoneNotifier->DoneCommand(pCmd); + if (hFinishedEvent) + SetEvent(hFinishedEvent); + pCmd->Release(); + m_cmdList.Lock(); + } + m_cmdList.Unlock(); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXTimer.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXTimer.cpp new file mode 100644 index 0000000..1a37613 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXTimer.cpp @@ -0,0 +1,417 @@ +// ========================================================================== +// Class Implementation : COXTimer +// ========================================================================== + +// Source file : OXTimer.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include "OXTimer.h" +#include + +#ifndef OX_TIMER_NO_MM_LIB + #pragma comment(lib, "winmm.lib") +#endif + +#ifdef _DEBUG +#undef THIS_FILE +static char BASED_CODE THIS_FILE[] = __FILE__; +#endif + +IMPLEMENT_DYNAMIC(COXTimer, CObject) + +#define new DEBUG_NEW + +///////////////////////////////////////////////////////////////////////////// +// Definition of static members +// ... Initialize to unkown +LARGE_INTEGER COXTimer::m_nIntervalTimerFrequency = { 0, 0 }; +CMap COXTimer::m_allTimers; +CMap COXTimer::m_synchronizedTimers; + +// Data members ------------------------------------------------------------- +// protected: + // LARGE_INTEGER m_rgStartIntervalCounter; + // --- Start time of interval timer + // The unit are COUNTS of the performance counter + + // LARGE_INTEGER m_rgStopIntervalCounter; + // --- Stop time of interval timer + // The unit are COUNTS of the performance counter + + // static LARGE_INTEGER m_nIntervalTimerFrequency; + // --- Number of counts per second the performance counter uses + // Accurracy is 1/m_nIntervalTimerFrequency (in seconds) + // -1 = Counter is not available + // 0 = Not yet initialzed + + // DWORD m_nUserData; + // --- The user data associated with this timer object + + // P_OX_TIMER_NOTIFICATION m_pfNotification; + // --- Pointer to the notification function + + // UINTm_nNonSynchronizedTimerNotifierID; + // --- Timer ID used by the non synchronized timer + + // UINT m_nSynchronizedTimerNotifierID; + // --- Timer ID used by the synchronized timer + + // BOOL m_bPeriodic; + // --- Whether the running timer is periodic or not + + // static CMap m_allTimers; + // --- Map of all the timers (only the key is used, not the value) + + // static CMap m_synchronizedTimers; + // --- Map of all running synchronized timers + // Organizes a map between the (synchronized) timer ID and the COXTimer object +// private: + +// Member functions --------------------------------------------------------- +// public: + +COXTimer::COXTimer() + : + m_nUserData(0), + m_pfNotification(NULL), + m_nNonSynchronizedTimerNotifierID(0), + m_nSynchronizedTimerNotifierID(0), + m_bPeriodic(FALSE) + { + m_startIntervalCounter.QuadPart = 0; + m_stopIntervalCounter.QuadPart = 0; + + // ... Register this new object in the global map + m_allTimers.SetAt(this, TRUE); + + ASSERT_VALID(this); + } + +BOOL COXTimer::StartInterval() + { + if (::QueryPerformanceCounter(&m_startIntervalCounter)) + return TRUE; + else + { + TRACE0("COXTimer::StartInterval : Failed to use performance counter\n"); + return FALSE; + } + } + +void COXTimer::StopInterval() + { + if (!::QueryPerformanceCounter(&m_stopIntervalCounter)) + TRACE0("COXTimer::StopInterval : Failed to use performance counter\n"); + } + +LONGLONG COXTimer::GetInterval() const + { + return (m_stopIntervalCounter.QuadPart - m_startIntervalCounter.QuadPart) * + GetIntervalAccuracy(); + } + +LONGLONG COXTimer::GetIntervalAccuracy() + { + if (m_nIntervalTimerFrequency.QuadPart == 0) + { + // Variable has not yet been initialzed, do it now + if (!::QueryPerformanceFrequency(&m_nIntervalTimerFrequency)) + // ... Mark as unavailable + m_nIntervalTimerFrequency.QuadPart = -1; + } + + if (m_nIntervalTimerFrequency.QuadPart < 0) + return -1; + else + // ... return result in nanoseconds (1E-9 s) + return 1000000000 / m_nIntervalTimerFrequency.QuadPart ; + } + +BOOL COXTimer::StartNotifier(LONGLONG nDelay, P_OX_TIMER_NOTIFICATION pfTimerNotification, + BOOL bPeriodic /* = FALSE */, BOOL bSynchronized /* = FALSE */, LONGLONG nAccuracy /* = -1 */) + { + // Convert to milliseconds because this is the smallest resolution we can use + int nMilliDelay = NANO_TO_MILLI(nDelay); + int nMilliAccuracy = 0; + + if (0 <= nAccuracy) + nMilliAccuracy = NANO_TO_MILLI(nAccuracy); + else + { + // Use 1% of the total delay time and always less than a second + nMilliAccuracy = NANO_TO_MILLI(nDelay / 100); + if (1000 < nMilliAccuracy) + nMilliAccuracy = 1000; + } + + // Adjust invalid requests + if (nMilliDelay <= 0) + { + TRACE0("COXTimer::StartNotifier : Requested delay time to short, using 1 millisecond\n"); + nMilliDelay = 1; + } + if (nMilliAccuracy <= 0) + { + TRACE0("COXTimer::StartNotifier : Requested accuracy to high, using 1 millisecond\n"); + nMilliAccuracy = 1; + } + + // Kill previous timers + StopNotifier(); + + m_bPeriodic = bPeriodic; + if (!bSynchronized) + return StartNonSynchronizedNotifier(nMilliDelay, pfTimerNotification, bPeriodic, + nMilliAccuracy); + else + return StartSynchronizedNotifier(nMilliDelay, pfTimerNotification, bPeriodic, + nMilliAccuracy); + } + +void COXTimer::StopNotifier() + { + // Stop both nonsynchronized and synchronized timer + StopNonSynchronizedNotifier(); + StopSynchronizedNotifier(); + + m_pfNotification = NULL; + } + +void COXTimer::SetUserData(DWORD nUserData /* = 0 */) + { + m_nUserData = nUserData; + } + +DWORD COXTimer::GetUserData() const + { + return m_nUserData; + } + +#ifdef _DEBUG +void COXTimer::AssertValid() const + { + CObject::AssertValid(); + } + +void COXTimer::Dump(CDumpContext& dc) const + { + CObject::Dump(dc); + } +#endif //_DEBUG + +COXTimer::~COXTimer() + { + // Stop possible running timer + StopNotifier(); + ASSERT(m_nNonSynchronizedTimerNotifierID == 0); + ASSERT(m_pfNotification == NULL); + + // Unregister this object from the global map + m_allTimers.RemoveKey(this); + } + +// protected: +BOOL COXTimer::StartNonSynchronizedNotifier(int nMilliDelay, P_OX_TIMER_NOTIFICATION pfTimerNotification, + BOOL bPeriodic, int nMilliAccuracy) + // --- In : nMilliDelay : The delay in milliseconds that must elaps before the + // notificvation function is called + // pfTimerNotification : The notification function to call + // bPeriodic : Whether the function should be called periodically (TRUE) + // or just one (FALSE) + // nMilliAccuracy : The minimum accuracy in milliseconds. + // --- Out : + // --- Returns : Whether it succeeded or not. + // --- Effect : Starts the non synchronized timer notifier + { + // Store the setting of this timer + // (Must be set before starting timer so that there is no period during which the + // data members do not have a valid value) + m_nNonSynchronizedTimerNotifierID = 0; + m_pfNotification = pfTimerNotification; + + // Start a new timer + m_nNonSynchronizedTimerNotifierID = ::timeSetEvent(nMilliDelay, nMilliAccuracy, + NonSynchronizedNotificationCallback, (DWORD)this, + bPeriodic ? TIME_PERIODIC : TIME_ONESHOT); + if (m_nNonSynchronizedTimerNotifierID == 0) + { + TRACE0("COXTimer::StartNonSynchronizedNotifier : Failed to start the timer\n"); + // ... Reset data memebers + m_pfNotification = NULL; + } + + return (m_nNonSynchronizedTimerNotifierID != 0); + } + +void CALLBACK COXTimer::NonSynchronizedNotificationCallback(UINT /* uTimerID */, UINT /* uMsg */, DWORD dwUser, DWORD /* dw1 */, DWORD /* dw2 */) + // --- In : uTimerID : The timer ID + // uMsg : + // dwUser : The user data + // dw1 : + // dw2 : + // --- Out : + // --- Returns : + // --- Effect : The non synchronized callback function of all objects +{ + COXTimer* pTimer = (COXTimer*)dwUser; + + BOOL bDummy; + if (!m_allTimers.Lookup(pTimer, bDummy)) + { + TRACE1("COXTimer::NonSynchronizedNotificationCallback : Timer object at address 0x%X does not exist anymore, ignoring\n", + pTimer); + return; + } + + // ... Do some sanity checks (timer object must still exist!) + ASSERT(pTimer != NULL); + ASSERT(AfxIsValidAddress(pTimer, sizeof(COXTimer))); + ASSERT_VALID(pTimer); + + // ... Delegate to object + pTimer->OnNonSynchronizedNotification(); +} + +void COXTimer::OnNonSynchronizedNotification() + // --- In : + // --- Out : + // --- Returns : + // --- Effect : The non synchronized callback function of this object + { + if (m_pfNotification != NULL) + m_pfNotification(this); + } + +void COXTimer::StopNonSynchronizedNotifier() + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Stops the non synchronized timer notifier + { + if (m_nNonSynchronizedTimerNotifierID != 0) + { + // ... Only need to timeKillEvent if the timer was periodic + if (m_bPeriodic) + VERIFY(::timeKillEvent(m_nNonSynchronizedTimerNotifierID) == TIMERR_NOERROR); + m_nNonSynchronizedTimerNotifierID = 0; + } + } + +BOOL COXTimer::StartSynchronizedNotifier(int nMilliDelay, P_OX_TIMER_NOTIFICATION pfTimerNotification, + BOOL /* bPeriodic */, int /* nMilliAccuracy */) + // --- In : nMilliDelay : The delay in milliseconds that must elaps before the + // notificvation function is called + // pfTimerNotification : The notification function to call + // bPeriodic : Whether the function should be called periodically (TRUE) + // or just one (FALSE) + // nMilliAccuracy : The minimum accuracy in milliseconds. + // --- Out : + // --- Returns : Whether it succeeded or not. + // --- Effect : Starts the synchronized timer notifier + { + // Store the setting of this timer + // (Must be set before starting timer so that there is no period during which the + // data members do not have a valid value) + m_nNonSynchronizedTimerNotifierID = 0; + m_pfNotification = pfTimerNotification; + + // Start a new timer + + // Appearantly we have to specify a valid window handle, even when we are using a + // callback function. If we would use a callback function with a NULL HWND, + // MFC's main message loop will not dispatch the thread message. + // We will use the main window by default +#ifdef _DEBUG + if (AfxGetMainWnd()->GetSafeHwnd() == NULL) + TRACE0("COXTimer::StartSynchronizedNotifier : Function needs the HWND of the main window, may not be NULL, failing\n"); +#endif + + m_nSynchronizedTimerNotifierID = ::SetTimer(AfxGetMainWnd()->GetSafeHwnd(), (DWORD)this, nMilliDelay, SynchronizedNotificationCallback); + if (m_nSynchronizedTimerNotifierID != 0) + { + // Register as synchronized timer (ID - COXTimer*) + m_synchronizedTimers.SetAt(m_nSynchronizedTimerNotifierID, this); + } + else + { + TRACE0("COXTimer::StartSynchronizedNotifier : Failed to start the timer\n"); + // ... Reset data memebers + m_pfNotification = NULL; + } + + return (m_nSynchronizedTimerNotifierID != 0); + } + +void CALLBACK COXTimer::SynchronizedNotificationCallback(HWND /*hWnd*/, + UINT /*uMsg*/, + UINT nTimerID, + DWORD /*nTime*/) + // --- In : hWnd : + // uMsg : + // uTimerID : The timer ID + // nTime : The current time + // --- Out : + // --- Returns : + // --- Effect : The synchronized callback function of all objects +{ + COXTimer* pTimer = (COXTimer*)nTimerID; + + BOOL bDummy; + if (!m_allTimers.Lookup(pTimer, bDummy)) + { + TRACE1("COXTimer::SynchronizedNotificationCallback : Timer object at address 0x%X does not exist anymore, ignoring\n", + pTimer); + return; + } + + // ... Do some sanity checks (timer object must still exist!) + ASSERT(pTimer != NULL); + ASSERT(AfxIsValidAddress(pTimer, sizeof(COXTimer))); + ASSERT_VALID(pTimer); + + // ... Delegate to object + pTimer->OnSynchronizedNotification(); +} + +void COXTimer::OnSynchronizedNotification() + // --- In : + // --- Out : + // --- Returns : + // --- Effect : The synchronized callback function of this object + { + if (m_pfNotification != NULL) + m_pfNotification(this); + + // If this is not a periodic timer, kill the timer now + if (!m_bPeriodic) + StopNotifier(); + } + +void COXTimer::StopSynchronizedNotifier() + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Stops the synchronized timer notifier + { + if (m_nSynchronizedTimerNotifierID != 0) + { + // ... KillTimer may return FALSE if the main window has already been destroyed + ::KillTimer(AfxGetMainWnd()->GetSafeHwnd(), m_nSynchronizedTimerNotifierID); + // ... Remove from global map + VERIFY(m_synchronizedTimers.RemoveKey(m_nSynchronizedTimerNotifierID)); + m_nSynchronizedTimerNotifierID = 0; + } + } + +// private: + +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXVariant.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXVariant.cpp new file mode 100644 index 0000000..ab2ba04 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXVariant.cpp @@ -0,0 +1,194 @@ +// ========================================================================== +// Class Implementation : COXVariant +// ========================================================================== + +// Source file : OXVariant.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include "OXVariant.h" +#include // For ConstructElements() + +#ifdef _DEBUG +#undef THIS_FILE +static char BASED_CODE THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// Definition of static functions + +// Data members ------------------------------------------------------------- +// protected: +// private: + +// Member functions --------------------------------------------------------- +// public: + +#ifdef _DEBUG +CDumpContext& AFXAPI operator<<(CDumpContext& dc, COXVariant varSrc) + { + // First let the base class implementation process what it can + operator<<(dc, *(COleVariant*)&varSrc); + + // Then process our extensions + // Nothing extra to do + + return dc; + } +#endif + +CArchive& AFXAPI operator<<(CArchive& ar, COXVariant varSrc) + { + // First let the base class implementation process what it can + operator<<(ar, *(COleVariant*)&varSrc); + + // Then process our extensions + if ((V_VT(&varSrc) == (VT_UI1 | VT_ARRAY)) && + (SafeArrayGetDim(V_ARRAY(&varSrc)) == 1) ) + { + void* pBuffer; + long lLower, lUpper; + DWORD lSize; + + // ... Make sure that it is an array of BYTEs + ASSERT(SafeArrayGetElemsize(V_ARRAY(&varSrc)) == 1); + // ... Get the lower and upper bound + COXVariant::CheckError(SafeArrayGetLBound(V_ARRAY(&varSrc), 1, &lLower)); + COXVariant::CheckError(SafeArrayGetUBound(V_ARRAY(&varSrc), 1, &lUpper)); + lSize = (DWORD)(lUpper - lLower + 1); + // ... Get a pointer to the actual data + COXVariant::CheckError(SafeArrayAccessData(V_ARRAY(&varSrc), &pBuffer)); + + // Write the size and data + ar << lSize; + ar.Write(pBuffer, lSize); + + // ... Release access + COXVariant::CheckError(SafeArrayUnaccessData(V_ARRAY(&varSrc))); + } + + return ar; + } + +CArchive& AFXAPI operator>>(CArchive& ar, COXVariant& varSrc) + { + // First let the base class implementation process what it can + operator>>(ar, *(COleVariant*)&varSrc); + + // Then process our extensions + if (V_VT(&varSrc) == (VT_UI1 | VT_ARRAY)) + { + // Read as a only dimensional array of unsigned bytes + void* pBuffer; + DWORD lSize; + + // ... Read the needed size + ar >> lSize; + + // Create a new one dimensional safe array + VERIFY(VariantClear(&varSrc) == NOERROR); + V_VT(&varSrc) = VT_UI1 | VT_ARRAY; + + SAFEARRAYBOUND bound; + bound.cElements = lSize; + bound.lLbound = 0; + V_ARRAY(&varSrc) = SafeArrayCreate(VT_UI1, 1, &bound); + if (V_ARRAY(&varSrc) == NULL) + { + TRACE(_T("COXVariant operator>> : Failed to create array\n")); + AfxThrowMemoryException(); + } + + // Fill with the actual data + COXVariant::CheckError(SafeArrayAccessData(V_ARRAY(&varSrc), &pBuffer)); + ar.Read(pBuffer, lSize); + COXVariant::CheckError(SafeArrayUnaccessData(V_ARRAY(&varSrc))); + } + + return ar; + } + +void COXVariant::CheckError(SCODE sc) + { + if (FAILED(sc)) + { + if (sc == E_OUTOFMEMORY) + AfxThrowMemoryException(); + else + AfxThrowOleException(sc); + } + } + +// protected: +// private: + +// Declare special versions for COleVariant +void AFXAPI ConstructElements(COleVariant* pElements, int nCount); +void AFXAPI DestructElements(COleVariant* pElements, int nCount); +void AFXAPI CopyElements(COleVariant* pDest, const COleVariant* pSrc, int nCount); +void AFXAPI SerializeElements(CArchive& ar, COleVariant* pElements, int nCount); +void AFXAPI DumpElements(CDumpContext& dc, COleVariant* pElements, int nCount); + +void AFXAPI ConstructElements(COXVariant* pElements, int nCount) + { + ASSERT(nCount == 0 || + AfxIsValidAddress(pElements, nCount * sizeof(COXVariant))); + + for (; nCount--; ++pElements) + new(pElements) COXVariant; + } + +void AFXAPI DestructElements(COXVariant* pElements, int nCount) + { + ASSERT(nCount == 0 || + AfxIsValidAddress(pElements, nCount * sizeof(COXVariant))); + + for (; nCount--; ++pElements) + pElements->~COXVariant(); + } + +void AFXAPI CopyElements(COXVariant* pDest, const COXVariant* pSrc, int nCount) + { + ASSERT(nCount == 0 || + AfxIsValidAddress(pDest, nCount * sizeof(COXVariant))); + ASSERT(nCount == 0 || + AfxIsValidAddress(pSrc, nCount * sizeof(COXVariant))); + + for (; nCount--; ++pDest, ++pSrc) + *pDest = *pSrc; + } + +void AFXAPI SerializeElements(CArchive& ar, COXVariant* pElements, int nCount) + { + ASSERT(nCount == 0 || + AfxIsValidAddress(pElements, nCount * sizeof(COXVariant))); + + if (ar.IsStoring()) + { + for (; nCount--; ++pElements) + ar << *pElements; + } + else + { + for (; nCount--; ++pElements) + ar >> *pElements; + } + } + +#ifdef _DEBUG +void AFXAPI DumpElements(CDumpContext& dc, COXVariant* pElements, int nCount) + { + for (; nCount--; ++pElements) + dc << *pElements; + } +#endif // _DEBUG + +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXVerinfo.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXVerinfo.cpp new file mode 100644 index 0000000..8adc5e9 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXVerinfo.cpp @@ -0,0 +1,375 @@ +// ========================================================================== +// Class Implementation : COXVersionInfo +// ========================================================================== + +// Source file : verinfo.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" // standard MFC include +#include "OXVerinfo.h" // class specification +#ifdef WIN32 +#include +#else +#include +#endif + +#ifdef _DEBUG +#undef THIS_FILE +static char BASED_CODE THIS_FILE[] = __FILE__; +#endif + +IMPLEMENT_DYNAMIC(COXVersionInfo, CObject) + +#define new DEBUG_NEW + +///////////////////////////////////////////////////////////////////////////// +// Definition of static members +const DWORD COXVersionInfo::m_dwFixedFileInfoSignature = 0xFEEF04BDL; +const DWORD COXVersionInfo::m_dwAmericanEnglishTranslation = 0x040904E4L; +LPCTSTR COXVersionInfo::m_pszTranslation = _T("\\VarFileInfo\\Translation"); +LPCTSTR COXVersionInfo::m_pszFileInfo = _T("StringFileInfo"); + +// Data members ------------------------------------------------------------- +// protected: + +// private: + +// Member functions --------------------------------------------------------- +// public: + +COXVersionInfo::COXVersionInfo() + { + Empty(); + } + +BOOL COXVersionInfo::ReadInfo(LPCTSTR pszPathName) + { + LPBYTE pData = NULL; + DWORD hVersion = 0; + DWORD dwVersionSize = 0; + UINT nVersionItemSize = 0; + void* pVersionItemData = NULL; + VS_FIXEDFILEINFO* pFixedFileInfo = NULL; + + // Assume failure + Empty(); + + // Note : + // Several functions changed parameter type from WIN16 to WIN32 + // e.g. WIN16 : BOOL VerQueryValue(const void FAR*, LPCSTR, VOID FAR* FAR*, UINT FAR*) + // WIN32 : BOOL VerQueryValue(const LPVOID, LPTSTR, LPVOID*, PUINT) + // Notice that the second parameter changed from pointer to LPCTSTR to + // just pointer to char + // The /Gf option under large model locates string literals in the code segment + // Passing such a string as parameter in WIN16 causes a General Protection Fault + // which points out that the string is not really const ! + // Therefore a copy to a temporary buffer will be used in both WIN16 and WIN32 + + TCHAR szCopyBuffer[512 + 1]; + + _tcscpy(szCopyBuffer, pszPathName); + dwVersionSize = ::GetFileVersionInfoSize(szCopyBuffer, &hVersion); + if (dwVersionSize == 0) + { + TRACE(_T("COXVersionInfo::ReadInfo : Could not get version info\n")); + return FALSE; + } + + pData = new BYTE[dwVersionSize + 1]; + _tcscpy(szCopyBuffer, pszPathName); + VERIFY(::GetFileVersionInfo(szCopyBuffer, hVersion, dwVersionSize, pData)); + + // Get the fixed info first + ::VerQueryValue(pData, _T("\\"), &pVersionItemData, &nVersionItemSize); + if (nVersionItemSize != 0) + { + // ... Must have right size + ASSERT(nVersionItemSize == sizeof(VS_FIXEDFILEINFO)); + pFixedFileInfo = (VS_FIXEDFILEINFO*)pVersionItemData; + // ... Must have correct header; + ASSERT(pFixedFileInfo->dwSignature == m_dwFixedFileInfoSignature); + + m_dwSignature = pFixedFileInfo->dwSignature; + m_dwStrucVersion = pFixedFileInfo->dwStrucVersion; + m_dwFileVersionMS = pFixedFileInfo->dwFileVersionMS; + m_dwFileVersionLS = pFixedFileInfo->dwFileVersionLS; + m_dwProductVersionMS = pFixedFileInfo->dwProductVersionMS; + m_dwProductVersionLS = pFixedFileInfo->dwProductVersionLS; + m_dwFileFlagsMask = pFixedFileInfo->dwFileFlagsMask; + m_dwFileFlags = pFixedFileInfo->dwFileFlags; + m_dwFileOS = pFixedFileInfo->dwFileOS; + m_dwFileType = pFixedFileInfo->dwFileType; + m_dwFileSubtype = pFixedFileInfo->dwFileSubtype; + m_dwFileDateMS = pFixedFileInfo->dwFileDateMS; + m_dwFileDateLS = pFixedFileInfo->dwFileDateLS; + } + else + TRACE(_T("COXVersionInfo::ReadInfo : Could not get fixed version info\n")); + + // Get the language - character info + TCHAR szLangChar[512]; + _tcscpy(szCopyBuffer, m_pszTranslation); + ::VerQueryValue(pData, szCopyBuffer, &pVersionItemData, &nVersionItemSize); + if(nVersionItemSize != 0) + { + ::VerLanguageName (*(UINT*)pVersionItemData, szLangChar, 512 - 1); + + // ... Swap high and low word (char set and lang id) + m_dwLanguageCountryID = MAKELONG(HIWORD(*(DWORD*)pVersionItemData), LOWORD(*(DWORD*)pVersionItemData)); + m_sLanguageCountry = szLangChar; + } + else + TRACE(_T("COXVersionInfo::ReadInfo : Could not get language info, using default\n")); + + // Get the variable info + TCHAR szCountryHex[8 + 1]; + wsprintf(szCountryHex, _T("%08.8lX"), m_dwLanguageCountryID != 0 ? m_dwLanguageCountryID : m_dwAmericanEnglishTranslation); + CString sFront = CString(_T("\\")) + m_pszFileInfo + _T("\\") + szCountryHex + _T("\\"); + CString sSubBlock; + + + sSubBlock = sFront + _T("Comments"); + _tcscpy(szCopyBuffer, sSubBlock); + if (::VerQueryValue(pData, szCopyBuffer, &pVersionItemData, &nVersionItemSize)) + m_sComments = (LPCTSTR)(LPTSTR)pVersionItemData; + + sSubBlock = sFront + _T("CompanyName"); + _tcscpy(szCopyBuffer, sSubBlock); + if (::VerQueryValue(pData, szCopyBuffer, &pVersionItemData, &nVersionItemSize)) + m_sCompanyName = (LPCTSTR)(LPTSTR)pVersionItemData; + + sSubBlock = sFront + _T("FileDescription"); + _tcscpy(szCopyBuffer, sSubBlock); + if (::VerQueryValue(pData, szCopyBuffer, &pVersionItemData, &nVersionItemSize)) + m_sFileDescription = (LPCTSTR)(LPTSTR)pVersionItemData; + + sSubBlock = sFront + _T("FileVersion"); + _tcscpy(szCopyBuffer, sSubBlock); + if (::VerQueryValue(pData, szCopyBuffer, &pVersionItemData, &nVersionItemSize)) + m_sFileVersion = (LPCTSTR)(LPTSTR)pVersionItemData; + + sSubBlock = sFront + _T("InternalName"); + _tcscpy(szCopyBuffer, sSubBlock); + if (::VerQueryValue(pData, szCopyBuffer, &pVersionItemData, &nVersionItemSize)) + m_sInternalName = (LPCTSTR)(LPTSTR)pVersionItemData; + + sSubBlock = sFront + _T("LegalCopyright"); + _tcscpy(szCopyBuffer, sSubBlock); + if (::VerQueryValue(pData, szCopyBuffer, &pVersionItemData, &nVersionItemSize)) + m_sLegalCopyright = (LPCTSTR)(LPTSTR)pVersionItemData; + + sSubBlock = sFront + _T("LegalTrademarks"); + _tcscpy(szCopyBuffer, sSubBlock); + if (::VerQueryValue(pData, szCopyBuffer, &pVersionItemData, &nVersionItemSize)) + m_sLegalTrademarks = (LPCTSTR)(LPTSTR)pVersionItemData; + + sSubBlock = sFront + _T("OriginalFilename"); + _tcscpy(szCopyBuffer, sSubBlock); + if (::VerQueryValue(pData, szCopyBuffer, &pVersionItemData, &nVersionItemSize)) + m_sOriginalFilename = (LPCTSTR)(LPTSTR)pVersionItemData; + + sSubBlock = sFront + _T("PrivateBuild"); + _tcscpy(szCopyBuffer, sSubBlock); + if (::VerQueryValue(pData, szCopyBuffer, &pVersionItemData, &nVersionItemSize)) + m_sPrivateBuild = (LPCTSTR)(LPTSTR)pVersionItemData; + + sSubBlock = sFront + _T("ProductName"); + _tcscpy(szCopyBuffer, sSubBlock); + if (::VerQueryValue(pData, szCopyBuffer, &pVersionItemData, &nVersionItemSize)) + m_sProductName = (LPCTSTR)(LPTSTR)pVersionItemData; + + sSubBlock = sFront + _T("ProductVersion"); + _tcscpy(szCopyBuffer, sSubBlock); + if (::VerQueryValue(pData, szCopyBuffer, &pVersionItemData, &nVersionItemSize)) + m_sProductVersion = (LPCTSTR)(LPTSTR)pVersionItemData; + + sSubBlock = sFront + _T("SpecialBuild"); + _tcscpy(szCopyBuffer, sSubBlock); + if (::VerQueryValue(pData, szCopyBuffer, &pVersionItemData, &nVersionItemSize)) + m_sSpecialBuild = (LPCTSTR)(LPTSTR)pVersionItemData; + + m_bValid = TRUE; + delete[] pData; + + // Dump(afxDump); + + return TRUE; + } + +BOOL COXVersionInfo::ContainsValidInfo() + { + return m_bValid; + } + +CString COXVersionInfo::GetOSName() + { + if (!ContainsValidInfo()) + { + TRACE(_T("COXVersionInfo::GetOSName() : Object does not contain valid info, returning empty string\n")); + return _T(""); + } + + CString sResult; + DWORD dwFileOS = m_dwFileOS; + + // Try all the possible flags and remove them it when a match is found + // The order in which the possible flags are checked is important, because + // they binairy overlap (see winver.h or ver.h) + + // GUI Environment + if ((dwFileOS & VOS__PM32) == VOS__PM32) + { + sResult += _T("- 32-bit PM"); + dwFileOS &= ~VOS__PM32; + } + if ((dwFileOS & VOS__WINDOWS16) == VOS__WINDOWS16) + { + sResult += _T("- 16-bit Windows"); + dwFileOS &= ~VOS__WINDOWS16; + } + if ((dwFileOS & VOS__PM16) == VOS__PM16) + { + sResult += _T("- 16-bit PM"); + dwFileOS &= ~VOS__PM16; + } + if ((dwFileOS & VOS__WINDOWS32) == VOS__WINDOWS32) + { + sResult += _T("- Win32"); + dwFileOS &= ~VOS__WINDOWS32; + } + + // Basic OS + if ((dwFileOS & VOS_OS232) == VOS_OS232) + { + sResult += _T("- 32-bit OS/2"); + dwFileOS &= ~VOS_OS232; + } + if ((dwFileOS & VOS_DOS) == VOS_DOS) + { + sResult += _T("- MS-DOS"); + dwFileOS &= ~VOS_DOS; + } + if ((dwFileOS & VOS_OS216) == VOS_OS216) + { + sResult += _T("- 16-bit OS/2"); + dwFileOS &= ~VOS_OS216; + } + if ((dwFileOS & VOS_NT) == VOS_NT) + { + sResult += _T("- Windows NT"); + dwFileOS &= ~VOS_NT; + } + // If the OS still contains flags, it are flag we did not anticipate + if (dwFileOS != 0) + { + sResult += _T("- Unknown"); + } + if (!sResult.IsEmpty()) + // ... If the result is not empty, remove the leading hyphen + sResult = sResult.Mid(2); + else + // ... If the result is empty, no OS was specified + sResult = _T("None"); + + return sResult; + } + +void COXVersionInfo::Empty() + { + m_dwSignature = 0; + m_dwStrucVersion = 0; + m_dwFileVersionMS = 0; + m_dwFileVersionLS = 0; + m_dwProductVersionMS = 0; + m_dwProductVersionLS = 0; + m_dwFileFlagsMask = 0; + m_dwFileFlags = 0; + m_dwFileOS = 0; + m_dwFileType = 0; + m_dwFileSubtype = 0; + m_dwFileDateMS = 0; + m_dwFileDateLS = 0; + + m_dwLanguageCountryID = 0; + m_sLanguageCountry = _T(""); + + m_sComments = _T(""); + m_sCompanyName = _T(""); + m_sFileDescription = _T(""); + m_sFileVersion = _T(""); + m_sInternalName = _T(""); + m_sLegalCopyright = _T(""); + m_sLegalTrademarks = _T(""); + m_sOriginalFilename = _T(""); + m_sPrivateBuild = _T(""); + m_sProductName = _T(""); + m_sProductVersion = _T(""); + m_sSpecialBuild = _T(""); + + m_bValid = FALSE; + } + +COXVersionInfo::~COXVersionInfo() + { + } + +// Diagnostics --------------------------------------------------------------- +#ifdef _DEBUG +void COXVersionInfo::AssertValid() const + { + CObject::AssertValid(); + } + +void COXVersionInfo::Dump(CDumpContext& dc) const + { + CObject::Dump(dc); + + dc << _T("\nm_dwSignature : ") << m_dwSignature;; + dc << _T("\nm_dwStrucVersion : ") << m_dwStrucVersion; + dc << _T("\nm_dwFileVersionMS : ") << m_dwFileVersionMS; + dc << _T("\nm_dwFileVersionLS : ") << m_dwFileVersionLS; + dc << _T("\nm_dwProductVersionMS : ") << m_dwProductVersionMS; + dc << _T("\nm_dwProductVersionLS : ") << m_dwProductVersionLS; + dc << _T("\nm_dwFileFlagsMask : ") << m_dwFileFlagsMask; + dc << _T("\nm_dwFileFlags : ") << m_dwFileFlags; + dc << _T("\nm_dwFileOS : ") << m_dwFileOS; + dc << _T("\nm_dwFileType : ") << m_dwFileType; + dc << _T("\nm_dwFileSubtype : ") << m_dwFileSubtype; + dc << _T("\nm_dwFileDateMS : ") << m_dwFileDateMS; + dc << _T("\nm_dwFileDateLS : ") << m_dwFileDateLS; + + dc << _T("\nm_dwLanguageCountryID : ") << m_dwLanguageCountryID; + dc << _T("\nm_sLanguageCountry : ") << m_sLanguageCountry; + + dc << _T("\nm_sComments : ") << m_sComments; + dc << _T("\nm_sCompanyName : ") << m_sCompanyName; + dc << _T("\nm_sFileDescription : ") << m_sFileDescription; + dc << _T("\nm_sFileVersion : ") << m_sFileVersion; + dc << _T("\nm_sInternalName : ") << m_sInternalName; + dc << _T("\nm_sLegalCopyright : ") << m_sLegalCopyright; + dc << _T("\nm_sLegalTrademarks : ") << m_sLegalTrademarks; + dc << _T("\nm_sOriginalFilename : ") << m_sOriginalFilename; + dc << _T("\nm_sPrivateBuild : ") << m_sPrivateBuild; + dc << _T("\nm_sProductName : ") << m_sProductName; + dc << _T("\nm_sProductVersion : ") << m_sProductVersion; + dc << _T("\nm_sSpecialBuild; : ") << m_sSpecialBuild;; + + dc << _T("\nm_bValid : ") << m_bValid; + } +#endif //_DEBUG + +// protected: + +// private: + +// Message handlers --------------------------------------------------------- + +// ========================================================================== diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXWebView.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXWebView.cpp new file mode 100644 index 0000000..08df842 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/OXWebView.cpp @@ -0,0 +1,732 @@ +// ============================================================================= +// Class Implementation : COXWebView +// ============================================================================= +// +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. +// +///////////////////////////////////////////////////////////////////////////// + +#include "StdAfx.h" +#include "OXWebView.h" +#include "OXMainRes.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + + +#ifndef CSC_NAVIGATEBACK + #define CSC_NAVIGATEBACK 2 +#endif + +#ifndef CSC_NAVIGATEFORWARD + #define CSC_NAVIGATEFORWARD 1 +#endif + +// Edit control that adds item to combobox upon pressing enter. + +const int ECA_NO_DUPLICATES = 0x1; +const int ECA_DEFAULT = ECA_NO_DUPLICATES; + +class OX_CLASS_DECL CEditComboboxAdder : public CEdit +{ +public: + CEditComboboxAdder(CWnd* pCB, int nFlags = ECA_DEFAULT, int nMaxEntries = 20); + virtual BOOL PreTranslateMessage(MSG* pMsg); +protected: + virtual void PostNcDestroy() + { + delete this; + } +private: + // Note: The control ID for the edit control of a combobox + // is 1001. It seems quite unlikely that Microsoft + // would ever change this, but if it happens, the + // following anonymous enumeration will need updating. + + enum { IDC_COMBOBOX_EDIT = 1001 }; + + CComboBox* m_pCB; + int m_nMaxEntries; + int m_nFlags; +}; + +CEditComboboxAdder::CEditComboboxAdder(CWnd* pCB, int nFlags, int nMaxEntries) + : + m_nFlags(nFlags), + m_nMaxEntries(nMaxEntries) + { + UINT uiEdit = IDC_COMBOBOX_EDIT; + m_pCB = (CComboBox*)pCB; + ASSERT_VALID(pCB); + VERIFY(SubclassDlgItem(uiEdit, pCB)); + } + +BOOL CEditComboboxAdder::PreTranslateMessage(MSG* pMsg) + { + if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN) + { + CString s; + GetWindowText(s); + + // If we are supposed to prevent duplicates, and the + // given item exists, delete it. + + int nDupe; + if ((m_nFlags & ECA_NO_DUPLICATES) && + ((nDupe = m_pCB->FindStringExact(-1, s)) != CB_ERR)) + { + m_pCB->DeleteString(nDupe); + } + + // Add the item to the top and select it. + + m_pCB->InsertString(0, s); + m_pCB->SetCurSel(0); + + // If we have more than the maximum, trim the list. + + for (int n = m_pCB->GetCount(); n > m_nMaxEntries; n--) + m_pCB->DeleteString(n - 1); + + // Fake the selection change notifcation. + + CWnd* pwndParent = m_pCB->GetParent(); + if (pwndParent != NULL) + { + WPARAM w = MAKEWPARAM(m_pCB->GetDlgCtrlID(), CBN_SELCHANGE); + LPARAM l = (LPARAM)m_pCB->GetSafeHwnd(); + pwndParent->PostMessage(WM_COMMAND, w, l); + } + + return TRUE; + } + + return FALSE; + } + +///////////////////////////////////////////////////////////////////////////// +// COXWebView + +///////////////////////////////////////////////////////////////////////////// +// Definition of static members + +// Data members ------------------------------------------------------------- +// private: + +CFont* COXWebView::m_pfontToolbarURL; +int COXWebView::m_nNumInstantiated; + +IMPLEMENT_DYNCREATE(COXWebView, CView) + +BEGIN_MESSAGE_MAP(COXWebView, CView) + //{{AFX_MSG_MAP(COXWebView) + ON_WM_CREATE() + ON_WM_SIZE() + ON_COMMAND(ID_OX_WEBVIEW_BACK, OnWebviewBack) + ON_COMMAND(ID_OX_WEBVIEW_FORWARD, OnWebviewForward) + ON_UPDATE_COMMAND_UI(ID_OX_WEBVIEW_BACK, OnUpdateWebviewBack) + ON_UPDATE_COMMAND_UI(ID_OX_WEBVIEW_FORWARD, OnUpdateWebviewForward) + ON_COMMAND(ID_OX_WEBVIEW_HOME, OnWebviewHome) + ON_COMMAND(ID_OX_WEBVIEW_SEARCH, OnWebviewSearch) + ON_UPDATE_COMMAND_UI(ID_OX_WEBVIEW_STOP, OnUpdateWebviewStop) + ON_COMMAND(ID_OX_WEBVIEW_STOP, OnWebviewStop) + ON_UPDATE_COMMAND_UI(ID_FILE_PRINT_PREVIEW, OnUpdateFilePrintPreview) + ON_COMMAND(ID_FILE_PRINT, OnFilePrint) + ON_UPDATE_COMMAND_UI(ID_OX_WEBVIEW_REFRESH, OnUpdateWebviewRefresh) + ON_COMMAND(ID_OX_WEBVIEW_REFRESH, OnWebviewRefresh) + //}}AFX_MSG_MAP + // Standard printing commands + ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint) + ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint) + ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview) + + ON_CBN_SELCHANGE(IDC_TOOLBAR_URL, OnToolbarURLChange) + ON_NOTIFY_EX(TTN_NEEDTEXTA, 0, OnTooltipNeedText) + ON_NOTIFY_EX(TTN_NEEDTEXTW, 0, OnTooltipNeedText) + //ON_NOTIFY_EX_RANGE(TTN_NEEDTEXT, 0, 0xFFFFFFFF, OnTooltipNeedText) + +END_MESSAGE_MAP() + +BEGIN_EVENTSINK_MAP(COXWebView, CView) + ON_EVENT(COXWebView, IDC_WEB_CTRL, 0x64, BeforeNavigate, VTS_BSTR VTS_I4 VTS_BSTR VTS_PVARIANT VTS_BSTR VTS_PVARIANT) + ON_EVENT(COXWebView, IDC_WEB_CTRL, 0x65, NavigateComplete, VTS_BSTR) + ON_EVENT(COXWebView, IDC_WEB_CTRL, 0x66, StatusTextChange, VTS_BSTR) + ON_EVENT(COXWebView, IDC_WEB_CTRL, 0x67, Quit, VTS_PVARIANT) + ON_EVENT(COXWebView, IDC_WEB_CTRL, 0x6a, DownloadBegin, VTS_NONE) + ON_EVENT(COXWebView, IDC_WEB_CTRL, 0x6b, NewWindow, VTS_BSTR VTS_I4 VTS_BSTR VTS_PVARIANT VTS_BSTR VTS_PVARIANT) + ON_EVENT(COXWebView, IDC_WEB_CTRL, 0x6c, ProgressChange, VTS_I4 VTS_I4) + ON_EVENT(COXWebView, IDC_WEB_CTRL, 0x68, DownloadComplete, VTS_NONE) + ON_EVENT(COXWebView, IDC_WEB_CTRL, 0x69, CommandStateChange, VTS_I4 VTS_BOOL) + ON_EVENT(COXWebView, IDC_WEB_CTRL, 0x70, PropertyChange, VTS_BSTR) + ON_EVENT(COXWebView, IDC_WEB_CTRL, 0x71, TitleChange, VTS_BSTR) + ON_EVENT(COXWebView, IDC_WEB_CTRL, 0xc8, FrameBeforeNavigate, VTS_BSTR VTS_I4 VTS_BSTR VTS_PVARIANT VTS_BSTR VTS_PVARIANT) + ON_EVENT(COXWebView, IDC_WEB_CTRL, 0xc9, FrameNavigateComplete, VTS_BSTR) + ON_EVENT(COXWebView, IDC_WEB_CTRL, 0xcc, FrameNewWindow, VTS_BSTR VTS_I4 VTS_BSTR VTS_PVARIANT VTS_BSTR VTS_PVARIANT) +END_EVENTSINK_MAP() + +///////////////////////////////////////////////////////////////////////////// +// COXWebView construction/destruction + +COXWebView::COXWebView() + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Contructor of object + // It will initialize the internal state + : + m_bCanGoBack(FALSE), + m_bCanGoForward(FALSE), + m_bCanRefresh(FALSE) + { + if (m_nNumInstantiated++ == 0) + { + CDC DC; + DC.CreateCompatibleDC(NULL); + LOGFONT lf; + memset(&lf, 0, sizeof(lf)); + _tcscpy(lf.lfFaceName, _T("MS Sans Serif")); + const int POINTS_PER_INCH = 72; + const int PPLIY = DC.GetDeviceCaps(LOGPIXELSY); + lf.lfHeight = -MulDiv(8, PPLIY, POINTS_PER_INCH); + m_pfontToolbarURL = new CFont; + m_pfontToolbarURL->CreateFontIndirect(&lf); + } + } + +COXWebView::~COXWebView() + { + if (--m_nNumInstantiated == 0) + { + delete m_pfontToolbarURL; + m_pfontToolbarURL = NULL; + } + } + +///////////////////////////////////////////////////////////////////////////// +// COXWebView drawing + +void COXWebView::OnDraw(CDC* /* pDC */) + { + // no implementation + } + +///////////////////////////////////////////////////////////////////////////// +// COXWebView printing + +BOOL COXWebView::OnPreparePrinting(CPrintInfo* pInfo) + { + // default preparation + return DoPreparePrinting(pInfo); + } + +void COXWebView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) + { + // TODO: add extra initialization before printing + } + +void COXWebView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) + { + // TODO: add cleanup after printing + } + +///////////////////////////////////////////////////////////////////////////// +// COXWebView diagnostics + +#ifdef _DEBUG +void COXWebView::AssertValid() const + { + CView::AssertValid(); + } + +void COXWebView::Dump(CDumpContext& dc) const + { + CView::Dump(dc); + } + +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// COXWebView message handlers + +int COXWebView::OnCreate(LPCREATESTRUCT lpCreateStruct) + { + if (CView::OnCreate(lpCreateStruct) == -1) + return -1; + + // Fail if we cannot create the web control. + + if (!m_WebCtrl.Create(_T(""), WS_VISIBLE|WS_CHILD, + CRect(0, 0, 0, 0), this, IDC_WEB_CTRL)) + { + TRACE0("COXWebView::OnCreate could not create web control\n"); + return -1; + } + + // The control ID specified in the create function does + // not actually get used for the container ID; instead, + // zero is used. Unfortunately, the RepositionBars method + // will not actually resize the web control if the container + // ID is zero. Thus, we set it to something else here. Also, + // FYI, this cannot be done with SetDlgCtrlID--it sneakily + // checks to see if the window in question is a client site + // and changes the ID of the ActiveX control instead. The + // more MFC does, the more it frustrates customizations. + + SetWindowLong(m_WebCtrl.GetSafeHwnd(), GWL_ID, 1); + +#ifdef _DEBUG + // (Make sure OXWebViev.rc is included in your resource file) + HINSTANCE hInst = AfxFindResourceHandle(MAKEINTRESOURCE(IDR_OX_WEBVIEW_BAR), RT_TOOLBAR); + HRSRC hRsrc = ::FindResource(hInst, MAKEINTRESOURCE(IDR_OX_WEBVIEW_BAR), RT_TOOLBAR); + ASSERT(hRsrc != NULL); +#endif + + // Fail if we cannot create the toolbar. + if (!m_Toolbar.Create(this) || + !m_Toolbar.LoadToolBar(IDR_OX_WEBVIEW_BAR)) + { + TRACE0("COXWebView::OnCreate could not create toolbar\n"); + return -1; + } + + // Create the combobox on the toolbar. + + CRect rc; + const int HEIGHT = 150; + const int WIDTH = 200; + CToolBarCtrl& t = m_Toolbar.GetToolBarCtrl(); + int nNum = t.GetButtonCount(); + t.GetItemRect(nNum - 1, &rc); + CSize sizeOfs(rc.Width() / 2, rc.top); + rc.top = sizeOfs.cy; + rc.bottom = rc.top + HEIGHT; + rc.left = rc.right + sizeOfs.cx; + rc.right = rc.left + WIDTH; + + if (!m_cbxToolbarURL.Create(CBS_DROPDOWN|WS_VISIBLE|WS_TABSTOP|WS_VSCROLL, + rc, &t, IDC_TOOLBAR_URL)) + { + TRACE0("COXWebView::OnCreate could not create toolbar URL combo-box\n"); + return -1; + } + m_cbxToolbarURL.SetFont(m_pfontToolbarURL, FALSE); + + // Add combobox edit control handling for entering URLs. + + CEditComboboxAdder* pCbxEdit; + pCbxEdit = new CEditComboboxAdder(&m_cbxToolbarURL); + ASSERT(pCbxEdit != NULL); + + // Load up the tooltips for the toolbar. + + VERIFY(m_Tooltips.Create(&m_Toolbar)); + for (int n = 0; n < nNum; n++) + { + TBBUTTON btn; + t.GetButton(n, &btn); + t.GetItemRect(n, &rc); + m_Tooltips.AddTool(&t, LPSTR_TEXTCALLBACK, rc, btn.idCommand); + } + t.SetToolTips(&m_Tooltips); + + return 0; + } + +void COXWebView::OnSize(UINT nType, int cx, int cy) + { + // First, make sure that the view window has finished + // its own sizing. + + CView::OnSize(nType, cx, cy); + UpdateWindow(); + + // Now, force an update of the toolbar, and resize the + // combobox to take advantage of all available room. + + CRect rcTB, rc, rcLast; + RepositionBars(AFX_IDW_TOOLBAR, AFX_IDW_TOOLBAR, 1); + CToolBarCtrl& t = m_Toolbar.GetToolBarCtrl(); + int nNum = t.GetButtonCount(); + t.GetClientRect(&rcTB); + m_cbxToolbarURL.GetWindowRect(&rc); + t.ScreenToClient(&rc); + t.GetItemRect(nNum - 1, &rcLast); + const int HOFS = rcLast.Width() / 2; + rc.left = rcLast.right + HOFS; + rc.right = rcTB.right; + + // Make sure the combobox is at least four buttons wide. + + if (rc.Width() < HOFS * 8) + rc.right = rc.left + HOFS * 8; + + m_cbxToolbarURL.MoveWindow(rc); + } + +void COXWebView::OnUpdateWebviewBack(CCmdUI* pCmdUI) + { + pCmdUI->Enable(m_bCanGoBack); + } + +void COXWebView::OnWebviewBack() + { + m_WebCtrl.GoBack(); + } + +void COXWebView::OnUpdateWebviewForward(CCmdUI* pCmdUI) + { + pCmdUI->Enable(m_bCanGoForward); + } + +void COXWebView::OnWebviewForward() + { + m_WebCtrl.GoForward(); + } + +void COXWebView::OnWebviewHome() + { + m_WebCtrl.GoHome(); + } + +void COXWebView::OnWebviewSearch() + { + m_WebCtrl.GoSearch(); + } + +void COXWebView::OnUpdateWebviewStop(CCmdUI* pCmdUI) + { + pCmdUI->Enable(m_WebCtrl.GetBusy()); + } + +void COXWebView::OnWebviewStop() + { + m_WebCtrl.Stop(); + } + +void COXWebView::OnUpdateWebviewRefresh(CCmdUI* pCmdUI) + { + pCmdUI->Enable(m_bCanRefresh); + } + +void COXWebView::OnWebviewRefresh() + { + m_WebCtrl.Refresh(); + } + +void COXWebView::OnToolbarURLChange() + { + int nSel = m_cbxToolbarURL.GetCurSel(); + if (nSel != CB_ERR) + { + CString s; + m_cbxToolbarURL.GetLBText(nSel, s); + m_WebCtrl.Navigate(s, NULL, NULL, NULL, NULL); + } + } + +BOOL COXWebView::OnTooltipNeedText(UINT /* id */, NMHDR* pNMHDR, LRESULT* pResult) + { + // need to handle both ANSI and UNICODE versions of the message + TOOLTIPTEXTA* pTTTA = (TOOLTIPTEXTA*)pNMHDR; + TOOLTIPTEXTW* pTTTW = (TOOLTIPTEXTW*)pNMHDR; + CString strTipText; + UINT nID = pNMHDR->idFrom; + if (pNMHDR->code == TTN_NEEDTEXTA && (pTTTA->uFlags & TTF_IDISHWND) || + pNMHDR->code == TTN_NEEDTEXTW && (pTTTW->uFlags & TTF_IDISHWND)) + { + // idFrom is actually the HWND of the tool + nID = ((UINT)(WORD)::GetDlgCtrlID((HWND)nID)); + } + + if (nID != 0) // will be zero on a separator + { + strTipText.LoadString(nID); + int nNewLine = strTipText.Find('\n'); + if (nNewLine != -1) + strTipText = strTipText.Mid(nNewLine + 1); + } +#ifndef _UNICODE + if (pNMHDR->code == TTN_NEEDTEXTA) + lstrcpyn(pTTTA->szText, strTipText, + (sizeof(pTTTA->szText)/sizeof(pTTTA->szText[0]))); + else + _mbstowcsz(pTTTW->szText, strTipText, + (sizeof(pTTTW->szText)/sizeof(pTTTW->szText[0]))); +#else + if (pNMHDR->code == TTN_NEEDTEXTA) + _wcstombsz(pTTTA->szText, strTipText, + (sizeof(pTTTA->szText)/sizeof(pTTTA->szText[0]))); + else + lstrcpyn(pTTTW->szText, strTipText, + (sizeof(pTTTW->szText)/sizeof(pTTTW->szText[0]))); +#endif + *pResult = 0; + + // bring the tooltip window above other popup windows + ::SetWindowPos(pNMHDR->hwndFrom, HWND_TOP, 0, 0, 0, 0, + SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE); + + return TRUE; // message was handled + } + +void COXWebView::OnUpdateFilePrintPreview(CCmdUI* pCmdUI) + { + pCmdUI->Enable(FALSE); + } + +void COXWebView::OnFilePrint() + { + m_WebCtrl.Print(); + } + +///////////////////////////////////////////////////////////////////////////// +// Web control notification handlers. + +void COXWebView::BeforeNavigate(LPCTSTR /* pcszURL */, long /* lFlags */, LPCTSTR /* pcszTargetFrameName */, VARIANT* /* PostData */, LPCTSTR /* pcszHeaders */, VARIANT_BOOL* /* pbCancel */) + // --- In : pcszURL : The URL to which the view is about to navigate. + // lFlags : (reserved for Microsoft's future use) + // pcszTargetFrameName : String that contains the name of + // the frame in which to display the + // resource, or NULL if no named frame + // is targeted for the resource. + // PostData : Address of data to send to the server if the + // HTTP POST transaction is being used. + // pcszHeaders : Additional HTTP headers to send to the server + // (HTTP URLs only). The headers can specify + // such things as the action required of the + // server, the type of data being passed to the + // server, or a status code. + // --- Out : pbCancel : Address of cancel flag. An application can set + // this parameter to TRUE to cancel the navigation + // operation, or FALSE to allow it to proceed. + // --- Returns : + // --- Effect : This method is called prior to a navigation operation. + { + //TRACE1("COXWebView::BeforeNavigate %s\n", pcszURL); + } + +void COXWebView::NavigateComplete(LPCTSTR /* pcszURL */) + // --- In : pcszURL : The URL to which the view is now positioned. + // --- Out : + // --- Returns : + // --- Effect : This method is called after a navigation operation + // is completed. + { + m_bCanRefresh = TRUE; + CString s = m_WebCtrl.GetLocationURL(); + m_cbxToolbarURL.SetWindowText(s); + + //TRACE1("COXWebView::NavigateComplete %s\n", pcszURL); + } + +void COXWebView::StatusTextChange(LPCTSTR /* pcszText */) + // --- In : pcszText : The message describing an event that + // has occurred. + // --- Out : + // --- Returns : + // --- Effect : This method is called when something has happened of + // which the application might want to inform the user. + { + //TRACE1("COXWebView::StatusTextChange %s\n", pcszText); + } + +void COXWebView::Quit(VARIANT_BOOL* /* pbCancel */) + // --- In : + // --- Out : pbCancel : Address of the cancel flag. An application + // can set this parameter to TRUE to cancel the + // quit operation, or FALSE to allow it to + // continue. + // --- Returns : + // --- Effect : This method is called when the Internet Explorer + // application is ready to quit. + { + //TRACE0("COXWebView::Quit\n"); + } + +void COXWebView::DownloadBegin() + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Notifies an application that a navigation operation + // is beginning. This event is fired shortly after the + // BeforeNavigate event, unless the navigation is cancelled. + { + //TRACE0("COXWebView::DownloadBegin\n"); + } + +void COXWebView::NewWindow(LPCTSTR /* pcszURL */, long /* lFlags */, LPCTSTR /* pcszTargetFrameName */, VARIANT* /* PostData */, LPCTSTR /* pcszHeaders */, VARIANT_BOOL* /* pbCancel */) + // --- In : pcszURL : The URL to which the view is about to navigate. + // lFlags : (reserved for Microsoft's future use) + // pcszTargetFrameName : String that contains the name of + // the frame in which to display the + // resource, or NULL if no named frame + // is targeted for the resource. + // PostData : Address of data to send to the server if the + // HTTP POST transaction is being used. + // pcszHeaders : Additional HTTP headers to send to the server + // (HTTP URLs only). The headers can specify + // such things as the action required of the + // server, the type of data being passed to the + // server, or a status code. + // --- Out : pbCancel : Address of cancel flag. An application can set + // this parameter to TRUE to cancel the navigation + // operation, or FALSE to allow it to proceed. + // --- Returns : + // --- Effect : Notifies an application that a new window is to be + // created for displaying a resource. + { + //TRACE1("COXWebView::NewWindow %s\n", pcszURL); + } + +void COXWebView::ProgressChange(long /* lProgress */, long /* lProgressMax */) + // --- In : lProgress : Amount of total progress to show, + // or -1 when progress is complete. + // lProgressMax : Maximum progress value. + // --- Out : + // --- Returns : + // --- Effect : Notifies an application that the progress of a + // download operation has been updated. + { + //TRACE2("COXWebView::ProgressChange %i of %i\n", lProgress, lProgressMax); + } + +void COXWebView::DownloadComplete() + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Occurs when a navigation operation finished, was halted, + // or failed. Unlike NavigateComplete which is only fired + // when a URL is successfully navigated to, this event + // is always fired after a navigation starts. Any animation + // or "busy" indication that the container needs to display + // should be connected to this event. + { + //TRACE0("COXWebView::DownloadComplete\n"); + } + +void COXWebView::CommandStateChange(long lCmdID, BOOL bEnabled) + // --- In : lCmdID : Identifier of the command whose enable state + // has changed. + // bEnabled : This parameter is TRUE if the command is + // enabled, or FALSE if it is disabled. + // --- Out : + // --- Returns : + // --- Effect : Notifies an application that the enabled state of a Web + // browser command has changed. + { + switch (lCmdID) + { + case CSC_NAVIGATEBACK: + m_bCanGoBack = bEnabled; + break; + case CSC_NAVIGATEFORWARD: + m_bCanGoForward = bEnabled; + break; + } + + // TRACE(_T("COXWebView::CommandStateChange 0x%X %i\n"), lCmdID, bEnabled); + } + +void COXWebView::PropertyChange(LPCTSTR /* pcszProperty */) + // --- In : pcszProperty : The name of the property that has changed. + // --- Out : + // --- Returns : + // --- Effect : Notifies an application that the IWebBrowser::PutProperty + // function has changed the value of a property. + { + // TRACE1("COXWebView::PropertyChange %s\n", pcszProperty); + } + +void COXWebView::TitleChange(LPCTSTR /* pcszTitle */) + // --- In : pcszTitle : Caller allocated buffer that contains the + // new document title. + // --- Out : + // --- Returns : + // --- Effect : Notifies an application that the title of a document + // in the Web browser control becomes available or changes. + // For HTML, the title may change; while HTML is still + // downloading, the URL of the document is set as the title. + // After the real title (if there is one) is parsed from the + // HTML, the title is changed to reflect the actual title. + { + // TRACE1("COXWebView::TitleChange %s\n", pcszTitle); + } + +void COXWebView::FrameBeforeNavigate(LPCTSTR /* pcszURL */, long /* lFlags */, LPCTSTR /* pcszTargetFrameName */, VARIANT* /* PostData */, LPCTSTR /* pcszHeaders */, VARIANT_BOOL* /* pbCancel */) + // --- In : pcszURL : The URL to which the view is about to navigate. + // lFlags : (reserved for Microsoft's future use) + // pcszTargetFrameName : String that contains the name of + // the frame in which to display the + // resource, or NULL if no named frame + // is targeted for the resource. + // PostData : Address of data to send to the server if the + // HTTP POST transaction is being used. + // pcszHeaders : Additional HTTP headers to send to the server + // (HTTP URLs only). The headers can specify + // such things as the action required of the + // server, the type of data being passed to the + // server, or a status code. + // --- Out : pbCancel : Address of cancel flag. An application can set + // this parameter to TRUE to cancel the navigation + // operation, or FALSE to allow it to proceed. + // --- Returns : + // --- Effect : Notifies an application that Web browser control is + // about to navigate to a different URL, which may happen + // as a result of external automation, internal automation + // from a script, or the user clicking a link or typing in + // the address bar. The container has an opportunity to + // cancel the pending navigation. This event is fired for + // navigations that occur inside an HTML frame. + { + // TRACE1("COXWebView::FrameBeforeNavigate %s\n", pcszURL); + } + +void COXWebView::FrameNavigateComplete(LPCTSTR /* pcszURL */) + // --- In : pcszURL : URL to be navigated to. Note that this URL can be + // different from the URL that the browser was told + // to navigate to. + // --- Out : + // --- Returns : + // --- Effect : Notifies an application that the browser has successfully + // navigated to a new location. The document may still be + // downloading (and in the case of HTML, images may still be + // downloading), but at least part of the document has been + // received from the server and the viewer for the document + // has been created. This event is fired for navigations + // that occur inside an HTML frame. + { + // TRACE1("COXWebView::FrameNavigateComplete %s\n", pcszURL); + } + +void COXWebView::FrameNewWindow(LPCTSTR /* pcszURL */, long /* lFlags */, LPCTSTR /* pcszTargetFrameName */, VARIANT* /* PostData */, LPCTSTR /* pcszHeaders */, VARIANT_BOOL* /* pbCancel */) + // --- In : pcszURL : The URL to which the view is about to navigate. + // lFlags : (reserved for Microsoft's future use) + // pcszTargetFrameName : String that contains the name of + // the frame in which to display the + // resource, or NULL if no named frame + // is targeted for the resource. + // PostData : Address of data to send to the server if the + // HTTP POST transaction is being used. + // pcszHeaders : Additional HTTP headers to send to the server + // (HTTP URLs only). The headers can specify + // such things as the action required of the + // server, the type of data being passed to the + // server, or a status code. + // --- Out : pbCancel : Address of cancel flag. An application can set + // this parameter to TRUE to cancel the navigation + // operation, or FALSE to allow it to proceed. + // --- Returns : + // --- Effect : Notifies an application that a new window is to be + // created for displaying a resource. + { + // TRACE1("COXWebView::FrameNewWindow %s\n", pcszURL); + } + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/PROGRESS.CPP b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/PROGRESS.CPP new file mode 100644 index 0000000..5beeef1 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/PROGRESS.CPP @@ -0,0 +1,129 @@ +// ========================================================================== +// Class Implementation : COXDiffProgress +// ========================================================================== + +// Source file : progress.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" // standard MFC include +#include "progress.h" + +#ifdef _DEBUG +#undef THIS_FILE +static char BASED_CODE THIS_FILE[] = __FILE__; +#endif + +IMPLEMENT_DYNAMIC(COXDiffProgress, CObject) + +#define new DEBUG_NEW + +///////////////////////////////////////////////////////////////////////////// +// Definition of static members + +// Data members ------------------------------------------------------------- +// protected: + // LONG m_MinVal; + // --- The minimum value of the progress bar (specified with Init()) + + // LONG m_MaxVal; + // --- The maximumvalue of the progress bar (specified with Init()) + + // LONG m_CurPos; + // --- The current value of the progress bar + +// private: + +// Member functions --------------------------------------------------------- +// public: + +COXDiffProgress::COXDiffProgress() + : + m_MinVal(0), + m_MaxVal(0), + m_CurPos(0) + { + } + +void COXDiffProgress::Init(LONG minVal, LONG maxVal, LPCTSTR pszMessage) + { + + _tprintf(_T("%s\r\n"),pszMessage); + _tprintf(_T("________________________________________\r")); + + if (maxVal == minVal) + maxVal = minVal + 1; + + m_MinVal = minVal; + m_MaxVal = maxVal; + m_CurPos = 0; + } + +BOOL COXDiffProgress::Adjust(LONG curVal) + { + // ... Must have initialized first + ASSERT( ! (m_MinVal == 0 && m_MaxVal == 0 && m_CurPos == 0) ); + + + LONG pos; + + pos = 40 * (curVal - m_MinVal) / (m_MaxVal - m_MinVal); + while (pos > m_CurPos) + { + _tprintf(_T("#")); + m_CurPos++; + } + + return TRUE; + } + +void COXDiffProgress::Abort(LPCTSTR pszMessage) + { + TRACE(_T("COXDiffProgress::Abort : %s\n"), pszMessage); + _ftprintf(stderr,_T("%s\n"),pszMessage); + exit(-1); + } + +void COXDiffProgress::Close() + { + Adjust(m_MaxVal); + _tprintf(_T("\r\n")); + + m_MinVal = 0; + m_MaxVal = 0; + m_CurPos = 0; + } + +#ifdef _DEBUG +void COXDiffProgress::Dump(CDumpContext& dc) const + { + CObject::Dump(dc); + dc << TEXT("\nm_MinVal : ") << m_MinVal; + dc << TEXT("\nm_MaxVal : ") << m_MaxVal; + dc << TEXT("\nm_CurPos : ") << m_CurPos; + } + +void COXDiffProgress::AssertValid() const + { + CObject::AssertValid(); + ASSERT(m_MinVal <= m_MaxVal); + ASSERT(m_MinVal <= m_CurPos); + ASSERT(m_CurPos <= m_MaxVal); + } +#endif + +COXDiffProgress::~COXDiffProgress() + { + } + +// protected: +// private: +// ========================================================================== + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/XMAINFRM.CPP b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/XMAINFRM.CPP new file mode 100644 index 0000000..bad038f --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/XMAINFRM.CPP @@ -0,0 +1,187 @@ +// ========================================================================== +// Class Implementation : COXMainFrame +// ========================================================================== + +// Source file : xmainfrm.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" // standard MFC include +#include "xmainfrm.h" // class specification + +#ifdef _DEBUG +#undef THIS_FILE +static char BASED_CODE THIS_FILE[] = __FILE__; +#endif + +IMPLEMENT_DYNAMIC(COXMainFrame, CMDIFrameWnd) + +#define new DEBUG_NEW + +///////////////////////////////////////////////////////////////////////////// +// Definition of static members + + +// Data members ------------------------------------------------------------- +// protected: + // COXMDIClient m_XMDIClient + // --- The subclassed MDI Client. + // All messages (like WM_ERASEBACKGROUND,...)meant for the old MDI Client + // will now pass through this new MDI CLIENT + +// private: + +// Member functions --------------------------------------------------------- +// public: + +COXMainFrame::COXMainFrame() + : m_pWindowPlacement(NULL) + { + } + +BOOL COXMainFrame::CreateClient(LPCREATESTRUCT lpCreateStruct, CMenu* pWindowMenu) + { + if (CMDIFrameWnd::CreateClient(lpCreateStruct, pWindowMenu)) + { + // Messages meant for the MDICLIENT have to pass our class First + // the m_hWndMDIClient is a fixed existing handle of the CMDIFrameWnd + m_XMDIClient.SubclassWindow(m_hWndMDIClient); + + return TRUE; + } + + return FALSE; + } + +void COXMainFrame::InitialShowWindow(WINDOWPLACEMENT& windowPlacement, UINT nCmdShow) + { + m_pWindowPlacement = &windowPlacement; + + if (m_pWindowPlacement->length == 0) + ShowWindow(nCmdShow); + else + { + if (nCmdShow != SW_SHOWNORMAL) + m_pWindowPlacement->showCmd = nCmdShow; + + SetWindowPlacement(m_pWindowPlacement); + ShowWindow(m_pWindowPlacement->showCmd); + } + } + +BOOL COXMainFrame::GetPaletteState() + { + return m_XMDIClient.GetPaletteState(); + } + +BOOL COXMainFrame::SetPaletteState(BOOL bBackGround /* = TRUE */) + { + return m_XMDIClient.SetPaletteState(bBackGround); + } + +BOOL COXMainFrame::SetWallPaper(COLORREF rgbColor /* = RGB(192, 192, 192) */, + EWallOrg eWallOrganisation /* = WP_Center */, COXDIB* pDib /* = NULL */) + { + return m_XMDIClient.SetNewBackGround(rgbColor, eWallOrganisation, pDib); + } + +COXMainFrame::~COXMainFrame() + { + } + +#ifdef _DEBUG +void COXMainFrame::AssertValid() const + { + CMDIFrameWnd::AssertValid(); + } + +void COXMainFrame::Dump(CDumpContext& dc) const + { + CMDIFrameWnd::Dump(dc); + + dc << TEXT("\nm_pWindowPlacement") << (const void*)m_pWindowPlacement; + dc << TEXT("\nm_XMDIClient") << (const void*)&m_XMDIClient; + } + +#endif //_DEBUG + +// protected: + + +// Message handlers --------------------------------------------------------- +BEGIN_MESSAGE_MAP(COXMainFrame, CMDIFrameWnd) + //{{AFX_MSG_MAP(COXMainFrame) + ON_WM_PALETTECHANGED() + ON_WM_QUERYNEWPALETTE() + ON_WM_CLOSE() + ON_WM_ACTIVATE() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +void COXMainFrame::OnPaletteChanged(CWnd* pFocusWnd) + { + CMDIFrameWnd::OnPaletteChanged(pFocusWnd); + + // always realize the palette for the active view + CMDIChildWnd* pMDIChildWnd = MDIGetActive(); + CView* pView = NULL; + if (pMDIChildWnd != NULL) + { + pView = pMDIChildWnd->GetActiveView(); + ASSERT(pView != NULL); + + // notify all child windows that the palette has changed + SendMessageToDescendants(WM_DOREALIZE, (WPARAM)pView->m_hWnd); + } + + // notify the special MDI Client that the palette has changed + m_XMDIClient.SendMessage(WM_DOMDICLTREALIZE, (WPARAM)this, (LPARAM)pFocusWnd->m_hWnd); + } + +BOOL COXMainFrame::OnQueryNewPalette() + { + // always realize the palette for the active view + CMDIChildWnd* pMDIChildWnd = MDIGetActive(); + if (pMDIChildWnd == NULL) + return FALSE; // no active MDI child frame (no new palette) + + CView* pView = pMDIChildWnd->GetActiveView(); + ASSERT(pView != NULL); + + // just notify the target view + pView->SendMessage(WM_DOREALIZE, (WPARAM)pView->m_hWnd); + return TRUE; + } + +void COXMainFrame::OnClose() + { + if (m_pWindowPlacement != NULL) + { + // before it is destroyed, save the position of the window + m_pWindowPlacement->length = sizeof(*m_pWindowPlacement); + if (GetWindowPlacement(m_pWindowPlacement)) + { + m_pWindowPlacement->flags = 0; + if (IsZoomed()) + m_pWindowPlacement->flags |= WPF_RESTORETOMAXIMIZED; + } + } + + CMDIFrameWnd::OnClose(); + } + +void COXMainFrame::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized) + { + CMDIFrameWnd::OnActivate(nState, pWndOther, bMinimized); + + // notify the special MDI Client that the palette could have changed + m_XMDIClient.SendMessage(WM_DOMDICLTREALIZE, (WPARAM)m_hWnd, (LPARAM)m_hWnd); + } + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/XMDICLT.CPP b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/XMDICLT.CPP new file mode 100644 index 0000000..281dc99 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/XMDICLT.CPP @@ -0,0 +1,537 @@ +// ========================================================================== +// Class Implementation : COXMDIClient +// ========================================================================== + +// Source file : xmdiclt.cpp + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + + +#include "stdafx.h" +#include "xmdiclt.h" + +#ifdef _DEBUG +#undef THIS_FILE +static char BASED_CODE THIS_FILE[] = __FILE__; +#endif + +#define new DEBUG_NEW + +///////////////////////////////////////////////////////////////////////////// +// COXMDIClient + +///////////////////////////////////////////////////////////////////////////// +// Definition of static members + // static WNDPROC pfnSuper; + // --- The new window procedure of this Object. + +// Data members ------------------------------------------------------------- +// protected: + + // COXDIB m_bmpBackGround; + // --- the wallpaper of the mainframe + + // CPalette* m_pPictPalette; + // --- the palette of the wallpaper + + // CBitmap* m_pTotalNewBitmap; + // --- the Bitmap of the wallpaper + + // COLORREF m_rgbBkColor; + // --- The Background color of the wallpaper + + // EWallOrg m_eWallPaperOrganisation; + // ---- the organisation of the wallpaper like center, tile,.. + + // CSize m_sizeClient; + // --- The Size of the mainframe Client area = Size of the MDI CLIENT + + // CSize m_DibSize; + // --- The Size of the wallpaper bitmap + + // HBITMAP m_hOldDestBitmap; + // --- Handle of the bitmap that was initially present in the Destination DC + + // HBITMAP m_hOldSrcBitmap; + // --- Handle of the bitmap that was initially present in the Source DC + + // CDC m_MemDCSrc; + // --- the Source Memory DC + + // CDC m_MemDCDest; + // --- the the destination Memory DC + +// Member functions --------------------------------------------------------- +// public: + +COXMDIClient::COXMDIClient() + : + m_sizeClient(0,0), + m_rgbBkColor(GetSysColor(COLOR_APPWORKSPACE)), + m_DibSize(0,0), + m_bFirstCreation(TRUE), + m_bBackGround(FALSE), + m_bWin4(FALSE), + m_hOldDestBitmap(NULL), + m_hOldSrcBitmap(NULL), + m_pTotalNewBitmap(NULL), + m_pPictPalette(NULL) + { +#ifdef WIN32 + OSVERSIONINFO VersionInfo; + VersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + + GetVersionEx(&VersionInfo); + if (VersionInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS || + (VersionInfo.dwPlatformId == VER_PLATFORM_WIN32_NT && VersionInfo.dwMajorVersion >= 4)) + m_bWin4 = TRUE; +#endif + } + +BOOL COXMDIClient::SetPaletteState(BOOL bBackGround /* = TRUE */, + EPalUpdate ePalUpdate /* = PU_IntelUpdate */) + { + BOOL bChange = m_bBackGround != bBackGround; + + m_bBackGround = bBackGround; + + if ((bChange && !m_bBackGround && ePalUpdate != PU_NoUpdate) || ePalUpdate == PU_ForceUpdate) + // Only redraw when we're changing from background to foreground + { + // Trigger the WM_ERASEBKGROUND message + OnDoMDICltRealize((WPARAM)0, MAKELPARAM(1,0)); // same as SendMessage(WM_DOMDICLTREALIZE); + } + + return TRUE; + } + +BOOL COXMDIClient::GetPaletteState() + { + return m_bBackGround; + } + + +BOOL COXMDIClient::SetNewBackGround(COLORREF rgbColor /* = GetSysColor(COLOR_APPWORKSPACE) */, + EWallOrg eWallOrganisation /* = WP_Center */, COXDIB* pDib /* = NULL */) + { + BOOL bSuccess = TRUE; + + m_eWallPaperOrganisation = eWallOrganisation; + m_rgbBkColor = rgbColor; + + if (pDib != NULL && !m_bFirstCreation ) + { + ASSERT((WP_FIRST <= (int)eWallOrganisation) && ((int) eWallOrganisation <= WP_LAST)); + + // Copy all external parameters to internal variables, so we don't have + // to take in account what happens with those parameters outside our + // MDI CLIENT object + m_bmpBackGround = *pDib; + + //Place the Bitmap in the memory dc if there is one + CSize BmpSize; + + if (!m_bmpBackGround.IsEmpty()) + // The user is giving us a new DIB to work with + { + // .... Replace the bitmap in the DC with the bitmap from the DIB + CBitmap* pOldSrcBitmap = m_bmpBackGround.MakeBitmap(&m_MemDCSrc, BmpSize); + + if (pOldSrcBitmap == NULL) + // An Error occurred + { + // Be sure that we will be working with no Bitmap to paint on our screen + m_bmpBackGround.Empty(); + m_eWallPaperOrganisation = WP_Undefined; + bSuccess = FALSE; + } + else + { + if (m_hOldSrcBitmap == NULL) + // Store the original bitmap handle, so we can select it back in when + // we destroy this MDI Client object + { + // Only the first time we can select out the original bitmap and store it + ASSERT(m_hOldSrcBitmap == NULL); + + m_hOldSrcBitmap = (HBITMAP)pOldSrcBitmap->GetSafeHandle(); + } + else + // ... The bitmap we just selected out is a bitmap we allocated ourselves + // ... so we must delete it too + delete pOldSrcBitmap; + + m_pPictPalette = m_bmpBackGround.GetPalette(); + m_DibSize = m_bmpBackGround.GetSize(); + + // Depending on the screen organisation and color and DIB, build up the + // resulting Memory DC that will be used finally in the OnEraseBackGround + // function to be copied from into the screen DC + if (!PrepareMemDC(m_sizeClient.cx, m_sizeClient.cy)) + // An Error occurred + { + // Be sure that we will be working with no Bitmap to paint on our screen + m_bmpBackGround.Empty(); + bSuccess = FALSE; + } + } + } + } + else + { + // Be sure that we will be working with no Bitmap to paint on our screen + m_bmpBackGround.Empty(); + m_DibSize = CSize(0,0); + } + + // Trigger the WM_ERASEBKGROUND message + OnDoMDICltRealize((WPARAM)0, MAKELPARAM(1,0)); // same as SendMessage(WM_DOMDICLTREALIZE); + RedrawWindow(NULL, NULL, + RDW_INVALIDATE|RDW_ERASE|RDW_ERASENOW); + + return bSuccess; + } + +COXMDIClient::~COXMDIClient() + { + if (m_hOldDestBitmap != NULL) + { + // first select the new ones out and delete them afterwards + CBitmap* ptemp3 = m_MemDCDest.SelectObject(CBitmap::FromHandle(m_hOldDestBitmap)); + delete ptemp3; + } + + if (m_hOldSrcBitmap != NULL) + { + // first select the new ones out and delete them afterwards + CBitmap* ptemp4 = m_MemDCSrc.SelectObject(CBitmap::FromHandle(m_hOldSrcBitmap)); + delete ptemp4; + } + + } + +// protected: +BOOL COXMDIClient::PrepareMemDC(int nWidth, int nHeight) + // --- In : nWidth : The needed Width of the bitmap in the Destination MemDC + // nHeight : The needed Height of the bitmap in the Destination MemDC + // --- Out : + // --- Returns : TRUE if succeeded + // --- Effect : Builds a Destination Memory DC out of a given bitmap and organisation +{ + // If there isn't a dib loaded, we don't need do all this calculating + if (m_bmpBackGround.IsEmpty() || m_DibSize.cy <= 0 || m_DibSize.cx <= 0) + return FALSE; + + BeginWaitCursor(); + + int i,j; + CRect TempDibRect(0,0,0,0); + CPalette* pOldDestPal = NULL; + CPalette* pOldSrcPal = NULL; + BOOL bResult = TRUE; + + switch(m_eWallPaperOrganisation) + { + case WP_Tile: + // create a new bitmap which is compatible with the source DC but + // which has other dimensions. We will use the changed dimensions + // to copy later one new build bitmap into a new DC. This is done + // because a memdc can only be used to copy ONE bmp into it. + m_pTotalNewBitmap = new CBitmap; + bResult = m_pTotalNewBitmap->CreateCompatibleBitmap(&m_MemDCSrc, nWidth, nHeight); + if (bResult) + { + // Get the DIB's palette, then select it into DC + if (m_pPictPalette != NULL) + { + // ... Select as background since we have + // already realized in forground if needed + pOldDestPal = m_MemDCDest.SelectPalette(m_pPictPalette, TRUE); + } + // select the compatible bmp into the new Destination memDC + CBitmap* pOldDestBitmap = m_MemDCDest.SelectObject(m_pTotalNewBitmap); + if (m_hOldDestBitmap == NULL) + m_hOldDestBitmap = (HBITMAP)pOldDestBitmap->GetSafeHandle(); + else + delete pOldDestBitmap; + + // Calculate the Tiling organisation and copy each tile to the Destination + // MemDC where we selected a bitmap in with Client Area dimensions + for (i = 0; i < nHeight; i += m_DibSize.cy) + for (j = 0; j < nWidth; j += m_DibSize.cx) + { + TempDibRect = CRect(CPoint(j, i), m_DibSize); + m_MemDCDest.BitBlt(TempDibRect.left, TempDibRect.top, + m_DibSize.cx, m_DibSize.cy, &m_MemDCSrc, 0, 0, SRCCOPY); + } + + // ... Reselect old palette + if (pOldDestPal != NULL) + { + m_MemDCDest.SelectPalette(pOldDestPal, TRUE); + } + } + + break; + case WP_Scale: + + m_pTotalNewBitmap = new CBitmap; + + // Get the DIB's palette, then select it into DC + if (m_pPictPalette != NULL) + { + // ... Select as background since we have + // already realized in forground if needed + pOldSrcPal = m_MemDCSrc.SelectPalette(m_pPictPalette, TRUE); + } + bResult = m_pTotalNewBitmap->CreateCompatibleBitmap(&m_MemDCSrc, nWidth, nHeight); + if (bResult) + { + if (m_pPictPalette != NULL) + { + // ... Select as background since we have + // already realized in forground if needed + pOldDestPal = m_MemDCDest.SelectPalette(m_pPictPalette, TRUE); + } + + // ... Make sure to use the stretching mode best for color pictures +#ifdef WIN32 + ::SetStretchBltMode(m_MemDCDest.m_hDC, COLORONCOLOR); +#else + ::SetStretchBltMode(m_MemDCDest.m_hDC, STRETCH_DELETESCANS); +#endif + + CBitmap* pOldDestBitmap = m_MemDCDest.SelectObject(m_pTotalNewBitmap); + if (m_hOldDestBitmap == NULL) + m_hOldDestBitmap = (HBITMAP)pOldDestBitmap->GetSafeHandle(); + else + delete pOldDestBitmap; + + VERIFY(m_MemDCDest.StretchBlt(0, 0, nWidth, nHeight, &m_MemDCSrc, 0, 0, + m_DibSize.cx, m_DibSize.cy, SRCCOPY)); + + // ... Reselect old palette + if (pOldDestPal != NULL) + { + m_MemDCDest.SelectPalette(pOldDestPal, TRUE); + } + } + + // ... Reselect old palette + if (pOldSrcPal != NULL) + { + m_MemDCSrc.SelectPalette(pOldSrcPal, TRUE); + } + + break; + case WP_Center: + break; + default: + break; + } + + EndWaitCursor(); + return bResult; +} + +BEGIN_MESSAGE_MAP(COXMDIClient, CWnd) + //{{AFX_MSG_MAP(COXMDIClient) + ON_WM_ERASEBKGND() + ON_WM_SIZE() + ON_MESSAGE(WM_DOMDICLTREALIZE, OnDoMDICltRealize) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +// Message handlers --------------------------------------------------------- +BOOL COXMDIClient::OnEraseBkgnd(CDC* pDC) + { + CPalette* pOldPal = NULL; + + // Erase only the area needed + // We don't need to paint a special background color, if the screen organisation + // is other than CENTER because this is the only organisation that does not + // cover the entire Client area + if (m_rgbBkColor != pDC->GetBkColor() && (m_eWallPaperOrganisation == WP_Center) || + m_bmpBackGround.IsEmpty()) + { + // Make a brush to erase the background + // + CBrush NewBrush(m_rgbBkColor); + + pDC->SetBrushOrg(0,0); + + CBrush* pOldBrush = (CBrush*)pDC->SelectObject(&NewBrush); + + // Paint the background.... + // + pDC->PatBlt(0, 0, m_sizeClient.cx, + m_sizeClient.cy,PATCOPY); + + pDC->SetBkColor(m_rgbBkColor); + + // Reselect the Old Brush + pDC->SelectObject(pOldBrush); + } + else + CWnd::OnEraseBkgnd(pDC); + + //Place the Bitmap if there is one + if (!m_bmpBackGround.IsEmpty() && !m_bFirstCreation) + { + // Get the DIB's palette, then select it into DC + if (m_pPictPalette != NULL) + { + // ... Select as background since we have + // already realized in forground if needed + pOldPal = pDC->SelectPalette(m_pPictPalette, TRUE); + if (pOldPal != NULL) + pDC->RealizePalette(); + } + + + CRect DibRect(CPoint(0,0), m_DibSize); + // centered rectangle + CRect CenteredDibRect(CPoint(m_sizeClient.cx - (m_DibSize.cx>>1), + m_sizeClient.cy - (m_DibSize.cy>>1)), + m_DibSize); + + // Paint bitmap + // + switch(m_eWallPaperOrganisation) + { + case WP_Center: + pDC->BitBlt(CenteredDibRect.left, CenteredDibRect.top, + CenteredDibRect.Width(), CenteredDibRect.Height(), + &m_MemDCSrc, 0, 0, SRCCOPY); + + break; + case WP_Tile: + case WP_Scale: + pDC->BitBlt(0, 0, + m_sizeClient.cx, m_sizeClient.cy, &m_MemDCDest, 0, 0, SRCCOPY); + break; + default: + break; + } + + // ... Reselect old palette + if (pOldPal != NULL) + { + pDC->SelectPalette(pOldPal, TRUE); + } + + } + + return TRUE; + + } + +WNDPROC COXMDIClient::pfnSuper = NULL; + +WNDPROC* COXMDIClient::GetSuperWndProcAddr() + { + return &pfnSuper; + } + +void COXMDIClient::OnSize(UINT nType, int cx, int cy) + { + CWnd::OnSize(nType, cx, cy); + + // if the app is just starting up, save the window + // dimensions and get out + + // This is just done once at the first time this message is processed + if (m_bFirstCreation) + { + // make the memory dc equal to the clientscreen dc + CClientDC dc(this); + if (m_MemDCSrc.CreateCompatibleDC(&dc) && m_MemDCDest.CreateCompatibleDC(&dc)) + { + m_bFirstCreation = FALSE; + } + } + + if ((m_sizeClient.cx == 0) && (m_sizeClient.cy==0)) + { + m_sizeClient.cx = cx; + m_sizeClient.cy = cy; + + return; + } + + // if the size hasn't changed, break and pass to default + + if ((m_sizeClient.cx == cx) && ( m_sizeClient.cy == cy)) + return; + + // window size has changed so save new dimensions and force + // entire background to redraw, including icon backgrounds + + m_sizeClient.cx = cx; + m_sizeClient.cy = cy; + + // build the memDC that will hold the entire clientscreen image + if (!PrepareMemDC(cx, cy)) + return; + + switch(m_eWallPaperOrganisation) + { + case WP_Tile: + break; + case WP_Scale: + case WP_Center: + RedrawWindow(NULL, NULL, + RDW_INVALIDATE|RDW_ERASE|RDW_ERASENOW); + break; + default: + break; + } + + return; + } + +LRESULT COXMDIClient::OnDoMDICltRealize(WPARAM wParam, LPARAM) + { + if ((HWND)wParam == m_hWnd) + return 0L; + + if ((m_eWallPaperOrganisation == WP_Center && m_bmpBackGround.IsEmpty()) + || !m_bmpBackGround.IsEmpty()) + { + TRACE(_T("In COXMDIClient::OnDoRealize\n")); + + CPalette* pOldPal = NULL; + + CFrameWnd* pAppFrame = (CFrameWnd*)GetParent(); + ASSERT(pAppFrame->IsKindOf(RUNTIME_CLASS( CFrameWnd ))); + + CClientDC appDC(pAppFrame); + int nColorsChanged(0); + // Get the DIB's palette, then select it into DC + if (m_pPictPalette != NULL) + { + // ... Select as background because wallpaper is always background + pOldPal = appDC.SelectPalette(m_pPictPalette, m_bBackGround); + + // match the selected palette to the system palette when we get active + if (pOldPal != NULL) + nColorsChanged = appDC.RealizePalette(); + } + + if (nColorsChanged > 0) + Invalidate(TRUE); + + if (pOldPal != NULL) + // ... Reselect old palette + appDC.SelectPalette(pOldPal, TRUE); + } + + return 0L; + } diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/oxmdisp.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/oxmdisp.cpp new file mode 100644 index 0000000..2c924b2 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/archive/source/oxmdisp.cpp @@ -0,0 +1,1682 @@ +// ========================================================================== +// Class Specification : MAPI Framework +// COXMSession; +// COXMInfoStores; +// COXMInfoStore; +// COXMFolders; +// COXMFolder; +// COXMMessages; +// COXMMessage; +// COXMFields; +// COXMField; +// COXMRecipients; +// COXMRecipient; +// COXMAttachments; +// COXMAttachment; +// COXMAddressEntry; + +// ========================================================================== + +// Header file : oxmdisp.h + +// This software along with its related components, documentation and files ("The Libraries") +// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is +// governed by a software license agreement ("Agreement"). Copies of the Agreement are +// available at The Code Project (www.codeproject.com), as part of the package you downloaded +// to obtain this file, or directly from our office. For a copy of the license governing +// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. + +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include "oxmdisp.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + + +///////////////////////////////////////////////////////////////////////////// +// COXMSession class + +CString COXMSession::GetApplication() +{ + VARIANT result; + GetProperty(0x14, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +EOXMClass COXMSession::GetClass() +{ + VARIANT result; + GetProperty(0x6, VT_VARIANT, (void*)&result); + return (EOXMClass) result.lVal; +} + +LPUNKNOWN COXMSession::GetMapiobject() +{ + VARIANT result; + GetProperty(0x31, VT_VARIANT, (void*)&result); + return result.punkVal; +} + +void COXMSession::SetMapiobject(LPUNKNOWN pSession) +{ + COleVariant vSession; + vSession.vt = VT_UNKNOWN; + vSession.punkVal = pSession; + SetProperty(0x31, VT_VARIANT, &vSession); +} + +CString COXMSession::GetVersion() +{ + VARIANT result; + GetProperty(0x2c, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +CString COXMSession::GetOperatingSystem() +{ + VARIANT result; + GetProperty(0x18, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +CString COXMSession::GetName() +{ + VARIANT result; + GetProperty(0x17, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +COXMAddressEntry COXMSession::GetCurrentUser() +{ + COXMAddressEntry entry; + VARIANT result; + GetProperty(0x1, VT_VARIANT, (void*)&result); + entry.m_bCurrentSessionUser = TRUE; + entry.AttachDispatch(result.pdispVal); + return entry; +} + +COXMFolder COXMSession::GetInbox() +{ + VARIANT result; + GetProperty(0xf, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +COXMFolder COXMSession::GetOutbox() +{ + VARIANT result; + GetProperty(0x10, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +COXMInfoStores COXMSession::GetInfoStores() +{ + VARIANT result; + GetProperty(0x39, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + + +void COXMSession::Logon(CString sProfileName /*= _T("")*/, CString sProfilePassword /*= _T("")*/, BOOL bShowDialog /*= TRUE*/, BOOL bNewSession /*= FALSE*/, HWND hParentWindow /*= NULL*/) +{ + VARIANT result; + COleVariant vProfileName; + if (!sProfileName.IsEmpty()) + vProfileName = sProfileName; + COleVariant vProfilePassword; + if (!sProfilePassword.IsEmpty()) + vProfilePassword = sProfilePassword; + COleVariant vShowDialog((short)bShowDialog, VT_BOOL); + COleVariant vNewSession((short)bNewSession, VT_BOOL); + COleVariant vParentWindow((LONG) hParentWindow); + static BYTE parms[] = + VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT; + InvokeHelper(0x77, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vProfileName, &vProfilePassword, &vShowDialog, &vNewSession, &vParentWindow); +} + +void COXMSession::Logoff() +{ + VARIANT result; + InvokeHelper(0x76, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL); +} + +COXMInfoStore COXMSession::GetInfoStore(CString sStoreID) +{ + VARIANT result; + COleVariant vStoreID(sStoreID); + + static BYTE parms[] = + VTS_VARIANT; + InvokeHelper(0x7a, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vStoreID); + return result.pdispVal; +} + +COXMFolder COXMSession::GetFolder(CString sFolderID, CString sStoreID /*=_T("")*/) +{ + VARIANT result; + COleVariant vFolderID(sFolderID); + COleVariant vStoreID; + + if (!sStoreID.IsEmpty()) + vStoreID = sStoreID; + + static BYTE parms[] = + VTS_VARIANT VTS_VARIANT; + InvokeHelper(0x74, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vFolderID, &vStoreID); + return result.pdispVal; +} + +COXMMessage COXMSession::GetMessage(CString sMessageID, CString sStoreID /*=NULL*/) +{ + VARIANT result; + COleVariant vMessageID(sMessageID); + COleVariant vStoreID; + if (!sStoreID.IsEmpty()) + vStoreID = sStoreID; + static BYTE parms[] = + VTS_VARIANT VTS_VARIANT; + InvokeHelper(0x75, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vMessageID, &vStoreID); + return result.pdispVal; +} + +COXMAddressEntry COXMSession::GetAddressEntry(CString sEntryID) +{ + VARIANT result; + COleVariant vEntryID(sEntryID); + static BYTE parms[] = + VTS_VARIANT; + InvokeHelper(0x72, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vEntryID); + return result.pdispVal; +} + +COXMRecipients COXMSession::AddressBook(LPDISPATCH pRecipients /*= NULL*/, + CString sTitle /*= _T("")*/, + BOOL bOneAddress /*= FALSE*/, + BOOL bForceResolution /*= TRUE*/, + LONG nRecipLists /*= 0*/, + CString sTOLabel /*= _T(")*/, + CString sCCLabel /*= _T("")*/, + CString sBCCLabel /*= _T("")*/, + HWND hParentWindow /*= NULL*/) +{ + VARIANT result; + VARIANT vRecipients; + vRecipients.vt = VT_DISPATCH; + vRecipients.pdispVal = pRecipients; + COleVariant vTitle(sTitle); + COleVariant vOneAddress((short)bOneAddress, VT_BOOL); + COleVariant vForceResolution((short)bForceResolution, VT_BOOL); + COleVariant vRecipLists(nRecipLists); + COleVariant vTOLabel; + if (!sTOLabel.IsEmpty()) + vTOLabel = sTOLabel; + COleVariant vCCLabel; + if (!sCCLabel.IsEmpty()) + vCCLabel = sCCLabel; + COleVariant vBCCLabel; + if (!sBCCLabel.IsEmpty()) + vBCCLabel = sBCCLabel; + COleVariant vParentWindow((LONG)hParentWindow); + + static BYTE parms[] = + VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT; + InvokeHelper(0x65, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vRecipients, &vTitle, &vOneAddress, &vForceResolution, &vRecipLists, &vTOLabel, &vCCLabel, &vBCCLabel, &vParentWindow); + return result.pdispVal; +} + + +///////////////////////////////////////////////////////////////////////////// +// COXMInfoStores Class + +CString COXMInfoStores::GetApplication() +{ + VARIANT result; + GetProperty(0x14, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +EOXMClass COXMInfoStores::GetClass() +{ + VARIANT result; + GetProperty(0x6, VT_VARIANT, (void*)&result); + return (EOXMClass) result.lVal; +} + +LONG COXMInfoStores::GetCount() +{ + VARIANT result; + GetProperty(0x9, VT_VARIANT, (void*)&result); + return result.lVal; +} + +COXMInfoStore COXMInfoStores::GetItem(LONG nItem) +{ + COleVariant vItem(nItem); + VARIANT result; + static BYTE parms[] = + VTS_VARIANT; + InvokeHelper(0x15, DISPATCH_PROPERTYGET, VT_VARIANT, (void*)&result, parms, + &vItem); + return result.pdispVal; +} + + +///////////////////////////////////////////////////////////////////////////// +// COXMInfoStore Class + +CString COXMInfoStore::GetApplication() +{ + VARIANT result; + GetProperty(0x14, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +COXMInfoStores COXMInfoStore::GetParent() +{ + VARIANT result; + GetProperty(0x19, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +COXMSession COXMInfoStore::GetSession() +{ + VARIANT result; + GetProperty(0x22, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +EOXMClass COXMInfoStore::GetClass() +{ + VARIANT result; + GetProperty(0x6, VT_VARIANT, (void*)&result); + return (EOXMClass) result.lVal; +} + +LONG COXMInfoStore::GetIndex() +{ + VARIANT result; + GetProperty(0x13, VT_VARIANT, (void*)&result); + return result.lVal; +} + +CString COXMInfoStore::GetName() +{ + VARIANT result; + GetProperty(0x17, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +CString COXMInfoStore::GetId() +{ + VARIANT result; + GetProperty(0xe, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +CString COXMInfoStore::GetProviderName() +{ + VARIANT result; + GetProperty(0x3a, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +COXMFolder COXMInfoStore::GetRootFolder() +{ + VARIANT result; + GetProperty(0x3b, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +///////////////////////////////////////////////////////////////////////////// +// COXMFolder Class + +CString COXMFolder::GetApplication() +{ + VARIANT result; + GetProperty(0x14, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +LPDISPATCH COXMFolder::GetParent() +{ + VARIANT result; + GetProperty(0x19, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +COXMSession COXMFolder::GetSession() +{ + VARIANT result; + GetProperty(0x22, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +EOXMClass COXMFolder::GetClass() +{ + VARIANT result; + GetProperty(0x6, VT_VARIANT, (void*)&result); + return (EOXMClass) result.lVal; +} + +LPUNKNOWN COXMFolder::GetMapiobject() +{ + VARIANT result; + GetProperty(0x31, VT_VARIANT, (void*)&result); + return result.punkVal; +} + +void COXMFolder::SetMapiobject(LPUNKNOWN punkVal) +{ + COleVariant vProp; + vProp.vt = VT_UNKNOWN; + vProp.punkVal = punkVal; + SetProperty(0x31, VT_VARIANT, &vProp); +} + +CString COXMFolder::GetName() +{ + VARIANT result; + GetProperty(0x17, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +void COXMFolder::SetName(CString sName) +{ + COleVariant propVal(sName); + SetProperty(0x17, VT_VARIANT, &propVal); +} + +CString COXMFolder::GetId() +{ + VARIANT result; + GetProperty(0xe, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +CString COXMFolder::GetFolderID() +{ + VARIANT result; + GetProperty(0x33, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +CString COXMFolder::GetStoreID() +{ + VARIANT result; + GetProperty(0x34, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +COXMFolders COXMFolder::GetFolders() +{ + VARIANT result; + GetProperty(0xd, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +COXMMessages COXMFolder::GetMessages() +{ + VARIANT result; + GetProperty(0x16, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +COXMFields COXMFolder::GetFields() +{ + VARIANT result; + GetProperty(0xc, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +void COXMFolder::Update(BOOL bMakePermanent /*= TRUE*/, BOOL bRrefreshObject /*= FALSE*/) +{ + COleVariant vMakePermanent((short) bMakePermanent, VT_BOOL); + COleVariant vRefreshObject((short) bRrefreshObject, VT_BOOL); + VARIANT result; + static BYTE parms[] = + VTS_VARIANT VTS_VARIANT; + InvokeHelper(0x84, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vMakePermanent, &vRefreshObject); +} + + +///////////////////////////////////////////////////////////////////////////// +// COXMFolders properties + +CString COXMFolders::GetApplication() +{ + VARIANT result; + GetProperty(0x14, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +COXMFolder COXMFolders::GetParent() +{ + VARIANT result; + GetProperty(0x19, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +COXMSession COXMFolders::GetSession() +{ + VARIANT result; + GetProperty(0x22, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +EOXMClass COXMFolders::GetClass() +{ + VARIANT result; + GetProperty(0x6, VT_VARIANT, (void*)&result); + return (EOXMClass) result.lVal; +} + +COXMFolder COXMFolders::GetFirst() +{ + VARIANT result; + InvokeHelper(0x6d, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL); + return result.pdispVal; +} + +COXMFolder COXMFolders::GetNext() +{ + VARIANT result; + InvokeHelper(0x6f, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL); + return result.pdispVal; +} + +COXMFolder COXMFolders::GetLast() +{ + VARIANT result; + InvokeHelper(0x6e, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL); + return result.pdispVal; +} + +COXMFolder COXMFolders::GetPrevious() +{ + VARIANT result; + InvokeHelper(0x70, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL); + return result.pdispVal; +} + + +///////////////////////////////////////////////////////////////////////////// +// COXMMessages class + +CString COXMMessages::GetApplication() +{ + VARIANT result; + GetProperty(0x14, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +COXMFolder COXMMessages::GetParent() +{ + VARIANT result; + GetProperty(0x19, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +COXMSession COXMMessages::GetSession() +{ + VARIANT result; + GetProperty(0x22, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +EOXMClass COXMMessages::GetClass() +{ + VARIANT result; + GetProperty(0x6, VT_VARIANT, (void*)&result); + return (EOXMClass) result.lVal; +} + +COXMMessage COXMMessages::Add(CString sSubject /*= _T("")*/, + CString sText /*= _T("")*/, + CString sType /*= _T("")*/, + LONG nImportance /*= 1*/) +{ + VARIANT result; + COleVariant vSubject; + if (!sSubject.IsEmpty()) + vSubject = sSubject; + COleVariant vText; + if (!sText.IsEmpty()) + vText = sText; + COleVariant vType; + if (!sType.IsEmpty()) + vType = sType; + COleVariant vImportance(nImportance); + + static BYTE parms[] = + VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT; + InvokeHelper(0x64, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vSubject, &vText, &vType, &vImportance); + return result.pdispVal; +} + +void COXMMessages::Delete(BOOL bSubFolders /*= TRUE*/) +{ + COleVariant vSubFolders((short)bSubFolders, VT_BOOL); + VARIANT result; + static BYTE parms[] = + VTS_VARIANT; + InvokeHelper(0x6a, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vSubFolders); +} + +void COXMMessages::Sort(LONG nSortOrder) +{ + COleVariant vSortOrder(nSortOrder); + VARIANT result; + static BYTE parms[] = + VTS_VARIANT; + InvokeHelper(0x86, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vSortOrder); +} + +COXMMessage COXMMessages::GetFirst(CString sFilter /*= _T("")*/) +{ + COleVariant vFilter; + if (!sFilter.IsEmpty()) + vFilter = sFilter; + VARIANT result; + static BYTE parms[] = + VTS_VARIANT; + InvokeHelper(0x6d, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vFilter); + return result.pdispVal; +} + +COXMMessage COXMMessages::GetNext() +{ + VARIANT result; + InvokeHelper(0x6f, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL); + return result.pdispVal; +} + +COXMMessage COXMMessages::GetLast(CString sFilter /*= _T("")*/) +{ + COleVariant vFilter; + if (!sFilter.IsEmpty()) + vFilter = sFilter; + VARIANT result; + static BYTE parms[] = + VTS_VARIANT; + InvokeHelper(0x6e, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vFilter); + return result.pdispVal; +} + +COXMMessage COXMMessages::GetPrevious() +{ + VARIANT result; + InvokeHelper(0x70, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL); + return result.pdispVal; +} + + +///////////////////////////////////////////////////////////////////////////// +// COXMMessage class + +CString COXMMessage::GetApplication() +{ + VARIANT result; + GetProperty(0x14, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +COXMMessages COXMMessage::GetParent() +{ + VARIANT result; + GetProperty(0x19, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +COXMSession COXMMessage::GetSession() +{ + VARIANT result; + GetProperty(0x22, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +EOXMClass COXMMessage::GetClass() +{ + VARIANT result; + GetProperty(0x6, VT_VARIANT, (void*)&result); + return (EOXMClass) result.lVal; +} + +LPUNKNOWN COXMMessage::GetMapiobject() +{ + VARIANT result; + GetProperty(0x31, VT_VARIANT, (void*)&result); + return result.punkVal; +} + +void COXMMessage::SetMapiobject(LPUNKNOWN pSession) +{ + COleVariant vSession; + vSession.vt = VT_UNKNOWN; + vSession.punkVal = pSession; + SetProperty(0x31, VT_VARIANT, &vSession); +} + +CString COXMMessage::GetId() +{ + VARIANT result; + GetProperty(0xe, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +CString COXMMessage::GetFolderID() +{ + VARIANT result; + GetProperty(0x33, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +CString COXMMessage::GetStoreID() +{ + VARIANT result; + GetProperty(0x34, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +CString COXMMessage::GetType() +{ + VARIANT result; + GetProperty(0x11, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +void COXMMessage::SetType(CString sType) +{ + COleVariant propVal(sType); + SetProperty(0x11, VT_VARIANT, &propVal); +} + +LONG COXMMessage::GetSize() +{ + VARIANT result; + GetProperty(0x24, VT_VARIANT, (void*)&result); + return result.lVal; +} + +LONG COXMMessage::GetImportance() +{ + VARIANT result; + GetProperty(0x1b, VT_VARIANT, (void*)&result); + return result.lVal; +} + +void COXMMessage::SetImportance(LONG nImportance) +{ + COleVariant propVal(nImportance); + SetProperty(0x1b, VT_VARIANT, &propVal); +} + +CString COXMMessage::GetSubject() +{ + VARIANT result; + GetProperty(0x26, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +void COXMMessage::SetSubject(CString sSubject) +{ + COleVariant propVal(sSubject); + SetProperty(0x26, VT_VARIANT, &propVal); +} + +COXMAddressEntry COXMMessage::GetSender() +{ + VARIANT result; + GetProperty(0x20, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +COleDateTime COXMMessage::GetTimeSent() +{ + VARIANT result; + GetProperty(0x29, VT_VARIANT, (void*)&result); + return result.date; +} + +void COXMMessage::SetTimeSent(COleDateTime tDate) +{ + COleVariant propVal(tDate); + SetProperty(0x29, VT_VARIANT, &propVal); +} + +COleDateTime COXMMessage::GetTimeReceived() +{ + VARIANT result; + GetProperty(0x28, VT_VARIANT, (void*)&result); + return result.date; +} + +void COXMMessage::SetTimeReceived(COleDateTime tDate) +{ + COleVariant propVal(tDate); + SetProperty(0x28, VT_VARIANT, &propVal); +} + +CString COXMMessage::GetText() +{ + VARIANT result; + GetProperty(0x27, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +void COXMMessage::SetText(CString sText) +{ + COleVariant propVal(sText); + SetProperty(0x27, VT_VARIANT, &propVal); +} + +BOOL COXMMessage::GetSent() +{ + VARIANT result; + GetProperty(0x21, VT_VARIANT, (void*)&result); + return V_BOOL(&result); +} + +void COXMMessage::SetSent(BOOL bSent) +{ + COleVariant propVal((short) bSent, VT_BOOL); + SetProperty(0x21, VT_VARIANT, &propVal); +} + +BOOL COXMMessage::GetSubmitted() +{ + VARIANT result; + GetProperty(0x12, VT_VARIANT, (void*)&result); + return V_BOOL(&result); +} + +void COXMMessage::SetSubmitted(BOOL bFlag) +{ + COleVariant propVal((short) bFlag, VT_BOOL); + SetProperty(0x12, VT_VARIANT, &propVal); +} + +BOOL COXMMessage::GetUnread() +{ + VARIANT result; + GetProperty(0x2a, VT_VARIANT, (void*)&result); + return V_BOOL(&result); +} + +void COXMMessage::SetUnread(BOOL bFlag) +{ + COleVariant propVal((short) bFlag, VT_BOOL); + SetProperty(0x2a, VT_VARIANT, &propVal); +} + +BOOL COXMMessage::GetSigned() +{ + VARIANT result; + GetProperty(0x23, VT_VARIANT, (void*)&result); + return V_BOOL(&result); +} + +void COXMMessage::SetSigned(BOOL bFlag) +{ + COleVariant propVal((short) bFlag, VT_BOOL); + SetProperty(0x23, VT_VARIANT, &propVal); +} + +BOOL COXMMessage::GetEncrypted() +{ + VARIANT result; + GetProperty(0xa, VT_VARIANT, (void*)&result); + return V_BOOL(&result); +} + +void COXMMessage::SetEncrypted(BOOL bFlag) +{ + COleVariant propVal((short) bFlag, VT_BOOL); + SetProperty(0xa, VT_VARIANT, &propVal); +} + +BOOL COXMMessage::GetReadReceipt() +{ + VARIANT result; + GetProperty(0x1e, VT_VARIANT, (void*)&result); + return V_BOOL(&result); +} + +void COXMMessage::SetReadReceipt(BOOL bFlag) +{ + COleVariant propVal((short) bFlag, VT_BOOL); + SetProperty(0x1e, VT_VARIANT, &propVal); +} + +BOOL COXMMessage::GetDeliveryReceipt() +{ + VARIANT result; + GetProperty(0x32, VT_VARIANT, (void*)&result); + return V_BOOL(&result); +} + +void COXMMessage::SetDeliveryReceipt(BOOL bFlag) +{ + COleVariant propVal((short) bFlag, VT_BOOL); + SetProperty(0x32, VT_VARIANT, &propVal); +} + +CString COXMMessage::GetConversationIndex() +{ + VARIANT result; + GetProperty(0x37, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +void COXMMessage::SetConversationIndex(CString sValue) +{ + COleVariant propVal(sValue); + SetProperty(0x37, VT_VARIANT, &propVal); +} + +CString COXMMessage::GetConversationTopic() +{ + VARIANT result; + GetProperty(0x36, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +void COXMMessage::SetConversationTopic(CString sValue) +{ + COleVariant propVal(sValue); + SetProperty(0x36, VT_VARIANT, &propVal); +} + +COXMFields COXMMessage::GetFields() +{ + VARIANT result; + GetProperty(0xc, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +COXMRecipients COXMMessage::GetRecipients() +{ + VARIANT result; + GetProperty(0x1c, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +COXMAttachments COXMMessage::GetAttachments() +{ + VARIANT result; + GetProperty(0x5, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +void COXMMessage::Delete() +{ + VARIANT result; + InvokeHelper(0x6a, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL); +} + +void COXMMessage::Update(BOOL bMakePermanent /*= TRUE*/, BOOL bRefreshObject /*= FALSE*/) +{ + COleVariant vMakePermanent((short) bMakePermanent, VT_BOOL); + COleVariant vRefreshObject((short)bRefreshObject, VT_BOOL); + VARIANT result; + static BYTE parms[] = + VTS_VARIANT VTS_VARIANT; + InvokeHelper(0x84, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vMakePermanent, &vRefreshObject); +} + +void COXMMessage::Send(BOOL bSaveCopy /*= TRUE*/, BOOL bShowDialog /*= FALSE*/, HWND hParentWindow /*= NULL*/) +{ + COleVariant vSaveCopy((short) bSaveCopy, VT_BOOL); + COleVariant vShowDialog((short) bShowDialog, VT_BOOL); + COleVariant vParentWindow((LONG) hParentWindow); + VARIANT result; + static BYTE parms[] = + VTS_VARIANT VTS_VARIANT VTS_VARIANT; + InvokeHelper(0x83, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vSaveCopy, &vShowDialog, &vParentWindow); +} + +void COXMMessage::Options(HWND hParentWindow) +{ + COleVariant vParentWindow((LONG) hParentWindow); + VARIANT result; + static BYTE parms[] = + VTS_VARIANT; + InvokeHelper(0x7d, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vParentWindow); +} + + +///////////////////////////////////////////////////////////////////////////// +// COXMFields Class + +CString COXMFields::GetApplication() +{ + VARIANT result; + GetProperty(0x14, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +LPDISPATCH COXMFields::GetParent() +{ + VARIANT result; + GetProperty(0x19, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +COXMSession COXMFields::GetSession() +{ + VARIANT result; + GetProperty(0x22, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +EOXMClass COXMFields::GetClass() +{ + VARIANT result; + GetProperty(0x6, VT_VARIANT, (void*)&result); + return (EOXMClass) result.lVal; +} + +LONG COXMFields::GetCount() +{ + VARIANT result; + GetProperty(0x9, VT_VARIANT, (void*)&result); + return result.lVal; +} + +COXMField COXMFields::GetItem(COleVariant vItem, CString sPropSetID /* = _T("")*/) +{ + COleVariant vPropSetID; + if (!sPropSetID.IsEmpty()) + vPropSetID = sPropSetID; + VARIANT result; + static BYTE parms[] = + VTS_VARIANT VTS_BSTR; + InvokeHelper(0x15, DISPATCH_PROPERTYGET, VT_VARIANT, (void*)&result, parms, + &vItem, vPropSetID); + return result.pdispVal; +} + +void COXMFields::SetNamespace(CString sValue) +{ + COleVariant vPropsetID(sValue); + VARIANT result; + static BYTE parms[] = + VTS_VARIANT; + InvokeHelper(0x7b, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vPropsetID); +} + +COXMField COXMFields::Add(CString sName, COleVariant value, CString sPropsetID /*= _T("")*/) +{ + ASSERT( value.vt == VT_NULL || + value.vt == VT_I2 || + value.vt == VT_I4 || + value.vt == VT_R4 || + value.vt == VT_R8 || + value.vt == VT_CY || + value.vt == VT_DATE || + value.vt == VT_BSTR || + value.vt == VT_BOOL || + value.vt == VT_UNKNOWN || + value.vt == VT_BLOB); + COleVariant vName(sName); + COleVariant vClass((LONG) value.vt); + COleVariant vPropsetID; + if (!sPropsetID.IsEmpty()) + vPropsetID = sPropsetID; + VARIANT result; + static BYTE parms[] = + VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT; + InvokeHelper(0x64, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vName, &vClass, &value, &vPropsetID); + return result.pdispVal; +} + +void COXMFields::Delete() +{ + VARIANT result; + InvokeHelper(0x6a, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL); +} + + +///////////////////////////////////////////////////////////////////////////// +// COXMField properties + +CString COXMField::GetApplication() +{ + VARIANT result; + GetProperty(0x14, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +COXMFields COXMField::GetParent() +{ + VARIANT result; + GetProperty(0x19, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +COXMSession COXMField::GetSession() +{ + VARIANT result; + GetProperty(0x22, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +EOXMClass COXMField::GetClass() +{ + VARIANT result; + GetProperty(0x6, VT_VARIANT, (void*)&result); + return (EOXMClass) result.lVal; +} + +LONG COXMField::GetIndex() +{ + VARIANT result; + GetProperty(0x13, VT_VARIANT, (void*)&result); + return result.lVal; +} + +LONG COXMField::GetType() +{ + VARIANT result; + GetProperty(0x11, VT_VARIANT, (void*)&result); + return result.lVal; +} + +CString COXMField::GetName() +{ + VARIANT result; + GetProperty(0x17, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +LONG COXMField::GetId() +{ + VARIANT result; + GetProperty(0xe, VT_VARIANT, (void*)&result); + return result.lVal; +} + +COleVariant COXMField::GetValue() +{ + VARIANT result; + GetProperty(0x2b, VT_VARIANT, (void*)&result); + return result; +} + +void COXMField::SetValue(COleVariant propVal) +{ + COleVariant vType((LONG) propVal.vt); + SetProperty(0x11, VT_VARIANT, &vType); + SetProperty(0x2b, VT_VARIANT, &propVal); +} + +void COXMField::Delete() +{ + VARIANT result; + InvokeHelper(0x6a, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL); +} + +void COXMField::ReadFromFile(CString sPath) +{ + COleVariant vFileName(sPath); + VARIANT result; + static BYTE parms[] = + VTS_VARIANT; + InvokeHelper(0x7f, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vFileName); +} + +void COXMField::WriteToFile(CString sPath) +{ + COleVariant vFileName(sPath); + VARIANT result; + static BYTE parms[] = + VTS_VARIANT; + InvokeHelper(0x85, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vFileName); +} + + +///////////////////////////////////////////////////////////////////////////// +// COXMRecipients Class + +CString COXMRecipients::GetApplication() +{ + VARIANT result; + GetProperty(0x14, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +COXMFolder COXMRecipients::GetParent() +{ + VARIANT result; + GetProperty(0x19, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +COXMSession COXMRecipients::GetSession() +{ + VARIANT result; + GetProperty(0x22, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +EOXMClass COXMRecipients::GetClass() +{ + VARIANT result; + GetProperty(0x6, VT_VARIANT, (void*)&result); + return (EOXMClass) result.lVal; +} + +COXMRecipient COXMRecipients::GetItem(LONG nIndex) +{ + COleVariant vItem(nIndex); + VARIANT result; + static BYTE parms[] = + VTS_VARIANT; + InvokeHelper(0x15, DISPATCH_PROPERTYGET, VT_VARIANT, (void*)&result, parms, + &vItem); + return result.pdispVal; +} + +LONG COXMRecipients::GetCount() +{ + VARIANT result; + GetProperty(0x9, VT_VARIANT, (void*)&result); + return result.lVal; +} + +BOOL COXMRecipients::GetResolved() +{ + VARIANT result; + GetProperty(0x1d, VT_VARIANT, (void*)&result); + return V_BOOL(&result); +} + +COXMRecipient COXMRecipients::Add(CString sName /*= _T("")*/, CString sAddress /*= _T("")*/, EOXMRecipientType eType/*= oxmrtTo*/, CString sEntryID /*= _T("")*/) +{ + COleVariant vName; + if (!sName.IsEmpty()) + vName = sName; + COleVariant vAddress; + if (!sAddress.IsEmpty()) + vAddress = sAddress; + COleVariant vType((LONG) eType); + COleVariant vEntryID; + if (!sEntryID.IsEmpty()) + vEntryID = sEntryID; + VARIANT result; + static BYTE parms[] = + VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT; + InvokeHelper(0x64, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vName, &vAddress, &vType, &vEntryID); + return result.pdispVal; +} + +void COXMRecipients::Delete() +{ + VARIANT result; + InvokeHelper(0x6a, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL); +} + +void COXMRecipients::Resolve(BOOL bShowDialog) +{ + COleVariant vShowDialog((short) bShowDialog, VT_BOOL); + VARIANT result; + static BYTE parms[] = + VTS_VARIANT; + InvokeHelper(0x82, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vShowDialog); +} + + +///////////////////////////////////////////////////////////////////////////// +// COXMRecipient properties + +CString COXMRecipient::GetApplication() +{ + VARIANT result; + GetProperty(0x14, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +COXMRecipients COXMRecipient::GetParent() +{ + VARIANT result; + GetProperty(0x19, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +COXMSession COXMRecipient::GetSession() +{ + VARIANT result; + GetProperty(0x22, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +EOXMClass COXMRecipient::GetClass() +{ + VARIANT result; + GetProperty(0x6, VT_VARIANT, (void*)&result); + return (EOXMClass) result.lVal; +} + +LONG COXMRecipient::GetIndex() +{ + VARIANT result; + GetProperty(0x13, VT_VARIANT, (void*)&result); + return result.lVal; +} + +EOXMDisplayType COXMRecipient::GetDisplayType() +{ + VARIANT result; + GetProperty(0x38, VT_VARIANT, (void*)&result); + return (EOXMDisplayType) result.lVal; +} + +CString COXMRecipient::GetName() +{ + VARIANT result; + GetProperty(0x17, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +void COXMRecipient::SetName(CString sValue) +{ + COleVariant propVal(sValue); + SetProperty(0x17, VT_VARIANT, &propVal); +} + +EOXMRecipientType COXMRecipient::GetType() +{ + VARIANT result; + GetProperty(0x11, VT_VARIANT, (void*)&result); + return (EOXMRecipientType) result.lVal; +} + +void COXMRecipient::SetType(EOXMRecipientType eValue) +{ + COleVariant propVal((LONG) eValue); + SetProperty(0x11, VT_VARIANT, &propVal); +} + +CString COXMRecipient::GetAddress() +{ + VARIANT result; + GetProperty(0x2, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +void COXMRecipient::SetAddress(CString sValue) +{ + COleVariant propVal(sValue); + SetProperty(0x2, VT_VARIANT, &propVal); +} + +COXMAddressEntry COXMRecipient::GetAddressEntry() +{ + VARIANT result; + GetProperty(0x35, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +void COXMRecipient::SetAddressEntry(LPDISPATCH pAddressEntry) +{ + VARIANT propVal; + propVal.vt = VT_DISPATCH; + propVal.pdispVal = pAddressEntry; + SetProperty(0x35, VT_VARIANT, &propVal); +} + +void COXMRecipient::Delete() +{ + VARIANT result; + InvokeHelper(0x6a, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL); +} + +void COXMRecipient::Resolve(BOOL bShowDialog) +{ + COleVariant vShowDialog((short) bShowDialog, VT_BOOL); + VARIANT result; + static BYTE parms[] = + VTS_VARIANT; + InvokeHelper(0x82, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vShowDialog); +} + + +///////////////////////////////////////////////////////////////////////////// +// COXMAttachments Class + +CString COXMAttachments::GetApplication() +{ + VARIANT result; + GetProperty(0x14, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +COXMMessage COXMAttachments::GetParent() +{ + VARIANT result; + GetProperty(0x19, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +COXMSession COXMAttachments::GetSession() +{ + VARIANT result; + GetProperty(0x22, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +EOXMClass COXMAttachments::GetClass() +{ + VARIANT result; + GetProperty(0x6, VT_VARIANT, (void*)&result); + return (EOXMClass) result.lVal; +} + +COXMAttachment COXMAttachments::GetItem(LONG nIndex) +{ + COleVariant vItem(nIndex); + VARIANT result; + static BYTE parms[] = + VTS_VARIANT; + InvokeHelper(0x15, DISPATCH_PROPERTYGET, VT_VARIANT, (void*)&result, parms, + &vItem); + return result.pdispVal; +} + +LONG COXMAttachments::GetCount() +{ + VARIANT result; + GetProperty(0x9, VT_VARIANT, (void*)&result); + return result.lVal; +} + +COXMAttachment COXMAttachments::Add(CString sName /*= _T("")*/, LONG nPosition /*= 0*/, EOXMAttachmentType eType /*= oxmatFileData*/, CString sSource /*= _T("")*/) +{ + COleVariant vName; + if (!sName.IsEmpty()) + vName = sName; + COleVariant vPosition(nPosition); + COleVariant vType((LONG) eType); + COleVariant vSource; + if (!sSource.IsEmpty()) + vSource = sSource; + VARIANT result; + static BYTE parms[] = + VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT; + InvokeHelper(0x64, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vName, &vPosition, &vType, &vSource); + return result.pdispVal; +} + +void COXMAttachments::Delete() +{ + VARIANT result; + InvokeHelper(0x6a, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL); +} + + +///////////////////////////////////////////////////////////////////////////// +// COXMAttachment properties + +CString COXMAttachment::GetApplication() +{ + VARIANT result; + GetProperty(0x14, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +COXMAttachments COXMAttachment::GetParent() +{ + VARIANT result; + GetProperty(0x19, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +COXMSession COXMAttachment::GetSession() +{ + VARIANT result; + GetProperty(0x22, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +EOXMClass COXMAttachment::GetClass() +{ + VARIANT result; + GetProperty(0x6, VT_VARIANT, (void*)&result); + return (EOXMClass) result.lVal; +} + +CString COXMAttachment::GetName() +{ + VARIANT result; + GetProperty(0x17, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +void COXMAttachment::SetName(CString sValue) +{ + COleVariant propVal(sValue); + SetProperty(0x17, VT_VARIANT, &propVal); +} + +EOXMAttachmentType COXMAttachment::GetType() +{ + VARIANT result; + GetProperty(0x11, VT_VARIANT, (void*)&result); + return (EOXMAttachmentType) result.lVal; +} + +void COXMAttachment::SetType(EOXMAttachmentType eValue) +{ + COleVariant propVal((LONG) eValue); + SetProperty(0x11, VT_VARIANT, &propVal); +} + +LONG COXMAttachment::GetIndex() +{ + VARIANT result; + GetProperty(0x13, VT_VARIANT, (void*)&result); + return result.lVal; +} + +LONG COXMAttachment::GetPosition() +{ + VARIANT result; + GetProperty(0x1a, VT_VARIANT, (void*)&result); + return result.lVal; +} + +void COXMAttachment::SetPosition(LONG nValue) +{ + COleVariant propVal(nValue); + SetProperty(0x1a, VT_VARIANT, &propVal); +} + +CString COXMAttachment::GetSource() +{ + VARIANT result; + GetProperty(0x25, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +void COXMAttachment::SetSource(CString sSource) +{ + COleVariant vSource(sSource); + SetProperty(0x25, VT_VARIANT, &sSource); +} + +void COXMAttachment::Delete() +{ + VARIANT result; + InvokeHelper(0x6a, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL); +} + +void COXMAttachment::ReadFromFile(CString sPath) +{ + COleVariant vFileName(sPath); + VARIANT result; + static BYTE parms[] = + VTS_VARIANT; + SetProperty(0x25, VT_VARIANT, &vFileName); + InvokeHelper(0x7f, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vFileName); +} + +void COXMAttachment::WriteToFile(CString sPath) +{ + COleVariant vFileName(sPath); + VARIANT result; + static BYTE parms[] = + VTS_VARIANT; + SetProperty(0x25, VT_VARIANT, &vFileName); + InvokeHelper(0x85, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vFileName); +} + + +///////////////////////////////////////////////////////////////////////////// +// COXMAddressEntry class + +CString COXMAddressEntry::GetApplication() +{ + VARIANT result; + GetProperty(0x14, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +COXMRecipient COXMAddressEntry::GetParent() +{ + if (m_bCurrentSessionUser) + return NULL; + VARIANT result; + GetProperty(0x19, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +COXMSession COXMAddressEntry::GetSession() +{ + VARIANT result; + GetProperty(0x22, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +EOXMClass COXMAddressEntry::GetClass() +{ + VARIANT result; + GetProperty(0x6, VT_VARIANT, (void*)&result); + return (EOXMClass) result.lVal; +} + +EOXMDisplayType COXMAddressEntry::GetDisplayType() +{ + VARIANT result; + GetProperty(0x38, VT_VARIANT, (void*)&result); + return (EOXMDisplayType) result.lVal; +} + +CString COXMAddressEntry::GetName() +{ + VARIANT result; + GetProperty(0x17, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +void COXMAddressEntry::SetName(CString sValue) +{ + COleVariant propVal(sValue); + SetProperty(0x17, VT_VARIANT, &propVal); +} + +CString COXMAddressEntry::GetAddress() +{ + VARIANT result; + GetProperty(0x2, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +void COXMAddressEntry::SetAddress(CString sValue) +{ + COleVariant propVal(sValue); + SetProperty(0x2, VT_VARIANT, &propVal); +} + +CString COXMAddressEntry::GetType() +{ + VARIANT result; + GetProperty(0x11, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +void COXMAddressEntry::SetType(CString sValue) +{ + COleVariant propVal(sValue); + SetProperty(0x11, VT_VARIANT, &propVal); +} + +CString COXMAddressEntry::GetId() +{ + VARIANT result; + GetProperty(0xe, VT_VARIANT, (void*)&result); + return result.bstrVal; +} + +COXMFields COXMAddressEntry::GetFields() +{ + VARIANT result; + GetProperty(0xc, VT_VARIANT, (void*)&result); + return result.pdispVal; +} + +void COXMAddressEntry::Details(HWND hParentWindow) +{ + COleVariant vParentWindow((LONG) hParentWindow); + VARIANT result; + static BYTE parms[] = + VTS_VARIANT; + InvokeHelper(0x6b, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vParentWindow); +} + +void COXMAddressEntry::Update(BOOL bMakePermanent /*=TRUE*/, BOOL bRefreshObject /*= FALSE*/) +{ + COleVariant vMakePermanent((short) bMakePermanent, VT_BOOL); + COleVariant vRefreshObject((short) bRefreshObject, VT_BOOL); + VARIANT result; + static BYTE parms[] = + VTS_VARIANT VTS_VARIANT; + InvokeHelper(0x84, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, + &vMakePermanent, &vRefreshObject); +} + +void COXMAddressEntry::Delete() +{ + VARIANT result; + InvokeHelper(0x6a, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/AllSamples/AllSamples.dsw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/AllSamples/AllSamples.dsw new file mode 100644 index 0000000..6b22d75 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/AllSamples/AllSamples.dsw @@ -0,0 +1,1533 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "ActiveDesktop"="..\shell\ActiveDesktop\ActiveDesktop.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "AddressBook"="..\shell\AddressBook\AddressBook.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "AdvancedAssert"="..\utility\AdvancedAssert\AdvancedAssert.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "AdvancedTrace"="..\utility\AdvancedTrace\AdvancedTrace.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "ApplicationBar"="..\gui\ApplicationBar\ApplicationBar.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "AutoComplete"="..\gui\AutoComplete\AutoComplete.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "BackgroundPainter"="..\gui\BackgroundPainter\BackgroundPainter.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "BitmapButtonDemo"="..\gui\BitmapButton\BitmapButtonDemo.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "BitmapMenuDemo"="..\gui\BitmapMenuDemo\BitmapMenuDemo.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "CalculatorCtrl"="..\gui\CalculatorCtrl\CalculatorCtrl.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "ClipDock"="..\utility\ClipDock\ClipDock.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "ColorPickerButton"="..\gui\ColorPickerButton\ColorPickerButton.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "ComboTree"="..\gui\ComboTree\ComboTree.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "ContextHelp"="..\gui\ContextHelp\ContextHelp.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "CoolCombo"="..\gui\CoolCombo\CoolCombo.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "CoolControls"="..\gui\CoolControls\CoolControls.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "CsvTest"="..\database\csvtest\CsvTest.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "CustomizeManager"="..\advanced\CustomizeManager\CustomizeManager.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "DIBManager"="..\advanced\DIBManager\DIBManager.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "DateTimePicker"="..\gui\DateTimePicker\DateTimePicker.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "DockProp"="..\gui\DockProp\DockProp.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "Docktest"="..\gui\DockView\Docktest.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "EditList1"="..\gui\EditList1\EditList1.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "EventLog"="..\utility\EventLog\EventLog.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "ExtTreeDemo"="..\gui\ExtTreeDemo\ExtTreeDemo.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "ExtendedEditControls"="..\gui\ExtendedEditControls\ExtendedEditControls.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "ExtendedListBox"="..\gui\ExtendedListBox\ExtendedListBox.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "ExtendedTreeControl"="..\gui\ExtendedTreeControl\ExtendedTreeControl.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "FileChanger"="..\utility\FileChanger\FileChanger.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "FileExplorer"="..\advanced\FileExplorer\FileExplorer.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "FileWatcher"="..\file\FileWatcher\FileWatcher.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "FontPickers"="..\gui\FontPickers\FontPickers.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "FullScreen"="..\gui\FullScreen\FullScreen.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "GridCtrl"="..\gui\GridCtrl\GridCtrl.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "HistoryComboDemo"="..\gui\HistCmbo\HistoryComboDemo.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "ImageListBox"="..\gui\ImageListBox\ImageListBox.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "ImageViewer"="..\graphics\ImageViewer\ImageViewer.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "InstanceManagerDemo"="..\utility\InstanceManager\InstanceManagerDemo.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "ItemTips"="..\gui\ItemTips\ItemTips.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "JPGtest"="..\graphics\JPGtest\JPGtest.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "Layout"="..\gui\Layout\Layout.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "LayoutManager"="..\gui\LayoutManager\LayoutManager.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "MCombo"="..\gui\MultiCombo\MCombo.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "MaskedEditTest"="..\gui\maskededit\MaskedEditTest.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "MetaFile"="..\graphics\Metafile\MetaFile.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "MonthCalendar"="..\gui\MonthCalendar\MonthCalendar.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "MultiPad"="..\gui\CaptionPainter\multipad.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "MultiPad2"="..\gui\CoolToolBar\multipad2.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "NetBrowse"="..\gui\NetBrowse\NetBrowse.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "Notes"="..\gui\Notes\Notes.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "NumberConversionDemo"="..\utility\NumberConversionDemo\NumberConversionDemo.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "OXCalendarDemo1"="..\gui\OXCalendarDemo1\OXCalendarDemo1.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "OptionTree"="..\gui\OptionTree\OptionTree.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "Outlook"="..\advanced\OutlookLikedemo\Outlook.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "ParserView"="..\utility\Parser\ParserView.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "PhysicalTest"="..\gui\PhysicalTest\PhysicalTest.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "PopupBar"="..\gui\PopupBar\PopupBar.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "Preview"="..\gui\preview\Preview.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "ROLL32"="..\gui\rollup\Roll32.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "RegEvent"="..\utility\Regevent\RegEvent.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "RegExpression"="..\utility\RegExpression\RegExpression.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "RegistryDemo"="..\utility\RegistryDemo\RegistryDemo.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "ResFile"="..\utility\resfile\ResFile.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "RoundedButton"="..\gui\RoundedButton\RoundedButton.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "RulerBar"="..\gui\RulerBar\RulerBar.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "SCRIBBLE"="..\gui\zoomvw\Scribble.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "ScreenGrabber"="..\advanced\ScreenGrabber\ScreenGrabber.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "ScrollTipDemo"="..\gui\scrolltips\ScrollTipDemo.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "Separator"="..\gui\Separator\Separator.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "Service"="..\utility\Service\Service.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "Shortcut"="..\utility\Shortcut\Shortcut.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "ShortcutBar"="..\gui\Shortcutbar\ShortcutBar.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "SideBySideToolbars"="..\gui\SideBySideToolbars\SideBySideToolbars.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "SkinsDemo"="..\advanced\SkinsDemo\SkinsDemo.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "SoundManager"="..\utility\SoundManager\SoundManager.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "SoundTest"="..\utility\SoundTest\SoundTest.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "SpinEx"="..\gui\spinex\SpinEx.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "Splash"="..\graphics\Splash\Splash.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "StaticHyperLink"="..\gui\StaticHyperLink\StaticHyperLink.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "StaticText"="..\gui\StaticText\StaticText.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "Statusbar"="..\gui\StatBar\Statusbar.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "SysInfo1"="..\utility\SysInfo1\SysInfo1.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "SystemStateInfo"="..\advanced\SystemStateInfo\SystemStateInfo.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "TabViews"="..\gui\3DTabViews\TabViews.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "Taskbar"="..\gui\TaskBarIcon\Taskbar.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "ToolTipEx"="..\gui\ToolTipEx\ToolTipEx.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "URLDemo"="..\file\URLDemo\URLDemo.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "VisualStudioLikeDemo"="..\advanced\VisualStudioLikeDemo\VisualStudioLikeDemo.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "WorkspaceDemo"="..\utility\WorkspaceDemo\WorkspaceDemo.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "calc"="..\gui\Calc\Calc.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "cgiscrpt"="..\communication\CGIscrpt\cgiscrpt.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "demo"="..\database\DAOclass\demo.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "note"="..\gui\NOTE\Note.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "scrngrab"="..\utility\scrngrab\scrngrab.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "undo"="..\utility\Undo\undo.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/UTB_Dev/Ultimate Toolbox/UTB_DevBranch/samples/AllSamples", ZRHGAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/AllSamples/AllSamples.sln b/UltimateToolbox93_samples/Ultimate Toolbox/samples/AllSamples/AllSamples.sln new file mode 100644 index 0000000..0ce4aec --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/AllSamples/AllSamples.sln @@ -0,0 +1,2906 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ActiveDesktop", "..\shell\ActiveDesktop\ActiveDesktop.vcproj", "{0D883A36-C567-4035-9404-227DD053963C}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AddressBook", "..\shell\AddressBook\AddressBook.vcproj", "{1AB3C321-0A14-4759-BD7C-1EF778E46C14}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AdvancedAssert", "..\utility\AdvancedAssert\AdvancedAssert.vcproj", "{0AC00180-1A2C-449C-B27D-9FEA7F177BCF}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AdvancedTrace", "..\utility\AdvancedTrace\AdvancedTrace.vcproj", "{356D6219-4D5B-4C3F-9911-733BFA4DD983}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ApplicationBar", "..\gui\ApplicationBar\ApplicationBar.vcproj", "{363C1917-07AD-4B30-A4C1-C3D4CDC7140E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AutoComplete", "..\gui\AutoComplete\AutoComplete.vcproj", "{B42009AD-84D5-4B93-8770-AAF3F2B4719C}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BackgroundPainter", "..\gui\BackgroundPainter\BackgroundPainter.vcproj", "{EA571232-722A-4992-A91D-46B19EBBDFE1}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BitmapButtonDemo", "..\gui\BitmapButton\BitmapButtonDemo.vcproj", "{AEBC3A72-A3C2-453A-88A3-EAD461D44235}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BitmapMenuDemo", "..\gui\BitmapMenuDemo\BitmapMenuDemo.vcproj", "{B3EED7FD-817D-4631-990C-C6C8F66948F5}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CalculatorCtrl", "..\gui\CalculatorCtrl\CalculatorCtrl.vcproj", "{FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ClipDock", "..\utility\ClipDock\ClipDock.vcproj", "{D6877776-505F-4C20-96FA-27B8C24837D1}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ColorPickerButton", "..\gui\ColorPickerButton\ColorPickerButton.vcproj", "{3B8A4499-76F5-4843-A103-BFA6A64DD3CC}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ComboTree", "..\gui\ComboTree\ComboTree.vcproj", "{77268A67-C4FD-43B3-B49D-573EE3794152}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ContextHelp", "..\gui\ContextHelp\ContextHelp.vcproj", "{3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CoolCombo", "..\gui\CoolCombo\CoolCombo.vcproj", "{EDF94834-7924-4563-8382-368120B8D440}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CoolControls", "..\gui\CoolControls\CoolControls.vcproj", "{ACEE7C3F-0004-4F68-80EC-3892C3843A43}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CsvTest", "..\database\csvtest\CsvTest.vcproj", "{4A96508B-87A3-48AD-BDD5-D991D737A2C4}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CustomizeManager", "..\advanced\CustomizeManager\CustomizeManager.vcproj", "{477794B0-5722-4B8B-876F-2193FBD388A9}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DIBManager", "..\advanced\DIBManager\DIBManager.vcproj", "{FDF923F4-1373-4F7A-8739-F797B30655AF}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DateTimePicker", "..\gui\DateTimePicker\DateTimePicker.vcproj", "{1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DockProp", "..\gui\DockProp\DockProp.vcproj", "{4478DBB5-40DD-4FE8-B236-9B7663BB531A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Docktest", "..\gui\DockView\Docktest.vcproj", "{6B354278-51B6-4AC9-97B7-D715C6DB9D07}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EditList1", "..\gui\EditList1\EditList1.vcproj", "{41CEA51C-6C57-442B-9055-DD4E5582C941}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EventLog", "..\utility\EventLog\EventLog.vcproj", "{8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ExtTreeDemo", "..\gui\ExtTreeDemo\ExtTreeDemo.vcproj", "{558783DB-6F17-46DF-83F9-F931B2A5D3D7}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ExtendedEditControls", "..\gui\ExtendedEditControls\ExtendedEditControls.vcproj", "{760EBB30-6E32-4F71-A7F4-9740863BF2BD}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ExtendedListBox", "..\gui\ExtendedListBox\ExtendedListBox.vcproj", "{F6E2871A-42FF-4863-BDEC-032FE73D991F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ExtendedTreeControl", "..\gui\ExtendedTreeControl\ExtendedTreeControl.vcproj", "{CCF3E412-6202-408D-AF8A-BD7D010A11CD}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FileChanger", "..\utility\FileChanger\FileChanger.vcproj", "{CDBBE042-E581-42F7-BE9E-FA16F668CBC6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FileExplorer", "..\advanced\FileExplorer\FileExplorer.vcproj", "{3A98DBA1-F67C-49CD-87D6-6F59B23F770A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FileWatcher", "..\file\FileWatcher\FileWatcher.vcproj", "{53698F98-A520-44CD-BACB-939DAB5B0D65}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FontPickers", "..\gui\FontPickers\FontPickers.vcproj", "{D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FullScreen", "..\gui\FullScreen\FullScreen.vcproj", "{1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GridCtrl", "..\gui\GridCtrl\GridCtrl.vcproj", "{C0587A88-C07E-4545-874F-8436C64ECC03}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HistoryComboDemo", "..\gui\HistCmbo\HistoryComboDemo.vcproj", "{90157A9E-111F-494A-A253-E478AE7B2848}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ImageListBox", "..\gui\ImageListBox\ImageListBox.vcproj", "{444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ImageViewer", "..\graphics\ImageViewer\ImageViewer.vcproj", "{B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "InstanceManagerDemo", "..\utility\InstanceManager\InstanceManagerDemo.vcproj", "{E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ItemTips", "..\gui\ItemTips\ItemTips.vcproj", "{42B2177B-4260-42CB-9177-2F95CE21655A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JPGtest", "..\graphics\JPGtest\JPGtest.vcproj", "{EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Layout", "..\gui\Layout\Layout.vcproj", "{CEA65F15-22A4-4818-8E4B-013A6CE79C02}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LayoutManager", "..\gui\LayoutManager\LayoutManager.vcproj", "{F7B1D72A-92E8-4A43-8295-3D353F63ECA1}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MCombo", "..\gui\MultiCombo\MCombo.vcproj", "{A7155B4E-FD86-4E75-B89C-DB46F7449136}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MaskedEditTest", "..\gui\maskededit\MaskedEditTest.vcproj", "{9C5A8B5D-C45A-42F6-876B-8E769D9631C3}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MetaFile", "..\graphics\Metafile\MetaFile.vcproj", "{D9BCDE31-E94A-4002-A0D0-B895589C9CCE}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MonthCalendar", "..\gui\MonthCalendar\MonthCalendar.vcproj", "{41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MultiPad", "..\gui\CaptionPainter\multipad.vcproj", "{E98EAE2F-5D5F-4D17-8629-3EDF9E265151}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetBrowse", "..\gui\NetBrowse\NetBrowse.vcproj", "{2C5C831C-4D4E-4703-A4E6-188E441B3959}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Notes", "..\gui\Notes\Notes.vcproj", "{0C253783-D9E4-4DD9-8643-164C22C4CDE9}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NumberConversionDemo", "..\utility\NumberConversionDemo\NumberConversionDemo.vcproj", "{C0285571-2D5C-49A7-AAA6-D699107D65B3}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OXCalendarDemo1", "..\gui\OXCalendarDemo1\OXCalendarDemo1.vcproj", "{8E43E587-76DE-4523-A6EF-322AB8E0D5CE}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OptionTree", "..\gui\OptionTree\OptionTree.vcproj", "{C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Outlook", "..\advanced\OutlookLikedemo\Outlook.vcproj", "{F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ParserView", "..\utility\Parser\ParserView.vcproj", "{549EEE53-EEE6-4484-AA13-ACED98B99A6A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PhysicalTest", "..\gui\PhysicalTest\PhysicalTest.vcproj", "{33E23649-48BC-40CC-901B-19131E21A83E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PopupBar", "..\gui\PopupBar\PopupBar.vcproj", "{95C3C484-D129-49A6-8CF1-876E642209D4}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Preview", "..\gui\preview\Preview.vcproj", "{FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ROLL32", "..\gui\rollup\Roll32.vcproj", "{A67ECAB2-F6C5-491E-A3EB-2212081B6191}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RegEvent", "..\utility\Regevent\RegEvent.vcproj", "{684A4664-BC51-4A46-91E2-E62A3241C30F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RegExpression", "..\utility\RegExpression\RegExpression.vcproj", "{55FA0C3A-F07B-4A43-9465-FACD23C71D37}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RegistryDemo", "..\utility\RegistryDemo\RegistryDemo.vcproj", "{38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ResFile", "..\utility\resfile\ResFile.vcproj", "{0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RoundedButton", "..\gui\RoundedButton\RoundedButton.vcproj", "{F1872280-AF4A-4BE3-8C09-4B23CB0146BD}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RulerBar", "..\gui\RulerBar\RulerBar.vcproj", "{0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SCRIBBLE", "..\gui\zoomvw\Scribble.vcproj", "{999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ScreenGrabber", "..\advanced\ScreenGrabber\ScreenGrabber.vcproj", "{52C98624-EE86-40C9-B679-ABF97FF9050F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ScrollTipDemo", "..\gui\scrolltips\ScrollTipDemo.vcproj", "{CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Separator", "..\gui\Separator\Separator.vcproj", "{70075261-66BB-4269-8662-1BFD046ABF43}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Service", "..\utility\Service\Service.vcproj", "{DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Shortcut", "..\utility\Shortcut\Shortcut.vcproj", "{D1446E51-4678-4C37-9C38-143B4D3BEC06}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ShortcutBar", "..\gui\Shortcutbar\ShortcutBar.vcproj", "{CD680273-4B2C-4904-BF69-7FF6ED7D7951}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SideBySideToolbars", "..\gui\SideBySideToolbars\SideBySideToolbars.vcproj", "{383EE854-F9D2-44ED-BE9F-A90A2354D781}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SkinsDemo", "..\advanced\SkinsDemo\SkinsDemo.vcproj", "{368A240D-155A-4971-A79C-EF524AEB5567}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SoundManager", "..\utility\SoundManager\SoundManager.vcproj", "{B4596412-B65A-4277-9DB0-EA8888043A36}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SoundTest", "..\utility\SoundTest\SoundTest.vcproj", "{3F68CEF2-2882-4638-83E1-F24803B9CD53}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SpinEx", "..\gui\spinex\SpinEx.vcproj", "{AFA1F68C-993E-4717-94FC-CB6398833C5D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Splash", "..\graphics\Splash\Splash.vcproj", "{396F525F-44D9-48AC-9E6A-B1754B715E93}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "StaticHyperLink", "..\gui\StaticHyperLink\StaticHyperLink.vcproj", "{8B68C24D-34A9-4C10-A873-F5EE35BB40B3}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "StaticText", "..\gui\StaticText\StaticText.vcproj", "{448183A2-C773-4015-8B52-962904852B9A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Statusbar", "..\gui\StatBar\Statusbar.vcproj", "{87747963-45F7-4A05-B971-78FE15872EA7}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SysInfo1", "..\utility\SysInfo1\SysInfo1.vcproj", "{673F36FA-666A-4274-B560-EB1BCB99DE1B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SystemStateInfo", "..\advanced\SystemStateInfo\SystemStateInfo.vcproj", "{4BF68E89-342E-4E7D-8623-26B538D02D34}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TabViews", "..\gui\3DTabViews\TabViews.vcproj", "{29CA054F-3945-488A-AB47-D29A58C694A5}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Taskbar", "..\gui\TaskBarIcon\Taskbar.vcproj", "{6B900F8C-C808-460A-BF17-12143C6CB1E8}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ToolTipEx", "..\gui\ToolTipEx\ToolTipEx.vcproj", "{39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "URLDemo", "..\file\URLDemo\URLDemo.vcproj", "{7992FECF-AEC9-4E72-9035-EEDACFE899C6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VisualStudioLikeDemo", "..\advanced\VisualStudioLikeDemo\VisualStudioLikeDemo.vcproj", "{6E1019D0-4AA0-4233-B32D-D085CD79E526}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WorkspaceDemo", "..\utility\WorkspaceDemo\WorkspaceDemo.vcproj", "{A7E8CA5B-F812-45F5-BEB8-D3C999A86995}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "calc", "..\gui\Calc\Calc.vcproj", "{2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cgiscrpt", "..\communication\CGIscrpt\cgiscrpt.vcproj", "{0AD5CFBC-B35D-43F5-A6C3-D2871494681E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "demo", "..\database\DAOclass\demo.vcproj", "{A5017E69-8F71-45DF-BF46-B1E0DF18646B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "note", "..\gui\NOTE\Note.vcproj", "{7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "scrngrab", "..\utility\scrngrab\scrngrab.vcproj", "{B6D9617C-C9DA-457A-874E-1AE37C8C75E6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "undo", "..\utility\Undo\undo.vcproj", "{2BBAB318-883C-43AF-A326-BC6D06C5518F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MultiPad2", "..\gui\CoolToolBar\multipad2.vcproj", "{D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HyperbarDemo", "..\gui\HyperbarDemo\HyperbarDemo.vcproj", "{1AF15FBC-E92F-4161-99F7-7C1960A9F529}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug_Unicode|Win32 = Debug_Unicode|Win32 + Debug|Win32 = Debug|Win32 + DebugUnicode|Win32 = DebugUnicode|Win32 + Release_Shared|Win32 = Release_Shared|Win32 + Release_Unicode|Win32 = Release_Unicode|Win32 + Release|Win32 = Release|Win32 + ReleaseShared|Win32 = ReleaseShared|Win32 + ReleaseUnicode|Win32 = ReleaseUnicode|Win32 + Unicode Debug|Win32 = Unicode Debug|Win32 + Unicode Release|Win32 = Unicode Release|Win32 + Unicode_Debug|Win32 = Unicode_Debug|Win32 + Unicode_Release|Win32 = Unicode_Release|Win32 + UnicodeDebug|Win32 = UnicodeDebug|Win32 + UnicodeRelease|Win32 = UnicodeRelease|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0D883A36-C567-4035-9404-227DD053963C}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.Debug|Win32.ActiveCfg = Debug|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.Debug|Win32.Build.0 = Debug|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.DebugUnicode|Win32.ActiveCfg = DebugUnicode|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.DebugUnicode|Win32.Build.0 = DebugUnicode|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.Release_Shared|Win32.ActiveCfg = Release|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.Release_Shared|Win32.Build.0 = Release|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.Release_Unicode|Win32.ActiveCfg = Release|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.Release_Unicode|Win32.Build.0 = Release|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.Release|Win32.ActiveCfg = Release|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.Release|Win32.Build.0 = Release|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.ReleaseShared|Win32.ActiveCfg = ReleaseShared|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.ReleaseShared|Win32.Build.0 = ReleaseShared|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.ReleaseUnicode|Win32.ActiveCfg = ReleaseUnicode|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.ReleaseUnicode|Win32.Build.0 = ReleaseUnicode|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.Unicode Release|Win32.Build.0 = Release|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.Unicode_Debug|Win32.ActiveCfg = Debug|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.Unicode_Debug|Win32.Build.0 = Debug|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.Unicode_Release|Win32.ActiveCfg = Release|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.Unicode_Release|Win32.Build.0 = Release|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {0D883A36-C567-4035-9404-227DD053963C}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.Debug_Unicode|Win32.ActiveCfg = DebugUnicode|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.Debug_Unicode|Win32.Build.0 = DebugUnicode|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.Debug|Win32.ActiveCfg = Debug|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.Debug|Win32.Build.0 = Debug|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.DebugUnicode|Win32.ActiveCfg = DebugUnicode|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.DebugUnicode|Win32.Build.0 = DebugUnicode|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.Release_Shared|Win32.ActiveCfg = Release|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.Release_Shared|Win32.Build.0 = Release|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.Release_Unicode|Win32.ActiveCfg = Release|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.Release_Unicode|Win32.Build.0 = Release|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.Release|Win32.ActiveCfg = Release|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.Release|Win32.Build.0 = Release|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.ReleaseShared|Win32.ActiveCfg = ReleaseShared|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.ReleaseShared|Win32.Build.0 = ReleaseShared|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.ReleaseUnicode|Win32.ActiveCfg = ReleaseUnicode|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.ReleaseUnicode|Win32.Build.0 = ReleaseUnicode|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.Unicode Release|Win32.Build.0 = Release|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.Unicode_Debug|Win32.ActiveCfg = Debug|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.Unicode_Debug|Win32.Build.0 = Debug|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.Unicode_Release|Win32.ActiveCfg = Release|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.Unicode_Release|Win32.Build.0 = Release|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {1AB3C321-0A14-4759-BD7C-1EF778E46C14}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.Debug|Win32.ActiveCfg = Debug|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.Debug|Win32.Build.0 = Debug|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.Release|Win32.ActiveCfg = Release|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.Release|Win32.Build.0 = Release|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.Unicode Release|Win32.Build.0 = Release|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {0AC00180-1A2C-449C-B27D-9FEA7F177BCF}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.Debug|Win32.ActiveCfg = Debug|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.Debug|Win32.Build.0 = Debug|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.Release|Win32.ActiveCfg = Release|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.Release|Win32.Build.0 = Release|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.Unicode Release|Win32.Build.0 = Release|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {356D6219-4D5B-4C3F-9911-733BFA4DD983}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.Debug|Win32.ActiveCfg = Debug|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.Debug|Win32.Build.0 = Debug|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.Release_Shared|Win32.ActiveCfg = ReleaseShared|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.Release_Shared|Win32.Build.0 = ReleaseShared|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.Release_Unicode|Win32.ActiveCfg = ReleaseShared|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.Release_Unicode|Win32.Build.0 = ReleaseShared|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.Release|Win32.ActiveCfg = Release|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.Release|Win32.Build.0 = Release|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.ReleaseShared|Win32.ActiveCfg = ReleaseShared|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.ReleaseShared|Win32.Build.0 = ReleaseShared|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.ReleaseUnicode|Win32.ActiveCfg = ReleaseShared|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.ReleaseUnicode|Win32.Build.0 = ReleaseShared|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.Unicode Release|Win32.Build.0 = Release|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.Unicode_Debug|Win32.ActiveCfg = Debug|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.Unicode_Debug|Win32.Build.0 = Debug|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.Unicode_Release|Win32.ActiveCfg = Release|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.Unicode_Release|Win32.Build.0 = Release|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.UnicodeDebug|Win32.ActiveCfg = UnicodeDebug|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.UnicodeDebug|Win32.Build.0 = UnicodeDebug|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.UnicodeRelease|Win32.ActiveCfg = UnicodeRelease|Win32 + {363C1917-07AD-4B30-A4C1-C3D4CDC7140E}.UnicodeRelease|Win32.Build.0 = UnicodeRelease|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.Debug|Win32.ActiveCfg = Debug|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.Debug|Win32.Build.0 = Debug|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.DebugUnicode|Win32.ActiveCfg = DebugUnicode|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.DebugUnicode|Win32.Build.0 = DebugUnicode|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.Release_Shared|Win32.ActiveCfg = ReleaseShared|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.Release_Shared|Win32.Build.0 = ReleaseShared|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.Release_Unicode|Win32.ActiveCfg = ReleaseShared|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.Release_Unicode|Win32.Build.0 = ReleaseShared|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.Release|Win32.ActiveCfg = Release|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.Release|Win32.Build.0 = Release|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.ReleaseShared|Win32.ActiveCfg = ReleaseShared|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.ReleaseShared|Win32.Build.0 = ReleaseShared|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.ReleaseUnicode|Win32.ActiveCfg = ReleaseUnicode|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.ReleaseUnicode|Win32.Build.0 = ReleaseUnicode|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.Unicode Release|Win32.Build.0 = Release|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.Unicode_Debug|Win32.ActiveCfg = Debug|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.Unicode_Debug|Win32.Build.0 = Debug|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.Unicode_Release|Win32.ActiveCfg = Release|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.Unicode_Release|Win32.Build.0 = Release|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {B42009AD-84D5-4B93-8770-AAF3F2B4719C}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.Debug|Win32.ActiveCfg = Debug|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.Debug|Win32.Build.0 = Debug|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.Release|Win32.ActiveCfg = Release|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.Release|Win32.Build.0 = Release|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.ReleaseShared|Win32.Build.0 = Release|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.Unicode Release|Win32.Build.0 = Release|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {EA571232-722A-4992-A91D-46B19EBBDFE1}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.Debug|Win32.ActiveCfg = Debug|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.Debug|Win32.Build.0 = Debug|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.Release|Win32.ActiveCfg = Release|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.Release|Win32.Build.0 = Release|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.ReleaseShared|Win32.Build.0 = Release|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.Unicode Release|Win32.Build.0 = Release|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {AEBC3A72-A3C2-453A-88A3-EAD461D44235}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.Debug|Win32.ActiveCfg = Debug|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.Debug|Win32.Build.0 = Debug|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.Release|Win32.ActiveCfg = Release|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.Release|Win32.Build.0 = Release|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.ReleaseShared|Win32.Build.0 = Release|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.Unicode Release|Win32.Build.0 = Release|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {B3EED7FD-817D-4631-990C-C6C8F66948F5}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.Debug|Win32.ActiveCfg = Debug|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.Debug|Win32.Build.0 = Debug|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.Release_Shared|Win32.ActiveCfg = Release|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.Release_Shared|Win32.Build.0 = Release|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.Release_Unicode|Win32.ActiveCfg = Release|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.Release_Unicode|Win32.Build.0 = Release|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.Release|Win32.ActiveCfg = Release|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.Release|Win32.Build.0 = Release|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.ReleaseShared|Win32.Build.0 = Release|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.Unicode Release|Win32.Build.0 = Release|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.Unicode_Debug|Win32.ActiveCfg = Debug|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.Unicode_Debug|Win32.Build.0 = Debug|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.Unicode_Release|Win32.ActiveCfg = Release|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.Unicode_Release|Win32.Build.0 = Release|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {FBB89275-6BC0-4E29-BFBE-3B5B1655C1E3}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.Debug|Win32.ActiveCfg = Debug|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.Debug|Win32.Build.0 = Debug|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.Release_Shared|Win32.ActiveCfg = Release|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.Release_Shared|Win32.Build.0 = Release|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.Release_Unicode|Win32.ActiveCfg = Release|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.Release_Unicode|Win32.Build.0 = Release|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.Release|Win32.ActiveCfg = Release|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.Release|Win32.Build.0 = Release|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.ReleaseShared|Win32.ActiveCfg = ReleaseShared|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.ReleaseShared|Win32.Build.0 = ReleaseShared|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.Unicode Release|Win32.Build.0 = Release|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.Unicode_Debug|Win32.ActiveCfg = Debug|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.Unicode_Debug|Win32.Build.0 = Debug|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.Unicode_Release|Win32.ActiveCfg = Release|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.Unicode_Release|Win32.Build.0 = Release|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.UnicodeDebug|Win32.ActiveCfg = UnicodeDebug|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.UnicodeDebug|Win32.Build.0 = UnicodeDebug|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.UnicodeRelease|Win32.ActiveCfg = UnicodeRelease|Win32 + {D6877776-505F-4C20-96FA-27B8C24837D1}.UnicodeRelease|Win32.Build.0 = UnicodeRelease|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.Debug|Win32.ActiveCfg = Debug|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.Debug|Win32.Build.0 = Debug|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.Release|Win32.ActiveCfg = Release|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.Release|Win32.Build.0 = Release|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.ReleaseShared|Win32.Build.0 = Release|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.Unicode Release|Win32.Build.0 = Release|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {3B8A4499-76F5-4843-A103-BFA6A64DD3CC}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.Debug|Win32.ActiveCfg = Debug|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.Debug|Win32.Build.0 = Debug|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.DebugUnicode|Win32.ActiveCfg = DebugUnicode|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.DebugUnicode|Win32.Build.0 = DebugUnicode|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.Release_Shared|Win32.ActiveCfg = Release|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.Release_Shared|Win32.Build.0 = Release|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.Release_Unicode|Win32.ActiveCfg = Release|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.Release_Unicode|Win32.Build.0 = Release|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.Release|Win32.ActiveCfg = Release|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.Release|Win32.Build.0 = Release|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.ReleaseShared|Win32.ActiveCfg = ReleaseShared|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.ReleaseShared|Win32.Build.0 = ReleaseShared|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.ReleaseUnicode|Win32.ActiveCfg = ReleaseUnicode|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.ReleaseUnicode|Win32.Build.0 = ReleaseUnicode|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.Unicode Release|Win32.Build.0 = Release|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.Unicode_Debug|Win32.ActiveCfg = Debug|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.Unicode_Debug|Win32.Build.0 = Debug|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.Unicode_Release|Win32.ActiveCfg = Release|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.Unicode_Release|Win32.Build.0 = Release|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {77268A67-C4FD-43B3-B49D-573EE3794152}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.Debug|Win32.ActiveCfg = Debug|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.Debug|Win32.Build.0 = Debug|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.Release|Win32.ActiveCfg = Release|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.Release|Win32.Build.0 = Release|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.ReleaseShared|Win32.Build.0 = Release|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.Unicode Release|Win32.Build.0 = Release|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {3DFAD2ED-5736-47F9-AFFF-693A4F33BBDA}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.Debug|Win32.ActiveCfg = Debug|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.Debug|Win32.Build.0 = Debug|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.Release|Win32.ActiveCfg = Release|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.Release|Win32.Build.0 = Release|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.Unicode Release|Win32.Build.0 = Release|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {EDF94834-7924-4563-8382-368120B8D440}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.Debug|Win32.ActiveCfg = Debug|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.Debug|Win32.Build.0 = Debug|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.Release|Win32.ActiveCfg = Release|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.Release|Win32.Build.0 = Release|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.ReleaseShared|Win32.Build.0 = Release|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.Unicode Release|Win32.Build.0 = Release|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {ACEE7C3F-0004-4F68-80EC-3892C3843A43}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.Debug|Win32.ActiveCfg = Debug|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.Debug|Win32.Build.0 = Debug|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.Release|Win32.ActiveCfg = Release|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.Release|Win32.Build.0 = Release|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.Unicode Release|Win32.Build.0 = Release|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {4A96508B-87A3-48AD-BDD5-D991D737A2C4}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.Debug|Win32.ActiveCfg = Debug|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.Debug|Win32.Build.0 = Debug|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.Release_Shared|Win32.ActiveCfg = Release|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.Release_Shared|Win32.Build.0 = Release|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.Release_Unicode|Win32.ActiveCfg = Release|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.Release_Unicode|Win32.Build.0 = Release|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.Release|Win32.ActiveCfg = Release|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.Release|Win32.Build.0 = Release|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.ReleaseShared|Win32.Build.0 = Release|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.Unicode Release|Win32.Build.0 = Unicode Release|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.Unicode_Debug|Win32.ActiveCfg = Debug|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.Unicode_Debug|Win32.Build.0 = Debug|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.Unicode_Release|Win32.ActiveCfg = Release|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.Unicode_Release|Win32.Build.0 = Release|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {477794B0-5722-4B8B-876F-2193FBD388A9}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.Debug|Win32.ActiveCfg = Debug|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.Debug|Win32.Build.0 = Debug|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.Release_Shared|Win32.ActiveCfg = Release|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.Release_Shared|Win32.Build.0 = Release|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.Release_Unicode|Win32.ActiveCfg = Release|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.Release_Unicode|Win32.Build.0 = Release|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.Release|Win32.ActiveCfg = Release|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.Release|Win32.Build.0 = Release|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.ReleaseShared|Win32.Build.0 = Release|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.Unicode Release|Win32.Build.0 = Release|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.Unicode_Debug|Win32.ActiveCfg = Debug|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.Unicode_Debug|Win32.Build.0 = Debug|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.Unicode_Release|Win32.ActiveCfg = Release|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.Unicode_Release|Win32.Build.0 = Release|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {FDF923F4-1373-4F7A-8739-F797B30655AF}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.Debug|Win32.ActiveCfg = Debug|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.Debug|Win32.Build.0 = Debug|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.Release|Win32.ActiveCfg = Release|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.Release|Win32.Build.0 = Release|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.Unicode Release|Win32.Build.0 = Release|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {1BB8725F-9ABE-47DE-B247-9B3C35D13FB5}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.Debug|Win32.ActiveCfg = Debug|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.Debug|Win32.Build.0 = Debug|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.Release|Win32.ActiveCfg = Release|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.Release|Win32.Build.0 = Release|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.Unicode Release|Win32.Build.0 = Release|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {4478DBB5-40DD-4FE8-B236-9B7663BB531A}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.Debug|Win32.ActiveCfg = Debug|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.Debug|Win32.Build.0 = Debug|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.Release|Win32.ActiveCfg = Release|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.Release|Win32.Build.0 = Release|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.ReleaseShared|Win32.Build.0 = Release|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.Unicode Release|Win32.Build.0 = Release|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {6B354278-51B6-4AC9-97B7-D715C6DB9D07}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.Debug|Win32.ActiveCfg = Debug|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.Debug|Win32.Build.0 = Debug|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.Release|Win32.ActiveCfg = Release|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.Release|Win32.Build.0 = Release|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.ReleaseShared|Win32.Build.0 = Release|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.Unicode Release|Win32.Build.0 = Release|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {41CEA51C-6C57-442B-9055-DD4E5582C941}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.Debug|Win32.ActiveCfg = Debug|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.Debug|Win32.Build.0 = Debug|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.Release|Win32.ActiveCfg = Release|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.Release|Win32.Build.0 = Release|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.Unicode Release|Win32.Build.0 = Release|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {8AD9DCC3-567C-4F4F-B087-D0399BFD9F79}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.Debug|Win32.ActiveCfg = Debug|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.Debug|Win32.Build.0 = Debug|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.Release|Win32.ActiveCfg = Release|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.Release|Win32.Build.0 = Release|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.ReleaseShared|Win32.Build.0 = Release|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.Unicode Release|Win32.Build.0 = Release|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {558783DB-6F17-46DF-83F9-F931B2A5D3D7}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.Debug|Win32.ActiveCfg = Debug|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.Debug|Win32.Build.0 = Debug|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.Release|Win32.ActiveCfg = Release|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.Release|Win32.Build.0 = Release|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.Unicode Release|Win32.Build.0 = Release|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {760EBB30-6E32-4F71-A7F4-9740863BF2BD}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.Debug|Win32.ActiveCfg = Debug|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.Debug|Win32.Build.0 = Debug|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.Release|Win32.ActiveCfg = Release|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.Release|Win32.Build.0 = Release|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.Unicode Release|Win32.Build.0 = Release|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {F6E2871A-42FF-4863-BDEC-032FE73D991F}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.Debug|Win32.ActiveCfg = Debug|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.Debug|Win32.Build.0 = Debug|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.Release_Shared|Win32.ActiveCfg = Release|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.Release_Shared|Win32.Build.0 = Release|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.Release_Unicode|Win32.ActiveCfg = Release|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.Release_Unicode|Win32.Build.0 = Release|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.Release|Win32.ActiveCfg = Release|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.Release|Win32.Build.0 = Release|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.ReleaseShared|Win32.Build.0 = Release|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.Unicode Release|Win32.Build.0 = Release|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.Unicode_Debug|Win32.ActiveCfg = Debug|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.Unicode_Debug|Win32.Build.0 = Debug|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.Unicode_Release|Win32.ActiveCfg = Release|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.Unicode_Release|Win32.Build.0 = Release|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {CCF3E412-6202-408D-AF8A-BD7D010A11CD}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.Debug|Win32.ActiveCfg = Debug|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.Debug|Win32.Build.0 = Debug|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.Release|Win32.ActiveCfg = Release|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.Release|Win32.Build.0 = Release|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.ReleaseShared|Win32.Build.0 = Release|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.Unicode Release|Win32.Build.0 = Release|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {CDBBE042-E581-42F7-BE9E-FA16F668CBC6}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.Debug|Win32.ActiveCfg = Debug|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.Debug|Win32.Build.0 = Debug|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.Release|Win32.ActiveCfg = Release|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.Release|Win32.Build.0 = Release|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.Unicode Release|Win32.Build.0 = Release|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {3A98DBA1-F67C-49CD-87D6-6F59B23F770A}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.Debug|Win32.ActiveCfg = Debug|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.Debug|Win32.Build.0 = Debug|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.Release|Win32.ActiveCfg = Release|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.Release|Win32.Build.0 = Release|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.Unicode Release|Win32.Build.0 = Release|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {53698F98-A520-44CD-BACB-939DAB5B0D65}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.Debug|Win32.ActiveCfg = Debug|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.Debug|Win32.Build.0 = Debug|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.Release|Win32.ActiveCfg = Release|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.Release|Win32.Build.0 = Release|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.ReleaseShared|Win32.Build.0 = Release|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.Unicode Release|Win32.Build.0 = Release|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {D2C3AECC-A887-4D24-8E36-3A8D15D84B5C}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.Debug_Unicode|Win32.ActiveCfg = Debug_Unicode|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.Debug_Unicode|Win32.Build.0 = Debug_Unicode|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.Debug|Win32.ActiveCfg = Debug|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.Debug|Win32.Build.0 = Debug|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.Release_Unicode|Win32.ActiveCfg = Release_Unicode|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.Release_Unicode|Win32.Build.0 = Release_Unicode|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.Release|Win32.ActiveCfg = Release|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.Release|Win32.Build.0 = Release|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.ReleaseShared|Win32.Build.0 = Release|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.Unicode Release|Win32.Build.0 = Release|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.Unicode_Debug|Win32.ActiveCfg = Debug|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.Unicode_Debug|Win32.Build.0 = Debug|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.Unicode_Release|Win32.ActiveCfg = Release|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.Unicode_Release|Win32.Build.0 = Release|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {1CE4E436-53FA-4DA9-BAB3-63ED0A7FB3E7}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.Debug|Win32.ActiveCfg = Debug|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.Debug|Win32.Build.0 = Debug|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.Release|Win32.ActiveCfg = Release|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.Release|Win32.Build.0 = Release|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.ReleaseShared|Win32.Build.0 = Release|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.Unicode Release|Win32.Build.0 = Release|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {C0587A88-C07E-4545-874F-8436C64ECC03}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.Debug|Win32.ActiveCfg = Debug|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.Debug|Win32.Build.0 = Debug|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.Release|Win32.ActiveCfg = Release|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.Release|Win32.Build.0 = Release|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.ReleaseShared|Win32.Build.0 = Release|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.Unicode Release|Win32.Build.0 = Release|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {90157A9E-111F-494A-A253-E478AE7B2848}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.Debug|Win32.ActiveCfg = Debug|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.Debug|Win32.Build.0 = Debug|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.Release|Win32.ActiveCfg = Release|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.Release|Win32.Build.0 = Release|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.Unicode Release|Win32.Build.0 = Release|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {444A7CEA-79F8-4A6B-9E8F-DFEC335A0B8A}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.Debug|Win32.ActiveCfg = Debug|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.Debug|Win32.Build.0 = Debug|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.Release|Win32.ActiveCfg = Release|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.Release|Win32.Build.0 = Release|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.Unicode Release|Win32.Build.0 = Release|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.Unicode_Debug|Win32.ActiveCfg = Debug|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.Unicode_Debug|Win32.Build.0 = Debug|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.Unicode_Release|Win32.ActiveCfg = Release|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.Unicode_Release|Win32.Build.0 = Release|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {B89B0A8D-BDD2-4A5D-9A46-FBE49B34F944}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.Debug|Win32.ActiveCfg = Debug|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.Debug|Win32.Build.0 = Debug|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.Release|Win32.ActiveCfg = Release|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.Release|Win32.Build.0 = Release|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.ReleaseShared|Win32.Build.0 = Release|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.Unicode Release|Win32.Build.0 = Release|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {E3CA6878-C5DE-47EC-8D03-8BDC4AB8B184}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.Debug|Win32.ActiveCfg = Debug|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.Debug|Win32.Build.0 = Debug|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.Release|Win32.ActiveCfg = Release|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.Release|Win32.Build.0 = Release|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.ReleaseShared|Win32.Build.0 = Release|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.Unicode Release|Win32.Build.0 = Release|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {42B2177B-4260-42CB-9177-2F95CE21655A}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.Debug|Win32.ActiveCfg = Debug|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.Debug|Win32.Build.0 = Debug|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.Release|Win32.ActiveCfg = Release|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.Release|Win32.Build.0 = Release|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.ReleaseShared|Win32.Build.0 = Release|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.Unicode Release|Win32.Build.0 = Release|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.Unicode_Debug|Win32.ActiveCfg = Debug|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.Unicode_Debug|Win32.Build.0 = Debug|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.Unicode_Release|Win32.ActiveCfg = Release|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.Unicode_Release|Win32.Build.0 = Release|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {EF8EAD5A-DE98-4067-B9D0-45E765AD4EE6}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.Debug|Win32.ActiveCfg = Debug|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.Debug|Win32.Build.0 = Debug|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.Release|Win32.ActiveCfg = Release|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.Release|Win32.Build.0 = Release|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.ReleaseShared|Win32.Build.0 = Release|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.Unicode Release|Win32.Build.0 = Release|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {CEA65F15-22A4-4818-8E4B-013A6CE79C02}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.Debug|Win32.ActiveCfg = Debug|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.Debug|Win32.Build.0 = Debug|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.Release|Win32.ActiveCfg = Release|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.Release|Win32.Build.0 = Release|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.ReleaseShared|Win32.Build.0 = Release|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.Unicode Release|Win32.Build.0 = Release|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {F7B1D72A-92E8-4A43-8295-3D353F63ECA1}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.Debug|Win32.ActiveCfg = Debug|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.Debug|Win32.Build.0 = Debug|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.Release|Win32.ActiveCfg = Release|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.Release|Win32.Build.0 = Release|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.ReleaseShared|Win32.Build.0 = Release|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.Unicode Release|Win32.Build.0 = Release|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {A7155B4E-FD86-4E75-B89C-DB46F7449136}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.Debug|Win32.ActiveCfg = Debug|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.Debug|Win32.Build.0 = Debug|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.Release|Win32.ActiveCfg = Release|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.Release|Win32.Build.0 = Release|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.Unicode Release|Win32.Build.0 = Release|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {9C5A8B5D-C45A-42F6-876B-8E769D9631C3}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.Debug|Win32.ActiveCfg = Debug|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.Debug|Win32.Build.0 = Debug|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.Release|Win32.ActiveCfg = Release|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.Release|Win32.Build.0 = Release|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.ReleaseShared|Win32.Build.0 = Release|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.Unicode Release|Win32.Build.0 = Release|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {D9BCDE31-E94A-4002-A0D0-B895589C9CCE}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.Debug|Win32.ActiveCfg = Debug|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.Debug|Win32.Build.0 = Debug|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.Release|Win32.ActiveCfg = Release|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.Release|Win32.Build.0 = Release|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.ReleaseShared|Win32.Build.0 = Release|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.Unicode Release|Win32.Build.0 = Release|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {41AD7F97-A2A3-4B7C-8E63-7ADED4F365C9}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.Debug|Win32.ActiveCfg = Debug|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.Debug|Win32.Build.0 = Debug|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.Release|Win32.ActiveCfg = Release|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.Release|Win32.Build.0 = Release|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.Unicode Release|Win32.Build.0 = Unicode Release|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.Unicode_Debug|Win32.ActiveCfg = Debug|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.Unicode_Debug|Win32.Build.0 = Debug|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.Unicode_Release|Win32.ActiveCfg = Release|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.Unicode_Release|Win32.Build.0 = Release|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {E98EAE2F-5D5F-4D17-8629-3EDF9E265151}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.Debug|Win32.ActiveCfg = Debug|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.Debug|Win32.Build.0 = Debug|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.Release|Win32.ActiveCfg = Release|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.Release|Win32.Build.0 = Release|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.ReleaseShared|Win32.Build.0 = Release|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.Unicode Release|Win32.Build.0 = Release|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {2C5C831C-4D4E-4703-A4E6-188E441B3959}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.Debug_Unicode|Win32.ActiveCfg = DebugUnicode|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.Debug_Unicode|Win32.Build.0 = DebugUnicode|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.Debug|Win32.ActiveCfg = Debug|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.Debug|Win32.Build.0 = Debug|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.DebugUnicode|Win32.ActiveCfg = DebugUnicode|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.DebugUnicode|Win32.Build.0 = DebugUnicode|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.Release_Shared|Win32.ActiveCfg = ReleaseUnicode|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.Release_Shared|Win32.Build.0 = ReleaseUnicode|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.Release_Unicode|Win32.ActiveCfg = ReleaseUnicode|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.Release_Unicode|Win32.Build.0 = ReleaseUnicode|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.Release|Win32.ActiveCfg = Release|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.Release|Win32.Build.0 = Release|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.ReleaseShared|Win32.ActiveCfg = ReleaseShared|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.ReleaseShared|Win32.Build.0 = ReleaseShared|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.ReleaseUnicode|Win32.ActiveCfg = ReleaseUnicode|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.ReleaseUnicode|Win32.Build.0 = ReleaseUnicode|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.Unicode Release|Win32.Build.0 = Release|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.Unicode_Debug|Win32.ActiveCfg = Debug|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.Unicode_Debug|Win32.Build.0 = Debug|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.Unicode_Release|Win32.ActiveCfg = Release|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.Unicode_Release|Win32.Build.0 = Release|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {0C253783-D9E4-4DD9-8643-164C22C4CDE9}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.Debug|Win32.ActiveCfg = Debug|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.Debug|Win32.Build.0 = Debug|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.Release|Win32.ActiveCfg = Release|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.Release|Win32.Build.0 = Release|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.Unicode Release|Win32.Build.0 = Release|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {C0285571-2D5C-49A7-AAA6-D699107D65B3}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.Debug|Win32.ActiveCfg = Debug|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.Debug|Win32.Build.0 = Debug|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.Release|Win32.ActiveCfg = Release|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.Release|Win32.Build.0 = Release|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.Unicode Release|Win32.Build.0 = Release|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {8E43E587-76DE-4523-A6EF-322AB8E0D5CE}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.Debug|Win32.ActiveCfg = Debug|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.Debug|Win32.Build.0 = Debug|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.Release|Win32.ActiveCfg = Release|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.Release|Win32.Build.0 = Release|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.Unicode Release|Win32.Build.0 = Release|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {C43338CE-6AF0-4E1E-BD6A-3DAED7498C03}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.Debug|Win32.ActiveCfg = Debug|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.Debug|Win32.Build.0 = Debug|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.Release|Win32.ActiveCfg = Release|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.Release|Win32.Build.0 = Release|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.ReleaseShared|Win32.Build.0 = Release|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.Unicode Release|Win32.Build.0 = Release|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {F32DF29D-43FE-4E7B-BF80-EB641F4B8C5D}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.Debug|Win32.ActiveCfg = Debug|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.Debug|Win32.Build.0 = Debug|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.DebugUnicode|Win32.ActiveCfg = DebugUnicode|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.DebugUnicode|Win32.Build.0 = DebugUnicode|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.Release|Win32.ActiveCfg = Release|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.Release|Win32.Build.0 = Release|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.ReleaseShared|Win32.ActiveCfg = ReleaseUnicode|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.ReleaseShared|Win32.Build.0 = ReleaseUnicode|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.ReleaseUnicode|Win32.ActiveCfg = ReleaseUnicode|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.ReleaseUnicode|Win32.Build.0 = ReleaseUnicode|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.Unicode Release|Win32.Build.0 = Release|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.Unicode_Debug|Win32.ActiveCfg = Debug|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.Unicode_Debug|Win32.Build.0 = Debug|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.Unicode_Release|Win32.ActiveCfg = Release|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.Unicode_Release|Win32.Build.0 = Release|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {549EEE53-EEE6-4484-AA13-ACED98B99A6A}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.Debug|Win32.ActiveCfg = Debug|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.Debug|Win32.Build.0 = Debug|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.Release|Win32.ActiveCfg = Release|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.Release|Win32.Build.0 = Release|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.Unicode Release|Win32.Build.0 = Release|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {33E23649-48BC-40CC-901B-19131E21A83E}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.Debug|Win32.ActiveCfg = Debug|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.Debug|Win32.Build.0 = Debug|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.Release|Win32.ActiveCfg = Release|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.Release|Win32.Build.0 = Release|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.Unicode Release|Win32.Build.0 = Release|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {95C3C484-D129-49A6-8CF1-876E642209D4}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.Debug|Win32.ActiveCfg = Debug|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.Debug|Win32.Build.0 = Debug|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.Release|Win32.ActiveCfg = Release|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.Release|Win32.Build.0 = Release|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.Unicode Release|Win32.Build.0 = Release|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {FC81C4F3-BE4E-4C44-8DAD-17B4863148A6}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.Debug|Win32.ActiveCfg = Debug|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.Debug|Win32.Build.0 = Debug|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.Release|Win32.ActiveCfg = Release|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.Release|Win32.Build.0 = Release|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.ReleaseShared|Win32.Build.0 = Release|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.Unicode Release|Win32.Build.0 = Release|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {A67ECAB2-F6C5-491E-A3EB-2212081B6191}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.Debug|Win32.ActiveCfg = Debug|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.Debug|Win32.Build.0 = Debug|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.Release|Win32.ActiveCfg = Release|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.Release|Win32.Build.0 = Release|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.Unicode Release|Win32.Build.0 = Release|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {684A4664-BC51-4A46-91E2-E62A3241C30F}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.Debug_Unicode|Win32.ActiveCfg = Debug_Unicode|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.Debug_Unicode|Win32.Build.0 = Debug_Unicode|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.Debug|Win32.ActiveCfg = Debug|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.Debug|Win32.Build.0 = Debug|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.DebugUnicode|Win32.ActiveCfg = Debug_Unicode|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.DebugUnicode|Win32.Build.0 = Debug_Unicode|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.Release_Unicode|Win32.ActiveCfg = Release_Unicode|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.Release_Unicode|Win32.Build.0 = Release_Unicode|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.Release|Win32.ActiveCfg = Release|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.Release|Win32.Build.0 = Release|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.ReleaseShared|Win32.ActiveCfg = Release_Unicode|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.ReleaseShared|Win32.Build.0 = Release_Unicode|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.ReleaseUnicode|Win32.ActiveCfg = Release_Unicode|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.ReleaseUnicode|Win32.Build.0 = Release_Unicode|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.Unicode Release|Win32.Build.0 = Release|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.Unicode_Debug|Win32.ActiveCfg = Debug|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.Unicode_Debug|Win32.Build.0 = Debug|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.Unicode_Release|Win32.ActiveCfg = Release|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.Unicode_Release|Win32.Build.0 = Release|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {55FA0C3A-F07B-4A43-9465-FACD23C71D37}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.Debug|Win32.ActiveCfg = Debug|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.Debug|Win32.Build.0 = Debug|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.Release|Win32.ActiveCfg = Release|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.Release|Win32.Build.0 = Release|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.ReleaseShared|Win32.Build.0 = Release|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.Unicode Release|Win32.Build.0 = Release|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {38F5787F-E6C3-4F2B-8E68-2C86B84E3FFC}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.Debug|Win32.ActiveCfg = Debug|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.Debug|Win32.Build.0 = Debug|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.Release|Win32.ActiveCfg = Release|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.Release|Win32.Build.0 = Release|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.Unicode Release|Win32.Build.0 = Release|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {0EB44FC1-8B19-4F28-AB84-6D029C00EF3E}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.Debug|Win32.ActiveCfg = Debug|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.Debug|Win32.Build.0 = Debug|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.Release|Win32.ActiveCfg = Release|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.Release|Win32.Build.0 = Release|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.Unicode Release|Win32.Build.0 = Release|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {F1872280-AF4A-4BE3-8C09-4B23CB0146BD}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.Debug|Win32.ActiveCfg = Debug|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.Debug|Win32.Build.0 = Debug|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.Release|Win32.ActiveCfg = Release|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.Release|Win32.Build.0 = Release|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.ReleaseShared|Win32.Build.0 = Release|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.Unicode Release|Win32.Build.0 = Release|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {0616C61D-2FDB-4A62-B52C-8DC000C0B8F7}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.Debug|Win32.ActiveCfg = Debug|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.Debug|Win32.Build.0 = Debug|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.Release|Win32.ActiveCfg = Release|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.Release|Win32.Build.0 = Release|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.Unicode Release|Win32.Build.0 = Release|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {999E5BF9-8FF5-4490-BCDC-2DCF24E44D0A}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.Debug|Win32.ActiveCfg = Debug|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.Debug|Win32.Build.0 = Debug|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.Release|Win32.ActiveCfg = Release|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.Release|Win32.Build.0 = Release|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.Unicode Release|Win32.Build.0 = Release|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.Unicode_Debug|Win32.ActiveCfg = Debug|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.Unicode_Debug|Win32.Build.0 = Debug|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.Unicode_Release|Win32.ActiveCfg = Release|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.Unicode_Release|Win32.Build.0 = Release|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {52C98624-EE86-40C9-B679-ABF97FF9050F}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.Debug|Win32.ActiveCfg = Debug|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.Debug|Win32.Build.0 = Debug|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.Release|Win32.ActiveCfg = Release|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.Release|Win32.Build.0 = Release|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.Unicode Release|Win32.Build.0 = Release|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {CDBC1648-8457-49E4-A8F3-A2E11CF1CF7D}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.Debug|Win32.ActiveCfg = Debug|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.Debug|Win32.Build.0 = Debug|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.Release|Win32.ActiveCfg = Release|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.Release|Win32.Build.0 = Release|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.Unicode Release|Win32.Build.0 = Release|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {70075261-66BB-4269-8662-1BFD046ABF43}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.Debug|Win32.ActiveCfg = Debug|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.Debug|Win32.Build.0 = Debug|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.Release|Win32.ActiveCfg = Release|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.Release|Win32.Build.0 = Release|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.Unicode Release|Win32.Build.0 = Release|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {DDFCEAB2-AF5D-4CEF-8C2D-D38FAD153A7F}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.Debug|Win32.ActiveCfg = Debug|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.Debug|Win32.Build.0 = Debug|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.Release|Win32.ActiveCfg = Release|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.Release|Win32.Build.0 = Release|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.Unicode Release|Win32.Build.0 = Release|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {D1446E51-4678-4C37-9C38-143B4D3BEC06}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.Debug|Win32.ActiveCfg = Debug|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.Debug|Win32.Build.0 = Debug|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.Release|Win32.ActiveCfg = Release|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.Release|Win32.Build.0 = Release|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.Unicode Release|Win32.Build.0 = Release|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.Unicode_Debug|Win32.ActiveCfg = Debug|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.Unicode_Debug|Win32.Build.0 = Debug|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {CD680273-4B2C-4904-BF69-7FF6ED7D7951}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.Debug|Win32.ActiveCfg = Debug|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.Debug|Win32.Build.0 = Debug|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.Release_Shared|Win32.ActiveCfg = Release|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.Release_Shared|Win32.Build.0 = Release|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.Release_Unicode|Win32.ActiveCfg = Release|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.Release_Unicode|Win32.Build.0 = Release|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.Release|Win32.ActiveCfg = Release|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.Release|Win32.Build.0 = Release|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.ReleaseShared|Win32.Build.0 = Release|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.Unicode Release|Win32.Build.0 = Release|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.Unicode_Debug|Win32.ActiveCfg = Debug|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.Unicode_Debug|Win32.Build.0 = Debug|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.Unicode_Release|Win32.ActiveCfg = Release|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.Unicode_Release|Win32.Build.0 = Release|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {383EE854-F9D2-44ED-BE9F-A90A2354D781}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.Debug|Win32.ActiveCfg = Debug|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.Debug|Win32.Build.0 = Debug|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.Release_Shared|Win32.ActiveCfg = Release|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.Release_Shared|Win32.Build.0 = Release|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.Release_Unicode|Win32.ActiveCfg = Release|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.Release_Unicode|Win32.Build.0 = Release|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.Release|Win32.ActiveCfg = Release|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.Release|Win32.Build.0 = Release|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.ReleaseShared|Win32.Build.0 = Release|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.Unicode Release|Win32.Build.0 = Unicode Release|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.Unicode_Debug|Win32.ActiveCfg = Debug|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.Unicode_Debug|Win32.Build.0 = Debug|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.Unicode_Release|Win32.ActiveCfg = Release|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.Unicode_Release|Win32.Build.0 = Release|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.Debug|Win32.ActiveCfg = Debug|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.Debug|Win32.Build.0 = Debug|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.Release|Win32.ActiveCfg = Release|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.Release|Win32.Build.0 = Release|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.Unicode Release|Win32.Build.0 = Release|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {B4596412-B65A-4277-9DB0-EA8888043A36}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.Debug|Win32.ActiveCfg = Debug|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.Debug|Win32.Build.0 = Debug|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.Release|Win32.ActiveCfg = Release|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.Release|Win32.Build.0 = Release|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.ReleaseShared|Win32.Build.0 = Release|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.Unicode Release|Win32.Build.0 = Release|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {3F68CEF2-2882-4638-83E1-F24803B9CD53}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.Debug|Win32.ActiveCfg = Debug|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.Debug|Win32.Build.0 = Debug|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.Release|Win32.ActiveCfg = Release|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.Release|Win32.Build.0 = Release|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.ReleaseShared|Win32.Build.0 = Release|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.Unicode Release|Win32.Build.0 = Release|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {AFA1F68C-993E-4717-94FC-CB6398833C5D}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.Debug|Win32.ActiveCfg = Debug|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.Debug|Win32.Build.0 = Debug|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.Release|Win32.ActiveCfg = Release|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.Release|Win32.Build.0 = Release|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.ReleaseShared|Win32.Build.0 = Release|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.Unicode Release|Win32.Build.0 = Release|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {396F525F-44D9-48AC-9E6A-B1754B715E93}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.Debug|Win32.ActiveCfg = Debug|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.Debug|Win32.Build.0 = Debug|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.Release|Win32.ActiveCfg = Release|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.Release|Win32.Build.0 = Release|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.ReleaseShared|Win32.Build.0 = Release|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.Unicode Release|Win32.Build.0 = Release|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {8B68C24D-34A9-4C10-A873-F5EE35BB40B3}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.Debug|Win32.ActiveCfg = Debug|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.Debug|Win32.Build.0 = Debug|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.Release|Win32.ActiveCfg = Release|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.Release|Win32.Build.0 = Release|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.ReleaseShared|Win32.Build.0 = Release|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.Unicode Release|Win32.Build.0 = Release|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {448183A2-C773-4015-8B52-962904852B9A}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.Debug|Win32.ActiveCfg = Debug|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.Debug|Win32.Build.0 = Debug|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.Release|Win32.ActiveCfg = Release|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.Release|Win32.Build.0 = Release|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.Unicode Release|Win32.Build.0 = Release|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {87747963-45F7-4A05-B971-78FE15872EA7}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.Debug|Win32.ActiveCfg = Debug|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.Debug|Win32.Build.0 = Debug|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.Release|Win32.ActiveCfg = Release|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.Release|Win32.Build.0 = Release|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.Unicode Release|Win32.Build.0 = Release|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {673F36FA-666A-4274-B560-EB1BCB99DE1B}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.Debug|Win32.ActiveCfg = Debug|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.Debug|Win32.Build.0 = Debug|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.Release|Win32.ActiveCfg = Release|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.Release|Win32.Build.0 = Release|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.ReleaseShared|Win32.Build.0 = Release|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.Unicode Release|Win32.Build.0 = Release|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {4BF68E89-342E-4E7D-8623-26B538D02D34}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.Debug|Win32.ActiveCfg = Debug|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.Debug|Win32.Build.0 = Debug|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.Release|Win32.ActiveCfg = Release|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.Release|Win32.Build.0 = Release|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.Unicode Release|Win32.Build.0 = Release|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {29CA054F-3945-488A-AB47-D29A58C694A5}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.Debug|Win32.ActiveCfg = Debug|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.Debug|Win32.Build.0 = Debug|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.Release|Win32.ActiveCfg = Release|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.Release|Win32.Build.0 = Release|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.ReleaseShared|Win32.Build.0 = Release|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.Unicode Release|Win32.Build.0 = Release|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {6B900F8C-C808-460A-BF17-12143C6CB1E8}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.Debug_Unicode|Win32.ActiveCfg = DebugUnicode|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.Debug_Unicode|Win32.Build.0 = DebugUnicode|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.Debug|Win32.ActiveCfg = Debug|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.Debug|Win32.Build.0 = Debug|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.DebugUnicode|Win32.ActiveCfg = DebugUnicode|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.DebugUnicode|Win32.Build.0 = DebugUnicode|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.Release|Win32.ActiveCfg = Release|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.Release|Win32.Build.0 = Release|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.ReleaseUnicode|Win32.ActiveCfg = ReleaseUnicode|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.ReleaseUnicode|Win32.Build.0 = ReleaseUnicode|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.Unicode Release|Win32.Build.0 = Release|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.Unicode_Debug|Win32.ActiveCfg = Debug|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.Unicode_Debug|Win32.Build.0 = Debug|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.Unicode_Release|Win32.ActiveCfg = Release|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.Unicode_Release|Win32.Build.0 = Release|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {39AA238D-6DF0-40E5-BFD7-32C72FFFCD02}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.Debug|Win32.ActiveCfg = Debug|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.Debug|Win32.Build.0 = Debug|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.Release|Win32.ActiveCfg = Release|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.Release|Win32.Build.0 = Release|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.Unicode Release|Win32.Build.0 = Release|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {7992FECF-AEC9-4E72-9035-EEDACFE899C6}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.Debug_Unicode|Win32.ActiveCfg = Debug_Unicode|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.Debug_Unicode|Win32.Build.0 = Debug_Unicode|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.Debug|Win32.ActiveCfg = Debug|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.Debug|Win32.Build.0 = Debug|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.DebugUnicode|Win32.ActiveCfg = Debug_Unicode|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.DebugUnicode|Win32.Build.0 = Debug_Unicode|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.Release_Unicode|Win32.ActiveCfg = Release_Unicode|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.Release_Unicode|Win32.Build.0 = Release_Unicode|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.Release|Win32.ActiveCfg = Release|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.Release|Win32.Build.0 = Release|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.ReleaseShared|Win32.ActiveCfg = Release_Unicode|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.ReleaseShared|Win32.Build.0 = Release_Unicode|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.ReleaseUnicode|Win32.ActiveCfg = Release_Unicode|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.ReleaseUnicode|Win32.Build.0 = Release_Unicode|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.Unicode Release|Win32.Build.0 = Release|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.Unicode_Debug|Win32.ActiveCfg = Debug|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.Unicode_Debug|Win32.Build.0 = Debug|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.Unicode_Release|Win32.ActiveCfg = Release|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.Unicode_Release|Win32.Build.0 = Release|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {6E1019D0-4AA0-4233-B32D-D085CD79E526}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.Debug|Win32.ActiveCfg = Debug|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.Debug|Win32.Build.0 = Debug|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.Release|Win32.ActiveCfg = Release|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.Release|Win32.Build.0 = Release|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.ReleaseShared|Win32.Build.0 = Release|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.Unicode Release|Win32.Build.0 = Release|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {A7E8CA5B-F812-45F5-BEB8-D3C999A86995}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.Debug|Win32.ActiveCfg = Debug|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.Debug|Win32.Build.0 = Debug|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.Release|Win32.ActiveCfg = Release|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.Release|Win32.Build.0 = Release|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.Unicode Release|Win32.Build.0 = Release|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {2ACE5793-2DFE-4178-B02B-4DB3AA9F8FC8}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.Debug|Win32.ActiveCfg = Debug|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.Debug|Win32.Build.0 = Debug|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.Release|Win32.ActiveCfg = Release|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.Release|Win32.Build.0 = Release|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.ReleaseShared|Win32.Build.0 = Release|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.Unicode Release|Win32.Build.0 = Release|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {0AD5CFBC-B35D-43F5-A6C3-D2871494681E}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.Debug|Win32.ActiveCfg = Debug|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.Debug|Win32.Build.0 = Debug|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.Release|Win32.ActiveCfg = Release|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.Release|Win32.Build.0 = Release|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.ReleaseShared|Win32.Build.0 = Release|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.Unicode Release|Win32.Build.0 = Release|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {A5017E69-8F71-45DF-BF46-B1E0DF18646B}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.Debug|Win32.ActiveCfg = Debug|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.Debug|Win32.Build.0 = Debug|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.Release|Win32.ActiveCfg = Release|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.Release|Win32.Build.0 = Release|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.ReleaseShared|Win32.Build.0 = Release|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.Unicode Release|Win32.Build.0 = Release|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {7ECEE602-53B5-499B-BECB-2DC15DE5A4E2}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.Debug|Win32.ActiveCfg = Debug|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.Debug|Win32.Build.0 = Debug|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.Release|Win32.ActiveCfg = Release|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.Release|Win32.Build.0 = Release|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.ReleaseShared|Win32.Build.0 = Release|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.Unicode Release|Win32.Build.0 = Release|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {B6D9617C-C9DA-457A-874E-1AE37C8C75E6}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.Debug|Win32.ActiveCfg = Debug|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.Debug|Win32.Build.0 = Debug|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.Release|Win32.ActiveCfg = Release|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.Release|Win32.Build.0 = Release|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.ReleaseShared|Win32.Build.0 = Release|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.Unicode Release|Win32.Build.0 = Release|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.Unicode_Debug|Win32.ActiveCfg = Unicode_Debug|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.Unicode_Debug|Win32.Build.0 = Unicode_Debug|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.Unicode_Release|Win32.ActiveCfg = Unicode_Release|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.Unicode_Release|Win32.Build.0 = Unicode_Release|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {2BBAB318-883C-43AF-A326-BC6D06C5518F}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.Debug|Win32.ActiveCfg = Debug|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.Debug|Win32.Build.0 = Debug|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.Release_Unicode|Win32.ActiveCfg = Release_Shared|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.Release_Unicode|Win32.Build.0 = Release_Shared|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.Release|Win32.ActiveCfg = Release|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.Release|Win32.Build.0 = Release|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.ReleaseShared|Win32.ActiveCfg = Release_Shared|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.ReleaseShared|Win32.Build.0 = Release_Shared|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.ReleaseUnicode|Win32.ActiveCfg = Release_Shared|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.ReleaseUnicode|Win32.Build.0 = Release_Shared|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.Unicode Release|Win32.Build.0 = Unicode Release|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.Unicode_Debug|Win32.ActiveCfg = Debug|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.Unicode_Debug|Win32.Build.0 = Debug|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.Unicode_Release|Win32.ActiveCfg = Release|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.Unicode_Release|Win32.Build.0 = Release|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {D2563ABA-425A-41DA-8756-FDBCBFBC5D4B}.UnicodeRelease|Win32.Build.0 = Release|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.Debug_Unicode|Win32.ActiveCfg = Debug|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.Debug_Unicode|Win32.Build.0 = Debug|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.Debug|Win32.ActiveCfg = Debug|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.Debug|Win32.Build.0 = Debug|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.DebugUnicode|Win32.ActiveCfg = Debug|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.DebugUnicode|Win32.Build.0 = Debug|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.Release_Shared|Win32.ActiveCfg = Release|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.Release_Shared|Win32.Build.0 = Release|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.Release_Unicode|Win32.ActiveCfg = Release|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.Release_Unicode|Win32.Build.0 = Release|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.Release|Win32.ActiveCfg = Release|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.Release|Win32.Build.0 = Release|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.ReleaseShared|Win32.ActiveCfg = Release|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.ReleaseShared|Win32.Build.0 = Release|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.ReleaseUnicode|Win32.ActiveCfg = Release|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.ReleaseUnicode|Win32.Build.0 = Release|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.Unicode Debug|Win32.ActiveCfg = Debug|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.Unicode Debug|Win32.Build.0 = Debug|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.Unicode Release|Win32.ActiveCfg = Release|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.Unicode Release|Win32.Build.0 = Release|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.Unicode_Debug|Win32.ActiveCfg = Debug|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.Unicode_Debug|Win32.Build.0 = Debug|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.Unicode_Release|Win32.ActiveCfg = Release|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.Unicode_Release|Win32.Build.0 = Release|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.UnicodeDebug|Win32.ActiveCfg = Debug|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.UnicodeDebug|Win32.Build.0 = Debug|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.UnicodeRelease|Win32.ActiveCfg = Release|Win32 + {1AF15FBC-E92F-4161-99F7-7C1960A9F529}.UnicodeRelease|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/ReadMe.txt b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/ReadMe.txt new file mode 100644 index 0000000..b58cc08 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/ReadMe.txt @@ -0,0 +1,88 @@ +======================================================================== + MICROSOFT FOUNDATION CLASS LIBRARY : UsingDLL +======================================================================== + + +AppWizard has created this UsingDLL application for you. This application +not only demonstrates the basics of using the Microsoft Foundation classes +but is also a starting point for writing your application. + +This file contains a summary of what you will find in each of the files that +make up your UsingDLL application. + +UsingDLL.dsp + This file (the project file) contains information at the project level and + is used to build a single project or subproject. Other users can share the + project (.dsp) file, but they should export the makefiles locally. + +UsingDLL.h + This is the main header file for the application. It includes other + project specific headers (including Resource.h) and declares the + CUsingDLLApp application class. + +UsingDLL.cpp + This is the main application source file that contains the application + class CUsingDLLApp. + +UsingDLL.rc + This is a listing of all of the Microsoft Windows resources that the + program uses. It includes the icons, bitmaps, and cursors that are stored + in the RES subdirectory. This file can be directly edited in Microsoft + Visual C++. + +UsingDLL.clw + This file contains information used by ClassWizard to edit existing + classes or add new classes. ClassWizard also uses this file to store + information needed to create and edit message maps and dialog data + maps and to create prototype member functions. + +res\UsingDLL.ico + This is an icon file, which is used as the application's icon. This + icon is included by the main resource file UsingDLL.rc. + +res\UsingDLL.rc2 + This file contains resources that are not edited by Microsoft + Visual C++. You should place all resources not editable by + the resource editor in this file. + + + + +///////////////////////////////////////////////////////////////////////////// + +AppWizard creates one dialog class: + +UsingDLLDlg.h, UsingDLLDlg.cpp - the dialog + These files contain your CUsingDLLDlg class. This class defines + the behavior of your application's main dialog. The dialog's + template is in UsingDLL.rc, which can be edited in Microsoft + Visual C++. + + +///////////////////////////////////////////////////////////////////////////// +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named UsingDLL.pch and a precompiled types file named StdAfx.obj. + +Resource.h + This is the standard header file, which defines new resource IDs. + Microsoft Visual C++ reads and updates this file. + +///////////////////////////////////////////////////////////////////////////// +Other notes: + +AppWizard uses "TODO:" to indicate parts of the source code you +should add to or customize. + +If your application uses MFC in a shared DLL, and your application is +in a language other than the operating system's current language, you +will need to copy the corresponding localized resources MFC42XXX.DLL +from the Microsoft Visual C++ CD-ROM onto the system or system32 directory, +and rename it to be MFCLOC.DLL. ("XXX" stands for the language abbreviation. +For example, MFC42DEU.DLL contains resources translated to German.) If you +don't do this, some of the UI elements of your application will remain in the +language of the operating system. + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/StdAfx.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/StdAfx.cpp new file mode 100644 index 0000000..ec5c8dd --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/StdAfx.cpp @@ -0,0 +1,8 @@ +// stdafx.cpp : source file that includes just the standard includes +// UsingDLL.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/StdAfx.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/StdAfx.h new file mode 100644 index 0000000..2f9c307 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/StdAfx.h @@ -0,0 +1,30 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#if !defined(AFX_STDAFX_H__1E45C133_14C9_4003_9BD3_AB8428DFB8AB__INCLUDED_) +#define AFX_STDAFX_H__1E45C133_14C9_4003_9BD3_AB8428DFB8AB__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers + +#include // MFC core and standard components +#include // MFC extensions +#include // MFC Automation classes +#include // MFC support for Internet Explorer 4 Common Controls +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for Windows Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + +// STEP 2: +#define _LINK_TO_UTB_IN_EXTDLL +#include "UTDLL.h" + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_STDAFX_H__1E45C133_14C9_4003_9BD3_AB8428DFB8AB__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLL.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLL.cpp new file mode 100644 index 0000000..383ca6e --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLL.cpp @@ -0,0 +1,74 @@ +// UsingDLL.cpp : Defines the class behaviors for the application. +// + +#include "stdafx.h" +#include "UsingDLL.h" +#include "UsingDLLDlg.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CUsingDLLApp + +BEGIN_MESSAGE_MAP(CUsingDLLApp, CWinApp) + //{{AFX_MSG_MAP(CUsingDLLApp) + // 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() + +///////////////////////////////////////////////////////////////////////////// +// CUsingDLLApp construction + +CUsingDLLApp::CUsingDLLApp() +{ + // TODO: add construction code here, + // Place all significant initialization in InitInstance +} + +///////////////////////////////////////////////////////////////////////////// +// The one and only CUsingDLLApp object + +CUsingDLLApp theApp; + +///////////////////////////////////////////////////////////////////////////// +// CUsingDLLApp initialization + +BOOL CUsingDLLApp::InitInstance() +{ + AfxEnableControlContainer(); + + // 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 + + CUsingDLLDlg 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; +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLL.dsp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLL.dsp new file mode 100644 index 0000000..9930c8d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLL.dsp @@ -0,0 +1,221 @@ +# Microsoft Developer Studio Project File - Name="UsingDLL" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=UsingDLL - Win32 Unicode Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "UsingDLL.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "UsingDLL.mak" CFG="UsingDLL - Win32 Unicode Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "UsingDLL - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE "UsingDLL - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "UsingDLL - Win32 Unicode Debug" (based on "Win32 (x86) Application") +!MESSAGE "UsingDLL - Win32 Unicode Release" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "UsingDLL - Win32 Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\lib\DLLs" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PreLink_Cmds=if not exist "..\..\..\lib\DLLs\UTD.lib" echo ERROR : UTD.lib not found. You need to build the UT project (Debug) found in /lib/Build DLLs +# End Special Build Tool + +!ELSEIF "$(CFG)" == "UsingDLL - Win32 Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "UsingDLL___Win32_Release" +# PROP BASE Intermediate_Dir "UsingDLL___Win32_Release" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /libpath:"..\..\..\lib\DLLs" +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /libpath:"..\..\..\lib\DLLs" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PreLink_Cmds=if not exist "..\..\..\lib\DLLs\UT.lib" echo ERROR : UT.lib not found. You need to build the UT project (Release) found in /lib/Build DLLs +# End Special Build Tool + +!ELSEIF "$(CFG)" == "UsingDLL - Win32 Unicode Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "UsingDLL___Win32_Unicode_Debug" +# PROP BASE Intermediate_Dir "UsingDLL___Win32_Unicode_Debug" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "DebugU" +# PROP Intermediate_Dir "DebugU" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_UNICODE" /Yu"stdafx.h" /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\lib\DLLs" +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\lib\DLLs" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PreLink_Cmds=if not exist "..\..\..\lib\DLLs\UTDU.lib" echo ERROR : UTDU.lib not found. You need to build the UT project (Unicode Debug) found in /lib/Build DLLs +# End Special Build Tool + +!ELSEIF "$(CFG)" == "UsingDLL - Win32 Unicode Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "UsingDLL___Win32_Unicode_Release" +# PROP BASE Intermediate_Dir "UsingDLL___Win32_Unicode_Release" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "ReleaseU" +# PROP Intermediate_Dir "ReleaseU" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_UNICODE" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /libpath:"..\..\..\lib\DLLs" +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /machine:I386 /libpath:"..\..\..\lib\DLLs" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PreLink_Cmds=if not exist "..\..\..\lib\DLLs\UTU.lib" echo ERROR : UTU.lib not found. You need to build the UT project (Unicode Release) found in /lib/Build DLLs +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "UsingDLL - Win32 Debug" +# Name "UsingDLL - Win32 Release" +# Name "UsingDLL - Win32 Unicode Debug" +# Name "UsingDLL - Win32 Unicode Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# Begin Source File + +SOURCE=.\UsingDLL.cpp +# End Source File +# Begin Source File + +SOURCE=.\UsingDLL.rc +# End Source File +# Begin Source File + +SOURCE=.\UsingDLLDlg.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\Resource.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# Begin Source File + +SOURCE=.\UsingDLL.h +# End Source File +# Begin Source File + +SOURCE=.\UsingDLLDlg.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\res\UsingDLL.ico +# End Source File +# Begin Source File + +SOURCE=.\res\UsingDLL.rc2 +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ReadMe.txt +# End Source File +# End Target +# End Project diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLL.dsw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLL.dsw new file mode 100644 index 0000000..5cfc1f6 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLL.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "UsingDLL"=".\UsingDLL.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLL.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLL.h new file mode 100644 index 0000000..195b82e --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLL.h @@ -0,0 +1,49 @@ +// UsingDLL.h : main header file for the USINGDLL application +// + +#if !defined(AFX_USINGDLL_H__79D3F732_28CF_42E3_8553_1F8E40B588B7__INCLUDED_) +#define AFX_USINGDLL_H__79D3F732_28CF_42E3_8553_1F8E40B588B7__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols + +///////////////////////////////////////////////////////////////////////////// +// CUsingDLLApp: +// See UsingDLL.cpp for the implementation of this class +// + +class CUsingDLLApp : public CWinApp +{ +public: + CUsingDLLApp(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CUsingDLLApp) + public: + virtual BOOL InitInstance(); + //}}AFX_VIRTUAL + +// Implementation + + //{{AFX_MSG(CUsingDLLApp) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_USINGDLL_H__79D3F732_28CF_42E3_8553_1F8E40B588B7__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLL.rc b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLL.rc new file mode 100644 index 0000000..0aa7208 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLL.rc @@ -0,0 +1,220 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif //_WIN32\r\n" + "#include ""res\\UsingDLL.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "#endif\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON DISCARDABLE "res\\UsingDLL.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 235, 55 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "About UsingDLL" +FONT 8, "MS Sans Serif" +BEGIN + ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20 + LTEXT "UsingDLL Version 1.0",IDC_STATIC,40,10,119,8, + SS_NOPREFIX + LTEXT "Copyright (C) The Code Project 2002 - 2005",IDC_STATIC, + 40,25,143,8 + DEFPUSHBUTTON "OK",IDOK,178,7,50,14,WS_GROUP +END + +IDD_USINGDLL_DIALOG DIALOGEX 0, 0, 295, 170 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +EXSTYLE WS_EX_APPWINDOW +CAPTION "UsingDLL" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "OK",IDOK,180,145,50,14 + PUSHBUTTON "Cancel",IDCANCEL,235,145,50,14 + LTEXT "STEP 1: Compile the UT project located in /lib/Build DLLs.", + IDC_STATIC,30,35,200,10 + LTEXT "You need to perform the following steps in order to use the Ultimate ToolBox in a DLL:", + IDC_STATIC,15,15,275,10 + LTEXT "STEP 2: Add the following lines to to the end of your project's StdAfx.h file:", + IDC_STATIC,30,55,245,10 + LTEXT "www.theultimatetoolbox.com",IDC_STATIC_HYPERLING,130, + 125,98,10 + LTEXT "If everything is OK you should be able to compile and run this project.", + IDC_STATIC,15,110,230,10 + LTEXT "Also the following link should work:",IDC_STATIC,15,125, + 110,8 + LTEXT "#define _LINK_TO_UTB_IN_EXTDLL\n#include ""UTDLL.h""", + IDC_STATIC,40,75,205,20 +END + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "UsingDLL MFC Application\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "UsingDLL\0" + VALUE "LegalCopyright", "Copyright (C) 2002\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "UsingDLL.EXE\0" + VALUE "ProductName", "UsingDLL Application\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_ABOUTBOX, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 228 + TOPMARGIN, 7 + BOTTOMMARGIN, 48 + END + + IDD_USINGDLL_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 288 + TOPMARGIN, 7 + BOTTOMMARGIN, 163 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_ABOUTBOX "&About UsingDLL..." +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif //_WIN32 +#include "res\UsingDLL.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +#endif + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLLDlg.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLLDlg.cpp new file mode 100644 index 0000000..f67b953 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLLDlg.cpp @@ -0,0 +1,169 @@ +// UsingDLLDlg.cpp : implementation file +// + +#include "stdafx.h" +#include "UsingDLL.h" +#include "UsingDLLDlg.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CAboutDlg dialog used for App About + +class CAboutDlg : public CDialog +{ +public: + CAboutDlg(); + +// Dialog Data + //{{AFX_DATA(CAboutDlg) + enum { IDD = IDD_ABOUTBOX }; + //}}AFX_DATA + + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CAboutDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + //{{AFX_MSG(CAboutDlg) + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) +{ + //{{AFX_DATA_INIT(CAboutDlg) + //}}AFX_DATA_INIT +} + +void CAboutDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CAboutDlg) + //}}AFX_DATA_MAP +} + +BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) + //{{AFX_MSG_MAP(CAboutDlg) + // No message handlers + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CUsingDLLDlg dialog + +CUsingDLLDlg::CUsingDLLDlg(CWnd* pParent /*=NULL*/) + : CDialog(CUsingDLLDlg::IDD, pParent) +{ + //{{AFX_DATA_INIT(CUsingDLLDlg) + //}}AFX_DATA_INIT + // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 + m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); +} + +void CUsingDLLDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CUsingDLLDlg) + DDX_Control(pDX, IDC_STATIC_HYPERLING, m_HyperLink); + //}}AFX_DATA_MAP +} + +BEGIN_MESSAGE_MAP(CUsingDLLDlg, CDialog) + //{{AFX_MSG_MAP(CUsingDLLDlg) + ON_WM_SYSCOMMAND() + ON_WM_PAINT() + ON_WM_QUERYDRAGICON() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CUsingDLLDlg message handlers + +BOOL CUsingDLLDlg::OnInitDialog() +{ + CDialog::OnInitDialog(); + + // Add "About..." menu item to system menu. + + // IDM_ABOUTBOX must be in the system command range. + ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); + ASSERT(IDM_ABOUTBOX < 0xF000); + + CMenu* pSysMenu = GetSystemMenu(FALSE); + if (pSysMenu != NULL) + { + CString strAboutMenu; + strAboutMenu.LoadString(IDS_ABOUTBOX); + if (!strAboutMenu.IsEmpty()) + { + pSysMenu->AppendMenu(MF_SEPARATOR); + pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); + } + } + + // Set the icon for this dialog. The framework does this automatically + // when the application's main window is not a dialog + SetIcon(m_hIcon, TRUE); // Set big icon + SetIcon(m_hIcon, FALSE); // Set small icon + + // TODO: Add extra initialization here + + return TRUE; // return TRUE unless you set the focus to a control +} + +void CUsingDLLDlg::OnSysCommand(UINT nID, LPARAM lParam) +{ + if ((nID & 0xFFF0) == IDM_ABOUTBOX) + { + CAboutDlg dlgAbout; + dlgAbout.DoModal(); + } + else + { + CDialog::OnSysCommand(nID, lParam); + } +} + +// If you add a minimize button to your dialog, you will need the code below +// to draw the icon. For MFC applications using the document/view model, +// this is automatically done for you by the framework. + +void CUsingDLLDlg::OnPaint() +{ + if (IsIconic()) + { + CPaintDC dc(this); // device context for painting + + SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); + + // Center icon in client rectangle + int cxIcon = GetSystemMetrics(SM_CXICON); + int cyIcon = GetSystemMetrics(SM_CYICON); + CRect rect; + GetClientRect(&rect); + int x = (rect.Width() - cxIcon + 1) / 2; + int y = (rect.Height() - cyIcon + 1) / 2; + + // Draw the icon + dc.DrawIcon(x, y, m_hIcon); + } + else + { + CDialog::OnPaint(); + } +} + +// The system calls this to obtain the cursor to display while the user drags +// the minimized window. +HCURSOR CUsingDLLDlg::OnQueryDragIcon() +{ + return (HCURSOR) m_hIcon; +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLLDlg.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLLDlg.h new file mode 100644 index 0000000..9d431da --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/UsingDLLDlg.h @@ -0,0 +1,51 @@ +// UsingDLLDlg.h : header file +// + +#if !defined(AFX_USINGDLLDLG_H__F8BE97CD_A983_4FAE_95B5_EDE302C33EE6__INCLUDED_) +#define AFX_USINGDLLDLG_H__F8BE97CD_A983_4FAE_95B5_EDE302C33EE6__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +///////////////////////////////////////////////////////////////////////////// +// CUsingDLLDlg dialog + +#include "OXStaticHyperLink.h" + +class CUsingDLLDlg : public CDialog +{ +// Construction +public: + CUsingDLLDlg(CWnd* pParent = NULL); // standard constructor + +// Dialog Data + //{{AFX_DATA(CUsingDLLDlg) + enum { IDD = IDD_USINGDLL_DIALOG }; + COXStaticHyperLink m_HyperLink; + //}}AFX_DATA + + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CUsingDLLDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + HICON m_hIcon; + + // Generated message map functions + //{{AFX_MSG(CUsingDLLDlg) + virtual BOOL OnInitDialog(); + afx_msg void OnSysCommand(UINT nID, LPARAM lParam); + afx_msg void OnPaint(); + afx_msg HCURSOR OnQueryDragIcon(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_USINGDLLDLG_H__F8BE97CD_A983_4FAE_95B5_EDE302C33EE6__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/res/UsingDLL.ico b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/res/UsingDLL.ico new file mode 100644 index 0000000000000000000000000000000000000000..7eef0bcbe6580a6f464d688906172c2d9de44262 GIT binary patch literal 1078 zcmc&zF>b>!3}jLb9s)T}@Kod(893@u8ajANzT`op9^o+)S?=nU(FD@%0s)Sg^oyC8{H z9myetc;MEP)59v(LMa~xK8Yu^jIR*H22uCFiq5%C{s7(PJi>o15i^bmX4(vPxWAio z9ryY#AU_jfnd047-@`)XzL?%iS$gQyFP{44kS9X)fN{{QoL~hO-&=q&20Zr*cxFAt PkaNE{wR~2C$NfnjhSXWT literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/res/UsingDLL.rc2 b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/res/UsingDLL.rc2 new file mode 100644 index 0000000..8f2e532 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/res/UsingDLL.rc2 @@ -0,0 +1,13 @@ +// +// USINGDLL.RC2 - resources Microsoft Visual C++ does not edit directly +// + +#ifdef APSTUDIO_INVOKED + #error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// Add manually edited resources here... + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/resource.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/resource.h new file mode 100644 index 0000000..6b61207 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingDLL/resource.h @@ -0,0 +1,22 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by UsingDLL.rc +// +#define IDM_ABOUTBOX 0x0010 +#define IDD_ABOUTBOX 100 +#define IDS_ABOUTBOX 101 +#define IDD_USINGDLL_DIALOG 102 +#define IDR_MAINFRAME 128 +#define IDC_STATIC_HYPERLING 1000 +#define IDC_EDIT_LINES 1001 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 129 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 1002 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/ReadMe.txt b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/ReadMe.txt new file mode 100644 index 0000000..774022c --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/ReadMe.txt @@ -0,0 +1,88 @@ +======================================================================== + MICROSOFT FOUNDATION CLASS LIBRARY : UsingStaticLib +======================================================================== + + +AppWizard has created this UsingStaticLib application for you. This application +not only demonstrates the basics of using the Microsoft Foundation classes +but is also a starting point for writing your application. + +This file contains a summary of what you will find in each of the files that +make up your UsingStaticLib application. + +UsingStaticLib.dsp + This file (the project file) contains information at the project level and + is used to build a single project or subproject. Other users can share the + project (.dsp) file, but they should export the makefiles locally. + +UsingStaticLib.h + This is the main header file for the application. It includes other + project specific headers (including Resource.h) and declares the + CUsingStaticLibApp application class. + +UsingStaticLib.cpp + This is the main application source file that contains the application + class CUsingStaticLibApp. + +UsingStaticLib.rc + This is a listing of all of the Microsoft Windows resources that the + program uses. It includes the icons, bitmaps, and cursors that are stored + in the RES subdirectory. This file can be directly edited in Microsoft + Visual C++. + +UsingStaticLib.clw + This file contains information used by ClassWizard to edit existing + classes or add new classes. ClassWizard also uses this file to store + information needed to create and edit message maps and dialog data + maps and to create prototype member functions. + +res\UsingStaticLib.ico + This is an icon file, which is used as the application's icon. This + icon is included by the main resource file UsingStaticLib.rc. + +res\UsingStaticLib.rc2 + This file contains resources that are not edited by Microsoft + Visual C++. You should place all resources not editable by + the resource editor in this file. + + + + +///////////////////////////////////////////////////////////////////////////// + +AppWizard creates one dialog class: + +UsingStaticLibDlg.h, UsingStaticLibDlg.cpp - the dialog + These files contain your CUsingStaticLibDlg class. This class defines + the behavior of your application's main dialog. The dialog's + template is in UsingStaticLib.rc, which can be edited in Microsoft + Visual C++. + + +///////////////////////////////////////////////////////////////////////////// +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named UsingStaticLib.pch and a precompiled types file named StdAfx.obj. + +Resource.h + This is the standard header file, which defines new resource IDs. + Microsoft Visual C++ reads and updates this file. + +///////////////////////////////////////////////////////////////////////////// +Other notes: + +AppWizard uses "TODO:" to indicate parts of the source code you +should add to or customize. + +If your application uses MFC in a shared DLL, and your application is +in a language other than the operating system's current language, you +will need to copy the corresponding localized resources MFC42XXX.DLL +from the Microsoft Visual C++ CD-ROM onto the system or system32 directory, +and rename it to be MFCLOC.DLL. ("XXX" stands for the language abbreviation. +For example, MFC42DEU.DLL contains resources translated to German.) If you +don't do this, some of the UI elements of your application will remain in the +language of the operating system. + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/StdAfx.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/StdAfx.cpp new file mode 100644 index 0000000..5569e32 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/StdAfx.cpp @@ -0,0 +1,8 @@ +// stdafx.cpp : source file that includes just the standard includes +// UsingStaticLib.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/StdAfx.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/StdAfx.h new file mode 100644 index 0000000..4bc298d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/StdAfx.h @@ -0,0 +1,29 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#if !defined(AFX_STDAFX_H__06ED5FE0_5F1D_4967_982F_EEDEF805E31E__INCLUDED_) +#define AFX_STDAFX_H__06ED5FE0_5F1D_4967_982F_EEDEF805E31E__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers + +#include // MFC core and standard components +#include // MFC extensions +#include // MFC Automation classes +#include // MFC support for Internet Explorer 4 Common Controls +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for Windows Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + +// STEP 2: +#include "UTStaticLib.h" + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_STDAFX_H__06ED5FE0_5F1D_4967_982F_EEDEF805E31E__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.cpp new file mode 100644 index 0000000..d190f16 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.cpp @@ -0,0 +1,74 @@ +// UsingStaticLib.cpp : Defines the class behaviors for the application. +// + +#include "stdafx.h" +#include "UsingStaticLib.h" +#include "UsingStaticLibDlg.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CUsingStaticLibApp + +BEGIN_MESSAGE_MAP(CUsingStaticLibApp, CWinApp) + //{{AFX_MSG_MAP(CUsingStaticLibApp) + // 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() + +///////////////////////////////////////////////////////////////////////////// +// CUsingStaticLibApp construction + +CUsingStaticLibApp::CUsingStaticLibApp() +{ + // TODO: add construction code here, + // Place all significant initialization in InitInstance +} + +///////////////////////////////////////////////////////////////////////////// +// The one and only CUsingStaticLibApp object + +CUsingStaticLibApp theApp; + +///////////////////////////////////////////////////////////////////////////// +// CUsingStaticLibApp initialization + +BOOL CUsingStaticLibApp::InitInstance() +{ + AfxEnableControlContainer(); + + // 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 + + CUsingStaticLibDlg 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; +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.dsp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.dsp new file mode 100644 index 0000000..1d5930d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.dsp @@ -0,0 +1,225 @@ +# Microsoft Developer Studio Project File - Name="UsingStaticLib" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=UsingStaticLib - Win32 Unicode Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "UsingStaticLib.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "UsingStaticLib.mak" CFG="UsingStaticLib - Win32 Unicode Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "UsingStaticLib - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE "UsingStaticLib - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "UsingStaticLib - Win32 Unicode Debug" (based on "Win32 (x86) Application") +!MESSAGE "UsingStaticLib - Win32 Unicode Release" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "UsingStaticLib - Win32 Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\lib\Libs" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PreLink_Cmds=if not exist "..\..\..\lib\Libs\UTLib*.*" echo ERROR : You need to build all configurations of the UTStaticLib project found in /lib/Build Libs +# End Special Build Tool + +!ELSEIF "$(CFG)" == "UsingStaticLib - Win32 Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /libpath:"..\..\..\lib\Libs" +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /libpath:"..\..\..\lib\Libs" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PreLink_Cmds=if not exist "..\..\..\lib\Libs\UTLib*.*" echo ERROR : You need to build all configurations of the UTStaticLib project found in /lib/Build Libs +# End Special Build Tool + +!ELSEIF "$(CFG)" == "UsingStaticLib - Win32 Unicode Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Unicode Debug" +# PROP BASE Intermediate_Dir "Unicode Debug" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "DebugU" +# PROP Intermediate_Dir "DebugU" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_UNICODE" /Yu"stdafx.h" /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\lib\Libs" +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\lib\Libs" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PreLink_Cmds=if not exist "..\..\..\lib\Libs\UTLib*.*" echo ERROR : You need to build all configurations of the UTStaticLib project found in /lib/Build Libs +# End Special Build Tool + +!ELSEIF "$(CFG)" == "UsingStaticLib - Win32 Unicode Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Unicode Release" +# PROP BASE Intermediate_Dir "Unicode Release" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "ReleaseU" +# PROP Intermediate_Dir "ReleaseU" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /libpath:"..\..\..\lib\Libs" +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /machine:I386 /libpath:"..\..\..\lib\Libs" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PreLink_Cmds=if not exist "..\..\..\lib\Libs\UTLib*.*" echo ERROR : You need to build all configurations of the UTStaticLib project found in /lib/Build Libs +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "UsingStaticLib - Win32 Debug" +# Name "UsingStaticLib - Win32 Release" +# Name "UsingStaticLib - Win32 Unicode Debug" +# Name "UsingStaticLib - Win32 Unicode Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# Begin Source File + +SOURCE=.\UsingStaticLib.cpp +# End Source File +# Begin Source File + +SOURCE=.\UsingStaticLib.rc +# End Source File +# Begin Source File + +SOURCE=.\UsingStaticLibDlg.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\Resource.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# Begin Source File + +SOURCE=.\UsingStaticLib.h +# End Source File +# Begin Source File + +SOURCE=.\UsingStaticLibDlg.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=..\UsingDLL\res\UsingDLL.ico +# End Source File +# Begin Source File + +SOURCE=.\res\UsingStaticLib.ico +# End Source File +# Begin Source File + +SOURCE=.\res\UsingStaticLib.rc2 +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ReadMe.txt +# End Source File +# End Target +# End Project diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.dsw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.dsw new file mode 100644 index 0000000..689056e --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "UsingStaticLib"=".\UsingStaticLib.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.h new file mode 100644 index 0000000..1c3717c --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.h @@ -0,0 +1,49 @@ +// UsingStaticLib.h : main header file for the USINGSTATICLIB application +// + +#if !defined(AFX_USINGSTATICLIB_H__0B90D75A_A148_4832_8142_849A8EB21940__INCLUDED_) +#define AFX_USINGSTATICLIB_H__0B90D75A_A148_4832_8142_849A8EB21940__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols + +///////////////////////////////////////////////////////////////////////////// +// CUsingStaticLibApp: +// See UsingStaticLib.cpp for the implementation of this class +// + +class CUsingStaticLibApp : public CWinApp +{ +public: + CUsingStaticLibApp(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CUsingStaticLibApp) + public: + virtual BOOL InitInstance(); + //}}AFX_VIRTUAL + +// Implementation + + //{{AFX_MSG(CUsingStaticLibApp) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_USINGSTATICLIB_H__0B90D75A_A148_4832_8142_849A8EB21940__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.rc b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.rc new file mode 100644 index 0000000..1ee6943 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.rc @@ -0,0 +1,226 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif //_WIN32\r\n" + "#include ""res\\UsingStaticLib.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "// STEP 3:\r\n" + "#include ""OXMain.rc""\r\n" + "#endif\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON DISCARDABLE "res\\UsingStaticLib.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 235, 55 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "About UsingStaticLib" +FONT 8, "MS Sans Serif" +BEGIN + ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20 + LTEXT "UsingStaticLib Version 1.0",IDC_STATIC,40,10,119,8, + SS_NOPREFIX + LTEXT "Copyright (C) The Code Project 2002 - 2005",IDC_STATIC, + 40,25,139,8 + DEFPUSHBUTTON "OK",IDOK,178,7,50,14,WS_GROUP +END + +IDD_USINGSTATICLIB_DIALOG DIALOGEX 0, 0, 322, 206 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +EXSTYLE WS_EX_APPWINDOW +CAPTION "UsingStaticLib" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "OK",IDOK,205,180,50,14 + PUSHBUTTON "Cancel",IDCANCEL,260,180,50,14 + LTEXT "STEP 1: Compile the UTStaticLib project located in /lib/Build Libs.", + IDC_STATIC,30,35,230,10 + LTEXT "You need to perform the following steps in order to use the Ultimate ToolBox in a static library:", + IDC_STATIC,15,15,295,10 + LTEXT "STEP 2: Add the following line to to the end of your project's StdAfx.h file:", + IDC_STATIC,30,55,245,10 + LTEXT "www.theultimatetoolbox.com",IDC_STATIC_HYPERLING,130, + 160,102,10 + LTEXT "If everything is OK you should be able to compile and run this project.", + IDC_STATIC,15,145,230,10 + LTEXT "Also the following link should work:",IDC_STATIC,15,160, + 110,8 + LTEXT "#include ""UTStaticLib.h""",IDC_STATIC,40,70,205,10 + LTEXT "STEP 3: Add the following line to the compile-time directives of the ""Resource Includes"" window:", + IDC_STATIC,30,95,215,20 + LTEXT "#include ""OXMain.rc""",IDC_STATIC,40,120,250,10 +END + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "UsingStaticLib MFC Application\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "UsingStaticLib\0" + VALUE "LegalCopyright", "Copyright (C) 2002\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "UsingStaticLib.EXE\0" + VALUE "ProductName", "UsingStaticLib Application\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_ABOUTBOX, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 228 + TOPMARGIN, 7 + BOTTOMMARGIN, 48 + END + + IDD_USINGSTATICLIB_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 315 + TOPMARGIN, 7 + BOTTOMMARGIN, 199 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_ABOUTBOX "&About UsingStaticLib..." +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif //_WIN32 +#include "res\UsingStaticLib.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +// STEP 3: +#include "OXMain.rc" +#endif + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.sln b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.sln new file mode 100644 index 0000000..e64e7e8 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UsingStaticLib", "UsingStaticLib.vcproj", "{1E30D933-D54D-46A4-8E69-3FFD11A9121D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + Unicode Debug|Win32 = Unicode Debug|Win32 + Unicode Release|Win32 = Unicode Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1E30D933-D54D-46A4-8E69-3FFD11A9121D}.Debug|Win32.ActiveCfg = Debug|Win32 + {1E30D933-D54D-46A4-8E69-3FFD11A9121D}.Debug|Win32.Build.0 = Debug|Win32 + {1E30D933-D54D-46A4-8E69-3FFD11A9121D}.Release|Win32.ActiveCfg = Release|Win32 + {1E30D933-D54D-46A4-8E69-3FFD11A9121D}.Release|Win32.Build.0 = Release|Win32 + {1E30D933-D54D-46A4-8E69-3FFD11A9121D}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32 + {1E30D933-D54D-46A4-8E69-3FFD11A9121D}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32 + {1E30D933-D54D-46A4-8E69-3FFD11A9121D}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32 + {1E30D933-D54D-46A4-8E69-3FFD11A9121D}.Unicode Release|Win32.Build.0 = Unicode Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.vcproj b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.vcproj new file mode 100644 index 0000000..af6cb7b --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLib.vcproj @@ -0,0 +1,636 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLibDlg.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLibDlg.cpp new file mode 100644 index 0000000..d479007 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLibDlg.cpp @@ -0,0 +1,170 @@ +// UsingStaticLibDlg.cpp : implementation file +// + +#include "stdafx.h" +#include "UsingStaticLib.h" +#include "UsingStaticLibDlg.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CAboutDlg dialog used for App About + +class CAboutDlg : public CDialog +{ +public: + CAboutDlg(); + +// Dialog Data + //{{AFX_DATA(CAboutDlg) + enum { IDD = IDD_ABOUTBOX }; + //}}AFX_DATA + + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CAboutDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + //{{AFX_MSG(CAboutDlg) + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) +{ + //{{AFX_DATA_INIT(CAboutDlg) + //}}AFX_DATA_INIT +} + +void CAboutDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CAboutDlg) + //}}AFX_DATA_MAP +} + +BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) + //{{AFX_MSG_MAP(CAboutDlg) + // No message handlers + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CUsingStaticLibDlg dialog + +CUsingStaticLibDlg::CUsingStaticLibDlg(CWnd* pParent /*=NULL*/) + : CDialog(CUsingStaticLibDlg::IDD, pParent) +{ + //{{AFX_DATA_INIT(CUsingStaticLibDlg) + // NOTE: the ClassWizard will add member initialization here + //}}AFX_DATA_INIT + // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 + m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); +} + +void CUsingStaticLibDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CUsingStaticLibDlg) + DDX_Control(pDX, IDC_STATIC_HYPERLING, m_HyperLink); + //}}AFX_DATA_MAP +} + +BEGIN_MESSAGE_MAP(CUsingStaticLibDlg, CDialog) + //{{AFX_MSG_MAP(CUsingStaticLibDlg) + ON_WM_SYSCOMMAND() + ON_WM_PAINT() + ON_WM_QUERYDRAGICON() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CUsingStaticLibDlg message handlers + +BOOL CUsingStaticLibDlg::OnInitDialog() +{ + CDialog::OnInitDialog(); + + // Add "About..." menu item to system menu. + + // IDM_ABOUTBOX must be in the system command range. + ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); + ASSERT(IDM_ABOUTBOX < 0xF000); + + CMenu* pSysMenu = GetSystemMenu(FALSE); + if (pSysMenu != NULL) + { + CString strAboutMenu; + strAboutMenu.LoadString(IDS_ABOUTBOX); + if (!strAboutMenu.IsEmpty()) + { + pSysMenu->AppendMenu(MF_SEPARATOR); + pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); + } + } + + // Set the icon for this dialog. The framework does this automatically + // when the application's main window is not a dialog + SetIcon(m_hIcon, TRUE); // Set big icon + SetIcon(m_hIcon, FALSE); // Set small icon + + // TODO: Add extra initialization here + + return TRUE; // return TRUE unless you set the focus to a control +} + +void CUsingStaticLibDlg::OnSysCommand(UINT nID, LPARAM lParam) +{ + if ((nID & 0xFFF0) == IDM_ABOUTBOX) + { + CAboutDlg dlgAbout; + dlgAbout.DoModal(); + } + else + { + CDialog::OnSysCommand(nID, lParam); + } +} + +// If you add a minimize button to your dialog, you will need the code below +// to draw the icon. For MFC applications using the document/view model, +// this is automatically done for you by the framework. + +void CUsingStaticLibDlg::OnPaint() +{ + if (IsIconic()) + { + CPaintDC dc(this); // device context for painting + + SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); + + // Center icon in client rectangle + int cxIcon = GetSystemMetrics(SM_CXICON); + int cyIcon = GetSystemMetrics(SM_CYICON); + CRect rect; + GetClientRect(&rect); + int x = (rect.Width() - cxIcon + 1) / 2; + int y = (rect.Height() - cyIcon + 1) / 2; + + // Draw the icon + dc.DrawIcon(x, y, m_hIcon); + } + else + { + CDialog::OnPaint(); + } +} + +// The system calls this to obtain the cursor to display while the user drags +// the minimized window. +HCURSOR CUsingStaticLibDlg::OnQueryDragIcon() +{ + return (HCURSOR) m_hIcon; +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLibDlg.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLibDlg.h new file mode 100644 index 0000000..82ae567 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/UsingStaticLibDlg.h @@ -0,0 +1,51 @@ +// UsingStaticLibDlg.h : header file +// + +#if !defined(AFX_USINGSTATICLIBDLG_H__8B67B7E5_2839_4535_909A_8AE58146AFCC__INCLUDED_) +#define AFX_USINGSTATICLIBDLG_H__8B67B7E5_2839_4535_909A_8AE58146AFCC__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +///////////////////////////////////////////////////////////////////////////// +// CUsingStaticLibDlg dialog + +#include "OXStaticHyperLink.h" + +class CUsingStaticLibDlg : public CDialog +{ +// Construction +public: + CUsingStaticLibDlg(CWnd* pParent = NULL); // standard constructor + +// Dialog Data + //{{AFX_DATA(CUsingStaticLibDlg) + enum { IDD = IDD_USINGSTATICLIB_DIALOG }; + COXStaticHyperLink m_HyperLink; + //}}AFX_DATA + + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CUsingStaticLibDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + HICON m_hIcon; + + // Generated message map functions + //{{AFX_MSG(CUsingStaticLibDlg) + virtual BOOL OnInitDialog(); + afx_msg void OnSysCommand(UINT nID, LPARAM lParam); + afx_msg void OnPaint(); + afx_msg HCURSOR OnQueryDragIcon(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_USINGSTATICLIBDLG_H__8B67B7E5_2839_4535_909A_8AE58146AFCC__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/res/UsingStaticLib.ico b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/res/UsingStaticLib.ico new file mode 100644 index 0000000000000000000000000000000000000000..7eef0bcbe6580a6f464d688906172c2d9de44262 GIT binary patch literal 1078 zcmc&zF>b>!3}jLb9s)T}@Kod(893@u8ajANzT`op9^o+)S?=nU(FD@%0s)Sg^oyC8{H z9myetc;MEP)59v(LMa~xK8Yu^jIR*H22uCFiq5%C{s7(PJi>o15i^bmX4(vPxWAio z9ryY#AU_jfnd047-@`)XzL?%iS$gQyFP{44kS9X)fN{{QoL~hO-&=q&20Zr*cxFAt PkaNE{wR~2C$NfnjhSXWT literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/res/UsingStaticLib.rc2 b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/res/UsingStaticLib.rc2 new file mode 100644 index 0000000..056acaa --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/res/UsingStaticLib.rc2 @@ -0,0 +1,13 @@ +// +// USINGSTATICLIB.RC2 - resources Microsoft Visual C++ does not edit directly +// + +#ifdef APSTUDIO_INVOKED + #error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// Add manually edited resources here... + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/resource.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/resource.h new file mode 100644 index 0000000..15ea08b --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/GettingStarted/UsingStaticLib/resource.h @@ -0,0 +1,21 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by UsingStaticLib.rc +// +#define IDM_ABOUTBOX 0x0010 +#define IDD_ABOUTBOX 100 +#define IDS_ABOUTBOX 101 +#define IDD_USINGSTATICLIB_DIALOG 102 +#define IDR_MAINFRAME 128 +#define IDC_STATIC_HYPERLING 1000 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 129 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 1000 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/ChildFrm.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/ChildFrm.cpp new file mode 100644 index 0000000..a8c42d0 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/ChildFrm.cpp @@ -0,0 +1,70 @@ +// ChildFrm.cpp : implementation of the CChildFrame class +// + +#include "stdafx.h" +#include "CustomizeManager.h" + +#include "ChildFrm.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame + +IMPLEMENT_DYNCREATE(CChildFrame, CMDIChildWnd) + +BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWnd) + //{{AFX_MSG_MAP(CChildFrame) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame construction/destruction + +CChildFrame::CChildFrame() +{ + // TODO: add member initialization code here + +} + +CChildFrame::~CChildFrame() +{ +} + +BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs) +{ + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + if( !CMDIChildWnd::PreCreateWindow(cs) ) + return FALSE; + + return TRUE; +} + + + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame diagnostics + +#ifdef _DEBUG +void CChildFrame::AssertValid() const +{ + CMDIChildWnd::AssertValid(); +} + +void CChildFrame::Dump(CDumpContext& dc) const +{ + CMDIChildWnd::Dump(dc); +} + +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame message handlers diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/ChildFrm.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/ChildFrm.h new file mode 100644 index 0000000..bf6d958 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/ChildFrm.h @@ -0,0 +1,53 @@ +// ChildFrm.h : interface of the CChildFrame class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_CHILDFRM_H__ADCFCFEA_E1F9_48E2_BF7B_A1C232EF487A__INCLUDED_) +#define AFX_CHILDFRM_H__ADCFCFEA_E1F9_48E2_BF7B_A1C232EF487A__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + + +class CChildFrame : public CMDIChildWnd +{ + DECLARE_DYNCREATE(CChildFrame) +public: + CChildFrame(); + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CChildFrame) + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CChildFrame(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +// Generated message map functions +protected: + //{{AFX_MSG(CChildFrame) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_CHILDFRM_H__ADCFCFEA_E1F9_48E2_BF7B_A1C232EF487A__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.cpp new file mode 100644 index 0000000..71d3e1f --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.cpp @@ -0,0 +1,181 @@ +// CustomizeManager.cpp : Defines the class behaviors for the application. +// + +#include "stdafx.h" +#include "CustomizeManager.h" + +#include "MainFrm.h" +#include "ChildFrm.h" +#include "CustomizeManagerDoc.h" +#include "CustomizeManagerView.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CCustomizeManagerApp + +BEGIN_MESSAGE_MAP(CCustomizeManagerApp, CWinApp) + //{{AFX_MSG_MAP(CCustomizeManagerApp) + ON_COMMAND(ID_APP_ABOUT, OnAppAbout) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG_MAP + // Standard file based document commands + ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) + ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) + // Standard print setup command + ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CCustomizeManagerApp construction + +CCustomizeManagerApp::CCustomizeManagerApp() +{ + // TODO: add construction code here, + // Place all significant initialization in InitInstance +} + +///////////////////////////////////////////////////////////////////////////// +// The one and only CCustomizeManagerApp object + +CCustomizeManagerApp theApp; + +///////////////////////////////////////////////////////////////////////////// +// CCustomizeManagerApp initialization + +BOOL CCustomizeManagerApp::InitInstance() +{ + AfxEnableControlContainer(); + + // 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. + +#if _MSC_VER < 1400 +#ifdef _AFXDLL + Enable3dControls(); // Call this when using MFC in a shared DLL +#else + Enable3dControlsStatic(); // Call this when linking to MFC statically +#endif +#endif + + // STEP 6g: Commands Page - Initialize OLE in order for Drag and Drop to work. + AfxOleInit(); + + // Change the registry key under which our settings are stored. + // TODO: You should modify this string to be something appropriate + // such as the name of your company or organization. + SetRegistryKey(_T("Local AppWizard-Generated Applications")); + + LoadStdProfileSettings(); // Load standard INI file options (including MRU) + + // STEP 8c: Instance Manager Page - Check for number of running instances and exit + // if that number has been exceeded. Make sure COXCustomizeManager goes out of scope. + { + COXCustomizeManager CM; + if (CM.CheckMaxAllowedInstances()) + { + AfxMessageBox(_T("The maximum allowed number of instances has been reached.")); + return FALSE; + } + } + + // Register the application's document templates. Document templates + // serve as the connection between documents, frame windows and views. + + CMultiDocTemplate* pDocTemplate; + pDocTemplate = new CMultiDocTemplate( + IDR_CUSTOMTYPE, + RUNTIME_CLASS(CCustomizeManagerDoc), + RUNTIME_CLASS(CChildFrame), // custom MDI child frame + RUNTIME_CLASS(CCustomizeManagerView)); + AddDocTemplate(pDocTemplate); + + // create main MDI Frame window + CMainFrame* pMainFrame = new CMainFrame; + if (!pMainFrame->LoadFrame(IDR_MAINFRAME)) + return FALSE; + m_pMainWnd = pMainFrame; + + // Parse command line for standard shell commands, DDE, file open + CCommandLineInfo cmdInfo; + ParseCommandLine(cmdInfo); + + // STEP 14b: Workspace State Page - Call LoadWorkspaceState() from OnInitInstance(). + pMainFrame->m_CM.LoadWorkspaceState(); + + // STEP 14c: Workspace State Page - Do not call ProcessShellCommand(...) if restoring + // the workspace state. +// if (!ProcessShellCommand(cmdInfo)) +// return FALSE; + + // The main window has been initialized, so show and update it. + pMainFrame->ShowWindow(m_nCmdShow); + pMainFrame->UpdateWindow(); + + return TRUE; +} + + +///////////////////////////////////////////////////////////////////////////// +// CAboutDlg dialog used for App About + +class CAboutDlg : public CDialog +{ +public: + CAboutDlg(); + +// Dialog Data + //{{AFX_DATA(CAboutDlg) + enum { IDD = IDD_ABOUTBOX }; + //}}AFX_DATA + + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CAboutDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + //{{AFX_MSG(CAboutDlg) + // No message handlers + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) +{ + //{{AFX_DATA_INIT(CAboutDlg) + //}}AFX_DATA_INIT +} + +void CAboutDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CAboutDlg) + //}}AFX_DATA_MAP +} + +BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) + //{{AFX_MSG_MAP(CAboutDlg) + // No message handlers + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +// App command to run the dialog +void CCustomizeManagerApp::OnAppAbout() +{ + CAboutDlg aboutDlg; + aboutDlg.DoModal(); +} + +///////////////////////////////////////////////////////////////////////////// +// CCustomizeManagerApp message handlers + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.dsp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.dsp new file mode 100644 index 0000000..576a310 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.dsp @@ -0,0 +1,570 @@ +# Microsoft Developer Studio Project File - Name="CustomizeManager" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=CustomizeManager - Win32 Unicode Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "CustomizeManager.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "CustomizeManager.mak" CFG="CustomizeManager - Win32 Unicode Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "CustomizeManager - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "CustomizeManager - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE "CustomizeManager - Win32 Unicode Release" (based on "Win32 (x86) Application") +!MESSAGE "CustomizeManager - Win32 Unicode Debug" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "CustomizeManager - Win32 Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W4 /GX /O2 /I "..\..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"CustomizeManager.exe" + +!ELSEIF "$(CFG)" == "CustomizeManager - Win32 Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /FR /Yu"stdafx.h" /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"CustomizeManager.exe" /pdbtype:sept + +!ELSEIF "$(CFG)" == "CustomizeManager - Win32 Unicode Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "CustomizeManager___Win32_Unicode_Release" +# PROP BASE Intermediate_Dir "CustomizeManager___Win32_Unicode_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "ReleaseU" +# PROP Intermediate_Dir "ReleaseU" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W4 /GX /O2 /I "..\..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /machine:I386 /out:"CustomizeManager.exe" + +!ELSEIF "$(CFG)" == "CustomizeManager - Win32 Unicode Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "CustomizeManager___Win32_Unicode_Debug" +# PROP BASE Intermediate_Dir "CustomizeManager___Win32_Unicode_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "DebugU" +# PROP Intermediate_Dir "DebugU" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /FR /Yu"stdafx.h" /FD /GZ /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_UNICODE" /FR /Yu"stdafx.h" /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /debug /machine:I386 /out:"CustomizeManager.exe" /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "CustomizeManager - Win32 Release" +# Name "CustomizeManager - Win32 Debug" +# Name "CustomizeManager - Win32 Unicode Release" +# Name "CustomizeManager - Win32 Unicode Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Group "Ultimate ToolBox" + +# PROP Default_Filter "*.cpp" +# Begin Source File + +SOURCE=..\..\..\source\UTSampleAbout\HtmlCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\MFCToolBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OX3DTabView.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXAdvancedAssert.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXAdvancedAssertMail.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXBackgroundPainter.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXBitmapButton.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXBitmapMenu.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXBitmapMenuOrganizer.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXBMPFilePickerCombo.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXButtonAppearanceDlg.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCaptionPainter.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXChildFrameState.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXColorPickerButton.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXColorPickerCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCoolComboBox.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCoolControlOrganizer.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCoolCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCoolToolBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCustomizeBackgroundPage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCustomizeCaptionPage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCustomizeCommandsPage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCustomizeCoolControlsPage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCustomizeInstanceManagerPage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCustomizeIntelliMousePage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCustomizeManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCustomizePage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCustomizeShortkeysPage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCustomizeSplashWindowPage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCustomizeTabbedMDIPage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCustomizeToolbarsPage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCustomizeTrayIconPage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCustomizeWorkspaceStatePage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\Oxdib.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXDockTabCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXDocTemplateSpy.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXDragDockContext.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXDragDropCommands.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXFontPickerButton.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXFrameWndDock.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXHistoryCombo.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXHookWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXImageListBox.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXInstanceManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXIntelliMouse.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXLayoutManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXListBoxEx.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXMDIFloatWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXMenuBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXMultiComboBox.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXOptionTreeCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXPopupBarCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXPreviewDialog.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXRectTracker.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXRegistryValFile.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSeparator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXShortcutBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXShortkeysOrganizer.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSizeCtrlBar.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSizeDockBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSizeToolBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkinnedComboBox.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkinnedSpinCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkinnedTabCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkins.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSplashWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSplashWndDIB.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSplitterColRowState.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSplitterRect.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXStatic.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSzMiniDockFrmWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXTabClientWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXTaskbarIcon.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXToolTipCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXUxTheme.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXWorkspaceState.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\UTBStrOp.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\Xstatus4.cpp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ChildFrm.cpp +# End Source File +# Begin Source File + +SOURCE=.\CustomizeManager.cpp +# End Source File +# Begin Source File + +SOURCE=.\CustomizeManager.rc +# End Source File +# Begin Source File + +SOURCE=.\CustomizeManagerDoc.cpp +# End Source File +# Begin Source File + +SOURCE=.\CustomizeManagerView.cpp +# End Source File +# Begin Source File + +SOURCE=.\MainFrm.cpp +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Group "Ultimate ToolBox Headers" + +# PROP Default_Filter "*.h" +# Begin Source File + +SOURCE=..\..\..\include\OXCoolToolBar.h +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ChildFrm.h +# End Source File +# Begin Source File + +SOURCE=.\CustomizeManager.h +# End Source File +# Begin Source File + +SOURCE=.\CustomizeManagerDoc.h +# End Source File +# Begin Source File + +SOURCE=.\CustomizeManagerView.h +# End Source File +# Begin Source File + +SOURCE=.\MainFrm.h +# End Source File +# Begin Source File + +SOURCE=.\Resource.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\res\background.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\bitmap1.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\CustomizeManager.ico +# End Source File +# Begin Source File + +SOURCE=.\res\CustomizeManager.rc2 +# End Source File +# Begin Source File + +SOURCE=.\res\CustomizeManagerDoc.ico +# End Source File +# Begin Source File + +SOURCE=.\res\splash.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\Toolbar.bmp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ReadMe.txt +# End Source File +# End Target +# End Project diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.dsw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.dsw new file mode 100644 index 0000000..ff6b4e9 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.dsw @@ -0,0 +1,33 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "CustomizeManager"=".\CustomizeManager.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/Code Project/Ultimate Toolbox/Working/samples/advanced/CustomizeManager", APIAAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.h new file mode 100644 index 0000000..6e25af2 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.h @@ -0,0 +1,50 @@ +// CustomizeManager.h : main header file for the CUSTOMIZEMANAGER application +// + +#if !defined(AFX_CUSTOMIZEMANAGER_H__040D0153_4DB2_4DAB_B65F_8C3A98FB4250__INCLUDED_) +#define AFX_CUSTOMIZEMANAGER_H__040D0153_4DB2_4DAB_B65F_8C3A98FB4250__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols +#include "OXSkins.h" + +///////////////////////////////////////////////////////////////////////////// +// CCustomizeManagerApp: +// See CustomizeManager.cpp for the implementation of this class +// + +class CCustomizeManagerApp : public COXSkinnedApp +{ +public: + CCustomizeManagerApp(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CCustomizeManagerApp) + public: + virtual BOOL InitInstance(); + //}}AFX_VIRTUAL + +// Implementation + //{{AFX_MSG(CCustomizeManagerApp) + afx_msg void OnAppAbout(); + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_CUSTOMIZEMANAGER_H__040D0153_4DB2_4DAB_B65F_8C3A98FB4250__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.rc b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.rc new file mode 100644 index 0000000..91fe713 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.rc @@ -0,0 +1,442 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif //_WIN32\r\n" + "#include ""res\\CustomizeManager.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "#include ""afxprint.rc"" // printing/print preview resources\r\n" + "#include ""OXMain.rc""\r\n" + "#endif\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON DISCARDABLE "res\\CustomizeManager.ico" +IDR_CUSTOMTYPE ICON DISCARDABLE "res\\CustomizeManagerDoc.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDR_MAINFRAME BITMAP MOVEABLE PURE "res\\Toolbar.bmp" +IDB_SPLASH BITMAP DISCARDABLE "res\\splash.bmp" +IDB_BACKGROUND BITMAP DISCARDABLE "res\\background.bmp" + +///////////////////////////////////////////////////////////////////////////// +// +// Toolbar +// + +IDR_MAINFRAME TOOLBAR DISCARDABLE 16, 15 +BEGIN + BUTTON ID_FILE_NEW + BUTTON ID_FILE_OPEN + BUTTON ID_FILE_SAVE + SEPARATOR + BUTTON ID_EDIT_CUT + BUTTON ID_EDIT_COPY + BUTTON ID_EDIT_PASTE + SEPARATOR + BUTTON ID_FILE_PRINT + SEPARATOR + BUTTON ID_APP_ABOUT +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_MAINFRAME MENU PRELOAD DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&New\tCtrl+N", ID_FILE_NEW + MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN + MENUITEM SEPARATOR + MENUITEM "P&rint Setup...", ID_FILE_PRINT_SETUP + MENUITEM SEPARATOR + MENUITEM "Recent File", ID_FILE_MRU_FILE1, GRAYED + MENUITEM SEPARATOR + MENUITEM "E&xit", ID_APP_EXIT + END + POPUP "&View" + BEGIN + MENUITEM "&Toolbar", ID_VIEW_TOOLBAR + MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR + MENUITEM SEPARATOR + MENUITEM "&Customize...", ID_VIEW_CUSTOMIZE + END + POPUP "&Help" + BEGIN + MENUITEM "&About CustomizeManager...", ID_APP_ABOUT + END +END + +IDR_CUSTOMTYPE MENU PRELOAD DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&New\tCtrl+N", ID_FILE_NEW + MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN + MENUITEM "&Close", ID_FILE_CLOSE + MENUITEM "&Save\tCtrl+S", ID_FILE_SAVE + MENUITEM "Save &As...", ID_FILE_SAVE_AS + MENUITEM SEPARATOR + MENUITEM "&Print...\tCtrl+P", ID_FILE_PRINT + MENUITEM "Print Pre&view", ID_FILE_PRINT_PREVIEW + MENUITEM "P&rint Setup...", ID_FILE_PRINT_SETUP + MENUITEM SEPARATOR + MENUITEM "Recent File", ID_FILE_MRU_FILE1, GRAYED + MENUITEM SEPARATOR + MENUITEM "E&xit", ID_APP_EXIT + END + POPUP "&Edit" + BEGIN + MENUITEM "&Undo\tCtrl+Z", ID_EDIT_UNDO + MENUITEM SEPARATOR + MENUITEM "Cu&t\tCtrl+X", ID_EDIT_CUT + MENUITEM "&Copy\tCtrl+C", ID_EDIT_COPY + MENUITEM "&Paste\tCtrl+V", ID_EDIT_PASTE + END + POPUP "&View" + BEGIN + MENUITEM "&Toolbar", ID_VIEW_TOOLBAR + MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR + MENUITEM SEPARATOR + MENUITEM "&Customize...", ID_VIEW_CUSTOMIZE + END + POPUP "&Window" + BEGIN + MENUITEM "&New Window", ID_WINDOW_NEW + MENUITEM "&Cascade", ID_WINDOW_CASCADE + MENUITEM "&Tile", ID_WINDOW_TILE_HORZ + MENUITEM "&Arrange Icons", ID_WINDOW_ARRANGE + END + POPUP "&Help" + BEGIN + MENUITEM "&About CustomizeManager...", ID_APP_ABOUT + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Accelerator +// + +IDR_MAINFRAME ACCELERATORS PRELOAD MOVEABLE PURE +BEGIN + "N", ID_FILE_NEW, VIRTKEY, CONTROL + "O", ID_FILE_OPEN, VIRTKEY, CONTROL + "S", ID_FILE_SAVE, VIRTKEY, CONTROL + "P", ID_FILE_PRINT, VIRTKEY, CONTROL + "Z", ID_EDIT_UNDO, VIRTKEY, CONTROL + "X", ID_EDIT_CUT, VIRTKEY, CONTROL + "C", ID_EDIT_COPY, VIRTKEY, CONTROL + "V", ID_EDIT_PASTE, VIRTKEY, CONTROL + VK_BACK, ID_EDIT_UNDO, VIRTKEY, ALT + VK_DELETE, ID_EDIT_CUT, VIRTKEY, SHIFT + VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL + VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT + VK_F6, ID_NEXT_PANE, VIRTKEY + VK_F6, ID_PREV_PANE, VIRTKEY, SHIFT +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 235, 55 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "About CustomizeManager" +FONT 8, "MS Sans Serif" +BEGIN + ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20 + LTEXT "CustomizeManager Version 1.0",IDC_STATIC,40,10,119,8, + SS_NOPREFIX + LTEXT "Copyright (C) The Code Project 2005",IDC_STATIC,40,25, + 119,8 + DEFPUSHBUTTON "OK",IDOK,178,7,50,14,WS_GROUP +END + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "CustomizeManager MFC Application\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "CustomizeManager\0" + VALUE "LegalCopyright", "Copyright (C) 2003\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "CustomizeManager.EXE\0" + VALUE "ProductName", "CustomizeManager Application\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_ABOUTBOX, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 228 + TOPMARGIN, 7 + BOTTOMMARGIN, 48 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE PRELOAD DISCARDABLE +BEGIN + IDR_MAINFRAME "CustomizeManager" + IDR_CUSTOMTYPE "\nCustom\nCustom\n\n\nCustomizeManager.Document\nCustom Document" +END + +STRINGTABLE PRELOAD DISCARDABLE +BEGIN + AFX_IDS_APP_TITLE "CustomizeManager" + AFX_IDS_IDLEMESSAGE "Ready" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_INDICATOR_EXT "EXT" + ID_INDICATOR_CAPS "CAP" + ID_INDICATOR_NUM "NUM" + ID_INDICATOR_SCRL "SCRL" + ID_INDICATOR_OVR "OVR" + ID_INDICATOR_REC "REC" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_NEW "Create a new document\nNew" + ID_FILE_OPEN "Open an existing document\nOpen" + ID_FILE_CLOSE "Close the active document\nClose" + ID_FILE_SAVE "Save the active document\nSave" + ID_FILE_SAVE_AS "Save the active document with a new name\nSave As" + ID_FILE_PAGE_SETUP "Change the printing options\nPage Setup" + ID_FILE_PRINT_SETUP "Change the printer and printing options\nPrint Setup" + ID_FILE_PRINT "Print the active document\nPrint" + ID_FILE_PRINT_PREVIEW "Display full pages\nPrint Preview" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_APP_ABOUT "Display program information, version number and copyright\nAbout" + ID_APP_EXIT "Quit the application; prompts to save documents\nExit" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_MRU_FILE1 "Open this document" + ID_FILE_MRU_FILE2 "Open this document" + ID_FILE_MRU_FILE3 "Open this document" + ID_FILE_MRU_FILE4 "Open this document" + ID_FILE_MRU_FILE5 "Open this document" + ID_FILE_MRU_FILE6 "Open this document" + ID_FILE_MRU_FILE7 "Open this document" + ID_FILE_MRU_FILE8 "Open this document" + ID_FILE_MRU_FILE9 "Open this document" + ID_FILE_MRU_FILE10 "Open this document" + ID_FILE_MRU_FILE11 "Open this document" + ID_FILE_MRU_FILE12 "Open this document" + ID_FILE_MRU_FILE13 "Open this document" + ID_FILE_MRU_FILE14 "Open this document" + ID_FILE_MRU_FILE15 "Open this document" + ID_FILE_MRU_FILE16 "Open this document" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_NEXT_PANE "Switch to the next window pane\nNext Pane" + ID_PREV_PANE "Switch back to the previous window pane\nPrevious Pane" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_WINDOW_NEW "Open another window for the active document\nNew Window" + ID_WINDOW_ARRANGE "Arrange icons at the bottom of the window\nArrange Icons" + ID_WINDOW_CASCADE "Arrange windows so they overlap\nCascade Windows" + ID_WINDOW_TILE_HORZ "Arrange windows as non-overlapping tiles\nTile Windows" + ID_WINDOW_TILE_VERT "Arrange windows as non-overlapping tiles\nTile Windows" + ID_WINDOW_SPLIT "Split the active window into panes\nSplit" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_EDIT_CLEAR "Erase the selection\nErase" + ID_EDIT_CLEAR_ALL "Erase everything\nErase All" + ID_EDIT_COPY "Copy the selection and put it on the Clipboard\nCopy" + ID_EDIT_CUT "Cut the selection and put it on the Clipboard\nCut" + ID_EDIT_FIND "Find the specified text\nFind" + ID_EDIT_PASTE "Insert Clipboard contents\nPaste" + ID_EDIT_REPEAT "Repeat the last action\nRepeat" + ID_EDIT_REPLACE "Replace specific text with different text\nReplace" + ID_EDIT_SELECT_ALL "Select the entire document\nSelect All" + ID_EDIT_UNDO "Undo the last action\nUndo" + ID_EDIT_REDO "Redo the previously undone action\nRedo" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_VIEW_TOOLBAR "Show or hide the toolbar\nToggle ToolBar" + ID_VIEW_STATUS_BAR "Show or hide the status bar\nToggle StatusBar" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_SCSIZE "Change the window size" + AFX_IDS_SCMOVE "Change the window position" + AFX_IDS_SCMINIMIZE "Reduce the window to an icon" + AFX_IDS_SCMAXIMIZE "Enlarge the window to full size" + AFX_IDS_SCNEXTWINDOW "Switch to the next document window" + AFX_IDS_SCPREVWINDOW "Switch to the previous document window" + AFX_IDS_SCCLOSE "Close the active window and prompts to save the documents" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_SCRESTORE "Restore the window to normal size" + AFX_IDS_SCTASKLIST "Activate Task List" + AFX_IDS_MDICHILD "Activate this window" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_PREVIEW_CLOSE "Close print preview mode\nCancel Preview" + ID_CB_COMBO "Combo Box/nCombo Box" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif //_WIN32 +#include "res\CustomizeManager.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +#include "afxprint.rc" // printing/print preview resources +#include "OXMain.rc" +#endif + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.sln b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.sln new file mode 100644 index 0000000..00edaf6 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CustomizeManager", "CustomizeManager.vcproj", "{B16DB8EC-79D3-464E-AD09-7F54E871AD46}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + Unicode Debug|Win32 = Unicode Debug|Win32 + Unicode Release|Win32 = Unicode Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B16DB8EC-79D3-464E-AD09-7F54E871AD46}.Debug|Win32.ActiveCfg = Debug|Win32 + {B16DB8EC-79D3-464E-AD09-7F54E871AD46}.Debug|Win32.Build.0 = Debug|Win32 + {B16DB8EC-79D3-464E-AD09-7F54E871AD46}.Release|Win32.ActiveCfg = Release|Win32 + {B16DB8EC-79D3-464E-AD09-7F54E871AD46}.Release|Win32.Build.0 = Release|Win32 + {B16DB8EC-79D3-464E-AD09-7F54E871AD46}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32 + {B16DB8EC-79D3-464E-AD09-7F54E871AD46}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32 + {B16DB8EC-79D3-464E-AD09-7F54E871AD46}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32 + {B16DB8EC-79D3-464E-AD09-7F54E871AD46}.Unicode Release|Win32.Build.0 = Unicode Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.vcproj b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.vcproj new file mode 100644 index 0000000..0f797f1 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.vcproj @@ -0,0 +1,3787 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.vssscc b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.vssscc new file mode 100644 index 0000000..6cb031b --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManager.vssscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManagerDoc.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManagerDoc.cpp new file mode 100644 index 0000000..9004466 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManagerDoc.cpp @@ -0,0 +1,84 @@ +// CustomizeManagerDoc.cpp : implementation of the CCustomizeManagerDoc class +// + +#include "stdafx.h" +#include "CustomizeManager.h" + +#include "CustomizeManagerDoc.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CCustomizeManagerDoc + +IMPLEMENT_DYNCREATE(CCustomizeManagerDoc, CDocument) + +BEGIN_MESSAGE_MAP(CCustomizeManagerDoc, CDocument) + //{{AFX_MSG_MAP(CCustomizeManagerDoc) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CCustomizeManagerDoc construction/destruction + +CCustomizeManagerDoc::CCustomizeManagerDoc() +{ + // TODO: add one-time construction code here + +} + +CCustomizeManagerDoc::~CCustomizeManagerDoc() +{ +} + +BOOL CCustomizeManagerDoc::OnNewDocument() +{ + if (!CDocument::OnNewDocument()) + return FALSE; + + // TODO: add reinitialization code here + // (SDI documents will reuse this document) + + return TRUE; +} + + + +///////////////////////////////////////////////////////////////////////////// +// CCustomizeManagerDoc serialization + +void CCustomizeManagerDoc::Serialize(CArchive& ar) +{ + if (ar.IsStoring()) + { + // TODO: add storing code here + } + else + { + // TODO: add loading code here + } +} + +///////////////////////////////////////////////////////////////////////////// +// CCustomizeManagerDoc diagnostics + +#ifdef _DEBUG +void CCustomizeManagerDoc::AssertValid() const +{ + CDocument::AssertValid(); +} + +void CCustomizeManagerDoc::Dump(CDumpContext& dc) const +{ + CDocument::Dump(dc); +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CCustomizeManagerDoc commands diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManagerDoc.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManagerDoc.h new file mode 100644 index 0000000..89b63de --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManagerDoc.h @@ -0,0 +1,57 @@ +// CustomizeManagerDoc.h : interface of the CCustomizeManagerDoc class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_CUSTOMIZEMANAGERDOC_H__F8CA3858_21D3_41FD_B720_15875E934869__INCLUDED_) +#define AFX_CUSTOMIZEMANAGERDOC_H__F8CA3858_21D3_41FD_B720_15875E934869__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + + +class CCustomizeManagerDoc : public CDocument +{ +protected: // create from serialization only + CCustomizeManagerDoc(); + DECLARE_DYNCREATE(CCustomizeManagerDoc) + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CCustomizeManagerDoc) + public: + virtual BOOL OnNewDocument(); + virtual void Serialize(CArchive& ar); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CCustomizeManagerDoc(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + +// Generated message map functions +protected: + //{{AFX_MSG(CCustomizeManagerDoc) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_CUSTOMIZEMANAGERDOC_H__F8CA3858_21D3_41FD_B720_15875E934869__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManagerView.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManagerView.cpp new file mode 100644 index 0000000..d5e15aa --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManagerView.cpp @@ -0,0 +1,104 @@ +// CustomizeManagerView.cpp : implementation of the CCustomizeManagerView class +// + +#include "stdafx.h" +#include "CustomizeManager.h" + +#include "CustomizeManagerDoc.h" +#include "CustomizeManagerView.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CCustomizeManagerView + +IMPLEMENT_DYNCREATE(CCustomizeManagerView, CView) + +BEGIN_MESSAGE_MAP(CCustomizeManagerView, CView) + //{{AFX_MSG_MAP(CCustomizeManagerView) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG_MAP + // Standard printing commands + ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint) + ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint) + ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CCustomizeManagerView construction/destruction + +CCustomizeManagerView::CCustomizeManagerView() +{ + // TODO: add construction code here + +} + +CCustomizeManagerView::~CCustomizeManagerView() +{ +} + +BOOL CCustomizeManagerView::PreCreateWindow(CREATESTRUCT& cs) +{ + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + return CView::PreCreateWindow(cs); +} + +///////////////////////////////////////////////////////////////////////////// +// CCustomizeManagerView drawing + +void CCustomizeManagerView::OnDraw(CDC* /*pDC*/) +{ + CCustomizeManagerDoc* pDoc = GetDocument(); + ASSERT_VALID(pDoc); + // TODO: add draw code for native data here +} + +///////////////////////////////////////////////////////////////////////////// +// CCustomizeManagerView printing + +BOOL CCustomizeManagerView::OnPreparePrinting(CPrintInfo* pInfo) +{ + // default preparation + return DoPreparePrinting(pInfo); +} + +void CCustomizeManagerView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) +{ + // TODO: add extra initialization before printing +} + +void CCustomizeManagerView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) +{ + // TODO: add cleanup after printing +} + +///////////////////////////////////////////////////////////////////////////// +// CCustomizeManagerView diagnostics + +#ifdef _DEBUG +void CCustomizeManagerView::AssertValid() const +{ + CView::AssertValid(); +} + +void CCustomizeManagerView::Dump(CDumpContext& dc) const +{ + CView::Dump(dc); +} + +CCustomizeManagerDoc* CCustomizeManagerView::GetDocument() // non-debug version is inline +{ + ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CCustomizeManagerDoc))); + return (CCustomizeManagerDoc*)m_pDocument; +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CCustomizeManagerView message handlers diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManagerView.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManagerView.h new file mode 100644 index 0000000..5323007 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/CustomizeManagerView.h @@ -0,0 +1,68 @@ +// CustomizeManagerView.h : interface of the CCustomizeManagerView class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_CUSTOMIZEMANAGERVIEW_H__F7F2B4D2_A8E3_4676_8DA3_45B0DAECB502__INCLUDED_) +#define AFX_CUSTOMIZEMANAGERVIEW_H__F7F2B4D2_A8E3_4676_8DA3_45B0DAECB502__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#include "OXSkinnedView.h" + +class CCustomizeManagerView : public COXSkinnedView +{ +protected: // create from serialization only + CCustomizeManagerView(); + DECLARE_DYNCREATE(CCustomizeManagerView) + +// Attributes +public: + CCustomizeManagerDoc* GetDocument(); + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CCustomizeManagerView) + public: + virtual void OnDraw(CDC* pDC); // overridden to draw this view + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + protected: + virtual BOOL OnPreparePrinting(CPrintInfo* pInfo); + virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo); + virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CCustomizeManagerView(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + +// Generated message map functions +protected: + //{{AFX_MSG(CCustomizeManagerView) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +#ifndef _DEBUG // debug version in CustomizeManagerView.cpp +inline CCustomizeManagerDoc* CCustomizeManagerView::GetDocument() + { return (CCustomizeManagerDoc*)m_pDocument; } +#endif + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_CUSTOMIZEMANAGERVIEW_H__F7F2B4D2_A8E3_4676_8DA3_45B0DAECB502__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/MainFrm.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/MainFrm.cpp new file mode 100644 index 0000000..f1ffd2e --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/MainFrm.cpp @@ -0,0 +1,236 @@ +// MainFrm.cpp : implementation of the CMainFrame class +// + +#include "stdafx.h" +#include "CustomizeManager.h" + +#include "MainFrm.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame + +IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWnd) + +BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd) + //{{AFX_MSG_MAP(CMainFrame) + ON_WM_CREATE() + ON_COMMAND(ID_VIEW_CUSTOMIZE, OnViewCustomize) + ON_WM_CLOSE() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +static UINT indicators[] = +{ + ID_SEPARATOR, // status line indicator + ID_INDICATOR_CAPS, + ID_INDICATOR_NUM, + ID_INDICATOR_SCRL, +}; + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame construction/destruction + +CMainFrame::CMainFrame() : COXMenuBarFrame(CBRS_ALIGN_ANY, + RUNTIME_CLASS(COXSizableMiniDockFrameWnd)) +{ + // TODO: add member initialization code here + +} + +CMainFrame::~CMainFrame() +{ +} + +int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) +{ + if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1) + return -1; + + // STEP 6f: Commands Page - You must use Create(...) instead of CreateEx(...), + // otherwise the toolbar buttons will not be customizable. + if (!m_wndToolBar.Create(this, + WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC, + AFX_IDW_TOOLBAR) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) + { + TRACE0("Failed to create toolbar\n"); + return -1; // fail to create + } + InitToolBar(); + + if (!m_wndStatusBar.Create(this) || + !m_wndStatusBar.SetIndicators(indicators, + sizeof(indicators)/sizeof(UINT))) + { + TRACE0("Failed to create status bar\n"); + return -1; // fail to create + } + + // TODO: Delete these three lines if you don't want the toolbar to + // be dockable + m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); + EnableDocking(CBRS_ALIGN_ANY); + DockControlBar(&m_wndToolBar); + + // Comment out the next line if you don't want the snapping and tear-off behavior. + EnableSnapping(); + + // STEP 3: Before initializing the different pages of the Customize Manager you have + // to set CWinApp::m_pMainWnd to point to your main frame. + AfxGetApp()->m_pMainWnd = this; + + // STEP 4b: Tabbed MDI Page - Call InitializeTabbedMDI() in the WM_CREATE handler + // of your main frame window. This call but be prior to calling InitializeBackgroundPainter(...). + m_CM.InitializeTabbedMDI(); + + // STEP 5b: Toolbars Page - Call InitializeToolbars() in the WM_CREATE handler + // of your main frame window. + m_CM.InitializeToolbars(); + + // STEP 6b: Commands Page - Call InitializeCommands() in the WM_CREATE handler of + // your main frame window. Make sure that this function is called AFTER InitializeToolbars(). + m_CM.InitializeCommands(); + + // STEP 6c: Recent Menus - If you want some menu items to be colapsed call + // ExcludeFromRecentlyUsed(...) and pass the ID of the menu item. + m_CM.GetBMOrganizer()->ExcludeFromRecentlyUsed(ID_FILE_OPEN); + m_CM.GetBMOrganizer()->ExcludeFromRecentlyUsed(ID_FILE_PRINT_PREVIEW); + m_CM.GetBMOrganizer()->ExcludeFromRecentlyUsed(ID_FILE_PRINT_SETUP); + + // STEP 7b: Cool Controls Page - Call InitializeCoolControls() in the WM_CREATE handler + // of your main frame window. + m_CM.InitializeCoolControls(); + + // STEP 8b: Instance Manager Page - Call InitializeInstanceManager() in the WM_CREATE handler + // of your main frame window. + m_CM.InitializeInstanceManager(); + + // STEP 9b: IntelliMouse Support Page - Call InitializeIntelliMouse() in the WM_CREATE handler + // of your main frame window. + m_CM.InitializeIntelliMouse(TRUE, WM_LBUTTONDOWN, KEYPRESSED_SHIFT); + + // STEP 10b: Shortkeys Page - Call InitializeShortkeys(...) in the WM_CREATE handler + // of your main frame window. + m_CM.InitializeShortkeys(this); + + // STEP 11b: Splash Window Page - Call InitializeSplashWindow(...) in the WM_CREATE handler + // of your main frame window. + m_CM.InitializeSplashWindow(IDB_SPLASH, TRUE, 2000); + + // STEP 12b: Background Painter Page - Call InitializeBackgroundPainter(...) in the + // WM_CREATE handler of your main frame window. This must be called after InitializeTabbedMDI(). + m_CM.InitializeBackgroundPainter(TRUE, TRUE, IDB_BACKGROUND); + + // STEP 13b: Tray Icon Page - Call InitializeTrayIcon(...) in the WM_CREATE handler + // of your main frame window. + m_CM.InitializeTrayIcon(IDR_MAINFRAME, IDR_MAINFRAME, _T("Tooltip")); + + return 0; +} + +void CMainFrame::OnClose() +{ + // STEP 14c: Workspace State Page - Call SaveWorkspaceState() in the WM_CLOSE handler + // of your main frame window. +// m_CM.SaveWorkspaceState(); + + CMDIFrameWnd::OnClose(); +} + +BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) +{ + if( !CMDIFrameWnd::PreCreateWindow(cs) ) + return FALSE; + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + return TRUE; +} + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame diagnostics + +#ifdef _DEBUG +void CMainFrame::AssertValid() const +{ + CMDIFrameWnd::AssertValid(); +} + +void CMainFrame::Dump(CDumpContext& dc) const +{ + CMDIFrameWnd::Dump(dc); +} + +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame message handlers + +// STEP 2: Add a command and a handler for it which will display the Customize Manager window. +void CMainFrame::OnViewCustomize() +{ + // If the Customize Manager window has not been created yet - create it. + if (!::IsWindow(m_CM.GetSafeHwnd())) + { + VERIFY(m_CM.Create(COXCustomizeManager::IDD, this)); + } + + // Set the page you want to display first and show the window. + m_CM.ActivatePage(BACKGROUND_PAINTER); + m_CM.SetActiveWindow(); + m_CM.ShowWindow(SW_SHOW); +} + +void CMainFrame::InitToolBar() +{ + m_wndToolBar.SetWindowText(_T("Toolbar")); + + static CFont font; + if(font.m_hObject == NULL) + font.CreatePointFont(-80, _T("MS Sans Serif")); + + // Add the skinned combo box + int iCombo = COXCoolToolBar::AddCustomButton(&m_Combo, ID_CB_COMBO, 100, 100); + m_wndToolBar.InsertComboBox(m_wndToolBar.GetToolBarCtrl().GetButtonCount(), iCombo); + m_Combo.SetFont(&font); + + m_Combo.AddString(_T("One")); + m_Combo.SetItemData(0, 500); + m_Combo.AddString(_T("Two")); + m_Combo.SetItemData(1, 1000); + m_Combo.AddString(_T("Three")); + m_Combo.SetItemData(2, 1500); + m_Combo.AddString(_T("Four")); + m_Combo.SetItemData(3, 2000); + m_Combo.AddString(_T("Five")); + m_Combo.SetItemData(4, 2500); +} + +// We override WindowProc since we want to get CBN_SELCHANGE along with +// the handle of the window that generated it. +LRESULT CMainFrame::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) +{ + // NOTE: Since the Customize Manager could have been used to place the combo box + // in more than one place, there is no garantee that m_Combo is where this notification + // originated. So we must get the pointer using the combo box handle. + if (message == WM_COMMAND && HIWORD(wParam) == CBN_SELCHANGE) + { + COXCustomTBComboBox* pCombo = + (COXCustomTBComboBox*) CWnd::FromHandlePermanent((HWND) lParam); + + if (pCombo) + { + // Beep with the appropriate frequency when the selection changes + int iFrequency = (int) pCombo->GetItemData(pCombo->GetCurSel()); + Beep(iFrequency, 100); + } + } + + return COXMenuBarFrame::WindowProc(message, wParam, lParam); +} + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/MainFrm.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/MainFrm.h new file mode 100644 index 0000000..49f2f8d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/MainFrm.h @@ -0,0 +1,77 @@ +// MainFrm.h : interface of the CMainFrame class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_MAINFRM_H__84AC7585_BE42_4A2A_AE55_76F3BF8B34E6__INCLUDED_) +#define AFX_MAINFRM_H__84AC7585_BE42_4A2A_AE55_76F3BF8B34E6__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#include "OXCustomizeManager.h" +#include "OXCoolToolBar.h" +#include "xstatus4.h" + +// STEP 6d: Commands Page - Derive your main frame class from COXMenuBarFrame<...> for the menus +// to be customizable. +class CMainFrame : public COXMenuBarFrame +{ + DECLARE_DYNAMIC(CMainFrame) +public: + CMainFrame(); + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CMainFrame) + public: + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + protected: + virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CMainFrame(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + + // STEP 1: Add an instance of COXCustomizeManager to you main frame class. + COXCustomizeManager m_CM; + +protected: // control bar embedded members + + // STEP 6e, 12c: Commands Page, Toolbars Page - Use an instance of COXCoolToolBar + // instead of CToolBar. + COXCoolToolBar m_wndToolBar; + + COXStatusBar m_wndStatusBar; + COXCustomTBComboBox m_Combo; + +// Generated message map functions +protected: + //{{AFX_MSG(CMainFrame) + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnViewCustomize(); + afx_msg void OnClose(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +private: + void InitToolBar(); + +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_MAINFRM_H__84AC7585_BE42_4A2A_AE55_76F3BF8B34E6__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/ReadMe.txt b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/ReadMe.txt new file mode 100644 index 0000000..3bb2dda --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/ReadMe.txt @@ -0,0 +1,117 @@ +======================================================================== + MICROSOFT FOUNDATION CLASS LIBRARY : CustomizeManager +======================================================================== + + +AppWizard has created this CustomizeManager application for you. This application +not only demonstrates the basics of using the Microsoft Foundation classes +but is also a starting point for writing your application. + +This file contains a summary of what you will find in each of the files that +make up your CustomizeManager application. + +CustomizeManager.dsp + This file (the project file) contains information at the project level and + is used to build a single project or subproject. Other users can share the + project (.dsp) file, but they should export the makefiles locally. + +CustomizeManager.h + This is the main header file for the application. It includes other + project specific headers (including Resource.h) and declares the + CCustomizeManagerApp application class. + +CustomizeManager.cpp + This is the main application source file that contains the application + class CCustomizeManagerApp. + +CustomizeManager.rc + This is a listing of all of the Microsoft Windows resources that the + program uses. It includes the icons, bitmaps, and cursors that are stored + in the RES subdirectory. This file can be directly edited in Microsoft + Visual C++. + +CustomizeManager.clw + This file contains information used by ClassWizard to edit existing + classes or add new classes. ClassWizard also uses this file to store + information needed to create and edit message maps and dialog data + maps and to create prototype member functions. + +res\CustomizeManager.ico + This is an icon file, which is used as the application's icon. This + icon is included by the main resource file CustomizeManager.rc. + +res\CustomizeManager.rc2 + This file contains resources that are not edited by Microsoft + Visual C++. You should place all resources not editable by + the resource editor in this file. + + + +///////////////////////////////////////////////////////////////////////////// + +For the main frame window: + +MainFrm.h, MainFrm.cpp + These files contain the frame class CMainFrame, which is derived from + CMDIFrameWnd and controls all MDI frame features. + +res\Toolbar.bmp + This bitmap file is used to create tiled images for the toolbar. + The initial toolbar and status bar are constructed in the CMainFrame + class. Edit this toolbar bitmap using the resource editor, and + update the IDR_MAINFRAME TOOLBAR array in CustomizeManager.rc to add + toolbar buttons. +///////////////////////////////////////////////////////////////////////////// + +For the child frame window: + +ChildFrm.h, ChildFrm.cpp + These files define and implement the CChildFrame class, which + supports the child windows in an MDI application. + +///////////////////////////////////////////////////////////////////////////// + +AppWizard creates one document type and one view: + +CustomizeManagerDoc.h, CustomizeManagerDoc.cpp - the document + These files contain your CCustomizeManagerDoc class. Edit these files to + add your special document data and to implement file saving and loading + (via CCustomizeManagerDoc::Serialize). + +CustomizeManagerView.h, CustomizeManagerView.cpp - the view of the document + These files contain your CCustomizeManagerView class. + CCustomizeManagerView objects are used to view CCustomizeManagerDoc objects. + +res\CustomizeManagerDoc.ico + This is an icon file, which is used as the icon for MDI child windows + for the CCustomizeManagerDoc class. This icon is included by the main + resource file CustomizeManager.rc. + + +///////////////////////////////////////////////////////////////////////////// +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named CustomizeManager.pch and a precompiled types file named StdAfx.obj. + +Resource.h + This is the standard header file, which defines new resource IDs. + Microsoft Visual C++ reads and updates this file. + +///////////////////////////////////////////////////////////////////////////// +Other notes: + +AppWizard uses "TODO:" to indicate parts of the source code you +should add to or customize. + +If your application uses MFC in a shared DLL, and your application is +in a language other than the operating system's current language, you +will need to copy the corresponding localized resources MFC42XXX.DLL +from the Microsoft Visual C++ CD-ROM onto the system or system32 directory, +and rename it to be MFCLOC.DLL. ("XXX" stands for the language abbreviation. +For example, MFC42DEU.DLL contains resources translated to German.) If you +don't do this, some of the UI elements of your application will remain in the +language of the operating system. + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/StdAfx.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/StdAfx.cpp new file mode 100644 index 0000000..d48765a --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/StdAfx.cpp @@ -0,0 +1,8 @@ +// stdafx.cpp : source file that includes just the standard includes +// CustomizeManager.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/StdAfx.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/StdAfx.h new file mode 100644 index 0000000..f13cc47 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/StdAfx.h @@ -0,0 +1,63 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#if !defined(AFX_STDAFX_H__D985ED2C_5BB7_4A58_8CEC_BF5FB5C03A98__INCLUDED_) +#define AFX_STDAFX_H__D985ED2C_5BB7_4A58_8CEC_BF5FB5C03A98__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers + +#include // MFC core and standard components +#include // MFC extensions +#include // MFC Automation classes +#include // MFC support for Internet Explorer 4 Common Controls +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for Windows Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + +#include + +// STEP 4a: Tabbed MDI Page - Define OX_CUSTOMIZE_TABBEDMDI in your StdAfx.h file +#define OX_CUSTOMIZE_TABBEDMDI + +// STEP 6a: Toolbars Page - Define OX_CUSTOMIZE_TOOLBARS in your StdAfx.h file +#define OX_CUSTOMIZE_TOOLBARS + +// STEP 6a: Commands Page - Define OX_CUSTOMIZE_COMMANDS in your StdAfx.h file +#define OX_CUSTOMIZE_COMMANDS + +// STEP 7a: Cool Controls Page - Define OX_CUSTOMIZE_COOLCONTROLS in your StdAfx.h file +#define OX_CUSTOMIZE_COOLCONTROLS + +// STEP 8a: Instance Manager Page - Define OX_CUSTOMIZE_INSTANCE_MANAGER in your StdAfx.h file +#define OX_CUSTOMIZE_INSTANCE_MANAGER + +// STEP 9a: IntelliMouse Support Page - Define OX_CUSTOMIZE_INTELLIMOUSE in your StdAfx.h file +#define OX_CUSTOMIZE_INTELLIMOUSE + +// STEP 10a: Shortkeys Page - Define OX_CUSTOMIZE_SHORTKEYS in your StdAfx.h file +#define OX_CUSTOMIZE_SHORTKEYS + +// STEP 11a: Splash Window Page - Define OX_CUSTOMIZE_SPLASHWINDOW in your StdAfx.h file +#define OX_CUSTOMIZE_SPLASHWINDOW + +// STEP 12a: Background Painter Page - Define OX_CUSTOMIZE_BACKGROUND in your StdAfx.h file +#define OX_CUSTOMIZE_BACKGROUND + +// STEP 13a: Tray Icon Page - Define OX_CUSTOMIZE_TRAYICON in your StdAfx.h file +#define OX_CUSTOMIZE_TRAYICON + +// STEP 14a: Workspace State Page - Define OX_CUSTOMIZE_WORKSPACE_STATE in your StdAfx.h file +#define OX_CUSTOMIZE_WORKSPACE_STATE + +#include "OXAdvancedAssert.h" + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_STDAFX_H__D985ED2C_5BB7_4A58_8CEC_BF5FB5C03A98__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/res/CustomizeManager.ico b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/res/CustomizeManager.ico new file mode 100644 index 0000000000000000000000000000000000000000..7eef0bcbe6580a6f464d688906172c2d9de44262 GIT binary patch literal 1078 zcmc&zF>b>!3}jLb9s)T}@Kod(893@u8ajANzT`op9^o+)S?=nU(FD@%0s)Sg^oyC8{H z9myetc;MEP)59v(LMa~xK8Yu^jIR*H22uCFiq5%C{s7(PJi>o15i^bmX4(vPxWAio z9ryY#AU_jfnd047-@`)XzL?%iS$gQyFP{44kS9X)fN{{QoL~hO-&=q&20Zr*cxFAt PkaNE{wR~2C$NfnjhSXWT literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/res/CustomizeManager.rc2 b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/res/CustomizeManager.rc2 new file mode 100644 index 0000000..e992f33 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/res/CustomizeManager.rc2 @@ -0,0 +1,13 @@ +// +// CUSTOMIZEMANAGER.RC2 - resources Microsoft Visual C++ does not edit directly +// + +#ifdef APSTUDIO_INVOKED + #error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// Add manually edited resources here... + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/res/CustomizeManagerDoc.ico b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/res/CustomizeManagerDoc.ico new file mode 100644 index 0000000000000000000000000000000000000000..2a1f1ae6ef15e51df8c39bc028bbfb2171822ba5 GIT binary patch literal 1078 zcmcJNF;c@Y5JlGsgIpoERJdY%i*S@2!JS&si6f-)RXoFGDAfg5;z_dQBoi_)1DpI^ z{oS?KlD%25H@>BZ{KJV|_dD9_G1MV<{5a&-}7^W%4AM)k- zx&P*V(j}a@*Y~UhksXTAK!NRyiYN-8NMyKz<)2v9@tUao7A!g+SzkAcsHvdq6!0vQ z#-rA6>0BAr)4*u6Y57EdkamnXf Uh-a7VEuQ2KJb_2>o71HC3-%7w@Bjb+ literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/res/Toolbar.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/res/Toolbar.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d501723c1ceb781cccf04bc42408a2bee6b0eab4 GIT binary patch literal 1078 zcmb_byK2Kg5WFD46)N-_DGd%mbvRHJ@+(`2Y#@z5De^h$T}Yp#;yM?~%&rw%!DZII z_s!1Ct^M-)Tn3AG^p9vgT8;J){9rDyxEsA+?t8wt)o$n@0`>@NK8bGHkdKdb4m#tglAgQo-)Js1!#;+~GSl z37z4Z<|(I?jV44Q_xOeQ!(IFmLY86pVjciLPfC9(?0)$t7hw7W^>>N<@a4LVKPMb~ ze5>=j|BL>!3lPen5hUo~ANKN`l7C&3 z%0PPq3XFRT-e1OO0*EKjOA>DIfd!JKE>l7s8ZOWoALnDl7bEaBMvn{Ll0`lMj_p*2 zeyj@cEB=w(f%+@Ig9SfK=ePQ9c)El>T>d0F2ei{lnHqPg}It<8 literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/res/background.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/res/background.bmp new file mode 100644 index 0000000000000000000000000000000000000000..1f8b567d5369ddb3d6b59b303dbae1ba5addb38e GIT binary patch literal 310 zcmZ`zxe960TUKQGlH=S1JTBtOT39nH zU?KwIID!N)klB#jj?!4vU`gGfAp!IoI5||y8FZP-8^M?qcq?#a!~x{ O@!)@YUgY|&33vg2p1mRf literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/res/splash.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/res/splash.bmp new file mode 100644 index 0000000000000000000000000000000000000000..fe058db83c759f48ead984e443c85392be64435a GIT binary patch literal 23158 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 L=y~8S^}v4tJ9aQy literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/resource.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/resource.h new file mode 100644 index 0000000..441a783 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/CustomizeManager/resource.h @@ -0,0 +1,23 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by CustomizeManager.rc +// +#define IDD_ABOUTBOX 100 +#define IDR_MAINFRAME 128 +#define IDR_CUSTOMTYPE 129 +#define IDB_SPLASH 130 +#define IDB_BACKGROUND 131 +#define ID_VIEW_CUSTOMIZE 32771 +#define ID_CB_COMBO 61446 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_3D_CONTROLS 1 +#define _APS_NEXT_RESOURCE_VALUE 132 +#define _APS_NEXT_COMMAND_VALUE 32772 +#define _APS_NEXT_CONTROL_VALUE 1000 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ChildFrm.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ChildFrm.cpp new file mode 100644 index 0000000..001176f --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ChildFrm.cpp @@ -0,0 +1,134 @@ +// ChildFrm.cpp : implementation of the CChildFrame class +// + +#include "stdafx.h" +#include "DIBManager.h" + +#include "ChildFrm.h" + +#include "MainFrm.h" +#include "DIBManagerDoc.h" +#include "ScaleRollupDlg.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame + +IMPLEMENT_DYNCREATE(CChildFrame, CMDIChildWnd) + +BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWnd) + //{{AFX_MSG_MAP(CChildFrame) + ON_WM_CREATE() + ON_WM_DESTROY() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame construction/destruction + +CChildFrame::CChildFrame() +{ + // TODO: add member initialization code here + +} + +CChildFrame::~CChildFrame() +{ +} + +BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs) +{ + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + cs.lpszClass = AfxRegisterWndClass(CS_DBLCLKS,NULL,NULL, + AfxGetApp()->LoadIcon(IDR_DIBMANTYPE)); + ASSERT(cs.lpszClass); + + return CMDIChildWnd::PreCreateWindow(cs); +} + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame diagnostics + +#ifdef _DEBUG +void CChildFrame::AssertValid() const +{ + CMDIChildWnd::AssertValid(); +} + +void CChildFrame::Dump(CDumpContext& dc) const +{ + CMDIChildWnd::Dump(dc); +} + +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame message handlers + +int CChildFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) +{ + if (CMDIChildWnd::OnCreate(lpCreateStruct) == -1) + return -1; + + // TODO: Add your specialized creation code here + m_Caption.Attach(this); + SendMessage(WM_NCPAINT); + + // when we create new child window we add info about it + // into TreeFilesBar docking control + ((CMainFrame*)GetMDIFrame())-> + m_TreeFilesBar.AddNewWindowToTree(this); + + return 0; +} + +void CChildFrame::OnDestroy() +{ + CMDIChildWnd::OnDestroy(); + + // TODO: Add your message handler code here + CDIBManagerApp* pApp=(CDIBManagerApp*)AfxGetApp(); + CMainFrame* pMainFrame=(CMainFrame*)pApp->m_pMainWnd; + + // notify TreeFilesBar docking control that the child window is about + // to be destroyed and we have to remove info about the window + pMainFrame->m_TreeFilesBar.RemoveWindowFromTree(this); + + // if we are about to destroy the last child window and + // roll-up ZoomLevel Dialog is active then destroy that dialog + if(pMainFrame->m_bShowZoomLevelDlg && + pMainFrame->m_TreeFilesBar.m_TreeFiles.GetCount()==1) + { + CScaleRollupDlg *pScaleRollupDlg=pApp->GetScaleRollupDlg(); + pScaleRollupDlg->DestroyWindow(); + pMainFrame->m_bShowZoomLevelDlg=FALSE; + } +} + + +LRESULT CChildFrame::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) +{ + // TODO: Add your specialized code here and/or call the base class + + switch(message) + { + // when mainframe sets new title for the child window + // we notify TreeFilesBar docking control about that + case WM_SETTEXT: + { + ((CMainFrame*)GetMDIFrame())-> + m_TreeFilesBar.SetTextForWindowInTree(this, + (const CString&)(CString)((LPCSTR)lParam)); + break; + } + } + + return CMDIChildWnd::WindowProc(message, wParam, lParam); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ChildFrm.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ChildFrm.h new file mode 100644 index 0000000..5d920fb --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ChildFrm.h @@ -0,0 +1,62 @@ +// ChildFrm.h : interface of the CChildFrame class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_CHILDFRM_H__D2552D14_7143_11D1_A3D5_0080C83F712F__INCLUDED_) +#define AFX_CHILDFRM_H__D2552D14_7143_11D1_A3D5_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXMDIFloatWnd.h" + +#include "OXCaptionPainter.h" + +class CChildFrame : public CMDIChildWnd +{ + DECLARE_DYNCREATE(CChildFrame) +public: + CChildFrame(); + +// Attributes +public: + +protected: + COXCaptionPainter m_Caption; + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CChildFrame) + public: + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + protected: + virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CChildFrame(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +// Generated message map functions +protected: + //{{AFX_MSG(CChildFrame) + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnDestroy(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_CHILDFRM_H__D2552D14_7143_11D1_A3D5_0080C83F712F__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.clw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.clw new file mode 100644 index 0000000..afb55ee --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.clw @@ -0,0 +1,697 @@ +; CLW file contains information for the MFC ClassWizard + +[General Info] +Version=1 +LastClass=CDIBManagerApp +LastTemplate=CDialog +NewFileInclude1=#include "stdafx.h" +NewFileInclude2=#include "dibmanager.h" +LastPage=0 + +ClassCount=12 +Class1=CChildFrame +Class2=CDIBManagerApp +Class3=CDIBManagerDoc +Class4=CDIBManagerView +Class5=CExportDlg +Class6=CImageInfoDlg +Class7=CImportDlg +Class8=CMainFrame +Class9=CResampleImageDlg +Class10=CScaleRollupDlg +Class11=CTreeFilesDlg +Class12=CWorkspaceDlg + +ResourceCount=26 +Resource1=IDD_IMAGE_INFO_DIALOG +Resource2=IDD_DIALOG_WORKSPACE +Resource3=IDR_MAINFRAME +Resource4=IDD_DIALOG_EXPORT +Resource5=IDR_DIBMANTYPE +Resource6=IDR_MAINFRAME_COPY +Resource7=IDR_MAINFRAME_HOT +Resource8=IDD_DIALOG_TREE_FILES +Resource9=IDR_DUMMY +Resource10=IDD_DIALOG_IMPORT +Resource11=IDD_DIALOG_ROLLUP +Resource12=IDR_DUMMY_HOT +Resource13=IDD_DIALOG_RESAMPLE +Resource14=IDR_MAINFRAME_HOT (English (U.S.)) +Resource15=IDR_DUMMY (English (U.S.)) +Resource16=IDR_DUMMY_HOT (English (U.S.)) +Resource17=IDR_MAINFRAME_COPY (English (U.S.)) +Resource18=IDR_MAINFRAME (English (U.S.)) +Resource19=IDR_DIBMANTYPE (English (U.S.)) +Resource20=IDD_DIALOG_TREE_FILES (English (U.S.)) +Resource21=IDD_DIALOG_EXPORT (English (U.S.)) +Resource22=IDD_DIALOG_IMPORT (English (U.S.)) +Resource23=IDD_DIALOG_WORKSPACE (English (U.S.)) +Resource24=IDD_DIALOG_ROLLUP (English (U.S.)) +Resource25=IDD_IMAGE_INFO_DIALOG (English (U.S.)) +Resource26=IDD_DIALOG_RESAMPLE (English (U.S.)) + +[CLS:CChildFrame] +Type=0 +BaseClass=CMDIChildWnd +HeaderFile=ChildFrm.h +ImplementationFile=ChildFrm.cpp +LastObject=CChildFrame + +[CLS:CDIBManagerApp] +Type=0 +BaseClass=COXWinApp +HeaderFile=DIBManager.h +ImplementationFile=DIBManager.cpp +LastObject=CDIBManagerApp + +[CLS:CDIBManagerDoc] +Type=0 +BaseClass=CDocument +HeaderFile=DIBManagerDoc.h +ImplementationFile=DIBManagerDoc.cpp + +[CLS:CDIBManagerView] +Type=0 +BaseClass=COXZoomView +HeaderFile=DIBManagerView.h +ImplementationFile=DIBManagerView.cpp + +[CLS:CExportDlg] +Type=0 +BaseClass=CDialog +HeaderFile=ExportDlg.h +ImplementationFile=ExportDlg.cpp + +[CLS:CImageInfoDlg] +Type=0 +BaseClass=CDialog +HeaderFile=ImageInfoDlg.h +ImplementationFile=ImageInfoDlg.cpp + +[CLS:CImportDlg] +Type=0 +BaseClass=CDialog +HeaderFile=ImportDlg.h +ImplementationFile=ImportDlg.cpp + +[CLS:CMainFrame] +Type=0 +BaseClass=COXMDIFrameWndSizeDock +HeaderFile=MainFrm.h +ImplementationFile=MainFrm.cpp + +[CLS:CResampleImageDlg] +Type=0 +BaseClass=CDialog +HeaderFile=ResampleImageDlg.h +ImplementationFile=ResampleImageDlg.cpp + +[CLS:CScaleRollupDlg] +Type=0 +BaseClass=COXRollup +HeaderFile=ScaleRollupDlg.h +ImplementationFile=ScaleRollupDlg.cpp + +[CLS:CTreeFilesDlg] +Type=0 +BaseClass=COXSizeDialogBar +HeaderFile=TreeFilesDlg.h +ImplementationFile=TreeFilesDlg.cpp + +[CLS:CWorkspaceDlg] +Type=0 +BaseClass=CDialog +HeaderFile=WorkspaceDlg.h +ImplementationFile=WorkspaceDlg.cpp + +[DLG:IDD_DIALOG_EXPORT] +Type=1 +Class=CExportDlg +ControlCount=19 +Control1=IDC_FILENAME,combobox,1344340034 +Control2=IDC_QUALITY,edit,1350631552 +Control3=IDC_SPIN_QUALITY,msctls_updown32,1342177442 +Control4=IDC_CHECK_SMOOTH,button,1342242819 +Control5=IDC_SMOOTH,edit,1350631552 +Control6=IDC_SPIN_SMOOTH,msctls_updown32,1342177442 +Control7=IDC_CHECK_GRAYSCALE,button,1342242819 +Control8=IDC_CHECK_OPTIMIZE,button,1342242819 +Control9=IDC_CHECK_PROGRESSIVE,button,1342242819 +Control10=IDC_CHECK_BASELINE,button,1342242819 +Control11=IDC_RADIO_DCT_INT,button,1342373897 +Control12=IDC_RADIO_DCT_FAST,button,1342242825 +Control13=IDC_RADIO_DCT_FLOAT,button,1342242825 +Control14=IDOK,button,1342242817 +Control15=IDCANCEL,button,1342242816 +Control16=IDC_STATIC,static,1342308352 +Control17=IDC_STATIC,static,1342308352 +Control18=IDC_STATIC,button,1342177287 +Control19=IDC_STATIC,button,1342177287 + +[DLG:IDD_IMAGE_INFO_DIALOG] +Type=1 +Class=CImageInfoDlg +ControlCount=17 +Control1=IDOK,button,1342242817 +Control2=IDC_STATIC,static,1342308352 +Control3=IDC_STATIC,static,1342308352 +Control4=IDC_STATIC,static,1342308352 +Control5=IDC_STATIC,static,1342308352 +Control6=IDC_STATIC,static,1342308352 +Control7=IDC_STATIC,static,1342308352 +Control8=IDC_STATIC,static,1342308352 +Control9=IDC_FILE_NAME,static,1342308364 +Control10=IDC_WIDTH,static,1342308352 +Control11=IDC_HEIGHT,static,1342308352 +Control12=IDC_SIZE_IN_MEMORY,static,1342308352 +Control13=IDC_FILE_SIZE,static,1342308352 +Control14=IDC_FORMAT,static,1342308352 +Control15=IDC_TYPE,static,1342308352 +Control16=IDC_STATIC,button,1342177287 +Control17=IDC_FILE_STATUS,static,1342308352 + +[DLG:IDD_DIALOG_IMPORT] +Type=1 +Class=CImportDlg +ControlCount=24 +Control1=IDC_FILENAME,combobox,1344339970 +Control2=IDC_CHECK_COLORS,button,1342242819 +Control3=IDC_COLORS,edit,1350631552 +Control4=IDC_SPIN_COLORS,msctls_updown32,1342177442 +Control5=IDC_CHECK_GRAYSCALE,button,1342242819 +Control6=IDC_CHECK_ONE_PASS,button,1342242819 +Control7=IDC_CHECK_NO_SMOOTH,button,1342242819 +Control8=IDC_RADIO_ONE_TO_ONE,button,1342373897 +Control9=IDC_RADIO_ONE_TO_TWO,button,1342242825 +Control10=IDC_RADIO_ONE_TO_FOUR,button,1342242825 +Control11=IDC_RADIO_ONE_TO_EIGHT,button,1342242825 +Control12=IDC_RADIO_DCT_INT,button,1342373897 +Control13=IDC_RADIO_DCT_FAST,button,1342242825 +Control14=IDC_RADIO_DCT_FLOAT,button,1342242825 +Control15=IDC_RADIO_DM_FLOYD_STEIN,button,1342373897 +Control16=IDC_RADIO_DM_ORDERED,button,1342242825 +Control17=IDC_RADIO_DM_NONE,button,1342242825 +Control18=IDOK,button,1342242817 +Control19=IDCANCEL,button,1342242816 +Control20=IDC_STATIC,static,1342308352 +Control21=IDC_STATIC,button,1342177287 +Control22=IDC_STATIC,button,1342177287 +Control23=IDC_STATIC,button,1342177287 +Control24=IDC_STATIC,button,1342177287 + +[DLG:IDD_DIALOG_RESAMPLE] +Type=1 +Class=CResampleImageDlg +ControlCount=23 +Control1=IDC_WIDTH_PIXELS,edit,1350566016 +Control2=IDC_SPIN_WIDTH_PIXELS,msctls_updown32,1342177442 +Control3=IDC_HEIGHT_PIXELS,edit,1350566016 +Control4=IDC_SPIN_HEIGHT_PIXELS,msctls_updown32,1342177442 +Control5=IDC_WIDTH_PERCENTS,edit,1350566016 +Control6=IDC_SPIN_WIDTH_PERCENTS,msctls_updown32,1342177442 +Control7=IDC_HEIGHT_PERCENTS,edit,1350566016 +Control8=IDC_SPIN_HEIGHT_PERCENTS,msctls_updown32,1342177442 +Control9=IDC_CHECK_MAINTAIN_RATIO,button,1342242819 +Control10=IDC_CHECK_MATCH_ZOOM_LEVEL,button,1342242819 +Control11=IDC_CHECK_CONVERT_TO,button,1342242819 +Control12=IDC_COMBO_CONVERT_TO,combobox,1344339971 +Control13=IDOK,button,1342242816 +Control14=ID_BUTTON_RESET,button,1342242816 +Control15=IDCANCEL,button,1342242816 +Control16=IDC_STATIC,button,1342177287 +Control17=IDC_STATIC,static,1342308352 +Control18=IDC_STATIC,static,1342308352 +Control19=IDC_WIDTH_ORIG,static,1342308352 +Control20=IDC_HEIGHT_ORIG,static,1342308352 +Control21=IDC_STATIC,static,1342308352 +Control22=IDC_STATIC,static,1342308352 +Control23=IDC_BUTTON_DUMMY,button,1073741825 + +[DLG:IDD_DIALOG_ROLLUP] +Type=1 +Class=CScaleRollupDlg +ControlCount=11 +Control1=IDC_ZOOM_LEVEL,edit,1350631424 +Control2=IDC_SPIN_ZOOM_LEVEL,msctls_updown32,1342177442 +Control3=IDC_BUTTON_APPLY,button,1342242817 +Control4=IDC_PICTURE,static,1342179333 +Control5=IDC_STATIC,static,1342308352 +Control6=IDC_STATIC,button,1342177287 +Control7=IDC_STATIC,static,1342308352 +Control8=IDC_STATIC,static,1342308352 +Control9=IDC_SCALED_WIDTH,edit,1350568064 +Control10=IDC_SCALED_HEIGHT,edit,1350568064 +Control11=IDC_STATIC,button,1342177287 + +[DLG:IDD_DIALOG_TREE_FILES] +Type=1 +Class=CTreeFilesDlg +ControlCount=1 +Control1=IDC_TREE_FILES,SysTreeView32,1342242871 + +[DLG:IDD_DIALOG_WORKSPACE] +Type=1 +Class=CWorkspaceDlg +ControlCount=5 +Control1=IDC_CHECK_SAVE_ON_EXIT,button,1342242819 +Control2=IDC_CHECK_LOAD_ON_ENTER,button,1342242819 +Control3=IDOK,button,1342242817 +Control4=IDCANCEL,button,1342242816 +Control5=IDC_SAVE_WORKSPACE,button,1342242816 + +[MNU:IDR_MAINFRAME] +Type=1 +Class=? +Command1=ID_FILE_OPEN +Command2=ID_FILE_IMPORT +Command3=ID_FILE_PRINT_SETUP +Command4=ID_FILE_MRU_FILE1 +Command5=ID_APP_EXIT +Command6=ID_VIEW_TOOLBAR +Command7=ID_VIEW_STATUS_BAR +Command8=ID_TREEFILESBAR +Command9=ID_VIEW_WORKSPACE +Command10=ID_APP_ABOUT +CommandCount=10 + +[MNU:IDR_DIBMANTYPE] +Type=1 +Class=? +Command1=ID_FILE_OPEN +Command2=ID_FILE_CLOSE +Command3=ID_FILE_SAVE +Command4=ID_FILE_SAVE_AS +Command5=ID_FILE_IMPORT +Command6=ID_FILE_EXPORT +Command7=ID_FILE_PROTECTED +Command8=ID_FILE_PRINT +Command9=ID_FILE_PRINT_PREVIEW +Command10=ID_FILE_PRINT_SETUP +Command11=ID_FILE_MRU_FILE1 +Command12=ID_APP_EXIT +Command13=ID_VIEW_TOOLBAR +Command14=ID_VIEW_STATUS_BAR +Command15=ID_TREEFILESBAR +Command16=ID_VIEW_RESAMPLE_IMAGE +Command17=ID_VIEW_IMAGE_INFO +Command18=ID_VIEW_ZOOM_IN +Command19=ID_VIEW_ZOOM_OUT +Command20=ID_VIEW_ZOOM_TO_WINDOW +Command21=ID_VIEW_ZOOM_TO_100 +Command22=ID_VIEW_ZOOM_LEVEL_DLG +Command23=ID_VIEW_WORKSPACE +Command24=ID_WINDOW_NEW +Command25=ID_WINDOW_CASCADE +Command26=ID_WINDOW_TILE_HORZ +Command27=ID_WINDOW_ARRANGE +Command28=ID_WINDOW_SYNCHRONIZE +Command29=ID_APP_ABOUT +CommandCount=29 + +[TB:IDR_MAINFRAME_HOT] +Type=1 +Class=? +Command1=ID_FILE_OPEN +Command2=ID_FILE_CLOSE +Command3=ID_FILE_SAVE +Command4=ID_FILE_SAVE_AS +Command5=ID_FILE_IMPORT +Command6=ID_FILE_EXPORT +Command7=ID_FILE_PROTECTED +Command8=ID_VIEW_ZOOM_IN +Command9=ID_VIEW_ZOOM_OUT +Command10=ID_VIEW_ZOOM_TO_WINDOW +Command11=ID_VIEW_ZOOM_TO_100 +Command12=ID_FILE_PRINT +Command13=ID_FILE_PRINT_PREVIEW +Command14=ID_WINDOW_NEW +Command15=ID_WINDOW_CASCADE +Command16=ID_WINDOW_TILE_HORZ +Command17=ID_WINDOW_ARRANGE +Command18=ID_WINDOW_SYNCHRONIZE +Command19=ID_APP_ABOUT +CommandCount=19 + +[TB:IDR_DUMMY] +Type=1 +Class=? +Command1=ID_VIEW_ZOOM_IN +Command2=ID_VIEW_ZOOM_OUT +Command3=ID_VIEW_ZOOM_TO_WINDOW +Command4=ID_VIEW_ZOOM_TO_100 +CommandCount=4 + +[TB:IDR_DUMMY_HOT] +Type=1 +Class=? +Command1=ID_VIEW_ZOOM_IN +Command2=ID_VIEW_ZOOM_OUT +Command3=ID_VIEW_ZOOM_TO_WINDOW +Command4=ID_VIEW_ZOOM_TO_100 +CommandCount=4 + +[TB:IDR_MAINFRAME_COPY] +Type=1 +Class=? +Command1=ID_FILE_OPEN +Command2=ID_FILE_CLOSE +Command3=ID_FILE_SAVE +Command4=ID_FILE_SAVE_AS +Command5=ID_FILE_IMPORT +Command6=ID_FILE_EXPORT +Command7=ID_FILE_PROTECTED +Command8=ID_FILE_PRINT +Command9=ID_FILE_PRINT_PREVIEW +Command10=ID_VIEW_ZOOM_IN +Command11=ID_VIEW_ZOOM_OUT +Command12=ID_VIEW_ZOOM_TO_WINDOW +Command13=ID_VIEW_ZOOM_TO_100 +Command14=ID_WINDOW_NEW +Command15=ID_WINDOW_CASCADE +Command16=ID_WINDOW_TILE_HORZ +Command17=ID_WINDOW_ARRANGE +Command18=ID_WINDOW_SYNCHRONIZE +Command19=ID_APP_ABOUT +CommandCount=19 + +[TB:IDR_MAINFRAME] +Type=1 +Class=? +Command1=ID_FILE_OPEN +Command2=ID_FILE_CLOSE +Command3=ID_FILE_SAVE +Command4=ID_FILE_SAVE_AS +Command5=ID_FILE_IMPORT +Command6=ID_FILE_EXPORT +Command7=ID_FILE_PROTECTED +Command8=ID_VIEW_ZOOM_IN +Command9=ID_VIEW_ZOOM_OUT +Command10=ID_VIEW_ZOOM_TO_WINDOW +Command11=ID_VIEW_ZOOM_TO_100 +Command12=ID_FILE_PRINT +Command13=ID_FILE_PRINT_PREVIEW +Command14=ID_WINDOW_NEW +Command15=ID_WINDOW_CASCADE +Command16=ID_WINDOW_TILE_HORZ +Command17=ID_WINDOW_ARRANGE +Command18=ID_WINDOW_SYNCHRONIZE +Command19=ID_APP_ABOUT +CommandCount=19 + +[ACL:IDR_MAINFRAME] +Type=1 +Class=? +Command1=ID_FILE_NEW +Command2=ID_FILE_OPEN +Command3=ID_FILE_SAVE +Command4=ID_FILE_PRINT +Command5=ID_EDIT_UNDO +Command6=ID_EDIT_CUT +Command7=ID_EDIT_COPY +Command8=ID_EDIT_PASTE +Command9=ID_EDIT_UNDO +Command10=ID_EDIT_CUT +Command11=ID_EDIT_COPY +Command12=ID_EDIT_PASTE +Command13=ID_NEXT_PANE +Command14=ID_PREV_PANE +CommandCount=14 + +[TB:IDR_MAINFRAME_HOT (English (U.S.))] +Type=1 +Command1=ID_FILE_OPEN +Command2=ID_FILE_CLOSE +Command3=ID_FILE_SAVE +Command4=ID_FILE_SAVE_AS +Command5=ID_FILE_IMPORT +Command6=ID_FILE_EXPORT +Command7=ID_FILE_PROTECTED +Command8=ID_VIEW_ZOOM_IN +Command9=ID_VIEW_ZOOM_OUT +Command10=ID_VIEW_ZOOM_TO_WINDOW +Command11=ID_VIEW_ZOOM_TO_100 +Command12=ID_FILE_PRINT +Command13=ID_FILE_PRINT_PREVIEW +Command14=ID_WINDOW_NEW +Command15=ID_WINDOW_CASCADE +Command16=ID_WINDOW_TILE_HORZ +Command17=ID_WINDOW_ARRANGE +Command18=ID_WINDOW_SYNCHRONIZE +Command19=ID_APP_ABOUT +CommandCount=19 + +[TB:IDR_DUMMY (English (U.S.))] +Type=1 +Command1=ID_VIEW_ZOOM_IN +Command2=ID_VIEW_ZOOM_OUT +Command3=ID_VIEW_ZOOM_TO_WINDOW +Command4=ID_VIEW_ZOOM_TO_100 +CommandCount=4 + +[TB:IDR_DUMMY_HOT (English (U.S.))] +Type=1 +Command1=ID_VIEW_ZOOM_IN +Command2=ID_VIEW_ZOOM_OUT +Command3=ID_VIEW_ZOOM_TO_WINDOW +Command4=ID_VIEW_ZOOM_TO_100 +CommandCount=4 + +[TB:IDR_MAINFRAME_COPY (English (U.S.))] +Type=1 +Command1=ID_FILE_OPEN +Command2=ID_FILE_CLOSE +Command3=ID_FILE_SAVE +Command4=ID_FILE_SAVE_AS +Command5=ID_FILE_IMPORT +Command6=ID_FILE_EXPORT +Command7=ID_FILE_PROTECTED +Command8=ID_FILE_PRINT +Command9=ID_FILE_PRINT_PREVIEW +Command10=ID_VIEW_ZOOM_IN +Command11=ID_VIEW_ZOOM_OUT +Command12=ID_VIEW_ZOOM_TO_WINDOW +Command13=ID_VIEW_ZOOM_TO_100 +Command14=ID_WINDOW_NEW +Command15=ID_WINDOW_CASCADE +Command16=ID_WINDOW_TILE_HORZ +Command17=ID_WINDOW_ARRANGE +Command18=ID_WINDOW_SYNCHRONIZE +Command19=ID_APP_ABOUT +CommandCount=19 + +[TB:IDR_MAINFRAME (English (U.S.))] +Type=1 +Command1=ID_FILE_OPEN +Command2=ID_FILE_CLOSE +Command3=ID_FILE_SAVE +Command4=ID_FILE_SAVE_AS +Command5=ID_FILE_IMPORT +Command6=ID_FILE_EXPORT +Command7=ID_FILE_PROTECTED +Command8=ID_VIEW_ZOOM_IN +Command9=ID_VIEW_ZOOM_OUT +Command10=ID_VIEW_ZOOM_TO_WINDOW +Command11=ID_VIEW_ZOOM_TO_100 +Command12=ID_FILE_PRINT +Command13=ID_FILE_PRINT_PREVIEW +Command14=ID_WINDOW_NEW +Command15=ID_WINDOW_CASCADE +Command16=ID_WINDOW_TILE_HORZ +Command17=ID_WINDOW_ARRANGE +Command18=ID_WINDOW_SYNCHRONIZE +Command19=ID_APP_ABOUT +CommandCount=19 + +[MNU:IDR_MAINFRAME (English (U.S.))] +Type=1 +Command1=ID_FILE_OPEN +Command2=ID_FILE_IMPORT +Command3=ID_FILE_PRINT_SETUP +Command4=ID_FILE_MRU_FILE1 +Command5=ID_APP_EXIT +Command6=ID_VIEW_TOOLBAR +Command7=ID_VIEW_STATUS_BAR +Command8=ID_TREEFILESBAR +Command9=ID_VIEW_WORKSPACE +Command10=ID_APP_ABOUT +CommandCount=10 + +[MNU:IDR_DIBMANTYPE (English (U.S.))] +Type=1 +Command1=ID_FILE_OPEN +Command2=ID_FILE_CLOSE +Command3=ID_FILE_SAVE +Command4=ID_FILE_SAVE_AS +Command5=ID_FILE_IMPORT +Command6=ID_FILE_EXPORT +Command7=ID_FILE_PROTECTED +Command8=ID_FILE_PRINT +Command9=ID_FILE_PRINT_PREVIEW +Command10=ID_FILE_PRINT_SETUP +Command11=ID_FILE_MRU_FILE1 +Command12=ID_APP_EXIT +Command13=ID_VIEW_TOOLBAR +Command14=ID_VIEW_STATUS_BAR +Command15=ID_TREEFILESBAR +Command16=ID_VIEW_RESAMPLE_IMAGE +Command17=ID_VIEW_IMAGE_INFO +Command18=ID_VIEW_ZOOM_IN +Command19=ID_VIEW_ZOOM_OUT +Command20=ID_VIEW_ZOOM_TO_WINDOW +Command21=ID_VIEW_ZOOM_TO_100 +Command22=ID_VIEW_ZOOM_LEVEL_DLG +Command23=ID_VIEW_WORKSPACE +Command24=ID_WINDOW_NEW +Command25=ID_WINDOW_CASCADE +Command26=ID_WINDOW_TILE_HORZ +Command27=ID_WINDOW_ARRANGE +Command28=ID_WINDOW_SYNCHRONIZE +Command29=ID_APP_ABOUT +CommandCount=29 + +[ACL:IDR_MAINFRAME (English (U.S.))] +Type=1 +Command1=ID_FILE_NEW +Command2=ID_FILE_OPEN +Command3=ID_FILE_SAVE +Command4=ID_FILE_PRINT +Command5=ID_EDIT_UNDO +Command6=ID_EDIT_CUT +Command7=ID_EDIT_COPY +Command8=ID_EDIT_PASTE +Command9=ID_EDIT_UNDO +Command10=ID_EDIT_CUT +Command11=ID_EDIT_COPY +Command12=ID_EDIT_PASTE +Command13=ID_NEXT_PANE +Command14=ID_PREV_PANE +CommandCount=14 + +[DLG:IDD_DIALOG_TREE_FILES (English (U.S.))] +Type=1 +ControlCount=1 +Control1=IDC_TREE_FILES,SysTreeView32,1342242871 + +[DLG:IDD_DIALOG_EXPORT (English (U.S.))] +Type=1 +ControlCount=19 +Control1=IDC_FILENAME,combobox,1344340034 +Control2=IDC_QUALITY,edit,1350631552 +Control3=IDC_SPIN_QUALITY,msctls_updown32,1342177442 +Control4=IDC_CHECK_SMOOTH,button,1342242819 +Control5=IDC_SMOOTH,edit,1350631552 +Control6=IDC_SPIN_SMOOTH,msctls_updown32,1342177442 +Control7=IDC_CHECK_GRAYSCALE,button,1342242819 +Control8=IDC_CHECK_OPTIMIZE,button,1342242819 +Control9=IDC_CHECK_PROGRESSIVE,button,1342242819 +Control10=IDC_CHECK_BASELINE,button,1342242819 +Control11=IDC_RADIO_DCT_INT,button,1342373897 +Control12=IDC_RADIO_DCT_FAST,button,1342242825 +Control13=IDC_RADIO_DCT_FLOAT,button,1342242825 +Control14=IDOK,button,1342242817 +Control15=IDCANCEL,button,1342242816 +Control16=IDC_STATIC,static,1342308352 +Control17=IDC_STATIC,static,1342308352 +Control18=IDC_STATIC,button,1342177287 +Control19=IDC_STATIC,button,1342177287 + +[DLG:IDD_DIALOG_IMPORT (English (U.S.))] +Type=1 +ControlCount=24 +Control1=IDC_FILENAME,combobox,1344339970 +Control2=IDC_CHECK_COLORS,button,1342242819 +Control3=IDC_COLORS,edit,1350631552 +Control4=IDC_SPIN_COLORS,msctls_updown32,1342177442 +Control5=IDC_CHECK_GRAYSCALE,button,1342242819 +Control6=IDC_CHECK_ONE_PASS,button,1342242819 +Control7=IDC_CHECK_NO_SMOOTH,button,1342242819 +Control8=IDC_RADIO_ONE_TO_ONE,button,1342373897 +Control9=IDC_RADIO_ONE_TO_TWO,button,1342242825 +Control10=IDC_RADIO_ONE_TO_FOUR,button,1342242825 +Control11=IDC_RADIO_ONE_TO_EIGHT,button,1342242825 +Control12=IDC_RADIO_DCT_INT,button,1342373897 +Control13=IDC_RADIO_DCT_FAST,button,1342242825 +Control14=IDC_RADIO_DCT_FLOAT,button,1342242825 +Control15=IDC_RADIO_DM_FLOYD_STEIN,button,1342373897 +Control16=IDC_RADIO_DM_ORDERED,button,1342242825 +Control17=IDC_RADIO_DM_NONE,button,1342242825 +Control18=IDOK,button,1342242817 +Control19=IDCANCEL,button,1342242816 +Control20=IDC_STATIC,static,1342308352 +Control21=IDC_STATIC,button,1342177287 +Control22=IDC_STATIC,button,1342177287 +Control23=IDC_STATIC,button,1342177287 +Control24=IDC_STATIC,button,1342177287 + +[DLG:IDD_DIALOG_WORKSPACE (English (U.S.))] +Type=1 +ControlCount=5 +Control1=IDC_CHECK_SAVE_ON_EXIT,button,1342242819 +Control2=IDC_CHECK_LOAD_ON_ENTER,button,1342242819 +Control3=IDOK,button,1342242817 +Control4=IDCANCEL,button,1342242816 +Control5=IDC_SAVE_WORKSPACE,button,1342242816 + +[DLG:IDD_DIALOG_ROLLUP (English (U.S.))] +Type=1 +ControlCount=11 +Control1=IDC_ZOOM_LEVEL,edit,1350631424 +Control2=IDC_SPIN_ZOOM_LEVEL,msctls_updown32,1342177442 +Control3=IDC_BUTTON_APPLY,button,1342242817 +Control4=IDC_PICTURE,static,1342179333 +Control5=IDC_STATIC,static,1342308352 +Control6=IDC_STATIC,button,1342177287 +Control7=IDC_STATIC,static,1342308352 +Control8=IDC_STATIC,static,1342308352 +Control9=IDC_SCALED_WIDTH,edit,1350568064 +Control10=IDC_SCALED_HEIGHT,edit,1350568064 +Control11=IDC_STATIC,button,1342177287 + +[DLG:IDD_IMAGE_INFO_DIALOG (English (U.S.))] +Type=1 +ControlCount=17 +Control1=IDOK,button,1342242817 +Control2=IDC_STATIC,static,1342308352 +Control3=IDC_STATIC,static,1342308352 +Control4=IDC_STATIC,static,1342308352 +Control5=IDC_STATIC,static,1342308352 +Control6=IDC_STATIC,static,1342308352 +Control7=IDC_STATIC,static,1342308352 +Control8=IDC_STATIC,static,1342308352 +Control9=IDC_FILE_NAME,static,1342308364 +Control10=IDC_WIDTH,static,1342308352 +Control11=IDC_HEIGHT,static,1342308352 +Control12=IDC_SIZE_IN_MEMORY,static,1342308352 +Control13=IDC_FILE_SIZE,static,1342308352 +Control14=IDC_FORMAT,static,1342308352 +Control15=IDC_TYPE,static,1342308352 +Control16=IDC_STATIC,button,1342177287 +Control17=IDC_FILE_STATUS,static,1342308352 + +[DLG:IDD_DIALOG_RESAMPLE (English (U.S.))] +Type=1 +ControlCount=23 +Control1=IDC_WIDTH_PIXELS,edit,1350566016 +Control2=IDC_SPIN_WIDTH_PIXELS,msctls_updown32,1342177442 +Control3=IDC_HEIGHT_PIXELS,edit,1350566016 +Control4=IDC_SPIN_HEIGHT_PIXELS,msctls_updown32,1342177442 +Control5=IDC_WIDTH_PERCENTS,edit,1350566016 +Control6=IDC_SPIN_WIDTH_PERCENTS,msctls_updown32,1342177442 +Control7=IDC_HEIGHT_PERCENTS,edit,1350566016 +Control8=IDC_SPIN_HEIGHT_PERCENTS,msctls_updown32,1342177442 +Control9=IDC_CHECK_MAINTAIN_RATIO,button,1342242819 +Control10=IDC_CHECK_MATCH_ZOOM_LEVEL,button,1342242819 +Control11=IDC_CHECK_CONVERT_TO,button,1342242819 +Control12=IDC_COMBO_CONVERT_TO,combobox,1344339971 +Control13=IDOK,button,1342242816 +Control14=ID_BUTTON_RESET,button,1342242816 +Control15=IDCANCEL,button,1342242816 +Control16=IDC_STATIC,button,1342177287 +Control17=IDC_STATIC,static,1342308352 +Control18=IDC_STATIC,static,1342308352 +Control19=IDC_WIDTH_ORIG,static,1342308352 +Control20=IDC_HEIGHT_ORIG,static,1342308352 +Control21=IDC_STATIC,static,1342308352 +Control22=IDC_STATIC,static,1342308352 +Control23=IDC_BUTTON_DUMMY,button,1073741825 + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.cpp new file mode 100644 index 0000000..72d81b3 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.cpp @@ -0,0 +1,268 @@ +// DIBManager.cpp : Defines the class behaviors for the application. +// + +#include "stdafx.h" +#include "DIBManager.h" + +#include "OXDocMgr.h" +#include "MainFrm.h" +#include "ChildFrm.h" +#include "DIBManagerDoc.h" +#include "DIBManagerView.h" +#include "WorkspaceDlg.h" +#include "ScaleRollupDlg.h" + +#include "OXPreviewDialog.h" + +#include "UTSampleAbout.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CDIBManagerApp + +BEGIN_MESSAGE_MAP(CDIBManagerApp, COXWinApp) + //{{AFX_MSG_MAP(CDIBManagerApp) + ON_COMMAND(ID_APP_ABOUT, OnAppAbout) + ON_COMMAND(ID_FILE_NEW, OnFileNew) + ON_COMMAND(ID_FILE_OPEN, OnFileOpen) + ON_COMMAND(ID_VIEW_WORKSPACE, OnViewWorkspace) + //}}AFX_MSG_MAP + ON_COMMAND (ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CDIBManagerApp construction + +CDIBManagerApp::CDIBManagerApp() +{ + // TODO: add construction code here, + // Place all significant initialization in InitInstance + + m_pSplash=NULL; + m_pScaleRollupDlg=NULL; +} + +///////////////////////////////////////////////////////////////////////////// +// The one and only CDIBManagerApp object + +CDIBManagerApp theApp; +static HINSTANCE g_hRichEdDLL=NULL; + +///////////////////////////////////////////////////////////////////////////// +// CDIBManagerApp initialization + +BOOL CDIBManagerApp::InitInstance() +{ + // COXSplashWnd window + // show splash window from the very beginning + ShowSplashWindow(IDB_LOGO_DUMMY,ID_TIME_SHOWING_LOGO); + Sleep(2000); + + // 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. + + // Initialize RichEdit control + // for About Dialog + if(g_hRichEdDLL==NULL) + { + g_hRichEdDLL=::LoadLibrary(_T("RICHED32.DLL")); + if(g_hRichEdDLL==NULL) + TRACE(_T("Cannot load library to display RichEditTextControl")); + } + + // Change the registry key under which our settings are stored. + // You should modify this string to be something appropriate + // such as the name of your company or organization. + SetRegistryKey(_T("Ultimate Toolbox Samples")); + + LoadStdProfileSettings(); // Load standard INI file options (including MRU) + + // Register the application's document templates. Document templates + // serve as the connection between documents, frame windows and views. + + CMultiDocTemplate* pDocTemplate; + pDocTemplate = new CMultiDocTemplate( + IDR_DIBMANTYPE, + RUNTIME_CLASS(CDIBManagerDoc), + RUNTIME_CLASS(CChildFrame), // custom MDI child frame + RUNTIME_CLASS(CDIBManagerView)); + AddDocTemplate(pDocTemplate); + + // create main MDI Frame window + CMainFrame* pMainFrame = new CMainFrame; + if (!pMainFrame->LoadFrame(IDR_MAINFRAME)) + return FALSE; + m_pMainWnd = pMainFrame; + + // Enable drag/drop open + m_pMainWnd->DragAcceptFiles(); + + // Enable DDE Execute open + EnableShellOpen(); + RegisterShellFileTypes(TRUE); + + // Parse command line for standard shell commands, DDE, file open + CCommandLineInfo cmdInfo; + ParseCommandLine(cmdInfo); + + // Dispatch commands specified on the command line + if (!ProcessShellCommand(cmdInfo)) + return FALSE; + + IniAppVars(); + + // The main window has been initialized, so show and update it. + pMainFrame->ShowWindow(m_nCmdShow); + pMainFrame->UpdateWindow(); + + // load the workspaces settings if needed + if(m_bLoadWSOnEnter) + { + pMainFrame->LoadWorkspace(); + } + + // we made all preparations, so hide splash window + HideSplashWindow(); + + return TRUE; +} + +// App command to run the dialog +void CDIBManagerApp::OnAppAbout() +{ + // we use our own About Dialog + CUTSampleAboutDlg dlgAbout(IDR_MAINFRAME,ID_DESCRIPTION_FILE); + dlgAbout.DoModal(); +} + +///////////////////////////////////////////////////////////////////////////// +// CDIBManagerApp commands + +CFileDialog* CDIBManagerApp::NewFileDialog(BOOL bOpenFileDialog, DWORD lFlags) +{ + // we provide functionality to open more than one file simultenuosly + lFlags|=OFN_ALLOWMULTISELECT; + // create the dialog with Preview capability + return new COXPreviewDialog(bOpenFileDialog,NULL,NULL, + OFN_ALLOWMULTISELECT|OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST| + OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT); +} + +void CDIBManagerApp::OnFileNew() +{ + // TODO: Add your command handler code here + // do nothing +// CWinApp::OnFileNew(); +} + +void CDIBManagerApp::OnFileOpen() +{ + // TODO: Add your command handler code here + CWinApp::OnFileOpen(); + +} + +void CDIBManagerApp::OnViewWorkspace() +{ + // TODO: Add your command handler code here + + CWorkspaceDlg workspaceDlg; + + workspaceDlg.m_bLoadOnEnter=m_bLoadWSOnEnter; + workspaceDlg.m_bSaveOnExit=m_bSaveWSOnExit; + + if(workspaceDlg.DoModal()==IDOK) + { + m_bLoadWSOnEnter=workspaceDlg.m_bLoadOnEnter; + m_bSaveWSOnExit=workspaceDlg.m_bSaveOnExit; + } +} + +int CDIBManagerApp::ExitInstance() +{ + // TODO: Add your specialized code here and/or call the base class + + // save all application variables in registry + SaveAppVars(); + + // if we used splash window then delete it + if(m_pSplash!=NULL) + { + delete m_pSplash; + } + + // unload the library + if(g_hRichEdDLL!=NULL) + ::FreeLibrary(g_hRichEdDLL); + + + return COXWinApp::ExitInstance(); +} + +void CDIBManagerApp::IniAppVars() +{ + m_bLoadWSOnEnter=GetProfileInt(_T("WorkspaceOptions"),_T("LoadOnEnter"),TRUE); + m_bSaveWSOnExit=GetProfileInt(_T("WorkspaceOptions"),_T("SaveOnExit"),TRUE); +} + +void CDIBManagerApp::SaveAppVars() +{ + WriteProfileInt(_T("WorkspaceOptions"),_T("LoadOnEnter"),m_bLoadWSOnEnter); + WriteProfileInt(_T("WorkspaceOptions"),_T("SaveOnExit"),m_bSaveWSOnExit); +} + +void CDIBManagerApp::ShowSplashWindow(UINT nBitmapID, UINT nTime) +{ + // just load bitmap and set time to show splash window + if(m_pSplash==NULL) + { + m_pSplash=new COXSplashWnd; + } + // the fourth parameter is level of tolerance which + // indicates how much the color can be different from CLR_DEFAULT (which is white) + // before it is actually accepted as a different color + // for bitmap that we use in this application value of 150 is the best + m_pSplash->LoadBitmap(nBitmapID,CLR_DEFAULT,NULL,0); + m_pSplash->Show(nTime, NULL); +} + +void CDIBManagerApp::HideSplashWindow(BOOL bRedrawMainFrame) +{ + // if splash window was initialized then hide it and destroy + if(m_pSplash!=NULL) + { + m_pSplash->Hide(); + + delete m_pSplash; + m_pSplash=NULL; + + // redraw mainframe if needed + if(bRedrawMainFrame) + { + CMainFrame* pMainFrame=(CMainFrame*)m_pMainWnd; + pMainFrame->RedrawWindow(); + } + } +} + +// if during loading of application error happened then hide splash window +// and notify about the error +void CDIBManagerApp::ErrorNotify(UINT nMsgID) +{ + CString sMsg; + sMsg.LoadString(nMsgID); + ErrorNotify(sMsg); +} + +void CDIBManagerApp::ErrorNotify(CString sMsg) +{ + HideSplashWindow(TRUE); + AfxMessageBox(sMsg,MB_OK|MB_ICONEXCLAMATION); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.dsp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.dsp new file mode 100644 index 0000000..2b3f1e9 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.dsp @@ -0,0 +1,683 @@ +# Microsoft Developer Studio Project File - Name="DIBManager" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=DIBManager - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "DIBManager.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "DIBManager.mak" CFG="DIBManager - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "DIBManager - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "DIBManager - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "DIBManager - Win32 Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /I "..\..\..\lib\jpeg\jpegsrc6" /I "..\..\..\lib\jpeg" /I "..\..\..\archive\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /i "..\..\..\lib\jpeg\jpegsrc6" /i "..\..\..\lib\jpeg" /i "..\..\..\archive\include" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 jpgr.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"LIBC" /nodefaultlib:"MSVCRT" /out:"DIBManager.exe" /libpath:"..\..\..\lib\libs" + +!ELSEIF "$(CFG)" == "DIBManager - Win32 Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /I "..\..\..\lib\jpeg\jpegsrc6" /I "..\..\..\lib\jpeg" /I "..\..\..\archive\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /FR /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /i "..\..\..\lib\jpeg\jpegsrc6" /i "..\..\..\lib\jpeg" /i "..\..\..\archive\include" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 jpgd.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"LIBCD" /out:"DIBManager.exe" /pdbtype:sept /libpath:"..\..\..\lib\libs" +# SUBTRACT LINK32 /nodefaultlib + +!ENDIF + +# Begin Target + +# Name "DIBManager - Win32 Release" +# Name "DIBManager - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Group "UTSource" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE="..\..\..\Source\Convfile.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\Copytree.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\Cpystdlg.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\Dir.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\Dirlist.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\Dstrlist.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\File.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\Filelist.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\UTSampleAbout\HtmlCtrl.cpp +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\Mdeldlg.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\MFCToolBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OX3DTabView.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXAdvancedAssert.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXAdvancedAssertMail.cpp +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\Oxbitbuf.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXBitmapMenu.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXBitmapMenuOrganizer.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXBMPFle.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXCaptionPainter.cpp +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXChildFrameState.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\Oxcmpfl.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\Oxcompr.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXCoolBar.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXCoolToolBar.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXDFlHdr.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\Oxdib.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXDirDlg.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXDlgBar.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\oxdocktabctrl.cpp +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXDocTemplateSpy.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXDragDockContext.CPP" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXFrameWndDock.CPP" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXGphFle.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXHistoryCombo.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXHookWnd.cpp +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXJPGCod.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXJPGCom.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXJPGDom.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXJPGExp.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXJPGFle.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXMDIFloatWnd.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXMenuBar.cpp +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXRectTracker.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXRegistryItem.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXRegistryValFile.cpp +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXRollup.CPP" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXScrollTip.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXScrollTipOwner.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXShortcutBar.cpp +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXSizeCtrlBar.CPP" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXSizeDlgBar.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXSizeDockBar.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXSizeToolBar.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkinnedComboBox.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkinnedSpinCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkinnedTabCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkins.cpp +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXSpinCtrl.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXSplashWnd.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXSplashWndDIB.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXSplitterColRowState.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXSplitterRect.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXSzMiniDockFrmWnd.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXTabClientWnd.cpp +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXTleBar.CPP" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXToolTipCtrl.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXUxTheme.cpp +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXWorkspaceState.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\Oxzoomvw.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\Path.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\Pathiter.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\Progress.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\UTBStrOp.cpp +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\UTSampleAbout\UTSampleAbout.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\Watchbuf.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\Xstatus4.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\Xstring.cpp" +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ChildFrm.cpp +# End Source File +# Begin Source File + +SOURCE=.\DIBManager.cpp +# End Source File +# Begin Source File + +SOURCE=.\DIBManager.rc +# End Source File +# Begin Source File + +SOURCE=.\DIBManagerDoc.cpp +# End Source File +# Begin Source File + +SOURCE=.\DIBManagerView.cpp +# End Source File +# Begin Source File + +SOURCE=.\ExportDlg.cpp +# End Source File +# Begin Source File + +SOURCE=.\ImageInfoDlg.cpp +# End Source File +# Begin Source File + +SOURCE=.\ImportDlg.cpp +# End Source File +# Begin Source File + +SOURCE=.\MainFrm.cpp +# End Source File +# Begin Source File + +SOURCE=.\OXDocMgr.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXPreviewDialog.cpp +# End Source File +# Begin Source File + +SOURCE=.\OXWinApp.cpp +# End Source File +# Begin Source File + +SOURCE=.\ProtectedFile.cpp +# End Source File +# Begin Source File + +SOURCE=.\ResampleImageDlg.cpp +# End Source File +# Begin Source File + +SOURCE=.\ScaleRollupDlg.cpp +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# Begin Source File + +SOURCE=.\TreeFilesDlg.cpp +# End Source File +# Begin Source File + +SOURCE=.\WorkspaceDlg.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\ChildFrm.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\CONVFILE.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\CRYPFILE.h +# End Source File +# Begin Source File + +SOURCE=.\DIBManager.h +# End Source File +# Begin Source File + +SOURCE=.\DIBManagerDoc.h +# End Source File +# Begin Source File + +SOURCE=.\DIBManagerView.h +# End Source File +# Begin Source File + +SOURCE=.\ExportDlg.h +# End Source File +# Begin Source File + +SOURCE=.\ImageInfoDlg.h +# End Source File +# Begin Source File + +SOURCE=.\ImportDlg.h +# End Source File +# Begin Source File + +SOURCE=.\MainFrm.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXBitmapMenu.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXBitmapMenuOrganizer.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXCMPFL.H +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXCOMPR.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXDIB.H +# End Source File +# Begin Source File + +SOURCE=.\OXDocMgr.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\OXPreviewDialog.h +# End Source File +# Begin Source File + +SOURCE=.\OXWinApp.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXZOOMVW.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXZOOMVW.inl +# End Source File +# Begin Source File + +SOURCE=.\ProtectedFile.h +# End Source File +# Begin Source File + +SOURCE=.\ResampleImageDlg.h +# End Source File +# Begin Source File + +SOURCE=.\Resource.h +# End Source File +# Begin Source File + +SOURCE=.\ScaleRollupDlg.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# Begin Source File + +SOURCE=.\TreeFilesDlg.h +# End Source File +# Begin Source File + +SOURCE=.\WorkspaceDlg.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\XSTATUS4.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\Res\bmp00001.bmp +# End Source File +# Begin Source File + +SOURCE=.\Res\BMPdemo.BMP +# End Source File +# Begin Source File + +SOURCE=.\res\check.bmp +# End Source File +# Begin Source File + +SOURCE=.\Res\CoolBarWallPaper.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\DIBManager.ico +# End Source File +# Begin Source File + +SOURCE=.\res\DIBManager.rc2 +# End Source File +# Begin Source File + +SOURCE=.\res\DIBManagerDoc.ico +# End Source File +# Begin Source File + +SOURCE=.\Res\dummy.bmp +# End Source File +# Begin Source File + +SOURCE=.\Res\dummy1.bmp +# End Source File +# Begin Source File + +SOURCE=.\Res\dummyhot.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\imagelis.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\logo.bmp +# End Source File +# Begin Source File + +SOURCE=.\Res\logo_dum.bmp +# End Source File +# Begin Source File + +SOURCE=.\Res\mainfram.bmp +# End Source File +# Begin Source File + +SOURCE=.\Res\mainfram_copy.bmp +# End Source File +# Begin Source File + +SOURCE=.\Res\newtool.BMP +# End Source File +# Begin Source File + +SOURCE=.\res\Toolbar.bmp +# End Source File +# Begin Source File + +SOURCE=.\Res\ToolbarHot.bmp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\Cup.avi +# End Source File +# Begin Source File + +SOURCE=.\ReadMe.txt +# End Source File +# Begin Source File + +SOURCE=.\search.avi +# End Source File +# End Target +# End Project diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.dsw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.dsw new file mode 100644 index 0000000..7bab7ee --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "DIBManager"=".\DIBManager.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.exe.manifest b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.exe.manifest new file mode 100644 index 0000000..275675d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.exe.manifest @@ -0,0 +1,22 @@ + + + +Your app description here + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.h new file mode 100644 index 0000000..c7d3572 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.h @@ -0,0 +1,82 @@ +// DIBManager.h : main header file for the DIBMANAGER application +// + +#if !defined(AFX_DIBMANAGER_H__D2552D0E_7143_11D1_A3D5_0080C83F712F__INCLUDED_) +#define AFX_DIBMANAGER_H__D2552D0E_7143_11D1_A3D5_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXWinApp.h" +#include "OXSplashWnd.h" + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols + +///////////////////////////////////////////////////////////////////////////// +// CDIBManagerApp: +// See DIBManager.cpp for the implementation of this class +// + +class CScaleRollupDlg; + +class CDIBManagerApp : public COXWinApp +{ +protected: + // defines roll-up ZoomLevel Dialog + CScaleRollupDlg* m_pScaleRollupDlg; + + void IniAppVars(); + void SaveAppVars(); + +public: + CDIBManagerApp(); + + CScaleRollupDlg* &GetScaleRollupDlg() { return m_pScaleRollupDlg; } + + virtual CFileDialog* NewFileDialog(BOOL bOpenFileDialog, DWORD lFlags); + + // load workspace on enter or not + BOOL m_bLoadWSOnEnter; + // save workspace on exit or not + BOOL m_bSaveWSOnExit; + // the number of bits in current system palette + UINT m_nColors; + // splash window that we use while loading + COXSplashWnd* m_pSplash; + + void ShowSplashWindow(UINT nBitmapID, UINT nTime); + void HideSplashWindow(BOOL bRedrawMainFrame=FALSE); + void ErrorNotify(UINT nMsgID); + void ErrorNotify(CString sMsg); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CDIBManagerApp) + public: + virtual BOOL InitInstance(); + virtual int ExitInstance(); + //}}AFX_VIRTUAL + +// Implementation + + //{{AFX_MSG(CDIBManagerApp) + afx_msg void OnAppAbout(); + afx_msg void OnFileNew(); + afx_msg void OnFileOpen(); + afx_msg void OnViewWorkspace(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_DIBMANAGER_H__D2552D0E_7143_11D1_A3D5_0080C83F712F__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.rc b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.rc new file mode 100644 index 0000000..504abe9 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.rc @@ -0,0 +1,862 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "OXCommon.h" + +#include "afxres.h" +#include + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""OXCommon.h"" \r\n" + "\r\n" + "#include ""afxres.h""\r\n" + "#include \r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""OXCommon.rc"" \r\n" + "#include ""OXBitmapButton.rc"" \r\n" + "#include ""OXBitmapMenu.rc""\r\n" + "#include ""OXCoolBar.rc""\r\n" + "#include ""OXCoolToolBar.rc""\r\n" + "#include ""OXFrameWndDock.rc""\r\n" + "#include ""OxDockCtrlBars.rc""\r\n" + "#include ""UTSampleAbout.rc"" \r\n" + "#include ""OXHistoryCombo.rc"" \r\n" + "#include ""OXMenuBar.rc""\r\n" + "#include ""OXPreviewDialog.rc""\r\n" + "#include ""OXRollUp.rc"" // Roll up class resources\r\n" + "#include ""OXSpinCtrl.rc"" // Spin ctrl resources\r\n" + "\r\n" + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif\r\n" + "#include ""res\\DIBManager.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "#include ""afxprint.rc"" // printing/print preview resources\r\n" + "#endif\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON DISCARDABLE "res\\DIBManager.ico" +IDR_DIBMANTYPE ICON DISCARDABLE "res\\DIBManagerDoc.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDR_MAINFRAME_HOT BITMAP MOVEABLE PURE "res\\ToolbarHot.bmp" +IDB_IMAGELIST BITMAP DISCARDABLE "res\\imagelis.bmp" +IDB_CHECK BITMAP DISCARDABLE "res\\check.bmp" +IDB_LOGO BITMAP DISCARDABLE "res\\logo.BMP" +IDB_LOGO_DUMMY BITMAP DISCARDABLE "res\\logo_dum.bmp" +IDR_DUMMY BITMAP MOVEABLE PURE "res\\dummy.bmp" +IDR_DUMMY_HOT BITMAP MOVEABLE PURE "res\\dummyhot.bmp" +IDR_MAINFRAME_COPY BITMAP MOVEABLE PURE "res\\mainfram_copy.bmp" +IDR_MAINFRAME BITMAP MOVEABLE PURE "res\\toolbar.bmp" +IDB_LOGO_TEST BITMAP DISCARDABLE "RES\\BMPdemo.BMP" + +///////////////////////////////////////////////////////////////////////////// +// +// Toolbar +// + +IDR_MAINFRAME_HOT TOOLBAR DISCARDABLE 16, 16 +BEGIN + BUTTON ID_FILE_OPEN + BUTTON ID_FILE_CLOSE + BUTTON ID_FILE_SAVE + BUTTON ID_FILE_SAVE_AS + SEPARATOR + BUTTON ID_FILE_IMPORT + BUTTON ID_FILE_EXPORT + SEPARATOR + BUTTON ID_FILE_PROTECTED + SEPARATOR + BUTTON ID_VIEW_ZOOM_IN + BUTTON ID_VIEW_ZOOM_OUT + BUTTON ID_VIEW_ZOOM_TO_WINDOW + BUTTON ID_VIEW_ZOOM_TO_100 + SEPARATOR + BUTTON ID_FILE_PRINT + BUTTON ID_FILE_PRINT_PREVIEW + SEPARATOR + BUTTON ID_WINDOW_NEW + BUTTON ID_WINDOW_CASCADE + BUTTON ID_WINDOW_TILE_HORZ + BUTTON ID_WINDOW_ARRANGE + BUTTON ID_WINDOW_SYNCHRONIZE + SEPARATOR + BUTTON ID_APP_ABOUT +END + +IDR_DUMMY TOOLBAR DISCARDABLE 16, 16 +BEGIN + BUTTON ID_VIEW_ZOOM_IN + BUTTON ID_VIEW_ZOOM_OUT + BUTTON ID_VIEW_ZOOM_TO_WINDOW + BUTTON ID_VIEW_ZOOM_TO_100 +END + +IDR_DUMMY_HOT TOOLBAR DISCARDABLE 16, 16 +BEGIN + BUTTON ID_VIEW_ZOOM_IN + BUTTON ID_VIEW_ZOOM_OUT + BUTTON ID_VIEW_ZOOM_TO_WINDOW + BUTTON ID_VIEW_ZOOM_TO_100 +END + +IDR_MAINFRAME_COPY TOOLBAR DISCARDABLE 16, 16 +BEGIN + BUTTON ID_FILE_OPEN + BUTTON ID_FILE_CLOSE + BUTTON ID_FILE_SAVE + BUTTON ID_FILE_SAVE_AS + SEPARATOR + BUTTON ID_FILE_IMPORT + BUTTON ID_FILE_EXPORT + SEPARATOR + BUTTON ID_FILE_PROTECTED + SEPARATOR + BUTTON ID_FILE_PRINT + BUTTON ID_FILE_PRINT_PREVIEW + SEPARATOR + BUTTON ID_VIEW_ZOOM_IN + BUTTON ID_VIEW_ZOOM_OUT + BUTTON ID_VIEW_ZOOM_TO_WINDOW + BUTTON ID_VIEW_ZOOM_TO_100 + SEPARATOR + BUTTON ID_WINDOW_NEW + BUTTON ID_WINDOW_CASCADE + BUTTON ID_WINDOW_TILE_HORZ + BUTTON ID_WINDOW_ARRANGE + BUTTON ID_WINDOW_SYNCHRONIZE + SEPARATOR + BUTTON ID_APP_ABOUT +END + +IDR_MAINFRAME TOOLBAR DISCARDABLE 16, 16 +BEGIN + BUTTON ID_FILE_OPEN + BUTTON ID_FILE_CLOSE + BUTTON ID_FILE_SAVE + BUTTON ID_FILE_SAVE_AS + SEPARATOR + BUTTON ID_FILE_IMPORT + BUTTON ID_FILE_EXPORT + SEPARATOR + BUTTON ID_FILE_PROTECTED + SEPARATOR + BUTTON ID_VIEW_ZOOM_IN + BUTTON ID_VIEW_ZOOM_OUT + BUTTON ID_VIEW_ZOOM_TO_WINDOW + BUTTON ID_VIEW_ZOOM_TO_100 + SEPARATOR + BUTTON ID_FILE_PRINT + BUTTON ID_FILE_PRINT_PREVIEW + SEPARATOR + BUTTON ID_WINDOW_NEW + BUTTON ID_WINDOW_CASCADE + BUTTON ID_WINDOW_TILE_HORZ + BUTTON ID_WINDOW_ARRANGE + BUTTON ID_WINDOW_SYNCHRONIZE + SEPARATOR + BUTTON ID_APP_ABOUT +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_MAINFRAME MENU PRELOAD DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN + MENUITEM SEPARATOR + MENUITEM "&Import ...", ID_FILE_IMPORT + MENUITEM SEPARATOR + MENUITEM "P&rint Setup...", ID_FILE_PRINT_SETUP + MENUITEM SEPARATOR + MENUITEM "Recent File", ID_FILE_MRU_FILE1, GRAYED + MENUITEM SEPARATOR + MENUITEM "E&xit", ID_APP_EXIT + END + POPUP "&View" + BEGIN + MENUITEM "&Toolbar", ID_VIEW_TOOLBAR + MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR + MENUITEM "T&ree bar", ID_TREEFILESBAR + MENUITEM SEPARATOR + MENUITEM "&WorkSpace ...", ID_VIEW_WORKSPACE + END + POPUP "&Help" + BEGIN + MENUITEM "&About DIBManager...", ID_APP_ABOUT + END +END + +IDR_DIBMANTYPE MENU PRELOAD DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN + MENUITEM "&Close", ID_FILE_CLOSE + MENUITEM "&Save", ID_FILE_SAVE + MENUITEM "Save &As...", ID_FILE_SAVE_AS + MENUITEM SEPARATOR + MENUITEM "&Import ...", ID_FILE_IMPORT + MENUITEM "&Export ...", ID_FILE_EXPORT + MENUITEM SEPARATOR + MENUITEM "&Protect Image", ID_FILE_PROTECTED + MENUITEM SEPARATOR + MENUITEM "&Print...\tCtrl+P", ID_FILE_PRINT + MENUITEM "Print Pre&view", ID_FILE_PRINT_PREVIEW + MENUITEM "P&rint Setup...", ID_FILE_PRINT_SETUP + MENUITEM SEPARATOR + MENUITEM "Recent File", ID_FILE_MRU_FILE1, GRAYED + MENUITEM SEPARATOR + MENUITEM "E&xit", ID_APP_EXIT + END + POPUP "&View" + BEGIN + MENUITEM "&Toolbar", ID_VIEW_TOOLBAR + MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR + MENUITEM "T&ree bar", ID_TREEFILESBAR + MENUITEM SEPARATOR + MENUITEM "Resam&ple Image ...", ID_VIEW_RESAMPLE_IMAGE + MENUITEM "&Image Info ...", ID_VIEW_IMAGE_INFO + MENUITEM SEPARATOR + MENUITEM "Zoom &In", ID_VIEW_ZOOM_IN + MENUITEM "Zoom &Out", ID_VIEW_ZOOM_OUT + MENUITEM "Zoom to &Window", ID_VIEW_ZOOM_TO_WINDOW + MENUITEM "Zoom to &100%", ID_VIEW_ZOOM_TO_100 + MENUITEM "Zoom &Level Dialog ...", ID_VIEW_ZOOM_LEVEL_DLG + MENUITEM SEPARATOR + MENUITEM "&WorkSpace ...", ID_VIEW_WORKSPACE + END + POPUP "&Window" + BEGIN + MENUITEM "&New Window", ID_WINDOW_NEW + MENUITEM "&Cascade", ID_WINDOW_CASCADE + MENUITEM "&Tile", ID_WINDOW_TILE_HORZ + MENUITEM "&Arrange Icons", ID_WINDOW_ARRANGE + MENUITEM SEPARATOR + MENUITEM "&Synchronize views", ID_WINDOW_SYNCHRONIZE + END + POPUP "&Help" + BEGIN + MENUITEM "&About DIBManager...", ID_APP_ABOUT + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Accelerator +// + +IDR_MAINFRAME ACCELERATORS PRELOAD MOVEABLE PURE +BEGIN + "N", ID_FILE_NEW, VIRTKEY, CONTROL + "O", ID_FILE_OPEN, VIRTKEY, CONTROL + "S", ID_FILE_SAVE, VIRTKEY, CONTROL + "P", ID_FILE_PRINT, VIRTKEY, CONTROL + "Z", ID_EDIT_UNDO, VIRTKEY, CONTROL + "X", ID_EDIT_CUT, VIRTKEY, CONTROL + "C", ID_EDIT_COPY, VIRTKEY, CONTROL + "V", ID_EDIT_PASTE, VIRTKEY, CONTROL + VK_BACK, ID_EDIT_UNDO, VIRTKEY, ALT + VK_DELETE, ID_EDIT_CUT, VIRTKEY, SHIFT + VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL + VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT + VK_F6, ID_NEXT_PANE, VIRTKEY + VK_F6, ID_PREV_PANE, VIRTKEY, SHIFT +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_DIALOG_TREE_FILES DIALOGEX 0, 0, 185, 214 +STYLE WS_CHILD | WS_BORDER +FONT 8, "MS Sans Serif", 0, 0, 0x1 +BEGIN + CONTROL "Tree1",IDC_TREE_FILES,"SysTreeView32",TVS_HASBUTTONS | + TVS_HASLINES | TVS_LINESATROOT | TVS_DISABLEDRAGDROP | + TVS_SHOWSELALWAYS | WS_TABSTOP,0,0,185,214, + WS_EX_DLGMODALFRAME | WS_EX_CLIENTEDGE +END + +IDD_DIALOG_EXPORT DIALOG DISCARDABLE 0, 0, 312, 119 +STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Export" +FONT 8, "MS Sans Serif" +BEGIN + COMBOBOX IDC_FILENAME,23,7,228,66,CBS_DROPDOWN | CBS_AUTOHSCROLL | + WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_QUALITY,39,33,37,12,ES_AUTOHSCROLL + CONTROL "Spin1",IDC_SPIN_QUALITY,"msctls_updown32", + UDS_SETBUDDYINT | UDS_ARROWKEYS | UDS_NOTHOUSANDS,77,33, + 10,13 + CONTROL "&Smooth",IDC_CHECK_SMOOTH,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,113,34,40,10 + EDITTEXT IDC_SMOOTH,156,33,37,12,ES_AUTOHSCROLL + CONTROL "Spin1",IDC_SPIN_SMOOTH,"msctls_updown32", + UDS_SETBUDDYINT | UDS_ARROWKEYS | UDS_NOTHOUSANDS,194,33, + 10,13 + CONTROL "&Grayscale",IDC_CHECK_GRAYSCALE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,13,56,47,10 + CONTROL "&Optimize",IDC_CHECK_OPTIMIZE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,13,69,43,10 + CONTROL "&Progressive",IDC_CHECK_PROGRESSIVE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,13,82,53,10 + CONTROL "&Baseline",IDC_CHECK_BASELINE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,13,95,43,10 + CONTROL "DCT &int",IDC_RADIO_DCT_INT,"Button",BS_AUTORADIOBUTTON | + WS_GROUP | WS_TABSTOP,112,68,59,8 + CONTROL "DCT &Fast Int",IDC_RADIO_DCT_FAST,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,112,80,59,8 + CONTROL "DCT F&loat",IDC_RADIO_DCT_FLOAT,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,112,93,59,8 + DEFPUSHBUTTON "&Export",IDOK,255,25,50,14 + PUSHBUTTON "&Cancel",IDCANCEL,255,43,50,14 + LTEXT "&File",IDC_STATIC,7,9,12,8 + LTEXT "&Quality",IDC_STATIC,13,35,22,8 + GROUPBOX "Discrete Cosinus Transformation",IDC_STATIC,104,55,138, + 52 + GROUPBOX "Options",IDC_STATIC,7,23,244,90 +END + +IDD_DIALOG_IMPORT DIALOG DISCARDABLE 0, 0, 312, 149 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Import" +FONT 8, "MS Sans Serif" +BEGIN + COMBOBOX IDC_FILENAME,23,7,228,66,CBS_DROPDOWN | WS_VSCROLL | + WS_TABSTOP + CONTROL "&Colors",IDC_CHECK_COLORS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,13,35,35,10 + EDITTEXT IDC_COLORS,56,33,47,12,ES_AUTOHSCROLL + CONTROL "Spin1",IDC_SPIN_COLORS,"msctls_updown32", + UDS_SETBUDDYINT | UDS_ARROWKEYS | UDS_NOTHOUSANDS,104,33, + 11,13 + CONTROL "&Grayscale",IDC_CHECK_GRAYSCALE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,13,54,47,10 + CONTROL "One &Pass",IDC_CHECK_ONE_PASS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,13,67,47,10 + CONTROL "No &Smooth",IDC_CHECK_NO_SMOOTH,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,13,80,51,10 + CONTROL "1/&1",IDC_RADIO_ONE_TO_ONE,"Button",BS_AUTORADIOBUTTON | + WS_GROUP | WS_TABSTOP,23,107,38,8 + CONTROL "1/&2",IDC_RADIO_ONE_TO_TWO,"Button",BS_AUTORADIOBUTTON | + WS_TABSTOP,23,120,38,8 + CONTROL "1/&4",IDC_RADIO_ONE_TO_FOUR,"Button",BS_AUTORADIOBUTTON | + WS_TABSTOP,69,107,38,8 + CONTROL "1/&8",IDC_RADIO_ONE_TO_EIGHT,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,69,120,38,8 + CONTROL "DCT &int",IDC_RADIO_DCT_INT,"Button",BS_AUTORADIOBUTTON | + WS_GROUP | WS_TABSTOP,126,41,59,8 + CONTROL "DCT &Fast",IDC_RADIO_DCT_FAST,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,126,54,59,8 + CONTROL "DCT F&loat",IDC_RADIO_DCT_FLOAT,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,126,67,59,8 + CONTROL "Flo&yd Stein",IDC_RADIO_DM_FLOYD_STEIN,"Button", + BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,126,96,59,8 + CONTROL "O&rdered",IDC_RADIO_DM_ORDERED,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,126,107,59,8 + CONTROL "&None",IDC_RADIO_DM_NONE,"Button",BS_AUTORADIOBUTTON | + WS_TABSTOP,126,120,59,8 + DEFPUSHBUTTON "&Import",IDOK,255,27,50,14 + PUSHBUTTON "&Cancel",IDCANCEL,255,45,50,14 + LTEXT "&File",IDC_STATIC,7,9,12,8 + GROUPBOX "Discrete Cosinus Transformation",IDC_STATIC,118,30,127, + 50 + GROUPBOX "Options",IDC_STATIC,7,21,244,120 + GROUPBOX "Scale",IDC_STATIC,13,95,96,40 + GROUPBOX "Dither Method",IDC_STATIC,118,83,127,52 +END + +IDD_DIALOG_WORKSPACE DIALOG DISCARDABLE 0, 0, 143, 61 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "WorkSpace" +FONT 8, "MS Sans Serif" +BEGIN + CONTROL "Save WorkSpace on &Exit",IDC_CHECK_SAVE_ON_EXIT,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,7,111,10 + CONTROL "Load WorkSpace on En&ter",IDC_CHECK_LOAD_ON_ENTER, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,21,117,10 + DEFPUSHBUTTON "&OK",IDOK,7,40,40,14 + PUSHBUTTON "&Cancel",IDCANCEL,51,40,40,14 + PUSHBUTTON "&Save",IDC_SAVE_WORKSPACE,96,40,40,14 +END + +IDD_DIALOG_ROLLUP DIALOGEX 0, 0, 184, 123 +STYLE WS_POPUP | WS_BORDER +FONT 8, "MS Sans Serif", 0, 0, 0x1 +BEGIN + EDITTEXT IDC_ZOOM_LEVEL,133,20,34,12 + CONTROL "Spin1",IDC_SPIN_ZOOM_LEVEL,"msctls_updown32", + UDS_SETBUDDYINT | UDS_ARROWKEYS | UDS_NOTHOUSANDS,167,20, + 12,12 + DEFPUSHBUTTON "&Apply",IDC_BUTTON_APPLY,115,104,64,14 + CONTROL "",IDC_PICTURE,"Static",SS_GRAYRECT | SS_REALSIZEIMAGE, + 51,62,13,12,WS_EX_DLGMODALFRAME | WS_EX_CLIENTEDGE + LTEXT "&Scale",IDC_STATIC,114,22,19,8 + GROUPBOX "Scaled Size",IDC_STATIC,115,46,64,40 + LTEXT "Width:",IDC_STATIC,119,58,20,8 + LTEXT "Height:",IDC_STATIC,119,70,24,8 + EDITTEXT IDC_SCALED_WIDTH,147,56,27,12,ES_AUTOHSCROLL | + ES_READONLY | NOT WS_TABSTOP + EDITTEXT IDC_SCALED_HEIGHT,147,69,27,12,ES_AUTOHSCROLL | + ES_READONLY | NOT WS_TABSTOP + GROUPBOX "",IDC_STATIC,4,14,108,104 +END + +IDD_IMAGE_INFO_DIALOG DIALOG DISCARDABLE 0, 0, 223, 173 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Image Info" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "OK",IDOK,86,153,50,14 + LTEXT "Name",IDC_STATIC,12,17,20,8 + LTEXT "Width",IDC_STATIC,12,31,20,8 + LTEXT "Height",IDC_STATIC,13,47,22,8 + LTEXT "Size in memory",IDC_STATIC,12,62,48,8 + LTEXT "Original file size",IDC_STATIC,12,78,49,8 + LTEXT "Format",IDC_STATIC,12,94,22,8 + LTEXT "Type",IDC_STATIC,12,109,17,8 + CONTROL "Static",IDC_FILE_NAME,"Static",SS_LEFTNOWORDWRAP | + WS_GROUP,66,17,150,8 + LTEXT "Static",IDC_WIDTH,66,31,133,8 + LTEXT "Static",IDC_HEIGHT,66,46,133,8 + LTEXT "Static",IDC_SIZE_IN_MEMORY,66,62,133,8 + LTEXT "Static",IDC_FILE_SIZE,66,78,133,8 + LTEXT "Static",IDC_FORMAT,66,94,133,8 + LTEXT "Static",IDC_TYPE,66,109,133,8 + GROUPBOX "",IDC_STATIC,6,6,212,118 + LTEXT "Static",IDC_FILE_STATUS,7,130,211,18 +END + +IDD_DIALOG_RESAMPLE DIALOG DISCARDABLE 0, 0, 184, 162 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Resample Image" +FONT 8, "MS Sans Serif" +BEGIN + EDITTEXT IDC_WIDTH_PIXELS,80,24,27,12,ES_AUTOHSCROLL | NOT + WS_TABSTOP + CONTROL "Spin1",IDC_SPIN_WIDTH_PIXELS,"msctls_updown32", + UDS_SETBUDDYINT | UDS_ARROWKEYS | UDS_NOTHOUSANDS,108,24, + 11,12 + EDITTEXT IDC_HEIGHT_PIXELS,80,41,27,12,ES_AUTOHSCROLL | NOT + WS_TABSTOP + CONTROL "Spin1",IDC_SPIN_HEIGHT_PIXELS,"msctls_updown32", + UDS_SETBUDDYINT | UDS_ARROWKEYS | UDS_NOTHOUSANDS,108,41, + 11,12 + EDITTEXT IDC_WIDTH_PERCENTS,130,24,27,12,ES_AUTOHSCROLL | NOT + WS_TABSTOP + CONTROL "Spin1",IDC_SPIN_WIDTH_PERCENTS,"msctls_updown32", + UDS_SETBUDDYINT | UDS_ARROWKEYS | UDS_NOTHOUSANDS,158,24, + 11,12 + EDITTEXT IDC_HEIGHT_PERCENTS,130,41,27,12,ES_AUTOHSCROLL | NOT + WS_TABSTOP + CONTROL "Spin1",IDC_SPIN_HEIGHT_PERCENTS,"msctls_updown32", + UDS_SETBUDDYINT | UDS_ARROWKEYS | UDS_NOTHOUSANDS,158,41, + 11,12 + CONTROL "Maintain Aspect &Ratio",IDC_CHECK_MAINTAIN_RATIO,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,9,61,85,10 + CONTROL "Match &Zoom Level",IDC_CHECK_MATCH_ZOOM_LEVEL,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,9,74,85,10 + CONTROL "Convert to:",IDC_CHECK_CONVERT_TO,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,5,101,51,10 + COMBOBOX IDC_COMBO_CONVERT_TO,58,99,121,32,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "&OK",IDOK,4,143,53,14 + PUSHBUTTON "&Reset",ID_BUTTON_RESET,66,143,53,14 + PUSHBUTTON "&Cancel",IDCANCEL,126,143,53,14 + GROUPBOX "Image Size",IDC_STATIC,4,2,175,90 + LTEXT "&Width:",IDC_STATIC,9,26,20,8 + LTEXT "&Height:",IDC_STATIC,9,43,24,8 + LTEXT "Static",IDC_WIDTH_ORIG,39,26,28,8 + LTEXT "Static",IDC_HEIGHT_ORIG,39,43,28,8 + LTEXT "Pixels",IDC_STATIC,80,13,19,8 + LTEXT "Percents",IDC_STATIC,130,13,29,8 + DEFPUSHBUTTON "Dummy",IDC_BUTTON_DUMMY,12,120,39,10,NOT WS_VISIBLE | + NOT WS_TABSTOP +END + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "DIBManager MFC Application\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "DIBManager\0" + VALUE "LegalCopyright", "Copyright (C) 1997\0" + VALUE "OriginalFilename", "DIBManager.EXE\0" + VALUE "ProductName", "DIBManager Application\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_DIALOG_EXPORT, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 305 + TOPMARGIN, 7 + BOTTOMMARGIN, 112 + END + + IDD_DIALOG_IMPORT, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 305 + TOPMARGIN, 7 + BOTTOMMARGIN, 142 + END + + IDD_DIALOG_WORKSPACE, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 136 + TOPMARGIN, 7 + BOTTOMMARGIN, 54 + END + + IDD_DIALOG_ROLLUP, DIALOG + BEGIN + LEFTMARGIN, 5 + RIGHTMARGIN, 179 + BOTTOMMARGIN, 118 + END + + IDD_IMAGE_INFO_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 6 + RIGHTMARGIN, 218 + TOPMARGIN, 6 + BOTTOMMARGIN, 167 + END + + IDD_DIALOG_RESAMPLE, DIALOG + BEGIN + LEFTMARGIN, 5 + RIGHTMARGIN, 179 + BOTTOMMARGIN, 157 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog Info +// + +IDD_DIALOG_EXPORT DLGINIT +BEGIN + IDC_FILENAME, 0x403, 1, 0 +"\000" + 0 +END + +IDD_DIALOG_IMPORT DLGINIT +BEGIN + IDC_FILENAME, 0x403, 1, 0 +"\000" + 0 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE PRELOAD DISCARDABLE +BEGIN + IDR_MAINFRAME "DIBManager" + IDR_DIBMANTYPE "\nDIBMan\nDIBMan\nBitmap Files (*.bmp)\n.BMP\nDIBManager.Document\nDIBMan Document" + ID_INDICATOR_SIZE "0000000000" + ID_INDICATOR_ZOOM "1000%" + ID_INDICATOR_PARAMETERS "000000000" + ID_INDICATOR_PROGRESS "progress indicator" + ID_DESCRIPTION_FILE "DIBManagerInfo.rtf" +END + +STRINGTABLE PRELOAD DISCARDABLE +BEGIN + AFX_IDS_APP_TITLE "DIBManager" + AFX_IDS_IDLEMESSAGE "Ready" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_INDICATOR_EXT "EXT" + ID_INDICATOR_CAPS "CAP" + ID_INDICATOR_NUM "NUM" + ID_INDICATOR_SCRL "SCRL" + ID_INDICATOR_OVR "OVR" + ID_INDICATOR_REC "REC" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_NEW "Create a new document\nNew" + ID_FILE_OPEN "Open an existing document\nOpen" + ID_FILE_CLOSE "Close the active document\nClose" + ID_FILE_SAVE "Save the active document\nSave" + ID_FILE_SAVE_AS "Save the active document with a new name\nSave As" + ID_FILE_PAGE_SETUP "Change the printing options\nPage Setup" + ID_FILE_PRINT_SETUP "Change the printer and printing options\nPrint Setup" + ID_FILE_PRINT "Print the active document\nPrint" + ID_FILE_PRINT_PREVIEW "Display full pages\nPrint Preview" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_APP_ABOUT "Display program information, version number and copyright\nAbout" + ID_APP_EXIT "Quit the application; prompts to save documents\nExit" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_MRU_FILE1 "Open this document" + ID_FILE_MRU_FILE2 "Open this document" + ID_FILE_MRU_FILE3 "Open this document" + ID_FILE_MRU_FILE4 "Open this document" + ID_FILE_MRU_FILE5 "Open this document" + ID_FILE_MRU_FILE6 "Open this document" + ID_FILE_MRU_FILE7 "Open this document" + ID_FILE_MRU_FILE8 "Open this document" + ID_FILE_MRU_FILE9 "Open this document" + ID_FILE_MRU_FILE10 "Open this document" + ID_FILE_MRU_FILE11 "Open this document" + ID_FILE_MRU_FILE12 "Open this document" + ID_FILE_MRU_FILE13 "Open this document" + ID_FILE_MRU_FILE14 "Open this document" + ID_FILE_MRU_FILE15 "Open this document" + ID_FILE_MRU_FILE16 "Open this document" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_NEXT_PANE "Switch to the next window pane\nNext Pane" + ID_PREV_PANE "Switch back to the previous window pane\nPrevious Pane" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_WINDOW_NEW "Open another window for the active document\nNew Window" + ID_WINDOW_ARRANGE "Arrange icons at the bottom of the window\nArrange Icons" + ID_WINDOW_CASCADE "Arrange windows so they overlap\nCascade Windows" + ID_WINDOW_TILE_HORZ "Arrange windows as non-overlapping tiles\nTile Windows" + ID_WINDOW_TILE_VERT "Arrange windows as non-overlapping tiles\nTile Windows" + ID_WINDOW_SPLIT "Split the active window into panes\nSplit" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_EDIT_CLEAR "Erase the selection\nErase" + ID_EDIT_CLEAR_ALL "Erase everything\nErase All" + ID_EDIT_COPY "Copy the selection and put it on the Clipboard\nCopy" + ID_EDIT_CUT "Cut the selection and put it on the Clipboard\nCut" + ID_EDIT_FIND "Find the specified text\nFind" + ID_EDIT_PASTE "Insert Clipboard contents\nPaste" + ID_EDIT_REPEAT "Repeat the last action\nRepeat" + ID_EDIT_REPLACE "Replace specific text with different text\nReplace" + ID_EDIT_SELECT_ALL "Select the entire document\nSelect All" + ID_EDIT_UNDO "Undo the last action\nUndo" + ID_EDIT_REDO "Redo the previously undone action\nRedo" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_VIEW_TOOLBAR "Show or hide the toolbar\nToggle ToolBar" + ID_VIEW_STATUS_BAR "Show or hide the status bar\nToggle StatusBar" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_SCSIZE "Change the window size" + AFX_IDS_SCMOVE "Change the window position" + AFX_IDS_SCMINIMIZE "Reduce the window to an icon" + AFX_IDS_SCMAXIMIZE "Enlarge the window to full size" + AFX_IDS_SCNEXTWINDOW "Switch to the next document window" + AFX_IDS_SCPREVWINDOW "Switch to the previous document window" + AFX_IDS_SCCLOSE "Close the active window and prompts to save the documents" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_SCRESTORE "Restore the window to normal size" + AFX_IDS_SCTASKLIST "Activate Task List" + AFX_IDS_MDICHILD "Activate this window" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_PREVIEW_CLOSE "Close print preview mode\nCancel Preview" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_WINDOW_SYNCHRONIZE "Synchronize image window with tree\nSynchronize" + ID_VIEW_ZOOM_IN "Zoom image in\nZoom In" + ID_VIEW_ZOOM_OUT "Zoom image out\nZoom Out" + ID_VIEW_ZOOM_TO_WINDOW "Zoom image to size of window\nZoom to Window" + ID_VIEW_ZOOM_TO_100 "Zoom to image's original size\nZoom to original size" + ID_TREEFILESBAR "Show or hide the Tree bar\nToggle TreeBar" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_EXPORT "Save DIB file in different formats\nExport " + ID_FILE_IMPORT "Open file of different format\nImport" + ID_FILE_SET_PROTECTION "Protect image via encryption\nSet Protection" + ID_FILE_REMOVE_PROTECTION "Encode encrypted image\nRemove Protection" + ID_FILE_PROTECTED "Protect image via encryption\nSet Protection On/Off" + ID_VIEW_WORKSPACE "Change settings for saving and loading workspace\nWorkSpace Settings" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_VIEW_SCALE_DLG "Popup dialog to customize zoom level of viewing imagr/nZoom Level Dialog" + ID_VIEW_ZOOM_LEVEL_DLG "Popup dialog to customize zoom level of viewing imagr/nZoom Level Dialog" + ID_VIEW_TREE_BAR "Show or hide the Tree bar\nToggle TreeBar" + ID_VIEW_IMAGE_INFO "get information about active image\nImage Info" + ID_VIEW_RESAMPLE_IMAGE "Change size or convert current image\nResample Image" + ID_VIEW_ZOOM "Zoom image/nZoom" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#include "OXCommon.rc" +#include "OXBitmapButton.rc" +#include "OXBitmapMenu.rc" +#include "OXCoolBar.rc" +#include "OXCoolToolBar.rc" +#include "OXFrameWndDock.rc" +#include "OxDockCtrlBars.rc" +#include "UTSampleAbout.rc" +#include "OXHistoryCombo.rc" +#include "OXMenuBar.rc" +#include "OXPreviewDialog.rc" +#include "OXRollUp.rc" // Roll up class resources +#include "OXSpinCtrl.rc" // Spin ctrl resources + +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif +#include "res\DIBManager.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +#include "afxprint.rc" // printing/print preview resources +#endif +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.vcproj b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.vcproj new file mode 100644 index 0000000..e7c738c --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManager.vcproj @@ -0,0 +1,2467 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManagerDoc.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManagerDoc.cpp new file mode 100644 index 0000000..d895240 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManagerDoc.cpp @@ -0,0 +1,440 @@ +// DIBManagerDoc.cpp : implementation of the CDIBManagerDoc class +// + +#include "stdafx.h" +#include "DIBManager.h" + +#include "DIBManagerDoc.h" + +#include "MainFrm.h" +#include "DIBManagerView.h" +#include "ChildFrm.h" + +#include "ProtectedFile.h" + +#include "path.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CDIBManagerDoc + +IMPLEMENT_DYNCREATE(CDIBManagerDoc, CDocument) + +BEGIN_MESSAGE_MAP(CDIBManagerDoc, CDocument) + //{{AFX_MSG_MAP(CDIBManagerDoc) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CDIBManagerDoc construction/destruction + +CDIBManagerDoc::CDIBManagerDoc() +{ + // TODO: add one-time construction code here + m_nDIBNumPage=0; + m_nXPage=0; + m_nYPage=0; +} + +CDIBManagerDoc::~CDIBManagerDoc() +{ +} + +BOOL CDIBManagerDoc::OnNewDocument() +{ + if (!CDocument::OnNewDocument()) + return FALSE; + + // TODO: add reinitialization code here + // (SDI documents will reuse this document) + + return TRUE; +} + + + +///////////////////////////////////////////////////////////////////////////// +// CDIBManagerDoc serialization + +void CDIBManagerDoc::Serialize(CArchive& ar) +{ + // use built-in functions to save/load DIB file to/from + // CFile which is associated with CArchive ar + ar.Flush(); + if(ar.IsStoring()) + { + m_dib.Write(ar.GetFile()); + } + else + { + m_dib.Read(ar.GetFile()); + } +} + +///////////////////////////////////////////////////////////////////////////// +// CDIBManagerDoc diagnostics + +#ifdef _DEBUG +void CDIBManagerDoc::AssertValid() const +{ + CDocument::AssertValid(); +} + +void CDIBManagerDoc::Dump(CDumpContext& dc) const +{ + CDocument::Dump(dc); +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CDIBManagerDoc commands + +BOOL CDIBManagerDoc::OnSaveDocument(LPCTSTR lpszPathName) +{ + // TODO: Add your specialized code here and/or call the base class + + BOOL bSuccess=FALSE; + + // try to open or create file + CFile m_file; + TRY + { + bSuccess=m_file.Open(lpszPathName,CFile::modeCreate|CFile::modeReadWrite); + } + CATCH(CFileException,e) + { + TCHAR szCause[255]; + CString strFormatted; + e->GetErrorMessage(szCause, 255); + strFormatted = _T("CDIBManagerDoc::OnSaveDocument:exception: "); + strFormatted += szCause; + TRACE(strFormatted); + } + END_CATCH + + if(!bSuccess) + { + AfxMessageBox(_T("Cannot open or create specified file!"), + MB_OK|MB_ICONEXCLAMATION); + return FALSE; + } + + if(m_bProtected) + { + // if image is protected + // then try to save image using object of CProtectedFile class + TRY + { + CArchive ar(&m_file, CArchive::store); + bSuccess=m_dib.Write(ar); + ar.Close(); + if(!bSuccess) + { + AfxMessageBox(_T("Cannot save image!"),MB_OK|MB_ICONEXCLAMATION); + return FALSE; + } + + CProtectedFile m_protectedFile; + bSuccess=m_protectedFile.Save(&m_file); + } + CATCH(CFileException,e) + { + if(e->m_cause==CFileException::accessDenied) + { + e->Delete(); + } + } + END_CATCH + } + else + { + // just save DIB file + CArchive ar(&m_file, CArchive::store); + bSuccess=m_dib.Write(ar); + ar.Close(); + } + // to get the length of file + // we have to flush it + m_file.Flush(); + if(bSuccess) + { + // in a case of protection the length of DIB file could change + // then recalculate it + COXPathSpec path; + path.SetPath(lpszPathName); + path.DoGetInfo(); + m_dwImageSize=path.GetLength(); + m_bInitiallyProtected=m_bProtected; + m_tf=TF_DIB; + SetModifiedFlag(FALSE); + } + return bSuccess; +} + +BOOL CDIBManagerDoc::OnOpenDocument(LPCTSTR lpszPathName) +{ + // TODO: Add your specialized creation code here + + return OpenDocument(lpszPathName); +} + +BOOL CDIBManagerDoc::OpenDocument(LPCTSTR lpszPathName, TypeFile tf) +{ + CDIBManagerApp* pApp=(CDIBManagerApp*)AfxGetApp(); + + // try to open file on read + CFile m_file; + BOOL bSuccess=FALSE; + TRY + { + bSuccess=m_file.Open(lpszPathName,CFile::modeRead); + } + CATCH(CFileException, e) + { + TCHAR szCause[255]; + CString strFormatted; + e->GetErrorMessage(szCause, 255); + strFormatted = _T("CDIBManagerDoc::OpenDocument:exception: "); + strFormatted += szCause; + TRACE(strFormatted); + + bSuccess=FALSE; + } + END_CATCH + + if(!bSuccess) + { + // notify system about error + // if error happens during loading of system + // then ErrorNotify() will hide splash window if it is active + pApp->ErrorNotify(_T("Cannot open file!")); + return FALSE; + } + + return OpenDocument(&m_file,CString(lpszPathName),tf); +} + +BOOL CDIBManagerDoc::OpenDocument(CFile* m_pFile, CString sFileName, TypeFile tf) +{ + CDIBManagerApp* pApp=(CDIBManagerApp*)AfxGetApp(); + + m_bProtected=FALSE; + m_bInitiallyProtected=FALSE; + + m_pFile->SeekToBegin(); + // just try to read DIB file + if(!m_dib.Read(m_pFile)) + { + // if error happened then suggest that we have to open + // protected image + TRY + { + m_pFile->SeekToBegin(); + CProtectedFile m_protectedFile; + CMemFile tmpFile; + if(!m_protectedFile.CopyFile(&tmpFile,m_pFile)) + return FALSE; + if(!m_protectedFile.Open(&tmpFile)) + return FALSE; + + m_bProtected=TRUE; + m_bInitiallyProtected=TRUE; + + tmpFile.SeekToBegin(); + // try to read DIB file by means of object of CProtectedFile class + if(!m_dib.Read(&tmpFile)) + { + // if error happened then assume that file is not of DIB format + AfxThrowFileException(CFileException::badPath); + } + } + CATCH(CFileException,e) + { + if(e->m_cause==CFileException::badPath) + { + pApp->ErrorNotify(_T("Unknown file format!")); + } + return FALSE; + } + END_CATCH + } + + m_sNameFile=sFileName; + m_tf=tf; + + COXPathSpec path; + path.SetPath(m_sNameFile); + path.DoGetInfo(); + m_dwImageSize=path.GetLength(); + + m_dibDither=NULL; + // if current video color palette is no more than 256 colors and + // DIB file uses no les than 256 color then create dithered copy + // of the file to render it on the display (this way we will get + // better output quality) + if(CheckUseDithered()) + { + m_dibDither=m_dib; + m_dibDither.HalfToneDitherDIB(); + } + + return TRUE; +} + +BOOL CDIBManagerDoc::SaveModified() +{ + // TODO: Add your specialized code here and/or call the base class + + // we can save only files of DIB format + if(m_tf!=TF_DIB) + { + SetModifiedFlag(FALSE); + } + + return CDocument::SaveModified(); +} + +CPalette* CDIBManagerDoc::GetDIBPalette() +{ + // depending on the current color palette + // return original palette or palette of dithered file + if(!CheckUseDithered()) + { + return m_dib.GetPalette(); + } + else + { + return m_dibDither.GetPalette(); + } +} + +CSize CDIBManagerDoc::GetDIBSize() +{ + + // depending on the current color palette + // return original size or size of dithered file + if(!CheckUseDithered()) + { + return m_dib.GetSize(); + } + else + { + return m_dibDither.GetSize(); + } +} + +UINT CDIBManagerDoc::CalcDIBNumPage(CDIBManagerView* pView, CDC* pDC) +{ + // convert logical boundaries of image to corresponding boundaries + // for printer taking into account current zoom level + + CSize sizeDIB=GetDIBSize(); + CRect rect(0,0,sizeDIB.cx,sizeDIB.cy); + pView->NormalToScaled(&rect); + pView->NormalToPrinted(pDC,&rect); + + // calculate the number of page based on the size of print page + int xPrinterRes=pDC->GetDeviceCaps(HORZRES); + int yPrinterRes=pDC->GetDeviceCaps(VERTRES); + + m_nXPage=rect.Width()/xPrinterRes; + if(rect.Width()%xPrinterRes!=0) + { + m_nXPage++; + } + m_nYPage=rect.Height()/yPrinterRes; + if(rect.Height()%yPrinterRes!=0) + { + m_nYPage++; + } + + // all pages + m_nDIBNumPage=m_nXPage*m_nYPage; + + return m_nDIBNumPage; +} + +// we would better have such function in COXDIB class +DWORD CDIBManagerDoc::CalcDIBSizeInMemory() +{ + LPBITMAPINFOHEADER lpBI; // Pointer to DIB info structure + DWORD dwDIBSizeInMemory; + + HDIB hDIB=m_dib.MakeCopy(); + if (hDIB==NULL) + { + TRACE0("CDIBManagerDoc::CalcDIBSizeInMemory: cannot make copy of DIB handle\n"); + return (DWORD)0; + } + // Get a pointer to the DIB memory, the first of which contains + // a BITMAPINFO structure + lpBI = (LPBITMAPINFOHEADER)::GlobalLock((HGLOBAL) hDIB); + if (lpBI == NULL) + { + TRACE0("CDIBManagerDoc::CalcDIBSizeInMemory: Out of memory\n"); + ::GlobalFree((HGLOBAL)hDIB); + return (DWORD)0; + } + + // Calculating the size of the DIB is a bit tricky (if we want to + // do it right). The easiest way to do this is to call GlobalSize() + // on our global handle, but since the size of our global memory may have + // been padded a few bytes, we may end up writing out a few too + // many bytes to the file (which may cause problems with some apps). + // + // So, instead let's calculate the size manually (if we can) + // + // First, find size of header plus size of color table. Since the + // first DWORD in both BITMAPINFOHEADER and BITMAPCOREHEADER conains + // the size of the structure, let's use this. + + // Partial Calculation + dwDIBSizeInMemory=*(LPDWORD)lpBI+m_dib.GetPaletteSize((LPSTR)lpBI); + + // Now calculate the size of the image + if ((lpBI->biCompression == BI_RLE8) || (lpBI->biCompression == BI_RLE4)) + { + // It's an RLE bitmap, we can't calculate size, so trust the + // biSizeImage field + + dwDIBSizeInMemory+=lpBI->biSizeImage; + } + else + { + DWORD dwBmBitsSize; // Size of Bitmap Bits only + + // It's not RLE, so size is Width (DWORD aligned) * Height + + dwBmBitsSize=WIDTHBYTES((lpBI->biWidth)*((DWORD)lpBI->biBitCount))* + lpBI->biHeight; + + dwDIBSizeInMemory+=dwBmBitsSize; + } + + // Calculate the file size by adding the DIB size to sizeof(BITMAPFILEHEADER) + dwDIBSizeInMemory+=sizeof(BITMAPFILEHEADER); + + ::GlobalUnlock((HGLOBAL)hDIB); + ::GlobalFree((HGLOBAL)hDIB); + + return dwDIBSizeInMemory; +} + +BOOL CDIBManagerDoc::CheckUseDithered() +{ + CDIBManagerApp* pApp=(CDIBManagerApp*)AfxGetApp(); + + // if current video color palette is no more than 256 colors and + // DIB file uses no les than 256 color then create dithered copy + // of the file to render it on the display (this way we will get + // better output quality) + return (pApp->m_nColors<=8 && (m_dib.GetNumColors()==0 || m_dib.GetNumColors()==256)); +} + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManagerDoc.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManagerDoc.h new file mode 100644 index 0000000..515482d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManagerDoc.h @@ -0,0 +1,98 @@ +// DIBManagerDoc.h : interface of the CDIBManagerDoc class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_DIBMANAGERDOC_H__D2552D16_7143_11D1_A3D5_0080C83F712F__INCLUDED_) +#define AFX_DIBMANAGERDOC_H__D2552D16_7143_11D1_A3D5_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXdib.h" + +class CDIBManagerDoc : public CDocument +{ +protected: // create from serialization only + CDIBManagerDoc(); + DECLARE_DYNCREATE(CDIBManagerDoc) + +// Attributes +public: + enum TypeFile { TF_DIB, TF_JPEG }; + + // our DIB image + COXDIB m_dib; + // special DIB object that we use to render the image on the screen + // in the case when the current system palette is no more than 8 bits + // and image consist of no less than 256 colors + COXDIB m_dibDither; + // full file name of the document + CString m_sNameFile; + // type of image file + // currently available only: + // BITMAP = TF_DIB + // JPEG = TF_JPEG + TypeFile m_tf; + // defines if image is currently protected + BOOL m_bProtected; + // defines if image was initially protected + BOOL m_bInitiallyProtected; + // defines image length in byte + DWORD m_dwImageSize; + // the number of all pages to put it on screen + UINT m_nDIBNumPage; + // the number of pages in different direction + UINT m_nXPage; + UINT m_nYPage; + + BOOL OpenDocument(LPCTSTR lpszPathName, TypeFile tf=TF_DIB); + BOOL OpenDocument(CFile* m_pFile, CString sFileName, TypeFile tf=TF_JPEG); + + CPalette* GetDIBPalette(); + CSize GetDIBSize(); + UINT CalcDIBNumPage(class CDIBManagerView* pView, CDC* pDC); + + DWORD CalcDIBSizeInMemory(); + BOOL CheckUseDithered(); + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CDIBManagerDoc) + public: + virtual BOOL OnNewDocument(); + virtual void Serialize(CArchive& ar); + virtual BOOL OnOpenDocument(LPCTSTR lpszPathName); + virtual BOOL OnSaveDocument(LPCTSTR lpszPathName); + protected: + virtual BOOL SaveModified(); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CDIBManagerDoc(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + +// Generated message map functions +protected: + //{{AFX_MSG(CDIBManagerDoc) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_DIBMANAGERDOC_H__D2552D16_7143_11D1_A3D5_0080C83F712F__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManagerInfo.rtf b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManagerInfo.rtf new file mode 100644 index 0000000000000000000000000000000000000000..bbab1762e295ff904d69774da4551a931c3d6cf7 GIT binary patch literal 1504 zcma)6ZBG+H5cac)|6wFiQ9``7C@7zxEvAM7X)74BU-tIq+LgWCb$5@pHvR9;UJrzT z7n7#l?#%P-JoC0Vwb zA^z}B)cVEq6%$4oN3k=9S;D3cQ70@_B_@ZDu3GJbLjpzRitA}B>2#RoE@M`4NxEVT z?E@xAY6{;}kOdD26Ju0r7SJ0U54q-3bdX_Tv=5F4X*6(al@!&P$cYec2`MSQokT*Y zEt8q__W}2)C|?|OS)}xU$stD`N=KJc3sq*A(E-8?9|tx(>B6Z@9e2ym^)q*IM0HAb zK2lxfF8!?7J7zU~)Qw72paY4uTIvjSsO(mUMM&A3bbq~mLdS}{11>`B2l8RmLhCc5 zcSk4!<+M~Jf8t8)#=3yumZu6~Od0kw7>ih+I=H8pPD-Vg&@ipL*sh{(C9h%(2TAg(3EnjhRc~~3^|CI{$SAd2TKGYnr+9-3vP}^hlw3He16*vX k0lcaV-NcY+;wzp0!OZQ^BC7cwY${rcv{-IUw9}sb0pEWX_y7O^ literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManagerView.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManagerView.cpp new file mode 100644 index 0000000..8d7da15 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/DIBManagerView.cpp @@ -0,0 +1,1034 @@ +// DIBManagerView.cpp : implementation of the CDIBManagerView class +// + +#include "stdafx.h" +#include "DIBManager.h" + +#include "MainFrm.h" +#include "DIBManagerDoc.h" +#include "DIBManagerView.h" +#include "ChildFrm.h" + +#include "ExportDlg.h" +#include "ScaleRollupDlg.h" +#include "ImageInfoDlg.h" +#include "ResampleImageDlg.h" + +#include "oxbmpfle.h" + +#include "UTBStrOp.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[]=__FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CDIBManagerView + +IMPLEMENT_DYNCREATE(CDIBManagerView, COXZoomView) + +BEGIN_MESSAGE_MAP(CDIBManagerView, COXZoomView) + //{{AFX_MSG_MAP(CDIBManagerView) + ON_COMMAND(ID_VIEW_ZOOM_IN, OnViewZoomIn) + ON_UPDATE_COMMAND_UI(ID_VIEW_ZOOM_IN, OnUpdateViewZoomIn) + ON_COMMAND(ID_VIEW_ZOOM_OUT, OnViewZoomOut) + ON_UPDATE_COMMAND_UI(ID_VIEW_ZOOM_OUT, OnUpdateViewZoomOut) + ON_COMMAND(ID_VIEW_ZOOM_TO_100, OnViewZoomTo100) + ON_UPDATE_COMMAND_UI(ID_VIEW_ZOOM_TO_100, OnUpdateViewZoomTo100) + ON_COMMAND(ID_VIEW_ZOOM_TO_WINDOW, OnViewZoomToWindow) + ON_UPDATE_COMMAND_UI(ID_INDICATOR_ZOOM, OnUpdateZoom) + ON_UPDATE_COMMAND_UI(ID_INDICATOR_SIZE, OnUpdateSize) + ON_UPDATE_COMMAND_UI(ID_INDICATOR_PARAMETERS, OnUpdateParameters) + ON_UPDATE_COMMAND_UI(ID_FILE_SAVE, OnUpdateFileSave) + ON_COMMAND(ID_FILE_EXPORT, OnFileExport) + ON_UPDATE_COMMAND_UI(ID_FILE_PROTECTED, OnUpdateFileProtected) + ON_COMMAND(ID_FILE_PROTECTED, OnFileProtected) + ON_WM_DESTROY() + ON_WM_SETFOCUS() + ON_COMMAND(ID_VIEW_ZOOM_LEVEL_DLG, OnViewZoomLevelDlg) + ON_WM_QUERYNEWPALETTE() + ON_WM_PALETTECHANGED() + ON_COMMAND(ID_VIEW_IMAGE_INFO, OnViewImageInfo) + ON_COMMAND(ID_VIEW_RESAMPLE_IMAGE, OnViewResampleImage) + //}}AFX_MSG_MAP + ON_ROLLUP_NOTIFICATION() + // Standard printing commands + ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint) + ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint) + ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CDIBManagerView construction/destruction + +CDIBManagerView::CDIBManagerView() +{ + // TODO: add construction code here + + SetSmoothScrolling(TRUE); + SetSmoothEnvironment(); +} + +CDIBManagerView::~CDIBManagerView() +{ +} + +BOOL CDIBManagerView::PreCreateWindow(CREATESTRUCT& cs) +{ + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + return CView::PreCreateWindow(cs); +} + +///////////////////////////////////////////////////////////////////////////// +// CDIBManagerView drawing + +void CDIBManagerView::OnDraw(CDC* pDC) +{ + CDIBManagerDoc* pDoc=GetDocument(); + ASSERT_VALID(pDoc); + + // TODO: add draw code for native data here + + // get the size of image + CSize sizeDIB=pDoc->GetDIBSize(); + CRect rect(0,0,sizeDIB.cx,sizeDIB.cy); + CRect rectPaint=rect; + // transform coordinates of boundary rectangle + // taking into account current zoom level + NormalToScaled(&rectPaint); + + /// + // we have to revert Y-coordinates + // to get right print output + UINT diff=rect.bottom-rect.top; + rect.bottom=sizeDIB.cy-rect.top; + rect.top=rect.bottom-diff; + /// + DrawDIB(pDC,rectPaint,rect); +} + +///////////////////////////////////////////////////////////////////////////// +// CDIBManagerView printing + +BOOL CDIBManagerView::OnPreparePrinting(CPrintInfo* pInfo) +{ + // default preparation + return DoPreparePrinting(pInfo); +} + +void CDIBManagerView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo) +{ + CDIBManagerDoc* pDoc=GetDocument(); + ASSERT_VALID(pDoc); + + // TODO: add extra initialization before printing + + pInfo->SetMaxPage(pDoc->CalcDIBNumPage(this,pDC)); +} + +void CDIBManagerView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) +{ + // TODO: add cleanup after printing +} + +void CDIBManagerView::OnPrint(CDC* pDC, CPrintInfo* pInfo) +{ + // TODO: Add your specialized code here and/or call the base class + + // print current page + PrintPage(pDC, pInfo); +} + +void CDIBManagerView::PrintPage(CDC* pDC, CPrintInfo* pInfo) +{ + CDIBManagerDoc* pDoc=GetDocument(); + ASSERT_VALID(pDoc); + + // define size of image on printer taking into account current zoom level + CSize sizeDIB=pDoc->GetDIBSize(); + CRect rect(0,0,sizeDIB.cx,sizeDIB.cy); + NormalToScaled(&rect); + NormalToPrinted(pDC,&rect); + + // define the rectangle for current printing page + // based on the number of all pages in the image + int xPrinterRes=pDC->GetDeviceCaps(HORZRES); + int yPrinterRes=pDC->GetDeviceCaps(VERTRES); + CRect rectPage(xPrinterRes*((pInfo->m_nCurPage-1)%pDoc->m_nXPage), + yPrinterRes*((pInfo->m_nCurPage-1)/pDoc->m_nXPage), + xPrinterRes*((pInfo->m_nCurPage-1)%pDoc->m_nXPage)+xPrinterRes, + yPrinterRes*((pInfo->m_nCurPage-1)/pDoc->m_nXPage)+yPrinterRes); + // if size of page is bigger than size of remaining image + // then make them equal + if(rectPage.right>rect.right) + { + rectPage.right=rect.right; + } + if(rectPage.bottom>rect.bottom) + { + rectPage.bottom=rect.bottom; + } + + // get the coordinates of part of image that is going to be printed + // on the current page + CRect rectDIB=rectPage; + PrintedToNormal(pDC,&rectDIB); + ScaledToNormal(&rectDIB); + /// + // we have to revert Y-coordinates + // to get right print output + UINT diff=rectDIB.bottom-rectDIB.top; + rectDIB.bottom=sizeDIB.cy-rectDIB.top; + rectDIB.top=rectDIB.bottom-diff; + /// + + rectPage+=CSize(-rectPage.left,-rectPage.top); + + DrawDIB(pDC,rectPage,rectDIB); +} + +BOOL CDIBManagerView::DrawDIB(CDC* pDC, CRect& rectDest, CRect& rectSrc) +{ + CDIBManagerDoc* pDoc=GetDocument(); + ASSERT_VALID(pDoc); + + // set neccessary map mode + int oldMapMode; + oldMapMode=pDC->SetMapMode(MM_TEXT); + + // depending on current palette use original or dithered image + // to render image on display + int bSuccess; + if(!pDoc->CheckUseDithered()) + { + bSuccess=pDoc->m_dib.Paint(pDC,rectDest,rectSrc); + } + else + { + bSuccess=pDoc->m_dibDither.Paint(pDC,rectDest,rectSrc); + } + + pDC->SetMapMode(oldMapMode); + + return bSuccess; +} + +void CDIBManagerView::NormalToScaled(CRect* pRect) +{ + int nZoomLevel=GetZoomLevel(); + + // scale coordinates from normal to scaled + // taking into account current zoom level + if(nZoomLevel!=100) + { + pRect->left=((long)((long)pRect->left*(long)nZoomLevel))/(100L); + pRect->top=((long)((long)pRect->top*(long)nZoomLevel))/(100L); + pRect->right=((long)((long)pRect->right*(long)nZoomLevel))/(100L); + pRect->bottom=((long)((long)pRect->bottom*(long)nZoomLevel))/(100L); + } +} + +void CDIBManagerView::NormalToScaled(CPoint* pPoint) +{ + int nZoomLevel=GetZoomLevel(); + + // scale coordinates from normal to scaled + // taking into account current zoom level + if(nZoomLevel!=100) + { + pPoint->x=((long)((long)pPoint->x*(long)nZoomLevel))/(100L); + pPoint->y=((long)((long)pPoint->y*(long)nZoomLevel))/(100L); + } +} + +void CDIBManagerView::ScaledToNormal(CRect* pRect) +{ + int nZoomLevel=GetZoomLevel(); + + // scale coordinates from scaled to normal + // taking into account current zoom level + if(nZoomLevel!=100) + { + pRect->left=((long)((long)pRect->left*100L))/((long)nZoomLevel); + pRect->top=((long)((long)pRect->top*100L))/((long)nZoomLevel); + pRect->right=((long)((long)pRect->right*100L))/((long)nZoomLevel); + pRect->bottom=((long)((long)pRect->bottom*100L))/((long)nZoomLevel); + } +} + +void CDIBManagerView::ScaledToNormal(CPoint* pPoint) +{ + int nZoomLevel=GetZoomLevel(); + + // scale coordinates from scaled to normal + // taking into account current zoom level + if(nZoomLevel!=100) + { + pPoint->x=((long)((long)pPoint->x*100L))/((long)nZoomLevel); + pPoint->y=((long)((long)pPoint->y*100L))/((long)nZoomLevel); + } +} + +void CDIBManagerView::NormalToPrinted(CDC* pDC, CRect* pRect) +{ + // scale coordinates from display to printer + // taking into account screen and current printer DPI + int xPrinterDPI=pDC->GetDeviceCaps(LOGPIXELSX); + int yPrinterDPI=pDC->GetDeviceCaps(LOGPIXELSY); + + CClientDC dc(this); + int xScreenDPI=dc.GetDeviceCaps(LOGPIXELSX); + int yScreenDPI=dc.GetDeviceCaps(LOGPIXELSY); + + if(xPrinterDPI!=xScreenDPI || yPrinterDPI!=yScreenDPI) + { + pRect->left=((long)((long)pRect->left*(long)xPrinterDPI))/((long)xScreenDPI); + pRect->top=((long)((long)pRect->top*(long)yPrinterDPI))/((long)yScreenDPI); + pRect->right=((long)((long)pRect->right*(long)xPrinterDPI))/((long)xScreenDPI); + pRect->bottom=((long)((long)pRect->bottom*(long)yPrinterDPI))/((long)yScreenDPI); + } +} + +void CDIBManagerView::NormalToPrinted(CDC* pDC, CPoint* pPoint) +{ + // scale coordinates from display to printer + // taking into account screen and current printer DPI + int xPrinterDPI=pDC->GetDeviceCaps(LOGPIXELSX); + int yPrinterDPI=pDC->GetDeviceCaps(LOGPIXELSY); + + CClientDC dc(this); + int xScreenDPI=dc.GetDeviceCaps(LOGPIXELSX); + int yScreenDPI=dc.GetDeviceCaps(LOGPIXELSY); + + if(xPrinterDPI!=xScreenDPI || yPrinterDPI!=yScreenDPI) + { + pPoint->x=((long)((long)pPoint->x*(long)xPrinterDPI))/((long)xScreenDPI); + pPoint->y=((long)((long)pPoint->y*(long)yPrinterDPI))/((long)yScreenDPI); + } +} + +void CDIBManagerView::PrintedToNormal(CDC* pDC, CRect* pRect) +{ + // scale coordinates from printer to display + // taking into account screen and current printer DPI + int xPrinterDPI=pDC->GetDeviceCaps(LOGPIXELSX); + int yPrinterDPI=pDC->GetDeviceCaps(LOGPIXELSY); + + CClientDC dc(this); + int xScreenDPI=dc.GetDeviceCaps(LOGPIXELSX); + int yScreenDPI=dc.GetDeviceCaps(LOGPIXELSY); + + if(xPrinterDPI!=xScreenDPI || yPrinterDPI!=yScreenDPI) + { + pRect->left=((long)((long)pRect->left*(long)xScreenDPI))/((long)xPrinterDPI); + pRect->top=((long)((long)pRect->top*(long)yScreenDPI))/((long)yPrinterDPI); + pRect->right=((long)((long)pRect->right*(long)xScreenDPI))/((long)xPrinterDPI); + pRect->bottom=((long)((long)pRect->bottom*(long)yScreenDPI))/((long)yPrinterDPI); + } +} + +void CDIBManagerView::PrintedToNormal(CDC* pDC, CPoint* pPoint) +{ + // scale coordinates from printer to display + // taking into account screen and current printer DPI + int xPrinterDPI=pDC->GetDeviceCaps(LOGPIXELSX); + int yPrinterDPI=pDC->GetDeviceCaps(LOGPIXELSY); + + CClientDC dc(this); + int xScreenDPI=dc.GetDeviceCaps(LOGPIXELSX); + int yScreenDPI=dc.GetDeviceCaps(LOGPIXELSY); + + if(xPrinterDPI!=xScreenDPI || yPrinterDPI!=yScreenDPI) + { + pPoint->x=((long)((long)pPoint->x*(long)xScreenDPI))/((long)xPrinterDPI); + pPoint->y=((long)((long)pPoint->y*(long)yScreenDPI))/((long)yPrinterDPI); + } +} + +///////////////////////////////////////////////////////////////////////////// +// CDIBManagerView diagnostics + +#ifdef _DEBUG +void CDIBManagerView::AssertValid() const +{ + CView::AssertValid(); +} + +void CDIBManagerView::Dump(CDumpContext& dc) const +{ + CView::Dump(dc); +} + +CDIBManagerDoc* CDIBManagerView::GetDocument() // non-debug version is inline +{ + ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CDIBManagerDoc))); + return(CDIBManagerDoc*)m_pDocument; +} +#endif //_DEBUG + + + +///////////////////////////////////////////////////////////////////////////// +// A view's OnInitialUpdate() overrideable function is called immediately +// after the frame window is created, and the view within the frame +// window is attached to its document. This provides the scroll view the +// opportunity to set its size(m_totalSize) based on the document size. +void CDIBManagerView::OnInitialUpdate() +{ + CDIBManagerDoc* pDoc=GetDocument(); + + // get the size of DIB image to set ScrollSize of view window + CSize sizeDIB=pDoc->m_dib.GetSize(); + CRect rectDIB=CRect(0,0,sizeDIB.cx,sizeDIB.cy); + SetDeviceScrollSizesRelative(MM_TEXT,rectDIB); + SetZoomAlign(ZV_CENTER); + +} + +void CDIBManagerView::OnViewZoomIn() +{ + // TODO: Add your command handler code here + + // up current zoom level on 100% if it is more than 100% already + // or on 10% otherwise + int nZoomLevel=GetZoomLevel(); + if(nZoomLevel=100 ? 100 : 10; + nZoomLevel+=nMargin; + SetZoomLevel(nZoomLevel); + if(GetZoomLevel()>ID_MAX_ZOOM_LEVEL) + { + SetZoomLevel(ID_MAX_ZOOM_LEVEL); + } + // if roll-up ZoomLevel dialog is active then + // notify it that current zoom level is changed + NotifyZoomChanged(); + } +} + +void CDIBManagerView::OnUpdateViewZoomIn(CCmdUI* pCmdUI) +{ + // TODO: Add your command update UI handler code here + + pCmdUI->Enable(ID_MAX_ZOOM_LEVEL>GetZoomLevel()); +} + +void CDIBManagerView::OnViewZoomOut() +{ + // TODO: Add your command handler code here + + // down current zoom level on 100% if it is more than 100% already + // or on 10% otherwise + int nZoomLevel=GetZoomLevel(); + if(nZoomLevel>ID_MIN_ZOOM_LEVEL) + { + int nMargin=nZoomLevel>100 ? 100 : 10; + nZoomLevel-=nMargin; + if(nZoomLevelEnable(ID_MIN_ZOOM_LEVELEnable(!bZoomLevelEqual100); + pCmdUI->SetCheck(bZoomLevelEqual100); + +} + +void CDIBManagerView::OnViewZoomToWindow() +{ + // TODO: Add your command handler code here + + // zoom to the size of the containing window + ZoomToWindow(); + if(GetZoomLevel()>ID_MAX_ZOOM_LEVEL) + { + SetZoomLevel(ID_MAX_ZOOM_LEVEL); + } + // if roll-up ZoomLevel dialog is active then + // notify it that current zoom level is changed + NotifyZoomChanged(); +} + +void CDIBManagerView::OnUpdateZoom(CCmdUI* pCmdUI) +{ + CString string=""; + string.Format(_T("%u%%"),GetZoomLevel()); + pCmdUI->Enable(TRUE); + pCmdUI->SetText(string); +} + +void CDIBManagerView::OnUpdateSize(CCmdUI* pCmdUI) +{ + // put length in bytes of image StatusBar + CString string=""; + CDIBManagerDoc* pDoc=GetDocument(); + if(pDoc!=NULL) + { + DWORD dwSize=pDoc->m_dwImageSize; + // if length in bytes is less than 1 kilobyte then show it in bytes + // otherwise in kilobytes + if(dwSize<1024) + { + string.Format(_T("%u byte%s"),dwSize,dwSize>1 ? "s" : ""); + } + else + { + string.Format(_T("%u.%1u KB"),dwSize/1024,((dwSize%1024)*10)/1024); + } + } + pCmdUI->Enable(TRUE); + pCmdUI->SetText(string); +} + +void CDIBManagerView::OnUpdateParameters(CCmdUI* pCmdUI) +{ + // put the size of image on StatusBar + CString string=""; + CDIBManagerDoc* pDoc=GetDocument(); + if(pDoc!=NULL) + { + CSize sizeDIB=pDoc->m_dib.GetSize(); + string.Format(_T("%4u:%u"),sizeDIB.cx,sizeDIB.cy); + } + pCmdUI->Enable(TRUE); + pCmdUI->SetText(string); +} + + +void CDIBManagerView::OnUpdateFileSave(CCmdUI* pCmdUI) +{ + // TODO: Add your command update UI handler code here + + CDIBManagerDoc* pDoc=GetDocument(); + // we can save changes to current document only if + // image is of DIB format + pCmdUI->Enable(pDoc->m_tf==CDIBManagerDoc::TF_DIB && + pDoc->IsModified()); +} + +void CDIBManagerView::OnFileExport() +{ + // TODO: Add your command handler code here + + // we can save DIB image as JPEG + CDIBManagerDoc* pDoc=GetDocument(); + + CExportDlg exportDlg; + + // copy current DIB image to the temporary file that + // will be transformed into JPEG file + CArchive ar(&exportDlg.m_tmpBMPFile, CArchive::store); + pDoc->m_dib.Write(ar); + ar.Close(); + exportDlg.m_tmpBMPFile.SeekToBegin(); + + if(exportDlg.DoModal()==IDOK) + { + } + +} + +void CDIBManagerView::OnUpdateFileProtected(CCmdUI* pCmdUI) +{ + // TODO: Add your command update UI handler code here + + pCmdUI->SetCheck(GetDocument()->m_bProtected); +} + +void CDIBManagerView::OnFileProtected() +{ + // TODO: Add your command handler code here + + CDIBManagerDoc* pDoc=GetDocument(); + pDoc->m_bProtected=!pDoc->m_bProtected; + // mark document as dirty only if we really changed the + // original protection + if(pDoc->m_bProtected==pDoc->m_bInitiallyProtected) + { + pDoc->SetModifiedFlag(FALSE); + } + else + { + pDoc->SetModifiedFlag(); + } +} + +void CDIBManagerView::OnDestroy() +{ + COXZoomView::OnDestroy(); + + // TODO: Add your message handler code here + CDIBManagerApp* pApp=(CDIBManagerApp*)AfxGetApp(); + + // notify roll-up ZoomLevel Dialog that + // current view is about to be destroyed + CScaleRollupDlg *pScaleRollupDlg=pApp->GetScaleRollupDlg(); + pScaleRollupDlg->ReleaseRecipient(this); +} + +void CDIBManagerView::OnSetFocus(CWnd* pOldWnd) +{ + COXZoomView::OnSetFocus(pOldWnd); + + // TODO: Add your message handler code here + + // as far as we get focus + // simply set our view as message recipient + CScaleRollupDlg *pScaleRollupDlg=((CDIBManagerApp *)AfxGetApp())->GetScaleRollupDlg(); + if(!pScaleRollupDlg->IsOwner( this )) + { + pScaleRollupDlg->SetRecipient(this); + + NotifyZoomChanged(); + } + + DoRealizePalette(TRUE,TRUE); +} + +BOOL CDIBManagerView::OnRollupMessage(CWnd* pWndRollup,UINT message,UINT rollupID) +{ + // get messages from roll-up ZoomLevel Dialog + CDIBManagerApp* pApp=(CDIBManagerApp*)AfxGetApp(); + CMainFrame* pMainFrame=(CMainFrame*)pApp->m_pMainWnd; + + CScaleRollupDlg *pScaleRollupDlg=pApp->GetScaleRollupDlg(); + if(pScaleRollupDlg->GetRollupID() == rollupID) + { + switch(message) + { + // apply set zoom level to the current image + case ID_APPLY: + { + SetZoomLevel(((CScaleRollupDlg*)pWndRollup)->m_nZoomLevel); + break; + } + case IDCANCEL: + { + pScaleRollupDlg->DestroyWindow(); + pMainFrame->m_bShowZoomLevelDlg=FALSE; + } + default: + { + TRACE2("Unhandled message %d from Rollup %d\n",message,rollupID); + break; + } + } + } + // messages from other rollups are being ignored!!! + return TRUE; +} + +void CDIBManagerView::OnViewZoomLevelDlg() +{ + // TODO: Add your command handler code here + + // open roll-up ZoomLevel Dialog + CDIBManagerApp* pApp=(CDIBManagerApp*)AfxGetApp(); + CMainFrame* pMainFrame=(CMainFrame*)pApp->m_pMainWnd; + CDIBManagerDoc* pDoc=GetDocument(); + + pMainFrame->m_bShowZoomLevelDlg=!pMainFrame->m_bShowZoomLevelDlg; + CScaleRollupDlg *pScaleRollupDlg=pApp->GetScaleRollupDlg(); + if(pMainFrame->m_bShowZoomLevelDlg) + { + TCHAR szTitle[20]; + UTBStr::tcscpy(szTitle,20, _T("Zoom Level")); + + // set initial values of dialog vars + pScaleRollupDlg->m_nZoomLevel=GetZoomLevel(); + CSize sizeDIB=pDoc->m_dib.GetSize(); + pScaleRollupDlg->m_nOrigWidth=sizeDIB.cx; + pScaleRollupDlg->m_nOrigHeight=sizeDIB.cy; + + // create roll-up + pScaleRollupDlg->CreateRollUp(this, 6458, szTitle); + pScaleRollupDlg->ShowWindow(SW_SHOWNORMAL); + + pScaleRollupDlg->SendMessage(IDM_OX_RU_ARRANGE); + + SetFocus(); + } + else + { + pScaleRollupDlg->DestroyWindow(); + } +} + +void CDIBManagerView::NotifyZoomChanged() +{ + CDIBManagerApp* pApp=(CDIBManagerApp*)AfxGetApp(); + CMainFrame* pMainFrame=(CMainFrame*)pApp->m_pMainWnd; + CDIBManagerDoc* pDoc=GetDocument(); + + CScaleRollupDlg *pScaleRollupDlg=pApp->GetScaleRollupDlg(); + + // if roll-up ZoomLevel Dialog is active then + // set values of dialog vars + if(pMainFrame->m_bShowZoomLevelDlg) + { + CSize sizeDIB=pDoc->m_dib.GetSize(); + pScaleRollupDlg->m_nOrigHeight=sizeDIB.cx; + pScaleRollupDlg->m_nOrigWidth=sizeDIB.cy; + + pScaleRollupDlg->m_nZoomLevel=GetZoomLevel(); + pScaleRollupDlg->ShowControls(); + + // notify roll-up to change values + pScaleRollupDlg->RUpdateData(FALSE); + } +} + +// next 3 functions +// use to display 256 and higher images when +// current palette is 8-bit color or less +BOOL CDIBManagerView::OnQueryNewPalette() +{ + return DoRealizePalette(TRUE,TRUE)>0 ? TRUE : FALSE; +} + +void CDIBManagerView::OnPaletteChanged(CWnd* pFocusWnd) +{ + if(pFocusWnd!=this) + { + DoRealizePalette(TRUE,FALSE); + } +} + +UINT CDIBManagerView::DoRealizePalette(BOOL bRedraw, BOOL bForeground) +{ + UINT nCount=0; + CDIBManagerApp* pApp=(CDIBManagerApp*)AfxGetApp(); + // applicable only when current palette is 8-bit or less + if(pApp->m_nColors<=8) + { + CDIBManagerDoc* pDoc=GetDocument(); + // retrieve image palette + CPalette* pPalette=pDoc->GetDIBPalette(); + if(pPalette!=NULL) + { + CClientDC dc(this); + CPalette* pOldPalette=dc.SelectPalette(pPalette,!bForeground); + nCount=dc.RealizePalette(); + if(nCount>0) + { + // if image pallete is selected then + // redraw image if needed + if(bRedraw) + { + Invalidate(); + } + dc.SelectPalette(pOldPalette,!bForeground); + } + } + } + + return nCount; +} + + +void CDIBManagerView::OnViewImageInfo() +{ + // TODO: Add your command handler code here + CImageInfoDlg dlgInfo; + dlgInfo.pDoc=GetDocument(); + dlgInfo.DoModal(); +} + +void CDIBManagerView::OnViewResampleImage() +{ + // TODO: Add your command handler code here + CDIBManagerDoc* pDoc=GetDocument(); + + CResampleImageDlg dlgResample; + + // we provide convertion only from 24-bit image to + // 8-bit image by means of dithering + dlgResample.m_bCanConvert=pDoc->m_dib.GetNumBitsPerPixel()==24 ? TRUE : FALSE; + // we can resize only 24 and 8 bit DIB images + dlgResample.m_bCanResize=pDoc->m_dib.GetNumBitsPerPixel()==24 || + pDoc->m_dib.GetNumBitsPerPixel()==8 ? TRUE : FALSE; + dlgResample.m_nCurrentZoomLevel=GetZoomLevel(); + + dlgResample.m_bConvertTo=FALSE; + dlgResample.m_bMatchZoomLevel=FALSE; + dlgResample.m_bMaintainRatio=TRUE; + + CSize sizeDIB=pDoc->m_dib.GetSize(); + dlgResample.m_sHeightOrig.Format(_T("%u"),sizeDIB.cy); + dlgResample.m_sWidthOrig.Format(_T("%u"),sizeDIB.cx); + dlgResample.m_nWidthPixels=sizeDIB.cx; + dlgResample.m_nHeightPixels=sizeDIB.cy; + dlgResample.m_nOrigWidth=sizeDIB.cx; + dlgResample.m_nOrigHeight=sizeDIB.cy; + + dlgResample.m_nWidthPercents=100; + dlgResample.m_nHeightPercents=100; + + if(dlgResample.DoModal()==IDOK) + { + BOOL bChanged=FALSE; + if(dlgResample.m_bCanConvert && dlgResample.m_bConvertTo) + { + // try to dither the image + if(!pDoc->m_dib.HalfToneDitherDIB()) + { + AfxMessageBox(_T("Cannot convert image!")); + } + else + { + bChanged=TRUE; + } + } + if(dlgResample.m_bCanResize &&(sizeDIB.cx!=(int)dlgResample.m_nWidthPixels || + sizeDIB.cy!=(int)dlgResample.m_nHeightPixels)) + { + // try to resize + if(!pDoc->m_dib.ResizeDIB(dlgResample.m_nWidthPixels, + dlgResample.m_nHeightPixels)) + { + AfxMessageBox(_T("Cannot resize image!")); + } + else + { + bChanged=TRUE; + } + } + if(bChanged) + { + // if we changed image we have to mark it as dirty, + pDoc->SetModifiedFlag(TRUE); + // set new ScrollSize of view window + CRect rectDIB=CRect(0,0,dlgResample.m_nWidthPixels, + dlgResample.m_nHeightPixels); + SetDeviceScrollSizesRelative(MM_TEXT,rectDIB); + // redraw image + Invalidate(); + } + } +} + +BOOL CDIBManagerView::OnScroll(UINT nScrollCode, UINT nPos, BOOL bDoScroll) +{ + // TODO: Add your specialized code here and/or call the base class + + if(IsSmoothScrolling()) + { + // + // First handle left/right scroll messages. If scrolling by page, + // scroll m_nPageSlices times rather than 1. If scrolling by line, + // scroll m_nLineSlices times. + // + BYTE nCode=LOBYTE(nScrollCode); + + if((nCode==SB_PAGELEFT) ||(nCode==SB_PAGERIGHT) || + (nCode==SB_LINELEFT) ||(nCode==SB_LINERIGHT)) + { + int nCount=0; + int nInc=0; + int nFinalInc=0; + int nLineCode=0; + + switch(nCode) + { + case SB_PAGELEFT: + { + nLineCode=SB_LINELEFT; + nInc=m_pageDev.cx/m_nPageSlices; + nFinalInc=m_pageDev.cx%m_nPageSlices; + nCount=m_nPageSlices; + break; + } + case SB_PAGERIGHT: + { + nLineCode=SB_LINERIGHT; + nInc=m_pageDev.cx/m_nPageSlices; + nFinalInc=m_pageDev.cx%m_nPageSlices; + nCount=m_nPageSlices; + break; + } + + case SB_LINELEFT: + { + nLineCode=SB_LINELEFT; + nInc=m_lineDev.cx/m_nLineSlices; + nFinalInc=m_lineDev.cx%m_nLineSlices; + nCount=m_nLineSlices; + break; + } + + case SB_LINERIGHT: + { + nLineCode=SB_LINERIGHT; + nInc=m_lineDev.cx/m_nLineSlices; + nFinalInc=m_lineDev.cx%m_nLineSlices; + nCount=m_nLineSlices; + break; + } + } + + int nOldLineSize=m_lineDev.cx; + BOOL bResult=FALSE; + DWORD dwTime=0; + + while(nCount--) + { + DWORD dwCurrentTime=::GetCurrentTime(); + DWORD dwElapsedTime=dwCurrentTime-dwTime; + if(dwElapsedTime= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXZoomVw.h" // Should be REMARKED IF USING OXClass.h in stdafx.h +//#include "OXScrollTipOwner.h" + +class CDIBManagerView : public COXZoomView +{ +protected: // create from serialization only + CDIBManagerView(); + DECLARE_DYNCREATE(CDIBManagerView) + +// Attributes +public: + CDIBManagerDoc* GetDocument(); + +// Operations +public: + void NormalToScaled(CRect* pRect); + void NormalToScaled(CPoint* pPoint); + void ScaledToNormal(CRect* pRect); + void ScaledToNormal(CPoint* pPoint); + void NormalToPrinted(CDC* pDC, CRect* pRect); + void NormalToPrinted(CDC* pDC, CPoint* pPoint); + void PrintedToNormal(CDC* pDC, CRect* pRect); + void PrintedToNormal(CDC* pDC, CPoint* pPoint); + + void SetSmoothScrolling(BOOL bSmoothScrolling=TRUE) { + m_bSmoothScrolling=bSmoothScrolling; } + + BOOL IsSmoothScrolling() { return m_bSmoothScrolling; } + + void SetSmoothEnvironment(int nLineSlices=12, int nPageSlices=4, + DWORD dwWaitingTime=10) + { + m_nLineSlices=nLineSlices; + m_nPageSlices=nPageSlices; + m_dwWaitingTime=dwWaitingTime; + } + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CDIBManagerView) + public: + virtual void OnDraw(CDC* pDC); // overridden to draw this view + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + virtual void OnInitialUpdate(); + virtual BOOL OnScroll(UINT nScrollCode, UINT nPos, BOOL bDoScroll = TRUE); + protected: + virtual BOOL OnPreparePrinting(CPrintInfo* pInfo); + virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo); + virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo); + virtual void OnPrint(CDC* pDC, CPrintInfo* pInfo); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CDIBManagerView(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + + BOOL m_bSmoothScrolling; + int m_nLineSlices; + int m_nPageSlices; + DWORD m_dwWaitingTime; + + +protected: + void NotifyZoomChanged(); + UINT DoRealizePalette(BOOL bRedraw=TRUE, BOOL bForeground=TRUE); + void PrintPage(CDC* pDC, CPrintInfo* pInfo); + BOOL DrawDIB(CDC* pDC, CRect& rectDest, CRect& rectSrc); + +// Generated message map functions +protected: + //{{AFX_MSG(CDIBManagerView) + afx_msg void OnViewZoomIn(); + afx_msg void OnUpdateViewZoomIn(CCmdUI* pCmdUI); + afx_msg void OnViewZoomOut(); + afx_msg void OnUpdateViewZoomOut(CCmdUI* pCmdUI); + afx_msg void OnViewZoomTo100(); + afx_msg void OnUpdateViewZoomTo100(CCmdUI* pCmdUI); + afx_msg void OnViewZoomToWindow(); + afx_msg void OnUpdateZoom(CCmdUI* pCmdUI); + afx_msg void OnUpdateSize(CCmdUI* pCmdUI); + afx_msg void OnUpdateParameters(CCmdUI* pCmdUI); + afx_msg void OnUpdateFileSave(CCmdUI* pCmdUI); + afx_msg void OnFileExport(); + afx_msg void OnUpdateFileProtected(CCmdUI* pCmdUI); + afx_msg void OnFileProtected(); + afx_msg void OnDestroy(); + afx_msg void OnSetFocus(CWnd* pOldWnd); + afx_msg void OnViewZoomLevelDlg(); + afx_msg BOOL OnQueryNewPalette(); + afx_msg void OnPaletteChanged(CWnd*); + afx_msg void OnViewImageInfo(); + afx_msg void OnViewResampleImage(); + //}}AFX_MSG + afx_msg BOOL OnRollupMessage(CWnd* pWndRollup,UINT message,UINT rollupID); + DECLARE_MESSAGE_MAP() +}; + +#ifndef _DEBUG // debug version in DIBManagerView.cpp +inline CDIBManagerDoc* CDIBManagerView::GetDocument() + { return (CDIBManagerDoc*)m_pDocument; } +#endif + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_DIBMANAGERVIEW_H__D2552D18_7143_11D1_A3D5_0080C83F712F__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ExportDlg.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ExportDlg.cpp new file mode 100644 index 0000000..9d5cac5 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ExportDlg.cpp @@ -0,0 +1,260 @@ +// ExportDlg.cpp : implementation file +// + +#include "stdafx.h" +#include "DIBManager.h" +#include "ExportDlg.h" + +#include "oxbmpfle.h" +#include "oxjpgfle.h" +#include "oxjpgcom.h" +#include "oxjpgdom.h" +#include "oxjpgexp.h" + +#include "path.h" +#include "dir.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CExportDlg dialog + + +CExportDlg::CExportDlg(CWnd* pParent /*=NULL*/) + : CDialog(CExportDlg::IDD, pParent), + m_cbFileName(COXHistoryCombo::TBPHorizontalRightCenter,TRUE) +{ + //{{AFX_DATA_INIT(CExportDlg) + m_bBaseline = FALSE; + m_bGrayscale = FALSE; + m_bOptimize = FALSE; + m_bProgressive = FALSE; + m_bSmooth = FALSE; + m_sFileName = _T(""); + m_nQuality = 0; + m_nSmooth = 0; + //}}AFX_DATA_INIT +} + + +void CExportDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CExportDlg) + DDX_Control(pDX, IDC_SMOOTH, m_ctlEditSmooth); + DDX_Control(pDX, IDC_QUALITY, m_ctlEditQuality); + DDX_Control(pDX, IDC_SPIN_SMOOTH, m_ctlSpinSmooth); + DDX_Control(pDX, IDC_SPIN_QUALITY, m_ctlSpinQuality); + DDX_Control(pDX, IDC_FILENAME, m_cbFileName); + DDX_Check(pDX, IDC_CHECK_BASELINE, m_bBaseline); + DDX_Check(pDX, IDC_CHECK_GRAYSCALE, m_bGrayscale); + DDX_Check(pDX, IDC_CHECK_OPTIMIZE, m_bOptimize); + DDX_Check(pDX, IDC_CHECK_PROGRESSIVE, m_bProgressive); + DDX_Check(pDX, IDC_CHECK_SMOOTH, m_bSmooth); + DDX_Text(pDX, IDC_FILENAME, m_sFileName); + DDX_Text(pDX, IDC_QUALITY, m_nQuality); + DDV_MinMaxUInt(pDX, m_nQuality, 0, 100); + DDX_Text(pDX, IDC_SMOOTH, m_nSmooth); + DDV_MinMaxUInt(pDX, m_nSmooth, 1, 100); + //}}AFX_DATA_MAP +} + + +BEGIN_MESSAGE_MAP(CExportDlg, CDialog) + //{{AFX_MSG_MAP(CExportDlg) + ON_BN_CLICKED(IDC_CHECK_PROGRESSIVE, OnCheckProgressive) + //}}AFX_MSG_MAP + ON_MESSAGE(WM_KICKIDLE, OnKickIdle) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CExportDlg message handlers + +BOOL CExportDlg::OnInitDialog() +{ + CDialog::OnInitDialog(); + + // TODO: Add extra initialization here + + // Set the COXSpinCtrl object, which is mapped to a common Spin Control. + m_ctlSpinQuality.SetBuddy(&m_ctlEditQuality); + m_ctlSpinQuality.SetRange(0,100); + m_ctlSpinQuality.SetPos(m_nQuality); + + // Set a default COXSpinCtrl method of delta value computation + // (Delta pixel = Delta value). + m_ctlSpinQuality.SetComputationMethod(OX_SPIN_DELTA_PIXEL_IS_DELTA_VALUE); + + // Set the COXSpinCtrl object, which is mapped to a common Spin Control. + m_ctlSpinSmooth.SetBuddy(&m_ctlEditSmooth); + m_ctlSpinSmooth.SetRange(1,100); + m_ctlSpinSmooth.SetPos(m_nSmooth); + + // Set a default COXSpinCtrl method of delta value computation + // (Delta pixel = Delta value). + m_ctlSpinQuality.SetComputationMethod(OX_SPIN_DELTA_PIXEL_IS_DELTA_VALUE); + + m_nQuality = 75; + m_nSmooth = 10; + CheckRadioButton(IDC_RADIO_DCT_INT,IDC_RADIO_DCT_FLOAT,IDC_RADIO_DCT_INT); + + // Use auto persistence + m_cbFileName.SetAutoPersistent(_T("History - Export")); + m_cbFileName.SetFileDialogParams(FALSE,_T("*.jpg"),NULL, + OFN_HIDEREADONLY|OFN_PATHMUSTEXIST, + _T("JPEG Images (*.jpg)|*.jpg|All Files (*.*)|*.*||")); + // set toolbar on the right with a little gap + COXHistoryCombo::EToolbarPosition eToolbarPosition=m_cbFileName.GetToolbarPosition(); + m_cbFileName.PositionToolbar(eToolbarPosition, TRUE); + // unimited number of items in combobox are could be saved + m_cbFileName.SetMaxHistoryCount(-1); + + UpdateData(FALSE); + + // show buttons depending on set properties + ShowButtons(); + + return TRUE; // return TRUE unless you set the focus to a control + // EXCEPTION: OCX Property Pages should return FALSE +} + +void CExportDlg::OnCheckProgressive() +{ + // TODO: Add your control notification handler code here + + ShowButtons(); +} + +void CExportDlg::OnOK() +{ + // TODO: Add extra validation here + + // check if typed directory exists + if(UpdateData()==0 || !CheckFileName()) + return; + + // operation of exporting from DIB to JPEG + // could be time-consuming + BeginWaitCursor(); + + // create bitmap file on the base of current DIB image + // m_tmpBMPFile we initialize when we run the export dialog + COXBMPFile BMPFile(&m_tmpBMPFile); + COXJPEGFile jpgFile(m_sFileName); + COXJPEGCompressor JCompr; + + JCompr.SetQuality(m_nQuality); + if(m_bSmooth) + { + JCompr.SetSmooth(m_nSmooth); + } + + JCompr.SetGrayScale(m_bGrayscale); + JCompr.SetBaseLine(m_bBaseline); + JCompr.SetProgressive(m_bProgressive); + JCompr.SetOptimize(m_bOptimize); + EDiscreteCosTransf DCT; + switch(GetCheckedRadioButton(IDC_RADIO_DCT_INT, + IDC_RADIO_DCT_FLOAT)) + { + case IDC_RADIO_DCT_INT: + { + DCT=DC_Int; + break; + } + case IDC_RADIO_DCT_FAST: + { + DCT=DC_FastInt; + break; + } + case IDC_RADIO_DCT_FLOAT: + { + DCT=DC_Float; + break; + } + default: + { + DCT=DC_Int; + break; + } + } + JCompr.SetDisCosTranf(DCT); + + short nReturn(1); + TCHAR ErrorBuffer[SIZE_ERROR_BUF]; + TRY + { + // the only line of code that we need to compress bitmap file to JPEG + nReturn = JCompr.DoCompress(&BMPFile, &jpgFile); + if (nReturn == 2) + AfxMessageBox(JCompr.GetWarningMessages()); + } + CATCH(COXJPEGException, e) + { + // if something went wrong then notify about it + e->GetErrorMessage(ErrorBuffer, SIZE_ERROR_BUF); + AfxMessageBox(CString("Exception : ") + ErrorBuffer); + + TRACE((LPCTSTR)ErrorBuffer); + } + END_CATCH + + EndWaitCursor(); + + if(nReturn!=0) + return; + + CDialog::OnOK(); +} + +LRESULT CExportDlg::OnKickIdle(WPARAM wParam, LPARAM lParam) +{ + // we use this function to let buttons in HistoryCombo toolbar + // to get some notification + UNUSED(wParam); + UNUSED_ALWAYS(lParam); + ASSERT_VALID(this); + ASSERT(wParam == MSGF_DIALOGBOX); + BOOL bContinueIdle = TRUE; + + // Pass on to the history combo + m_cbFileName.OnIdle(); + + return bContinueIdle; +} + +void CExportDlg::ShowButtons() +{ + // TODO: Add your control notification handler code here + + // show buttons depending on some conditions + + UpdateData(); + ctlOptimize().EnableWindow(!m_bProgressive); + if(m_bProgressive) + { + ctlOptimize().SetCheck(1); + } +} + +BOOL CExportDlg::CheckFileName() +{ + // check if typed directory exist + COXPathSpec path; + path.SetPath(m_sFileName); + COXDirSpec dir(path.GetDirectory()); + if(dir.IsEmpty() || !dir.Exists()) + { + AfxMessageBox(_T("Designated directory doesn't exist!"),MB_OK|MB_ICONEXCLAMATION); + return FALSE; + } + else + { + return TRUE; + } +} + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ExportDlg.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ExportDlg.h new file mode 100644 index 0000000..f8d527e --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ExportDlg.h @@ -0,0 +1,70 @@ +#if !defined(AFX_EXPORTDLG_H__645E3D42_7531_11D1_A3D5_0080C83F712F__INCLUDED_) +#define AFX_EXPORTDLG_H__645E3D42_7531_11D1_A3D5_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// ExportDlg.h : header file +// + +#include "OXHistoryCombo.h" +#include "OXSpinCtrl.h" + +///////////////////////////////////////////////////////////////////////////// +// CExportDlg dialog + +class CExportDlg : public CDialog +{ +// Construction +protected: + CButton& ctlOptimize() { return *(CButton*)GetDlgItem(IDC_CHECK_OPTIMIZE); } + void ShowButtons(); + BOOL CheckFileName(); + +public: + CExportDlg(CWnd* pParent = NULL); // standard constructor + +// Dialog Data + //{{AFX_DATA(CExportDlg) + enum { IDD = IDD_DIALOG_EXPORT }; + CEdit m_ctlEditSmooth; + CEdit m_ctlEditQuality; + COXSpinCtrl m_ctlSpinSmooth; + COXSpinCtrl m_ctlSpinQuality; + COXHistoryCombo m_cbFileName; + BOOL m_bBaseline; + BOOL m_bGrayscale; + BOOL m_bOptimize; + BOOL m_bProgressive; + BOOL m_bSmooth; + CString m_sFileName; + UINT m_nQuality; + UINT m_nSmooth; + //}}AFX_DATA + // we use mem file as temporarily one to export info to JPEG file + CMemFile m_tmpBMPFile; + BOOL m_bCheckFileName; + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CExportDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + // Generated message map functions + //{{AFX_MSG(CExportDlg) + afx_msg void OnCheckProgressive(); + virtual void OnOK(); + virtual BOOL OnInitDialog(); + //}}AFX_MSG + afx_msg LRESULT OnKickIdle(WPARAM wParam, LPARAM lParam); + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_EXPORTDLG_H__645E3D42_7531_11D1_A3D5_0080C83F712F__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ImageInfoDlg.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ImageInfoDlg.cpp new file mode 100644 index 0000000..d5b1d6d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ImageInfoDlg.cpp @@ -0,0 +1,138 @@ +// ImageInfoDlg.cpp : implementation file +// + +#include "stdafx.h" +#include "dibmanager.h" +#include "ImageInfoDlg.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CImageInfoDlg dialog + + +CImageInfoDlg::CImageInfoDlg(CWnd* pParent /*=NULL*/) + : CDialog(CImageInfoDlg::IDD, pParent) +{ + //{{AFX_DATA_INIT(CImageInfoDlg) + m_sFileName = _T(""); + m_sFileSize = _T(""); + m_sFileStatus = _T(""); + m_sFormat = _T(""); + m_sHeight = _T(""); + m_sSizeInMemory = _T(""); + m_sType = _T(""); + m_sWidth = _T(""); + //}}AFX_DATA_INIT +} + + +void CImageInfoDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CImageInfoDlg) + DDX_Control(pDX, IDC_FILE_STATUS, m_ctlStaticFileStatus); + DDX_Text(pDX, IDC_FILE_NAME, m_sFileName); + DDX_Text(pDX, IDC_FILE_SIZE, m_sFileSize); + DDX_Text(pDX, IDC_FILE_STATUS, m_sFileStatus); + DDX_Text(pDX, IDC_FORMAT, m_sFormat); + DDX_Text(pDX, IDC_HEIGHT, m_sHeight); + DDX_Text(pDX, IDC_SIZE_IN_MEMORY, m_sSizeInMemory); + DDX_Text(pDX, IDC_TYPE, m_sType); + DDX_Text(pDX, IDC_WIDTH, m_sWidth); + //}}AFX_DATA_MAP +} + + +BEGIN_MESSAGE_MAP(CImageInfoDlg, CDialog) + //{{AFX_MSG_MAP(CImageInfoDlg) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CImageInfoDlg message handlers + +BOOL CImageInfoDlg::OnInitDialog() +{ + CDialog::OnInitDialog(); + + // TODO: Add extra initialization here + + // get the name of current file + m_sFileName=pDoc->m_sNameFile; + + // get the length in bytes of current image on disk + DWORD dwSize=pDoc->m_dwImageSize; + // if length in bytes is less than 1 kilobyte then show it in bytes + // otherwise in kilobytes + if(dwSize<1024) + { + m_sFileSize.Format(_T("%u byte%s"),dwSize,dwSize>1 ? "s" : ""); + } + else + { + m_sFileSize.Format(_T("%u.%1u KB"),dwSize/1024,((dwSize%1024)*10)/1024); + } + + // get the length in bytes of current image in memory + DWORD dwSizeInMemory=pDoc->CalcDIBSizeInMemory(); + // if length in bytes is less than 1 kilobyte then show it in bytes + // otherwise in kilobytes + if(dwSizeInMemory<1024) + { + m_sSizeInMemory.Format(_T("%u byte%s"),dwSizeInMemory, + dwSizeInMemory>1 ? "s" : ""); + } + else + { + m_sSizeInMemory.Format(_T("%u.%1u KB"),dwSizeInMemory/1024, + ((dwSizeInMemory%1024)*10)/1024); + } + + // define if document is dirty + m_sFileStatus.Format(_T("Image has %schanged"), + pDoc->IsModified() ? _T("") : _T("not ")) ; + + // get image format + m_sFormat=pDoc->m_tf==CDIBManagerDoc::TF_DIB ? + _T("Windows Bitmap") : _T("JPEG Bitmap"); + + // get height and width in pixels + CSize sizeDIB=pDoc->m_dib.GetSize(); + m_sHeight.Format(_T("%u pixel%s"),sizeDIB.cy, sizeDIB.cy>1 ? _T("s") : _T("")); + m_sWidth.Format(_T("%u pixel%s"),sizeDIB.cx, sizeDIB.cx>1 ? _T("s") : _T("")); + + // define the number of colors used in DIB + switch(pDoc->m_dib.GetNumBitsPerPixel()) + { + case 1: + { + m_sType=_T("Black & White (1-bit)"); + break; + } + case 4: + { + m_sType=_T("16 Color (4-bit)"); + break; + } + case 8: + { + m_sType=_T("256 Color (8-bit)"); + break; + } + case 24: + { + m_sType=_T("RGB Color (24-bit)"); + break; + } + } + + UpdateData(FALSE); + + return TRUE; // return TRUE unless you set the focus to a control + // EXCEPTION: OCX Property Pages should return FALSE +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ImageInfoDlg.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ImageInfoDlg.h new file mode 100644 index 0000000..ce65662 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ImageInfoDlg.h @@ -0,0 +1,57 @@ +#if !defined(AFX_IMAGEINFODLG_H__3581B502_8ABD_11D1_A3D5_0080C83F712F__INCLUDED_) +#define AFX_IMAGEINFODLG_H__3581B502_8ABD_11D1_A3D5_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// ImageInfoDlg.h : header file +// + +#include "DIBManagerDoc.h" + +///////////////////////////////////////////////////////////////////////////// +// CImageInfoDlg dialog + +class CImageInfoDlg : public CDialog +{ +// Construction +public: + CImageInfoDlg(CWnd* pParent = NULL); // standard constructor + +// Dialog Data + //{{AFX_DATA(CImageInfoDlg) + enum { IDD = IDD_IMAGE_INFO_DIALOG }; + CStatic m_ctlStaticFileStatus; + CString m_sFileName; + CString m_sFileSize; + CString m_sFileStatus; + CString m_sFormat; + CString m_sHeight; + CString m_sSizeInMemory; + CString m_sType; + CString m_sWidth; + //}}AFX_DATA + CDIBManagerDoc* pDoc; + + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CImageInfoDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + + // Generated message map functions + //{{AFX_MSG(CImageInfoDlg) + virtual BOOL OnInitDialog(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_IMAGEINFODLG_H__3581B502_8ABD_11D1_A3D5_0080C83F712F__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ImportDlg.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ImportDlg.cpp new file mode 100644 index 0000000..3dcafc4 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ImportDlg.cpp @@ -0,0 +1,337 @@ +// ImportDlg.cpp : implementation file +// + +#include "stdafx.h" +#include "dibmanager.h" +#include "MainFrm.h" +#include "ImportDlg.h" + +#include "oxbmpfle.h" +#include "oxjpgfle.h" +#include "oxjpgcom.h" +#include "oxjpgdom.h" +#include "oxjpgexp.h" + +#include "path.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CImportDlg dialog + + +CImportDlg::CImportDlg(CWnd* pParent /*=NULL*/) + : CDialog(CImportDlg::IDD, pParent), + m_cbFileName(COXHistoryCombo::TBPHorizontalRightCenter,TRUE) +{ + //{{AFX_DATA_INIT(CImportDlg) + m_bColors = FALSE; + m_bGrayscale = FALSE; + m_bNoSmooth = FALSE; + m_bOnePass = FALSE; + m_sFileName = _T(""); + m_nColors = 0; + //}}AFX_DATA_INIT +} + + +void CImportDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CImportDlg) + DDX_Control(pDX, IDC_COLORS, m_ctlEditColors); + DDX_Control(pDX, IDC_SPIN_COLORS, m_ctlSpinColors); + DDX_Control(pDX, IDC_FILENAME, m_cbFileName); + DDX_Check(pDX, IDC_CHECK_COLORS, m_bColors); + DDX_Check(pDX, IDC_CHECK_GRAYSCALE, m_bGrayscale); + DDX_Check(pDX, IDC_CHECK_NO_SMOOTH, m_bNoSmooth); + DDX_Check(pDX, IDC_CHECK_ONE_PASS, m_bOnePass); + DDX_Text(pDX, IDC_FILENAME, m_sFileName); + DDX_Text(pDX, IDC_COLORS, m_nColors); + DDV_MinMaxInt(pDX, m_nColors, 8, 256); + //}}AFX_DATA_MAP +} + + +BEGIN_MESSAGE_MAP(CImportDlg, CDialog) + //{{AFX_MSG_MAP(CImportDlg) + ON_BN_CLICKED(IDC_CHECK_ONE_PASS, OnCheckOnePass) + ON_BN_CLICKED(IDC_CHECK_COLORS, OnCheckColors) + ON_BN_CLICKED(IDC_CHECK_GRAYSCALE, OnCheckGrayscale) + //}}AFX_MSG_MAP + ON_MESSAGE(WM_KICKIDLE, OnKickIdle) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CImportDlg message handlers + +BOOL CImportDlg::OnInitDialog() +{ + CDialog::OnInitDialog(); + + // TODO: Add extra initialization here + m_nColors = 256; + CheckRadioButton(IDC_RADIO_DM_FLOYD_STEIN,IDC_RADIO_DM_NONE, + IDC_RADIO_DM_FLOYD_STEIN); + CheckRadioButton(IDC_RADIO_ONE_TO_ONE,IDC_RADIO_ONE_TO_EIGHT, + IDC_RADIO_ONE_TO_ONE); + CheckRadioButton(IDC_RADIO_ONE_TO_ONE,IDC_RADIO_ONE_TO_EIGHT, + IDC_RADIO_ONE_TO_ONE); + CheckRadioButton(IDC_RADIO_DCT_INT,IDC_RADIO_DCT_FLOAT, + IDC_RADIO_DCT_INT); + + // Set the COXSpinCtrl object, which is mapped to a common Spin Control. + m_ctlSpinColors.SetBuddy(&m_ctlEditColors); + m_ctlSpinColors.SetRange(8,256); + m_ctlSpinColors.SetPos(m_nColors); + + // Set a default COXSpinCtrl method of delta value computation + // (Delta pixel = Delta value). + m_ctlSpinColors.SetComputationMethod(OX_SPIN_DELTA_PIXEL_IS_DELTA_VALUE); + + // Use auto persistence + m_cbFileName.SetAutoPersistent(_T("History - Import")); + m_cbFileName.SetFileDialogParams(TRUE,_T("*.jpg"),NULL, + OFN_HIDEREADONLY|OFN_PATHMUSTEXIST, + _T("JPEG Images (*.jpg)|*.jpg|All Files (*.*)|*.*||")); + // set toolbar on the right with a little gap + COXHistoryCombo::EToolbarPosition eToolbarPosition=m_cbFileName.GetToolbarPosition(); + // unimited number of items in combobox are could be saved + m_cbFileName.PositionToolbar(eToolbarPosition, TRUE); + m_cbFileName.SetMaxHistoryCount(-1); + + UpdateData(FALSE); + + ShowButtons(); + + return TRUE; // return TRUE unless you set the focus to a control + // EXCEPTION: OCX Property Pages should return FALSE +} + +void CImportDlg::OnOK() +{ + // TODO: Add extra validation here + + if(UpdateData()==0 || !CheckFileName()) + return; + + // operation of exporting JPEG to DIB + // could be time-consuming + BeginWaitCursor(); + + COXBMPFile BMPFile(&m_tmpBMPFile); + COXJPEGFile jpgFile(m_sFileName); + COXJPEGDecompressor JDecompr; + + JDecompr.SetGrayScale(m_bGrayscale); + JDecompr.SetNoSmooth(m_bNoSmooth); + JDecompr.SetOnePass(m_bOnePass); + + EDiscreteCosTransf DCT; + switch(GetCheckedRadioButton(IDC_RADIO_DCT_INT, + IDC_RADIO_DCT_FLOAT)) + { + case IDC_RADIO_DCT_INT: + { + DCT=DC_Int; + break; + } + case IDC_RADIO_DCT_FAST: + { + DCT=DC_FastInt; + break; + } + case IDC_RADIO_DCT_FLOAT: + { + DCT=DC_Float; + break; + } + default: + { + DCT=DC_Int; + break; + } + } + JDecompr.SetDisCosTranf(DCT); + + EDitherMethod DM; + switch(GetCheckedRadioButton(IDC_RADIO_DM_FLOYD_STEIN,IDC_RADIO_DM_NONE)) + { + case IDC_RADIO_DM_FLOYD_STEIN: + { + DM=DM_FloydStein; + break; + } + case IDC_RADIO_DM_ORDERED: + { + DM=DM_Ordered; + break; + } + case IDC_RADIO_DM_NONE: + { + DM=DM_None; + break; + } + default: + { + DM=DM_FloydStein; + break; + } + } + JDecompr.SetDitherMethod(DM); + + EDecompScale DS; + switch(GetCheckedRadioButton(IDC_RADIO_ONE_TO_ONE,IDC_RADIO_ONE_TO_EIGHT)) + { + case IDC_RADIO_ONE_TO_ONE: + { + DS=DS_OneOne; + break; + } + case IDC_RADIO_ONE_TO_TWO: + { + DS=DS_OneHalf; + break; + } + case IDC_RADIO_ONE_TO_FOUR: + { + DS=DS_OneFourth; + break; + } + case IDC_RADIO_ONE_TO_EIGHT: + { + DS=DS_OneEight; + break; + } + default: + { + DS=DS_OneOne; + break; + } + } + JDecompr.SetScale(DS); + + if(m_bColors) + { + JDecompr.SetColors(m_nColors); + } + + short nReturn(1); + TCHAR ErrorBuffer[SIZE_ERROR_BUF]; + TRY + { + // the only line of code that we need to decompress JPEG to bitmap file + nReturn = JDecompr.DoDecompress(&jpgFile, &BMPFile); + if (nReturn == 2) + AfxMessageBox(JDecompr.GetWarningMessages()); + } + CATCH(COXJPEGException, e) + { + // if something went wrong then notify about it + e->GetErrorMessage(ErrorBuffer, SIZE_ERROR_BUF); + AfxMessageBox(CString("Exception : ") + ErrorBuffer); + TRACE((LPCTSTR)ErrorBuffer); + } + END_CATCH + + EndWaitCursor(); + + if(nReturn!=0) + return; + + CDialog::OnOK(); +} + +void CImportDlg::OnCheckOnePass() +{ + // TODO: Add your control notification handler code here + + ShowButtons(); +} + +void CImportDlg::OnCheckColors() +{ + // TODO: Add your control notification handler code here + + ShowButtons(); +} + +void CImportDlg::OnCheckGrayscale() +{ + // TODO: Add your control notification handler code here + + ShowButtons(); +} + +LRESULT CImportDlg::OnKickIdle(WPARAM wParam, LPARAM lParam) +{ + // we use this function to let buttons in HistoryCombo toolbar + // to get some notification + UNUSED(wParam); + UNUSED_ALWAYS(lParam); + + ASSERT_VALID(this); + ASSERT(wParam == MSGF_DIALOGBOX); + BOOL bContinueIdle = TRUE; + + // Pass on to the history combo + m_cbFileName.OnIdle(); + + return bContinueIdle; +} + +void CImportDlg::ShowButtons() +{ + // show buttons depending on some conditions + + UpdateData(); + ctlOnePass().EnableWindow(!m_bGrayscale && m_bColors); + if(m_bGrayscale) + { + ctlOnePass().SetCheck(1); + m_bOnePass=TRUE; + } + else + { + if(!m_bColors) + { + ctlOnePass().SetCheck(0); + m_bOnePass=FALSE; + } + } + if(!m_bOnePass) + { + CheckRadioButton(IDC_RADIO_DM_FLOYD_STEIN,IDC_RADIO_DM_NONE, + IDC_RADIO_DM_NONE); + } + ctlDitherMethodFS().EnableWindow(m_bOnePass); + ctlDitherMethodOrdered().EnableWindow(m_bOnePass); + ctlDitherMethodNone().EnableWindow(m_bOnePass); +} + +BOOL CImportDlg::CheckFileName() +{ + // check if typed file already opened + CMainFrame* pMainFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd; + if(pMainFrame->CheckFileAlreadyOpened(m_sFileName,TRUE)) + { + return FALSE; + } + + // check if typed directory exist + COXPathSpec path; + path.SetPath(m_sFileName); + if(path.IsEmpty() || !path.Exists()) + { + AfxMessageBox(_T("Entered file doesn't exist!"),MB_OK|MB_ICONEXCLAMATION); + return FALSE; + } + else + { + return TRUE; + } +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ImportDlg.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ImportDlg.h new file mode 100644 index 0000000..a2db4ce --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ImportDlg.h @@ -0,0 +1,76 @@ +#if !defined(AFX_IMPORTDLG_H__97965B42_754D_11D1_A3D5_0080C83F712F__INCLUDED_) +#define AFX_IMPORTDLG_H__97965B42_754D_11D1_A3D5_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// ImportDlg.h : header file +// + +#include "OXHistoryCombo.h" +#include "OXSpinCtrl.h" + +///////////////////////////////////////////////////////////////////////////// +// CImportDlg dialog + +class CImportDlg : public CDialog +{ +protected: + CButton& ctlOnePass() { + return *(CButton*)GetDlgItem(IDC_CHECK_ONE_PASS); } + CButton& ctlDitherMethodFS() { + return *(CButton*)GetDlgItem(IDC_RADIO_DM_FLOYD_STEIN); } + CButton& ctlDitherMethodOrdered() { + return *(CButton*)GetDlgItem(IDC_RADIO_DM_ORDERED); } + CButton& ctlDitherMethodNone() { + return *(CButton*)GetDlgItem(IDC_RADIO_DM_NONE); } + void ShowButtons(); + BOOL CheckFileName(); + +// Construction +public: + CImportDlg(CWnd* pParent = NULL); // standard constructor + +// Dialog Data + //{{AFX_DATA(CImportDlg) + enum { IDD = IDD_DIALOG_IMPORT }; + CEdit m_ctlEditColors; + COXSpinCtrl m_ctlSpinColors; + COXHistoryCombo m_cbFileName; + BOOL m_bColors; + BOOL m_bGrayscale; + BOOL m_bNoSmooth; + BOOL m_bOnePass; + CString m_sFileName; + int m_nColors; + //}}AFX_DATA + // we use mem file as temporarily one in which we import info from JPEG + CMemFile m_tmpBMPFile; + + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CImportDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + + // Generated message map functions + //{{AFX_MSG(CImportDlg) + virtual void OnOK(); + afx_msg void OnCheckOnePass(); + afx_msg void OnCheckColors(); + afx_msg void OnCheckGrayscale(); + virtual BOOL OnInitDialog(); + //}}AFX_MSG + afx_msg LRESULT OnKickIdle(WPARAM wParam, LPARAM lParam); + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_IMPORTDLG_H__97965B42_754D_11D1_A3D5_0080C83F712F__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/MainFrm.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/MainFrm.cpp new file mode 100644 index 0000000..80aaec7 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/MainFrm.cpp @@ -0,0 +1,670 @@ +// MainFrm.cpp : implementation of the CMainFrame class +// + +#include "stdafx.h" +#include "DIBManager.h" + +#include "MainFrm.h" +#include "DIBManagerView.h" +#include "ChildFrm.h" + +#include "ImportDlg.h" +#include "ScaleRollupDlg.h" + +#include "OXDocMgr.h" +#include "OXWorkspaceState.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame + +IMPLEMENT_DYNAMIC(CMainFrame, COXMDIFrameWndSizeDock) + +BEGIN_MESSAGE_MAP(CMainFrame, COXMDIFrameWndSizeDock) + //{{AFX_MSG_MAP(CMainFrame) + ON_WM_CREATE() + ON_WM_CLOSE() + ON_WM_QUERYNEWPALETTE() + ON_WM_PALETTECHANGED() + ON_COMMAND(ID_WINDOW_SYNCHRONIZE, OnWindowSynchronize) + ON_UPDATE_COMMAND_UI(ID_WINDOW_SYNCHRONIZE, OnUpdateWindowSynchronize) + ON_UPDATE_COMMAND_UI(ID_FILE_SAVE, OnUpdateFileSave) + ON_UPDATE_COMMAND_UI(ID_INDICATOR_ZOOM, OnUpdateZoom) + ON_UPDATE_COMMAND_UI(ID_INDICATOR_SIZE, OnUpdateSize) + ON_UPDATE_COMMAND_UI(ID_INDICATOR_PARAMETERS, OnUpdateParameters) + ON_COMMAND(ID_FILE_IMPORT, OnFileImport) + ON_UPDATE_COMMAND_UI(ID_FILE_PROTECTED, OnUpdateFileProtected) + ON_UPDATE_COMMAND_UI(ID_VIEW_ZOOM_LEVEL_DLG, OnUpdateViewZoomLevelDlg) + //}}AFX_MSG_MAP + ON_ROLLUP_NOTIFICATION() + // standard on/off control bar handlers for View menu. + ON_UPDATE_COMMAND_UI(ID_TREEFILESBAR, OnUpdateControlBarMenu) + ON_COMMAND_EX(ID_TREEFILESBAR, OnBarCheck) + ON_NOTIFY(TBN_DROPDOWN, AFX_IDW_TOOLBAR, OnDropDown) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// arrays of IDs used to initialize control bars +// toolbar buttons - IDs are command buttons +static UINT BASED_CODE buttons[] = +{ + // same order as in the bitmap 'toolbar.bmp' + ID_FILE_OPEN, + ID_FILE_CLOSE, + ID_FILE_SAVE, + ID_FILE_SAVE_AS, + ID_SEPARATOR, + ID_FILE_IMPORT, + ID_FILE_EXPORT, + ID_SEPARATOR, + ID_FILE_PROTECTED, + ID_SEPARATOR, + ID_VIEW_ZOOM_IN, + ID_VIEW_ZOOM_OUT, + ID_VIEW_ZOOM_TO_WINDOW, + ID_VIEW_ZOOM_TO_100, + ID_SEPARATOR, + ID_FILE_PRINT, + ID_FILE_PRINT_PREVIEW, + ID_SEPARATOR, + ID_WINDOW_NEW, + ID_WINDOW_CASCADE, + ID_WINDOW_TILE_HORZ, + ID_WINDOW_ARRANGE, + ID_WINDOW_SYNCHRONIZE, + ID_SEPARATOR, + ID_APP_ABOUT, +}; + +static UINT BASED_CODE buttons1[] = +{ + ID_VIEW_ZOOM_IN, + ID_SEPARATOR, + ID_VIEW_ZOOM_OUT, + ID_SEPARATOR, + ID_VIEW_ZOOM_TO_WINDOW, + ID_SEPARATOR, + ID_VIEW_ZOOM_TO_100, +}; + +static UINT BASED_CODE allbuttons[] = +{ + // same order as in the bitmap 'toolbar.bmp' + ID_FILE_OPEN, + ID_FILE_CLOSE, + ID_FILE_SAVE, + ID_FILE_SAVE_AS, + ID_FILE_IMPORT, + ID_FILE_EXPORT, + ID_FILE_PROTECTED, + ID_VIEW_ZOOM_IN, + ID_VIEW_ZOOM_OUT, + ID_VIEW_ZOOM_TO_WINDOW, + ID_VIEW_ZOOM_TO_100, + ID_FILE_PRINT, + ID_FILE_PRINT_PREVIEW, + ID_WINDOW_NEW, + ID_WINDOW_CASCADE, + ID_WINDOW_TILE_HORZ, + ID_WINDOW_ARRANGE, + ID_WINDOW_SYNCHRONIZE, + ID_APP_ABOUT, +}; + +static UINT indicators[] = +{ + ID_SEPARATOR, // status line indicator + ID_INDICATOR_PROGRESS, + ID_INDICATOR_SIZE, + ID_INDICATOR_PARAMETERS, + ID_INDICATOR_ZOOM, +}; + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame construction/destruction + +CMainFrame::CMainFrame() +{ + // TODO: add member initialization code here + m_pShowProgress=NULL; + m_bShowZoomLevelDlg=FALSE; +} + +CMainFrame::~CMainFrame() +{ + if(m_pShowProgress!=NULL) + delete m_pShowProgress; + + // if roll-up ZoomLevel Dialog is active then delete it + CScaleRollupDlg *pScaleRollupDlg=((CDIBManagerApp*)AfxGetApp())->GetScaleRollupDlg(); + if(pScaleRollupDlg!=NULL) + delete pScaleRollupDlg; + pScaleRollupDlg=NULL; +} + +int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) +{ + if (COXMDIFrameWndSizeDock::OnCreate(lpCreateStruct) == -1) + return -1; + + // Install caption painter + m_Caption.Attach(this); + COXCaptionInfo* pCI=m_Caption.GetCaptionInfo(TRUE); + pCI->SetBackgroundColor(RGB(128,255,255)); + pCI=m_Caption.GetCaptionInfo(FALSE); + pCI->SetBackgroundColor(RGB(255,255,128)); + SendMessage(WM_NCPAINT); + + // Create cool bar + // create toolbar + if (!m_wndToolBar.Create(this, WS_CHILD | WS_VISIBLE | CBRS_TOP) || + !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) + { + TRACE0("Failed to create toolbar\n"); + return -1; // fail to create + } + // This function specifies the command ID's of the button images in the bitmap. + // The following SetButtons() then specifies which buttons are actually present + m_wndToolBar.SetBitmapIds(allbuttons, sizeof(allbuttons)/sizeof(UINT)); + + m_wndToolBar.IniSizes(CSize(16,16)); + m_wndToolBar.UpdateSizes(); + m_wndToolBar.SetHotImageList(m_wndToolBar.AddImageList(IDR_MAINFRAME_HOT)); + // TODO: Remove this if you don't want tool tips or a resizeable toolbar + m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() | + CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC); + + m_wndToolBar.SetButtonStyle(0,m_wndToolBar.GetButtonStyle(0)|TBSTYLE_DROPDOWN); + m_wndToolBar.SetDropDownArrow(TRUE); + + m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); + + + + // create standard statusbar? + // Wrong! This is our COXStatusBar object + if (!m_wndStatusBar.Create(this) || + !m_wndStatusBar.SetIndicators(indicators, + sizeof(indicators)/sizeof(UINT))) + { + TRACE0("Failed to create status bar\n"); + return -1; // fail to create + } + + // set style of second pane in statusbar as pane with progressbar + UINT nID, nStyle; + int cxWidth; + m_wndStatusBar.GetPaneInfo( 1, nID, nStyle, cxWidth); + nStyle |= SBPS_PERCENT; + m_wndStatusBar.SetPaneInfo( 1, nID, nStyle, 100); + + ShowWindow(SW_SHOW); + if (!m_wndStatusBar.SetUpBar(1, TRUE, FALSE)) + return -1; + + // instantiate an object to show progress in specified pane + // (in this case pane=1) + m_pShowProgress=new CShowProgress(this,1); + + EnableDocking(CBRS_ALIGN_ANY); + + // TODO: Delete these three lines if you don't want the toolbar to + // be dockable + DockControlBar(&m_wndToolBar); +// DockControlBar(&m_wndToolBar1); +// DockControlBar(&m_wndMenuBar); + + // create dockable TreeFilesBar dialog to show info about opened files + // ad ID use the same variable as in menu that we use to Show/Hide dialog + m_TreeFilesBar.SetSizeDockStyle(SZBARF_STDMOUSECLICKS | SZBARF_DLGAUTOSIZE); + if (!m_TreeFilesBar.Create(this, (UINT)IDD_DIALOG_TREE_FILES, CBRS_LEFT, + ID_TREEFILESBAR)) + { + TRACE0("Failed to create TreeFiles bar\n"); + return -1; + } + m_TreeFilesBar.EnableDocking(CBRS_ALIGN_ANY); + DockControlBar(&m_TreeFilesBar); + + RecalcLayout(); + + // Let the menu organizer fix our menus + Organizer.AttachFrameWnd(this); + // use button from toolbar with corresponding items in menu + Organizer.AutoSetMenuImage(); + // set buttons + Organizer.SetMenuBitmap(ID_VIEW_TOOLBAR,IDB_CHECK); + Organizer.SetMenuBitmap(ID_VIEW_STATUS_BAR,IDB_CHECK); + Organizer.SetMenuBitmap(ID_VIEW_TREE_BAR,IDB_CHECK); + Organizer.SetMenuBitmap(ID_VIEW_ZOOM_LEVEL_DLG,IDB_CHECK); + Organizer.SetMenuBitmap(ID_TREEFILESBAR,IDB_CHECK); + + // get the number of colors that can be used on that display + // if it is <=256 than we have to dither DIB image before rendering to screen + GetNumColors(); + + // create the new roll_up ZoomLevel Dialog + ((CDIBManagerApp*)AfxGetApp())->GetScaleRollupDlg()=new CScaleRollupDlg(this); + + // hook the frame window in order to display tab control in client area + VERIFY(m_MTIClientWnd.Attach(this)); + + return 0; +} + +BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) +{ + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + cs.lpszClass = AfxRegisterWndClass(CS_DBLCLKS,NULL,NULL, + AfxGetApp()->LoadIcon(IDR_MAINFRAME)); + ASSERT(cs.lpszClass); + + return COXMDIFrameWndSizeDock::PreCreateWindow(cs); +} + +BOOL CMainFrame::OnQueryNewPalette() +{ + CView* pView=GetActiveFrame()->GetActiveView(); + if(pView) + pView->SendMessage(WM_QUERYNEWPALETTE); + return FALSE; +} + +void CMainFrame::OnPaletteChanged(CWnd* pFocusWnd) +{ + UNREFERENCED_PARAMETER(pFocusWnd); + const MSG& msg=AfxGetThreadState()->m_lastSentMsg; + SendMessageToDescendants(WM_PALETTECHANGED, msg.wParam, msg.lParam); +} + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame diagnostics + +#ifdef _DEBUG +void CMainFrame::AssertValid() const +{ + COXMDIFrameWndSizeDock::AssertValid(); +} + +void CMainFrame::Dump(CDumpContext& dc) const +{ + COXMDIFrameWndSizeDock::Dump(dc); +} + +#endif //_DEBUG + + +void CMainFrame::OnWindowSynchronize() +{ + // TODO: Add your command handler code here + + // synchronize current active window and + // element selected in TreeFilesBar + m_TreeFilesBar.SetActiveWindowInTree(GetActiveFrame()); +} + +void CMainFrame::OnUpdateWindowSynchronize(CCmdUI* pCmdUI) +{ + // TODO: Add your command update UI handler code here + + pCmdUI->Enable(GetActiveFrame()!=this); +} + +void CMainFrame::OnUpdateFileSave(CCmdUI* pCmdUI) +{ + // TODO: Add your command update UI handler code here + pCmdUI->Enable(FALSE); +} + +void CMainFrame::OnUpdateZoom(CCmdUI* pCmdUI) +{ + CString string=""; + pCmdUI->Enable(TRUE); + pCmdUI->SetText(string); +} + +void CMainFrame::OnUpdateSize(CCmdUI* pCmdUI) +{ + CString string=""; + pCmdUI->Enable(TRUE); + pCmdUI->SetText(string); +} + +void CMainFrame::OnUpdateParameters(CCmdUI* pCmdUI) +{ + CString string=""; + pCmdUI->Enable(TRUE); + pCmdUI->SetText(string); +} + +void CMainFrame::OnFileImport() +{ + // TODO: Add your command handler code here + + // import JPEG file + CImportDlg importDlg; + if(importDlg.DoModal()==IDOK) + { + // use our own function to instantiate new Document object + // and corresponding classes + CreateDocumentFromOpenedFile(&importDlg.m_tmpBMPFile,importDlg.m_sFileName); + } +} + + +void CMainFrame::CreateDocumentFromOpenedFile(CString sFileName, + CDIBManagerDoc::TypeFile tf) +{ + CDIBManagerApp* pApp=(CDIBManagerApp*)AfxGetApp(); + + // check if we already opened the file + if(CheckFileAlreadyOpened(sFileName,TRUE)) + { + return; + } + + CFile m_file; + BOOL bSuccess=FALSE; + // check if we can open file on Read + TRY + { + bSuccess=m_file.Open(sFileName,CFile::modeRead); + } + CATCH(CFileException, e) + { + TCHAR szCause[255]; + CString strFormatted; + e->GetErrorMessage(szCause, 255); + strFormatted = _T("CDIBManagerDoc::OpenDocument:exception: "); + strFormatted += szCause; + TRACE(strFormatted); + + bSuccess=FALSE; + } + END_CATCH + + if(!bSuccess) + { + // send notification to Application object + // if errors occurs during loading workspace then + // application has an opportunity to hide and destroy splash window + pApp->ErrorNotify(_T("Cannot open file!")); + return; + } + + CreateDocumentFromOpenedFile(&m_file,sFileName,tf); +} + +void CMainFrame::CreateDocumentFromOpenedFile(CFile* pFile, CString sFileName, + CDIBManagerDoc::TypeFile tf) +{ + CDIBManagerDoc* pDocument=NULL; + CDIBManagerApp* pApp=(CDIBManagerApp*)AfxGetApp(); + // our own DocManager + // we use him to let multiselection in BitmapPreview Dialog + // as far as we have only one DocTemplate we simplified things + CDocTemplate* pTemplate=NULL; + POSITION posTemplate=pApp->GetFirstDocTemplatePosition(); + if(posTemplate!=NULL) + { + pTemplate=pApp->GetNextDocTemplate(posTemplate); + } + ASSERT_KINDOF(CDocTemplate, pTemplate); + + // create new document + pDocument=(CDIBManagerDoc*)pTemplate->CreateNewDocument(); + if (pDocument == NULL) + { + TRACE0("CDocTemplate::CreateNewDocument returned NULL.\n"); + AfxMessageBox(AFX_IDP_FAILED_TO_CREATE_DOC); + return; + } + + BOOL bAutoDelete=pDocument->m_bAutoDelete; + pDocument->m_bAutoDelete=FALSE; // don't destroy if something goes wrong + // create new frame for document + CFrameWnd* pFrame=pTemplate->CreateNewFrame(pDocument, NULL); + pDocument->m_bAutoDelete=bAutoDelete; + if (pFrame==NULL) + { + AfxMessageBox(AFX_IDP_FAILED_TO_CREATE_DOC); + delete pDocument; // explicit delete on error + return ; + } + ASSERT_VALID(pFrame); + + CWaitCursor wait; + if(!pDocument->OpenDocument(pFile,sFileName,tf)) + { + // if we didn't manage to create new document + // but already created a window for it then + // remove info from TreeFilesBar + m_TreeFilesBar.RemoveWindowFromTree(pFrame); + delete pDocument; // explicit delete on error + delete pFrame; // explicit delete on error + return; + } + + pDocument->SetPathName(pDocument->m_sNameFile,FALSE); + + pTemplate->InitialUpdateFrame(pFrame,pDocument,TRUE); +} + +BOOL CMainFrame::CheckFileAlreadyOpened(CString sFileName, BOOL bNotify) +{ + // check if file already opened + BOOL bOpened=FALSE; + + // get DocTemplate + CDIBManagerApp* pApp=(CDIBManagerApp*)AfxGetApp(); + // as far as we have only one DocTemplate we simplified things + CDocTemplate* pTemplate=NULL; + POSITION posTemplate=pApp->GetFirstDocTemplatePosition(); + if(posTemplate!=NULL) + { + pTemplate=pApp->GetNextDocTemplate(posTemplate); + } + ASSERT_KINDOF(CDocTemplate, pTemplate); + + // iterate documents and check their file name + CDIBManagerDoc* pDocument; + POSITION pos=pTemplate->GetFirstDocPosition(); + while(pos!=NULL) + { + pDocument=(CDIBManagerDoc*)pTemplate->GetNextDoc(pos); + if(sFileName==pDocument->m_sNameFile) + { + bOpened=TRUE; + if(bNotify) + { + CString sFileAlreadyOpened; + sFileAlreadyOpened.Format(_T("File %s already opened!"),sFileName); + pApp->ErrorNotify(sFileAlreadyOpened); + } + break; + } + } + + return bOpened; +} +void CMainFrame::OnUpdateFileProtected(CCmdUI* pCmdUI) +{ + // TODO: Add your command update UI handler code here + + pCmdUI->SetCheck(FALSE); + pCmdUI->Enable(FALSE); +} + +void CMainFrame::OnClose() +{ + CDIBManagerApp* pApp=(CDIBManagerApp*)AfxGetApp(); + // Save workspace if needed + if(pApp->m_bSaveWSOnExit) + { + SaveWorkspace(); + } + COXMDIFrameWndSizeDock::OnClose(); +} + +void CMainFrame::ResetProgress() +{ + // reset associated progress object + if(m_pShowProgress==NULL) + return; + m_pShowProgress->Reset(); +} + +void CMainFrame::ShowProgress() +{ + // iterate associated progress object + // progress object will show progress + if(m_pShowProgress==NULL) + return; + m_pShowProgress->Iterate(); +} + +BOOL CMainFrame::IniProgress(WORD nToDo, WORD nStep) +{ + // initialize associated progress object + if(m_pShowProgress==NULL) + return FALSE; + + if(nToDo==0 || nStep==0) + return FALSE; + + m_pShowProgress->Initialize(nToDo,nStep); + return TRUE; +} + +void CMainFrame::GetNumColors() +{ + // get the number of bits in current system pallete + CDIBManagerApp* pApp=(CDIBManagerApp*)AfxGetApp(); + CWindowDC dc(this); + pApp->m_nColors=(UINT)dc.GetDeviceCaps(BITSPIXEL); +} + +BOOL CMainFrame::OnRollupMessage(CWnd* pWndRollup,UINT message,UINT rollupID) +{ + // notification from roll-up ZoomLevel Dialog + CDIBManagerApp* pApp=(CDIBManagerApp*)AfxGetApp(); + CScaleRollupDlg *pScaleRollupDlg=pApp->GetScaleRollupDlg(); + if (pScaleRollupDlg->GetRollupID() == rollupID) + { + switch (message) + { + // if it is closed then destroy it + case IDCANCEL: + { + pWndRollup->DestroyWindow(); + m_bShowZoomLevelDlg=FALSE; + } + default: + { + TRACE2("Unhandled message %d from Rollup %d\n",message,rollupID); + break; + } + } + } + // messages from other rollups are being ignored!!! + return TRUE; +} + +void CMainFrame::OnUpdateViewZoomLevelDlg(CCmdUI* pCmdUI) +{ + // TODO: Add your command update UI handler code here + pCmdUI->SetCheck(m_bShowZoomLevelDlg); +} + +void CMainFrame::SaveWorkspace() +{ + + SaveSizeBarState(_T("SizeBarState")); + + // common procedure to save workspace + COXWorkspaceState workspaceState; + workspaceState.IncludeMainWindow(FALSE); + if (!workspaceState.StoreToRegistry()) + { + TRACE0("CMainFrame::OnClose : Failed to save workspace to registry, continuing\n"); + } + // If some of files are dirty then when we save workspace it asks + // whether we want to save dirty doc if we choose No then + // it does not unmark the document as dirty + // so let us do that + CDIBManagerApp* pApp=(CDIBManagerApp*)AfxGetApp(); + POSITION posTemplate=pApp->GetFirstDocTemplatePosition(); + while(posTemplate!=NULL) + { + CDocTemplate* pTemplate=pApp->GetNextDocTemplate(posTemplate); + POSITION pos=pTemplate->GetFirstDocPosition(); + while (pos != NULL) + { + CDocument* pDoc = pTemplate->GetNextDoc(pos); + pDoc->SetModifiedFlag(FALSE); + } + } + +} + +void CMainFrame::LoadWorkspace() +{ + LockWindowUpdate(); + + // Since we allow floating control bars MDI child windows, + // and these can only be created once + // we have a main window, we need to restore the bar size state here. + // (not on CMainFrame::OnCreate()) + LoadSizeBarState(_T("SizeBarState")); + + COXWorkspaceState workspaceState; + workspaceState.IncludeMainWindow(FALSE); + if (!workspaceState.LoadFromRegistry()) + { + TRACE(_T("CWorkspaceDemoApp::InitInstance : Failed to load workspace from registry, continuing\n")); + } + + m_wndToolBar.LoadBarState(_T("CoolToolBars"),_T("Bar1")); + + UnlockWindowUpdate(); +} + +void CMainFrame::OnDropDown(NMHDR* pNotifyStruct, LRESULT* pResult) +{ + // this function handles the dropdown menus from the toolbar + NMTOOLBAR* pNMToolBar = (NMTOOLBAR*)pNotifyStruct; + CRect rect; + + // translate the current toolbar item rectangle into screen coordinates + // so that we'll know where to pop up the menu + m_wndToolBar.GetItemRect(m_wndToolBar.CommandToIndex(pNMToolBar->iItem), &rect); + rect.top = rect.bottom; + ::ClientToScreen(pNMToolBar->hdr.hwndFrom, &rect.TopLeft()); + if(pNMToolBar->iItem == ID_FILE_OPEN) + { + CMenu menu; + CMenu* pPopup; + + // the font popup is stored in a resource + menu.LoadMenu(IDR_MAINFRAME); + pPopup = menu.GetSubMenu(0); + pPopup->RemoveMenu(ID_FILE_NEW,MF_BYCOMMAND); + pPopup->RemoveMenu(ID_SEPARATOR,MF_BYCOMMAND); + pPopup->RemoveMenu(ID_FILE_IMPORT,MF_BYCOMMAND); + pPopup->RemoveMenu(ID_SEPARATOR,MF_BYCOMMAND); + pPopup->RemoveMenu(ID_FILE_PRINT_SETUP,MF_BYCOMMAND); + pPopup->RemoveMenu(ID_APP_EXIT,MF_BYCOMMAND); + pPopup->RemoveMenu(pPopup->GetMenuItemCount()-1,MF_BYPOSITION); + pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON, rect.left, + rect.top + 1, AfxGetMainWnd()); + } + *pResult = TBDDRET_DEFAULT; +} + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/MainFrm.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/MainFrm.h new file mode 100644 index 0000000..c747508 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/MainFrm.h @@ -0,0 +1,187 @@ +// MainFrm.h : interface of the CMainFrame class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_MAINFRM_H__D2552D12_7143_11D1_A3D5_0080C83F712F__INCLUDED_) +#define AFX_MAINFRM_H__D2552D12_7143_11D1_A3D5_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "TreeFilesDlg.h" +#include "DIBManagerDoc.h" + +#include "OXFrameWndDock.h" +#include "OXSizeToolBar.h" +#include "OXSizeDlgBar.h" +#include "OXSizeDockBar.h" +#include "OXBitmapMenuOrganizer.h" +#include "xstatus4.h" + +#include "OXCoolToolBar.h" +#include "OXCoolBar.h" + +#include "OXCaptionPainter.h" +#include "OXTabClientWnd.h" +#include "OXMenuBar.h" + +class CMainFrame : public COXMenuBarFrame +{ + DECLARE_DYNAMIC(CMainFrame) +public: + CMainFrame(); + +// Attributes +public: +// CButtonsPaneDlg m_ButtonsPaneBar; + // TreeFilesDlg - dialog with tree control to show all opened window + CTreeFilesDlg m_TreeFilesBar; + // special statusbar with progressbar + COXStatusBar m_wndStatusBar; + + // defines if roll-up ZoomLevel Dialog is active + BOOL m_bShowZoomLevelDlg; + +// Operations +public: + void LoadWorkspace(); + void SaveWorkspace(); + + BOOL IniProgress(WORD nToDo, WORD nStep=1); + void ShowProgress(); + void ResetProgress(); + void GetNumColors(); + + void CreateDocumentFromOpenedFile(CString sFileName, + CDIBManagerDoc::TypeFile tf=CDIBManagerDoc::TF_DIB); + void CreateDocumentFromOpenedFile(CFile* pFile, CString sFileName, + CDIBManagerDoc::TypeFile tf=CDIBManagerDoc::TF_JPEG); + BOOL CheckFileAlreadyOpened(CString sFileName, BOOL bNotify); +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CMainFrame) + public: + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CMainFrame(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: // control bar embedded members + COXCaptionPainter m_Caption; + COXCoolToolBar m_wndToolBar; +// COXCoolToolBar m_wndToolBar1; +// COXCoolBar m_wndCoolBar; + // to show bitmaps in menu + COXBitmapMenuOrganizer Organizer; + // to trace the progress of some process + // tightly tied witn mainframe and statusbar window + class CShowProgress* m_pShowProgress; + + // MTI client window + COXTabClientWnd m_MTIClientWnd; + +// Generated message map functions +protected: + //{{AFX_MSG(CMainFrame) + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnClose(); + afx_msg BOOL OnQueryNewPalette(); + afx_msg void OnPaletteChanged(CWnd*); + afx_msg void OnWindowSynchronize(); + afx_msg void OnUpdateWindowSynchronize(CCmdUI* pCmdUI); + afx_msg void OnUpdateFileSave(CCmdUI* pCmdUI); + afx_msg void OnUpdateZoom(CCmdUI* pCmdUI); + afx_msg void OnUpdateSize(CCmdUI* pCmdUI); + afx_msg void OnUpdateParameters(CCmdUI* pCmdUI); + afx_msg void OnFileImport(); + afx_msg void OnUpdateFileProtected(CCmdUI* pCmdUI); + afx_msg void OnUpdateViewZoomLevelDlg(CCmdUI* pCmdUI); + afx_msg void OnHandleDummy(); + //}}AFX_MSG + afx_msg BOOL OnRollupMessage(CWnd* pWndRollup,UINT message,UINT rollupID); + afx_msg void OnDropDown(NMHDR* pNotifyStruct, LRESULT* pResult); + DECLARE_MESSAGE_MAP() +}; + +// Progress Class to iterates step of working of some cycle process +// and showing it in progress bar of COXStatusBar control +class CShowProgress +{ +public: + CShowProgress() {} + CShowProgress(CMainFrame* pMainFrame, WORD nProgressIndex) + { + m_pMainFrame=pMainFrame; + m_nProgressIndex=nProgressIndex; + } + ~CShowProgress() {} + +protected: + // the size of step + UINT m_nStep; + // iterator within 0 to m_nStep-1 + UINT m_nStepIterator; + // steps done + UINT m_nDone; + // steps to do + UINT m_nToDo; + + // index of progressbar pane in statusbar + UINT m_nProgressIndex; + // owner window + CMainFrame* m_pMainFrame; + +public: + void SetStep(UINT nStep) { m_nStep=nStep; } + void SetStepIterator(UINT nStepIterator) { m_nStepIterator=nStepIterator; } + void SetDone(UINT nDone) { m_nDone=nDone; } + void SetToDo(UINT nToDo) { m_nToDo=nToDo; } + void Initialize(UINT nToDo, UINT nStep=1) + { + SetStep(nStep); + SetToDo(nToDo/nStep); + SetStepIterator(0); + SetDone(0); + m_pMainFrame->m_wndStatusBar.ResetBar(m_nProgressIndex); + } + void Reset() + { + SetStep(0); + SetToDo(0); + SetStepIterator(0); + SetDone(0); + m_pMainFrame->m_wndStatusBar.ResetBar(m_nProgressIndex); + } + void Iterate() + { + m_nStepIterator++; + if(m_nStepIterator==m_nStep) + { + SetStepIterator(0); + m_nDone++; + DWORD wPercent=((DWORD)m_nDone*(DWORD)100)/(DWORD)m_nToDo; + if(wPercent>100) + { + wPercent=100; + } + m_pMainFrame->m_wndStatusBar. + SetBarProgress(m_nProgressIndex,TRUE,100,wPercent); + } + } +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_MAINFRM_H__D2552D12_7143_11D1_A3D5_0080C83F712F__INCLUDED_) + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/OXDocMgr.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/OXDocMgr.cpp new file mode 100644 index 0000000..890f1f4 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/OXDocMgr.cpp @@ -0,0 +1,152 @@ +#include "stdafx.h" + +#include "OXDocMgr.h" +#include "OXWinApp.h" + +#include "MainFrm.h" + +#include "OXPrvDlg.h" + +IMPLEMENT_DYNAMIC(COXDocManager, CDocManager) + +// standard function +// emulate the same function for CDocManager +static void AppendFilterSuffix(CString& filter, OPENFILENAME& ofn, + CDocTemplate* pTemplate, CString* pstrDefaultExt) +{ + ASSERT_VALID(pTemplate); + ASSERT_KINDOF(CDocTemplate, pTemplate); + + CString strFilterExt, strFilterName; + if (pTemplate->GetDocString(strFilterExt, CDocTemplate::filterExt) && + !strFilterExt.IsEmpty() && + pTemplate->GetDocString(strFilterName, CDocTemplate::filterName) && + !strFilterName.IsEmpty()) + { + // a file based document template - add to filter list +#ifndef _MAC + ASSERT(strFilterExt[0] == '.'); +#endif + if (pstrDefaultExt != NULL) + { + // set the default extension +#ifndef _MAC + *pstrDefaultExt = ((LPCTSTR)strFilterExt) + 1; // skip the '.' +#else + *pstrDefaultExt = strFilterExt; +#endif + ofn.lpstrDefExt = (LPTSTR)(LPCTSTR)(*pstrDefaultExt); + ofn.nFilterIndex = ofn.nMaxCustFilter + 1; // 1 based number + } + + // add to filter + filter += strFilterName; + ASSERT(!filter.IsEmpty()); // must have a file type name + filter += (TCHAR)'\0'; // next string please +#ifndef _MAC + filter += (TCHAR)'*'; +#endif + filter += strFilterExt; + filter += (TCHAR)'\0'; // next string please + ofn.nMaxCustFilter++; + } +} + +COXDocManager::COXDocManager() +{ +} + +// use to provide multiselection and BitmapPreview +BOOL COXDocManager::DoPromptFileName(CString& fileName, UINT nIDSTitle, + DWORD lFlags, BOOL bOpenFileDialog, CDocTemplate* pTemplate) +{ + ASSERT(AfxGetApp()->IsKindOf(RUNTIME_CLASS(COXWinApp))); + + // get the dialog from COXWinApp + CFileDialog* pDlgFile=((COXWinApp*) AfxGetApp())-> + NewFileDialog(bOpenFileDialog,lFlags); + + CString title; + VERIFY(title.LoadString(nIDSTitle)); + + CString strFilter; + CString strDefault; + if (pTemplate != NULL) + { + ASSERT_VALID(pTemplate); + AppendFilterSuffix(strFilter, pDlgFile->m_ofn, pTemplate, &strDefault); + } + else + { + // do for all doc template + POSITION pos = m_templateList.GetHeadPosition(); + BOOL bFirst = TRUE; + while (pos != NULL) + { + CDocTemplate* pTemplate = (CDocTemplate*)m_templateList.GetNext(pos); + AppendFilterSuffix(strFilter, pDlgFile->m_ofn, pTemplate, + bFirst ? &strDefault : NULL); + bFirst = FALSE; + } + } + + // append the "*.*" all files filter + CString allFilter; + VERIFY(allFilter.LoadString(AFX_IDS_ALLFILTER)); + strFilter += allFilter; + strFilter += (TCHAR)'\0'; // next string please +#ifndef _MAC + strFilter += _T("*.*"); +#else + strFilter += _T("****"); +#endif + strFilter += (TCHAR)'\0'; // last string + pDlgFile->m_ofn.nMaxCustFilter++; + + pDlgFile->m_ofn.lpstrFilter = strFilter; +#ifndef _MAC + pDlgFile->m_ofn.lpstrTitle = title; +#else + pDlgFile->m_ofn.lpstrPrompt = title; +#endif + if(bOpenFileDialog) + { + // set sound space to get multiselection + pDlgFile->m_ofn.nMaxFile=128*_MAX_PATH; + } + else + { + pDlgFile->m_ofn.Flags&=~OFN_ALLOWMULTISELECT; + pDlgFile->m_ofn.nMaxFile=_MAX_PATH; + } + pDlgFile->m_ofn.lpstrFile = fileName.GetBuffer(pDlgFile->m_ofn.nMaxFile); + + BOOL bResult = pDlgFile->DoModal() == IDOK ? TRUE : FALSE; + fileName.ReleaseBuffer(); + + if(bOpenFileDialog && bResult) + { + CMainFrame* pMainFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd; + + // go through all names of multiselected files + // and try to create document + POSITION pos=pDlgFile->GetStartPosition(); + while(pos!=NULL) + { + CString sFileName=pDlgFile->GetNextPathName(pos); + pMainFrame->CreateDocumentFromOpenedFile(sFileName); + } + } + + delete pDlgFile; + + if(bOpenFileDialog) + { + // we don't want to call standard OnOpenDocument + return FALSE; + } + else + { + return bResult; + } +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/OXDocMgr.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/OXDocMgr.h new file mode 100644 index 0000000..4ea50fa --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/OXDocMgr.h @@ -0,0 +1,11 @@ +class COXDocManager : public CDocManager +{ + DECLARE_DYNAMIC(COXDocManager) +public: + + COXDocManager(); + + // helper for standard commdlg dialogs + virtual BOOL DoPromptFileName(CString& fileName, UINT nIDSTitle, + DWORD lFlags, BOOL bOpenFileDialog, CDocTemplate* pTemplate); +}; \ No newline at end of file diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/OXWinApp.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/OXWinApp.cpp new file mode 100644 index 0000000..d338a05 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/OXWinApp.cpp @@ -0,0 +1,40 @@ +#include "stdafx.h" +#include "OXWinApp.h" +#include "OXDocMgr.h" +#include "OXPrvDlg.h" + +#ifdef _DEBUG +#undef THIS_FILE +static char BASED_CODE THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// COXWinApp + + +IMPLEMENT_DYNAMIC(COXWinApp, CWinApp) + +///////////////////////////////////////////////////////////////////////////// +// COXWinApp construction + +COXWinApp::COXWinApp() +{ +} + +void COXWinApp::AddDocTemplate(CDocTemplate* pTemplate) +{ + if (m_pDocManager == NULL) + m_pDocManager = new COXDocManager; + m_pDocManager->AddDocTemplate(pTemplate); +} + +CFileDialog* COXWinApp::NewFileDialog(BOOL bOpenFileDialog, DWORD lFlags) +{ + UNREFERENCED_PARAMETER(lFlags); + // this function is called by COXDocManager + // to get a pointer to save and/or open dialog + // here we can instantiate dialog object of user-defined style + return new CFileDialog(bOpenFileDialog); +} + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/OXWinApp.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/OXWinApp.h new file mode 100644 index 0000000..8c7a917 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/OXWinApp.h @@ -0,0 +1,36 @@ + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + + +///////////////////////////////////////////////////////////////////////////// +// COXWinApp: +// +// + +class COXWinApp : public CWinApp +{ +DECLARE_DYNAMIC(COXWinApp) +// Data Members +public: + +protected: + +private: + +// Member Functions +public: + COXWinApp(); + void AddDocTemplate(CDocTemplate* pTemplate); + virtual CFileDialog* NewFileDialog(BOOL bOpenFileDialog, DWORD lFlags); + +protected: + +private: + + +}; + + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ProtectedFile.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ProtectedFile.cpp new file mode 100644 index 0000000..34f3838 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ProtectedFile.cpp @@ -0,0 +1,361 @@ +#include "stdafx.h" +#include "ProtectedFile.h" + +#include "DibManager.h" +#include "MainFrm.h" + +#include "OXcmpfl.h" + +IMPLEMENT_SERIAL(CProtectedFile, CObject, 1) + +////////////////////////////////////////////////////// +////////////////////////////////////////////////////// + +BOOL CProtectedFile::Open(CFile* pFile) +{ + CDIBManagerApp* pApp=(CDIBManagerApp*)AfxGetApp(); + + // to make sure that we are going to work with correct protected file + // we have to check some additional info that we add to every protected file + pFile->SeekToBegin(); + CArchive ar(pFile, CArchive::load); + TRY + { + // if we threw an exception then + // header of file is of wrong format + Serialize(ar); + } + CATCH(CArchiveException,e) + { + pApp->ErrorNotify(_T("Unknown file format!")); + return FALSE; + } + END_CATCH + ar.Close(); + + // if header is correct then run decryption + if(RemoveProtection()) + { + pFile->SetLength(0); + m_file.SeekToBegin(); + CopyFile(pFile,&m_file); + return TRUE; + } + else + { + return FALSE; + } +} + +BOOL CProtectedFile::Save(CFile* pFile) +{ + // encrypt file + if(!SetProtection(pFile)) + return FALSE; + + // set header info to identify file as encrypted when open + pFile->SetLength(0); + CArchive ar(pFile, CArchive::store); + TRY + { + Serialize(ar); + } + CATCH(CArchiveException,e) + { + return FALSE; + } + END_CATCH + ar.Close(); + + return TRUE; +} + +///////////////////////////////////////////////////////////////////////////// +// serialization + +void CProtectedFile::Serialize(CArchive& ar) +{ + // Only CObject-derived objects and six data-type + // primitives are serializable. However, you + // can cast any data type to a serializable data type, + // and then you can serialize your data. The serializable + // data types are + + // BYTE: 8 bits unsigned + // WORD: 16 bits unsigned + // LONG: 32 bits unsigned + // DWORD: 32 bits unsigned + // float 32 bits + // double 64 bits, IEEE standard + + // we use some control sum to check whether + // opened file is encrypted or not + if (ar.IsStoring()) + { + // TODO: add storing code here + ar << m_dwSignature; + + WORD randNumber; + WORD m_headLength=(WORD)(rand()%10+5); + ar << m_headLength; + WORD m_headMultiplier=(WORD)(rand()%4+1); + ar << m_headMultiplier; + DWORD m_headSum=0; + for(WORD i=0;i> signature; + if(signature!=m_dwSignature) + { + AfxThrowArchiveException(CArchiveException::badIndex); + } + + WORD randNumber,m_headLength,m_headMultiplier; + DWORD headSum=0, m_headSum; + ar >> m_headLength; + ar >> m_headMultiplier; + for(WORD i=0;i> randNumber; + headSum+=randNumber*m_headMultiplier; + } + ar >> m_headSum; + if(m_headSum!=headSum) + { + AfxThrowArchiveException(CArchiveException::badIndex); + } + + m_file.SeekToBegin(); + if(!CopyArchiveToFile(ar,&m_file)) + { + AfxThrowArchiveException(CArchiveException::badIndex); + } + } +} + +/////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////// + +BOOL CProtectedFile::SetProtection(CFile* pFile) +{ + CDIBManagerApp* pApp=(CDIBManagerApp*)AfxGetApp(); + + pFile->SeekToBegin(); + + // we use either compression and encryption + // or just copression to protect file + // by means of delegatin rights to read and write operations +#ifdef _UT_DIBMANAGER_ENCRYPTION + COXCryptFile EncryptFile(40); + COXCompressedFile CompressFile; + EncryptFile.DelegateOpen(&m_file,CFile::modeReadWrite); + CompressFile.DelegateOpen(&EncryptFile,CFile::modeWrite); +#else + COXCompressedFile CompressFile; + CompressFile.DelegateOpen(&m_file,CFile::modeWrite); +#endif + + if(!CopyFile(&CompressFile,pFile,TRUE)) + { + pApp->ErrorNotify(_T("Cannot protect image!")); + return FALSE; + } + return TRUE; +} + +BOOL CProtectedFile::RemoveProtection() +{ + CDIBManagerApp* pApp=(CDIBManagerApp*)AfxGetApp(); + + ////////////// + // we can try to open file encrypted using + // different version of the program + // in that case we are not going to read file + ////////// + // To enable encryption and compression transformations, setup + // the encryptfile and compress file with delegation opens and Write state +#ifdef _UT_DIBMANAGER_ENCRYPTION + COXCompressedFile CompressFile; + COXCryptFile EncryptFile(40); + CompressFile.DelegateOpen(&EncryptFile, CFile::modeRead); + EncryptFile.DelegateOpen(&m_file, CFile::modeRead); +#else + COXCompressedFile CompressFile; + CompressFile.DelegateOpen(&m_file, CFile::modeRead); +#endif + + CMemFile tmpFile; + if(!CopyFile(&tmpFile,&CompressFile,TRUE)) + { + pApp->ErrorNotify(_T("Failed to read file!")); + return FALSE; + } + + m_file.SetLength(0); + tmpFile.SeekToBegin(); + CopyFile(&m_file,&tmpFile); + + return TRUE; +} + +BOOL CProtectedFile::CopyFile(CFile* pDestFile, CFile* pSourceFile, BOOL bShowProgress) +{ + // use buffers + const int nBufferLength = 2048; + BYTE pBuffer[nBufferLength + 1]; + int nLengthRead(0); + BOOL bSuccess = TRUE; + + CDIBManagerApp* pApp=(CDIBManagerApp*)AfxGetApp(); + CMainFrame* pMainFrame=(CMainFrame*)pApp->m_pMainWnd; + + if(bShowProgress) + { + // initialize progress object to show progress of protecting image + bShowProgress=pMainFrame-> + IniProgress((WORD)(pSourceFile->GetLength()/nBufferLength),10); + } + + TRY + { + do + { + nLengthRead = pSourceFile->Read(pBuffer, nBufferLength); + pDestFile->Write(pBuffer, nLengthRead); + + if(bShowProgress) + { + // after every copy operation call Progress object iterator + pMainFrame->ShowProgress(); + } + } + while (nLengthRead == nBufferLength); // So while not EOF + } + CATCH(CFileException, pxFile) + { + TRACE(_T("CDIBManagerDoc::CopyFile : Catching FileException (%XH)\n"), + pxFile->m_cause); + bSuccess = FALSE; + } + END_CATCH + + if(bShowProgress) + { + pMainFrame->ResetProgress(); + } + + return bSuccess; +} + +BOOL CProtectedFile::CopyFileToArchive(CArchive& ar, CFile* pSourceFile, BOOL bShowProgress) +{ + const int nBufferLength = 2048; + BYTE pBuffer[nBufferLength + 1]; + int nLengthRead(0); + BOOL bSuccess = TRUE; + + CDIBManagerApp* pApp=(CDIBManagerApp*)AfxGetApp(); + CMainFrame* pMainFrame=(CMainFrame*)pApp->m_pMainWnd; + + if(bShowProgress) + { + // initialize progress object to show progress of protecting image + bShowProgress=pMainFrame-> + IniProgress((WORD)(pSourceFile->GetLength()/nBufferLength),10); + } + + TRY + { + do + { + nLengthRead = pSourceFile->Read(pBuffer, nBufferLength); + ar.Write(pBuffer, nLengthRead); + + if(bShowProgress) + { + // after every copy operation call Progress object iterator + pMainFrame->ShowProgress(); + } + } + while (nLengthRead == nBufferLength); // So while not EOF + } + CATCH(CFileException,pxFile) + { + TRACE(_T("CDIBManagerDoc::CopyFileToArchive : Catching FileException (%XH)\n"), + pxFile->m_cause); + return FALSE; + } + END_CATCH + + if(bShowProgress) + { + pMainFrame->ResetProgress(); + } + + return bSuccess; +} + +BOOL CProtectedFile::CopyArchiveToFile(CArchive& ar, CFile* pDestFile, BOOL bShowProgress) +{ + const int nBufferLength = 2048; + BYTE pBuffer[nBufferLength + 1]; + int nLengthRead(0); + BOOL bSuccess = TRUE; + + CDIBManagerApp* pApp=(CDIBManagerApp*)AfxGetApp(); + CMainFrame* pMainFrame=(CMainFrame*)pApp->m_pMainWnd; + + if(bShowProgress) + { + // initialize progress object to show progress of protecting image + bShowProgress=pMainFrame-> + IniProgress((WORD)(ar.GetFile()->GetLength()/nBufferLength),10); + } + + TRY + { + do + { + nLengthRead = ar.Read(pBuffer, nBufferLength); + pDestFile->Write(pBuffer, nLengthRead); + + if(bShowProgress) + { + // after every copy operation call Progress object iterator + pMainFrame->ShowProgress(); + } + } + while (nLengthRead == nBufferLength); // So while not EOF + } + CATCH(CFileException,pxFile) + { + TRACE(_T("CDIBManagerDoc::CopyArchiveToFile : Catching FileException (%XH)\n"), + pxFile->m_cause); + return FALSE; + } + END_CATCH + + if(bShowProgress) + { + pMainFrame->ResetProgress(); + } + + return bSuccess; +} + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ProtectedFile.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ProtectedFile.h new file mode 100644 index 0000000..66b32db --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ProtectedFile.h @@ -0,0 +1,40 @@ +///////////////////////////////////////////////////////////////////////////// +// ProtectedFile.h +// +// CProtectedFile class definition +// + +// comment this definition if we are not going yo supply +// encryption classes +// if we are going to use encryption make sure you include +// crypfile.cpp and mdccrypt.cpp files into SourceFiles/UTSourse/ section + + +class CProtectedFile : public CObject +{ + DECLARE_SERIAL(CProtectedFile) + +public: + // mem file that we associate with + CMemFile m_file; +protected: + // signature that we use in header to check the correctness of opening file + DWORD m_dwSignature; + +public: + BOOL Open(CFile* pFile); + BOOL Save(CFile* pFile); + BOOL CopyFile(CFile* pDestFile, CFile* pSourceFile, BOOL bShowProgress=FALSE); + BOOL CopyFileToArchive(CArchive& ar, CFile* pSourceFile, BOOL bShowProgress=FALSE); + BOOL CopyArchiveToFile(CArchive& ar, CFile* pDestFile, BOOL bShowProgress=FALSE); + + void Serialize(CArchive& ar); + +protected: + BOOL SetProtection(CFile* pFile); + BOOL RemoveProtection(); + +public: + CProtectedFile() { m_dwSignature=0x00010001; } + ~CProtectedFile() {} +}; \ No newline at end of file diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ReadMe.txt b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ReadMe.txt new file mode 100644 index 0000000..38bf2bf --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ReadMe.txt @@ -0,0 +1,102 @@ +======================================================================== + MICROSOFT FOUNDATION CLASS LIBRARY : DIBManager +======================================================================== + + +AppWizard has created this DIBManager application for you. This application +not only demonstrates the basics of using the Microsoft Foundation classes +but is also a starting point for writing your application. + +This file contains a summary of what you will find in each of the files that +make up your DIBManager application. + +DIBManager.h + This is the main header file for the application. It includes other + project specific headers (including Resource.h) and declares the + CDIBManagerApp application class. + +DIBManager.cpp + This is the main application source file that contains the application + class CDIBManagerApp. + +DIBManager.rc + This is a listing of all of the Microsoft Windows resources that the + program uses. It includes the icons, bitmaps, and cursors that are stored + in the RES subdirectory. This file can be directly edited in Microsoft + Developer Studio. + +res\DIBManager.ico + This is an icon file, which is used as the application's icon. This + icon is included by the main resource file DIBManager.rc. + +res\DIBManager.rc2 + This file contains resources that are not edited by Microsoft + Developer Studio. You should place all resources not + editable by the resource editor in this file. + +DIBManager.clw + This file contains information used by ClassWizard to edit existing + classes or add new classes. ClassWizard also uses this file to store + information needed to create and edit message maps and dialog data + maps and to create prototype member functions. + +///////////////////////////////////////////////////////////////////////////// + +For the main frame window: + +MainFrm.h, MainFrm.cpp + These files contain the frame class CMainFrame, which is derived from + CMDIFrameWnd and controls all MDI frame features. + +res\Toolbar.bmp + This bitmap file is used to create tiled images for the toolbar. + The initial toolbar and status bar are constructed in the + CMainFrame class. Edit this toolbar bitmap along with the + array in MainFrm.cpp to add more toolbar buttons. + +///////////////////////////////////////////////////////////////////////////// + +AppWizard creates one document type and one view: + +DIBManagerDoc.h, DIBManagerDoc.cpp - the document + These files contain your CDIBManagerDoc class. Edit these files to + add your special document data and to implement file saving and loading + (via CDIBManagerDoc::Serialize). + +DIBManagerView.h, DIBManagerView.cpp - the view of the document + These files contain your CDIBManagerView class. + CDIBManagerView objects are used to view CDIBManagerDoc objects. + +res\DIBManagerDoc.ico + This is an icon file, which is used as the icon for MDI child windows + for the CDIBManagerDoc class. This icon is included by the main + resource file DIBManager.rc. + + +///////////////////////////////////////////////////////////////////////////// +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named DIBManager.pch and a precompiled types file named StdAfx.obj. + +Resource.h + This is the standard header file, which defines new resource IDs. + Microsoft Developer Studio reads and updates this file. + +///////////////////////////////////////////////////////////////////////////// +Other notes: + +AppWizard uses "TODO:" to indicate parts of the source code you +should add to or customize. + +If your application uses MFC in a shared DLL, and your application is +in a language other than the operating system's current language, you +will need to copy the corresponding localized resources MFC40XXX.DLL +from the Microsoft Visual C++ CD-ROM onto the system or system32 directory, +and rename it to be MFCLOC.DLL. ("XXX" stands for the language abbreviation. +For example, MFC40DEU.DLL contains resources translated to German.) If you +don't do this, some of the UI elements of your application will remain in the +language of the operating system. + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ResampleImageDlg.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ResampleImageDlg.cpp new file mode 100644 index 0000000..e7a4847 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ResampleImageDlg.cpp @@ -0,0 +1,284 @@ +// ResampleImageDlg.cpp : implementation file +// + +#include "stdafx.h" +#include "dibmanager.h" +#include "ResampleImageDlg.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CResampleImageDlg dialog + + +CResampleImageDlg::CResampleImageDlg(CWnd* pParent /*=NULL*/) + : CDialog(CResampleImageDlg::IDD, pParent) +{ + //{{AFX_DATA_INIT(CResampleImageDlg) + m_bMaintainRatio = FALSE; + m_bMatchZoomLevel = FALSE; + m_sHeightOrig = _T(""); + m_sWidthOrig = _T(""); + m_nWidthPercents = 0; + m_nWidthPixels = 0; + m_nHeightPercents = 0; + m_nHeightPixels = 0; + m_bConvertTo = FALSE; + m_nConvertTo = -1; + //}}AFX_DATA_INIT + m_nCurrentZoomLevel=0; + m_bCanConvert=FALSE; + m_bCanResize=FALSE; + m_nOrigHeight=0; + m_nOrigWidth=0; +} + + +void CResampleImageDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CResampleImageDlg) + DDX_Control(pDX, IDC_CHECK_MATCH_ZOOM_LEVEL, m_ctlCheckMatchZoomLevel); + DDX_Control(pDX, IDC_CHECK_CONVERT_TO, m_ctlCheckConvertTo); + DDX_Control(pDX, IDC_WIDTH_PIXELS, m_ctlEditWidthPixels); + DDX_Control(pDX, IDC_WIDTH_PERCENTS, m_ctlEditWidthPercents); + DDX_Control(pDX, IDC_SPIN_WIDTH_PIXELS, m_ctlSpinWidthPixels); + DDX_Control(pDX, IDC_SPIN_WIDTH_PERCENTS, m_ctlSpinWidthPercents); + DDX_Control(pDX, IDC_SPIN_HEIGHT_PIXELS, m_ctlSpinHeightPixels); + DDX_Control(pDX, IDC_SPIN_HEIGHT_PERCENTS, m_ctlSpinHeightPercents); + DDX_Control(pDX, IDC_HEIGHT_PIXELS, m_ctlEditHeightPixels); + DDX_Control(pDX, IDC_HEIGHT_PERCENTS, m_ctlEditHeightPercents); + DDX_Control(pDX, IDC_COMBO_CONVERT_TO, m_ctlComboConvertTo); + DDX_Control(pDX, IDC_CHECK_MAINTAIN_RATIO, m_ctlCheckMaintainRatio); + DDX_Check(pDX, IDC_CHECK_MAINTAIN_RATIO, m_bMaintainRatio); + DDX_Check(pDX, IDC_CHECK_MATCH_ZOOM_LEVEL, m_bMatchZoomLevel); + DDX_Text(pDX, IDC_HEIGHT_ORIG, m_sHeightOrig); + DDX_Text(pDX, IDC_WIDTH_ORIG, m_sWidthOrig); + DDX_Text(pDX, IDC_WIDTH_PERCENTS, m_nWidthPercents); + DDX_Text(pDX, IDC_WIDTH_PIXELS, m_nWidthPixels); + DDX_Text(pDX, IDC_HEIGHT_PERCENTS, m_nHeightPercents); + DDX_Text(pDX, IDC_HEIGHT_PIXELS, m_nHeightPixels); + DDX_Check(pDX, IDC_CHECK_CONVERT_TO, m_bConvertTo); + DDX_CBIndex(pDX, IDC_COMBO_CONVERT_TO, m_nConvertTo); + //}}AFX_DATA_MAP +} + + +BEGIN_MESSAGE_MAP(CResampleImageDlg, CDialog) + //{{AFX_MSG_MAP(CResampleImageDlg) + ON_BN_CLICKED(IDC_CHECK_CONVERT_TO, OnCheckConvertTo) + ON_BN_CLICKED(IDC_CHECK_MAINTAIN_RATIO, OnCheckMaintainRatio) + ON_BN_CLICKED(IDC_CHECK_MATCH_ZOOM_LEVEL, OnCheckMatchZoomLevel) + ON_EN_CHANGE(IDC_HEIGHT_PERCENTS, OnChangeHeightPercents) + ON_EN_CHANGE(IDC_HEIGHT_PIXELS, OnChangeHeightPixels) + ON_EN_CHANGE(IDC_WIDTH_PERCENTS, OnChangeWidthPercents) + ON_EN_CHANGE(IDC_WIDTH_PIXELS, OnChangeWidthPixels) + ON_BN_CLICKED(ID_BUTTON_RESET, OnButtonReset) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CResampleImageDlg message handlers + +BOOL CResampleImageDlg::OnInitDialog() +{ + CDialog::OnInitDialog(); + + // TODO: Add extra initialization here + + // Define array of possible types of convertion + m_ctlComboConvertTo.AddString(_T("256 color (8-bit)")); + m_nConvertTo=0; + + // Set the COXSpinCtrl object, which is mapped to a common Spin Control. + m_ctlSpinWidthPixels.SetBuddy(&m_ctlEditWidthPixels); + m_ctlSpinWidthPixels.SetRange(0,32767); + m_ctlSpinWidthPixels.SetPos(m_nWidthPixels); + + // Set a default COXSpinCtrl method of delta value computation (Delta pixel = Delta value). + m_ctlSpinWidthPixels.SetComputationMethod(OX_SPIN_DELTA_PIXEL_IS_DELTA_VALUE); + + // Set the COXSpinCtrl object, which is mapped to a common Spin Control. + m_ctlSpinHeightPixels.SetBuddy(&m_ctlEditHeightPixels); + m_ctlSpinHeightPixels.SetRange(0,32767); + m_ctlSpinHeightPixels.SetPos(m_nHeightPixels); + + // Set a default COXSpinCtrl method of delta value computation (Delta pixel = Delta value). + m_ctlSpinHeightPixels.SetComputationMethod(OX_SPIN_DELTA_PIXEL_IS_DELTA_VALUE); + + // Set the COXSpinCtrl object, which is mapped to a common Spin Control. + m_ctlSpinWidthPercents.SetBuddy(&m_ctlEditWidthPercents); + m_ctlSpinWidthPercents.SetRange(0,32767); + m_ctlSpinWidthPercents.SetPos(m_nWidthPercents); + + // Set a default COXSpinCtrl method of delta value computation (Delta pixel = Delta value). + m_ctlSpinWidthPercents.SetComputationMethod(OX_SPIN_DELTA_PIXEL_IS_DELTA_VALUE); + + // Set the COXSpinCtrl object, which is mapped to a common Spin Control. + m_ctlSpinHeightPercents.SetBuddy(&m_ctlEditHeightPercents); + m_ctlSpinHeightPercents.SetRange(0,32767); + m_ctlSpinHeightPercents.SetPos(m_nHeightPercents); + + // Set a default COXSpinCtrl method of delta value computation (Delta pixel = Delta value). + m_ctlSpinHeightPercents.SetComputationMethod(OX_SPIN_DELTA_PIXEL_IS_DELTA_VALUE); + + + UpdateData(FALSE); + + ShowControls(); + + return TRUE; // return TRUE unless you set the focus to a control + // EXCEPTION: OCX Property Pages should return FALSE +} + +void CResampleImageDlg::ShowControls(BOOL bHeightChanged) +{ + UpdateData(TRUE); + + if(!m_bCanConvert) + { + // enable convertion controls only if we can do convertion + m_bConvertTo=FALSE; + m_ctlCheckConvertTo.EnableWindow(FALSE); + } + m_nConvertTo=0; + m_ctlComboConvertTo.EnableWindow(m_bConvertTo); + + if(m_bMaintainRatio) + { + if(bHeightChanged) + { + // if we are going to maintain aspect ratio then + // recalculate width of image based on height + m_nWidthPercents=m_nHeightPercents; + m_nWidthPixels=((long)m_nOrigWidth* + (long)m_nHeightPixels)/((long)m_nOrigHeight); + } + else + { + // if we are going to maintain aspect ratio then + // recalculate height of image based on width + m_nHeightPercents=m_nWidthPercents; + m_nHeightPixels=((long)m_nOrigHeight* + (long)m_nWidthPixels)/((long)m_nOrigWidth); + } + } + + if(m_bMatchZoomLevel) + { + // set height and width corresponding to current zoom level + m_bMaintainRatio=TRUE; + m_nWidthPercents=m_nCurrentZoomLevel; + m_nHeightPercents=m_nCurrentZoomLevel; + m_nWidthPixels=((long)m_nOrigWidth*(long)m_nCurrentZoomLevel)/(100L); + m_nHeightPixels=((long)m_nOrigHeight*(long)m_nCurrentZoomLevel)/(100L); + } + // set controls enable on/off + m_ctlCheckMatchZoomLevel.EnableWindow(m_bCanResize); + m_ctlCheckMaintainRatio.EnableWindow(!m_bMatchZoomLevel && m_bCanResize); + m_ctlEditWidthPixels.EnableWindow(!m_bMatchZoomLevel && m_bCanResize); + m_ctlSpinWidthPixels.EnableWindow(!m_bMatchZoomLevel && m_bCanResize); + m_ctlEditHeightPixels.EnableWindow(!m_bMatchZoomLevel && m_bCanResize); + m_ctlSpinHeightPixels.EnableWindow(!m_bMatchZoomLevel && m_bCanResize); + m_ctlEditWidthPercents.EnableWindow(!m_bMatchZoomLevel && m_bCanResize); + m_ctlSpinWidthPercents.EnableWindow(!m_bMatchZoomLevel && m_bCanResize); + m_ctlEditHeightPercents.EnableWindow(!m_bMatchZoomLevel && m_bCanResize); + m_ctlSpinHeightPercents.EnableWindow(!m_bMatchZoomLevel && m_bCanResize); + + UpdateData(FALSE); +} + +void CResampleImageDlg::OnCheckConvertTo() +{ + // TODO: Add your control notification handler code here + ShowControls(); +} + +void CResampleImageDlg::OnCheckMaintainRatio() +{ + // TODO: Add your control notification handler code here + ShowControls(); +} + +void CResampleImageDlg::OnCheckMatchZoomLevel() +{ + // TODO: Add your control notification handler code here + ShowControls(); +} + +void CResampleImageDlg::OnChangeHeightPercents() +{ + // TODO: If this is a RICHEDIT control, the control will not + // send this notification unless you override the CDialog::OnInitDialog() + // function to send the EM_SETEVENTMASK message to the control + // with the ENM_CHANGE flag ORed into the lParam mask. + + // TODO: Add your control notification handler code here + UpdateData(TRUE); + m_nHeightPixels=((long)m_nOrigHeight* + (long)m_nHeightPercents)/((long)100); + UpdateData(FALSE); + ShowControls(TRUE); +} + +void CResampleImageDlg::OnChangeHeightPixels() +{ + // TODO: If this is a RICHEDIT control, the control will not + // send this notification unless you override the CDialog::OnInitDialog() + // function to send the EM_SETEVENTMASK message to the control + // with the ENM_CHANGE flag ORed into the lParam mask. + + // TODO: Add your control notification handler code here + UpdateData(TRUE); + m_nHeightPercents=((long)100*(long)m_nHeightPixels)/ + ((long)m_nOrigHeight); + UpdateData(FALSE); + ShowControls(TRUE); +} + +void CResampleImageDlg::OnChangeWidthPercents() +{ + // TODO: If this is a RICHEDIT control, the control will not + // send this notification unless you override the CDialog::OnInitDialog() + // function to send the EM_SETEVENTMASK message to the control + // with the ENM_CHANGE flag ORed into the lParam mask. + + // TODO: Add your control notification handler code here + UpdateData(TRUE); + m_nWidthPixels=((long)m_nOrigWidth* + (long)m_nWidthPercents)/((long)100); + UpdateData(FALSE); + ShowControls(); +} + +void CResampleImageDlg::OnChangeWidthPixels() +{ + // TODO: If this is a RICHEDIT control, the control will not + // send this notification unless you override the CDialog::OnInitDialog() + // function to send the EM_SETEVENTMASK message to the control + // with the ENM_CHANGE flag ORed into the lParam mask. + + // TODO: Add your control notification handler code here + UpdateData(TRUE); + m_nWidthPercents=((long)100*(long)m_nWidthPixels)/ + ((long)m_nOrigWidth); + UpdateData(FALSE); + ShowControls(); +} + +void CResampleImageDlg::OnButtonReset() +{ + // TODO: Add your control notification handler code here + // set size of image to original + m_nWidthPercents=m_nCurrentZoomLevel; + m_nHeightPercents=m_nCurrentZoomLevel; + m_nWidthPixels=((long)m_nOrigWidth*(long)m_nCurrentZoomLevel)/(100L); + m_nHeightPixels=((long)m_nOrigHeight*(long)m_nCurrentZoomLevel)/(100L); + m_bMatchZoomLevel=FALSE; + UpdateData(FALSE); + ShowControls(); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ResampleImageDlg.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ResampleImageDlg.h new file mode 100644 index 0000000..d7da402 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ResampleImageDlg.h @@ -0,0 +1,87 @@ +#if !defined(AFX_RESAMPLEIMAGEDLG_H__366C6742_8B7A_11D1_A3D5_0080C83F712F__INCLUDED_) +#define AFX_RESAMPLEIMAGEDLG_H__366C6742_8B7A_11D1_A3D5_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// ResampleImageDlg.h : header file +// + +#include "OXSpinCtrl.h" +#include "DIBManagerDoc.h" + +///////////////////////////////////////////////////////////////////////////// +// CResampleImageDlg dialog + +class CResampleImageDlg : public CDialog +{ +// Construction +public: + CResampleImageDlg(CWnd* pParent = NULL); // standard constructor + +// Dialog Data + //{{AFX_DATA(CResampleImageDlg) + enum { IDD = IDD_DIALOG_RESAMPLE }; + CButton m_ctlCheckMatchZoomLevel; + CButton m_ctlCheckConvertTo; + CEdit m_ctlEditWidthPixels; + CEdit m_ctlEditWidthPercents; + COXSpinCtrl m_ctlSpinWidthPixels; + COXSpinCtrl m_ctlSpinWidthPercents; + COXSpinCtrl m_ctlSpinHeightPixels; + COXSpinCtrl m_ctlSpinHeightPercents; + CEdit m_ctlEditHeightPixels; + CEdit m_ctlEditHeightPercents; + CComboBox m_ctlComboConvertTo; + CButton m_ctlCheckMaintainRatio; + BOOL m_bMaintainRatio; + BOOL m_bMatchZoomLevel; + CString m_sHeightOrig; + CString m_sWidthOrig; + UINT m_nWidthPercents; + UINT m_nWidthPixels; + UINT m_nHeightPercents; + UINT m_nHeightPixels; + BOOL m_bConvertTo; + int m_nConvertTo; + //}}AFX_DATA + UINT m_nCurrentZoomLevel; + // we provide convertion only of 24-bit image to 8-bit + BOOL m_bCanConvert; + // we provide resizing only of 24-bit or 8-bit images + BOOL m_bCanResize; + // original height and width + // of the current image + UINT m_nOrigHeight; + UINT m_nOrigWidth; + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CResampleImageDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + void ShowControls(BOOL bHeightChanged=FALSE); + + // Generated message map functions + //{{AFX_MSG(CResampleImageDlg) + virtual BOOL OnInitDialog(); + afx_msg void OnCheckConvertTo(); + afx_msg void OnCheckMaintainRatio(); + afx_msg void OnCheckMatchZoomLevel(); + afx_msg void OnChangeHeightPercents(); + afx_msg void OnChangeHeightPixels(); + afx_msg void OnChangeWidthPercents(); + afx_msg void OnChangeWidthPixels(); + afx_msg void OnButtonReset(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_RESAMPLEIMAGEDLG_H__366C6742_8B7A_11D1_A3D5_0080C83F712F__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/SSEXP.exe.manifest b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/SSEXP.exe.manifest new file mode 100644 index 0000000..275675d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/SSEXP.exe.manifest @@ -0,0 +1,22 @@ + + + +Your app description here + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ScaleRollupDlg.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ScaleRollupDlg.cpp new file mode 100644 index 0000000..5bc9e21 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ScaleRollupDlg.cpp @@ -0,0 +1,148 @@ +// ScaleRollupDlg.cpp : implementation file +// + +#include "stdafx.h" +#include "dibmanager.h" +#include "mainfrm.h" +#include "ScaleRollupDlg.h" + +#include + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CScaleRollupDlg dialog + + +CScaleRollupDlg::CScaleRollupDlg(CWnd* pParent /*=NULL*/) + : COXRollup(CScaleRollupDlg::IDD, pParent) +{ + //{{AFX_DATA_INIT(CScaleRollupDlg) + m_nScaledHeight = 0; + m_nScaledWidth = 0; + m_nZoomLevel = 0; + //}}AFX_DATA_INIT + m_nOrigHeight=0; + m_nOrigWidth=0; +} + + +void CScaleRollupDlg::DoDataExchange(CDataExchange* pDX) +{ + COXRollup::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CScaleRollupDlg) + DDX_Control(pDX, IDC_ZOOM_LEVEL, m_ctlZoomLevel); + DDX_Control(pDX, IDC_SPIN_ZOOM_LEVEL, m_ctlSpinZoom); + DDX_Control(pDX, IDC_PICTURE, m_ctlPicture); + DDX_Text(pDX, IDC_SCALED_HEIGHT, m_nScaledHeight); + DDX_Text(pDX, IDC_SCALED_WIDTH, m_nScaledWidth); + DDX_Text(pDX, IDC_ZOOM_LEVEL, m_nZoomLevel); + //}}AFX_DATA_MAP +} + + +BEGIN_MESSAGE_MAP(CScaleRollupDlg, COXRollup) + //{{AFX_MSG_MAP(CScaleRollupDlg) + ON_BN_CLICKED(IDC_BUTTON_APPLY, OnButtonApply) + ON_EN_CHANGE(IDC_ZOOM_LEVEL, OnChangeZoomLevel) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CScaleRollupDlg message handlers + +void CScaleRollupDlg::OnButtonApply() +{ + // TODO: Add your control notification handler code here + + if(m_nZoomLevelID_MAX_ZOOM_LEVEL) + m_nZoomLevel=ID_MAX_ZOOM_LEVEL; + + CRect rectPicture, rectNewPicture; + CPoint ptPictureCenter; + + m_nScaledWidth=((long)m_nOrigWidth*(long)m_nZoomLevel)/(100L); + m_nScaledHeight=((long)m_nOrigHeight*(long)m_nZoomLevel)/(100L); + + m_ctlPicture.GetWindowRect(&rectPicture); + ScreenToClient(&rectPicture); + + ptPictureCenter.x=rectPicture.left+rectPicture.Width()/2; + ptPictureCenter.y=rectPicture.top+rectPicture.Height()/2; + + // we chose this formula because it let the picture control + // to go from 10% to 1000% + int nPictureWidth=(3*(int)sqrt((float)m_nZoomLevel)-(int)sqrt((float)m_nZoomLevel)/2)*2; + + rectNewPicture.left=ptPictureCenter.x-nPictureWidth/2; + rectNewPicture.top=ptPictureCenter.y-nPictureWidth/2; + rectNewPicture.right=rectNewPicture.left+nPictureWidth; + rectNewPicture.bottom=rectNewPicture.top+nPictureWidth; + + if(rectNewPicture.left-rectPicture.left!=0) + { + m_ctlPicture.MoveWindow(rectNewPicture.left, rectNewPicture.top, + rectNewPicture.Width(), rectNewPicture.Height()); + } + + UpdateData(FALSE); +} + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ScaleRollupDlg.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ScaleRollupDlg.h new file mode 100644 index 0000000..989f9ae --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ScaleRollupDlg.h @@ -0,0 +1,63 @@ +#if !defined(AFX_SCALEROLLUPDLG_H__FA4A5D82_7AB2_11D1_A3D5_0080C83F712F__INCLUDED_) +#define AFX_SCALEROLLUPDLG_H__FA4A5D82_7AB2_11D1_A3D5_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// ScaleRollupDlg.h : header file +// + +#include "oxrollup.h" +#include "OXSpinCtrl.h" + +///////////////////////////////////////////////////////////////////////////// +// CScaleRollupDlg dialog + +class CScaleRollupDlg : public COXRollup +{ +// Construction +public: + CScaleRollupDlg(CWnd* pParent = NULL); // standard constructor + // overridden from base class + LPCTSTR GetTitleBarBitmap() { return _T("TITLEBAR_BMP"); } + + void ShowControls(); + +// Dialog Data + //{{AFX_DATA(CScaleRollupDlg) + enum { IDD = IDD_DIALOG_ROLLUP }; + CEdit m_ctlZoomLevel; + COXSpinCtrl m_ctlSpinZoom; + CStatic m_ctlPicture; + UINT m_nScaledHeight; + UINT m_nScaledWidth; + int m_nZoomLevel; + //}}AFX_DATA + // original height and width + // of the current image + UINT m_nOrigHeight; + UINT m_nOrigWidth; + + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CScaleRollupDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + // Generated message map functions + //{{AFX_MSG(CScaleRollupDlg) + afx_msg void OnButtonApply(); + afx_msg void OnChangeZoomLevel(); + virtual BOOL OnInitDialog(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_SCALEROLLUPDLG_H__FA4A5D82_7AB2_11D1_A3D5_0080C83F712F__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ShowProgress.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ShowProgress.h new file mode 100644 index 0000000..85ee894 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/ShowProgress.h @@ -0,0 +1,57 @@ +#include "MainFrm.h" + +//class CMainFrame; + +class CShowProgress +{ +public: + CShowProgress(CMainFrame* pMainFrame, WORD nProgressIndex) + { + m_pMainFrame=pMainFrame; + m_nProgressIndex=nProgressIndex; + } + ~CShowProgress() {} + +protected: + WORD m_nStep; + WORD m_nStepIterator; + WORD m_nDone; + WORD m_nToDo; + + WORD m_nProgressIndex; + CMainFrame* m_pMainFrame; + +public: + void SetStep(WORD nStep) { m_nStep=nStep; } + void SetStepIterator(WORD nStepIterator) { m_nStepIterator=nStepIterator; } + void SetDone(WORD nDone) { m_nDone=nDone; } + void SetToDo(WORD nToDo) { m_nToDo=nToDo; } + void Initialize(WORD nStep, WORD nToDo) + { + SetStep(nStep); + SetToDo(nToDo); + SetStepIterator(0); + SetDone(0); + m_pMainFrame->m_wndStatusBar.ResetBar(m_nProgressIndex); + } + void Reset() + { + SetStep(0); + SetToDo(0); + SetStepIterator(0); + SetDone(0); + m_pMainFrame->m_wndStatusBar.ResetBar(m_nProgressIndex); + } + void Iterate() + { + m_nStepIterator++; + if(m_nStepIterator==m_nStep) + { + SetStepIterator(0); + m_nDone++; + DWORD wPercent=((DWORD)m_nDone*(DWORD)100)/(DWORD)m_nToDo; + m_pMainFrame->m_wndStatusBar. + SetBarProgress(m_nProgressIndex,TRUE,100,wPercent); + } + } +}; \ No newline at end of file diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/StdAfx.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/StdAfx.cpp new file mode 100644 index 0000000..9147a25 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/StdAfx.cpp @@ -0,0 +1,6 @@ +// stdafx.cpp : source file that includes just the standard includes +// DIBManager.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/StdAfx.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/StdAfx.h new file mode 100644 index 0000000..2c356e7 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/StdAfx.h @@ -0,0 +1,52 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#if !defined(AFX_STDAFX_H__D2552D10_7143_11D1_A3D5_0080C83F712F__INCLUDED_) +#define AFX_STDAFX_H__D2552D10_7143_11D1_A3D5_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers + +#include // MFC core and standard components +#include // MFC extensions +#include // MFC OLE extensions + +// some extended styles that come in handy occasionally. +#ifndef WS_EX_CONTEXTHELP +#define WS_EX_CONTEXTHELP 0x0400L +#endif + +#ifndef WS_EX_CLIENTEDGE +#define WS_EX_CLIENTEDGE 0x0200L +#endif + +#include // MFC extensions for help constants + +#ifdef WIN32 + #include // MFC extensions for Templates +#endif + +#ifndef _AFX_NO_AFXCMN_SUPPORT + #include // MFC support for Windows 95 Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + +#define OX_PREVIEW_GRAPHICS +#define OX_PREVIEW_BMP + +// If TEXT macro not defined in WIN16, define now +#if !defined(WIN32) && !defined(TEXT) +#define TEXT(s) s +#define _T(s) s +#endif + +#include "OXAdvancedAssert.h" + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_STDAFX_H__D2552D10_7143_11D1_A3D5_0080C83F712F__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/TreeFilesDlg.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/TreeFilesDlg.cpp new file mode 100644 index 0000000..bcc7627 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/TreeFilesDlg.cpp @@ -0,0 +1,263 @@ +// TreeFilesDlg.cpp : implementation file +// + +#include "stdafx.h" +#include "DIBManager.h" +#include "TreeFilesDlg.h" + +#include "MainFrm.h" +#include "ChildFrm.h" +#include "DIBManagerDoc.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CTreeFilesDlg dialog + + +CTreeFilesDlg::CTreeFilesDlg(CWnd* pParent /*=NULL*/) + : COXSizeDialogBar() +{ + UNREFERENCED_PARAMETER(pParent); + //{{AFX_DATA_INIT(CTreeFilesDlg) + // NOTE: the ClassWizard will add member initialization here + //}}AFX_DATA_INIT + // use imagelist to show TreeFilesDlg + m_ilTypeFile.Create(IDB_IMAGELIST, 16, 0, RGB(255,0,255)); +} + + +void CTreeFilesDlg::DoDataExchange(CDataExchange* pDX) +{ + COXSizeDialogBar::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CTreeFilesDlg) + DDX_Control(pDX, IDC_TREE_FILES, m_TreeFiles); + //}}AFX_DATA_MAP +} + + +BEGIN_MESSAGE_MAP(CTreeFilesDlg, COXSizeDialogBar) + //{{AFX_MSG_MAP(CTreeFilesDlg) + ON_NOTIFY(TVN_SELCHANGED, IDC_TREE_FILES, OnSelchangedTreeFiles) + ON_NOTIFY(NM_CLICK, IDC_TREE_FILES, OnClickTreeFiles) + ON_WM_RBUTTONUP() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CTreeFilesDlg message handlers + +BOOL CTreeFilesDlg::Create(CWnd* pParentWnd, UINT nIDTemplate, + UINT nStyle, UINT nID) +{ + if (!COXSizeDialogBar::Create(pParentWnd, MAKEINTRESOURCE(nIDTemplate), + nStyle, nID)) + return FALSE; + + UpdateData(FALSE); + + BOOL bSuccess=IniTreeFiles(); + if(!bSuccess) + { + AfxMessageBox(_T("Cannot create Tree Files Bar!")); + } + return bSuccess; +} + +BOOL CTreeFilesDlg::IniTreeFiles() +{ + // initialize info in TreeFilesDlg + m_TreeFiles.SetImageList(&m_ilTypeFile,TVSIL_NORMAL); + + TV_ITEM item; + TV_INSERTSTRUCT InsertStruct; + + // root - Bitmaps + item.mask=TVIF_CHILDREN|TVIF_IMAGE|TVIF_SELECTEDIMAGE|TVIF_STATE|TVIF_TEXT; + item.cChildren=1; + item.state=TVIS_BOLD|TVIS_EXPANDED; + item.stateMask=TVIS_BOLD|TVIS_EXPANDED; + item.pszText=_T("Opened Files"); + item.iImage=0; + item.iSelectedImage=0; + item.lParam=(DWORD)CDIBManagerDoc::TF_DIB; + + InsertStruct.hParent=NULL; + InsertStruct.hInsertAfter=TVI_LAST; + InsertStruct.item=item; + + if(m_TreeFiles.InsertItem(&InsertStruct)==NULL) + { + return FALSE; + } + + return TRUE; +} + +void CTreeFilesDlg::AddNewWindowToTree(CWnd* pWnd) +{ + ASSERT_VALID(pWnd); + if(!pWnd->IsKindOf(RUNTIME_CLASS(CChildFrame))) + return; + + if(FindWindowInTree(pWnd)!=NULL) + return; + + CString sWindowText; + pWnd->GetWindowText(sWindowText); + + TV_ITEM item; + item.mask=TVIF_CHILDREN|TVIF_IMAGE|TVIF_SELECTEDIMAGE|TVIF_PARAM|TVIF_TEXT; + item.cChildren=0; + item.pszText=(LPTSTR)(LPCTSTR)sWindowText; + item.iImage=1; + item.iSelectedImage=1; + item.lParam=(DWORD)pWnd; + + TV_INSERTSTRUCT InsertStruct; + InsertStruct.hParent=m_TreeFiles.GetRootItem(); + InsertStruct.hInsertAfter=TVI_SORT; + InsertStruct.item=item; + m_TreeFiles.InsertItem(&InsertStruct); + + m_TreeFiles.RedrawWindow(NULL,NULL,RDW_INVALIDATE | RDW_ERASE); +} + +void CTreeFilesDlg::RemoveWindowFromTree(CWnd* pWnd) +{ + if(!pWnd->IsKindOf(RUNTIME_CLASS(CChildFrame))) + return; + + HTREEITEM deleteItem=FindWindowInTree(pWnd); + if(deleteItem!=NULL) + m_TreeFiles.DeleteItem(deleteItem); + +} + +void CTreeFilesDlg::SetTextForWindowInTree(CWnd* pWnd, const CString& string) +{ + // rename the name of opened document + if(!pWnd->IsKindOf(RUNTIME_CLASS(CChildFrame))) + return; + + HTREEITEM setItem=FindWindowInTree(pWnd); + if(setItem!=NULL) + { + m_TreeFiles.SetItemText(setItem,string); + m_TreeFiles.SortChildren(m_TreeFiles.GetRootItem()); + m_TreeFiles.RedrawWindow(NULL,NULL,RDW_INVALIDATE | RDW_ERASE); + } + +} + +void CTreeFilesDlg::SetActiveWindowInTree(CWnd* pWnd) +{ + if(!pWnd->IsKindOf(RUNTIME_CLASS(CChildFrame))) + return; + + HTREEITEM setItem=FindWindowInTree(pWnd); + if(setItem!=NULL) + { + HTREEITEM selectedItem=m_TreeFiles.GetSelectedItem(); + if(setItem!=selectedItem) + { + if(selectedItem!=NULL) + { + m_TreeFiles.SetItemState(selectedItem,TVIS_SELECTED,TVIS_SELECTED); + } + m_TreeFiles.EnsureVisible(setItem); + m_TreeFiles.Select(setItem,TVGN_CARET); + } + } + +} + +HTREEITEM CTreeFilesDlg::FindWindowInTree(CWnd* pWnd) +{ + // find window with given pWnd + HTREEITEM result=NULL; + + if(!pWnd->IsKindOf(RUNTIME_CLASS(CChildFrame))) + return result; + + HTREEITEM childItem=m_TreeFiles.GetRootItem(); + while(childItem!=NULL) + { + DWORD itemData=m_TreeFiles.GetItemData(childItem); + if(itemData==(DWORD)pWnd) + { + result=childItem; + break; + } + childItem=m_TreeFiles.GetNextItem(childItem,TVGN_NEXTVISIBLE); + } + + return result; +} + + +void CTreeFilesDlg::OnSelchangedTreeFiles(NMHDR* pNMHDR, LRESULT* pResult) +{ + NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; + // TODO: Add your control notification handler code here + + // if we poke some element in TreeFilesDlg then + // activate corresponding window + ActivateWindowInTree((DWORD)pNMTreeView->itemNew.lParam); + + *pResult = 0; +} + + +void CTreeFilesDlg::ActivateWindowInTree(DWORD itemData) +{ + if(itemData!=m_TreeFiles.GetItemData(m_TreeFiles.GetRootItem())) + { + CDIBManagerApp* pApp=(CDIBManagerApp*)AfxGetApp(); + CMainFrame* pMainFrame=(CMainFrame*)pApp->m_pMainWnd; + + pMainFrame->LockWindowUpdate(); + pMainFrame->MDIActivate((CWnd*)itemData); + m_TreeFiles.SetActiveWindow(); + m_TreeFiles.SetFocus(); + pMainFrame->UnlockWindowUpdate(); + } +} + + +void CTreeFilesDlg::OnClickTreeFiles(NMHDR* pNMHDR, LRESULT* pResult) +{ + // TODO: Add your control notification handler code here + UNREFERENCED_PARAMETER(pNMHDR); + + // if we poke some element in TreeFilesDlg then + // activate corresponding window + HTREEITEM selectedItem=m_TreeFiles.GetSelectedItem(); + if(selectedItem!=NULL) + { + ActivateWindowInTree(m_TreeFiles.GetItemData(selectedItem)); + } + + *pResult = 0; +} + +void CTreeFilesDlg::OnRButtonUp(UINT nFlags, CPoint point) +{ + // TODO: Add your message handler code here and/or call default + + COXSizeDialogBar::OnRButtonUp(nFlags, point); +} + +BOOL CTreeFilesDlg::PreCreateWindow(CREATESTRUCT& cs) +{ + // TODO: Add your specialized code here and/or call the base class + + cs.lpszClass = AfxRegisterWndClass(CS_DBLCLKS,NULL,NULL,NULL); + ASSERT(cs.lpszClass); + + return COXSizeDialogBar::PreCreateWindow(cs); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/TreeFilesDlg.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/TreeFilesDlg.h new file mode 100644 index 0000000..bc3f1ef --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/TreeFilesDlg.h @@ -0,0 +1,64 @@ +#if !defined(AFX_TREEFILESDLG_H__D2552D20_7143_11D1_A3D5_0080C83F712F__INCLUDED_) +#define AFX_TREEFILESDLG_H__D2552D20_7143_11D1_A3D5_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// TreeFilesDlg.h : header file +// + +#include "OXSizeDlgBar.h" +#include "resource.h" + +///////////////////////////////////////////////////////////////////////////// +// CTreeFilesDlg dialog + +class CTreeFilesDlg : public COXSizeDialogBar +{ +// Construction +public: + CTreeFilesDlg(CWnd* pParent = NULL); // standard constructor + + void AddNewWindowToTree(CWnd* pWnd); + void RemoveWindowFromTree(CWnd* pWnd); + void SetTextForWindowInTree(CWnd* pWnd, const CString& string); + void SetActiveWindowInTree(CWnd* pWnd); + +// Dialog Data + //{{AFX_DATA(CTreeFilesDlg) + enum { IDD = IDD_DIALOG_TREE_FILES }; + CTreeCtrl m_TreeFiles; + //}}AFX_DATA + // list of images to use in tree control + CImageList m_ilTypeFile; + + BOOL Create(CWnd* pParentWnd, UINT nIDTemplate, UINT nStyle, UINT nID); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CTreeFilesDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + //}}AFX_VIRTUAL + +// Implementation +protected: + + BOOL IniTreeFiles(); + HTREEITEM FindWindowInTree(CWnd* pWnd); + void ActivateWindowInTree(DWORD itemData); + + // Generated message map functions + //{{AFX_MSG(CTreeFilesDlg) + afx_msg void OnSelchangedTreeFiles(NMHDR* pNMHDR, LRESULT* pResult); + afx_msg void OnClickTreeFiles(NMHDR* pNMHDR, LRESULT* pResult); + afx_msg void OnRButtonUp(UINT nFlags, CPoint point); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_TREEFILESDLG_H__D2552D20_7143_11D1_A3D5_0080C83F712F__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/WorkspaceDlg.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/WorkspaceDlg.cpp new file mode 100644 index 0000000..0131b7e --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/WorkspaceDlg.cpp @@ -0,0 +1,54 @@ +// WorkspaceDlg.cpp : implementation file +// + +#include "stdafx.h" +#include "dibmanager.h" +#include "WorkspaceDlg.h" +#include "Mainfrm.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CWorkspaceDlg dialog + + +CWorkspaceDlg::CWorkspaceDlg(CWnd* pParent /*=NULL*/) + : CDialog(CWorkspaceDlg::IDD, pParent) +{ + //{{AFX_DATA_INIT(CWorkspaceDlg) + m_bLoadOnEnter = FALSE; + m_bSaveOnExit = FALSE; + //}}AFX_DATA_INIT +} + + +void CWorkspaceDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CWorkspaceDlg) + DDX_Check(pDX, IDC_CHECK_LOAD_ON_ENTER, m_bLoadOnEnter); + DDX_Check(pDX, IDC_CHECK_SAVE_ON_EXIT, m_bSaveOnExit); + //}}AFX_DATA_MAP +} + + +BEGIN_MESSAGE_MAP(CWorkspaceDlg, CDialog) + //{{AFX_MSG_MAP(CWorkspaceDlg) + ON_BN_CLICKED(IDC_SAVE_WORKSPACE, OnSaveWorkspace) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CWorkspaceDlg message handlers + +void CWorkspaceDlg::OnSaveWorkspace() +{ + // TODO: Add your control notification handler code here + + CDIBManagerApp* pApp=(CDIBManagerApp*)AfxGetApp(); + ((CMainFrame*)pApp->m_pMainWnd)->SaveWorkspace(); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/WorkspaceDlg.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/WorkspaceDlg.h new file mode 100644 index 0000000..867fac4 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/WorkspaceDlg.h @@ -0,0 +1,47 @@ +#if !defined(AFX_WORKSPACEDLG_H__A53D9124_76C7_11D1_A3D5_0080C83F712F__INCLUDED_) +#define AFX_WORKSPACEDLG_H__A53D9124_76C7_11D1_A3D5_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// WorkspaceDlg.h : header file +// + +///////////////////////////////////////////////////////////////////////////// +// CWorkspaceDlg dialog + +class CWorkspaceDlg : public CDialog +{ +// Construction +public: + CWorkspaceDlg(CWnd* pParent = NULL); // standard constructor + +// Dialog Data + //{{AFX_DATA(CWorkspaceDlg) + enum { IDD = IDD_DIALOG_WORKSPACE }; + BOOL m_bLoadOnEnter; + BOOL m_bSaveOnExit; + //}}AFX_DATA + + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CWorkspaceDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + + // Generated message map functions + //{{AFX_MSG(CWorkspaceDlg) + afx_msg void OnSaveWorkspace(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_WORKSPACEDLG_H__A53D9124_76C7_11D1_A3D5_0080C83F712F__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/BMPdemo.BMP b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/BMPdemo.BMP new file mode 100644 index 0000000000000000000000000000000000000000..169bb5d439659d2dfecc36a0a1dc7af6af312190 GIT binary patch literal 76474 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 literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/DIBManager.ico b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/DIBManager.ico new file mode 100644 index 0000000000000000000000000000000000000000..2075ea2cf95411408245a506f188917ca69324f6 GIT binary patch literal 1078 zcmchWF>Zt~5Jf)_2_&Sz5vZc=w@8~K(a}z6X$!7GxsnTWf!re{fjy@f$C0Cg z*&60qXAC~Nq}`uYIETU-Iz7xeCrisaSv;30bSuB(R`UykcWei6N%F3(hCM-d`w6Ie z-XIGOOeLuF|<+!eua@O{sI1>BV%_D z;oaF00aYvr@f_dX^Z715>kK3qAkQ-h-Uq-rb(RG_Nr0mim~buUyyHx8KuK`#eprAX ztPP5iCZ~mSj*eD8w5?d29I`}l|9g~78KKEKLOtX{IbXs|3mx)1RO_r-g&`YYmbl&o zOobCS&$W&Pc?qP^zb+Zi9eua(ez@?*5M4_;COC`Po^qjo9^Nlb%8z^z?waL4D6(NV zO|?8$uxvfuI5dJ>gY3XKON*I~j(;h?Owjq`?MS3T!u9?lSNcsv*S{(0b169I?E2i& z-Ve*BriXp4ijt=Gxb*r@eNN|o7`r0G*AP^P-uoT(i1g)i8C>=~w<(HZN?x&Zsq{dq zV;Zr02=8syY}2N3NxgA==ezXQ?^5r#=5@0*tYdU_>G)fFQp1v4b8+fM-nZ@B-~(n{ B4d?&> literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/Dog.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/Dog.bmp new file mode 100644 index 0000000000000000000000000000000000000000..bfc2231b3eecff3da307f32daa289f45a217050c GIT binary patch literal 62438 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 literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/Logo.BMP b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/Logo.BMP new file mode 100644 index 0000000000000000000000000000000000000000..9370c08f90009ff7e9a7d7e18e8662eed8bc068a GIT binary patch literal 42662 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 U5vT}M1S$d*fr>yy;KL*Ef7p{7`v3p{ literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/ToolbarHot.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/ToolbarHot.bmp new file mode 100644 index 0000000000000000000000000000000000000000..53f6b52ee0987c13c2fa7e33d1ffb3d81da22684 GIT binary patch literal 2550 zcmbuBKWiIF7{(_kFggU*eT`HQSxgsNZo}JzK^V|1*W~}Fj_rEzUr>LLcZ}iBy z-=UA(W4%93&$Y2rO`XHnO{XTPap|tEuAqF-=+`w3ukeQtZ=sT3D&^9K7x}LK(xm@4 zIN%i$xBrj6%auLIvt31tgPk{V!g(^5PPLWgMV4n7s?^=4*{T(S7}^07iiD@GH)`ka z6!+h@Oamr))J%$EE%3^|iC{5Q1ey7|`|fMadP$ zet&<@iR%7{tM&F-v#eH2)jZ2voybgPsM70st_Op0#h-KCI5#w|!2%k33-oy%#gVIiJMMGb&$$@AZLXSJj8m%? zFL3Y)9#qxd?d@l3WiK?)sFfe%SB9%Nh+nUB)xV+2C9@fp7@vtJS6{wN<@os6`~`d# zb6bitpobc-g8YGap|XJOa5>~LR12gOTnLwPAzW&^6t534R`0;|0{R9MW!W`dow!-M6_oJ%Jq+N5i66TG1YpT>)HIT$GTsQtE$wZ8!k3sIM_y9;+kayS6oT~tQd1C&cSui=5ZprpS*X>leDCQmmJ_qr54dh>>__#N z?MJS=fJrrKeP#}&=aq*PuTbDCXi%TY;60)#WtF&8!F9PEuh~pO?Od(<5$A-+OHwt> zNpW|F3~so%8jJahS1v^KhmAm_53rgP9T$0U$Df^@P2m>k)Z#S=%5{_SSncLLd8=HnD>_oSY}o0&`aapK?bhb8pvD0+=+J literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/check.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/check.bmp new file mode 100644 index 0000000000000000000000000000000000000000..96094b6ec12eda2d36b64706fbc4a7a67812e127 GIT binary patch literal 246 zcmZ?r{l)+RWk5;;hy|dSk%0v)(Eui~5kMJ`WJ3dl0+K)`!+`?_fHX+rKNvCm{|{mT pF%W`;fJ8ZNzz&frfU03&fCw-^1=!1>0_89jA{!ioV<09L?!tr^Juv*OSL%`2=vJPc6lle7?CP!BX zmkiJLVOLQJC$~+O&zad1VzgJ3{jk_qvCu^7u6I?IWC4x`B3Wd5k|#`#Nk6*Fb4NeY zafl*l>K}Tv3%&77=NGz`pLnJh^tg@sZr;1QAeoAW1R?~@Sn$ynct!D0h;?|CGQ#50m=Sj9ko1%^ag&4@sv!q+CB|WKg9hU3J zU-%Z&ZN;|{>Ci8za0-FW%%>yx4!XzdT8|o4W=?eBhJSEhG4pri=o(cf?#MGZPh^3a z4cQjFD(^?$G>!16|2YMJ%3Kt@zt0cBU-SE??fZ@N*EzZ_4fm+)b75|!esqBP;(X$S m&g;TQ-0z^VzwsRnLW^NO{e%PN(iSy1|C!Ijw|V$Q(+|Hv_dV7C literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/icsreportlogo.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/icsreportlogo.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d3e37f9cc0841e5a97e9dfcd1e7227b8d511fbd2 GIT binary patch literal 74686 zcmeI3L2|4%6h-NDs(R=pFvujstRPfnl2P`P8LTYDQdmL{J#d-a`w&7xv~AoH)K4zS zHz3?PyrU-})c^nS*FV2pDsI2y&#yfAxvKvBsj4pck6Y)i^BBeUhsWbM@{cwdkO3Kx z0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}1 z8IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=P zkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx z0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}1 z8IS=PkO3Kx0U0P@;I-PhUGm<24vvJG4Qr`{&CG4 z+u6^*v!DOs?@hqG`6vJKzt4d3FQ)*^gy^e2HGxjg27B6EhYws^(k6p*IuEJIB zYVxfJr}?(~1=xD*Zm4po$QVb2+%?#-46o<4?OwRg&mXGsUcHQFzOQVDcf#KZBmW(I zw=2&Fi+{br)@0zGV7{LsDeN`1bo`8!$rkeYevW%Ogl~`*>BswU@$+85w`GFT@f)OJ zt}pz7$4BxRB$+P$fyZo;TVFi?e7lqB_&twX@ay3`enUR~FWmo!>NX&5>jrcD9m2-| zc&{3cQf0><7$yY#wqN+;a1`G%jD7urcwPH<9G(w~zXu508wR{r&z~MoX#Dd29sjku z;U4DruV@d;{{#8V!8QNoH2!Gg&-DmCdKkxA?1K1NW|AxtS$dBh=6#{QKA1TI1&%ScbHOG&!KAeA|dC0#N%RlgW3n3rp^ZbX`8aTKP zrShMIg>Un3oI8HcYvf}q)c;tu@sWpYUx$0nJC@Z7b(m5o!I6y<|wtTyH|@wg_$TjHf+@uOmEWUzX|T>LCU z*EA>G730^FWX2lu*%@$&WxQ0BPsxmRzLjq&#@AJgy1 zfDFih49I{C$bbxdWB}_c(+US(u5swMcKQ(4pO&rpsHX2->rnf&>R`)0o;58a!Lf%Hq~%X@gQ*iVGF2KK=aZ%%>YO zfBN~enIDp;;~Od;*2OH$x*1?A{p{_#U-PpkpyMZrwk-Qcw~&1V`j{WF-LGcVZ(pon z@i|HK$vm=U)O`=`a2K|BPRH{_`2X^!)EL zet%s4FD-9Sg54Gj$ICB0ab(p_^WUxbE$3%8_XqQnH{gT$eHi-*@t@6KhktPU+mILC z!?Eq3E=!)x_iv+5^!f0kCih|gA0qcWIhNlg{5rh(495m|82{P)B>Ym}e+(dPjQ=O| zlc!JqFJLXgNA17C&yaFa6(91`;cugjqUv^^?BtjF{&m28q_HJW|Ll*S`TNJO^6TA# zKl#9i{?qu|PpaE}c^^M*qTRsN2lnxEKYjh*fB9nj*Q>jK{&Zjb?eoA@4ZHZ+d;gdG zukJYS>F4nm2s#L1o6mtCxnAUrJAmWxF&};1__=3%d--+zfy`%*<4?bT$c(n?#D{@o z{$+{h@~Q4oK?55IqE!kfxI0SNi+Oq%}Q~Xp6`=;dhc2L?{H5=<7d#p=J>u534~w=KaDsn^?KkoL7@6n5%ue$UFWDWq{vQ>W@}Dj=`|u= zi1>klQth9b=2R~&^@Cxa?Dy|~DT(i&>H6c@eE%>iA3vVEY5b-5DXFTr{#A^h3}lXf zgWnv<-&kn}e_EXgx*w(F-K=s{8A7JxcB`~TVb*QtcgYP9law}D;izop_iMh5bP2yL z#ZMl9Hqs<_l^gHlPZH32+M1tz`1Abfl{09BhM^8Y0S~heKMQ|70+{LbVJsu+yHZ_yQrNE$bbyUfDFjM4`|?D D6Yjm0 literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/imagelis.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/res/imagelis.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2ba4594ba3b4f16b356f49459533384fc47b55ae GIT binary patch literal 374 zcmZXOJr2S!424|@sg)3dBQP?ubw{i@O{I!4V~)cO$Pqep%^lb?gwJtMhrYx=&-SzY zaC0XWGyaBMu?yD80bdh~JMTsK;=Khtsl*tG+9>r)DVkwCE#cA*>l3)GylUzaI*}8p z@#WQz<9Oe=9COa!lvJ(y^t1g7o&XrrgjkDQSo*94tmBH7FK{Ot_j9Js2ur%0RY zH$jATDo>Rv0b;m1d$2nJQs};q5~)vbIAeK_Gjo_FjVJMukB{WX$4`{(-M{|*Z~rb_ z`pch+;u&)Pc&{k_iTiuSpSy|;*AnFwq=qz*7E++FgjA3k(m+}W4NFJ`sUZ!dg|Kl6 zsUS6^fwT}hEFl%7hBS~C!cIy^1*stoq=lf={ZzQtkOtC1IG7SrL25_?X(1e738^48 zq=B>$4!VR?kQ&lJS_mgnLMliNX&^0xlPe(=q=qz*7J?4Yd*yy=TpLIWAqXX;g4B=( z(n1JK38^48q=B>$f>lB)NDXNqErbA;kP1>m8b}Kvs3oL=)Q|?!Lf{DF;Ye!t)8N`d z2!08vAT^|cv=A;x38^48q=B>$E>a1pAT^|cv=A;_38^48q=B>$E@la-AT^|cv=B7F zc!&x|(zu@%S1x)9sUS6^fwT|?LJ6rLHKc*G5C%sHsUS6^fwT|?ObMwVHKc*G5L_@G zltXGr18E_sz<9VqM1>=1-4Bd09+X3BNCRmhaDefk98yCXNDF~ej0feA8qz>o2s*-e zP!6df4Wxyjb98}nNDXNqErjX)_unr*_~3)$*|TTGhaY}eeDu*r#m66iT%4Vq6`y?a zN%85YpBA5g{(14m7he=#fBkjw%{Si^-+lL8@xu>46gM|F#jn5qTHN2?JAbtM^2;xa zAAkI@`1adxi^XD5{QUFJ#V^17Qrz9$IlJF~|GoInA8qlkuf8fi`|LA}faBv0V{#hD zMwMDl8G(#IMj#`Q5y%Ma905GAbJ`;Ux}baPHg^RCGWLfHgN%K~{%{B!uIC*08T-Q_ zaJZgx+-K|$hrr=_&T*fyKO6#w>p91L#{O^!9Ioda_Zj=cA#k{!bKGa_4~M|vdd_j5 zu|FIFhwC|A+`qmWlFUbogTZnz2xXFa7^)wn*k@gB)GsU^X?xYV_HJJfJuQ5hck%{* z6t$Lmdtd&h)8BYq@8UY1O^5x%Y)AvP=R=|9PM>$fd9H;+{^WTF%H_#WCb@I?e=Yhr zd)~FZinpDy@gg`rz3g#$I2A7#-Ocweqv_QR8(jBwKT+9kN{e_(hy6kZ?L&R<25XCd+asjq#-S!_3@ zMLZ?MUchj`vcnB=O)wbwS7TIEql?Y44RkKmdYpINkBd|zw2RjP>{F^EZyef2=wH4h z(fDf3`!c!roP-9Eln{FjVoy36_veenGE8_jBLYi-gw?WqGe&0!&e`k*Q~~JuXkk$K zTHDfCx+1#LcGhjn(1063tlh{)!3+dF$q?6Tc=tLtfyRBr6c+K65PKbeARR%EWv`7c zQwH`U2&e~mW;3d?R0wTTsok5lZXbxb({(v6b!FU+4B!%Mj?9A%^?RsFI#LxgW$S24 ziT(QQ)&UY50wi;GfEZo34Vgif>OtF{aBk9;x^6?q@UqAHZ8uUzHB^?&|^p>QP6ni^cj?I>d{uZR;XY1~=3rI4$E2!%>+(0_8lJRu#_hCS8L{q}Z>`mK_#qj|@dEr;|=v?3Hxf^f5j~?-A1BE72n-9hvZ$bOzv=bMLBa+fa6fg!gC#84f;a z^cw7woOIG+zcyP=V^5@Wb#*D&I`CzSMMAS^6ICX8(j;(KK)%yS!8u% z-l>VPm+v=jw(MjJ0x3xcj5K_s>E46wHnh5fU=;S)GDGA)fk~cV+TqS?V(cwru#0V^ z0}|3EPbD3@rvyj$@Q{#pkXoI?ld_Jt`VX6^vd0yxvw5FvmDRnS-VS7wQsj-)-_}OhE9ok3}d(xq<+h*;gV=D!0 zu7xETtHWe1?6CqT{cpFPz$8yFMWjUHh$>tZYpIRXIv;j zHcmR)V0Ie3^-o;O99Ea1*ea`wsn4dyer>kwC`_q;lKIVzJ0~dsxxFGf0h3q`TZvv> zl1kd@FJtIhs!zD=qIbTeui0!lyk@zT8XZ^M$4fbCy6%UIlFTEfzEL{tue#4%GMUr< z!MJLPq*O->Lm)?chgbWqrq@ea)(r9l9%|lCeXhm zz>=O|>RYA5Ub$2P8`&4bjK&qvY@izh_W%&U#U#~&G+0?L;A9?C`tKc_h9!FqO+}~Z||F&9B7x%sYX!Yth zSGyY8g~-A-@TDxf@XFa4DRE`h8;Hy&Fs-OYz%K8*?Ws<=x*8E#_Q3mo^S^ z-t8`Lx5xXFv0q(W=rlNA(a$a}E(DE>aqY@aOib1z-7JM*Ph08Cxf55xz1XmcOHww+ zC{+zM-gZy-N!ZK$7$gG=%;ziUwt5IV6UJ0s5&|$L>r1g5+{H*|jfBvFaqqg6L9$Do z!=VCy683g}M!y}ZpTo=alKL8^_@JF9(O zCt$Fq{! z5Mfeg-~}$yU1V2CQ;Yq|cPuusvICKfA66?;1uqi-i2yGu9-ZNZH{1f_v@eJPe9YUj}> zKi#X1=M`Ds;X4nF50s{2Z{f500Nq=V&I*&4paiFj`^ZvAXKzb75oX-`3QWabv2pVi ztf-rFiVxfRoR3>~+2jOx3r1)6wY(*!VrE94qH5 zINWGCYBqP@<0N2B?fgRhjw{c$^>K?K>^DuvUdJ6HS%HK5z$e)rV<6^tQpFZRI>vIW za*yb*oyN6@dl|{Nu3RjI;m39V*Kx0;`WWf>w;7^jrZ}jVN+e^_8I0C*D>#MQ(QjPE z3Spssr3TsG7I&L=SLfFG-q+;`aewDN{B;*T;H++{{S5A8IP-1l1S2`yqhvW8ULE9rm)j{fA=R z{2dJqJKo_dj4#dc92U~rBN%(`DjD``k77jG|2yj)(cLDr#*h>tT#F@#K z-46KDMwSA9#5U{+SOpi(&v9PTVXp_8O{8N0_m`yL^=ZY3Q$U@ z$6gtZ4Qw-?gxE{e2F9>uM%ULVo-(a&276>`LhO}v_|bvMl8n`5AGjt~@4Ou8H6iwE z3_{2R%vD6Uq$96aOPU{bN{PJ?iu>q5;H1nEkaVHj(Y<4#H0+ucO@nvoySf( z%dW+{a!nie8sst3;dh>V(($pC7<*xmKsvT;3+ZrFV(#{dAL;Sk6Jwu%bkxOhlTc#p zW2B?6T$XgG%RYFwzUidKUKnEv>Ci@+@IL_<>BmPjGNWYJFS|eJ6(HyRpZG2xIqBSn zb3J}twYnJnb&ZVl__E2cS7s3~k-gNa80n1A9=AO{z-30suve-W<5y~xBO+mVr*8y5 z(3Xt&c(UoRzxV%)VC}xJ|Hi=Ti=MD-%S-=$c073NOwwVmUUPm50vY=$DDB23W4{|* zr+CfSPeExnHW~Zf;5x-?#(oM)yRpgG?*`W?UNiPnP}+@6#(p=rPVt(tpMuhEY%=z{ z!F7t)jQtdpc4L#V-wm!)yk_jDptKvCjQwtKo#HiPKLw@T*ktT?gXc#17=;M>sxd*&>=&I2894kMQ)LdAyC0I&>`CFD|G4=yk*Fs+#pxT z)=q|oASvKMeeeC09NPifAxz9Ck<`zRk3ae4>(e`@GDrOZzuAd%@1ZAdsP-!L>t(O1 zoWsAXDihRrba!`mP3!Y3>=S7(pd5$WDJDNuj#IT775woiU>8^^|# z{KCgUT))WW<1{u1$RX4r<~h?4a0PM^i(ICvUvho^@pGv2YFu@#rSG`-iiAU2iEC2V zYvfm))N40>z=Yl|$s70>6CP*4D+V8 z_%Zg894Jhy8a_eS*iX0-K4}PzZ{!#9o;=g(R9s2-xFYk5<Vc12@spIM?Vr;-0|kb>iuCkIVZjQnl@6`S^$(+;MR> z7RxU_xp2#PTf~Q=gR_-A7kSX)SF2S8AE1@_l?CJCe!x~rL$0)s*NlyIBrd0oYyz>2 zi-`p;3Ld)q-p(UF4QnsMbjEPS+LhgN84r$^d`znR%5E?%%0w3-xolm}Qzh5r8L`nl z#H?q0#F}`s#yMAT*`-%}^*rJ`aN!>hDs&8`D9kVCd!BTij{5V6jMrEtnEdh#Gisk> z^+FSuhN_y=G0QL5b?6sXAsZuhQGQ_v&M{YrlBfLgUL4#X`h|I=iQdMlMOc#17=;M>sxd*&>=&I2894kMQ)LdAyC0I&>`CFD|G4=yk*Fs+#pxT z)=q|oASvKMeeeC09NPifAxz9Ck<`zRk3ae4>(e`@GDrOZzuAd%@1ZAdsP-!L>t(O1 zoWsAXDihRrba!`mP3!Y3>=S7(pd5$WDJDNuj#IT775woiU>8^^|# z{KCgUT))WW<1{u1$RX4r<~h?4a0PM^i(ICvUvho^@pGv2YFu@#rSG`-iiAU2iEC2V zYvfm))N40>z=Yl|$s70>6CP*4D+V8 z_%Zg894Jhy8a_eS*iX0-K4}PzZ{!#9o;=g(R9s2-xFYk5<Vc12@spIM?Vr;-0|kb>iuCkIVZjQnl@6`S^$(+;MR> z7RxU_xp2#PTf~Q=gR_-A7kSX)SF2S8AE1@_l?CJCe!x~rL$0)s*NlyIBrd0oYyz>2 zi-`p;3Ld)q-p(UF4QnsMbjEPS+LhgN84r$^d`znR%5E?%%0w3-xolm}Qzh5r8L`nl z#H?q0#F}`s#yMAT*`-%}^*rJ`aN!>hDs&8`D9kVCd!BTij{5V6jMrEtnEdh#Gisk> z^+FSuhN_y=G0QL5b?6sXAsZuhQGQ_v&M{YrlBfLgUL4#X`h|I=iQdMlMOml>(7?{hdz5#g6rIBvV2OZ-chmNNY92RtZLpnm;GE-I|q*- zR3^bdH+ZAsDm$DPsoF-gceh?rtD67BiX>CD?PY}`!DL3B*SVfiS6-Fr*fNMGUvR-8 z)Tt1|%jb0)`v9RCFca~qe7UTex!c(S$UTW%K zYXNFfeCvg+3sp7rA_MC$wRmK;7*BA``EIUta2W)yu&xjHG1uFlKdyaW8&_=Yz@?4D z1zG1(eyN=ncLWc;I9@1(?=D?Ek902Ir<|qmu-Z-1t8V4$qZ%XIs88?Xv0nJH=FBx| zGUq4`isPb_TsTj{l-nCmVbEO7%8?TeE(Y*aLlYjj)67*_M|%B(>zRzshK{^vx`OTm zkp_uG8Mx{cEh?*g=9P63EZ5KKzi&L<%5moMi!U**97wHeQDHV4ksY|Syo&syLJIsz zBLz^OhRQitR`O{O!^-&N5?t*Z?_&@2Y8!Jr-h~xhO02Pc{g3jif4`8}g87c| zA@aBAz!f|wCmG?kb$$sAmJct?vDM}ziv9du)t6PDR%DZ__Z``_?&%e`@`ww+rcCzf ztIgCfpiXY)nMVr~g^X+W5q;${>|e~&ZR65Vl$fX*JjzyzMShJmB^$!^ypI@zkhd#3&w1WkdOHA7ejQkSK>{KtfBwCLX-%G8K&A|zD hp2G^fDac&nKa+@~yW82pFM^BlGrdmTj#@-!!e6t^aQpxO literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/resource.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/resource.h new file mode 100644 index 0000000..ff6ff8b --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/DIBManager/resource.h @@ -0,0 +1,122 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by DIBManager.rc +// +#define IDC_SAVE_WORKSPACE 3 +#define ID_MIN_ZOOM_LEVEL 10 +#define IDR_MAINFRAME 128 +#define IDR_DIBMANTYPE 129 +#define IDR_DUMMY 129 +#define IDD_DIALOG_TREE_FILES 130 +#define ID_INDICATOR_SIZE 130 +#define IDR_DUMMY_HOT 130 +#define IDB_IMAGELIST 131 +#define ID_INDICATOR_ZOOM 131 +#define IDB_CHECK 132 +#define ID_INDICATOR_PARAMETERS 132 +#define ID_INDICATOR_PROGRESS 133 +#define IDR_MAINFRAME_COPY 133 +#define ID_DESCRIPTION_FILE 134 +#define IDR_MAINFRAME_HOT 135 +#define IDB_LOGO 140 +#define IDB_LOGO_DUMMY 141 +#define IDD_DIALOG_EXPORT 142 +#define IDD_DIALOG_IMPORT 143 +#define IDD_DIALOG_WORKSPACE 144 +#define IDD_DIALOG_ROLLUP 159 +#define IDD_IMAGE_INFO_DIALOG 164 +#define IDD_DIALOG_RESAMPLE 165 +#define IDB_LOGO_TEST 172 +#define SIZE_ERROR_BUF 255 +#define ID_MAX_ZOOM_LEVEL 800 +#define IDC_TREE_FILES 1000 +#define IDC_FILENAME 1001 +#define IDC_QUALITY 1002 +#define IDC_SPIN_QUALITY 1003 +#define IDC_CHECK_SMOOTH 1004 +#define IDC_SMOOTH 1005 +#define IDC_SPIN_SMOOTH 1006 +#define IDC_CHECK_GRAYSCALE 1007 +#define IDC_CHECK_OPTIMIZE 1008 +#define IDC_CHECK_PROGRESSIVE 1009 +#define IDC_CHECK_BASELINE 1010 +#define IDC_RADIO_DCT_INT 1011 +#define IDC_RADIO_DCT_FAST 1012 +#define IDC_RADIO_DCT_FLOAT 1013 +#define IDC_CHECK_COLORS 1015 +#define IDC_COLORS 1016 +#define IDC_SPIN_COLORS 1017 +#define IDC_RADIO_ONE_TO_ONE 1018 +#define IDC_RADIO_ONE_TO_TWO 1019 +#define IDC_RADIO_ONE_TO_FOUR 1020 +#define IDC_RADIO_ONE_TO_EIGHT 1021 +#define IDC_CHECK_ONE_PASS 1022 +#define IDC_CHECK_NO_SMOOTH 1023 +#define IDC_RADIO_DM_FLOYD_STEIN 1024 +#define IDC_CHECK_SAVE_ON_EXIT 1024 +#define IDC_RADIO_DM_ORDERED 1025 +#define IDC_CHECK_LOAD_ON_ENTER 1025 +#define IDC_RADIO_DM_NONE 1026 +#define IDC_ZOOM_LEVEL 1026 +#define IDC_SPIN_ZOOM_LEVEL 1028 +#define IDC_BUTTON_APPLY 1029 +#define IDC_PICTURE 1030 +#define IDC_SPIN_WIDTH_PIXELS 1030 +#define IDC_SCALED_WIDTH 1031 +#define IDC_SPIN_HEIGHT_PIXELS 1031 +#define IDC_SCALED_HEIGHT 1032 +#define IDC_SPIN_WIDTH_PERCENTS 1032 +#define IDC_SPIN_HEIGHT_PERCENTS 1033 +#define IDC_FILE_NAME 1035 +#define IDC_WIDTH 1036 +#define IDC_HEIGHT 1037 +#define IDC_WIDTH_PIXELS 1037 +#define IDC_SIZE_IN_MEMORY 1038 +#define IDC_HEIGHT_PIXELS 1038 +#define IDC_FILE_SIZE 1039 +#define IDC_WIDTH_PERCENTS 1039 +#define IDC_FORMAT 1040 +#define IDC_HEIGHT_PERCENTS 1040 +#define IDC_TYPE 1041 +#define IDC_WIDTH_ORIG 1041 +#define IDC_FILE_STATUS 1042 +#define IDC_HEIGHT_ORIG 1042 +#define IDC_CHECK_MAINTAIN_RATIO 1043 +#define IDC_CHECK_MATCH_ZOOM_LEVEL 1044 +#define IDC_COMBO_CONVERT_TO 1045 +#define IDC_CHECK_CONVERT_TO 1046 +#define ID_BUTTON_RESET 1047 +#define IDC_BUTTON_DUMMY 1048 +#define ID_TIME_SHOWING_LOGO 5500 +#define MAX_INT 32767 +#define ID_WINDOW_SYNCHRONIZE 32772 +#define ID_VIEW_ZOOM_IN 32776 +#define ID_VIEW_ZOOM_OUT 32777 +#define ID_VIEW_ZOOM_TO_WINDOW 32778 +#define ID_VIEW_ZOOM_TO_100 32779 +#define ID_TREEFILESBAR 32781 +#define ID_FILE_EXPORT 32786 +#define ID_FILE_IMPORT 32787 +#define ID_FILE_SET_PROTECTION 32788 +#define ID_FILE_REMOVE_PROTECTION 32789 +#define ID_FILE_PROTECTED 32796 +#define ID_VIEW_WORKSPACE 32798 +#define ID_VIEW_SCALE_DLG 32803 +#define ID_VIEW_ZOOM_LEVEL_DLG 32804 +#define ID_VIEW_TREE_BAR 32805 +#define ID_VIEW_IMAGE_INFO 32808 +#define ID_VIEW_RESAMPLE_IMAGE 32809 +#define ID_VIEW_ZOOM 32810 +#define ID_VIEW_ZOOM_TOOLBAR 0xe883 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_3D_CONTROLS 1 +#define _APS_NEXT_RESOURCE_VALUE 173 +#define _APS_NEXT_COMMAND_VALUE 32820 +#define _APS_NEXT_CONTROL_VALUE 1055 +#define _APS_NEXT_SYMED_VALUE 112 +#endif +#endif diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.clw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.clw new file mode 100644 index 0000000..84ae33c --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.clw @@ -0,0 +1,121 @@ +; CLW file contains information for the MFC ClassWizard + +[General Info] +Version=1 +LastClass=CFileExplorerView +LastTemplate=CDialog +NewFileInclude1=#include "stdafx.h" +NewFileInclude2=#include "fileexplorer.h" +LastPage=0 + +ClassCount=7 +Class1=CFileExplorerApp +Class2=CAboutDlg +Class3=CFileExplorerDoc +Class4=CFileExplorerView +Class5=CLeftView +Class6=CMainFrame +Class7=COXShellObjectList + +ResourceCount=2 +Resource1=IDR_VIEWTYPE +Resource2=IDR_MAINFRAME + +[CLS:CFileExplorerApp] +Type=0 +BaseClass=CWinApp +HeaderFile=FileExplorer.h +ImplementationFile=FileExplorer.cpp +Filter=N +VirtualFilter=AC +LastObject=CFileExplorerApp + +[CLS:CAboutDlg] +Type=0 +BaseClass=CDialog +HeaderFile=FileExplorer.cpp +ImplementationFile=FileExplorer.cpp +LastObject=CAboutDlg + +[CLS:CFileExplorerDoc] +Type=0 +BaseClass=CDocument +HeaderFile=FileExplorerDoc.h +ImplementationFile=FileExplorerDoc.cpp + +[CLS:CFileExplorerView] +Type=0 +BaseClass=CView +HeaderFile=FileExplorerView.h +ImplementationFile=FileExplorerView.cpp +Filter=C +VirtualFilter=VWC +LastObject=CFileExplorerView + +[CLS:CLeftView] +Type=0 +BaseClass=CView +HeaderFile=LeftView.h +ImplementationFile=LeftView.cpp +Filter=C +VirtualFilter=VWC +LastObject=CLeftView + +[CLS:CMainFrame] +Type=0 +BaseClass=CFrameWnd +HeaderFile=MainFrm.h +ImplementationFile=MainFrm.cpp + +[CLS:COXShellObjectList] +Type=0 +BaseClass=CListCtrl +HeaderFile=OXShellObjectList.h +ImplementationFile=OXShellObjectList.cpp + +[TB:IDR_MAINFRAME] +Type=1 +Class=? +Command1=ID_VIEW_LARGEICON +Command2=ID_VIEW_SMALLICON +Command3=ID_VIEW_LIST +Command4=ID_VIEW_DETAILS +Command5=ID_APP_ABOUT +CommandCount=5 + +[MNU:IDR_MAINFRAME] +Type=1 +Class=? +Command1=ID_APP_EXIT +Command2=ID_VIEW_TOOLBAR +Command3=ID_VIEW_STATUS_BAR +Command4=ID_APP_ABOUT +CommandCount=4 + +[MNU:IDR_VIEWTYPE] +Type=1 +Class=? +Command1=ID_VIEW_LARGEICON +Command2=ID_VIEW_SMALLICON +Command3=ID_VIEW_LIST +Command4=ID_VIEW_DETAILS +CommandCount=4 + +[ACL:IDR_MAINFRAME] +Type=1 +Class=? +Command1=ID_FILE_NEW +Command2=ID_FILE_OPEN +Command3=ID_FILE_SAVE +Command4=ID_EDIT_UNDO +Command5=ID_EDIT_CUT +Command6=ID_EDIT_COPY +Command7=ID_EDIT_PASTE +Command8=ID_EDIT_UNDO +Command9=ID_EDIT_CUT +Command10=ID_EDIT_COPY +Command11=ID_EDIT_PASTE +Command12=ID_NEXT_PANE +Command13=ID_PREV_PANE +CommandCount=13 + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.cpp new file mode 100644 index 0000000..2fd4804 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.cpp @@ -0,0 +1,131 @@ +// FileExplorer.cpp : Defines the class behaviors for the application. +// + +#include "stdafx.h" +#include "FileExplorer.h" + +#include "MainFrm.h" +#include "FileExplorerDoc.h" +#include "LeftView.h" + +#include "UTSampleAbout.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CFileExplorerApp + +BEGIN_MESSAGE_MAP(CFileExplorerApp, CWinApp) + //{{AFX_MSG_MAP(CFileExplorerApp) + ON_COMMAND(ID_APP_ABOUT, OnAppAbout) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG_MAP + // Standard file based document commands + ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) + ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CFileExplorerApp construction + +CFileExplorerApp::CFileExplorerApp() +{ + // TODO: add construction code here, + // Place all significant initialization in InitInstance +} + +///////////////////////////////////////////////////////////////////////////// +// The one and only CFileExplorerApp object + +CFileExplorerApp theApp; +static HINSTANCE g_hRichEdDLL=NULL; + +///////////////////////////////////////////////////////////////////////////// +// CFileExplorerApp initialization + +BOOL CFileExplorerApp::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. + + // Initialize RichEdit control + // for About Dialog + if(g_hRichEdDLL==NULL) + { + g_hRichEdDLL=::LoadLibrary(_T("RICHED32.DLL")); + if(g_hRichEdDLL==NULL) + TRACE(_T("Cannot load library to display RichEditTextControl")); + } + + +#if _MSC_VER < 1400 +#ifdef _AFXDLL + Enable3dControls(); // Call this when using MFC in a shared DLL +#else + Enable3dControlsStatic(); // Call this when linking to MFC statically +#endif +#endif + + + // Change the registry key under which our settings are stored. + // TODO: You should modify this string to be something appropriate + // such as the name of your company or organization. + SetRegistryKey(_T("Local AppWizard-Generated Applications")); + + LoadStdProfileSettings(); // Load standard INI file options (including MRU) + + // Register the application's document templates. Document templates + // serve as the connection between documents, frame windows and views. + + CSingleDocTemplate* pDocTemplate; + pDocTemplate = new CSingleDocTemplate( + IDR_MAINFRAME, + RUNTIME_CLASS(CFileExplorerDoc), + RUNTIME_CLASS(CMainFrame), // main SDI frame window + RUNTIME_CLASS(CLeftView)); + AddDocTemplate(pDocTemplate); + + // Parse command line for standard shell commands, DDE, file open + CCommandLineInfo cmdInfo; + ParseCommandLine(cmdInfo); + + // Dispatch commands specified on the command line + if (!ProcessShellCommand(cmdInfo)) + return FALSE; + + // The one and only window has been initialized, so show and update it. + m_pMainWnd->ShowWindow(SW_SHOW); + m_pMainWnd->UpdateWindow(); + + return TRUE; +} + + +// App command to run the dialog +void CFileExplorerApp::OnAppAbout() +{ + CUTSampleAboutDlg dlgAbout(IDR_MAINFRAME,ID_DESCRIPTION_FILE); + dlgAbout.DoModal(); +} + +///////////////////////////////////////////////////////////////////////////// +// CFileExplorerApp message handlers + + +int CFileExplorerApp::ExitInstance() +{ + // TODO: Add your specialized code here and/or call the base class + + // unload the library + if(g_hRichEdDLL!=NULL) + ::FreeLibrary(g_hRichEdDLL); + + return CWinApp::ExitInstance(); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.dsp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.dsp new file mode 100644 index 0000000..acfd7ad --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.dsp @@ -0,0 +1,441 @@ +# Microsoft Developer Studio Project File - Name="FileExplorer" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=FileExplorer - Win32 Unicode_Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "FileExplorer.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "FileExplorer.mak" CFG="FileExplorer - Win32 Unicode_Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "FileExplorer - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "FileExplorer - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE "FileExplorer - Win32 Release_Shared" (based on "Win32 (x86) Application") +!MESSAGE "FileExplorer - Win32 Unicode_Debug" (based on "Win32 (x86) Application") +!MESSAGE "FileExplorer - Win32 Unicode_Release" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "FileExplorer - Win32 Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /Zi /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "OXSHELLTREE_WATCHFORDIR" /D "OXSHELLLIST_WATCHFORDIR" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"FileExplorer.exe" + +!ELSEIF "$(CFG)" == "FileExplorer - Win32 Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /D "OXSHELLTREE_WATCHFORDIR" /D "OXSHELLLIST_WATCHFORDIR" /Yu"stdafx.h" /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"FileExplorer.exe" /pdbtype:sept + +!ELSEIF "$(CFG)" == "FileExplorer - Win32 Release_Shared" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "FileExplorer___Win32_Release_Shared" +# PROP BASE Intermediate_Dir "FileExplorer___Win32_Release_Shared" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release_Shared" +# PROP Intermediate_Dir "Release_Shared" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "OXSHELLTREE_WATCHFORDIR" /D "OXSHELLLIST_WATCHFORDIR" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "OXSHELLTREE_WATCHFORDIR" /D "OXSHELLLIST_WATCHFORDIR" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /out:"FileExplorer.exe" +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"FileExplorer.exe" + +!ELSEIF "$(CFG)" == "FileExplorer - Win32 Unicode_Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "FileExplorer___Win32_Unicode_Debug" +# PROP BASE Intermediate_Dir "FileExplorer___Win32_Unicode_Debug" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Unicode_Debug" +# PROP Intermediate_Dir "Unicode_Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /D "OXSHELLTREE_WATCHFORDIR" /D "OXSHELLLIST_WATCHFORDIR" /Yu"stdafx.h" /FD /GZ /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /D "OXSHELLTREE_WATCHFORDIR" /D "OXSHELLLIST_WATCHFORDIR" /D "_UNICODE" /Yu"stdafx.h" /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"FileExplorer.exe" /pdbtype:sept +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /debug /machine:I386 /out:"FileExplorer.exe" /pdbtype:sept + +!ELSEIF "$(CFG)" == "FileExplorer - Win32 Unicode_Release" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "FileExplorer___Win32_Unicode_Release" +# PROP BASE Intermediate_Dir "FileExplorer___Win32_Unicode_Release" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Unicode_Release" +# PROP Intermediate_Dir "Unicode_Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "OXSHELLTREE_WATCHFORDIR" /D "OXSHELLLIST_WATCHFORDIR" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /Zi /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "OXSHELLTREE_WATCHFORDIR" /D "OXSHELLLIST_WATCHFORDIR" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /out:"FileExplorer.exe" +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /debug /machine:I386 /out:"FileExplorer.exe" + +!ENDIF + +# Begin Target + +# Name "FileExplorer - Win32 Release" +# Name "FileExplorer - Win32 Debug" +# Name "FileExplorer - Win32 Release_Shared" +# Name "FileExplorer - Win32 Unicode_Debug" +# Name "FileExplorer - Win32 Unicode_Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Group "UTBSource" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\source\UTSampleAbout\HtmlCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\MFCToolBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OX3DTabView.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXAdvancedAssert.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXAdvancedAssertMail.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXBitmapMenu.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXBitmapMenuOrganizer.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXCoolToolBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\oxdocktabctrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXDragDockContext.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXFileWatcher.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXFileWatchNotifier.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXFrameWndDock.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXMDIFloatWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXMenuBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXRectTracker.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXShellFolderTree.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXShellNamespaceNavigator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXShellObjectList.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXShortcutBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSizeCtrlBar.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSizeDockBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSizeToolBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkinnedSpinCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkinnedTabCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkins.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSplitterRect.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSzMiniDockFrmWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXTabClientWnd.cpp +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXToolTipCtrl.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXUxTheme.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXWatchedDir.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\UTBStrOp.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\UTSampleAbout\UTSampleAbout.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\Xstatus4.cpp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\FileExplorer.cpp +# End Source File +# Begin Source File + +SOURCE=.\FileExplorer.rc +# End Source File +# Begin Source File + +SOURCE=.\FileExplorerDoc.cpp +# End Source File +# Begin Source File + +SOURCE=.\FileExplorerView.cpp +# End Source File +# Begin Source File + +SOURCE=.\LeftView.cpp +# End Source File +# Begin Source File + +SOURCE=.\MainFrm.cpp +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\FileExplorer.h +# End Source File +# Begin Source File + +SOURCE=.\FileExplorerDoc.h +# End Source File +# Begin Source File + +SOURCE=.\FileExplorerView.h +# End Source File +# Begin Source File + +SOURCE=.\LeftView.h +# End Source File +# Begin Source File + +SOURCE=.\MainFrm.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXCoolToolBar.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXShellFolderTree.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXShellNamespaceNavigator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXShellObjectList.h +# End Source File +# Begin Source File + +SOURCE=.\Resource.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\res\bitmap1.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\bm_file.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\FileExplorer.ico +# End Source File +# Begin Source File + +SOURCE=.\res\FileExplorer.rc2 +# End Source File +# Begin Source File + +SOURCE=.\res\FileExplorerDoc.ico +# End Source File +# Begin Source File + +SOURCE=.\res\tb_file_disabled.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\tb_file_hot.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\Toolbar.bmp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ReadMe.txt +# End Source File +# End Target +# End Project diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.dsw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.dsw new file mode 100644 index 0000000..9133646 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "FileExplorer"=".\FileExplorer.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.exe.manifest b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.exe.manifest new file mode 100644 index 0000000..275675d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.exe.manifest @@ -0,0 +1,22 @@ + + + +Your app description here + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.h new file mode 100644 index 0000000..79b4cd9 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.h @@ -0,0 +1,50 @@ +// FileExplorer.h : main header file for the FILEEXPLORER application +// + +#if !defined(AFX_FILEEXPLORER_H__10814F89_EC24_11D2_A7FB_525400DAF3CE__INCLUDED_) +#define AFX_FILEEXPLORER_H__10814F89_EC24_11D2_A7FB_525400DAF3CE__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols + +///////////////////////////////////////////////////////////////////////////// +// CFileExplorerApp: +// See FileExplorer.cpp for the implementation of this class +// + +class CFileExplorerApp : public CWinApp +{ +public: + CFileExplorerApp(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CFileExplorerApp) + public: + virtual BOOL InitInstance(); + virtual int ExitInstance(); + //}}AFX_VIRTUAL + +// Implementation + //{{AFX_MSG(CFileExplorerApp) + afx_msg void OnAppAbout(); + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_FILEEXPLORER_H__10814F89_EC24_11D2_A7FB_525400DAF3CE__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.rc b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.rc new file mode 100644 index 0000000..f23959f --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.rc @@ -0,0 +1,380 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif //_WIN32\r\n" + "#include ""res\\FileExplorer.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "#include ""UTSampleAbout.rc"" \r\n" + "#include ""OXCoolToolBar.rc""\r\n" + "#include ""OXFileWatcher.rc""\r\n" + "#include ""OXMenuBar.rc""\r\n" + "#include ""OXShellFolderTree.rc""\r\n" + "#include ""OXShellObjectList.rc""\r\n" + "#endif\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON DISCARDABLE "res\\FileExplorer.ico" +IDR_FILEEXTYPE ICON DISCARDABLE "res\\FileExplorerDoc.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDR_MAINFRAME BITMAP MOVEABLE PURE "res\\Toolbar.bmp" +IDB_TB_FILE_DISABLED BITMAP DISCARDABLE "res\\tb_file_disabled.bmp" + +///////////////////////////////////////////////////////////////////////////// +// +// Toolbar +// + +IDR_MAINFRAME TOOLBAR DISCARDABLE 16, 15 +BEGIN + BUTTON ID_VIEW_LARGEICON + BUTTON ID_VIEW_SMALLICON + BUTTON ID_VIEW_LIST + BUTTON ID_VIEW_DETAILS + SEPARATOR + BUTTON ID_APP_ABOUT +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_MAINFRAME MENU PRELOAD DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "E&xit", ID_APP_EXIT + END + POPUP "&View" + BEGIN + MENUITEM "&Toolbar", ID_VIEW_TOOLBAR + MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR + END + POPUP "&Help" + BEGIN + MENUITEM "&About FileExplorer...", ID_APP_ABOUT + END +END + +IDR_VIEWTYPE MENU DISCARDABLE +BEGIN + POPUP "Popup" + BEGIN + MENUITEM "Lar&ge Icons", ID_VIEW_LARGEICON + MENUITEM "S&mall Icons", ID_VIEW_SMALLICON + MENUITEM "&List", ID_VIEW_LIST + MENUITEM "&Details", ID_VIEW_DETAILS + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Accelerator +// + +IDR_MAINFRAME ACCELERATORS PRELOAD MOVEABLE PURE +BEGIN + "N", ID_FILE_NEW, VIRTKEY, CONTROL + "O", ID_FILE_OPEN, VIRTKEY, CONTROL + "S", ID_FILE_SAVE, VIRTKEY, CONTROL + "Z", ID_EDIT_UNDO, VIRTKEY, CONTROL + "X", ID_EDIT_CUT, VIRTKEY, CONTROL + "C", ID_EDIT_COPY, VIRTKEY, CONTROL + "V", ID_EDIT_PASTE, VIRTKEY, CONTROL + VK_BACK, ID_EDIT_UNDO, VIRTKEY, ALT + VK_DELETE, ID_EDIT_CUT, VIRTKEY, SHIFT + VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL + VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT + VK_F6, ID_NEXT_PANE, VIRTKEY + VK_F6, ID_PREV_PANE, VIRTKEY, SHIFT +END + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "FileExplorer MFC Application\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "FileExplorer\0" + VALUE "LegalCopyright", "Copyright (C) 1999\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "FileExplorer.EXE\0" + VALUE "ProductName", "FileExplorer Application\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE PRELOAD DISCARDABLE +BEGIN + IDR_MAINFRAME "FileExplorer\n\nFileEx\n\n\nFileExplorer.Document\nFileEx Document" + ID_VIEW_BACKWARD "Go back\nBack" + ID_VIEW_FORWARD "Go forward\nForward" + ID_VIEW_UP "Go to the parent folder\nUp" + ID_VIEW_PROPERTY "Display item properties\nProperties" + ID_VIEW_TYPE "Display items in the list view as ...\nViews" + ID_EDIT_DELETE "Delete item\nDelete" + ID_DESCRIPTION_FILE "FileExplorerInfo.rtf" +END + +STRINGTABLE PRELOAD DISCARDABLE +BEGIN + AFX_IDS_APP_TITLE "FileExplorer" + AFX_IDS_IDLEMESSAGE "Ready" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_INDICATOR_EXT "EXT" + ID_INDICATOR_CAPS "CAP" + ID_INDICATOR_NUM "NUM" + ID_INDICATOR_SCRL "SCRL" + ID_INDICATOR_OVR "OVR" + ID_INDICATOR_REC "REC" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_NEW "Create a new document\nNew" + ID_FILE_OPEN "Open an existing document\nOpen" + ID_FILE_CLOSE "Close the active document\nClose" + ID_FILE_SAVE "Save the active document\nSave" + ID_FILE_SAVE_AS "Save the active document with a new name\nSave As" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_APP_ABOUT "Display program information, version number and copyright\nAbout" + ID_APP_EXIT "Quit the application; prompts to save documents\nExit" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_MRU_FILE1 "Open this document" + ID_FILE_MRU_FILE2 "Open this document" + ID_FILE_MRU_FILE3 "Open this document" + ID_FILE_MRU_FILE4 "Open this document" + ID_FILE_MRU_FILE5 "Open this document" + ID_FILE_MRU_FILE6 "Open this document" + ID_FILE_MRU_FILE7 "Open this document" + ID_FILE_MRU_FILE8 "Open this document" + ID_FILE_MRU_FILE9 "Open this document" + ID_FILE_MRU_FILE10 "Open this document" + ID_FILE_MRU_FILE11 "Open this document" + ID_FILE_MRU_FILE12 "Open this document" + ID_FILE_MRU_FILE13 "Open this document" + ID_FILE_MRU_FILE14 "Open this document" + ID_FILE_MRU_FILE15 "Open this document" + ID_FILE_MRU_FILE16 "Open this document" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_NEXT_PANE "Switch to the next window pane\nNext Pane" + ID_PREV_PANE "Switch back to the previous window pane\nPrevious Pane" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_WINDOW_SPLIT "Split the active window into panes\nSplit" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_EDIT_CLEAR "Erase the selection\nErase" + ID_EDIT_CLEAR_ALL "Erase everything\nErase All" + ID_EDIT_COPY "Copy the selection and put it on the Clipboard\nCopy" + ID_EDIT_CUT "Cut the selection and put it on the Clipboard\nCut" + ID_EDIT_FIND "Find the specified text\nFind" + ID_EDIT_PASTE "Insert Clipboard contents\nPaste" + ID_EDIT_REPEAT "Repeat the last action\nRepeat" + ID_EDIT_REPLACE "Replace specific text with different text\nReplace" + ID_EDIT_SELECT_ALL "Select the entire document\nSelect All" + ID_EDIT_UNDO "Undo the last action\nUndo" + ID_EDIT_REDO "Redo the previously undone action\nRedo" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_VIEW_TOOLBAR "Show or hide the toolbar\nToggle ToolBar" + ID_VIEW_STATUS_BAR "Show or hide the status bar\nToggle StatusBar" + ID_VIEW_AUTOARRANGE "Arrange icons on a grid." +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_SCSIZE "Change the window size" + AFX_IDS_SCMOVE "Change the window position" + AFX_IDS_SCMINIMIZE "Reduce the window to an icon" + AFX_IDS_SCMAXIMIZE "Enlarge the window to full size" + AFX_IDS_SCNEXTWINDOW "Switch to the next document window" + AFX_IDS_SCPREVWINDOW "Switch to the previous document window" + AFX_IDS_SCCLOSE "Close the active window and prompts to save the documents" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_SCRESTORE "Restore the window to normal size" + AFX_IDS_SCTASKLIST "Activate Task List" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_VIEW_SMALLICON "Display items by using small icons.\nSmall Icons" + ID_VIEW_LARGEICON "Display items by using large icons.\nLarge Icons" + ID_VIEW_LIST "Displays items in a list.\nList" + ID_VIEW_DETAILS "Displays detailed information about each item in the window.\nDetails" + ID_VIEW_LINEUP "Arranges icons in a grid." + ID_VIEW_BYNAME "Sorts the icons alphabetically." +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// English (Canada) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENC) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_CAN +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDB_TB_FILE BITMAP DISCARDABLE "res\\bm_file.bmp" +IDB_TB_FILE_HOT BITMAP DISCARDABLE "res\\tb_file_hot.bmp" +#endif // English (Canada) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif //_WIN32 +#include "res\FileExplorer.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +#include "UTSampleAbout.rc" +#include "OXCoolToolBar.rc" +#include "OXFileWatcher.rc" +#include "OXMenuBar.rc" +#include "OXShellFolderTree.rc" +#include "OXShellObjectList.rc" +#endif + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.vcproj b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.vcproj new file mode 100644 index 0000000..892790f --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorer.vcproj @@ -0,0 +1,2501 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorerDoc.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorerDoc.cpp new file mode 100644 index 0000000..01d3375 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorerDoc.cpp @@ -0,0 +1,84 @@ +// FileExplorerDoc.cpp : implementation of the CFileExplorerDoc class +// + +#include "stdafx.h" +#include "FileExplorer.h" + +#include "FileExplorerDoc.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CFileExplorerDoc + +IMPLEMENT_DYNCREATE(CFileExplorerDoc, CDocument) + +BEGIN_MESSAGE_MAP(CFileExplorerDoc, CDocument) + //{{AFX_MSG_MAP(CFileExplorerDoc) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CFileExplorerDoc construction/destruction + +CFileExplorerDoc::CFileExplorerDoc() +{ + // TODO: add one-time construction code here + +} + +CFileExplorerDoc::~CFileExplorerDoc() +{ +} + +BOOL CFileExplorerDoc::OnNewDocument() +{ + if (!CDocument::OnNewDocument()) + return FALSE; + + // TODO: add reinitialization code here + // (SDI documents will reuse this document) + + return TRUE; +} + + + +///////////////////////////////////////////////////////////////////////////// +// CFileExplorerDoc serialization + +void CFileExplorerDoc::Serialize(CArchive& ar) +{ + if (ar.IsStoring()) + { + // TODO: add storing code here + } + else + { + // TODO: add loading code here + } +} + +///////////////////////////////////////////////////////////////////////////// +// CFileExplorerDoc diagnostics + +#ifdef _DEBUG +void CFileExplorerDoc::AssertValid() const +{ + CDocument::AssertValid(); +} + +void CFileExplorerDoc::Dump(CDumpContext& dc) const +{ + CDocument::Dump(dc); +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CFileExplorerDoc commands diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorerDoc.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorerDoc.h new file mode 100644 index 0000000..bdda07a --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorerDoc.h @@ -0,0 +1,57 @@ +// FileExplorerDoc.h : interface of the CFileExplorerDoc class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_FILEEXPLORERDOC_H__10814F8F_EC24_11D2_A7FB_525400DAF3CE__INCLUDED_) +#define AFX_FILEEXPLORERDOC_H__10814F8F_EC24_11D2_A7FB_525400DAF3CE__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + + +class CFileExplorerDoc : public CDocument +{ +protected: // create from serialization only + CFileExplorerDoc(); + DECLARE_DYNCREATE(CFileExplorerDoc) + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CFileExplorerDoc) + public: + virtual BOOL OnNewDocument(); + virtual void Serialize(CArchive& ar); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CFileExplorerDoc(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + +// Generated message map functions +protected: + //{{AFX_MSG(CFileExplorerDoc) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_FILEEXPLORERDOC_H__10814F8F_EC24_11D2_A7FB_525400DAF3CE__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorerInfo.rtf b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorerInfo.rtf new file mode 100644 index 0000000000000000000000000000000000000000..c3d5f07d732a22b9313969e9744046124fa5ff00 GIT binary patch literal 7920 zcmeHMYi}I4747E&{SO!EhggBLk=Aw+%byfIY5|HBXt!_!3{Y@qI9k@T!zszpdSf`h zz2}m{+2KB9S#E(AsBK8=A?NZw&V3y2hs?P0C=<0+{zu;29*tj&vqF~TA^&t@_QUw_ zLsshAxmkq|hgoTt%3At)LKD156KPcW>LZqpveM{B_H;`_;z$ zb4*jUke1%aCEf5le#^6N%l6{OKmGATmg`CzXptFN9A>vh%K9*yRjoXHwe@KH;)Q>R z-|0?BV#6v?-yR)4dzQ_$`K{3ThwPh9ZGtJ^WR*98K4y(DMb=b8!7P|ypZ}QUuyjVJ z*MFPLWmR41s*q+1Z8o;e2uI;{8a_Yzo?q3?%Bb79qwH((lFr(?5OAa}-BK7ySFRY* z(aV=V(6{{S$ES2sRdmBISh|r`nmbwSkUf4LPu$jx@=73R$`X`Sc%L{{bjo_4nu-2FPSRO$MbVE7Jgama2Ja3ZO?)P~R3H5qveH5CN8xunMET*6FUQf_3} zfzP}YZGdF{uVwvkHY9aUaHbm3uezmN)Fj_GmCBWad0vnt<*2oMPH-7^A0MCc88EP| zbFU0!H7z`Ze>D|KR2phYc$Igthg<6fiF!q6Vfn493%wlC6gue|#}%q9rI9rp=T(Kr zS5T_Z_1A8wR`fcb=KWp>CxQW9&RpC{avIjaV?zXvpL+ne6v50tzm)j2&u)Ly5+dKxzX({OomN~d|-f|<$AFIP?uuW3++;1iq+kbxo%_~>Pos! zYs1*>(E&I~8{{>+9Vu{Y#A2PEfHFgGOFe#QWd&e08GA~-khIbPS1a)`6Wy~;4)#|tMn+u z33-b+qZCGMhzm6pu)^!H5bDDiK!PY>k(40TPGqOFicI}|UJMU7lRJ+6RuWdr)SuUeX+qB1-L zd(jsg>Dngf7W7LVC%Ztnv_cKo=<^~@aIme zVh`*P*9r8wfGT!3?tZ$yzM@&b>0kqKZzV;gtl+W=P1k)jsZ`!2CP@@lvYd|)3{>KzWzA!;}ufHfo<9wPh{f}?)wbHEP>!MC<;8qBmfE5e)+uIjvM3)Xtj z%0jO0kj>eJvBPl;Q}lKPAijf;b93Vg#GCDAMIB7J7!qa-a>9`N`uysO%jDnRo=i_) zUtHguUEZVxas%Vt;sC^O5nBTs?g$sk-FgP(xzXeMP3W)iayPjSa#+^wLK=?io}?II znD#{@W>M$SPBZq>x{x7k-6+3(_$Y5MbNG@{W1kOebfeRnp0qV`-1@UBRlkc>b8mKd zSupDC>gr&lTn@e1vy4vT=(cM=o?I#GHgZ&yzL7**f6%RwkHNDlA?6SU~UEWAHri|m}qmt)LEUG>KeN0=FsGXkqmTJ2{> z^!`ck!t1m*oVx^~86EGq3$gq=+CU$nVgNO2zu%e}Is{;25 zp)X@KTt!$q$K8iEJa8HVf}!_7NHl;C%N#pB0r7LIXfP=X^b zN^gyfT$|y;%V^9lfgd4P=1;6a4y7#zjz<7Ww5$2u9 zr^fe*m<+1E)0os)KR*Y8C;PJkE&?6K0`rHBYJNGGKYA|4$0iK7cLfmW;fQs7z~zqXG$r@PS`fsp%|bXN%m6ZJ!BVR{x^dk;@c_hP{MAES+_{;{b711Q0f zOs0G2Vcc>(bte~H|L2z6T2oTAms{RD6akkV(Y(5xOov2sBVPARJ!#V%q{=q=9K_R; z&-9Q1a6Av#W`*hgp2-Y4#D51vmH0jestQnw-u<4DZc0UK>z{a1B+#q8*M0B3i`1h+c)UMAPL zoALAILv4JRX}D`hT|m*ed)^<|^r-i@(am=rpQXp3yzY9}lZaH{gY%uo-EfOl9Q2^$ YQj&72?Dt)Z_&V8+4`cA~#qS^f1p>P1DF6Tf literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorerView.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorerView.cpp new file mode 100644 index 0000000..93b979d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorerView.cpp @@ -0,0 +1,309 @@ +// FileExplorerView.cpp : implementation of the CFileExplorerView class +// + +#include "stdafx.h" +#include "FileExplorer.h" + +#include "FileExplorerDoc.h" +#include "FileExplorerView.h" + +#include "MainFrm.h" +#include "LeftView.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CFileExplorerView + +IMPLEMENT_DYNCREATE(CFileExplorerView, CView) + +BEGIN_MESSAGE_MAP(CFileExplorerView, CView) + //{{AFX_MSG_MAP(CFileExplorerView) + ON_WM_CREATE() + ON_WM_SIZE() + ON_WM_ERASEBKGND() + ON_COMMAND(ID_EDIT_COPY, OnEditCopy) + ON_COMMAND(ID_EDIT_CUT, OnEditCut) + ON_COMMAND(ID_EDIT_PASTE, OnEditPaste) + ON_UPDATE_COMMAND_UI(ID_EDIT_COPY, OnUpdateEditCopy) + ON_UPDATE_COMMAND_UI(ID_EDIT_CUT, OnUpdateEditCut) + ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE, OnUpdateEditPaste) + //}}AFX_MSG_MAP + ON_NOTIFY(NM_DBLCLK,IDC_FILELIST,OnSelectFolder) + ON_COMMAND(ID_EDIT_DELETE, OnEditDelete) + ON_COMMAND(ID_VIEW_PROPERTY, OnViewProperties) + ON_UPDATE_COMMAND_UI(ID_EDIT_DELETE, OnUpdateEditDelete) + ON_UPDATE_COMMAND_UI(ID_VIEW_PROPERTY, OnUpdateViewProperties) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CFileExplorerView construction/destruction + +CFileExplorerView::CFileExplorerView() +{ + // TODO: add construction code here + +} + +CFileExplorerView::~CFileExplorerView() +{ +} + +BOOL CFileExplorerView::PreCreateWindow(CREATESTRUCT& cs) +{ + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + return CView::PreCreateWindow(cs); +} + +///////////////////////////////////////////////////////////////////////////// +// CFileExplorerView drawing + +void CFileExplorerView::OnDraw(CDC* pDC) +{ + CFileExplorerDoc* pDoc = GetDocument(); + ASSERT_VALID(pDoc); + // TODO: add draw code for native data here + + UNREFERENCED_PARAMETER(pDC); +} + +void CFileExplorerView::OnInitialUpdate() +{ + CView::OnInitialUpdate(); + + + // TODO: You may populate your ListView with items by directly accessing + // its list control through a call to GetListCtrl(). + + ASSERT(::IsWindow(m_filesList.GetSafeHwnd())); + + m_filesList.SetEnableContextMenu(TRUE); + m_filesList.SetOnlyFileSystemItems(FALSE); + m_filesList.SetNotifyError(TRUE); +} + +///////////////////////////////////////////////////////////////////////////// +// CFileExplorerView diagnostics + +#ifdef _DEBUG +void CFileExplorerView::AssertValid() const +{ + CView::AssertValid(); +} + +void CFileExplorerView::Dump(CDumpContext& dc) const +{ + CView::Dump(dc); +} + +CFileExplorerDoc* CFileExplorerView::GetDocument() // non-debug version is inline +{ + ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CFileExplorerDoc))); + return (CFileExplorerDoc*)m_pDocument; +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CFileExplorerView message handlers +int CFileExplorerView::OnCreate(LPCREATESTRUCT lpCreateStruct) +{ + if (CView::OnCreate(lpCreateStruct) == -1) + return -1; + + // TODO: Add your specialized creation code here + if(!m_filesList.Create(WS_VISIBLE|WS_CHILD|LVS_REPORT| + LVS_EDITLABELS|LVS_SHOWSELALWAYS, + CRect(0,0,0,0),this,IDC_FILELIST)) + { + return -1; + } + + + return 0; +} + +void CFileExplorerView::OnSize(UINT nType, int cx, int cy) +{ + CView::OnSize(nType, cx, cy); + + // TODO: Add your message handler code here + if(::IsWindow(m_filesList.GetSafeHwnd())) + m_filesList.MoveWindow(0,0,cx,cy); +} + +BOOL CFileExplorerView::OnEraseBkgnd(CDC* pDC) +{ + // TODO: Add your message handler code here and/or call default + UNREFERENCED_PARAMETER(pDC); + + return TRUE; +} + +void CFileExplorerView::OnSelectFolder(NMHDR* pNotifyStruct, LRESULT* result) +{ + UNREFERENCED_PARAMETER(pNotifyStruct); + + *result=0; + + CPoint ptMouseCursor; + ::GetCursorPos(&ptMouseCursor); + m_filesList.ScreenToClient(&ptMouseCursor); + + // Use HitTest function to define the list item by coordinate + UINT nFlags=NULL; + int nItem=m_filesList.HitTest(ptMouseCursor,&nFlags); + + if(nItem!=-1 && (nFlags&LVHT_ONITEM)!=0) + { + // Get folder info associated with item + LPNAMESPACEOBJECT lpNameSpaceObject= + (LPNAMESPACEOBJECT)m_filesList.GetItemData(nItem); + ASSERT(lpNameSpaceObject!=NULL); + + if(lpNameSpaceObject->dwFlags&SFGAO_HASSUBFOLDER || + lpNameSpaceObject->dwFlags&SFGAO_FOLDER) + { + COXShellNamespaceNavigator navigator; + LPSHELLFOLDER lpsfSelected= + navigator.GetShellFolder(lpNameSpaceObject->lpsfParent, + lpNameSpaceObject->lpRelativeIDL); + if(lpsfSelected!=NULL) + { + m_filesList.PopulateList(lpsfSelected,lpNameSpaceObject->lpFullIDL); + + CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd(); + ASSERT(pMainFrame!=NULL); + CLeftView* pTreeView=pMainFrame->GetLeftPane(); + pTreeView->m_bPopulateList=FALSE; + pTreeView->m_folderTree.OpenFolder(lpNameSpaceObject->lpFullIDL); + pTreeView->m_bPopulateList=TRUE; + } + } + } +} + +void CFileExplorerView::OnEditPaste() +{ + // TODO: Add your command handler code here + int nItem=m_filesList.GetNextItem(-1,LVNI_SELECTED); + ASSERT(nItem!=-1); + LPNAMESPACEOBJECT lpNameSpaceObject= + (LPNAMESPACEOBJECT)m_filesList.GetItemData(nItem); + ASSERT(lpNameSpaceObject!=NULL); + ASSERT((lpNameSpaceObject->dwFlags&SFGAO_FOLDER)==SFGAO_FOLDER); + m_filesList.InvokeCommand(nItem,IDCMD_PASTE); +} + +void CFileExplorerView::OnEditCopy() +{ + // TODO: Add your command handler code here + int nItem=m_filesList.GetNextItem(-1,LVNI_SELECTED); + ASSERT(nItem!=-1); + m_filesList.InvokeCommand(nItem,IDCMD_COPY); +} + +void CFileExplorerView::OnEditCut() +{ + // TODO: Add your command handler code here + int nItem=m_filesList.GetNextItem(-1,LVNI_SELECTED); + ASSERT(nItem!=-1); + m_filesList.InvokeCommand(nItem,IDCMD_CUT); +} + +void CFileExplorerView::OnEditDelete() +{ + // TODO: Add your command handler code here + int nItem=m_filesList.GetNextItem(-1,LVNI_SELECTED); + ASSERT(nItem!=-1); + m_filesList.InvokeCommand(nItem,IDCMD_DELETE); +} + +void CFileExplorerView::OnViewProperties() +{ + // TODO: Add your command handler code here + int nItem=m_filesList.GetNextItem(-1,LVNI_SELECTED); + ASSERT(nItem!=-1); + m_filesList.InvokeCommand(nItem,IDCMD_PROPERTIES); +} + + +void CFileExplorerView::OnUpdateEditPaste(CCmdUI* pCmdUI) +{ + // TODO: Add your command update UI handler code here + OnUpdate(pCmdUI,ID_EDIT_PASTE); +} + +void CFileExplorerView::OnUpdateEditCopy(CCmdUI* pCmdUI) +{ + // TODO: Add your command update UI handler code here + OnUpdate(pCmdUI,ID_EDIT_COPY); +} + +void CFileExplorerView::OnUpdateEditCut(CCmdUI* pCmdUI) +{ + // TODO: Add your command update UI handler code here + OnUpdate(pCmdUI,ID_EDIT_CUT); +} + +void CFileExplorerView::OnUpdateEditDelete(CCmdUI* pCmdUI) +{ + // TODO: Add your command update UI handler code here + OnUpdate(pCmdUI,ID_EDIT_DELETE); +} + +void CFileExplorerView::OnUpdateViewProperties(CCmdUI* pCmdUI) +{ + // TODO: Add your command update UI handler code here + OnUpdate(pCmdUI,ID_VIEW_PROPERTY); +} + +void CFileExplorerView::OnUpdate(CCmdUI* pCmdUI, UINT nID) +{ + int nItem=m_filesList.GetNextItem(-1,LVNI_SELECTED); + if(nItem==-1) + { + pCmdUI->Enable(FALSE); + return; + } + + // Get folder info associated with item + LPNAMESPACEOBJECT lpNameSpaceObject= + (LPNAMESPACEOBJECT)m_filesList.GetItemData(nItem); + ASSERT(lpNameSpaceObject!=NULL); + + switch(nID) + { + case ID_EDIT_PASTE: + pCmdUI->Enable(lpNameSpaceObject->dwFlags&SFGAO_FOLDER); + break; + case ID_EDIT_COPY: + pCmdUI->Enable(lpNameSpaceObject->dwFlags&SFGAO_CANCOPY); + break; + case ID_EDIT_CUT: + pCmdUI->Enable((lpNameSpaceObject->dwFlags&SFGAO_CANCOPY)!=0 && + (lpNameSpaceObject->dwFlags&SFGAO_CANDELETE)!=0); + break; + case ID_EDIT_DELETE: + pCmdUI->Enable(lpNameSpaceObject->dwFlags&SFGAO_CANDELETE); + break; + case ID_VIEW_PROPERTY: + pCmdUI->Enable(lpNameSpaceObject->dwFlags&SFGAO_HASPROPSHEET); + break; + default: + ASSERT(FALSE); + } +} + +void CFileExplorerView::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView) +{ + // TODO: Add your specialized code here and/or call the base class + CView::OnActivateView(bActivate, pActivateView, pDeactiveView); + + m_filesList.SetFocus(); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorerView.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorerView.h new file mode 100644 index 0000000..a8fafc5 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/FileExplorerView.h @@ -0,0 +1,85 @@ +// FileExplorerView.h : interface of the CFileExplorerView class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_FILEEXPLORERVIEW_H__10814F91_EC24_11D2_A7FB_525400DAF3CE__INCLUDED_) +#define AFX_FILEEXPLORERVIEW_H__10814F91_EC24_11D2_A7FB_525400DAF3CE__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#include "OXShellObjectList.h" + +const int IDC_FILELIST=1000; + +class CFileExplorerView : public CView +{ +protected: // create from serialization only + CFileExplorerView(); + DECLARE_DYNCREATE(CFileExplorerView) + +// Attributes +public: + CFileExplorerDoc* GetDocument(); + + COXShellObjectList m_filesList; + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CFileExplorerView) + public: + virtual void OnDraw(CDC* pDC); // overridden to draw this view + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + protected: + virtual void OnInitialUpdate(); // called first time after construct + virtual void OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CFileExplorerView(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + +// Generated message map functions +protected: + //{{AFX_MSG(CFileExplorerView) + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg BOOL OnEraseBkgnd(CDC* pDC); + afx_msg void OnEditCopy(); + afx_msg void OnEditCut(); + afx_msg void OnEditPaste(); + afx_msg void OnUpdateEditCopy(CCmdUI* pCmdUI); + afx_msg void OnUpdateEditCut(CCmdUI* pCmdUI); + afx_msg void OnUpdateEditPaste(CCmdUI* pCmdUI); + //}}AFX_MSG + afx_msg void OnSelectFolder(NMHDR* pNotifyStruct, LRESULT* result); + afx_msg void OnEditDelete(); + afx_msg void OnViewProperties(); + afx_msg void OnUpdateEditDelete(CCmdUI* pCmdUI); + afx_msg void OnUpdateViewProperties(CCmdUI* pCmdUI); + DECLARE_MESSAGE_MAP() + + void OnUpdate(CCmdUI* pCmdUI, UINT nID); +}; + +#ifndef _DEBUG // debug version in FileExplorerView.cpp +inline CFileExplorerDoc* CFileExplorerView::GetDocument() + { return (CFileExplorerDoc*)m_pDocument; } +#endif + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_FILEEXPLORERVIEW_H__10814F91_EC24_11D2_A7FB_525400DAF3CE__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/LeftView.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/LeftView.cpp new file mode 100644 index 0000000..d6461ae --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/LeftView.cpp @@ -0,0 +1,339 @@ +// LeftView.cpp : implementation of the CLeftView class +// + +#include "stdafx.h" +#include "FileExplorer.h" + +#include "FileExplorerDoc.h" +#include "LeftView.h" + +#include "MainFrm.h" +#include "FileExplorerView.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CLeftView + +IMPLEMENT_DYNCREATE(CLeftView, CView) + +BEGIN_MESSAGE_MAP(CLeftView, CView) + //{{AFX_MSG_MAP(CLeftView) + ON_WM_CREATE() + ON_WM_SIZE() + ON_WM_ERASEBKGND() + ON_COMMAND(ID_EDIT_COPY, OnEditCopy) + ON_COMMAND(ID_EDIT_CUT, OnEditCut) + ON_COMMAND(ID_EDIT_PASTE, OnEditPaste) + ON_UPDATE_COMMAND_UI(ID_EDIT_COPY, OnUpdateEditCopy) + ON_UPDATE_COMMAND_UI(ID_EDIT_CUT, OnUpdateEditCut) + ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE, OnUpdateEditPaste) + //}}AFX_MSG_MAP + ON_NOTIFY(TVN_SELCHANGED,IDC_FOLDERTREE,OnSelectFolder) + ON_COMMAND(ID_EDIT_DELETE, OnEditDelete) + ON_COMMAND(ID_VIEW_PROPERTY, OnViewProperties) + ON_UPDATE_COMMAND_UI(ID_EDIT_DELETE, OnUpdateEditDelete) + ON_UPDATE_COMMAND_UI(ID_VIEW_PROPERTY, OnUpdateViewProperties) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CLeftView construction/destruction + +CLeftView::CLeftView() +{ + // TODO: add construction code here + m_nCurrentItemInHistory=-1; + m_bPopulateList=TRUE; +} + +CLeftView::~CLeftView() +{ +} + +BOOL CLeftView::PreCreateWindow(CREATESTRUCT& cs) +{ + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + return CView::PreCreateWindow(cs); +} + +///////////////////////////////////////////////////////////////////////////// +// CLeftView drawing + +void CLeftView::OnDraw(CDC* pDC) +{ + CFileExplorerDoc* pDoc = GetDocument(); + ASSERT_VALID(pDoc); + + // TODO: add draw code for native data here + UNREFERENCED_PARAMETER(pDC); +} + + +void CLeftView::OnInitialUpdate() +{ + CView::OnInitialUpdate(); + + ASSERT(::IsWindow(m_folderTree.GetSafeHwnd())); + + m_folderTree.SetEnableContextMenu(TRUE); + m_folderTree.SetOnlyFileSystemFolders(FALSE); + m_folderTree.SetNotifyError(TRUE); + + m_folderTree.InitializeTree(); + + m_folderTree.SelectItem(m_folderTree.GetNextItem(TVI_ROOT,TVGN_CHILD)); +} + +///////////////////////////////////////////////////////////////////////////// +// CLeftView diagnostics + +#ifdef _DEBUG +void CLeftView::AssertValid() const +{ + CView::AssertValid(); +} + +void CLeftView::Dump(CDumpContext& dc) const +{ + CView::Dump(dc); +} + +CFileExplorerDoc* CLeftView::GetDocument() // non-debug version is inline +{ + ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CFileExplorerDoc))); + return (CFileExplorerDoc*)m_pDocument; +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CLeftView message handlers + +int CLeftView::OnCreate(LPCREATESTRUCT lpCreateStruct) +{ + if (CView::OnCreate(lpCreateStruct) == -1) + return -1; + + // TODO: Add your specialized creation code here + if(!m_folderTree.Create(WS_VISIBLE|WS_CHILD|TVS_HASLINES|TVS_LINESATROOT| + TVS_HASBUTTONS|TVS_EDITLABELS|TVS_SHOWSELALWAYS,CRect(0,0,0,0),this, + IDC_FOLDERTREE)) + { + return -1; + } + + return 0; +} + +void CLeftView::OnSize(UINT nType, int cx, int cy) +{ + CView::OnSize(nType, cx, cy); + + // TODO: Add your message handler code here + if(::IsWindow(m_folderTree.GetSafeHwnd())) + m_folderTree.MoveWindow(0,0,cx,cy); +} + +BOOL CLeftView::OnEraseBkgnd(CDC* pDC) +{ + // TODO: Add your message handler code here and/or call default + UNREFERENCED_PARAMETER(pDC); + + return TRUE; +} + +void CLeftView::OnSelectFolder(NMHDR* pNotifyStruct, LRESULT* result) +{ + *result=0; + + LPNMTREEVIEW pnmtv=(LPNMTREEVIEW)pNotifyStruct; + + if(pnmtv->itemNew.hItem==NULL) + return; + + // Get folder info associated with item + LPNAMESPACEOBJECT lpNameSpaceObject= + (LPNAMESPACEOBJECT)m_folderTree.GetItemData(pnmtv->itemNew.hItem); + ASSERT(lpNameSpaceObject!=NULL || m_folderTree.GetShowDesktopItem()); + + CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd(); + ASSERT(pMainFrame!=NULL); + + // get shell folder object from saved PIDLs + if(m_bPopulateList) + { + if(lpNameSpaceObject!=NULL) + { + COXShellNamespaceNavigator navigator; + LPSHELLFOLDER lpsfSelected=navigator. + GetShellFolder(lpNameSpaceObject->lpsfParent, + lpNameSpaceObject->lpRelativeIDL); + if(lpsfSelected!=NULL) + { + CFileExplorerView* pListView=pMainFrame->GetRightPane(); + pListView->m_filesList.PopulateList(lpsfSelected, + lpNameSpaceObject->lpFullIDL); + lpsfSelected->Release(); + } + } + else + { + CFileExplorerView* pListView=pMainFrame->GetRightPane(); + pListView->m_filesList.PopulateList(); + } + } + + BOOL bExistInHistory=FALSE; + if(m_arrHistory.GetSize()>m_nCurrentItemInHistory && m_nCurrentItemInHistory>=0) + { + if(lpNameSpaceObject==NULL) + bExistInHistory=(m_arrHistory.GetAt(m_nCurrentItemInHistory)==NULL); + else + bExistInHistory=(m_arrHistory.GetAt(m_nCurrentItemInHistory)== + lpNameSpaceObject->lpFullIDL); + if(!bExistInHistory) + { + m_arrHistory.RemoveAt(m_nCurrentItemInHistory+1, + m_arrHistory.GetSize()-m_nCurrentItemInHistory-1); + } + } + if(!bExistInHistory) + { + m_nCurrentItemInHistory++; + // ??? IDL might be deleted in the future, probably have to copy it + if(lpNameSpaceObject==NULL) + m_arrHistory.SetAtGrow(m_nCurrentItemInHistory,NULL); + else + m_arrHistory.SetAtGrow(m_nCurrentItemInHistory,lpNameSpaceObject->lpFullIDL); + } +} + + +void CLeftView::OnEditPaste() +{ + // TODO: Add your command handler code here + HTREEITEM hItem=m_folderTree.GetSelectedItem(); + ASSERT(hItem!=NULL); + LPNAMESPACEOBJECT lpNameSpaceObject= + (LPNAMESPACEOBJECT)m_folderTree.GetItemData(hItem); + ASSERT(lpNameSpaceObject!=NULL); + ASSERT((lpNameSpaceObject->dwFlags&SFGAO_FOLDER)==SFGAO_FOLDER); + m_folderTree.InvokeCommand(hItem,IDCMD_PASTE); +} + +void CLeftView::OnEditCopy() +{ + // TODO: Add your command handler code here + HTREEITEM hItem=m_folderTree.GetSelectedItem(); + ASSERT(hItem!=NULL); + m_folderTree.InvokeCommand(hItem,IDCMD_COPY); +} + +void CLeftView::OnEditCut() +{ + // TODO: Add your command handler code here + HTREEITEM hItem=m_folderTree.GetSelectedItem(); + ASSERT(hItem!=NULL); + m_folderTree.InvokeCommand(hItem,IDCMD_CUT); +} + +void CLeftView::OnEditDelete() +{ + // TODO: Add your command handler code here + HTREEITEM hItem=m_folderTree.GetSelectedItem(); + ASSERT(hItem!=NULL); + m_folderTree.InvokeCommand(hItem,IDCMD_DELETE); +} + +void CLeftView::OnViewProperties() +{ + // TODO: Add your command handler code here + HTREEITEM hItem=m_folderTree.GetSelectedItem(); + ASSERT(hItem!=NULL); + m_folderTree.InvokeCommand(hItem,IDCMD_PROPERTIES); +} + + +void CLeftView::OnUpdateEditPaste(CCmdUI* pCmdUI) +{ + // TODO: Add your command update UI handler code here + OnUpdate(pCmdUI,ID_EDIT_PASTE); +} + +void CLeftView::OnUpdateEditCopy(CCmdUI* pCmdUI) +{ + // TODO: Add your command update UI handler code here + OnUpdate(pCmdUI,ID_EDIT_COPY); +} + +void CLeftView::OnUpdateEditCut(CCmdUI* pCmdUI) +{ + // TODO: Add your command update UI handler code here + OnUpdate(pCmdUI,ID_EDIT_CUT); +} + +void CLeftView::OnUpdateEditDelete(CCmdUI* pCmdUI) +{ + // TODO: Add your command update UI handler code here + OnUpdate(pCmdUI,ID_EDIT_DELETE); +} + +void CLeftView::OnUpdateViewProperties(CCmdUI* pCmdUI) +{ + // TODO: Add your command update UI handler code here + OnUpdate(pCmdUI,ID_VIEW_PROPERTY); +} + +void CLeftView::OnUpdate(CCmdUI* pCmdUI, UINT nID) +{ + HTREEITEM hItem=m_folderTree.GetSelectedItem(); + if(hItem==NULL) + { + pCmdUI->Enable(FALSE); + return; + } + + // Get folder info associated with item + LPNAMESPACEOBJECT lpNameSpaceObject= + (LPNAMESPACEOBJECT)m_folderTree.GetItemData(hItem); + if(lpNameSpaceObject==NULL) + { + pCmdUI->Enable(FALSE); + return; + } + + switch(nID) + { + case ID_EDIT_PASTE: + pCmdUI->Enable(lpNameSpaceObject->dwFlags&SFGAO_FOLDER); + break; + case ID_EDIT_COPY: + pCmdUI->Enable(lpNameSpaceObject->dwFlags&SFGAO_CANCOPY); + break; + case ID_EDIT_CUT: + pCmdUI->Enable((lpNameSpaceObject->dwFlags&SFGAO_CANCOPY)!=0 && + (lpNameSpaceObject->dwFlags&SFGAO_CANDELETE)!=0); + break; + case ID_EDIT_DELETE: + pCmdUI->Enable(lpNameSpaceObject->dwFlags&SFGAO_CANDELETE); + break; + case ID_VIEW_PROPERTY: + pCmdUI->Enable(lpNameSpaceObject->dwFlags&SFGAO_HASPROPSHEET); + break; + default: + ASSERT(FALSE); + } +} + +void CLeftView::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView) +{ + // TODO: Add your specialized code here and/or call the base class + CView::OnActivateView(bActivate, pActivateView, pDeactiveView); + + m_folderTree.SetFocus(); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/LeftView.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/LeftView.h new file mode 100644 index 0000000..36343ad --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/LeftView.h @@ -0,0 +1,98 @@ +// LeftView.h : interface of the CLeftView class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_LEFTVIEW_H__10814F93_EC24_11D2_A7FB_525400DAF3CE__INCLUDED_) +#define AFX_LEFTVIEW_H__10814F93_EC24_11D2_A7FB_525400DAF3CE__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + + +#include "afxtempl.h" + +#include "OXShellFolderTree.h" + + +const UINT IDC_FOLDERTREE=1000; + +class CFileExplorerDoc; + +class CLeftView : public CView +{ +protected: // create from serialization only + CLeftView(); + DECLARE_DYNCREATE(CLeftView) + +// Attributes +public: + CFileExplorerDoc* GetDocument(); + + COXShellFolderTree m_folderTree; + + CArray m_arrHistory; + int m_nCurrentItemInHistory; + + // flag that defines if right pane list control wiil be repopulated + // when new folder in the tree is selected + BOOL m_bPopulateList; + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CLeftView) + public: + virtual void OnDraw(CDC* pDC); // overridden to draw this view + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + protected: + virtual void OnInitialUpdate(); // called first time after construct + virtual void OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CLeftView(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + +// Generated message map functions +protected: + //{{AFX_MSG(CLeftView) + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg BOOL OnEraseBkgnd(CDC* pDC); + afx_msg void OnEditCopy(); + afx_msg void OnEditCut(); + afx_msg void OnEditPaste(); + afx_msg void OnUpdateEditCopy(CCmdUI* pCmdUI); + afx_msg void OnUpdateEditCut(CCmdUI* pCmdUI); + afx_msg void OnUpdateEditPaste(CCmdUI* pCmdUI); + //}}AFX_MSG + afx_msg void OnSelectFolder(NMHDR* pNotifyStruct, LRESULT* result); + afx_msg void OnEditDelete(); + afx_msg void OnViewProperties(); + afx_msg void OnUpdateEditDelete(CCmdUI* pCmdUI); + afx_msg void OnUpdateViewProperties(CCmdUI* pCmdUI); + DECLARE_MESSAGE_MAP() + + void OnUpdate(CCmdUI* pCmdUI, UINT nID); +}; + +#ifndef _DEBUG // debug version in LeftView.cpp +inline CFileExplorerDoc* CLeftView::GetDocument() + { return (CFileExplorerDoc*)m_pDocument; } +#endif + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_LEFTVIEW_H__10814F93_EC24_11D2_A7FB_525400DAF3CE__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/MainFrm.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/MainFrm.cpp new file mode 100644 index 0000000..5c8918e --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/MainFrm.cpp @@ -0,0 +1,589 @@ +// MainFrm.cpp : implementation of the CMainFrame class +// + +#include "stdafx.h" +#include "FileExplorer.h" + +#include "MainFrm.h" +#include "LeftView.h" +#include "FileExplorerView.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +const int ID_MAXHISTORYITEMDISPLAYED=20; +const int ID_BACKWARD_BASE=18000; +const int ID_FORWARD_BASE=19000; + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame + +IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd) + +BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) + //{{AFX_MSG_MAP(CMainFrame) + ON_WM_CREATE() + //}}AFX_MSG_MAP + ON_UPDATE_COMMAND_UI_RANGE(AFX_ID_VIEW_MINIMUM, AFX_ID_VIEW_MAXIMUM, OnUpdateViewStyles) + ON_COMMAND_RANGE(AFX_ID_VIEW_MINIMUM, AFX_ID_VIEW_MAXIMUM, OnViewStyle) + ON_NOTIFY(TBN_DROPDOWN, AFX_IDW_TOOLBAR, OnDropDown) + ON_COMMAND(ID_VIEW_TYPE, OnViewType) + ON_COMMAND(ID_VIEW_UP, OnViewUp) + ON_COMMAND(ID_VIEW_BACKWARD, OnViewBackward) + ON_COMMAND(ID_VIEW_FORWARD, OnViewForward) + ON_UPDATE_COMMAND_UI(ID_VIEW_UP, OnUpdateViewUp) + ON_UPDATE_COMMAND_UI(ID_VIEW_BACKWARD, OnUpdateViewBackward) + ON_UPDATE_COMMAND_UI(ID_VIEW_FORWARD, OnUpdateViewForward) + ON_COMMAND_RANGE(ID_BACKWARD_BASE, ID_BACKWARD_BASE+ID_MAXHISTORYITEMDISPLAYED, OnBackwardItem) + ON_COMMAND_RANGE(ID_FORWARD_BASE, ID_FORWARD_BASE+ID_MAXHISTORYITEMDISPLAYED, OnForwardItem) +END_MESSAGE_MAP() + +static UINT indicators[] = +{ + ID_SEPARATOR, // status line indicator + ID_INDICATOR_CAPS, + ID_INDICATOR_NUM, + ID_INDICATOR_SCRL, +}; + +static UINT buttons[] = +{ + ID_VIEW_BACKWARD, + ID_VIEW_FORWARD, + ID_VIEW_UP, + ID_SEPARATOR, + ID_EDIT_CUT, + ID_EDIT_COPY, + ID_EDIT_PASTE, + ID_EDIT_DELETE, + ID_SEPARATOR, + ID_VIEW_PROPERTY, + ID_VIEW_TYPE, +}; + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame construction/destruction + +CMainFrame::CMainFrame() +{ + // TODO: add member initialization code here + +} + +CMainFrame::~CMainFrame() +{ +} + +int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) +{ + if (CFrameWnd::OnCreate(lpCreateStruct) == -1) + return -1; + + if (!m_wndToolBar.Create(this,WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_TOOLTIPS| + CBRS_FLYBY|CBRS_SIZE_DYNAMIC) || + !m_wndToolBar.SetButtons(buttons,sizeof(buttons)/sizeof(buttons[1])) || + m_wndToolBar.GetToolBarCtrl(). + AddBitmap(sizeof(buttons)/sizeof(buttons[1]),IDB_TB_FILE)==-1) + { + TRACE0("Failed to create toolbar\n"); + return -1; // fail to create + } + + ///////////// + // COXCoolToolBar specific functions + m_wndToolBar.IniSizes(CSize(24,22)); + m_wndToolBar.SetButtonTextFromID(COXCoolToolBar::TTID_TOOLTIP); + m_wndToolBar.SetMaxTextRows(1); + m_wndToolBar.SetButtonsMinMaxWidth(0,80); + m_wndToolBar.SetHotImageList(m_wndToolBar.AddImageList(IDB_TB_FILE_HOT,24, + RGB(192,192,192),ILC_COLOR8|ILC_MASK)); +// m_wndToolBar.SetDisabledImageList(m_wndToolBar.AddImageList(IDB_TB_FILE_DISABLED,24, +// RGB(255,0,255),ILC_COLOR8|ILC_MASK)); + m_wndToolBar.UpdateSizes(); + + m_wndToolBar.SetButtonStyle(0,m_wndToolBar.GetButtonStyle(0)|TBSTYLE_DROPDOWN); + m_wndToolBar.SetButtonStyle(1,m_wndToolBar.GetButtonStyle(1)|TBSTYLE_DROPDOWN); + m_wndToolBar.SetButtonStyle(10,m_wndToolBar.GetButtonStyle(10)|TBSTYLE_DROPDOWN); + m_wndToolBar.SetDropDownArrow(TRUE); + //////////// + + if (!m_wndStatusBar.Create(this) || + !m_wndStatusBar.SetIndicators(indicators, + sizeof(indicators)/sizeof(UINT))) + { + TRACE0("Failed to create status bar\n"); + return -1; // fail to create + } + + // TODO: Delete these three lines if you don't want the toolbar to + // be dockable + m_wndToolBar.EnableDocking(CBRS_ALIGN_TOP|CBRS_ALIGN_BOTTOM); + EnableDocking(CBRS_ALIGN_ANY); + DockControlBar(&m_wndToolBar); + + return 0; +} + +BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, + CCreateContext* pContext) +{ + // create splitter window + if (!m_wndSplitter.CreateStatic(this, 1, 2)) + return FALSE; + + if (!m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CLeftView),CSize(0,0),pContext) || + !m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CFileExplorerView), + CSize(0,0),pContext)) + { + m_wndSplitter.DestroyWindow(); + return FALSE; + } + + m_wndSplitter.SetColumnInfo(0,200,0); + m_wndSplitter.SetActivePane(0,0); + + return TRUE; +} + +BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) +{ + if( !CFrameWnd::PreCreateWindow(cs) ) + return FALSE; + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + return TRUE; +} + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame diagnostics + +#ifdef _DEBUG +void CMainFrame::AssertValid() const +{ + CFrameWnd::AssertValid(); +} + +void CMainFrame::Dump(CDumpContext& dc) const +{ + CFrameWnd::Dump(dc); +} + +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame message handlers + +CFileExplorerView* CMainFrame::GetRightPane() +{ + CWnd* pWnd = m_wndSplitter.GetPane(0, 1); + CFileExplorerView* pView = DYNAMIC_DOWNCAST(CFileExplorerView, pWnd); + return pView; +} + +CLeftView* CMainFrame::GetLeftPane() +{ + CWnd* pWnd = m_wndSplitter.GetPane(0, 0); + CLeftView* pView = DYNAMIC_DOWNCAST(CLeftView, pWnd); + return pView; +} + +void CMainFrame::OnUpdateViewStyles(CCmdUI* pCmdUI) +{ + // TODO: customize or extend this code to handle choices on the + // View menu. + + CFileExplorerView* pView = GetRightPane(); + + // if the right-hand pane hasn't been created or isn't a view, + // disable commands in our range + + if (pView == NULL) + pCmdUI->Enable(FALSE); + else + { + DWORD dwStyle = pView->m_filesList.GetStyle() & LVS_TYPEMASK; + + // if the command is ID_VIEW_LINEUP, only enable command + // when we're in LVS_ICON or LVS_SMALLICON mode + + if (pCmdUI->m_nID == ID_VIEW_LINEUP) + { + if (dwStyle == LVS_ICON || dwStyle == LVS_SMALLICON) + pCmdUI->Enable(); + else + pCmdUI->Enable(FALSE); + } + else + { + // otherwise, use dots to reflect the style of the view + pCmdUI->Enable(); + BOOL bChecked = FALSE; + + switch (pCmdUI->m_nID) + { + case ID_VIEW_DETAILS: + bChecked = (dwStyle == LVS_REPORT); + break; + + case ID_VIEW_SMALLICON: + bChecked = (dwStyle == LVS_SMALLICON); + break; + + case ID_VIEW_LARGEICON: + bChecked = (dwStyle == LVS_ICON); + break; + + case ID_VIEW_LIST: + bChecked = (dwStyle == LVS_LIST); + break; + + default: + bChecked = FALSE; + break; + } + + pCmdUI->SetRadio(bChecked ? 1 : 0); + } + } +} + + +void CMainFrame::OnViewStyle(UINT nCommandID) +{ + // TODO: customize or extend this code to handle choices on the + // View menu. + CFileExplorerView* pView = GetRightPane(); + + // if the right-hand pane has been created and is a CFileExplorerView, + // process the menu commands... + if (pView != NULL) + { + DWORD dwStyle=(DWORD)-1; + + switch (nCommandID) + { + case ID_VIEW_LINEUP: + { + // ask the list control to snap to grid + pView->m_filesList.Arrange(LVA_SNAPTOGRID); + } + break; + + // other commands change the style on the list control + case ID_VIEW_DETAILS: + dwStyle = LVS_REPORT; + break; + + case ID_VIEW_SMALLICON: + dwStyle = LVS_SMALLICON; + break; + + case ID_VIEW_LARGEICON: + dwStyle = LVS_ICON; + break; + + case ID_VIEW_LIST: + dwStyle = LVS_LIST; + break; + } + + // change the style; window will repaint automatically + if (dwStyle != -1) + pView->m_filesList.ModifyStyle(LVS_TYPEMASK, dwStyle); + } +} + + +void CMainFrame::OnDropDown(NMHDR* pNotifyStruct, LRESULT* pResult) +{ + // this function handles the dropdown menus from the toolbar + NMTOOLBAR* pNMToolBar = (NMTOOLBAR*)pNotifyStruct; + CRect rect; + + // translate the current toolbar item rectangle into screen coordinates + // so that we'll know where to pop up the menu + m_wndToolBar.GetItemRect(m_wndToolBar.CommandToIndex(pNMToolBar->iItem), &rect); + rect.top = rect.bottom; + ::ClientToScreen(pNMToolBar->hdr.hwndFrom, &rect.TopLeft()); + switch(pNMToolBar->iItem) + { + case ID_VIEW_BACKWARD: + { + CWnd* pWnd=m_wndSplitter.GetPane(0,0); + ASSERT(pWnd!=NULL); + CLeftView* pTreeView=DYNAMIC_DOWNCAST(CLeftView,pWnd); + + ASSERT(pTreeView->m_arrHistory.GetSize()>1 && + pTreeView->m_nCurrentItemInHistory!=0); + + CMenu menuPopup; + VERIFY(menuPopup.CreatePopupMenu()); + int nMenuItemCount=0; + int nHistoryItemIndex=pTreeView->m_nCurrentItemInHistory-1; + while(nMenuItemCount=0) + { + LPITEMIDLIST lpFullIDL=pTreeView->m_arrHistory.GetAt(nHistoryItemIndex); + if(lpFullIDL==NULL) + { + menuPopup.AppendMenu(MF_STRING,ID_BACKWARD_BASE+nMenuItemCount, + _T("Desktop")); + nHistoryItemIndex--; + nMenuItemCount++; + } + else + { + HTREEITEM hItem=pTreeView->m_folderTree.FindFolder(lpFullIDL); + if(hItem==NULL) + { + pTreeView->m_arrHistory.RemoveAt(nHistoryItemIndex); + pTreeView->m_nCurrentItemInHistory--; + nHistoryItemIndex--; + } + else + { + CString sText=pTreeView->m_folderTree.GetItemText(hItem); + menuPopup.AppendMenu(MF_STRING,ID_BACKWARD_BASE+nMenuItemCount, + sText); + nHistoryItemIndex--; + nMenuItemCount++; + } + } + + } + menuPopup.TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON,rect.left, + rect.top+1,AfxGetMainWnd()); + break; + } + + case ID_VIEW_FORWARD: + { + CWnd* pWnd=m_wndSplitter.GetPane(0,0); + ASSERT(pWnd!=NULL); + CLeftView* pTreeView=DYNAMIC_DOWNCAST(CLeftView,pWnd); + + ASSERT((pTreeView->m_arrHistory.GetSize()-1)> + pTreeView->m_nCurrentItemInHistory); + + CMenu menuPopup; + VERIFY(menuPopup.CreatePopupMenu()); + int nMenuItemCount=0; + int nHistoryItemIndex=pTreeView->m_nCurrentItemInHistory+1; + while(nMenuItemCountm_arrHistory.GetSize()) + { + LPITEMIDLIST lpFullIDL=pTreeView->m_arrHistory.GetAt(nHistoryItemIndex); + if(lpFullIDL==NULL) + { + menuPopup.AppendMenu(MF_STRING,ID_FORWARD_BASE+nMenuItemCount, + _T("Desktop")); + nHistoryItemIndex++; + nMenuItemCount++; + } + else + { + HTREEITEM hItem=pTreeView->m_folderTree.FindFolder(lpFullIDL); + if(hItem==NULL) + { + pTreeView->m_arrHistory.RemoveAt(nHistoryItemIndex); + } + else + { + CString sText=pTreeView->m_folderTree.GetItemText(hItem); + menuPopup.AppendMenu(MF_STRING,ID_FORWARD_BASE+nMenuItemCount, + sText); + nHistoryItemIndex++; + nMenuItemCount++; + } + } + + } + menuPopup.TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON,rect.left, + rect.top+1,AfxGetMainWnd()); + break; + } + + case ID_VIEW_TYPE: + { + CMenu menu; + CMenu* pPopup; + menu.LoadMenu(IDR_VIEWTYPE); + pPopup=menu.GetSubMenu(0); + pPopup->TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON,rect.left, + rect.top+1,AfxGetMainWnd()); + break; + } + } + *pResult=TBDDRET_DEFAULT; +} + + +void CMainFrame::OnBackwardItem(UINT nCommandID) +{ + CWnd* pWnd=m_wndSplitter.GetPane(0,0); + ASSERT(pWnd!=NULL); + CLeftView* pTreeView=DYNAMIC_DOWNCAST(CLeftView,pWnd); + + ASSERT(pTreeView->m_arrHistory.GetSize()>1 && pTreeView->m_nCurrentItemInHistory!=0); + int nItemIndex=pTreeView->m_nCurrentItemInHistory-1-nCommandID+ID_BACKWARD_BASE; + ASSERT(nItemIndex>=0); + LPITEMIDLIST lpFullIDLPrev=pTreeView->m_arrHistory.GetAt(nItemIndex); + HTREEITEM hPrevItem=NULL; + if(lpFullIDLPrev!=NULL) + { + hPrevItem=pTreeView->m_folderTree.FindFolder(lpFullIDLPrev); + } + else + { + hPrevItem=pTreeView->m_folderTree.GetRootItem(); + } + if(hPrevItem!=NULL) + { + pTreeView->m_nCurrentItemInHistory=nItemIndex; + pTreeView->m_folderTree.SelectItem(hPrevItem); + } +} + + +void CMainFrame::OnForwardItem(UINT nCommandID) +{ + CWnd* pWnd=m_wndSplitter.GetPane(0,0); + ASSERT(pWnd!=NULL); + CLeftView* pTreeView=DYNAMIC_DOWNCAST(CLeftView,pWnd); + + ASSERT((pTreeView->m_arrHistory.GetSize()-1)>pTreeView->m_nCurrentItemInHistory); + int nItemIndex=pTreeView->m_nCurrentItemInHistory+1+nCommandID-ID_FORWARD_BASE; + ASSERT(nItemIndexm_arrHistory.GetSize()); + LPITEMIDLIST lpFullIDLNext=pTreeView->m_arrHistory.GetAt(nItemIndex); + HTREEITEM hNextItem=NULL; + if(lpFullIDLNext!=NULL) + { + hNextItem=pTreeView->m_folderTree.FindFolder(lpFullIDLNext); + } + else + { + hNextItem=pTreeView->m_folderTree.GetRootItem(); + } + if(hNextItem!=NULL) + { + pTreeView->m_nCurrentItemInHistory=nItemIndex; + pTreeView->m_folderTree.SelectItem(hNextItem); + } +} + + +void CMainFrame::OnViewType() +{ + // TODO: Add your command handler code here + OnViewStyle(ID_VIEW_LARGEICON); +} + +void CMainFrame::OnViewUp() +{ + // TODO: Add your command handler code here + CWnd* pWnd=m_wndSplitter.GetPane(0,0); + ASSERT(pWnd!=NULL); + CLeftView* pTreeView=DYNAMIC_DOWNCAST(CLeftView,pWnd); + HTREEITEM hItem=pTreeView->m_folderTree.GetSelectedItem(); + ASSERT(hItem!=NULL); + HTREEITEM hParentItem=pTreeView->m_folderTree.GetParentItem(hItem); + ASSERT(hParentItem!=NULL); + pTreeView->m_folderTree.SelectItem(hParentItem); +} + +void CMainFrame::OnViewBackward() +{ + // TODO: Add your command handler code here + CWnd* pWnd=m_wndSplitter.GetPane(0,0); + ASSERT(pWnd!=NULL); + CLeftView* pTreeView=DYNAMIC_DOWNCAST(CLeftView,pWnd); + + ASSERT(pTreeView->m_arrHistory.GetSize()>1 && pTreeView->m_nCurrentItemInHistory!=0); + LPITEMIDLIST lpFullIDLPrev=pTreeView->m_arrHistory. + GetAt(pTreeView->m_nCurrentItemInHistory-1); + HTREEITEM hPrevItem=NULL; + if(lpFullIDLPrev!=NULL) + { + hPrevItem=pTreeView->m_folderTree.FindFolder(lpFullIDLPrev); + } + else + { + hPrevItem=pTreeView->m_folderTree.GetRootItem(); + } + if(hPrevItem!=NULL) + { + pTreeView->m_nCurrentItemInHistory--; + pTreeView->m_folderTree.SelectItem(hPrevItem); + } +} + +void CMainFrame::OnViewForward() +{ + // TODO: Add your command handler code here + CWnd* pWnd=m_wndSplitter.GetPane(0,0); + ASSERT(pWnd!=NULL); + CLeftView* pTreeView=DYNAMIC_DOWNCAST(CLeftView,pWnd); + + ASSERT((pTreeView->m_arrHistory.GetSize()-1)>pTreeView->m_nCurrentItemInHistory); + LPITEMIDLIST lpFullIDLNext=pTreeView->m_arrHistory. + GetAt(pTreeView->m_nCurrentItemInHistory+1); + HTREEITEM hNextItem=NULL; + if(lpFullIDLNext!=NULL) + { + hNextItem=pTreeView->m_folderTree.FindFolder(lpFullIDLNext); + } + else + { + hNextItem=pTreeView->m_folderTree.GetRootItem(); + } + if(hNextItem!=NULL) + { + pTreeView->m_nCurrentItemInHistory++; + pTreeView->m_folderTree.SelectItem(hNextItem); + } +} + +void CMainFrame::OnUpdateViewForward(CCmdUI* pCmdUI) +{ + // TODO: Add your command update UI handler code here + CWnd* pWnd=m_wndSplitter.GetPane(0,0); + ASSERT(pWnd!=NULL); + CLeftView* pTreeView=DYNAMIC_DOWNCAST(CLeftView,pWnd); + + pCmdUI->Enable((pTreeView->m_arrHistory.GetSize()-1)> + pTreeView->m_nCurrentItemInHistory); +} + +void CMainFrame::OnUpdateViewBackward(CCmdUI* pCmdUI) +{ + // TODO: Add your command update UI handler code here + CWnd* pWnd=m_wndSplitter.GetPane(0,0); + ASSERT(pWnd!=NULL); + CLeftView* pTreeView=DYNAMIC_DOWNCAST(CLeftView,pWnd); + + pCmdUI->Enable(pTreeView->m_arrHistory.GetSize()>1 && + pTreeView->m_nCurrentItemInHistory!=0); +} + +void CMainFrame::OnUpdateViewUp(CCmdUI* pCmdUI) +{ + // TODO: Add your command update UI handler code here + BOOL bEnabled=FALSE; + CWnd* pWnd=m_wndSplitter.GetPane(0,0); + ASSERT(pWnd!=NULL); + CLeftView* pTreeView=DYNAMIC_DOWNCAST(CLeftView,pWnd); + HTREEITEM hItem=pTreeView->m_folderTree.GetSelectedItem(); + if(hItem!=NULL) + { + HTREEITEM hParentItem=pTreeView->m_folderTree.GetParentItem(hItem); + if(hParentItem!=NULL) + bEnabled=TRUE; + } + + pCmdUI->Enable(bEnabled); +} + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/MainFrm.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/MainFrm.h new file mode 100644 index 0000000..8a6db9a --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/MainFrm.h @@ -0,0 +1,81 @@ +// MainFrm.h : interface of the CMainFrame class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_MAINFRM_H__10814F8D_EC24_11D2_A7FB_525400DAF3CE__INCLUDED_) +#define AFX_MAINFRM_H__10814F8D_EC24_11D2_A7FB_525400DAF3CE__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + + +#include "OXCoolToolBar.h" +#include "OXMenuBar.h" + +class CFileExplorerView; +class CLeftView; + +class CMainFrame : public COXMenuBarFrame +{ + +protected: // create from serialization only + CMainFrame(); + DECLARE_DYNCREATE(CMainFrame) + +// Attributes +protected: + CSplitterWnd m_wndSplitter; +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CMainFrame) + public: + virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext); + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CMainFrame(); + CFileExplorerView* GetRightPane(); + CLeftView* GetLeftPane(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: // control bar embedded members + CStatusBar m_wndStatusBar; + COXCoolToolBar m_wndToolBar; + +// Generated message map functions +protected: + //{{AFX_MSG(CMainFrame) + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + //}}AFX_MSG + afx_msg void OnUpdateViewStyles(CCmdUI* pCmdUI); + afx_msg void OnViewStyle(UINT nCommandID); + afx_msg void OnDropDown(NMHDR* pNotifyStruct, LRESULT* pResult); + afx_msg void OnViewType(); + afx_msg void OnViewUp(); + afx_msg void OnViewBackward(); + afx_msg void OnViewForward(); + afx_msg void OnUpdateViewUp(CCmdUI* pCmdUI); + afx_msg void OnUpdateViewBackward(CCmdUI* pCmdUI); + afx_msg void OnUpdateViewForward(CCmdUI* pCmdUI); + afx_msg void OnBackwardItem(UINT nCommandID); + afx_msg void OnForwardItem(UINT nCommandID); + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_MAINFRM_H__10814F8D_EC24_11D2_A7FB_525400DAF3CE__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/ReadMe.txt b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/ReadMe.txt new file mode 100644 index 0000000..c2bb841 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/ReadMe.txt @@ -0,0 +1,105 @@ +======================================================================== + MICROSOFT FOUNDATION CLASS LIBRARY : FileExplorer +======================================================================== + + +AppWizard has created this FileExplorer application for you. This application +not only demonstrates the basics of using the Microsoft Foundation classes +but is also a starting point for writing your application. + +This file contains a summary of what you will find in each of the files that +make up your FileExplorer application. + +FileExplorer.dsp + This file (the project file) contains information at the project level and + is used to build a single project or subproject. Other users can share the + project (.dsp) file, but they should export the makefiles locally. + +FileExplorer.h + This is the main header file for the application. It includes other + project specific headers (including Resource.h) and declares the + CFileExplorerApp application class. + +FileExplorer.cpp + This is the main application source file that contains the application + class CFileExplorerApp. + +FileExplorer.rc + This is a listing of all of the Microsoft Windows resources that the + program uses. It includes the icons, bitmaps, and cursors that are stored + in the RES subdirectory. This file can be directly edited in Microsoft + Visual C++. + +FileExplorer.clw + This file contains information used by ClassWizard to edit existing + classes or add new classes. ClassWizard also uses this file to store + information needed to create and edit message maps and dialog data + maps and to create prototype member functions. + +res\FileExplorer.ico + This is an icon file, which is used as the application's icon. This + icon is included by the main resource file FileExplorer.rc. + +res\FileExplorer.rc2 + This file contains resources that are not edited by Microsoft + Visual C++. You should place all resources not editable by + the resource editor in this file. + + + +///////////////////////////////////////////////////////////////////////////// + +For the main frame window: + +MainFrm.h, MainFrm.cpp + These files contain the frame class CMainFrame, which is derived from + CFrameWnd and controls all SDI frame features. + +res\Toolbar.bmp + This bitmap file is used to create tiled images for the toolbar. + The initial toolbar and status bar are constructed in the CMainFrame + class. Edit this toolbar bitmap using the resource editor, and + update the IDR_MAINFRAME TOOLBAR array in FileExplorer.rc to add + toolbar buttons. +///////////////////////////////////////////////////////////////////////////// + +AppWizard creates one document type and one view: + +FileExplorerDoc.h, FileExplorerDoc.cpp - the document + These files contain your CFileExplorerDoc class. Edit these files to + add your special document data and to implement file saving and loading + (via CFileExplorerDoc::Serialize). + +FileExplorerView.h, FileExplorerView.cpp - the view of the document + These files contain your CFileExplorerView class. + CFileExplorerView objects are used to view CFileExplorerDoc objects. + + + +///////////////////////////////////////////////////////////////////////////// +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named FileExplorer.pch and a precompiled types file named StdAfx.obj. + +Resource.h + This is the standard header file, which defines new resource IDs. + Microsoft Visual C++ reads and updates this file. + +///////////////////////////////////////////////////////////////////////////// +Other notes: + +AppWizard uses "TODO:" to indicate parts of the source code you +should add to or customize. + +If your application uses MFC in a shared DLL, and your application is +in a language other than the operating system's current language, you +will need to copy the corresponding localized resources MFC42XXX.DLL +from the Microsoft Visual C++ CD-ROM onto the system or system32 directory, +and rename it to be MFCLOC.DLL. ("XXX" stands for the language abbreviation. +For example, MFC42DEU.DLL contains resources translated to German.) If you +don't do this, some of the UI elements of your application will remain in the +language of the operating system. + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/StdAfx.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/StdAfx.cpp new file mode 100644 index 0000000..7ac5a94 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/StdAfx.cpp @@ -0,0 +1,8 @@ +// stdafx.cpp : source file that includes just the standard includes +// FileExplorer.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/StdAfx.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/StdAfx.h new file mode 100644 index 0000000..080a984 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/StdAfx.h @@ -0,0 +1,27 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#if !defined(AFX_STDAFX_H__10814F8B_EC24_11D2_A7FB_525400DAF3CE__INCLUDED_) +#define AFX_STDAFX_H__10814F8B_EC24_11D2_A7FB_525400DAF3CE__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers + +#include // MFC core and standard components +#include // MFC extensions +#include +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for Windows Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + +#include "OXAdvancedAssert.h" + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_STDAFX_H__10814F8B_EC24_11D2_A7FB_525400DAF3CE__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/res/FileExplorer.ico b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/res/FileExplorer.ico new file mode 100644 index 0000000000000000000000000000000000000000..7eef0bcbe6580a6f464d688906172c2d9de44262 GIT binary patch literal 1078 zcmc&zF>b>!3}jLb9s)T}@Kod(893@u8ajANzT`op9^o+)S?=nU(FD@%0s)Sg^oyC8{H z9myetc;MEP)59v(LMa~xK8Yu^jIR*H22uCFiq5%C{s7(PJi>o15i^bmX4(vPxWAio z9ryY#AU_jfnd047-@`)XzL?%iS$gQyFP{44kS9X)fN{{QoL~hO-&=q&20Zr*cxFAt PkaNE{wR~2C$NfnjhSXWT literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/res/FileExplorer.rc2 b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/res/FileExplorer.rc2 new file mode 100644 index 0000000..ddf0bed --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/res/FileExplorer.rc2 @@ -0,0 +1,13 @@ +// +// FILEEXPLORER.RC2 - resources Microsoft Visual C++ does not edit directly +// + +#ifdef APSTUDIO_INVOKED + #error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// Add manually edited resources here... + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/res/FileExplorerDoc.ico b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/res/FileExplorerDoc.ico new file mode 100644 index 0000000000000000000000000000000000000000..2a1f1ae6ef15e51df8c39bc028bbfb2171822ba5 GIT binary patch literal 1078 zcmcJNF;c@Y5JlGsgIpoERJdY%i*S@2!JS&si6f-)RXoFGDAfg5;z_dQBoi_)1DpI^ z{oS?KlD%25H@>BZ{KJV|_dD9_G1MV<{5a&-}7^W%4AM)k- zx&P*V(j}a@*Y~UhksXTAK!NRyiYN-8NMyKz<)2v9@tUao7A!g+SzkAcsHvdq6!0vQ z#-rA6>0BAr)4*u6Y57EdkamnXf Uh-a7VEuQ2KJb_2>o71HC3-%7w@Bjb+ literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/res/Toolbar.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/res/Toolbar.bmp new file mode 100644 index 0000000000000000000000000000000000000000..80f1040f18c53eab0003b62c13c3445a96840b46 GIT binary patch literal 718 zcmb7BI}XDj40WqY3>kWjo})rys?@Q^U_kMjBW2H$6ZA^yvoQpuWT?UBWBZwhpRezg zR7Thb^bNg3FLZ+?`j}r2otcO*X`1o^i!H6|id7t&PTDrvK{4bChX0UADu;|-J(-7aJ&^r<6c;Icz@bZvvr|Bevvz1Nv?o3bBMuXIxvsT?3zv$C Zs)}b^tsRvMKEnDtEc(8hc(&1>;~xqW`{Mur literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/res/bitmap1.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/res/bitmap1.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a19f8624a062518c6b57695eed7b5e278556497d GIT binary patch literal 5830 zcmeH}uWuYj6vwBMr8Njifl)|<8az^^P;*Nm!C~_+gcKMBM_VbN zAj`+`>G=40YOz^t7Mm4Yn726W4!gtdusiH>ti#@6@0fJhJM47EWB1rSc8|eh56lDe z;5D-4X^C%fWI1F_FdCkR1%m~H1%m~HLIQ&Yg9U>Hg9U@a1cL>G1%m~H1%pBdg9U>H zg9U>HgALfgVZmVqM+lk$EcEi%@$r1H3uUl4f;$2^oI0>*8d!7;99SG!G%et8;Beq@ z;Bes3RDr{R!GXbnK~m?y;lSX);E5G@Y6^)n|1sC}N_Id+?2cWUYGQX_>Im8qpaWA! z?2g3_CmpdnVyhe)8$0nk;&;Rsi8|tU3;%rZgC-sq#8s8Y+wjr z2w(_c2w(_c&~gHU2SWfu0D}huZuqbt3;_%Q3;_(d=7Sv!0So~Q0RVyc9%q4rflUq{ zj=2LzP~Wo0nJ>(D=E;*M=IPU?=Gn7n=EaK_=FOWo=GCiL=H0t@=KcHk=EH{%=F_K7 z=IrduTwhDOSsefg62_?Ya{L@h3LnNE9DjY+Sf3g$2M&8N-N1eH5-%$ zwB$j;qvsZr8WCkxPleY8v9#WwUR)@z*w217p-lxUL5i8qOUXWs&AL)7$<dTTyl5r$Fr4N0zI8g&_dtPf+R{OqhuL94$&&L%^7KK@i zJE@CyOiOLSvmUcx6~ikMkaCcm5CvZSOgQ$%kB}8VfPeYY@GPVg-)? zYik$GHEI&2iaSYu$W2^ohT6?~CREdc*ABgQy@>C|uQ`>&zy+7UYnmY@v|=fyB>^aM z$)~hhuR-puSf}vPS2ez-^$|TBOR+fGc^@W}u`g+b*y((W^+^_Smnuhi=dkJhl3Oue z9(j#3>a=*qqS0cp4FiL?U3gW*Y9|sLTKQ6xc_Ve$wsI!$EFo_D{sQ@?-`STwsmHQ9 zzhAubN=&Jh#VFN6u%wsrgIC(Eyb7^oj&W73B{6sfC_zh~3E-{YUwsajwpV>$(c*h~ zt5uL<8cQ~}^vav3tGOt(GB+-tbu7XKF?fxGkeax1rOgm;`~ITla=eOA94^+T?N*K^ zp;9jnX1%t(!fTv0=T2JiTCejDj+&UfUqWnZ<);eo&Fph4&2>_5{a!Bjy?C02c)>4j zhdD-enFmoXf|oaI-aB0>v1w|BR#g(~vHIa#6O(f@G0H#PqqB6&=N#bAK4T?T(36KE zQyEn^M$uIdi0~tX+aROlqgl|xy3Q*)fSBALnb~Ez-qJm{5odY+mYKkyZSSalL6!G4 z)yWO=l74B+dRVR3t8LfCBB`M9&7`*U^Q`LsDz6e_bM()9+>F3nb1@>*4Qu~(({GNd B1(E;& literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/res/bm_file.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/res/bm_file.bmp new file mode 100644 index 0000000000000000000000000000000000000000..db3d0aa84ce78873adcc54fcb1b95d7f98a7826c GIT binary patch literal 5830 zcmeH~F^C;E5QY^vcn5Lg7_M>?S8*)}xV={&xN+@nyH~qOag}RBz_6W*B#n*Nw z5v#US#FY!fS#a6c#E?SyW~7m{d&ec%X$+ZnyOKuI%>U1f^xhqxyf|_y-yS&k4ZYuZ zMD>L`RQ;2$w7KGS>KuRW^fWiT>AJJCGk5m;nfv3{pWMO0fjc}rbT@9?a5rz>bVo-= z?)L55?#`V%?(W^Y?!kix?&Rde9UmXNd-v|S)9;eIe?PhJ-7A-3a4%k6xL5DqxhFsW zf+No}@Qgem4?Q}M&ZG09OL@tFen3BV z#wn<0&)ehQW5~0~yX4e8FAoL}1`h@g289F$4+akg4+akgg$V`^1`h@g1`h^>4h9bf z4+akg4+fvmfy0Bt3yzdD0%&OEGx7u;^gnN90NE8 za17uWz@ec6#{h-_3bOSgBFbrS__)5Grg!suH#u{FU4yf=wvPwgZ?-5KRPDdP! zU>fl~GC5*o#P^7AO^5nMkN*+>BmN~tBmPHXGlF3R!$=$?ZA3-cqoL(3X(R>#e*tU( z907ltTERgK0yu);fS9J6O#v(cECCP!hgt$)32Y233Mc|t_~XG2ISF715)Z{9)gW0w z2ZjWO1cn5L1cn3#EhjJpFeES}Fa$7QhKKcFNMJ}{NMOJ;4|*^pFeES}03`eej3qWE z77f@K7!Tk`YFpL}?rZm>d-(97d-Uj$d;IvZd;0XLd-?LEd;a{nd;R*gd-LXvd;9jS zJ3l{n^E|r`A3nH0{z~qLXU{mtr$krIfHc_Ck=T`Ca-09<-$a0@=`w5U9u%Ea^=Hy? z7Z*{8S=(U8sgq@uT;}^_+t>BFb=vKw{)_I~yo`(8IB^spW^Ly#azIQbTc76}<)V*q zN$l2oorcJaT!W|c|Igh5gUrZB#azVMZO$*?Roc#2OlenSUh~?N3Dd`EMa+0vV5GIh z1o4s>9^JPXbcpCKrs9NAq$6hYk;_PVNvj1Zn^oYI43UL#DWo9Y!za4CmsB5w_A28TV57w zxk}WAknTi=vULaIbwJrX^Jy|px0k%|O-oOg4 z1TP_$OR-KVjT9GUdriKCq)^T%7FNVJN35q+@+Abw*@BmyD{Bi>Iqg+?^OQ^zn-E@l zX*6O+S$R!FX{it!vI{gSman}guST>4*&2u~XkC*pJ6G14dm)xx&a=T+jHYC|VkNg} z4>9Hhu$(co!=5PV;xTk+%K1|K`&nyUXCsBFM)I}TZONP0U(Xmak!`lVQ`@vn$^AU% zTWoQE)H0msR{X+?j1^2;iq(#=V6aG7_A76;?f2Z_Wx4R`h;>FX?JM$CfODD_yz05K zb5^4Yv9;Yg2hNU`#9tvcVqJD}sul@jz21j~SmPY`nHUq2v6cU;&)0U#>g^=ggssQE zohxf?3JUyG=!mSki>pd`VYidEwV-a`C3zxsR|^8aAG9d-wc!0=)p_2!7)HQ|i3OCrqUNb~EMKf|C(9N~1zl{n{BN_ULy$H) zT`z}5iLrv8VHsTh!PvhSycXE69h5JeTH$qZOH=EWIuu^(4T5vGAwcdu(ya8f(Aw|b zvVe@`?@lf=kvRXkmXG9R-`B-aYq}f1o!43?S5|t?K{Fvhk%eM4U{bz+Y)!VXcz-Of am7_Ln&>OVov90^GUbYDTPc!pb?*1D~7r0CS literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/res/tb_file_disabled.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/res/tb_file_disabled.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e450e7f267f94957bc934739a7293a8c2bdfb741 GIT binary patch literal 5830 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 Q%l#R^uh6GW|Ey>I4aOW+?f?J) literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/resource.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/resource.h new file mode 100644 index 0000000..830985a --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/FileExplorer/resource.h @@ -0,0 +1,31 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by FileExplorer.rc +// +#define IDD_ABOUTBOX 100 +#define ID_VIEW_ARRANGE 127 +#define IDR_MAINFRAME 128 +#define IDR_FILEEXTYPE 129 +#define ID_VIEW_BACKWARD 129 +#define ID_VIEW_FORWARD 130 +#define ID_VIEW_UP 131 +#define IDB_TB_FILE 132 +#define ID_VIEW_PROPERTY 132 +#define IDB_TB_FILE_HOT 133 +#define ID_VIEW_TYPE 133 +#define IDR_VIEWTYPE 133 +#define ID_EDIT_DELETE 134 +#define IDB_TB_FILE_DISABLED 134 +#define ID_DESCRIPTION_FILE 135 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_3D_CONTROLS 1 +#define _APS_NEXT_RESOURCE_VALUE 135 +#define _APS_NEXT_COMMAND_VALUE 32780 +#define _APS_NEXT_CONTROL_VALUE 1000 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/MainFrm.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/MainFrm.cpp new file mode 100644 index 0000000..75280cf --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/MainFrm.cpp @@ -0,0 +1,199 @@ +// MainFrm.cpp : implementation of the CMainFrame class +// + +#include "stdafx.h" +#include "Outlook.h" + +#include "MainFrm.h" + +#include "OutlookView.h" +#include "OutlookFormView.h" +#include "OutlookTreeView.h" +#include "OutlookListView.h" + +#include "OXSzMiniDockFrmWnd.h" +#include "OXBitmapMenu.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame + +IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd) + +BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) + ON_NOTIFY(TBN_DROPDOWN, ID_VIEW_TOOLBAR, OnDropDown) + //{{AFX_MSG_MAP(CMainFrame) + ON_WM_CREATE() + ON_WM_DESTROY() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +static UINT indicators[] = +{ + ID_SEPARATOR, // status line indicator + ID_INDICATOR_CAPS, + ID_INDICATOR_NUM, + ID_INDICATOR_SCRL, +}; + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame construction/destruction + +CMainFrame::CMainFrame() : + COXMenuBarFrame(CBRS_ALIGN_ANY, + RUNTIME_CLASS(COXSizableMiniDockFrameWnd)) +{ + // TODO: add member initialization code here + +} + +CMainFrame::~CMainFrame() +{ +} + +int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) +{ + if (CFrameWnd::OnCreate(lpCreateStruct) == -1) + return -1; + + if (!m_wndStatusBar.Create(this) || + !m_wndStatusBar.SetIndicators(indicators, + sizeof(indicators)/sizeof(UINT))) + { + TRACE0("Failed to create status bar\n"); + return -1; // fail to create + } + + // TODO: Remove this if you don't want tool tips or a resizeable toolbar + if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER, + CRect(2, 2, 2, 2), ID_VIEW_TOOLBAR) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) + { + TRACE0("Failed to create toolbar\n"); + return -1; // fail to create + } + + m_wndToolBar.IniSizes(CSize(16,16)); + m_wndToolBar.SetWindowText(_T("Toolbar")); + m_wndToolBar.SetDropDownArrow(TRUE); + + m_wndToolBar.SetButtonStyle(0, m_wndToolBar.GetButtonStyle(0) | TBSTYLE_DROPDOWN); + m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC); + m_wndToolBar.EnableDocking(CBRS_ALIGN_TOP | CBRS_ALIGN_BOTTOM); + + { + // Create the combo box + //m_wndToolBar.SetButtonInfo(18, IDC_COMBO, TBBS_SEPARATOR, 200); + m_iCombo = COXCoolToolBar::AddCustomButton(&m_Combo, IDC_COMBO, 100, 100); + m_wndToolBar.InsertComboBox(18,m_iCombo); + + // add some stuff + m_Combo.AddString(_T("Messages")); + m_Combo.AddString(_T("Messages with AutoPreview")); + m_Combo.AddString(_T("By Message Flag")); + m_Combo.AddString(_T("Last Seven Days")); + m_Combo.AddString(_T("Flagged For Next Seven Days")); + m_Combo.AddString(_T("By Conversation Topic")); + m_Combo.AddString(_T("By Sender")); + m_Combo.AddString(_T("Unread Messages")); + m_Combo.AddString(_T("Sent To")); + m_Combo.AddString(_T("Message Timeline")); + + m_wndToolBar.m_font.CreatePointFont(85, _T("Arial")); + m_Combo.SetFont(&m_wndToolBar.m_font); + } + + m_wndToolBar.UpdateSizes(); + + // TODO: Delete these three lines if you don't want the toolbar to + // be dockable + EnableDocking(CBRS_ALIGN_ANY); + DockControlBar(&m_wndToolBar); + + m_menuOrganizer.AttachFrameWnd(this); + m_menuOrganizer.AutoSetMenuImage(); + + return 0; +} + +BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) +{ + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + cs.style &= ~FWS_ADDTOTITLE; + + return CFrameWnd::PreCreateWindow(cs); +} + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame diagnostics + +#ifdef _DEBUG +void CMainFrame::AssertValid() const +{ + CFrameWnd::AssertValid(); +} + +void CMainFrame::Dump(CDumpContext& dc) const +{ + CFrameWnd::Dump(dc); +} + +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame message handlers + +BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) +{ + UNREFERENCED_PARAMETER(lpcs); + + if (!m_wndSplitter1.CreateStatic(this, 1, 2)) + return FALSE; + + if (!m_wndSplitter1.CreateView(0, 0, RUNTIME_CLASS(COutlookView), CSize(0, 0), pContext)) + return FALSE; + + if (!m_wndSplitter2.CreateStatic(&m_wndSplitter1, 1, 2, WS_CHILD | WS_VISIBLE, m_wndSplitter1.IdFromRowCol(0, 1))) + return FALSE; + + if (!m_wndSplitter2.CreateView(0, 0, RUNTIME_CLASS(COutlookTreeView), CSize(0, 0), pContext)) + return FALSE; + + if (!m_wndSplitter2.CreateView(0, 1, RUNTIME_CLASS(COutlookListView), CSize(0, 0), pContext)) + return FALSE; + + m_wndSplitter1.SetColumnInfo(0, 150, 0); + m_wndSplitter2.SetColumnInfo(0, 150, 0); + + return TRUE; +} + +void CMainFrame::OnDropDown(NMHDR* pNotifyStruct, LRESULT* pResult) +{ + NMTOOLBAR* pNMToolBar = (NMTOOLBAR*) pNotifyStruct; + CRect rect; + + // translate the current toolbar item rectangle into screen coordinates + // so that we'll know where to pop up the menu + m_wndToolBar.GetItemRect(m_wndToolBar.CommandToIndex(pNMToolBar->iItem), &rect); + rect.top = rect.bottom; + ::ClientToScreen(pNMToolBar->hdr.hwndFrom, &rect.TopLeft()); + + if (pNMToolBar->iItem == ID_NEW_MESSAGE) + { + CMenu menu; + CMenu* pPopup; + + menu.LoadMenu(IDR_POPUP_MENU); + pPopup = menu.GetSubMenu(0); + COXBitmapMenu menuPopup; + menuPopup.Attach(pPopup->Detach()); + menuPopup.TrackPopupMenu(&m_wndToolBar, AfxGetMainWnd()); + } + *pResult = TBDDRET_DEFAULT; +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/MainFrm.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/MainFrm.h new file mode 100644 index 0000000..4e27482 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/MainFrm.h @@ -0,0 +1,82 @@ +// MainFrm.h : interface of the CMainFrame class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_MAINFRM_H__DA7AA82C_2C67_11D2_88E3_0080C859A484__INCLUDED_) +#define AFX_MAINFRM_H__DA7AA82C_2C67_11D2_88E3_0080C859A484__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXBitmapMenuOrganizer.h" +#include "OXCoolToolBar.h" +#include "OXSkinnedComboBox.h" +#include "OXMenuBar.h" +#include "XStatus4.h" + +class CMyToolBar : public COXCoolToolBar +{ +public: + CComboBox m_combo; + CFont m_font; +}; + +class CMainFrame : public COXMenuBarFrame +{ +protected: // create from serialization only + CMainFrame(); + DECLARE_DYNCREATE(CMainFrame) + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CMainFrame) + public: + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + protected: + virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CMainFrame(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: // control bar embedded members + COXStatusBar m_wndStatusBar; + CMyToolBar m_wndToolBar; + + CSplitterWnd m_wndSplitter1; + CSplitterWnd m_wndSplitter2; + + COXBitmapMenuOrganizer m_menuOrganizer; + + // Custom buttons for the toolbar + int m_iCombo; + COXCustomTBComboBox m_Combo; + +// Generated message map functions +protected: + afx_msg void OnDropDown(NMHDR* pNotifyStruct, LRESULT* pResult); + + //{{AFX_MSG(CMainFrame) + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_MAINFRM_H__DA7AA82C_2C67_11D2_88E3_0080C859A484__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.clw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.clw new file mode 100644 index 0000000..eb28b9d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.clw @@ -0,0 +1,324 @@ +; CLW file contains information for the MFC ClassWizard + +[General Info] +Version=1 +LastClass=COutlookApp +LastTemplate=CFormView +NewFileInclude1=#include "stdafx.h" +NewFileInclude2=#include "Outlook.h" +LastPage=0 + +ClassCount=8 +Class1=COutlookApp +Class2=COutlookDoc +Class3=COutlookView +Class4=CMainFrame + +ResourceCount=7 +Resource1=IDR_MAINFRAME (English (U.S.)) +Class5=CAboutDlg +Class6=COutlookTreeView +Resource2=IDD_SHBPROPERTIES_DIALOG +Class7=COutlookListView +Resource3=IDR_POPUP_MENU (English (U.S.)) +Class8=COutlookFormView +Resource4=IDR_POPUP_MENU +Resource5=IDD_FORMVIEW (English (U.S.)) +Resource6=IDR_MAINFRAME +Resource7=IDD_SHBPROPERTIES_DIALOG (English (U.S.)) + +[CLS:COutlookApp] +Type=0 +HeaderFile=Outlook.h +ImplementationFile=Outlook.cpp +Filter=N +BaseClass=CWinApp +VirtualFilter=AC +LastObject=COutlookApp + +[CLS:COutlookDoc] +Type=0 +HeaderFile=OutlookDoc.h +ImplementationFile=OutlookDoc.cpp +Filter=N +LastObject=ID_VIEW_TOOLBAR +BaseClass=CDocument +VirtualFilter=DC + +[CLS:COutlookView] +Type=0 +HeaderFile=OutlookView.h +ImplementationFile=OutlookView.cpp +Filter=C +BaseClass=CView +VirtualFilter=VWC +LastObject=COutlookView + +[CLS:CMainFrame] +Type=0 +HeaderFile=MainFrm.h +ImplementationFile=MainFrm.cpp +Filter=T +BaseClass=CFrameWnd +VirtualFilter=fWC +LastObject=ID_VIEW_OUTLOOKBAR + + + +[CLS:CAboutDlg] +Type=0 +HeaderFile=Outlook.cpp +ImplementationFile=Outlook.cpp +Filter=D + +[MNU:IDR_MAINFRAME] +Type=1 +Class=CMainFrame +Command1=ID_FILE_PRINT +Command2=ID_FILE_PRINT_PREVIEW +Command3=ID_APP_EXIT +Command4=ID_REPLY +Command5=ID_REPLY_TO_ALL +Command6=ID_FORWARD_MESSAGE +Command7=ID_MOVE_TO_FOLDER +Command8=ID_DELETE +Command9=ID_FORWARD +Command10=ID_BACK +Command11=ID_UP_ONE_FOLDER +Command12=ID_VIEW_TOOLBAR +Command13=ID_VIEW_STATUS_BAR +Command14=ID_APP_ABOUT +CommandCount=14 + +[ACL:IDR_MAINFRAME] +Type=1 +Class=CMainFrame +Command1=ID_FILE_NEW +Command2=ID_FILE_OPEN +Command3=ID_FILE_SAVE +Command4=ID_EDIT_UNDO +Command5=ID_EDIT_CUT +Command6=ID_EDIT_COPY +Command7=ID_EDIT_PASTE +Command8=ID_EDIT_UNDO +Command9=ID_EDIT_CUT +Command10=ID_EDIT_COPY +Command11=ID_EDIT_PASTE +Command12=ID_NEXT_PANE +Command13=ID_PREV_PANE +CommandCount=13 + +[TB:IDR_MAINFRAME] +Type=1 +Class=? +Command1=ID_NEW_MESSAGE +Command2=ID_BACK +Command3=ID_FORWARD +Command4=ID_UP_ONE_FOLDER +Command5=ID_TOGGLE_TREE +Command6=ID_FILE_PRINT +Command7=ID_FILE_PRINT_PREVIEW +Command8=ID_MOVE_TO_FOLDER +Command9=ID_DELETE +Command10=ID_REPLY +Command11=ID_REPLY_TO_ALL +Command12=ID_FORWARD_MESSAGE +Command13=ID_ADDRESS_BOOK +Command14=ID_GROUP_BY_BOX +Command15=ID_AUTO_PREVIEW +Command16=ID_FIND_ITEMS +Command17=ID_OFFICE_ASSISTANT +CommandCount=17 + +[CLS:COutlookTreeView] +Type=0 +HeaderFile=OutlookTreeView.h +ImplementationFile=OutlookTreeView.cpp +BaseClass=CTreeView +Filter=C +LastObject=COutlookTreeView +VirtualFilter=VWC + +[CLS:COutlookListView] +Type=0 +HeaderFile=OutlookListView.h +ImplementationFile=OutlookListView.cpp +BaseClass=CListView +Filter=C +LastObject=COutlookListView +VirtualFilter=VWC + +[DLG:IDD_SHBPROPERTIES_DIALOG] +Type=1 +Class=? +ControlCount=32 +Control1=IDC_CLRBACK,button,1342242827 +Control2=IDC_HDRCLRBACK,button,1342242827 +Control3=IDC_TEXTFONT,button,1342242816 +Control4=IDC_HDRFONT,button,1342242816 +Control5=IDC_EDIT_HDRHEIGHT,edit,1350631552 +Control6=IDC_CHECK_APPLYTOEXPANDED,button,1342242819 +Control7=IDC_EDIT_GRPMARGIN,edit,1350631552 +Control8=IDC_EDIT_LEFTMARGIN,edit,1350631552 +Control9=IDC_EDIT_TOPMARGIN,edit,1350631552 +Control10=IDC_EDIT_RIGHTMARGIN,edit,1350631552 +Control11=IDC_EDIT_BOTTOMMARGIN,edit,1350631552 +Control12=IDC_EDIT_SCROLLBTNWIDTH,edit,1350631552 +Control13=IDC_EDIT_SCROLLBTNHEIGHT,edit,1350631552 +Control14=IDOK,button,1342242817 +Control15=IDCANCEL,button,1342242816 +Control16=IDC_STATIC,button,1342177287 +Control17=IDC_STATIC,static,1342308352 +Control18=IDC_STATIC,static,1342308352 +Control19=IDC_STATIC,button,1342177287 +Control20=IDC_NAMETEXTFONT,static,1342312459 +Control21=IDC_NAMEHDRFONT,static,1342312460 +Control22=IDC_STATIC,button,1342177287 +Control23=IDC_STATIC,static,1342308352 +Control24=IDC_STATIC,static,1342308352 +Control25=IDC_STATIC,static,1342308352 +Control26=IDC_STATIC,static,1342308352 +Control27=IDC_STATIC,static,1342308352 +Control28=IDC_STATIC,static,1342308352 +Control29=IDC_STATIC,static,1342308352 +Control30=IDC_STATIC,static,1342308352 +Control31=IDC_STATIC,static,1342308352 +Control32=IDC_STATIC,static,1342308352 + +[CLS:COutlookFormView] +Type=0 +HeaderFile=OutlookFormView.h +ImplementationFile=OutlookFormView.cpp +BaseClass=CFormView +Filter=D +LastObject=COutlookFormView + +[MNU:IDR_POPUP_MENU] +Type=1 +Class=? +Command1=ID_NEW_MESSAGE +Command2=ID_POST_IN_FOLDER +Command3=ID_APPOINTMENT +Command4=ID_MEETING_REQUEST +Command5=ID_CONTACT +Command6=ID_TASK +Command7=ID_TASK_REQUEST +Command8=ID_NOTE +Command9=ID_OFFICE_DOCUMENT +CommandCount=9 + +[DLG:IDD_FORMVIEW (English (U.S.))] +Type=1 +ControlCount=1 +Control1=IDC_LIST,SysListView32,1350631425 + +[TB:IDR_MAINFRAME (English (U.S.))] +Type=1 +Class=? +Command1=ID_NEW_MESSAGE +Command2=ID_BACK +Command3=ID_FORWARD +Command4=ID_UP_ONE_FOLDER +Command5=ID_TOGGLE_TREE +Command6=ID_FILE_PRINT +Command7=ID_FILE_PRINT_PREVIEW +Command8=ID_MOVE_TO_FOLDER +Command9=ID_DELETE +Command10=ID_REPLY +Command11=ID_REPLY_TO_ALL +Command12=ID_FORWARD_MESSAGE +Command13=ID_ADDRESS_BOOK +Command14=ID_GROUP_BY_BOX +Command15=ID_AUTO_PREVIEW +Command16=ID_FIND_ITEMS +Command17=ID_OFFICE_ASSISTANT +CommandCount=17 + +[MNU:IDR_MAINFRAME (English (U.S.))] +Type=1 +Class=? +Command1=ID_FILE_PRINT +Command2=ID_FILE_PRINT_PREVIEW +Command3=ID_APP_EXIT +Command4=ID_REPLY +Command5=ID_REPLY_TO_ALL +Command6=ID_FORWARD_MESSAGE +Command7=ID_MOVE_TO_FOLDER +Command8=ID_DELETE +Command9=ID_FORWARD +Command10=ID_BACK +Command11=ID_UP_ONE_FOLDER +Command12=ID_VIEW_TOOLBAR +Command13=ID_VIEW_STATUS_BAR +Command14=ID_APP_ABOUT +CommandCount=14 + +[MNU:IDR_POPUP_MENU (English (U.S.))] +Type=1 +Class=? +Command1=ID_NEW_MESSAGE +Command2=ID_POST_IN_FOLDER +Command3=ID_APPOINTMENT +Command4=ID_MEETING_REQUEST +Command5=ID_CONTACT +Command6=ID_TASK +Command7=ID_TASK_REQUEST +Command8=ID_NOTE +Command9=ID_OFFICE_DOCUMENT +CommandCount=9 + +[ACL:IDR_MAINFRAME (English (U.S.))] +Type=1 +Class=? +Command1=ID_FILE_NEW +Command2=ID_FILE_OPEN +Command3=ID_FILE_SAVE +Command4=ID_EDIT_UNDO +Command5=ID_EDIT_CUT +Command6=ID_EDIT_COPY +Command7=ID_EDIT_PASTE +Command8=ID_EDIT_UNDO +Command9=ID_EDIT_CUT +Command10=ID_EDIT_COPY +Command11=ID_EDIT_PASTE +Command12=ID_NEXT_PANE +Command13=ID_PREV_PANE +CommandCount=13 + +[DLG:IDD_SHBPROPERTIES_DIALOG (English (U.S.))] +Type=1 +Class=? +ControlCount=32 +Control1=IDC_CLRBACK,button,1342242827 +Control2=IDC_HDRCLRBACK,button,1342242827 +Control3=IDC_TEXTFONT,button,1342242816 +Control4=IDC_HDRFONT,button,1342242816 +Control5=IDC_EDIT_HDRHEIGHT,edit,1350631552 +Control6=IDC_CHECK_APPLYTOEXPANDED,button,1342242819 +Control7=IDC_EDIT_GRPMARGIN,edit,1350631552 +Control8=IDC_EDIT_LEFTMARGIN,edit,1350631552 +Control9=IDC_EDIT_TOPMARGIN,edit,1350631552 +Control10=IDC_EDIT_RIGHTMARGIN,edit,1350631552 +Control11=IDC_EDIT_BOTTOMMARGIN,edit,1350631552 +Control12=IDC_EDIT_SCROLLBTNWIDTH,edit,1350631552 +Control13=IDC_EDIT_SCROLLBTNHEIGHT,edit,1350631552 +Control14=IDOK,button,1342242817 +Control15=IDCANCEL,button,1342242816 +Control16=IDC_STATIC,button,1342177287 +Control17=IDC_STATIC,static,1342308352 +Control18=IDC_STATIC,static,1342308352 +Control19=IDC_STATIC,button,1342177287 +Control20=IDC_NAMETEXTFONT,static,1342312459 +Control21=IDC_NAMEHDRFONT,static,1342312460 +Control22=IDC_STATIC,button,1342177287 +Control23=IDC_STATIC,static,1342308352 +Control24=IDC_STATIC,static,1342308352 +Control25=IDC_STATIC,static,1342308352 +Control26=IDC_STATIC,static,1342308352 +Control27=IDC_STATIC,static,1342308352 +Control28=IDC_STATIC,static,1342308352 +Control29=IDC_STATIC,static,1342308352 +Control30=IDC_STATIC,static,1342308352 +Control31=IDC_STATIC,static,1342308352 +Control32=IDC_STATIC,static,1342308352 + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.cpp new file mode 100644 index 0000000..6b52c6a --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.cpp @@ -0,0 +1,137 @@ +// Outlook.cpp : Defines the class behaviors for the application. +// + +#include "stdafx.h" +#include "Outlook.h" + +#include "MainFrm.h" +#include "OutlookDoc.h" +#include "UTSampleAbout.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// COutlookApp + +BEGIN_MESSAGE_MAP(COutlookApp, CWinApp) + //{{AFX_MSG_MAP(COutlookApp) + ON_COMMAND(ID_APP_ABOUT, OnAppAbout) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG_MAP + // Standard file based document commands + ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) + ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// COutlookApp construction + +COutlookApp::COutlookApp() +{ + // TODO: add construction code here, + // Place all significant initialization in InitInstance +} + +///////////////////////////////////////////////////////////////////////////// +// The one and only COutlookApp object + +COutlookApp theApp; +static HINSTANCE g_hRichEdDLL=NULL; + +///////////////////////////////////////////////////////////////////////////// +// COutlookApp initialization + +BOOL COutlookApp::InitInstance() +{ + AfxEnableControlContainer(); + + // 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. + + // Initialize OLE libraries + if (!AfxOleInit()) + { + TRACE(_T("CShortcutBarApp::InitInstance: failed to initialize OLE libraries")); + return FALSE; + } + +#if _MSC_VER < 1400 +#ifdef _AFXDLL + Enable3dControls(); // Call this when using MFC in a shared DLL +#else + Enable3dControlsStatic(); // Call this when linking to MFC statically +#endif +#endif + + + // Initialize RichEdit control + // for About Dialog + if(g_hRichEdDLL==NULL) + { + g_hRichEdDLL=::LoadLibrary(_T("RICHED32.DLL")); + if(g_hRichEdDLL==NULL) + TRACE(_T("Cannot load library to display RichEditTextControl")); + } + + + // Change the registry key under which our settings are stored. + // You should modify this string to be something appropriate + // such as the name of your company or organization. + SetRegistryKey(_T("Local AppWizard-Generated Applications")); + + LoadStdProfileSettings(0); // Load standard INI file options (including MRU) + + // Register the application's document templates. Document templates + // serve as the connection between documents, frame windows and views. + + CSingleDocTemplate* pDocTemplate; + pDocTemplate = new CSingleDocTemplate( + IDR_MAINFRAME, + RUNTIME_CLASS(COutlookDoc), + RUNTIME_CLASS(CMainFrame), // main SDI frame window + NULL); + AddDocTemplate(pDocTemplate); + + // Parse command line for standard shell commands, DDE, file open + CCommandLineInfo cmdInfo; + ParseCommandLine(cmdInfo); + + SetCurrentSkin(_T("Office 2003")); + + // Dispatch commands specified on the command line + if (!ProcessShellCommand(cmdInfo)) + return FALSE; + + // The one and only window has been initialized, so show and update it. + m_pMainWnd->ShowWindow(SW_SHOW); + m_pMainWnd->UpdateWindow(); + + return TRUE; +} + +///////////////////////////////////////////////////////////////////////////// +// COutlookApp commands + +void COutlookApp::OnAppAbout() +{ + CUTSampleAboutDlg aboutDlg(IDR_MAINFRAME, ID_DESCRIPTION_FILE); + aboutDlg.DoModal(); +} + +int COutlookApp::ExitInstance() +{ + // TODO: Add your specialized code here and/or call the base class + + // unload the library + if(g_hRichEdDLL!=NULL) + ::FreeLibrary(g_hRichEdDLL); + + return CWinApp::ExitInstance(); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.dsp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.dsp new file mode 100644 index 0000000..c0dcd6c --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.dsp @@ -0,0 +1,456 @@ +# Microsoft Developer Studio Project File - Name="Outlook" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=Outlook - Win32 Unicode_Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "Outlook.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "Outlook.mak" CFG="Outlook - Win32 Unicode_Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "Outlook - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "Outlook - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE "Outlook - Win32 Release_Shared" (based on "Win32 (x86) Application") +!MESSAGE "Outlook - Win32 Unicode_Debug" (based on "Win32 (x86) Application") +!MESSAGE "Outlook - Win32 Unicode_Release" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "Outlook - Win32 Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"OutlookLikeDemo.exe" + +!ELSEIF "$(CFG)" == "Outlook - Win32 Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /FR /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"OutlookLikeDemo.exe" /pdbtype:sept + +!ELSEIF "$(CFG)" == "Outlook - Win32 Release_Shared" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Outlook_" +# PROP BASE Intermediate_Dir "Outlook_" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release_Shared" +# PROP Intermediate_Dir "Release_Shared" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\source\utsampleabout" /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"OutlookLikeDemo.exe" + +!ELSEIF "$(CFG)" == "Outlook - Win32 Unicode_Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Outlook0" +# PROP BASE Intermediate_Dir "Outlook0" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Unicode_Debug" +# PROP Intermediate_Dir "Unicode_Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W4 /Gm /GX /Zi /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /FR /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_UNICODE" /FR /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"OutlookLikeDemo.exe" /pdbtype:sept +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /debug /machine:I386 /out:"OutlookLikeDemo.exe" /pdbtype:sept + +!ELSEIF "$(CFG)" == "Outlook - Win32 Unicode_Release" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Outlook1" +# PROP BASE Intermediate_Dir "Outlook1" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Unicode_Release" +# PROP Intermediate_Dir "Unicode_Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /out:"OutlookLikeDemo.exe" +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /machine:I386 /out:"OutlookLikeDemo.exe" + +!ENDIF + +# Begin Target + +# Name "Outlook - Win32 Release" +# Name "Outlook - Win32 Debug" +# Name "Outlook - Win32 Release_Shared" +# Name "Outlook - Win32 Unicode_Debug" +# Name "Outlook - Win32 Unicode_Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Group "UTSource" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\source\UTSampleAbout\HtmlCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\MFCToolBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OX3DTabView.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXAdvancedAssert.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXAdvancedAssertMail.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXBitmapButton.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXBitmapMenu.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXBitmapMenuOrganizer.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXColorPickerButton.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXColorPickerCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCoolToolBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\oxdocktabctrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXDragDockContext.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXFrameWndDock.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXMDIFloatWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXMenuBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXPopupBarCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXRectTracker.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXShortcutBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSizeCtrlBar.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSizeDockBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSizeToolBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkinnedComboBox.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkinnedSpinCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkinnedTabCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkins.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSplitterRect.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXStatic.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSzMiniDockFrmWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXTabClientWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXToolTipCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXUxTheme.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\UTBStrOp.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\UTSampleAbout\UTSampleAbout.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\Xstatus4.cpp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\MainFrm.cpp +# End Source File +# Begin Source File + +SOURCE=.\Outlook.cpp +# End Source File +# Begin Source File + +SOURCE=.\Outlook.rc +# End Source File +# Begin Source File + +SOURCE=.\OutlookDoc.cpp +# End Source File +# Begin Source File + +SOURCE=.\OutlookFormView.cpp +# End Source File +# Begin Source File + +SOURCE=.\OutlookListView.cpp +# End Source File +# Begin Source File + +SOURCE=.\OutlookTreeView.cpp +# End Source File +# Begin Source File + +SOURCE=.\OutlookView.cpp +# End Source File +# Begin Source File + +SOURCE=.\SHBPropertiesDlg.cpp +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\MainFrm.h +# End Source File +# Begin Source File + +SOURCE=.\Outlook.h +# End Source File +# Begin Source File + +SOURCE=.\OutlookDoc.h +# End Source File +# Begin Source File + +SOURCE=.\OutlookFormView.h +# End Source File +# Begin Source File + +SOURCE=.\OutlookListView.h +# End Source File +# Begin Source File + +SOURCE=.\OutlookTreeView.h +# End Source File +# Begin Source File + +SOURCE=.\OutlookView.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\OXShortcutBar.h +# End Source File +# Begin Source File + +SOURCE=.\Resource.h +# End Source File +# Begin Source File + +SOURCE=.\SHBPropertiesDlg.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\res\bitmap4.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\icon1.ico +# End Source File +# Begin Source File + +SOURCE=.\res\large.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\Outlook.ico +# End Source File +# Begin Source File + +SOURCE=.\res\Outlook.rc2 +# End Source File +# Begin Source File + +SOURCE=.\res\OutlookDoc.ico +# End Source File +# Begin Source File + +SOURCE=.\res\small.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\Toolbar.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\TreeImages.bmp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ReadMe.txt +# End Source File +# End Target +# End Project diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.dsw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.dsw new file mode 100644 index 0000000..4620e72 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "Outlook"=".\Outlook.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.h new file mode 100644 index 0000000..6b68fdc --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.h @@ -0,0 +1,52 @@ +// Outlook.h : main header file for the OUTLOOK application +// + +#if !defined(AFX_OUTLOOK_H__DA7AA828_2C67_11D2_88E3_0080C859A484__INCLUDED_) +#define AFX_OUTLOOK_H__DA7AA828_2C67_11D2_88E3_0080C859A484__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols +#include "OXSkins.h" + +///////////////////////////////////////////////////////////////////////////// +// COutlookApp: +// See Outlook.cpp for the implementation of this class +// + +class COutlookApp : public COXSkinnedApp//CWinApp +{ +public: + COutlookApp(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(COutlookApp) + public: + virtual BOOL InitInstance(); + virtual int ExitInstance(); + //}}AFX_VIRTUAL + +// Implementation + + //{{AFX_MSG(COutlookApp) + afx_msg void OnAppAbout(); + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_OUTLOOK_H__DA7AA828_2C67_11D2_88E3_0080C859A484__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.rc b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.rc new file mode 100644 index 0000000..0d33501 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.rc @@ -0,0 +1,520 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// Neutral resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU) +#ifdef _WIN32 +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDB_BITMAP5 BITMAP MOVEABLE PURE "res\\outlook2003.bmp" +#endif // Neutral resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDR_MAINFRAME BITMAP MOVEABLE PURE "res\\Toolbar.bmp" +IDB_BITMAP1 BITMAP MOVEABLE PURE "res\\large.bmp" +IDB_BITMAP2 BITMAP MOVEABLE PURE "res\\small.bmp" +IDB_BITMAP3 BITMAP MOVEABLE PURE "res\\TreeImages.bmp" +IDB_BITMAP4 BITMAP MOVEABLE PURE "res\\bitmap4.bmp" + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE MOVEABLE PURE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE MOVEABLE PURE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE MOVEABLE PURE +BEGIN + "#include ""utsampleabout.rc""\r\n" + "\r\n" + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif\r\n" + "#include ""res\\Outlook.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "#include ""OXBitmapButton.rc""\r\n" + "#include ""OXBitmapMenu.rc""\r\n" + "#include ""OXCoolToolBar.rc""\r\n" + "#include ""OXPopupBarCtrl.rc""\r\n" + "#include ""OXShortcutBar.rc""\r\n" + "#include ""OXMenubar.rc""\r\n" + "#endif\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON DISCARDABLE "res\\Outlook.ico" +IDR_OUTLOOTYPE ICON DISCARDABLE "res\\OutlookDoc.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Toolbar +// + +IDR_MAINFRAME TOOLBAR MOVEABLE PURE 16, 16 +BEGIN + BUTTON ID_NEW_MESSAGE + SEPARATOR + BUTTON ID_BACK + BUTTON ID_FORWARD + SEPARATOR + BUTTON ID_UP_ONE_FOLDER + BUTTON ID_TOGGLE_TREE + SEPARATOR + BUTTON ID_FILE_PRINT + BUTTON ID_FILE_PRINT_PREVIEW + SEPARATOR + BUTTON ID_MOVE_TO_FOLDER + BUTTON ID_DELETE + SEPARATOR + BUTTON ID_REPLY + BUTTON ID_REPLY_TO_ALL + BUTTON ID_FORWARD_MESSAGE + SEPARATOR + BUTTON ID_ADDRESS_BOOK + SEPARATOR + BUTTON ID_GROUP_BY_BOX + BUTTON ID_AUTO_PREVIEW + SEPARATOR + BUTTON ID_FIND_ITEMS + SEPARATOR + BUTTON ID_OFFICE_ASSISTANT +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_MAINFRAME MENU DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&Print", ID_FILE_PRINT + MENUITEM "Print Pre&view", ID_FILE_PRINT_PREVIEW + MENUITEM SEPARATOR + MENUITEM "E&xit", ID_APP_EXIT + END + POPUP "Message" + BEGIN + MENUITEM "&Reply", ID_REPLY + MENUITEM "Reply to &all", ID_REPLY_TO_ALL + MENUITEM "&Forward", ID_FORWARD_MESSAGE + MENUITEM SEPARATOR + MENUITEM "&Move to folder", ID_MOVE_TO_FOLDER + MENUITEM "&Delete", ID_DELETE + END + POPUP "&View" + BEGIN + MENUITEM "&Forward", ID_FORWARD + MENUITEM "&Back", ID_BACK + MENUITEM "&Up", ID_UP_ONE_FOLDER + MENUITEM SEPARATOR + MENUITEM "&Toolbar", ID_VIEW_TOOLBAR + MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR + END + POPUP "&Skin" + BEGIN + MENUITEM "&Classic", ID_SKIN_CLASSIC + MENUITEM "Office &XP", ID_SKIN_OFFICEXP + MENUITEM "&Office 2003", ID_SKIN_OFFICE2003 + END + POPUP "&Help" + BEGIN + MENUITEM "&About OutlookLikeDemo...", ID_APP_ABOUT + END +END + +IDR_POPUP_MENU MENU DISCARDABLE +BEGIN + POPUP "_POPUP_" + BEGIN + MENUITEM "&New Message", ID_NEW_MESSAGE + MENUITEM "&Post in this Folder", ID_POST_IN_FOLDER + MENUITEM SEPARATOR + MENUITEM "&Appointment", ID_APPOINTMENT + MENUITEM "&Meeting Request", ID_MEETING_REQUEST + MENUITEM "&Contact", ID_CONTACT + MENUITEM "&Task", ID_TASK + MENUITEM "Task &Request", ID_TASK_REQUEST + MENUITEM "N&ote", ID_NOTE + MENUITEM "&Office Document...", ID_OFFICE_DOCUMENT + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Accelerator +// + +IDR_MAINFRAME ACCELERATORS MOVEABLE PURE +BEGIN + "N", ID_FILE_NEW, VIRTKEY, CONTROL + "O", ID_FILE_OPEN, VIRTKEY, CONTROL + "S", ID_FILE_SAVE, VIRTKEY, CONTROL + "Z", ID_EDIT_UNDO, VIRTKEY, CONTROL + "X", ID_EDIT_CUT, VIRTKEY, CONTROL + "C", ID_EDIT_COPY, VIRTKEY, CONTROL + "V", ID_EDIT_PASTE, VIRTKEY, CONTROL + VK_BACK, ID_EDIT_UNDO, VIRTKEY, ALT + VK_DELETE, ID_EDIT_CUT, VIRTKEY, SHIFT + VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL + VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT + VK_F6, ID_NEXT_PANE, VIRTKEY + VK_F6, ID_PREV_PANE, VIRTKEY, SHIFT +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_SHBPROPERTIES_DIALOG DIALOGEX 0, 0, 280, 146 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "ShortcutBar properties" +FONT 8, "MS Sans Serif", 0, 0, 0x1 +BEGIN + CONTROL "",IDC_CLRBACK,"Button",BS_OWNERDRAW | WS_TABSTOP,87,16, + 55,14 + CONTROL "",IDC_HDRCLRBACK,"Button",BS_OWNERDRAW | WS_TABSTOP,87, + 33,55,14 + PUSHBUTTON "Text...",IDC_TEXTFONT,13,68,39,13 + PUSHBUTTON "Header...",IDC_HDRFONT,13,85,39,13 + EDITTEXT IDC_EDIT_HDRHEIGHT,61,108,27,12,ES_AUTOHSCROLL + CONTROL "Apply to expanded group only",IDC_CHECK_APPLYTOEXPANDED, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,126,109,10 + EDITTEXT IDC_EDIT_GRPMARGIN,242,18,26,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_LEFTMARGIN,183,50,26,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_TOPMARGIN,242,50,26,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_RIGHTMARGIN,183,66,26,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_BOTTOMMARGIN,242,66,26,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_SCROLLBTNWIDTH,183,101,26,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_SCROLLBTNHEIGHT,242,101,26,12,ES_AUTOHSCROLL + DEFPUSHBUTTON "OK",IDOK,154,125,50,14 + PUSHBUTTON "Cancel",IDCANCEL,223,125,50,14 + GROUPBOX "Colors",IDC_STATIC,7,7,141,44 + LTEXT "Background",IDC_STATIC,14,19,40,8 + LTEXT "Header Background",IDC_STATIC,14,36,65,8 + GROUPBOX "Fonts",IDC_STATIC,7,56,141,48 + CONTROL "Static",IDC_NAMETEXTFONT,"Static",SS_SIMPLE | SS_SUNKEN | + WS_GROUP,61,68,81,12,WS_EX_STATICEDGE + CONTROL "Static",IDC_NAMEHDRFONT,"Static",SS_LEFTNOWORDWRAP | + SS_SUNKEN | WS_GROUP,61,85,81,12,WS_EX_STATICEDGE + GROUPBOX "Static",IDC_STATIC,154,7,119,112 + LTEXT "Margin between groups",IDC_STATIC,161,20,75,8 + LTEXT "Child Window Margins",IDC_STATIC,161,38,71,8 + LTEXT "Left",IDC_STATIC,161,52,13,8 + LTEXT "Top",IDC_STATIC,216,52,14,8 + LTEXT "Right",IDC_STATIC,161,68,18,8 + LTEXT "Bottom",IDC_STATIC,216,68,23,8 + LTEXT "Scroll Button Size",IDC_STATIC,160,90,56,8 + LTEXT "Width",IDC_STATIC,161,103,20,8 + LTEXT "Height",IDC_STATIC,216,103,22,8 + LTEXT "Header Height",IDC_STATIC,7,111,47,8 +END + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "FileDescription", "Outlook MFC Application\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "Outlook\0" + VALUE "LegalCopyright", "Copyright (C) 1998\0" + VALUE "OriginalFilename", "Outlook.EXE\0" + VALUE "ProductName", "Outlook Application\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO MOVEABLE PURE +BEGIN + IDD_SHBPROPERTIES_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 273 + TOPMARGIN, 7 + BOTTOMMARGIN, 139 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDR_MAINFRAME "OutlookLikeDemo" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_APP_TITLE "Outlook" + AFX_IDS_IDLEMESSAGE "Ready" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_INDICATOR_EXT "EXT" + ID_INDICATOR_CAPS "CAP" + ID_INDICATOR_NUM "NUM" + ID_INDICATOR_SCRL "SCRL" + ID_INDICATOR_OVR "OVR" + ID_INDICATOR_REC "REC" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_NEW "Create a new document\nNew" + ID_FILE_OPEN "Open an existing document\nOpen" + ID_FILE_CLOSE "Close the active document\nClose" + ID_FILE_SAVE "Save the active document\nSave" + ID_FILE_SAVE_AS "Save the active document with a new name\nSave As" + ID_FILE_PRINT "Print the active document\nPrint" + ID_FILE_PRINT_PREVIEW "Look at a print preview of the active document\nPrint Preview" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_APP_ABOUT "Display program information, version number and copyright\nAbout" + ID_APP_EXIT "Quit the application; prompts to save documents\nExit" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_MRU_FILE1 "Open this document" + ID_FILE_MRU_FILE2 "Open this document" + ID_FILE_MRU_FILE3 "Open this document" + ID_FILE_MRU_FILE4 "Open this document" + ID_FILE_MRU_FILE5 "Open this document" + ID_FILE_MRU_FILE6 "Open this document" + ID_FILE_MRU_FILE7 "Open this document" + ID_FILE_MRU_FILE8 "Open this document" + ID_FILE_MRU_FILE9 "Open this document" + ID_FILE_MRU_FILE10 "Open this document" + ID_FILE_MRU_FILE11 "Open this document" + ID_FILE_MRU_FILE12 "Open this document" + ID_FILE_MRU_FILE13 "Open this document" + ID_FILE_MRU_FILE14 "Open this document" + ID_FILE_MRU_FILE15 "Open this document" + ID_FILE_MRU_FILE16 "Open this document" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_NEXT_PANE "Switch to the next window pane\nNext Pane" + ID_PREV_PANE "Switch back to the previous window pane\nPrevious Pane" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_WINDOW_SPLIT "Split the active window into panes\nSplit" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_EDIT_CLEAR "Erase the selection\nErase" + ID_EDIT_CLEAR_ALL "Erase everything\nErase All" + ID_EDIT_COPY "Copy the selection and put it on the Clipboard\nCopy" + ID_EDIT_CUT "Cut the selection and put it on the Clipboard\nCut" + ID_EDIT_FIND "Find the specified text\nFind" + ID_EDIT_PASTE "Insert Clipboard contents\nPaste" + ID_EDIT_REPEAT "Repeat the last action\nRepeat" + ID_EDIT_REPLACE "Replace specific text with different text\nReplace" + ID_EDIT_SELECT_ALL "Select the entire document\nSelect All" + ID_EDIT_UNDO "Undo the last action\nUndo" + ID_EDIT_REDO "Redo the previously undone action\nRedo" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_VIEW_TOOLBAR "Show or hide the toolbar\nToggle ToolBar" + ID_VIEW_STATUS_BAR "Show or hide the status bar\nToggle StatusBar" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_SCSIZE "Change the window size" + AFX_IDS_SCMOVE "Change the window position" + AFX_IDS_SCMINIMIZE "Reduce the window to an icon" + AFX_IDS_SCMAXIMIZE "Enlarge the window to full size" + AFX_IDS_SCNEXTWINDOW "Switch to the next document window" + AFX_IDS_SCPREVWINDOW "Switch to the previous document window" + AFX_IDS_SCCLOSE "Close the active window and prompts to save the documents" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_SCRESTORE "Restore the window to normal size" + AFX_IDS_SCTASKLIST "Activate Task List" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_NEW_MESSAGE "Compose a E-mail New Message\nNew Message" + ID_BACK "Go Back\nBack" + ID_FORWARD "Go Forward\nForward" + ID_UP_ONE_FOLDER "Move Up One Folder\nUp One Level" + ID_TOGGLE_TREE "Shows or hides the Tree Window\nTree View" + ID_MOVE_TO_FOLDER "Move to the selected Folder\nMove to Folder" + ID_DELETE "Delete the selected item\nDelete" + ID_REPLY "Reply to the current message\nReply" + ID_REPLY_TO_ALL "Reply to all receipients in the message\nReply to All" + ID_ADDRESS_BOOK "Shows the address book\nAddress Book" + ID_GROUP_BY_BOX "Group by Box\nGroup by Box" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_AUTO_PREVIEW "See an Auto Preview\nAuto Preview" + ID_FIND_ITEMS "Find the selected items\nFind Items" + ID_OFFICE_ASSISTANT "Popup the Office Assistant for help\nOffice Assistant" + IDC_COMBO "Combobox of items\nItem list" + ID_FORWARD_MESSAGE "Forward the current message\nForward Message" + ID_POST_IN_FOLDER "Post a new item into this folder\nPost in this Folder" + ID_APPOINTMENT "Schedule a new appointment\nAppointment" + ID_MEETING_REQUEST "Allows you to request a meeting\nMeeting Request" + ID_CONTACT "Add a new contact\nContact" + ID_TASK "Task\nTask" + ID_TASK_REQUEST "Request a task\nTask Request" + ID_NOTE "Add a note\nNote" + ID_OFFICE_DOCUMENT "Open an existing office document\nOffice Document" + ID_VIEW_OUTLOOKBAR "Shows or hides the Outlook Bar\nOutlook Bar" + ID_VIEW_FOLDERVIEW "Shows or hides the folder list\nFolder List" + ID_DESCRIPTION_FILE "OutlookInfo.rtf" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#include "utsampleabout.rc" + +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif +#include "res\Outlook.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +#include "OXBitmapButton.rc" +#include "OXBitmapMenu.rc" +#include "OXCoolToolBar.rc" +#include "OXPopupBarCtrl.rc" +#include "OXShortcutBar.rc" +#include "OXMenubar.rc" +#endif +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.vcproj b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.vcproj new file mode 100644 index 0000000..433b14e --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/Outlook.vcproj @@ -0,0 +1,2649 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookDoc.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookDoc.cpp new file mode 100644 index 0000000..f63728d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookDoc.cpp @@ -0,0 +1,226 @@ +// OutlookDoc.cpp : implementation of the COutlookDoc class +// + +#include "stdafx.h" +#include "Outlook.h" + +#include "OutlookDoc.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// COutlookDoc + +IMPLEMENT_DYNCREATE(COutlookDoc, CDocument) + +BEGIN_MESSAGE_MAP(COutlookDoc, CDocument) + //{{AFX_MSG_MAP(COutlookDoc) + ON_COMMAND(ID_ADDRESS_BOOK, OnAddressBook) + ON_COMMAND(ID_AUTO_PREVIEW, OnAutoPreview) + ON_COMMAND(ID_BACK, OnBack) + ON_COMMAND(ID_DELETE, OnDelete) + ON_COMMAND(ID_FILE_PRINT_PREVIEW, OnFilePrintPreview) + ON_COMMAND(ID_FIND_ITEMS, OnFindItems) + ON_COMMAND(ID_FORWARD, OnForward) + ON_COMMAND(ID_FORWARD_MESSAGE, OnForwardMessage) + ON_COMMAND(ID_GROUP_BY_BOX, OnGroupByBox) + ON_COMMAND(ID_MOVE_TO_FOLDER, OnMoveToFolder) + ON_COMMAND(ID_NEW_MESSAGE, OnNewMessage) + ON_COMMAND(ID_OFFICE_ASSISTANT, OnOfficeAssistant) + ON_COMMAND(ID_REPLY_TO_ALL, OnReplyToAll) + ON_COMMAND(ID_TOGGLE_TREE, OnToggleTree) + ON_COMMAND(ID_UP_ONE_FOLDER, OnUpOneFolder) + ON_COMMAND(ID_REPLY, OnReply) + ON_COMMAND(ID_APPOINTMENT, OnAppointment) + ON_COMMAND(ID_CONTACT, OnContact) + ON_COMMAND(ID_MEETING_REQUEST, OnMeetingRequest) + ON_COMMAND(ID_NOTE, OnNote) + ON_COMMAND(ID_OFFICE_DOCUMENT, OnOfficeDocument) + ON_COMMAND(ID_POST_IN_FOLDER, OnPostInFolder) + ON_COMMAND(ID_TASK, OnTask) + ON_COMMAND(ID_TASK_REQUEST, OnTaskRequest) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// COutlookDoc construction/destruction + +COutlookDoc::COutlookDoc() +{ + // TODO: add one-time construction code here + +} + +COutlookDoc::~COutlookDoc() +{ +} + +BOOL COutlookDoc::OnNewDocument() +{ + if (!CDocument::OnNewDocument()) + return FALSE; + + // TODO: add reinitialization code here + // (SDI documents will reuse this document) + + return TRUE; +} + + + +///////////////////////////////////////////////////////////////////////////// +// COutlookDoc serialization + +void COutlookDoc::Serialize(CArchive& ar) +{ + if (ar.IsStoring()) + { + // TODO: add storing code here + } + else + { + // TODO: add loading code here + } +} + +///////////////////////////////////////////////////////////////////////////// +// COutlookDoc diagnostics + +#ifdef _DEBUG +void COutlookDoc::AssertValid() const +{ + CDocument::AssertValid(); +} + +void COutlookDoc::Dump(CDumpContext& dc) const +{ + CDocument::Dump(dc); +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// COutlookDoc commands + +void COutlookDoc::OnAddressBook() +{ + AfxMessageBox(_T("OnAddressBook")); +} + +void COutlookDoc::OnAutoPreview() +{ + AfxMessageBox(_T("OnAutoPreview")); +} + +void COutlookDoc::OnBack() +{ + AfxMessageBox(_T("OnBack")); +} + +void COutlookDoc::OnDelete() +{ + AfxMessageBox(_T("OnDelete")); +} + +void COutlookDoc::OnFilePrintPreview() +{ + AfxMessageBox(_T("OnFilePrintPreview")); +} + +void COutlookDoc::OnFindItems() +{ + AfxMessageBox(_T("OnFindItems")); +} + +void COutlookDoc::OnForward() +{ + AfxMessageBox(_T("OnForward")); +} + +void COutlookDoc::OnForwardMessage() +{ + AfxMessageBox(_T("OnForwardMessage")); +} + +void COutlookDoc::OnGroupByBox() +{ + AfxMessageBox(_T("OnGroupByBox")); +} + +void COutlookDoc::OnMoveToFolder() +{ + AfxMessageBox(_T("OnMoveToFolder")); +} + +void COutlookDoc::OnNewMessage() +{ + AfxMessageBox(_T("OnNewMessage")); +} + +void COutlookDoc::OnOfficeAssistant() +{ + AfxMessageBox(_T("OnOfficeAssistant")); +} + +void COutlookDoc::OnReplyToAll() +{ + AfxMessageBox(_T("OnReplyToAll")); +} + +void COutlookDoc::OnToggleTree() +{ + AfxMessageBox(_T("OnToggleTree")); +} + +void COutlookDoc::OnUpOneFolder() +{ + AfxMessageBox(_T("OnUpOneFolder")); +} + +void COutlookDoc::OnReply() +{ + AfxMessageBox(_T("OnReply")); +} + +void COutlookDoc::OnAppointment() +{ + AfxMessageBox(_T("OnAppointment")); +} + +void COutlookDoc::OnContact() +{ + AfxMessageBox(_T("OnContact")); +} + +void COutlookDoc::OnMeetingRequest() +{ + AfxMessageBox(_T("OnMeetingRequest")); +} + +void COutlookDoc::OnNote() +{ + AfxMessageBox(_T("OnNote")); +} + +void COutlookDoc::OnOfficeDocument() +{ + AfxMessageBox(_T("OnOfficeDocument")); +} + +void COutlookDoc::OnPostInFolder() +{ + AfxMessageBox(_T("OnPostInFolder")); +} + +void COutlookDoc::OnTask() +{ + AfxMessageBox(_T("OnTask")); +} + +void COutlookDoc::OnTaskRequest() +{ + AfxMessageBox(_T("OnTaskRequest")); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookDoc.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookDoc.h new file mode 100644 index 0000000..5d6f72b --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookDoc.h @@ -0,0 +1,79 @@ +// OutlookDoc.h : interface of the COutlookDoc class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_OUTLOOKDOC_H__DA7AA82E_2C67_11D2_88E3_0080C859A484__INCLUDED_) +#define AFX_OUTLOOKDOC_H__DA7AA82E_2C67_11D2_88E3_0080C859A484__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + + +class COutlookDoc : public CDocument +{ +protected: // create from serialization only + COutlookDoc(); + DECLARE_DYNCREATE(COutlookDoc) + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(COutlookDoc) + public: + virtual BOOL OnNewDocument(); + virtual void Serialize(CArchive& ar); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~COutlookDoc(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + +// Generated message map functions +protected: + //{{AFX_MSG(COutlookDoc) + afx_msg void OnAddressBook(); + afx_msg void OnAutoPreview(); + afx_msg void OnBack(); + afx_msg void OnDelete(); + afx_msg void OnFilePrintPreview(); + afx_msg void OnFindItems(); + afx_msg void OnForward(); + afx_msg void OnForwardMessage(); + afx_msg void OnGroupByBox(); + afx_msg void OnMoveToFolder(); + afx_msg void OnNewMessage(); + afx_msg void OnOfficeAssistant(); + afx_msg void OnReplyToAll(); + afx_msg void OnToggleTree(); + afx_msg void OnUpOneFolder(); + afx_msg void OnReply(); + afx_msg void OnAppointment(); + afx_msg void OnContact(); + afx_msg void OnMeetingRequest(); + afx_msg void OnNote(); + afx_msg void OnOfficeDocument(); + afx_msg void OnPostInFolder(); + afx_msg void OnTask(); + afx_msg void OnTaskRequest(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_OUTLOOKDOC_H__DA7AA82E_2C67_11D2_88E3_0080C859A484__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookFormView.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookFormView.cpp new file mode 100644 index 0000000..0eec15b --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookFormView.cpp @@ -0,0 +1,62 @@ +// OutlookFormView.cpp : implementation file +// + +#include "stdafx.h" +#include "Outlook.h" +#include "OutlookFormView.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// COutlookFormView + +IMPLEMENT_DYNCREATE(COutlookFormView, CFormView) + +COutlookFormView::COutlookFormView() + : CFormView(COutlookFormView::IDD) +{ + //{{AFX_DATA_INIT(COutlookFormView) + // NOTE: the ClassWizard will add member initialization here + //}}AFX_DATA_INIT +} + +COutlookFormView::~COutlookFormView() +{ +} + +void COutlookFormView::DoDataExchange(CDataExchange* pDX) +{ + CFormView::DoDataExchange(pDX); + //{{AFX_DATA_MAP(COutlookFormView) + // NOTE: the ClassWizard will add DDX and DDV calls here + //}}AFX_DATA_MAP +} + + +BEGIN_MESSAGE_MAP(COutlookFormView, CFormView) + //{{AFX_MSG_MAP(COutlookFormView) + // NOTE - the ClassWizard will add and remove mapping macros here. + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// COutlookFormView diagnostics + +#ifdef _DEBUG +void COutlookFormView::AssertValid() const +{ + CFormView::AssertValid(); +} + +void COutlookFormView::Dump(CDumpContext& dc) const +{ + CFormView::Dump(dc); +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// COutlookFormView message handlers diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookFormView.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookFormView.h new file mode 100644 index 0000000..7b07fd1 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookFormView.h @@ -0,0 +1,63 @@ +#if !defined(AFX_OUTLOOKFORMVIEW_H__D6095444_2C7B_11D2_88E3_0080C859A484__INCLUDED_) +#define AFX_OUTLOOKFORMVIEW_H__D6095444_2C7B_11D2_88E3_0080C859A484__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// OutlookFormView.h : header file +// + +///////////////////////////////////////////////////////////////////////////// +// COutlookFormView form view + +#ifndef __AFXEXT_H__ +#include +#endif + +class COutlookFormView : public CFormView +{ +protected: + COutlookFormView(); // protected constructor used by dynamic creation + DECLARE_DYNCREATE(COutlookFormView) + +// Form Data +public: + //{{AFX_DATA(COutlookFormView) + enum { IDD = IDD_FORMVIEW }; + // NOTE: the ClassWizard will add data members here + //}}AFX_DATA + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(COutlookFormView) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + virtual ~COutlookFormView(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + + // Generated message map functions + //{{AFX_MSG(COutlookFormView) + // NOTE - the ClassWizard will add and remove member functions here. + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_OUTLOOKFORMVIEW_H__D6095444_2C7B_11D2_88E3_0080C859A484__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookInfo.rtf b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookInfo.rtf new file mode 100644 index 0000000000000000000000000000000000000000..a81f348c9d409d63f76ec4d5669a9397d037e730 GIT binary patch literal 1554 zcmah}O=}x55be3p|1ifSq-O0Tw2)gvDS@VeIENl|8Edt+8m(rLv~it~|K2CCzvjIY$f^`^S~$27aRxI|D!@7OQTr`3g8NqDM7KdX}w8v*Z$as?;7sE$Le zI>#2+fis?eRvL5`banf4j^L#G^o7HL%Ysk_p|oqCoo}t%Kw7}XMq={dtf6EOM`^{0 zOxrt7P$R7ji8s_p?`yK2ZmbRxrAc(#CnxeiTn@DBYxqZL4RKxDWW}?iruTaIv}rTs z?)ntTCZsLdBO}6@N8^YiU5PjliWB;765-@m9}@-BT2$FcKcv`t(Gfo|-5Eq|@gI|P zCIEZR#>EQtOdx4UudJ(Sja0IZbYv#W3EiV0bcn~NL+W6ntxaaS0I_&l=ygFJVIAZ+ zpd>)oNi2jjp=gFkdNd(f&CYE~4s^>tLE~(gjQts3dktY1g;+zQ{}7nab)r5371J_E z-w|5QwOzK93Mf!9K4nbpguVjKX7od=qm8HlO_)}OYv_~P2)%YBn$WkLHj-wjQ8dAa z`Q5?Q)FfGR=eUdb6B8t#(5(mCJTC*FG4M46lOeI5mu_sIv6l1qmKOLf|YxM z0%cwUbb#V+%^SRSDM1u?AOu#GLikr97&9aMR0@=pA9zaPQK=8rZM!aj1>Ey6?8l;V>!N%eC)8K$drf lPc|5|Z(JHh&$su*fhM~vF0aLDb%vdbUz}Cjg@vv8?hnZ@D@6bR literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookLikeDemo.exe.manifest b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookLikeDemo.exe.manifest new file mode 100644 index 0000000..275675d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookLikeDemo.exe.manifest @@ -0,0 +1,22 @@ + + + +Your app description here + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookListView.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookListView.cpp new file mode 100644 index 0000000..01a9c45 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookListView.cpp @@ -0,0 +1,134 @@ +// OutlookListView.cpp : implementation file +// + +#include "stdafx.h" +#include "Outlook.h" +#include "OutlookListView.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// COutlookListView + +IMPLEMENT_DYNCREATE(COutlookListView, CListView) + +COutlookListView::COutlookListView() +{ +} + +COutlookListView::~COutlookListView() +{ +} + + +BEGIN_MESSAGE_MAP(COutlookListView, CListView) + //{{AFX_MSG_MAP(COutlookListView) + // NOTE - the ClassWizard will add and remove mapping macros here. + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// COutlookListView drawing + +void COutlookListView::OnDraw(CDC* pDC) +{ + UNREFERENCED_PARAMETER(pDC); + + // TODO: add draw code here +} + +///////////////////////////////////////////////////////////////////////////// +// COutlookListView diagnostics + +#ifdef _DEBUG +void COutlookListView::AssertValid() const +{ + CListView::AssertValid(); +} + +void COutlookListView::Dump(CDumpContext& dc) const +{ + CListView::Dump(dc); +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// COutlookListView message handlers + +BOOL COutlookListView::PreCreateWindow(CREATESTRUCT& cs) +{ + cs.style |= LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SINGLESEL | LVS_SORTASCENDING; + + return CListView::PreCreateWindow(cs); +} + +void COutlookListView::OnInitialUpdate() +{ + CListView::OnInitialUpdate(); + + static LPTSTR lpszColumns[3] = { _T("Name"), _T("City"), _T("Title") }; + + m_ilList.Create(IDB_BITMAP4, 16, 1, RGB(255, 0, 255)); + GetListCtrl().SetImageList(&m_ilList, LVSIL_SMALL); + + LV_COLUMN lvc; + ZeroMemory((void*) &lvc, sizeof(lvc)); + + int i = 0; + for (i = 0; i < 3; i++) + { + lvc.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH; + lvc.fmt = LVCFMT_LEFT; + lvc.pszText = lpszColumns[i]; + lvc.cx = i == 0 ? 200 : 100; + lvc.cchTextMax = 30; + + GetListCtrl().InsertColumn(i, &lvc); + } + + static const int nCount = 8; + static LPCTSTR lpszNames[nCount] = + { + _T("John McDonald"), + _T("Mary Bolten"), + _T("Bob Jackson"), + _T("Markus Brody"), + _T("Elizabeth Sizeberg"), + _T("Janna Stevens"), + _T("Martha Lenton"), + _T("Margaret Atwal") + }; + static LPCTSTR lpszCities[nCount] = + { + _T("Toronto"), + _T("New York"), + _T("Neice"), + _T("Mexico City"), + _T("Berlin"), + _T("Zurich"), + _T("Rome"), + _T("Madrid") + }; + static LPCTSTR lpszTitle[nCount] = + { + _T("CEO"), + _T("Head Chef"), + _T("Computer Programmer"), + _T("Engineer"), + _T("Shipper"), + _T("Consultant"), + _T("Professional Athlete"), + _T("Singer") + }; + + for (i = 0; i < nCount; i++) + { + int iItem = GetListCtrl().InsertItem(LVIF_TEXT | LVIF_IMAGE, i, lpszNames[i], NULL, NULL, 0, NULL); + GetListCtrl().SetItem(iItem, 1, LVIF_TEXT, lpszCities[i], NULL, NULL, NULL, NULL); + GetListCtrl().SetItem(iItem, 2, LVIF_TEXT, lpszTitle[i], NULL, NULL, NULL, NULL); + } +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookListView.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookListView.h new file mode 100644 index 0000000..9d35423 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookListView.h @@ -0,0 +1,59 @@ +#if !defined(AFX_OUTLOOKLISTVIEW_H__DA7AA839_2C67_11D2_88E3_0080C859A484__INCLUDED_) +#define AFX_OUTLOOKLISTVIEW_H__DA7AA839_2C67_11D2_88E3_0080C859A484__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// OutlookListView.h : header file +// + +///////////////////////////////////////////////////////////////////////////// +// COutlookListView view + +class COutlookListView : public CListView +{ +protected: + COutlookListView(); // protected constructor used by dynamic creation + DECLARE_DYNCREATE(COutlookListView) + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(COutlookListView) + public: + virtual void OnInitialUpdate(); + protected: + virtual void OnDraw(CDC* pDC); // overridden to draw this view + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + //}}AFX_VIRTUAL + +// Implementation +protected: + virtual ~COutlookListView(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + CImageList m_ilList; + + // Generated message map functions +protected: + //{{AFX_MSG(COutlookListView) + // NOTE - the ClassWizard will add and remove member functions here. + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_OUTLOOKLISTVIEW_H__DA7AA839_2C67_11D2_88E3_0080C859A484__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookTreeView.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookTreeView.cpp new file mode 100644 index 0000000..e2e67fc --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookTreeView.cpp @@ -0,0 +1,95 @@ +// OutlookTreeView.cpp : implementation file +// + +#include "stdafx.h" +#include "Outlook.h" +#include "OutlookTreeView.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// COutlookTreeView + +IMPLEMENT_DYNCREATE(COutlookTreeView, CTreeView) + +COutlookTreeView::COutlookTreeView() +{ +} + +COutlookTreeView::~COutlookTreeView() +{ +} + + +BEGIN_MESSAGE_MAP(COutlookTreeView, CTreeView) + //{{AFX_MSG_MAP(COutlookTreeView) + // NOTE - the ClassWizard will add and remove mapping macros here. + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// COutlookTreeView drawing + +void COutlookTreeView::OnDraw(CDC* pDC) +{ + UNREFERENCED_PARAMETER(pDC); + + // TODO: add draw code here +} + +///////////////////////////////////////////////////////////////////////////// +// COutlookTreeView diagnostics + +#ifdef _DEBUG +void COutlookTreeView::AssertValid() const +{ + CTreeView::AssertValid(); +} + +void COutlookTreeView::Dump(CDumpContext& dc) const +{ + CTreeView::Dump(dc); +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// COutlookTreeView message handlers + +void COutlookTreeView::OnInitialUpdate() +{ + CTreeView::OnInitialUpdate(); + + const COLORREF rgb = RGB(255, 0, 255); + + TV_INSERTSTRUCT tvstruct; + TCHAR rgszItems[][20] = { _T("Mail Box"), _T("Calendar"), _T("Deleted Items"), _T("Inbox"), _T("Journal"), _T("Notes"), _T("Outbox"), _T("Sent Items") }; + + VERIFY(m_ilTree.Create(IDB_BITMAP3, 16, 8, rgb)); + GetTreeCtrl().SetImageList(&m_ilTree, TVSIL_NORMAL); + + HTREEITEM hParent = NULL; + for (int nIndex = 0; nIndex < (sizeof(rgszItems) / sizeof(rgszItems[0])); nIndex++) + { + tvstruct.hParent = nIndex == 0 ? NULL : hParent; + tvstruct.hInsertAfter = TVI_LAST; + tvstruct.item.iImage = nIndex; + tvstruct.item.iSelectedImage = nIndex; + tvstruct.item.pszText = rgszItems[nIndex]; + tvstruct.item.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_TEXT; + HTREEITEM hItem = GetTreeCtrl().InsertItem(&tvstruct); + hParent = hParent == NULL ? hItem : hParent; + } + + GetTreeCtrl().Expand(GetTreeCtrl().GetRootItem(), TVE_EXPAND); +} + +BOOL COutlookTreeView::PreCreateWindow(CREATESTRUCT& cs) +{ + cs.style |= TVS_HASLINES | TVS_LINESATROOT | TVS_SHOWSELALWAYS | TVS_HASBUTTONS; + + return CTreeView::PreCreateWindow(cs); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookTreeView.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookTreeView.h new file mode 100644 index 0000000..d284b62 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookTreeView.h @@ -0,0 +1,59 @@ +#if !defined(AFX_OUTLOOKTREEVIEW_H__DA7AA838_2C67_11D2_88E3_0080C859A484__INCLUDED_) +#define AFX_OUTLOOKTREEVIEW_H__DA7AA838_2C67_11D2_88E3_0080C859A484__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// OutlookTreeView.h : header file +// + +///////////////////////////////////////////////////////////////////////////// +// COutlookTreeView view + +class COutlookTreeView : public CTreeView +{ +protected: + COutlookTreeView(); // protected constructor used by dynamic creation + DECLARE_DYNCREATE(COutlookTreeView) + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(COutlookTreeView) + public: + virtual void OnInitialUpdate(); + protected: + virtual void OnDraw(CDC* pDC); // overridden to draw this view + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + //}}AFX_VIRTUAL + +// Implementation +protected: + virtual ~COutlookTreeView(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + CImageList m_ilTree; + + // Generated message map functions +protected: + //{{AFX_MSG(COutlookTreeView) + // NOTE - the ClassWizard will add and remove member functions here. + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_OUTLOOKTREEVIEW_H__DA7AA838_2C67_11D2_88E3_0080C859A484__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookView.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookView.cpp new file mode 100644 index 0000000..6b8aa9d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookView.cpp @@ -0,0 +1,325 @@ +// OutlookView.cpp : implementation of the COutlookView class +// + +#include "stdafx.h" +#include "Outlook.h" + +#include "OutlookDoc.h" +#include "OutlookView.h" + +#include "SHBPropertiesDlg.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +#define IDC_START (100) +#define IDC_OUTLOOKBAR (IDC_START + 1) +#define IDC_TREE (IDC_START + 2) + +#define SHB_IDMPROPERTIES (SHB_IDMUSER + 1) + +///////////////////////////////////////////////////////////////////////////// +// COutlookView + +IMPLEMENT_DYNCREATE(COutlookView, CView) + +BEGIN_MESSAGE_MAP(COutlookView, CView) + //{{AFX_MSG_MAP(COutlookView) + ON_WM_CREATE() + ON_WM_SIZE() + //}}AFX_MSG_MAP + ON_NOTIFY(SHBN_CONTEXTMENU, IDC_OUTLOOKBAR, OnSHBContextMenu) + ON_COMMAND(SHB_IDMPROPERTIES, OnProperties) + ON_COMMAND(ID_SKIN_CLASSIC, OnSkinClassic) + ON_COMMAND(ID_SKIN_OFFICEXP, OnSkinOfficexp) + ON_COMMAND(ID_SKIN_OFFICE2003, OnSkinOffice2003) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// COutlookView construction/destruction + +COutlookView::COutlookView() +{ + // TODO: add construction code here + +} + +COutlookView::~COutlookView() +{ +} + +BOOL COutlookView::PreCreateWindow(CREATESTRUCT& cs) +{ + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + return CView::PreCreateWindow(cs); +} + +///////////////////////////////////////////////////////////////////////////// +// COutlookView drawing + +void COutlookView::OnDraw(CDC* pDC) +{ + UNREFERENCED_PARAMETER(pDC); + + COutlookDoc* pDoc = GetDocument(); + ASSERT_VALID(pDoc); + + // TODO: add draw code for native data here +} + +///////////////////////////////////////////////////////////////////////////// +// COutlookView diagnostics + +#ifdef _DEBUG +void COutlookView::AssertValid() const +{ + CView::AssertValid(); +} + +void COutlookView::Dump(CDumpContext& dc) const +{ + CView::Dump(dc); +} + +COutlookDoc* COutlookView::GetDocument() // non-debug version is inline +{ + ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(COutlookDoc))); + return (COutlookDoc*)m_pDocument; +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// COutlookView message handlers + +int COutlookView::OnCreate(LPCREATESTRUCT lpCreateStruct) +{ + if (CView::OnCreate(lpCreateStruct) == -1) + return -1; + + const COLORREF rgb = RGB(255, 0, 255); + + m_shb.Create(this, CRect(0,0,0,0), + SHBS_EDITHEADERS | SHBS_EDITITEMS | SHBS_DRAWHEADERDRAGIMAGE | SHBS_BOLDEXPANDEDGROUP | SHBS_SHOWACTIVEALWAYS | SHBS_DRAWITEMDRAGIMAGE | SHBS_ANIMATEEXPAND | SHBS_FLATGROUPBUTTON, + IDC_OUTLOOKBAR, + WS_CHILD | WS_VISIBLE, + NULL); + + // create tree control + m_tree.Create(TVS_HASLINES | TVS_LINESATROOT | TVS_HASBUTTONS | TVS_EDITLABELS, CRect(0,0,0,0), &m_shb, IDC_TREE); + + TV_INSERTSTRUCT tvstruct; + TCHAR rgszItems[][20] = { _T("Mail Box"), _T("Calendar"), _T("Deleted Items"), _T("Inbox"), _T("Journal"), _T("Notes"), _T("Outbox"), _T("Sent Items") }; + VERIFY(m_ilTree.Create(IDB_BITMAP3, 16, 8, rgb)); + m_tree.SetImageList(&m_ilTree, TVSIL_NORMAL); + + HTREEITEM hParent = NULL; + int nIndex = 0; + for (nIndex = 0; nIndex < (sizeof(rgszItems) / sizeof(rgszItems[0])); nIndex++) + { + tvstruct.hParent = nIndex == 0 ? NULL : hParent; + tvstruct.hInsertAfter = TVI_LAST; + tvstruct.item.iImage = nIndex; + tvstruct.item.iSelectedImage = nIndex; + tvstruct.item.pszText = rgszItems[nIndex]; + tvstruct.item.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_TEXT; + HTREEITEM hItem = m_tree.InsertItem(&tvstruct); + hParent = hParent == NULL ? hItem : hParent; + } + + { + +// VERIFY(m_ilTree2003.Create(25, 22, ILC_COLOR24 | ILC_MASK, 0, 10)); + + CBitmap bm; + bm.LoadBitmap(IDB_BITMAP5); + + BITMAP b; + bm.GetBitmap(&b); + + const int imageCount = 5; + + VERIFY(m_ilTree2003.Create(25, 22, ILC_COLOR32 | ILC_MASK, imageCount, imageCount) > 0); + + CDC dc; + dc.CreateCompatibleDC(NULL); + + CDC srcDC; + srcDC.CreateCompatibleDC(&dc); + CBitmap * pOldSrcBmp = srcDC.SelectObject(&bm); + + for(int i=0;i<=imageCount; ++i) + { + CBitmap bitmap; + bitmap.CreateBitmap(25, b.bmHeight, 1, 32, NULL); + CBitmap * pOldDestBmp = dc.SelectObject(&bitmap); + + dc.BitBlt(0, 0, 25, b.bmHeight, &srcDC, 25 * i, 0, SRCCOPY); + + dc.SelectObject(pOldDestBmp); + + m_ilTree2003.Add(&bitmap, RGB(255, 0, 255)); + } + + srcDC.SelectObject(pOldSrcBmp); + } + + // populate shortcut bar + m_shb.SetImageList(&m_ilTree2003); + + SHB_GROUPINFO shbGroup; + CString sText; + + // create image lists + VERIFY(m_ilLarge.Create(IDB_BITMAP1, 32, 11, rgb)); + VERIFY(m_ilSmall.Create(IDB_BITMAP2, 16, 11, rgb)); + + // outlook group + sText = _T("Outlook"); + shbGroup.nMask = SHBIF_TEXT; + shbGroup.nTextMax = sText.GetLength(); + shbGroup.pszText = sText.GetBuffer(shbGroup.nTextMax); + sText.ReleaseBuffer(); + HSHBGROUP group = m_shb.InsertGroup(&shbGroup); + m_shb.SetGroupImage(group, 0); + + // mail group + sText = _T("Mail"); + shbGroup.nMask = SHBIF_TEXT; + shbGroup.nTextMax = sText.GetLength(); + shbGroup.pszText = sText.GetBuffer(shbGroup.nTextMax); + sText.ReleaseBuffer(); + group = m_shb.InsertGroup(&shbGroup); + m_shb.SetGroupImage(group, 1); + + // group with tree control child window + sText = _T("Other"); + shbGroup.nMask = SHBIF_TEXT | SHBIF_CHILDWND; + shbGroup.nTextMax = sText.GetLength(); + shbGroup.pszText = sText.GetBuffer(shbGroup.nTextMax); + sText.ReleaseBuffer(); + shbGroup.hwndChild = m_tree.GetSafeHwnd(); + group = m_shb.InsertGroup(&shbGroup); + m_shb.SetGroupImage(group, 2); + HSHBGROUP hGroup = m_shb.FindGroup(&shbGroup); + m_shb.SetGroupBkColor(hGroup, ::GetSysColor(COLOR_WINDOW)); + + // fill standard list controls + TCHAR shbszItems[][20]= { _T("Inbox"), _T("Calendar"), _T("Contacts"), _T("Tasks"), _T("Journal"), _T("Notes"), _T("Deleted Items"), _T("Inbox"), _T("Sent Items"), _T("Outbox"), _T("Deleted Items") }; + + // find outlook group and populate it + sText = _T("Outlook"); + shbGroup.nMask = SHBIF_TEXT; + shbGroup.nTextMax = sText.GetLength(); + shbGroup.pszText = sText.GetBuffer(shbGroup.nTextMax); + sText.ReleaseBuffer(); + hGroup = m_shb.FindGroup(&shbGroup); + ASSERT(hGroup); + + m_shb.SetLCImageList(hGroup, &m_ilLarge, LVSIL_NORMAL); + m_shb.SetLCImageList(hGroup, &m_ilSmall, LVSIL_SMALL); + + for(nIndex = 0; nIndex < 7 ; nIndex++) + { + CString sText = shbszItems[nIndex]; + LV_ITEM lvi; + lvi.iItem = nIndex; + lvi.iSubItem = 0; + lvi.mask = LVIF_TEXT|LVIF_IMAGE; + lvi.iImage = nIndex; + lvi.cchTextMax = sText.GetLength(); + lvi.pszText = sText.GetBuffer(lvi.cchTextMax); + sText.ReleaseBuffer(); + m_shb.InsertLCItem(hGroup, &lvi); + } + m_shb.ExpandGroup(hGroup); + + // find mail group and populate it + sText = _T("Mail"); + shbGroup.nMask = SHBIF_TEXT; + shbGroup.nTextMax = sText.GetLength(); + shbGroup.pszText = sText.GetBuffer(shbGroup.nTextMax); + sText.ReleaseBuffer(); + hGroup = m_shb.FindGroup(&shbGroup); + ASSERT(hGroup); + + m_shb.SetLCImageList(hGroup, &m_ilLarge, LVSIL_NORMAL); + m_shb.SetLCImageList(hGroup, &m_ilSmall, LVSIL_SMALL); + + for (nIndex = 7; nIndex < (sizeof(shbszItems) / sizeof(shbszItems[0])); nIndex++) + { + CString sText = shbszItems[nIndex]; + LV_ITEM lvi; + lvi.iItem = nIndex - 7; + lvi.iSubItem = 0; + lvi.mask = LVIF_TEXT | LVIF_IMAGE; + lvi.iImage = nIndex; + lvi.cchTextMax = sText.GetLength(); + lvi.pszText = sText.GetBuffer(lvi.cchTextMax); + sText.ReleaseBuffer(); + m_shb.InsertLCItem(hGroup, &lvi); + } + + return 0; +} + +void COutlookView::OnSize(UINT nType, int cx, int cy) +{ + CView::OnSize(nType, cx, cy); + + CRect rect(0, 0, cx, cy); + + if (::IsWindow(m_shb.GetSafeHwnd())) + m_shb.MoveWindow(&rect); +} + +void COutlookView::OnSHBContextMenu(NMHDR* pNotifyStruct, LRESULT* pResult) +{ + LPSHBCONTEXTMENU pSHBCM = (LPSHBCONTEXTMENU)((LPNMSHORTCUTBAR) pNotifyStruct)->lParam; + if (pSHBCM->pShortcutBar->GetSafeHwnd() == m_shb.GetSafeHwnd() && m_shb.GetExpandedGroup() != NULL) + { + CMenu* pMenu = pSHBCM->pMenu; + if (pMenu->GetMenuItemCount() > 0) + pMenu->AppendMenu(MF_SEPARATOR); + pMenu->AppendMenu(MF_STRING, SHB_IDMPROPERTIES, _T("Properties...")); + } + + *pResult = 0; +} + +void COutlookView::OnProperties() +{ + CSHBPropertiesDlg propertiesDlg(&m_shb); + propertiesDlg.DoModal(); +} +void COutlookView::OnSkinClassic() +{ + m_shb.SetImageList(&m_ilTree); + + COXSkinnedApp* pSkinnedApp = DYNAMIC_DOWNCAST(COXSkinnedApp, AfxGetApp()); + if (pSkinnedApp != NULL) + pSkinnedApp->SetCurrentSkin(OXSkinClassic); +} + + +void COutlookView::OnSkinOfficexp() +{ + m_shb.SetImageList(&m_ilTree); + + COXSkinnedApp* pSkinnedApp = DYNAMIC_DOWNCAST(COXSkinnedApp, AfxGetApp()); + if (pSkinnedApp != NULL) + pSkinnedApp->SetCurrentSkin(OXSkinOfficeXP); +} + +void COutlookView::OnSkinOffice2003() +{ + m_shb.SetImageList(&m_ilTree2003); + + COXSkinnedApp* pSkinnedApp = DYNAMIC_DOWNCAST(COXSkinnedApp, AfxGetApp()); + if (pSkinnedApp != NULL) + pSkinnedApp->SetCurrentSkin(OXSkinOffice2003); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookView.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookView.h new file mode 100644 index 0000000..5b40f5e --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/OutlookView.h @@ -0,0 +1,78 @@ +// OutlookView.h : interface of the COutlookView class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_OUTLOOKVIEW_H__DA7AA830_2C67_11D2_88E3_0080C859A484__INCLUDED_) +#define AFX_OUTLOOKVIEW_H__DA7AA830_2C67_11D2_88E3_0080C859A484__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +class COutlookDoc; + +class COutlookView : public CView +{ +protected: // create from serialization only + COutlookView(); + DECLARE_DYNCREATE(COutlookView) + +// Attributes +public: + COutlookDoc* GetDocument(); + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(COutlookView) + public: + virtual void OnDraw(CDC* pDC); // overridden to draw this view + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + protected: + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~COutlookView(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + COXShortcutBar m_shb; + CTreeCtrl m_tree; + + CImageList m_ilLarge; + CImageList m_ilSmall; + CImageList m_ilTree; + CImageList m_ilTree2003; + +// Generated message map functions +protected: + afx_msg void OnSHBContextMenu(NMHDR* pNotifyStruct, LRESULT* pResult); + afx_msg void OnProperties(); + + //{{AFX_MSG(COutlookView) + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg void OnSkinClassic(); + afx_msg void OnSkinOfficexp(); + afx_msg void OnSkinOffice2003(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +#ifndef _DEBUG // debug version in OutlookView.cpp +inline COutlookDoc* COutlookView::GetDocument() + { return (COutlookDoc*)m_pDocument; } +#endif + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_OUTLOOKVIEW_H__DA7AA830_2C67_11D2_88E3_0080C859A484__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/SHBPropertiesDlg.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/SHBPropertiesDlg.cpp new file mode 100644 index 0000000..7712d4b --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/SHBPropertiesDlg.cpp @@ -0,0 +1,226 @@ +// SHBPropertiesDlg.cpp : implementation file +// + +#include "stdafx.h" +#include "Outlook.h" +#include "SHBPropertiesDlg.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CSHBPropertiesDlg dialog + + +CSHBPropertiesDlg::CSHBPropertiesDlg(COXShortcutBar* pShortcutBar, + CWnd* pParent /*=NULL*/) + : CDialog(CSHBPropertiesDlg::IDD, pParent) +{ + //{{AFX_DATA_INIT(CSHBPropertiesDlg) + m_bApplyOnlyToExpanded = TRUE; + m_nBottomMargin = 0; + m_nGroupMargin = 0; + m_nRightMargin = 0; + m_nLeftMargin = 0; + m_nScrollBtnHeight = 0; + m_nScrollBtnWidth = 0; + m_nTopMargin = 0; + m_sNameTextFont = _T(""); + m_sNameHeaderFont = _T(""); + m_nHeaderHeight = 0; + //}}AFX_DATA_INIT + + ASSERT(pShortcutBar); + m_pShortcutBar=pShortcutBar; +} + + +void CSHBPropertiesDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CSHBPropertiesDlg) + DDX_Control(pDX, IDC_NAMETEXTFONT, m_ctlNameTextFont); + DDX_Control(pDX, IDC_NAMEHDRFONT, m_ctlNameHeaderFont); + DDX_Control(pDX, IDC_HDRCLRBACK, m_btnHeaderClrBack); + DDX_Control(pDX, IDC_CLRBACK, m_btnClrBack); + DDX_Check(pDX, IDC_CHECK_APPLYTOEXPANDED, m_bApplyOnlyToExpanded); + DDX_Text(pDX, IDC_EDIT_BOTTOMMARGIN, m_nBottomMargin); + DDX_Text(pDX, IDC_EDIT_GRPMARGIN, m_nGroupMargin); + DDX_Text(pDX, IDC_EDIT_RIGHTMARGIN, m_nRightMargin); + DDX_Text(pDX, IDC_EDIT_LEFTMARGIN, m_nLeftMargin); + DDX_Text(pDX, IDC_EDIT_SCROLLBTNHEIGHT, m_nScrollBtnHeight); + DDX_Text(pDX, IDC_EDIT_SCROLLBTNWIDTH, m_nScrollBtnWidth); + DDX_Text(pDX, IDC_EDIT_TOPMARGIN, m_nTopMargin); + DDX_Text(pDX, IDC_NAMETEXTFONT, m_sNameTextFont); + DDX_Text(pDX, IDC_NAMEHDRFONT, m_sNameHeaderFont); + DDX_Text(pDX, IDC_EDIT_HDRHEIGHT, m_nHeaderHeight); + //}}AFX_DATA_MAP + DDX_ColorPicker(pDX, IDC_CLRBACK, m_clrBackground); + DDX_ColorPicker(pDX, IDC_HDRCLRBACK, m_clrHeaderBackground); +} + + +BEGIN_MESSAGE_MAP(CSHBPropertiesDlg, CDialog) + //{{AFX_MSG_MAP(CSHBPropertiesDlg) + ON_BN_CLICKED(IDC_HDRFONT, OnHdrfont) + ON_BN_CLICKED(IDC_TEXTFONT, OnTextfont) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CSHBPropertiesDlg message handlers + +void CSHBPropertiesDlg::OnHdrfont() +{ + // TODO: Add your control notification handler code here + + if(!UpdateData(TRUE)) + return; + + // Use font common dialog + CFontDialog fontDlg(&m_lfHeader); + fontDlg.m_cf.rgbColors=m_clrHeaderText; + if(fontDlg.DoModal()==IDOK) + { + m_clrHeaderText=fontDlg.GetColor(); + fontDlg.GetCurrentFont(&m_lfHeader); + m_sNameHeaderFont.Format(_T("%d pt, %s"),abs(m_lfHeader.lfHeight), + m_lfHeader.lfFaceName); + m_ctlNameHeaderFont.SetTextLogFont(&m_lfHeader); + m_ctlNameHeaderFont.SetTextColor(m_clrHeaderText,TRUE); + UpdateData(FALSE); + } +} + +void CSHBPropertiesDlg::OnTextfont() +{ + // TODO: Add your control notification handler code here + + if(!UpdateData(TRUE)) + return; + + // Use font common dialog + CFontDialog fontDlg(&m_lfText); + fontDlg.m_cf.rgbColors=m_clrText; + if(fontDlg.DoModal()==IDOK) + { + m_clrText=fontDlg.GetColor(); + fontDlg.GetCurrentFont(&m_lfText); + m_sNameTextFont.Format(_T("%d pt, %s"),abs(m_lfText.lfHeight), + m_lfText.lfFaceName); + m_ctlNameTextFont.SetTextLogFont(&m_lfText); + m_ctlNameTextFont.SetTextColor(m_clrText); + UpdateData(FALSE); + } +} + +void CSHBPropertiesDlg::OnOK() +{ + // TODO: Add extra validation here + + SetVars(); + + CDialog::OnOK(); +} + +BOOL CSHBPropertiesDlg::OnInitDialog() +{ + CDialog::OnInitDialog(); + + // TODO: Add extra initialization here + + GetVars(); + + return TRUE; // return TRUE unless you set the focus to a control + // EXCEPTION: OCX Property Pages should return FALSE +} + +void CSHBPropertiesDlg::GetVars() +{ + m_nLeftMargin=m_pShortcutBar->GetChildWndMargins().left; + m_nTopMargin=m_pShortcutBar->GetChildWndMargins().top; + m_nRightMargin=m_pShortcutBar->GetChildWndMargins().right; + m_nBottomMargin=m_pShortcutBar->GetChildWndMargins().bottom; + + m_nGroupMargin=m_pShortcutBar->GetGroupMargin(); + + m_nScrollBtnHeight=m_pShortcutBar->GetScrollButtonSize().cy; + m_nScrollBtnWidth=m_pShortcutBar->GetScrollButtonSize().cx; + + HSHBGROUP hGroup=m_pShortcutBar->GetExpandedGroup(); + ASSERT(hGroup); + + m_nHeaderHeight=m_pShortcutBar->GetGroupHeaderHeight(hGroup); + + m_clrBackground=m_pShortcutBar->GetGroupBkColor(hGroup); + m_clrHeaderBackground=m_pShortcutBar->GetGroupHeaderBkColor(hGroup); + m_clrText=m_pShortcutBar->GetGroupTextColor(hGroup); + m_clrHeaderText=m_pShortcutBar->GetGroupHeaderTextColor(hGroup); + + CFont font; + LPLOGFONT plf=m_pShortcutBar->GetGroupTextFont(hGroup); + ASSERT(plf); + VERIFY(font.CreateFontIndirect(plf)); + VERIFY(font.GetLogFont(&m_lfText)); + + plf=m_pShortcutBar->GetGroupHeaderTextFont(hGroup); + ASSERT(plf); + if((HFONT)font) + font.DeleteObject(); + VERIFY(font.CreateFontIndirect(plf)); + VERIFY(font.GetLogFont(&m_lfHeader)); + + m_sNameTextFont.Format(_T("%d pt, %s"),abs(m_lfText.lfHeight),m_lfText.lfFaceName); + m_ctlNameTextFont.SetTextColor(m_clrText); + m_ctlNameTextFont.SetTextLogFont(&m_lfText); + + m_sNameHeaderFont.Format(_T("%d pt, %s"),abs(m_lfHeader.lfHeight), + m_lfHeader.lfFaceName); + m_ctlNameHeaderFont.SetTextColor(m_clrHeaderText); + m_ctlNameHeaderFont.SetTextLogFont(&m_lfHeader); + + m_btnHeaderClrBack.SetDefaultColor(::GetSysColor(COLOR_BTNFACE)); + m_btnClrBack.SetDefaultColor(::GetSysColor(COLOR_3DSHADOW)); + + UpdateData(FALSE); + + ShowControls(); +} + +void CSHBPropertiesDlg::SetVars() +{ + UpdateData(); + + m_pShortcutBar->SetChildWndMargins(CRect(m_nLeftMargin,m_nTopMargin, + m_nRightMargin,m_nBottomMargin)); + m_pShortcutBar->SetGroupMargin(m_nGroupMargin); + + m_pShortcutBar->SetScrollButtonSize(CSize(m_nScrollBtnWidth,m_nScrollBtnHeight)); + + HSHBGROUP hGroup=NULL; + if(m_bApplyOnlyToExpanded) + { + hGroup=m_pShortcutBar->GetExpandedGroup(); + ASSERT(hGroup); + } + + m_pShortcutBar->SetGroupHeaderHeight(hGroup,m_nHeaderHeight); + + m_pShortcutBar->SetGroupBkColor(hGroup,m_clrBackground); + m_pShortcutBar->SetGroupHeaderBkColor(hGroup,m_clrHeaderBackground); + m_pShortcutBar->SetGroupTextColor(hGroup,m_clrText); + m_pShortcutBar->SetGroupHeaderTextColor(hGroup,m_clrHeaderText); + + m_pShortcutBar->SetGroupHeaderTextFont(hGroup,&m_lfHeader); + m_pShortcutBar->SetGroupTextFont(hGroup,&m_lfText); + + m_pShortcutBar->RedrawBar(); +} + +void CSHBPropertiesDlg::ShowControls() +{ +} + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/SHBPropertiesDlg.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/SHBPropertiesDlg.h new file mode 100644 index 0000000..92e947c --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/SHBPropertiesDlg.h @@ -0,0 +1,79 @@ +#if !defined(AFX_SHBPROPERTIESDLG_H__BAAEE534_09DB_11D2_887D_0080C83F712F__INCLUDED_) +#define AFX_SHBPROPERTIESDLG_H__BAAEE534_09DB_11D2_887D_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// SHBPropertiesDlg.h : header file +// + +#include "OXColorPickerButton.h" +#include "OXStatic.h" +#include "OXShortcutBar.h" + +///////////////////////////////////////////////////////////////////////////// +// CSHBPropertiesDlg dialog + +class CSHBPropertiesDlg : public CDialog +{ +// Construction +public: + CSHBPropertiesDlg(COXShortcutBar* pShortcutBar, CWnd* pParent = NULL); + +// Dialog Data + //{{AFX_DATA(CSHBPropertiesDlg) + enum { IDD = IDD_SHBPROPERTIES_DIALOG }; + COXStatic m_ctlNameTextFont; + COXStatic m_ctlNameHeaderFont; + COXColorPickerButton m_btnHeaderClrBack; + COXColorPickerButton m_btnClrBack; + BOOL m_bApplyOnlyToExpanded; + int m_nBottomMargin; + int m_nGroupMargin; + int m_nRightMargin; + int m_nLeftMargin; + UINT m_nScrollBtnHeight; + UINT m_nScrollBtnWidth; + int m_nTopMargin; + CString m_sNameTextFont; + CString m_sNameHeaderFont; + int m_nHeaderHeight; + //}}AFX_DATA + COLORREF m_clrBackground; + COLORREF m_clrHeaderBackground; + COLORREF m_clrText; + COLORREF m_clrHeaderText; + LOGFONT m_lfText; + LOGFONT m_lfHeader; + +protected: + COXShortcutBar* m_pShortcutBar; + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CSHBPropertiesDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + + void GetVars(); + void SetVars(); + void ShowControls(); + + // Generated message map functions + //{{AFX_MSG(CSHBPropertiesDlg) + afx_msg void OnHdrfont(); + afx_msg void OnTextfont(); + virtual void OnOK(); + virtual BOOL OnInitDialog(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_SHBPROPERTIESDLG_H__BAAEE534_09DB_11D2_887D_0080C83F712F__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/StdAfx.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/StdAfx.cpp new file mode 100644 index 0000000..255f360 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/StdAfx.cpp @@ -0,0 +1,6 @@ +// stdafx.cpp : source file that includes just the standard includes +// Outlook.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/StdAfx.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/StdAfx.h new file mode 100644 index 0000000..e4b5f58 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/StdAfx.h @@ -0,0 +1,29 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#if !defined(AFX_STDAFX_H__DA7AA82A_2C67_11D2_88E3_0080C859A484__INCLUDED_) +#define AFX_STDAFX_H__DA7AA82A_2C67_11D2_88E3_0080C859A484__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers + +#include // MFC core and standard components +#include // MFC extensions +#include // MFC OLE automation classes +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for Windows Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + +#include +#include "OXShortcutBar.h" +#include "OXAdvancedAssert.h" + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_STDAFX_H__DA7AA82A_2C67_11D2_88E3_0080C859A484__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/res/Outlook.ico b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/res/Outlook.ico new file mode 100644 index 0000000000000000000000000000000000000000..7eef0bcbe6580a6f464d688906172c2d9de44262 GIT binary patch literal 1078 zcmc&zF>b>!3}jLb9s)T}@Kod(893@u8ajANzT`op9^o+)S?=nU(FD@%0s)Sg^oyC8{H z9myetc;MEP)59v(LMa~xK8Yu^jIR*H22uCFiq5%C{s7(PJi>o15i^bmX4(vPxWAio z9ryY#AU_jfnd047-@`)XzL?%iS$gQyFP{44kS9X)fN{{QoL~hO-&=q&20Zr*cxFAt PkaNE{wR~2C$NfnjhSXWT literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/res/Outlook.rc2 b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/res/Outlook.rc2 new file mode 100644 index 0000000..77906ee --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/res/Outlook.rc2 @@ -0,0 +1,13 @@ +// +// OUTLOOK.RC2 - resources Microsoft Visual C++ does not edit directly +// + +#ifdef APSTUDIO_INVOKED + #error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// Add manually edited resources here... + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/res/OutlookDoc.ico b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/res/OutlookDoc.ico new file mode 100644 index 0000000000000000000000000000000000000000..2a1f1ae6ef15e51df8c39bc028bbfb2171822ba5 GIT binary patch literal 1078 zcmcJNF;c@Y5JlGsgIpoERJdY%i*S@2!JS&si6f-)RXoFGDAfg5;z_dQBoi_)1DpI^ z{oS?KlD%25H@>BZ{KJV|_dD9_G1MV<{5a&-}7^W%4AM)k- zx&P*V(j}a@*Y~UhksXTAK!NRyiYN-8NMyKz<)2v9@tUao7A!g+SzkAcsHvdq6!0vQ z#-rA6>0BAr)4*u6Y57EdkamnXf Uh-a7VEuQ2KJb_2>o71HC3-%7w@Bjb+ literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/res/Toolbar.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/res/Toolbar.bmp new file mode 100644 index 0000000000000000000000000000000000000000..03426575fc104c29f65139ae982779467779a926 GIT binary patch literal 2294 zcmchY!HU~R5QaMtXhXs%Z;Sg^nl?W4?X4}0(&a`Z#^ zwmCT+Fk^uZ%J-KfdnOqea@iVL-RiEc`unfHdtU#3J9B35dH=@m#S?zCPux=*uf}=% zxc91@<8f6rG`#7$o0}V2P4xD-zE_VQe;VQy|0g4@*_cjwFS!FBnEwSVV>Ds}bst*! zV7QD;V~GX9`JnZm&yIXGOpf2@Vc-o}NVLk$<^~wV7B4AIv&F_W;Y5dL8I>Z$BE}UB zkD(>bal%nTMe)yLS;ya69Dz-85AsphwJ6|lw&r;9xH{N|t)7Ry_;_}g4{(%qG(LPRRiBZM;7*Z;T3UX!4nU|% z2f~MxG82T+A;B0LPhI-<>z6%z@FzZ!dkP=nV0LM@+syPa@*$A0i^zKapW&!$7y+Kk z0+dh<aOko~*FW(QSNWSiZiDz}jE}a56MuCd$3Aqio9#7~7O;`C}}M7nqp~pwvrU-~)}ArHxcDoEINI-LB!I`)iZd z?5XL&5g*ZqWX^i=fo@Iph*|BQV1piOvBNPNaISG}G?>7(bo&~5C$kK{hu;GiIP%>**=!7w;{q%48}2`9Zr8;O}dhjwOVsjHf- oEt%N8ev?<;l-+OmQ^3&(r*Q$(Ld_Q2en3tHZ)Oq8)AoSO0XK>pVj(lON z!{LAxhT`&9%wl2UCn0>|f5$%%($6_(z$5O-CjjZo?5jsw-8>VZt^g=J@bYXJ6~!Qb zU;GO*%{0ok2%O>3bhhBwmk6b_oqbk&@ZWH{75^fPvw+FAhX558^trQQ*6fP_`DC}q zL`p4`(y@Xo71Sqp5&`1e`>u&J$ib>;IM^Gjqe-&>@-N{=vuO4_YWm7{%lC>tj(33} zV7N;O{K^HK|3u9F_qEj&k_ezKpH?g3n?)U1leac-YG{{sc_;Ynz2CO68ba>-$#8b- z^^GR>>39Wx1$FR=7nhtzjrMIwwxNLh*=eNzwMx)&F8p4v!S9B_dR+(a-yJ99^=Y$e z!8c*#prw6g)OX6rKSh)MX5~@WFqHaD-Z|%b{q|?@SB1~W*r3gNYey`oxz|9W z0XF|L5QWSha2%h9KQ)_xcVd)5VegtgFF(&Z(P7$eD#OEx@`swx_8A7OeIyxuM M{toV{`19TQ06R)-B>(^b literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/res/icon1.ico b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/res/icon1.ico new file mode 100644 index 0000000000000000000000000000000000000000..01b9c8a513b4ce9ae6da693b441457dd8145e003 GIT binary patch literal 318 zcmah@ISzy{44gWp%-Cb+00KRw1hXXoA7iE| zGc#Z!0(Iaw5P$&@Cn8JKTFEx(Bhb55Ou9)1Kdh|l&Ut&Xs{* literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/res/large.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/res/large.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b48a47af1c924220408ff0f7fad5bf4dd1781aed GIT binary patch literal 5750 zcmb`LKX2nW8pdg4F%qx{WH*;|Ii$&SH=PYE4gn4U=9)vk!d97W7VyS{p#TGs_Hq~r zNTIJXor^0xAA!|&u2Y_K6D$R&;6BewTK`-faC9PDB46_1PY++w{@Xu3{YgprgyUQM z|2R?V&v>7x?{Gv3_5P%P%$35Q%5(pQBR;CHU%%p=6;A$?bNqyVym$$R9g9&V%Bg&o zgX(?W?GQ3JNBgcRJ`K-MJ8V5@`+qqxDFo+TSElF>sixEEP!f1_jd$k9{u$&i`q9!* z4O{s6{tvSn#U~DelfSkaOlG?w%>-rI*6~BUc-IqPJ`4q)JU({O5~reNuRZQ(ic>S_ za&$6iz8l9U4uV%*NSyTq6YmhPImu7*uE#g&=YimOu^19oQKkoi$!FK`F-N3L+;xu| zHi|bevW?z#dL!2f7QB=561N0@Qp_S*#vS1|Y26oWP97`QCu}0?^g!^4&vnVf5l6&du#?>NB&Ve0J*Hjht@+cq8H2)$v1PQi$e zN!EHOSh=Ftd>oH-rPNA}K8*Hl1*>z^OwU!J(=wN3XHFtlLU17bCUq`zb$RfxT4dns zI>L$P3kAWaBR+ z;@{}?JqW)zcV_np=i}{M=ejO~UfOr|az+=_r_`G{4TqpW@XpY_-&U(;?Y6E#$}yVx z;R=Hv{4nIBYJl}}9rY4#VQp$H0UyVkig=5n0ABjn6t6cFeBmxcZ;bSNmL{k!g|FDR zhF)jg<7sPO1ZNI=CUw2t@NYART*nC`J!CM0)>piHyD=ZyH*>EyH#d%YJzmCSK`%e{ z;*+O%;|kZ^SUTd|5A;@Fl8kJuO5&tTebJ^RX{+haPg?*{hWZ0y{9p+54_Z^75=9r2Oud*EB1_9-rs+s?aSp+JoE}(Pnd$T%Y)#ccaQY2%-l^yz23gg zy<`sd#p?Ch7v^261p47!lL1Z1s3?#Ciu0n9URBaIuOecp5LW#MRUr?3+O^?91_e_O-~DIrKg?=^FN3rE8aQ zzJag4x_^5W^!E86`;za?t?11$eI^I{`yKc?F4u89?k?vR3Is(p9z`P9-_AUrA)Ci8 zar+tcVDkVcJNt{JeNlJ^YnTVCS?4zC6o-nbh~&lkv|-tKjLGsSV`Cy z=&kYO&pzEjZ|1)ZlW#8`V|&4VHo)=hs2751U!=<#O;nxpdpb^|c~+z%SnSItD2c5^ zZ*IN^TK)8Gg*OiXeCi^V9kA#f@loze0>V<3=!mw0ePIZ_|4aqLczK?{fZ*%pxrc{` z?7t#dE+j6el6_+RcE_BoDlLM&eMK%;J%1sv*dHY%e9aX6Me35Q{?|vHVpR%XOm)C# zr%p{`JzfN0*NOuF0&tASJN@5}2Qd%p*1HYM=lS{BQSe{<1mXm@jFKfikZ^^~6N36b zSnL$^BDH~#5dO9<*M2jN^;^7u|K6n)5TnP#aDk6Z$ppfzjzlo^-l;ctxH5`A^bqX8 z_5SbxC*B9WOjuw8#qHNkx(V`_eY=7Qc)fuzHW9wwL?2&YovWZ(HarKxflm-Dgc;xk z(-15GJdQsI-XF#m!q2+Q{CFO(#j`6EgWWFl_U+4Ys8z=x|8)Ct~}rm+f>3E9`TkzQN9f$*0@T|&Ij ztg&8Myx?~J;hNoq01+Gj|IEs9yzimaLrcKJ{|Ox$J`j3%G2a|tr>_V0Wv^(pl(Eqt zvqak=0PU4~mEEm081V_$+5if6OXf7smMODyFkI+*&)8Y0>M)K+t0r0C?0~tz48qpsqZf!9!>{&zyEts7_k2%g89A| zVfb0~E{yp|2PTY-Hxo(Y-@=vS_^xUAH2RIGFU7YQP4K9LLA{V`@v-fo`Y3oe`bn*e F{{sRu((wQQ literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/res/outlook2003.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/res/outlook2003.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e15d8d3fa1043c5d970dc3e7a76c99b22bf13e3b GIT binary patch literal 8702 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 literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/resource.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/resource.h new file mode 100644 index 0000000..17031ee --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/OutlookLikedemo/resource.h @@ -0,0 +1,75 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by Outlook.rc +// +#define IDD_ABOUTBOX 100 +#define IDD_FORMVIEW 101 +#define IDR_MAINFRAME 128 +#define IDR_OUTLOOTYPE 129 +#define IDB_BITMAP1 130 +#define IDB_BITMAP2 131 +#define IDB_BITMAP3 132 +#define IDD_SHBPROPERTIES_DIALOG 132 +#define IDR_POPUP_MENU 133 +#define IDI_ICON 134 +#define IDB_BITMAP4 135 +#define IDB_BITMAP5 136 +#define IDC_LIST 1000 +#define IDC_CLRBACK 1023 +#define IDC_TEXTFONT 1024 +#define IDC_HDRCLRBACK 1026 +#define IDC_NAMETEXTFONT 1027 +#define IDC_CHECK_APPLYTOEXPANDED 1028 +#define IDC_EDIT_GRPMARGIN 1029 +#define IDC_HDRFONT 1030 +#define IDC_NAMEHDRFONT 1031 +#define IDC_EDIT_LEFTMARGIN 1032 +#define IDC_EDIT_TOPMARGIN 1033 +#define IDC_EDIT_RIGHTMARGIN 1034 +#define IDC_EDIT_BOTTOMMARGIN 1035 +#define IDC_EDIT_SCROLLBTNWIDTH 1036 +#define IDC_EDIT_SCROLLBTNHEIGHT 1037 +#define IDC_EDIT_HDRHEIGHT 1038 +#define ID_NEW_MESSAGE 32771 +#define ID_BACK 32772 +#define ID_FORWARD 32773 +#define ID_UP_ONE_FOLDER 32774 +#define ID_TOGGLE_TREE 32775 +#define ID_MOVE_TO_FOLDER 32777 +#define ID_DELETE 32778 +#define ID_REPLY 32779 +#define ID_REPLY_TO_ALL 32780 +#define ID_ADDRESS_BOOK 32782 +#define ID_GROUP_BY_BOX 32783 +#define ID_AUTO_PREVIEW 32784 +#define ID_FIND_ITEMS 32785 +#define ID_OFFICE_ASSISTANT 32786 +#define IDC_COMBO 32787 +#define ID_FORWARD_MESSAGE 32788 +#define ID_POST_IN_FOLDER 32789 +#define ID_APPOINTMENT 32790 +#define ID_MEETING_REQUEST 32791 +#define ID_CONTACT 32792 +#define ID_TASK 32793 +#define ID_TASK_REQUEST 32794 +#define ID_NOTE 32795 +#define ID_OFFICE_DOCUMENT 32796 +#define ID_VIEW_OUTLOOKBAR 32797 +#define ID_VIEW_FOLDERVIEW 32798 +#define ID_DESCRIPTION_FILE 32799 +#define ID_FILE_EXIT 32799 +#define ID_SKIN_CLASSIC 32800 +#define ID_SKIN_OFFICEXP 32801 +#define ID_SKIN_OFFICE2003 32802 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_3D_CONTROLS 1 +#define _APS_NEXT_RESOURCE_VALUE 137 +#define _APS_NEXT_COMMAND_VALUE 32803 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/CaptureTaskbarIcon.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/CaptureTaskbarIcon.cpp new file mode 100644 index 0000000..55f7d21 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/CaptureTaskbarIcon.cpp @@ -0,0 +1,51 @@ +#include "stdafx.h" +#include "CaptureTaskbarIcon.h" + +#include "resource.h" // main symbols + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CCaptureTaskbarIcon + +BEGIN_MESSAGE_MAP(CCaptureTaskbarIcon, COXTaskbarIcon) + //{{AFX_MSG_MAP(CCaptureTaskbarIcon) + ON_WM_LBUTTONDBLCLK() + ON_WM_RBUTTONDOWN() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + + +void CCaptureTaskbarIcon::OnRButtonDown(UINT nFlags, CPoint point) +{ + UNREFERENCED_PARAMETER(nFlags); + UNREFERENCED_PARAMETER(point); + // on right click show menu + DoPopupMenu(); +} + +void CCaptureTaskbarIcon::OnLButtonDblClk(UINT nFlags, CPoint point) +{ + UNREFERENCED_PARAMETER(nFlags); + UNREFERENCED_PARAMETER(point); + // on double click restore the position of window on screen + ::PostMessage(m_pPopupOwner->m_hWnd, WM_COMMAND, ID_OPEN, (LPARAM)m_hWnd); +} + +void CCaptureTaskbarIcon::DoPopupMenu() +{ + CMenu popMenu; + VERIFY(popMenu.LoadMenu(IDR_POPUPMENU)); + + CPoint posMouse; + GetCursorPos(&posMouse); + + // show menu + popMenu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, + posMouse.x, posMouse.y, m_pPopupOwner); +} + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/CaptureTaskbarIcon.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/CaptureTaskbarIcon.h new file mode 100644 index 0000000..6848506 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/CaptureTaskbarIcon.h @@ -0,0 +1,19 @@ +#include "OXTaskbarIcon.h" + +class CCaptureTaskbarIcon : public COXTaskbarIcon +{ +public: + CCaptureTaskbarIcon() { }; + void DoPopupMenu(); + // pointer to window to send messages + CWnd* m_pPopupOwner; + + //{{AFX_VIRTUAL(CCaptureTaskbarIcon) + //}}AFX_VIRTUAL + + //{{AFX_MSG(CCaptureTaskbarIcon) + afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point); + afx_msg void OnRButtonDown(UINT nFlags, CPoint point); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/HelpIDs.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/HelpIDs.h new file mode 100644 index 0000000..66a7a14 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/HelpIDs.h @@ -0,0 +1,34 @@ +#define IDH_STATIC_HOT_KEY 1000 +#define IDH_COMBO_HOT_KEY 1001 +#define IDH_CHECK_INITIAL_DELAY 1002 +#define IDH_EDIT_INITIAL_DELAY 1003 +#define IDH_SPIN_INITIAL_DELAY 1004 +#define IDH_CHECK_FILE 2000 +#define IDH_CHECK_CLIPBOARD 2001 +#define IDH_STATIC_FILE_NAME 3000 +#define IDH_COMBO_FILE_NAME 3001 +#define IDH_STATIC_FILE_TYPE 3002 +#define IDH_COMBO_FILE_TYPE 3003 +#define IDH_CHECK_AUTOMATIC_NAMING 3004 +#define IDH_BUTTON_CAPTURE_DIR 3005 +#define IDH_STATIC_CAPTURE_DIR 3006 +#define IDH_CHECK_RESIZE 4000 +#define IDH_STATIC_WIDTH 4001 +#define IDH_EDIT_WIDTH 4002 +#define IDH_SPIN_WIDTH 4003 +#define IDH_STATIC_HEIGHT 4004 +#define IDH_EDIT_HEIGHT 4005 +#define IDH_SPIN_HEIGHT 4006 +#define IDH_CHECK_MAINTAIN_RATIO 4007 +#define IDH_CHECK_HIDE_ICON 5000 +#define IDH_CHECK_NOTIFY_END 5001 +#define IDH_RADIO_CURRENT_WINDOW 6000 +#define IDH_RADIO_CLIENT_WINDOW 6001 +#define IDH_RADIO_FULL_SCREEN 6002 +#define IDH_RADIO_RECT_AREA 6003 + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageActivation.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageActivation.cpp new file mode 100644 index 0000000..ba05fcb --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageActivation.cpp @@ -0,0 +1,204 @@ +// PropertyPageActivation.cpp : implementation file +// + +#include "stdafx.h" +#include "resource.h" +#include "ScreenGrabber.h" +#include "PropertyPageActivation.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CPropertyPageActivation dialog + +//IMPLEMENT_DYNCREATE(CPropertyPageActivation, COXContextHelpPropertyPage) + +// array of control IDs and corresponding help IDs +const DWORD CPropertyPageActivation::m_nHelpIDs[] = +{ + IDC_STATIC_HOT_KEY, IDH_STATIC_HOT_KEY, + IDC_COMBO_HOT_KEY, IDH_COMBO_HOT_KEY, + IDC_CHECK_INITIAL_DELAY, IDH_CHECK_INITIAL_DELAY, + IDC_EDIT_INITIAL_DELAY, IDH_EDIT_INITIAL_DELAY, + IDC_SPIN_INITIAL_DELAY, IDH_SPIN_INITIAL_DELAY, + 0, 0 +}; + + +CPropertyPageActivation::CPropertyPageActivation() + : COXContextHelpPropertyPage(CPropertyPageActivation::IDD) +{ + //{{AFX_DATA_INIT(CPropertyPageActivation) + m_sHotKey = _T(""); + m_nInitialDelay = 0; + m_bInitialDelay = FALSE; + //}}AFX_DATA_INIT +} + +CPropertyPageActivation::~CPropertyPageActivation() +{ +} + +void CPropertyPageActivation::DoDataExchange(CDataExchange* pDX) +{ + COXContextHelpPropertyPage::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CPropertyPageActivation) + DDX_Control(pDX, IDC_CHECK_INITIAL_DELAY, m_ctlCheckInitialDelay); + DDX_Control(pDX, IDC_STATIC_HOT_KEY, m_ctlStaticHotKey); + DDX_Control(pDX, IDC_SPIN_INITIAL_DELAY, m_ctlSpinInitialDelay); + DDX_Control(pDX, IDC_EDIT_INITIAL_DELAY, m_ctlEditInitialDelay); + DDX_Control(pDX, IDC_COMBO_HOT_KEY, m_ctlComboHotKey); + DDX_CBString(pDX, IDC_COMBO_HOT_KEY, m_sHotKey); + DDX_Text(pDX, IDC_EDIT_INITIAL_DELAY, m_nInitialDelay); + DDV_MinMaxUInt(pDX, m_nInitialDelay, 1, 60); + DDX_Check(pDX, IDC_CHECK_INITIAL_DELAY, m_bInitialDelay); + //}}AFX_DATA_MAP + // check if all variables are correct + CheckVars(); +} + + +BEGIN_MESSAGE_MAP(CPropertyPageActivation, COXContextHelpPropertyPage) + //{{AFX_MSG_MAP(CPropertyPageActivation) + ON_BN_CLICKED(IDC_CHECK_INITIAL_DELAY, OnCheckInitialDelay) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CPropertyPageActivation message handlers + +BOOL CPropertyPageActivation::AdjustToolTips() +{ + //Set up the Tooltip + BOOL result; + + result=m_Tooltip.AddTool(&m_ctlStaticHotKey, + _T("Define the hot key to start capturing")); + ASSERT(result != 0) ; + result=m_Tooltip.AddTool(&m_ctlCheckInitialDelay, + _T("Define delay in seconds before capture")); + ASSERT(result != 0) ; + result=m_Tooltip.AddTool(&m_ctlSpinInitialDelay, + _T("Change value of initial delay from 1 to 60 seconds")); + ASSERT(result != 0) ; + result=m_Tooltip.AddTool(&m_ctlEditInitialDelay, + _T("Change value of initial delay from 1 to 60 seconds")); + ASSERT(result != 0) ; + result=m_Tooltip.AddTool(&m_ctlComboHotKey, + _T("Pick hot key to start capturing")); + ASSERT(result != 0) ; + + return result; +} + +BOOL CPropertyPageActivation::OnInitDialog() +{ + COXContextHelpPropertyPage::OnInitDialog(); + + // TODO: Add extra initialization here + m_LayoutManager.Attach(this); + + CRect rectDialog; + GetWindowRect(&rectDialog); + + CRect rectItem; + + GetDlgItem(IDC_STATIC_TIMING)->GetWindowRect(&rectItem); + m_LayoutManager.SetConstraint(IDC_STATIC_TIMING, OX_LMS_RIGHT, OX_LMT_SAME, + rectItem.right-rectDialog.right); + m_LayoutManager.SetConstraint(IDC_STATIC_TIMING, OX_LMS_LEFT, OX_LMT_SAME, + rectItem.left-rectDialog.left); + + GetDlgItem(IDC_SPIN_INITIAL_DELAY)->GetWindowRect(&rectItem); + m_LayoutManager.SetConstraint(IDC_SPIN_INITIAL_DELAY, OX_LMS_RIGHT, OX_LMT_SAME, + rectItem.right-rectDialog.right); + + GetDlgItem(IDC_EDIT_INITIAL_DELAY)->GetWindowRect(&rectItem); + m_LayoutManager.SetConstraint(IDC_EDIT_INITIAL_DELAY, OX_LMS_RIGHT, OX_LMT_SAME, + rectItem.right-rectDialog.right); + + GetDlgItem(IDC_CHECK_INITIAL_DELAY)->GetWindowRect(&rectItem); + m_LayoutManager.SetConstraint(IDC_CHECK_INITIAL_DELAY, OX_LMS_RIGHT, OX_LMT_SAME, + rectItem.right-rectDialog.right); + m_LayoutManager.SetConstraint(IDC_CHECK_INITIAL_DELAY, OX_LMS_LEFT, OX_LMT_SAME, + rectItem.left-rectDialog.left); + + GetDlgItem(IDC_COMBO_HOT_KEY)->GetWindowRect(&rectItem); + m_LayoutManager.SetConstraint(IDC_COMBO_HOT_KEY, OX_LMS_RIGHT, OX_LMT_SAME, + rectItem.right-rectDialog.right); + m_LayoutManager.SetConstraint(IDC_COMBO_HOT_KEY, OX_LMS_LEFT, OX_LMT_SAME, + rectItem.left-rectDialog.left); + + // Define array of possible hot keys + m_ctlComboHotKey.AddString(_T("F1")); + m_ctlComboHotKey.AddString(_T("F2")); + m_ctlComboHotKey.AddString(_T("F3")); + m_ctlComboHotKey.AddString(_T("F4")); + m_ctlComboHotKey.AddString(_T("F5")); + m_ctlComboHotKey.AddString(_T("F6")); + m_ctlComboHotKey.AddString(_T("F7")); + m_ctlComboHotKey.AddString(_T("F8")); + m_ctlComboHotKey.AddString(_T("F9")); + m_ctlComboHotKey.AddString(_T("F10")); + + // check if all variables are correct + CheckVars(); + + // Set the COXSpinCtrl object, which is mapped to a common Spin Control. + m_ctlSpinInitialDelay.SetBuddy(&m_ctlEditInitialDelay); + m_ctlSpinInitialDelay.SetRange(ID_MIN_INITIAL_DELAY,ID_MAX_INITIAL_DELAY); + m_ctlSpinInitialDelay.SetPos(m_nInitialDelay); + + // Set a default COXSpinCtrl method of delta value computation + // (Delta pixel = Delta value). + m_ctlSpinInitialDelay.SetComputationMethod(OX_SPIN_DELTA_PIXEL_IS_DELTA_VALUE); + + UpdateData(FALSE); + ShowControls(); + + return TRUE; // return TRUE unless you set the focus to a control + // EXCEPTION: OCX Property Pages should return FALSE +} + +void CPropertyPageActivation::OnCheckInitialDelay() +{ + // TODO: Add your control notification handler code here + + UpdateData(TRUE); + ShowControls(); +} + +void CPropertyPageActivation::ShowControls() +{ + if(m_bInitialDelay) + { + m_ctlEditInitialDelay.EnableWindow(TRUE); + m_ctlSpinInitialDelay.EnableWindow(TRUE); + } + else + { + m_ctlEditInitialDelay.EnableWindow(FALSE); + m_ctlSpinInitialDelay.EnableWindow(FALSE); + } + + UpdateData(FALSE); +} + +void CPropertyPageActivation::CheckVars() +{ + if(m_nInitialDelayID_MAX_INITIAL_DELAY) + { + m_nInitialDelay=ID_MIN_INITIAL_DELAY; + } + if(m_ctlComboHotKey.FindStringExact(-1,m_sHotKey)==CB_ERR) + { + if(m_ctlComboHotKey.GetCount()>0) + { + m_ctlComboHotKey.GetLBText(0,m_sHotKey); + } + } +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageActivation.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageActivation.h new file mode 100644 index 0000000..818b708 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageActivation.h @@ -0,0 +1,69 @@ +#if !defined(AFX_PROPERTYPAGEACTIVATION_H__ACC74CA2_804B_11D1_A3D5_0080C83F712F__INCLUDED_) +#define AFX_PROPERTYPAGEACTIVATION_H__ACC74CA2_804B_11D1_A3D5_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// PropertyPageActivation.h : header file +// + +#include "OXContextHelpPropertyPage.h" +#include "OXSpinCtrl.h" +#include "OXLayoutManager.h" + +///////////////////////////////////////////////////////////////////////////// +// CPropertyPageActivation dialog + +class CPropertyPageActivation : public COXContextHelpPropertyPage +{ +// DECLARE_DYNCREATE(CPropertyPageActivation) + +// Construction +public: + CPropertyPageActivation(); // standard constructor + ~CPropertyPageActivation(); + + BOOL AdjustToolTips(); + +// Dialog Data + //{{AFX_DATA(CPropertyPageActivation) + enum { IDD = IDD_PROPPAGE_ACTIVATION }; + CButton m_ctlCheckInitialDelay; + CStatic m_ctlStaticHotKey; + COXSpinCtrl m_ctlSpinInitialDelay; + CEdit m_ctlEditInitialDelay; + CComboBox m_ctlComboHotKey; + CString m_sHotKey; + UINT m_nInitialDelay; + BOOL m_bInitialDelay; + //}}AFX_DATA + + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CPropertyPageActivation) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + + void CheckVars(); + void ShowControls(); + + static const DWORD m_nHelpIDs[]; + virtual const DWORD* GetHelpIDs() {return m_nHelpIDs;} +// Implementation +protected: + COXLayoutManager m_LayoutManager; + + // Generated message map functions + //{{AFX_MSG(CPropertyPageActivation) + virtual BOOL OnInitDialog(); + afx_msg void OnCheckInitialDelay(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_PROPERTYPAGEACTIVATION_H__ACC74CA2_804B_11D1_A3D5_0080C83F712F__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageDestination.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageDestination.cpp new file mode 100644 index 0000000..c89df60 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageDestination.cpp @@ -0,0 +1,115 @@ +// PropertyPageDestination.cpp : implementation file +// + +#include "stdafx.h" +#include "ScreenGrabber.h" +#include "PropertyPageDestination.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CPropertyPageDestination property page + +//IMPLEMENT_DYNCREATE(CPropertyPageDestination, COXContextHelpPropertyPage) + +// array of control IDs and corresponding help IDs +const DWORD CPropertyPageDestination::m_nHelpIDs[] = +{ + IDC_CHECK_FILE, IDH_CHECK_FILE, + IDC_CHECK_CLIPBOARD, IDH_CHECK_CLIPBOARD, + 0, 0 +}; + + +CPropertyPageDestination::CPropertyPageDestination() : + COXContextHelpPropertyPage(CPropertyPageDestination::IDD) +{ + //{{AFX_DATA_INIT(CPropertyPageDestination) + m_bClipboard = FALSE; + m_bFile = FALSE; + //}}AFX_DATA_INIT +} + +CPropertyPageDestination::~CPropertyPageDestination() +{ +} + +void CPropertyPageDestination::DoDataExchange(CDataExchange* pDX) +{ + COXContextHelpPropertyPage::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CPropertyPageDestination) + DDX_Control(pDX, IDC_CHECK_FILE, m_ctlCheckFile); + DDX_Control(pDX, IDC_CHECK_CLIPBOARD, m_ctlCheckClipboard); + DDX_Check(pDX, IDC_CHECK_CLIPBOARD, m_bClipboard); + DDX_Check(pDX, IDC_CHECK_FILE, m_bFile); + //}}AFX_DATA_MAP + // check if all variables are correct + CheckVars(); +} + + +BEGIN_MESSAGE_MAP(CPropertyPageDestination, COXContextHelpPropertyPage) + //{{AFX_MSG_MAP(CPropertyPageDestination) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CPropertyPageDestination message handlers + +BOOL CPropertyPageDestination::AdjustToolTips() +{ + //Set up the Tooltip + BOOL result; + + result=m_Tooltip.AddTool(&m_ctlCheckFile, + _T("Save the captured image into file")); + ASSERT(result != 0) ; + result=m_Tooltip.AddTool(&m_ctlCheckClipboard, + _T("Copy the captured image into clipboard")); + ASSERT(result != 0) ; + + return result; +} + + + +BOOL CPropertyPageDestination::OnInitDialog() +{ + COXContextHelpPropertyPage::OnInitDialog(); + + // TODO: Add extra initialization here + m_LayoutManager.Attach(this); + + CRect rectDialog; + GetWindowRect(&rectDialog); + + CRect rectItem; + + GetDlgItem(IDC_STATIC_DESTINATION)->GetWindowRect(&rectItem); + m_LayoutManager.SetConstraint(IDC_STATIC_DESTINATION, OX_LMS_RIGHT, OX_LMT_SAME, + rectItem.right-rectDialog.right); + m_LayoutManager.SetConstraint(IDC_STATIC_DESTINATION, OX_LMS_LEFT, OX_LMT_SAME, + rectItem.left-rectDialog.left); + + // check if all variables are correct + CheckVars(); + + UpdateData(FALSE); + + ShowControls(); + + return TRUE; // return TRUE unless you set the focus to a control + // EXCEPTION: OCX Property Pages should return FALSE +} + +void CPropertyPageDestination::ShowControls() +{ +} + +void CPropertyPageDestination::CheckVars() +{ +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageDestination.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageDestination.h new file mode 100644 index 0000000..dc64ea1 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageDestination.h @@ -0,0 +1,64 @@ +#if !defined(AFX_PROPERTYPAGEDESTINATION_H__E32DDA23_805A_11D1_A3D5_0080C83F712F__INCLUDED_) +#define AFX_PROPERTYPAGEDESTINATION_H__E32DDA23_805A_11D1_A3D5_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// PropertyPageDestination.h : header file +// + +#include "OXContextHelpPropertyPage.h" +#include "OXLayoutManager.h" + +///////////////////////////////////////////////////////////////////////////// +// CPropertyPageDestination dialog + +class CPropertyPageDestination : public COXContextHelpPropertyPage +{ +// DECLARE_DYNCREATE(CPropertyPageDestination) + +// Construction +public: + CPropertyPageDestination(); + ~CPropertyPageDestination(); + + BOOL AdjustToolTips(); + +// Dialog Data + //{{AFX_DATA(CPropertyPageDestination) + enum { IDD = IDD_PROPPAGE_DESTINATION }; + CButton m_ctlCheckFile; + CButton m_ctlCheckClipboard; + BOOL m_bClipboard; + BOOL m_bFile; + //}}AFX_DATA + + +// Overrides + // ClassWizard generate virtual function overrides + //{{AFX_VIRTUAL(CPropertyPageDestination) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + + void CheckVars(); + void ShowControls(); + + static const DWORD m_nHelpIDs[]; + virtual const DWORD* GetHelpIDs() {return m_nHelpIDs;} +// Implementation +protected: + COXLayoutManager m_LayoutManager; + + // Generated message map functions + //{{AFX_MSG(CPropertyPageDestination) + virtual BOOL OnInitDialog(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_PROPERTYPAGEDESTINATION_H__E32DDA23_805A_11D1_A3D5_0080C83F712F__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageFile.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageFile.cpp new file mode 100644 index 0000000..9c5fb18 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageFile.cpp @@ -0,0 +1,295 @@ +// PropertyPageFile.cpp : implementation file +// + +#include "stdafx.h" +#include "ScreenGrabber.h" +#include "PropertyPageFile.h" + +#include "oxdirdlg.h" +#include "path.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CPropertyPageFile property page + +//IMPLEMENT_DYNCREATE(CPropertyPageFile, COXContextHelpPropertyPage) + +// array of control IDs and corresponding help IDs +const DWORD CPropertyPageFile::m_nHelpIDs[] = +{ + IDC_STATIC_FILE_NAME, IDH_STATIC_FILE_NAME, + IDC_COMBO_FILE_NAME, IDH_COMBO_FILE_NAME, + IDC_STATIC_FILE_TYPE, IDH_STATIC_FILE_TYPE, + IDC_COMBO_FILE_TYPE, IDH_COMBO_FILE_TYPE, + IDC_CHECK_AUTOMATIC_NAMING, IDH_CHECK_AUTOMATIC_NAMING, + IDC_BUTTON_CAPTURE_DIR, IDH_BUTTON_CAPTURE_DIR, + IDC_STATIC_CAPTURE_DIR, IDH_STATIC_CAPTURE_DIR, + 0, 0 +}; + + +CPropertyPageFile::CPropertyPageFile() : + COXContextHelpPropertyPage(CPropertyPageFile::IDD), + m_ctlComboFileName(COXHistoryCombo::TBPHorizontalRightCenter,FALSE) +{ + //{{AFX_DATA_INIT(CPropertyPageFile) + m_bAutomaticNaming = FALSE; + m_sFileName = _T(""); + m_sFileType = _T(""); + m_sCaptureDir = _T(""); + //}}AFX_DATA_INIT + m_bInitialized=FALSE; +} + +CPropertyPageFile::~CPropertyPageFile() +{ +} + +void CPropertyPageFile::DoDataExchange(CDataExchange* pDX) +{ + COXContextHelpPropertyPage::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CPropertyPageFile) + DDX_Control(pDX, IDC_COMBO_FILE_NAME, m_ctlComboFileName); + DDX_Control(pDX, IDC_COMBO_FILE_TYPE, m_ctlComboFileType); + DDX_Control(pDX, IDC_STATIC_FILE_TYPE, m_ctlStaticFileType); + DDX_Control(pDX, IDC_STATIC_FILE_NAME, m_ctlStaticFileName); + DDX_Control(pDX, IDC_STATIC_CAPTURE_DIR, m_ctlStaticCaptureDir); + DDX_Control(pDX, IDC_CHECK_AUTOMATIC_NAMING, m_ctlCheckAutomaticNaming); + DDX_Control(pDX, IDC_BUTTON_CAPTURE_DIR, m_ctlButtonDir); + DDX_CBString(pDX, IDC_COMBO_FILE_NAME, m_sFileName); + DDX_CBString(pDX, IDC_COMBO_FILE_TYPE, m_sFileType); + DDX_Text(pDX, IDC_STATIC_CAPTURE_DIR, m_sCaptureDir); + DDX_Check(pDX, IDC_CHECK_AUTOMATIC_NAMING, m_bAutomaticNaming); + //}}AFX_DATA_MAP + // check if all variables are correct + CheckVars(); +} + + +BEGIN_MESSAGE_MAP(CPropertyPageFile, COXContextHelpPropertyPage) + //{{AFX_MSG_MAP(CPropertyPageFile) + ON_BN_CLICKED(IDC_BUTTON_CAPTURE_DIR, OnButtonCaptureDir) + ON_BN_CLICKED(IDC_CHECK_AUTOMATIC_NAMING, OnCheckAutomaticNaming) + ON_WM_SIZE() + //}}AFX_MSG_MAP + ON_MESSAGE(WM_KICKIDLE, OnKickIdle) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CPropertyPageFile message handlers + +BOOL CPropertyPageFile::AdjustToolTips() +{ + //Set up the Tooltip + BOOL result; + + result=m_Tooltip.AddTool(&m_ctlStaticFileType, + _T("Define the type of file to save captured image")); + ASSERT(result != 0) ; + result=m_Tooltip.AddTool(&m_ctlStaticFileName, + _T("Define the name of file to save captured image")); + ASSERT(result != 0) ; + result=m_Tooltip.AddTool(&m_ctlStaticCaptureDir, + _T("The name of directory where the file will be saved")); + ASSERT(result != 0) ; + result=m_Tooltip.AddTool(&m_ctlComboFileType, + _T("Change the type of file to save captured image")); + ASSERT(result != 0) ; + result=m_Tooltip.AddTool(&m_ctlComboFileName, + _T("Change the name of file to save captured image")); + ASSERT(result != 0) ; + result=m_Tooltip.AddTool(&m_ctlCheckAutomaticNaming, + _T("Automatically set a name of file to save captured image")); + ASSERT(result != 0) ; + result=m_Tooltip.AddTool(&m_ctlButtonDir, + _T("Change the name of directory where the file will be saved")); + ASSERT(result != 0) ; + + return result; +} + +BOOL CPropertyPageFile::OnInitDialog() +{ + COXContextHelpPropertyPage::OnInitDialog(); + + // TODO: Add extra initialization here + m_LayoutManager.Attach(this); + + CRect rectDialog; + GetWindowRect(&rectDialog); + + CRect rectItem; + + GetDlgItem(IDC_STATIC_DIR)->GetWindowRect(&rectItem); + m_LayoutManager.SetConstraint(IDC_STATIC_DIR, OX_LMS_RIGHT, OX_LMT_SAME, + rectItem.right-rectDialog.right); + m_LayoutManager.SetConstraint(IDC_STATIC_DIR, OX_LMS_LEFT, OX_LMT_SAME, + rectItem.left-rectDialog.left); + + GetDlgItem(IDC_COMBO_FILE_NAME)->GetWindowRect(&rectItem); + m_LayoutManager.SetConstraint(IDC_COMBO_FILE_NAME, OX_LMS_RIGHT, OX_LMT_SAME, + rectItem.right-rectDialog.right); + m_LayoutManager.SetConstraint(IDC_COMBO_FILE_NAME, OX_LMS_LEFT, OX_LMT_SAME, + rectItem.left-rectDialog.left); + + GetDlgItem(IDC_COMBO_FILE_TYPE)->GetWindowRect(&rectItem); + m_LayoutManager.SetConstraint(IDC_COMBO_FILE_TYPE, OX_LMS_RIGHT, OX_LMT_SAME, + rectItem.right-rectDialog.right); + m_LayoutManager.SetConstraint(IDC_COMBO_FILE_TYPE, OX_LMS_LEFT, OX_LMT_SAME, + rectItem.left-rectDialog.left); + + GetDlgItem(IDC_STATIC_CAPTURE_DIR)->GetWindowRect(&rectItem); + m_LayoutManager.SetConstraint(IDC_STATIC_CAPTURE_DIR, OX_LMS_RIGHT, OX_LMT_SAME, + rectItem.right-rectDialog.right); + m_LayoutManager.SetConstraint(IDC_STATIC_CAPTURE_DIR, OX_LMS_LEFT, OX_LMT_SAME, + rectItem.left-rectDialog.left); + + GetDlgItem(IDC_BUTTON_CAPTURE_DIR)->GetWindowRect(&rectItem); + m_LayoutManager.SetConstraint(IDC_BUTTON_CAPTURE_DIR, OX_LMS_RIGHT, OX_LMT_SAME, + rectItem.right-rectDialog.right); + + // Define array of possible types of file + m_ctlComboFileType.AddString(_T("Windows Bitmap (*.bmp)")); + m_ctlComboFileType.AddString(_T("JPEG Bitmap (*.jpg)")); + // check if all variables are correct + CheckVars(); + + // Use auto persistence + m_ctlComboFileName.SetAutoPersistent(_T("History - FileName")); + m_ctlComboFileName.SetMaxHistoryCount(-1); + m_ctlComboFileName.ShowButton(2,FALSE); + m_ctlComboFileName.RefreshToolbar(); + COXHistoryCombo::EToolbarPosition eToolbarPosition= + m_ctlComboFileName.GetToolbarPosition(); + m_ctlComboFileName.PositionToolbar(eToolbarPosition, TRUE); + + UpdateData(FALSE); + ShowControls(); + + m_bInitialized=TRUE; + + return TRUE; // return TRUE unless you set the focus to a control + // EXCEPTION: OCX Property Pages should return FALSE +} + +void CPropertyPageFile::OnButtonCaptureDir() +{ + // TODO: Add your control notification handler code here + + TRY + { + // try to get new capture directory + UpdateData(TRUE); + + DWORD flags = OFN_SHOWHELP | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT; + + // Ask the user to select a directory + COXDirectoryDialog dirDlg(m_sCaptureDir,_T("Pick Capture Directory"),TRUE,flags); + if (dirDlg.DoModal()==IDOK) + { + m_sCaptureDir=dirDlg.GetDirectory(); + UpdateData(FALSE); + } + } + CATCH_ALL(px) + { + // Catch all exception and NEVER pass them on to the calling + // function (may not be MFC) ! + TRACE(_T("CPropertyPageFile::OnButtonCaptureDir() : Catching exception, aborting function\n")); + } + END_CATCH_ALL +} + +void CPropertyPageFile::OnCheckAutomaticNaming() +{ + // TODO: Add your control notification handler code here + + ShowControls(); +} + +void CPropertyPageFile::ShowControls() +{ + UpdateData(TRUE); + if(m_bAutomaticNaming) + { + m_ctlComboFileName.EnableWindow(FALSE); + } + else + { + m_ctlComboFileName.EnableWindow(TRUE); + } + + UpdateData(FALSE); +} + +void CPropertyPageFile::CheckVars() +{ + if(m_ctlComboFileType.FindStringExact(-1,m_sFileType)==CB_ERR) + { + if(m_ctlComboFileType.GetCount()>0) + { + m_ctlComboFileType.GetLBText(0,m_sFileType); + } + } + + // check if Capture Directory exists + COXPathSpec pathSpec; + if(!pathSpec.SetDirectory(m_sCaptureDir)) + { + // if Capture Directory doesn't exist then + // set it to Current Directory + pathSpec.DoGetCurrentDir(); + } + + if(m_bAutomaticNaming) + { + // check if we are capable of automatically naming Capture File + if(!pathSpec.MakeUnique()) + { + m_bAutomaticNaming=FALSE; + } + } + + if(!m_bAutomaticNaming) + { + if(m_sFileName.IsEmpty()) + { + m_sFileName=_T("ScreenShot"); + } + } + +} + +LRESULT CPropertyPageFile::OnKickIdle(WPARAM wParam, LPARAM /*lParam*/) +{ + UNREFERENCED_PARAMETER(wParam); + //use this function to let History Combo's toolbars to get messages + ASSERT_VALID(this); + ASSERT(wParam == MSGF_DIALOGBOX); + BOOL bContinueIdle = TRUE; + + // Pass on to the history combo + m_ctlComboFileName.OnIdle(); + + return bContinueIdle; +} + + +void CPropertyPageFile::OnSize(UINT nType, int cx, int cy) +{ + COXContextHelpPropertyPage::OnSize(nType, cx, cy); + + // TODO: Add your message handler code here + + if(m_bInitialized && UpdateData()) + { + m_ctlComboFileName.RefreshToolbar(); + UpdateData(FALSE); + } +} + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageFile.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageFile.h new file mode 100644 index 0000000..de90946 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageFile.h @@ -0,0 +1,78 @@ +#if !defined(AFX_PROPERTYPAGEFILE_H__E32DDA25_805A_11D1_A3D5_0080C83F712F__INCLUDED_) +#define AFX_PROPERTYPAGEFILE_H__E32DDA25_805A_11D1_A3D5_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// PropertyPageFile.h : header file +// + +#include "OXContextHelpPropertyPage.h" +#include "OXHistoryCombo.h" +#include "OXLayoutManager.h" + + +///////////////////////////////////////////////////////////////////////////// +// CPropertyPageFile dialog + +class CPropertyPageFile : public COXContextHelpPropertyPage +{ +// DECLARE_DYNCREATE(CPropertyPageFile) + +// Construction +public: + CPropertyPageFile(); + ~CPropertyPageFile(); + + BOOL AdjustToolTips(); + +// Dialog Data + //{{AFX_DATA(CPropertyPageFile) + enum { IDD = IDD_PROPPAGE_FILE }; + CStatic m_ctlStaticFileType; + CStatic m_ctlStaticFileName; + CStatic m_ctlStaticCaptureDir; + CComboBox m_ctlComboFileType; + COXHistoryCombo m_ctlComboFileName; + CButton m_ctlCheckAutomaticNaming; + CButton m_ctlButtonDir; + BOOL m_bAutomaticNaming; + CString m_sFileName; + CString m_sFileType; + CString m_sCaptureDir; + //}}AFX_DATA + + +// Overrides + // ClassWizard generate virtual function overrides + //{{AFX_VIRTUAL(CPropertyPageFile) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + + void CheckVars(); + void ShowControls(); + + static const DWORD m_nHelpIDs[]; + virtual const DWORD* GetHelpIDs() {return m_nHelpIDs;} +// Implementation +protected: + BOOL m_bInitialized; + COXLayoutManager m_LayoutManager; + + // Generated message map functions + //{{AFX_MSG(CPropertyPageFile) + virtual BOOL OnInitDialog(); + afx_msg void OnButtonCaptureDir(); + afx_msg void OnCheckAutomaticNaming(); + afx_msg void OnSize(UINT nType, int cx, int cy); + //}}AFX_MSG + afx_msg LRESULT OnKickIdle(WPARAM wParam, LPARAM lParam); + DECLARE_MESSAGE_MAP() + +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_PROPERTYPAGEFILE_H__E32DDA25_805A_11D1_A3D5_0080C83F712F__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageImage.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageImage.cpp new file mode 100644 index 0000000..d76ef75 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageImage.cpp @@ -0,0 +1,209 @@ +// PropertyPageImage.cpp : implementation file +// + +#include "stdafx.h" +#include "resource.h" +#include "ScreenGrabber.h" +#include "PropertyPageImage.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CPropertyPageImage property page + +//IMPLEMENT_DYNCREATE(CPropertyPageImage, COXContextHelpPropertyPage) + +// array of control IDs and corresponding help IDs +const DWORD CPropertyPageImage::m_nHelpIDs[] = +{ + IDC_CHECK_RESIZE, IDH_CHECK_RESIZE, + IDC_STATIC_WIDTH, IDH_STATIC_WIDTH, + IDC_EDIT_WIDTH, IDH_EDIT_WIDTH, + IDC_SPIN_WIDTH, IDH_SPIN_WIDTH, + IDC_STATIC_HEIGHT, IDH_STATIC_HEIGHT, + IDC_EDIT_HEIGHT, IDH_EDIT_HEIGHT, + IDC_SPIN_HEIGHT, IDH_SPIN_HEIGHT, + IDC_CHECK_MAINTAIN_RATIO, IDH_CHECK_MAINTAIN_RATIO, + 0, 0 +}; + + +CPropertyPageImage::CPropertyPageImage() : + COXContextHelpPropertyPage(CPropertyPageImage::IDD) +{ + //{{AFX_DATA_INIT(CPropertyPageImage) + m_bMaintainRatio = FALSE; + m_bResize = FALSE; + m_nHeight = 0; + m_nWidth = 0; + //}}AFX_DATA_INIT +} + +CPropertyPageImage::~CPropertyPageImage() +{ +} + +void CPropertyPageImage::DoDataExchange(CDataExchange* pDX) +{ + COXContextHelpPropertyPage::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CPropertyPageImage) + DDX_Control(pDX, IDC_STATIC_WIDTH, m_ctlStaticWidth); + DDX_Control(pDX, IDC_STATIC_HEIGHT, m_ctlStaticHeight); + DDX_Control(pDX, IDC_SPIN_WIDTH, m_ctlSpinWidth); + DDX_Control(pDX, IDC_SPIN_HEIGHT, m_ctlSpinHeight); + DDX_Control(pDX, IDC_EDIT_WIDTH, m_ctlEditWidth); + DDX_Control(pDX, IDC_EDIT_HEIGHT, m_ctlEditHeight); + DDX_Control(pDX, IDC_CHECK_RESIZE, m_ctlCheckResize); + DDX_Control(pDX, IDC_CHECK_MAINTAIN_RATIO, m_ctlCheckMaintainRatio); + DDX_Text(pDX, IDC_EDIT_HEIGHT, m_nHeight); + DDV_MinMaxUInt(pDX, m_nHeight, 1, 16384); + DDX_Text(pDX, IDC_EDIT_WIDTH, m_nWidth); + DDV_MinMaxUInt(pDX, m_nWidth, 1, 16384); + DDX_Check(pDX, IDC_CHECK_MAINTAIN_RATIO, m_bMaintainRatio); + DDX_Check(pDX, IDC_CHECK_RESIZE, m_bResize); + //}}AFX_DATA_MAP + // check if all variables are correct + CheckVars(); +} + + +BEGIN_MESSAGE_MAP(CPropertyPageImage, COXContextHelpPropertyPage) + //{{AFX_MSG_MAP(CPropertyPageImage) + ON_BN_CLICKED(IDC_CHECK_RESIZE, OnCheckResize) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CPropertyPageImage message handlers + +BOOL CPropertyPageImage::AdjustToolTips() +{ + //Set up the Tooltip + BOOL result; + + result=m_Tooltip.AddTool(&m_ctlStaticWidth, + _T("Define the width of captured image")); + ASSERT(result != 0) ; + result=m_Tooltip.AddTool(&m_ctlStaticHeight, + _T("Define the height of captured image")); + ASSERT(result != 0) ; + result=m_Tooltip.AddTool(&m_ctlSpinWidth, + _T("Change the width of captured image")); + ASSERT(result != 0) ; + result=m_Tooltip.AddTool(&m_ctlSpinHeight, + _T("Change the height of captured image")); + ASSERT(result != 0) ; + result=m_Tooltip.AddTool(&m_ctlEditWidth, + _T("Change the width of captured image")); + ASSERT(result != 0) ; + result=m_Tooltip.AddTool(&m_ctlEditHeight, + _T("Change the height of captured image")); + ASSERT(result != 0) ; + result=m_Tooltip.AddTool(&m_ctlCheckResize, + _T("Lets customize the height and width of captured image")); + ASSERT(result != 0) ; + result=m_Tooltip.AddTool(&m_ctlCheckMaintainRatio, + _T("Maintains aspect ratio of captured image")); + ASSERT(result != 0) ; + + return result; +} + + + +BOOL CPropertyPageImage::OnInitDialog() +{ + COXContextHelpPropertyPage::OnInitDialog(); + + // TODO: Add extra initialization here + m_LayoutManager.Attach(this); + + CRect rectDialog; + GetWindowRect(&rectDialog); + + CRect rectItem; + + GetDlgItem(IDC_STATIC_RESIZING)->GetWindowRect(&rectItem); + m_LayoutManager.SetConstraint(IDC_STATIC_RESIZING, OX_LMS_RIGHT, OX_LMT_SAME, + rectItem.right-rectDialog.right); + m_LayoutManager.SetConstraint(IDC_STATIC_RESIZING, OX_LMS_LEFT, OX_LMT_SAME, + rectItem.left-rectDialog.left); + + GetDlgItem(IDC_CHECK_MAINTAIN_RATIO)->GetWindowRect(&rectItem); + m_LayoutManager.SetConstraint(IDC_CHECK_MAINTAIN_RATIO, OX_LMS_RIGHT, OX_LMT_SAME, + rectItem.right-rectDialog.right); + + // check if all variables are correct + CheckVars(); + + // Set the COXSpinCtrl object, which is mapped to a common Spin Control. + m_ctlSpinWidth.SetBuddy(&m_ctlEditWidth); + m_ctlSpinWidth.SetRange(ID_MIN_WIDTH,ID_MAX_WIDTH); + m_ctlSpinWidth.SetPos(m_nWidth); + + // Set a default COXSpinCtrl method of delta value computation + // (Delta pixel = Delta value). + m_ctlSpinWidth.SetComputationMethod(OX_SPIN_DELTA_PIXEL_IS_DELTA_VALUE); + + // Set the COXSpinCtrl object, which is mapped to a common Spin Control. + m_ctlSpinHeight.SetBuddy(&m_ctlEditHeight); + m_ctlSpinHeight.SetRange(ID_MIN_HEIGHT,ID_MAX_HEIGHT); + m_ctlSpinHeight.SetPos(m_nHeight); + + // Set a default COXSpinCtrl method of delta value computation + // (Delta pixel = Delta value). + m_ctlSpinHeight.SetComputationMethod(OX_SPIN_DELTA_PIXEL_IS_DELTA_VALUE); + + UpdateData(FALSE); + ShowControls(); + + return TRUE; // return TRUE unless you set the focus to a control + // EXCEPTION: OCX Property Pages should return FALSE +} + +void CPropertyPageImage::OnCheckResize() +{ + // TODO: Add your control notification handler code here + + UpdateData(TRUE); + ShowControls(); +} + +void CPropertyPageImage::ShowControls() +{ + if(m_bResize) + { + m_ctlEditWidth.EnableWindow(TRUE); + m_ctlSpinWidth.EnableWindow(TRUE); + m_ctlEditHeight.EnableWindow(TRUE); + m_ctlSpinHeight.EnableWindow(TRUE); + m_ctlCheckMaintainRatio.EnableWindow(TRUE); + } + else + { + m_ctlEditWidth.EnableWindow(FALSE); + m_ctlSpinWidth.EnableWindow(FALSE); + m_ctlEditHeight.EnableWindow(FALSE); + m_ctlSpinHeight.EnableWindow(FALSE); + m_ctlCheckMaintainRatio.EnableWindow(FALSE); + } + + UpdateData(FALSE); +} + +void CPropertyPageImage::CheckVars() +{ + if(m_nWidthID_MAX_WIDTH) + { + m_nWidth=::GetSystemMetrics(SM_CXSCREEN); + } + if(m_nHeightID_MAX_HEIGHT) + { + m_nHeight=::GetSystemMetrics(SM_CYSCREEN); + } +} + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageImage.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageImage.h new file mode 100644 index 0000000..a4cb24e --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageImage.h @@ -0,0 +1,75 @@ +#if !defined(AFX_PROPERTYPAGEIMAGE_H__E32DDA24_805A_11D1_A3D5_0080C83F712F__INCLUDED_) +#define AFX_PROPERTYPAGEIMAGE_H__E32DDA24_805A_11D1_A3D5_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// PropertyPageImage.h : header file +// + +#include "OXContextHelpPropertyPage.h" +#include "OXSpinCtrl.h" +#include "OXLayoutManager.h" + + +///////////////////////////////////////////////////////////////////////////// +// CPropertyPageImage dialog + +class CPropertyPageImage : public COXContextHelpPropertyPage +{ +// DECLARE_DYNCREATE(CPropertyPageImage) + +// Construction +public: + CPropertyPageImage(); + ~CPropertyPageImage(); + + BOOL AdjustToolTips(); + +// Dialog Data + //{{AFX_DATA(CPropertyPageImage) + enum { IDD = IDD_PROPPAGE_IMAGE }; + CStatic m_ctlStaticWidth; + CStatic m_ctlStaticHeight; + COXSpinCtrl m_ctlSpinWidth; + COXSpinCtrl m_ctlSpinHeight; + CEdit m_ctlEditWidth; + CEdit m_ctlEditHeight; + CButton m_ctlCheckResize; + CButton m_ctlCheckMaintainRatio; + BOOL m_bMaintainRatio; + BOOL m_bResize; + UINT m_nHeight; + UINT m_nWidth; + //}}AFX_DATA + + +// Overrides + // ClassWizard generate virtual function overrides + //{{AFX_VIRTUAL(CPropertyPageImage) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + + void CheckVars(); + void ShowControls(); + + static const DWORD m_nHelpIDs[]; + virtual const DWORD* GetHelpIDs() {return m_nHelpIDs;} +// Implementation +protected: + COXLayoutManager m_LayoutManager; + + // Generated message map functions + //{{AFX_MSG(CPropertyPageImage) + virtual BOOL OnInitDialog(); + afx_msg void OnCheckResize(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_PROPERTYPAGEIMAGE_H__E32DDA24_805A_11D1_A3D5_0080C83F712F__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPagePreferences.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPagePreferences.cpp new file mode 100644 index 0000000..85273a8 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPagePreferences.cpp @@ -0,0 +1,115 @@ +// PropertyPagePreferences.cpp : implementation file +// + +#include "stdafx.h" +#include "ScreenGrabber.h" +#include "PropertyPagePreferences.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CPropertyPagePreferences property page + +//IMPLEMENT_DYNCREATE(CPropertyPagePreferences, COXContextHelpPropertyPage) + +// array of control IDs and corresponding help IDs +const DWORD CPropertyPagePreferences::m_nHelpIDs[] = +{ + IDC_CHECK_HIDE_ICON, IDH_CHECK_HIDE_ICON, + IDC_CHECK_NOTIFY_END, IDH_CHECK_NOTIFY_END, + 0, 0 +}; + + +CPropertyPagePreferences::CPropertyPagePreferences() : + COXContextHelpPropertyPage(CPropertyPagePreferences::IDD) +{ + //{{AFX_DATA_INIT(CPropertyPagePreferences) + m_bHideIcon = FALSE; + m_bNotifyEnd = FALSE; + //}}AFX_DATA_INIT +} + +CPropertyPagePreferences::~CPropertyPagePreferences() +{ +} + +void CPropertyPagePreferences::DoDataExchange(CDataExchange* pDX) +{ + COXContextHelpPropertyPage::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CPropertyPagePreferences) + DDX_Control(pDX, IDC_CHECK_NOTIFY_END, m_ctlCheckNotifyEnd); + DDX_Control(pDX, IDC_CHECK_HIDE_ICON, m_ctlCheckHideIcon); + DDX_Check(pDX, IDC_CHECK_HIDE_ICON, m_bHideIcon); + DDX_Check(pDX, IDC_CHECK_NOTIFY_END, m_bNotifyEnd); + //}}AFX_DATA_MAP + // check if all variables are correct + CheckVars(); +} + + +BEGIN_MESSAGE_MAP(CPropertyPagePreferences, COXContextHelpPropertyPage) + //{{AFX_MSG_MAP(CPropertyPagePreferences) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CPropertyPagePreferences message handlers + +BOOL CPropertyPagePreferences::AdjustToolTips() +{ + //Set up the Tooltip + BOOL result; + + result=m_Tooltip.AddTool(&m_ctlCheckNotifyEnd, + _T("Displays dialog box notifying you about end of capturing")); + ASSERT(result != 0) ; + result=m_Tooltip.AddTool(&m_ctlCheckHideIcon, + _T("Hide icon when capture")); + ASSERT(result != 0) ; + + return result; +} + +BOOL CPropertyPagePreferences::OnInitDialog() +{ + COXContextHelpPropertyPage::OnInitDialog(); + + // TODO: Add extra initialization here + m_LayoutManager.Attach(this); + + CRect rectDialog; + GetWindowRect(&rectDialog); + + CRect rectItem; + + GetDlgItem(IDC_STATIC_SETTINGS)->GetWindowRect(&rectItem); + m_LayoutManager.SetConstraint(IDC_STATIC_SETTINGS, OX_LMS_RIGHT, OX_LMT_SAME, + rectItem.right-rectDialog.right); + m_LayoutManager.SetConstraint(IDC_STATIC_SETTINGS, OX_LMS_LEFT, OX_LMT_SAME, + rectItem.left-rectDialog.left); + + // check if all variables are correct + CheckVars(); + + UpdateData(FALSE); + + ShowControls(); + + return TRUE; // return TRUE unless you set the focus to a control + // EXCEPTION: OCX Property Pages should return FALSE +} + +void CPropertyPagePreferences::ShowControls() +{ +} + +void CPropertyPagePreferences::CheckVars() +{ +} + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPagePreferences.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPagePreferences.h new file mode 100644 index 0000000..090f38d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPagePreferences.h @@ -0,0 +1,64 @@ +#if !defined(AFX_PROPERTYPAGEPREFERENCES_H__E32DDA26_805A_11D1_A3D5_0080C83F712F__INCLUDED_) +#define AFX_PROPERTYPAGEPREFERENCES_H__E32DDA26_805A_11D1_A3D5_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// PropertyPagePreferences.h : header file +// + +#include "OXContextHelpPropertyPage.h" +#include "OXLayoutManager.h" + +///////////////////////////////////////////////////////////////////////////// +// CPropertyPagePreferences dialog + +class CPropertyPagePreferences : public COXContextHelpPropertyPage +{ +// DECLARE_DYNCREATE(CPropertyPagePreferences) + +// Construction +public: + CPropertyPagePreferences(); + ~CPropertyPagePreferences(); + + BOOL AdjustToolTips(); + +// Dialog Data + //{{AFX_DATA(CPropertyPagePreferences) + enum { IDD = IDD_PROPPAGE_PREFERENCES }; + CButton m_ctlCheckNotifyEnd; + CButton m_ctlCheckHideIcon; + BOOL m_bHideIcon; + BOOL m_bNotifyEnd; + //}}AFX_DATA + + +// Overrides + // ClassWizard generate virtual function overrides + //{{AFX_VIRTUAL(CPropertyPagePreferences) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + + void CheckVars(); + void ShowControls(); + + static const DWORD m_nHelpIDs[]; + virtual const DWORD* GetHelpIDs() {return m_nHelpIDs;} +// Implementation +protected: + COXLayoutManager m_LayoutManager; + + // Generated message map functions + //{{AFX_MSG(CPropertyPagePreferences) + virtual BOOL OnInitDialog(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_PROPERTYPAGEPREFERENCES_H__E32DDA26_805A_11D1_A3D5_0080C83F712F__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageSource.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageSource.cpp new file mode 100644 index 0000000..cd53a7f --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageSource.cpp @@ -0,0 +1,117 @@ +// PropertyPageSource.cpp : implementation file +// + +#include "stdafx.h" +#include "resource.h" +#include "ScreenGrabber.h" +#include "PropertyPageSource.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CPropertyPageSource property page + +//IMPLEMENT_DYNCREATE(CPropertyPageSource, COXContextHelpPropertyPage) + +// array of control IDs and corresponding help IDs +const DWORD CPropertyPageSource::m_nHelpIDs[] = +{ + IDC_RADIO_CURRENT_WINDOW, IDH_RADIO_CURRENT_WINDOW, + IDC_RADIO_CLIENT_WINDOW, IDH_RADIO_CLIENT_WINDOW, + IDC_RADIO_FULL_SCREEN, IDH_RADIO_FULL_SCREEN, + IDC_RADIO_RECT_AREA, IDH_RADIO_RECT_AREA, + 0, 0 +}; + + +CPropertyPageSource::CPropertyPageSource() : + COXContextHelpPropertyPage(CPropertyPageSource::IDD) +{ + //{{AFX_DATA_INIT(CPropertyPageSource) + m_nRadioCapturedArea = -1; + //}}AFX_DATA_INIT +} + +CPropertyPageSource::~CPropertyPageSource() +{ +} + +void CPropertyPageSource::DoDataExchange(CDataExchange* pDX) +{ + COXContextHelpPropertyPage::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CPropertyPageSource) + DDX_Control(pDX, IDC_RADIO_CURRENT_WINDOW, m_ctlRadioCurrentWindow); + DDX_Radio(pDX, IDC_RADIO_CURRENT_WINDOW, m_nRadioCapturedArea); + //}}AFX_DATA_MAP + // check if all variables are correct + CheckVars(); +} + + +BEGIN_MESSAGE_MAP(CPropertyPageSource, COXContextHelpPropertyPage) + //{{AFX_MSG_MAP(CPropertyPageSource) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CPropertyPageSource message handlers + +BOOL CPropertyPageSource::AdjustToolTips() +{ + //Set up the Tooltip + BOOL result; + + result=m_Tooltip.AddTool(&m_ctlRadioCurrentWindow, + _T("Pick the capturing area")); + ASSERT(result != 0) ; + + return result; +} + + + +BOOL CPropertyPageSource::OnInitDialog() +{ + COXContextHelpPropertyPage::OnInitDialog(); + + // TODO: Add extra initialization here + m_LayoutManager.Attach(this); + + CRect rectDialog; + GetWindowRect(&rectDialog); + + CRect rectItem; + + GetDlgItem(IDC_STATIC_AREA)->GetWindowRect(&rectItem); + m_LayoutManager.SetConstraint(IDC_STATIC_AREA, OX_LMS_RIGHT, OX_LMT_SAME, + rectItem.right-rectDialog.right); + m_LayoutManager.SetConstraint(IDC_STATIC_AREA, OX_LMS_LEFT, OX_LMT_SAME, + rectItem.left-rectDialog.left); + + // check if all variables are correct + CheckVars(); + + UpdateData(FALSE); + + ShowControls(); + + return TRUE; // return TRUE unless you set the focus to a control + // EXCEPTION: OCX Property Pages should return FALSE +} + +void CPropertyPageSource::ShowControls() +{ +} + +void CPropertyPageSource::CheckVars() +{ + if(m_nRadioCapturedArea<0 || + m_nRadioCapturedArea>IDC_RADIO_RECT_AREA-IDC_RADIO_CURRENT_WINDOW) + { + m_nRadioCapturedArea=0; + } +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageSource.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageSource.h new file mode 100644 index 0000000..b089123 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertyPageSource.h @@ -0,0 +1,62 @@ +#if !defined(AFX_PROPERTYPAGESOURCE_H__E32DDA22_805A_11D1_A3D5_0080C83F712F__INCLUDED_) +#define AFX_PROPERTYPAGESOURCE_H__E32DDA22_805A_11D1_A3D5_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// PropertyPageSource.h : header file +// + +#include "OXContextHelpPropertyPage.h" +#include "OXLayoutManager.h" + +///////////////////////////////////////////////////////////////////////////// +// CPropertyPageSource dialog + +class CPropertyPageSource : public COXContextHelpPropertyPage +{ +// DECLARE_DYNCREATE(CPropertyPageSource) + +// Construction +public: + CPropertyPageSource(); + ~CPropertyPageSource(); + + BOOL AdjustToolTips(); + +// Dialog Data + //{{AFX_DATA(CPropertyPageSource) + enum { IDD = IDD_PROPPAGE_SOURCE }; + CButton m_ctlRadioCurrentWindow; + int m_nRadioCapturedArea; + //}}AFX_DATA + + +// Overrides + // ClassWizard generate virtual function overrides + //{{AFX_VIRTUAL(CPropertyPageSource) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + + void CheckVars(); + void ShowControls(); + + static const DWORD m_nHelpIDs[]; + virtual const DWORD* GetHelpIDs() {return m_nHelpIDs;} +// Implementation +protected: + COXLayoutManager m_LayoutManager; + + // Generated message map functions + //{{AFX_MSG(CPropertyPageSource) + virtual BOOL OnInitDialog(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_PROPERTYPAGESOURCE_H__E32DDA22_805A_11D1_A3D5_0080C83F712F__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertySheetCapture.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertySheetCapture.cpp new file mode 100644 index 0000000..ec0e68e --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertySheetCapture.cpp @@ -0,0 +1,903 @@ +// PropertySheetCapture.cpp : implementation file +// + +#include "stdafx.h" +#include "resource.h" +#include "ScreenGrabber.h" +#include "PropertySheetCapture.h" + +#include "PropertyPageActivation.h" +#include "PropertyPageSource.h" +#include "PropertyPageDestination.h" +#include "PropertyPageImage.h" +#include "PropertyPageFile.h" +#include "PropertyPagePreferences.h" + +#include "UTSampleAbout.h" + +#include "path.h" +#include "OXScreenGrab.h" + +#include "oxbmpfle.h" +#include "oxjpgfle.h" +#include "oxjpgcom.h" +#include "oxjpgdom.h" +#include "oxjpgexp.h" + +// GIF classes available at additional request (due to patent fee) +//#include "oxgiffle.h" + +#include "OXMainRes.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +static CWnd* g_pWndLastForeground; +///////////////////////////////////////////////////////////////////////////// +// CPropertySheetCapture dialog + +// array of control IDs and corresponding help IDs +const DWORD CPropertySheetCapture::m_nHelpIDs[] = +{ + 0, 0 +}; + +CPropertySheetCapture::CPropertySheetCapture(UINT nIDCaption, CWnd *pParentWnd, + UINT iSelectPage) : COXContextHelpPropertySheet(nIDCaption, pParentWnd, iSelectPage) +{ + IniPropertySheet(); +} + +CPropertySheetCapture::CPropertySheetCapture(LPCTSTR pszCaption, CWnd *pParentWnd, + UINT iSelectPage) : COXContextHelpPropertySheet(pszCaption, pParentWnd, iSelectPage) +{ + IniPropertySheet(); +} + +void CPropertySheetCapture::IniPropertySheet() +{ + m_bInitialized=FALSE; + + pWndTrackingHelper=NULL; + + m_bIsCapturing=FALSE; + m_nTimerCaptureDelay=0; + m_bGettingRectArea=FALSE; + + // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 + m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); + + // initialize Taskbar Icon + IniTaskbarIcon(); +} + +void CPropertySheetCapture::IniTaskbarIcon() +{ + m_TaskbarIcon.Create(); + // When there is only one taskbar icon, you don't need to specify an ID. + // The ID is useful only when implementing two (or more) taskbar icons, AND you want + // to handle mouse messages from both icons within one message handler (therefore, you + // need that ID to tell which icon posted the msg). However, it might be a good idea to + // assign an ID, and check the ID in the message handler, especially when you may need + // to derive your classes (somebody else may add another taskbar icon). + + // Note: you don't need to detroy a taskbar icon. It's done in its own destructor. + + m_TaskbarIcon.m_pPopupOwner = this; + // let this dialog handle popup menu's message + // Note: m_pPopupOwner is NOT a member of COXTaskbarIcon. + + m_TaskbarIcon.SetIcon(IDR_MAINFRAME); + m_TaskbarIcon.SetTooltipText(AFX_IDS_APP_TITLE); + m_TaskbarIcon.Show(); +} + +BEGIN_MESSAGE_MAP(CPropertySheetCapture, COXContextHelpPropertySheet) + //{{AFX_MSG_MAP(CPropertySheetCapture) + ON_WM_SYSCOMMAND() + ON_BN_CLICKED(IDOK, OnButtonCapture) + ON_BN_CLICKED(IDCANCEL, OnButtonClose) + ON_WM_TIMER() + ON_WM_LBUTTONDOWN() + ON_WM_CREATE() + ON_WM_DESTROY() + ON_WM_PAINT() + ON_WM_QUERYDRAGICON() + ON_WM_SIZE() + ON_WM_GETMINMAXINFO() + //}}AFX_MSG_MAP + ON_COMMAND(ID_OPEN, OnOpen) + ON_COMMAND(ID_CLOSE, OnButtonClose) + ON_COMMAND(ID_ABOUT, OnAppAbout) + ON_MESSAGE(WM_HOTKEY,OnHotKey) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CPropertySheetCapture message handlers + +int CPropertySheetCapture::OnCreate(LPCREATESTRUCT lpCreateStruct) +{ + if (COXContextHelpPropertySheet::OnCreate(lpCreateStruct) == -1) + return -1; + + // TODO: Add your specialized creation code here + + // Make it resizable + ModifyStyle(0,WS_THICKFRAME); +// ModifyStyle(0,WS_MAXIMIZEBOX); + + // create window that we use to show tracking rectangle + // while capturing rectangular area + pWndTrackingHelper=new CWndTrackingHelper; + // make it transparent + if(!pWndTrackingHelper->CreateEx(WS_EX_TRANSPARENT|WS_EX_TOOLWINDOW, + AfxRegisterWndClass(0), _T(""), WS_POPUP, 0, 0, 0, 0, NULL, NULL)) + { + TRACE0("Warning: unable to create tracking helper window!\n"); + AfxThrowResourceException(); + } + ASSERT(pWndTrackingHelper->m_hWnd != NULL); + + return 0; +} + +void CPropertySheetCapture::OnDestroy() +{ + COXContextHelpPropertySheet::OnDestroy(); + + // TODO: Add your message handler code here + if(pWndTrackingHelper!=NULL) + { + // delete helper window + pWndTrackingHelper->DestroyWindow(); + delete pWndTrackingHelper; + pWndTrackingHelper=NULL; + } +} + +BOOL CPropertySheetCapture::OnInitDialog() +{ + COXContextHelpPropertySheet::OnInitDialog(); + + CMenu* pSysMenu = GetSystemMenu(FALSE); + + // Remove standard Restore, Maximize & Minimize items out of system menu. + + if (pSysMenu != NULL) + { + pSysMenu->RemoveMenu(SC_RESTORE,MF_BYCOMMAND); + pSysMenu->RemoveMenu(SC_MINIMIZE,MF_BYCOMMAND); + pSysMenu->RemoveMenu(SC_MAXIMIZE,MF_BYCOMMAND); + } + // Add "Minimize" menu item to system menu. + + // IDM_MINIMIZE must be in the system command range. + ASSERT((IDM_MINIMIZE & 0xFFF0) == IDM_MINIMIZE); + ASSERT(IDM_MINIMIZE < 0xF000); + + if (pSysMenu != NULL) + { + CString strMinimizeMenu(_T("Mi&nimize")); + if (!strMinimizeMenu.IsEmpty()) + { + pSysMenu->AppendMenu(MF_STRING, IDM_MINIMIZE, strMinimizeMenu); + } + } + + // Add "About..." menu item to system menu. + + // IDM_ABOUTBOX must be in the system command range. + ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); + ASSERT(IDM_ABOUTBOX < 0xF000); + + if (pSysMenu != NULL) + { + CString strAboutMenu; + strAboutMenu.LoadString(IDS_ABOUTBOX); + if (!strAboutMenu.IsEmpty()) + { + pSysMenu->AppendMenu(MF_SEPARATOR); + pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); + } + } + + // Set the icon for this dialog. The framework does this automatically + // when the application's main window is not a dialog + SetIcon(m_hIcon, TRUE); // Set big icon + SetIcon(m_hIcon, FALSE); // Set small icon + + // TODO: Add extra initialization here + m_LayoutManager.Attach(this); + + m_LayoutManager.SetConstraint(IDOK, OX_LMS_RIGHT, OX_LMT_OPPOSITE, -6, IDCANCEL); + m_LayoutManager.SetConstraint(IDOK, OX_LMS_BOTTOM, OX_LMT_SAME, -5); + + + m_LayoutManager.SetConstraint(IDCANCEL, OX_LMS_RIGHT, OX_LMT_OPPOSITE, -6, IDHELP); + m_LayoutManager.SetConstraint(IDCANCEL, OX_LMS_BOTTOM, OX_LMT_SAME, -5); + + m_LayoutManager.SetConstraint(IDHELP, OX_LMS_RIGHT, OX_LMT_SAME, -4); + m_LayoutManager.SetConstraint(IDHELP, OX_LMS_BOTTOM, OX_LMT_SAME, -5); + + m_LayoutManager.SetConstraint(GetTabControl()->GetDlgCtrlID(), + OX_LMS_LEFT, OX_LMT_SAME, 4); + m_LayoutManager.SetConstraint(GetTabControl()->GetDlgCtrlID(), + OX_LMS_RIGHT, OX_LMT_SAME, -4); + m_LayoutManager.SetConstraint(GetTabControl()->GetDlgCtrlID(), + OX_LMS_BOTTOM, OX_LMT_OPPOSITE, -7, IDOK); + m_LayoutManager.SetConstraint(GetTabControl()->GetDlgCtrlID(), + OX_LMS_TOP, OX_LMT_SAME, 7); + + // Draw the layout with the new constraints + // This is necessary when constraints are implemented and the window must be refreshed + CRect rect; + GetWindowRect(&rect); + GetTabControl()->AdjustRect(FALSE,&rect); + m_LayoutManager.OnSize(rect.Width(),rect.Height()); + + + // rename standard OK button + CWnd* pButtonOK=GetDlgItem(IDOK); + pButtonOK->SetWindowText(_T("Capture")); + + // rename standard Cancel button + CWnd* pButtonCancel=GetDlgItem(IDCANCEL); + pButtonCancel->SetWindowText(_T("Close")); + + m_bInitialized=TRUE; + + GetTabControl()->GetWindowRect(&m_rectPage); + GetTabControl()->AdjustRect(FALSE,&m_rectPage); + ScreenToClient(&m_rectPage); + GetActivePage()->MoveWindow(&m_rectPage); + + return TRUE; +} + +// If you add a minimize button to your dialog, you will need the code below +// to draw the icon. For MFC applications using the document/view model, +// this is automatically done for you by the framework. + +void CPropertySheetCapture::OnPaint() +{ + if (IsIconic()) + { + CPaintDC dc(this); // device context for painting + + SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); + + // Center icon in client rectangle + int cxIcon = GetSystemMetrics(SM_CXICON); + int cyIcon = GetSystemMetrics(SM_CYICON); + CRect rect; + GetClientRect(&rect); + int x = (rect.Width() - cxIcon + 1) / 2; + int y = (rect.Height() - cyIcon + 1) / 2; + + // Draw the icon + dc.DrawIcon(x, y, m_hIcon); + } + else + { + COXContextHelpPropertySheet::OnPaint(); + } +} + +// The system calls this to obtain the cursor to display while the user drags +// the minimized window. +HCURSOR CPropertySheetCapture::OnQueryDragIcon() +{ + return (HCURSOR) m_hIcon; +} + +void CPropertySheetCapture::OnSysCommand(UINT nID, LPARAM lParam) +{ + if ((nID & 0xFFF0) == IDM_ABOUTBOX) + { + OnAppAbout(); + } + else + { + if ((nID & 0xFFF0) == IDM_MINIMIZE) + { + OnMinimize(); + } + else + { + COXContextHelpPropertySheet::OnSysCommand(nID, lParam); + } + } +} + +LRESULT CPropertySheetCapture::OnHotKey(WPARAM wParam, LPARAM lParam) +{ + UNREFERENCED_PARAMETER(lParam); + + if((int)wParam!=ID_HOTKEY || m_nTimerCaptureDelay!=0 || m_bIsCapturing) + return 0; + + // user pressed hot key + CPropertyPageActivation* pActivation=(CPropertyPageActivation*)GetPage(0); + if(pActivation->m_bInitialDelay) + { + // if needed set initial delay + m_nTimerCaptureDelay=SetTimer(ID_TIMER_CAPTURE_DELAY, + (DWORD)pActivation->m_nInitialDelay*(DWORD)1000,NULL); + if(m_nTimerCaptureDelay==0) + { + AfxMessageBox(_T("Cannot create timer to set initial delay!"), + MB_OK|MB_ICONEXCLAMATION); + } + } + else + { + // start capturing + DoCapture(); + } + + return 0; +} + +void CPropertySheetCapture::OnLButtonDown(UINT nFlags, CPoint point) +{ + UNREFERENCED_PARAMETER(nFlags); + if(m_bGettingRectArea) + { + // if capture area is rectangle + ReleaseCapture(); + m_bGettingRectArea=FALSE; + COXScreenGrabber ScreenGrabber; + ScreenGrabber.GrabTracker(this,point,pWndTrackingHelper); + + // remove helper window from screen + RemoveTrackingHelper(); + + // try to stream captured image to the destination(s) + StreamCapture(ScreenGrabber.GetGrabDIB()); + } +} + +void CPropertySheetCapture::OnButtonCapture() +{ + // refresh all vars + PressButton(PSBTN_APPLYNOW); + + // + if(!DoRegisterHotKey()) + { + AfxMessageBox(_T("Cannot register Hot Key!")); + } + else + { + // remove property sheet from screen + OnMinimize(); + } +} + +void CPropertySheetCapture::OnTimer(UINT nIDEvent) +{ + switch(nIDEvent) + { + case ID_TIMER_CAPTURE_DELAY: + { + KillTimer(m_nTimerCaptureDelay); + m_nTimerCaptureDelay=0; + + // start capturing + DoCapture(); + + break; + } + default: + break; + } +} + +BOOL CPropertySheetCapture::DoRegisterHotKey() +{ +// BOOL bProcessed=FALSE; + UINT vk; + + // define hot key to register + CPropertyPageActivation* pActivation=(CPropertyPageActivation*)GetPage(0); + if(pActivation->m_sHotKey==_T("F1")) + vk=VK_F1; + else + if(pActivation->m_sHotKey==_T("F2")) + vk=VK_F2; + else + if(pActivation->m_sHotKey==_T("F3")) + vk=VK_F3; + else + if(pActivation->m_sHotKey==_T("F4")) + vk=VK_F4; + else + if(pActivation->m_sHotKey==_T("F5")) + vk=VK_F5; + else + if(pActivation->m_sHotKey==_T("F6")) + vk=VK_F6; + else + if(pActivation->m_sHotKey==_T("F7")) + vk=VK_F7; + else + if(pActivation->m_sHotKey==_T("F8")) + vk=VK_F8; + else + if(pActivation->m_sHotKey==_T("F9")) + vk=VK_F9; + else + if(pActivation->m_sHotKey==_T("F10")) + vk=VK_F10; + else + return FALSE; + + return RegisterHotKey(GetSafeHwnd(),ID_HOTKEY,0,vk); +} + +BOOL CPropertySheetCapture::AdjustToolTips() +{ + return TRUE; +} + +void CPropertySheetCapture::OnMinimize() +{ + m_TaskbarIcon.SetOwner(NULL); // let taskbar icon do it + // This is only one way to hide the dialog window. In real situation, you may + // want to try DestroyWindow() to conserve system resource if possible (in this + // demo, this dialog is the main window). + ShowWindow(SW_HIDE); +} + +void CPropertySheetCapture::OnButtonClose() +{ + // try to cleanup everything + if(!CleanupCapture()) + { + return; + } + + // simulate pressing OK button to save all changes + PressButton(PSBTN_OK); +} + +// handling popup menu commands sent by the taskbar icon object +void CPropertySheetCapture::OnOpen() +{ + // try to cleanup everything + if(!CleanupCapture()) + { + return; + } + + SetForegroundWindow(); + ShowWindow(SW_SHOW); +} + +BOOL CPropertySheetCapture::CleanupCapture() +{ + // if we are capturing image then return unsuccess + if(m_bIsCapturing) + { + return FALSE; + } + + // unregister hot key if we close application + // when capturing is started + UnregisterHotKey(GetSafeHwnd(),ID_HOTKEY); + + // if we close while waiting for initial delay then + // kill timer + if(m_nTimerCaptureDelay!=0) + { + KillTimer(m_nTimerCaptureDelay); + m_nTimerCaptureDelay=0; + } + + // if we close while getting capture rectangular area then + // release capture and remove helper window + if(m_bGettingRectArea) + { + ReleaseCapture(); + RemoveTrackingHelper(); + m_bGettingRectArea=FALSE; + } + + return TRUE; +} + +void CPropertySheetCapture::DoCapture() +{ + m_bIsCapturing=TRUE; + + // get needed property pages + CPropertyPageSource* pSource=(CPropertyPageSource*)GetPage(1); + CPropertyPagePreferences* pPreferences=(CPropertyPagePreferences*)GetPage(5); + + // hide TaskbarIcon if needed + if(pPreferences->m_bHideIcon) + { + m_TaskbarIcon.Hide(); + } + + COXScreenGrabber ScreenGrabber; + switch(pSource->m_nRadioCapturedArea) + { + case 0: + { + ScreenGrabber.GrabFullWindow(CWnd::GetActiveWindow()); + break; + } + case 1: + { + ScreenGrabber.GrabClientWindow(CWnd::GetActiveWindow()); + break; + } + case 2: + { + ScreenGrabber.GrabFullWindow(CWnd::GetDesktopWindow()); + break; + } + case 3: + { + m_bGettingRectArea=TRUE; + + // activate helper window + SetTrackingHelper(); + SetCapture(); + + return; + } + default: + break; + } + + // try to stream captured image to the destination(s) + StreamCapture(ScreenGrabber.GetGrabDIB()); +} + +void CPropertySheetCapture::StreamCapture(COXDIB* pDIB) +{ + if(pDIB==NULL) + { + TRACE0("CPropertySheetCapture::StreamCapture - pDIB==NULL"); + return; + } + + CSize sizeDIB=pDIB->GetSize(); + if(sizeDIB.cx==0 && sizeDIB.cy==0) + { + TRACE0("CPropertySheetCapture::StreamCapture - pDIB is empty"); + return; + } + + // get needed property pages +// CPropertyPageActivation* pActivation=(CPropertyPageActivation*)GetPage(0); +// CPropertyPageSource* pSource=(CPropertyPageSource*)GetPage(1); + CPropertyPageDestination* pDestination=(CPropertyPageDestination*)GetPage(2); + CPropertyPageImage* pImage=(CPropertyPageImage*)GetPage(3); + CPropertyPageFile* pFile=(CPropertyPageFile*)GetPage(4); + CPropertyPagePreferences* pPreferences=(CPropertyPagePreferences*)GetPage(5); + + // resize image if needed + if(pImage->m_bResize) + { + UINT nHeight,nWidth; + nHeight=pImage->m_nHeight; + nWidth=pImage->m_nWidth; + + // take into account aspect ratio if needed + if(pImage->m_bMaintainRatio) + { + nHeight=(UINT)(((long)nWidth*(long)sizeDIB.cy)/ + ((long)sizeDIB.cx)); + } + + if(sizeDIB.cx!=(int)nWidth || sizeDIB.cy!=(int)nHeight) + { + pDIB->ResizeDIB(nWidth,nHeight); + } + } + + // copy captured image to clipboard if needed + if(pDestination->m_bClipboard) + { + SaveAsClipboard(pDIB); + } + + // copy captured image to file if needed + if(pDestination->m_bFile) + { + BOOL bSuccess=TRUE; + // check if Capture Directory exists + COXPathSpec pathSpec; + if(!pathSpec.SetDirectory(pFile->m_sCaptureDir)) + { + AfxMessageBox(_T("Specified Capture Directory is not valid!")); + bSuccess=FALSE; + } + else + { + CString sFileName; + if(pFile->m_bAutomaticNaming) + { + // check if we are capable of automatically naming Capture File + if(!pathSpec.MakeUnique()) + { + AfxMessageBox(_T("Cannot automatically name file!")); + bSuccess=FALSE; + } + sFileName=pathSpec.GetBaseName(); + } + else + { + sFileName=pFile->m_sFileName; + } + if(bSuccess) + { + if(pFile->m_sFileType==CString(_T("Windows Bitmap (*.bmp)"))) + { + sFileName+=CString(".bmp"); + } + else + { + if(pFile->m_sFileType==CString(_T("JPEG Bitmap (*.jpg)"))) + { + sFileName+=CString(".jpg"); + } + else + { + if(pFile->m_sFileType==CString(_T("GIF Image (*.gif)"))) + { + sFileName+=CString(".gif"); + } + } + } + + // check if we are capable of creating Capture File + if(!pathSpec.SetFileName(sFileName)) + { + AfxMessageBox(_T("Specified Capture Path is not valid"), + MB_OK|MB_ICONEXCLAMATION); + bSuccess=FALSE; + } + } + } + + // save captured image to file + if(bSuccess) + { + if(pFile->m_sFileType==CString(_T("Windows Bitmap (*.bmp)"))) + { + SaveAsBMP(pDIB,pathSpec.GetPath()); + } + else + { + if(pFile->m_sFileType==CString(_T("JPEG Bitmap (*.jpg)"))) + { + SaveAsJPEG(pDIB,pathSpec.GetPath()); + } + else + { + if(pFile->m_sFileType==CString(_T("GIF Image (*.gif)"))) + { + SaveAsGIF(pDIB,pathSpec.GetPath()); + } + } + } + } + } + + // restore TaskbarIcon if it was hidden + if(pPreferences->m_bHideIcon) + { + m_TaskbarIcon.Show(); + } + + m_bIsCapturing=FALSE; + + // notify about end of capture if needed + if(pPreferences->m_bNotifyEnd) + { + AfxMessageBox(_T("The capture has been completed!"), + MB_OK|MB_ICONINFORMATION); + } +} + +BOOL CPropertySheetCapture::SaveAsClipboard(COXDIB* pDIB) +{ + if(!OpenClipboard()) + { + AfxMessageBox("Cannot open the Clipboard!"); + return FALSE; + } + + // Remove the current Clipboard contents + if(!::EmptyClipboard()) + { + AfxMessageBox("Cannot empty the Clipboard!"); + ::CloseClipboard(); + return FALSE; + } + + // create a copy of DIB image + HDIB hDIB=pDIB->MakeCopy(); + // For the appropriate data formats... + if(::SetClipboardData(CF_DIB, hDIB)==NULL) + { + AfxMessageBox( "Unable to set Clipboard data!" ); + ::CloseClipboard(); + return FALSE; + } + // ... + ::CloseClipboard(); + return TRUE; +} + +BOOL CPropertySheetCapture::SaveAsBMP(COXDIB* pDIB, LPCTSTR lpszPathName) +{ + BOOL bSuccess=FALSE; + + // try to open or create file + CFile m_file; + TRY + { + bSuccess=m_file.Open(lpszPathName,CFile::modeCreate|CFile::modeReadWrite); + } + CATCH(CFileException,e) + { + TCHAR szCause[255]; + CString strFormatted; + e->GetErrorMessage(szCause, 255); + strFormatted = _T("CPropertySheetCapture::SaveAsBMP:exception: "); + strFormatted += szCause; + TRACE(strFormatted); + } + END_CATCH + + if(!bSuccess) + { + CString sMessage; + sMessage.Format(_T("Cannot open or create %s!"),lpszPathName); + AfxMessageBox(sMessage); + return FALSE; + } + + CArchive ar(&m_file, CArchive::store); + bSuccess=pDIB->Write(ar); + ar.Close(); + + return bSuccess; +} + +BOOL CPropertySheetCapture::SaveAsJPEG(COXDIB* pDIB, LPCTSTR lpszPathName) +{ + BOOL bSuccess=FALSE; + + BeginWaitCursor(); + + // mem file for captured image + CMemFile m_tmpBMPFile; + CArchive ar(&m_tmpBMPFile, CArchive::store); + bSuccess=pDIB->Write(ar); + ar.Close(); + m_tmpBMPFile.SeekToBegin(); + + // create bitmap file + COXBMPFile BMPFile(&m_tmpBMPFile); + COXJPEGFile jpgFile(lpszPathName); + COXJPEGCompressor JCompr; + + short nReturn(1); + TCHAR ErrorBuffer[SIZE_ERROR_BUF]; + TRY + { + // the only line of code we need to convert bitmap to JPEG + nReturn = JCompr.DoCompress(&BMPFile, &jpgFile); + if (nReturn == 2) + AfxMessageBox(JCompr.GetWarningMessages()); + } + CATCH(COXJPEGException, e) + { + e->GetErrorMessage(ErrorBuffer, SIZE_ERROR_BUF); + AfxMessageBox(CString("Exception : ") + ErrorBuffer); + + TRACE((LPCTSTR)ErrorBuffer); + } + END_CATCH + + EndWaitCursor(); + + return nReturn==0 ? TRUE : FALSE; +} + +BOOL CPropertySheetCapture::SaveAsGIF(COXDIB* pDIB, LPCTSTR lpszPathName) +{ + UNREFERENCED_PARAMETER(pDIB); + UNREFERENCED_PARAMETER(lpszPathName); + return FALSE; + + +} + +void CPropertySheetCapture::SetTrackingHelper() +{ + // set helper window for purpose of selecting rectangular area to capture + LockWindowUpdate(); + g_pWndLastForeground=GetForegroundWindow(); + if(g_pWndLastForeground==NULL) + { + g_pWndLastForeground=GetDesktopWindow(); + } + ::SetCursor(AfxGetApp()->LoadCursor(IDC_OX_HAND_CURSOR)); + pWndTrackingHelper->SetWindowPos(&wndTopMost,0,0,::GetSystemMetrics(SM_CXSCREEN), + ::GetSystemMetrics(SM_CYSCREEN),SWP_SHOWWINDOW); +} + +void CPropertySheetCapture::RemoveTrackingHelper() +{ + pWndTrackingHelper->SetWindowPos(&wndBottom,0,0,0,0,SWP_HIDEWINDOW); + ASSERT(g_pWndLastForeground->m_hWnd != NULL); + g_pWndLastForeground->SetForegroundWindow(); + UnlockWindowUpdate(); +} + +void CPropertySheetCapture::OnAppAbout() +{ + CUTSampleAboutDlg dlgAbout(IDR_MAINFRAME,ID_DESCRIPTION_FILE); + dlgAbout.DoModal(); +} + +void CPropertySheetCapture::OnSize(UINT nType, int cx, int cy) +{ + COXContextHelpPropertySheet::OnSize(nType, cx, cy); + + // TODO: Add your message handler code here + if(m_bInitialized) + { + m_LayoutManager.OnSize(cx,cy); + GetTabControl()->GetWindowRect(&m_rectPage); + GetTabControl()->AdjustRect(FALSE,&m_rectPage); + ScreenToClient(&m_rectPage); + GetActivePage()->MoveWindow(&m_rectPage); + } +} + +BOOL CPropertySheetCapture::OnNotify(WPARAM wParam, + LPARAM lParam, LRESULT* pResult) +{ + BOOL result=COXContextHelpPropertySheet::OnNotify(wParam, lParam, pResult); + + if(result) + { + NMHDR* pnmh = (LPNMHDR) lParam; + + // the sheet resizes the page whenever it is activated + // so we need to resize it to what we want + if (TCN_SELCHANGE == pnmh->code) + { + // user-defined message needs to be posted because page must + // be resized after TCN_SELCHANGE has been processed + GetActivePage()->MoveWindow(&m_rectPage); + } + } + + return result; +} + +void CPropertySheetCapture::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) +{ + // TODO: Add your message handler code here and/or call default + COXContextHelpPropertySheet::OnGetMinMaxInfo(lpMMI); + +// lpMMI->ptMaxSize.x=540; +// lpMMI->ptMaxSize.y=360; +// lpMMI->ptMaxTrackSize.x=540; +// lpMMI->ptMaxTrackSize.y=360; + lpMMI->ptMinTrackSize.x=300; +// lpMMI->ptMinTrackSize.y=240; +} + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertySheetCapture.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertySheetCapture.h new file mode 100644 index 0000000..7d97e4b --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/PropertySheetCapture.h @@ -0,0 +1,97 @@ +// PropertySheetCapture.h : header file +// + +#if !defined(AFX_PropertySheetCapture_H__B53D38E8_8037_11D1_A3D5_0080C83F712F__INCLUDED_) +#define AFX_PropertySheetCapture_H__B53D38E8_8037_11D1_A3D5_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +///////////////////////////////////////////////////////////////////////////// +// CPropertySheetCapture dialog + +#include "CaptureTaskbarIcon.h" +#include "OXContextHelpPropertySheet.h" +#include "oxdib.h" +#include "OXLayoutManager.h" + +#include "WndTrackingHelper.h" + +class CPropertySheetCapture : public COXContextHelpPropertySheet +{ +// Construction +public: + CPropertySheetCapture(UINT nIDCaption, CWnd *pParentWnd = NULL, + UINT iSelectPage = 0); + CPropertySheetCapture(LPCTSTR pszCaption, CWnd *pParentWnd = NULL, + UINT iSelectPage = 0); + +protected: + BOOL AdjustToolTips(); + void IniPropertySheet(); + void IniTaskbarIcon(); + + void DoCapture(); + void StreamCapture(COXDIB* pDIB); + BOOL SaveAsClipboard(COXDIB* pDIB); + BOOL SaveAsBMP(COXDIB* pDIB, LPCTSTR lpszPathName); + BOOL SaveAsJPEG(COXDIB* pDIB, LPCTSTR lpszPathName); + BOOL SaveAsGIF(COXDIB* pDIB, LPCTSTR lpszPathName); + BOOL CleanupCapture(); + + BOOL DoRegisterHotKey(); + + void SetTrackingHelper(); + void RemoveTrackingHelper(); + + static const DWORD m_nHelpIDs[]; + virtual const DWORD* GetHelpIDs() {return m_nHelpIDs;} + +// Implementation +public: + +protected: + HICON m_hIcon; + CWndTrackingHelper* pWndTrackingHelper; + CCaptureTaskbarIcon m_TaskbarIcon; + COXLayoutManager m_LayoutManager; + + BOOL m_bInitialized; + CRect m_rectPage; + + // define if process of capturing is going + BOOL m_bIsCapturing; + // timer ID for initial delay + UINT m_nTimerCaptureDelay; + // define if process of getting rectangular area to capture is going + BOOL m_bGettingRectArea; + + // Generated message map functions + //{{AFX_MSG(CPropertySheetCapture) + virtual BOOL OnInitDialog(); + virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult); + afx_msg void OnSysCommand(UINT nID, LPARAM lParam); + afx_msg void OnButtonCapture(); + afx_msg void OnButtonClose(); + afx_msg void OnTimer(UINT nIDEvent); + afx_msg void OnLButtonDown(UINT nFlags, CPoint point); + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnDestroy(); + afx_msg void OnPaint(); + afx_msg HCURSOR OnQueryDragIcon(); + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI); + //}}AFX_MSG + afx_msg void OnMinimize(); + afx_msg void OnOpen(); + afx_msg void OnAppAbout(); + afx_msg LRESULT OnHotKey(WPARAM wParam, LPARAM lParam); + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_PropertySheetCapture_H__B53D38E8_8037_11D1_A3D5_0080C83F712F__INCLUDED_) + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ReadMe.txt b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ReadMe.txt new file mode 100644 index 0000000..42bba85 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ReadMe.txt @@ -0,0 +1,81 @@ +======================================================================== + MICROSOFT FOUNDATION CLASS LIBRARY : ScreenGrabber +======================================================================== + + +AppWizard has created this ScreenGrabber application for you. This application +not only demonstrates the basics of using the Microsoft Foundation classes +but is also a starting point for writing your application. + +This file contains a summary of what you will find in each of the files that +make up your ScreenGrabber application. + +ScreenGrabber.h + This is the main header file for the application. It includes other + project specific headers (including Resource.h) and declares the + CScreenGrabberApp application class. + +ScreenGrabber.cpp + This is the main application source file that contains the application + class CScreenGrabberApp. + +ScreenGrabber.rc + This is a listing of all of the Microsoft Windows resources that the + program uses. It includes the icons, bitmaps, and cursors that are stored + in the RES subdirectory. This file can be directly edited in Microsoft + Developer Studio. + +res\ScreenGrabber.ico + This is an icon file, which is used as the application's icon. This + icon is included by the main resource file ScreenGrabber.rc. + +res\ScreenGrabber.rc2 + This file contains resources that are not edited by Microsoft + Developer Studio. You should place all resources not + editable by the resource editor in this file. + +ScreenGrabber.clw + This file contains information used by ClassWizard to edit existing + classes or add new classes. ClassWizard also uses this file to store + information needed to create and edit message maps and dialog data + maps and to create prototype member functions. + + +///////////////////////////////////////////////////////////////////////////// + +AppWizard creates one dialog class: + +ScreenGrabberDlg.h, ScreenGrabberDlg.cpp - the dialog + These files contain your CScreenGrabberDlg class. This class defines + the behavior of your application's main dialog. The dialog's + template is in ScreenGrabber.rc, which can be edited in Microsoft + Developer Studio. + + +///////////////////////////////////////////////////////////////////////////// +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named ScreenGrabber.pch and a precompiled types file named StdAfx.obj. + +Resource.h + This is the standard header file, which defines new resource IDs. + Microsoft Developer Studio reads and updates this file. + +///////////////////////////////////////////////////////////////////////////// +Other notes: + +AppWizard uses "TODO:" to indicate parts of the source code you +should add to or customize. + +If your application uses MFC in a shared DLL, and your application is +in a language other than the operating system's current language, you +will need to copy the corresponding localized resources MFC40XXX.DLL +from the Microsoft Visual C++ CD-ROM onto the system or system32 directory, +and rename it to be MFCLOC.DLL. ("XXX" stands for the language abbreviation. +For example, MFC40DEU.DLL contains resources translated to German.) If you +don't do this, some of the UI elements of your application will remain in the +language of the operating system. + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.cpp new file mode 100644 index 0000000..ac230db --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.cpp @@ -0,0 +1,255 @@ +// ScreenGrabber.cpp : Defines the class behaviors for the application. +// + +#include "stdafx.h" +#include "ScreenGrabber.h" + +#include "PropertySheetCapture.h" +#include "PropertyPageActivation.h" +#include "PropertyPageSource.h" +#include "PropertyPageDestination.h" +#include "PropertyPageImage.h" +#include "PropertyPageFile.h" +#include "PropertyPagePreferences.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CScreenGrabberApp + +BEGIN_MESSAGE_MAP(CScreenGrabberApp, CWinApp) + //{{AFX_MSG_MAP(CScreenGrabberApp) + // 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() + +///////////////////////////////////////////////////////////////////////////// +// CScreenGrabberApp construction + +CScreenGrabberApp::CScreenGrabberApp() +{ + // TODO: add construction code here, + // Place all significant initialization in InitInstance +} + +///////////////////////////////////////////////////////////////////////////// +// The one and only CScreenGrabberApp object + +CScreenGrabberApp theApp; +static HINSTANCE g_hRichEdDLL=NULL; + +///////////////////////////////////////////////////////////////////////////// +// CScreenGrabberApp initialization + +BOOL CScreenGrabberApp::InitInstance() +{ + // Initialize RichEdit control + // for About Dialog + if(g_hRichEdDLL==NULL) + { + g_hRichEdDLL=::LoadLibrary(_T("RICHED32.DLL")); + if(g_hRichEdDLL==NULL) + TRACE(_T("Cannot load library to display RichEditTextControl")); + } + + // 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. + +#if _MSC_VER < 1400 +#ifdef _AFXDLL + Enable3dControls(); // Call this when using MFC in a shared DLL +#else + Enable3dControlsStatic(); // Call this when linking to MFC statically +#endif +#endif + + + // Change the registry key under which our settings are stored. + // You should modify this string to be something appropriate + // such as the name of your company or organization. + SetRegistryKey(_T("Ultimate Toolbox Samples")); + + // initialize application variables using values from Registry + IniAppVars(); + + if(!m_wndInvisible.CreateEx(0, AfxRegisterWndClass(0), _T(""), 0, 0, 0, 0, 0, NULL, 0)) + { + TRACE(_T("CScreenGrabberApp::InitInstance: failed to create invisible window")); + return FALSE; + } + + CPropertySheetCapture dlgPropertySheet(AFX_IDS_APP_TITLE,&m_wndInvisible); + + // change property sheet properties + // to show icon and remove Apply Now button + HICON hIcon=LoadIcon(IDR_MAINFRAME); + dlgPropertySheet.m_psh.dwFlags|=PSH_NOAPPLYNOW; + dlgPropertySheet.m_psh.dwFlags|=PSH_USEHICON; + dlgPropertySheet.m_psh.hIcon=hIcon; + + CPropertyPageActivation pageActivation; + CPropertyPageSource pageSource; + CPropertyPageDestination pageDestination; + CPropertyPageImage pageImage; + CPropertyPageFile pageFile; + CPropertyPagePreferences pagePreferences; + + dlgPropertySheet.AddPage(&pageActivation); + dlgPropertySheet.AddPage(&pageSource); + dlgPropertySheet.AddPage(&pageDestination); + dlgPropertySheet.AddPage(&pageImage); + dlgPropertySheet.AddPage(&pageFile); + dlgPropertySheet.AddPage(&pagePreferences); + + m_pMainWnd = &dlgPropertySheet; + + + // Initialize vars + pageActivation.m_sHotKey=m_sHotKey; + pageActivation.m_nInitialDelay=m_nInitialDelay; + pageActivation.m_bInitialDelay=m_bInitialDelay; + + pageSource.m_nRadioCapturedArea=m_nRadioCapturedArea; + + pageDestination.m_bClipboard=m_bClipboard; + pageDestination.m_bFile=m_bFile; + + pageImage.m_bMaintainRatio=m_bMaintainRatio; + pageImage.m_bResize=m_bResize; + pageImage.m_nHeight=m_nHeight; + pageImage.m_nWidth=m_nWidth; + + pageFile.m_bAutomaticNaming=m_bAutomaticNaming; + pageFile.m_sFileName=m_sFileName; + pageFile.m_sFileType=m_sFileType; + pageFile.m_sCaptureDir=m_sCaptureDir; + + pagePreferences.m_bHideIcon=m_bHideIcon; + pagePreferences.m_bNotifyEnd=m_bNotifyEnd; + + switch(dlgPropertySheet.DoModal()) + { + case IDOK: + { + // TODO: Place code here to handle when the dialog is + // dismissed with OK + } + break; + case IDCANCEL: + { + // TODO: Place code here to handle when the dialog is + // dismissed with Cancel + } + break; + } + + // Copy vars + m_sHotKey=pageActivation.m_sHotKey; + m_nInitialDelay=pageActivation.m_nInitialDelay; + m_bInitialDelay=pageActivation.m_bInitialDelay; + + m_nRadioCapturedArea=pageSource.m_nRadioCapturedArea; + + m_bClipboard=pageDestination.m_bClipboard; + m_bFile=pageDestination.m_bFile; + + m_bMaintainRatio=pageImage.m_bMaintainRatio; + m_bResize=pageImage.m_bResize; + m_nHeight=pageImage.m_nHeight; + m_nWidth=pageImage.m_nWidth; + + m_bAutomaticNaming=pageFile.m_bAutomaticNaming; + m_sFileName=pageFile.m_sFileName; + m_sFileType=pageFile.m_sFileType; + m_sCaptureDir=pageFile.m_sCaptureDir; + + m_bHideIcon=pagePreferences.m_bHideIcon; + m_bNotifyEnd=pagePreferences.m_bNotifyEnd; + + // save application variables to Registry + SaveAppVars(); + + // 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 CScreenGrabberApp::IniAppVars() +{ + m_sHotKey=GetProfileString(_T("Activation"),_T("HotKey"),_T("F7")); + m_nInitialDelay=GetProfileInt(_T("Activation"),_T("InitialDelay"),5); + m_bInitialDelay=GetProfileInt(_T("Activation"), + _T("SetInitialDelay"),TRUE); + + m_nRadioCapturedArea=GetProfileInt(_T("Source"),_T("CapturedArea"),0); + + m_bClipboard=GetProfileInt(_T("Destination"),_T("Clipboard"),FALSE); + m_bFile=GetProfileInt(_T("Destination"),_T("File"),TRUE); + + m_bMaintainRatio=GetProfileInt(_T("Image"),_T("MaintainRatio"),TRUE); + m_bResize=GetProfileInt(_T("Image"),_T("Resize"),FALSE); + m_nHeight=GetProfileInt(_T("Image"),_T("Height"), + ::GetSystemMetrics(SM_CYSCREEN)); + m_nWidth=GetProfileInt(_T("Image"),_T("Width"), + ::GetSystemMetrics(SM_CXSCREEN)); + + m_bAutomaticNaming=GetProfileInt(_T("File"),_T("AutomaticNaming"),FALSE); + m_sFileName=GetProfileString(_T("File"),_T("FileName"),_T("ScreenShot")); + m_sFileType=GetProfileString(_T("File"),_T("FileType"),_T("Windows Bitmap (*.bmp)")); + /// set as default directory the current one + CString sCurDir; + LPTSTR sBuffer=sCurDir.GetBuffer(_MAX_PATH); + GetCurrentDirectory(_MAX_PATH,sBuffer); + sCurDir.ReleaseBuffer(); + /// + m_sCaptureDir=GetProfileString(_T("File"),_T("CaptureDir"),sCurDir); + + m_bHideIcon=GetProfileInt(_T("Prefences"),_T("HideIcon"),FALSE); + m_bNotifyEnd=GetProfileInt(_T("Prefences"),_T("NotifyEnd"),TRUE); +} + +void CScreenGrabberApp::SaveAppVars() +{ + WriteProfileString(_T("Activation"),_T("HotKey"),m_sHotKey); + WriteProfileInt(_T("Activation"),_T("InitialDelay"),m_nInitialDelay); + WriteProfileInt(_T("Activation"),_T("SetInitialDelay"), + m_bInitialDelay); + + WriteProfileInt(_T("Source"),_T("CapturedArea"),m_nRadioCapturedArea); + + WriteProfileInt(_T("Destination"),_T("Clipboard"),m_bClipboard); + WriteProfileInt(_T("Destination"),_T("File"),m_bFile); + + WriteProfileInt(_T("Image"),_T("MaintainRatio"),m_bMaintainRatio); + WriteProfileInt(_T("Image"),_T("Resize"),m_bResize); + WriteProfileInt(_T("Image"),_T("Height"),m_nHeight); + WriteProfileInt(_T("Image"),_T("Width"),m_nWidth); + + WriteProfileInt(_T("File"),_T("AutomaticNaming"),m_bAutomaticNaming); + WriteProfileString(_T("File"),_T("FileName"),m_sFileName); + WriteProfileString(_T("File"),_T("FileType"),m_sFileType); + WriteProfileString(_T("File"),_T("CaptureDir"),m_sCaptureDir); + + WriteProfileInt(_T("Prefences"),_T("HideIcon"),m_bHideIcon); + WriteProfileInt(_T("Prefences"),_T("NotifyEnd"),m_bNotifyEnd); +} + + +int CScreenGrabberApp::ExitInstance() +{ + // TODO: Add your specialized code here and/or call the base class + + // unload the library + if(g_hRichEdDLL!=NULL) + ::FreeLibrary(g_hRichEdDLL); + + return CWinApp::ExitInstance(); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.dsp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.dsp new file mode 100644 index 0000000..a7eb93e --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.dsp @@ -0,0 +1,459 @@ +# Microsoft Developer Studio Project File - Name="ScreenGrabber" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=ScreenGrabber - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "ScreenGrabber.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "ScreenGrabber.mak" CFG="ScreenGrabber - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "ScreenGrabber - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "ScreenGrabber - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE "ScreenGrabber - Win32 Release_Shared" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "ScreenGrabber - Win32 Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /I "..\..\..\Lib\Jpeg" /I "..\..\..\Lib\Jpeg\Jpegsrc6" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /i "..\..\..\Lib\Jpeg" /i "..\..\..\Lib\Jpeg\Jpegsrc6" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 jpgr.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"LIBC" /out:"ScreenGrabber.exe" /libpath:"..\..\..\Lib\libs" + +!ELSEIF "$(CFG)" == "ScreenGrabber - Win32 Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /I "..\..\..\Lib\Jpeg" /I "..\..\..\Lib\Jpeg\Jpegsrc6" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /FR /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /i "..\..\..\Lib\Jpeg" /i "..\..\..\Lib\Jpeg\Jpegsrc6" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 jpgd.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"LIBCD" /out:"ScreenGrabber.exe" /pdbtype:sept /libpath:"..\..\..\Lib\libs" + +!ELSEIF "$(CFG)" == "ScreenGrabber - Win32 Release_Shared" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "ScreenGr" +# PROP BASE Intermediate_Dir "ScreenGr" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release_Shared" +# PROP Intermediate_Dir "Release_Shared" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W4 /GX /O2 /I "..\..\..\Lib\Jpeg" /I "..\..\..\Lib\Jpeg\Jpegsrc6" /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\..\Lib\Jpeg" /i "..\..\..\Lib\Jpeg\Jpegsrc6" /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 jpgr.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"LIBC" /out:"ScreenGrabber.exe" +# ADD LINK32 jpgr.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"LIBC" /out:"ScreenGrabber.exe" /libpath:"..\..\..\Lib\libs" + +!ENDIF + +# Begin Target + +# Name "ScreenGrabber - Win32 Release" +# Name "ScreenGrabber - Win32 Debug" +# Name "ScreenGrabber - Win32 Release_Shared" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Group "UTSource" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE="..\..\..\Source\Copytree.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\Dir.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\Dstrlist.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\File.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\UTSampleAbout\HtmlCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\MFCToolBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OX3DTabView.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXAdvancedAssert.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXAdvancedAssertMail.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXBitmapMenu.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXBitmapMenuOrganizer.cpp +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXBMPFle.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXContextHelpPropertyPage.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXContextHelpPropertySheet.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCoolToolBar.cpp +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\Oxdib.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXDirDlg.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\oxdocktabctrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXDragDockContext.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXFrameWndDock.CPP +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXGphFle.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXHistoryCombo.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXJPGCod.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXJPGCom.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXJPGDom.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXJPGExp.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXJPGFle.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXLayoutManager.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXMDIFloatWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXMenuBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXRectTracker.cpp +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXScreenGrab.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXShortcutBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSizeCtrlBar.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSizeDockBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSizeToolBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkinnedComboBox.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkinnedSpinCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkinnedTabCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkins.cpp +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXSpinCtrl.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSplitterRect.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSzMiniDockFrmWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXTabClientWnd.cpp +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXTaskbarIcon.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXToolTipCtrl.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXUxTheme.cpp +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\Path.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\UTBStrOp.cpp +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\UTSampleAbout\UTSampleAbout.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\Xstatus4.cpp +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\Xstring.cpp" +# End Source File +# End Group +# Begin Source File + +SOURCE=.\CaptureTaskbarIcon.cpp +# End Source File +# Begin Source File + +SOURCE=.\PropertyPageActivation.cpp +# End Source File +# Begin Source File + +SOURCE=.\PropertyPageDestination.cpp +# End Source File +# Begin Source File + +SOURCE=.\PropertyPageFile.cpp +# End Source File +# Begin Source File + +SOURCE=.\PropertyPageImage.cpp +# End Source File +# Begin Source File + +SOURCE=.\PropertyPagePreferences.cpp +# End Source File +# Begin Source File + +SOURCE=.\PropertyPageSource.cpp +# End Source File +# Begin Source File + +SOURCE=.\PropertySheetCapture.cpp +# End Source File +# Begin Source File + +SOURCE=.\ScreenGrabber.cpp +# End Source File +# Begin Source File + +SOURCE=.\ScreenGrabber.rc +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# Begin Source File + +SOURCE=.\WndTrackingHelper.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\CaptureTaskbarIcon.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXContextHelpPropertyPage.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXContextHelpPropertySheet.h +# End Source File +# Begin Source File + +SOURCE=.\PropertyPageActivation.h +# End Source File +# Begin Source File + +SOURCE=.\PropertyPageDestination.h +# End Source File +# Begin Source File + +SOURCE=.\PropertyPageFile.h +# End Source File +# Begin Source File + +SOURCE=.\PropertyPageImage.h +# End Source File +# Begin Source File + +SOURCE=.\PropertyPagePreferences.h +# End Source File +# Begin Source File + +SOURCE=.\PropertyPageSource.h +# End Source File +# Begin Source File + +SOURCE=.\PropertySheetCapture.h +# End Source File +# Begin Source File + +SOURCE=.\Resource.h +# End Source File +# Begin Source File + +SOURCE=.\ScreenGrabber.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# Begin Source File + +SOURCE=.\WndTrackingHelper.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\res\ScreenGrabber.ico +# End Source File +# Begin Source File + +SOURCE=.\res\ScreenGrabber.rc2 +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ReadMe.txt +# End Source File +# End Target +# End Project diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.dsw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.dsw new file mode 100644 index 0000000..b802030 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "ScreenGrabber"=".\ScreenGrabber.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.exe.manifest b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.exe.manifest new file mode 100644 index 0000000..275675d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.exe.manifest @@ -0,0 +1,22 @@ + + + +Your app description here + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.h new file mode 100644 index 0000000..d81df85 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.h @@ -0,0 +1,78 @@ +// ScreenGrabber.h : main header file for the SCREENGRABBER application +// + +#if !defined(AFX_SCREENGRABBER_H__B53D38E6_8037_11D1_A3D5_0080C83F712F__INCLUDED_) +#define AFX_SCREENGRABBER_H__B53D38E6_8037_11D1_A3D5_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols + +///////////////////////////////////////////////////////////////////////////// +// CScreenGrabberApp: +// See ScreenGrabber.cpp for the implementation of this class +// + +class CScreenGrabberApp : public CWinApp +{ +public: + CScreenGrabberApp(); + + CString m_sHotKey; + UINT m_nInitialDelay; + BOOL m_bInitialDelay; + + int m_nRadioCapturedArea; + + BOOL m_bClipboard; + BOOL m_bFile; + + BOOL m_bMaintainRatio; + BOOL m_bResize; + UINT m_nHeight; + UINT m_nWidth; + + BOOL m_bAutomaticNaming; + CString m_sFileName; + CString m_sFileType; + CString m_sCaptureDir; + + BOOL m_bHideIcon; + BOOL m_bNotifyEnd; + +protected: + void IniAppVars(); + void SaveAppVars(); + + CWnd m_wndInvisible; + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CScreenGrabberApp) + public: + virtual BOOL InitInstance(); + virtual int ExitInstance(); + //}}AFX_VIRTUAL + +// Implementation + + //{{AFX_MSG(CScreenGrabberApp) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_SCREENGRABBER_H__B53D38E6_8037_11D1_A3D5_0080C83F712F__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.rc b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.rc new file mode 100644 index 0000000..b6392c8 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.rc @@ -0,0 +1,358 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""UTSampleAbout.rc"" \r\n" + "#include ""OXSpinCtrl.rc"" // Spin ctrl resources\r\n" + "#include ""OXHistoryCombo.rc"" \r\n" + "#include ""oxdirdlg.rc""\r\n" + "#include ""OXBitmapButton.rc"" \r\n" + "\r\n" + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif\r\n" + "#include ""res\\ScreenGrabber.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "#endif\r\n" + "\r\n" + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON DISCARDABLE "res\\ScreenGrabber.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_PROPPAGE_ACTIVATION DIALOG DISCARDABLE 0, 0, 226, 94 +STYLE WS_CHILD | WS_DISABLED | WS_CAPTION | WS_THICKFRAME +CAPTION "Activation" +FONT 8, "MS Sans Serif" +BEGIN + LTEXT "&Hot key",IDC_STATIC_HOT_KEY,7,7,26,8 + COMBOBOX IDC_COMBO_HOT_KEY,41,7,76,49,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + GROUPBOX "Timing",IDC_STATIC_TIMING,7,29,212,30 + EDITTEXT IDC_EDIT_INITIAL_DELAY,176,41,24,12,ES_AUTOHSCROLL + CONTROL "Spin1",IDC_SPIN_INITIAL_DELAY,"msctls_updown32", + UDS_SETBUDDYINT | UDS_ARROWKEYS,200,41,10,12 + CONTROL "Initial &delay before capture (1-60 sec)", + IDC_CHECK_INITIAL_DELAY,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,18,42,155,10 +END + +IDD_PROPPAGE_SOURCE DIALOG DISCARDABLE 0, 0, 226, 94 +STYLE WS_CHILD | WS_DISABLED | WS_CAPTION | WS_THICKFRAME +CAPTION "Source" +FONT 8, "MS Sans Serif" +BEGIN + CONTROL "&Current Window",IDC_RADIO_CURRENT_WINDOW,"Button", + BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,26,20,135,8 + CONTROL "C&lient Window",IDC_RADIO_CLIENT_WINDOW,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,26,37,135,8 + CONTROL "&Full Screen",IDC_RADIO_FULL_SCREEN,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,26,54,135,8 + CONTROL "&Rectangular Area",IDC_RADIO_RECT_AREA,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,26,71,135,8 + GROUPBOX "Captured area",IDC_STATIC_AREA,7,7,212,80 +END + +IDD_PROPPAGE_DESTINATION DIALOG DISCARDABLE 0, 0, 226, 94 +STYLE WS_CHILD | WS_DISABLED | WS_CAPTION | WS_THICKFRAME +CAPTION "Destination" +FONT 8, "MS Sans Serif" +BEGIN + GROUPBOX "Copy captured area to",IDC_STATIC_DESTINATION,7,7,212, + 80 + CONTROL "&File",IDC_CHECK_FILE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,19,23,73,8 + CONTROL "&Clipboard",IDC_CHECK_CLIPBOARD,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,19,42,73,8 +END + +IDD_PROPPAGE_IMAGE DIALOG DISCARDABLE 0, 0, 226, 94 +STYLE WS_CHILD | WS_DISABLED | WS_CAPTION | WS_THICKFRAME +CAPTION "Image" +FONT 8, "MS Sans Serif" +BEGIN + CONTROL "&Resize captured image",IDC_CHECK_RESIZE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,7,128,8 + EDITTEXT IDC_EDIT_WIDTH,48,37,24,12,ES_AUTOHSCROLL + CONTROL "Spin1",IDC_SPIN_WIDTH,"msctls_updown32",UDS_SETBUDDYINT | + UDS_ARROWKEYS | UDS_NOTHOUSANDS,72,37,10,12 + EDITTEXT IDC_EDIT_HEIGHT,48,58,24,12,ES_AUTOHSCROLL + CONTROL "Spin1",IDC_SPIN_HEIGHT,"msctls_updown32", + UDS_SETBUDDYINT | UDS_ARROWKEYS | UDS_NOTHOUSANDS,72,58, + 10,12 + CONTROL "&Maintain aspect ratio",IDC_CHECK_MAINTAIN_RATIO,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,129,38,81,8 + GROUPBOX "Resizing",IDC_STATIC_RESIZING,7,22,212,65 + LTEXT "&Width",IDC_STATIC_WIDTH,13,39,20,8 + LTEXT "&Height",IDC_STATIC_HEIGHT,13,60,22,8 +END + +IDD_PROPPAGE_FILE DIALOGEX 0, 0, 226, 94 +STYLE WS_CHILD | WS_DISABLED | WS_CAPTION | WS_THICKFRAME +CAPTION "File" +FONT 8, "MS Sans Serif", 0, 0, 0x1 +BEGIN + COMBOBOX IDC_COMBO_FILE_NAME,46,7,143,55,CBS_DROPDOWN | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_COMBO_FILE_TYPE,46,24,174,55,CBS_DROPDOWNLIST | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP + CONTROL "&Use automatic naming",IDC_CHECK_AUTOMATIC_NAMING, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,42,86,10 + CONTROL "Static",IDC_STATIC_CAPTURE_DIR,"Static", + SS_LEFTNOWORDWRAP | WS_BORDER | WS_GROUP,10,69,189,13, + WS_EX_CLIENTEDGE | WS_EX_STATICEDGE + PUSHBUTTON "...",IDC_BUTTON_CAPTURE_DIR,201,68,15,14 + LTEXT "File &name",IDC_STATIC_FILE_NAME,8,10,31,8 + LTEXT "&Type of file",IDC_STATIC_FILE_TYPE,8,27,36,8 + GROUPBOX "Capture Directory",IDC_STATIC_DIR,7,54,212,33 +END + +IDD_PROPPAGE_PREFERENCES DIALOG DISCARDABLE 0, 0, 226, 94 +STYLE WS_CHILD | WS_DISABLED | WS_CAPTION | WS_THICKFRAME +CAPTION "Preferences" +FONT 8, "MS Sans Serif" +BEGIN + GROUPBOX "Capture settings",IDC_STATIC_SETTINGS,7,7,212,48 + CONTROL "&Hide icon when capturing",IDC_CHECK_HIDE_ICON,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,19,21,97,10 + CONTROL "&Notify end of capture",IDC_CHECK_NOTIFY_END,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,19,35,82,10 +END + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "ScreenGrabber MFC Application\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "ScreenGrabber\0" + VALUE "LegalCopyright", "Copyright (C) 1997\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "ScreenGrabber.EXE\0" + VALUE "ProductName", "ScreenGrabber Application\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_PROPPAGE_ACTIVATION, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 219 + TOPMARGIN, 7 + BOTTOMMARGIN, 87 + END + + IDD_PROPPAGE_SOURCE, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 219 + TOPMARGIN, 7 + BOTTOMMARGIN, 87 + END + + IDD_PROPPAGE_DESTINATION, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 219 + TOPMARGIN, 7 + BOTTOMMARGIN, 87 + END + + IDD_PROPPAGE_IMAGE, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 219 + TOPMARGIN, 7 + BOTTOMMARGIN, 87 + END + + IDD_PROPPAGE_FILE, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 219 + TOPMARGIN, 7 + BOTTOMMARGIN, 87 + END + + IDD_PROPPAGE_PREFERENCES, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 219 + TOPMARGIN, 7 + BOTTOMMARGIN, 87 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_POPUPMENU MENU DISCARDABLE +BEGIN + POPUP "Popup" + BEGIN + MENUITEM "Open", ID_OPEN + MENUITEM "&Close", ID_CLOSE + MENUITEM SEPARATOR + MENUITEM "About ScreenGrabber...", ID_ABOUT + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_ABOUTBOX "&About ScreenGrabber..." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDR_MAINFRAME "ScreenGrabber" + ID_DESCRIPTION_FILE "ScreenGrabberInfo.rtf" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_APP_TITLE "ScreenGrabber" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#include "UTSampleAbout.rc" +#include "OXSpinCtrl.rc" // Spin ctrl resources +#include "OXHistoryCombo.rc" +#include "oxdirdlg.rc" +#include "OXBitmapButton.rc" + +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif +#include "res\ScreenGrabber.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +#endif + + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.vcproj b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.vcproj new file mode 100644 index 0000000..d3e3a38 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabber.vcproj @@ -0,0 +1,2291 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabberInfo.rtf b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/ScreenGrabberInfo.rtf new file mode 100644 index 0000000000000000000000000000000000000000..1afa0d20f86eb008cc85b8a15c78cecc8b17bb6a GIT binary patch literal 1451 zcmZ`(O>5gg5be3p|1h^eNsVlWq%^lUq~wqm>Ofl9%Sc*T+pKoQ?#fCq{_lOO4@XWK zFtRk?^WMztgbT%7u<=UdvM7@H44hsplAS252_e;ZNkrjWz$f+4{8cce_{zLdSw+gQp|4sfnhOA%G!=iU3-p(QggNl?B7LASU0zG^2+SW_@C1HZMkuU5VyxbGcl z>XcfDfok-rfH{+GTvXm&->&)r=!P2l$uI#Uu4|OSk>glt$y+)MQR*{#=K}n% iq6eqKu(Ex^aSGx#*aLa*XP6u;98SMT#^g9{AN~PU1Onp# literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/StdAfx.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/StdAfx.cpp new file mode 100644 index 0000000..c023b62 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/StdAfx.cpp @@ -0,0 +1,6 @@ +// stdafx.cpp : source file that includes just the standard includes +// ScreenGrabber.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/StdAfx.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/StdAfx.h new file mode 100644 index 0000000..d9ca5ab --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/StdAfx.h @@ -0,0 +1,31 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#if !defined(AFX_STDAFX_H__B53D38EA_8037_11D1_A3D5_0080C83F712F__INCLUDED_) +#define AFX_STDAFX_H__B53D38EA_8037_11D1_A3D5_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers + +#include // MFC core and standard components +#include // MFC extensions +#include // MFC OLE automation classes +#include +#include +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for Windows Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + +#include "OXAdvancedAssert.h" + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_STDAFX_H__B53D38EA_8037_11D1_A3D5_0080C83F712F__INCLUDED_) + +#include "HelpIDs.h" diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/WndTrackingHelper.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/WndTrackingHelper.cpp new file mode 100644 index 0000000..0913555 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/WndTrackingHelper.cpp @@ -0,0 +1,32 @@ +// WndTrackingHelper.cpp : implementation file +// + +#include "stdafx.h" +#include "ScreenGrabber.h" +#include "WndTrackingHelper.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CWndTrackingHelper + +CWndTrackingHelper::CWndTrackingHelper() +{ +} + +CWndTrackingHelper::~CWndTrackingHelper() +{ +} + +BEGIN_MESSAGE_MAP(CWndTrackingHelper, CWnd) + //{{AFX_MSG_MAP(CWndTrackingHelper) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/WndTrackingHelper.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/WndTrackingHelper.h new file mode 100644 index 0000000..57b4011 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/WndTrackingHelper.h @@ -0,0 +1,46 @@ +#if !defined(AFX_WNDTRACKINGHELPER_H__CA0DF6A2_87B8_11D1_B475_444553540000__INCLUDED_) +#define AFX_WNDTRACKINGHELPER_H__CA0DF6A2_87B8_11D1_B475_444553540000__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// WndTrackingHelper.h : header file +// + +///////////////////////////////////////////////////////////////////////////// +// CWndTrackingHelper window + +class CWndTrackingHelper : public CWnd +{ +// Construction +public: + CWndTrackingHelper(); + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CWndTrackingHelper) + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CWndTrackingHelper(); + + // Generated message map functions +protected: + //{{AFX_MSG(CWndTrackingHelper) + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_WNDTRACKINGHELPER_H__CA0DF6A2_87B8_11D1_B475_444553540000__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/res/ScreenGrabber.ico b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/res/ScreenGrabber.ico new file mode 100644 index 0000000000000000000000000000000000000000..77432215b9584adb3744c220652e036a5fd5f202 GIT binary patch literal 1078 zcma))J!{-R5Qb;9fmL!~sf;TN8DeuyM%Zy`ZXFv3u~-82zy(%LzUm{Qxe@SGUzO~b%52p5NV@M1*%Sv;*HO4$+{tm~T6 z26jCk1D{i4?P?6zEb`|?YFA_~ZLUUs^^%t(KR#p{+k%d&s?vx}mz-WHtXF52k?+(w z){o5DlJ|eicd9hJzvZlsROy~S@&U3g&--W3_U-q)K|OQwF2;us!}>V&fuvr4x&0LW zx(U|q{pa23-P4adH*K)yG%e`#PH+L0mNT&2wFQoI@NX1+3oOg~i!*7s0LRFdF2F}9 zSUIMdo||NMH8YO=1LTtB#a9l?cry~nm*aB}!@*anCoL@MO z_@xO8+y>k=8luFxjV}7pszH$8wkTWttd3}Jl!BL#*dmUzxF+}xv4`y12ki3)!lrvY zYI;g!Pczy3(DM`7pM2Qw-{$d z55-uioXAHv7C6DK@>PzLX?(p38Y0t8&`e-!U}GNW(()=rJ-ACJmcR0E2g5cV#V`y7 iY2j-va(FyT1nhk+%ouOryNTnb(Sq3+EiSRPY5oGpMlL7- literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/res/ScreenGrabber.rc2 b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/res/ScreenGrabber.rc2 new file mode 100644 index 0000000..81379f1 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/res/ScreenGrabber.rc2 @@ -0,0 +1,13 @@ +// +// SCREENGRABBER.RC2 - resources Microsoft Visual C++ does not edit directly +// + +#ifdef APSTUDIO_INVOKED + #error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// Add manually edited resources here... + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/resource.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/resource.h new file mode 100644 index 0000000..70f2fe0 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/resource.h @@ -0,0 +1,73 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by ScreenGrabber.rc +// +#define ID_MIN_INITIAL_DELAY 1 +#define ID_MIN_WIDTH 1 +#define ID_MIN_HEIGHT 1 +#define IDM_ABOUTBOX 0x0010 +#define ID_MAX_INITIAL_DELAY 60 +#define IDS_ABOUTBOX 101 +#define IDD_PROPPAGE_DESTINATION 102 +#define IDR_MAINFRAME 128 +#define ID_DESCRIPTION_FILE 129 +#define IDD_PROPPAGE_ACTIVATION 129 +#define IDD_PROPPAGE_SOURCE 130 +#define IDD_PROPPAGE_IMAGE 132 +#define IDD_PROPPAGE_FILE 133 +#define IDD_PROPPAGE_PREFERENCES 134 +#define IDR_POPUPMENU 134 +#define IDM_MINIMIZE 0x00f0 +#define SIZE_ERROR_BUF 255 +#define IDC_COMBO_HOT_KEY 1000 +#define IDC_EDIT_INITIAL_DELAY 1001 +#define IDC_SPIN_INITIAL_DELAY 1002 +#define IDC_STATIC_HOT_KEY 1004 +#define IDC_RADIO_CURRENT_WINDOW 1006 +#define IDC_RADIO_CLIENT_WINDOW 1007 +#define IDC_CHECK_FILE 1007 +#define IDC_RADIO_FULL_SCREEN 1008 +#define IDC_CHECK_RESIZE 1008 +#define IDC_CHECK_CLIPBOARD 1008 +#define IDC_RADIO_RECT_AREA 1009 +#define IDC_STATIC_WIDTH 1009 +#define IDC_STATIC_HEIGHT 1010 +#define IDC_EDIT_WIDTH 1011 +#define IDC_SPIN_WIDTH 1012 +#define IDC_EDIT_HEIGHT 1013 +#define IDC_SPIN_HEIGHT 1014 +#define IDC_CHECK_MAINTAIN_RATIO 1015 +#define IDC_STATIC_FILE_NAME 1016 +#define IDC_STATIC_FILE_TYPE 1017 +#define IDC_CHECK_AUTOMATIC_NAMING 1018 +#define IDC_COMBO_FILE_NAME 1019 +#define IDC_COMBO_FILE_TYPE 1020 +#define IDC_BUTTON_CAPTURE_DIR 1021 +#define IDC_STATIC_CAPTURE_DIR 1022 +#define IDC_CHECK_HIDE_ICON 1023 +#define IDC_CHECK_NOTIFY_END 1024 +#define IDC_CHECK_INITIAL_DELAY 1025 +#define IDC_STATIC_TIMING 1026 +#define IDC_STATIC_AREA 1027 +#define IDC_STATIC_DIR 1028 +#define IDC_STATIC_RESIZING 1029 +#define IDC_STATIC_SETTINGS 1030 +#define IDC_STATIC_DESTINATION 1031 +#define ID_TIMER_CAPTURE_DELAY 1234 +#define ID_HOTKEY 0x1234 +#define ID_MAX_WIDTH 16384 +#define ID_MAX_HEIGHT 16384 +#define ID_OPEN 32771 +#define ID_ABOUT 32772 +#define ID_CLOSE 32773 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 136 +#define _APS_NEXT_COMMAND_VALUE 32774 +#define _APS_NEXT_CONTROL_VALUE 1032 +#define _APS_NEXT_SYMED_VALUE 114 +#endif +#endif diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/screenshot.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/ScreenGrabber/screenshot.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b7b65ac50674804de25f06f28a43d6b93d93dc0d GIT binary patch literal 11982 zcmeI&%Sr-K9LMpAdWasORm&creY9v3p0Pz25F{C{kx-a-YU8F&i-?d4Dz&0A z3(}2I$aF!XNKMlhsDE=tnN_qEeup!|caBFLhRPG3&2mw>GLy#=>}`fW3)`aQf$`+Kj60B^+-Yu#jc zJ6N=J-RXGqs@DI!ipAsuYpOw~gQ|8Bzr?e{F`K;8>5f`7d=Lai$8!G?+ literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/ChildFrm.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/ChildFrm.cpp new file mode 100644 index 0000000..ebac2c9 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/ChildFrm.cpp @@ -0,0 +1,70 @@ +// ChildFrm.cpp : implementation of the CChildFrame class +// + +#include "stdafx.h" +#include "SkinsDemo.h" + +#include "ChildFrm.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame + +IMPLEMENT_DYNCREATE(CChildFrame, CMDIChildWnd) + +BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWnd) + //{{AFX_MSG_MAP(CChildFrame) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame construction/destruction + +CChildFrame::CChildFrame() +{ + // TODO: add member initialization code here + +} + +CChildFrame::~CChildFrame() +{ +} + +BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs) +{ + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + if( !CMDIChildWnd::PreCreateWindow(cs) ) + return FALSE; + + return TRUE; +} + + + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame diagnostics + +#ifdef _DEBUG +void CChildFrame::AssertValid() const +{ + CMDIChildWnd::AssertValid(); +} + +void CChildFrame::Dump(CDumpContext& dc) const +{ + CMDIChildWnd::Dump(dc); +} + +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame message handlers diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/ChildFrm.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/ChildFrm.h new file mode 100644 index 0000000..9b1ca0a --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/ChildFrm.h @@ -0,0 +1,53 @@ +// ChildFrm.h : interface of the CChildFrame class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_CHILDFRM_H__AAB91F88_6F1B_4F8D_BF6E_95877D0227B9__INCLUDED_) +#define AFX_CHILDFRM_H__AAB91F88_6F1B_4F8D_BF6E_95877D0227B9__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + + +class CChildFrame : public CMDIChildWnd +{ + DECLARE_DYNCREATE(CChildFrame) +public: + CChildFrame(); + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CChildFrame) + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CChildFrame(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +// Generated message map functions +protected: + //{{AFX_MSG(CChildFrame) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_CHILDFRM_H__AAB91F88_6F1B_4F8D_BF6E_95877D0227B9__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/FoldersBar.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/FoldersBar.cpp new file mode 100644 index 0000000..2cdc629 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/FoldersBar.cpp @@ -0,0 +1,66 @@ +// FoldersBar.cpp : implementation file +// + +#include "stdafx.h" +#include "skinsdemo.h" +#include "FoldersBar.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +const UINT IDC_FOLDERTREE = 1000; + +///////////////////////////////////////////////////////////////////////////// +// CFoldersBar + +CFoldersBar::CFoldersBar() +{ +} + +CFoldersBar::~CFoldersBar() +{ +} + + +BEGIN_MESSAGE_MAP(CFoldersBar, COXSizeControlBar) + //{{AFX_MSG_MAP(CFoldersBar) + ON_WM_CREATE() + ON_WM_SIZE() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + + +///////////////////////////////////////////////////////////////////////////// +// CFoldersBar message handlers + +int CFoldersBar::OnCreate(LPCREATESTRUCT lpCreateStruct) +{ + if (COXSizeControlBar::OnCreate(lpCreateStruct) == -1) + return -1; + + // TODO: Add your specialized creation code here + SetClientBorder(TRUE); + if (!m_FolderTree.Create(WS_VISIBLE | WS_CHILD | TVS_HASLINES | TVS_LINESATROOT | + TVS_HASBUTTONS | TVS_EDITLABELS | TVS_SHOWSELALWAYS, CRect(0,0,0,0), this, + IDC_FOLDERTREE)) + { + return -1; + } + + m_FolderTree.InitializeTree(); + + return 0; +} + +void CFoldersBar::OnSize(UINT nType, int cx, int cy) +{ + COXSizeControlBar::OnSize(nType, cx, cy); + + // TODO: Add your message handler code here + CRect rectClient; + GetClientRect(rectClient); + m_FolderTree.MoveWindow(rectClient); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/FoldersBar.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/FoldersBar.h new file mode 100644 index 0000000..3e026ab --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/FoldersBar.h @@ -0,0 +1,52 @@ +#if !defined(AFX_FOLDERSBAR_H__5D073941_54B9_4749_A865_7935F422220D__INCLUDED_) +#define AFX_FOLDERSBAR_H__5D073941_54B9_4749_A865_7935F422220D__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// FoldersBar.h : header file +// + +#include "OXSizeCtrlBar.h" +#include "OXShellFolderTree.h" + +///////////////////////////////////////////////////////////////////////////// +// CFoldersBar window + +class CFoldersBar : public COXSizeControlBar +{ +// Construction +public: + CFoldersBar(); + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CFoldersBar) + //}}AFX_VIRTUAL + +// Implementation +public: + COXShellFolderTree m_FolderTree; + virtual ~CFoldersBar(); + + // Generated message map functions +protected: + //{{AFX_MSG(CFoldersBar) + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnSize(UINT nType, int cx, int cy); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_FOLDERSBAR_H__5D073941_54B9_4749_A865_7935F422220D__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/MainFrm.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/MainFrm.cpp new file mode 100644 index 0000000..e38b51b --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/MainFrm.cpp @@ -0,0 +1,409 @@ +// MainFrm.cpp : implementation of the CMainFrame class +// + +#include "stdafx.h" +#include "SkinsDemo.h" + +#include "MainFrm.h" +#include "OXWorkspaceState.h" +#include "OXChildFrameState.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame + +IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWnd) + +BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd) + //{{AFX_MSG_MAP(CMainFrame) + ON_WM_CREATE() + ON_COMMAND(ID_CHECKED, OnChecked) + ON_UPDATE_COMMAND_UI(ID_CHECKED, OnUpdateChecked) + ON_COMMAND(ID_MAIL, OnMail) + ON_COMMAND(ID_FILE_POPUP_ITEM1, OnFilePopupItem1) + ON_WM_CLOSE() + ON_COMMAND(ID_VIEW_FOLDERS, OnViewFolders) + ON_UPDATE_COMMAND_UI(ID_VIEW_FOLDERS, OnUpdateViewFolders) + ON_COMMAND(ID_VIEW_PROPERTIES, OnViewProperties) + ON_UPDATE_COMMAND_UI(ID_VIEW_PROPERTIES, OnUpdateViewProperties) + ON_COMMAND(ID_VIEW_WORKSPACE, OnViewWorkspace) + ON_UPDATE_COMMAND_UI(ID_VIEW_WORKSPACE, OnUpdateViewWorkspace) + //}}AFX_MSG_MAP + ON_COMMAND_RANGE(ID_BUTTON32773, ID_BUTTON32781, OnToolbar2) + ON_UPDATE_COMMAND_UI_RANGE(ID_BUTTON32773, ID_BUTTON32781, OnUpdateToolbar2) + ON_NOTIFY(TBN_DROPDOWN, AFX_IDW_TOOLBAR, OnDropDown) + ON_CBN_SELCHANGE(ID_CB_COMBO, OnSelChangeCombo) +END_MESSAGE_MAP() + +static UINT indicators[] = +{ + ID_SEPARATOR, // status line indicator + ID_INDICATOR_CAPS, + ID_INDICATOR_NUM, + ID_INDICATOR_SCRL, +}; + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame construction/destruction + +// STEP 3 - Call the constructor of COXMenuBarFrame and +// pass CBRS_ALIGN_ANY for the first parameter and +// RUNTIME_CLASS(COXSizableMiniDockFrameWnd) for the second parameter +CMainFrame::CMainFrame() : + COXMenuBarFrame(CBRS_ALIGN_ANY, + RUNTIME_CLASS(COXSizableMiniDockFrameWnd)) +{ + // TODO: add member initialization code here + m_bChecked = FALSE; +} + +CMainFrame::~CMainFrame() +{ +} + +int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) +{ + if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1) + return -1; + + // Create and initialize the main toolbar + if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP + | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC, CRect(1, 1, 1, 1), AFX_IDW_TOOLBAR) || + !m_wndToolBar.LoadToolBar(IDR_TOOLBAR)) + + { + TRACE0("Failed to create toolbar\n"); + return -1; // fail to create + } + InitToolBar(); + + // Create and initialize the second toolbar + if (!m_wndToolBar2.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP + | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC, CRect(1, 1, 1, 1), 3344554) || + !m_wndToolBar2.LoadToolBar(IDR_TOOLBAR2)) + { + TRACE0("Failed to create toolbar\n"); + return -1; // fail to create + } + InitToolBar2(); + + // Create the status bar + if (!m_wndStatusBar.Create(this) || !m_wndStatusBar.SetIndicators(indicators, + sizeof(indicators)/sizeof(UINT))) + { + TRACE0("Failed to create status bar\n"); + return -1; // fail to create + } + + // Create the workspace bar + if (!m_WorkspaceBar.Create(this, _T("Workspace"), IDR_WORKSPACEBAR, + WS_CHILD | WS_VISIBLE | CBRS_BOTTOM | CBRS_SIZE_DYNAMIC, CRect(0, 0, 150, 200))) + { + TRACE(_T("CMainFrame::OnCreate: failed to create the workspace bar.\n")); + return -1; + } + + // Create the folders bar + if (!m_FoldersBar.Create(this, _T("Folders"), IDR_FOLDERSBAR, + WS_CHILD | WS_VISIBLE | CBRS_BOTTOM | CBRS_SIZE_DYNAMIC,CRect(0, 0, 150, 200))) + { + TRACE(_T("CMainFrame::OnCreate: failed to create the folders bar.\n")); + return -1; + } + + // Create the properties bar + if (!m_PropertiesBar.Create(this, _T("Properties"), IDR_PROPERTIESBAR, + WS_CHILD | WS_VISIBLE | CBRS_BOTTOM | CBRS_SIZE_DYNAMIC, CRect(0, 0, 220, 200))) + { + TRACE(_T("CMainFrame::OnCreate: failed to create the properties bar.\n")); + return -1; + } + + // Enable docking and dock all control bars + m_WorkspaceBar.EnableDocking(CBRS_ALIGN_ANY); + m_FoldersBar.EnableDocking(CBRS_ALIGN_ANY); + m_PropertiesBar.EnableDocking(CBRS_ALIGN_ANY); + m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); + m_wndToolBar2.EnableDocking(CBRS_ALIGN_ANY); + EnableDocking(CBRS_ALIGN_ANY); + + DockControlBar(&m_wndToolBar); + DockControlBar(&m_wndToolBar2); + DockControlBar(&m_WorkspaceBar, AFX_IDW_DOCKBAR_LEFT); + DockControlBar(&m_FoldersBar, AFX_IDW_DOCKBAR_RIGHT); + DockControlBar(&m_PropertiesBar, AFX_IDW_DOCKBAR_RIGHT); + + // Add the following 2 lines to tab all the windows docked to the right dock bar + // and have the properties bar as the selected tab. + COXSizeDockBar* pRightDockBar = (COXSizeDockBar*) m_PropertiesBar.m_pDockBar; + pRightDockBar->TabAllDockedControlBars(&m_PropertiesBar); + + // STEP 5 (Cont'd) - Call COXBitmapMenuOrganizer::AttachFrameWnd(...) and then + // COXBitmapMenuOrganizer::AttachFrameWnd(...) + m_BMO.AttachFrameWnd(this); + m_BMO.AutoSetMenuImage(); + + // STEP 6 (Cont'd) - Call COXTabClientWnd::Attach(...) + m_MTIClientWnd.Attach(this); + + // Enable the snapping and tear-off befavior for toolbars, + // menu bars and docking windows + EnableSnapping(); + + // Uncomment the following lines if you don't want the user to be able to move + // the menubar and the toolbars + GetMenuBar().EnableFloating(FALSE); + // m_wndToolBar.EnableFloating(FALSE); + // m_wndToolBar2.EnableFloating(FALSE); + + return 0; +} + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame diagnostics + +#ifdef _DEBUG +void CMainFrame::AssertValid() const +{ + CMDIFrameWnd::AssertValid(); +} + +void CMainFrame::Dump(CDumpContext& dc) const +{ + CMDIFrameWnd::Dump(dc); +} + +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame message handlers + + +void CMainFrame::OnChecked() +{ + m_bChecked = !m_bChecked; +} + + +void CMainFrame::OnUpdateChecked(CCmdUI* pCmdUI) +{ + pCmdUI->SetCheck(m_bChecked); +} + + +void CMainFrame::OnToolbar2(UINT /*nID*/) +{ + +} + +void CMainFrame::OnUpdateToolbar2(CCmdUI* /*pCmdUI*/) +{ + +} + +void CMainFrame::OnMail() +{ + // TODO: Add your command handler code here + +} + +void CMainFrame::OnDropDown(NMHDR* pNotifyStruct, LRESULT* pResult) +{ + // This function handles the dropdown menus from the toolbar + NMTOOLBAR* pNMToolBar = (NMTOOLBAR*)pNotifyStruct; + CRect rect; + + // Translate the current toolbar item rectangle into screen coordinates + // so that we'll know where to pop up the menu + m_wndToolBar.GetItemRect( + m_wndToolBar.CommandToIndex(pNMToolBar->iItem),&rect); + rect.top=rect.bottom; + ::ClientToScreen(pNMToolBar->hdr.hwndFrom,&rect.TopLeft()); + + COXBitmapMenu menuPopup; + VERIFY(menuPopup.CreatePopupMenu()); + + switch(pNMToolBar->iItem) + { + case ID_MAIL: + { + menuPopup.AppendMenu(MF_STRING,ID_MAIL,_T("Read Mail")); + menuPopup.AppendMenu(MF_STRING,ID_MAIL,_T("New Message...")); + menuPopup.AppendMenu(MF_STRING,ID_MAIL,_T("Send a Link...")); + menuPopup.AppendMenu(MF_STRING,ID_MAIL,_T("Send Page...")); + menuPopup.AppendMenu(MF_SEPARATOR); + menuPopup.AppendMenu(MF_STRING,ID_MAIL,_T("Read News")); + break; + } + + } + + menuPopup.TrackPopupMenu(&m_wndToolBar, AfxGetMainWnd()); + + *pResult = TBDDRET_DEFAULT; +} +void CMainFrame::OnFilePopupItem1() +{ + // TODO: Add your command handler code here + +} + +void CMainFrame::InitToolBar() +{ + m_wndToolBar.SetList(); // the text will appear to the right of the icon (Outlook style) + + // Make all the buttons as wide as their text needs to be + for (int i = 0; i < m_wndToolBar.GetToolBarCtrl().GetButtonCount(); i++) + { + if (!(m_wndToolBar.GetButtonStyle(i) & TBSTYLE_SEP)) + m_wndToolBar.SetButtonStyle(i, m_wndToolBar.GetButtonStyle(i) | TBSTYLE_AUTOSIZE); + } + + m_wndToolBar.SetButtonTextFromID();//COXCoolToolBar::TTID_PLAIN); + m_wndToolBar.SetButtonsMinMaxWidth(0, 180); + m_wndToolBar.UpdateSizes(); + + // Set the drop down style + m_wndToolBar.SetDropDownArrow(TRUE); + int iIndex = m_wndToolBar.CommandToIndex(ID_MAIL); + m_wndToolBar.SetButtonStyle(iIndex, + m_wndToolBar.GetButtonStyle(iIndex) | TBSTYLE_DROPDOWN | TBBS_CHECKBOX); + + // Insert a separator + TBBUTTON tbb; + ::memset(&tbb, 0, sizeof(tbb)); + tbb.fsStyle = TBSTYLE_SEP; + CToolBarCtrl& ctrl = m_wndToolBar.GetToolBarCtrl(); + ctrl.InsertButton(ctrl.GetButtonCount(), &tbb); + + // Create the custom buttons objects + // + static CFont font; + if(font.m_hObject == NULL) + font.CreatePointFont(-80,_T("MS Sans Serif")); + + // Add the skinned combo box + int iCombo = COXCoolToolBar::AddCustomButton(&m_Combo, ID_CB_COMBO, 100, 100); + m_wndToolBar.InsertComboBox(m_wndToolBar.GetToolBarCtrl().GetButtonCount(), iCombo); + m_Combo.SetFont(&font); + + m_Combo.AddString(_T("One")); + m_Combo.SetItemData(0, 500); + m_Combo.AddString(_T("Two")); + m_Combo.SetItemData(1, 1000); + m_Combo.AddString(_T("Three")); + m_Combo.SetItemData(2, 1500); + m_Combo.AddString(_T("Four")); + m_Combo.SetItemData(3, 2000); + m_Combo.AddString(_T("Five")); + m_Combo.SetItemData(4, 2500); + + // Add the skinned edit control + int iEdit = COXCoolToolBar::AddCustomButton(&m_Edit, ID_CB_EDIT, 100, 18); + m_wndToolBar.InsertEditBox(m_wndToolBar.GetToolBarCtrl().GetButtonCount(), iEdit); + m_Edit.SetFont(&font); + + m_wndToolBar.UpdateSizes(); + + m_wndToolBar.SetFlat(TRUE); + m_wndToolBar.SetGripper(TRUE); + m_wndToolBar.SetWindowText(_T("Standard")); +} + +void CMainFrame::InitToolBar2() +{ + // Set the normal image list + m_ilToolBar2Normal.Create(24, 22, ILC_COLOR8 | ILC_MASK, 9, 0); + CBitmap bmpImage; + bmpImage.LoadBitmap(IDB_TOOLBAR2_NORMAL); + m_ilToolBar2Normal.Add(&bmpImage, RGB(255, 0, 0)); + bmpImage.DeleteObject(); + m_wndToolBar2.GetToolBarCtrl().SetImageList(&m_ilToolBar2Normal); + + // Set the hot image list + m_ilToolBar2Hot.Create(24, 22, ILC_COLOR8 | ILC_MASK, 9, 0); + bmpImage.LoadBitmap(IDB_TOOLBAR2_HOT); + m_ilToolBar2Hot.Add(&bmpImage, RGB(0, 0, 255)); + bmpImage.DeleteObject(); + m_wndToolBar2.GetToolBarCtrl().SetHotImageList(&m_ilToolBar2Hot); + + // Set the disabled image list + m_ilToolBar2Disabled.Create(24, 22, ILC_COLOR8 | ILC_MASK, 9, 0); + bmpImage.LoadBitmap(IDB_TOOLBAR2_DISABLED); + m_ilToolBar2Disabled.Add(&bmpImage, RGB(255, 0, 0)); + bmpImage.DeleteObject(); + m_wndToolBar2.GetToolBarCtrl().SetDisabledImageList(&m_ilToolBar2Disabled); + + // Set the toolbar caption + m_wndToolBar2.SetWindowText(_T("Navigation")); +} + +void CMainFrame::OnSelChangeCombo() +{ + // Beep when the combo box selection changes + int iFrequency = (int) m_Combo.GetItemData(m_Combo.GetCurSel()); + Beep(iFrequency, 100); +} + +void CMainFrame::OnClose() +{ + // TODO: Add your message handler code here and/or call default + + CMDIFrameWnd::OnClose(); +} + + +BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) +{ + // TODO: Add your specialized code here and/or call the base class + + return CMDIFrameWnd::PreCreateWindow(cs); +} + +void CMainFrame::OnViewFolders() +{ + // Toggle the folders window + m_FoldersBar.ShowBar(!m_FoldersBar.IsShown()); +} + +void CMainFrame::OnUpdateViewFolders(CCmdUI* pCmdUI) +{ + pCmdUI->SetCheck(m_FoldersBar.IsShown()); +} + +void CMainFrame::OnViewProperties() +{ + // Toggle the properties window + m_PropertiesBar.ShowBar(!m_PropertiesBar.IsShown()); +} + +void CMainFrame::OnUpdateViewProperties(CCmdUI* pCmdUI) +{ + pCmdUI->SetCheck(m_PropertiesBar.IsShown()); +} + +void CMainFrame::OnViewWorkspace() +{ + // Toggle the workspace window + m_WorkspaceBar.ShowBar(!m_WorkspaceBar.IsShown()); +} + +void CMainFrame::OnUpdateViewWorkspace(CCmdUI* pCmdUI) +{ + pCmdUI->SetCheck(m_WorkspaceBar.IsShown()); +} + +BOOL CMainFrame::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo) +{ + if (COXBitmapMenu::HandleMDICommandMessage(nID, nCode, pExtra, pHandlerInfo)) + return TRUE; + + return CMDIFrameWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo); +} + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/MainFrm.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/MainFrm.h new file mode 100644 index 0000000..491c2a6 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/MainFrm.h @@ -0,0 +1,117 @@ +// MainFrm.h : interface of the CMainFrame class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_MAINFRM_H__9EA6FFD0_CCDE_464F_A19C_497208BF4ECC__INCLUDED_) +#define AFX_MAINFRM_H__9EA6FFD0_CCDE_464F_A19C_497208BF4ECC__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#include "OXCoolToolbar.h" +#include "OXFrameWndDock.h" +#include "OXMenuBar.h" +#include "OXSizeDockBar.h" + +#include "OXSkinnedComboBox.h" +#include "OXBitmapMenuOrganizer.h" +#include "WorkspaceBar.h" +#include "FoldersBar.h" +#include "OXTabClientWnd.h" +#include "XStatus4.h" +#include "PropertiesBar.h" + +// STEP 2 - Derive you main frame window from COXMenuBarFrame. +class CMainFrame : public COXMenuBarFrame +{ + DECLARE_DYNAMIC(CMainFrame) +public: + CMainFrame(); + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CMainFrame) + public: + virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo); + protected: + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CMainFrame(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + + +protected: // control bar embedded members + + CWorkspaceBar m_WorkspaceBar; + CFoldersBar m_FoldersBar; + CPropertiesBar m_PropertiesBar; + + // STEP 4 - Derive or instantiate your toolbars from COXCoolToolBar instead of CToolBar. + COXCoolToolBar m_wndToolBar; + COXCoolToolBar m_wndToolBar2; + + // STEP 5 - Add an instance of COXBitmapMenuOrganizer to your main frame class. This will + // enable your menus to show bitmaps. + COXBitmapMenuOrganizer m_BMO; + + // STEP 6 - Add an instance of COXTabClientWnd to your main frame class. This will + // enable the MDI tabs. + COXTabClientWnd m_MTIClientWnd; + + // STEP 7 - Derive or instantiate your status bar from COXStatusBar instead of CStatusBar. + COXStatusBar m_wndStatusBar; + +// Generated message map functions +protected: + //{{AFX_MSG(CMainFrame) + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnChecked(); + afx_msg void OnUpdateChecked(CCmdUI* pCmdUI); + afx_msg void OnMail(); + afx_msg void OnFilePopupItem1(); + afx_msg void OnClose(); + afx_msg void OnViewFolders(); + afx_msg void OnUpdateViewFolders(CCmdUI* pCmdUI); + afx_msg void OnViewProperties(); + afx_msg void OnUpdateViewProperties(CCmdUI* pCmdUI); + afx_msg void OnViewWorkspace(); + afx_msg void OnUpdateViewWorkspace(CCmdUI* pCmdUI); + //}}AFX_MSG + void OnToolbar2(UINT nID); + void OnUpdateToolbar2(CCmdUI* pCmdUI); + void OnDropDown(NMHDR* pNotifyStruct, LRESULT* pResult); + void OnSelChangeCombo(); + DECLARE_MESSAGE_MAP() + +private: + void InitToolBar2(); + void InitToolBar(); + BOOL m_bChecked; + CImageList m_ilToolBar2Normal; + CImageList m_ilToolBar2Hot; + CImageList m_ilToolBar2Disabled; + + // Custom buttons for the toolbar + COXCustomTBComboBox m_Combo; + COXCustomTBButtonWnd< COXSkinnedWnd > m_Edit; +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_MAINFRM_H__9EA6FFD0_CCDE_464F_A19C_497208BF4ECC__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/PropertiesBar.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/PropertiesBar.cpp new file mode 100644 index 0000000..37b57c8 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/PropertiesBar.cpp @@ -0,0 +1,231 @@ +// PropertiesBar.cpp : implementation file +// + +#include "stdafx.h" +#include "skinsdemo.h" +#include "PropertiesBar.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CPropertiesBar + +const UINT IDC_PROPERTIES = 1001; + +CPropertiesBar::CPropertiesBar() +{ +} + +CPropertiesBar::~CPropertiesBar() +{ +} + + +BEGIN_MESSAGE_MAP(CPropertiesBar, COXSizeControlBar) + //{{AFX_MSG_MAP(CPropertiesBar) + ON_WM_CREATE() + ON_WM_SIZE() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + + +///////////////////////////////////////////////////////////////////////////// +// CPropertiesBar message handlers + +int CPropertiesBar::OnCreate(LPCREATESTRUCT lpCreateStruct) +{ + if (COXSizeControlBar::OnCreate(lpCreateStruct) == -1) + return -1; + + // TODO: Add your specialized creation code here + if (!m_wndProperties.Create(NULL, NULL, WS_VISIBLE | WS_CHILD, CRect(0,0,0,0), this/*, + IDC_PROPERTIES*/)) + { + return -1; + } + + // Uncomment the next line if you want to hide the combo box + // m_wndProperties.ShowCombo(FALSE); + + // Put some items in the combo box + for (int i = 0; i < 10; i++) + { + COMBOBOXEXITEM cbi; + cbi.iItem = i; + cbi.mask = CBEIF_TEXT; + CString strText; + strText.Format(_T("Item %d"), i); + cbi.pszText = (TCHAR*)(LPCTSTR) strText; + m_wndProperties.GetComboBoxEx().InsertItem(&cbi); + } + + // Uncomment the next line if you want to hide the toolbar + // m_wndProperties.ShowToolBar(FALSE); + + InitProperties(); + + return 0; +} + +void CPropertiesBar::OnSize(UINT nType, int cx, int cy) +{ + COXSizeControlBar::OnSize(nType, cx, cy); + + // TODO: Add your message handler code here + CRect rectClient; + GetClientRect(rectClient); + m_wndProperties.MoveWindow(rectClient); +} + +void CPropertiesBar::InitProperties() +{ + ASSERT(::IsWindow(m_hWnd)); // this window must be already created + + HPROPERTY hProperty; + + // Text + hProperty= m_wndProperties.InsertProperty( + _T("Text"), // property name + _T(""), // initail value + _T("Demonstrates the use of a text field."), // property description + _T("Data"), // category + &m_textEditor); // editor window + + // Read-only field (no editor) + hProperty= m_wndProperties.InsertProperty( + _T("Serial Number"), // property name + _T("K67-FR45-5"), // initail value + _T("Demonstrates the use of a read-only field."), // property description + _T("Data")); // category + + // List of items + CStringArray items; + items.Add(_T("New York")); + items.Add(_T("Chicago")); + items.Add(_T("London")); + items.Add(_T("Paris")); + items.Add(_T("Toronto")); + items.Add(_T("Berlin")); + items.Add(_T("Rome")); + items.Add(_T("Los Angeles")); + + m_listEditor.SetListItems(&items, &m_wndProperties); // set the list of items + hProperty= m_wndProperties.InsertProperty( + _T("City"), // property name + _T(""), // initail value + _T("Demonstrates the use of a list field."), // property description + _T("Data"), // category + &m_listEditor); // editor window + + // Number + hProperty= m_wndProperties.InsertProperty( + _T("Number"), // property name + _T("0.00"), // initail value + _T("Demonstrates the use of a numeric field."), // property description + _T("Data"), // category + &m_numericEditor); // editor window + + // Phone number (using COXMaskedEdit) + m_phoneNumberEditor.SetMask(_T("(###) ###-#### Ex.###")); + hProperty= m_wndProperties.InsertProperty( + _T("Telephone"), // property name + _T("( ) - Ex."), // initail value + _T("Demonstrates the use of a masked field."), // property description + _T("Data"), // category + &m_phoneNumberEditor); // editor window + + // Currency + hProperty= m_wndProperties.InsertProperty( + _T("Currency"), // property name + _T("$0.00"), // initail value + _T("Demonstrates the use of a currency field."), // property description + _T("Data"), // category + &m_currencyEditor); // editor window + + // IP Address + hProperty= m_wndProperties.InsertProperty( + _T("IP Address"), // property name + _T(""), // initail value + _T("Demonstrates the use of a ip address field."), // property description + _T("Data"), // category + &m_ipAddressEditor); // editor window + + // Date (use "dd" to specify the day, "mm" to specify the month + // and either "yy" or "yyyy" to specify the year) + m_dateEditor.SetDateFormat(_T("dd/mm/yyyy")); + hProperty= m_wndProperties.InsertProperty( + _T("Date"), // property name + _T(""), // initail value + _T("Demonstrates the use of a date field."), // property description + _T("Data"), // category + &m_dateEditor); // editor window + + // Time + hProperty= m_wndProperties.InsertProperty( + _T("Time"), // property name + _T("1.00 s"), // initail value + _T("Demonstrates the use of a time field."), // property description + _T("Physical Fields"), // category + &m_timeEditor); // editor window + + // Angle + hProperty = m_wndProperties.InsertProperty( + _T("Angle"), // property name + _T("0.00 °"), // initail value + _T("Demonstrates the use of an angle field."), // property description + _T("Physical Fields"), // category + &m_angleEditor); // editor window + + // Length + hProperty = m_wndProperties.InsertProperty( + _T("Length"), // property name + _T("0.00 m"), // initail value + _T("Demonstrates the use of a length field."), // property description + _T("Physical Fields"), // category + &m_lengthEditor); // editor window + + // Temperature + hProperty = m_wndProperties.InsertProperty( + _T("Temperature"), // property name + _T("0.00 °C"), // initail value + _T("Demonstrates the use of a temparature field."), // property description + _T("Physical Fields"), // category + &m_temperatureEditor); // editor window + + // Color + hProperty = m_wndProperties.InsertProperty( + _T("Color"), // property name + _T("None"), // initail value + _T("Demonstrates the use of a color field."), // property description + _T("Miscellaneous"), // category + &m_colorEditor); // editor window + + // Calculator + hProperty = m_wndProperties.InsertProperty( + _T("Calculator"), // property name + _T("0.00"), // initail value + _T("Demonstrates the use of a calculator field."), // property description + _T("Miscellaneous"), // category + &m_calculatorEditor); // editor window + + // Directory + hProperty = m_wndProperties.InsertProperty( + _T("Directory"), // property name + _T(""), // initail value + _T("Demonstrates the use of a directory field."), // property description + _T("Miscellaneous"), // category + &m_directoryEditor); // editor window + + // Filename + hProperty = m_wndProperties.InsertProperty( + _T("Filename"), // property name + _T(""), // initail value + _T("Demonstrates the use of a filename field."), // property description + _T("Miscellaneous"), // category + &m_filenameEditor); // editor window +} + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/PropertiesBar.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/PropertiesBar.h new file mode 100644 index 0000000..a14763c --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/PropertiesBar.h @@ -0,0 +1,79 @@ +#if !defined(AFX_PROPERTIESBAR_H__BE06B578_EC88_45B6_AC46_27A1F161A732__INCLUDED_) +#define AFX_PROPERTIESBAR_H__BE06B578_EC88_45B6_AC46_27A1F161A732__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// PropertiesBar.h : header file +// + +///////////////////////////////////////////////////////////////////////////// +// CPropertiesBar window + +#include "OXSizeCtrlBar.h" +#include "OXPropertiesWnd.h" // Added by ClassView + +#include "OXEdit.h" +#include "OXPhysicalEditEx.h" +#include "OXCalculatorEdit.h" +#include "OXBrowseDirEdit.h" +#include "OXListEdit.h" +#include "OXCalendarEdit.h" +#include "OXIPEdit.h" + +class CPropertiesBar : public COXSizeControlBar +{ +// Construction +public: + CPropertiesBar(); + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CPropertiesBar) + //}}AFX_VIRTUAL + +// Implementation +public: + COXPropertiesWnd m_wndProperties; + virtual ~CPropertiesBar(); + + // Generated message map functions +protected: + //{{AFX_MSG(CPropertiesBar) + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnSize(UINT nType, int cx, int cy); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +private: + void InitProperties(); + + // Editor instances + COXEdit m_textEditor; + COXListEdit m_listEditor; + COXNumericEdit m_numericEditor; + COXMaskedEdit m_phoneNumberEditor; + COXCurrencyEdit m_currencyEditor; + COXIPEdit m_ipAddressEditor; + COXCalendarEdit m_dateEditor; + COXTimeEdit m_timeEditor; + COXAngleEdit m_angleEditor; + COXLengthEdit m_lengthEditor; + COXTempEdit m_temperatureEditor; + COXBrowseColorEdit m_colorEditor; + COXCalculatorEdit m_calculatorEditor; + COXBrowseDirEdit m_directoryEditor; + COXBrowseFileEdit m_filenameEditor; +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_PROPERTIESBAR_H__BE06B578_EC88_45B6_AC46_27A1F161A732__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/ReadMe.txt b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/ReadMe.txt new file mode 100644 index 0000000..adb981e --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/ReadMe.txt @@ -0,0 +1,117 @@ +======================================================================== + MICROSOFT FOUNDATION CLASS LIBRARY : SkinsDemo +======================================================================== + + +AppWizard has created this SkinsDemo application for you. This application +not only demonstrates the basics of using the Microsoft Foundation classes +but is also a starting point for writing your application. + +This file contains a summary of what you will find in each of the files that +make up your SkinsDemo application. + +SkinsDemo.dsp + This file (the project file) contains information at the project level and + is used to build a single project or subproject. Other users can share the + project (.dsp) file, but they should export the makefiles locally. + +SkinsDemo.h + This is the main header file for the application. It includes other + project specific headers (including Resource.h) and declares the + CSkinsDemoApp application class. + +SkinsDemo.cpp + This is the main application source file that contains the application + class CSkinsDemoApp. + +SkinsDemo.rc + This is a listing of all of the Microsoft Windows resources that the + program uses. It includes the icons, bitmaps, and cursors that are stored + in the RES subdirectory. This file can be directly edited in Microsoft + Visual C++. + +SkinsDemo.clw + This file contains information used by ClassWizard to edit existing + classes or add new classes. ClassWizard also uses this file to store + information needed to create and edit message maps and dialog data + maps and to create prototype member functions. + +res\SkinsDemo.ico + This is an icon file, which is used as the application's icon. This + icon is included by the main resource file SkinsDemo.rc. + +res\SkinsDemo.rc2 + This file contains resources that are not edited by Microsoft + Visual C++. You should place all resources not editable by + the resource editor in this file. + + + +///////////////////////////////////////////////////////////////////////////// + +For the main frame window: + +MainFrm.h, MainFrm.cpp + These files contain the frame class CMainFrame, which is derived from + CMDIFrameWnd and controls all MDI frame features. + +res\Toolbar.bmp + This bitmap file is used to create tiled images for the toolbar. + The initial toolbar and status bar are constructed in the CMainFrame + class. Edit this toolbar bitmap using the resource editor, and + update the IDR_MAINFRAME TOOLBAR array in SkinsDemo.rc to add + toolbar buttons. +///////////////////////////////////////////////////////////////////////////// + +For the child frame window: + +ChildFrm.h, ChildFrm.cpp + These files define and implement the CChildFrame class, which + supports the child windows in an MDI application. + +///////////////////////////////////////////////////////////////////////////// + +AppWizard creates one document type and one view: + +SkinsDemoDoc.h, SkinsDemoDoc.cpp - the document + These files contain your CSkinsDemoDoc class. Edit these files to + add your special document data and to implement file saving and loading + (via CSkinsDemoDoc::Serialize). + +SkinsDemoView.h, SkinsDemoView.cpp - the view of the document + These files contain your CSkinsDemoView class. + CSkinsDemoView objects are used to view CSkinsDemoDoc objects. + +res\SkinsDemoDoc.ico + This is an icon file, which is used as the icon for MDI child windows + for the CSkinsDemoDoc class. This icon is included by the main + resource file SkinsDemo.rc. + + +///////////////////////////////////////////////////////////////////////////// +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named SkinsDemo.pch and a precompiled types file named StdAfx.obj. + +Resource.h + This is the standard header file, which defines new resource IDs. + Microsoft Visual C++ reads and updates this file. + +///////////////////////////////////////////////////////////////////////////// +Other notes: + +AppWizard uses "TODO:" to indicate parts of the source code you +should add to or customize. + +If your application uses MFC in a shared DLL, and your application is +in a language other than the operating system's current language, you +will need to copy the corresponding localized resources MFC42XXX.DLL +from the Microsoft Visual C++ CD-ROM onto the system or system32 directory, +and rename it to be MFCLOC.DLL. ("XXX" stands for the language abbreviation. +For example, MFC42DEU.DLL contains resources translated to German.) If you +don't do this, some of the UI elements of your application will remain in the +language of the operating system. + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.clw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.clw new file mode 100644 index 0000000..2a9837d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.clw @@ -0,0 +1,316 @@ +; CLW file contains information for the MFC ClassWizard + +[General Info] +Version=1 +LastClass=CMainFrame +LastTemplate=CDialog +NewFileInclude1=#include "stdafx.h" +NewFileInclude2=#include "skinsdemo.h" +LastPage=0 + +ClassCount=9 +Class1=CChildFrame +Class2=CFoldersBar +Class3=CMainFrame +Class4=CPropertiesBar +Class5=CSkinsDemoApp +Class6=CAboutDlg +Class7=CSkinsDemoDoc +Class8=CSkinsDemoView +Class9=CWorkspaceBar + +ResourceCount=12 +Resource1=IDR_MAINFRAME +Resource2=IDR_TOOLBAR +Resource3=IDR_TOOLBAR2 +Resource4=IDR_POPUPS +Resource5=IDR_SKINSDTYPE +Resource6=IDD_ABOUTBOX +Resource7=IDR_TOOLBAR (English (U.S.)) +Resource8=IDR_POPUPS (English (U.S.)) +Resource9=IDR_SKINSDTYPE (English (U.S.)) +Resource10=IDR_TOOLBAR2 (English (U.S.)) +Resource11=IDR_MAINFRAME (English (U.S.)) +Resource12=IDD_ABOUTBOX (English (U.S.)) + +[CLS:CChildFrame] +Type=0 +BaseClass=CMDIChildWnd +HeaderFile=ChildFrm.h +ImplementationFile=ChildFrm.cpp +LastObject=CChildFrame + +[CLS:CFoldersBar] +Type=0 +BaseClass=COXSizeControlBar +HeaderFile=FoldersBar.h +ImplementationFile=FoldersBar.cpp + +[CLS:CMainFrame] +Type=0 +BaseClass=CMDIFrameWnd +HeaderFile=MainFrm.h +ImplementationFile=MainFrm.cpp +LastObject=CMainFrame +Filter=T +VirtualFilter=fWC + +[CLS:CPropertiesBar] +Type=0 +BaseClass=COXSizeControlBar +HeaderFile=PropertiesBar.h +ImplementationFile=PropertiesBar.cpp + +[CLS:CSkinsDemoApp] +Type=0 +BaseClass=CWinApp +HeaderFile=SkinsDemo.h +ImplementationFile=SkinsDemo.cpp + +[CLS:CAboutDlg] +Type=0 +BaseClass=CDialog +HeaderFile=SkinsDemo.cpp +ImplementationFile=SkinsDemo.cpp +LastObject=CAboutDlg + +[CLS:CSkinsDemoDoc] +Type=0 +BaseClass=CDocument +HeaderFile=SkinsDemoDoc.h +ImplementationFile=SkinsDemoDoc.cpp + +[CLS:CSkinsDemoView] +Type=0 +BaseClass=BASEVIEW +HeaderFile=SkinsDemoView.h +ImplementationFile=SkinsDemoView.cpp +LastObject=CSkinsDemoView + +[CLS:CWorkspaceBar] +Type=0 +BaseClass=COXSizeControlBar +HeaderFile=WorkspaceBar.h +ImplementationFile=WorkspaceBar.cpp +LastObject=CWorkspaceBar + +[DLG:IDD_ABOUTBOX] +Type=1 +Class=CAboutDlg +ControlCount=4 +Control1=IDC_STATIC,static,1342177283 +Control2=IDC_STATIC,static,1342308480 +Control3=IDC_STATIC,static,1342308352 +Control4=IDOK,button,1342373889 + +[TB:IDR_TOOLBAR] +Type=1 +Class=? +Command1=ID_FILE_NEW +Command2=ID_FILE_OPEN +Command3=ID_FILE_SAVE +Command4=ID_MAIL +Command5=ID_APP_ABOUT +Command6=ID_CHECKED +CommandCount=6 + +[TB:IDR_TOOLBAR2] +Type=1 +Class=? +Command1=ID_BUTTON32773 +Command2=ID_BUTTON32774 +Command3=ID_BUTTON32775 +Command4=ID_BUTTON32776 +Command5=ID_BUTTON32777 +Command6=ID_BUTTON32778 +Command7=ID_BUTTON32780 +CommandCount=7 + +[MNU:IDR_MAINFRAME] +Type=1 +Class=? +Command1=ID_FILE_NEW +Command2=ID_FILE_OPEN +Command3=ID_FILE_PRINT_SETUP +Command4=ID_FILE_MRU_FILE1 +Command5=ID_APP_EXIT +Command6=ID_VIEW_WORKSPACE +Command7=ID_VIEW_PROPERTIES +Command8=ID_VIEW_FOLDERS +Command9=ID_VIEW_TOOLBAR +Command10=ID_VIEW_STATUS_BAR +Command11=ID_APP_ABOUT +CommandCount=11 + +[MNU:IDR_SKINSDTYPE] +Type=1 +Class=? +Command1=ID_FILE_NEW +Command2=ID_FILE_OPEN +Command3=ID_FILE_CLOSE +Command4=ID_FILE_SAVE +Command5=ID_FILE_SAVE_AS +Command6=ID_FILE_POPUP_ITEM1 +Command7=ID_FILE_POPUP_ITEM2 +Command8=ID_FILE_POPUP_ITEM3 +Command9=ID_FILE_PRINT +Command10=ID_FILE_PRINT_PREVIEW +Command11=ID_FILE_PRINT_SETUP +Command12=ID_CHECKED +Command13=ID_FILE_MRU_FILE1 +Command14=ID_APP_EXIT +Command15=ID_EDIT_UNDO +Command16=ID_EDIT_CUT +Command17=ID_EDIT_COPY +Command18=ID_EDIT_PASTE +Command19=ID_VIEW_WORKSPACE +Command20=ID_VIEW_PROPERTIES +Command21=ID_VIEW_FOLDERS +Command22=ID_VIEW_TOOLBAR +Command23=ID_VIEW_STATUS_BAR +Command24=ID_WINDOW_NEW +Command25=ID_WINDOW_CASCADE +Command26=ID_WINDOW_TILE_HORZ +Command27=ID_WINDOW_ARRANGE +Command28=ID_APP_ABOUT +CommandCount=28 + +[MNU:IDR_POPUPS] +Type=1 +Class=? +Command1=ID_ITEM1 +Command2=ID_ITEM2 +Command3=ID_ITEM3 +Command4=ID_FILE_PRINT +Command5=ID_CHECKED +CommandCount=5 + +[ACL:IDR_MAINFRAME] +Type=1 +Class=? +Command1=ID_FILE_NEW +Command2=ID_FILE_OPEN +Command3=ID_FILE_SAVE +Command4=ID_FILE_PRINT +Command5=ID_EDIT_UNDO +Command6=ID_EDIT_CUT +Command7=ID_EDIT_COPY +Command8=ID_EDIT_PASTE +Command9=ID_EDIT_UNDO +Command10=ID_EDIT_CUT +Command11=ID_EDIT_COPY +Command12=ID_EDIT_PASTE +Command13=ID_NEXT_PANE +Command14=ID_PREV_PANE +CommandCount=14 + +[MNU:IDR_POPUPS (English (U.S.))] +Type=1 +Class=? +Command1=ID_ITEM1 +Command2=ID_ITEM2 +Command3=ID_ITEM3 +Command4=ID_FILE_PRINT +Command5=ID_CHECKED +CommandCount=5 + +[MNU:IDR_SKINSDTYPE (English (U.S.))] +Type=1 +Class=? +Command1=ID_FILE_NEW +Command2=ID_FILE_OPEN +Command3=ID_FILE_CLOSE +Command4=ID_FILE_SAVE +Command5=ID_FILE_SAVE_AS +Command6=ID_FILE_POPUP_ITEM1 +Command7=ID_FILE_POPUP_ITEM2 +Command8=ID_FILE_POPUP_ITEM3 +Command9=ID_FILE_PRINT +Command10=ID_FILE_PRINT_PREVIEW +Command11=ID_FILE_PRINT_SETUP +Command12=ID_CHECKED +Command13=ID_FILE_MRU_FILE1 +Command14=ID_APP_EXIT +Command15=ID_EDIT_UNDO +Command16=ID_EDIT_CUT +Command17=ID_EDIT_COPY +Command18=ID_EDIT_PASTE +Command19=ID_VIEW_WORKSPACE +Command20=ID_VIEW_PROPERTIES +Command21=ID_VIEW_FOLDERS +Command22=ID_VIEW_TOOLBAR +Command23=ID_VIEW_STATUS_BAR +Command24=ID_WINDOW_NEW +Command25=ID_WINDOW_CASCADE +Command26=ID_WINDOW_TILE_HORZ +Command27=ID_WINDOW_ARRANGE +Command28=ID_APP_ABOUT +CommandCount=28 + +[TB:IDR_TOOLBAR (English (U.S.))] +Type=1 +Class=? +Command1=ID_FILE_NEW +Command2=ID_FILE_OPEN +Command3=ID_FILE_SAVE +Command4=ID_MAIL +Command5=ID_APP_ABOUT +Command6=ID_CHECKED +CommandCount=6 + +[TB:IDR_TOOLBAR2 (English (U.S.))] +Type=1 +Class=? +Command1=ID_BUTTON32773 +Command2=ID_BUTTON32774 +Command3=ID_BUTTON32775 +Command4=ID_BUTTON32776 +Command5=ID_BUTTON32777 +Command6=ID_BUTTON32778 +Command7=ID_BUTTON32780 +CommandCount=7 + +[MNU:IDR_MAINFRAME (English (U.S.))] +Type=1 +Class=? +Command1=ID_FILE_NEW +Command2=ID_FILE_OPEN +Command3=ID_FILE_PRINT_SETUP +Command4=ID_FILE_MRU_FILE1 +Command5=ID_APP_EXIT +Command6=ID_VIEW_WORKSPACE +Command7=ID_VIEW_PROPERTIES +Command8=ID_VIEW_FOLDERS +Command9=ID_VIEW_TOOLBAR +Command10=ID_VIEW_STATUS_BAR +Command11=ID_APP_ABOUT +CommandCount=11 + +[ACL:IDR_MAINFRAME (English (U.S.))] +Type=1 +Class=? +Command1=ID_FILE_NEW +Command2=ID_FILE_OPEN +Command3=ID_FILE_SAVE +Command4=ID_FILE_PRINT +Command5=ID_EDIT_UNDO +Command6=ID_EDIT_CUT +Command7=ID_EDIT_COPY +Command8=ID_EDIT_PASTE +Command9=ID_EDIT_UNDO +Command10=ID_EDIT_CUT +Command11=ID_EDIT_COPY +Command12=ID_EDIT_PASTE +Command13=ID_NEXT_PANE +Command14=ID_PREV_PANE +CommandCount=14 + +[DLG:IDD_ABOUTBOX (English (U.S.))] +Type=1 +Class=? +ControlCount=4 +Control1=IDC_STATIC,static,1342177283 +Control2=IDC_STATIC,static,1342308480 +Control3=IDC_STATIC,static,1342308352 +Control4=IDOK,button,1342373889 + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.cpp new file mode 100644 index 0000000..d4048ab --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.cpp @@ -0,0 +1,195 @@ +// SkinsDemo.cpp : Defines the class behaviors for the application. +// + +#include "stdafx.h" +#include "SkinsDemo.h" + +#include "MainFrm.h" +#include "ChildFrm.h" +#include "SkinsDemoDoc.h" +#include "SkinsDemoView.h" + +#include "OXShadowedWnd.h" +#include "OXWorkspaceState.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CSkinsDemoApp + +BEGIN_MESSAGE_MAP(CSkinsDemoApp, CWinApp) + //{{AFX_MSG_MAP(CSkinsDemoApp) + ON_COMMAND(ID_APP_ABOUT, OnAppAbout) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG_MAP + // Standard file based document commands + ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) + ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) + // Standard print setup command + ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CSkinsDemoApp construction + +CSkinsDemoApp::CSkinsDemoApp() +{ + // TODO: add construction code here, + // Place all significant initialization in InitInstance +} + +///////////////////////////////////////////////////////////////////////////// +// The one and only CSkinsDemoApp object + +CSkinsDemoApp theApp; + +///////////////////////////////////////////////////////////////////////////// +// CSkinsDemoApp initialization + +BOOL CSkinsDemoApp::InitInstance() +{ + AfxEnableControlContainer(); + + SetCurrentSkin(_T("Office 2003")); + + // 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. + +#if _MSC_VER < 1400 +#ifdef _AFXDLL + Enable3dControls(); // Call this when using MFC in a shared DLL +#else + Enable3dControlsStatic(); // Call this when linking to MFC statically +#endif +#endif + + + // Change the registry key under which our settings are stored. + // TODO: You should modify this string to be something appropriate + // such as the name of your company or organization. + SetRegistryKey(_T("Local AppWizard-Generated Applications")); + + LoadStdProfileSettings(); // Load standard INI file options (including MRU) + + // Register the application's document templates. Document templates + // serve as the connection between documents, frame windows and views. + + CMultiDocTemplate* pDocTemplate; + pDocTemplate = new CMultiDocTemplate( + IDR_SKINSDTYPE, + RUNTIME_CLASS(CSkinsDemoDoc), + RUNTIME_CLASS(CChildFrame), // custom MDI child frame + RUNTIME_CLASS(CSkinsDemoView)); + AddDocTemplate(pDocTemplate); + + // create main MDI Frame window + CMainFrame* pMainFrame = new CMainFrame; + if (!pMainFrame->LoadFrame(IDR_MAINFRAME)) + return FALSE; + m_pMainWnd = pMainFrame; + + // Parse command line for standard shell commands, DDE, file open + CCommandLineInfo cmdInfo; + ParseCommandLine(cmdInfo); + + // Dispatch commands specified on the command line + if (!ProcessShellCommand(cmdInfo)) + return FALSE; + + // Create 2 more child frames + OnFileNew(); + OnFileNew(); + + // Mazimize all MDI child windows + POSITION posDoc = pDocTemplate->GetFirstDocPosition(); + while (posDoc != NULL) + { + CDocument* pDoc = pDocTemplate->GetNextDoc(posDoc); + POSITION posView = pDoc->GetFirstViewPosition(); + while (posView != NULL) + { + CFrameWnd* pFrame = pDoc->GetNextView(posView)->GetParentFrame(); + pMainFrame->MDIMaximize(pFrame); + } + } + + // The main window has been initialized, so show and update it. + pMainFrame->ShowWindow(m_nCmdShow); + pMainFrame->UpdateWindow(); + + return TRUE; +} + + +///////////////////////////////////////////////////////////////////////////// +// CAboutDlg dialog used for App About + +class CAboutDlg : public COXShadowedWnd +{ +public: + CAboutDlg(); + +// Dialog Data + //{{AFX_DATA(CAboutDlg) + enum { IDD = IDD_ABOUTBOX }; + CButton m_btnOK; + //}}AFX_DATA + + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CAboutDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + //{{AFX_MSG(CAboutDlg) + // No message handlers + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +CAboutDlg::CAboutDlg() : COXShadowedWnd(CAboutDlg::IDD) +{ + //{{AFX_DATA_INIT(CAboutDlg) + //}}AFX_DATA_INIT +} + +void CAboutDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CAboutDlg) + DDX_Control(pDX, IDOK, m_btnOK); + //}}AFX_DATA_MAP +} + +BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) + //{{AFX_MSG_MAP(CAboutDlg) + // No message handlers + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +// App command to run the dialog +void CSkinsDemoApp::OnAppAbout() +{ + CAboutDlg aboutDlg; + aboutDlg.DoModal(); +} + +///////////////////////////////////////////////////////////////////////////// +// CSkinsDemoApp message handlers + + +int CSkinsDemoApp::ExitInstance() +{ + // TODO: Add your specialized code here and/or call the base class + + return CWinApp::ExitInstance(); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.dsp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.dsp new file mode 100644 index 0000000..f12dd9e --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.dsp @@ -0,0 +1,692 @@ +# Microsoft Developer Studio Project File - Name="SkinsDemo" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=SkinsDemo - Win32 Unicode Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "SkinsDemo.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "SkinsDemo.mak" CFG="SkinsDemo - Win32 Unicode Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "SkinsDemo - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "SkinsDemo - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE "SkinsDemo - Win32 Unicode Release" (based on "Win32 (x86) Application") +!MESSAGE "SkinsDemo - Win32 Unicode Debug" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "SkinsDemo - Win32 Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"SkinsDemo.exe" + +!ELSEIF "$(CFG)" == "SkinsDemo - Win32 Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fr /Yu"stdafx.h" /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"SkinsDemo.exe" /pdbtype:sept + +!ELSEIF "$(CFG)" == "SkinsDemo - Win32 Unicode Release" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "SkinsDemo___Win32_Unicode_Release" +# PROP BASE Intermediate_Dir "SkinsDemo___Win32_Unicode_Release" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "ReleaseU" +# PROP Intermediate_Dir "ReleaseU" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\..\include" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /out:"SkinsDemo.exe" +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /machine:I386 /out:"SkinsDemo.exe" + +!ELSEIF "$(CFG)" == "SkinsDemo - Win32 Unicode Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "SkinsDemo___Win32_Unicode_Debug" +# PROP BASE Intermediate_Dir "SkinsDemo___Win32_Unicode_Debug" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "DebugU" +# PROP Intermediate_Dir "DebugU" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fr /Yu"stdafx.h" /FD /GZ /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /D "_UNICODE" /Fr /Yu"stdafx.h" /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"SkinsDemo.exe" /pdbtype:sept +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /debug /machine:I386 /out:"SkinsDemo.exe" /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "SkinsDemo - Win32 Release" +# Name "SkinsDemo - Win32 Debug" +# Name "SkinsDemo - Win32 Unicode Release" +# Name "SkinsDemo - Win32 Unicode Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Group "Ultimate Toolbox Source" + +# PROP Default_Filter "*.cpp" +# Begin Source File + +SOURCE=..\..\..\source\UTSampleAbout\HtmlCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\MFCToolBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OX3DTabView.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXAdvancedAssert.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXAdvancedAssertMail.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXBitmapButton.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXBitmapMenu.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXBitmapMenuOrganizer.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXBrowseColorEdit.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXBrowseDirEdit.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCalculatorCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCalculatorEdit.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCalendar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCalendarEdit.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCalendarPopup.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXChildFrameState.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXColorPickerCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCoolComboBox.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCoolToolBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXDockTabCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXDocTemplateSpy.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXDragDockContext.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXEdit.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXFolderPickerDlg.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXFrameWndDock.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXHistoryCombo.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXHookWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXIPEdit.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXItemTip.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXItemTipWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXListEdit.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXMaskedEdit.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXMDIFloatWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXMenuBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXPhysicalEdit.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXPhysicalEditEx.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXPopupBarCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXPropertiesWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXPropertyDescriptionPane.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\oxpropertytree.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXRectTracker.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXShdWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXShellFolderTree.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXShellNamespaceNavigator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXShortcutBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSizeCtrlBar.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSizeDockBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSizeToolBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkinnedComboBox.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkinnedSpinCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkinnedTabCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkins.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSplitterColRowState.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSplitterRect.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXStatic.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSzMiniDockFrmWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXTabClientWnd.cpp +# End Source File +# Begin Source File + +SOURCE="..\..\..\Source\OXToolTipCtrl.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXTreeCal.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXTreeCombo.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXTreeCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXTreeEdit.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXTreeHeader.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXTreeItem.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXUxTheme.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXWorkspaceState.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\UTBStrOp.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\Xstatus4.cpp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ChildFrm.cpp +# End Source File +# Begin Source File + +SOURCE=.\FoldersBar.cpp +# End Source File +# Begin Source File + +SOURCE=.\MainFrm.cpp +# End Source File +# Begin Source File + +SOURCE=.\PropertiesBar.cpp +# End Source File +# Begin Source File + +SOURCE=.\SkinsDemo.cpp +# End Source File +# Begin Source File + +SOURCE=.\SkinsDemo.rc +# End Source File +# Begin Source File + +SOURCE=.\SkinsDemoDoc.cpp +# End Source File +# Begin Source File + +SOURCE=.\SkinsDemoView.cpp +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# Begin Source File + +SOURCE=.\WorkspaceBar.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\ChildFrm.h +# End Source File +# Begin Source File + +SOURCE=.\FoldersBar.h +# End Source File +# Begin Source File + +SOURCE=.\MainFrm.h +# End Source File +# Begin Source File + +SOURCE=.\PropertiesBar.h +# End Source File +# Begin Source File + +SOURCE=.\Resource.h +# End Source File +# Begin Source File + +SOURCE=.\SkinsDemo.h +# End Source File +# Begin Source File + +SOURCE=.\SkinsDemoDoc.h +# End Source File +# Begin Source File + +SOURCE=.\SkinsDemoView.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# Begin Source File + +SOURCE=.\WorkspaceBar.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\res\bmp00001.bmp +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\res\command_group.ico +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\res\custom_button.ico +# End Source File +# Begin Source File + +SOURCE=.\res\large.bmp +# End Source File +# Begin Source File + +SOURCE=..\..\gui\Shortcutbar\res\large.bmp +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\res\new_popup_menu.ico +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\res\noimage.ico +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\res\OXHandCursor.cur +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\res\OXNoHandCursor.cur +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\res\OXNotes.cur +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\res\OXSpinHor.cur +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\res\OXSpinVer.cur +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\res\oxtbcopy.cur +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\res\oxtbmove.cur +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\res\oxtbremove.cur +# End Source File +# Begin Source File + +SOURCE=.\res\properties_toolbar.bmp +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\res\scrl_all.cur +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\res\scrl_bottomleft.cur +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\res\scrl_bottomright.cur +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\res\scrl_down.cur +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\res\scrl_left.cur +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\res\scrl_leftright.cur +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\res\scrl_right.cur +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\res\scrl_topbottom.cur +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\res\scrl_topleft.cur +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\res\scrl_topright.cur +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\res\scrl_up.cur +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\res\separator.ico +# End Source File +# Begin Source File + +SOURCE=..\..\gui\Shortcutbar\res\ShortcutBar.ico +# End Source File +# Begin Source File + +SOURCE=.\res\SkinsDemo.ico +# End Source File +# Begin Source File + +SOURCE=.\res\SkinsDemo.rc2 +# End Source File +# Begin Source File + +SOURCE=.\res\SkinsDemoDoc.ico +# End Source File +# Begin Source File + +SOURCE=.\res\small.bmp +# End Source File +# Begin Source File + +SOURCE=..\..\gui\Shortcutbar\res\small.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\Toolbar.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\toolbar1.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\toolbar2.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\Toolbar2Disabled.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\Toolbar2Hot.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\Toolbar2Normal.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\toolbar_buttons.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\TreeImages.bmp +# End Source File +# Begin Source File + +SOURCE=..\..\gui\Shortcutbar\res\TreeImages.bmp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ReadMe.txt +# End Source File +# End Target +# End Project diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.dsw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.dsw new file mode 100644 index 0000000..07bc9c8 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "SkinsDemo"=".\SkinsDemo.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.exe.manifest b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.exe.manifest new file mode 100644 index 0000000..275675d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.exe.manifest @@ -0,0 +1,22 @@ + + + +Your app description here + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.h new file mode 100644 index 0000000..b6b694c --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.h @@ -0,0 +1,52 @@ +// SkinsDemo.h : main header file for the SKINSDEMO application +// + +#if !defined(AFX_SKINSDEMO_H__698DEA13_A6F8_421B_810B_B8C827F5B9E3__INCLUDED_) +#define AFX_SKINSDEMO_H__698DEA13_A6F8_421B_810B_B8C827F5B9E3__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols +#include "OXSkins.h" + +///////////////////////////////////////////////////////////////////////////// +// CSkinsDemoApp: +// See SkinsDemo.cpp for the implementation of this class +// + +// STEP 1 - Derive your application class from COXSkinnedApp insted of CWinApp. +class CSkinsDemoApp : public COXSkinnedApp +{ +public: + CSkinsDemoApp(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CSkinsDemoApp) + public: + virtual BOOL InitInstance(); + virtual int ExitInstance(); + //}}AFX_VIRTUAL + +// Implementation + //{{AFX_MSG(CSkinsDemoApp) + afx_msg void OnAppAbout(); + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_SKINSDEMO_H__698DEA13_A6F8_421B_810B_B8C827F5B9E3__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.rc b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.rc new file mode 100644 index 0000000..f7d40f5 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.rc @@ -0,0 +1,514 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif //_WIN32\r\n" + "#include ""res\\SkinsDemo.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "#include ""afxprint.rc"" // printing/print preview resources\r\n" + "#include ""OXMain.rc""\r\n" + "#endif\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON DISCARDABLE "res\\SkinsDemo.ico" +IDR_SKINSDTYPE ICON DISCARDABLE "res\\SkinsDemoDoc.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDR_TOOLBAR BITMAP MOVEABLE PURE "res\\Toolbar.bmp" +IDR_TOOLBAR2 BITMAP DISCARDABLE "res\\toolbar2.bmp" +IDB_TOOLBAR2_HOT BITMAP DISCARDABLE "res\\Toolbar2Hot.bmp" +IDB_TOOLBAR2_NORMAL BITMAP DISCARDABLE "res\\Toolbar2Normal.bmp" +IDB_TOOLBAR2_DISABLED BITMAP DISCARDABLE "res\\Toolbar2Disabled.bmp" + +///////////////////////////////////////////////////////////////////////////// +// +// Toolbar +// + +IDR_TOOLBAR TOOLBAR DISCARDABLE 16, 16 +BEGIN + BUTTON ID_FILE_NEW + BUTTON ID_FILE_OPEN + SEPARATOR + BUTTON ID_FILE_SAVE + BUTTON ID_MAIL + SEPARATOR + BUTTON ID_APP_ABOUT + BUTTON ID_CHECKED +END + +IDR_TOOLBAR2 TOOLBAR DISCARDABLE 24, 22 +BEGIN + BUTTON ID_BUTTON32773 + BUTTON ID_BUTTON32774 + BUTTON ID_BUTTON32775 + SEPARATOR + BUTTON ID_BUTTON32776 + BUTTON ID_BUTTON32777 + BUTTON ID_BUTTON32778 + SEPARATOR + BUTTON ID_BUTTON32780 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_MAINFRAME MENU PRELOAD DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&New\tCtrl+N", ID_FILE_NEW + MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN + MENUITEM SEPARATOR + MENUITEM "P&rint Setup...", ID_FILE_PRINT_SETUP + MENUITEM SEPARATOR + MENUITEM "Recent File", ID_FILE_MRU_FILE1, GRAYED + MENUITEM SEPARATOR + MENUITEM "E&xit", ID_APP_EXIT + END + POPUP "&View" + BEGIN + MENUITEM "&Workspace", ID_VIEW_WORKSPACE + MENUITEM "&Properties", ID_VIEW_PROPERTIES + MENUITEM "&Folders", ID_VIEW_FOLDERS + MENUITEM SEPARATOR + MENUITEM "&Toolbar", ID_VIEW_TOOLBAR + MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR + END + POPUP "&Help" + BEGIN + MENUITEM "&About SkinsDemo...", ID_APP_ABOUT + END +END + +IDR_SKINSDTYPE MENU PRELOAD DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&New\tCtrl+N", ID_FILE_NEW + MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN + MENUITEM "&Close", ID_FILE_CLOSE + MENUITEM "&Save\tCtrl+S", ID_FILE_SAVE + MENUITEM "Save &As...", ID_FILE_SAVE_AS + POPUP "Popup" + BEGIN + MENUITEM "Item 1", ID_FILE_POPUP_ITEM1 + MENUITEM "Item 2", ID_FILE_POPUP_ITEM2 + MENUITEM "Item 3", ID_FILE_POPUP_ITEM3 + END + MENUITEM SEPARATOR + MENUITEM "&Print...\tCtrl+P", ID_FILE_PRINT + MENUITEM "Print Pre&view", ID_FILE_PRINT_PREVIEW + MENUITEM "P&rint Setup...", ID_FILE_PRINT_SETUP + MENUITEM "Checked", ID_CHECKED + MENUITEM SEPARATOR + MENUITEM "Recent File", ID_FILE_MRU_FILE1, GRAYED + MENUITEM SEPARATOR + MENUITEM "E&xit", ID_APP_EXIT + END + POPUP "&Edit" + BEGIN + MENUITEM "&Undo\tCtrl+Z", ID_EDIT_UNDO + MENUITEM SEPARATOR + MENUITEM "Cu&t\tCtrl+X", ID_EDIT_CUT + MENUITEM "&Copy\tCtrl+C", ID_EDIT_COPY + MENUITEM "&Paste\tCtrl+V", ID_EDIT_PASTE + END + POPUP "&View" + BEGIN + MENUITEM "&Workspace", ID_VIEW_WORKSPACE + MENUITEM "&Properties", ID_VIEW_PROPERTIES + MENUITEM "&Folders", ID_VIEW_FOLDERS + MENUITEM SEPARATOR + MENUITEM "&Toolbar", ID_VIEW_TOOLBAR + MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR + END + POPUP "&Window" + BEGIN + MENUITEM "&New Window", ID_WINDOW_NEW + MENUITEM "&Cascade", ID_WINDOW_CASCADE + MENUITEM "&Tile", ID_WINDOW_TILE_HORZ + MENUITEM "&Arrange Icons", ID_WINDOW_ARRANGE + END + POPUP "&Help" + BEGIN + MENUITEM "&About SkinsDemo...", ID_APP_ABOUT + END +END + +IDR_POPUPS MENU DISCARDABLE +BEGIN + POPUP "POPUP1" + BEGIN + MENUITEM "Item &1 (handled)", ID_ITEM1 + MENUITEM "Item &2 (handled and disabled)", ID_ITEM2 + MENUITEM "Item 3 (not handled)", ID_ITEM3 + MENUITEM "&Print", ID_FILE_PRINT + MENUITEM SEPARATOR + MENUITEM "&Check Item", ID_CHECKED + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Accelerator +// + +IDR_MAINFRAME ACCELERATORS PRELOAD MOVEABLE PURE +BEGIN + "N", ID_FILE_NEW, VIRTKEY, CONTROL + "O", ID_FILE_OPEN, VIRTKEY, CONTROL + "S", ID_FILE_SAVE, VIRTKEY, CONTROL + "P", ID_FILE_PRINT, VIRTKEY, CONTROL + "Z", ID_EDIT_UNDO, VIRTKEY, CONTROL + "X", ID_EDIT_CUT, VIRTKEY, CONTROL + "C", ID_EDIT_COPY, VIRTKEY, CONTROL + "V", ID_EDIT_PASTE, VIRTKEY, CONTROL + VK_BACK, ID_EDIT_UNDO, VIRTKEY, ALT + VK_DELETE, ID_EDIT_CUT, VIRTKEY, SHIFT + VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL + VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT + VK_F6, ID_NEXT_PANE, VIRTKEY + VK_F6, ID_PREV_PANE, VIRTKEY, SHIFT +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 236, 87 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "About SkinsDemo" +FONT 8, "MS Sans Serif" +BEGIN + ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20 + LTEXT "SkinsDemo Version 1.0",IDC_STATIC,40,10,119,8, + SS_NOPREFIX + LTEXT "Copyright (C) 2005 The Code Project",IDC_STATIC,40,25, + 119,8 + DEFPUSHBUTTON "OK",IDOK,179,7,50,14,WS_GROUP +END + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "SkinsDemo MFC Application\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "SkinsDemo\0" + VALUE "LegalCopyright", "Copyright (C) 2002\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "SkinsDemo.EXE\0" + VALUE "ProductName", "SkinsDemo Application\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_ABOUTBOX, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 229 + TOPMARGIN, 7 + BOTTOMMARGIN, 80 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE PRELOAD DISCARDABLE +BEGIN + IDR_MAINFRAME "SkinsDemo" + IDR_SKINSDTYPE "\nSkinsD\nSkinsD\n\n\nSkinsDemo.Document\nSkinsD Document" +END + +STRINGTABLE PRELOAD DISCARDABLE +BEGIN + AFX_IDS_APP_TITLE "SkinsDemo" + AFX_IDS_IDLEMESSAGE "Ready" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_INDICATOR_EXT "EXT" + ID_INDICATOR_CAPS "CAP" + ID_INDICATOR_NUM "NUM" + ID_INDICATOR_SCRL "SCRL" + ID_INDICATOR_OVR "OVR" + ID_INDICATOR_REC "REC" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_NEW "Create a new document\nNew" + ID_FILE_OPEN "Open an existing document\nOpen" + ID_FILE_CLOSE "Close the active document\nClose" + ID_FILE_SAVE "Save the active document\nSave" + ID_FILE_SAVE_AS "Save the active document with a new name\nSave As" + ID_FILE_PAGE_SETUP "Change the printing options\nPage Setup" + ID_FILE_PRINT_SETUP "Change the printer and printing options\nPrint Setup" + ID_FILE_PRINT "Print the active document\nPrint" + ID_FILE_PRINT_PREVIEW "Display full pages\nPrint Preview" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_APP_ABOUT "Display program information\nAbout" + ID_APP_EXIT "Quit the application; prompts to save documents\nExit" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_MRU_FILE1 "Open this document" + ID_FILE_MRU_FILE2 "Open this document" + ID_FILE_MRU_FILE3 "Open this document" + ID_FILE_MRU_FILE4 "Open this document" + ID_FILE_MRU_FILE5 "Open this document" + ID_FILE_MRU_FILE6 "Open this document" + ID_FILE_MRU_FILE7 "Open this document" + ID_FILE_MRU_FILE8 "Open this document" + ID_FILE_MRU_FILE9 "Open this document" + ID_FILE_MRU_FILE10 "Open this document" + ID_FILE_MRU_FILE11 "Open this document" + ID_FILE_MRU_FILE12 "Open this document" + ID_FILE_MRU_FILE13 "Open this document" + ID_FILE_MRU_FILE14 "Open this document" + ID_FILE_MRU_FILE15 "Open this document" + ID_FILE_MRU_FILE16 "Open this document" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_NEXT_PANE "Switch to the next window pane\nNext Pane" + ID_PREV_PANE "Switch back to the previous window pane\nPrevious Pane" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_WINDOW_NEW "Open another window for the active document\nNew Window" + ID_WINDOW_ARRANGE "Arrange icons at the bottom of the window\nArrange Icons" + ID_WINDOW_CASCADE "Arrange windows so they overlap\nCascade Windows" + ID_WINDOW_TILE_HORZ "Arrange windows as non-overlapping tiles\nTile Windows" + ID_WINDOW_TILE_VERT "Arrange windows as non-overlapping tiles\nTile Windows" + ID_WINDOW_SPLIT "Split the active window into panes\nSplit" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_EDIT_CLEAR "Erase the selection\nErase" + ID_EDIT_CLEAR_ALL "Erase everything\nErase All" + ID_EDIT_COPY "Copy the selection and put it on the Clipboard\nCopy" + ID_EDIT_CUT "Cut the selection and put it on the Clipboard\nCut" + ID_EDIT_FIND "Find the specified text\nFind" + ID_EDIT_PASTE "Insert Clipboard contents\nPaste" + ID_EDIT_REPEAT "Repeat the last action\nRepeat" + ID_EDIT_REPLACE "Replace specific text with different text\nReplace" + ID_EDIT_SELECT_ALL "Select the entire document\nSelect All" + ID_EDIT_UNDO "Undo the last action\nUndo" + ID_EDIT_REDO "Redo the previously undone action\nRedo" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_VIEW_TOOLBAR "Show or hide the toolbar\nToggle ToolBar" + ID_VIEW_STATUS_BAR "Show or hide the status bar\nToggle StatusBar" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_SCSIZE "Change the window size" + AFX_IDS_SCMOVE "Change the window position" + AFX_IDS_SCMINIMIZE "Reduce the window to an icon" + AFX_IDS_SCMAXIMIZE "Enlarge the window to full size" + AFX_IDS_SCNEXTWINDOW "Switch to the next document window" + AFX_IDS_SCPREVWINDOW "Switch to the previous document window" + AFX_IDS_SCCLOSE "Close the active window and prompts to save the documents" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_SCRESTORE "Restore the window to normal size" + AFX_IDS_SCTASKLIST "Activate Task List" + AFX_IDS_MDICHILD "Activate this window" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_PREVIEW_CLOSE "Close print preview mode\nCancel Preview" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_CB_EDIT "Edit control\nEdit control" + ID_CB_COMBO "Combo box\nCombo box" + ID_CB_CHECKBOX "Check box\nCheck box" + ID_CB_PROGRESS "Progress bar\nProgress bar" + ID_CB_SLIDER "Slider control\nSlider control" + ID_CB_DTP "Date-time picker\nDate-time picker" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_CHECKED "This is a stupid button\nRun" + ID_MAIL "Mail\nMail" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// English (Canada) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENC) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_CAN +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDB_LARGE BITMAP DISCARDABLE "res\\large.bmp" +IDB_SMALL BITMAP DISCARDABLE "res\\small.bmp" +IDB_TREE BITMAP DISCARDABLE "res\\TreeImages.bmp" +#endif // English (Canada) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif //_WIN32 +#include "res\SkinsDemo.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +#include "afxprint.rc" // printing/print preview resources +#include "OXMain.rc" +#endif + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.sln b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.sln new file mode 100644 index 0000000..7f67037 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SkinsDemo", "SkinsDemo.vcproj", "{368A240D-155A-4971-A79C-EF524AEB5567}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + Unicode Debug|Win32 = Unicode Debug|Win32 + Unicode Release|Win32 = Unicode Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {368A240D-155A-4971-A79C-EF524AEB5567}.Debug|Win32.ActiveCfg = Debug|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.Debug|Win32.Build.0 = Debug|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.Release|Win32.ActiveCfg = Release|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.Release|Win32.Build.0 = Release|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32 + {368A240D-155A-4971-A79C-EF524AEB5567}.Unicode Release|Win32.Build.0 = Unicode Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.vcproj b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.vcproj new file mode 100644 index 0000000..8a9bc42 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.vcproj @@ -0,0 +1,3632 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.vcproj.vspscc b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.vcproj.vspscc new file mode 100644 index 0000000..6cb031b --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemo.vcproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemoDoc.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemoDoc.cpp new file mode 100644 index 0000000..8181355 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemoDoc.cpp @@ -0,0 +1,84 @@ +// SkinsDemoDoc.cpp : implementation of the CSkinsDemoDoc class +// + +#include "stdafx.h" +#include "SkinsDemo.h" + +#include "SkinsDemoDoc.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CSkinsDemoDoc + +IMPLEMENT_DYNCREATE(CSkinsDemoDoc, CDocument) + +BEGIN_MESSAGE_MAP(CSkinsDemoDoc, CDocument) + //{{AFX_MSG_MAP(CSkinsDemoDoc) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CSkinsDemoDoc construction/destruction + +CSkinsDemoDoc::CSkinsDemoDoc() +{ + // TODO: add one-time construction code here + +} + +CSkinsDemoDoc::~CSkinsDemoDoc() +{ +} + +BOOL CSkinsDemoDoc::OnNewDocument() +{ + if (!CDocument::OnNewDocument()) + return FALSE; + + // TODO: add reinitialization code here + // (SDI documents will reuse this document) + + return TRUE; +} + + + +///////////////////////////////////////////////////////////////////////////// +// CSkinsDemoDoc serialization + +void CSkinsDemoDoc::Serialize(CArchive& ar) +{ + if (ar.IsStoring()) + { + // TODO: add storing code here + } + else + { + // TODO: add loading code here + } +} + +///////////////////////////////////////////////////////////////////////////// +// CSkinsDemoDoc diagnostics + +#ifdef _DEBUG +void CSkinsDemoDoc::AssertValid() const +{ + CDocument::AssertValid(); +} + +void CSkinsDemoDoc::Dump(CDumpContext& dc) const +{ + CDocument::Dump(dc); +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CSkinsDemoDoc commands diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemoDoc.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemoDoc.h new file mode 100644 index 0000000..61908e3 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemoDoc.h @@ -0,0 +1,57 @@ +// SkinsDemoDoc.h : interface of the CSkinsDemoDoc class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_SKINSDEMODOC_H__5DEE868B_D902_4983_87E2_89DEC3E5E609__INCLUDED_) +#define AFX_SKINSDEMODOC_H__5DEE868B_D902_4983_87E2_89DEC3E5E609__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + + +class CSkinsDemoDoc : public CDocument +{ +protected: // create from serialization only + CSkinsDemoDoc(); + DECLARE_DYNCREATE(CSkinsDemoDoc) + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CSkinsDemoDoc) + public: + virtual BOOL OnNewDocument(); + virtual void Serialize(CArchive& ar); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CSkinsDemoDoc(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + +// Generated message map functions +protected: + //{{AFX_MSG(CSkinsDemoDoc) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_SKINSDEMODOC_H__5DEE868B_D902_4983_87E2_89DEC3E5E609__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemoView.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemoView.cpp new file mode 100644 index 0000000..4cfc744 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemoView.cpp @@ -0,0 +1,153 @@ +// SkinsDemoView.cpp : implementation of the CSkinsDemoView class +// + +#include "stdafx.h" +#include "SkinsDemo.h" + +#include "SkinsDemoDoc.h" +#include "SkinsDemoView.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CSkinsDemoView + +IMPLEMENT_DYNCREATE(CSkinsDemoView, BASEVIEW) + +BEGIN_MESSAGE_MAP(CSkinsDemoView, BASEVIEW) + //{{AFX_MSG_MAP(CSkinsDemoView) + ON_WM_CONTEXTMENU() + ON_COMMAND(ID_ITEM1, OnItem1) + ON_COMMAND(ID_ITEM2, OnItem2) + ON_UPDATE_COMMAND_UI(ID_ITEM2, OnUpdateItem2) + //}}AFX_MSG_MAP + // Standard printing commands + ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint) + ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint) + ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CSkinsDemoView construction/destruction + +CSkinsDemoView::CSkinsDemoView() +{ + // TODO: add construction code here + +} + +CSkinsDemoView::~CSkinsDemoView() +{ +} + +BOOL CSkinsDemoView::PreCreateWindow(CREATESTRUCT& cs) +{ + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + return CView::PreCreateWindow(cs); +} + +///////////////////////////////////////////////////////////////////////////// +// CSkinsDemoView drawing + +void CSkinsDemoView::OnDraw(CDC* pDC) +{ + CSkinsDemoDoc* pDoc = GetDocument(); + ASSERT_VALID(pDoc); + + // TODO: add draw code for native data here + CFont font; + font.CreatePointFont(80, _T("MS Sans Serif")); + CFont* pOldFont = pDC->SelectObject(&font); + + CRect rectClient; + GetClientRect(rectClient); + + CSkinsDemoApp* pApp = (CSkinsDemoApp*) AfxGetApp(); + + COLORREF clrOldColor = pDC->SetTextColor(pApp->GetCurrentSkin()->GetFrameSkin()->GetBorderColor()); + pDC->DrawText(_T("Right click to activate the context menu."), rectClient, DT_CENTER|DT_VCENTER|DT_SINGLELINE); + pDC->SetTextColor(clrOldColor); + pDC->SelectObject(pOldFont); +} + +///////////////////////////////////////////////////////////////////////////// +// CSkinsDemoView printing + +BOOL CSkinsDemoView::OnPreparePrinting(CPrintInfo* pInfo) +{ + // default preparation + return DoPreparePrinting(pInfo); +} + +void CSkinsDemoView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) +{ + // TODO: add extra initialization before printing +} + +void CSkinsDemoView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) +{ + // TODO: add cleanup after printing +} + +///////////////////////////////////////////////////////////////////////////// +// CSkinsDemoView diagnostics + +#ifdef _DEBUG +void CSkinsDemoView::AssertValid() const +{ + BASEVIEW::AssertValid(); +} + +void CSkinsDemoView::Dump(CDumpContext& dc) const +{ + BASEVIEW::Dump(dc); +} + +CSkinsDemoDoc* CSkinsDemoView::GetDocument() // non-debug version is inline +{ + ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CSkinsDemoDoc))); + return (CSkinsDemoDoc*)m_pDocument; +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CSkinsDemoView message handlers + +void CSkinsDemoView::OnContextMenu(CWnd* /*pWnd*/, CPoint point) +{ + // TODO: Add your message handler code here + COXBitmapMenu menu; + menu.LoadMenu(IDR_POPUPS); + CMenu* pMenuPopup = menu.GetSubMenu(0); + + pMenuPopup->SetDefaultItem(0, MF_BYPOSITION | MF_ENABLED); + pMenuPopup->EnableMenuItem(1, MF_BYPOSITION | MF_ENABLED); + + pMenuPopup->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, AfxGetMainWnd()); +} + +void CSkinsDemoView::OnItem1() +{ + // TODO: Add your command handler code here + AfxMessageBox(_T("Item 1 clicked."), MB_ICONWARNING); +} + +void CSkinsDemoView::OnItem2() +{ + // TODO: Add your command handler code here + +} + +void CSkinsDemoView::OnUpdateItem2(CCmdUI* pCmdUI) +{ + // TODO: Add your command update UI handler code here + + // Disable the item + pCmdUI->Enable(FALSE); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemoView.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemoView.h new file mode 100644 index 0000000..c4baa38 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/SkinsDemoView.h @@ -0,0 +1,72 @@ +// SkinsDemoView.h : interface of the CSkinsDemoView class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_SKINSDEMOVIEW_H__5CCC63AA_7818_4647_B917_01BF3EBC90A8__INCLUDED_) +#define AFX_SKINSDEMOVIEW_H__5CCC63AA_7818_4647_B917_01BF3EBC90A8__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#include "OXSkinnedView.h" + +// STEP 8: Derive your view class from COXSkinnedView<...> +#define BASEVIEW CView +class CSkinsDemoView : public COXSkinnedView +{ +protected: // create from serialization only + CSkinsDemoView(); + DECLARE_DYNCREATE(CSkinsDemoView) + +// Attributes +public: + CSkinsDemoDoc* GetDocument(); + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CSkinsDemoView) + public: + virtual void OnDraw(CDC* pDC); // overridden to draw this view + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + protected: + virtual BOOL OnPreparePrinting(CPrintInfo* pInfo); + virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo); + virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CSkinsDemoView(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + +// Generated message map functions +protected: + //{{AFX_MSG(CSkinsDemoView) + afx_msg void OnContextMenu(CWnd* pWnd, CPoint point); + afx_msg void OnItem1(); + afx_msg void OnItem2(); + afx_msg void OnUpdateItem2(CCmdUI* pCmdUI); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +#ifndef _DEBUG // debug version in SkinsDemoView.cpp +inline CSkinsDemoDoc* CSkinsDemoView::GetDocument() + { return (CSkinsDemoDoc*)m_pDocument; } +#endif + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_SKINSDEMOVIEW_H__5CCC63AA_7818_4647_B917_01BF3EBC90A8__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/StdAfx.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/StdAfx.cpp new file mode 100644 index 0000000..f85ff22 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/StdAfx.cpp @@ -0,0 +1,8 @@ +// stdafx.cpp : source file that includes just the standard includes +// SkinsDemo.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/StdAfx.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/StdAfx.h new file mode 100644 index 0000000..2ee0459 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/StdAfx.h @@ -0,0 +1,40 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#if !defined(AFX_STDAFX_H__2A523B18_F6F2_40CC_9854_0D98057F6B5F__INCLUDED_) +#define AFX_STDAFX_H__2A523B18_F6F2_40CC_9854_0D98057F6B5F__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + + +#ifndef WINVER +#define WINVER 0x0400 +#endif + + +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers + +#include // MFC core and standard components +#include // MFC extensions +#include // MFC Automation classes +#include // MFC support for Internet Explorer 4 Common Controls +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for Windows Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + +#include "OXAdvancedAssert.h" + +#include +#include + +// Add this line to statically link UTLib*.lib +//#include "UTStaticLib.h" + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_STDAFX_H__2A523B18_F6F2_40CC_9854_0D98057F6B5F__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/WorkspaceBar.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/WorkspaceBar.cpp new file mode 100644 index 0000000..1b49b2c --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/WorkspaceBar.cpp @@ -0,0 +1,195 @@ +// WorkspaceBar.cpp : implementation file +// + +#include "stdafx.h" +#include "skinsdemo.h" +#include "WorkspaceBar.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CWorkspaceBar + +#define IDC_SHORTCUT_BAR 7565 + +CWorkspaceBar::CWorkspaceBar() +{ +} + +CWorkspaceBar::~CWorkspaceBar() +{ +} + + +BEGIN_MESSAGE_MAP(CWorkspaceBar, COXSizeControlBar) + //{{AFX_MSG_MAP(CWorkspaceBar) + ON_WM_CREATE() + ON_WM_SIZE() + //}}AFX_MSG_MAP + ON_NOTIFY(SHBN_SELECTITEM, IDC_SHORTCUT_BAR, OnShortcutBarSelectItem) +END_MESSAGE_MAP() + + +///////////////////////////////////////////////////////////////////////////// +// CWorkspaceBar message handlers + +int CWorkspaceBar::OnCreate(LPCREATESTRUCT lpCreateStruct) +{ + if (COXSizeControlBar::OnCreate(lpCreateStruct) == -1) + return -1; + + // TODO: Add your specialized creation code here + SetClientBorder(TRUE); + + // Create the shortcut bar + m_ShortcutBar.Create(this, CRect(0, 0, 0, 0), SHBS_EDITHEADERS | SHBS_EDITITEMS | SHBS_DISABLEDRAGDROPITEM | + SHBS_DISABLEDRAGDROPHEADER | SHBS_FLATGROUPBUTTON | SHBS_SHOWACTIVEALWAYS, IDC_SHORTCUT_BAR); + InitShortcutBar(); + + return 0; +} + +void CWorkspaceBar::OnSize(UINT nType, int cx, int cy) +{ + COXSizeControlBar::OnSize(nType, cx, cy); + + // Size the tabs container accordingly + CRect rectClient; + GetClientRect(rectClient); + m_ShortcutBar.MoveWindow(rectClient); +} + +void CWorkspaceBar::InitShortcutBar() +{ + // Populate shortcut bar + m_ShortcutBar.SetImageList(&m_ilTree); + + SHB_GROUPINFO shbGroup; + CString sText; + + // create image lists + VERIFY(m_ilLarge.Create(IDB_LARGE,32,11,RGB(255, 0, 0))); + VERIFY(m_ilSmall.Create(IDB_SMALL,16,11,RGB(255, 0, 0))); + + // Skins group + sText=_T("Skins"); + shbGroup.nMask=SHBIF_TEXT; + shbGroup.nTextMax=sText.GetLength(); + shbGroup.pszText=sText.GetBuffer(shbGroup.nTextMax); + sText.ReleaseBuffer(); + m_ShortcutBar.InsertGroup(&shbGroup); + + // outlook group + sText=_T("Outlook"); + shbGroup.nMask=SHBIF_TEXT; + shbGroup.nTextMax=sText.GetLength(); + shbGroup.pszText=sText.GetBuffer(shbGroup.nTextMax); + sText.ReleaseBuffer(); + m_ShortcutBar.InsertGroup(&shbGroup); + + // mail group + sText=_T("Mail"); + shbGroup.nMask=SHBIF_TEXT; + shbGroup.nTextMax=sText.GetLength(); + shbGroup.pszText=sText.GetBuffer(shbGroup.nTextMax); + sText.ReleaseBuffer(); + m_ShortcutBar.InsertGroup(&shbGroup); + + // find the skins group and populate it + sText=_T("Skins"); + shbGroup.nMask=SHBIF_TEXT; + shbGroup.nTextMax=sText.GetLength(); + shbGroup.pszText=sText.GetBuffer(shbGroup.nTextMax); + sText.ReleaseBuffer(); + HSHBGROUP hGroup=m_ShortcutBar.FindGroup(&shbGroup); + ASSERT(hGroup); + + m_ShortcutBar.SetLCImageList(hGroup,&m_ilLarge,LVSIL_NORMAL); + m_ShortcutBar.SetLCImageList(hGroup,&m_ilSmall,LVSIL_SMALL); + + m_ShortcutBar.InsertLCItem(hGroup, 0, _T("Classic"), 0); + m_ShortcutBar.InsertLCItem(hGroup, 1, _T("Office XP"), 1); + m_ShortcutBar.InsertLCItem(hGroup, 2, _T("Office 2003"), 2); + m_ShortcutBar.ExpandGroup(hGroup); + m_ShortcutBar.GetGroupListCtrl(hGroup)->ActivateItem(2); + + // fill standard list controls + TCHAR shbszItems[][20]={_T("Inbox"),_T("Calendar"),_T("Contracts"), + _T("Tasks"),_T("Journal"),_T("Notes"),_T("Deleted Items"),_T("Inbox"), + _T("Sent Items"),_T("Outbox"),_T("Deleted Items")}; + + // find outlook group and populate it + sText=_T("Outlook"); + shbGroup.nMask=SHBIF_TEXT; + shbGroup.nTextMax=sText.GetLength(); + shbGroup.pszText=sText.GetBuffer(shbGroup.nTextMax); + sText.ReleaseBuffer(); + hGroup=m_ShortcutBar.FindGroup(&shbGroup); + ASSERT(hGroup); + + m_ShortcutBar.SetLCImageList(hGroup,&m_ilLarge,LVSIL_NORMAL); + m_ShortcutBar.SetLCImageList(hGroup,&m_ilSmall,LVSIL_SMALL); + + for(int i=0 ; i<10; i++) + for(int nIndex=0; nIndex<7 ; nIndex++) + { + CString sText=shbszItems[nIndex]; + m_ShortcutBar.InsertLCItem(hGroup,nIndex+7*i,sText,nIndex); + } + + // find mail group and populate it + sText=_T("Mail"); + shbGroup.nMask=SHBIF_TEXT; + shbGroup.nTextMax=sText.GetLength(); + shbGroup.pszText=sText.GetBuffer(shbGroup.nTextMax); + sText.ReleaseBuffer(); + hGroup=m_ShortcutBar.FindGroup(&shbGroup); + ASSERT(hGroup); + + m_ShortcutBar.SetLCImageList(hGroup,&m_ilLarge,LVSIL_NORMAL); + m_ShortcutBar.SetLCImageList(hGroup,&m_ilSmall,LVSIL_SMALL); + + for(int nIndex=7; nIndex<(sizeof(shbszItems)/sizeof(shbszItems[0])); nIndex++) + { + CString sText=shbszItems[nIndex]; + LV_ITEM lvi; + lvi.iItem=nIndex-7; + lvi.iSubItem=0; + lvi.mask=LVIF_TEXT|LVIF_IMAGE; + lvi.iImage=nIndex; + lvi.cchTextMax=sText.GetLength(); + lvi.pszText=sText.GetBuffer(lvi.cchTextMax); + sText.ReleaseBuffer(); + m_ShortcutBar.InsertLCItem(hGroup,&lvi); + } + + DWORD dwBarStyle=m_ShortcutBar.GetBarStyle(); + dwBarStyle&=~(SHBS_DISABLEDRAGDROPHEADER|SHBS_DISABLEDRAGDROPITEM); + dwBarStyle|=SHBS_DRAWITEMDRAGIMAGE|SHBS_DRAWHEADERDRAGIMAGE|SHBS_INFOTIP| + SHBS_AUTOEXPAND|SHBS_ANIMATEEXPAND; + m_ShortcutBar.SetBarStyle(dwBarStyle); +} + +void CWorkspaceBar::OnShortcutBarSelectItem(NMHDR* pNotifyStruct, LRESULT* result) +{ + LPNMSHORTCUTBAR pNMSHB = (LPNMSHORTCUTBAR) pNotifyStruct; + ASSERT(pNMSHB != NULL); + + if (pNMSHB->nItem != -1) + { + // Change the skin + if (m_ShortcutBar.GetGroupText(pNMSHB->hGroup) == _T("Skins")) + { + CString strSkinName = m_ShortcutBar.GetGroupListCtrl(pNMSHB->hGroup)->GetItemText(pNMSHB->nItem, 0); + COXSkinnedApp* pSkinnedApp = DYNAMIC_DOWNCAST(COXSkinnedApp, AfxGetApp()); + if (pSkinnedApp != NULL) + pSkinnedApp->SetCurrentSkin(strSkinName); + } + } + + *result=0; +} \ No newline at end of file diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/WorkspaceBar.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/WorkspaceBar.h new file mode 100644 index 0000000..8a61b84 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/WorkspaceBar.h @@ -0,0 +1,61 @@ +#if !defined(AFX_WORKSPACEBAR_H__1EC50BBE_B9C5_4FBF_8AA3_B149151D6DCD__INCLUDED_) +#define AFX_WORKSPACEBAR_H__1EC50BBE_B9C5_4FBF_8AA3_B149151D6DCD__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// WorkspaceBar.h : header file +// + +#include "OXSizeCtrlBar.h" +#include "OX3DTabView.h" +#include "OXShortcutBar.h" + +///////////////////////////////////////////////////////////////////////////// +// CWorkspaceBar window + +class CWorkspaceBar : public COXSizeControlBar +{ +// Construction +public: + CWorkspaceBar(); + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CWorkspaceBar) + //}}AFX_VIRTUAL + +// Implementation +public: + COXShortcutBar m_ShortcutBar; + virtual ~CWorkspaceBar(); + + // Generated message map functions +protected: + //{{AFX_MSG(CWorkspaceBar) + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnSize(UINT nType, int cx, int cy); + //}}AFX_MSG + afx_msg void OnShortcutBarSelectItem(NMHDR* pNotifyStruct, LRESULT* result); + DECLARE_MESSAGE_MAP() + + CImageList m_ilLarge; + CImageList m_ilSmall; + CImageList m_ilTree; + +private: + void InitShortcutBar(); +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_WORKSPACEBAR_H__1EC50BBE_B9C5_4FBF_8AA3_B149151D6DCD__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/SkinsDemo.ico b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/SkinsDemo.ico new file mode 100644 index 0000000000000000000000000000000000000000..7eef0bcbe6580a6f464d688906172c2d9de44262 GIT binary patch literal 1078 zcmc&zF>b>!3}jLb9s)T}@Kod(893@u8ajANzT`op9^o+)S?=nU(FD@%0s)Sg^oyC8{H z9myetc;MEP)59v(LMa~xK8Yu^jIR*H22uCFiq5%C{s7(PJi>o15i^bmX4(vPxWAio z9ryY#AU_jfnd047-@`)XzL?%iS$gQyFP{44kS9X)fN{{QoL~hO-&=q&20Zr*cxFAt PkaNE{wR~2C$NfnjhSXWT literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/SkinsDemo.rc2 b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/SkinsDemo.rc2 new file mode 100644 index 0000000..76f75fb --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/SkinsDemo.rc2 @@ -0,0 +1,13 @@ +// +// SKINSDEMO.RC2 - resources Microsoft Visual C++ does not edit directly +// + +#ifdef APSTUDIO_INVOKED + #error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// Add manually edited resources here... + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/SkinsDemoDoc.ico b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/SkinsDemoDoc.ico new file mode 100644 index 0000000000000000000000000000000000000000..2a1f1ae6ef15e51df8c39bc028bbfb2171822ba5 GIT binary patch literal 1078 zcmcJNF;c@Y5JlGsgIpoERJdY%i*S@2!JS&si6f-)RXoFGDAfg5;z_dQBoi_)1DpI^ z{oS?KlD%25H@>BZ{KJV|_dD9_G1MV<{5a&-}7^W%4AM)k- zx&P*V(j}a@*Y~UhksXTAK!NRyiYN-8NMyKz<)2v9@tUao7A!g+SzkAcsHvdq6!0vQ z#-rA6>0BAr)4*u6Y57EdkamnXf Uh-a7VEuQ2KJb_2>o71HC3-%7w@Bjb+ literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/Toolbar.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/Toolbar.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f011567122d90b58255694f92ed1e71f816ca96d GIT binary patch literal 886 zcmaJOmGqbr3Nekj*2%!OD)nXR8d-sanM&pVN ztn?XvOsA3j8NPm6@JHg;3tr?d?f2190qA`^id64)z2G}LK>4L8V;aX0jGy{{={eg0 zj>kY4@bPrg`mGF)dgl7OPAg;lzz-iWg+M72{ztxN7_xI~=1)Bd`7+%pU+TZ)@47a_ z4?KYM;tmjWML!Fl^C!*LwIvIx^_lqztK-=NHu>km>*c literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/Toolbar2Disabled.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/Toolbar2Disabled.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f189d5b849410acf24b4e5de7cdce6111b5fc86e GIT binary patch literal 5830 zcmeH}F=!+=6oy~Gux2p<$Kc9MT*b8@;MT4U*SL14ZfiFwT)9377}Q;n1X84NJ%x*K zMXcIR5mzn_7Qx^_xI)OhbZsfMfp)~BnB@ZZx(X%>65(w^)~_; z9?Ro+eC`@-2AjcV)E4s;i``yc31Q$shWOUS$VV#CFU|R1@2Q$r02Mz=6pT+cD^H z;)v~to#aTdu@m1B-w|IWa>RFV;sN0an2rEgJPSROJO&RIzC8Fr6Au=zd?YM-8dL>rV2EIdV2EId zV2EHy#|aD`3=s?w3?2-);bA@)A{ZhVA{cPZgB=VJ3=s?w0Fn3}XOV@GNfsZLz6D22 zzIBe3Z{=q>IXRKj(^EM=KbMP(3%S0&mdndaxxKxWySqENzrUCHd@gO<%EQBheEt&U zrw<><<1^UR9MB4Xsi%Im8|Cq>{2KV6G|s`Tc!#(&O0MSI`uf`*1v2-C+> zS6BiGQc9CGEu*0+rL%{yQN~iem3zayG`~3MK~#;=@)z1E`+s74qoL5WtrE6a1pR0! z;~`F`^96coU96eLz$LY+S4VJ|bfxHsFtuWxT%3aCeBN>*w6tY1<_1Su!csr6hZkm= z7J8rB*Jv>7wWWd;#fn~!kBHYSrb)!&D5phe5Uf+IqnebX=p-!oeX>HO*&l6%6!{y)j8IW>72lEFLQHWNo3Vh6;sKI zUbIu1X1&6sUe?`-gIelX1$j!ZSC(HPCi3&y9E5?P%HAucdTnXZ!JK0wq8r2?8#=w> za+z<$qSrEs*Q9LZRg0{;hmBgT=kzLhRq8tYir1IXMX@&DV#AM7qO9YxZHL3pF(*y7 za;9X(Dt?kyBf-jjn3gSWR;uY9B$eyvK9CK+E@eko7uQYkcU;aPz7w&XLFV0E&k634zItuM!bI9eI7bc9DOJ0?F zz*Fzyg|(mAHH_5njy0?bISj0vN$|k1mvpni-AF>s+E%+ z#gcMiu}FSG{=-+d{mS0mE%}dKhk^7VUzOZchRmuKW>=K~fhi-yN{9dd`a4+W QbYSZ0O|KQo{{P*-0n`sP1poj5 literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/Toolbar2Hot.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/Toolbar2Hot.bmp new file mode 100644 index 0000000000000000000000000000000000000000..edf42c6d4c875cde44ef2e88e93c797f61ecb523 GIT binary patch literal 5830 zcmeI0KWH3B6vihYkXTH>DO4G9ag{SJax4V7l|h9-U=S``x$>57u5gn=m1{%5u-z4j zAVnJ2R|pgwh?i}2*x`talM92hV7oCkIhg$3n?F0dvgA0a5;AwYGxKKWz3+S9%Wsk_t=Z+ph@HG6xm;!e{X92}T~-ww>HU-r$) z%8FTATQld*oipdppEv94>*m6R3+Cd*i)J_+n(NoEo1L8Hg9U>Hg9U>wCooiCuwbxYsK9_5E}jR2 z1%m~H1p}_Ru!F&Z!Ggg8z!Ja0nPsBop#mQT{Q?|Teakb2`NDi}Zr;3U?%cU!?%us? z?%%&}9zA+w9z1wpo;-PCo<4nQo;`bJUc7i=UcY{A-oAZnUj1RscasVGc#rJL9*_!u z+7rLhwPyK$`70U7vP>Tfb)17CDbf5dX=F!7M?x&rE$n8R6vsUbp5*&^80yr?bK2|- z{_{@Xz4X1;`iKU^LY)L_teu3^vQE+kwo+SQ`PmoS=Vkpsuy0-N5%auaVkAM~;bohaxFP}`o!99kh-h|( zgjbJP7_S$%ZYeKcJHMJx^ooiFNIuh0cAsG1+PyqT6!UT|n^n8N&sR&E96VzY_n{7c zeE2Sxv=N*-Od8wLS}q5UP(n+1oub!i`wLq0StyD3I@lPG#Lx?3!b=rH zvvz+8E!$*G;zQPn>cuK?B`l%s!%~SkUQCN>NkfUHwBR-QxcyZhv)w~U*JFJgtki*+ z=%t57t5}MtnPz+wh_Zb|4Z$Sm9;dMz-ad518eft*o>+&L=*33rCFjijCBzoKba@^7 z!T}ess$LKiT7D^pA>gQ7o!ocyvJ+j~N&#M8F+CR(Cyt?CimoHBPdyKHA-A_Stq@zd zQ>+fMh`X?Igm(-pdZE~cyvF?D5yuEFPCJ6R;7 z#UF{C3EQiy7GlHU4WX6jHP}sl__oAcW*jlz=;PT;;qV`?e(8jXEI!y6zR{Ifo|qow z>Imjnpqv=J3EPyBolI_I(u!d_w6G51h&CX`aYLEU-M}m!Z=unP)17}t&#%K1Pc-c> zsFsB1mF}!$qW-yaDKRXUw+DmU9Ye1(wpLEk@nX>%h~2--D>~>m+TRRK+(&U^MN5Cy S$M)Ty0lbAicH)2F`9A?YrM$lY literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/Toolbar2Normal.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/Toolbar2Normal.bmp new file mode 100644 index 0000000000000000000000000000000000000000..bbd22f74ae43fa21d9a18a601e671c823b7e94d5 GIT binary patch literal 5830 zcmeH~F^F6@5QY^v*kdsP$8eRKxQc5*!0l~);KsGP*KO@4#Z|5i0mJKDB!LuZTyJqj za1pDvQ^b`E!&z{7+r%b?^36yi>Af?TU{{9B-g}Zp(#-$QjI?{lC(n+Y%C`s3eM9ee z9#MVa4psl?E9ZXwGC!)QuT$svbEl`d;Z4__ot?R}KhE5rzy0J64i4Pm;i0>B?V7uO z{kl6kI&wE}-gLKa-Ey~Y-*)%z-E$`=C+_(8*xk8v$DMwc+}*p$eeYhl6oY&A;=;Xn z^Ts{;`4=2{o`GlN33=$zd2}9~7hTFr2J{2^0sVk}Krh=y^dtI_!H9lDPvZjmfIgrP zC<6M#I5AE^J$v3B{~kl0P2MG^?s<7IcrbV{crYj=FnBO{FnBO{FepqgcrbV{crbV{ zD0DD*FnBO{FnBQdgbo}Y9A0pwq!BR^e;Ap_;02U1clLMUrECX0H zEZ`WxF@R$L#{dou6*vYk3}6_*AfX$;F@RwJL%>(!ts%ru{xH_?N_0Sl?~zp+YJ87i z8gV+}U1(N3*ZR&)6@zMVi3R)1P8=4-E0bA31A6;2sqRd083zFU{OF3z``F7cF0KpOOSXd z7O4iw0y;1xFeES}FeES}Flae}A%G!)A%P))0W&43m5Rzx+^i0T=X%{iQQPP(-4`FEAVvw|GisakQw=?n2R{ASLYY-Ds5*hrnD_GEqSfVgz4jM zLCknrV5GIh1o4s>9^E$^bcpEArs58xNJq@(V_L73m$X`tvRMUQ$zU0z66v@qVtSDF z#7ep#us=Vas0fi6FAOQS+IH}3F?BlY&gL?&8zz!4LWbziiEHCiR{C1Ykp?PoUaUG1zns+i4EjhCZ=R;EoY zk%w1*#_F7`iIjw`&0}%MuDxVTVq*ECpLuD*;;P?P?!=B(&KD_DF(b+ggi5Nm#Xq=r z7R^S0EmfE|ufi+AONixCtW!!O#aY>2kuM=Blye=DDVZiVA-wd`XvBSLDmim9^$xh-H`4 zWbhTEDVeTV$!*$0j5z@;XUy!dCrY|_3>}(sz7+p{(puNqNMWjxd@Xic^5#;C)e?qG zWSgz;)HZEXaz9V`7MtB4wG5}J6~FKzV+E6zVznbI7|aru{mPqd`#pDfSuVUfVx5sp z`vdtZz&TAbUiDnrIcu><)6#C817}A|;;#@Ju`W9~RkMV#Uhl&~tZ|O}OpFQ1*uwvZ z&(~(d>dj8B30seSJ6G1)6cqTW&=Fa5XIGW-!fq#RYeC(>OY%hOt`-D-KWI_vYr%_3 z(QoGdgo%kbZJ>pD6@`h~&Xu(d5AOTHl2<=hi?em=v?a<~v4da9SCwiTUfUH{8z(gK z4?s1-mi7y=Bc`DdV$33(8#SeBja_|prWQW}tMj~dHjID~6Ei4zMa@&~SiV@_PL?f} z3cA>A_}^w$hahcqx?T>A5@Q8F!!o%1gRy_lc+Ie1IVfK^wZiM-mZsJ#btt@+8wBTe zMS#|Ck!Gc*h1P!emIY)ie|JukYU1?QQa+NGeP353*6D8ic3x|pe6Z4U4$MFXif*P@ n3<#@y|Ja&rVfOx5UJFNU*q}FP&0|~lX}xTb=zf}+&vN%aDG3bD literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/TreeImages.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/res/TreeImages.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a54ea46653dd568720946e9ca1626432c956a3cf GIT binary patch literal 1142 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 literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/resource.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/resource.h new file mode 100644 index 0000000..0e1acbd --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SkinsDemo/resource.h @@ -0,0 +1,58 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by SkinsDemo.rc +// +#define IDD_ABOUTBOX 100 +#define IDR_MAINFRAME 128 +#define IDR_SKINSDTYPE 129 +#define IDB_LARGE 129 +#define IDR_TOOLBAR 130 +#define IDB_TREE 131 +#define IDR_TOOLBAR2 132 +#define IDB_TOOLBAR2_HOT 134 +#define IDB_TOOLBAR2_NORMAL 135 +#define IDB_TOOLBAR2_DISABLED 136 +#define IDB_SMALL 140 +#define IDR_POPUPS 141 +#define IDR_WORKSPACEBAR 143 +#define IDR_FOLDERSBAR 144 +#define IDR_PROPERTIESBAR 145 +#define IDC_EDIT1 1000 +#define ID_CHECKED 32772 +#define ID_BUTTON32773 32773 +#define ID_BUTTON32774 32774 +#define ID_BUTTON32775 32775 +#define ID_BUTTON32776 32776 +#define ID_BUTTON32777 32777 +#define ID_BUTTON32778 32778 +#define ID_BUTTON32779 32779 +#define ID_BUTTON32780 32780 +#define ID_BUTTON32781 32781 +#define ID_MAIL 32782 +#define ID_FILE_POPUP_ITEM1 32784 +#define ID_FILE_POPUP_ITEM2 32785 +#define ID_FILE_POPUP_ITEM3 32786 +#define ID_CB_EDIT 32787 +#define ID_CB_COMBO 32788 +#define ID_CB_CHECKBOX 32789 +#define ID_CB_PROGRESS 32790 +#define ID_CB_SLIDER 32791 +#define ID_CB_DTP 32792 +#define ID_ITEM1 32796 +#define ID_ITEM2 32797 +#define ID_ITEM3 32798 +#define ID_VIEW_WORKSPACE 32802 +#define ID_VIEW_PROPERTIES 32803 +#define ID_VIEW_FOLDERS 32804 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_3D_CONTROLS 1 +#define _APS_NEXT_RESOURCE_VALUE 146 +#define _APS_NEXT_COMMAND_VALUE 32805 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/ApplicationsDialog.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/ApplicationsDialog.cpp new file mode 100644 index 0000000..f0b9209 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/ApplicationsDialog.cpp @@ -0,0 +1,658 @@ +// ApplicationsDialog.cpp : implementation file +// + +#include "stdafx.h" +#include "systemstateinfo.h" +#include "ApplicationsDialog.h" + +#include "UTBStrOp.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + + +#define APPLICATIONREF_FLAG 0xffee0000 +#define WINDOWREF_FLAG 0xffdd0000 +#define PROCESSREF_FLAG 0xffcc0000 + +///////////////////////////////////////////////////////////////////////////// +// CApplicationsDialog dialog + + +CApplicationsDialog::CApplicationsDialog() : CPageDialog() +{ + //{{AFX_DATA_INIT(CApplicationsDialog) + m_nExpandLevel = 0; + m_nExpandType = 1; + //}}AFX_DATA_INIT + m_nCurrentIndex=-1; +} + + +void CApplicationsDialog::DoDataExchange(CDataExchange* pDX) +{ + CPageDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CApplicationsDialog) + DDX_Control(pDX, IDC_SPIN_EXPANDLEVEL, m_spinExpandLevel); + DDX_Control(pDX, IDC_EDIT_EXPANDLEVEL, m_editExpandLevel); + DDX_Control(pDX, IDC_TREE_APPLICATIONS, m_tree); + DDX_Text(pDX, IDC_EDIT_EXPANDLEVEL, m_nExpandLevel); + DDX_Radio(pDX, IDC_RADIO_EXPANDLEVEL, m_nExpandType); + //}}AFX_DATA_MAP +} + + +BEGIN_MESSAGE_MAP(CApplicationsDialog, CPageDialog) + //{{AFX_MSG_MAP(CApplicationsDialog) + ON_BN_CLICKED(IDC_RADIO_EXPANDALL, OnRadioExpandall) + ON_BN_CLICKED(IDC_RADIO_EXPANDLEVEL, OnRadioExpandlevel) + ON_NOTIFY(NM_DBLCLK, IDC_TREE_APPLICATIONS, OnDblclkTreeServices) + ON_NOTIFY(NM_RCLICK, IDC_TREE_APPLICATIONS, OnRclickTreeApplications) + //}}AFX_MSG_MAP + ON_COMMAND(IDM_APP_SWITCHTO, OnAppWndSwitchTo) + ON_COMMAND(IDM_APP_BRINGTOFRONT, OnAppWndBringToFront) + ON_COMMAND(IDM_APP_MINIMIZE, OnAppWndMinimize) + ON_COMMAND(IDM_APP_MAXIMIZE, OnAppWndMaximize) + ON_COMMAND(IDM_APP_RESTORE, OnAppWndRestore) + ON_COMMAND(IDM_APP_CLOSE, OnAppWndClose) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CApplicationsDialog message handlers +void CApplicationsDialog::OnInitDialog() +{ + CPageDialog::OnInitDialog(); + + // TODO: Add your specialized creation code here + + m_ilTree.Create(::GetSystemMetrics(SM_CXSMICON), + ::GetSystemMetrics(SM_CYSMICON),ILC_COLOR8|ILC_MASK,0,0); + m_tree.SetImageList(&m_ilTree,TVSIL_NORMAL); + + LV_COLUMN lvc={ sizeof(lvc) }; + lvc.fmt=LVCFMT_LEFT; + lvc.cx=237; + lvc.pszText=_T("Item"); + lvc.mask = LVCF_FMT|LVCF_WIDTH|LVCF_TEXT; + m_tree.SetColumn(0,&lvc); + m_tree.InsertColumn(1,_T("Value"),LVCFMT_LEFT,200,1); + + // set COXTreeCtrl styles + m_tree.ModifyExStyle(0,TVOXS_PICKANYWHERE|TVOXS_ROWSEL); + m_tree.ModifyStyle(0,TVS_SHOWSELALWAYS|TVS_HASBUTTONS| + TVS_HASLINES|TVS_LINESATROOT); + + + // spin control + m_spinExpandLevel.SetRange(0,3); + m_spinExpandLevel.SetPos(0); + + // layout manager + // + m_LayoutManager.Attach(this); + + // tree control + m_LayoutManager.TieChild(IDC_TREE_APPLICATIONS,OX_LMS_ANY,OX_LMT_SAME); + ////////////////// + + // radio buttons and expand level edit control + m_LayoutManager.TieChild(IDC_RADIO_EXPANDALL, + OX_LMS_LEFT|OX_LMS_BOTTOM,OX_LMT_SAME); + + m_LayoutManager.TieChild(IDC_RADIO_EXPANDLEVEL, + OX_LMS_LEFT|OX_LMS_BOTTOM,OX_LMT_SAME); + + m_LayoutManager.TieChild(IDC_EDIT_EXPANDLEVEL,OX_LMS_LEFT, + OX_LMT_OPPOSITE,IDC_RADIO_EXPANDLEVEL); + m_LayoutManager.TieChild(IDC_EDIT_EXPANDLEVEL,OX_LMS_BOTTOM,OX_LMT_SAME); + + m_LayoutManager.TieChild(IDC_SPIN_EXPANDLEVEL,OX_LMS_LEFT, + OX_LMT_OPPOSITE,IDC_EDIT_EXPANDLEVEL); + m_LayoutManager.TieChild(IDC_SPIN_EXPANDLEVEL,OX_LMS_BOTTOM,OX_LMT_SAME); + ////////////////// + + ////////////////////////////////////// + + PopulateTree(); + + ShowControls(); +} + +void CApplicationsDialog::Refresh() +{ + PopulateTree(); +} + +void CApplicationsDialog::PopulateTree() +{ + if(!UpdateData()) + return; + + CWaitCursor waitCursor; + + m_tree.SetRedraw(FALSE); + // kill and close all threads + CleanThreads(); + // remove all items + m_tree.DeleteAllItems(); + COXTreeHeader* pHeader=(COXTreeHeader*)m_tree.GetDlgItem(0); + ASSERT(pHeader); + pHeader->SortColumn(-1,0); + // clean up image list + for(int nIndex=0; nIndexGetLogFont(&lf)) + { + lf.lfHeight=-14; + UTBStr::tcsncpy(lf.lfFaceName, LF_FACESIZE,_T("Arial"),LF_FACESIZE); + fontRoot.CreateFontIndirect(&lf); + + lf.lfHeight=-12; + lf.lfWeight=FW_BOLD; + UTBStr::tcsncpy(lf.lfFaceName,LF_FACESIZE,_T("Times New Roman"),LF_FACESIZE); + fontSubRoot.CreateFontIndirect(&lf); + } + pFontRoot=((HFONT)fontRoot!=NULL) ? &fontRoot : NULL; +// CFont* pFontSubRoot=((HFONT)fontSubRoot!=NULL) ? &fontSubRoot : NULL; + + CString sValue; + HTREEITEM htiRoot=NULL; + HTREEITEM htiSelectItem=NULL; + HTREEITEM htiItem=NULL; + + COLORREF clrTopic=RGB(0,0,255); + COLORREF clrValue=RGB(0,128,0); + + m_arrAppInfo.RemoveAll(); + if(::EnumWindows(&EnumMainWindows,(LPARAM)&m_arrAppInfo)) + { + for(int nIndex=0; nIndexGetSafeHwnd())) + { + // main window text + CString sWindowText; + pAppWnd->GetWindowText(sWindowText); + /////////////////// + + // work out icon... + int nIconIndex=-1; + HICON hIcon=(HICON)(DWORD_PTR)::GetClassLongPtr(pAppWnd->m_hWnd,GCL_HICONSM); + if(hIcon==NULL) + hIcon=(HICON)(DWORD_PTR)::GetClassLongPtr(pAppWnd->m_hWnd,GCL_HICON); + if(hIcon==NULL && m_arrAppInfo[nIndex].bGotRespond) + { + if(!::SendMessageTimeout(m_arrAppInfo[nIndex].hMainWnd, + WM_GETICON,ICON_SMALL,0,SMTO_ABORTIFHUNG, + 1000,(LPDWORD)&hIcon) || hIcon==NULL) + { + ::SendMessageTimeout(m_arrAppInfo[nIndex].hMainWnd, + WM_GETICON,ICON_BIG,0,SMTO_ABORTIFHUNG, + 1000,(LPDWORD)&hIcon); + } + } + if(hIcon!=NULL) + // add icon + nIconIndex=m_ilTree.Add(hIcon); + /////////////////// + + htiRoot=InsertItem(sWindowText,NULL,nIconIndex, + pFontRoot,clrTopic); + VERIFY(m_tree.SetSubItem(htiRoot,1,OX_SUBITEM_TEXT| + OX_SUBITEM_COLOR,(m_arrAppInfo[nIndex].bGotRespond ? + _T("Running") : _T("Not reponding")),0,NULL,clrValue)); + VERIFY(m_tree.SetItemData(htiRoot,APPLICATIONREF_FLAG+nIndex)); + if(htiSelectItem==NULL) + htiSelectItem=htiRoot; + /////////////////// + + // Executable + if(m_process.GetProcessImageFileName( + m_arrAppInfo[nIndex].dwProcessID,sValue)) + { + htiItem=InsertItem(_T("Executable"),htiRoot); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + VERIFY(m_tree. + SetItemDrawEllipsis(htiItem,DT_PATH_ELLIPSIS,1)); + } + /////////////////// + + // Process ID + htiItem=InsertItem(_T("Process ID"),htiRoot); + sValue.Format(_T("0x%x"),m_arrAppInfo[nIndex].dwProcessID); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + VERIFY(m_tree.SetItemData(htiItem,PROCESSREF_FLAG+nIndex)); + /////////////////// + + // Main Window + htiItem=InsertItem(_T("Main window handle"),htiRoot); + sValue.Format(_T("0x%x"),m_arrAppInfo[nIndex].hMainWnd); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + VERIFY(m_tree.SetItemData(htiItem,WINDOWREF_FLAG+nIndex)); + /////////////////// + + } + } + } + + ExpandTree((m_nExpandType==0 ? m_nExpandLevel : -1)); + + m_tree.SetFocus(); + m_tree.SelectItem(htiSelectItem); + + m_tree.SetRedraw(TRUE); +} + + +void CApplicationsDialog::ExpandTree(int nExpandLevel/*=-1*/, + HTREEITEM htiParent/*=NULL*/) +{ + if(nExpandLevel==0) + return; + + if(htiParent==NULL) + { + htiParent=m_tree.GetRootItem(); + ASSERT(htiParent!=NULL); + } + + HTREEITEM hti=m_tree.GetNextItem(htiParent,TVGN_CHILD); + while(hti!=NULL) + { + m_tree.Expand(hti,TVE_EXPAND); + + COXTreeItem* xti=m_tree.GetXItem(hti); + ASSERT(xti!=NULL); + if(xti->ItemHasChildren()) + ExpandTree((nExpandLevel==-1 ? -1 : nExpandLevel-1),hti); + + hti=m_tree.GetNextItem(hti,TVGN_NEXT); + } +} + +HTREEITEM CApplicationsDialog::InsertItem(CString sItem, + HTREEITEM htiParent/*=NULL*/, + int nImage/*=-1*/, + CFont* pFont/*=NULL*/, + COLORREF clr/*=CLR_NONE*/) +{ + HTREEITEM hti=m_tree.InsertItem(sItem,htiParent); + ASSERT(hti!=NULL); + + // associate new font + if(pFont!=NULL) + VERIFY(m_tree.SetItemFont(hti,pFont)); + // and new color + if(clr!=CLR_NONE) + VERIFY(m_tree.SetItemColor(hti,clr)); + + m_tree.SetItemImage(hti,nImage,nImage); + + return hti; +} + +void CApplicationsDialog::ShowControls() +{ + if(UpdateData()) + { + CWnd* pDlgItem=GetDlgItem(IDC_EDIT_EXPANDLEVEL); + ASSERT(pDlgItem!=NULL); + pDlgItem->EnableWindow((m_nExpandType==0)); + pDlgItem=GetDlgItem(IDC_SPIN_EXPANDLEVEL); + ASSERT(pDlgItem!=NULL); + pDlgItem->EnableWindow((m_nExpandType==0)); + } +} + +void CApplicationsDialog::OnRadioExpandall() +{ + // TODO: Add your control notification handler code here + + ShowControls(); +} + +void CApplicationsDialog::OnRadioExpandlevel() +{ + // TODO: Add your control notification handler code here + + ShowControls(); +} + +void CApplicationsDialog::OnDblclkTreeServices(NMHDR* pNMHDR, + LRESULT* pResult) +{ + // TODO: Add your control notification handler code here + UNREFERENCED_PARAMETER(pNMHDR); + + CPoint point; + if(::GetCursorPos(&point)) + { + m_tree.ScreenToClient(&point); + UINT nFlags; + int nItem=m_tree.HitTest(point,&nFlags); + if(nItem!=-1) + { + HTREEITEM hti=m_tree.GetItemFromIndex(nItem); + ASSERT(hti!=NULL); + if(m_tree.GetItemIndent(hti)=0 && nIndex=0 && nIndex + TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON, + point.x, point.y,this); + } + } + } + } + + *pResult = 0; +} + +void CApplicationsDialog::OnAppWndSwitchTo() +{ + ASSERT(m_nCurrentIndex>=0 && m_nCurrentIndex=m_arrAppInfo.GetSize() || + !m_arrAppInfo[m_nCurrentIndex].bGotRespond || + m_arrAppInfo[m_nCurrentIndex].dwProcessID==m_process.GetProcessID()) + return; + + ::SetForegroundWindow(m_arrAppInfo[m_nCurrentIndex].hMainWnd); + if((::GetWindowLong(m_arrAppInfo[m_nCurrentIndex].hMainWnd, + GWL_STYLE)&WS_MINIMIZE)==WS_MINIMIZE) + { + ::SendMessage(m_arrAppInfo[m_nCurrentIndex].hMainWnd, + WM_SYSCOMMAND,SC_RESTORE, + (LPARAM)m_arrAppInfo[m_nCurrentIndex].hMainWnd); + } +} + +void CApplicationsDialog::OnAppWndBringToFront() +{ + ASSERT(m_nCurrentIndex>=0 && m_nCurrentIndex=m_arrAppInfo.GetSize() || + !m_arrAppInfo[m_nCurrentIndex].bGotRespond || + m_arrAppInfo[m_nCurrentIndex].dwProcessID==m_process.GetProcessID()) + return; + + if(::GetWindowLong(m_arrAppInfo[m_nCurrentIndex].hMainWnd, + GWL_STYLE)&WS_MINIMIZE) + { + OnAppWndRestore(); + AfxGetMainWnd()->SetForegroundWindow(); + } + else + { + ::SetWindowPos(m_arrAppInfo[m_nCurrentIndex].hMainWnd, + AfxGetMainWnd()->GetSafeHwnd(),0,0,0,0, + SWP_SHOWWINDOW|SWP_ASYNCWINDOWPOS|SWP_NOACTIVATE| + SWP_NOMOVE|SWP_NOSIZE|SWP_SHOWWINDOW); + } +} + +void CApplicationsDialog::OnAppWndMinimize() +{ + ASSERT(m_nCurrentIndex>=0 && m_nCurrentIndex=m_arrAppInfo.GetSize() || + !m_arrAppInfo[m_nCurrentIndex].bGotRespond) + return; + + ::SendMessage(m_arrAppInfo[m_nCurrentIndex].hMainWnd, + WM_SYSCOMMAND,SC_MINIMIZE, + (LPARAM)m_arrAppInfo[m_nCurrentIndex].hMainWnd); +} + +void CApplicationsDialog::OnAppWndMaximize() +{ + ASSERT(m_nCurrentIndex>=0 && m_nCurrentIndex=m_arrAppInfo.GetSize() || + !m_arrAppInfo[m_nCurrentIndex].bGotRespond) + return; + + if(::GetWindowLong(m_arrAppInfo[m_nCurrentIndex].hMainWnd, + GWL_STYLE)&WS_MINIMIZE) + { + ::SendMessage(m_arrAppInfo[m_nCurrentIndex].hMainWnd, + WM_SYSCOMMAND,SC_MAXIMIZE, + (LPARAM)m_arrAppInfo[m_nCurrentIndex].hMainWnd); + AfxGetMainWnd()->SetForegroundWindow(); + } + else + { + ::SendMessage(m_arrAppInfo[m_nCurrentIndex].hMainWnd, + WM_SYSCOMMAND,SC_MAXIMIZE, + (LPARAM)m_arrAppInfo[m_nCurrentIndex].hMainWnd); + } +} + +void CApplicationsDialog::OnAppWndRestore() +{ + ASSERT(m_nCurrentIndex>=0 && m_nCurrentIndex=m_arrAppInfo.GetSize() || + !m_arrAppInfo[m_nCurrentIndex].bGotRespond) + return; + + if(::GetWindowLong(m_arrAppInfo[m_nCurrentIndex].hMainWnd, + GWL_STYLE)&WS_MINIMIZE) + { + ::SendMessage(m_arrAppInfo[m_nCurrentIndex].hMainWnd, + WM_SYSCOMMAND,SC_RESTORE, + (LPARAM)m_arrAppInfo[m_nCurrentIndex].hMainWnd); + AfxGetMainWnd()->SetForegroundWindow(); + } + else + { + ::SendMessage(m_arrAppInfo[m_nCurrentIndex].hMainWnd, + WM_SYSCOMMAND,SC_RESTORE, + (LPARAM)m_arrAppInfo[m_nCurrentIndex].hMainWnd); + } +} + +void CApplicationsDialog::OnAppWndClose() +{ + ASSERT(m_nCurrentIndex>=0 && m_nCurrentIndex=m_arrAppInfo.GetSize() || + m_arrAppInfo[m_nCurrentIndex].dwProcessID==m_process.GetProcessID()) + return; + + if(m_arrAppInfo[m_nCurrentIndex].bGotRespond) + { + ::PostMessage(m_arrAppInfo[m_nCurrentIndex].hMainWnd,WM_QUIT,0,0); + Refresh(); + return; + } + + HANDLE hProcess=::OpenProcess(PROCESS_TERMINATE,FALSE, + m_arrAppInfo[m_nCurrentIndex].dwProcessID); + if(hProcess!=NULL) + { + ::TerminateProcess(hProcess,FALSE); + Refresh(); + } + +} + +void CApplicationsDialog::CleanThreads() +{ + // kill and close all threads + for(int nIndex=0; nIndexAdd(appInfo); + } + return TRUE; +} + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/ApplicationsDialog.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/ApplicationsDialog.h new file mode 100644 index 0000000..5b4d4ae --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/ApplicationsDialog.h @@ -0,0 +1,121 @@ +#if !defined(AFX_APPLICATIONSDIALOG_H__0786AFA1_58C3_11D2_B475_00E0291A4FD3__INCLUDED_) +#define AFX_APPLICATIONSDIALOG_H__0786AFA1_58C3_11D2_B475_00E0291A4FD3__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// ApplicationsDialog.h : header file +// + +#include "afxtempl.h" + +#include "PageDialog.h" +#include "OXTreeCtrl.h" +#include "OXLayoutManager.h" +#include "OXSysInfo.h" +#include "OXProcess.h" + +///////////////////////////////////////////////////////////////////////////// +// CApplicationsDialog dialog + +typedef struct _tagAPPLICATIONINFO +{ + DWORD dwProcessID; + HWND hMainWnd; + BOOL bGotRespond; + + // constructor + _tagAPPLICATIONINFO() + { + dwProcessID=0xffffffff; + hMainWnd=NULL; + bGotRespond=TRUE; + } + + // copy constructor + _tagAPPLICATIONINFO& operator=(const _tagAPPLICATIONINFO& appInfo) + { + dwProcessID=appInfo.dwProcessID; + hMainWnd=appInfo.hMainWnd; + bGotRespond=appInfo.bGotRespond; + return *this; + } + +} APPLICATIONINFO; + +typedef CArray CAppInfoArray; + + +class CApplicationsDialog : public CPageDialog +{ +// Construction +public: + CApplicationsDialog(); // standard constructor + +// Dialog Data + //{{AFX_DATA(CApplicationsDialog) + enum { IDD = IDD_APPLICATIONS_DIALOG }; + CSpinButtonCtrl m_spinExpandLevel; + CEdit m_editExpandLevel; + COXTreeCtrl m_tree; + UINT m_nExpandLevel; + int m_nExpandType; + //}}AFX_DATA + +protected: + void PopulateTree(); + void ExpandTree(int nExpandLevel=-1, HTREEITEM htiParent=NULL); + HTREEITEM InsertItem(CString sItem, HTREEITEM htiParent=NULL, int nImage=-1, + CFont* pFont=NULL, COLORREF clr=CLR_NONE); + +public: + virtual ~CApplicationsDialog() { + CleanThreads(); + } + virtual BOOL IsRefreshAvailable() { return TRUE; } + virtual void Refresh(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CApplicationsDialog) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + CImageList m_ilTree; + COXLayoutManager m_LayoutManager; + COXSysInfo m_SysInfo; + CAppInfoArray m_arrAppInfo; + CArray m_arrThreads; + int m_nCurrentIndex; + COXProcess m_process; + +protected: + virtual void OnInitDialog(); + void ShowControls(); + void CleanThreads(); + + static BOOL CALLBACK EnumMainWindows(HWND hWnd, LPARAM lParam); + + // Generated message map functions + //{{AFX_MSG(CApplicationsDialog) + afx_msg void OnRadioExpandall(); + afx_msg void OnRadioExpandlevel(); + afx_msg void OnDblclkTreeServices(NMHDR* pNMHDR, LRESULT* pResult); + afx_msg void OnRclickTreeApplications(NMHDR* pNMHDR, LRESULT* pResult); + //}}AFX_MSG + afx_msg void OnAppWndSwitchTo(); + afx_msg void OnAppWndBringToFront(); + afx_msg void OnAppWndMinimize(); + afx_msg void OnAppWndMaximize(); + afx_msg void OnAppWndRestore(); + afx_msg void OnAppWndClose(); + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_APPLICATIONSDIALOG_H__0786AFA1_58C3_11D2_B475_00E0291A4FD3__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/NetworkResourcesDialog.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/NetworkResourcesDialog.cpp new file mode 100644 index 0000000..999e366 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/NetworkResourcesDialog.cpp @@ -0,0 +1,416 @@ +// NetworkResourcesDialog.cpp : implementation file +// + +#include "stdafx.h" +#include "systemstateinfo.h" +#include "NetworkResourcesDialog.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CNetworkResourcesDialog dialog + + +CNetworkResourcesDialog::CNetworkResourcesDialog() : CPageDialog() +{ + //{{AFX_DATA_INIT(CNetworkResourcesDialog) + m_bShowComment = TRUE; + m_bShowDisks = TRUE; + m_bShowPrinters = TRUE; + m_bReportErrors = TRUE; + m_nResourceScope = -1; + m_nInitialLevel = 0; + m_nMaxLevel = 10; + //}}AFX_DATA_INIT +} + + +void CNetworkResourcesDialog::DoDataExchange(CDataExchange* pDX) +{ + CPageDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CNetworkResourcesDialog) + DDX_Control(pDX, IDC_SPIN_MAXLEVEL, m_spinMaxLevel); + DDX_Control(pDX, IDC_SPIN_INITIALLEVEL, m_spinInitialLevel); + DDX_Control(pDX, IDC_SEPARATOR2, m_ctlSeparator2); + DDX_Control(pDX, IDC_SEPARATOR1, m_ctlSeparator1); + DDX_Control(pDX, IDC_RESOURCES_TREE, m_treeNetBrowse); + DDX_Control(pDX, IDC_LIST_DETAILS, m_listDetails); + DDX_Control(pDX, IDC_EDIT_MAXLEVEL, m_editMaxLevel); + DDX_Control(pDX, IDC_EDIT_INITIALLEVEL, m_editInitialLevel); + DDX_Control(pDX, IDC_COMBO_SCOPE, m_cmbResourceScope); + DDX_Check(pDX, IDC_CHECK_COMMENTS, m_bShowComment); + DDX_Check(pDX, IDC_CHECK_DISKS, m_bShowDisks); + DDX_Check(pDX, IDC_CHECK_PRINTERS, m_bShowPrinters); + DDX_Check(pDX, IDC_CHECK_REPORT, m_bReportErrors); + DDX_CBIndex(pDX, IDC_COMBO_SCOPE, m_nResourceScope); + DDX_Text(pDX, IDC_EDIT_INITIALLEVEL, m_nInitialLevel); + DDX_Text(pDX, IDC_EDIT_MAXLEVEL, m_nMaxLevel); + //}}AFX_DATA_MAP +} + + +BEGIN_MESSAGE_MAP(CNetworkResourcesDialog, CPageDialog) + //{{AFX_MSG_MAP(CNetworkResourcesDialog) + ON_NOTIFY(TVN_SELCHANGED, IDC_RESOURCES_TREE, OnSelchangedResourcesTree) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CNetworkResourcesDialog message handlers + +void CNetworkResourcesDialog::OnInitDialog() +{ + CPageDialog::OnInitDialog(); + + // TODO: Add extra initialization here + + // Fill combo box with values + m_cmbResourceScope.AddString(_T("Connected Resources")); + m_cmbResourceScope.AddString(_T("Global Resources")); + m_cmbResourceScope.AddString(_T("Persistent Connections")); + m_cmbResourceScope.AddString(_T("Recent Connections")); + m_cmbResourceScope.AddString(_T("Current Context Resources")); + // ... Net scope is 1-based, index in combo is 0-based + m_cmbResourceScope.SetCurSel(4); + m_nResourceScope=4; + + // Set the spin ranges + m_spinMaxLevel.SetRange(0,100); + m_spinInitialLevel.SetRange(0,100); + + // ... Set net browse tree initial values + SetTreeInitSettings(); + + // initialize list of network resource detailes + TCHAR rgtsz[][20] = {_T("Name"),_T("Value"),_T("Description")}; + LV_COLUMN lvcolumn; + for(int nIndex=0; nIndex<3; nIndex++) // add the columns to the list control + { + lvcolumn.mask=LVCF_FMT|LVCF_SUBITEM|LVCF_TEXT|LVCF_WIDTH; + lvcolumn.fmt=LVCFMT_LEFT; + lvcolumn.pszText=rgtsz[nIndex]; + lvcolumn.iSubItem=nIndex; + lvcolumn.cx=(nIndex==0 ? 70 : (nIndex==1 ? 40 : 150)); + VERIFY(m_listDetails.InsertColumn(nIndex,&lvcolumn)!=-1); + } + + + // layout manager + // + m_LayoutManager.Attach(this); + + // tree control + m_LayoutManager.TieChild(IDC_RESOURCES_TREE,OX_LMS_ANY,OX_LMT_SAME); + + // list control + m_LayoutManager.TieChild(IDC_LIST_DETAILS, + OX_LMS_RIGHT|OX_LMS_BOTTOM|OX_LMS_LEFT,OX_LMT_SAME); + + // separators, combo, check buttons and expand level edit controls + m_LayoutManager.TieChild(IDC_SEPARATOR1,OX_LMS_RIGHT|OX_LMS_BOTTOM, + OX_LMT_SAME); + m_LayoutManager.TieChild(IDC_SEPARATOR2,OX_LMS_RIGHT|OX_LMS_BOTTOM, + OX_LMT_SAME); + + m_LayoutManager.TieChild(IDC_COMBO_SCOPE,OX_LMS_RIGHT|OX_LMS_BOTTOM, + OX_LMT_SAME); + + m_LayoutManager.TieChild(IDC_CHECK_COMMENTS,OX_LMS_RIGHT|OX_LMS_BOTTOM, + OX_LMT_SAME); + m_LayoutManager.TieChild(IDC_CHECK_DISKS,OX_LMS_RIGHT|OX_LMS_BOTTOM, + OX_LMT_SAME); + m_LayoutManager.TieChild(IDC_CHECK_PRINTERS,OX_LMS_RIGHT|OX_LMS_BOTTOM, + OX_LMT_SAME); + m_LayoutManager.TieChild(IDC_CHECK_REPORT,OX_LMS_RIGHT|OX_LMS_BOTTOM, + OX_LMT_SAME); + + m_LayoutManager.TieChild(IDC_STATIC_INITIALLEVEL,OX_LMS_RIGHT|OX_LMS_BOTTOM, + OX_LMT_SAME); + m_LayoutManager.TieChild(IDC_EDIT_INITIALLEVEL,OX_LMS_RIGHT|OX_LMS_BOTTOM, + OX_LMT_SAME); + m_LayoutManager.TieChild(IDC_SPIN_INITIALLEVEL,OX_LMS_RIGHT|OX_LMS_BOTTOM, + OX_LMT_SAME); + + m_LayoutManager.TieChild(IDC_STATIC_MAXLEVEL,OX_LMS_RIGHT|OX_LMS_BOTTOM, + OX_LMT_SAME); + m_LayoutManager.TieChild(IDC_EDIT_MAXLEVEL,OX_LMS_RIGHT|OX_LMS_BOTTOM, + OX_LMT_SAME); + m_LayoutManager.TieChild(IDC_SPIN_MAXLEVEL,OX_LMS_RIGHT|OX_LMS_BOTTOM, + OX_LMT_SAME); + ////////////////// + + // Perform first time initialization if necessary + if (!m_treeNetBrowse.IsInitialized()) + VERIFY(m_treeNetBrowse.Initialize()); + m_treeNetBrowse.SetFocus(); + m_treeNetBrowse.SelectItem(m_treeNetBrowse.GetRootItem()); + + // item tips for Details List control + m_ItemTip.Attach(&m_listDetails); + + ////////////////////////////////////// +} + + +void CNetworkResourcesDialog::Refresh() +{ + // Get the data from the GUI + if (!UpdateData(TRUE)) + // ... Data validation failed, user already warned, so just return + return; + + // ... Set new initial values + SetTreeInitSettings(); + // ... Build the contents of the tree again + m_treeNetBrowse.BuildTreeContents(); + // ... Select the root + m_treeNetBrowse.SelectItem(m_treeNetBrowse.GetRootItem()); + m_treeNetBrowse.SetFocus(); +} + +void CNetworkResourcesDialog::SetTreeInitSettings() +{ + // Set initial values of the net browse control + m_treeNetBrowse.ShowCommentName(m_bShowComment); + m_treeNetBrowse.ShowDisks(m_bShowDisks); + m_treeNetBrowse.ShowPrinters(m_bShowPrinters); + // ... Net scope is 1-based, index in combo is 0-based + m_treeNetBrowse.SetResourceScope(m_nResourceScope+1); + m_treeNetBrowse.SetMaxNumLevels(m_nMaxLevel); + m_treeNetBrowse.SetInitialExpandLevel(m_nInitialLevel); + m_treeNetBrowse.ReportErrors(m_bReportErrors); +} + +void CNetworkResourcesDialog::OnSelchangedResourcesTree(NMHDR* pNMHDR, + LRESULT* pResult) +{ + UNREFERENCED_PARAMETER(pNMHDR); + // TODO: Add your control notification handler code here + + // SHow the information about the currently selected resource + const NETRESOURCE* pNetResource=m_treeNetBrowse.GetCurrentNetResource(); + PopulateDetailsList(pNetResource); + + *pResult=0; +} + + +void CNetworkResourcesDialog::PopulateDetailsList(const NETRESOURCE* pNetResource) +{ + m_listDetails.SetRedraw(FALSE); + + VERIFY(m_listDetails.DeleteAllItems()); + if(pNetResource!=NULL) + { + int nIndex=0; + CString sValue; + + sValue.Format(_T("%i"),pNetResource->dwScope); + InsertDetailsListItem(nIndex,_T("Scope"),sValue, + GetScopeName(pNetResource)); + + sValue.Format(_T("%i"), pNetResource->dwType); + InsertDetailsListItem(nIndex,_T("Type"),sValue, + GetTypeName(pNetResource)); + + sValue.Format(_T("%i"), pNetResource->dwDisplayType); + InsertDetailsListItem(nIndex,_T("Display Type"),sValue, + GetDisplayTypeName(pNetResource)); + + sValue.Format(_T("0x%X"), pNetResource->dwUsage); + InsertDetailsListItem(nIndex,_T("Usage"),sValue, + GetUsageName(pNetResource)); + + if(pNetResource->lpLocalName!=NULL && + lstrlen(pNetResource->lpLocalName)>0) + InsertDetailsListItem(nIndex,_T("Local Name"),_T(""), + pNetResource->lpLocalName); + + if(pNetResource->lpRemoteName!=NULL && + lstrlen(pNetResource->lpRemoteName)>0) + InsertDetailsListItem(nIndex,_T("Remote Name"),_T(""), + pNetResource->lpRemoteName); + + if(pNetResource->lpComment!=NULL && + lstrlen(pNetResource->lpComment)>0) + InsertDetailsListItem(nIndex,_T("Comment"),_T(""), + pNetResource->lpComment); + + if(pNetResource->lpProvider!=NULL && + lstrlen(pNetResource->lpProvider)>0) + InsertDetailsListItem(nIndex,_T("Provider"),_T(""), + pNetResource->lpProvider); + } + + if(m_listDetails.GetItemCount()>0) + m_listDetails.SetItemState(0,LVIS_SELECTED|LVIS_FOCUSED, + LVIS_SELECTED|LVIS_FOCUSED); + + m_listDetails.SetRedraw(TRUE); + + UpdateData(FALSE); +} + +void CNetworkResourcesDialog::InsertDetailsListItem(int& nIndex, + const CString& sName, + const CString& sValue, + const CString& sDescription) +{ + ASSERT(nIndex>=0); + + LV_ITEM lvitem={ 0 }; + + // name + VERIFY(m_listDetails.InsertItem(nIndex,sName)!=-1); + + // value + lvitem.mask=LVIF_TEXT; + lvitem.iItem=nIndex; + lvitem.iSubItem=1; + lvitem.pszText=(LPTSTR)(LPCTSTR)sValue; + VERIFY(m_listDetails.SetItem(&lvitem)); + + // description + lvitem.mask=LVIF_TEXT; + lvitem.iItem=nIndex; + lvitem.iSubItem=2; + lvitem.pszText=(LPTSTR)(LPCTSTR)sDescription; + VERIFY(m_listDetails.SetItem(&lvitem)); + + nIndex++; +} + + +CString CNetworkResourcesDialog::GetScopeName(const NETRESOURCE* pNetResource) const +{ + ASSERT(pNetResource != NULL); + CString sScopeName; + switch (pNetResource->dwScope) + { + case RESOURCE_CONNECTED: + sScopeName = _T("(Connected resources)"); + break; + case RESOURCE_GLOBALNET: + sScopeName = _T("(Global resources)"); + break; + case RESOURCE_REMEMBERED: + sScopeName = _T("(Persistent connections)"); + break; + case RESOURCE_RECENT: + sScopeName = _T("(Recent connections)"); + break; + case RESOURCE_CONTEXT: + sScopeName = _T("(Current context resources)"); + break; + default: + // Let string stay empty + break; + } + return sScopeName; +} + +CString CNetworkResourcesDialog::GetTypeName(const NETRESOURCE* pNetResource) const +{ + ASSERT(pNetResource != NULL); + CString sTypeName; + switch (pNetResource->dwType) + { + case RESOURCETYPE_ANY: + sTypeName = _T("(Any resource)"); + break; + case RESOURCETYPE_DISK: + sTypeName = _T("(Disk resource)"); + break; + case RESOURCETYPE_PRINT: + sTypeName = _T("(Print resource)"); + break; + case RESOURCETYPE_RESERVED: + sTypeName = _T("(Reserved resource)"); + break; + case RESOURCETYPE_UNKNOWN: + sTypeName = _T("(Unknown resource)"); + break; + default: + // Let string stay empty + break; + } + return sTypeName; +} + +CString CNetworkResourcesDialog::GetDisplayTypeName(const NETRESOURCE* pNetResource) const +{ + ASSERT(pNetResource != NULL); + CString sDisplayTypeName; + switch (pNetResource->dwDisplayType) + { + case RESOURCEDISPLAYTYPE_GENERIC: + sDisplayTypeName = _T("(Unspecified)"); + break; + case RESOURCEDISPLAYTYPE_DOMAIN: + sDisplayTypeName = _T("(Domain)"); + break; + case RESOURCEDISPLAYTYPE_SERVER: + sDisplayTypeName = _T("(Server)"); + break; + case RESOURCEDISPLAYTYPE_SHARE: + sDisplayTypeName = _T("(Share)"); + break; + case RESOURCEDISPLAYTYPE_FILE: + sDisplayTypeName = _T("(file)"); + break; + case RESOURCEDISPLAYTYPE_GROUP: + sDisplayTypeName = _T("(Broup)"); + break; + case RESOURCEDISPLAYTYPE_NETWORK: + sDisplayTypeName = _T("(Network)"); + break; + case RESOURCEDISPLAYTYPE_ROOT: + sDisplayTypeName = _T("(Network Root)"); + break; + case RESOURCEDISPLAYTYPE_SHAREADMIN: + sDisplayTypeName = _T("(Administrative Share)"); + break; + case RESOURCEDISPLAYTYPE_DIRECTORY: + sDisplayTypeName = _T("(Directory)"); + break; + case RESOURCEDISPLAYTYPE_TREE: + sDisplayTypeName = _T("(Tree)"); + break; + default: + // Let string stay empty + break; + } + return sDisplayTypeName; +} + +CString CNetworkResourcesDialog::GetUsageName(const NETRESOURCE* pNetResource) const +{ + ASSERT(pNetResource != NULL); + CString sUsageName; + if (pNetResource->dwScope == RESOURCE_GLOBALNET) + { + if ((pNetResource->dwUsage & RESOURCEUSAGE_CONNECTABLE) == RESOURCEUSAGE_CONNECTABLE) + sUsageName += _T("Connectable - "); + if ((pNetResource->dwUsage & RESOURCEUSAGE_CONTAINER) == RESOURCEUSAGE_CONTAINER) + sUsageName += _T("Container - "); + if ((pNetResource->dwUsage & RESOURCEUSAGE_NOLOCALDEVICE) == RESOURCEUSAGE_NOLOCALDEVICE) + sUsageName += _T("Local not needed - "); + if ((pNetResource->dwUsage & RESOURCEUSAGE_SIBLING) == RESOURCEUSAGE_SIBLING) + sUsageName += _T("Sibling - "); + if ((pNetResource->dwUsage & RESOURCEUSAGE_RESERVED) == RESOURCEUSAGE_RESERVED) + sUsageName += _T("Reserved - "); + if (!sUsageName.IsEmpty()) + { + // ... Remove trailing hyphen + sUsageName = sUsageName.Left(sUsageName.GetLength() - 3); + // ... Add parentheses + sUsageName = _T("(") + sUsageName + _T(")"); + } + } + return sUsageName; +} + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/NetworkResourcesDialog.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/NetworkResourcesDialog.h new file mode 100644 index 0000000..59abfcb --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/NetworkResourcesDialog.h @@ -0,0 +1,85 @@ +#if !defined(AFX_NETWORKRESOURCESDIALOG_H__33FD9B83_533B_11D2_B475_00E0291A4FD3__INCLUDED_) +#define AFX_NETWORKRESOURCESDIALOG_H__33FD9B83_533B_11D2_B475_00E0291A4FD3__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// NetworkResourcesDialog.h : header file +// + +#include "PageDialog.h" +#include "OXNetBrowseTree.h" +#include "OXLayoutManager.h" +#include "OXItemTip.h" +#include "OXSeparator.h" + +///////////////////////////////////////////////////////////////////////////// +// CNetworkResourcesDialog dialog + +class CNetworkResourcesDialog : public CPageDialog +{ +// Construction +public: + CNetworkResourcesDialog(); // standard constructor + +// Dialog Data + //{{AFX_DATA(CNetworkResourcesDialog) + enum { IDD = IDD_NETWORKRESOURCES_DIALOG }; + CSpinButtonCtrl m_spinMaxLevel; + CSpinButtonCtrl m_spinInitialLevel; + COXSeparator m_ctlSeparator2; + COXSeparator m_ctlSeparator1; + COXNetBrowseTree m_treeNetBrowse; + CListCtrl m_listDetails; + CEdit m_editMaxLevel; + CEdit m_editInitialLevel; + CComboBox m_cmbResourceScope; + BOOL m_bShowComment; + BOOL m_bShowDisks; + BOOL m_bShowPrinters; + BOOL m_bReportErrors; + int m_nResourceScope; + UINT m_nInitialLevel; + UINT m_nMaxLevel; + //}}AFX_DATA + +public: + virtual BOOL IsRefreshAvailable() { return TRUE; } + virtual void Refresh(); + + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CNetworkResourcesDialog) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + COXLayoutManager m_LayoutManager; + COXItemTip m_ItemTip; + + virtual void OnInitDialog(); + + void SetTreeInitSettings(); + void PopulateDetailsList(const NETRESOURCE* pNetResource); + void InsertDetailsListItem(int& nIndex, const CString& sName, + const CString& sValue, const CString& sDescription); + CString GetScopeName(const NETRESOURCE* pNetResource) const; + CString GetTypeName(const NETRESOURCE* pNetResource) const; + CString GetDisplayTypeName(const NETRESOURCE* pNetResource) const; + CString GetUsageName(const NETRESOURCE* pNetResource) const; + + + // Generated message map functions + //{{AFX_MSG(CNetworkResourcesDialog) + afx_msg void OnSelchangedResourcesTree(NMHDR* pNMHDR, LRESULT* pResult); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_NETWORKRESOURCESDIALOG_H__33FD9B83_533B_11D2_B475_00E0291A4FD3__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/PageDialog.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/PageDialog.cpp new file mode 100644 index 0000000..5e3e4fa --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/PageDialog.cpp @@ -0,0 +1,82 @@ +// PageDialog.cpp : implementation file +// + +#include "stdafx.h" +#include "PageDialog.h" + +#include +#ifndef __OXMFCIMPL_H__ +#if _MFC_VER >= 0x0700 + #include <..\src\mfc\afximpl.h> +#else + #include <..\src\afximpl.h> +#endif +#define __OXMFCIMPL_H__ +#endif + + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CPageDialog dialog + + +BEGIN_MESSAGE_MAP(CPageDialog, CWnd) + //{{AFX_MSG_MAP(CPageDialog) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CPageDialog message handlers + +// virtual override of CWnd::Create +BOOL CPageDialog::Create(LPCTSTR lpszTemplateName, CWnd* pParentWnd, CRect rect, + UINT nID, DWORD dwStyle/*=WS_VISIBLE|WS_CHILD*/) +{ + ASSERT(pParentWnd!=NULL); + ASSERT(lpszTemplateName!=NULL); + + // initialize common controls + VERIFY(AfxDeferRegisterClass(AFX_WNDCOMMCTLS_REG)); + + // call PreCreateWindow to get prefered extended style + CREATESTRUCT cs={ 0 }; + cs.style=dwStyle; + if(!PreCreateWindow(cs)) + return FALSE; + + // create a modeless dialog + if (!CreateDlg(lpszTemplateName, pParentWnd)) + return FALSE; + + // we use the style from the template - but make sure that + // the WS_BORDER bit is correct + // the WS_BORDER bit will be whatever is in dwRequestedStyle + ModifyStyle(WS_BORDER|WS_CAPTION,(cs.style&(WS_BORDER|WS_CAPTION))|WS_CHILD); + ModifyStyleEx(WS_EX_CLIENTEDGE,(cs.dwExStyle&WS_EX_CLIENTEDGE)); + + SetDlgCtrlID(nID); + + // initialize controls etc + if (!ExecuteDlgInit(lpszTemplateName)) + return FALSE; + + OnInitDialog(); + + // force the size requested + SetWindowPos(NULL, rect.left, rect.top, + rect.right - rect.left, rect.bottom - rect.top, + SWP_NOZORDER|SWP_NOACTIVATE); + + // make visible if requested + if (dwStyle & WS_VISIBLE) + ShowWindow(SW_NORMAL); + + return TRUE; +} + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/PageDialog.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/PageDialog.h new file mode 100644 index 0000000..68826ac --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/PageDialog.h @@ -0,0 +1,44 @@ +#if !defined(AFX_PAGEDIALOG_H__266F38B5_4D6E_11D2_A730_525400DAF3CE__INCLUDED_) +#define AFX_PAGEDIALOG_H__266F38B5_4D6E_11D2_A730_525400DAF3CE__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// PageDialog.h : header file +// + +///////////////////////////////////////////////////////////////////////////// +// CPageDialog dialog + +class CPageDialog : public CWnd +{ +// Construction +public: + CPageDialog() : CWnd() { }; + + virtual BOOL Create(LPCTSTR lpszTemplateName, CWnd* pParentWnd, CRect rect, + UINT nID, DWORD dwStyle=WS_VISIBLE|WS_CHILD); + + virtual BOOL IsRefreshAvailable() { return FALSE; } + virtual void Refresh() { }; + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CPageDialog) + //}}AFX_VIRTUAL + +// Implementation +protected: + + virtual void OnInitDialog() { UpdateData(FALSE); } + + // Generated message map functions + //{{AFX_MSG(CPageDialog) + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_PAGEDIALOG_H__266F38B5_4D6E_11D2_A730_525400DAF3CE__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/ProcessesDialog.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/ProcessesDialog.cpp new file mode 100644 index 0000000..5bcf817 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/ProcessesDialog.cpp @@ -0,0 +1,371 @@ +// ProcessesDialog.cpp : implementation file +// + +#include "stdafx.h" +#include "systemstateinfo.h" +#include "ProcessesDialog.h" + +#include "OXSysInfo.h" +#include "OXProcess.h" + +#include "UTBStrOp.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CProcessesDialog dialog + + +CProcessesDialog::CProcessesDialog() : CPageDialog() +{ + //{{AFX_DATA_INIT(CProcessesDialog) + m_nExpandLevel = 0; + m_nExpandType = 1; + //}}AFX_DATA_INIT +} + + +void CProcessesDialog::DoDataExchange(CDataExchange* pDX) +{ + CPageDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CProcessesDialog) + DDX_Control(pDX, IDC_SPIN_EXPANDLEVEL, m_spinExpandLevel); + DDX_Control(pDX, IDC_EDIT_EXPANDLEVEL, m_editExpandLevel); + DDX_Control(pDX, IDC_TREE_PROCESSES, m_tree); + DDX_Text(pDX, IDC_EDIT_EXPANDLEVEL, m_nExpandLevel); + DDX_Radio(pDX, IDC_RADIO_EXPANDLEVEL, m_nExpandType); + //}}AFX_DATA_MAP +} + + +BEGIN_MESSAGE_MAP(CProcessesDialog, CPageDialog) + //{{AFX_MSG_MAP(CProcessesDialog) + ON_BN_CLICKED(IDC_RADIO_EXPANDALL, OnRadioExpandall) + ON_BN_CLICKED(IDC_RADIO_EXPANDLEVEL, OnRadioExpandlevel) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CProcessesDialog message handlers + +void CProcessesDialog::OnInitDialog() +{ + CPageDialog::OnInitDialog(); + + // TODO: Add your specialized creation code here + + m_ilTree.Create(IDB_PROCESSES_TREE_IMAGE,16,1,RGB(255,0,255)); + m_tree.SetImageList(&m_ilTree,TVSIL_NORMAL); + + LV_COLUMN lvc={ sizeof(lvc) }; + lvc.fmt=LVCFMT_LEFT; + lvc.cx=237; + lvc.pszText=_T("Process image name"); + lvc.mask = LVCF_FMT|LVCF_WIDTH|LVCF_TEXT; + m_tree.SetColumn(0,&lvc); + m_tree.InsertColumn(1,_T("Process ID"),LVCFMT_LEFT,200,1); + + // set COXTreeCtrl styles + m_tree.ModifyExStyle(0,TVOXS_PICKANYWHERE|TVOXS_ROWSEL); + m_tree.ModifyStyle(0,TVS_SHOWSELALWAYS|TVS_HASBUTTONS| + TVS_HASLINES|TVS_LINESATROOT); + + + // spin control + m_spinExpandLevel.SetRange(0,1); + m_spinExpandLevel.SetPos(0); + + // layout manager + // + m_LayoutManager.Attach(this); + + // tree control + m_LayoutManager.TieChild(IDC_TREE_PROCESSES,OX_LMS_ANY,OX_LMT_SAME); + ////////////////// + + // radio buttons and expand level edit control + m_LayoutManager.TieChild(IDC_RADIO_EXPANDALL, + OX_LMS_LEFT|OX_LMS_BOTTOM,OX_LMT_SAME); + + m_LayoutManager.TieChild(IDC_RADIO_EXPANDLEVEL, + OX_LMS_LEFT|OX_LMS_BOTTOM,OX_LMT_SAME); + + m_LayoutManager.TieChild(IDC_EDIT_EXPANDLEVEL,OX_LMS_LEFT, + OX_LMT_OPPOSITE,IDC_RADIO_EXPANDLEVEL); + m_LayoutManager.TieChild(IDC_EDIT_EXPANDLEVEL,OX_LMS_BOTTOM,OX_LMT_SAME); + + m_LayoutManager.TieChild(IDC_SPIN_EXPANDLEVEL,OX_LMS_LEFT, + OX_LMT_OPPOSITE,IDC_EDIT_EXPANDLEVEL); + m_LayoutManager.TieChild(IDC_SPIN_EXPANDLEVEL,OX_LMS_BOTTOM,OX_LMT_SAME); + ////////////////// + + ////////////////////////////////////// + + PopulateTree(); + + ShowControls(); +} + +void CProcessesDialog::Refresh() +{ + PopulateTree(); +} + +void CProcessesDialog::PopulateTree() +{ + if(!UpdateData()) + return; + + CWaitCursor waitCursor; + + COXProcessIterator processIterator; + if(!processIterator.MakeSnapshot()) + return; + + m_tree.SetRedraw(FALSE); + m_tree.DeleteAllItems(); + + // create fonts to customize tree items appearance + LOGFONT lf; + CFont fontRoot; + CFont fontSubRoot; + CFont* pFontRoot=GetFont(); + if(pFontRoot->GetLogFont(&lf)) + { + lf.lfHeight=-14; + UTBStr::tcsncpy(lf.lfFaceName,LF_FACESIZE,_T("Arial"),LF_FACESIZE); + fontRoot.CreateFontIndirect(&lf); + + lf.lfHeight=-12; + lf.lfWeight=FW_BOLD; + UTBStr::tcsncpy(lf.lfFaceName,LF_FACESIZE,_T("Times New Roman"),LF_FACESIZE); + fontSubRoot.CreateFontIndirect(&lf); + } + pFontRoot=((HFONT)fontRoot!=NULL) ? &fontRoot : NULL; + CFont* pFontSubRoot=((HFONT)fontSubRoot!=NULL) ? &fontSubRoot : NULL; + + CString sValue; + HTREEITEM htiRoot; + HTREEITEM htiItem; + + COLORREF clrTopic=RGB(0,0,255); + COLORREF clrValue=RGB(0,128,0); + + COXSysInfo m_SysInfo; + + HTREEITEM htiSelectItem=NULL; + /////////////////////////////////////////////////// + // + for(int nIndex=0; nIndex0) + { + htiItem=InsertItem(_T("Version"),htiRoot); + + sValue.Format(_T("%d.%d"),HIWORD(dwVersion),LOWORD(dwVersion)); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + + + // priority boost + BOOL bDisabled; + if(processIterator.IsPriorityBoostDisabled(bDisabled)) + { + htiItem=InsertItem(_T("Priority Boost"),htiRoot); + + sValue=(bDisabled ? _T("Disabled") : _T("Enabled")); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + + + // creation time + COleDateTime oleDateTime; + if(processIterator.GetCreationTime(oleDateTime)) + { + htiItem=InsertItem(_T("Creation Time"),htiRoot); + + sValue=oleDateTime.Format(); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + + + // kernel time + DWORDLONG timeSpent; + if(processIterator.GetKernelTime(timeSpent) && timeSpent>0) + { + htiItem=InsertItem(_T("Kernel Time"),htiRoot); + + sValue.Format(_T("%d ms"),timeSpent/10000); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + + + // user time + if(processIterator.GetUserTime(timeSpent) && timeSpent>0) + { + htiItem=InsertItem(_T("User Time"),htiRoot); + + sValue.Format(_T("%d ms"),timeSpent/10000); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + } + + ++processIterator; + } + // + //////////////////////////////////////////////// + + ExpandTree((m_nExpandType==0 ? m_nExpandLevel : -1)); + + m_tree.SetFocus(); + m_tree.SelectItem(htiSelectItem); + + m_tree.SetRedraw(TRUE); +} + + +void CProcessesDialog::ExpandTree(int nExpandLevel/*=-1*/, + HTREEITEM htiParent/*=NULL*/) +{ + if(nExpandLevel==0) + return; + + if(htiParent==NULL) + { + htiParent=m_tree.GetRootItem(); + ASSERT(htiParent!=NULL); + } + + HTREEITEM hti=m_tree.GetNextItem(htiParent,TVGN_CHILD); + while(hti!=NULL) + { + m_tree.Expand(hti,TVE_EXPAND); + + COXTreeItem* xti=m_tree.GetXItem(hti); + ASSERT(xti!=NULL); + if(xti->ItemHasChildren()) + ExpandTree((nExpandLevel==-1 ? -1 : nExpandLevel-1),hti); + + hti=m_tree.GetNextItem(hti,TVGN_NEXT); + } +} + +HTREEITEM CProcessesDialog::InsertItem(CString sItem, HTREEITEM htiParent/*=NULL*/, + int nImage/*=-1*/, CFont* pFont/*=NULL*/, + COLORREF clr/*=CLR_NONE*/) +{ + HTREEITEM hti=m_tree.InsertItem(sItem,htiParent); + ASSERT(hti!=NULL); + + // associate new font + if(pFont!=NULL) + VERIFY(m_tree.SetItemFont(hti,pFont)); + // and new color + if(clr!=CLR_NONE) + VERIFY(m_tree.SetItemColor(hti,clr)); + + m_tree.SetItemImage(hti,nImage,nImage); + + return hti; +} + + +void CProcessesDialog::ShowControls() +{ + if(UpdateData()) + { + CWnd* pDlgItem=GetDlgItem(IDC_EDIT_EXPANDLEVEL); + ASSERT(pDlgItem!=NULL); + pDlgItem->EnableWindow((m_nExpandType==0)); + pDlgItem=GetDlgItem(IDC_SPIN_EXPANDLEVEL); + ASSERT(pDlgItem!=NULL); + pDlgItem->EnableWindow((m_nExpandType==0)); + } +} + +void CProcessesDialog::OnRadioExpandall() +{ + // TODO: Add your control notification handler code here + + ShowControls(); +} + +void CProcessesDialog::OnRadioExpandlevel() +{ + // TODO: Add your control notification handler code here + + ShowControls(); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/ProcessesDialog.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/ProcessesDialog.h new file mode 100644 index 0000000..bed29f1 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/ProcessesDialog.h @@ -0,0 +1,71 @@ +#if !defined(AFX_PROCESSESDIALOG_H__266F38B4_4D6E_11D2_A730_525400DAF3CE__INCLUDED_) +#define AFX_PROCESSESDIALOG_H__266F38B4_4D6E_11D2_A730_525400DAF3CE__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// ProcessesDialog.h : header file +// + +#include "PageDialog.h" +#include "OXTreeCtrl.h" +#include "OXLayoutManager.h" + +///////////////////////////////////////////////////////////////////////////// +// CProcessesDialog dialog + +class CProcessesDialog : public CPageDialog +{ +// Construction +public: + CProcessesDialog(); // standard constructor + +// Dialog Data + //{{AFX_DATA(CProcessesDialog) + enum { IDD = IDD_PROCESSES_DIALOG }; + CSpinButtonCtrl m_spinExpandLevel; + CEdit m_editExpandLevel; + COXTreeCtrl m_tree; + UINT m_nExpandLevel; + int m_nExpandType; + //}}AFX_DATA + +protected: + void PopulateTree(); + void ExpandTree(int nExpandLevel=-1, HTREEITEM htiParent=NULL); + HTREEITEM InsertItem(CString sItem, HTREEITEM htiParent=NULL, int nImage=-1, + CFont* pFont=NULL, COLORREF clr=CLR_NONE); + +public: + virtual BOOL IsRefreshAvailable() { return TRUE; } + virtual void Refresh(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CProcessesDialog) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + CImageList m_ilTree; + COXLayoutManager m_LayoutManager; + +protected: + virtual void OnInitDialog(); + + void ShowControls(); + + // Generated message map functions + //{{AFX_MSG(CProcessesDialog) + afx_msg void OnRadioExpandall(); + afx_msg void OnRadioExpandlevel(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_PROCESSESDIALOG_H__266F38B4_4D6E_11D2_A730_525400DAF3CE__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/ReadMe.txt b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/ReadMe.txt new file mode 100644 index 0000000..7ec3815 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/ReadMe.txt @@ -0,0 +1,81 @@ +======================================================================== + MICROSOFT FOUNDATION CLASS LIBRARY : SystemStateInfo +======================================================================== + + +AppWizard has created this SystemStateInfo application for you. This application +not only demonstrates the basics of using the Microsoft Foundation classes +but is also a starting point for writing your application. + +This file contains a summary of what you will find in each of the files that +make up your SystemStateInfo application. + +SystemStateInfo.h + This is the main header file for the application. It includes other + project specific headers (including Resource.h) and declares the + CSystemStateInfoApp application class. + +SystemStateInfo.cpp + This is the main application source file that contains the application + class CSystemStateInfoApp. + +SystemStateInfo.rc + This is a listing of all of the Microsoft Windows resources that the + program uses. It includes the icons, bitmaps, and cursors that are stored + in the RES subdirectory. This file can be directly edited in Microsoft + Developer Studio. + +res\SystemStateInfo.ico + This is an icon file, which is used as the application's icon. This + icon is included by the main resource file SystemStateInfo.rc. + +res\SystemStateInfo.rc2 + This file contains resources that are not edited by Microsoft + Developer Studio. You should place all resources not + editable by the resource editor in this file. + +SystemStateInfo.clw + This file contains information used by ClassWizard to edit existing + classes or add new classes. ClassWizard also uses this file to store + information needed to create and edit message maps and dialog data + maps and to create prototype member functions. + + +///////////////////////////////////////////////////////////////////////////// + +AppWizard creates one dialog class: + +SystemStateInfoDlg.h, SystemStateInfoDlg.cpp - the dialog + These files contain your CSystemStateInfoDlg class. This class defines + the behavior of your application's main dialog. The dialog's + template is in SystemStateInfo.rc, which can be edited in Microsoft + Developer Studio. + + +///////////////////////////////////////////////////////////////////////////// +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named SystemStateInfo.pch and a precompiled types file named StdAfx.obj. + +Resource.h + This is the standard header file, which defines new resource IDs. + Microsoft Developer Studio reads and updates this file. + +///////////////////////////////////////////////////////////////////////////// +Other notes: + +AppWizard uses "TODO:" to indicate parts of the source code you +should add to or customize. + +If your application uses MFC in a shared DLL, and your application is +in a language other than the operating system's current language, you +will need to copy the corresponding localized resources MFC40XXX.DLL +from the Microsoft Visual C++ CD-ROM onto the system or system32 directory, +and rename it to be MFCLOC.DLL. ("XXX" stands for the language abbreviation. +For example, MFC40DEU.DLL contains resources translated to German.) If you +don't do this, some of the UI elements of your application will remain in the +language of the operating system. + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SSIDialog.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SSIDialog.cpp new file mode 100644 index 0000000..d50260b --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SSIDialog.cpp @@ -0,0 +1,497 @@ +// SSIDialog.cpp : implementation file +// + +#include "stdafx.h" +#include "resource.h" +#include "SystemStateInfo.h" +#include "SSIDialog.h" + +#include "SysInfoDialog.h" +#include "NetworkResourcesDialog.h" +#include "ApplicationsDialog.h" +#include "ProcessesDialog.h" +#include "ServicesDialog.h" + +#include "OXSysInfo.h" +#include "OXSplashWnd.h" + +#include "UTSampleAbout.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + + +#define NUMTOPICS 5 + +///////////////////////////////////////////////////////////////////////////// +// CSSIDialog dialog + +CSSIDialog::CSSIDialog(CWnd* pParent /*=NULL*/) : + CDialog(CSSIDialog::IDD, pParent) +{ + //{{AFX_DATA_INIT(CSSIDialog) + //}}AFX_DATA_INIT + // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 + Initialize(); +} + +void CSSIDialog::Initialize() +{ + m_bInitialized=FALSE; + + m_nActivePage=-1; + + // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 + m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); + + // initialize Taskbar Icon + IniTaskbarIcon(); +} + +void CSSIDialog::IniTaskbarIcon() +{ + m_TaskbarIcon.Create(); + // When there is only one taskbar icon, you don't need to specify an ID. + // The ID is useful only when implementing two (or more) taskbar icons, AND you want + // to handle mouse messages from both icons within one message handler (therefore, you + // need that ID to tell which icon posted the msg). However, it might be a good idea to + // assign an ID, and check the ID in the message handler, especially when you may need + // to derive your classes (somebody else may add another taskbar icon). + + // Note: you don't need to detroy a taskbar icon. It's done in its own destructor. + + m_TaskbarIcon.m_pPopupOwner = this; + // let this dialog handle popup menu's message + // Note: m_pPopupOwner is NOT a member of COXTaskbarIcon. + + m_TaskbarIcon.SetIcon(IDR_MAINFRAME); + m_TaskbarIcon.SetTooltipText(IDR_MAINFRAME); + m_TaskbarIcon.Show(); +} + +void CSSIDialog::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CSSIDialog) + DDX_Control(pDX, IDC_BOTTOMSEPARATOR, m_ctlBottomSeparator); + DDX_Control(pDX, IDC_BUTTON_REFRESH, m_btnRefresh); + DDX_Control(pDX, IDC_TOPIC, m_ctlTopic); + DDX_Control(pDX, IDC_SHB_TOPICS, m_shb); + //}}AFX_DATA_MAP +} + +BEGIN_MESSAGE_MAP(CSSIDialog, CDialog) + //{{AFX_MSG_MAP(CSSIDialog) + ON_WM_SYSCOMMAND() + ON_WM_PAINT() + ON_WM_QUERYDRAGICON() + ON_WM_SIZE() + ON_WM_GETMINMAXINFO() + ON_BN_CLICKED(IDC_BUTTON_REFRESH, OnButtonRefresh) + //}}AFX_MSG_MAP + ON_COMMAND(IDM_CLOSE, OnClose) + ON_COMMAND(IDM_ABOUTBOX, OnAbout) + ON_COMMAND(IDM_RESTORE, OnRestore) + + ON_NOTIFY(SHBN_ACTIVATEITEM,IDC_SHB_TOPICS,OnActivateItem) + ON_NOTIFY(SHBN_CONTEXTMENU, IDC_SHB_TOPICS, OnSHBContextMenu) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CSSIDialog message handlers + +BOOL CSSIDialog::OnInitDialog() +{ + CDialog::OnInitDialog(); + + COXSplashWnd wndSplash; + // the fourth parameter is level of tolerance which + // indicates how much the color can be different from CLR_DEFAULT (which is white) + // before it is actaully accepted as a different color + // for bitmap that we use in this application value of 150 is the best + wndSplash.LoadBitmap(IDB_LOGO,CLR_NONE,NULL,0); + wndSplash.SetUserCancel(FALSE); + wndSplash.Show(SPLASH_NOTIMER,NULL); + + CMenu* pSysMenu = GetSystemMenu(FALSE); + + // Remove standard Restore, Maximize & Minimize items out of system menu. + + // Add "About..." menu item to system menu. + + // IDM_ABOUTBOX must be in the system command range. + ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); + ASSERT(IDM_ABOUTBOX < 0xF000); + + if (pSysMenu != NULL) + { + CString strAboutMenu; + strAboutMenu.LoadString(IDS_ABOUTBOX); + if (!strAboutMenu.IsEmpty()) + { + pSysMenu->AppendMenu(MF_SEPARATOR); + pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); + } + } + + // Set the icon for this dialog. The framework does this automatically + // when the application's main window is not a dialog + SetIcon(m_hIcon, TRUE); // Set big icon + SetIcon(m_hIcon, FALSE); // Set small icon + + // TODO: Add extra initialization here + + COXSysInfo m_SysInfo; + BOOL bIsNTRunning=FALSE; + m_SysInfo.IsNT(&bIsNTRunning); + + // set text color and font for separator + static CFont font; + VERIFY(font.CreatePointFont(140,_T("Times New Roman"))); + m_ctlTopic.SetFont(&font); + m_ctlTopic.SetTextColor(RGB(128,0,0)); + + // setup bitmap button + VERIFY(m_btnRefresh.LoadBitmap(IDB_BITMAP_REFRESH,FALSE,RGB(255,0,255))); + m_btnRefresh.SetToolTip(TRUE); + m_btnRefresh.SetTrackLook(TRUE); + m_btnRefresh.SetImageOffset(CPoint(0,0)); + m_btnRefresh.SetInnerFocusOffset(CPoint(2,2)); + + // create image lists for shortcut bar + VERIFY(m_ilLarge.Create(IDB_SHB_LARGE,32,11,RGB(255,0,255))); + VERIFY(m_ilSmall.Create(IDB_SHB_SMALL,16,11,RGB(255,0,255))); + + // populate shortcut bar + SHB_GROUPINFO shbGroup; + + HSHBGROUP hGroup=m_shb.InsertGroup(_T("Topics")); + ASSERT(hGroup!=NULL); + m_shb.SetLCImageList(hGroup,&m_ilLarge,LVSIL_NORMAL); + m_shb.SetLCImageList(hGroup,&m_ilSmall,LVSIL_SMALL); + // insert statements + // fill standard list controls + const int nNumTopics=NUMTOPICS-(bIsNTRunning ? 0 : 1); + TCHAR shbszItems[][20]={_T("System Info"),_T("Network Resources"), + _T("Applications"), _T("Processes"),_T("Services")/*,_T("DLLs"), + _T("Device Drivers"),_T("Perfomance")*/}; + for(int nIndex=0; nIndexActivateItem(0); + + wndSplash.Hide(); + + PostMessage(WM_NCACTIVATE,TRUE); + + return FALSE; +} + +// If you add a minimize button to your dialog, you will need the code below +// to draw the icon. For MFC applications using the document/view model, +// this is automatically done for you by the framework. + +void CSSIDialog::OnPaint() +{ + if (IsIconic()) + { + CPaintDC dc(this); // device context for painting + + SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); + + // Center icon in client rectangle + int cxIcon = GetSystemMetrics(SM_CXICON); + int cyIcon = GetSystemMetrics(SM_CYICON); + CRect rect; + GetClientRect(&rect); + int x = (rect.Width() - cxIcon + 1) / 2; + int y = (rect.Height() - cyIcon + 1) / 2; + + // Draw the icon + dc.DrawIcon(x, y, m_hIcon); + } + else + { + CDialog::OnPaint(); + } +} + +// The system calls this to obtain the cursor to display while the user drags +// the minimized window. +HCURSOR CSSIDialog::OnQueryDragIcon() +{ + return (HCURSOR) m_hIcon; +} + +void CSSIDialog::OnSysCommand(UINT nID, LPARAM lParam) +{ + if((nID & 0xFFF0) == IDM_ABOUTBOX) + OnAbout(); + else + CDialog::OnSysCommand(nID, lParam); +} + +void CSSIDialog::OnClose() +{ + OnCancel(); +} + +// handling popup menu commands sent by the taskbar icon object +void CSSIDialog::OnRestore() +{ + SetForegroundWindow(); + PostMessage(WM_SYSCOMMAND,SC_RESTORE); + ShowWindow(SW_SHOW); +} + +void CSSIDialog::OnAbout() +{ + CUTSampleAboutDlg dlgAbout(IDR_MAINFRAME,ID_DESCRIPTION_FILE); + dlgAbout.DoModal(); +} + +void CSSIDialog::OnSize(UINT nType, int cx, int cy) +{ + CDialog::OnSize(nType, cx, cy); + + if(nType==SIZE_MINIMIZED) + { + m_TaskbarIcon.SetOwner(NULL); // let taskbar icon do it + // This is only one way to hide the dialog window. In real situation, you may + // want to try DestroyWindow() to conserve system resource if possible (in this + // demo, this dialog is the main window). + ShowWindow(SW_HIDE); + } + + // TODO: Add your message handler code here + if(m_bInitialized) + { + m_LayoutManager.OnSize(cx,cy); + + if(m_nActivePage!=-1) + { + CPageDialog* pPageDialog=NULL; + pPageDialog=m_arrPages[m_nActivePage].pPageDialog; + ASSERT(pPageDialog!=NULL); + ASSERT(::IsWindow(pPageDialog->GetSafeHwnd())); + + pPageDialog->MoveWindow(GetPageRect()); + } + } +} + +void CSSIDialog::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) +{ + // TODO: Add your message handler code here and/or call default + CDialog::OnGetMinMaxInfo(lpMMI); + + lpMMI->ptMinTrackSize.x=400; + lpMMI->ptMinTrackSize.y=300; +} + +void CSSIDialog::OnCancel() +{ + m_arrPages.RemoveAll(); + + CDialog::OnCancel(); +} + +void CSSIDialog::OnActivateItem(NMHDR* pNotifyStruct, LRESULT* result) +{ + LPNMSHORTCUTBAR pNMSHB=(LPNMSHORTCUTBAR)pNotifyStruct; + ASSERT(pNMSHB!=NULL); + + if(pNMSHB->nItem!=m_nActivePage && pNMSHB->nItem>=0 && + pNMSHB->nItemGetSafeHwnd())); + pPageDialog->ShowWindow(SW_HIDE); + } + + CRect rectFrame=GetPageRect(); + + pPageDialog=m_arrPages[pNMSHB->nItem].pPageDialog; + ASSERT(pPageDialog!=NULL); + if(::IsWindow(pPageDialog->GetSafeHwnd())) + { + pPageDialog->ShowWindow(SW_SHOW); + pPageDialog->MoveWindow(rectFrame); + } + else + { + VERIFY(pPageDialog-> + Create(MAKEINTRESOURCE(m_arrPages[pNMSHB->nItem].nTemplateID), + this,rectFrame,pNMSHB->nItem)); + ASSERT(::IsWindow(pPageDialog->GetSafeHwnd())); + } + + pPageDialog->SetFocus(); + + m_btnRefresh.EnableWindow(pPageDialog->IsRefreshAvailable()); + + m_nActivePage=pNMSHB->nItem; + } + + ASSERT(m_shb.GetGroupListCtrl(pNMSHB->hGroup)!=NULL); + CString sTopic=m_shb.GetGroupListCtrl(pNMSHB->hGroup)-> + GetItemText(pNMSHB->nItem,0); + m_ctlTopic.SetWindowText(sTopic); + Invalidate(); + + *result=0; +} + + +void CSSIDialog::OnSHBContextMenu(NMHDR* pNotifyStruct, LRESULT* pResult) +{ + UNREFERENCED_PARAMETER(pNotifyStruct); + *pResult=1; +} + + +CRect CSSIDialog::GetPageRect() +{ + CRect rectTopic; + m_ctlTopic.GetWindowRect(rectTopic); + ScreenToClient(rectTopic); + + CRect rectRefreshButton; + m_btnRefresh.GetWindowRect(rectRefreshButton); + ScreenToClient(rectRefreshButton); + + CRect rectBottomSeparator; + m_ctlBottomSeparator.GetWindowRect(rectBottomSeparator); + ScreenToClient(rectBottomSeparator); + + CRect rectPage(rectTopic.left, + __max(rectTopic.bottom,rectRefreshButton.bottom)+5, + rectRefreshButton.right,rectBottomSeparator.top); + return rectPage; +} + + +void CSSIDialog::OnButtonRefresh() +{ + // TODO: Add your control notification handler code here + + ASSERT(m_nActivePage>=0 && m_nActivePageRefresh(); +} + +BOOL CSSIDialog::PreTranslateMessage(MSG* pMsg) +{ + ASSERT_VALID(this); + + if (pMsg->message == WM_KEYDOWN) + { + if(m_nActivePage!=-1) + { + ASSERT(m_nActivePage>=0 && m_nActivePage + PreTranslateInput(pMsg)) + return TRUE; + } + } + + // handle rest with IsDialogMessage + return CDialog::PreTranslateMessage(pMsg); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SSIDialog.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SSIDialog.h new file mode 100644 index 0000000..3683e3c --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SSIDialog.h @@ -0,0 +1,128 @@ +// SSIDialog.h : header file +// + +#if !defined(_SSIDIALOG_H_) +#define _SSIDIALOG_H_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include + +#include "PageDialog.h" +#include "SSITaskbarIcon.h" + +#include "OXLayoutManager.h" +#include "OXShortcutBar.h" +#include "OXSeparator.h" +#include "OXBitmapButton.h" + +typedef struct _tagPAGEDIALOG +{ + CPageDialog* pPageDialog; + UINT nTemplateID; + + // constructor + _tagPAGEDIALOG(CPageDialog* pPage=NULL, UINT nID=0) + { + pPageDialog=pPage; + nTemplateID=nID; + } + + // destructor + ~_tagPAGEDIALOG() + { + if(pPageDialog!=NULL) + { + if(::IsWindow(pPageDialog->GetSafeHwnd())) + pPageDialog->DestroyWindow(); + delete pPageDialog; + } + } + + // copy constructor + _tagPAGEDIALOG& operator=(const _tagPAGEDIALOG& page) + { + pPageDialog=page.pPageDialog; + nTemplateID=page.nTemplateID; + return *this; + } + +} PAGEDIALOG; + +typedef CArray CPageArray; + +///////////////////////////////////////////////////////////////////////////// +// CSSIDialog dialog + +class CSSIDialog : public CDialog +{ +// Construction +public: + CSSIDialog(CWnd* pParent = NULL); // standard constructor + +// Dialog Data + //{{AFX_DATA(CSSIDialog) + enum { IDD = IDD_SSI_DIALOG }; + COXSeparator m_ctlBottomSeparator; + COXBitmapButton m_btnRefresh; + COXSeparator m_ctlTopic; + COXShortcutBar m_shb; + //}}AFX_DATA + + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CSSIDialog) + public: + virtual BOOL PreTranslateMessage(MSG* pMsg); + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +protected: + void Initialize(); + void IniTaskbarIcon(); + CRect GetPageRect(); + +// Implementation +public: + +protected: + CImageList m_ilLarge; + CImageList m_ilSmall; + + HICON m_hIcon; + CSSITaskbarIcon m_TaskbarIcon; + COXLayoutManager m_LayoutManager; + + BOOL m_bInitialized; + + CPageArray m_arrPages; + int m_nActivePage; + + // Generated message map functions + //{{AFX_MSG(CSSIDialog) + virtual void OnCancel(); + virtual BOOL OnInitDialog(); + afx_msg void OnSysCommand(UINT nID, LPARAM lParam); + afx_msg void OnPaint(); + afx_msg HCURSOR OnQueryDragIcon(); + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI); + afx_msg void OnButtonRefresh(); + //}}AFX_MSG + afx_msg void OnRestore(); + afx_msg void OnClose(); + afx_msg void OnAbout(); + + afx_msg void OnActivateItem(NMHDR* pNotifyStruct, LRESULT* result); + afx_msg void OnSHBContextMenu(NMHDR* pNotifyStruct, LRESULT* pResult); + + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(_SSIDIALOG_H_) + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SSITaskbarIcon.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SSITaskbarIcon.cpp new file mode 100644 index 0000000..6009300 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SSITaskbarIcon.cpp @@ -0,0 +1,58 @@ +#include "stdafx.h" +#include "SSITaskbarIcon.h" + +#include "resource.h" // main symbols + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CSSITaskbarIcon + +BEGIN_MESSAGE_MAP(CSSITaskbarIcon, COXTaskbarIcon) + //{{AFX_MSG_MAP(CSSITaskbarIcon) + ON_WM_LBUTTONDBLCLK() + ON_WM_RBUTTONUP() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + + +void CSSITaskbarIcon::OnRButtonUp(UINT nFlags, CPoint point) +{ + UNREFERENCED_PARAMETER(nFlags); + UNREFERENCED_PARAMETER(point); + // on right click show menu + DoPopupMenu(); +} + +void CSSITaskbarIcon::OnLButtonDblClk(UINT nFlags, CPoint point) +{ + UNREFERENCED_PARAMETER(nFlags); + UNREFERENCED_PARAMETER(point); + // on double click restore the position of window on screen + ::PostMessage(m_pPopupOwner->m_hWnd, WM_COMMAND, IDM_RESTORE, (LPARAM)m_hWnd); +} + +void CSSITaskbarIcon::DoPopupMenu() +{ + CMenu popMenu; + VERIFY(popMenu.LoadMenu(IDR_TRAYICON_POPUPMENU)); + + // set default item + MENUITEMINFO itemInfo={ sizeof(MENUITEMINFO) }; + itemInfo.fMask=MIIM_STATE; + itemInfo.fState=MFS_DEFAULT; + ::SetMenuItemInfo(popMenu.m_hMenu,IDM_RESTORE,FALSE,&itemInfo); + + CPoint posMouse; + GetCursorPos(&posMouse); + + // show menu + m_pPopupOwner->SendMessage(WM_NCACTIVATE,FALSE); + popMenu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, + posMouse.x, posMouse.y, m_pPopupOwner); +} + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SSITaskbarIcon.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SSITaskbarIcon.h new file mode 100644 index 0000000..6f7faef --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SSITaskbarIcon.h @@ -0,0 +1,24 @@ +#ifndef _SSITASKBARICON_H_ +#define _SSITASKBARICON_H_ + +#include "OXTaskbarIcon.h" + +class CSSITaskbarIcon : public COXTaskbarIcon +{ +public: + CSSITaskbarIcon() { }; + void DoPopupMenu(); + // pointer to window to send messages + CWnd* m_pPopupOwner; + + //{{AFX_VIRTUAL(CSSITaskbarIcon) + //}}AFX_VIRTUAL + + //{{AFX_MSG(CSSITaskbarIcon) + afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point); + afx_msg void OnRButtonUp(UINT nFlags, CPoint point); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +#endif // _SSITASKBARICON_H_ diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/ServicesDialog.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/ServicesDialog.cpp new file mode 100644 index 0000000..17c698e --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/ServicesDialog.cpp @@ -0,0 +1,584 @@ +// ServicesDialog.cpp : implementation file +// + +#include "stdafx.h" +#include "systemstateinfo.h" +#include "ServicesDialog.h" + +#include "OXIteratorService.h" + +#include "UTBStrOp.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + + +#define SERVICEREF_FLAG 0x22663344 + +///////////////////////////////////////////////////////////////////////////// +// CServicesDialog dialog + + +CServicesDialog::CServicesDialog() : CPageDialog() +{ + //{{AFX_DATA_INIT(CServicesDialog) + m_nExpandLevel = 0; + m_nExpandType = 1; + //}}AFX_DATA_INIT + + BOOL bIsWindowsNT=FALSE; + m_SysInfo.IsNT(&bIsWindowsNT); + + if(!bIsWindowsNT) + AfxThrowNotSupportedException(); +} + + +void CServicesDialog::DoDataExchange(CDataExchange* pDX) +{ + CPageDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CServicesDialog) + DDX_Control(pDX, IDC_SPIN_EXPANDLEVEL, m_spinExpandLevel); + DDX_Control(pDX, IDC_EDIT_EXPANDLEVEL, m_editExpandLevel); + DDX_Control(pDX, IDC_TREE_SERVICES, m_tree); + DDX_Text(pDX, IDC_EDIT_EXPANDLEVEL, m_nExpandLevel); + DDX_Radio(pDX, IDC_RADIO_EXPANDLEVEL, m_nExpandType); + //}}AFX_DATA_MAP +} + + +BEGIN_MESSAGE_MAP(CServicesDialog, CPageDialog) + //{{AFX_MSG_MAP(CServicesDialog) + ON_BN_CLICKED(IDC_RADIO_EXPANDALL, OnRadioExpandall) + ON_BN_CLICKED(IDC_RADIO_EXPANDLEVEL, OnRadioExpandlevel) + ON_NOTIFY(NM_DBLCLK, IDC_TREE_SERVICES, OnDblclkTreeServices) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CServicesDialog message handlers + +void CServicesDialog::OnInitDialog() +{ + CPageDialog::OnInitDialog(); + + // TODO: Add your specialized creation code here + + m_ilTree.Create(IDB_SERVICES_TREE_IMAGE,16,1,RGB(255,0,255)); + m_tree.SetImageList(&m_ilTree,TVSIL_NORMAL); + + LV_COLUMN lvc={ sizeof(lvc) }; + lvc.fmt=LVCFMT_LEFT; + lvc.cx=237; + lvc.pszText=_T("Item"); + lvc.mask = LVCF_FMT|LVCF_WIDTH|LVCF_TEXT; + m_tree.SetColumn(0,&lvc); + m_tree.InsertColumn(1,_T("Value"),LVCFMT_LEFT,200,1); + + // set COXTreeCtrl styles + m_tree.ModifyExStyle(0,TVOXS_PICKANYWHERE|TVOXS_ROWSEL); + m_tree.ModifyStyle(0,TVS_SHOWSELALWAYS|TVS_HASBUTTONS| + TVS_HASLINES|TVS_LINESATROOT); + + + // spin control + m_spinExpandLevel.SetRange(0,3); + m_spinExpandLevel.SetPos(0); + + // layout manager + // + m_LayoutManager.Attach(this); + + // tree control + m_LayoutManager.TieChild(IDC_TREE_SERVICES,OX_LMS_ANY,OX_LMT_SAME); + ////////////////// + + // radio buttons and expand level edit control + m_LayoutManager.TieChild(IDC_RADIO_EXPANDALL, + OX_LMS_LEFT|OX_LMS_BOTTOM,OX_LMT_SAME); + + m_LayoutManager.TieChild(IDC_RADIO_EXPANDLEVEL, + OX_LMS_LEFT|OX_LMS_BOTTOM,OX_LMT_SAME); + + m_LayoutManager.TieChild(IDC_EDIT_EXPANDLEVEL,OX_LMS_LEFT, + OX_LMT_OPPOSITE,IDC_RADIO_EXPANDLEVEL); + m_LayoutManager.TieChild(IDC_EDIT_EXPANDLEVEL,OX_LMS_BOTTOM,OX_LMT_SAME); + + m_LayoutManager.TieChild(IDC_SPIN_EXPANDLEVEL,OX_LMS_LEFT, + OX_LMT_OPPOSITE,IDC_EDIT_EXPANDLEVEL); + m_LayoutManager.TieChild(IDC_SPIN_EXPANDLEVEL,OX_LMS_BOTTOM,OX_LMT_SAME); + ////////////////// + + ////////////////////////////////////// + + PopulateTree(); + + ShowControls(); +} + +void CServicesDialog::Refresh() +{ + PopulateTree(); +} + +void CServicesDialog::PopulateTree() +{ + if(!UpdateData()) + return; + + CWaitCursor waitCursor; + + m_tree.SetRedraw(FALSE); + m_tree.DeleteAllItems(); + COXTreeHeader* pHeader=(COXTreeHeader*)m_tree.GetDlgItem(0); + ASSERT(pHeader); + pHeader->SortColumn(-1,0); + + // create fonts to customize tree items appearance + LOGFONT lf; + CFont fontRoot; + CFont fontSubRoot; + CFont* pFontRoot=GetFont(); + if(pFontRoot->GetLogFont(&lf)) + { + lf.lfHeight=-14; + UTBStr::tcsncpy(lf.lfFaceName,LF_FACESIZE,_T("Arial"),LF_FACESIZE); + fontRoot.CreateFontIndirect(&lf); + + lf.lfHeight=-12; + lf.lfWeight=FW_BOLD; + UTBStr::tcsncpy(lf.lfFaceName,LF_FACESIZE,_T("Times New Roman"),LF_FACESIZE); + fontSubRoot.CreateFontIndirect(&lf); + } + pFontRoot=((HFONT)fontRoot!=NULL) ? &fontRoot : NULL; + CFont* pFontSubRoot=((HFONT)fontSubRoot!=NULL) ? &fontSubRoot : NULL; + + HTREEITEM htiRoot=NULL; + HTREEITEM htiSelectItem=NULL; + + COLORREF clrTopic=RGB(0,0,255); + + + COXIteratorService iterServices; + + // iterate through all services + // + + CStringArray arrAllServiceName; + CStringArray arrServiceName; + CStringArray arrDeviceName; + + VERIFY(iterServices.StartIteration()); + iterServices.GetKeyNames(arrAllServiceName); + int nIndex=0; + for(nIndex=0; nIndex0) + { + htiRoot=InsertItem(_T("Services"),NULL,0,pFontRoot,clrTopic); + htiSelectItem=htiRoot; + } + + for(nIndex=0; nIndex0) + { + htiRoot=InsertItem(_T("Devices"),NULL,1,pFontRoot,clrTopic); + if(htiSelectItem==NULL) + htiSelectItem=htiRoot; + } + + for(nIndex=0; nIndexItemHasChildren()) + ExpandTree((nExpandLevel==-1 ? -1 : nExpandLevel-1),hti); + + hti=m_tree.GetNextItem(hti,TVGN_NEXT); + } +} + +HTREEITEM CServicesDialog::InsertItem(CString sItem, HTREEITEM htiParent/*=NULL*/, + int nImage/*=-1*/, CFont* pFont/*=NULL*/, + COLORREF clr/*=CLR_NONE*/) +{ + HTREEITEM hti=m_tree.InsertItem(sItem,htiParent); + ASSERT(hti!=NULL); + + // associate new font + if(pFont!=NULL) + VERIFY(m_tree.SetItemFont(hti,pFont)); + // and new color + if(clr!=CLR_NONE) + VERIFY(m_tree.SetItemColor(hti,clr)); + + m_tree.SetItemImage(hti,nImage,nImage); + + return hti; +} + +void CServicesDialog::InsertServiceInfo(CString sServiceKeyName, + HTREEITEM htiRoot, + CFont* pFont, + BOOL bDevice) +{ + CString sValue; + DWORD dwValue; + HTREEITEM htiSubRoot; + HTREEITEM htiItem; + +// COLORREF clrTopic=RGB(0,0,255); + COLORREF clrValue=RGB(0,128,0); + + COXService service(sServiceKeyName); + SERVICE_STATUS ss; + + // Display name and status + htiSubRoot=InsertItem(service.QueryDisplayName(),htiRoot,-1,pFont); + + service.QueryStatus(&ss,TRUE); + switch(ss.dwCurrentState) + { + case SERVICE_STOPPED: + sValue=_T("Stopped"); + break; + case SERVICE_START_PENDING: + sValue=_T("Start pending"); + break; + case SERVICE_STOP_PENDING: + sValue=_T("Stop pending"); + break; + case SERVICE_RUNNING: + sValue=_T("Running"); + break; + case SERVICE_CONTINUE_PENDING: + sValue=_T("Continue pending"); + break; + case SERVICE_PAUSE_PENDING: + sValue=_T("Pause pending"); + break; + case SERVICE_PAUSED: + sValue=_T("Paused"); + break; + default: + if(ss.dwWin32ExitCode==NO_ERROR) + sValue=_T("Status:"); + else + sValue=_T("Stopped"); + } + VERIFY(m_tree.SetSubItem(htiSubRoot,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + ///////////////////////////////////////////// + + // Binary Path Name + CString sWindowsDirTag=_T("\\SystemRoot"); + CString sWindowsDir; + if(!m_SysInfo.GetWindowsDir(&sWindowsDir)) + sWindowsDir.Empty(); + sValue=service.QueryBinaryPathName(); + if(sValue.IsEmpty()) + sValue=_T(""); + if(!sWindowsDir.IsEmpty() && sValue.Find(sWindowsDirTag)==0) + sValue=sWindowsDir+sValue.Mid(sWindowsDirTag.GetLength()); + htiItem=InsertItem(_T("Pathname"),htiSubRoot); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + VERIFY(m_tree.SetItemDrawEllipsis(htiItem,DT_PATH_ELLIPSIS,1)); + ///////////////////////////////////////////// + + // Service Type + sValue.Empty(); + htiItem=InsertItem(_T("Service Type"),htiSubRoot); + if((ss.dwServiceType&SERVICE_WIN32_OWN_PROCESS)== + SERVICE_WIN32_OWN_PROCESS) + { + ASSERT(!bDevice); + sValue=_T("Runs in its own process"); + } + else if((ss.dwServiceType&SERVICE_WIN32_SHARE_PROCESS)== + SERVICE_WIN32_SHARE_PROCESS) + { + ASSERT(!bDevice); + sValue=_T("Shares a process with other processes"); + } + else if((ss.dwServiceType&SERVICE_KERNEL_DRIVER)== + SERVICE_KERNEL_DRIVER) + { + ASSERT(bDevice); + sValue=_T("Kernel device driver"); + } + else if((ss.dwServiceType&SERVICE_FILE_SYSTEM_DRIVER)== + SERVICE_FILE_SYSTEM_DRIVER) + { + ASSERT(bDevice); + sValue=_T("File system driver"); + } + if((ss.dwServiceType&SERVICE_INTERACTIVE_PROCESS)== + SERVICE_INTERACTIVE_PROCESS) + { + ASSERT(!bDevice); + ASSERT(!sValue.IsEmpty()); + sValue=sValue+_T(" and can iteract with the desktop"); + } + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + ///////////////////////////////////////////// + + // Start Type + dwValue=service.QueryStartType(); + htiItem=InsertItem(_T("Start Type"),htiSubRoot); + switch(dwValue) + { + case SERVICE_BOOT_START: + ASSERT(bDevice); + sValue=_T("Boot"); + break; + case SERVICE_SYSTEM_START: + ASSERT(bDevice); + sValue=_T("System"); + break; + case SERVICE_AUTO_START: + sValue=_T("Automatic"); + break; + case SERVICE_DEMAND_START: + sValue=_T("Manual"); + break; + case SERVICE_DISABLED: + sValue=_T("Disabled"); + break; + default: + sValue=_T(""); + } + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + ///////////////////////////////////////////// + + // Error Severity + dwValue=service.QueryErrorControl(); + htiItem=InsertItem(_T("Error Severity"),htiSubRoot); + switch(dwValue) + { + case SERVICE_ERROR_IGNORE: + sValue=_T("Ignore"); + break; + case SERVICE_ERROR_NORMAL: + sValue=_T("Normal"); + break; + case SERVICE_ERROR_SEVERE: + sValue=_T("Severe"); + break; + case SERVICE_ERROR_CRITICAL: + sValue=_T("Critical"); + break; + default: + sValue=_T(""); + } + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + ///////////////////////////////////////////// + + // Load Order Group + sValue=service.QueryLoadOrderGroup(); + if(!sValue.IsEmpty()) + { + htiItem=InsertItem(_T("Group"),htiSubRoot); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + ///////////////////////////////////////////// + + // + sValue=service.QueryStartName(); + if(!bDevice) + // Service Account Name + { + if(sValue.IsEmpty()) + sValue=_T("LocalSystem"); + htiItem=InsertItem(_T("Service Account Name"),htiSubRoot); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + else + // Driver Object Name + { + if(!sValue.IsEmpty()) + { + htiItem=InsertItem(_T("Driver Object Name"),htiSubRoot); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + } + ///////////////////////////////////////////// + + // Dependencies + CString sDependencies=service.QueryDependencies(); + if(!sDependencies.IsEmpty()) + { + htiItem=InsertItem(_T("Dependencies"),htiSubRoot,-1,pFont); + int nPos; + while((nPos=sDependencies.Find(_T("|")))!=-1) + { + ASSERT(nPos>1); + CString sName=sDependencies.Left(nPos); + if(sName.Left(1)==SC_GROUP_IDENTIFIER) + sName=sName.Mid(1)+_T(" (Group)"); + InsertItem(sName,htiItem); + sDependencies=sDependencies.Mid(nPos+1); + } + if(sDependencies.Left(1)==SC_GROUP_IDENTIFIER) + sDependencies=sDependencies.Mid(1)+_T(" (Group)"); + InsertItem(sDependencies,htiItem); + } + ///////////////////////////////////////////// + + // Dependents + COXIteratorService iterServices(service); + if(iterServices.StartDependentIteration()) + { + CStringArray arrAllServiceName; + iterServices.GetKeyNames(arrAllServiceName); + HTREEITEM htiItem=NULL; + if(arrAllServiceName.GetSize()>0) + htiItem=InsertItem(_T("Dependents"),htiSubRoot,-1,pFont); + for(int nIndex=0; nIndexEnableWindow((m_nExpandType==0)); + pDlgItem=GetDlgItem(IDC_SPIN_EXPANDLEVEL); + ASSERT(pDlgItem!=NULL); + pDlgItem->EnableWindow((m_nExpandType==0)); + } +} + +void CServicesDialog::OnRadioExpandall() +{ + // TODO: Add your control notification handler code here + + ShowControls(); +} + +void CServicesDialog::OnRadioExpandlevel() +{ + // TODO: Add your control notification handler code here + + ShowControls(); +} + +void CServicesDialog::OnDblclkTreeServices(NMHDR* pNMHDR, LRESULT* pResult) +{ + // TODO: Add your control notification handler code here + UNREFERENCED_PARAMETER(pNMHDR); + + CPoint point; + if(::GetCursorPos(&point)) + { + m_tree.ScreenToClient(&point); + UINT nFlags; + int nItem=m_tree.HitTest(point,&nFlags); + if(nItem!=-1) + { + HTREEITEM hti=m_tree.GetItemFromIndex(nItem); + ASSERT(hti!=NULL); + if(m_tree.GetItemIndent(hti)= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// ServicesDialog.h : header file +// + +#include "PageDialog.h" +#include "OXTreeCtrl.h" +#include "OXLayoutManager.h" +#include "OXSysInfo.h" + +///////////////////////////////////////////////////////////////////////////// +// CServicesDialog dialog + +class CServicesDialog : public CPageDialog +{ +// Construction +public: + CServicesDialog(); // standard constructor + +// Dialog Data + //{{AFX_DATA(CServicesDialog) + enum { IDD = IDD_SERVICES_DIALOG }; + CSpinButtonCtrl m_spinExpandLevel; + CEdit m_editExpandLevel; + COXTreeCtrl m_tree; + UINT m_nExpandLevel; + int m_nExpandType; + //}}AFX_DATA + +protected: + void PopulateTree(); + void ExpandTree(int nExpandLevel=-1, HTREEITEM htiParent=NULL); + HTREEITEM InsertItem(CString sItem, HTREEITEM htiParent=NULL, int nImage=-1, + CFont* pFont=NULL, COLORREF clr=CLR_NONE); + void InsertServiceInfo(CString sServiceKeyName, HTREEITEM htiRoot, + CFont* pFont, BOOL bDevice); + +public: + virtual BOOL IsRefreshAvailable() { return TRUE; } + virtual void Refresh(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CServicesDialog) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + CImageList m_ilTree; + COXLayoutManager m_LayoutManager; + COXSysInfo m_SysInfo; + +protected: + virtual void OnInitDialog(); + void ShowControls(); + + // Generated message map functions + //{{AFX_MSG(CServicesDialog) + afx_msg void OnRadioExpandall(); + afx_msg void OnRadioExpandlevel(); + afx_msg void OnDblclkTreeServices(NMHDR* pNMHDR, LRESULT* pResult); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_SERVICESDLG_H__FA9CB933_57BC_11D2_A73D_525400DAF3CE__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/StdAfx.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/StdAfx.cpp new file mode 100644 index 0000000..0b795df --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/StdAfx.cpp @@ -0,0 +1,6 @@ +// stdafx.cpp : source file that includes just the standard includes +// SystemStateInfo.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/StdAfx.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/StdAfx.h new file mode 100644 index 0000000..374db00 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/StdAfx.h @@ -0,0 +1,27 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#if !defined(AFX_STDAFX_H__367620AC_4CA7_11D2_A72F_525400DAF3CE__INCLUDED_) +#define AFX_STDAFX_H__367620AC_4CA7_11D2_A72F_525400DAF3CE__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers + +#include // MFC core and standard components +#include // MFC extensions +#include // MFC templates +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for Windows Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + +#include "OXAdvancedAssert.h" + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_STDAFX_H__367620AC_4CA7_11D2_A72F_525400DAF3CE__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SysInfoDialog.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SysInfoDialog.cpp new file mode 100644 index 0000000..1f56839 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SysInfoDialog.cpp @@ -0,0 +1,1449 @@ +// SysInfoDialog.cpp : implementation file +// + +#include "stdafx.h" +#include "systemstateinfo.h" +#include "SysInfoDialog.h" + +#include "OXSysInfo.h" +#include "OXInteger.h" + +#include "UTBStrOp.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CSysInfoDialog dialog + + +CSysInfoDialog::CSysInfoDialog() : CPageDialog() +{ + //{{AFX_DATA_INIT(CSysInfoDialog) + m_nExpandLevel = 0; + m_nExpandType = 1; + m_bShowPrinters = FALSE; + //}}AFX_DATA_INIT +} + + +void CSysInfoDialog::DoDataExchange(CDataExchange* pDX) +{ + CPageDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CSysInfoDialog) + DDX_Control(pDX, IDC_SPIN_EXPANDLEVEL, m_spinExpandLevel); + DDX_Control(pDX, IDC_EDIT_EXPANDLEVEL, m_editExpandLevel); + DDX_Control(pDX, IDC_TREE_ITEMS, m_tree); + DDX_Text(pDX, IDC_EDIT_EXPANDLEVEL, m_nExpandLevel); + DDX_Radio(pDX, IDC_RADIO_EXPANDLEVEL, m_nExpandType); + DDX_Check(pDX, IDC_SHOWPRINTERS, m_bShowPrinters); + //}}AFX_DATA_MAP +} + + +BEGIN_MESSAGE_MAP(CSysInfoDialog, CPageDialog) + //{{AFX_MSG_MAP(CSysInfoDialog) + ON_BN_CLICKED(IDC_RADIO_EXPANDALL, OnRadioExpandall) + ON_BN_CLICKED(IDC_RADIO_EXPANDLEVEL, OnRadioExpandlevel) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CSysInfoDialog message handlers + +void CSysInfoDialog::OnInitDialog() +{ + CPageDialog::OnInitDialog(); + + // TODO: Add your specialized creation code here + + m_ilTree.Create(IDB_SYSINFO_TREE_IMAGE,16,1,RGB(255,0,255)); + m_tree.SetImageList(&m_ilTree,TVSIL_NORMAL); + + LV_COLUMN lvc={ sizeof(lvc) }; + lvc.fmt=LVCFMT_LEFT; + lvc.cx=237; + lvc.pszText=_T("Item"); + lvc.mask = LVCF_FMT|LVCF_WIDTH|LVCF_TEXT; + m_tree.SetColumn(0,&lvc); + m_tree.InsertColumn(1,_T("Value"),LVCFMT_LEFT,200,1); + + // set COXTreeCtrl styles + m_tree.ModifyExStyle(0,TVOXS_PICKANYWHERE|TVOXS_ROWSEL); + m_tree.ModifyStyle(0,TVS_SHOWSELALWAYS|TVS_HASBUTTONS| + TVS_HASLINES|TVS_LINESATROOT); + + + // spin control + m_spinExpandLevel.SetRange(0,3); + m_spinExpandLevel.SetPos(0); + + // layout manager + // + m_LayoutManager.Attach(this); + + // tree control + m_LayoutManager.TieChild(IDC_TREE_ITEMS,OX_LMS_ANY,OX_LMT_SAME); + ////////////////// + + // radio buttons and expand level edit control + m_LayoutManager.TieChild(IDC_RADIO_EXPANDALL, + OX_LMS_LEFT|OX_LMS_BOTTOM,OX_LMT_SAME); + + m_LayoutManager.TieChild(IDC_RADIO_EXPANDLEVEL, + OX_LMS_LEFT|OX_LMS_BOTTOM,OX_LMT_SAME); + + m_LayoutManager.TieChild(IDC_EDIT_EXPANDLEVEL,OX_LMS_LEFT, + OX_LMT_OPPOSITE,IDC_RADIO_EXPANDLEVEL); + m_LayoutManager.TieChild(IDC_EDIT_EXPANDLEVEL,OX_LMS_BOTTOM,OX_LMT_SAME); + + m_LayoutManager.TieChild(IDC_SPIN_EXPANDLEVEL,OX_LMS_LEFT, + OX_LMT_OPPOSITE,IDC_EDIT_EXPANDLEVEL); + m_LayoutManager.TieChild(IDC_SPIN_EXPANDLEVEL,OX_LMS_BOTTOM,OX_LMT_SAME); + + m_LayoutManager.TieChild(IDC_SHOWPRINTERS,OX_LMS_BOTTOM,OX_LMT_SAME); + ////////////////// + + ////////////////////////////////////// + + PopulateTree(); + + ShowControls(); +} + +void CSysInfoDialog::Refresh() +{ + PopulateTree(); +} + +void CSysInfoDialog::PopulateTree() +{ + if(!UpdateData()) + return; + + CWaitCursor waitCursor; + + m_tree.SetRedraw(FALSE); + m_tree.DeleteAllItems(); + + // create fonts to customize tree items appearance + LOGFONT lf; + CFont fontRoot; + CFont fontSubRoot; + CFont* pFontRoot=GetFont(); + if(pFontRoot->GetLogFont(&lf)) + { + lf.lfHeight=-14; + UTBStr::tcsncpy(lf.lfFaceName, LF_FACESIZE, _T("Arial"),LF_FACESIZE); + fontRoot.CreateFontIndirect(&lf); + + lf.lfHeight=-12; + lf.lfWeight=FW_BOLD; + UTBStr::tcsncpy(lf.lfFaceName,LF_FACESIZE,_T("Times New Roman"),LF_FACESIZE); + fontSubRoot.CreateFontIndirect(&lf); + } + pFontRoot=((HFONT)fontRoot!=NULL) ? &fontRoot : NULL; + CFont* pFontSubRoot=((HFONT)fontSubRoot!=NULL) ? &fontSubRoot : NULL; + + CString sValue; + DWORD dwValue; + BOOL bResult; + HTREEITEM htiRoot; + HTREEITEM htiSubRoot; + HTREEITEM htiItem; + + COLORREF clrTopic=RGB(0,0,255); + COLORREF clrValue=RGB(0,128,0); + + COXInteger Integer; + + COXSysInfo m_SysInfo; + BOOL bIsWindowsNT=FALSE; + + /////////////////////////////////////////////////// + // SYSTEM + // + htiRoot=InsertItem(_T("System"),NULL,0,pFontRoot,clrTopic); + HTREEITEM htiSelectItem=htiRoot; + + // operating system + DWORD dwPlatform,dwMajor,dwMinor; + if(m_SysInfo.GetWindowsVersion(&dwPlatform,&dwMajor,&dwMinor)) + { + htiItem=InsertItem(_T("Operating system"),htiRoot); + + if(dwPlatform==VER_PLATFORM_WIN32s) + { + sValue=_T("Windows 3.1"); + } + else if(dwPlatform==VER_PLATFORM_WIN32_WINDOWS) + { + if(dwMajor==4 && dwMinor==0) + { + sValue=_T("Windows 95"); + BOOL bIsOSR2; + if(m_SysInfo.IsOSR2(&bIsOSR2) && bIsOSR2) + sValue=sValue+_T(" OSR 2"); + } + else if(dwMajor==4 && dwMinor==10) + sValue=_T("Windows 98"); + else if(dwMajor==4 && dwMinor==90) + sValue=_T("Windows Me"); + else + sValue=_T("Unknown"); + } + else if(dwPlatform==VER_PLATFORM_WIN32_NT) + { + if(dwMajor==5) + { + switch (dwMinor) + { + case 2: + sValue = _T("Windows Server 2003"); + break; + case 1: + sValue = _T("Windows XP"); + break; + case 0: + { + sValue=_T("Windows 2000"); + BOOL bIsNTServer; + if(m_SysInfo.IsNTServer(&bIsNTServer)) + { + if(bIsNTServer) + sValue+=_T(" Server"); + else + sValue+=_T(" Professional"); + } + } + break; + default: + sValue = _T("Windows Vista"); + } + + VERIFY(sValue.GetBuffer(1024)!=NULL); + //sValue.Format(_T("%s v%d.%d"),sValue,dwMajor,dwMinor); + sValue.ReleaseBuffer(); + + bIsWindowsNT=TRUE; + } + else + { + sValue=_T("Windows NT"); + BOOL bIsNTServer; + if(m_SysInfo.IsNTServer(&bIsNTServer)) + { + if(bIsNTServer) + sValue+=_T(" Server"); + else + sValue+=_T(" Workstation"); + } + + VERIFY(sValue.GetBuffer(1024)!=NULL); + sValue.Format(_T("%s v%d.%d"),sValue,dwMajor,dwMinor); + sValue.ReleaseBuffer(); + + bIsWindowsNT=TRUE; + } + } + else + sValue=_T("Unknown"); + + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + //////////////////////////////////////////////// + + // build number + if(m_SysInfo.GetWindowsBuildNumber(&dwValue)) + { + htiItem=InsertItem(_T("Build Number"),htiRoot); + sValue.Format(_T("%u"),dwValue); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + //////////////////////////////////////////////// + + // platform info + if(m_SysInfo.GetWindowsPlatformInfo(sValue) && !sValue.IsEmpty() && + !sValue.SpanExcluding(_T(" ")).IsEmpty()) + { + htiItem=InsertItem(_T("Platform Info"),htiRoot); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + //////////////////////////////////////////////// + + // computer name + if(m_SysInfo.GetComputerName(&sValue)) + { + htiItem=InsertItem(_T("Computer name"),htiRoot); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + //////////////////////////////////////////////// + + // User & Domain name + CString sDomain; + if(bIsWindowsNT && m_SysInfo.GetUserAndDomainName(&sValue,&sDomain)) + { + htiItem=InsertItem(_T("Domain name"),htiRoot); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sDomain,0,NULL,clrValue)); + htiItem=InsertItem(_T("User name"),htiRoot); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + else if(m_SysInfo.GetUserName(&sValue)) + { + htiItem=InsertItem(_T("User name"),htiRoot); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + //////////////////////////////////////////////// + + + // Network Interface Card (NIC) Address + NICADDRESS NICAddress; + if(m_SysInfo.GetNICAddress(&NICAddress)) + { + htiItem=InsertItem(_T("Network Interface Card (NIC) Address"),htiRoot); + sValue.Format(_T("%.2x.%.2x.%.2x.%.2x.%.2x.%.2x"), + NICAddress.data[0],NICAddress.data[1],NICAddress.data[2], + NICAddress.data[3],NICAddress.data[4],NICAddress.data[5]); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + //////////////////////////////////////////////// + + // IP address(es) + CStringArray arrIPAddresses; + if(m_SysInfo.GetListIPAddresses(&arrIPAddresses)) + { + ASSERT(arrIPAddresses.GetSize()>0); + + if(arrIPAddresses.GetSize()>1) + { + htiSubRoot=InsertItem(_T("IP Addresses"),htiRoot,-1,pFontSubRoot); + sValue.Format(_T("%u"),arrIPAddresses.GetSize()); + VERIFY(m_tree.SetSubItem(htiSubRoot,1, + OX_SUBITEM_TEXT|(pFontSubRoot!=NULL ? OX_SUBITEM_FONT : 0), + sValue,0,pFontSubRoot)); + } + else + htiSubRoot=htiRoot; + + for(int nIndex=0; nIndex=1); + + // topic will depend on the number of processors used in the system + if(nNumProcessors>1) + { + htiRoot=InsertItem(_T("Processors"),NULL,2,pFontRoot,clrTopic); + sValue.Format(_T("%d"),nNumProcessors); + VERIFY(m_tree.SetSubItem(htiRoot,1, + OX_SUBITEM_TEXT|(pFontRoot!=NULL ? OX_SUBITEM_FONT : 0), + sValue,0,pFontRoot)); + htiSubRoot=InsertItem(_T("Primary processor"), + htiRoot,-1,pFontSubRoot); + } + else + htiSubRoot=InsertItem(_T("Processor"),NULL,2,pFontRoot,clrTopic); + /////////////////////////////////////////////////////////////////// + + // primary processor description + // + // Processor Architecture + DWORD dwProcessorType; + if(m_SysInfo.GetProcessorType(&dwProcessorType)) + { + htiItem=InsertItem(_T("Architecture"),htiSubRoot); + + switch(dwProcessorType) + { + case PROCESSOR_INTEL_386: + sValue=_T("Intel 386"); + break; + case PROCESSOR_INTEL_486: + sValue=_T("Intel 486"); + break; + case PROCESSOR_INTEL_PENTIUMCELERON: + sValue=_T("Intel Pentium Celeron"); + break; + case PROCESSOR_INTEL_PENTIUMPRO: + sValue=_T("Intel Pentium Pro"); + break; + case PROCESSOR_INTEL_PENTIUM: + sValue=_T("Intel Pentium"); + break; + case PROCESSOR_INTEL_PENTIUM2: + sValue=_T("Intel Pentium II"); + break; + case PROCESSOR_INTEL_PENTIUM3: + sValue=_T("Intel Pentium III"); + break; + case PROCESSOR_MIPSR4000: + sValue=_T("MIPS R4000"); + break; + case PROCESSOR_ALPHA21064: + sValue=_T("Alpha 21064"); + break; + case PROCESSOR_ALPHA21066: + sValue=_T("Alpha 21066"); + break; + case PROCESSOR_ALPHA21164: + sValue=_T("Alpha 21164"); + break; + case PROCESSOR_PPC601: + sValue=_T("PowerPC 601"); + break; + case PROCESSOR_PPC603: + sValue=_T("PowerPC 603"); + break; + case PROCESSOR_PPC604: + sValue=_T("PowerPC 604"); + break; + case PROCESSOR_PPC603PLUS: + sValue=_T("PowerPC 603+"); + break; + case PROCESSOR_PPC604PLUS: + sValue=_T("PowerPC 604+"); + break; + case PROCESSOR_PPC620: + sValue=_T("PowerPC 620"); + break; + default: + sValue=_T("UNKNOWN"); + break; + } + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + + // Processor speed + DWORD dwSpeed; + if(m_SysInfo.GetProcessorSpeed(&dwSpeed)) + { + htiItem=InsertItem(_T("Speed"),htiSubRoot); + sValue.Format(_T("%d MHz"),dwSpeed); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + + // Math CoProcessor + if(m_SysInfo.IsCoProcessorPresent(&bResult)) + { + htiItem=InsertItem(_T("Math CoProcessor"),htiSubRoot); + sValue=bResult ? _T("Present") : _T("Not present"); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + + // MMX technology + if(m_SysInfo.IsMMXProcessor(&bResult)) + { + htiItem=InsertItem(_T("MMX technology"),htiSubRoot); + sValue=bResult ? _T("Present") : _T("Not present"); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + + // Time stamp + DWORD dwHigh, dwLow; + if(m_SysInfo.GetTimeStamp(&dwHigh,&dwLow)) + { + htiItem=InsertItem(_T("Time stamp"),htiSubRoot); + sValue.Format(_T("%08lx %08lx"),dwHigh,dwLow); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + + ///////////////////////////////////////////// + + + // multiple processors description + if(nNumProcessors>1) + for(int nIndex=2; nIndex<=nNumProcessors; nIndex++) + { + sValue.Format(_T("Processor %d"),nIndex); + htiSubRoot=InsertItem(sValue,htiRoot,-1,pFontSubRoot); + + // Processor speed + DWORD dwSpeed; + if(m_SysInfo.GetProcessorSpeed(&dwSpeed,nIndex-1)) + { + htiItem=InsertItem(_T("Speed"),htiSubRoot); + sValue.Format(_T("%d MHz"),dwSpeed); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + } + ///////////////////////////////////////////// + } + + // + // The end of PROCESSOR(S) topic + /////////////////////////////////////////////////// + + + /////////////////////////////////////////////////// + // DISC INFORMATION + // + htiRoot=InsertItem(_T("Disc Information"),NULL,3,pFontRoot,clrTopic); + + int nDiskType; + CString sFileSysType; + CString sVolName; + DWORDLONG dwTotalSpace, dwFreeSpace; + DWORD dwVolSer; + int nIndex=0; + for(nIndex=0; nIndex<26; nIndex++) + { + if(m_SysInfo.GetDriveTypeInfo(nIndex,&sFileSysType,&nDiskType)) + { + if(m_SysInfo.GetDriveVolumeInfo(nIndex,&sVolName, + &dwVolSer,&dwTotalSpace,&dwFreeSpace)) + { + sValue.Format(_T("Drive %c:"),nIndex+65); + htiSubRoot=InsertItem(sValue,htiRoot,-1,pFontSubRoot); + + if(nDiskType == DRIVE_FIXED || nIndex==0 || nIndex==1) + { + // type of disk + if(nIndex==0 || nIndex==1) + { + m_tree.SetItemImage(htiSubRoot,8,8); + sValue=_T("Floppy Disk"); + } + else + { + m_tree.SetItemImage(htiSubRoot,9,9); + sValue=_T("Fixed Disk"); + } + VERIFY(m_tree.SetSubItem(htiSubRoot,1, + OX_SUBITEM_TEXT,sValue,0,NULL)); + + // File System + htiItem=InsertItem(_T("File System"),htiSubRoot); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sFileSysType,0,NULL,clrValue)); + + // Volume name + htiItem=InsertItem(_T("Volume Name"),htiSubRoot); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sVolName.IsEmpty() ? _T("") : sVolName,0, + NULL,clrValue)); + + // Volume Serial + htiItem=InsertItem(_T("Volume Serial"),htiSubRoot); + sValue.Format(_T("%u"),dwVolSer); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + + // Total space + htiItem=InsertItem(_T("Total space"),htiSubRoot); + Integer.SetNumber(dwTotalSpace/1024); + sValue=Integer.GetStringNumber(10,TRUE)+_T(" KB"); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + + // Free space + htiItem=InsertItem(_T("Free space"),htiSubRoot); + Integer.SetNumber(dwFreeSpace/1024); + sValue=Integer.GetStringNumber(10,TRUE)+_T(" KB"); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + else if(nDiskType==DRIVE_CDROM) + { + m_tree.SetItemImage(htiSubRoot,10,10); + + // type of disk + VERIFY(m_tree.SetSubItem(htiSubRoot,1, + OX_SUBITEM_TEXT,_T("CD ROM"),0,NULL)); + + // File System + htiItem=InsertItem(_T("File System"),htiSubRoot); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sFileSysType,0,NULL,clrValue)); + + // Volume name + htiItem=InsertItem(_T("Volume Name"),htiSubRoot); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sVolName.IsEmpty() ? _T("") : sVolName,0, + NULL,clrValue)); + } + else if(nDiskType==DRIVE_REMOTE) + { + m_tree.SetItemImage(htiSubRoot,11,11); + + // type of disk + VERIFY(m_tree.SetSubItem(htiSubRoot,1, + OX_SUBITEM_TEXT,_T("Network Disk"),0,NULL)); + + // File System + htiItem=InsertItem(_T("File System"),htiSubRoot); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sFileSysType,0,NULL,clrValue)); + + // Volume name + htiItem=InsertItem(_T("Volume Name"),htiSubRoot); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sVolName.IsEmpty() ? _T("") : sVolName,0, + NULL,clrValue)); + } + else + { + // type of disk + VERIFY(m_tree.SetSubItem(htiSubRoot,1, + OX_SUBITEM_TEXT,_T("Unknown"),0,NULL)); + } + } + } + } + + // + // The end of DISC INFORMATION topic + /////////////////////////////////////////////////// + + + /////////////////////////////////////////////////// + // DISPLAY + // + htiRoot=InsertItem(_T("Display"),NULL,4,pFontRoot,clrTopic); + + // Font Size + if(m_SysInfo.IsSmallFont(&bResult)) + { + htiItem=InsertItem(_T("Font Size"),htiRoot); + sValue=bResult ? _T("Small fonts") : _T("Large fonts"); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + //////////////////////////////////////////////// + + // Display resolution + int nXRes, nYRes; + if(m_SysInfo.GetDisplayResolution(&nXRes,&nYRes)) + { + htiItem=InsertItem(_T("Current Resolution"),htiRoot); + sValue.Format(_T("%u x %u"), nXRes, nYRes); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + //////////////////////////////////////////////// + + // Display colors + int nNumBits; + DWORDLONG dwNumColors; + if(m_SysInfo.GetDisplayNumColors(&dwNumColors,&nNumBits)) + { + htiItem=InsertItem(_T("Current Colors"),htiRoot); + sValue.Format(_T(" (%u bits)"),nNumBits); + Integer.SetNumber(dwNumColors); + sValue=Integer.GetStringNumber(10,TRUE)+sValue; + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + //////////////////////////////////////////////// + + // Display max resolution + if(m_SysInfo.GetDisplayMaxResolution(&nXRes,&nYRes)) + { + htiItem=InsertItem(_T("Max Resolution"),htiRoot); + sValue.Format(_T("%u x %u"), nXRes, nYRes); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + //////////////////////////////////////////////// + + // Display max colors + if(m_SysInfo.GetDisplayMaxNumColors(&dwNumColors,&nNumBits)) + { + htiItem=InsertItem(_T("Max Colors"),htiRoot); + sValue.Format(_T(" (%u bits)"),nNumBits); + Integer.SetNumber(dwNumColors); + sValue=Integer.GetStringNumber(10,TRUE)+sValue; + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + //////////////////////////////////////////////// + + // List of all display modes + CArrayDisplayMode arrDisplayMode; + if(m_SysInfo.GetAllDisplayModes(&arrDisplayMode) && + arrDisplayMode.GetSize()>0) + { + htiSubRoot=InsertItem(_T("List of all Display Modes"), + htiRoot,-1,pFontSubRoot); + sValue.Format(_T("%u"),arrDisplayMode.GetSize()); + VERIFY(m_tree.SetSubItem(htiSubRoot,1, + OX_SUBITEM_TEXT|(pFontSubRoot!=NULL ? OX_SUBITEM_FONT : 0), + sValue,0,pFontSubRoot)); + + for(nIndex=1; nIndex<=arrDisplayMode.GetSize(); nIndex++) + { + DISPLAYMODE displayMode=arrDisplayMode.GetAt(nIndex-1); + + sValue.Format(_T("Display Mode %u"),nIndex); + htiItem=InsertItem(sValue,htiSubRoot); + Integer.SetNumber(displayMode.dwNumColors); + sValue.Format(_T("%d x %d (%d bit, %s colors)"), + displayMode.dwHorzResolution,displayMode.dwVertResolution, + displayMode.dwBitsPerPixel,Integer.GetStringNumber(10,TRUE)); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + } + //////////////////////////////////////////////// + + // + // The end of DISPLAY topic + /////////////////////////////////////////////////// + + + /////////////////////////////////////////////////// + // MEMORY + // + htiRoot=InsertItem(_T("Memory"),NULL,5,pFontRoot,clrTopic); + + // Physical Memory + htiSubRoot=InsertItem(_T("Physical Memory"),htiRoot,-1,pFontSubRoot); + + if(m_SysInfo.GetTotalPhysicalMemory(&dwValue)) + { + htiItem=InsertItem(_T("Total amount"),htiSubRoot); + Integer.SetNumber(dwValue/1024); + sValue=Integer.GetStringNumber(10,TRUE)+_T(" KB"); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + + if(m_SysInfo.GetFreePhysicalMemory(&dwValue)) + { + htiItem=InsertItem(_T("Free amount"),htiSubRoot); + Integer.SetNumber(dwValue/1024); + sValue=Integer.GetStringNumber(10,TRUE)+_T(" KB"); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + //////////////////////////////////////////////// + + // Swap File + htiSubRoot=InsertItem(_T("Swap File"),htiRoot,-1,pFontSubRoot); + + if(m_SysInfo.GetTotalPageFile(&dwValue)) + { + htiItem=InsertItem(_T("Total amount"),htiSubRoot); + Integer.SetNumber(dwValue/1024); + sValue=Integer.GetStringNumber(10,TRUE)+_T(" KB"); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + + if(m_SysInfo.GetFreePageFile(&dwValue)) + { + htiItem=InsertItem(_T("Free amount"),htiSubRoot); + Integer.SetNumber(dwValue/1024); + sValue=Integer.GetStringNumber(10,TRUE)+_T(" KB"); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + //////////////////////////////////////////////// + + // Virtual Memory + htiSubRoot=InsertItem(_T("Virtual Memory"),htiRoot,-1,pFontSubRoot); + + if(m_SysInfo.GetTotalVirtual(&dwValue)) + { + htiItem=InsertItem(_T("Total amount"),htiSubRoot); + Integer.SetNumber(dwValue/1024); + sValue=Integer.GetStringNumber(10,TRUE)+_T(" KB"); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + + if(m_SysInfo.GetFreeVirtual(&dwValue)) + { + htiItem=InsertItem(_T("Free amount"),htiSubRoot); + Integer.SetNumber(dwValue/1024); + sValue=Integer.GetStringNumber(10,TRUE)+_T(" KB"); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + //////////////////////////////////////////////// + + // Resources + int nValue=0; + if(m_SysInfo.GetFreeSystemResources(&nValue,RT_SYSTEM)) + { + htiSubRoot=InsertItem(_T("Resources"),htiRoot,-1,pFontSubRoot); + + htiItem=InsertItem(_T("Free System Resources"),htiSubRoot); + sValue.Format(_T("%u %%"),nValue); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + + VERIFY(m_SysInfo.GetFreeSystemResources(&nValue,RT_GDI)); + htiItem=InsertItem(_T("Free GDI Resources"),htiSubRoot); + sValue.Format(_T("%u %%"),nValue); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + + VERIFY(m_SysInfo.GetFreeSystemResources(&nValue,RT_USER)); + htiItem=InsertItem(_T("Free User Resources"),htiSubRoot); + sValue.Format(_T("%u %%"),nValue); + VERIFY(m_tree.SetSubItem(htiItem,1,OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + //////////////////////////////////////////////// + + // + // The end of MEMORY topic + /////////////////////////////////////////////////// + + + /////////////////////////////////////////////////// + // MODEM(S) + // + + // Number of Modems + int nNumModems; + if(m_SysInfo.GetNumModems(&nNumModems) && nNumModems>0) + { + // topic will depend on the number of modems installed + if(nNumModems>1) + { + htiRoot=InsertItem(_T("Modems"),NULL,6,pFontRoot,clrTopic); + sValue.Format(_T("%u"),nNumModems); + VERIFY(m_tree.SetSubItem(htiRoot,1, + OX_SUBITEM_TEXT|(pFontRoot!=NULL ? OX_SUBITEM_FONT : 0), + sValue,0,pFontRoot)); + } + else + htiRoot=InsertItem(_T("Modem"),NULL,6,pFontRoot,clrTopic); + /////////////////////////////////////////////////////////////////// + + // loop through all installed modems + CArrayModemInfo arrModemInfo; + VERIFY(m_SysInfo.GetModemInfo(&arrModemInfo)); + ASSERT(arrModemInfo.GetSize()==nNumModems); + for(int nIndex=0; nIndex1) + { + sValue.Format(_T("Modem %d"),nIndex+1); + htiSubRoot=InsertItem(sValue,htiRoot,-1,pFontSubRoot); + } + else + htiSubRoot=htiRoot; + + MODEMINFO modemInfo=arrModemInfo.GetAt(nIndex); + + // Port + htiItem=InsertItem(_T("Port"),htiSubRoot); + sValue.Format(_T("COM%d"),modemInfo.nPort); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + + // Description + htiItem=InsertItem(_T("Description"),htiSubRoot); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + modemInfo.sDriverDesc,0,NULL,clrValue)); + + // Manufacturer + htiItem=InsertItem(_T("Manufacturer"),htiSubRoot); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + modemInfo.sManufacturer,0,NULL,clrValue)); + + // Model + htiItem=InsertItem(_T("Model"),htiSubRoot); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + modemInfo.sModel,0,NULL,clrValue)); + } + ///////////////////////////////////////////// + } + + // + // The end of MODEM(S) topic + /////////////////////////////////////////////////// + + + /////////////////////////////////////////////////// + // PRINTER(S) + // + if(m_bShowPrinters) + { + CStringArray arrPrinterName; + if(m_SysInfo.GetAllPrintersName(arrPrinterName)) + { + if(arrPrinterName.GetSize()>0) + { + CString sDefaultPrinterName; + VERIFY(m_SysInfo.GetDefaultPrinterName(sDefaultPrinterName)); + + sValue=_T("Printer"); + if(arrPrinterName.GetSize()>1) + sValue=sValue+_T("s"); + htiRoot=InsertItem(sValue,NULL,7,pFontRoot,clrTopic); + if(arrPrinterName.GetSize()>1) + { + sValue.Format(_T("%u"),arrPrinterName.GetSize()); + VERIFY(m_tree.SetSubItem(htiRoot,1, + OX_SUBITEM_TEXT|(pFontRoot!=NULL ? OX_SUBITEM_FONT : 0), + sValue,0,pFontRoot)); + } + + for(int nIndex=0; nIndexpServerName!=NULL && + lstrlen(lpPrinterInfo->pServerName)>0) + { + htiItem=InsertItem(_T("Server Name"),htiSubRoot); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + lpPrinterInfo->pServerName,0,NULL,clrValue)); + } + /////////////////////////////////////// + + // share name + if((lpPrinterInfo->Attributes&PRINTER_ATTRIBUTE_SHARED)!=0 && + lpPrinterInfo->pShareName!=NULL && + lstrlen(lpPrinterInfo->pShareName)>0) + { + htiItem=InsertItem(_T("Share Name"),htiSubRoot); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + lpPrinterInfo->pShareName,0,NULL,clrValue)); + } + /////////////////////////////////////// + + // port(s) + if(lpPrinterInfo->pPortName!=NULL && + lstrlen(lpPrinterInfo->pPortName)>0) + { + if(_tcschr(lpPrinterInfo->pPortName,';')!=NULL) + htiItem=InsertItem(_T("Ports"),htiSubRoot); + else + htiItem=InsertItem(_T("Port"),htiSubRoot); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + lpPrinterInfo->pPortName,0,NULL,clrValue)); + } + /////////////////////////////////////// + + // driver name + if(lpPrinterInfo->pDriverName!=NULL && + lstrlen(lpPrinterInfo->pDriverName)>0) + { + htiItem=InsertItem(_T("Driver Name"),htiSubRoot); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + lpPrinterInfo->pDriverName,0,NULL,clrValue)); + } + /////////////////////////////////////// + + // brief description + if(lpPrinterInfo->pComment!=NULL && + lstrlen(lpPrinterInfo->pComment)>0) + { + htiItem=InsertItem(_T("Brief Description"),htiSubRoot); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + lpPrinterInfo->pComment,0,NULL,clrValue)); + } + /////////////////////////////////////// + + // physical location + if(lpPrinterInfo->pLocation!=NULL && + lstrlen(lpPrinterInfo->pLocation)>0) + { + htiItem=InsertItem(_T("Physical Location"),htiSubRoot); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + lpPrinterInfo->pLocation,0,NULL,clrValue)); + } + /////////////////////////////////////// + + // print processor + if(lpPrinterInfo->pPrintProcessor!=NULL && + lstrlen(lpPrinterInfo->pPrintProcessor)>0) + { + htiItem=InsertItem(_T("Print Processor"),htiSubRoot); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + lpPrinterInfo->pPrintProcessor,0,NULL,clrValue)); + } + /////////////////////////////////////// + + // average number of pages per minute that have been printed + // on the printer + if(lpPrinterInfo->AveragePPM>0) + { + htiItem=InsertItem(_T("Average number of pages"), + htiSubRoot); + sValue.Format(_T("%u per minute"), + lpPrinterInfo->AveragePPM); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + /////////////////////////////////////// + + // printer IP address + if(lpPrinterInfo->pServerName!=NULL && + lstrlen(lpPrinterInfo->pServerName)>0) + { + CString sHostName=lpPrinterInfo->pServerName; + if(sHostName.Left(2)==_T("\\\\")) + sHostName=sHostName.Mid(2); + if(m_SysInfo.GetPrimaryIPAddress(&sValue,sHostName)) + { + htiItem=InsertItem(_T("Primary IP Address"), + htiSubRoot); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + } + /////////////////////////////////////// + + // device and environment settings + if(lpPrinterInfo->pDevMode!=NULL) + { + htiSubRoot=InsertItem(_T("Environment"), + htiSubRoot,-1,pFontSubRoot); + + // page orientation + if((lpPrinterInfo->pDevMode->dmFields&DM_ORIENTATION)!=0) + { + htiItem=InsertItem(_T("Orientation"),htiSubRoot); + if(lpPrinterInfo->pDevMode->dmOrientation== + DMORIENT_PORTRAIT) + sValue=_T("Portrait"); + else if(lpPrinterInfo->pDevMode->dmOrientation== + DMORIENT_LANDSCAPE) + sValue=_T("Landscape"); + else + ASSERT(FALSE); + + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + /////////////////////////////////////// + + // paper size + if((lpPrinterInfo->pDevMode->dmFields&DM_PAPERSIZE)!=0 && + lpPrinterInfo->pDevMode->dmPaperSize!=0) + { + htiItem=InsertItem(_T("Paper size"),htiSubRoot); + + switch(lpPrinterInfo->pDevMode->dmPaperSize) + { + case DMPAPER_LETTER: + sValue=_T("Letter, 8 1/2- by 11-inches"); + break; + case DMPAPER_LEGAL: + sValue=_T("Legal, 8 1/2- by 14-inches"); + break; + case DMPAPER_A4: + sValue=_T("A4 Sheet, 210- by 297-millimeters"); + break; + case DMPAPER_CSHEET: + sValue=_T("C Sheet, 17- by 22-inches"); + break; + case DMPAPER_DSHEET: + sValue=_T("D Sheet, 22- by 34-inches"); + break; + case DMPAPER_ESHEET: + sValue=_T("E Sheet, 34- by 44-inches"); + break; + case DMPAPER_LETTERSMALL: + sValue=_T("Letter Small, 8 1/2- by 11-inches"); + break; + case DMPAPER_TABLOID: + sValue=_T("Tabloid, 11- by 17-inches"); + break; + case DMPAPER_LEDGER: + sValue=_T("Ledger, 17- by 11-inches"); + break; + case DMPAPER_STATEMENT: + sValue=_T("Statement, 5 1/2- by 8 1/2-inches"); + break; + case DMPAPER_EXECUTIVE: + sValue=_T("Executive, 7 1/4- by 10 1/2-inches"); + break; + case DMPAPER_A3: + sValue=_T("A3 sheet, 297- by 420-millimeters"); + break; + case DMPAPER_A4SMALL: + sValue=_T("A4 small sheet, 210- by 297-millimeters"); + break; + case DMPAPER_A5: + sValue=_T("A5 sheet, 148- by 210-millimeters"); + break; + case DMPAPER_B4: + sValue=_T("B4 sheet, 250- by 354-millimeters"); + break; + case DMPAPER_B5: + sValue=_T("B5 sheet, 182- by 257-millimeter paper"); + break; + case DMPAPER_FOLIO: + sValue=_T("Folio, 8 1/2- by 13-inch paper"); + break; + case DMPAPER_QUARTO: + sValue=_T("Quarto, 215- by 275-millimeter paper"); + break; + case DMPAPER_10X14: + sValue=_T("10- by 14-inch sheet"); + break; + case DMPAPER_11X17: + sValue=_T("11- by 17-inch sheet"); + break; + case DMPAPER_NOTE: + sValue=_T("Note, 8 1/2- by 11-inches"); + break; + case DMPAPER_ENV_9: + sValue=_T("#9 Envelope, 3 7/8- by 8 7/8-inches"); + break; + case DMPAPER_ENV_10: + sValue=_T("#10 Envelope, 4 1/8- by 9 1/2-inches"); + break; + case DMPAPER_ENV_11: + sValue=_T("#11 Envelope, 4 1/2- by 10 3/8-inches"); + break; + case DMPAPER_ENV_12: + sValue=_T("#12 Envelope, 4 3/4- by 11-inches"); + break; + case DMPAPER_ENV_14: + sValue=_T("#14 Envelope, 5- by 11 1/2-inches"); + break; + case DMPAPER_ENV_DL: + sValue=_T("DL Envelope"); + break; + case DMPAPER_ENV_C5: + sValue=_T("C5 Envelope, 162- by 229-millimeters"); + break; + case DMPAPER_ENV_C3: + sValue=_T("C3 Envelope, 324- by 458-millimeters"); + break; + case DMPAPER_ENV_C4: + sValue=_T("C4 Envelope, 229- by 324-millimeters"); + break; + case DMPAPER_ENV_C6: + sValue=_T("C6 Envelope, 114- by 162-millimeters"); + break; + case DMPAPER_ENV_C65: + sValue=_T("C65 Envelope, 114- by 229-millimeters"); + break; + case DMPAPER_ENV_B4: + sValue=_T("B4 Envelope, 250- by 353-millimeters"); + break; + case DMPAPER_ENV_B5: + sValue=_T("B5 Envelope, 176- by 250-millimeters"); + break; + case DMPAPER_ENV_B6: + sValue=_T("B6 Envelope, 176- by 125-millimeters"); + break; + case DMPAPER_ENV_ITALY: + sValue=_T("Italy Envelope, 110- by 230-millimeters"); + break; + case DMPAPER_ENV_MONARCH: + sValue=_T("Monarch Envelope, 3 7/8- by 7 1/2-inches"); + break; + case DMPAPER_ENV_PERSONAL: + sValue=_T("6 3/4 Envelope, 3 5/8- by 6 1/2-inches"); + break; + case DMPAPER_FANFOLD_US: + sValue=_T("US Std Fanfold, 14 7/8- by 11-inches"); + break; + case DMPAPER_FANFOLD_STD_GERMAN: + sValue=_T("German Std Fanfold, 8 1/2- by 12-inches"); + break; + case DMPAPER_FANFOLD_LGL_GERMAN: + sValue=_T("German Legal Fanfold, 8 1/2- by 13-inches"); + break; + default: + sValue=_T("Unknown"); + } + + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + else if((lpPrinterInfo->pDevMode->dmFields& + DM_PAPERLENGTH)!=0 && + (lpPrinterInfo->pDevMode->dmFields& + DM_PAPERWIDTH)!=0) + { + htiItem=InsertItem(_T("Paper size"),htiSubRoot); + + sValue.Format(_T("%u- by %u-millimeters"), + lpPrinterInfo->pDevMode->dmPaperWidth, + lpPrinterInfo->pDevMode->dmPaperLength); + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + /////////////////////////////////////// + + // printer quality + if((lpPrinterInfo->pDevMode->dmFields& + DM_PRINTQUALITY)!=0 && + lpPrinterInfo->pDevMode->dmPrintQuality<=0) + { + htiItem=InsertItem(_T("Print Quality"),htiSubRoot); + + switch(lpPrinterInfo->pDevMode->dmPrintQuality) + { + case DMRES_HIGH: + sValue=_T("High"); + break; + case DMRES_MEDIUM: + sValue=_T("Medium"); + break; + case DMRES_LOW: + sValue=_T("Low"); + break; + case DMRES_DRAFT: + sValue=_T("Draft"); + break; + default: + sValue=_T("Unknown"); + } + + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + /////////////////////////////////////// + + // printer resolution + if(lpPrinterInfo->pDevMode->dmPrintQuality>0 && + (lpPrinterInfo->pDevMode->dmFields& + DM_YRESOLUTION)!=0) + { + htiItem=InsertItem(_T("Print Resolution"),htiSubRoot); + + sValue.Format(_T("%u x %u DPI"), + lpPrinterInfo->pDevMode->dmPrintQuality, + lpPrinterInfo->pDevMode->dmYResolution); + + VERIFY(m_tree.SetSubItem(htiItem,1, + OX_SUBITEM_TEXT|OX_SUBITEM_COLOR, + sValue,0,NULL,clrValue)); + } + /////////////////////////////////////// + + } + /////////////////////////////////////// + + // we have to free memory ourselves + ::GlobalFree(lpPrinterInfo); + } + /////////////////////////////////////// + + } + } + } + } + + // + // The end of PRINTER(S) topic + /////////////////////////////////////////////////// + + ExpandTree((m_nExpandType==0 ? m_nExpandLevel : -1)); + + m_tree.SetFocus(); + m_tree.SelectItem(htiSelectItem); + + m_tree.SetRedraw(TRUE); +} + + +void CSysInfoDialog::ExpandTree(int nExpandLevel/*=-1*/, + HTREEITEM htiParent/*=NULL*/) +{ + if(nExpandLevel==0) + return; + + if(htiParent==NULL) + { + htiParent=m_tree.GetRootItem(); + ASSERT(htiParent!=NULL); + } + + HTREEITEM hti=m_tree.GetNextItem(htiParent,TVGN_CHILD); + while(hti!=NULL) + { + m_tree.Expand(hti,TVE_EXPAND); + + COXTreeItem* xti=m_tree.GetXItem(hti); + ASSERT(xti!=NULL); + if(xti->ItemHasChildren()) + ExpandTree((nExpandLevel==-1 ? -1 : nExpandLevel-1),hti); + + hti=m_tree.GetNextItem(hti,TVGN_NEXT); + } +} + +HTREEITEM CSysInfoDialog::InsertItem(CString sItem, HTREEITEM htiParent/*=NULL*/, + int nImage/*=-1*/, CFont* pFont/*=NULL*/, + COLORREF clr/*=CLR_NONE*/) +{ + HTREEITEM hti=m_tree.InsertItem(sItem,htiParent); + ASSERT(hti!=NULL); + + // associate new font + if(pFont!=NULL) + VERIFY(m_tree.SetItemFont(hti,pFont)); + // and new color + if(clr!=CLR_NONE) + VERIFY(m_tree.SetItemColor(hti,clr)); + + m_tree.SetItemImage(hti,nImage,nImage); + + return hti; +} + + +void CSysInfoDialog::ShowControls() +{ + if(UpdateData()) + { + CWnd* pDlgItem=GetDlgItem(IDC_EDIT_EXPANDLEVEL); + ASSERT(pDlgItem!=NULL); + pDlgItem->EnableWindow((m_nExpandType==0)); + pDlgItem=GetDlgItem(IDC_SPIN_EXPANDLEVEL); + ASSERT(pDlgItem!=NULL); + pDlgItem->EnableWindow((m_nExpandType==0)); + } +} + +void CSysInfoDialog::OnRadioExpandall() +{ + // TODO: Add your control notification handler code here + + ShowControls(); +} + +void CSysInfoDialog::OnRadioExpandlevel() +{ + // TODO: Add your control notification handler code here + + ShowControls(); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SysInfoDialog.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SysInfoDialog.h new file mode 100644 index 0000000..26a3b7b --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SysInfoDialog.h @@ -0,0 +1,72 @@ +#if !defined(AFX_SYSINFODIALOG_H__266F38B4_4D6E_11D2_A730_525400DAF3CE__INCLUDED_) +#define AFX_SYSINFODIALOG_H__266F38B4_4D6E_11D2_A730_525400DAF3CE__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// SysInfoDialog.h : header file +// + +#include "PageDialog.h" +#include "OXTreeCtrl.h" +#include "OXLayoutManager.h" + +///////////////////////////////////////////////////////////////////////////// +// CSysInfoDialog dialog + +class CSysInfoDialog : public CPageDialog +{ +// Construction +public: + CSysInfoDialog(); // standard constructor + +// Dialog Data + //{{AFX_DATA(CSysInfoDialog) + enum { IDD = IDD_SYSINFO_DIALOG }; + CSpinButtonCtrl m_spinExpandLevel; + CEdit m_editExpandLevel; + COXTreeCtrl m_tree; + UINT m_nExpandLevel; + int m_nExpandType; + BOOL m_bShowPrinters; + //}}AFX_DATA + +protected: + void PopulateTree(); + void ExpandTree(int nExpandLevel=-1, HTREEITEM htiParent=NULL); + HTREEITEM InsertItem(CString sItem, HTREEITEM htiParent=NULL, int nImage=-1, + CFont* pFont=NULL, COLORREF clr=CLR_NONE); + +public: + virtual BOOL IsRefreshAvailable() { return TRUE; } + virtual void Refresh(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CSysInfoDialog) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + CImageList m_ilTree; + COXLayoutManager m_LayoutManager; + +protected: + virtual void OnInitDialog(); + + void ShowControls(); + + // Generated message map functions + //{{AFX_MSG(CSysInfoDialog) + afx_msg void OnRadioExpandall(); + afx_msg void OnRadioExpandlevel(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_SYSINFODIALOG_H__266F38B4_4D6E_11D2_A730_525400DAF3CE__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.cpp new file mode 100644 index 0000000..c6030d1 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.cpp @@ -0,0 +1,121 @@ +// SystemStateInfo.cpp : Defines the class behaviors for the application. +// + +#include "stdafx.h" +#include "SystemStateInfo.h" +#include "SSIDialog.h" +#include "OXInstanceManager.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CSystemStateInfoApp + +BEGIN_MESSAGE_MAP(CSystemStateInfoApp, CWinApp) + //{{AFX_MSG_MAP(CSystemStateInfoApp) + // 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() + +///////////////////////////////////////////////////////////////////////////// +// CSystemStateInfoApp construction + +CSystemStateInfoApp::CSystemStateInfoApp() +{ + // TODO: add construction code here, + // Place all significant initialization in InitInstance +} + +///////////////////////////////////////////////////////////////////////////// +// The one and only CSystemStateInfoApp object + +CSystemStateInfoApp theApp; +static HINSTANCE g_hRichEdDLL=NULL; + +// Construct an instance manager +COXInstanceManager instanceManager(_T("SystemStateInfo")); + +///////////////////////////////////////////////////////////////////////////// +// CSystemStateInfoApp initialization + +BOOL CSystemStateInfoApp::InitInstance() +{ + // Check for previous instances and close this app if we exceeded the maximum + if (instanceManager.HasPreviousInstance()) + { + TRACE(_T("Only one instance of application can be loaded\n")); + // Show existing instance + CDWordArray instanceColl; + if(instanceManager.GetInstanceCollection(instanceColl)) + { + DWORD nInstanceID=instanceColl.GetAt(0); + HWND hMainWnd=COXInstanceManager::GetMainWindow(nInstanceID); + if(hMainWnd!=NULL) + ::PostMessage(hMainWnd,WM_COMMAND,IDM_RESTORE,(LPARAM)hMainWnd); + } + return FALSE; + } + + + // 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. + + // Initialize RichEdit control + // for About Dialog + if(g_hRichEdDLL==NULL) + { + g_hRichEdDLL=::LoadLibrary(_T("RICHED32.DLL")); + if(g_hRichEdDLL==NULL) + TRACE(_T("Cannot load library to display RichEditTextControl")); + } + +#if _MSC_VER < 1400 +#ifdef _AFXDLL + Enable3dControls(); // Call this when using MFC in a shared DLL +#else + Enable3dControlsStatic(); // Call this when linking to MFC statically +#endif +#endif + + + CSSIDialog dlg(NULL); + m_pMainWnd=&dlg; + switch(dlg.DoModal()) + { + case IDOK: + { + // TODO: Place code here to handle when the dialog is + // dismissed with OK + } + break; + case IDCANCEL: + { + // TODO: Place code here to handle when the dialog is + // dismissed with Cancel + } + break; + } + + // Since the dialog has been closed, return FALSE so that we exit the + // application, rather than start the application's message pump. + return FALSE; +} + +int CSystemStateInfoApp::ExitInstance() +{ + // TODO: Add your specialized code here and/or call the base class + + // unload the library + if(g_hRichEdDLL!=NULL) + ::FreeLibrary(g_hRichEdDLL); + + return CWinApp::ExitInstance(); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.dsp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.dsp new file mode 100644 index 0000000..548912f --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.dsp @@ -0,0 +1,658 @@ +# Microsoft Developer Studio Project File - Name="SystemStateInfo" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=SystemStateInfo - Win32 Unicode_Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "SystemStateInfo.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "SystemStateInfo.mak" CFG="SystemStateInfo - Win32 Unicode_Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "SystemStateInfo - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "SystemStateInfo - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE "SystemStateInfo - Win32 Release_Shared" (based on "Win32 (x86) Application") +!MESSAGE "SystemStateInfo - Win32 Unicode_Debug" (based on "Win32 (x86) Application") +!MESSAGE "SystemStateInfo - Win32 Unicode_Release" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "SystemStateInfo - Win32 Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /I "..\..\..\Lib\Processor\Intel\Cpuinf32" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 ..\..\..\Lib\libs\Cpuinfr.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"LIBC" /out:"SystemStateInfo.exe" + +!ELSEIF "$(CFG)" == "SystemStateInfo - Win32 Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /I "..\..\..\Lib\Processor\Intel\Cpuinf32" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 ..\..\..\Lib\libs\Cpuinfr.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"LIBC" /out:"SystemStateInfo.exe" /pdbtype:sept + +!ELSEIF "$(CFG)" == "SystemStateInfo - Win32 Release_Shared" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release_Shared" +# PROP BASE Intermediate_Dir "Release_Shared" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release_Shared" +# PROP Intermediate_Dir "Release_Shared" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W4 /GX /O2 /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /I "..\..\..\Lib\Processor\Intel\Cpuinf32" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 ..\..\..\Lib\libs\Cpuinfr.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"LIBC" /out:"SystemStateInfo.exe" + +!ELSEIF "$(CFG)" == "SystemStateInfo - Win32 Unicode_Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Unicode_Debug" +# PROP BASE Intermediate_Dir "Unicode_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Unicode_Debug" +# PROP Intermediate_Dir "Unicode_Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /I "..\..\..\Lib\Processor\Intel\Cpuinf32" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 ..\..\..\Lib\libs\Cpuinfr.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"LIBCD" /nodefaultlib:"LIBC" /out:"SystemStateInfo.exe" /pdbtype:sept + +!ELSEIF "$(CFG)" == "SystemStateInfo - Win32 Unicode_Release" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Unicode_Release" +# PROP BASE Intermediate_Dir "Unicode_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Unicode_Release" +# PROP Intermediate_Dir "Unicode_Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /I "..\..\..\Lib\Processor\Intel\Cpuinf32" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 ..\..\..\Lib\libs\Cpuinfr.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"LIBC" /out:"SystemStateInfo.exe" + +!ENDIF + +# Begin Target + +# Name "SystemStateInfo - Win32 Release" +# Name "SystemStateInfo - Win32 Debug" +# Name "SystemStateInfo - Win32 Release_Shared" +# Name "SystemStateInfo - Win32 Unicode_Debug" +# Name "SystemStateInfo - Win32 Unicode_Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Group "UTSource" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\source\UTSampleAbout\HtmlCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\MFCToolBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OX3DTabView.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXAdvancedAssert.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXAdvancedAssertMail.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXBitmapButton.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXBitmapMenu.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXBitmapMenuOrganizer.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXCalendar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXCalendarPopup.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCoolToolBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\oxdocktabctrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXDragDockContext.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXFrameWndDock.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXHookWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXInstanceManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXInteger.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXItemTip.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXItemTipWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXIteratorService.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXLayoutManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXMDIFloatWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXMenuBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXNetBrowseTree.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXProcess.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXRectTracker.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXSeparator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXService.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXShortcutBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSizeCtrlBar.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSizeDockBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSizeToolBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkinnedSpinCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkinnedTabCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkins.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXSplashWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXSplashWndDIB.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSplitterRect.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXSysInfo.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSzMiniDockFrmWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXTabClientWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXTaskbarIcon.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXToolTipCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXTreeCal.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXTreeCombo.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXTreeCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXTreeEdit.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXTreeHeader.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXTreeItem.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXUxTheme.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\UTBStrOp.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\UTSampleAbout\UTSampleAbout.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\Xstatus4.cpp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ApplicationsDialog.cpp +# End Source File +# Begin Source File + +SOURCE=.\NetworkResourcesDialog.cpp +# End Source File +# Begin Source File + +SOURCE=.\PageDialog.cpp +# End Source File +# Begin Source File + +SOURCE=.\ProcessesDialog.cpp +# End Source File +# Begin Source File + +SOURCE=.\ServicesDialog.cpp +# End Source File +# Begin Source File + +SOURCE=.\SSIDialog.cpp +# End Source File +# Begin Source File + +SOURCE=.\SSITaskbarIcon.cpp +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# Begin Source File + +SOURCE=.\SysInfoDialog.cpp +# End Source File +# Begin Source File + +SOURCE=.\SystemStateInfo.cpp +# End Source File +# Begin Source File + +SOURCE=.\SystemStateInfo.rc +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Group "UTHeader" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\Include\OXBitmapButton.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXCalendar.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXCalendarPopup.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXDllExt.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXHookWnd.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXInstanceManager.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXInteger.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXInteger.inl +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXItemTip.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXItemTipWnd.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXIteratorService.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXLayoutManager.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXLayoutManager.inl +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXNetBrowseTree.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXSeparator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXService.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXShortcutBar.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXSysInfo.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXTaskbarIcon.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXTaskbarIcon.inl +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXTreeCal.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXTreeCombo.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXTreeCtrl.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXTreeEdit.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXTreeHeader.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXTreeItem.h +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ApplicationsDialog.h +# End Source File +# Begin Source File + +SOURCE=.\NetworkResourcesDialog.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXProcess.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXSplashWnd.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXSplashWnd.inl +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXSplashWndDIB.h +# End Source File +# Begin Source File + +SOURCE=.\PageDialog.h +# End Source File +# Begin Source File + +SOURCE=.\ProcessesDialog.h +# End Source File +# Begin Source File + +SOURCE=.\Resource.h +# End Source File +# Begin Source File + +SOURCE=.\ServicesDialog.h +# End Source File +# Begin Source File + +SOURCE=.\SSIDialog.h +# End Source File +# Begin Source File + +SOURCE=.\SSITaskbarIcon.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# Begin Source File + +SOURCE=.\SysInfoDialog.h +# End Source File +# Begin Source File + +SOURCE=.\SystemStateInfo.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\res\bitmap_r.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\idr_main.ico +# End Source File +# Begin Source File + +SOURCE=.\res\Logo.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\processe.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\services.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\shb_larg.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\shb_smal.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\sysinfo_.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\SystemStateInfo.ico +# End Source File +# Begin Source File + +SOURCE=.\res\SystemStateInfo.rc2 +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ReadMe.txt +# End Source File +# End Target +# End Project diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.dsw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.dsw new file mode 100644 index 0000000..d0bf935 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "SystemStateInfo"=".\SystemStateInfo.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.exe.manifest b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.exe.manifest new file mode 100644 index 0000000..275675d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.exe.manifest @@ -0,0 +1,22 @@ + + + +Your app description here + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.h new file mode 100644 index 0000000..ee462db --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.h @@ -0,0 +1,54 @@ +// SystemStateInfo.h : main header file for the SYSTEMSTATEINFO application +// + +#if !defined(AFX_SYSTEMSTATEINFO_H__367620A8_4CA7_11D2_A72F_525400DAF3CE__INCLUDED_) +#define AFX_SYSTEMSTATEINFO_H__367620A8_4CA7_11D2_A72F_525400DAF3CE__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols + +///////////////////////////////////////////////////////////////////////////// +// CSystemStateInfoApp: +// See SystemStateInfo.cpp for the implementation of this class +// + +class CSystemStateInfoApp : public CWinApp +{ +public: + CSystemStateInfoApp(); + +protected: + +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CSystemStateInfoApp) + public: + virtual BOOL InitInstance(); + virtual int ExitInstance(); + //}}AFX_VIRTUAL + +// Implementation + + //{{AFX_MSG(CSystemStateInfoApp) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_SYSTEMSTATEINFO_H__367620A8_4CA7_11D2_A72F_525400DAF3CE__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.rc b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.rc new file mode 100644 index 0000000..db0e310 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.rc @@ -0,0 +1,382 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE MOVEABLE PURE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE MOVEABLE PURE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE MOVEABLE PURE +BEGIN + "#include ""UTSampleAbout.rc"" \r\n" + "#include ""OXNetBrowseTree.rc"" // Net browse resource\r\n" + "#include ""OXBitmapButton.rc""\r\n" + "#include ""OXCalendarPopup.rc""\r\n" + "#include ""OXShortcutBar.rc""\r\n" + "#include ""OXSysinfo.rc""\r\n" + "#include ""OXProcess.rc""\r\n" + "\r\n" + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif\r\n" + "#include ""res\\SystemStateInfo.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "#endif\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON DISCARDABLE "res\\SystemStateInfo.ico" + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "FileDescription", "SystemStateInfo MFC Application\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "SystemStateInfo\0" + VALUE "LegalCopyright", "Copyright (C) 1998\0" + VALUE "OriginalFilename", "SystemStateInfo.EXE\0" + VALUE "ProductName", "SystemStateInfo Application\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_TRAYICON_POPUPMENU MENU DISCARDABLE +BEGIN + POPUP "Popup" + BEGIN + MENUITEM "&Restore", IDM_RESTORE + MENUITEM "&Exit", IDM_CLOSE + MENUITEM SEPARATOR + MENUITEM "&About ...", IDM_ABOUTBOX + END +END + +IDR_APPLICATION_POPUPMENU MENU DISCARDABLE +BEGIN + POPUP "Popup" + BEGIN + MENUITEM "Switch to...", IDM_APP_SWITCHTO + MENUITEM "Bring to front", IDM_APP_BRINGTOFRONT + MENUITEM SEPARATOR + MENUITEM "Minimize", IDM_APP_MINIMIZE + MENUITEM "Restore", IDM_APP_RESTORE + MENUITEM "Maximize", IDM_APP_MAXIMIZE + MENUITEM SEPARATOR + MENUITEM "Close", IDM_APP_CLOSE + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_SSI_DIALOG DIALOGEX 0, 0, 410, 230 +STYLE WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CLIPCHILDREN | + WS_CAPTION | WS_SYSMENU | WS_THICKFRAME +EXSTYLE WS_EX_CLIENTEDGE +CAPTION "System State Info (Dundas Software)" +FONT 8, "MS Sans Serif" +BEGIN + LTEXT "Static",IDC_TOPIC,97,7,286,13,SS_NOTIFY | SS_SUNKEN, + WS_EX_TRANSPARENT + LTEXT "",IDC_BOTTOMSEPARATOR,96,218,307,8,SS_NOTIFY | + SS_SUNKEN,WS_EX_TRANSPARENT + LTEXT "",IDC_SHB_TOPICS,7,7,84,216,WS_BORDER + CONTROL "\nRefresh",IDC_BUTTON_REFRESH,"Button",BS_OWNERDRAW | + WS_TABSTOP,388,6,15,14 +END + +IDD_SYSINFO_DIALOG DIALOGEX 0, 0, 231, 215 +STYLE WS_CHILD +FONT 8, "MS Sans Serif", 0, 0, 0x1 +BEGIN + CONTROL "List1",IDC_TREE_ITEMS,"SysListView32",LVS_REPORT | + LVS_SINGLESEL | LVS_OWNERDRAWFIXED | LVS_NOSORTHEADER | + WS_BORDER | WS_TABSTOP,0,0,231,197,WS_EX_CLIENTEDGE + CONTROL "Expand &Level",IDC_RADIO_EXPANDLEVEL,"Button", + BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,1,203,59,10 + CONTROL "Expand &All",IDC_RADIO_EXPANDALL,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,107,203,49,10 + EDITTEXT IDC_EDIT_EXPANDLEVEL,61,202,26,12,ES_RIGHT | + ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RTLREADING + CONTROL "Spin1",IDC_SPIN_EXPANDLEVEL,"msctls_updown32", + UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | + UDS_ARROWKEYS,87,201,11,12 + CONTROL "&Show printers",IDC_SHOWPRINTERS,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,171,203,59,10 +END + +IDD_NETWORKRESOURCES_DIALOG DIALOGEX 0, 0, 256, 221 +STYLE WS_CHILD +FONT 8, "MS Sans Serif", 0, 0, 0x1 +BEGIN + CONTROL "Tree1",IDC_RESOURCES_TREE,"SysTreeView32", + TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | + TVS_SHOWSELALWAYS | WS_TABSTOP,0,0,255,107, + WS_EX_CLIENTEDGE + CONTROL "List1",IDC_LIST_DETAILS,"SysListView32",LVS_REPORT | + LVS_SINGLESEL | LVS_EDITLABELS | LVS_NOSORTHEADER | + WS_BORDER | WS_TABSTOP,0,113,138,107 + COMBOBOX IDC_COMBO_SCOPE,144,113,111,68,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + CONTROL "Show &comment names",IDC_CHECK_COMMENTS,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,144,135,87,10 + CONTROL "Show &disks",IDC_CHECK_DISKS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,144,147,52,10 + CONTROL "Show &printers",IDC_CHECK_PRINTERS,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,144,159,59,10 + CONTROL "Report &errors",IDC_CHECK_REPORT,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,144,171,59,10 + EDITTEXT IDC_EDIT_INITIALLEVEL,216,191,29,12 + CONTROL "Spin1",IDC_SPIN_INITIALLEVEL,"msctls_updown32", + UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | + UDS_ARROWKEYS,245,191,11,13 + EDITTEXT IDC_EDIT_MAXLEVEL,216,208,29,12,ES_AUTOHSCROLL + CONTROL "Spin1",IDC_SPIN_MAXLEVEL,"msctls_updown32", + UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | + UDS_ARROWKEYS,245,208,11,13 + LTEXT "",IDC_SEPARATOR1,144,127,111,8,SS_SUNKEN + LTEXT "&Initial expland level",IDC_STATIC_INITIALLEVEL,144,193, + 60,8 + LTEXT "",IDC_SEPARATOR2,144,182,111,8,SS_SUNKEN + LTEXT "&Max number of levels",IDC_STATIC_MAXLEVEL,144,209,68,8 +END + +IDD_SERVICES_DIALOG DIALOGEX 0, 0, 231, 214 +STYLE WS_CHILD +FONT 8, "MS Sans Serif", 0, 0, 0x1 +BEGIN + CONTROL "List1",IDC_TREE_SERVICES,"SysListView32",LVS_REPORT | + LVS_SINGLESEL | LVS_OWNERDRAWFIXED | WS_BORDER | + WS_TABSTOP,0,0,231,197,WS_EX_CLIENTEDGE + CONTROL "Expand &Level",IDC_RADIO_EXPANDLEVEL,"Button", + BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,1,203,59,10 + CONTROL "Expand &All",IDC_RADIO_EXPANDALL,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,107,203,49,10 + EDITTEXT IDC_EDIT_EXPANDLEVEL,61,202,26,12,ES_RIGHT | + ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RTLREADING + CONTROL "Spin1",IDC_SPIN_EXPANDLEVEL,"msctls_updown32", + UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | + UDS_ARROWKEYS,87,201,11,12 +END + +IDD_APPLICATIONS_DIALOG DIALOGEX 0, 0, 231, 214 +STYLE WS_CHILD +FONT 8, "MS Sans Serif", 0, 0, 0x1 +BEGIN + CONTROL "List1",IDC_TREE_APPLICATIONS,"SysListView32",LVS_REPORT | + LVS_SINGLESEL | LVS_OWNERDRAWFIXED | WS_BORDER | + WS_TABSTOP,0,0,231,197,WS_EX_CLIENTEDGE + CONTROL "Expand &Level",IDC_RADIO_EXPANDLEVEL,"Button", + BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,1,203,59,10 + CONTROL "Expand &All",IDC_RADIO_EXPANDALL,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,107,203,49,10 + EDITTEXT IDC_EDIT_EXPANDLEVEL,61,202,26,12,ES_RIGHT | + ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RTLREADING + CONTROL "Spin1",IDC_SPIN_EXPANDLEVEL,"msctls_updown32", + UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | + UDS_ARROWKEYS,87,201,11,12 +END + +IDD_PROCESSES_DIALOG DIALOGEX 0, 0, 231, 214 +STYLE WS_CHILD +FONT 8, "MS Sans Serif", 0, 0, 0x1 +BEGIN + CONTROL "List1",IDC_TREE_PROCESSES,"SysListView32",LVS_REPORT | + LVS_SINGLESEL | LVS_OWNERDRAWFIXED | WS_BORDER | + WS_TABSTOP,0,0,231,197,WS_EX_CLIENTEDGE + CONTROL "Expand &Level",IDC_RADIO_EXPANDLEVEL,"Button", + BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,1,203,59,10 + CONTROL "Expand &All",IDC_RADIO_EXPANDALL,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,107,203,49,10 + EDITTEXT IDC_EDIT_EXPANDLEVEL,61,202,26,12,ES_RIGHT | + ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RTLREADING + CONTROL "Spin1",IDC_SPIN_EXPANDLEVEL,"msctls_updown32", + UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | + UDS_ARROWKEYS,87,201,11,12 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO MOVEABLE PURE +BEGIN + IDD_SSI_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 403 + TOPMARGIN, 7 + BOTTOMMARGIN, 223 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDB_SHB_LARGE BITMAP MOVEABLE PURE "res\\shb_larg.bmp" +IDB_SHB_SMALL BITMAP MOVEABLE PURE "res\\shb_smal.bmp" +IDB_SYSINFO_TREE_IMAGE BITMAP MOVEABLE PURE "res\\sysinfo_.bmp" +IDB_SERVICES_TREE_IMAGE BITMAP MOVEABLE PURE "res\\services.bmp" +IDB_PROCESSES_TREE_IMAGE BITMAP MOVEABLE PURE "res\\processe.bmp" +IDB_LOGO BITMAP MOVEABLE PURE "res\\Logo.bmp" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_ABOUTBOX "&About SystemStateInfo..." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDR_MAINFRAME "System State Info" + ID_DESCRIPTION_FILE "SystemStateInfo.rtf" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// English (Canada) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENC) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_CAN +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDB_BITMAP_REFRESH BITMAP MOVEABLE PURE "res\\bitmap_r.bmp" +#endif // English (Canada) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#include "UTSampleAbout.rc" +#include "OXNetBrowseTree.rc" // Net browse resource +#include "OXBitmapButton.rc" +#include "OXCalendarPopup.rc" +#include "OXShortcutBar.rc" +#include "OXSysinfo.rc" +#include "OXProcess.rc" + +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif +#include "res\SystemStateInfo.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +#endif +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.rtf b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.rtf new file mode 100644 index 0000000000000000000000000000000000000000..b8bd27f09fbb26f6338c5bda901686ed1cb97d6c GIT binary patch literal 3442 zcmb7H!E)O+5be1${fC|OP&=bIvTQeTa>__EL1z#4<_x{8@uPPm={LaF7<#spRz+Y@G&)vzahK5~ad(O~;16+0qte6zSlOgl3n%Hih)?MB^6~{eA|k*Jp1^WEJSGvxPI`aX z>&Y$b-z>+|oBb}&oXP|;GoCf~c5YuQUoi5ITOKJv;wUS1p;DX4n4%`)1J2xyZ${I* z#eO&5N#{Y69)+dSag+8Qp)d-jO6SxFP9bxp@+lYelDPco^5XgBOHeN66^O$<0IxUj z?;U{jMNPII#j=nQ=ssP{2hF9(#=Ierr#oe0yY@YZNX=Bfaw)SM)N(jz!LviakH(9) zqxtyV)epj5R=H$og{dfZsxFt9ie@!YT6WZh?^*+D6p<8B+ClNo>Js!}4)q8WQ$jxi zS6G}PpMyF*AR%!d|6Ql=@zDcGLm;#3H~;KU+OTwWvH6H)5oPG%QC*`9TdkY`JTJC< zo`_E*?uF7K9>l09vn&!vrBP59redhfMr{D?!MnH0t;;`zdquUv z_*_ORLAq(3$|41!e8!K1|5~^eLuo)H7S?EkgRWS1VpbT~BY}{*0}xNHCe!&35MI`4 zWHjp>=4s_2sG2gFN$aYP3*QN28vkI6(zZ;?>1rk z{2R`0_j9#Nao1ANXYj1I4o%E71-At$S0h6YCUE&B+?O`?jnP-iv5Pr5NjYr2vKSEYV!Z$=DNvt#{3u9jYf)oP}=~O zR(&2xUCUzIaXsajj#!%3sftokMR$b7)<-I5LFf^Nt`d#Rl@2LqRQUl7>%<-ia5f*` zp!@zzh#0&CdJ__*xN&axT(sdW3P3V_t-mPf#+dQg8ElvAs~Va1a?G0CiTtZhfw7OC z1w;@#tNO-+9!Y~rvnJ!ole(tcB&mhjQZptJU6XyUU`yEr{mQYZW@dZMhxe#s=}kfEbe@ z1ZKy;YItyTT+aWZr`J$o%L5ChF@UxQ503iecERc^fYzK{s`C0pUi)jnPvV?kD b9okQivq;q?Ve3}}e)IT2zum&`kzf7;WY?Mx literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.vcproj b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.vcproj new file mode 100644 index 0000000..784e1c5 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/SystemStateInfo.vcproj @@ -0,0 +1,3712 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/Logo.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/Logo.bmp new file mode 100644 index 0000000000000000000000000000000000000000..82e31d51c50cc39468a603b67cdfb0086e2b69da GIT binary patch literal 43030 zcmeHQO^9Vj6|U}n{WCK?@4cR$>F$}HneLvMnEA=v_g1d55LY4yE?kH!1#u?^5izTX zBI3rVs~`k1F8qlZ^0>zV~{%d-{%3 zwdh-?PSvTZug>|ZZoSLQ+uybF4I}BT9b?Yh++9<~eAGUt%z~6Z|227(f2__b%yZ8^ zVZQw7_nODO$KV%-f?_=hvpFU_F zzNc?K{ODElk3apwJp90?%qKrsm`6UlX+HOnJI&L7dDFc3{4?g6Cx2+(c=hk**&p3w z{`llq%r76h%RKe1_nSw*Ff>=M{K35V>+hN0J$|ow;;ZjA@A%F?&Hcanm-+K6|1qEW z`K#u!7v41A|NR^0o4!e*Go$-H#jd ziT7=qYuB#Pq;fVRkP+Ap0>hj#0vUmfKt>=VkP*lTWCSt-8G(#IMj#`Q5y%K+1Tq2{ zfs8;#AR~|w$OvQvG6ETaJwjk*CM4>Di+zQYp@J`?OgE^zRP3^%P1?0J#1{RT`dn+U$mXyoXRLa&l0Ya+f7GCI`uqaMh z@pP!Z8ZCxZuAB%;sZ0*LWV@oaMHzm+0UVxc%gESif!bRL%!_s?OelwgE>(3;z=ly8 zvnLcn3{1JAWWwJrM`QxBhomU%a`5sjMTBw!ZKng^kSW}3<;YeQeqjmLYVOSdZ=(5D z0QC+lGNI5~q^hFzo+O%~ClrO4Mlejd5KxrN;Q@k^EMh){8RTw&zYxYIxeC9q zrIH(z?mavc@V$J_nqwJT=2n%IDpl21*^|UGOc4qYQwTDl02D0~4hRogj^mn8YBGhJ zjvW_%U0OiD9M#c@Hq5hti)0WACsK{8%FTA1ry05#F$K%fOCd-T7EqL|!sFzsPu3W* zy%36$DcmG>NcQ2kLL^iHF1x9PV%d4{)|MPIh&4bcoJb{vLb9&P&32qm&4>__BOuA3 zWb)Wa2qhY#B9QAK6l;#gTmoLXchnOEO(;}>Rhm#B?^PN{C?J`g5lS?2J}x45*fc6q zxHS=qtwpN_z@2-;K%9s*wm~RDFtMTClk^N>nFvHkhGc+51R|tBa^i#%50waHX?mKe zK|+aKw~yxF~%FCC^tFPxesZVQ{MCKQq5Veg)#X9&wgAVQlYD?-7kLK6)8 zEcV+dDc1yCWm?DHJM22qJ{wLbVvf8da&M-I0I1{?OPnY5ei4dH+0KU%8$&2~rx|lX z5rEtuCKSTfW~XIs2uMvR@3E)DMfU%D?5%0v%DAbUwD z)}zCnNKwF1yX5qmP+a)w{Zbm1z%ZZSNXYUSLeT_M8r=QAnhnsyC_=FW!%enJC>%R* zOri$a49Imgp?Kn;I_2_g_Fw3Erg4b>I znSfAg?rl+DoDt(S0{QSqP!v(H=DngO>6aq;RiiAfrWQrX)H2;912xSq6QL0|<=hTlS9pt0a2MTdFRXc$UTV>M8|&0f5=Z)>l`FWaW~UIRltQ ziIuiHHVw#lGhVcMT6uW|;;!Kf;e;ax%Jc4L9Ec~PVkho+c_l$J>`8Um?`a~dNlRa@CzdGVAUC&Fl8vY0*smY}B{Gq`q{Q+RVM zjH^n+-$6DSJJ0RJFnP}`RfLffx1v>hp(GDMQH&%M?$hSM{m~I6*27ff-WC1%?OR@b z8Uf#|K827@bayX2+Yq-rBdf;HNZm$66)SD(e{FB zF3iWbIAqH@p~|ckgLF_D%sLY==<>EwWzL)O=BW1`VkvgX}eE zr{=ACE+~)qDRq3|f-O7br2#NI5JbQ~-*@r>E7i;eQ{H^fH5d$FzD!gY)W{vcDBG3d z0kR~3AK? z*4 zT9^or8liw-h*122AWVZIzI=nJw;)LCghKqJ2u0(a;wxW91d{Gcl`7rHHTo;<=^(7=}wft3FyDA>r2r)5vVqmQ8}S7gF0IvN1Dj`-kw z36G}LO%Tc?=FugssobHA9yD6)U($2ZGSNfAR|qe^L#c@04xwmsS_VwYydW3Wv?P?# zgWf-|(KF3S?i)x3gxe<+I#%EaLC!b!gu=mv%RQE@C`p-@GFnq1l+lB(4DHi{<|MbS zB=_x*M#rX(2FzhJq0pJ#!q0W%?R2nUW!ekmz9D5EWjx4(cA>~;!Y@In*n-56;TnVG z5qBtrTR3qecR)uxIbU2;NqC3ssWK8feDa}kn?1-sEXAt9z`dHb0P1oGY3n%TW46A2%O z2mR>e=r2*7sr*z3OhPDpa!@A{{YzQvzEM!q-G6ZsLQ$6*fzAiOn=fTs_l?5-1FS|c z385&0p*s^f(ra1ukVQs-3B|F2CJ-&tg`G6fGTYC2g#ZzXX9GnbBkoM33BB^B9^Wj3$(P1e_3OUu_Jb;G&iZMiENlLke#>XHp2H2!&pQ%?`^t*w{l%Y9Mi2@J zh6tpOpN;92C=*JfPtBGeni95y>eJKN5ropW_UK2SLBH4O`D3`vG=VkP*lTWCSt-8G(#IMj#`Q5y%K+1Tq2{fs8;# I;Fd(-e~#mqTmS$7 literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/SystemStateInfo.ico b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/SystemStateInfo.ico new file mode 100644 index 0000000000000000000000000000000000000000..457485effd44a1aad5e947ca425c41dea5edc391 GIT binary patch literal 1078 zcmb7DF;4415Pcyio(ks%KNU(z^_w&tfI}c5ZPMY2Sfa>OWIJC4>6bJ<0EeKYv_ugX zi2ZMNZO5QAO!n=}+nHH!*3ZBMXIL!eFnd1(F6rm<#FrD`VhSv|wji#F3C=kK%G%SW zOfsXI9A}28>zdvYAr6FK5y77=*)+15yZgJ}9!=fqxnfao<@5#WWf*?-4?fqnA0IDQ z@G4MAD@C|bW7|RY z#-l|JUmCG|b>J+rH(s$e3x{n{YOJqzA;^7jx20MdRmlc%n)keLj?1%Z#H-M_5yuZ+ z{p2^V^|;>BW6tfrac6ei-%e%c($3po_I}{~8|(7%hU}KwR6pGLuHzEhIdwelYBEcp z`e5k!L>bq_8_^J-M@$*#zr`1OsJuKV{w(<*Q~rYJbzU<*ZAy(ZLrq7=nc**VK7D34 zZIwLrJhPiNnq?}Fmh%sV=^}etuf_E96KJZlCFYN)Il7 literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/SystemStateInfo.rc2 b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/SystemStateInfo.rc2 new file mode 100644 index 0000000..5be5215 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/SystemStateInfo.rc2 @@ -0,0 +1,13 @@ +// +// SYSTEMSTATEINFO.RC2 - resources Microsoft Visual C++ does not edit directly +// + +#ifdef APSTUDIO_INVOKED + #error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// Add manually edited resources here... + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/bitmap_r.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/bitmap_r.bmp new file mode 100644 index 0000000000000000000000000000000000000000..4592997170a194e00b6a51842d028a1fc85ca248 GIT binary patch literal 238 zcmZuoI}QRN5Pc>j7KY$4JccpbdY7$)l5Pu&z0NjdIRd@m3dYV&DDW|C=`imzZ-(3b zjb0DRg*X$2I6#pBC;X2*z=ro-$h3$tQrn_Rqt@mKz7~-}2)Wm5*9I*A}Gh o`)q-k-MVNQ%QR*fj&|h!R3c#H5FA=W?h1p^6NnVCo}og38^do%MjB)W;m#jO=o7;!FjMT4& z%*A8l$|w@PsNSTs2W@sq+gIkB*4ZJb9@eMLj*sGp^=Y$H#e-dCY9n$3o+-a6)sDWR zcu^E<7ahx%!tvEr*WIm|2e>`>uw@kKYPDLL?lkUBo2D_ncj|A~qZaeKN&n?L8}Lux zI~y?7_g%*F?GEsZfK62X{wm*2MPpTohe`-5GZA?RStcACUe)2a% zp=wI_!?2+qTfSf5C9`e`%!q`rJ2&#jC)WydE$?2N5*$;bcY?%_lb3|@`oN#bk@!k{ zm&DzZ2f+R4`|2lf{sf%;;@S(=)|;Ob<2|q0e?G)E{6F`6_cnx^hZ4K@AzU`4>{Nau z7sX{$yb*~1P{WDeZej=`yRJ)D=Mnqs?P)`%Hul$ihtziF%2#^Io1QsB13a`)dIT_`>wm=)U{idt~vI0wCpfL;% z{vtSTGN*vil88Xv=<%s{?*KesfefWirbI1Nr_wX`79&#cT&rB|e{!aC9k}A2RW64I D{eyK= literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/services.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/services.bmp new file mode 100644 index 0000000000000000000000000000000000000000..6368cf0430e8c7e55161a2e54e003d19ebd6299e GIT binary patch literal 374 zcmZusF=_)b5L|Ns34$O`Na@m$Lax*2FM81jvL|*OUdHC0*rckn~zC*>!`&{L!K)=f7M%^3+F?Y+O~btNm`~}dcl2cOrfGwE0@c9Dixq8x?C%25L2l%ZQ?tdhQexxhq3SsMP7$S`4wxiD-pitP5y RU|l^2_xukZ=LXlw{s5t8q!IuC literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/shb_larg.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/shb_larg.bmp new file mode 100644 index 0000000000000000000000000000000000000000..ce237daa77ce6100f651bc4818c648bc4753d584 GIT binary patch literal 4214 zcmb`K%WEV>9LGy0Nw>^)TK@vY%X-^^`~yJ(o@8^`qqv|1kB!JyXLoT5T!2 zB;5mU(D2-wu=YRS^RT|aAfS3Fq*Q?dl_pWdXt}DFRK}WR3W1X39L*mE4x|i117+nM(_;*7}Dukk0_45-4lp zGxzZr)Z6s$O5uaf{B&m79sLpWEA8;9BE15BiSctDu&^Sv6Phw9+fR-e9ESEAH5iP0 zy>onX1>O69-IX$R`ZNE6+@IlbG8#2RtD4*=NIq=J+}TcLxw7@X=l}lpJ9cege}4HD z=EL!3a5xI`&-8nPd2cXTw10Wi)aKruAEeC4Hmx1s?nk?F8~*eB4=$ns*%WvFJjb`+ zJ+{AoZS5B!AFLg(tr6oSenlS%p{!`+cIN%F09-}oC-XpYTEn~H*0aj&~08{WU*qNOn`m?Fyx2cWmRKwo> zyXXt&(tHFTWpQr)@x%+)zy5qaNpnS)mX86zPlzwl&VI@Mm%A`O+IIHWoEfetbfWdg zYsdrmk!M=X{4*7K{-Iv$?GN%Fe1jImmmkqwr8|_!zneFAVgAhr-u}P= zae)@hR@j&l$^_>B^4cZ4^&V8XoVD>sa(R9%u)?Kd*gqaocPDfw@NdAs{v(prz=`Nh z`S%FPZ|$RRIsOQ=OFm2jrTut-FGzXR+FuTRd~^7lf~s{=Q5sMtIQ{|nTh<;qK1Fh~Zuuh9Q8pGa4jtpC z`Q-K+ckn*2AJKmT`w@RQ1onTp!E%}Sa7Kn{hu3(36n1QP@$Us4c>Woh+dTh8Bn9$I z#!|7vU7kTX2m&Bbe}ms)1gvt1zeM!O<*@&lnw8lRi{le$8uDkuV!Mry+yCKs@X=-m zW@#P^GrVDA>Ls#eo%!Z8sbj5#AeSoQ)A}RCXylY^R7HIj_!U+0K7xLzg#UMM-)8@8 ztfPu%WsHAeP+43x&nT?yE0#?6nnZN2FbJdlZ}lx72_o-P>jFXy}RcX zAjf)scm5MmHfeMkWl)V|iQ2ONS5LOC)@I_57ZikSni#7x-8v zg>CltcPS}p^&s*7KV9+jU&yRM5-#$oA@~Rh7AGgf$Fmv^Nez~&pk1uY7WhB0{iVby ziTN`-r1Q!-KAh|MNIl|v?OOk1+*O1>5NH8>6*Wx*T@7lE(X6RR1xd#PQ zF{jhQ_&guE)$udRzvyYcfrmmNB$+?VCN&4X8WxW49K`dVj@`5_m+}DXu~dZ*A1+Lw z`A5x9wzgv2?!c17s5qhRn8oKG-NVdKm`~=X;L{RU+N?x_k`F&xm$d%z0*q0sPh?(B zvg8(}Gh`i1HyD5a7|QMT{9_7tPUQL}Zta?$D@jEI^DS<2g#kro@haGVf(})I14vTe zqTwKJ?o)ls#~{#?#8^M~>4AoARi)=ZyaUMm`q&vw{&!zG@Oyar$7}E>o&8W@-3{fw z{{+l$`Cz)Le<_)7*nB8Jfn|?(-+)84FhFIeJHg?g{Wfs?h4bG+w|{!yAFf397oVz}etZ&P13UH||9 literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/shb_smal.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/shb_smal.bmp new file mode 100644 index 0000000000000000000000000000000000000000..af0321f0c478c0dba3e5dea2729f3d62ceb91814 GIT binary patch literal 1142 zcmZ{j&59F26os$MU|Pn?_!t8&5|~A1Dbk=DU&D1^WV&!;fkG8%tc{?9i+~$l3gZLh z0RmIY-W1LQxCkPcETlZ=b|*-{J5xWoRp0$N-Tm;%#i6KOU_QZc822!4Nq^8UaP67v zE<2|TXKZD$SYX9QivCL}++pC4E=-x$Vv(G1WUx`AJ8}At@iGkeVLlkS68|LxhaU}W z3VM5*`&(V4HqcDwt>@lol;h&URTWVWcrJx}I@0J#D(TA1+0AlwLegbMaRZ~b*I}An zc8Ep(=V&um{;Ot8r;}5-VXP>5%K`(^%!>?6JD^1io_=JE_eUR<&s}qJ-b|)lCC-?m z&rQ!?mX&yuA+U47Aa<+*`-z`Mf4(z+uirsa9h`T3N_i3*tNGuQjobmxXx18t7jHlH z#y7kERlj89%)jjOqar``Q+A%?^-2o(mI`|65QpGnVL;VC8DzzAkQKkrKjXTgp0VO=XwLjRnHSJA=oCAbud=g=K%Z< z=8t!mk0>%9E8m{(X=8a|2lTW4?1rWSKDE}FnF`1JbxnTQ@xFPl>M_8O`ngcewtTwL zk3^g^ZO$fXesoP#Q#Q3ip72ev;je-2Mf(G+Ubh literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/sysinfo_.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/SystemStateInfo/res/sysinfo_.bmp new file mode 100644 index 0000000000000000000000000000000000000000..529cff9d7c789ea9feb89d4591d304f2f37835c3 GIT binary patch literal 3510 zcma)8&x;&I6s|b3)w*fNqklqBk%l?!Kob-lBp31KP1u7hA!z7i#BLdJ3+B)*%h2r6 zn|Lr1JPbBC3nL^L5F&GESlI1LMQ^!eLxX`G46*&*tLpicoyE61^{T60zk1*MURCwG zAN=A9mM_p=!td4vAzp>PAYSD0ckDbrEHz39{0pUwLW{1rd-pChO;r3Zs)~B};g5#U zXp+Jx?yokmU!Ki{yJ~apb8TPibB)iQq!=Jt=V%vJ2Y@rAWG8X5V5s#XhN23?=rx`; zHo221>hUT(w73ent8>6wh|Ry*)M}bHj%J$PF+w4exVB@Is}m!xemiTmyxLmpGXP=Je{qL>@hL(rsISe9js8lKUbGey zf)1m|ty85ByZz34eGxOSkxDzAj(;I?T#+WTsAzqf#?MFLI~+&Y1d)3UpTeS4S*D!%j}840iQJaS#)M3i9z&5Vh%nCpsen8B{V*q1&Wq@RY}~OFx?vw~l?LtMFUe zQK{7i)2SnsSmmh!OatOF%9k;ucn4((cg3#J1d59!0Z%v*N!-Sar&pFRU48uEBf^CJ)H>(fE1o=J zo@`8xp~;*$sO9wHy~#vGbc6v^fYZz$d&9A(i6Dv%x(wa<{j~APA6vU>mXl=+&8oR8 za3z)m#A@o=#f#57oe!H$X8{v#CaOIub)DpyUZN#2|iR=axSdm~i%_XhM>YqCX z6MqQiS<4?&NK|c<@0@5_5b?$qP1~HTVi1BpbrQC(wbt=yM2p)*L>3cLMI*fU(RPVd zj!qsQ0TT!~APp z7xhY3&lX1vECae 1000 +#pragma once +#endif // _MSC_VER > 1000 + + +class CChildFrame : public CMDIChildWnd +{ + DECLARE_DYNCREATE(CChildFrame) +public: + CChildFrame(); + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CChildFrame) + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CChildFrame(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +// Generated message map functions +protected: + //{{AFX_MSG(CChildFrame) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_CHILDFRM_H__73A06A3F_E209_11D2_A7ED_525400DAF3CE__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/MainFrm.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/MainFrm.cpp new file mode 100644 index 0000000..adeeef7 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/MainFrm.cpp @@ -0,0 +1,471 @@ +// MainFrm.cpp : implementation of the CMainFrame class +// + +#include "stdafx.h" +#include "VisualStudioLikeDemo.h" + +#include "MainFrm.h" + +#include "OXCoolComboBox.h" + + +#ifndef OX_CUSTOMIZE_WORKSPACE_STATE +#include "OXWorkspaceState.h" +#endif // OX_CUSTOMIZE_WORKSPACE_STATE + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + + +COXCustomTBButtonTemplate* CCustomTBExtendedEdit::CBCreateNewInstance() const +{ + return dynamic_cast(new CCustomTBExtendedEdit); +} + +void CCustomTBExtendedEdit:: +CBCopyContents(COXCustomTBButtonTemplate* pCBTemplate) const +{ + ASSERT(::IsWindow(GetSafeHwnd())); + + COXCustomTBButtonWnd::CBCopyContents(pCBTemplate); + + COXEdit* pNewEdit=(COXEdit*)pCBTemplate->CBGetWindow(); + pNewEdit->SetBkColor(GetBkColor(),FALSE); + pNewEdit->SetHighlightOnSetFocus(GetHighlightOnSetFocus()); + pNewEdit->SetInsertMode(GetInsertMode()); + pNewEdit->SetMask(GetMask()); + pNewEdit->SetTextColor(GetTextColor(),FALSE); + pNewEdit->SetToolTipText(GetToolTipText()); + pNewEdit->SetInputData(GetInputData()); +} + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame + +IMPLEMENT_DYNCREATE(CMainFrame, CMainFrameWindow) + +BEGIN_MESSAGE_MAP(CMainFrame, CMainFrameWindow) + //{{AFX_MSG_MAP(CMainFrame) + ON_WM_CREATE() + ON_WM_CLOSE() + ON_COMMAND(ID_VIEW_CUSTOMIZE, OnViewCustomize) + ON_WM_CONTEXTMENU() + //}}AFX_MSG_MAP + ON_UPDATE_COMMAND_UI(ID_VIEW_WORKSPACE, OnUpdateControlBarMenu) + ON_COMMAND_EX(ID_VIEW_WORKSPACE, OnBarCheck) + ON_UPDATE_COMMAND_UI(ID_VIEW_OUTPUT, OnUpdateControlBarMenu) + ON_COMMAND_EX(ID_VIEW_OUTPUT, OnBarCheck) + ON_COMMAND_RANGE(AFX_IDW_TOOLBAR,AFX_IDW_TOOLBAR+100,OnShowControlBars) + ON_UPDATE_COMMAND_UI_RANGE(ID_CB_EDIT, ID_CB_HOTKEY, OnUpdateCustomButton) +END_MESSAGE_MAP() + +static UINT indicators[] = +{ + ID_SEPARATOR, // status line indicator + ID_INDICATOR_CAPS, + ID_INDICATOR_NUM, + ID_INDICATOR_SCRL, +}; + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame construction/destruction + +CMainFrame::CMainFrame() : + COXMenuBarFrame(CBRS_ALIGN_ANY, + RUNTIME_CLASS(COXSizableMiniDockFrameWnd)) +{ + // TODO: add member initialization code here + +} + +CMainFrame::~CMainFrame() +{ +} + +class CMyEdit : public CEdit +{ + DECLARE_DYNAMIC(CMyEdit) +public: + CMyEdit() {}; + +protected: + BOOL b; + +protected: + virtual void Control() {}; + DECLARE_MESSAGE_MAP() +}; + +IMPLEMENT_DYNAMIC(CMyEdit, CEdit) + +BEGIN_MESSAGE_MAP(CMyEdit, CEdit) +END_MESSAGE_MAP() + + +int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) +{ +#ifdef OX_CUSTOMIZE_INSTANCE_MANAGER + if(m_customizeManager.CheckMaxAllowedInstances()) + { + TRACE(_T("CMainFrame::OnCreate: the maximum allowed number of instances has been reached. The application won't be loaded\n")); + return -1; + } +#endif // OX_CUSTOMIZE_INSTANCE_MANAGER + +#ifdef OX_CUSTOMIZE_SPLASHWINDOW + VERIFY(m_customizeManager.InitializeSplashWindow(IDB_SPLASHWINDOW)); +#endif // OX_CUSTOMIZE_INSTANCE_MANAGER + + if (CMainFrameWindow::OnCreate(lpCreateStruct) == -1) + return -1; + m_bAutoMenuEnable=FALSE; + + if (!m_wndToolBar.Create(this, + WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC, + AFX_IDW_TOOLBAR) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) + { + TRACE0("Failed to create toolbar\n"); + return -1; // fail to create + } + m_wndToolBar.IniSizes(CSize(ID_OXCUSTOMIZE_TBIMAGE_WIDTH, + ID_OXCUSTOMIZE_TBIMAGE_HEIGHT)); + m_wndToolBar.UpdateSizes(); + m_wndToolBar.SetWindowText(_T("Toolbar")); + + + static CFont font; + if((HFONT)font!=NULL) + font.DeleteObject(); + font.CreatePointFont(-80,_T("MS Sans Serif")); + + // create custom buttons objects + // + static COXCustomTBSubclassedComboBox m_combo; + int nCBIndexCombo= + COXCoolToolBar::AddCustomButton(&m_combo,ID_CB_COMBO,100,200,OXCBD_SHOWANY,0); + ASSERT(nCBIndexCombo!=-1); + + static CCustomTBExtendedEdit m_edit; + int nCBIndexEdit= + COXCoolToolBar::AddCustomButton(&m_edit,ID_CB_EDIT,100,18,OXCBD_SHOWANY,0); + ASSERT(nCBIndexEdit!=-1); + + static COXCustomTBButtonWnd m_slider; + int nCBIndexSlider= + m_wndToolBarWindow.AddCustomButton(&m_slider,ID_CB_SLIDER,90,21,OXCBD_SHOWANY,0); + ASSERT(nCBIndexSlider!=-1); + +#if _MFC_VER>0x0421 + /////////////////////////////////////////////////////////////////////////// + static COXCustomTBButtonWnd m_datetime; + int nCBIndexDTP= + m_wndToolBarWindow.AddCustomButton(&m_datetime,ID_CB_DTP,80,21,OXCBD_SHOWANY,0); + ASSERT(nCBIndexDTP!=-1); + + + /////////////////////////////////////////////////////////////////////////// +#endif + static COXCustomTBComboBox m_comboEx; + int nCBIndexComboEx= + m_wndToolBarWindow.AddCustomButton(&m_comboEx,ID_CB_COMBOEX,120,200,OXCBD_SHOWANY,0); + ASSERT(nCBIndexComboEx!=-1); + + VERIFY(m_wndToolBar.InsertComboBox(10,nCBIndexCombo)); + m_combo.SetFont(&font); + m_combo.AddString(_T("32.34")); + m_combo.AddString(_T("Only digits!")); + m_combo.AddString(_T("10,200.356")); + m_combo.AddString(_T("1.0")); + + VERIFY(m_wndToolBar.InsertEditBox(12,nCBIndexEdit,_T("EditBox"))); + m_edit.SetFont(&font); + m_edit.SetTextColor(RGB(0,0,255)); + + + if (!m_wndToolBarWindow.Create(this, + WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC, + AFX_IDW_TOOLBAR+10) || !m_wndToolBarWindow.LoadToolBar(IDR_TB_WINDOW)) + { + TRACE0("Failed to create toolbar\n"); + return -1; // fail to create + } + m_wndToolBarWindow.IniSizes(CSize(ID_OXCUSTOMIZE_TBIMAGE_WIDTH, + ID_OXCUSTOMIZE_TBIMAGE_HEIGHT)); + m_wndToolBarWindow.UpdateSizes(); + m_wndToolBarWindow.SetWindowText(_T("Window")); + + VERIFY(m_wndToolBarWindow.InsertSlider(1,nCBIndexSlider)); + +#if _MFC_VER>0x0421 + /////////////////////////////////////////////////////////////////////////// + VERIFY(m_wndToolBarWindow.InsertDateTimePicker(2,nCBIndexDTP, + COleDateTime(1999,9,19,0,0,0))); + /////////////////////////////////////////////////////////////////////////// +#endif + VERIFY(m_wndToolBarWindow.InsertComboBox(2,nCBIndexComboEx, WS_CHILD|WS_VISIBLE|CBS_DROPDOWNLIST)); + static CFont fontEx; + if((HFONT)fontEx!=NULL) + font.DeleteObject(); + fontEx.CreatePointFont(100,_T("Courier")); + + m_comboEx.SetFont(&fontEx); + m_comboEx.AddString(_T("Release")); + m_comboEx.AddString(_T("Debug")); + m_comboEx.SetCurSel(0); + if (!m_wndStatusBar.Create(this) || + !m_wndStatusBar.SetIndicators(indicators, + sizeof(indicators)/sizeof(UINT))) + { + TRACE0("Failed to create status bar\n"); + return -1; // fail to create + } + + + // TODO: Delete these three lines if you don't want the toolbar to + // be dockable + EnableDocking(CBRS_ALIGN_ANY); + + m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); + DockControlBar(&m_wndToolBar); + m_wndToolBarWindow.EnableDocking(CBRS_ALIGN_ANY); + DockControlBar(&m_wndToolBarWindow); + + // This is a TabView Bar that is added dynamically. You can have almost any + // number of these... + if(!m_tabViewBar.Create(this)) + { + TRACE(_T("CMainFrame::OnCreate: failed to create TabView Bar\n")); + return -1; + } + m_tabViewBar.EnableDocking(CBRS_ALIGN_ANY); + DockControlBar(&m_tabViewBar,AFX_IDW_DOCKBAR_BOTTOM); + + // This is a 3DTabView Bar that is added dynamically. You can have almost any + // number of these... + if(!m_3DTabViewBar.Create(this)) + { + TRACE(_T("CMainFrame::OnCreate: failed to create 3DTabView Bar\n")); + return -1; + } + m_3DTabViewBar.EnableDocking(CBRS_ALIGN_ANY); + DockControlBar(&m_3DTabViewBar,AFX_IDW_DOCKBAR_LEFT); + +#ifdef OX_CUSTOMIZE_COMMANDS + COXBitmapMenuOrganizer* pBMOrganizer=m_customizeManager.GetBMOrganizer(); + ASSERT(pBMOrganizer!=NULL); + pBMOrganizer->ExcludeFromRecentlyUsed(ID_FILE_PRINT_SETUP); + pBMOrganizer->ExcludeFromRecentlyUsed(ID_FILE_OPEN); + pBMOrganizer->ExcludeFromRecentlyUsed(AFX_ID_PREVIEW_ZOOMOUT); + pBMOrganizer->ExcludeFromRecentlyUsed(AFX_ID_PREVIEW_NEXT); +#endif // OX_CUSTOMIZE_COMMANDS + +#ifdef OX_CUSTOMIZE_INSTANCE_MANAGER + VERIFY(m_customizeManager.InitializeInstanceManager()); +#endif // OX_CUSTOMIZE_INSTANCE_MANAGER +#ifdef OX_CUSTOMIZE_TOOLBARS + VERIFY(m_customizeManager.InitializeToolbars()); +#endif // OX_CUSTOMIZE_TOOLBARS +#ifdef OX_CUSTOMIZE_COMMANDS + VERIFY(m_customizeManager.InitializeCommands()); +#endif // OX_CUSTOMIZE_COMMANDS +#ifdef OX_CUSTOMIZE_COOLCONTROLS + VERIFY(m_customizeManager.InitializeCoolControls()); +#endif // OX_CUSTOMIZE_COOLCONTROLS +#ifdef OX_CUSTOMIZE_TRAYICON + VERIFY(m_customizeManager.InitializeTrayIcon(IDR_MAINFRAME, + IDR_MAINFRAME,_T("Tooltip"))); +#endif // OX_CUSTOMIZE_TRAYICON + +#ifdef OX_CUSTOMIZE_INTELLIMOUSE + VERIFY(m_customizeManager.InitializeIntelliMouse()); +#endif // OX_CUSTOMIZE_INTELLIMOUSE + +#ifdef OX_CUSTOMIZE_COOLCONTROLS + m_customizeManager.InitializeCoolControls(); +#endif // OX_CUSTOMIZE_COOLCONTROLS + +#ifndef _MDI_INTERFACE + LoadWorkspace(); +#endif + + m_tabViewBar.RedrawWindow(); + return 0; +} + +BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) +{ + if( !CMainFrameWindow::PreCreateWindow(cs) ) + return FALSE; + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + return TRUE; +} + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame diagnostics + +#ifdef _DEBUG +void CMainFrame::AssertValid() const +{ + CMainFrameWindow::AssertValid(); +} + +void CMainFrame::Dump(CDumpContext& dc) const +{ + CMainFrameWindow::Dump(dc); +} + +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame message handlers + +void CMainFrame::SaveWorkspace() +{ + m_tabViewBar.m_TabViewContainer.SaveState(_T("OutputWindow")); + m_customizeManager.SaveWorkspaceState(); +#ifndef OX_CUSTOMIZE_WORKSPACE_STATE + SaveSizeBarState(_T("SizeBarState")); + // common procedure to save workspace + COXWorkspaceState workspaceState; + workspaceState.IncludeBarProperty(FALSE); + if(!workspaceState.StoreToRegistry()) + { + TRACE(_T("CMainFrame::OnClose : Failed to save workspace to registry, continuing\n)")); + } +#endif // OX_CUSTOMIZE_WORKSPACE_STATE +} + +void CMainFrame::LoadWorkspace() +{ +#ifdef OX_CUSTOMIZE_SHORTKEYS + VERIFY(m_customizeManager.InitializeShortkeys(this)); +#endif // OX_CUSTOMIZE_SHORTKEYS +#ifdef OX_CUSTOMIZE_TABBEDMDI + VERIFY(m_customizeManager.InitializeTabbedMDI()); +#endif // OX_CUSTOMIZE_TABBEDMDI +#ifdef OX_CUSTOMIZE_INTELLIMOUSE + VERIFY(m_customizeManager. + InitializeIntelliMouse(TRUE,WM_LBUTTONDOWN,KEYPRESSED_SHIFT)); +#endif // OX_CUSTOMIZE_INTELLIMOUSE +#ifdef OX_CUSTOMIZE_CAPTION + VERIFY(m_customizeManager.InitializeCaptionPainter()); +#endif // OX_CUSTOMIZE_CAPTION +#ifdef OX_CUSTOMIZE_BACKGROUND + VERIFY(m_customizeManager.InitializeBackgroundPainter(TRUE,TRUE,IDB_BACKGROUND)); +#endif // OX_CUSTOMIZE_BACKGROUND + +#ifdef OX_CUSTOMIZE_WORKSPACE_STATE + m_customizeManager.LoadWorkspaceState(); +#else + LoadSizeBarState(_T("SizeBarState")); + // common procedure to load workspace + COXWorkspaceState workspaceState; + workspaceState.IncludeBarProperty(FALSE); + if(!workspaceState.LoadFromRegistry()) + { + TRACE(_T("CMainFrame::OnClose : Failed to save workspace to registry, continuing\n)")); + } +#endif // OX_CUSTOMIZE_WORKSPACE_STATE + + m_tabViewBar.m_TabViewContainer.LoadState(_T("OutputWindow")); + + m_wndToolBar.UpdateCustomButtons(); + m_wndToolBarWindow.UpdateCustomButtons(); + +#ifdef OX_CUSTOMIZE_SPLASHWINDOW + m_customizeManager.GetSplashWindow()->Hide(); +#endif // OX_CUSTOMIZE_SPLASHWINDOW +} + + +void CMainFrame::OnClose() +{ + // TODO: Add your message handler code here and/or call default + SaveWorkspace(); + + CMainFrameWindow::OnClose(); +} + +void CMainFrame::OnViewCustomize() +{ + // TODO: Add your command handler code here + +// m_customizeManager.DoModal(); + if(!::IsWindow(m_customizeManager.GetSafeHwnd())) + { + VERIFY(m_customizeManager.Create(COXCustomizeManager::IDD,this)); + } + m_customizeManager.ActivatePage(CAPTION_PAINTER); + m_customizeManager.SetActiveWindow(); + m_customizeManager.ShowWindow(SW_SHOW); +} + + + +void CMainFrame::OnContextMenu(CWnd* pWnd, CPoint point) +{ + // TODO: Add your message handler code here + UNREFERENCED_PARAMETER(pWnd); + + CArray arrToolbars; + POSITION pos=m_listControlBars.GetHeadPosition(); + while(pos!=NULL) + { + CToolBar* pToolbar=DYNAMIC_DOWNCAST(CToolBar, + (CControlBar*)m_listControlBars.GetNext(pos)); + //If it is a CToolBar + if(pToolbar!=NULL && !pToolbar->IsKindOf(RUNTIME_CLASS(COXMenuBar))) + { + arrToolbars.Add(pToolbar); + } + } + + int nToolbarCount=PtrToInt(arrToolbars.GetSize()); + CMenu menu; + VERIFY(menu.CreatePopupMenu()); + + for(int nIndex=0; nIndexGetWindowText(sText); + menu.AppendMenu(MF_STRING|(pToolbar->IsWindowVisible() ? + MF_CHECKED : MF_UNCHECKED),pToolbar->GetDlgCtrlID(),sText); + } + if(nToolbarCount>0) + menu.AppendMenu(MF_SEPARATOR); + menu.AppendMenu(MF_STRING,ID_VIEW_CUSTOMIZE,_T("Customize...")); + + menu.TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON|TPM_RIGHTBUTTON, + point.x,point.y,this); +} + + +void CMainFrame::OnShowControlBars(UINT nID) +{ + POSITION pos=m_listControlBars.GetHeadPosition(); + while(pos!=NULL) + { + CControlBar* pControlBar=(CControlBar*)m_listControlBars.GetNext(pos); + //If it is a pControlBar + if(pControlBar!=NULL && pControlBar->GetDlgCtrlID()==(int)nID && + !pControlBar->IsKindOf(RUNTIME_CLASS(COXMenuBar))) + { + ShowControlBar(pControlBar,!pControlBar->IsWindowVisible(),FALSE); + break; + } + } +} + +void CMainFrame::OnUpdateCustomButton(CCmdUI* pCmdUI) +{ + // TODO: Add your command update UI handler code here + pCmdUI->Enable(TRUE); +} + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/MainFrm.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/MainFrm.h new file mode 100644 index 0000000..223800f --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/MainFrm.h @@ -0,0 +1,112 @@ +// MainFrm.h : interface of the CMainFrame class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_MAINFRM_H__73A06A3D_E209_11D2_A7ED_525400DAF3CE__INCLUDED_) +#define AFX_MAINFRM_H__73A06A3D_E209_11D2_A7ED_525400DAF3CE__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#include "OXMenuBar.h" +#include "OXFrameWndDock.h" +#include "OXSizeDockBar.h" +#include "OXCustomizeManager.h" + +#include "TabViewBar.h" +#include "3DTabViewBar.h" + +#ifdef _MDI_INTERFACE +#define CMainFrameWindow COXMDIFrameWndSizeDock +#else +#define CMainFrameWindow COXFrameWndSizeDock +#endif + +#include "OXEdit.h" +#include "..\..\..\INCLUDE\OXRegistryItem.h" // Added by ClassView + + +#define ID_CB_EDIT 1000 +#define ID_CB_COMBO 1001 +#define ID_CB_STATIC 1002 +#define ID_CB_BUTTON 1003 +#define ID_CB_CHECKBOX 1004 +#define ID_CB_COMBOEX 1005 +#define ID_CB_IPADDRESS 1006 +#define ID_CB_PROGRESS 1007 +#define ID_CB_SLIDER 1008 +#define ID_CB_DTP 1009 +#define ID_CB_RICHEDIT 1010 +#define ID_CB_HOTKEY 1011 + +class CCustomTBExtendedEdit : public COXCustomTBButtonWnd +{ +public: + virtual COXCustomTBButtonTemplate* CBCreateNewInstance() const; + virtual void CBCopyContents(COXCustomTBButtonTemplate* pCBTemplate) const; +}; + + +////////////////////////////////////////////////////////////////////////// + +class CMainFrame : public COXMenuBarFrame +{ + DECLARE_DYNCREATE(CMainFrame) +public: + CMainFrame(); + +// Attributes +public: + +// Operations +public: + + void LoadWorkspace(); + void SaveWorkspace(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CMainFrame) + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CMainFrame(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: // control bar embedded members + CStatusBar m_wndStatusBar; +// CStandardToolBar m_wndToolBar; + COXCoolToolBar m_wndToolBar; + COXCoolToolBar m_wndToolBarWindow; + + CTabViewBar m_tabViewBar; + C3DTabViewBar m_3DTabViewBar; + + // customize manager + COXCustomizeManager m_customizeManager; + +// Generated message map functions +protected: + //{{AFX_MSG(CMainFrame) + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnClose(); + afx_msg void OnViewCustomize(); + afx_msg void OnContextMenu(CWnd* pWnd, CPoint point); + //}}AFX_MSG + afx_msg void OnShowControlBars(UINT nID); + afx_msg void OnUpdateCustomButton(CCmdUI* pCmdUI); + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_MAINFRM_H__73A06A3D_E209_11D2_A7ED_525400DAF3CE__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/StandardToolBar.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/StandardToolBar.cpp new file mode 100644 index 0000000..6f67f4d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/StandardToolBar.cpp @@ -0,0 +1,138 @@ +// StandardToolBar.cpp : implementation file +// + +#include "stdafx.h" +#include "StandardToolBar.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +#define IDC_COMBO 1022 +const int nDropHeight=200; + +///////////////////////////////////////////////////////////////////////////// +// CStandardToolBar + +CStandardToolBar::CStandardToolBar() +{ + m_nComboItemIndex=-1; + m_nSavedCurSel=-1; +} + +CStandardToolBar::~CStandardToolBar() +{ +} + + +BEGIN_MESSAGE_MAP(CStandardToolBar, COXCoolToolBar) + //{{AFX_MSG_MAP(CStandardToolBar) + // NOTE - the ClassWizard will add and remove mapping macros here. + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CStandardToolBar message handlers + +BOOL CStandardToolBar::CreateCombo(int nItemIndex) +{ + // retrieve button info + GetButtonInfo(nItemIndex,m_nID,m_nStyle,m_nImage); + + // retrieve tooltip + CString sTooltip=GetButtonTooltip(nItemIndex); + + // Create the combo box + SetButtonInfo(nItemIndex,IDC_COMBO,TBBS_SEPARATOR,180); + + // Design guide advises 12 pixel gap between combos and buttons + CRect rect; + GetItemRect(nItemIndex, &rect); + rect.top = 1; + rect.bottom = rect.top + nDropHeight; + if (!m_combo.Create(CBS_DROPDOWN|WS_VISIBLE|WS_TABSTOP|WS_VSCROLL, + rect, this, IDC_COMBO)) + { + TRACE(_T("Failed to create combo-box\n")); + return FALSE; + } + + static CFont font; + if((HFONT)font!=NULL) + font.DeleteObject(); + font.CreatePointFont(-80,_T("MS Sans Serif")); + m_combo.SetFont(&font); + m_combo.SetTooltipText(sTooltip); + + m_combo.AddString(_T("OnToolTipText")); + m_combo.AddString(_T("::LoadTool")); + m_combo.AddString(_T("ID_VIEW_TOOLBAR")); + m_combo.AddString(_T("class CWnd")); + m_combo.AddString(_T("SetFont")); + m_combo.AddString(_T("class CTabCtrl")); + + m_nComboItemIndex=nItemIndex; + + return TRUE; +} + +static BOOL bChangeDockSideCalledFirstTime=TRUE; +void CStandardToolBar::OnChangeDockSide(DWORD dwDockSide) +{ + COXCoolToolBar::OnChangeDockSide(dwDockSide); + + if(bChangeDockSideCalledFirstTime) + { + bChangeDockSideCalledFirstTime=FALSE; + return; + } + + + if((m_pDockBar == NULL || (GetBarStyle() & CBRS_FLOATING)) || + dwDockSide==CBRS_ALIGN_RIGHT || dwDockSide==CBRS_ALIGN_LEFT) + { + if(::IsWindow(m_combo.GetSafeHwnd())) + { + m_nSavedCurSel=m_combo.GetCurSel(); + m_combo.DestroyWindow(); + SetButtonInfo(m_nComboItemIndex, m_nID, m_nStyle, m_nImage); + } + } + else + { + if(!::IsWindow(m_combo.GetSafeHwnd()) && m_nComboItemIndex!=-1) + { + // CreateCombo function might change the visibility + // of the bar. We have to restore it. + BOOL bIsVisible=IsWindowVisible(); + CreateCombo(m_nComboItemIndex); + m_combo.SetCurSel(m_nSavedCurSel); + if(bIsVisible) + SetWindowPos(NULL, 0, 0, 0, 0, + SWP_NOSIZE|SWP_NOMOVE|SWP_NOZORDER| + SWP_NOACTIVATE|SWP_SHOWWINDOW); + else + SetWindowPos(NULL, 0, 0, 0, 0, + SWP_NOSIZE|SWP_NOMOVE|SWP_NOZORDER| + SWP_NOACTIVATE|SWP_HIDEWINDOW); + } + } +} + +static BOOL bFloatingDockingCalledFirstTime=TRUE; +void CStandardToolBar::OnFloatingDocking(BOOL bFloating) +{ + COXCoolToolBar::OnFloatingDocking(bFloating); + if(bFloatingDockingCalledFirstTime) + { + bFloatingDockingCalledFirstTime=FALSE; + return; + } + OnChangeDockSide(GetBarStyle()&CBRS_ALIGN_ANY); + + GetParentFrame()->DelayRecalcLayout(); +} + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/StandardToolBar.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/StandardToolBar.h new file mode 100644 index 0000000..50e8fbe --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/StandardToolBar.h @@ -0,0 +1,67 @@ +#if !defined(_STANDARDTOOLBAR_H__) +#define _STANDARDTOOLBAR_H__ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// StandardToolBar.h : header file +// + +#include "OXCoolToolBar.h" +#include "OXCoolComboBox.h" +///////////////////////////////////////////////////////////////////////////// +// CStandardToolBar window + +class CStandardToolBar : public COXCoolToolBar +{ +// Construction +public: + CStandardToolBar(); + +// Attributes +public: + +protected: + COXCoolComboBox m_combo; + int m_nSavedCurSel; + int m_nComboItemIndex; + UINT m_nID; + UINT m_nStyle; + int m_nImage; + +// Operations +public: + BOOL CreateCombo(int nItemIndex); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CStandardToolBar) + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CStandardToolBar(); + +protected: + // function called everytime when toolbar changes its docking side + virtual void OnChangeDockSide(DWORD dwDockSide); + // function called everytime when toolbar changes its state from + // docking to floating and vise versa + virtual void OnFloatingDocking(BOOL bFloating); + + + // Generated message map functions +protected: + //{{AFX_MSG(CStandardToolBar) + // NOTE - the ClassWizard will add and remove member functions here. + //}}AFX_MSG + + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(_STANDARDTOOLBAR_H__) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/StdAfx.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/StdAfx.cpp new file mode 100644 index 0000000..5ec7649 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/StdAfx.cpp @@ -0,0 +1,8 @@ +// stdafx.cpp : source file that includes just the standard includes +// VisualStudioLikeDemo.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/StdAfx.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/StdAfx.h new file mode 100644 index 0000000..9f4bbac --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/StdAfx.h @@ -0,0 +1,57 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#if !defined(AFX_STDAFX_H__73A06A3B_E209_11D2_A7ED_525400DAF3CE__INCLUDED_) +#define AFX_STDAFX_H__73A06A3B_E209_11D2_A7ED_525400DAF3CE__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers + +#include // MFC core and standard components +#include // MFC extensions +#if _MFC_VER>0x0421 +#include // MFC support for Internet Explorer 4 Common Controls +#endif // _MFC_VER>0x0421 +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for Windows Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + + +////////////////////////////////////////////////////////////////////////////////////// +// comment out this define if you would like to build SDI application. +// Make sure to delete the following key in the registry before running +// the application with changed architecture (from MDI to SDI, or from SDI to MDI): +// +// HKEY_CURRENT_USER\Software\Ultimate Toolbox Samples\VisualStudioLikeDemo +// +// You have to do that as long as applications settings saved by customize pages +// are not compatible for this interfaces +#define _MDI_INTERFACE +// +////////////////////////////////////////////////////////////////////////////////////// + +#define OX_CUSTOMIZE_TOOLBARS +#define OX_CUSTOMIZE_COMMANDS +#define OX_CUSTOMIZE_SHORTKEYS +#define OX_CUSTOMIZE_WORKSPACE_STATE +#define OX_CUSTOMIZE_INSTANCE_MANAGER +#define OX_CUSTOMIZE_TRAYICON +#define OX_CUSTOMIZE_SPLASHWINDOW +#ifdef _MDI_INTERFACE +#define OX_CUSTOMIZE_TABBEDMDI +#endif +#define OX_CUSTOMIZE_BACKGROUND +#define OX_CUSTOMIZE_COOLCONTROLS + +#include "OXAdvancedAssert.h" + +#include +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_STDAFX_H__73A06A3B_E209_11D2_A7ED_525400DAF3CE__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/TabViewBar.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/TabViewBar.cpp new file mode 100644 index 0000000..a285d5d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/TabViewBar.cpp @@ -0,0 +1,154 @@ +// TabViewBar.cpp : implementation file +// + +#include "stdafx.h" +#include "VisualStudioLikeDemo.h" +#include "TabViewBar.h" + +#ifdef _DEBUG +#undef THIS_FILE +static char BASED_CODE THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CTabViewBar +// + +IMPLEMENT_DYNAMIC(CTabViewBar, COXSizeControlBar); + +CTabViewBar::CTabViewBar() + : COXSizeControlBar( + SZBARF_STDMOUSECLICKS|SZBARF_ALLOW_MDI_FLOAT|SZBARF_SOLIDGRIPPER) +{ +} + +CTabViewBar::~CTabViewBar() +{ +} + + + +BEGIN_MESSAGE_MAP(CTabViewBar, COXSizeControlBar) + //{{AFX_MSG_MAP(CTabViewBar) + ON_WM_CREATE() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + + +///////////////////////////////////////////////////////////////////////////// +// CTabViewBar message handlers + + +//------------------------------------------------------------------- +void CTabViewBar::OnSizedOrDocked(int cx, int cy, BOOL bFloating, int flags) +// respond to this event as we need to override it +//------------------------------------------------------------------- +{ + UNREFERENCED_PARAMETER(bFloating); + UNREFERENCED_PARAMETER(flags); + UNREFERENCED_PARAMETER(cx); + UNREFERENCED_PARAMETER(cy); + + CRect rect; + GetClientRect(rect); + + m_TabViewContainer.MoveWindow(&rect); +} + + +//------------------------------------------------------------------- +int CTabViewBar::OnCreate(LPCREATESTRUCT lpCreateStruct) +//------------------------------------------------------------------- +{ + if (COXSizeControlBar::OnCreate(lpCreateStruct) == -1) + return -1; + + CRect rect; + GetClientRect(&rect); + + if(!m_TabViewContainer.Create(this,rect)) + return -1; + + // build page + if(!m_build.Create(NULL,NULL,WS_CHILD,CRect(0,0,0,0), + &m_TabViewContainer,1)) + return -1; + m_TabViewContainer.AddPage(&m_build,_T("Build")); + + m_build.AddLine(_T("Generating Code...")); + m_build.AddLine(_T("Linking...")); + m_build.AddLine(_T("")); + m_build.SetTextColor(RGB(255,0,0)); + m_build.AddLine(_T("VisualStudioLikeDemo.exe - 0 error(s), 0 warning(s)")); + + // debug page + if(!m_debug.Create(NULL,NULL,WS_CHILD,CRect(0,0,0,0), + &m_TabViewContainer,2)) + return -1; + m_TabViewContainer.AddPage(&m_debug,_T("Debug")); + m_debug.AddLine(_T("Loaded symbols for 'D:\\Ultimate ToolBox\\Samples\\gui\\VisualStudioLikeDemo\\Debug\\VisualStudioLikeDemo.exe'")); + m_debug.AddLine(_T("Loaded 'F:\\WINNT\\system32\\NTDLL.DLL', no matching symbolic information found.")); + m_debug.AddLine(_T("Loaded symbols for 'F:\\WINNT\\system32\\MFC42D.DLL'")); + m_debug.AddLine(_T("Loaded symbols for 'F:\\WINNT\\system32\\MSVCRTD.DLL'")); + m_debug.AddLine(_T("Loaded 'F:\\WINNT\\system32\\KERNEL32.DLL', no matching symbolic information found.")); + m_debug.AddLine(_T("Loaded 'F:\\WINNT\\system32\\riched32.dll', no matching symbolic information found.")); + m_debug.AddLine(_T("Loaded symbols for 'F:\\WINNT\\system32\\MFCO42D.DLL'")); + m_debug.AddLine(_T("Loaded 'F:\\WINNT\\system32\\USER32.DLL', no matching symbolic information found.")); + m_debug.AddLine(_T("The thread 0xB1 has exited with code 0 (0x0).")); + m_debug.AddLine(_T("The program 'D:\\Ultimate ToolBox\\Samples\\gui\\VisualStudioLikeDemo\\Debug\\VisualStudioLikeDemo.exe' has exited with code 0 (0x0).")); + + // Find In Files 1 page + if(!m_find1.Create(NULL,NULL,WS_CHILD,CRect(0,0,0,0), + &m_TabViewContainer,3)) + return -1; + m_TabViewContainer.AddPage(&m_find1,_T("Find In Files 1")); + m_find1.AddLine(_T("Searching for 'class CWnd'...")); + m_find1.AddLine(_T("F:\\Program Files\\Microsoft Visual Studio\\VC98\\MFC\\Include\\AFXCMN.H(680): friend class CWnd;")); + m_find1.AddLine(_T("F:\\Program Files\\Microsoft Visual Studio\\VC98\\MFC\\Include\\AFXSTAT_.H(169):class CWnd;")); + m_find1.AddLine(_T("F:\\Program Files\\Microsoft Visual Studio\\VC98\\MFC\\Include\\AFXWIN.H(86): class CWnd; // a window / HWND wrapper")); + m_find1.AddLine(_T("F:\\Program Files\\Microsoft Visual Studio\\VC98\\MFC\\Include\\AFXWIN.H(1899):class CWnd : public CCmdTarget")); + m_find1.AddLine(_T("F:\\Program Files\\Microsoft Visual Studio\\VC98\\MFC\\Include\\AFXWIN.H(3273): friend class CWnd; // for access to m_bModalDisable")); + m_find1.AddLine(_T("5 occurrence(s) have been found.")); + + // Find In Files 2 page + if(!m_find2.Create(NULL,NULL,WS_CHILD,CRect(0,0,0,0), + &m_TabViewContainer,4)) + return -1; + m_TabViewContainer.AddPage(&m_find2,_T("Find In Files 2")); + + // results page + if(!m_results.Create(NULL,NULL,WS_CHILD,CRect(0,0,0,0), + &m_TabViewContainer,5)) + return -1; + m_TabViewContainer.AddPage(&m_results,_T("Results")); + + // SQL Debugging page + if(!m_SQLdebug.Create(NULL,NULL,WS_CHILD,CRect(0,0,0,0), + &m_TabViewContainer,6)) + return -1; + m_TabViewContainer.AddPage(&m_SQLdebug,_T("SQL Debugging")); + + m_TabViewContainer.SetActivePageIndex(0); + + return 0; +} + + +BOOL CTabViewBar::Create(CWnd * pParentWnd, + const CString& sTitle/*=_T("TabViewBar")*/, + const UINT nID/*=ID_TABVIEWBAR*/) +{ + // register a window class for the control bar + static CString strWndClass; + if (strWndClass.IsEmpty()) + { + strWndClass = AfxRegisterWndClass(CS_DBLCLKS); + } + + return COXSizeControlBar::Create(strWndClass, sTitle, + WS_VISIBLE|WS_CHILD|CBRS_BOTTOM|WS_CLIPCHILDREN, + CFrameWnd::rectDefault, pParentWnd, nID); +} + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/TabViewBar.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/TabViewBar.h new file mode 100644 index 0000000..f372728 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/TabViewBar.h @@ -0,0 +1,48 @@ +#include "OXSizeCtrlBar.h" +#include "OXTabView.h" +#include "OXHistoryCtrl.h" + + +class CTabViewBar : public COXSizeControlBar +{ + DECLARE_DYNAMIC(CTabViewBar); +// Construction +public: + CTabViewBar(); + + BOOL Create(CWnd * pParentWnd, const CString& sTitle=_T("TabView"), + const UINT nID=ID_TABVIEWBAR); + +// Attributes +public: + COXTabViewContainer m_TabViewContainer; + +protected: + COXTabViewPage m_build; + COXTabViewPage m_debug; + COXTabViewPage m_find1; + COXTabViewPage m_find2; + COXTabViewPage m_results; + COXTabViewPage m_SQLdebug; + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CTabViewBar) + //}}AFX_VIRTUAL +protected: + virtual void OnSizedOrDocked(int cx, int cy, BOOL bFloating, int flags); + +// Implementation +public: + virtual ~CTabViewBar(); + + // Generated message map functions +protected: + //{{AFX_MSG(CTabViewBar) + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.cpp new file mode 100644 index 0000000..467fdb8 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.cpp @@ -0,0 +1,257 @@ +// VisualStudioLikeDemo.cpp : Defines the class behaviors for the application. +// + +#include "stdafx.h" +#include "VisualStudioLikeDemo.h" + +#include "MainFrm.h" +#include "ChildFrm.h" +#include "VisualStudioLikeDemoDoc.h" +#include "VisualStudioLikeDemoView.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CVisualStudioLikeDemoApp + +BEGIN_MESSAGE_MAP(CVisualStudioLikeDemoApp, CWinApp) + //{{AFX_MSG_MAP(CVisualStudioLikeDemoApp) + ON_COMMAND(ID_APP_ABOUT, OnAppAbout) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG_MAP + // Standard file based document commands + ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) + ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) + // Standard print setup command + ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CVisualStudioLikeDemoApp construction + +CVisualStudioLikeDemoApp::CVisualStudioLikeDemoApp() +{ + // TODO: add construction code here, + // Place all significant initialization in InitInstance +} + +///////////////////////////////////////////////////////////////////////////// +// The one and only CVisualStudioLikeDemoApp object + +CVisualStudioLikeDemoApp theApp; +static HINSTANCE g_hRichEdDLL=NULL; +COXRegistryItem g_Registry; + +///////////////////////////////////////////////////////////////////////////// +// CVisualStudioLikeDemoApp initialization + +BOOL CVisualStudioLikeDemoApp::InitInstance() +{ + + g_Registry.SetFullRegistryItem( + _T("\\CurrentUser\\Software\\Ultimate Toolbox Samples\\VisualStudioLikeDemo\\")); + CString sVersion=g_Registry.GetStringValue(_T("Version")); + if (sVersion!=_T("1.1")) + { + while (TRUE) + { + CString sSubKey=g_Registry.EnumerateSubkey(0); + if (!sSubKey.IsEmpty()) + { + sSubKey=_T("\\CurrentUser\\Software\\Ultimate Toolbox Samples\\VisualStudioLikeDemo\\") + sSubKey +_T("\\"); + COXRegistryItem reg; + reg.SetFullRegistryItem((LPCTSTR) sSubKey); + reg.Delete(); + } + else + break; + } + g_Registry.Delete(); + } + + g_Registry.Close(); + + // 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. + +#if _MSC_VER < 1400 +#ifdef _AFXDLL + Enable3dControls(); // Call this when using MFC in a shared DLL +#else + Enable3dControlsStatic(); // Call this when linking to MFC statically +#endif +#endif + + + // Initialize RichEdit control + // for About Dialog + if(g_hRichEdDLL==NULL) + { + g_hRichEdDLL=::LoadLibrary(_T("RICHED32.DLL")); + if(g_hRichEdDLL==NULL) + TRACE(_T("Cannot load library to display RichEditTextControl")); + } + + // Initialize OLE libraries + if(!AfxOleInit()) + { + TRACE(_T("CVisualStudioLikeDemoApp::InitInstance: failed to initialize OLE libraries\n")); + return FALSE; + } + + + AfxEnableControlContainer(); + + // Change the registry key under which our settings are stored. + // TODO: You should modify this string to be something appropriate + // such as the name of your company or organization. + SetRegistryKey(_T("Ultimate Toolbox Samples")); + + LoadStdProfileSettings(); // Load standard INI file options (including MRU) + + // Register the application's document templates. Document templates + // serve as the connection between documents, frame windows and views. + +#ifdef _MDI_INTERFACE + CMultiDocTemplate* pDocTemplate; + pDocTemplate = new CMultiDocTemplate( + IDR_VISUALTYPE, + RUNTIME_CLASS(CVisualStudioLikeDemoDoc), + RUNTIME_CLASS(CChildFrame), // custom MDI child frame + RUNTIME_CLASS(CVisualStudioLikeDemoView)); + AddDocTemplate(pDocTemplate); + + // create main MDI Frame window + CMainFrame* pMainFrame = new CMainFrame; + if (!pMainFrame->LoadFrame(IDR_MAINFRAME)) + return FALSE; + m_pMainWnd = pMainFrame; +#else + AddDocTemplate(new CSingleDocTemplate(IDR_MAINFRAME, + RUNTIME_CLASS(CVisualStudioLikeDemoDoc), + RUNTIME_CLASS(CMainFrame), // main SDI frame window + RUNTIME_CLASS(CVisualStudioLikeDemoView))); +#endif + + + // Parse command line for standard shell commands, DDE, file open + CCommandLineInfo cmdInfo; + ParseCommandLine(cmdInfo); +#ifdef _MDI_INTERFACE + if(cmdInfo.m_nShellCommand==CCommandLineInfo::FileNew) + cmdInfo.m_nShellCommand=CCommandLineInfo::FileNothing; +#endif + + // Dispatch commands specified on the command line + if (!ProcessShellCommand(cmdInfo)) + return FALSE; + +#ifdef _MDI_INTERFACE + // The main window has been initialized, so show and update it. + ((CMainFrame*)m_pMainWnd)->LoadWorkspace(); + ((CMainFrame*)m_pMainWnd)->ShowWindow(m_nCmdShow); + ((CMainFrame*)m_pMainWnd)->UpdateWindow(); +#endif + + return TRUE; +} + + +///////////////////////////////////////////////////////////////////////////// +// CAboutDlg dialog used for App About + +#include "OXFontComboBox.h" + +class CAboutDlg : public CDialog +{ +public: + CAboutDlg(); + +// Dialog Data + //{{AFX_DATA(CAboutDlg) + enum { IDD = IDD_ABOUTBOX }; + //}}AFX_DATA + + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CAboutDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + //{{AFX_MSG(CAboutDlg) + virtual BOOL OnInitDialog(); + virtual void OnOK(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) +{ + //{{AFX_DATA_INIT(CAboutDlg) + //}}AFX_DATA_INIT +} + +void CAboutDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CAboutDlg) + //}}AFX_DATA_MAP +} + +BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) + //{{AFX_MSG_MAP(CAboutDlg) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +// App command to run the dialog +void CVisualStudioLikeDemoApp::OnAppAbout() +{ + CAboutDlg aboutDlg; + aboutDlg.DoModal(); +} + +///////////////////////////////////////////////////////////////////////////// +// CVisualStudioLikeDemoApp message handlers + + + +BOOL CAboutDlg::OnInitDialog() +{ + CDialog::OnInitDialog(); + + // TODO: Add extra initialization here + return TRUE; // return TRUE unless you set the focus to a control + // EXCEPTION: OCX Property Pages should return FALSE +} + +void CAboutDlg::OnOK() +{ + // TODO: Add extra validation here + + CDialog::OnOK(); +} + + +int CVisualStudioLikeDemoApp::ExitInstance() +{ + // TODO: Add your specialized code here and/or call the base class + + // unload the library + if(g_hRichEdDLL!=NULL) + ::FreeLibrary(g_hRichEdDLL); + + g_Registry.SetFullRegistryItem( + _T("CurrentUser\\Software\\Ultimate Toolbox Samples\\VisualStudioLikeDemo\\")); + g_Registry.SetStringValue(_T("1.1"),_T("Version")); + + return CWinApp::ExitInstance(); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.dsp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.dsp new file mode 100644 index 0000000..978ad16 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.dsp @@ -0,0 +1,868 @@ +# Microsoft Developer Studio Project File - Name="VisualStudioLikeDemo" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=VisualStudioLikeDemo - Win32 Debug_Unicode +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "VisualStudioLikeDemo.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "VisualStudioLikeDemo.mak" CFG="VisualStudioLikeDemo - Win32 Debug_Unicode" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "VisualStudioLikeDemo - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "VisualStudioLikeDemo - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE "VisualStudioLikeDemo - Win32 Debug_Unicode" (based on "Win32 (x86) Application") +!MESSAGE "VisualStudioLikeDemo - Win32 Release_Unicode" (based on "Win32 (x86) Application") +!MESSAGE "VisualStudioLikeDemo - Win32 Release_Shared" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "VisualStudioLikeDemo - Win32 Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /FR /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"VisualStudioLikeDemo.exe" + +!ELSEIF "$(CFG)" == "VisualStudioLikeDemo - Win32 Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /FR /Yu"stdafx.h" /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"VisualStudioLikeDemo.exe" +# SUBTRACT LINK32 /profile /map + +!ELSEIF "$(CFG)" == "VisualStudioLikeDemo - Win32 Debug_Unicode" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "VisualStudioLikeDemo___Win32_Debug_Unicode" +# PROP BASE Intermediate_Dir "VisualStudioLikeDemo___Win32_Debug_Unicode" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug_Unicode" +# PROP Intermediate_Dir "Debug_Unicode" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /FR /Yu"stdafx.h" /FD /GZ /c +# ADD CPP /nologo /MTd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "UNICODE" /FR /Yu"stdafx.h" /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "UNICODE" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"VisualStudioLikeDemo.exe" +# SUBTRACT BASE LINK32 /profile /map +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /debug /machine:I386 /out:"VisualStudioLikeDemo.exe" +# SUBTRACT LINK32 /profile /map + +!ELSEIF "$(CFG)" == "VisualStudioLikeDemo - Win32 Release_Unicode" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "VisualStudioLikeDemo___Win32_Release_Unicode" +# PROP BASE Intermediate_Dir "VisualStudioLikeDemo___Win32_Release_Unicode" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release_Unicode" +# PROP Intermediate_Dir "Release_Unicode" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /Zd /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" /d "UNICODE" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /out:"VisualStudioLikeDemo.exe" +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /machine:I386 /out:"VisualStudioLikeDemo.exe" + +!ELSEIF "$(CFG)" == "VisualStudioLikeDemo - Win32 Release_Shared" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "VisualStudioLikeDemo___Win32_Release_Shared" +# PROP BASE Intermediate_Dir "VisualStudioLikeDemo___Win32_Release_Shared" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release_Shared" +# PROP Intermediate_Dir "Release_Shared" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /out:"VisualStudioLikeDemo.exe" +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"VisualStudioLikeDemo.exe" + +!ENDIF + +# Begin Target + +# Name "VisualStudioLikeDemo - Win32 Release" +# Name "VisualStudioLikeDemo - Win32 Debug" +# Name "VisualStudioLikeDemo - Win32 Debug_Unicode" +# Name "VisualStudioLikeDemo - Win32 Release_Unicode" +# Name "VisualStudioLikeDemo - Win32 Release_Shared" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Group "UTBSource" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\Source\COPYTREE.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\DIR.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\DSTRLIST.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\FILE.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\UTSampleAbout\HtmlCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\MFCToolBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OX3DTabView.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXAdvancedAssert.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXAdvancedAssertMail.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXBackgroundPainter.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXBMPFilePickerCombo.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXCaptionPainter.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXColorPickerButton.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXColorPickerCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXCoolComboBox.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCoolControlOrganizer.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCoolCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXCustomizeBackgroundPage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXCustomizeCaptionPage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCustomizeCoolControlsPage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXCustomizeIntelliMousePage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXCustomizeSplashWindowPage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXCustomizeTrayIconPage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\Oxdib.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXDockTabCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXDragDockContext.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXEdit.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXFontPickerButton.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXFrameWndDock.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXHistoryCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXHookWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXIntelliMouse.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXIteratorRegistryItem.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXMDIFloatWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXMultiComboBox.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXPopupBarCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXPreviewDialog.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXRectTracker.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXRegistryItem.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXScrollWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXSizeCtrlBar.CPP +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXSizeDlgBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXSizeDockBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXSizeToolBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkinnedComboBox.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkinnedSpinCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkinnedTabCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXSkins.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXSplashWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXSplashWndDIB.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXSplitterRect.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXSzMiniDockFrmWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXTabView.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\OXUxTheme.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\Path.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\UTBStrOp.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\Xstatus4.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\XSTRING.CPP +# End Source File +# End Group +# Begin Group "CustomizeManagerFramework" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\Source\OXBitmapButton.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXBitmapMenu.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXBitmapMenuOrganizer.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXButtonAppearanceDlg.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXChildFrameState.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXCoolToolBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXCustomizeCommandsPage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXCustomizeInstanceManagerPage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXCustomizeManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXCustomizePage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXCustomizeShortkeysPage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXCustomizeTabbedMDIPage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXCustomizeToolbarsPage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXCustomizeWorkspaceStatePage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXDocTemplateSpy.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXDragDropCommands.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXHistoryCombo.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXImageListBox.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXInstanceManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXLayoutManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXListBoxEx.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXMenuBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXOptionTreeCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXRegistryValFile.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXSeparator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXShortcutBar.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXShortkeysOrganizer.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXSplitterColRowState.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXStatic.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXTabClientWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXTaskbarIcon.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXWorkspaceState.cpp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\3DTabViewBar.cpp +# End Source File +# Begin Source File + +SOURCE=.\ChildFrm.cpp +# End Source File +# Begin Source File + +SOURCE=.\MainFrm.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXToolTipCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# Begin Source File + +SOURCE=.\TabViewBar.cpp +# End Source File +# Begin Source File + +SOURCE=.\VisualStudioLikeDemo.cpp +# End Source File +# Begin Source File + +SOURCE=.\VisualStudioLikeDemo.rc +# End Source File +# Begin Source File + +SOURCE=.\VisualStudioLikeDemoDoc.cpp +# End Source File +# Begin Source File + +SOURCE=.\VisualStudioLikeDemoView.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\3DTabViewBar.h +# End Source File +# Begin Source File + +SOURCE=.\ChildFrm.h +# End Source File +# Begin Source File + +SOURCE=.\MainFrm.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OX3DTabView.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXBackgroundPainter.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXBaseSubclassedComboBox.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXBitmapButton.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXBitmapMenu.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXBitmapMenuOrganizer.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXButtonAppearanceDlg.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXCaptionPainter.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXCoolToolBar.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXCustomizeBackgroundPage.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXCustomizeCaptionPage.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXCustomizeCommandsPage.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXCustomizeInstanceManagerPage.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXCustomizeManager.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXCustomizePage.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXCustomizeShortkeysPage.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXCustomizeSplashWindowPage.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXCustomizeToolbarsPage.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXCustomizeTrayIconPage.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXCustomizeWorkspaceStatePage.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXDragDropCommands.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXEdit.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXFontPickerButton.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXFrameWndDock.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXHistoryCombo.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXHistoryCtrl.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXImageListBox.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXIteratorRegistryItem.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXMenuBar.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXRegistryItem.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXRegistryItem.inl +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXScrollWnd.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXShortcutBar.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXShortkeysOrganizer.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXSizeCtrlBar.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXSizeDockBar.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\OXSkins.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXSplashWnd.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXSplitterRect.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXStatic.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\OXSzMiniDockFrmWnd.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXTabClientWnd.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXTabView.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXTaskbarIcon.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXTaskbarIcon.inl +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXWorkspaceState.h +# End Source File +# Begin Source File + +SOURCE=.\Resource.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# Begin Source File + +SOURCE=.\TabViewBar.h +# End Source File +# Begin Source File + +SOURCE=.\VisualStudioLikeDemo.h +# End Source File +# Begin Source File + +SOURCE=.\VisualStudioLikeDemoDoc.h +# End Source File +# Begin Source File + +SOURCE=.\VisualStudioLikeDemoView.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\res\bmp00001.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\coolbar.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\il_3dtab.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\il_class.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\il_filev.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\Logo.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\tb_window.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\Toolbar.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\VisualStudioLikeDemo.ico +# End Source File +# Begin Source File + +SOURCE=.\res\VisualStudioLikeDemo.rc2 +# End Source File +# Begin Source File + +SOURCE=.\res\VisualStudioLikeDemoDoc.ico +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ReadMe.txt +# End Source File +# End Target +# End Project diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.dsw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.dsw new file mode 100644 index 0000000..62a9322 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "VisualStudioLikeDemo"=".\VisualStudioLikeDemo.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.exe.manifest b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.exe.manifest new file mode 100644 index 0000000..1e18977 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.exe.manifest @@ -0,0 +1,22 @@ + + + +Your app description here + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.h new file mode 100644 index 0000000..7659ba3 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.h @@ -0,0 +1,51 @@ +// VisualStudioLikeDemo.h : main header file for the VISUALSTUDIOLIKEDEMO application +// + +#if !defined(AFX_VISUALSTUDIOLIKEDEMO_H__73A06A39_E209_11D2_A7ED_525400DAF3CE__INCLUDED_) +#define AFX_VISUALSTUDIOLIKEDEMO_H__73A06A39_E209_11D2_A7ED_525400DAF3CE__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols +#include "OXSkins.h" + +///////////////////////////////////////////////////////////////////////////// +// CVisualStudioLikeDemoApp: +// See VisualStudioLikeDemo.cpp for the implementation of this class +// + +class CVisualStudioLikeDemoApp : public CWinApp +{ +public: + CVisualStudioLikeDemoApp(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CVisualStudioLikeDemoApp) + public: + virtual BOOL InitInstance(); + virtual int ExitInstance(); + //}}AFX_VIRTUAL + +// Implementation + //{{AFX_MSG(CVisualStudioLikeDemoApp) + afx_msg void OnAppAbout(); + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_VISUALSTUDIOLIKEDEMO_H__73A06A39_E209_11D2_A7ED_525400DAF3CE__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.rc b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.rc new file mode 100644 index 0000000..030b676 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.rc @@ -0,0 +1,510 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE MOVEABLE PURE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE MOVEABLE PURE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE MOVEABLE PURE +BEGIN + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif //_WIN32\r\n" + "#include ""res\\VisualStudioLikeDemo.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "#include ""afxprint.rc"" // printing/print preview resources\r\n" + "#include ""OXMain.rc""\r\n" + "#endif\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON DISCARDABLE "res\\VisualStudioLikeDemo.ico" +IDR_VISUALTYPE ICON DISCARDABLE "res\\VisualStudioLikeDemoDoc.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDR_MAINFRAME BITMAP MOVEABLE PURE "res\\Toolbar.bmp" +IDB_IL_3DTABVIEW BITMAP MOVEABLE PURE "res\\il_3dtab.bmp" +IDB_IL_CLASSVIEW BITMAP MOVEABLE PURE "res\\il_class.bmp" +IDB_IL_RESOURCEVIEW BITMAP MOVEABLE PURE "res\\bmp00001.bmp" +IDB_IL_FILEVIEW BITMAP MOVEABLE PURE "res\\il_filev.bmp" +IDB_BACKGROUND BITMAP MOVEABLE PURE "res\\coolbar.bmp" +IDR_TB_WINDOW BITMAP MOVEABLE PURE "res\\tb_window.bmp" +IDB_SPLASHWINDOW BITMAP MOVEABLE PURE "res\\Logo.bmp" + +///////////////////////////////////////////////////////////////////////////// +// +// Toolbar +// + +IDR_MAINFRAME TOOLBAR MOVEABLE PURE 16, 16 +BEGIN + BUTTON ID_FILE_NEW + SEPARATOR + BUTTON ID_FILE_OPEN + BUTTON ID_FILE_SAVE + SEPARATOR + BUTTON ID_EDIT_CUT + BUTTON ID_EDIT_COPY + BUTTON ID_EDIT_PASTE + SEPARATOR + BUTTON ID_EDIT_UNDO + BUTTON ID_EDIT_REDO + SEPARATOR + BUTTON ID_VIEW_WORKSPACE + BUTTON ID_VIEW_OUTPUT + SEPARATOR + BUTTON ID_EDIT_FIND_IN_FILES + BUTTON ID_EDIT_FIND + SEPARATOR + BUTTON ID_FILE_PRINT + BUTTON ID_FILE_PRINT_PREVIEW + SEPARATOR + BUTTON ID_APP_ABOUT +END + +IDR_TB_WINDOW TOOLBAR MOVEABLE PURE 16, 16 +BEGIN + BUTTON ID_WINDOW_CASCADE + BUTTON ID_WINDOW_TILE_HORZ + BUTTON ID_WINDOW_ARRANGE +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_MAINFRAME MENU DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&New\tCtrl+N", ID_FILE_NEW + MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN + MENUITEM SEPARATOR + MENUITEM "P&rint Setup...", ID_FILE_PRINT_SETUP + MENUITEM SEPARATOR + MENUITEM "Recent File", ID_FILE_MRU_FILE1, GRAYED + MENUITEM SEPARATOR + MENUITEM "E&xit", ID_APP_EXIT + END + POPUP "&View" + BEGIN + MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR + MENUITEM SEPARATOR + MENUITEM "&Workspace", ID_VIEW_WORKSPACE + MENUITEM "&Output", ID_VIEW_OUTPUT + MENUITEM SEPARATOR + MENUITEM "&Customize...", ID_VIEW_CUSTOMIZE + END + POPUP "&Help" + BEGIN + MENUITEM "&About VisualStudioLikeDemo...", ID_APP_ABOUT + END +END + +IDR_VISUALTYPE MENU DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&New\tCtrl+N", ID_FILE_NEW + MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN + MENUITEM "&Close", ID_FILE_CLOSE + MENUITEM "&Save\tCtrl+S", ID_FILE_SAVE + MENUITEM "Save &As...", ID_FILE_SAVE_AS + MENUITEM SEPARATOR + MENUITEM "&Print...\tCtrl+P", ID_FILE_PRINT + MENUITEM "Print Pre&view", ID_FILE_PRINT_PREVIEW + MENUITEM "P&rint Setup...", ID_FILE_PRINT_SETUP + MENUITEM SEPARATOR + MENUITEM "Recent File", ID_FILE_MRU_FILE1, GRAYED + MENUITEM SEPARATOR + MENUITEM "E&xit", ID_APP_EXIT + END + POPUP "&Edit" + BEGIN + POPUP "Popup submenu1" + BEGIN + MENUITEM "item1", AFX_ID_PREVIEW_NEXT + POPUP "Popup submenu3" + BEGIN + MENUITEM "item2", AFX_ID_PREVIEW_ZOOMOUT + + END + END + POPUP "Popup submenu2" + BEGIN + MENUITEM "item3", AFX_ID_PREVIEW_NUMPAGE + END + MENUITEM "&Undo\tCtrl+Z", ID_EDIT_UNDO + MENUITEM SEPARATOR + MENUITEM "Cu&t\tCtrl+X", ID_EDIT_CUT + MENUITEM "&Copy\tCtrl+C", ID_EDIT_COPY + MENUITEM "&Paste\tCtrl+V", ID_EDIT_PASTE + END + POPUP "V&iew" + BEGIN + MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR + MENUITEM SEPARATOR + MENUITEM "&Workspace", ID_VIEW_WORKSPACE + MENUITEM "&Output", ID_VIEW_OUTPUT + MENUITEM SEPARATOR + MENUITEM "&Customize...", ID_VIEW_CUSTOMIZE + END + POPUP "&Window" + BEGIN + MENUITEM "&New Window", ID_WINDOW_NEW + MENUITEM "&Cascade", ID_WINDOW_CASCADE + MENUITEM "&Tile", ID_WINDOW_TILE_HORZ + MENUITEM "&Arrange Icons", ID_WINDOW_ARRANGE + END + POPUP "&Help" + BEGIN + MENUITEM "&About VisualStudioLikeDemo...", ID_APP_ABOUT + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Accelerator +// + +IDR_MAINFRAME ACCELERATORS MOVEABLE PURE +BEGIN + "C", ID_EDIT_COPY, VIRTKEY, CONTROL, NOINVERT + "N", ID_FILE_NEW, VIRTKEY, CONTROL, NOINVERT + "O", ID_FILE_OPEN, VIRTKEY, CONTROL, NOINVERT + "P", ID_FILE_PRINT, VIRTKEY, CONTROL, NOINVERT + "S", ID_FILE_SAVE, VIRTKEY, CONTROL, NOINVERT + "V", ID_EDIT_PASTE, VIRTKEY, CONTROL, NOINVERT + VK_BACK, ID_EDIT_UNDO, VIRTKEY, ALT, NOINVERT + VK_DELETE, ID_EDIT_CUT, VIRTKEY, SHIFT, NOINVERT + VK_F11, ID_VIEW_FULL_SCREEN, VIRTKEY, NOINVERT + VK_F6, ID_NEXT_PANE, VIRTKEY, NOINVERT + VK_F6, ID_PREV_PANE, VIRTKEY, SHIFT, NOINVERT + VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL, NOINVERT + VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT, NOINVERT + "X", ID_EDIT_CUT, VIRTKEY, CONTROL, NOINVERT + "Z", ID_EDIT_UNDO, VIRTKEY, CONTROL, NOINVERT +END + +IDR_VISUALTYPE ACCELERATORS MOVEABLE PURE +BEGIN + "C", ID_EDIT_COPY, VIRTKEY, CONTROL, NOINVERT + "N", ID_FILE_NEW, VIRTKEY, CONTROL, NOINVERT + "O", ID_FILE_OPEN, VIRTKEY, CONTROL, NOINVERT + "P", ID_FILE_PRINT, VIRTKEY, CONTROL, NOINVERT + "S", ID_FILE_SAVE, VIRTKEY, CONTROL, NOINVERT + "V", ID_EDIT_PASTE, VIRTKEY, CONTROL, NOINVERT + VK_BACK, ID_EDIT_UNDO, VIRTKEY, ALT, NOINVERT + VK_DELETE, ID_EDIT_CUT, VIRTKEY, SHIFT, NOINVERT + VK_F11, ID_VIEW_FULL_SCREEN, VIRTKEY, NOINVERT + VK_F6, ID_NEXT_PANE, VIRTKEY, NOINVERT + VK_F6, ID_PREV_PANE, VIRTKEY, SHIFT, NOINVERT + VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL, NOINVERT + VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT, NOINVERT + "X", ID_EDIT_CUT, VIRTKEY, CONTROL, NOINVERT + "Z", ID_EDIT_UNDO, VIRTKEY, CONTROL, NOINVERT +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 257, 41 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "About VisualStudioLikeDemo" +FONT 8, "MS Sans Serif" +BEGIN + ICON IDR_MAINFRAME,IDC_STATIC,7,7,21,20 + LTEXT "VisualStudioLikeDemo Version 1.0",IDC_STATIC,41,7,109,8, + SS_NOPREFIX + LTEXT "Copyright (C) 1999",IDC_STATIC,41,18,59,8 + DEFPUSHBUTTON "OK",IDOK,200,7,50,14,WS_GROUP +END + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "FileDescription", "VisualStudioLikeDemo MFC Application\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "VisualStudioLikeDemo\0" + VALUE "LegalCopyright", "Copyright (C) 1999\0" + VALUE "OriginalFilename", "VisualStudioLikeDemo.EXE\0" + VALUE "ProductName", "VisualStudioLikeDemo Application\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO MOVEABLE PURE +BEGIN + IDD_ABOUTBOX, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 250 + TOPMARGIN, 7 + BOTTOMMARGIN, 34 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDR_MAINFRAME "VisualStudioLikeDemo" + IDR_VISUALTYPE "\nVisual\nVisual\n\n\nVisualStudioLikeDemo.Document\nVisual Document" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_APP_TITLE "VisualStudioLikeDemo" + AFX_IDS_IDLEMESSAGE "Ready" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_INDICATOR_EXT "EXT" + ID_INDICATOR_CAPS "CAP" + ID_INDICATOR_NUM "NUM" + ID_INDICATOR_SCRL "SCRL" + ID_INDICATOR_OVR "OVR" + ID_INDICATOR_REC "REC" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_NEW "Create a new document\nNew" + ID_FILE_OPEN "Open an existing document\nOpen" + ID_FILE_CLOSE "Close the active document\nClose" + ID_FILE_SAVE "Save the active document\nSave" + ID_FILE_SAVE_AS "Save the active document with a new name\nSave As" + ID_FILE_PAGE_SETUP "Change the printing options\nPage Setup" + ID_FILE_PRINT_SETUP "Change the printer and printing options\nPrint Setup" + ID_FILE_PRINT "Print the active document\nPrint" + ID_FILE_PRINT_PREVIEW "Display full pages\nPrint Preview" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_APP_ABOUT "Display program information, version number and copyright\nAbout" + ID_APP_EXIT "Quit the application; prompts to save documents\nExit" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_MRU_FILE1 "Open this document" + ID_FILE_MRU_FILE2 "Open this document" + ID_FILE_MRU_FILE3 "Open this document" + ID_FILE_MRU_FILE4 "Open this document" + ID_FILE_MRU_FILE5 "Open this document" + ID_FILE_MRU_FILE6 "Open this document" + ID_FILE_MRU_FILE7 "Open this document" + ID_FILE_MRU_FILE8 "Open this document" + ID_FILE_MRU_FILE9 "Open this document" + ID_FILE_MRU_FILE10 "Open this document" + ID_FILE_MRU_FILE11 "Open this document" + ID_FILE_MRU_FILE12 "Open this document" + ID_FILE_MRU_FILE13 "Open this document" + ID_FILE_MRU_FILE14 "Open this document" + ID_FILE_MRU_FILE15 "Open this document" + ID_FILE_MRU_FILE16 "Open this document" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_NEXT_PANE "Switch to the next window pane\nNext Pane" + ID_PREV_PANE "Switch back to the previous window pane\nPrevious Pane" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_WINDOW_NEW "Open another window for the active document\nNew Window" + ID_WINDOW_ARRANGE "Arrange icons at the bottom of the window\nArrange Icons" + ID_WINDOW_CASCADE "Arrange windows so they overlap\nCascade Windows" + ID_WINDOW_TILE_HORZ "Arrange windows as non-overlapping tiles\nTile Windows" + ID_WINDOW_TILE_VERT "Arrange windows as non-overlapping tiles\nTile Windows" + ID_WINDOW_SPLIT "Split the active window into panes\nSplit" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_EDIT_CLEAR "Erase the selection\nErase" + ID_EDIT_CLEAR_ALL "Erase everything\nErase All" + ID_EDIT_COPY "Copy the selection and put it on the Clipboard\nCopy" + ID_EDIT_CUT "Cut the selection and put it on the Clipboard\nCut" + ID_EDIT_FIND "Find the specified text\nFind" + ID_EDIT_PASTE "Insert Clipboard contents\nPaste" + ID_EDIT_REPEAT "Repeat the last action\nRepeat" + ID_EDIT_REPLACE "Replace specific text with different text\nReplace" + ID_EDIT_SELECT_ALL "Select the entire document\nSelect All" + ID_EDIT_UNDO "Undo the last action\nUndo" + ID_EDIT_REDO "Redo the previously undone action\nRedo" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_VIEW_TOOLBAR "Show or hide the toolbar\nToggle ToolBar" + ID_VIEW_STATUS_BAR "Show or hide the status bar\nToggle StatusBar" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_SCSIZE "Change the window size" + AFX_IDS_SCMOVE "Change the window position" + AFX_IDS_SCMINIMIZE "Reduce the window to an icon" + AFX_IDS_SCMAXIMIZE "Enlarge the window to full size" + AFX_IDS_SCNEXTWINDOW "Switch to the next document window" + AFX_IDS_SCPREVWINDOW "Switch to the previous document window" + AFX_IDS_SCCLOSE "Close the active window and prompts to save the documents" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_SCRESTORE "Restore the window to normal size" + AFX_IDS_SCTASKLIST "Activate Task List" + AFX_IDS_MDICHILD "Activate this window" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_PREVIEW_CLOSE "Close print preview mode\nCancel Preview" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_SAVE_ALL "Save all open documents\nSave All" + ID_EDIT_FIND_IN_FILES "Find the specified text in files\nFind in Files" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_VIEW_OUTPUT "Shows or hides the Output window\nOutput" + ID_VIEW_WORKSPACE "Shows or hides Workspace window\nWorkspace" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif //_WIN32 +#include "res\VisualStudioLikeDemo.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +#include "afxprint.rc" // printing/print preview resources +#include "OXMain.rc" +#endif + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.sln b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.sln new file mode 100644 index 0000000..49fd296 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.sln @@ -0,0 +1,29 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VisualStudioLikeDemo", "VisualStudioLikeDemo.vcproj", "{6BB8AD0A-8A15-4401-B3B6-0832786A25CB}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug_Unicode|Win32 = Debug_Unicode|Win32 + Debug|Win32 = Debug|Win32 + Release_Shared|Win32 = Release_Shared|Win32 + Release_Unicode|Win32 = Release_Unicode|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6BB8AD0A-8A15-4401-B3B6-0832786A25CB}.Debug_Unicode|Win32.ActiveCfg = Debug_Unicode|Win32 + {6BB8AD0A-8A15-4401-B3B6-0832786A25CB}.Debug_Unicode|Win32.Build.0 = Debug_Unicode|Win32 + {6BB8AD0A-8A15-4401-B3B6-0832786A25CB}.Debug|Win32.ActiveCfg = Debug|Win32 + {6BB8AD0A-8A15-4401-B3B6-0832786A25CB}.Debug|Win32.Build.0 = Debug|Win32 + {6BB8AD0A-8A15-4401-B3B6-0832786A25CB}.Release_Shared|Win32.ActiveCfg = Release_Shared|Win32 + {6BB8AD0A-8A15-4401-B3B6-0832786A25CB}.Release_Shared|Win32.Build.0 = Release_Shared|Win32 + {6BB8AD0A-8A15-4401-B3B6-0832786A25CB}.Release_Unicode|Win32.ActiveCfg = Release_Unicode|Win32 + {6BB8AD0A-8A15-4401-B3B6-0832786A25CB}.Release_Unicode|Win32.Build.0 = Release_Unicode|Win32 + {6BB8AD0A-8A15-4401-B3B6-0832786A25CB}.Release|Win32.ActiveCfg = Release|Win32 + {6BB8AD0A-8A15-4401-B3B6-0832786A25CB}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.vcproj b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.vcproj new file mode 100644 index 0000000..97896a7 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemo.vcproj @@ -0,0 +1,5539 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemoDoc.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemoDoc.cpp new file mode 100644 index 0000000..8a0ee2f --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemoDoc.cpp @@ -0,0 +1,78 @@ +// VisualStudioLikeDemoDoc.cpp : implementation of the CVisualStudioLikeDemoDoc class +// + +#include "stdafx.h" +#include "VisualStudioLikeDemo.h" + +#include "VisualStudioLikeDemoDoc.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CVisualStudioLikeDemoDoc + +IMPLEMENT_DYNCREATE(CVisualStudioLikeDemoDoc, CDocument) + +BEGIN_MESSAGE_MAP(CVisualStudioLikeDemoDoc, CDocument) + //{{AFX_MSG_MAP(CVisualStudioLikeDemoDoc) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CVisualStudioLikeDemoDoc construction/destruction + +CVisualStudioLikeDemoDoc::CVisualStudioLikeDemoDoc() +{ + // TODO: add one-time construction code here + +} + +CVisualStudioLikeDemoDoc::~CVisualStudioLikeDemoDoc() +{ +} + +BOOL CVisualStudioLikeDemoDoc::OnNewDocument() +{ + if (!CDocument::OnNewDocument()) + return FALSE; + + // TODO: add reinitialization code here + // (SDI documents will reuse this document) + + return TRUE; +} + + + +///////////////////////////////////////////////////////////////////////////// +// CVisualStudioLikeDemoDoc serialization + +void CVisualStudioLikeDemoDoc::Serialize(CArchive& ar) +{ + // CEditView contains an edit control which handles all serialization + ((CEditView*)m_viewList.GetHead())->SerializeRaw(ar); +} + +///////////////////////////////////////////////////////////////////////////// +// CVisualStudioLikeDemoDoc diagnostics + +#ifdef _DEBUG +void CVisualStudioLikeDemoDoc::AssertValid() const +{ + CDocument::AssertValid(); +} + +void CVisualStudioLikeDemoDoc::Dump(CDumpContext& dc) const +{ + CDocument::Dump(dc); +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CVisualStudioLikeDemoDoc commands diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemoDoc.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemoDoc.h new file mode 100644 index 0000000..0301b4b --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemoDoc.h @@ -0,0 +1,57 @@ +// VisualStudioLikeDemoDoc.h : interface of the CVisualStudioLikeDemoDoc class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_VISUALSTUDIOLIKEDEMODOC_H__73A06A41_E209_11D2_A7ED_525400DAF3CE__INCLUDED_) +#define AFX_VISUALSTUDIOLIKEDEMODOC_H__73A06A41_E209_11D2_A7ED_525400DAF3CE__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + + +class CVisualStudioLikeDemoDoc : public CDocument +{ +protected: // create from serialization only + CVisualStudioLikeDemoDoc(); + DECLARE_DYNCREATE(CVisualStudioLikeDemoDoc) + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CVisualStudioLikeDemoDoc) + public: + virtual BOOL OnNewDocument(); + virtual void Serialize(CArchive& ar); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CVisualStudioLikeDemoDoc(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + +// Generated message map functions +protected: + //{{AFX_MSG(CVisualStudioLikeDemoDoc) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_VISUALSTUDIOLIKEDEMODOC_H__73A06A41_E209_11D2_A7ED_525400DAF3CE__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemoView.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemoView.cpp new file mode 100644 index 0000000..244ebfb --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemoView.cpp @@ -0,0 +1,122 @@ +// VisualStudioLikeDemoView.cpp : implementation of the CVisualStudioLikeDemoView class +// + +#include "stdafx.h" +#include "VisualStudioLikeDemo.h" + +#include "VisualStudioLikeDemoDoc.h" +#include "VisualStudioLikeDemoView.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CVisualStudioLikeDemoView + +IMPLEMENT_DYNCREATE(CVisualStudioLikeDemoView, CEditView) + +BEGIN_MESSAGE_MAP(CVisualStudioLikeDemoView, CEditView) + //{{AFX_MSG_MAP(CVisualStudioLikeDemoView) + ON_UPDATE_COMMAND_UI(ID_EDIT_FIND, OnUpdateEditFind) + ON_UPDATE_COMMAND_UI(ID_EDIT_FIND_IN_FILES, OnUpdateEditFindInFiles) + //}}AFX_MSG_MAP + // Standard printing commands + ON_COMMAND(ID_FILE_PRINT, CEditView::OnFilePrint) + ON_COMMAND(ID_FILE_PRINT_DIRECT, CEditView::OnFilePrint) + ON_COMMAND(ID_FILE_PRINT_PREVIEW, CEditView::OnFilePrintPreview) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CVisualStudioLikeDemoView construction/destruction + +CVisualStudioLikeDemoView::CVisualStudioLikeDemoView() +{ + // TODO: add construction code here + +} + +CVisualStudioLikeDemoView::~CVisualStudioLikeDemoView() +{ +} + +BOOL CVisualStudioLikeDemoView::PreCreateWindow(CREATESTRUCT& cs) +{ + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + BOOL bPreCreated = CEditView::PreCreateWindow(cs); + cs.style &= ~(ES_AUTOHSCROLL|WS_HSCROLL); // Enable word-wrapping + + return bPreCreated; +} + +///////////////////////////////////////////////////////////////////////////// +// CVisualStudioLikeDemoView drawing + +void CVisualStudioLikeDemoView::OnDraw(CDC* pDC) +{ + CVisualStudioLikeDemoDoc* pDoc = GetDocument(); + ASSERT_VALID(pDoc); + // TODO: add draw code for native data here + UNREFERENCED_PARAMETER(pDC); +} + +///////////////////////////////////////////////////////////////////////////// +// CVisualStudioLikeDemoView printing + +BOOL CVisualStudioLikeDemoView::OnPreparePrinting(CPrintInfo* pInfo) +{ + // default CEditView preparation + return CEditView::OnPreparePrinting(pInfo); +} + +void CVisualStudioLikeDemoView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo) +{ + // Default CEditView begin printing. + CEditView::OnBeginPrinting(pDC, pInfo); +} + +void CVisualStudioLikeDemoView::OnEndPrinting(CDC* pDC, CPrintInfo* pInfo) +{ + // Default CEditView end printing + CEditView::OnEndPrinting(pDC, pInfo); +} + +///////////////////////////////////////////////////////////////////////////// +// CVisualStudioLikeDemoView diagnostics + +#ifdef _DEBUG +void CVisualStudioLikeDemoView::AssertValid() const +{ + CEditView::AssertValid(); +} + +void CVisualStudioLikeDemoView::Dump(CDumpContext& dc) const +{ + CEditView::Dump(dc); +} + +CVisualStudioLikeDemoDoc* CVisualStudioLikeDemoView::GetDocument() // non-debug version is inline +{ + ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CVisualStudioLikeDemoDoc))); + return (CVisualStudioLikeDemoDoc*)m_pDocument; +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CVisualStudioLikeDemoView message handlers + +void CVisualStudioLikeDemoView::OnUpdateEditFind(CCmdUI* pCmdUI) +{ + // TODO: Add your command update UI handler code here + pCmdUI->Enable(TRUE); +} + +void CVisualStudioLikeDemoView::OnUpdateEditFindInFiles(CCmdUI* pCmdUI) +{ + // TODO: Add your command update UI handler code here + pCmdUI->Enable(TRUE); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemoView.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemoView.h new file mode 100644 index 0000000..8e14433 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/VisualStudioLikeDemoView.h @@ -0,0 +1,67 @@ +// VisualStudioLikeDemoView.h : interface of the CVisualStudioLikeDemoView class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_VISUALSTUDIOLIKEDEMOVIEW_H__73A06A43_E209_11D2_A7ED_525400DAF3CE__INCLUDED_) +#define AFX_VISUALSTUDIOLIKEDEMOVIEW_H__73A06A43_E209_11D2_A7ED_525400DAF3CE__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + + +class CVisualStudioLikeDemoView : public CEditView +{ +protected: // create from serialization only + CVisualStudioLikeDemoView(); + DECLARE_DYNCREATE(CVisualStudioLikeDemoView) + +// Attributes +public: + CVisualStudioLikeDemoDoc* GetDocument(); + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CVisualStudioLikeDemoView) + public: + virtual void OnDraw(CDC* pDC); // overridden to draw this view + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + protected: + virtual BOOL OnPreparePrinting(CPrintInfo* pInfo); + virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo); + virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CVisualStudioLikeDemoView(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + +// Generated message map functions +protected: + //{{AFX_MSG(CVisualStudioLikeDemoView) + afx_msg void OnUpdateEditFind(CCmdUI* pCmdUI); + afx_msg void OnUpdateEditFindInFiles(CCmdUI* pCmdUI); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +#ifndef _DEBUG // debug version in VisualStudioLikeDemoView.cpp +inline CVisualStudioLikeDemoDoc* CVisualStudioLikeDemoView::GetDocument() + { return (CVisualStudioLikeDemoDoc*)m_pDocument; } +#endif + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_VISUALSTUDIOLIKEDEMOVIEW_H__73A06A43_E209_11D2_A7ED_525400DAF3CE__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/Logo.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/Logo.bmp new file mode 100644 index 0000000000000000000000000000000000000000..ae610872a1e81ac564f7f36be6f769aad16d94de GIT binary patch literal 46198 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 literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/Toolbar.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/Toolbar.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b034401ba4669e5a86592a872d70432ec2f24499 GIT binary patch literal 2038 zcmc(gF^k(U6vq`3P{2d(V{{CpL&j1J8A|C_(GV&_7DEaN+;CsT!+{Sn-B?^ z+EZshb>I7hr*VN}9K&6$W1=LUa})ed<`@^IE`)F*44-m#7(S$OT*?6ow(hunrdVa{G#`m1Y4e+^1LpkmnbQ} zruUTBS6Xazgq!qAu;-FU_P^+QXsGtl^iJcCTEv3UxOGYIISCGut%L(!Ltz|UGy@Al^~clkD2M+ z?{^`F8@KSjP9PUNs^Lli-p2j@l3NXW&*yW8%Uq7iv$Rl`-dR~{eK|%t5b8=?GK%nB zD=Oz{;YeuHuzir4xhC0rhu-PWD&<-Gc~>0=y~ks7#kEbJ^nO`|r5W6;Ky)f_SwG{B z$&xRMO(;BbOS-)spw9HNuQb+$gQot}*UEi3OZPPw4W_s6%NVu_w0(;!FI~pjM0ma-AqdJV$HD+Ou^K6 zf6r-_mlnjr%$y?vIn89g@nFEX+wxXKP;aJSIb>!3}jLb9s)T}@Kod(893@u8ajANzT`op9^o+)S?=nU(FD@%0s)Sg^oyC8{H z9myetc;MEP)59v(LMa~xK8Yu^jIR*H22uCFiq5%C{s7(PJi>o15i^bmX4(vPxWAio z9ryY#AU_jfnd047-@`)XzL?%iS$gQyFP{44kS9X)fN{{QoL~hO-&=q&20Zr*cxFAt PkaNE{wR~2C$NfnjhSXWT literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/VisualStudioLikeDemo.rc b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/VisualStudioLikeDemo.rc new file mode 100644 index 0000000..b179372 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/VisualStudioLikeDemo.rc @@ -0,0 +1,559 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif //_WIN32\r\n" + "#include ""res\\VisualStudioLikeDemo.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "#include ""afxprint.rc"" // printing/print preview resources\r\n" + "#include ""OxDockCtrlBars.rc""\r\n" + "#include ""OXOptionTreeCtrl.rc""\r\n" + "#include ""OXHistoryCombo.rc""\r\n" + "#include ""OXBitmapButton.rc""\r\n" + "#include ""OXIntelliMouse.rc"" \r\n" + "#include ""OXListBoxEx.rc""\r\n" + "#include ""OXCustomizeManager.rc""\r\n" + "#endif\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON DISCARDABLE "res\\VisualStudioLikeDemo.ico" +IDR_VISUALTYPE ICON DISCARDABLE "res\\VisualStudioLikeDemoDoc.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDR_MAINFRAME BITMAP MOVEABLE PURE "res\\Toolbar.bmp" +IDB_IL_3DTABVIEW BITMAP DISCARDABLE "res\\il_3dtab.bmp" +IDB_IL_CLASSVIEW BITMAP DISCARDABLE "res\\il_class.bmp" +IDB_IL_RESOURCEVIEW BITMAP DISCARDABLE "res\\bmp00001.bmp" +IDB_IL_FILEVIEW BITMAP DISCARDABLE "res\\il_filev.bmp" +IDB_BACKGROUND BITMAP DISCARDABLE "res\\coolbar.bmp" +IDR_TB_WINDOW BITMAP MOVEABLE PURE "res\\tb_window.bmp" + +///////////////////////////////////////////////////////////////////////////// +// +// Toolbar +// + +IDR_MAINFRAME TOOLBAR DISCARDABLE 16, 16 +BEGIN + BUTTON ID_FILE_NEW + SEPARATOR + BUTTON ID_FILE_OPEN + BUTTON ID_FILE_SAVE + SEPARATOR + BUTTON ID_EDIT_CUT + BUTTON ID_EDIT_COPY + BUTTON ID_EDIT_PASTE + SEPARATOR + BUTTON ID_EDIT_UNDO + BUTTON ID_EDIT_REDO + SEPARATOR + BUTTON ID_VIEW_WORKSPACE + BUTTON ID_VIEW_OUTPUT + SEPARATOR + BUTTON ID_EDIT_FIND_IN_FILES + BUTTON ID_EDIT_FIND + SEPARATOR + BUTTON ID_FILE_PRINT + BUTTON ID_FILE_PRINT_PREVIEW + SEPARATOR + BUTTON ID_APP_ABOUT +END + +IDR_TB_WINDOW TOOLBAR DISCARDABLE 16, 16 +BEGIN + BUTTON ID_WINDOW_CASCADE + BUTTON ID_WINDOW_TILE_HORZ + BUTTON ID_WINDOW_ARRANGE +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_MAINFRAME MENU PRELOAD DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&New\tCtrl+N", ID_FILE_NEW + MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN + MENUITEM SEPARATOR + MENUITEM "P&rint Setup...", ID_FILE_PRINT_SETUP + MENUITEM SEPARATOR + MENUITEM "Recent File", ID_FILE_MRU_FILE1, GRAYED + MENUITEM SEPARATOR + MENUITEM "E&xit", ID_APP_EXIT + END + POPUP "&View" + BEGIN + MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR + MENUITEM SEPARATOR + MENUITEM "&Workspace", ID_VIEW_WORKSPACE + MENUITEM "&Output", ID_VIEW_OUTPUT + MENUITEM SEPARATOR + MENUITEM "&Customize...", ID_VIEW_CUSTOMIZE + MENUITEM SEPARATOR + MENUITEM "Full screen\tF11", ID_VIEW_FULL_SCREEN + END + POPUP "&Help" + BEGIN + MENUITEM "&About VisualStudioLikeDemo...", ID_APP_ABOUT + END +END + +IDR_VISUALTYPE MENU PRELOAD DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&New\tCtrl+N", ID_FILE_NEW + MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN + MENUITEM "&Close", ID_FILE_CLOSE + MENUITEM "&Save\tCtrl+S", ID_FILE_SAVE + MENUITEM "Save &As...", ID_FILE_SAVE_AS + MENUITEM SEPARATOR + MENUITEM "&Print...\tCtrl+P", ID_FILE_PRINT + MENUITEM "Print Pre&view", ID_FILE_PRINT_PREVIEW + MENUITEM "P&rint Setup...", ID_FILE_PRINT_SETUP + MENUITEM SEPARATOR + MENUITEM "Recent File", ID_FILE_MRU_FILE1, GRAYED + MENUITEM SEPARATOR + MENUITEM "E&xit", ID_APP_EXIT + END + POPUP "&Edit" + BEGIN + POPUP "Popup submenu1" + BEGIN + MENUITEM "item1", AFX_ID_PREVIEW_NEXT + POPUP "Popup submenu3" + BEGIN + MENUITEM "item2", AFX_ID_PREVIEW_ZOOMOUT + + END + END + POPUP "Popup submenu2" + BEGIN + MENUITEM "item3", AFX_ID_PREVIEW_NUMPAGE + END + MENUITEM "&Undo\tCtrl+Z", ID_EDIT_UNDO + MENUITEM SEPARATOR + MENUITEM "Cu&t\tCtrl+X", ID_EDIT_CUT + MENUITEM "&Copy\tCtrl+C", ID_EDIT_COPY + MENUITEM "&Paste\tCtrl+V", ID_EDIT_PASTE + END + POPUP "&View" + BEGIN + MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR + MENUITEM SEPARATOR + MENUITEM "&Workspace", ID_VIEW_WORKSPACE + MENUITEM "&Output", ID_VIEW_OUTPUT + MENUITEM SEPARATOR + MENUITEM "&Customize...", ID_VIEW_CUSTOMIZE + MENUITEM SEPARATOR + MENUITEM "F&ull screen\tF11", ID_VIEW_FULL_SCREEN + END + POPUP "&Window" + BEGIN + MENUITEM "&New Window", ID_WINDOW_NEW + MENUITEM "&Cascade", ID_WINDOW_CASCADE + MENUITEM "&Tile", ID_WINDOW_TILE_HORZ + MENUITEM "&Arrange Icons", ID_WINDOW_ARRANGE + END + POPUP "&Help" + BEGIN + MENUITEM "&About VisualStudioLikeDemo...", ID_APP_ABOUT + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Accelerator +// + +IDR_MAINFRAME ACCELERATORS PRELOAD MOVEABLE PURE +BEGIN + "C", ID_EDIT_COPY, VIRTKEY, CONTROL, NOINVERT + "N", ID_FILE_NEW, VIRTKEY, CONTROL, NOINVERT + "O", ID_FILE_OPEN, VIRTKEY, CONTROL, NOINVERT + "P", ID_FILE_PRINT, VIRTKEY, CONTROL, NOINVERT + "S", ID_FILE_SAVE, VIRTKEY, CONTROL, NOINVERT + "V", ID_EDIT_PASTE, VIRTKEY, CONTROL, NOINVERT + VK_BACK, ID_EDIT_UNDO, VIRTKEY, ALT, NOINVERT + VK_DELETE, ID_EDIT_CUT, VIRTKEY, SHIFT, NOINVERT + VK_F11, ID_VIEW_FULL_SCREEN, VIRTKEY, NOINVERT + VK_F6, ID_NEXT_PANE, VIRTKEY, NOINVERT + VK_F6, ID_PREV_PANE, VIRTKEY, SHIFT, NOINVERT + VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL, NOINVERT + VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT, NOINVERT + "X", ID_EDIT_CUT, VIRTKEY, CONTROL, NOINVERT + "Z", ID_EDIT_UNDO, VIRTKEY, CONTROL, NOINVERT +END + +IDR_VISUALTYPE ACCELERATORS PRELOAD MOVEABLE PURE +BEGIN + "C", ID_EDIT_COPY, VIRTKEY, CONTROL, NOINVERT + "N", ID_FILE_NEW, VIRTKEY, CONTROL, NOINVERT + "O", ID_FILE_OPEN, VIRTKEY, CONTROL, NOINVERT + "P", ID_FILE_PRINT, VIRTKEY, CONTROL, NOINVERT + "S", ID_FILE_SAVE, VIRTKEY, CONTROL, NOINVERT + "V", ID_EDIT_PASTE, VIRTKEY, CONTROL, NOINVERT + VK_BACK, ID_EDIT_UNDO, VIRTKEY, ALT, NOINVERT + VK_DELETE, ID_EDIT_CUT, VIRTKEY, SHIFT, NOINVERT + VK_F11, ID_VIEW_FULL_SCREEN, VIRTKEY, NOINVERT + VK_F6, ID_NEXT_PANE, VIRTKEY, NOINVERT + VK_F6, ID_PREV_PANE, VIRTKEY, SHIFT, NOINVERT + VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL, NOINVERT + VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT, NOINVERT + "X", ID_EDIT_CUT, VIRTKEY, CONTROL, NOINVERT + "Z", ID_EDIT_UNDO, VIRTKEY, CONTROL, NOINVERT +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 257, 90 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "About VisualStudioLikeDemo" +FONT 8, "MS Sans Serif" +BEGIN + ICON IDR_MAINFRAME,IDC_STATIC,7,7,21,20 + LTEXT "VisualStudioLikeDemo Version 1.0",IDC_STATIC,41,7,109,8, + SS_NOPREFIX + LTEXT "Copyright (C) 1999",IDC_STATIC,41,18,59,8 + DEFPUSHBUTTON "OK",IDOK,200,7,50,14,WS_GROUP + CONTROL "Progress1",IDC_PROGRESS1,"msctls_progress32",WS_BORDER, + 7,36,80,14 + CONTROL "Slider1",IDC_SLIDER1,"msctls_trackbar32",TBS_BOTH | + TBS_NOTICKS | WS_TABSTOP,102,35,100,15 + CONTROL "HotKey2",IDC_HOTKEY2,"msctls_hotkey32",WS_BORDER | + WS_TABSTOP,7,54,80,14 + CONTROL "DateTimePicker1",IDC_DATETIMEPICKER1,"SysDateTimePick32", + DTS_RIGHTALIGN | WS_TABSTOP,99,53,100,15 + CONTROL "",IDC_COMBOBOXEX2,"ComboBoxEx32",CBS_DROPDOWN | + CBS_SORT | WS_VSCROLL | WS_TABSTOP,202,43,48,30 + CONTROL "IPAddress2",IDC_IPADDRESS2,"SysIPAddress32",WS_TABSTOP, + 87,68,100,15 +END + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "VisualStudioLikeDemo MFC Application\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "VisualStudioLikeDemo\0" + VALUE "LegalCopyright", "Copyright (C) 1999\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "VisualStudioLikeDemo.EXE\0" + VALUE "ProductName", "VisualStudioLikeDemo Application\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_ABOUTBOX, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 250 + TOPMARGIN, 7 + BOTTOMMARGIN, 83 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE PRELOAD DISCARDABLE +BEGIN + IDR_MAINFRAME "VisualStudioLikeDemo" + IDR_VISUALTYPE "\nVisual\nVisual\n\n\nVisualStudioLikeDemo.Document\nVisual Document" +END + +STRINGTABLE PRELOAD DISCARDABLE +BEGIN + AFX_IDS_APP_TITLE "VisualStudioLikeDemo" + AFX_IDS_IDLEMESSAGE "Ready" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_INDICATOR_EXT "EXT" + ID_INDICATOR_CAPS "CAP" + ID_INDICATOR_NUM "NUM" + ID_INDICATOR_SCRL "SCRL" + ID_INDICATOR_OVR "OVR" + ID_INDICATOR_REC "REC" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_NEW "Create a new document\nNew" + ID_FILE_OPEN "Open an existing document\nOpen" + ID_FILE_CLOSE "Close the active document\nClose" + ID_FILE_SAVE "Save the active document\nSave" + ID_FILE_SAVE_AS "Save the active document with a new name\nSave As" + ID_FILE_PAGE_SETUP "Change the printing options\nPage Setup" + ID_FILE_PRINT_SETUP "Change the printer and printing options\nPrint Setup" + ID_FILE_PRINT "Print the active document\nPrint" + ID_FILE_PRINT_PREVIEW "Display full pages\nPrint Preview" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_APP_ABOUT "Display program information, version number and copyright\nAbout" + ID_APP_EXIT "Quit the application; prompts to save documents\nExit" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_MRU_FILE1 "Open this document" + ID_FILE_MRU_FILE2 "Open this document" + ID_FILE_MRU_FILE3 "Open this document" + ID_FILE_MRU_FILE4 "Open this document" + ID_FILE_MRU_FILE5 "Open this document" + ID_FILE_MRU_FILE6 "Open this document" + ID_FILE_MRU_FILE7 "Open this document" + ID_FILE_MRU_FILE8 "Open this document" + ID_FILE_MRU_FILE9 "Open this document" + ID_FILE_MRU_FILE10 "Open this document" + ID_FILE_MRU_FILE11 "Open this document" + ID_FILE_MRU_FILE12 "Open this document" + ID_FILE_MRU_FILE13 "Open this document" + ID_FILE_MRU_FILE14 "Open this document" + ID_FILE_MRU_FILE15 "Open this document" + ID_FILE_MRU_FILE16 "Open this document" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_NEXT_PANE "Switch to the next window pane\nNext Pane" + ID_PREV_PANE "Switch back to the previous window pane\nPrevious Pane" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_WINDOW_NEW "Open another window for the active document\nNew Window" + ID_WINDOW_ARRANGE "Arrange icons at the bottom of the window\nArrange Icons" + ID_WINDOW_CASCADE "Arrange windows so they overlap\nCascade Windows" + ID_WINDOW_TILE_HORZ "Arrange windows as non-overlapping tiles\nTile Windows" + ID_WINDOW_TILE_VERT "Arrange windows as non-overlapping tiles\nTile Windows" + ID_WINDOW_SPLIT "Split the active window into panes\nSplit" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_EDIT_CLEAR "Erase the selection\nErase" + ID_EDIT_CLEAR_ALL "Erase everything\nErase All" + ID_EDIT_COPY "Copy the selection and put it on the Clipboard\nCopy" + ID_EDIT_CUT "Cut the selection and put it on the Clipboard\nCut" + ID_EDIT_FIND "Find the specified text\nFind" + ID_EDIT_PASTE "Insert Clipboard contents\nPaste" + ID_EDIT_REPEAT "Repeat the last action\nRepeat" + ID_EDIT_REPLACE "Replace specific text with different text\nReplace" + ID_EDIT_SELECT_ALL "Select the entire document\nSelect All" + ID_EDIT_UNDO "Undo the last action\nUndo" + ID_EDIT_REDO "Redo the previously undone action\nRedo" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_VIEW_TOOLBAR "Show or hide the toolbar\nToggle ToolBar" + ID_VIEW_STATUS_BAR "Show or hide the status bar\nToggle StatusBar" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_SCSIZE "Change the window size" + AFX_IDS_SCMOVE "Change the window position" + AFX_IDS_SCMINIMIZE "Reduce the window to an icon" + AFX_IDS_SCMAXIMIZE "Enlarge the window to full size" + AFX_IDS_SCNEXTWINDOW "Switch to the next document window" + AFX_IDS_SCPREVWINDOW "Switch to the previous document window" + AFX_IDS_SCCLOSE "Close the active window and prompts to save the documents" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_SCRESTORE "Restore the window to normal size" + AFX_IDS_SCTASKLIST "Activate Task List" + AFX_IDS_MDICHILD "Activate this window" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_PREVIEW_CLOSE "Close print preview mode\nCancel Preview" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_SAVE_ALL "Save all open documents\nSave All" + ID_EDIT_FIND_IN_FILES "Find the specified text in files\nFind in Files" + ID_VIEW_FULL_SCREEN "Toggle Full Screen View" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_VIEW_OUTPUT "Shows or hides the Output window\nOutput" + ID_VIEW_WORKSPACE "Shows or hides Workspace window\nWorkspace" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// English (Canada) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENC) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_CAN +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDB_SPLASHWINDOW BITMAP DISCARDABLE "res\\Logo.bmp" +#endif // English (Canada) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif //_WIN32 +#include "res\VisualStudioLikeDemo.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +#include "afxprint.rc" // printing/print preview resources +#include "OxDockCtrlBars.rc" +#include "OXOptionTreeCtrl.rc" +#include "OXHistoryCombo.rc" +#include "OXBitmapButton.rc" +#include "OXIntelliMouse.rc" +#include "OXListBoxEx.rc" +#include "OXCustomizeManager.rc" +#endif + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/VisualStudioLikeDemo.rc2 b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/VisualStudioLikeDemo.rc2 new file mode 100644 index 0000000..da593a3 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/VisualStudioLikeDemo.rc2 @@ -0,0 +1,13 @@ +// +// VISUALSTUDIOLIKEDEMO.RC2 - resources Microsoft Visual C++ does not edit directly +// + +#ifdef APSTUDIO_INVOKED + #error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// Add manually edited resources here... + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/VisualStudioLikeDemoDoc.ico b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/VisualStudioLikeDemoDoc.ico new file mode 100644 index 0000000000000000000000000000000000000000..2a1f1ae6ef15e51df8c39bc028bbfb2171822ba5 GIT binary patch literal 1078 zcmcJNF;c@Y5JlGsgIpoERJdY%i*S@2!JS&si6f-)RXoFGDAfg5;z_dQBoi_)1DpI^ z{oS?KlD%25H@>BZ{KJV|_dD9_G1MV<{5a&-}7^W%4AM)k- zx&P*V(j}a@*Y~UhksXTAK!NRyiYN-8NMyKz<)2v9@tUao7A!g+SzkAcsHvdq6!0vQ z#-rA6>0BAr)4*u6Y57EdkamnXf Uh-a7VEuQ2KJb_2>o71HC3-%7w@Bjb+ literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/bmp00001.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/bmp00001.bmp new file mode 100644 index 0000000000000000000000000000000000000000..090bf49a81849bd54ad5383f86defc169a198493 GIT binary patch literal 886 zcmbtSF>1sx5LCE;4i_QM$P-+r&mZyxRVRVL7P!#D75>82SEb9rHGY8LzL3ssx--O} z%u2Fja_O>`c5G`rnqB$%Ww#MAcF0edub7XRcj6uyk=N71I$I$ygtZBfaVz@12l7IQ zLxjM0n7H^AlKy8X=pm#@C^E`LHow=I=+c5RGd5%#nT2mChSeDziA~!Q^9>nbh#$(d zOk}<)4y!wclW=9REz5GHADU}0vI}Ft7|r#a!zO&Qt}T*&GOkRM_>)Hjf0^|YD$Dv* zw#pcEFMKY3{B-e?zxY|d<6X{M>qK!t3&4+#SNf43X8n%kMrWNm9%WtM`2Ve+>fc*e z9E-y+#Qwy6a(^b6zx7{%Ux-5;{h$K)=X!}GcK2){mK8$m4<6yCkn-c4`cLRT^Skkf zk1|h0j_VkKt}Y&G75RKnsXv|4bN}_es^UL@f*GAwdKln``|W*i8hve?%*RiJQ>S?1 X8JGWO=5r%#Wc-=%8HdZ5v{uY-4Uw!R literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/coolbar.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/coolbar.bmp new file mode 100644 index 0000000000000000000000000000000000000000..5645461659f0d90c64d6bf7c302819c7bd065abe GIT binary patch literal 81078 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 literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/ico2.ico b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/ico2.ico new file mode 100644 index 0000000000000000000000000000000000000000..20e66a31022950ec3bc227a21c148bb6b900ed11 GIT binary patch literal 2238 zcmc)My>1&v6vgptIDp&VbrePiM z2?R@VPXu8aCO`~Kes}qyk4SKtUH$jtoVj<-&MpB(ys*D{6OOOqr&keQM#NVj#n(tZ zx5*d7X>)jS?>Z(-_mj!y1e1Z&@6hPqoJa}1hEJjDhhgEXur^Ep=?8O7Q`P94HX3hS?Fk}C@@GCIvOep6v{$J zLq&mRW~bX5Dhf;>69o+w1tyh;j)sZ?L0EJ&R1~<8hmMAd0t4isqoJZekvw$dUQwWt zJkp_|qCj(b=xC@YFrhqjG*lD_p@fcxiUJq%(9uv)z?6qRB%#|26v$(x&`?pJi9B>P zR1|0|4;>8^1tyb+j)sZ?0koo{p`yS+9{R8=amm!&y0rHC8+f}imnu5f`f9Dm-v zxrvL5i@3VF8aO*Ui{sE6{`ULZYwmcw z@dr2kbhm!GUWWdotj%rXZvEf5IrnHZ-uSM!+tB|*x+Ctm559-F@1K9Wb9>f%*8BD6 z=XY+VQ2d}?>t%NC34d6td;Lv(=MDoN{@5kHDf7;zOc-9>zSU=f$KhtRa#Jqd=f4%7a zW$&NjZC}OfK955|4?f{z#LEfdjsw@ParznF`j11K!#;^q^gcJm{IK_rr@jBZTkh@o EUyzX0aR2}S literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/ico3.ico b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/ico3.ico new file mode 100644 index 0000000000000000000000000000000000000000..97031b04a14c627390e9fe11de939e81fe67fc00 GIT binary patch literal 2238 zcmajfKX2Pc7{~DoT7cP7FI^M3OK08-NCv+Jk6Q07c&x_0h1)U|MbR~57R`d@Of`_j zi#X5|S)c{j&qK9{qc@eO0S&n-X+)9>5tbb{g_hv8BFN|!XC%^`*~O{ zub$keHK+M{y$r5y(`K_to4+>ce*1gcO;f5U$e4Ch+M%K#Lr|J3J1Pn?B&MmbqoN=~ zu{33NR1{=rkamd;1sT({Q+}t^PTE2?65_{)ih>LVTG&xhkRgZ`c2pE(NTh`w6$KfJ z>CWz~D9F%&CKgl_WN1ncJ1Pn?2;pK!ML~uMJ?y9`$PhpeJ1Pn?B+kikh0`>cfBnIVB5D}{=J3`OW+M@2z~ z!t}7Cq98*vde~7>kU@Y_?5HTnaG{5NUKMs@oE)?$x4d@oiqWAh;N;_8m5$P@fm;OSKQzlSGfFt_w8-E zzP?U3H#aj^S6Aus@-kgqT%1-)_y0`kw~rrv$7{9YVPo(e&9nHPVj43?*L-sv5h2M0(o|9q-m}KeTQ8#2@J`e8P`7>2*9h;~C=SX*Uc&UXV0S+aP`-sxO`mu%D{BU7X!A<+RL#4WI7M!5rH ziwj7VOoo=Khvz*`Xw*_6QHkR|cKm)n=RL=^RI@#flM~~7Xde&Fo}1YVK(d!0U88!E zFa2q6=eJb^xv#4J!kM2opU-Xnb#Ch~A8e75MF`-K7ReS6A%Fu(mLfVt2;e}WrGO3* z0yxmjlA}X}01ixG3qykd4k;~Yzo6BEvL5G(5&nolga8f*ctM8<0USue3pzvy;6Nc> z&>=zq2bwWEI!A;64orY26o?SOfl2X$4iN%4V1y7lLT&7O=rL%^xyf6pZPONMJ2(*oElW#~U0IV2O{sP&RjMSj z20p_lcnwpSzz7C^4>yfXCKH=ZrY64> z?-M$rWm&dlFbBogBqb%}csI1RY#K63v*nUvqG`Bopm5t1MNLY}B5b87W79yBH$`2O zKzv0)j{c6@%!=aj^0LnH?@CZLBO92tCGk2b-n4e18Q1}hK3*1$)v7O=nO*GE=lHC| zni|wi+qTC1Y1^Lo)|y#CnANK5YMf{9+cz6)+KDBsmMm_pj9hNSx7ILh+J7x?EO)B8 zwWbC2arQ1huN-gcY;9)UHZBjlqbagAEu8v0!QI6F`MZD7AD;2ialW2Ee?I-3kL~~9 z*ZJ_0{w0#uc9tqTzA-!aVYa{K-v#lFX7e2?ehY^Fa}fJ*P?;UW+1&Qh`pvVH-riWx QQ?6Uk-a+;17Tq&`0Tf-Y<^TWy literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/ico5.ico b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/ico5.ico new file mode 100644 index 0000000000000000000000000000000000000000..93124f263341997264701146afb33665996eaae4 GIT binary patch literal 1126 zcma)5v1%JZ5Phe0xN|VE(#0UGLxDudg_NjJ>_AqZkWVqFICnmr!h#fzOOeK0DG11@ zP@%%tN53EtsZ&U#P>4e|Z)Q&^f&v-o?d+R3Gk3Q)2Lvb~j?45rfB~KXD3?9&2IP#@ z8HQ`iFC}Blwe$EU3j?{#aHUW-x6rjXfL=Z_Mj^ z+GG6P-%E1G7_mzg^P|v>y=YS z;`^8%3;rv)ZQ{7*Ls*&>(q{!@L9@frXSjI z@X=h2JilQ6*i=W6uSe}UIj@6DuQ%$#(Ls2sfkp;-JDt;L?RgB_W7{N3l-B@l)hQap z#bZz_q z>~X`P3pqw1x{e6o(zDyGFPdP%2n@@vEzT}g0h-M*AaSjF;zc9zw z3pQxP_z)dKkT1z771GHHwb E1~BR$8vpATLaFcm2xgt$kbag9!Lb*YF% zNtp)e5Xi$fcO*_6+b6^w-~Rc{?(A=O&p~9wdwMFAWBE81c`hQa07>3K>iHCpyQ(in zciK`Aq+b+$MM+autCg(2uH^d52dN{(!9XGEkQy8e6c{Ao=-^1$HeOzTlbI2b4(-~}BV3=|lI7j$qiP+%fn(80k#fn=Hzyf$e0S5yG7R3)bI2b5kgb+G77%0%e4>~v)C@=s&=-^tQNv6{vzVX>xk=T S5$($@zu!jOkok_WGwu(=S~BVY literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/il_3dtab.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/il_3dtab.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2bab0a181620678324a7667884936908f3e55cee GIT binary patch literal 502 zcmZXQJ#ND=422oAfC~;uj*+pW=I*_Vrpikd10JZQJ%eXop^FcYAr~l+&0EH<>LVpM zaZ8(&^zq^8=jHWhLl$qS2jnwykKE8BDp6Pawpf)8O@OW|11hF8O%q0KWcw*+ogwil zLJ5DuqmNie3<9zbCkmMocHfj9?wXdEW}2LegPEU(l7u3 literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/il_class.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/il_class.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2f0bce13411fd64dfdf61c5623407f46eb8865fd GIT binary patch literal 886 zcmb7Bv1-FG5LIc50>QYS(Xm^HZY67>OZR?)rktU)c(WnI`IT-NGQ=N{!9QT|m`P}B zz=QklbPn;Dvvto;_w=NbU*DFuMq-Kli1CT>fN^8)kP%vsBNXuInbnw#aaL3JE<5IC}w&9#ufXIM^e3O z-ihEX2!m>d_27&f_@i&xqO78S(tKD-EeR53ewGtiE6Dz*SrB~@{au^fTbhT6&>y=J z+zGOOaH@}Oxu$JUw-KSQJPtCqf)jt$Cv7YKf_xs|i9h28y>7JSBHpKK+lJU*ko)zX z{RLNje+p>eaHy&HW+71md-oCqnP>h8?gUFjKm*X15 z{Ym`^*PZTnmQf-D-+}{K&-c&gIqP{k^rKpqr0y&7MGVnPB_=ogUNHRLzbT&-nLIsD Hr1p=5Zn-h)XC4tGeo#H_zQW0DxW}&Itx_XSJK6h#!uS9Ac2d`%${UyVnf!t z9qDdnZf||>ANyDF*dxDTd}3@dUSxxeSl08$ZSFvD7KdZ711k8KHgYR2hu`x1bQN?!f=;MkBRohg=1x3#E z*DyH|Cc;r-QUv+%l&PrH{WU=aBWpRob|fxnjS zuMPN%f8s7b~8vFS`IcS{S*gi*$y-B50U-J^>BJBSUf`g|D`{Uc^rlV_nCptSKI^kpSTH( snta!dUFTN-zANsgIZ|iDmG80;cp?18tmr%_S42UKr?=S~h1CUr0aCfNcK`qY literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/tb_window.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/tb_window.bmp new file mode 100644 index 0000000000000000000000000000000000000000..5103bf1b70228b8ad5623f31097399acf13b9ecd GIT binary patch literal 502 zcmah_!41P840NOpkTLq~43(w4sw`ubFQYLO>eo5jR1nmtPJD(tb0&GdJ_~ugfp_Es zxgr<30f}aj8 z7q@3WHTH|{J~w3ZjSzJvxjM`hAJ=Z%`LM_F={`~`e17p}-}ye)z6Lv=KKUCz-A9`J NWq&gs{@ZudsUFxG!ax83 literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/toolbar1.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/advanced/VisualStudioLikeDemo/res/toolbar1.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d16af5d31920bf6255217963f3992d29a839ee39 GIT binary patch literal 2678 zcmeHJv2Fq}3=LAHpiUh-cI0}|W)!u2_}LmapXmR1;& z%Zu%I&*p;e<8$>KvaK+`V|-)0Va&o4W|;Z~)N>yKzM=2sf*H$jI2>?g$C$ri9C?L- z4{tHPvn}py%fZ?4W=zhGO9$zJ|3N=OEJc*xGs)f*PMT5tHBR9QpJbHyfQdRt7c-tML0qxnG8^QP$oL5`Wgo{u!R zW8pFxGM==0CR6+V$%)xX}I`7ip1?n{Ey)8XcupKYy2 + + + + +Check this out ... + + + + +

    Test our CGI script class

    + +
    +

    +Subject : New CStatusBar Class: +

    +Description : Incredible but true: +

    +FileName : c:\statbar.zip: +

    +

    +


    +

    + +

    +

    +Pushing this button will return you the information a CGI script can access +through some public functions that use environment variables.

    +
    + +
    + + + + + +
    + + + + + + + + +Give us your Name : +

    +When you entered your Name, hit this button: + + + + + + + + + + +

    + +

    + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/cgiscrpt.dsp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/cgiscrpt.dsp new file mode 100644 index 0000000..c2b7941 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/cgiscrpt.dsp @@ -0,0 +1,215 @@ +# Microsoft Developer Studio Project File - Name="cgiscrpt" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=cgiscrpt - Win32 Unicode_Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "cgiscrpt.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "cgiscrpt.mak" CFG="cgiscrpt - Win32 Unicode_Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "cgiscrpt - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "cgiscrpt - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE "cgiscrpt - Win32 Release_Shared" (based on "Win32 (x86) Console Application") +!MESSAGE "cgiscrpt - Win32 Unicode_Debug" (based on "Win32 (x86) Console Application") +!MESSAGE "cgiscrpt - Win32 Unicode_Release" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "cgiscrpt - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir ".\Release" +# PROP BASE Intermediate_Dir ".\Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 1 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir ".\Release" +# PROP Intermediate_Dir ".\Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "NOAUTOLIB" /Yu"stdafx.h" /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 /nologo /subsystem:console /machine:I386 /out:"cgiscrpt.exe" + +!ELSEIF "$(CFG)" == "cgiscrpt - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir ".\Debug" +# PROP BASE Intermediate_Dir ".\Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 2 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir ".\Debug" +# PROP Intermediate_Dir ".\Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "NOAUTOLIB" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 +# ADD LINK32 /nologo /subsystem:console /debug /machine:I386 /out:"cgiscrpt.exe" + +!ELSEIF "$(CFG)" == "cgiscrpt - Win32 Release_Shared" + +# PROP BASE Use_MFC 1 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "cgiscrpt" +# PROP BASE Intermediate_Dir "cgiscrpt" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 2 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release_Shared" +# PROP Intermediate_Dir "Release_Shared" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "NOAUTOLIB" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W4 /GX /O2 /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "NOAUTOLIB" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD BASE RSC /l 0x409 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:console /machine:I386 /out:"cgiscrpt.exe" +# ADD LINK32 /nologo /subsystem:console /machine:I386 /out:"cgiscrpt.exe" + +!ELSEIF "$(CFG)" == "cgiscrpt - Win32 Unicode_Debug" + +# PROP BASE Use_MFC 2 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "cgiscrp0" +# PROP BASE Intermediate_Dir "cgiscrp0" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 2 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Unicode_Debug" +# PROP Intermediate_Dir "Unicode_Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W4 /Gm /GX /Zi /Od /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "NOAUTOLIB" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "NOAUTOLIB" /D "_AFXDLL" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE RSC /l 0x409 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:console /debug /machine:I386 /out:"cgiscrpt.exe" +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:console /debug /machine:I386 /out:"cgiscrpt.exe" + +!ELSEIF "$(CFG)" == "cgiscrpt - Win32 Unicode_Release" + +# PROP BASE Use_MFC 1 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "cgiscrp1" +# PROP BASE Intermediate_Dir "cgiscrp1" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 1 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Unicode_Release" +# PROP Intermediate_Dir "Unicode_Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "NOAUTOLIB" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "NOAUTOLIB" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE RSC /l 0x409 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:console /machine:I386 /out:"cgiscrpt.exe" +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:console /machine:I386 /out:"cgiscrpt.exe" + +!ENDIF + +# Begin Target + +# Name "cgiscrpt - Win32 Release" +# Name "cgiscrpt - Win32 Debug" +# Name "cgiscrpt - Win32 Release_Shared" +# Name "cgiscrpt - Win32 Unicode_Debug" +# Name "cgiscrpt - Win32 Unicode_Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90" +# Begin Group "UTSource" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\source\UTSampleAbout\HtmlCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXScript.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\UTBStrOp.cpp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\helloscp.CPP +# ADD CPP /Yu"stdafx.h" +# End Source File +# Begin Source File + +SOURCE=.\stdafx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd" +# Begin Source File + +SOURCE=.\helloscp.h +# End Source File +# Begin Source File + +SOURCE=.\stdafx.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=..\..\..\Include\OXScript.h +# End Source File +# End Group +# End Target +# End Project diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/cgiscrpt.dsw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/cgiscrpt.dsw new file mode 100644 index 0000000..0c9284e --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/cgiscrpt.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "cgiscrpt"=".\cgiscrpt.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/cgiscrpt.vcproj b/UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/cgiscrpt.vcproj new file mode 100644 index 0000000..6d045df --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/cgiscrpt.vcproj @@ -0,0 +1,684 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/helloscp.CPP b/UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/helloscp.CPP new file mode 100644 index 0000000..6bd6e90 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/helloscp.CPP @@ -0,0 +1,183 @@ +// ========================================================================== +// Class Implementation : CHelloScript +// ========================================================================== + +// Source file : helloscp.cpp + +// Source : Dundas Software +// +// This sample implements a simple write back script. This type of script +// requires that the onGet and onPost functions be defined. These are the +// only functions that needed to be defined for this script. +// ////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" // standard MFC include +#include "helloscp.h" + +#ifdef _DEBUG +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +CWinApp theApp; // dummy app + + + +CHelloScript::CHelloScript() + { + } + + +CHelloScript::~CHelloScript() + { + } + +// This function is only so that you will see something when you debug +// this demo from within DevStudio or on a command line. +void CHelloScript::OnRunCommandLine(int argc, char** argv) + { + + _tprintf(_T("This program is designed to be run from the HTTP Service\n")); + _tprintf(_T("Running it from the command line does nothing interesting\n")); + + int index = 1; + while(index < argc) + { + _tprintf(_T("Command line Parameter %d : %s\n"), index, argv[index]); + index++; + } + + } +// This member function is used whenever the client makes a request +// for information from the server. + +// This is virtual function which must be defined in any derived class +// One must override these functions because each implementation +// will be different. +void CHelloScript::OnGet(LPCTSTR pszParam) + { + UNREFERENCED_PARAMETER(pszParam); + + // Tell the client that it will be receiving HTML formatted text + _tprintf(_T("Content-type: text/HTML\n")); + _tprintf(_T("\n")); + + LPCTSTR pszAction = GetPathInfo(); + if (_tcsicmp(pszAction, _T("/report")) == 0) + { + // When called by a get this script will return information + // about the server, client and connection. + // These functions can be used internally for processing of + + _tprintf(_T("

    GetPathInfo() = %s

    \n"), GetPathInfo()); + _tprintf(_T("

    GetScriptName() = %s

    \n"), GetScriptName()); + _tprintf(_T("

    GetRemoteAddress() = %s

    \n"), GetRemoteAddress()); + _tprintf(_T("

    GetServerName() = %s

    \n"), GetServerName()); + _tprintf(_T("

    GetServerProtocol() = %s

    \n"), GetServerProtocol()); + _tprintf(_T("

    GetServerSoftware() = %s

    \n"), GetServerSoftware()); + _tprintf(_T("

    GetServerPort() = %i

    \n"), GetServerPort()); + _tprintf(_T("

    GetClientInfo(ACCEPT) = %s

    \n"), GetClientInfo(_T("ACCEPT"))); + _tprintf(_T("

    GetClientInfo(USER_AGENT) = %s

    \n"), GetClientInfo(_T("USER_AGENT"))); + _tprintf(_T("

    GetClientInfo(REFERER) = %s

    \n"), GetClientInfo(_T("REFERER"))); + _tprintf(_T("
    ")); + } + else + { + _tprintf(_T("This is not a valid parameter :\n")); + _tprintf(_T("

    %s\n"), pszAction); + } + + _tprintf(_T("\n\n")); + } + +void CHelloScript::OnPost(LPCTSTR pszType, LPCTSTR pszData) + { + // The client needs to know what type of file it is receiving + // This statement tells it that. + // _tprintf is used to simply print the text to the stdout port. + _tprintf(_T("Content-type: text/HTML\n\n")); + _tprintf(_T("")); + + if (_tcscmp(pszType, _T("application/x-www-form-urlencoded")) != 0) + { + _tprintf(_T("This is not a valid Post parameter\n")); + _tprintf(_T("\n\n")); + return; + } + + LPTSTR pszResult = NULL; + + // CGI converts certain characters like spaces, slashes into other + // characters. They need to be returned to their initial characters. + // The UUDecode function takes care of this. + UUDecode(pszData, pszResult); + + + // Check for the required fields. If they do not exist then + // write back an error message to the client + CString sSubject, sDescription, sFileName, sEMail; + if (!Extract(sSubject, pszResult, 0, _T("Subject")) || + !Extract(sDescription, pszResult, 1, _T("Descr")) || + !Extract(sFileName, pszResult, 2, _T("Filename")) || + !Extract(sEMail, pszResult, 3, _T("MailAddr"))) + { + _tprintf(_T("Data is corrupt, please try again\n")); + _tprintf(_T("\n\n")); + return; + } + // The following if statements test the required fields for + // information. If they are empty then an error message is + // written back to the client. + if (sFileName.IsEmpty()) + { + _tprintf(_T("The Filename is empty, please try again\n")); + _tprintf(_T("

    Try again\n")); + _tprintf(_T("\n\n")); + + if (pszResult != NULL) + delete[] pszResult; + + return; + } + + + if (pszResult != NULL) + delete[] pszResult; + + // The following _tprintf calls send a message back to the client. + // If the source of the document is viewed in the cients browser + // it does not appear to be layed out nicely. However it is readable. + // The printing of new line (\n) on its own causes the document to be + // restarted. + _tprintf(_T("

    Your message has been received\n")); + _tprintf(_T("

    Hello %s\n"), sEMail); + _tprintf(_T("

    The subject you entered is '%s'\n"), sSubject); + _tprintf(_T("

    The description you entered is '%s'\n"), sDescription); + _tprintf(_T("

    And here is the filename you entered '%s'\n"), sFileName); + _tprintf(_T("

    Back to Home Page\n")); + _tprintf(_T("

    This is just a demonstration of a write back script.
    ")); + _tprintf(_T("

    ")); + _tprintf(_T("

    \n\n")); + } + +int main(int argc, char *argv[]) + { + + CHelloScript script; + + return script.DoMain(argc, argv); + } + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/helloscp.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/helloscp.h new file mode 100644 index 0000000..a7679cd --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/helloscp.h @@ -0,0 +1,67 @@ +// ========================================================================== +// Class Specification : CHelloScript +// ========================================================================== + +// Header file : helloscp.h + + +// ////////////////////////////////////////////////////////////////////////// + +// Properties: +// NO Abstract class (does not have any objects) +// YES Derived from COXScript + +// NO Is a Cwnd. +// NO Two stage creation (constructor & Create()) +// NO Has a message map +// NO Needs a resource (template) + +// NO Persistent objects (saveable on disk) +// NO Uses exceptions + +// ////////////////////////////////////////////////////////////////////////// + +// Desciption : +// +// + +// Remark: +// *** +// Prerequisites (necessary conditions): +// *** + +///////////////////////////////////////////////////////////////////////////// + +#ifndef __HELLO_H__ +#define __HELLO_H__ + +#include "oxscript.h" + +class CHelloScript : public COXScript +{ +public: + CHelloScript(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Contructor of object + // It will initialize the internal state + + ~CHelloScript(); + // --- In : + // --- Out : + // --- Returns : + // --- Effect : Destructor of object + +// Overridable implementations +protected: + + virtual void OnGet(LPCTSTR pszParam); + virtual void OnPost(LPCTSTR pszType, LPCTSTR pszData); + virtual void OnRunCommandLine(int argc, char** argv); + +}; + +#endif // __HELLO_H__ +// ========================================================================== + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/stdafx.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/stdafx.cpp new file mode 100644 index 0000000..46cd188 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/stdafx.cpp @@ -0,0 +1,2 @@ + +#include "stdafx.h" diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/stdafx.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/stdafx.h new file mode 100644 index 0000000..7da3634 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/communication/CGIscrpt/stdafx.h @@ -0,0 +1,9 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#include // MFC core and standard components +#include // MFC extensions + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/DaoDemoInfo.rtf b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/DaoDemoInfo.rtf new file mode 100644 index 0000000000000000000000000000000000000000..a337e5d87b39d009488fdfb05c84b5e618de3580 GIT binary patch literal 1645 zcmaJ>!EW0)5Z!Zu{fB{1Y3mw_v+Wk~DX^1Xk{GRxq6c0mX=JgbNR_1G2toSo`$)-d zvKy=qmPpRLdGp?g55k4&R7m5MD7mV#_#b5c_dI(Ll{F#c8ZVis{9buaHyhd@m^SQG zwRptQsi>T7q!Cq7OXoSvY122k)#-FTp3+t|?CF;G^d&|w9v}aF^&kqXtwRanxXi@P zF`G=}y5npSx90EP|9A6Q-0A$|0!WdymS%UFot=qRx>EcsM60C&El}`hA4CDBIW5=U zRu^kpYUw@F5K2S*li+zq$D`j6^S=Nw2gLf0-JRn7OEJgHZLK^Nu?p>-Y+FxKYqAyH zTrEBMAWaFD6uG1*Xmhe$NxPB|UwWQWTy15pdBxSR`rNVWu_7d=<1buTS3>gFq)f16 z4HHY>6W%+|1M-Y6hRUI4GF-6t()G_OONUs;GH{u&;ZJ~cSOJ!u0rh@HTjV#^2P$mS zSfl$`qofLXodf@f!uPF>o1u2L+tqj;WSCN`JC6-U7&a46SwuRKZX|aoMmGP>Mew95 z00t+i>P!)o1rZhcnCZG-Z@PCCOpC@PWCfj4Q8^l@GaTk@cNr5wcff!nA63J#Vb=ZHTD7t=!D zavFANXZY&w1KE~MlKB|jd1ZFQ=soHK1LDUa?fLmShJyan_2%<+Y6l(q8Ldsh2{C!i zzZoQNWZ9?oF&|@SrOeQ1QaaW;vWSb3cOeZynUW!|?YW$S6#xs3nZkUTerV#DD!YKY zB&cE-&Nx899)9Ik1&>`MSQ-T!e2;t(_v$p?F28<29tY;(! zu8C^v_)gi*!__D~ggWs4*Lb~nkKmrUyqA~{e)0Il3n~+8OM;V literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/ReadMe.txt b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/ReadMe.txt new file mode 100644 index 0000000..1e58a39 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/ReadMe.txt @@ -0,0 +1,81 @@ +======================================================================== + MICROSOFT FOUNDATION CLASS LIBRARY : demo +======================================================================== + + +AppWizard has created this demo application for you. This application +not only demonstrates the basics of using the Microsoft Foundation classes +but is also a starting point for writing your application. + +This file contains a summary of what you will find in each of the files that +make up your demo application. + +demo.h + This is the main header file for the application. It includes other + project specific headers (including Resource.h) and declares the + CDemoApp application class. + +demo.cpp + This is the main application source file that contains the application + class CDemoApp. + +demo.rc + This is a listing of all of the Microsoft Windows resources that the + program uses. It includes the icons, bitmaps, and cursors that are stored + in the RES subdirectory. This file can be directly edited in Microsoft + Developer Studio. + +res\demo.ico + This is an icon file, which is used as the application's icon. This + icon is included by the main resource file demo.rc. + +res\demo.rc2 + This file contains resources that are not edited by Microsoft + Developer Studio. You should place all resources not + editable by the resource editor in this file. + +demo.clw + This file contains information used by ClassWizard to edit existing + classes or add new classes. ClassWizard also uses this file to store + information needed to create and edit message maps and dialog data + maps and to create prototype member functions. + + +///////////////////////////////////////////////////////////////////////////// + +AppWizard creates one dialog class: + +demoDlg.h, demoDlg.cpp - the dialog + These files contain your CDemoDlg class. This class defines + the behavior of your application's main dialog. The dialog's + template is in demo.rc, which can be edited in Microsoft + Developer Studio. + + +///////////////////////////////////////////////////////////////////////////// +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named demo.pch and a precompiled types file named StdAfx.obj. + +Resource.h + This is the standard header file, which defines new resource IDs. + Microsoft Developer Studio reads and updates this file. + +///////////////////////////////////////////////////////////////////////////// +Other notes: + +AppWizard uses "TODO:" to indicate parts of the source code you +should add to or customize. + +If your application uses MFC in a shared DLL, and your application is +in a language other than the operating system's current language, you +will need to copy the corresponding localized resources MFC40XXX.DLL +from the Microsoft Visual C++ CD-ROM onto the system or system32 directory, +and rename it to be MFCLOC.DLL. ("XXX" stands for the language abbreviation. +For example, MFC40DEU.DLL contains resources translated to German.) If you +don't do this, some of the UI elements of your application will remain in the +language of the operating system. + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/StdAfx.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/StdAfx.cpp new file mode 100644 index 0000000..c0fbf67 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/StdAfx.cpp @@ -0,0 +1,6 @@ +// stdafx.cpp : source file that includes just the standard includes +// demo.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/StdAfx.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/StdAfx.h new file mode 100644 index 0000000..a827e74 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/StdAfx.h @@ -0,0 +1,32 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#if !defined(AFX_STDAFX_H__922E95E9_B158_11D1_A9C2_7AAF7E000000__INCLUDED_) +#define AFX_STDAFX_H__922E95E9_B158_11D1_A9C2_7AAF7E000000__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers + +#include // MFC core and standard components +#include // MFC extensions + +#include + +#include + +#define UG_DAO_REPORTERROR + +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for Windows Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_STDAFX_H__922E95E9_B158_11D1_A9C2_7AAF7E000000__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/customer.mdb b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/customer.mdb new file mode 100644 index 0000000000000000000000000000000000000000..70e779c7f583831028f809866a8d51b6ba33a9df GIT binary patch literal 75776 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 literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.clw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.clw new file mode 100644 index 0000000..ccb2784 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.clw @@ -0,0 +1,105 @@ +; CLW file contains information for the MFC ClassWizard + +[General Info] +Version=1 +LastClass=CDemoApp +LastTemplate=CDialog +NewFileInclude1=#include "stdafx.h" +NewFileInclude2=#include "demo.h" + +ClassCount=3 +Class1=CDemoApp +Class2=CDemoDlg +Class3=CAboutDlg + +ResourceCount=3 +Resource1=IDD_DEMO_DIALOG (English (U.S.)) +Resource2=IDR_MAINFRAME +Resource3=IDD_DEMO_DIALOG + +[CLS:CDemoApp] +Type=0 +HeaderFile=demo.h +ImplementationFile=demo.cpp +Filter=N +BaseClass=CWinApp +VirtualFilter=AC +LastObject=CDemoApp + +[CLS:CDemoDlg] +Type=0 +HeaderFile=demoDlg.h +ImplementationFile=demoDlg.cpp +Filter=D +BaseClass=CDialog +VirtualFilter=dWC +LastObject=IDC_CHECK_OLDCUSTOMER + +[CLS:CAboutDlg] +Type=0 +HeaderFile=demoDlg.h +ImplementationFile=demoDlg.cpp +Filter=D + +[DLG:IDD_DEMO_DIALOG] +Type=1 +Class=CDemoDlg +ControlCount=26 +Control1=IDC_CUSTNUM,edit,1350568064 +Control2=IDC_DATE,edit,1350568064 +Control3=IDC_LASTNAME,edit,1350631552 +Control4=IDC_FIRSTNAME,edit,1350631552 +Control5=IDC_COMPANY,edit,1350631552 +Control6=IDC_PHONE,edit,1350631552 +Control7=IDC_EMAIL,edit,1350631552 +Control8=IDC_BALANCE,edit,1350631552 +Control9=IDC_FIRST,button,1342242816 +Control10=IDC_PREV,button,1342242816 +Control11=IDC_NEXT,button,1342242816 +Control12=IDC_LAST,button,1342242816 +Control13=IDC_ADD,button,1342242816 +Control14=IDC_DELETE,button,1342242816 +Control15=IDC_SAVE,button,1342242816 +Control16=IDOK,button,1342242816 +Control17=IDC_STATIC,static,1342308352 +Control18=IDC_STATIC,static,1342308352 +Control19=IDC_STATIC,static,1342308352 +Control20=IDC_STATIC,static,1342308352 +Control21=IDC_STATIC,static,1342308352 +Control22=IDC_STATIC,static,1342308352 +Control23=IDC_STATIC,static,1342308352 +Control24=IDC_STATIC,static,1342308352 +Control25=IDC_STATIC,button,1342177287 +Control26=IDC_CHECK_OLDCUSTOMER,button,1342242819 + +[DLG:IDD_DEMO_DIALOG (English (U.S.))] +Type=1 +Class=CDemoDlg +ControlCount=26 +Control1=IDC_CUSTNUM,edit,1350568064 +Control2=IDC_DATE,edit,1350568064 +Control3=IDC_LASTNAME,edit,1350631552 +Control4=IDC_FIRSTNAME,edit,1350631552 +Control5=IDC_COMPANY,edit,1350631552 +Control6=IDC_PHONE,edit,1350631552 +Control7=IDC_EMAIL,edit,1350631552 +Control8=IDC_BALANCE,edit,1350631552 +Control9=IDC_FIRST,button,1342242816 +Control10=IDC_PREV,button,1342242816 +Control11=IDC_NEXT,button,1342242816 +Control12=IDC_LAST,button,1342242816 +Control13=IDC_ADD,button,1342242816 +Control14=IDC_DELETE,button,1342242816 +Control15=IDC_SAVE,button,1342242816 +Control16=IDOK,button,1342242816 +Control17=IDC_STATIC,static,1342308352 +Control18=IDC_STATIC,static,1342308352 +Control19=IDC_STATIC,static,1342308352 +Control20=IDC_STATIC,static,1342308352 +Control21=IDC_STATIC,static,1342308352 +Control22=IDC_STATIC,static,1342308352 +Control23=IDC_STATIC,static,1342308352 +Control24=IDC_STATIC,static,1342308352 +Control25=IDC_STATIC,button,1342177287 +Control26=IDC_CHECK_OLDCUSTOMER,button,1342242819 + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.cpp new file mode 100644 index 0000000..73041a5 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.cpp @@ -0,0 +1,101 @@ +// demo.cpp : Defines the class behaviors for the application. +// + +#include "stdafx.h" +#include "demo.h" +#include "demoDlg.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CDemoApp + +BEGIN_MESSAGE_MAP(CDemoApp, CWinApp) + //{{AFX_MSG_MAP(CDemoApp) + // 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() + +///////////////////////////////////////////////////////////////////////////// +// CDemoApp construction + +CDemoApp::CDemoApp() +{ + // TODO: add construction code here, + // Place all significant initialization in InitInstance +} + +///////////////////////////////////////////////////////////////////////////// +// The one and only CDemoApp object + +CDemoApp theApp; +static HINSTANCE g_hRichEdDLL=NULL; + +///////////////////////////////////////////////////////////////////////////// +// CDemoApp initialization + +BOOL CDemoApp::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. + + // Initialize RichEdit control + // for About Dialog + if(g_hRichEdDLL==NULL) + { + g_hRichEdDLL=::LoadLibrary(_T("RICHED32.DLL")); + if(g_hRichEdDLL==NULL) + TRACE(_T("Cannot load library to display RichEditTextControl")); + } + +#if _MSC_VER < 1400 +#ifdef _AFXDLL + Enable3dControls(); // Call this when using MFC in a shared DLL +#else + Enable3dControlsStatic(); // Call this when linking to MFC statically +#endif +#endif + + + CDemoDlg dlg; + m_pMainWnd = &dlg; + + switch(dlg.DoModal()) + { + case IDOK: + { + // TODO: Place code here to handle when the dialog is + // dismissed with OK + } + break; + case IDCANCEL: + { + // TODO: Place code here to handle when the dialog is + // dismissed with Cancel + } + break; + } + + // Since the dialog has been closed, return FALSE so that we exit the + // application, rather than start the application's message pump. + return FALSE; +} + +int CDemoApp::ExitInstance() +{ + // TODO: Add your specialized code here and/or call the base class + + // unload the library + if(g_hRichEdDLL!=NULL) + ::FreeLibrary(g_hRichEdDLL); + + return CWinApp::ExitInstance(); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.dsp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.dsp new file mode 100644 index 0000000..c92ba1c --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.dsp @@ -0,0 +1,257 @@ +# Microsoft Developer Studio Project File - Name="demo" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=demo - Win32 Unicode_Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "demo.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "demo.mak" CFG="demo - Win32 Unicode_Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "demo - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "demo - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE "demo - Win32 Release_Shared" (based on "Win32 (x86) Application") +!MESSAGE "demo - Win32 Unicode_Debug" (based on "Win32 (x86) Application") +!MESSAGE "demo - Win32 Unicode_Release" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "demo - Win32 Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"demo.exe" + +!ELSEIF "$(CFG)" == "demo - Win32 Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /FR /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"demo.exe" /pdbtype:sept + +!ELSEIF "$(CFG)" == "demo - Win32 Release_Shared" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "demo___W" +# PROP BASE Intermediate_Dir "demo___W" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release_Shared" +# PROP Intermediate_Dir "Release_Shared" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /out:"demo.exe" +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"demo.exe" + +!ELSEIF "$(CFG)" == "demo - Win32 Unicode_Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "demo___0" +# PROP BASE Intermediate_Dir "demo___0" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Unicode_Debug" +# PROP Intermediate_Dir "Unicode_Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W4 /Gm /GX /Zi /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"demo.exe" /pdbtype:sept +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /debug /machine:I386 /out:"demo.exe" /pdbtype:sept + +!ELSEIF "$(CFG)" == "demo - Win32 Unicode_Release" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "demo___1" +# PROP BASE Intermediate_Dir "demo___1" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Unicode_Release" +# PROP Intermediate_Dir "Unicode_Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /out:"demo.exe" +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /machine:I386 /out:"demo.exe" + +!ENDIF + +# Begin Target + +# Name "demo - Win32 Release" +# Name "demo - Win32 Debug" +# Name "demo - Win32 Release_Shared" +# Name "demo - Win32 Unicode_Debug" +# Name "demo - Win32 Unicode_Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Group "UTSource" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\source\UTSampleAbout\HtmlCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXDao.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\UTBStrOp.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\UTSampleAbout\UTSampleAbout.cpp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\demo.cpp +# End Source File +# Begin Source File + +SOURCE=.\demo.rc +# End Source File +# Begin Source File + +SOURCE=.\demoDlg.cpp +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\demo.h +# End Source File +# Begin Source File + +SOURCE=.\demoDlg.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXDao.h +# End Source File +# Begin Source File + +SOURCE=.\Resource.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\res\demo.ico +# End Source File +# Begin Source File + +SOURCE=.\res\demo.rc2 +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ReadMe.txt +# End Source File +# End Target +# End Project diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.dsw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.dsw new file mode 100644 index 0000000..cfd87de --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "demo"=".\demo.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.exe.manifest b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.exe.manifest new file mode 100644 index 0000000..275675d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.exe.manifest @@ -0,0 +1,22 @@ + + + +Your app description here + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.h new file mode 100644 index 0000000..412645a --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.h @@ -0,0 +1,50 @@ +// demo.h : main header file for the DEMO application +// + +#if !defined(AFX_DEMO_H__922E95E5_B158_11D1_A9C2_7AAF7E000000__INCLUDED_) +#define AFX_DEMO_H__922E95E5_B158_11D1_A9C2_7AAF7E000000__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols + +///////////////////////////////////////////////////////////////////////////// +// CDemoApp: +// See demo.cpp for the implementation of this class +// + +class CDemoApp : public CWinApp +{ +public: + CDemoApp(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CDemoApp) + public: + virtual BOOL InitInstance(); + virtual int ExitInstance(); + //}}AFX_VIRTUAL + +// Implementation + + //{{AFX_MSG(CDemoApp) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_DEMO_H__922E95E5_B158_11D1_A9C2_7AAF7E000000__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.rc b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.rc new file mode 100644 index 0000000..db85b8f --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.rc @@ -0,0 +1,220 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""UTSampleAbout.rc""\r\n" + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif\r\n" + "#include ""res\\demo.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "#include ""OXDao.rc""\r\n" + "#endif\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON DISCARDABLE "res\\demo.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_DEMO_DIALOG DIALOGEX 0, 0, 339, 113 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +EXSTYLE WS_EX_APPWINDOW +CAPTION "DAO Demo" +FONT 8, "MS Sans Serif", 0, 0, 0x1 +BEGIN + EDITTEXT IDC_CUSTNUM,67,2,40,14,ES_AUTOHSCROLL | ES_READONLY | + NOT WS_TABSTOP + EDITTEXT IDC_DATE,177,2,69,14,ES_AUTOHSCROLL | ES_READONLY | NOT + WS_TABSTOP + EDITTEXT IDC_LASTNAME,3,33,80,14,ES_AUTOHSCROLL + EDITTEXT IDC_FIRSTNAME,89,33,80,14,ES_AUTOHSCROLL + EDITTEXT IDC_COMPANY,175,33,80,14,ES_AUTOHSCROLL + EDITTEXT IDC_PHONE,262,33,70,14,ES_AUTOHSCROLL + EDITTEXT IDC_EMAIL,3,62,80,14,ES_AUTOHSCROLL + EDITTEXT IDC_BALANCE,137,62,60,14,ES_AUTOHSCROLL + PUSHBUTTON "<<",IDC_FIRST,7,92,20,14 + PUSHBUTTON "<",IDC_PREV,29,92,20,14 + PUSHBUTTON ">",IDC_NEXT,52,92,20,14 + PUSHBUTTON ">>",IDC_LAST,74,92,20,14 + PUSHBUTTON "&Add",IDC_ADD,131,92,35,14 + PUSHBUTTON "&Delete",IDC_DELETE,169,92,35,14 + PUSHBUTTON "&Save",IDC_SAVE,207,92,35,14 + PUSHBUTTON "&Finished",IDOK,289,92,40,14 + LTEXT "First Name",IDC_STATIC,89,24,34,8 + LTEXT "EMail",IDC_STATIC,3,53,18,8 + LTEXT "Phone",IDC_STATIC,262,24,22,8 + LTEXT "Last Name",IDC_STATIC,3,24,35,8 + LTEXT "Customer Number",IDC_STATIC,4,4,57,8 + LTEXT "Company",IDC_STATIC,175,24,30,8 + LTEXT "Date Entered",IDC_STATIC,130,4,43,8 + LTEXT "Balance",IDC_STATIC,137,53,27,8 + GROUPBOX "",IDC_STATIC,2,84,335,25 + CONTROL "Old Customer",IDC_CHECK_OLDCUSTOMER,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,267,66,58,10 +END + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "demo MFC Application\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "demo\0" + VALUE "LegalCopyright", "Copyright (C) 1998\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "demo.EXE\0" + VALUE "ProductName", "demo Application\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_DEMO_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 332 + TOPMARGIN, 7 + BOTTOMMARGIN, 106 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_ABOUTBOX "&About demo..." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDR_MAINFRAME "COXDao Demo" + ID_DESCRIPTION_FILE "DaoDemoInfo.rtf" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#include "UTSampleAbout.rc" +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif +#include "res\demo.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +#include "OXDao.rc" +#endif +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.vcproj b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.vcproj new file mode 100644 index 0000000..cabfe41 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demo.vcproj @@ -0,0 +1,876 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demoDlg.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demoDlg.cpp new file mode 100644 index 0000000..df51cf6 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demoDlg.cpp @@ -0,0 +1,405 @@ +// demoDlg.cpp : implementation file +// + +#include "stdafx.h" +#include "demo.h" +#include "demoDlg.h" + +#include "UTSampleAbout.h" + + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CDemoDlg dialog + +CDemoDlg::CDemoDlg(CWnd* pParent /*=NULL*/) + : CDialog(CDemoDlg::IDD, pParent) +{ + //{{AFX_DATA_INIT(CDemoDlg) + m_sBalance = _T(""); + m_sCompany = _T(""); + m_sCustnum = _T(""); + m_sDate = _T(""); + m_sEmail = _T(""); + m_sFirstName = _T(""); + m_sLastName = _T(""); + m_sPhone = _T(""); + m_bOldCustomer = FALSE; + //}}AFX_DATA_INIT + // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 + m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); + + m_add = FALSE; + m_isDirty = FALSE; + +} + +void CDemoDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CDemoDlg) + DDX_Control(pDX, IDC_PHONE, m_ctlEditPhone); + DDX_Control(pDX, IDC_LASTNAME, m_ctlEditLastName); + DDX_Control(pDX, IDC_FIRSTNAME, m_ctlEditFirstName); + DDX_Control(pDX, IDC_EMAIL, m_ctlEditEmail); + DDX_Control(pDX, IDC_DATE, m_ctlEditDate); + DDX_Control(pDX, IDC_CUSTNUM, m_ctlEditCustnum); + DDX_Control(pDX, IDC_COMPANY, m_ctlEditCompany); + DDX_Control(pDX, IDC_BALANCE, m_ctlEditBalance); + DDX_Text(pDX, IDC_BALANCE, m_sBalance); + DDX_Text(pDX, IDC_COMPANY, m_sCompany); + DDX_Text(pDX, IDC_CUSTNUM, m_sCustnum); + DDX_Text(pDX, IDC_DATE, m_sDate); + DDX_Text(pDX, IDC_EMAIL, m_sEmail); + DDX_Text(pDX, IDC_FIRSTNAME, m_sFirstName); + DDX_Text(pDX, IDC_LASTNAME, m_sLastName); + DDX_Text(pDX, IDC_PHONE, m_sPhone); + DDX_Check(pDX, IDC_CHECK_OLDCUSTOMER, m_bOldCustomer); + //}}AFX_DATA_MAP +} + +BEGIN_MESSAGE_MAP(CDemoDlg, CDialog) + //{{AFX_MSG_MAP(CDemoDlg) + ON_WM_SYSCOMMAND() + ON_WM_PAINT() + ON_WM_QUERYDRAGICON() + ON_BN_CLICKED(IDC_ADD, OnAdd) + ON_BN_CLICKED(IDC_DELETE, OnDelete) + ON_BN_CLICKED(IDC_FIRST, OnFirst) + ON_BN_CLICKED(IDC_NEXT, OnNext) + ON_BN_CLICKED(IDC_PREV, OnPrev) + ON_BN_CLICKED(IDC_LAST, OnLast) + ON_BN_CLICKED(IDC_SAVE, OnSave) + ON_CONTROL_RANGE(EN_CHANGE,IDC_LASTNAME,IDC_BALANCE, OnChange) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CDemoDlg message handlers + +BOOL CDemoDlg::OnInitDialog() +{ + CDialog::OnInitDialog(); + + // Add "About..." menu item to system menu. + + // IDM_ABOUTBOX must be in the system command range. + ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); + ASSERT(IDM_ABOUTBOX < 0xF000); + + CMenu* pSysMenu = GetSystemMenu(FALSE); + if (pSysMenu != NULL) + { + CString strAboutMenu; + strAboutMenu.LoadString(IDS_ABOUTBOX); + if (!strAboutMenu.IsEmpty()) + { + pSysMenu->AppendMenu(MF_SEPARATOR); + pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); + } + } + + // Set the icon for this dialog. The framework does this automatically + // when the application's main window is not a dialog + SetIcon(m_hIcon, TRUE); // Set big icon + SetIcon(m_hIcon, FALSE); // Set small icon + + // TODO: Add extra initialization here + CString string = GetAppDir(); + string += "\\customer.mdb"; + + if(m_dao.Open(string,_T("info")) != TRUE){ + MessageBox(_T("Database Failed To Open, make sure that the database is in the program directory"), + _T("Error"),MB_OK); + EndDialog(0); + } + else{ + LoadRecord(); + } + + return TRUE; // return TRUE unless you set the focus to a control +} + +void CDemoDlg::OnSysCommand(UINT nID, LPARAM lParam) +{ + if ((nID & 0xFFF0) == IDM_ABOUTBOX) + { + CUTSampleAboutDlg dlgAbout(IDR_MAINFRAME,ID_DESCRIPTION_FILE); + dlgAbout.DoModal(); + } + else + { + CDialog::OnSysCommand(nID, lParam); + } +} + +// If you add a minimize button to your dialog, you will need the code below +// to draw the icon. For MFC applications using the document/view model, +// this is automatically done for you by the framework. + +void CDemoDlg::OnPaint() +{ + if (IsIconic()) + { + CPaintDC dc(this); // device context for painting + + SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); + + // Center icon in client rectangle + int cxIcon = GetSystemMetrics(SM_CXICON); + int cyIcon = GetSystemMetrics(SM_CYICON); + CRect rect; + GetClientRect(&rect); + int x = (rect.Width() - cxIcon + 1) / 2; + int y = (rect.Height() - cyIcon + 1) / 2; + + // Draw the icon + dc.DrawIcon(x, y, m_hIcon); + } + else + { + CDialog::OnPaint(); + } +} + +// The system calls this to obtain the cursor to display while the user drags +// the minimized window. +HCURSOR CDemoDlg::OnQueryDragIcon() +{ + return (HCURSOR) m_hIcon; +} + +void CDemoDlg::OnAdd() +{ + // TODO: Add your control notification handler code here + ClearDialog(); + + m_dao.Add(); + m_add = TRUE; +} + +void CDemoDlg::OnDelete() +{ + // TODO: Add your control notification handler code here + m_dao.Delete(); + LoadRecord(); +} + +void CDemoDlg::OnFirst() +{ + // TODO: Add your control notification handler code here + m_dao.MoveFirst(); + LoadRecord(); +} + +void CDemoDlg::OnPrev() +{ + // TODO: Add your control notification handler code here + if(m_dao.IsBOF() == TRUE) + return; + + m_dao.MovePrev(); + LoadRecord(); +} + +void CDemoDlg::OnNext() +{ + // TODO: Add your control notification handler code here + if(m_dao.IsEOF() == TRUE) + return; + + m_dao.MoveNext(); + LoadRecord(); +} + +void CDemoDlg::OnLast() +{ + // TODO: Add your control notification handler code here + m_dao.MoveLast(); + LoadRecord(); +} + +void CDemoDlg::ClearDialog() +{ + m_sCustnum.Empty(); + m_sDate.Empty(); + m_sLastName.Empty(); + m_sFirstName.Empty(); + m_sCompany.Empty(); + m_sPhone.Empty(); + m_sEmail.Empty(); + m_sBalance.Empty(); + + UpdateData(FALSE); +} + +void CDemoDlg::SaveRecord() +{ + + CString string; + COleDateTime dt; + COleCurrency cy; + + VERIFY(UpdateData()); + + if(m_add) + m_dao.Add(); + else + m_dao.Edit(); + + GetDlgItemText(IDC_LASTNAME,string); + m_dao.SetField(m_dao.GFN(_T("LastName")),(LPCTSTR)string); + + GetDlgItemText(IDC_FIRSTNAME,string); + m_dao.SetField(m_dao.GFN(_T("FirstName")),(LPCTSTR)string); + + GetDlgItemText(IDC_COMPANY,string); + m_dao.SetField(m_dao.GFN(_T("Company")),(LPCTSTR)string); + + GetDlgItemText(IDC_PHONE,string); + m_dao.SetField(m_dao.GFN(_T("Phone")),(LPCTSTR)string); + + GetDlgItemText(IDC_EMAIL,string); + m_dao.SetField(m_dao.GFN(_T("EMail")),(LPCTSTR)string); + + GetDlgItemText(IDC_BALANCE,string); + cy.ParseCurrency(string); + m_dao.SetField(m_dao.GFN(_T("Balance")),cy); + + m_dao.SetField(m_dao.GFN(_T("Old customer")),m_bOldCustomer); + + //get the current date + if(m_add){ + dt = COleDateTime::GetCurrentTime(); + m_dao.SetField(m_dao.GFN(_T("Date")),dt); + } + + m_dao.Update(); + + m_add = FALSE; + m_isDirty = FALSE; +} + +void CDemoDlg::LoadRecord() +{ + //check to see if editing or adding was in progress + if(m_isDirty){ + if(MessageBox(_T("Do you want to save your changes?"), + _T("Save Changes"),MB_YESNO) == IDYES) + SaveRecord(); + } + + CString string; + COleDateTime dt; + COleCurrency cy; + + if(m_dao.IsEOF() || m_dao.IsBOF()){ + ClearDialog(); + return; + } + + + m_dao.GetField(m_dao.GFN(_T("CustNum")),m_sCustnum); + +// m_dao.GetField(m_dao.GFN(_T("Date")),dt); +// m_sDate=dt.Format(); + if(!m_dao.GetField(m_dao.GFN(_T("Date")),dt)/* && dt.m_status==COleDateTime::null*/) + { + m_sDate=_T(""); + } + else + m_sDate=dt.Format(); + + m_dao.GetField(m_dao.GFN(_T("LastName")),m_sLastName); + + m_dao.GetField(m_dao.GFN(_T("FirstName")),m_sFirstName); + + m_dao.GetField(m_dao.GFN(_T("Company")),m_sCompany); + + m_dao.GetField(m_dao.GFN(_T("Phone")),m_sPhone); + + m_dao.GetField(m_dao.GFN(_T("EMail")),m_sEmail); + + m_dao.GetField(m_dao.GFN(_T("Balance")),cy); + m_sBalance=cy.Format(); + + m_dao.GetField(m_dao.GFN(_T("Old customer")),m_bOldCustomer); + + UpdateData(FALSE); + + m_isDirty = FALSE; +} + +CString CDemoDlg::GetAppDir(){ + + + LPTSTR clStr = GetCommandLine(); + LPTSTR buf; + CString string; + int loop; + + //create the temp buffer + buf = new TCHAR[ lstrlen(clStr) + 1 ]; + + //copy the command line and check to see if the first character is a quote + if(clStr[0] == '\"') + lstrcpy(buf,&clStr[1]); + else + lstrcpy(buf,clStr); + + + //check to see if the command line is empty + loop = 0; + if(lstrlen(buf) > 0){ + + loop = lstrlen(buf); + while(loop > 0){ + if(buf[loop]== _T('.')){ + break; + } + loop --; + } + while(loop > 0){ + if(buf[loop]== _T('\\')){ + buf[loop] = 0; + break; + } + loop --; + } + } + + if(loop == 0){ + + delete[] buf; + + //create the temp buffer + buf = new TCHAR[MAX_PATH + 1]; + + _tgetcwd(buf,255); + } + + string = buf; + + delete[] buf; + + return string; +} + + +void CDemoDlg::OnSave() +{ + // TODO: Add your control notification handler code here + SaveRecord(); +} + +void CDemoDlg::OnChange(UINT nParam) +{ + UNREFERENCED_PARAMETER(nParam); + // TODO: Add your control notification handler code here + m_isDirty = TRUE; +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demoDlg.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demoDlg.h new file mode 100644 index 0000000..f6e7236 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/demoDlg.h @@ -0,0 +1,88 @@ +// demoDlg.h : header file +// + +#if !defined(AFX_DEMODLG_H__922E95E7_B158_11D1_A9C2_7AAF7E000000__INCLUDED_) +#define AFX_DEMODLG_H__922E95E7_B158_11D1_A9C2_7AAF7E000000__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "OXDao.h" + + +///////////////////////////////////////////////////////////////////////////// +// CDemoDlg dialog + +class CDemoDlg : public CDialog +{ +// Construction +public: + CDemoDlg(CWnd* pParent = NULL); // standard constructor + + // Dialog Data + + COXDao m_dao; + BOOL m_add; + BOOL m_isDirty; + + //{{AFX_DATA(CDemoDlg) + enum { IDD = IDD_DEMO_DIALOG }; + CEdit m_ctlEditPhone; + CEdit m_ctlEditLastName; + CEdit m_ctlEditFirstName; + CEdit m_ctlEditEmail; + CEdit m_ctlEditDate; + CEdit m_ctlEditCustnum; + CEdit m_ctlEditCompany; + CEdit m_ctlEditBalance; + CString m_sBalance; + CString m_sCompany; + CString m_sCustnum; + CString m_sDate; + CString m_sEmail; + CString m_sFirstName; + CString m_sLastName; + CString m_sPhone; + BOOL m_bOldCustomer; + //}}AFX_DATA + + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CDemoDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation + + void LoadRecord(); + void SaveRecord(); + void ClearDialog(); + + CString GetAppDir(); + +protected: + HICON m_hIcon; + + // Generated message map functions + //{{AFX_MSG(CDemoDlg) + virtual BOOL OnInitDialog(); + afx_msg void OnSysCommand(UINT nID, LPARAM lParam); + afx_msg void OnPaint(); + afx_msg HCURSOR OnQueryDragIcon(); + afx_msg void OnAdd(); + afx_msg void OnDelete(); + afx_msg void OnFirst(); + afx_msg void OnNext(); + afx_msg void OnPrev(); + afx_msg void OnLast(); + afx_msg void OnSave(); + afx_msg void OnChange(UINT nParam); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_DEMODLG_H__922E95E7_B158_11D1_A9C2_7AAF7E000000__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/res/demo.ico b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/res/demo.ico new file mode 100644 index 0000000000000000000000000000000000000000..7eef0bcbe6580a6f464d688906172c2d9de44262 GIT binary patch literal 1078 zcmc&zF>b>!3}jLb9s)T}@Kod(893@u8ajANzT`op9^o+)S?=nU(FD@%0s)Sg^oyC8{H z9myetc;MEP)59v(LMa~xK8Yu^jIR*H22uCFiq5%C{s7(PJi>o15i^bmX4(vPxWAio z9ryY#AU_jfnd047-@`)XzL?%iS$gQyFP{44kS9X)fN{{QoL~hO-&=q&20Zr*cxFAt PkaNE{wR~2C$NfnjhSXWT literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/res/demo.rc2 b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/res/demo.rc2 new file mode 100644 index 0000000..aaefa40 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/res/demo.rc2 @@ -0,0 +1,13 @@ +// +// DEMO.RC2 - resources Microsoft Visual C++ does not edit directly +// + +#ifdef APSTUDIO_INVOKED + #error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// Add manually edited resources here... + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/resource.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/resource.h new file mode 100644 index 0000000..edbaf2c --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/DAOclass/resource.h @@ -0,0 +1,38 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by demo.rc +// +#define IDM_ABOUTBOX 0x0010 +#define IDD_ABOUTBOX 100 +#define IDS_ABOUTBOX 101 +#define IDD_DEMO_DIALOG 102 +#define IDR_MAINFRAME 128 +#define ID_DESCRIPTION_FILE 129 +#define IDC_LAST 1000 +#define IDC_NEXT 1001 +#define IDC_EDIT 1002 +#define IDC_PREV 1003 +#define IDC_FIRST 1004 +#define IDC_ADD 1005 +#define IDC_CUSTNUM 1006 +#define IDC_DATE 1007 +#define IDC_LASTNAME 1008 +#define IDC_FIRSTNAME 1009 +#define IDC_EMAIL 1010 +#define IDC_COMPANY 1011 +#define IDC_PHONE 1012 +#define IDC_BALANCE 1013 +#define IDC_DELETE 1014 +#define IDC_SAVE 1015 +#define IDC_CHECK_OLDCUSTOMER 1016 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 129 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 1017 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvFileInfo.rtf b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvFileInfo.rtf new file mode 100644 index 0000000000000000000000000000000000000000..4c54b55935f690e20ed68f2f4cf90659364a1190 GIT binary patch literal 5709 zcmds5U2oeq6y5WH{fCRbG$~rwar&{WPhI-40BJMCLAwEZp(V=ZK#3Yj#dU-Bx9?nv zQY_iY(k=zIAwVohB=0@vp8FwPB-ZD9i71^4|I%u{H+eisGMVRN{_n-?>12G7G_k_2YYGu`Y;VHQ*4(LT)W&#A7+%JWdbnLSc?HwFEr3d_TaG#!QO{cuU z(W!LOp37{@*^@`xEKVL>=_EFg{NQDoIr0lhZ(bczss)0&?s9X$)Mv^JQSt$^6^SfU z<(%@mOuaJDLT)To)}+!oe!ypIRU+CZCqakZSp?YDEFGy5_fu08f-zyrJ|&nB$2Xru%gOLR-izZUav;< zej!V;QUpZoc;f{G9bkmh-2KaIDn%hlIjZ?EZ{WX|wg6gME)-k|JIF9VHjfpJ=@FeR zuuW*q1PJD9ZbeZ@%WEQgmv+FBwQ>#>YWU4?;GD8Rm|@3K`2{#+e}^nGfumL!Q8g#< z&ekB71BFcvS6BucECk`hK@C(|h;zvvfis2*Y5rciBYB^x{m&KnLC?{;2RZeV3= zHX`p%qmbB2XQJIZ5O6$WZ#VhOe{@tjFG{Zfe@i}YtvWFuT_sbMuh`j2_ytFgA@uEW zRfw4T4~Utsj4Hu>kgI0?R-4-m(gp;*Iy!zyX7-0n{qP{9H^L?$YfcIdD*Mr_y}MCm zxSrM;0tRqfr{37Dw6d?I6|gv@S!!txQc^oV^Xag3_SVmco#MRMgt53VDToiCw!47ve4^|FOq<`@9oI}~V&6Hf?%ZOZ*I`_T17C60s9w% z1f73}@ep=~y4=}ijW~Y;v_}JNWk$O4uIK%%u?8G>fHi0#=uAXgI%7Wa;sOn~(kexR zgW$df^SM#k6`-g8D6so&KCMR>5y}mKaB+r|=O`xo?MWPz0J)o0sHjj1t`YIoCT*qWHt~ z0G*%+dX?51<6x6I5h?Qs>GT~5lO-x4yV+!F|2aXxt@&XmdTYGo@dO>QzvJ;p;E_^x z+WFT_0pF}yoN=)W&Avwdrl=fO6m8Dp<{bqwsTM1zc=3uF;<#-rkbu&LcR(!RJN#bo zg_FQFKsh7jFO89b@^4n~<9iiqOhB9&9snBk8Nf?*on4|>@B7!$5-N0fO{%O!cWCCM zHbX<5Vv1PRT;Xnyj-zfG{Tec2(HhJO9JJWh`tw3F`6zV9*cdBQp$Q^ocuR*i^cIFW zqTi9(JXLUG49$~ev(Y@`zJ34z literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.clw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.clw new file mode 100644 index 0000000..bb87e77 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.clw @@ -0,0 +1,50 @@ +; CLW file contains information for the MFC ClassWizard + +[General Info] +Version=1 +LastClass=CCsvTestDlg +LastTemplate=CDialog +NewFileInclude1=#include "stdafx.h" +NewFileInclude2=#include "CsvTest.h" + +ClassCount=2 +Class1=CCsvTestApp +Class2=CCsvTestDlg + +ResourceCount=2 +Resource1=IDR_MAINFRAME +Resource2=IDD_CSVTEST_DIALOG + +[CLS:CCsvTestApp] +Type=0 +HeaderFile=CsvTest.h +ImplementationFile=CsvTest.cpp +Filter=N +BaseClass=CWinApp +VirtualFilter=AC +LastObject=CCsvTestApp + +[CLS:CCsvTestDlg] +Type=0 +HeaderFile=CsvTestDlg.h +ImplementationFile=CsvTestDlg.cpp +Filter=D +BaseClass=CDialog +VirtualFilter=dWC +LastObject=IDC_ABOUT + +[DLG:IDD_CSVTEST_DIALOG] +Type=1 +Class=CCsvTestDlg +ControlCount=10 +Control1=IDOK,button,1342242817 +Control2=IDC_SAVE,button,1342242816 +Control3=IDC_USE_HEADERS,button,1342373891 +Control4=IDC_ABOUT,button,1342242816 +Control5=IDCANCEL,button,1342242816 +Control6=IDC_DATA,edit,1353779204 +Control7=IDC_STATIC,button,1342177287 +Control8=IDC_STATIC,button,1342177287 +Control9=IDC_STATIC,static,1342308352 +Control10=IDC_STATIC,static,1342308352 + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.cpp new file mode 100644 index 0000000..fe6af4b --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.cpp @@ -0,0 +1,100 @@ +// CsvTest.cpp : Defines the class behaviors for the application. +// + +#include "stdafx.h" +#include "CsvTest.h" +#include "CsvTestDlg.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CCsvTestApp + +BEGIN_MESSAGE_MAP(CCsvTestApp, CWinApp) + //{{AFX_MSG_MAP(CCsvTestApp) + // 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() + +///////////////////////////////////////////////////////////////////////////// +// CCsvTestApp construction + +CCsvTestApp::CCsvTestApp() +{ + // TODO: add construction code here, + // Place all significant initialization in InitInstance +} + +///////////////////////////////////////////////////////////////////////////// +// The one and only CCsvTestApp object + +CCsvTestApp theApp; +static HINSTANCE g_hRichEdDLL=NULL; + +///////////////////////////////////////////////////////////////////////////// +// CCsvTestApp initialization + +BOOL CCsvTestApp::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. + +#if _MSC_VER < 1400 +#ifdef _AFXDLL + Enable3dControls(); // Call this when using MFC in a shared DLL +#else + Enable3dControlsStatic(); // Call this when linking to MFC statically +#endif +#endif + + // Initialize RichEdit control + // for About Dialog + if(g_hRichEdDLL==NULL) + { + g_hRichEdDLL=::LoadLibrary(_T("RICHED32.DLL")); + if(g_hRichEdDLL==NULL) + TRACE(_T("Cannot load library to display RichEditTextControl")); + } + + CCsvTestDlg dlg; + m_pMainWnd = &dlg; + + switch(dlg.DoModal()) + { + case IDOK: + { + // TODO: Place code here to handle when the dialog is + // dismissed with OK + } + break; + case IDCANCEL: + { + // TODO: Place code here to handle when the dialog is + // dismissed with Cancel + } + break; + } + + // Since the dialog has been closed, return FALSE so that we exit the + // application, rather than start the application's message pump. + return FALSE; +} + +int CCsvTestApp::ExitInstance() +{ + // TODO: Add your specialized code here and/or call the base class + + // unload the library + if(g_hRichEdDLL!=NULL) + ::FreeLibrary(g_hRichEdDLL); + + return CWinApp::ExitInstance(); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.dsp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.dsp new file mode 100644 index 0000000..2ab72ba --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.dsp @@ -0,0 +1,258 @@ +# Microsoft Developer Studio Project File - Name="CsvTest" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=CsvTest - Win32 Unicode_Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "CsvTest.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "CsvTest.mak" CFG="CsvTest - Win32 Unicode_Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "CsvTest - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "CsvTest - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE "CsvTest - Win32 Release_Shared" (based on "Win32 (x86) Application") +!MESSAGE "CsvTest - Win32 Unicode_Debug" (based on "Win32 (x86) Application") +!MESSAGE "CsvTest - Win32 Unicode_Release" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "CsvTest - Win32 Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "OXTRACEON" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"CsvTest.exe" + +!ELSEIF "$(CFG)" == "CsvTest - Win32 Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /D "OXTRACEON" /Yu"stdafx.h" /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"CsvTest.exe" /pdbtype:sept + +!ELSEIF "$(CFG)" == "CsvTest - Win32 Release_Shared" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "CsvTest___Win32_Release_Shared" +# PROP BASE Intermediate_Dir "CsvTest___Win32_Release_Shared" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release_Shared" +# PROP Intermediate_Dir "Release_Shared" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /D "OXTRACEON" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /D "OXTRACEON" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"CsvTest.exe" + +!ELSEIF "$(CFG)" == "CsvTest - Win32 Unicode_Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "CsvTest___Win32_Unicode_Debug" +# PROP BASE Intermediate_Dir "CsvTest___Win32_Unicode_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Unicode_Debug" +# PROP Intermediate_Dir "Unicode_Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /D "OXTRACEON" /Yu"stdafx.h" /FD /GZ /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /D "OXTRACEON" /D "_UNICODE" /Yu"stdafx.h" /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /debug /machine:I386 /out:"CsvTest.exe" /pdbtype:sept + +!ELSEIF "$(CFG)" == "CsvTest - Win32 Unicode_Release" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "CsvTest___Win32_Unicode_Release" +# PROP BASE Intermediate_Dir "CsvTest___Win32_Unicode_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Unicode_Release" +# PROP Intermediate_Dir "Unicode_Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "OXTRACEON" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "OXTRACEON" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /machine:I386 /out:"CsvTest.exe" + +!ENDIF + +# Begin Target + +# Name "CsvTest - Win32 Release" +# Name "CsvTest - Win32 Debug" +# Name "CsvTest - Win32 Release_Shared" +# Name "CsvTest - Win32 Unicode_Debug" +# Name "CsvTest - Win32 Unicode_Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Group "UTBSource" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\source\UTSampleAbout\HtmlCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXCsvFile.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXTrace.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\UTBStrOp.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\UTSampleAbout\UTSampleAbout.cpp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\CsvTest.cpp +# End Source File +# Begin Source File + +SOURCE=.\CsvTest.rc +# End Source File +# Begin Source File + +SOURCE=.\CsvTestDlg.cpp +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\CsvTest.h +# End Source File +# Begin Source File + +SOURCE=.\CsvTestDlg.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXCsvFile.h +# End Source File +# Begin Source File + +SOURCE=.\Resource.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\res\CsvTest.ico +# End Source File +# Begin Source File + +SOURCE=.\res\CsvTest.rc2 +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ReadMe.txt +# End Source File +# End Target +# End Project diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.dsw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.dsw new file mode 100644 index 0000000..3422f86 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "CsvTest"=".\CsvTest.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.exe.manifest b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.exe.manifest new file mode 100644 index 0000000..275675d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.exe.manifest @@ -0,0 +1,22 @@ + + + +Your app description here + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.h new file mode 100644 index 0000000..dc321fa --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.h @@ -0,0 +1,50 @@ +// CsvTest.h : main header file for the CSVTEST application +// + +#if !defined(AFX_CSVTEST_H__ED9EE2A5_98D3_11D2_B0EC_0090271D78EB__INCLUDED_) +#define AFX_CSVTEST_H__ED9EE2A5_98D3_11D2_B0EC_0090271D78EB__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols + +///////////////////////////////////////////////////////////////////////////// +// CCsvTestApp: +// See CsvTest.cpp for the implementation of this class +// + +class CCsvTestApp : public CWinApp +{ +public: + CCsvTestApp(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CCsvTestApp) + public: + virtual BOOL InitInstance(); + virtual int ExitInstance(); + //}}AFX_VIRTUAL + +// Implementation + + //{{AFX_MSG(CCsvTestApp) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_CSVTEST_H__ED9EE2A5_98D3_11D2_B0EC_0090271D78EB__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.rc b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.rc new file mode 100644 index 0000000..3108b07 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.rc @@ -0,0 +1,205 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif //_WIN32\r\n" + "#include ""res\\CsvTest.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "#include ""utsampleabout.rc""\r\n" + "#endif\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON DISCARDABLE "res\\CsvTest.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_CSVTEST_DIALOG DIALOGEX 0, 0, 252, 250 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +EXSTYLE WS_EX_APPWINDOW +CAPTION "CSV File Test" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "Open file",IDOK,7,73,50,14 + PUSHBUTTON "Save file",IDC_SAVE,63,73,50,14 + CONTROL "Use Headers",IDC_USE_HEADERS,"Button",BS_AUTOCHECKBOX | + WS_GROUP | WS_TABSTOP,9,94,57,10 + PUSHBUTTON "About...",IDC_ABOUT,195,74,50,14 + PUSHBUTTON "Exit",IDCANCEL,195,92,50,14 + EDITTEXT IDC_DATA,13,118,230,120,ES_MULTILINE | ES_READONLY | + WS_VSCROLL | WS_HSCROLL + GROUPBOX "Data read in",IDC_STATIC,9,108,240,135 + GROUPBOX "",IDC_STATIC,7,3,238,64 + LTEXT "Press on ""Open File"" button in order to open and read predefined CSV file (if ""Use Headers"" check box is marked then predefined ""headers.csv"" file will be opened, otherwise ""noheader.csv"" will be opened)", + IDC_STATIC,10,11,231,24 + LTEXT "By pressing on ""Save file"" button you will save the contents of the opened CSV file to ""out.csv"" file. Note that all files are saved in the same directory as an executable of this sample", + IDC_STATIC,10,39,230,24 +END + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "CsvTest MFC Application\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "CsvTest\0" + VALUE "LegalCopyright", "Copyright (C) 1998\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "CsvTest.EXE\0" + VALUE "ProductName", "CsvTest Application\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_CSVTEST_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 245 + TOPMARGIN, 7 + BOTTOMMARGIN, 243 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_ABOUTBOX "&About CsvTest..." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDR_MAINFRAME "CSV File Demo" + ID_DESCRIPTION_FILE "CsvFileInfo.rtf" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif //_WIN32 +#include "res\CsvTest.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +#include "utsampleabout.rc" +#endif + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.vcproj b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.vcproj new file mode 100644 index 0000000..6cbd13b --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTest.vcproj @@ -0,0 +1,934 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTestDlg.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTestDlg.cpp new file mode 100644 index 0000000..be1ce72 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTestDlg.cpp @@ -0,0 +1,528 @@ +// CsvTestDlg.cpp : implementation file +// + +#include "stdafx.h" +#include "CsvTest.h" +#include "CsvTestDlg.h" +#include "OXCsvFile.h" +#include "OXTrace.h" +#include "utsampleabout.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CCsvTestDlg dialog + +CCsvTestDlg::CCsvTestDlg(CWnd* pParent /*=NULL*/) + : CDialog(CCsvTestDlg::IDD, pParent) +{ + //{{AFX_DATA_INIT(CCsvTestDlg) + m_bUseHeaders = FALSE; + m_strData = _T(""); + //}}AFX_DATA_INIT + // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 + m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); +} + +void CCsvTestDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CCsvTestDlg) + DDX_Control(pDX, IDC_SAVE, m_ctrlSave); + DDX_Check(pDX, IDC_USE_HEADERS, m_bUseHeaders); + DDX_Text(pDX, IDC_DATA, m_strData); + //}}AFX_DATA_MAP +} + +BEGIN_MESSAGE_MAP(CCsvTestDlg, CDialog) + //{{AFX_MSG_MAP(CCsvTestDlg) + ON_WM_SYSCOMMAND() + ON_WM_PAINT() + ON_WM_QUERYDRAGICON() + ON_BN_CLICKED(IDC_SAVE, OnSave) + ON_BN_CLICKED(IDC_ABOUT, OnAbout) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CCsvTestDlg message handlers + +BOOL CCsvTestDlg::OnInitDialog() +{ + CDialog::OnInitDialog(); + + m_ctrlSave.EnableWindow(FALSE); + + // Add "About..." menu item to system menu. + + // IDM_ABOUTBOX must be in the system command range. + ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); + ASSERT(IDM_ABOUTBOX < 0xF000); + + CMenu* pSysMenu = GetSystemMenu(FALSE); + if (pSysMenu != NULL) + { + CString strAboutMenu; + strAboutMenu.LoadString(IDS_ABOUTBOX); + if (!strAboutMenu.IsEmpty()) + { + pSysMenu->AppendMenu(MF_SEPARATOR); + pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); + } + } + + // Set the icon for this dialog. The framework does this automatically + // when the application's main window is not a dialog + SetIcon(m_hIcon, TRUE); // Set big icon + SetIcon(m_hIcon, FALSE); // Set small icon + + // TODO: Add extra initialization here + OXTRACE_SETDUMPFILE(_T("trace.txt")); + OXTRACE_SETPREFIX(TRUE); + + return TRUE; // return TRUE unless you set the focus to a control +} + +void CCsvTestDlg::OnSysCommand(UINT nID, LPARAM lParam) +{ + if ((nID & 0xFFF0) == IDM_ABOUTBOX) + { + OnAbout(); + } + else + { + CDialog::OnSysCommand(nID, lParam); + } +} + +// If you add a minimize button to your dialog, you will need the code below +// to draw the icon. For MFC applications using the document/view model, +// this is automatically done for you by the framework. + +void CCsvTestDlg::OnPaint() +{ + if (IsIconic()) + { + CPaintDC dc(this); // device context for painting + + SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); + + // Center icon in client rectangle + int cxIcon = GetSystemMetrics(SM_CXICON); + int cyIcon = GetSystemMetrics(SM_CYICON); + CRect rect; + GetClientRect(&rect); + int x = (rect.Width() - cxIcon + 1) / 2; + int y = (rect.Height() - cyIcon + 1) / 2; + + // Draw the icon + dc.DrawIcon(x, y, m_hIcon); + } + else + { + CDialog::OnPaint(); + } +} + +// The system calls this to obtain the cursor to display while the user drags +// the minimized window. +HCURSOR CCsvTestDlg::OnQueryDragIcon() +{ + return (HCURSOR) m_hIcon; +} + +static LPCTSTR headers[]={ _T("ID"), _T("Name"), _T("Byte"), _T("Integer"), + _T("Float"), _T("Double"), _T("String"), + _T("Valid"), NULL }; + +static LPCTSTR aliases[]={ _T("Int"), _T("I"), NULL }; + +static const int nColumns=sizeof(headers) / sizeof(headers[0]) - 1; + +static LPCTSTR headers2[]={ _T("ID"), _T("Last Name"), _T("Address"), NULL }; + +static LPCTSTR lpstrYesNo[]={ _T("Yes"), _T("No"), NULL }; + +// +// Read in one of two predefined comma delimted files, and display their contents in the +// multiline edit control in this dialog. +// Note that the input files for this example use the technique of putting two +// separate tables into a single CSV file, which is not supported by all programs. But, +// it can still be a very useful technique for your own use. +// +void CCsvTestDlg::OnOK() +{ + // + // Retrieve the settings from the dialog + // + UpdateData(); + + COXCsvFile inFile; + CFileException fe; + LPCTSTR lpstrInFilename=(m_bUseHeaders ? _T("headers.csv") : + _T("noheader.csv")); + SData data; + + // + // clear out the old data array + // + m_aData.RemoveAll(); + + // + // disable the save button + // + m_ctrlSave.EnableWindow(FALSE); + + // + // Open the input file + // + if (!inFile.Open(lpstrInFilename, CFile::modeRead, &fe)) + { + return ; + } + + TRY + { + CWaitCursor cursor; + short nId; + int nYesNo; + int index; + + OXTRACE(_T("CCsvTestDlg::OnOK()")); + + // + // check if we shuold check for headers in the input file + // + if (m_bUseHeaders) + { + // + // Read in the headers from the input file. After reading the + // headers in from the first line of the file, set the aliases + // for the "Integer" column. + // Note: by using the column headers, and using those headers + // in the calls to ReadColumn(), the exact order of the columns + // in the CSV file becomes irrelevant to your program. This is + // shown by the fact that the columns in "headers.csv" are in + // a different order from "noheader.csv", but the results displayed + // in the edit control are the same. + // + inFile.GetColumns(8); + inFile.SetAliases(headers[3], aliases); + } + else + { + // + // Since there are no headers in the input file, set the names + // of the columns that we will use in later calls, and let + // the COXCsvFile object know how many columns to expect. + // Note, if you want to only refer to the columns by their column + // indicies, this call does not need to be made, as the first call + // to ReadLine() will set the number of columns in the table. + // + inFile.SetColumns(headers); + } + + // + // Read the individual records from one file to the other. + // + // NOTE : I said records, not lines, since quoted strings can + // contain new lines in them. This is a feature supported by programs + // like MS Access, but not by MS Excel. + // + while (inFile.ReadLine()) + { + data.Clear(); + + if (inFile.IsLineEmpty()) + { + // + // Blank lines can either be ignored, or they can be used like + // here to mark the end of one table, and the start of another + // one. + // + OXTRACE(_T("Reached the end of the first table")); + break; + } + + OXTRACE(_T("Reading next line")); + + // + // Read the data from the various columns into the members of the + // SData structure. + // + inFile.ReadColumn(_T("ID"), data.nId); + OXTRACE_WRITEVAL(_T("ID"), data.nId); + + inFile.ReadColumn(_T("Name"), data.strName); + OXTRACE_WRITEVAL(_T("Name"), data.strName); + + inFile.ReadColumn(_T("Byte"), data.ucByte); + OXTRACE_WRITEVAL(_T("Byte"), data.ucByte); + + inFile.ReadColumn(_T("Integer"), data.nInt); + OXTRACE_WRITEVAL(_T("Integer"), data.nInt); + + inFile.ReadColumn(_T("Float"), data.fFloat); + OXTRACE_WRITEVAL(_T("Float"), data.fFloat); + + inFile.ReadColumn(_T("Double"), data.fDouble); + OXTRACE_WRITEVAL(_T("Double"), data.fDouble); + + inFile.ReadColumn(_T("String"), data.strString); + OXTRACE_WRITEVAL(_T("String"), data.strString); + + inFile.ReadColumn(_T("Valid"), nYesNo, lpstrYesNo); + OXTRACE_WRITEVAL(_T("Valid"), nYesNo); + data.bValid = (nYesNo == 0); + + m_aData.Add(data); + } + + // + // Read in the second table, merging its data with the first + // + if (m_bUseHeaders) + { + // + // Read in the headers for the second table in this file. + // + inFile.GetColumns(3); + } + else + { + // + // Set the names, and number of columns to expect, for the + // second table in this file + // + inFile.SetColumns(headers2); + } + + // + // Read the records in one at a time from the second table. + // + while (inFile.ReadLine()) + { + if (inFile.IsLineEmpty()) + { + // + // Blank lines can either be ignored, like here, or they can be + // used to mark the end of one table, and the start of another + // one. + // + continue; + } + + OXTRACE(_T("Reading next line")); + + // + // Read the ID field for this record, and search for it in the + // SData array, to match the records from the two tables up to + // each other. + // + inFile.ReadColumn(_T("ID"), nId); + OXTRACE_WRITEVAL(_T("ID"), nId); + + + for (index = 0 ; index < m_aData.GetSize() ; ++index) + { + if (m_aData[index].nId == nId) + { + // + // found the matching record from the previous table + // + break; + } + } + + if (index >= m_aData.GetSize()) + { + // + // skip this record, as this ID did not exist in the other table + // + OXTRACE_WRITEVAL(_T("ID not found from earlier table"), nId); + continue; + } + + // + // Read the remaining columns into the SData structure from the previous + // table + // + inFile.ReadColumn(_T("Last Name"), m_aData[index].strLastName); + OXTRACE_WRITEVAL(_T("Last Name"), m_aData[index].strLastName); + + inFile.ReadColumn(_T("Address"), m_aData[index].strAddress); + OXTRACE_WRITEVAL(_T("Address"), m_aData[index].strAddress); + } + + // + // format the data for the multiline edit control + // + m_strData.Empty(); + for (index = 0 ; index < m_aData.GetSize() ; ++index) + { + CString strTemp; + data = m_aData[index]; + + strTemp.Format(_T("%u. %s %s, %s\r\n") + _T(" %u, %d, %f, %f, %s\r\n") + _T(" \"%s\"\r\n"), + data.nId, data.strName, data.strLastName, data.strAddress, + data.ucByte, data.nInt, data.fFloat, data.fDouble, + (data.bValid ? _T("Valid") : _T("Invalid")), + data.strString); + m_strData += strTemp; + } + UpdateData(FALSE); + + // + // enable the Save button + // + m_ctrlSave.EnableWindow(m_aData.GetSize() > 0); + } + CATCH_ALL(e) + { + inFile.Abort(); + } + END_CATCH_ALL +} + +// +// Write the data from the data array out to a CSV file. The data +// will be written out using the same two tables to a single CSV file +// format that it was read in with. +// +void CCsvTestDlg::OnSave() +{ + // + // Update the members of the class from the dialog + // + UpdateData(); + + COXCsvFile inFile, outFile; + CFileException fe; + LPCTSTR lpstrOutFilename = _T("out.csv"); + SData data; + + // + // Open the output file + // + if (!outFile.Open(lpstrOutFilename, CFile::modeCreate | CFile::modeReadWrite, &fe)) + { + return ; + } + + TRY + { + CWaitCursor cursor; + + OXTRACE(_T("CCsvTestDlg::OnOK()")); + + // + // Check for header usage + // + if (m_bUseHeaders) + { + // + // Write out the headers for the first table + // + outFile.SetColumns(headers); + outFile.WriteHeaders(); + } + else + { + // + // Set up how many columns there will be in the first table + // + outFile.Initialize(nColumns); + } + + // + // loop through the SData elements that were filled in during the read. + // + int index = 0 ; + for (index = 0 ; index < m_aData.GetSize() ; ++index) + { + data = m_aData[index]; + + // + // Write the column data out to the current record buffer in outFile. + // + outFile.WriteColumn(0, data.nId); + outFile.WriteColumn(1, data.strName); + outFile.WriteColumn(2, data.ucByte); + outFile.WriteColumn(3, data.nInt); + outFile.WriteColumn(4, data.fFloat); + outFile.WriteColumn(5, data.fDouble); + outFile.WriteColumn(6, data.strString); + outFile.WriteColumn(7, lpstrYesNo[data.bValid ? 0 : 1]); + + // + // Write this record out to the output file. + // + outFile.WriteLine(); + } + + // + // This call to WriteLine, with no columns, will write out a blank line, + // providing a separator between the tables. + // Initialize is called to clear the old header information. + // + outFile.Initialize(); + outFile.WriteLine(); + + if (m_bUseHeaders) + { + // + // Write out the headers for the second table in the file. + // + outFile.SetColumns(headers2); + outFile.WriteHeaders(); + } + else + { + // + // Set up how many columns there will be in the second + // table in the file. + // + outFile.Initialize(3); + } + + // + // Loop through the records one more time. + // + for (index = 0 ; index < m_aData.GetSize() ; ++index) + { + data = m_aData[index]; + + // + // Write the data for this record to the current record + // buffer in outFile. + // + outFile.WriteColumn(0, data.nId); + outFile.WriteColumn(1, data.strLastName); + outFile.WriteColumn(2, data.strAddress); + + // + // Write the current record to the output file. + // + outFile.WriteLine(); + } + } + CATCH_ALL(e) + { + outFile.Abort(); + } + END_CATCH_ALL +} + +void CCsvTestDlg::OnAbout() +{ + // TODO: Add your control notification handler code here + + CUTSampleAboutDlg dlgAbout(IDR_MAINFRAME,ID_DESCRIPTION_FILE); + dlgAbout.DoModal(); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTestDlg.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTestDlg.h new file mode 100644 index 0000000..8c57eae --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/CsvTestDlg.h @@ -0,0 +1,100 @@ +// CsvTestDlg.h : header file +// + +#if !defined(AFX_CSVTESTDLG_H__ED9EE2A7_98D3_11D2_B0EC_0090271D78EB__INCLUDED_) +#define AFX_CSVTESTDLG_H__ED9EE2A7_98D3_11D2_B0EC_0090271D78EB__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +///////////////////////////////////////////////////////////////////////////// +// CCsvTestDlg dialog + +class CCsvTestDlg : public CDialog +{ +// Construction +public: + CCsvTestDlg(CWnd* pParent = NULL); // standard constructor + +// Dialog Data + //{{AFX_DATA(CCsvTestDlg) + enum { IDD = IDD_CSVTEST_DIALOG }; + CButton m_ctrlSave; + BOOL m_bUseHeaders; + CString m_strData; + //}}AFX_DATA + + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CCsvTestDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + HICON m_hIcon; + + // Generated message map functions + //{{AFX_MSG(CCsvTestDlg) + virtual BOOL OnInitDialog(); + afx_msg void OnSysCommand(UINT nID, LPARAM lParam); + afx_msg void OnPaint(); + afx_msg HCURSOR OnQueryDragIcon(); + virtual void OnOK(); + afx_msg void OnSave(); + afx_msg void OnAbout(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + +private: + // + // Strcuture defining the data being read in + // + struct SData + { + short nId; + CString strName; + unsigned char ucByte; + short nInt; + float fFloat; + double fDouble; + CString strString; + BOOL bValid; + CString strLastName; + CString strAddress; + + SData() + { + Clear(); + } + + SData(const SData& x) + : nId(x.nId), strName(x.strName), ucByte(x.ucByte), nInt(x.nInt), + fFloat(x.fFloat), fDouble(x.fDouble), strString(x.strString), + bValid(x.bValid), strLastName(x.strLastName), strAddress(x.strAddress) + { + } + + void Clear() + { + nId = 0; + strName.Empty(); + ucByte = 0; + nInt = 0; + fFloat = 0.0; + fDouble = 0.0; + strString.Empty(); + bValid = false; + strLastName.Empty(); + strAddress.Empty(); + } + }; + + CArray m_aData; +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_CSVTESTDLG_H__ED9EE2A7_98D3_11D2_B0EC_0090271D78EB__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/ReadMe.txt b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/ReadMe.txt new file mode 100644 index 0000000..0d3c039 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/ReadMe.txt @@ -0,0 +1,88 @@ +======================================================================== + MICROSOFT FOUNDATION CLASS LIBRARY : CsvTest +======================================================================== + + +AppWizard has created this CsvTest application for you. This application +not only demonstrates the basics of using the Microsoft Foundation classes +but is also a starting point for writing your application. + +This file contains a summary of what you will find in each of the files that +make up your CsvTest application. + +CsvTest.dsp + This file (the project file) contains information at the project level and + is used to build a single project or subproject. Other users can share the + project (.dsp) file, but they should export the makefiles locally. + +CsvTest.h + This is the main header file for the application. It includes other + project specific headers (including Resource.h) and declares the + CCsvTestApp application class. + +CsvTest.cpp + This is the main application source file that contains the application + class CCsvTestApp. + +CsvTest.rc + This is a listing of all of the Microsoft Windows resources that the + program uses. It includes the icons, bitmaps, and cursors that are stored + in the RES subdirectory. This file can be directly edited in Microsoft + Visual C++. + +CsvTest.clw + This file contains information used by ClassWizard to edit existing + classes or add new classes. ClassWizard also uses this file to store + information needed to create and edit message maps and dialog data + maps and to create prototype member functions. + +res\CsvTest.ico + This is an icon file, which is used as the application's icon. This + icon is included by the main resource file CsvTest.rc. + +res\CsvTest.rc2 + This file contains resources that are not edited by Microsoft + Visual C++. You should place all resources not editable by + the resource editor in this file. + + + + +///////////////////////////////////////////////////////////////////////////// + +AppWizard creates one dialog class: + +CsvTestDlg.h, CsvTestDlg.cpp - the dialog + These files contain your CCsvTestDlg class. This class defines + the behavior of your application's main dialog. The dialog's + template is in CsvTest.rc, which can be edited in Microsoft + Visual C++. + + +///////////////////////////////////////////////////////////////////////////// +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named CsvTest.pch and a precompiled types file named StdAfx.obj. + +Resource.h + This is the standard header file, which defines new resource IDs. + Microsoft Visual C++ reads and updates this file. + +///////////////////////////////////////////////////////////////////////////// +Other notes: + +AppWizard uses "TODO:" to indicate parts of the source code you +should add to or customize. + +If your application uses MFC in a shared DLL, and your application is +in a language other than the operating system's current language, you +will need to copy the corresponding localized resources MFC42XXX.DLL +from the Microsoft Visual C++ CD-ROM onto the system or system32 directory, +and rename it to be MFCLOC.DLL. ("XXX" stands for the language abbreviation. +For example, MFC42DEU.DLL contains resources translated to German.) If you +don't do this, some of the UI elements of your application will remain in the +language of the operating system. + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/StdAfx.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/StdAfx.cpp new file mode 100644 index 0000000..4b6e437 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/StdAfx.cpp @@ -0,0 +1,8 @@ +// stdafx.cpp : source file that includes just the standard includes +// CsvTest.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/StdAfx.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/StdAfx.h new file mode 100644 index 0000000..141f8c3 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/StdAfx.h @@ -0,0 +1,27 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#if !defined(AFX_STDAFX_H__ED9EE2A9_98D3_11D2_B0EC_0090271D78EB__INCLUDED_) +#define AFX_STDAFX_H__ED9EE2A9_98D3_11D2_B0EC_0090271D78EB__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers + +#include +#include // MFC core and standard components +#include // MFC extensions +#include // MFC support for Internet Explorer 4 Common Controls +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for Windows Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_STDAFX_H__ED9EE2A9_98D3_11D2_B0EC_0090271D78EB__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/headers.csv b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/headers.csv new file mode 100644 index 0000000..97c5be3 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/headers.csv @@ -0,0 +1,11 @@ +"ID","Valid","Byte","Int","Float","Double","String","Name" +1,Yes,25,-30,234.3453,3245235234.235,"This is a test, this is only a test",George +2,No,255,32767,3.141592654,3.141592654,"And now, +for something +completely different",Peter +3,Yes,-29,2342,2.718281828,23.14069263,Some more numbers,Paul + +"ID","Address","Last Name" +1,1231 Sunnyside Circle,McGill +2,21w238 Honeysuckle Rose Lane,Piper +3,19 First Street,Howard \ No newline at end of file diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/noheader.csv b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/noheader.csv new file mode 100644 index 0000000..28907a8 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/noheader.csv @@ -0,0 +1,9 @@ +1,George,25,-30,234.3453,3245235234.235,"This is a test, this is only a test",Yes +2,Peter,255,32767,3.141592654,3.141592654,"And now, +for something +completely different",No +3,Paul,-29,2342,2.718281828,23.14069263,Some more numbers,Yes + +1,McGill,1231 Sunnyside Circle +2,Piper,21w238 Honeysuckle Rose Lane +3,Howard,19 First Street \ No newline at end of file diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/out.csv b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/out.csv new file mode 100644 index 0000000..a2ae991 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/out.csv @@ -0,0 +1,11 @@ +"ID","Name","Byte","Integer","Float","Double","String","Valid" +1,George,25,-30,234.345306,3245235234.235000,"This is a test, this is only a test",Yes +2,Peter,255,32767,3.141593,3.141593,"And now, +for something +completely different",No +3,Paul,0,2342,2.718282,23.140693,Some more numbers,Yes + +"ID","Last Name","Address" +1,McGill,1231 Sunnyside Circle +2,Piper,21w238 Honeysuckle Rose Lane +3,Howard,19 First Street diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/res/CsvTest.ico b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/res/CsvTest.ico new file mode 100644 index 0000000000000000000000000000000000000000..7eef0bcbe6580a6f464d688906172c2d9de44262 GIT binary patch literal 1078 zcmc&zF>b>!3}jLb9s)T}@Kod(893@u8ajANzT`op9^o+)S?=nU(FD@%0s)Sg^oyC8{H z9myetc;MEP)59v(LMa~xK8Yu^jIR*H22uCFiq5%C{s7(PJi>o15i^bmX4(vPxWAio z9ryY#AU_jfnd047-@`)XzL?%iS$gQyFP{44kS9X)fN{{QoL~hO-&=q&20Zr*cxFAt PkaNE{wR~2C$NfnjhSXWT literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/res/CsvTest.rc2 b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/res/CsvTest.rc2 new file mode 100644 index 0000000..fcdc000 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/res/CsvTest.rc2 @@ -0,0 +1,13 @@ +// +// CSVTEST.RC2 - resources Microsoft Visual C++ does not edit directly +// + +#ifdef APSTUDIO_INVOKED + #error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// Add manually edited resources here... + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/resource.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/resource.h new file mode 100644 index 0000000..ccab85e --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/resource.h @@ -0,0 +1,26 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by CsvTest.rc +// +#define IDM_ABOUTBOX 0x0010 +#define IDD_ABOUTBOX 100 +#define IDS_ABOUTBOX 101 +#define IDD_CSVTEST_DIALOG 102 +#define IDR_MAINFRAME 128 +#define ID_DESCRIPTION_FILE 129 +#define IDC_RESULT 1000 +#define IDC_USE_HEADERS 1001 +#define IDC_SAVE 1002 +#define IDC_DATA 1003 +#define IDC_ABOUT 1004 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 129 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 1004 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/trace.txt b/UltimateToolbox93_samples/Ultimate Toolbox/samples/database/csvtest/trace.txt new file mode 100644 index 0000000..e69de29 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/EnterNewDir.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/EnterNewDir.cpp new file mode 100644 index 0000000..90bb6eb --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/EnterNewDir.cpp @@ -0,0 +1,61 @@ +// EnterNewDir.cpp : implementation file +// + +#include "stdafx.h" +#include "FileWatcher.h" +#include "EnterNewDir.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CEnterNewDir dialog + + +CEnterNewDir::CEnterNewDir(CWnd* pParent /*=NULL*/) + : CDialog(CEnterNewDir::IDD, pParent) +{ + //{{AFX_DATA_INIT(CEnterNewDir) + m_bChangeAttributes = FALSE; + m_bChangeCreation = FALSE; + m_bChangeDirName = FALSE; + m_bChangeFileName = FALSE; + m_bChangeLastAccess = FALSE; + m_bChangeLastWrite = FALSE; + m_bChangeSecurity = FALSE; + m_bChangeSize = FALSE; + m_sDir = _T(""); + m_bSubTree = FALSE; + //}}AFX_DATA_INIT +} + + +void CEnterNewDir::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CEnterNewDir) + DDX_Check(pDX, IDC_CHANGE_ATTRIBUTES, m_bChangeAttributes); + DDX_Check(pDX, IDC_CHANGE_CREATION, m_bChangeCreation); + DDX_Check(pDX, IDC_CHANGE_DIR_NAME, m_bChangeDirName); + DDX_Check(pDX, IDC_CHANGE_FILE_NAME, m_bChangeFileName); + DDX_Check(pDX, IDC_CHANGE_LAST_ACCESS, m_bChangeLastAccess); + DDX_Check(pDX, IDC_CHANGE_LAST_WRITE, m_bChangeLastWrite); + DDX_Check(pDX, IDC_CHANGE_SECURITY, m_bChangeSecurity); + DDX_Check(pDX, IDC_CHANGE_SIZE, m_bChangeSize); + DDX_Text(pDX, IDC_DIR, m_sDir); + DDX_Check(pDX, IDC_WATCH_SUB_TREE, m_bSubTree); + //}}AFX_DATA_MAP +} + + +BEGIN_MESSAGE_MAP(CEnterNewDir, CDialog) + //{{AFX_MSG_MAP(CEnterNewDir) + // NOTE: the ClassWizard will add message map macros here + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CEnterNewDir message handlers diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/EnterNewDir.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/EnterNewDir.h new file mode 100644 index 0000000..87ea6ce --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/EnterNewDir.h @@ -0,0 +1,44 @@ +// EnterNewDir.h : header file +// + +///////////////////////////////////////////////////////////////////////////// +// CEnterNewDir dialog + +class CEnterNewDir : public CDialog +{ +// Construction +public: + CEnterNewDir(CWnd* pParent = NULL); // standard constructor + +// Dialog Data + //{{AFX_DATA(CEnterNewDir) + enum { IDD = IDD_ENTER_DIR }; + BOOL m_bChangeAttributes; + BOOL m_bChangeCreation; + BOOL m_bChangeDirName; + BOOL m_bChangeFileName; + BOOL m_bChangeLastAccess; + BOOL m_bChangeLastWrite; + BOOL m_bChangeSecurity; + BOOL m_bChangeSize; + CString m_sDir; + BOOL m_bSubTree; + //}}AFX_DATA + + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CEnterNewDir) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + + // Generated message map functions + //{{AFX_MSG(CEnterNewDir) + // NOTE: the ClassWizard will add member functions here + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.clw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.clw new file mode 100644 index 0000000..a3b639c --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.clw @@ -0,0 +1,72 @@ +; CLW file contains information for the MFC ClassWizard + +[General Info] +Version=1 +LastClass=CFileWatcherApp +LastTemplate=CDialog +NewFileInclude1=#include "stdafx.h" +NewFileInclude2=#include "filewatcher.h" +LastPage=0 + +ClassCount=3 +Class1=CEnterNewDir +Class2=CFileWatcherApp +Class3=CFileWatcherDlg + +ResourceCount=2 +Resource1=IDD_ENTER_DIR +Resource2=IDD_FILEWATCHER_DIALOG + +[CLS:CEnterNewDir] +Type=0 +BaseClass=CDialog +HeaderFile=EnterNewDir.h +ImplementationFile=EnterNewDir.cpp +LastObject=CEnterNewDir + +[CLS:CFileWatcherApp] +Type=0 +BaseClass=CWinApp +HeaderFile=FileWatcher.h +ImplementationFile=FileWatcher.cpp +Filter=N +VirtualFilter=AC +LastObject=CFileWatcherApp + +[CLS:CFileWatcherDlg] +Type=0 +BaseClass=CDialog +HeaderFile=FileWatcherDlg.h +ImplementationFile=FileWatcherDlg.cpp + +[DLG:IDD_ENTER_DIR] +Type=1 +Class=CEnterNewDir +ControlCount=14 +Control1=IDC_STATIC,static,1342308352 +Control2=IDC_DIR,edit,1350631552 +Control3=IDC_WATCH_SUB_TREE,button,1342242819 +Control4=IDC_STATIC,button,1342177287 +Control5=IDC_CHANGE_FILE_NAME,button,1342242819 +Control6=IDC_CHANGE_DIR_NAME,button,1342242819 +Control7=IDC_CHANGE_ATTRIBUTES,button,1342242819 +Control8=IDC_CHANGE_SIZE,button,1342242819 +Control9=IDC_CHANGE_LAST_WRITE,button,1342242819 +Control10=IDC_CHANGE_LAST_ACCESS,button,1342242819 +Control11=IDC_CHANGE_CREATION,button,1342242819 +Control12=IDC_CHANGE_SECURITY,button,1342242819 +Control13=IDOK,button,1342242817 +Control14=IDCANCEL,button,1342242816 + +[DLG:IDD_FILEWATCHER_DIALOG] +Type=1 +Class=CFileWatcherDlg +ControlCount=7 +Control1=IDC_ADD_DIR,button,1342242817 +Control2=IDC_STATIC,static,1342308352 +Control3=IDC_REMOVE_DIR,button,1342242816 +Control4=IDOK,button,1342242816 +Control5=IDC_STATIC,static,1342308352 +Control6=IDC_WATCHED_DIRS,SysListView32,1350631429 +Control7=IDC_NOTIFICATIONS,SysListView32,1350631425 + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.cpp new file mode 100644 index 0000000..1d96547 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.cpp @@ -0,0 +1,104 @@ +// FileWatcher.cpp : Defines the class behaviors for the application. +// +//----------------- Dundas Software ---------------------------------------- +//======================================================================== + +#include "stdafx.h" +#include "FileWatcher.h" +#include "FileWatcherDlg.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CFileWatcherApp + +BEGIN_MESSAGE_MAP(CFileWatcherApp, CWinApp) + //{{AFX_MSG_MAP(CFileWatcherApp) + // 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() + +///////////////////////////////////////////////////////////////////////////// +// CFileWatcherApp construction + +CFileWatcherApp::CFileWatcherApp() +{ + // TODO: add construction code here, + // Place all significant initialization in InitInstance +} + +///////////////////////////////////////////////////////////////////////////// +// The one and only CFileWatcherApp object + +CFileWatcherApp theApp; +static HINSTANCE g_hRichEdDLL=NULL; + +///////////////////////////////////////////////////////////////////////////// +// CFileWatcherApp initialization + +BOOL CFileWatcherApp::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. + +#if _MSC_VER < 1400 +#ifdef _AFXDLL + Enable3dControls(); // Call this when using MFC in a shared DLL +#else + Enable3dControlsStatic(); // Call this when linking to MFC statically +#endif +#endif + + + // Initialize RichEdit control + // for About Dialog + if(g_hRichEdDLL==NULL) + { + g_hRichEdDLL=::LoadLibrary(_T("RICHED32.DLL")); + if(g_hRichEdDLL==NULL) + TRACE(_T("Cannot load library to display RichEditTextControl")); + } + + + CFileWatcherDlg dlg; + + m_pMainWnd = &dlg; + switch(dlg.DoModal()) + { + case IDOK: + { + // TODO: Place code here to handle when the dialog is + // dismissed with OK + } + break; + case IDCANCEL: + { + // TODO: Place code here to handle when the dialog is + // dismissed with Cancel + } + break; + } + + // Since the dialog has been closed, return FALSE so that we exit the + // application, rather than start the application's message pump. + return FALSE; +} + +int CFileWatcherApp::ExitInstance() +{ + // TODO: Add your specialized code here and/or call the base class + + // unload the library + if(g_hRichEdDLL!=NULL) + ::FreeLibrary(g_hRichEdDLL); + + return CWinApp::ExitInstance(); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.dsp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.dsp new file mode 100644 index 0000000..e0c59c6 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.dsp @@ -0,0 +1,265 @@ +# Microsoft Developer Studio Project File - Name="FileWatcher" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=FileWatcher - Win32 Unicode_Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "FileWatcher.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "FileWatcher.mak" CFG="FileWatcher - Win32 Unicode_Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "FileWatcher - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "FileWatcher - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE "FileWatcher - Win32 Release_Shared" (based on "Win32 (x86) Application") +!MESSAGE "FileWatcher - Win32 Unicode_Debug" (based on "Win32 (x86) Application") +!MESSAGE "FileWatcher - Win32 Unicode_Release" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "FileWatcher - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir ".\Release" +# PROP BASE Intermediate_Dir ".\Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 1 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir ".\Release" +# PROP Intermediate_Dir ".\Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x813 /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"FileWatcher.exe" + +!ELSEIF "$(CFG)" == "FileWatcher - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir ".\Debug" +# PROP BASE Intermediate_Dir ".\Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 2 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir ".\Debug" +# PROP Intermediate_Dir ".\Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x813 /d "_DEBUG" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 +# ADD LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"FileWatcher.exe" + +!ELSEIF "$(CFG)" == "FileWatcher - Win32 Release_Shared" + +# PROP BASE Use_MFC 1 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "FileWatc" +# PROP BASE Intermediate_Dir "FileWatc" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 2 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release_Shared" +# PROP Intermediate_Dir "Release_Shared" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /out:"FileWatcher.exe" +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"FileWatcher.exe" + +!ELSEIF "$(CFG)" == "FileWatcher - Win32 Unicode_Debug" + +# PROP BASE Use_MFC 2 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "FileWat0" +# PROP BASE Intermediate_Dir "FileWat0" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 2 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Unicode_Debug" +# PROP Intermediate_Dir "Unicode_Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W4 /Gm /GX /Zi /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"FileWatcher.exe" +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /debug /machine:I386 /out:"FileWatcher.exe" + +!ELSEIF "$(CFG)" == "FileWatcher - Win32 Unicode_Release" + +# PROP BASE Use_MFC 1 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "FileWat1" +# PROP BASE Intermediate_Dir "FileWat1" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 1 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Unicode_Release" +# PROP Intermediate_Dir "Unicode_Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /out:"FileWatcher.exe" +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /machine:I386 /out:"FileWatcher.exe" + +!ENDIF + +# Begin Target + +# Name "FileWatcher - Win32 Release" +# Name "FileWatcher - Win32 Debug" +# Name "FileWatcher - Win32 Release_Shared" +# Name "FileWatcher - Win32 Unicode_Debug" +# Name "FileWatcher - Win32 Unicode_Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90" +# Begin Group "UTSource" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\source\UTSampleAbout\HtmlCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXFileWatcher.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXFileWatchNotifier.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXWatchedDir.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\UTBStrOp.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\UTSampleAbout\UTSampleAbout.cpp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\EnterNewDir.cpp +# End Source File +# Begin Source File + +SOURCE=.\FileWatcher.cpp +# End Source File +# Begin Source File + +SOURCE=.\FileWatcher.rc +# End Source File +# Begin Source File + +SOURCE=.\FileWatcherDlg.cpp +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd" +# Begin Source File + +SOURCE=.\EnterNewDir.h +# End Source File +# Begin Source File + +SOURCE=.\FileWatcher.h +# End Source File +# Begin Source File + +SOURCE=.\FileWatcherDlg.h +# End Source File +# Begin Source File + +SOURCE=.\stdafx.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\res\FileWatcher.ico +# End Source File +# Begin Source File + +SOURCE=.\res\FileWatcher.rc2 +# End Source File +# Begin Source File + +SOURCE=.\FileWatcherINfo.rtf +# End Source File +# End Group +# End Target +# End Project diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.dsw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.dsw new file mode 100644 index 0000000..3b1bd7d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "FileWatcher"=".\FileWatcher.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.exe.manifest b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.exe.manifest new file mode 100644 index 0000000..275675d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.exe.manifest @@ -0,0 +1,22 @@ + + + +Your app description here + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.h new file mode 100644 index 0000000..f279212 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.h @@ -0,0 +1,38 @@ +// FileWatcher.h : main header file for the FILEWATCHER application +// + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols + +///////////////////////////////////////////////////////////////////////////// +// CFileWatcherApp: +// See FileWatcher.cpp for the implementation of this class +// + +class CFileWatcherApp : public CWinApp +{ +public: + CFileWatcherApp(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CFileWatcherApp) + public: + virtual BOOL InitInstance(); + virtual int ExitInstance(); + //}}AFX_VIRTUAL + +// Implementation + + //{{AFX_MSG(CFileWatcherApp) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.rc b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.rc new file mode 100644 index 0000000..ec86d14 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.rc @@ -0,0 +1,261 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""utsampleabout.rc""\r\n" + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif\r\n" + "#include ""res\\FileWatcher.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "#include ""OXFileWatcher.rc""\r\n" + "#endif\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON DISCARDABLE "res\\FileWatcher.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_ENTER_DIR DIALOG DISCARDABLE 0, 0, 227, 172 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Enter directory" +FONT 8, "MS Sans Serif" +BEGIN + LTEXT "&Directory:",IDC_STATIC,7,7,213,8 + EDITTEXT IDC_DIR,7,17,213,13,ES_AUTOHSCROLL + CONTROL "Watch sub &tree",IDC_WATCH_SUB_TREE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,88,37,81,11 + GROUPBOX "Watch filter",IDC_STATIC,7,57,213,80 + CONTROL "&Change file name",IDC_CHANGE_FILE_NAME,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,28,72,75,10 + CONTROL "C&hange dir name",IDC_CHANGE_DIR_NAME,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,28,88,75,10 + CONTROL "Change &attributes",IDC_CHANGE_ATTRIBUTES,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,28,104,75,10 + CONTROL "Change &size",IDC_CHANGE_SIZE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,28,120,75,10 + CONTROL "Change last &write",IDC_CHANGE_LAST_WRITE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,134,72,75,10 + CONTROL "Change &last access",IDC_CHANGE_LAST_ACCESS,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,134,88,75,10 + CONTROL "Change c&reation",IDC_CHANGE_CREATION,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,134,104,75,10 + CONTROL "Change s&ecurity",IDC_CHANGE_SECURITY,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,134,120,75,10 + DEFPUSHBUTTON "OK",IDOK,52,151,50,14 + PUSHBUTTON "Cancel",IDCANCEL,130,151,50,14 +END + +IDD_FILEWATCHER_DIALOG DIALOGEX 0, 0, 356, 260 +STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | + WS_SYSMENU +EXSTYLE WS_EX_APPWINDOW +CAPTION "FileWatcher" +FONT 8, "MS Sans Serif", 0, 0, 0x1 +BEGIN + DEFPUSHBUTTON "&Add dir ...",IDC_ADD_DIR,299,17,50,14 + LTEXT "Watched dirs:",IDC_STATIC,7,7,282,10 + PUSHBUTTON "&Remove dir",IDC_REMOVE_DIR,299,34,50,14 + PUSHBUTTON "&Close",IDOK,299,239,50,14 + LTEXT "Notifications:",IDC_STATIC,7,110,282,8 + CONTROL "List2",IDC_WATCHED_DIRS,"SysListView32",LVS_REPORT | + LVS_SINGLESEL | WS_BORDER | WS_TABSTOP,7,17,282,87 + CONTROL "List1",IDC_NOTIFICATIONS,"SysListView32",LVS_REPORT | + WS_BORDER | WS_TABSTOP,7,121,282,132 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_ENTER_DIR, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 220 + TOPMARGIN, 7 + BOTTOMMARGIN, 165 + END +END +#endif // APSTUDIO_INVOKED + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "FILEWATCHER MFC Application\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "FILEWATCHER\0" + VALUE "LegalCopyright", "Copyright © 1997\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "FILEWATCHER.EXE\0" + VALUE "ProductName", "FILEWATCHER Application\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_ABOUTBOX "&About FileWatcher..." + IDS_DIRECTORY "Directory" + IDS_WATCH_SUBDIRS "Watch subdirectories" + IDS_FILTER "Filter" + IDS_TIME "Time" + IDS_EXTENDED_INFO "Extended info" + IDS_ACTION "Action" + IDS_FILE_NAME "File Name" + IDS_NEW_FILE_NAME "New File Name" + IDS_CH_FILE_NAME "ChFileName" + IDS_CH_DIR_NAME "ChDirName" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_CH_ATTR "ChAttr" + IDS_CH_SIZE "ChSize" + IDS_CH_LAST_WRITE "ChLastWr" + IDS_CH_LAST_ACCESS "ChLastAccess" + IDS_CH_CREATION "ChCreation" + IDS_CH_SECURITY "ChSecurity" + IDS_YES "Yes" + IDS_NO "No" + IDS_ADDED "Added" + IDS_REMOVED "Removed" + IDS_MODIFIED "Modified" + IDS_RENAME "Rename" + IDS_SEPARATOR "," + IDS_SOMETHING_WRONG "Something wrong ..." + IDS_NO_PATH "No path is specified ..." + IDS_NO_DIR_IS_SELECTED "No directory is selected ..." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDR_MAINFRAME "File watcher " + ID_DESCRIPTION_FILE "FileWatcherINfo.rtf" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#include "utsampleabout.rc" +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif +#include "res\FileWatcher.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +#include "OXFileWatcher.rc" +#endif +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.vcproj b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.vcproj new file mode 100644 index 0000000..ce50640 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcher.vcproj @@ -0,0 +1,1018 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcherDlg.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcherDlg.cpp new file mode 100644 index 0000000..d836fd0 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcherDlg.cpp @@ -0,0 +1,509 @@ +// FileWatcherDlg.cpp : implementation file +// + +#include "stdafx.h" +#include "utsampleabout.h" +#include "FileWatcher.h" +#include "FileWatcherDlg.h" +#include "EnterNewDir.h" +#include "OXMainRes.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +#define MAX_NOTIFICATION 100 + +///////////////////////////////////////////////////////////////////////////// + + +struct _PathInfo +{ + _PathInfo( CString sPath, BOOL bSubTree, DWORD dwFilter); + + CString m_sPath; + BOOL m_bSubTree; + DWORD m_dwFilter; +}; + +_PathInfo::_PathInfo( CString sPath, BOOL bSubTree, DWORD dwFilter) +:m_sPath( sPath), +m_bSubTree( bSubTree), +m_dwFilter( dwFilter) +{ +} + +///////////////////////////////////////////////////////////////////////////// +// CFileWatcherDlg dialog + +CFileWatcherDlg::CFileWatcherDlg(CWnd* pParent /*=NULL*/) +: CDialog(CFileWatcherDlg::IDD, pParent) +{ + //{{AFX_DATA_INIT(CFileWatcherDlg) + // NOTE: the ClassWizard will add member initialization here + //}}AFX_DATA_INIT + // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 + m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); +} + +CFileWatcherDlg::~CFileWatcherDlg() +{ + for( int i=0; iAppendMenu(MF_SEPARATOR); + pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); + } + + // Set the icon for this dialog. The framework does this automatically + // when the application's main window is not a dialog + SetIcon(m_hIcon, TRUE); // Set big icon + SetIcon(m_hIcon, FALSE); // Set small icon + + // TODO: Add extra initialization here + CRect rc; + CString str; + + // Watched dirs + m_lbWatchedDirs.GetClientRect( &rc); + + str.LoadString( IDS_DIRECTORY); + m_lbWatchedDirs.InsertColumn( 0, str, LVCFMT_LEFT, int(0.2*rc.Width())); + + str.LoadString( IDS_WATCH_SUBDIRS); + m_lbWatchedDirs.InsertColumn( 1, str, LVCFMT_LEFT, int(0.1*rc.Width()), 1); + + str.LoadString( IDS_FILTER); + m_lbWatchedDirs.InsertColumn( 2, str, LVCFMT_LEFT, int(0.7*rc.Width()), 2); + + // Notifications + m_lbNotifications.GetClientRect( &rc); + + str.LoadString( IDS_DIRECTORY); + m_lbNotifications.InsertColumn( 0, str, LVCFMT_LEFT, int(0.2*rc.Width())); + + str.LoadString( IDS_TIME); + m_lbNotifications.InsertColumn( 1, str, LVCFMT_LEFT, int(0.12*rc.Width()), 1); + + str.LoadString( IDS_EXTENDED_INFO); + m_lbNotifications.InsertColumn( 2, str, LVCFMT_LEFT, int(0.07*rc.Width()), 2); + + str.LoadString( IDS_ACTION); + m_lbNotifications.InsertColumn( 3, str, LVCFMT_LEFT, int(0.13*rc.Width()), 3); + + str.LoadString( IDS_FILE_NAME); + m_lbNotifications.InsertColumn( 4, str, LVCFMT_LEFT, int(0.24*rc.Width()), 4); + + str.LoadString( IDS_NEW_FILE_NAME); + m_lbNotifications.InsertColumn( 5, str, LVCFMT_LEFT, int(0.24*rc.Width()), 5); + + return TRUE; // return TRUE unless you set the focus to a control +} + +void CFileWatcherDlg::OnSysCommand(UINT nID, LPARAM lParam) +{ + if ((nID & 0xFFF0) == IDM_ABOUTBOX) + { + CUTSampleAboutDlg dlgAbout(IDR_MAINFRAME,ID_DESCRIPTION_FILE); + dlgAbout.DoModal(); + } + else + { + CDialog::OnSysCommand(nID, lParam); + } +} + +// If you add a minimize button to your dialog, you will need the code below +// to draw the icon. For MFC applications using the document/view model, +// this is automatically done for you by the framework. + +void CFileWatcherDlg::OnPaint() +{ + if (IsIconic()) + { + CPaintDC dc(this); // device context for painting + + SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); + + // Center icon in client rectangle + int cxIcon = GetSystemMetrics(SM_CXICON); + int cyIcon = GetSystemMetrics(SM_CYICON); + CRect rect; + GetClientRect(&rect); + int x = (rect.Width() - cxIcon + 1) / 2; + int y = (rect.Height() - cyIcon + 1) / 2; + + // Draw the icon + dc.DrawIcon(x, y, m_hIcon); + } + else + { + CDialog::OnPaint(); + } +} + +// The system calls this to obtain the cursor to display while the user drags +// the minimized window. +HCURSOR CFileWatcherDlg::OnQueryDragIcon() +{ + return (HCURSOR) m_hIcon; +} + + +void CFileWatcherDlg::OnAddDir() +// --- In : +// --- Out : +// --- Returns : +// --- Effect : Responds to the 'Add dir...' button +{ + CEnterNewDir dlg; + CString str; + + // Gets the watched directory and filter + if(dlg.DoModal() == IDOK) + { + if(!dlg.m_sDir.IsEmpty()) + { + DWORD filter=0; + + // Determines the watch filter + if( dlg.m_bChangeAttributes) + { + filter |= COXFileWatcher::OXFileWatchChangeAttributes; + } + if( dlg.m_bChangeCreation) + { + filter |= COXFileWatcher::OXFileWatchChangeCreation; + } + if( dlg.m_bChangeDirName) + { + filter |= COXFileWatcher::OXFileWatchChangeDirName; + } + if( dlg.m_bChangeFileName) + { + filter |= COXFileWatcher::OXFileWatchChangeFileName; + } + if( dlg.m_bChangeLastAccess) + { + filter |= COXFileWatcher::OXFileWatchChangeLastAccess; + } + if( dlg.m_bChangeLastWrite) + { + filter |= COXFileWatcher::OXFileWatchChangeLastWrite; + } + if( dlg.m_bChangeSecurity) + { + filter |= COXFileWatcher::OXFileWatchChangeSecurity; + } + if( dlg.m_bChangeSize) + { + filter |= COXFileWatcher::OXFileWatchChangeSize; + } + + if( fwWatcher.AddWatch( dlg.m_sDir, dlg.m_bSubTree, filter)) + { + // If the directory is added set the window for notifications + fwWatcher.EnableWindowNotification( dlg.m_sDir, this, TRUE); + + // Fills the listbox in the dialog + + // First check if the path isn't in the list + _PathInfo* pi = NULL; + int i=0; + for(i=0; im_sPath == dlg.m_sDir) break; + } + if( i > m_arPaths.GetUpperBound()) + { + // Add new path + LV_ITEM lvi; + + // Initialize LV_ITEM members that are common to all items. + lvi.mask = LVIF_TEXT; + lvi.iItem = m_lbWatchedDirs.GetItemCount(); + lvi.iSubItem = 0; + lvi.pszText = (LPTSTR)(LPCTSTR)dlg.m_sDir; + if(m_lbWatchedDirs.InsertItem( &lvi) != -1) + { + lvi.iSubItem = 1; + + str.LoadString((dlg.m_bSubTree)?IDS_YES:IDS_NO); + lvi.pszText = (LPTSTR)(LPCTSTR)str; + + if(m_lbWatchedDirs.SetItem( &lvi)) + { + lvi.iSubItem = 2; + lvi.pszText = (LPTSTR)(LPCTSTR)GetStringFromFilter( filter, str); + + if(m_lbWatchedDirs.SetItem( &lvi)) + { + _PathInfo* piNewPath= new _PathInfo( dlg.m_sDir, dlg.m_bSubTree, filter); + if( piNewPath!=NULL) + { + m_arPaths.Add( piNewPath); + } + } + } + } + } + else + { + pi->m_bSubTree |= dlg.m_bSubTree; + pi->m_dwFilter |= filter; + + LV_ITEM lvi; + lvi.mask = LVIF_TEXT; + lvi.iItem = i; + + str.LoadString((pi->m_bSubTree)?IDS_YES:IDS_NO); + lvi.iSubItem = 1; + lvi.pszText = (LPTSTR)(LPCTSTR)str; + m_lbWatchedDirs.SetItem( &lvi); + + lvi.iSubItem = 2; + lvi.pszText = (LPTSTR)(LPCTSTR)GetStringFromFilter( pi->m_dwFilter, str); + m_lbWatchedDirs.SetItem( &lvi); + } + } + else + { +#ifdef _DEBUG + str=COXFileWatcher::GetResultMessage( fwWatcher.GetLastError()); +#else + + // Ghazi Code Change + str = " Please confirm that you have checked at least one selection";//IDS_SOMETHING_WRONG); +#endif + MessageBox( str); + } + } + else + { + str.LoadString( IDS_NO_PATH); + MessageBox( str, NULL, MB_ICONEXCLAMATION); + } + } +} + +void CFileWatcherDlg::OnRemoveDir() +// --- In : +// --- Out : +// --- Returns : +// --- Effect : Responds to the 'Remove dir' button +{ + // Is any thing selected? + if( m_lbWatchedDirs.GetSelectedCount( )==0) + { + CString str; + str.LoadString( IDS_NO_DIR_IS_SELECTED); + MessageBox( str); + return; + } + + int inx=m_lbWatchedDirs.GetNextItem( -1, LVNI_ALL|LVNI_SELECTED); + if( inx != -1) + { + _PathInfo* pi=(_PathInfo*)m_arPaths[inx]; + fwWatcher.RemoveWatch( pi->m_sPath); + m_lbWatchedDirs.DeleteItem( inx); + m_arPaths.RemoveAt(inx); + delete pi; + } + m_lbWatchedDirs.SetFocus(); +} + +LRESULT CFileWatcherDlg::OnFileNotify(WPARAM wP, LPARAM) +// --- In : wP: the ID of the Notifier object +// --- Out : +// --- Returns : ... +// --- Effect : Responds to the notification message from FileWatcher +{ + CString str; + + COXFileWatchNotifier fwnNotifier; + fwnNotifier = fwWatcher.GetFileWatchNotifier( wP); + + // If the wP is an invalid ID then the notifier is empty + if( !fwnNotifier.IsEmpty()) + { + LV_ITEM lvi; + + // Initialize LV_ITEM members that are common to all items. + lvi.mask = LVIF_TEXT; + lvi.iItem = m_lbNotifications.GetItemCount(); + lvi.iSubItem = 0; + lvi.pszText = (LPTSTR)(LPCTSTR)fwnNotifier.GetPath(); + m_lbNotifications.InsertItem( &lvi); + + CString time=fwnNotifier.GetNotificationTime().Format(_T("%H:%M:%S")); + lvi.iSubItem = 1; + lvi.pszText = (LPTSTR)(LPCTSTR)time; + m_lbNotifications.SetItem( &lvi); + + lvi.iSubItem = 2; + str.LoadString((fwnNotifier.IsExtendedInfoAvailable())?IDS_YES:IDS_NO); + lvi.pszText = (LPTSTR)(LPCTSTR)str; + m_lbNotifications.SetItem( &lvi); + + if( fwnNotifier.IsExtendedInfoAvailable()) + { + lvi.iSubItem = 3; + lvi.pszText = (LPTSTR)(LPCTSTR)GetStringFromAction(fwnNotifier.GetAction(), str); + m_lbNotifications.SetItem( &lvi); + + lvi.iSubItem = 4; + lvi.pszText = (LPTSTR)(LPCTSTR)fwnNotifier.GetFileName(); + m_lbNotifications.SetItem( &lvi); + + lvi.iSubItem = 5; + lvi.pszText = (LPTSTR)(LPCTSTR)fwnNotifier.GetNewFileName(); + m_lbNotifications.SetItem( &lvi); + } + + if( m_lbNotifications.GetItemCount()>MAX_NOTIFICATION) + { + m_lbNotifications.DeleteItem( 0); + } + m_lbNotifications.EnsureVisible( m_lbNotifications.GetItemCount()-1, FALSE); + } + return 0; +} + + +CString& CFileWatcherDlg::GetStringFromFilter( DWORD dwFilter, CString& str) +// --- In : dwFilter: value of the filter +// --- Out : str: text description of the value in the dwFilter +// --- Returns : A reference to the str +// --- Effect : Converts the given filter value to the textual representation +{ + CString tmp; + CString sep; + + sep.LoadString( IDS_SEPARATOR); + + str.Empty(); + if( dwFilter & COXFileWatcher::OXFileWatchChangeFileName) + { + tmp.LoadString( IDS_CH_FILE_NAME); + str = tmp; + } + if( dwFilter & COXFileWatcher::OXFileWatchChangeDirName) + { + tmp.LoadString( IDS_CH_DIR_NAME); + if( str.GetLength()>0) str+=sep; + str += tmp; + } + if( dwFilter & COXFileWatcher::OXFileWatchChangeAttributes) + { + tmp.LoadString( IDS_CH_ATTR); + if( str.GetLength()>0) str+=sep; + str += tmp; + } + if( dwFilter & COXFileWatcher::OXFileWatchChangeSize) + { + tmp.LoadString( IDS_CH_SIZE); + if( str.GetLength()>0) str+=sep; + str += tmp; + } + if( dwFilter & COXFileWatcher::OXFileWatchChangeLastWrite) + { + tmp.LoadString( IDS_CH_LAST_WRITE); + if( str.GetLength()>0) str+=sep; + str += tmp; + } + if( dwFilter & COXFileWatcher::OXFileWatchChangeLastAccess) + { + tmp.LoadString( IDS_CH_LAST_ACCESS); + if( str.GetLength()>0) str+=sep; + str += tmp; + } + if( dwFilter & COXFileWatcher::OXFileWatchChangeCreation) + { + tmp.LoadString( IDS_CH_CREATION); + if( str.GetLength()>0) str+=sep; + str += tmp; + } + if( dwFilter & COXFileWatcher::OXFileWatchChangeSecurity) + { + tmp.LoadString( IDS_CH_SECURITY); + if( str.GetLength()>0) str+=sep; + str += tmp; + } + return str; +} + +CString& CFileWatcherDlg::GetStringFromAction( DWORD dwAction, CString& str) +// --- In : dwAction: value of the action +// --- Out : str: text description of the value in the dwAction +// --- Returns : A reference to the str +// --- Effect : Converts the given action value to the textual representation +{ + str.Empty(); + + if( dwAction == COXFileWatchNotifier::OXFileWatchActionAdded) + { + str.LoadString( IDS_ADDED); + return str; + } + if( dwAction == COXFileWatchNotifier::OXFileWatchActionRemoved) + { + str.LoadString( IDS_REMOVED); + return str; + } + if( dwAction == COXFileWatchNotifier::OXFileWatchActionModified) + { + str.LoadString( IDS_MODIFIED); + return str; + } + if( dwAction == COXFileWatchNotifier::OXFileWatchActionRename) + { + str.LoadString( IDS_RENAME); + return str; + } + return str; +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcherDlg.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcherDlg.h new file mode 100644 index 0000000..175a357 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcherDlg.h @@ -0,0 +1,51 @@ +// FileWatcherDlg.h : header file +// + +#include "OXFileWatcher.h" + +///////////////////////////////////////////////////////////////////////////// +// CFileWatcherDlg dialog + +class CFileWatcherDlg : public CDialog +{ + COXFileWatcher fwWatcher; + +// Construction +public: + ~CFileWatcherDlg(); + CFileWatcherDlg(CWnd* pParent = NULL); // standard constructor + + CString& GetStringFromFilter( DWORD Filter, CString& str); + CString& GetStringFromAction( DWORD Action, CString& str); + +// Dialog Data + //{{AFX_DATA(CFileWatcherDlg) + enum { IDD = IDD_FILEWATCHER_DIALOG }; + CListCtrl m_lbWatchedDirs; + CListCtrl m_lbNotifications; + //}}AFX_DATA + + CPtrArray m_arPaths; + + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CFileWatcherDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + HICON m_hIcon; + + // Generated message map functions + //{{AFX_MSG(CFileWatcherDlg) + virtual BOOL OnInitDialog(); + afx_msg void OnSysCommand(UINT nID, LPARAM lParam); + afx_msg void OnPaint(); + afx_msg HCURSOR OnQueryDragIcon(); + afx_msg void OnAddDir(); + afx_msg void OnRemoveDir(); + afx_msg LRESULT OnFileNotify(WPARAM, LPARAM); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcherInfo.rtf b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/FileWatcherInfo.rtf new file mode 100644 index 0000000000000000000000000000000000000000..f2db24d562f466496fc8f7017eb3ff0d03cf9719 GIT binary patch literal 2055 zcmb_dO>Y}F6zn-b|HHe*EgWGb8%YqKlGXuwND9Ob(gQDVcONCDTyjBj^$|n=Jws|` zS&oCEaR5P(_K|$Uc{8&&DkMEs?4nVvXkF#+#Py3=b)&R*Db*G~Dy8Gf#7OV1=n9MJ zN`lcBTa>0s2j8(%x><0Dl4f+Z>1uCFbv9P%+H?}>y{za%UR{c3-z{!`eR883Z+$?2 z6{M}yJczhT)pn5T;+sd)*~<%T%IGb-`LsGaQ$2@P^_C5=0Y^N4sTw_{x5mmRPR&9B zHI`$%yJmJygk!Lkjvk{ieYDARoP@5uw{QHK{`mW!|2pi!v-TaX7qUZe|0ENM$4Xjo zA|K}L%oh--0iHm#n+rLgj5ZA?<1rEAu*VHujca*LtqIa39}G6dq3^Acmg)^9^cTOP403fi3C5HMz$rtrn(PP{WRDA-|LmOxudfy;}%kiG7992_3GM zSF??t8tsJJMM4n5W(B+!D9@oSzj;{!OuSN!flxv^v{rxZ**V5TFdlA6iU;LrENI(k~|pS}f-AxM06RKBw* zYtS0lNon)!>^WTZyXqZ2c4=#y@Bo#g%<%OOAdx>E59A<`wrrRVP+3^%(FcRZB?w) z-twFU2mM;pnFKv}XE#}Qykui@V+^|UVe`25`=RD$qZ}DZY)Sh-1(9)c*oFd{Wm)Eo zD%vkapaUl`7CUfIyVDD; z*~_t)1}T6m?m5}yd*{+>;X(J|aYBOrjEh2D!87s`afDVSF*4n`=Y!FdbEWq&nmqoK zrQxi@d*PBnGkq#q5cgs52$5c{Q(zcE`vOvcw@fGxXa^GEle4vB5Y{ws4ct>`dqB`9 zh3|ugy}O0_{+iAwRfdnWk?;t}ABKI5w+B%z5NPcwAwR!yc1Dg+O~wtdKEib6!@u7h Q@V%EIygj~~@Y?+4D>KF0VE_OC literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/StdAfx.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/StdAfx.cpp new file mode 100644 index 0000000..dc84615 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/StdAfx.cpp @@ -0,0 +1,6 @@ +// stdafx.cpp : source file that includes just the standard includes +// FileWatcher.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/StdAfx.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/StdAfx.h new file mode 100644 index 0000000..520a697 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/StdAfx.h @@ -0,0 +1,18 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers + +#include // MFC core and standard components +#include // MFC extensions +#include +#include +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for Windows Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/res/FileWatcher.ico b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/res/FileWatcher.ico new file mode 100644 index 0000000000000000000000000000000000000000..c2691f495b7243024c97107dda0395d42a5da75c GIT binary patch literal 1078 zcmcIjv2KGf6g<*M9f&Z05T+`BkqnIaq^fx9)^B0=g4B%u2(on|?v{$dy=OvVB8FB~ zUpU{L-@`WW0wh?VC~`=AEPy9+o)3PL0NDeu;aoxNhy+WHfM)G{XeOD_dLWLJXqtvB z2_G(aFN)w#reyesNR2V^vcL9qeD}Q0x;9R9jA$Yg-^B&g+0FBSrq0G2(pr3a^+tSc zt{#x|&8Koc6MK0=6Rm&mA@5_{juMz0H_VI!R~n@-m#XjI$HcRK>L)HmJYB9;o^^`2I{d>K5Ao4d$^v6T%m4d(FJmvEHo`->OFs<;fSU zht0U3mp;#lg1GiM^?YddI5X_&KpZK5)aRkyhkpU&!}1E~M$NC+65YuKoV<5Du4|Ob spxnwf(myL}tyI|qxg+lnwxd7Tec39<`LdL|O2$sPrEs|u;&y+EZ|N)UB>(^b literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/res/FileWatcher.rc2 b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/res/FileWatcher.rc2 new file mode 100644 index 0000000..6b2e2eb --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/res/FileWatcher.rc2 @@ -0,0 +1,13 @@ +// +// FILEWATCHER.RC2 - resources Microsoft Visual C++ does not edit directly +// + +#ifdef APSTUDIO_INVOKED + #error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// Add manually edited resources here... + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/resource.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/resource.h new file mode 100644 index 0000000..09b1107 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/FileWatcher/resource.h @@ -0,0 +1,62 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by FileWatcher.rc +// +#define IDM_ABOUTBOX 0x0010 +#define IDD_ABOUTBOX 100 +#define IDS_ABOUTBOX 101 +#define IDD_FILEWATCHER_DIALOG 130 +#define IDS_DIRECTORY 102 +#define IDS_WATCH_SUBDIRS 103 +#define IDS_FILTER 104 +#define IDS_TIME 105 +#define IDS_EXTENDED_INFO 106 +#define IDS_ACTION 107 +#define IDS_FILE_NAME 108 +#define IDS_NEW_FILE_NAME 109 +#define IDS_CH_FILE_NAME 110 +#define IDS_CH_DIR_NAME 111 +#define IDS_CH_ATTR 112 +#define IDS_CH_SIZE 113 +#define IDS_CH_LAST_WRITE 114 +#define IDS_CH_LAST_ACCESS 115 +#define IDS_CH_CREATION 116 +#define IDS_CH_SECURITY 117 +#define IDS_YES 118 +#define IDS_NO 119 +#define IDS_ADDED 120 +#define IDS_REMOVED 121 +#define IDS_MODIFIED 122 +#define IDS_RENAME 123 +#define IDS_SEPARATOR 124 +#define IDS_SOMETHING_WRONG 125 +#define IDS_NO_PATH 126 +#define IDS_NO_DIR_IS_SELECTED 127 +#define IDR_MAINFRAME 128 +#define IDD_ENTER_DIR 129 +#define ID_DESCRIPTION_FILE 129 +#define IDC_ADD_DIR 1005 +#define IDC_REMOVE_DIR 1006 +#define IDC_DIR 1007 +#define IDC_WATCH_SUB_TREE 1008 +#define IDC_CHANGE_FILE_NAME 1009 +#define IDC_CHANGE_DIR_NAME 1010 +#define IDC_CHANGE_ATTRIBUTES 1011 +#define IDC_CHANGE_SIZE 1012 +#define IDC_CHANGE_LAST_WRITE 1013 +#define IDC_CHANGE_LAST_ACCESS 1014 +#define IDC_CHANGE_CREATION 1015 +#define IDC_CHANGE_SECURITY 1016 +#define IDC_WATCHED_DIRS 1020 +#define IDC_NOTIFICATIONS 1021 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 130 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 1022 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/OXCheck.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/OXCheck.h new file mode 100644 index 0000000..480bc2f --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/OXCheck.h @@ -0,0 +1,39 @@ +// ========================================================================== +// Check specification +//----------------- Dundas Software ---------------------------------------- +//======================================================================== + +// Header file : OXCheck.h +// ////////////////////////////////////////////////////////////////////////// + +#define INIT_CHECK() \ + int _v = 0; \ + int _cv = 0; \ + CString _s,_cs; \ + CString _sMsg; \ + int errors = 0; \ + int total = 0; \ + int number = 1; + +#define CHECK(value, correctValue) \ + _v = (int)(value); _cv = (int)(correctValue); total++; \ + _sMsg.Format(_T(" %2.2i (line %4.4i). %14.14s %i == %i"), number++, __LINE__, \ + ((_v == _cv) ? _T("Correct") : _T("* INCORRECT *")), _v, _cv); \ + TRACE1("%s\n", _sMsg); \ + if (_v != _cv) { errors++; AfxMessageBox(_sMsg, MB_ICONEXCLAMATION); } + +#define CHECKS(value, correctValue) \ + _s = (value); _cs = (correctValue); total++; \ + _sMsg.Format(_T(" %2.2i (line %4.4i). %14.14s %s == %s"), number++, __LINE__, \ + ((_s == _cs) ? _T("Correct") : _T("* INCORRECT *")), _s, _cs); \ + TRACE1("%s\n", _sMsg); \ + if (_s != _cs) { errors++; AfxMessageBox(_sMsg, MB_ICONEXCLAMATION); } + +#define RESET_NUMBER(Tx) \ + number = 1; \ + TRACE1("\n%s\n", _T(Tx)); + +#define SHOW_RESULT() \ + TRACE2("\n*** Errors --- %i / %i\n", errors, total); + +// ////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/StdAfx.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/StdAfx.cpp new file mode 100644 index 0000000..67dd54c --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/StdAfx.cpp @@ -0,0 +1,6 @@ +// stdafx.cpp : source file that includes just the standard includes +// URLDemo.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/StdAfx.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/StdAfx.h new file mode 100644 index 0000000..8f23074 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/StdAfx.h @@ -0,0 +1,20 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers + +#include // MFC core and standard components +#include // MFC extensions +#include // MFC OLE extensions + +#include + +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for Windows Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/UNCListDlg.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/UNCListDlg.cpp new file mode 100644 index 0000000..e872bbd --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/UNCListDlg.cpp @@ -0,0 +1,94 @@ +// UNCListDlg.cpp : implementation file +// + +#include "stdafx.h" +#include "URLDemo.h" +#include "UNCListDlg.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CUNCListDlg dialog + + +CUNCListDlg::CUNCListDlg(CWnd* pParent /*=NULL*/) + : CDialog(CUNCListDlg::IDD, pParent) +{ + //{{AFX_DATA_INIT(CUNCListDlg) + // NOTE: the ClassWizard will add member initialization here + //}}AFX_DATA_INIT +} + + +void CUNCListDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CUNCListDlg) + DDX_Control(pDX, IDCANCEL, m_wndClose); + DDX_Control(pDX, IDC_LIST, m_wndList); + //}}AFX_DATA_MAP +} + + +BEGIN_MESSAGE_MAP(CUNCListDlg, CDialog) + //{{AFX_MSG_MAP(CUNCListDlg) + ON_WM_TIMER() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CUNCListDlg message handlers + +void CUNCListDlg::SetSearchUnc(COXIteratorUNC iterUNC, BOOL bFiles, BOOL bDirs, + BOOL bRecursive, BOOL bDepthFirst) + { + m_iterUNC = iterUNC; + m_bFiles = bFiles; + m_bDirs = bDirs; + m_bRecursive = bRecursive; + m_bDepthFirst = bDepthFirst; + } + +BOOL CUNCListDlg::OnInitDialog() + { + CDialog::OnInitDialog(); + + // ... Set a timer so that the list will be filled whan this window is + // fully initialized and visisble + SetTimer(0, 10, NULL); + + return TRUE; // return TRUE unless you set the focus to a control + // EXCEPTION: OCX Property Pages should return FALSE + } + +void CUNCListDlg::OnTimer(UINT nIDEvent) + { + if (!IsWindowVisible()) + // ... Only start the list when we are visible, + // otherwise wait for the next timer event. + return; + + // ... Kill the running timer + KillTimer(0); + + m_wndClose.EnableWindow(FALSE); + + int nTopIndex = 0; + m_iterUNC.Start(m_bFiles, m_bDirs, m_bRecursive, m_bDepthFirst); + while(!m_iterUNC.IsEmpty()) + { + m_wndList.AddString(m_iterUNC); + m_wndList.SetTopIndex(nTopIndex++); + m_wndList.RedrawWindow(NULL, NULL, RDW_UPDATENOW); + m_iterUNC++; + } + m_iterUNC.End(); + + m_wndClose.EnableWindow(TRUE); + + CDialog::OnTimer(nIDEvent); + } diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/UNCListDlg.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/UNCListDlg.h new file mode 100644 index 0000000..9562fa8 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/UNCListDlg.h @@ -0,0 +1,46 @@ +// UNCListDlg.h : header file +// + +///////////////////////////////////////////////////////////////////////////// +// CUNCListDlg dialog + +#include "OXIteratorUNC.h" + +class CUNCListDlg : public CDialog +{ +// Construction +public: + void SetSearchUnc (COXIteratorUNC iterUNC, BOOL bFiles, BOOL bDirs, + BOOL bRecursive, BOOL bDepthFirst); + CUNCListDlg(CWnd* pParent = NULL); // standard constructor + +// Dialog Data + //{{AFX_DATA(CUNCListDlg) + enum { IDD = IDD_UNC_LIST }; + CButton m_wndClose; + CListBox m_wndList; + //}}AFX_DATA + + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CUNCListDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + BOOL m_bRecursive; + BOOL m_bDirs; + BOOL m_bFiles; + BOOL m_bDepthFirst; + COXIteratorUNC m_iterUNC; + + // Generated message map functions + //{{AFX_MSG(CUNCListDlg) + virtual BOOL OnInitDialog(); + afx_msg void OnTimer(UINT nIDEvent); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.clw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.clw new file mode 100644 index 0000000..3e760ec --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.clw @@ -0,0 +1,95 @@ +; CLW file contains information for the MFC ClassWizard + +[General Info] +Version=1 +LastClass=CURLDemoApp +LastTemplate=CDialog +NewFileInclude1=#include "stdafx.h" +NewFileInclude2=#include "urldemo.h" +LastPage=0 + +ClassCount=3 +Class1=CUNCListDlg +Class2=CURLDemoApp +Class3=CURLDemoDlg + +ResourceCount=2 +Resource1=IDD_UNC_LIST (Dutch (Belgium)) +Resource2=IDD_URLDEMO_DIALOG (Dutch (Belgium)) + +[CLS:CUNCListDlg] +Type=0 +BaseClass=CDialog +HeaderFile=UNCListDlg.h +ImplementationFile=UNCListDlg.cpp +LastObject=CUNCListDlg + +[CLS:CURLDemoApp] +Type=0 +BaseClass=CWinApp +HeaderFile=URLDemo.h +ImplementationFile=URLDemo.cpp +Filter=N +VirtualFilter=AC +LastObject=CURLDemoApp + +[CLS:CURLDemoDlg] +Type=0 +BaseClass=CDialog +HeaderFile=URLDemoDlg.h +ImplementationFile=URLDemoDlg.cpp +LastObject=IDC_TEST + +[DLG:IDD_UNC_LIST] +Type=1 +Class=CUNCListDlg + +[DLG:IDD_URLDEMO_DIALOG] +Type=1 +Class=CURLDemoDlg + +[DLG:IDD_URLDEMO_DIALOG (Dutch (Belgium))] +Type=1 +Class=? +ControlCount=33 +Control1=IDC_STATIC,static,1342308352 +Control2=IDC_URL_UNC,edit,1350631552 +Control3=IDC_SPLIT_URL,button,1342242816 +Control4=IDC_COMBINE_URL,button,1342242816 +Control5=IDC_SPLIT_UNC,button,1342242816 +Control6=IDC_COMBINE_UNC,button,1342242816 +Control7=IDC_STATIC,button,1342177287 +Control8=IDC_STATIC,static,1342308352 +Control9=IDC_PROTOCOL,edit,1350631552 +Control10=IDC_URL_PART,button,1342242819 +Control11=IDC_STATIC,static,1342308352 +Control12=IDC_PORT,edit,1350631552 +Control13=IDC_STATIC,static,1342308352 +Control14=IDC_SERVER,edit,1350631552 +Control15=IDC_STATIC,static,1342308352 +Control16=IDC_SHARE,edit,1350631552 +Control17=IDC_STATIC,static,1342308352 +Control18=IDC_DIRECTORY,edit,1350631552 +Control19=IDC_STATIC,static,1342308352 +Control20=IDC_FILE,edit,1350631552 +Control21=IDC_STATIC,static,1342308352 +Control22=IDC_BASE_NAME,static,1342308352 +Control23=IDC_STATIC,static,1342308352 +Control24=IDC_EXTENSION,static,1342308352 +Control25=IDC_STATIC,static,1342308352 +Control26=IDC_STATIC,static,1342308352 +Control27=IDC_INCLUDE_FILES,button,1342242819 +Control28=IDC_INCLUDE_DIRS,button,1342242819 +Control29=IDC_RECURSIVE,button,1342242819 +Control30=IDC_LIST,button,1342242817 +Control31=IDC_TEST,button,1073807360 +Control32=IDCANCEL,button,1342242816 +Control33=IDC_DEPTH_FIRST,button,1342242819 + +[DLG:IDD_UNC_LIST (Dutch (Belgium))] +Type=1 +Class=? +ControlCount=2 +Control1=IDCANCEL,button,1342242817 +Control2=IDC_LIST,listbox,1352728833 + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.cpp new file mode 100644 index 0000000..3f9e2df --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.cpp @@ -0,0 +1,92 @@ +// URLDemo.cpp : Defines the class behaviors for the application. +// + +#include "stdafx.h" +#include "URLDemo.h" +#include "URLDemoDlg.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CURLDemoApp + +BEGIN_MESSAGE_MAP(CURLDemoApp, CWinApp) + //{{AFX_MSG_MAP(CURLDemoApp) + // 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() + +///////////////////////////////////////////////////////////////////////////// +// CURLDemoApp construction + +CURLDemoApp::CURLDemoApp() +{ + // TODO: add construction code here, + // Place all significant initialization in InitInstance +} + +///////////////////////////////////////////////////////////////////////////// +// The one and only CURLDemoApp object + +CURLDemoApp theApp; +static HINSTANCE g_hRichEdDLL=NULL; + +///////////////////////////////////////////////////////////////////////////// +// CURLDemoApp initialization + +BOOL CURLDemoApp::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. + + // Initialize RichEdit control + // for About Dialog + if(g_hRichEdDLL==NULL) + { + g_hRichEdDLL=::LoadLibrary(_T("RICHED32.DLL")); + if(g_hRichEdDLL==NULL) + TRACE(_T("Cannot load library to display RichEditTextControl")); + } + + + CURLDemoDlg dlg; + m_pMainWnd = &dlg; + switch(dlg.DoModal()) + { + case IDOK: + { + // TODO: Place code here to handle when the dialog is + // dismissed with OK + } + break; + case IDCANCEL: + { + // TODO: Place code here to handle when the dialog is + // dismissed with Cancel + } + break; + } + + // Since the dialog has been closed, return FALSE so that we exit the + // application, rather than start the application's message pump. + return FALSE; +} + +int CURLDemoApp::ExitInstance() +{ + // TODO: Add your specialized code here and/or call the base class + + // unload the library + if(g_hRichEdDLL!=NULL) + ::FreeLibrary(g_hRichEdDLL); + + return CWinApp::ExitInstance(); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.dsp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.dsp new file mode 100644 index 0000000..9da331d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.dsp @@ -0,0 +1,285 @@ +# Microsoft Developer Studio Project File - Name="URLDemo" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=URLDemo - Win32 Unicode_Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "URLDemo.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "URLDemo.mak" CFG="URLDemo - Win32 Unicode_Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "URLDemo - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "URLDemo - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE "URLDemo - Win32 Release_Shared" (based on "Win32 (x86) Application") +!MESSAGE "URLDemo - Win32 Unicode_Debug" (based on "Win32 (x86) Application") +!MESSAGE "URLDemo - Win32 Unicode_Release" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "URLDemo - Win32 Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir ".\Release" +# PROP BASE Intermediate_Dir ".\Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir ".\Release" +# PROP Intermediate_Dir ".\Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x813 /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x813 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"URLDemo.exe" + +!ELSEIF "$(CFG)" == "URLDemo - Win32 Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir ".\Debug" +# PROP BASE Intermediate_Dir ".\Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir ".\Debug" +# PROP Intermediate_Dir ".\Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x813 /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x813 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 +# ADD LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"URLDemo.exe" + +!ELSEIF "$(CFG)" == "URLDemo - Win32 Release_Shared" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "URLDemo_" +# PROP BASE Intermediate_Dir "URLDemo_" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release_Shared" +# PROP Intermediate_Dir "Release_Shared" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x813 /d "NDEBUG" +# ADD RSC /l 0x813 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /out:"URLDemo.exe" +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"URLDemo.exe" + +!ELSEIF "$(CFG)" == "URLDemo - Win32 Unicode_Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "URLDemo0" +# PROP BASE Intermediate_Dir "URLDemo0" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Unicode_Debug" +# PROP Intermediate_Dir "Unicode_Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W4 /Gm /GX /Zi /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x813 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x813 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"URLDemo.exe" +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /debug /machine:I386 /out:"URLDemo.exe" + +!ELSEIF "$(CFG)" == "URLDemo - Win32 Unicode_Release" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "URLDemo1" +# PROP BASE Intermediate_Dir "URLDemo1" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Unicode_Release" +# PROP Intermediate_Dir "Unicode_Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x813 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +# ADD RSC /l 0x813 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /out:"URLDemo.exe" +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /machine:I386 /out:"URLDemo.exe" + +!ENDIF + +# Begin Target + +# Name "URLDemo - Win32 Release" +# Name "URLDemo - Win32 Debug" +# Name "URLDemo - Win32 Release_Shared" +# Name "URLDemo - Win32 Unicode_Debug" +# Name "URLDemo - Win32 Unicode_Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90" +# Begin Group "UTSource" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\source\UTSampleAbout\HtmlCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXIteratorUNC.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXIteratorUNC.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXUNC.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXUNC.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXUNCStandardActor.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXURL.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\UTBStrOp.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\UTSampleAbout\UTSampleAbout.cpp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# Begin Source File + +SOURCE=.\UNCListDlg.cpp +# End Source File +# Begin Source File + +SOURCE=.\URLDemo.cpp +# End Source File +# Begin Source File + +SOURCE=.\URLDemo.rc +# End Source File +# Begin Source File + +SOURCE=.\URLDemoDlg.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd" +# Begin Source File + +SOURCE=.\OXCheck.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXURL.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# Begin Source File + +SOURCE=.\UNCListDlg.h +# End Source File +# Begin Source File + +SOURCE=.\URLDemo.h +# End Source File +# Begin Source File + +SOURCE=.\URLDemoDlg.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\res\URLDemo.ico +# End Source File +# Begin Source File + +SOURCE=.\res\URLDemo.rc2 +# End Source File +# Begin Source File + +SOURCE=.\urldemoinfo.rtf +# End Source File +# End Group +# End Target +# End Project diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.dsw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.dsw new file mode 100644 index 0000000..a61a6fa --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "URLDemo"=".\URLDemo.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.exe.manifest b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.exe.manifest new file mode 100644 index 0000000..275675d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.exe.manifest @@ -0,0 +1,22 @@ + + + +Your app description here + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.h new file mode 100644 index 0000000..acf9778 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.h @@ -0,0 +1,38 @@ +// URLDemo.h : main header file for the URLDEMO application +// + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols + +///////////////////////////////////////////////////////////////////////////// +// CURLDemoApp: +// See URLDemo.cpp for the implementation of this class +// + +class CURLDemoApp : public CWinApp +{ +public: + CURLDemoApp(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CURLDemoApp) + public: + virtual BOOL InitInstance(); + virtual int ExitInstance(); + //}}AFX_VIRTUAL + +// Implementation + + //{{AFX_MSG(CURLDemoApp) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.rc b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.rc new file mode 100644 index 0000000..2092590 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.rc @@ -0,0 +1,248 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// Dutch (Belgium) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NLB) +#ifdef _WIN32 +LANGUAGE LANG_DUTCH, SUBLANG_DUTCH_BELGIAN +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""utsampleabout.rc""\r\n" + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif\r\n" + "#include ""res\\URLDemo.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "#include ""OXUNCStandartActor.rc""\r\n" + "#endif\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON DISCARDABLE "res\\URLDemo.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_URLDEMO_DIALOG DIALOGEX 0, 0, 226, 267 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +EXSTYLE WS_EX_APPWINDOW +CAPTION "URL Demo" +FONT 8, "MS Sans Serif", 0, 0, 0x1 +BEGIN + LTEXT "URL/UNC",IDC_STATIC,7,10,38,8 + EDITTEXT IDC_URL_UNC,52,7,167,14,ES_AUTOHSCROLL + PUSHBUTTON "&Split URL",IDC_SPLIT_URL,61,25,50,14 + PUSHBUTTON "&Combine URL",IDC_COMBINE_URL,126,25,50,14 + PUSHBUTTON "&Split UNC",IDC_SPLIT_UNC,61,44,50,14 + PUSHBUTTON "&Combine UNC",IDC_COMBINE_UNC,126,44,50,14 + GROUPBOX "Parts",IDC_STATIC,7,59,212,127 + LTEXT "Protocol",IDC_STATIC,11,71,36,8 + EDITTEXT IDC_PROTOCOL,52,68,40,14,ES_AUTOHSCROLL + CONTROL "Part of URL",IDC_URL_PART,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,126,70,50,10 + LTEXT "Port",IDC_STATIC,11,88,28,8 + EDITTEXT IDC_PORT,52,85,40,14,ES_AUTOHSCROLL + LTEXT "Server",IDC_STATIC,11,105,35,8 + EDITTEXT IDC_SERVER,52,102,117,14,ES_AUTOHSCROLL + LTEXT "Share",IDC_STATIC,11,122,25,8 + EDITTEXT IDC_SHARE,52,119,117,14,ES_AUTOHSCROLL + LTEXT "Directory",IDC_STATIC,11,139,40,8 + EDITTEXT IDC_DIRECTORY,52,136,117,14,ES_AUTOHSCROLL + LTEXT "File",IDC_STATIC,11,156,23,8 + EDITTEXT IDC_FILE,52,153,60,14,ES_AUTOHSCROLL + LTEXT "Basename",IDC_STATIC,118,156,43,8 + LTEXT "",IDC_BASE_NAME,164,156,47,8 + LTEXT "Extension",IDC_STATIC,118,172,36,8 + LTEXT "",IDC_EXTENSION,163,172,50,8 + LTEXT "File managment functions are fully supported but not shown in this demo : Copy, Delete, Rename, File attributes, File times and much more ...", + IDC_STATIC,7,188,212,24 + LTEXT "Fill out a UNC at the top, select which list you want and click List", + IDC_STATIC,7,216,212,8 + CONTROL "&Files",IDC_INCLUDE_FILES,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,227,31,10 + CONTROL "&Directories",IDC_INCLUDE_DIRS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,40,227,49,10 + CONTROL "&Recurse",IDC_RECURSIVE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,89,227,39,10 + DEFPUSHBUTTON "&List",IDC_LIST,176,227,43,14 + PUSHBUTTON "&Test",IDC_TEST,45,247,32,13,NOT WS_VISIBLE + PUSHBUTTON "Close",IDCANCEL,94,246,50,14 + CONTROL "&Depth first",IDC_DEPTH_FIRST,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,130,227,46,10 +END + +IDD_UNC_LIST DIALOG DISCARDABLE 0, 0, 244, 99 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "UNC List" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "Close",IDCANCEL,97,78,50,14 + LISTBOX IDC_LIST,7,7,230,65,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | + WS_TABSTOP +END + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,3 + PRODUCTVERSION 1,0,0,3 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "URLDEMO MFC Application\0" + VALUE "FileVersion", "1, 0, 0, 3\0" + VALUE "InternalName", "URLDEMO\0" + VALUE "LegalCopyright", "Copyright © 1998 Dundas Software Ltd.\0" + VALUE "OriginalFilename", "URLDEMO.EXE\0" + VALUE "ProductName", "URLDEMO Application\0" + VALUE "ProductVersion", "1, 0, 0, 3\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_URLDEMO_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 219 + TOPMARGIN, 7 + BOTTOMMARGIN, 260 + END + + IDD_UNC_LIST, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 237 + TOPMARGIN, 7 + BOTTOMMARGIN, 92 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_ABOUTBOX "&About URLDemo..." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDR_MAINFRAME "Ultimate tool box demo" + ID_DESCRIPTION_FILE "urldemoinfo.rtf" +END + +#endif // Dutch (Belgium) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#include "utsampleabout.rc" +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif +#include "res\URLDemo.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +#include "OXUNCStandartActor.rc" +#endif +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.vcproj b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.vcproj new file mode 100644 index 0000000..76d28d1 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemo.vcproj @@ -0,0 +1,1083 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemoDlg.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemoDlg.cpp new file mode 100644 index 0000000..1ecc4cd --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemoDlg.cpp @@ -0,0 +1,320 @@ +// URLDemoDlg.cpp : implementation file +// + +#include "stdafx.h" +#include "utsampleabout.h" +#include "URLDemo.h" +#include "URLDemoDlg.h" +#include "OXURL.h" +#include "OXIteratorUNC.h" +#include "OXCheck.h" +#include "UNCListDlg.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////// +// CURLDemoDlg dialog + +CURLDemoDlg::CURLDemoDlg(CWnd* pParent /*=NULL*/) +: CDialog(CURLDemoDlg::IDD, pParent) + { + //{{AFX_DATA_INIT(CURLDemoDlg) + m_sBaseName = _T(""); + m_sDirectory = _T(""); + m_sExtension = _T(""); + m_sFile = _T(""); + m_nPort = 0; + m_sProtocol = _T(""); + m_sServer = _T(""); + m_sShare = _T(""); + m_sURL_UNC = _T(""); + m_bURLPart = FALSE; + m_bIncludeDirs = FALSE; + m_bIncludeFiles = TRUE; + m_bRecursive = FALSE; + m_bDepthFirst = FALSE; + //}}AFX_DATA_INIT + // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 + m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); + } + +void CURLDemoDlg::DoDataExchange(CDataExchange* pDX) + { + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CURLDemoDlg) + DDX_Text(pDX, IDC_BASE_NAME, m_sBaseName); + DDX_Text(pDX, IDC_DIRECTORY, m_sDirectory); + DDX_Text(pDX, IDC_EXTENSION, m_sExtension); + DDX_Text(pDX, IDC_FILE, m_sFile); + DDX_Text(pDX, IDC_PORT, m_nPort); + DDX_Text(pDX, IDC_PROTOCOL, m_sProtocol); + DDX_Text(pDX, IDC_SERVER, m_sServer); + DDX_Text(pDX, IDC_SHARE, m_sShare); + DDX_Text(pDX, IDC_URL_UNC, m_sURL_UNC); + DDX_Check(pDX, IDC_URL_PART, m_bURLPart); + DDX_Check(pDX, IDC_INCLUDE_DIRS, m_bIncludeDirs); + DDX_Check(pDX, IDC_INCLUDE_FILES, m_bIncludeFiles); + DDX_Check(pDX, IDC_RECURSIVE, m_bRecursive); + DDX_Check(pDX, IDC_DEPTH_FIRST, m_bDepthFirst); + //}}AFX_DATA_MAP + } + +BEGIN_MESSAGE_MAP(CURLDemoDlg, CDialog) +//{{AFX_MSG_MAP(CURLDemoDlg) +ON_WM_SYSCOMMAND() +ON_WM_PAINT() +ON_WM_QUERYDRAGICON() +ON_BN_CLICKED(IDC_COMBINE_URL, OnCombineURL) +ON_BN_CLICKED(IDC_SPLIT_URL, OnSplitURL) + ON_BN_CLICKED(IDC_TEST, OnTest) + ON_BN_CLICKED(IDC_COMBINE_UNC, OnCombineUNC) + ON_BN_CLICKED(IDC_SPLIT_UNC, OnSplitUNC) + ON_BN_CLICKED(IDC_LIST, OnList) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CURLDemoDlg message handlers + +BOOL CURLDemoDlg::OnInitDialog() + { + CDialog::OnInitDialog(); + + // Add "About..." menu item to system menu. + + // IDM_ABOUTBOX must be in the system command range. + ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); + ASSERT(IDM_ABOUTBOX < 0xF000); + + CMenu* pSysMenu = GetSystemMenu(FALSE); + CString strAboutMenu; + strAboutMenu.LoadString(IDS_ABOUTBOX); + if (!strAboutMenu.IsEmpty()) + { + pSysMenu->AppendMenu(MF_SEPARATOR); + pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); + } + + // Set the icon for this dialog. The framework does this automatically + // when the application's main window is not a dialog + SetIcon(m_hIcon, TRUE); // Set big icon + SetIcon(m_hIcon, FALSE); // Set small icon + + // TODO: Add extra initialization here + + return TRUE; // return TRUE unless you set the focus to a control + } + +void CURLDemoDlg::OnSysCommand(UINT nID, LPARAM lParam) + { + if ((nID & 0xFFF0) == IDM_ABOUTBOX) + { + CUTSampleAboutDlg dlgAbout(IDR_MAINFRAME,ID_DESCRIPTION_FILE); + dlgAbout.DoModal(); + } + else + { + CDialog::OnSysCommand(nID, lParam); + } + } + +// If you add a minimize button to your dialog, you will need the code below +// to draw the icon. For MFC applications using the document/view model, +// this is automatically done for you by the framework. + +void CURLDemoDlg::OnPaint() + { + if (IsIconic()) + { + CPaintDC dc(this); // device context for painting + + SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); + + // Center icon in client rectangle + int cxIcon = GetSystemMetrics(SM_CXICON); + int cyIcon = GetSystemMetrics(SM_CYICON); + CRect rect; + GetClientRect(&rect); + int x = (rect.Width() - cxIcon + 1) / 2; + int y = (rect.Height() - cyIcon + 1) / 2; + + // Draw the icon + dc.DrawIcon(x, y, m_hIcon); + } + else + { + CDialog::OnPaint(); + } + } + +// The system calls this to obtain the cursor to display while the user drags +// the minimized window. +HCURSOR CURLDemoDlg::OnQueryDragIcon() + { + return (HCURSOR) m_hIcon; + } + +void CURLDemoDlg::OnSplitURL() + { + if (!UpdateData(TRUE)) + return; + + COXURL URL; + URL = m_sURL_UNC; + + // Get the result + m_sProtocol = URL.Protocol(); + m_nPort = URL.Port(); + m_sServer = URL.UNC().Server(); + m_sShare = URL.UNC().Share(); + m_sDirectory = URL.UNC().Directory(); + m_sFile = URL.UNC().File(); + m_sBaseName = URL.UNC().Base(); + m_sExtension = URL.UNC().Extension(); + m_bURLPart = URL.UNC().URLPart(); + + // Get the input parameters again + m_sURL_UNC = URL; + + m_sShare.Empty(); + + UpdateData(FALSE); + } + +void CURLDemoDlg::OnCombineURL() + { + if (!UpdateData(TRUE)) + return; + + COXURL URL; + URL.Protocol() = m_sProtocol; + URL.Port() = m_nPort; + URL.UNC().Server() = m_sServer; + URL.UNC().Share() = m_sShare; + URL.UNC().Directory() = m_sDirectory; + URL.UNC().File() = m_sFile; + + // Get the result + m_sURL_UNC = URL; + + // Get the input parameters again + m_sProtocol = URL.Protocol(); + m_nPort = URL.Port(); + m_sServer = URL.UNC().Server(); + m_sShare = URL.UNC().Share(); + m_sDirectory = URL.UNC().Directory(); + m_sFile = URL.UNC().File(); + m_sBaseName = URL.UNC().Base(); + m_sExtension = URL.UNC().Extension(); + m_bURLPart = URL.UNC().URLPart(); + + UpdateData(FALSE); + } + +void CURLDemoDlg::OnCombineUNC() + { + if (!UpdateData(TRUE)) + return; + + COXUNC UNC; + UNC.Server() = m_sServer; + UNC.Share() = m_sShare; + UNC.Directory() = m_sDirectory; + UNC.File() = m_sFile; + UNC.URLPart() = m_bURLPart; + + // Get the result + + // Visual C++ 5.0 reports error C2593: 'operator =' is ambiguous + // m_sURL_UNC = UNC; + // There are indeeds two ways to intepret the assignment + // One is to convert COXUNC to const COXUNC + // The other is to convert COXUNC to LPCTSTR + // Appearently both are of equal importance in VC 5.0 + m_sURL_UNC =UNC; + + // Get the input parameters again + m_sServer = UNC.Server(); + m_sShare = UNC.Share(); + m_sDirectory = UNC.Directory(); + m_sFile = UNC.File(); + m_sBaseName = UNC.Base(); + m_sExtension = UNC.Extension(); + m_bURLPart = UNC.URLPart(); + + m_sProtocol.Empty(); + m_nPort = 0; + + UpdateData(FALSE); + } + +void CURLDemoDlg::OnSplitUNC() + { + if (!UpdateData(TRUE)) + return; + + COXUNC UNC; + UNC = m_sURL_UNC; + UNC.URLPart() = m_bURLPart; + + m_sServer = UNC.Server(); + m_sShare = UNC.Share(); + m_sDirectory = UNC.Directory(); + m_sFile = UNC.File(); + m_sBaseName = UNC.Base(); + m_sExtension = UNC.Extension(); + m_bURLPart = UNC.URLPart(); + + // Get the input parameters again + // Visual C++ 5.0 reports error C2593: 'operator =' is ambiguous + // m_sURL_UNC = UNC; + // There are indeeds two ways to intepret the assignment + // One is to convert COXUNC to const COXUNC& + // The other is to convert COXUNC to LPCTSTR + // Appearently both are of equal importance in VC 5.0 + m_sURL_UNC = UNC; + + m_sProtocol.Empty(); + m_nPort = 0; + + UpdateData(FALSE); + } + +void CURLDemoDlg::OnTest() + { + + INIT_CHECK(); + UNREFERENCED_PARAMETER(_v); + UNREFERENCED_PARAMETER(_cv); + + RESET_NUMBER("CURLDemoDlg::OnTest : Iteration"); + { + COXIteratorUNC iter; + iter = _T("C:\\Temp\\*.*"); + iter.Start(); + while(!iter.IsEmpty()) + { + TRACE1("- %s\n", (LPCTSTR)iter); + iter++; + } + } + + SHOW_RESULT(); + } + + +void CURLDemoDlg::OnList() + { + if (!UpdateData(TRUE)) + return; + + CUNCListDlg UNCListDlg; + UNCListDlg.SetSearchUnc((LPCTSTR)m_sURL_UNC, m_bIncludeFiles, m_bIncludeDirs, + m_bRecursive, m_bDepthFirst); + UNCListDlg.DoModal(); + } diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemoDlg.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemoDlg.h new file mode 100644 index 0000000..89482d5 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/URLDemoDlg.h @@ -0,0 +1,56 @@ +// URLDemoDlg.h : header file +// + +///////////////////////////////////////////////////////////////////////////// +// CURLDemoDlg dialog + +class CURLDemoDlg : public CDialog +{ +// Construction +public: + CURLDemoDlg(CWnd* pParent = NULL); // standard constructor + +// Dialog Data + //{{AFX_DATA(CURLDemoDlg) + enum { IDD = IDD_URLDEMO_DIALOG }; + CString m_sBaseName; + CString m_sDirectory; + CString m_sExtension; + CString m_sFile; + int m_nPort; + CString m_sProtocol; + CString m_sServer; + CString m_sShare; + CString m_sURL_UNC; + BOOL m_bURLPart; + BOOL m_bIncludeDirs; + BOOL m_bIncludeFiles; + BOOL m_bRecursive; + BOOL m_bDepthFirst; + //}}AFX_DATA + + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CURLDemoDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + HICON m_hIcon; + + // Generated message map functions + //{{AFX_MSG(CURLDemoDlg) + virtual BOOL OnInitDialog(); + afx_msg void OnSysCommand(UINT nID, LPARAM lParam); + afx_msg void OnPaint(); + afx_msg HCURSOR OnQueryDragIcon(); + afx_msg void OnCombineURL(); + afx_msg void OnSplitURL(); + afx_msg void OnTest(); + afx_msg void OnCombineUNC(); + afx_msg void OnSplitUNC(); + afx_msg void OnList(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/res/URLDemo.ico b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/res/URLDemo.ico new file mode 100644 index 0000000000000000000000000000000000000000..7eef0bcbe6580a6f464d688906172c2d9de44262 GIT binary patch literal 1078 zcmc&zF>b>!3}jLb9s)T}@Kod(893@u8ajANzT`op9^o+)S?=nU(FD@%0s)Sg^oyC8{H z9myetc;MEP)59v(LMa~xK8Yu^jIR*H22uCFiq5%C{s7(PJi>o15i^bmX4(vPxWAio z9ryY#AU_jfnd047-@`)XzL?%iS$gQyFP{44kS9X)fN{{QoL~hO-&=q&20Zr*cxFAt PkaNE{wR~2C$NfnjhSXWT literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/res/URLDemo.rc2 b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/res/URLDemo.rc2 new file mode 100644 index 0000000..7172a43 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/res/URLDemo.rc2 @@ -0,0 +1,13 @@ +// +// URLDEMO.RC2 - resources Microsoft Visual C++ does not edit directly +// + +#ifdef APSTUDIO_INVOKED + #error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// Add manually edited resources here... + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/resource.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/resource.h new file mode 100644 index 0000000..414c11c --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/resource.h @@ -0,0 +1,42 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by URLDemo.rc +// +#define IDM_ABOUTBOX 0x0010 +#define IDD_ABOUTBOX 100 +#define IDS_ABOUTBOX 101 +#define IDD_URLDEMO_DIALOG 102 +#define IDR_MAINFRAME 128 +#define ID_DESCRIPTION_FILE 129 +#define IDD_UNC_LIST 130 +#define IDC_URL_UNC 1000 +#define IDC_PROTOCOL 1001 +#define IDC_PORT 1002 +#define IDC_SERVER 1003 +#define IDC_DIRECTORY 1004 +#define IDC_FILE 1005 +#define IDC_SPLIT_URL 1006 +#define IDC_COMBINE_URL 1007 +#define IDC_SPLIT_UNC 1008 +#define IDC_COMBINE_UNC 1009 +#define IDC_EXTENSION 1010 +#define IDC_BASE_NAME 1011 +#define IDC_TEST 1012 +#define IDC_SHARE 1013 +#define IDC_URL_PART 1015 +#define IDC_INCLUDE_FILES 1016 +#define IDC_INCLUDE_DIRS 1017 +#define IDC_RECURSIVE 1018 +#define IDC_LIST 1019 +#define IDC_DEPTH_FIRST 1021 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 131 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 1022 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/urldemoinfo.rtf b/UltimateToolbox93_samples/Ultimate Toolbox/samples/file/URLDemo/urldemoinfo.rtf new file mode 100644 index 0000000000000000000000000000000000000000..02ce44a43bc1b18cc4a2a5a5c87708f639cada2a GIT binary patch literal 1491 zcmaJ>%We}f6lIOXKinM+DkV*53v>lRMU`l&nntkj#xrxBSa|HI?MYgq{5!|ayG2M* zJmYij``noeAJwstHfT|?Qr+|)WpUQ)&V_O|#=_vCD^!^25a?=1Ly&36UaRv3pktxD ztECmHoJb!y_GtK67tUm~w?gSo*Bt1YXLOs`8SHON8-L$>PFcKqITxif&La!qx$26s zXSQ8Yn3lWe>8f{fvU`cwe7(n9Umo{9>~fb5_LyLtBWh}bk#>CC?e|3^eI*(rHA+Or zp?@k$^~g?QP(mu-8pBzxQ8b+xa)7+?Rx;!1N6jT z8In9Vo&(z$NK(q=!06vhal+&*)1zyt4NTgmM^BeFvbP+m@NO2^caGNiT}CRUrAkkA zwX{#(w2cmTO0h=_LU{<}Je96)9Q;bMm}X)o0gwioIUBckNTk2Alb-3*rb(%zM)yx4 zEBzM7T)YvD#m`JlVIm$NtHx?uA#%nW8y{jJUKeMJ#eR!u4rb(sn4}0?K)s6_@1lcp z))oGf16lnKA6*aD@G}i;XPb&_*3qP`s7Y>9BPi9Z(JLP%`Zt@f#XPhf)7{|a-Q~>@ zeYQJzHqjxEFNK~>bUDd$ktR4QI1RI+z#u|P=J9B)E=(W=PDWXa*t3l^FeRl8(*XwO zpbQTvKn*2#=%O`dshg42%K4gZR~Q*r%IJJ2JIiG(Vh&3S>6 zRQ*%ik0%rwF16Ya50;JceBWx+mXi(3bUHgBWL0f9V4Z_BIzFZZ@`CKdU-o88+ctOQ zI<1^>k(?sAD#zKJBwkxIDRn)sONFdT^itz>;2EPkq_1o^owsadjq}P)@&66Gxx+pr hd{FI}Dd;~yWsF`IZRBvc94WpjaJdq}>cF?_#a~-k3@rcv literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ChildFrm.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ChildFrm.cpp new file mode 100644 index 0000000..5c07838 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ChildFrm.cpp @@ -0,0 +1,70 @@ +// ChildFrm.cpp : implementation of the CChildFrame class +// + +#include "stdafx.h" +#include "ImageViewer.h" + +#include "ChildFrm.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame + +IMPLEMENT_DYNCREATE(CChildFrame, CMDIChildWnd) + +BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWnd) + //{{AFX_MSG_MAP(CChildFrame) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame construction/destruction + +CChildFrame::CChildFrame() +{ + // TODO: add member initialization code here + +} + +CChildFrame::~CChildFrame() +{ +} + +BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs) +{ + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + if( !CMDIChildWnd::PreCreateWindow(cs) ) + return FALSE; + + return TRUE; +} + + + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame diagnostics + +#ifdef _DEBUG +void CChildFrame::AssertValid() const +{ + CMDIChildWnd::AssertValid(); +} + +void CChildFrame::Dump(CDumpContext& dc) const +{ + CMDIChildWnd::Dump(dc); +} + +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame message handlers diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ChildFrm.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ChildFrm.h new file mode 100644 index 0000000..2ac5b32 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ChildFrm.h @@ -0,0 +1,53 @@ +// ChildFrm.h : interface of the CChildFrame class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_CHILDFRM_H__AEC8616B_D4E6_11D2_B476_00E0291A4FD3__INCLUDED_) +#define AFX_CHILDFRM_H__AEC8616B_D4E6_11D2_B476_00E0291A4FD3__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + + +class CChildFrame : public CMDIChildWnd +{ + DECLARE_DYNCREATE(CChildFrame) +public: + CChildFrame(); + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CChildFrame) + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CChildFrame(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +// Generated message map functions +protected: + //{{AFX_MSG(CChildFrame) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_CHILDFRM_H__AEC8616B_D4E6_11D2_B476_00E0291A4FD3__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/Firework.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/Firework.bmp new file mode 100644 index 0000000000000000000000000000000000000000..5159a3a17701ad60f3561fe4a86a2bcec3337b3b GIT binary patch literal 130926 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 a!OjP}PO$Swb)8_>|IM9$j`jaW9sZvz%UApW literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/Firework.jpg b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/Firework.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9747aa7e9e00ef904c7c6df0bd4dac4981838966 GIT binary patch literal 26511 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 + return FALSE; + m_pMainWnd = pMainFrame; + + // Parse command line for standard shell commands, DDE, file open + CCommandLineInfo cmdInfo; + ParseCommandLine(cmdInfo); + + // Dispatch commands specified on the command line + if (!ProcessShellCommand(cmdInfo)) + return FALSE; + + // The main window has been initialized, so show and update it. + pMainFrame->ShowWindow(m_nCmdShow); + pMainFrame->UpdateWindow(); + + return TRUE; +} + + +///////////////////////////////////////////////////////////////////////////// +// CAboutDlg dialog used for App About + +class CAboutDlg : public CDialog +{ +public: + CAboutDlg(); + +// Dialog Data + //{{AFX_DATA(CAboutDlg) + enum { IDD = IDD_ABOUTBOX }; + COXImageViewer m_imageViewer; + //}}AFX_DATA + + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CAboutDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + //{{AFX_MSG(CAboutDlg) + virtual BOOL OnInitDialog(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) +{ + //{{AFX_DATA_INIT(CAboutDlg) + //}}AFX_DATA_INIT +} + +void CAboutDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CAboutDlg) + DDX_Control(pDX, IDC_IMAGE, m_imageViewer); + //}}AFX_DATA_MAP +} + +BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) + //{{AFX_MSG_MAP(CAboutDlg) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +// App command to run the dialog +void CImageViewerApp::OnAppAbout() +{ + CAboutDlg aboutDlg; + aboutDlg.DoModal(); +} + +///////////////////////////////////////////////////////////////////////////// +// CImageViewerApp message handlers + + +BOOL CAboutDlg::OnInitDialog() +{ + CDialog::OnInitDialog(); + + // TODO: Add extra initialization here + + // reset ruler bar +#ifdef OXSCRLWND_USE_RULER + m_imageViewer.SetShowHorzRulerBar(FALSE); + m_imageViewer.SetShowVertRulerBar(FALSE); +#endif // OXSCRLWND_USE_RULER +#ifdef OXDIB_SUPPORTJPEG + // load jpeg file + m_imageViewer.LoadJPEGFile(_T("Firework.jpg")); +#else + m_imageViewer.LoadFile(_T("Firework.bmp")); +#endif // OXDIB_SUPPORTJPEG + // scale image to fit the size of the window + m_imageViewer.ZoomToWindow(); + // resize the control in order to fit the size of scaled image + m_imageViewer.SizeToContent(); + + + return TRUE; // return TRUE unless you set the focus to a control + // EXCEPTION: OCX Property Pages should return FALSE +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewer.dsp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewer.dsp new file mode 100644 index 0000000..7a81780 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewer.dsp @@ -0,0 +1,308 @@ +# Microsoft Developer Studio Project File - Name="ImageViewer" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=ImageViewer - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "ImageViewer.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "ImageViewer.mak" CFG="ImageViewer - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "ImageViewer - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "ImageViewer - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE "ImageViewer - Win32 Release_Shared" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "ImageViewer - Win32 Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /I "..\..\..\Lib\Jpeg" /I "..\..\..\Lib\Jpeg\Jpegsrc6" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "OXSCRLWND_USE_RULER" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x1009 /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x1009 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /i "..\..\..\Lib\Jpeg" /i "..\..\..\Lib\Jpeg\Jpegsrc6" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 ..\..\..\Lib\libs\jpgr.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"LIBC" /out:"ImageViewer.exe" + +!ELSEIF "$(CFG)" == "ImageViewer - Win32 Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /I "..\..\..\Lib\Jpeg" /I "..\..\..\Lib\Jpeg\Jpegsrc6" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /D "OXSCRLWND_USE_RULER" /Yu"stdafx.h" /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x1009 /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x1009 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /i "..\..\..\Lib\Jpeg" /i "..\..\..\Lib\Jpeg\Jpegsrc6" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 ..\..\..\Lib\libs\jpgd.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"LIBCD" /out:"ImageViewer.exe" /pdbtype:sept +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "ImageViewer - Win32 Release_Shared" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "ImageViewer___Win32_Release_Shared" +# PROP BASE Intermediate_Dir "ImageViewer___Win32_Release_Shared" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release_Shared" +# PROP Intermediate_Dir "Release_Shared" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /I "..\..\..\Lib\Jpeg" /I "..\..\..\Lib\Jpeg\Jpegsrc6" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "OXSCRLWND_USE_RULER" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W4 /GX /O2 /I "..\..\..\Include" /I "..\..\..\Source\UTSampleAbout" /I "..\..\..\Lib\Jpeg" /I "..\..\..\Lib\Jpeg\Jpegsrc6" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "OXSCRLWND_USE_RULER" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x1009 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /i "..\..\..\Lib\Jpeg" /i "..\..\..\Lib\Jpeg\Jpegsrc6" /d "NDEBUG" +# ADD RSC /l 0x1009 /i "..\..\..\Include" /i "..\..\..\Source\UTSampleAbout" /i "..\..\..\Lib\Jpeg" /i "..\..\..\Lib\Jpeg\Jpegsrc6" /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 ..\..\..\Lib\libs\jpgr.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"LIBC" /out:"ImageViewer.exe" +# ADD LINK32 ..\..\..\Lib\libs\jpgr.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"LIBC" /out:"ImageViewer.exe" + +!ENDIF + +# Begin Target + +# Name "ImageViewer - Win32 Release" +# Name "ImageViewer - Win32 Debug" +# Name "ImageViewer - Win32 Release_Shared" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Group "UTBSource" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\source\UTSampleAbout\HtmlCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXBMPFle.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\Oxdib.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXGphFle.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXHookWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXImageViewer.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXJPGCod.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXJPGCom.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXJPGDom.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXJPGExp.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXJPGFle.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXRulerOrganizer.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXScrollWnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\UTBStrOp.cpp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ChildFrm.cpp +# End Source File +# Begin Source File + +SOURCE=.\ImageViewer.cpp +# End Source File +# Begin Source File + +SOURCE=.\ImageViewer.rc +# End Source File +# Begin Source File + +SOURCE=.\ImageViewerDoc.cpp +# End Source File +# Begin Source File + +SOURCE=.\ImageViewerView.cpp +# End Source File +# Begin Source File + +SOURCE=.\MainFrm.cpp +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\ChildFrm.h +# End Source File +# Begin Source File + +SOURCE=.\ImageViewer.h +# End Source File +# Begin Source File + +SOURCE=.\ImageViewerDoc.h +# End Source File +# Begin Source File + +SOURCE=.\ImageViewerView.h +# End Source File +# Begin Source File + +SOURCE=.\MainFrm.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\Oxdib.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXHookWnd.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXImageViewer.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXJPGCod.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXJPGCom.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXJPGDom.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXJPGExp.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXJPGFle.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXRulerOrganizer.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXScrollWnd.h +# End Source File +# Begin Source File + +SOURCE=.\Resource.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\res\ImageViewer.ico +# End Source File +# Begin Source File + +SOURCE=.\res\ImageViewer.rc2 +# End Source File +# Begin Source File + +SOURCE=.\res\ImageViewerDoc.ico +# End Source File +# Begin Source File + +SOURCE=.\res\Toolbar.bmp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ReadMe.txt +# End Source File +# End Target +# End Project diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewer.dsw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewer.dsw new file mode 100644 index 0000000..ea0a63c --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewer.dsw @@ -0,0 +1,33 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "ImageViewer"=".\ImageViewer.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/Ultimate ToolBox/Working/samples/graphics/ImageViewer", CGGCAAAA + . + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewer.exe.manifest b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewer.exe.manifest new file mode 100644 index 0000000..275675d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewer.exe.manifest @@ -0,0 +1,22 @@ + + + +Your app description here + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewer.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewer.h new file mode 100644 index 0000000..32153a3 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewer.h @@ -0,0 +1,49 @@ +// ImageViewer.h : main header file for the IMAGEVIEWER application +// + +#if !defined(AFX_IMAGEVIEWER_H__AEC86165_D4E6_11D2_B476_00E0291A4FD3__INCLUDED_) +#define AFX_IMAGEVIEWER_H__AEC86165_D4E6_11D2_B476_00E0291A4FD3__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols + +///////////////////////////////////////////////////////////////////////////// +// CImageViewerApp: +// See ImageViewer.cpp for the implementation of this class +// + +class CImageViewerApp : public CWinApp +{ +public: + CImageViewerApp(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CImageViewerApp) + public: + virtual BOOL InitInstance(); + //}}AFX_VIRTUAL + +// Implementation + //{{AFX_MSG(CImageViewerApp) + afx_msg void OnAppAbout(); + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_IMAGEVIEWER_H__AEC86165_D4E6_11D2_B476_00E0291A4FD3__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewer.rc b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewer.rc new file mode 100644 index 0000000..7f7fef5 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewer.rc @@ -0,0 +1,425 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON DISCARDABLE "res\\ImageViewer.ico" +IDR_IMAGEVTYPE ICON DISCARDABLE "res\\ImageViewerDoc.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDR_MAINFRAME BITMAP MOVEABLE PURE "res\\Toolbar.bmp" + +///////////////////////////////////////////////////////////////////////////// +// +// Toolbar +// + +IDR_MAINFRAME TOOLBAR DISCARDABLE 16, 15 +BEGIN + BUTTON ID_FILE_OPEN + BUTTON ID_FILE_SAVE + SEPARATOR + BUTTON ID_APP_ABOUT +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_MAINFRAME MENU PRELOAD DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN + MENUITEM SEPARATOR + MENUITEM "Recent File", ID_FILE_MRU_FILE1, GRAYED + MENUITEM SEPARATOR + MENUITEM "E&xit", ID_APP_EXIT + END + POPUP "&View" + BEGIN + MENUITEM "&Toolbar", ID_VIEW_TOOLBAR + MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR + END + POPUP "&Help" + BEGIN + MENUITEM "&About ImageViewer...", ID_APP_ABOUT + END +END + +IDR_IMAGEVTYPE MENU PRELOAD DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN + MENUITEM "&Close", ID_FILE_CLOSE + MENUITEM "&Save\tCtrl+S", ID_FILE_SAVE + MENUITEM "Save &As...", ID_FILE_SAVE_AS + MENUITEM SEPARATOR + MENUITEM "Recent File", ID_FILE_MRU_FILE1, GRAYED + MENUITEM SEPARATOR + MENUITEM "E&xit", ID_APP_EXIT + END + POPUP "&View" + BEGIN + MENUITEM "&Toolbar", ID_VIEW_TOOLBAR + MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR + END + POPUP "&Window" + BEGIN + MENUITEM "&New Window", ID_WINDOW_NEW + MENUITEM "&Cascade", ID_WINDOW_CASCADE + MENUITEM "&Tile", ID_WINDOW_TILE_HORZ + MENUITEM "&Arrange Icons", ID_WINDOW_ARRANGE + END + POPUP "&Help" + BEGIN + MENUITEM "&About ImageViewer...", ID_APP_ABOUT + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Accelerator +// + +IDR_MAINFRAME ACCELERATORS PRELOAD MOVEABLE PURE +BEGIN + "N", ID_FILE_NEW, VIRTKEY, CONTROL + "O", ID_FILE_OPEN, VIRTKEY, CONTROL + "S", ID_FILE_SAVE, VIRTKEY, CONTROL + "P", ID_FILE_PRINT, VIRTKEY, CONTROL + "Z", ID_EDIT_UNDO, VIRTKEY, CONTROL + "X", ID_EDIT_CUT, VIRTKEY, CONTROL + "C", ID_EDIT_COPY, VIRTKEY, CONTROL + "V", ID_EDIT_PASTE, VIRTKEY, CONTROL + VK_BACK, ID_EDIT_UNDO, VIRTKEY, ALT + VK_DELETE, ID_EDIT_CUT, VIRTKEY, SHIFT + VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL + VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT + VK_F6, ID_NEXT_PANE, VIRTKEY + VK_F6, ID_PREV_PANE, VIRTKEY, SHIFT +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 259, 167 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "About ImageViewer" +FONT 8, "MS Sans Serif" +BEGIN + LTEXT "ImageViewer Version 1.0",IDC_STATIC,153,17,79,8, + SS_NOPREFIX + LTEXT "Copyright (C) The Code Project",IDC_STATIC,153,31,100,8 + DEFPUSHBUTTON "OK",IDOK,202,146,50,14,WS_GROUP + LTEXT "Image",IDC_IMAGE,7,7,134,153,SS_SUNKEN +END + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "ImageViewer MFC Application\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "ImageViewer\0" + VALUE "LegalCopyright", "Copyright (C) 1999\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "ImageViewer.EXE\0" + VALUE "ProductName", "ImageViewer Application\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_ABOUTBOX, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 252 + TOPMARGIN, 7 + BOTTOMMARGIN, 160 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE PRELOAD DISCARDABLE +BEGIN + IDR_MAINFRAME "ImageViewer" + IDR_IMAGEVTYPE "\nImageV\nImageV\nImage Files (*.bmp;*.jpg)\n.bmp;.jpg\nImageViewer.Document\nImageV.Document" +END + +STRINGTABLE PRELOAD DISCARDABLE +BEGIN + AFX_IDS_APP_TITLE "ImageViewer" + AFX_IDS_IDLEMESSAGE "Ready" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_INDICATOR_EXT "EXT" + ID_INDICATOR_CAPS "CAP" + ID_INDICATOR_NUM "NUM" + ID_INDICATOR_SCRL "SCRL" + ID_INDICATOR_OVR "OVR" + ID_INDICATOR_REC "REC" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_NEW "Create a new document\nNew" + ID_FILE_OPEN "Open an existing document\nOpen" + ID_FILE_CLOSE "Close the active document\nClose" + ID_FILE_SAVE "Save the active document\nSave" + ID_FILE_SAVE_AS "Save the active document with a new name\nSave As" + ID_FILE_PAGE_SETUP "Change the printing options\nPage Setup" + ID_FILE_PRINT_SETUP "Change the printer and printing options\nPrint Setup" + ID_FILE_PRINT "Print the active document\nPrint" + ID_FILE_PRINT_PREVIEW "Display full pages\nPrint Preview" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_APP_ABOUT "Display program information, version number and copyright\nAbout" + ID_APP_EXIT "Quit the application; prompts to save documents\nExit" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_MRU_FILE1 "Open this document" + ID_FILE_MRU_FILE2 "Open this document" + ID_FILE_MRU_FILE3 "Open this document" + ID_FILE_MRU_FILE4 "Open this document" + ID_FILE_MRU_FILE5 "Open this document" + ID_FILE_MRU_FILE6 "Open this document" + ID_FILE_MRU_FILE7 "Open this document" + ID_FILE_MRU_FILE8 "Open this document" + ID_FILE_MRU_FILE9 "Open this document" + ID_FILE_MRU_FILE10 "Open this document" + ID_FILE_MRU_FILE11 "Open this document" + ID_FILE_MRU_FILE12 "Open this document" + ID_FILE_MRU_FILE13 "Open this document" + ID_FILE_MRU_FILE14 "Open this document" + ID_FILE_MRU_FILE15 "Open this document" + ID_FILE_MRU_FILE16 "Open this document" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_NEXT_PANE "Switch to the next window pane\nNext Pane" + ID_PREV_PANE "Switch back to the previous window pane\nPrevious Pane" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_WINDOW_NEW "Open another window for the active document\nNew Window" + ID_WINDOW_ARRANGE "Arrange icons at the bottom of the window\nArrange Icons" + ID_WINDOW_CASCADE "Arrange windows so they overlap\nCascade Windows" + ID_WINDOW_TILE_HORZ "Arrange windows as non-overlapping tiles\nTile Windows" + ID_WINDOW_TILE_VERT "Arrange windows as non-overlapping tiles\nTile Windows" + ID_WINDOW_SPLIT "Split the active window into panes\nSplit" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_EDIT_CLEAR "Erase the selection\nErase" + ID_EDIT_CLEAR_ALL "Erase everything\nErase All" + ID_EDIT_COPY "Copy the selection and put it on the Clipboard\nCopy" + ID_EDIT_CUT "Cut the selection and put it on the Clipboard\nCut" + ID_EDIT_FIND "Find the specified text\nFind" + ID_EDIT_PASTE "Insert Clipboard contents\nPaste" + ID_EDIT_REPEAT "Repeat the last action\nRepeat" + ID_EDIT_REPLACE "Replace specific text with different text\nReplace" + ID_EDIT_SELECT_ALL "Select the entire document\nSelect All" + ID_EDIT_UNDO "Undo the last action\nUndo" + ID_EDIT_REDO "Redo the previously undone action\nRedo" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_VIEW_TOOLBAR "Show or hide the toolbar\nToggle ToolBar" + ID_VIEW_STATUS_BAR "Show or hide the status bar\nToggle StatusBar" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_SCSIZE "Change the window size" + AFX_IDS_SCMOVE "Change the window position" + AFX_IDS_SCMINIMIZE "Reduce the window to an icon" + AFX_IDS_SCMAXIMIZE "Enlarge the window to full size" + AFX_IDS_SCNEXTWINDOW "Switch to the next document window" + AFX_IDS_SCPREVWINDOW "Switch to the previous document window" + AFX_IDS_SCCLOSE "Close the active window and prompts to save the documents" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_SCRESTORE "Restore the window to normal size" + AFX_IDS_SCTASKLIST "Activate Task List" + AFX_IDS_MDICHILD "Activate this window" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_PREVIEW_CLOSE "Close print preview mode\nCancel Preview" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// English (Canada) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENC) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_CAN +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif //_WIN32\r\n" + "#include ""res\\ImageViewer.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "#include ""afxprint.rc"" // printing/print preview resources\r\n" + "#include ""OXScrollWnd.rc""\r\n" + "#include ""OXImageViewer.rc""\r\n" + "#endif\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + +#endif // English (Canada) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif //_WIN32 +#include "res\ImageViewer.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +#include "afxprint.rc" // printing/print preview resources +#include "OXScrollWnd.rc" +#include "OXImageViewer.rc" +#endif + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewer.vcproj b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewer.vcproj new file mode 100644 index 0000000..145594a --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewer.vcproj @@ -0,0 +1,1029 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewerDoc.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewerDoc.cpp new file mode 100644 index 0000000..df01746 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewerDoc.cpp @@ -0,0 +1,111 @@ +// ImageViewerDoc.cpp : implementation of the CImageViewerDoc class +// + +#include "stdafx.h" +#include "ImageViewer.h" + +#include "ImageViewerDoc.h" +#include "ImageViewerView.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CImageViewerDoc + +IMPLEMENT_DYNCREATE(CImageViewerDoc, CDocument) + +BEGIN_MESSAGE_MAP(CImageViewerDoc, CDocument) + //{{AFX_MSG_MAP(CImageViewerDoc) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CImageViewerDoc construction/destruction + +CImageViewerDoc::CImageViewerDoc() +{ + // TODO: add one-time construction code here + +} + +CImageViewerDoc::~CImageViewerDoc() +{ +} + +BOOL CImageViewerDoc::OnNewDocument() +{ + return FALSE; +} + + + +///////////////////////////////////////////////////////////////////////////// +// CImageViewerDoc serialization + +void CImageViewerDoc::Serialize(CArchive& ar) +{ + if (ar.IsStoring()) + { + // TODO: add storing code here + } + else + { + // TODO: add loading code here + } +} + +///////////////////////////////////////////////////////////////////////////// +// CImageViewerDoc diagnostics + +#ifdef _DEBUG +void CImageViewerDoc::AssertValid() const +{ + CDocument::AssertValid(); +} + +void CImageViewerDoc::Dump(CDumpContext& dc) const +{ + CDocument::Dump(dc); +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CImageViewerDoc commands + +BOOL CImageViewerDoc::OnOpenDocument(LPCTSTR lpszPathName) +{ + if (!CDocument::OnOpenDocument(lpszPathName)) + return FALSE; + + // TODO: Add your specialized creation code here + POSITION pos=GetFirstViewPosition(); + ASSERT(pos!=NULL); + CImageViewerView* pView=(CImageViewerView*)GetNextView(pos); + ASSERT(pView!=NULL); +#ifdef OXDIB_SUPPORTJPEG + if(!pView->GetImageViewer()->LoadJPEGFile(lpszPathName)) +#endif // OXDIB_SUPPORTJPEG + pView->GetImageViewer()->LoadFile(lpszPathName); + + return TRUE; +} + +BOOL CImageViewerDoc::OnSaveDocument(LPCTSTR lpszPathName) +{ + // TODO: Add your specialized code here and/or call the base class + POSITION pos=GetFirstViewPosition(); + ASSERT(pos!=NULL); + CImageViewerView* pView=(CImageViewerView*)GetNextView(pos); + ASSERT(pView!=NULL); +#ifdef OXDIB_SUPPORTJPEG + return pView->GetImageViewer()->GetImage()->WriteJPEG(lpszPathName); +#else + return pView->GetImageViewer()->GetImage()->Write(lpszPathName); +#endif // OXDIB_SUPPORTJPEG +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewerDoc.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewerDoc.h new file mode 100644 index 0000000..c41386f --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewerDoc.h @@ -0,0 +1,59 @@ +// ImageViewerDoc.h : interface of the CImageViewerDoc class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_IMAGEVIEWERDOC_H__AEC8616D_D4E6_11D2_B476_00E0291A4FD3__INCLUDED_) +#define AFX_IMAGEVIEWERDOC_H__AEC8616D_D4E6_11D2_B476_00E0291A4FD3__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + + +class CImageViewerDoc : public CDocument +{ +protected: // create from serialization only + CImageViewerDoc(); + DECLARE_DYNCREATE(CImageViewerDoc) + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CImageViewerDoc) + public: + virtual BOOL OnNewDocument(); + virtual void Serialize(CArchive& ar); + virtual BOOL OnOpenDocument(LPCTSTR lpszPathName); + virtual BOOL OnSaveDocument(LPCTSTR lpszPathName); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CImageViewerDoc(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + +// Generated message map functions +protected: + //{{AFX_MSG(CImageViewerDoc) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_IMAGEVIEWERDOC_H__AEC8616D_D4E6_11D2_B476_00E0291A4FD3__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewerView.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewerView.cpp new file mode 100644 index 0000000..241c874 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewerView.cpp @@ -0,0 +1,127 @@ +// ImageViewerView.cpp : implementation of the CImageViewerView class +// + +#include "stdafx.h" +#include "ImageViewer.h" + +#include "ImageViewerDoc.h" +#include "ImageViewerView.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CImageViewerView + +IMPLEMENT_DYNCREATE(CImageViewerView, CView) + +BEGIN_MESSAGE_MAP(CImageViewerView, CView) + //{{AFX_MSG_MAP(CImageViewerView) + ON_WM_CREATE() + ON_WM_SIZE() + ON_WM_ERASEBKGND() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CImageViewerView construction/destruction + +CImageViewerView::CImageViewerView() +{ + // TODO: add construction code here + +} + +CImageViewerView::~CImageViewerView() +{ +} + +BOOL CImageViewerView::PreCreateWindow(CREATESTRUCT& cs) +{ + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + return CView::PreCreateWindow(cs); +} + +///////////////////////////////////////////////////////////////////////////// +// CImageViewerView drawing + +void CImageViewerView::OnDraw(CDC* pDC) +{ + CImageViewerDoc* pDoc = GetDocument(); + ASSERT_VALID(pDoc); + // TODO: add draw code for native data here + UNREFERENCED_PARAMETER(pDC); +} + +///////////////////////////////////////////////////////////////////////////// +// CImageViewerView diagnostics + +#ifdef _DEBUG +void CImageViewerView::AssertValid() const +{ + CView::AssertValid(); +} + +void CImageViewerView::Dump(CDumpContext& dc) const +{ + CView::Dump(dc); +} + +CImageViewerDoc* CImageViewerView::GetDocument() // non-debug version is inline +{ + ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CImageViewerDoc))); + return (CImageViewerDoc*)m_pDocument; +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CImageViewerView message handlers + +int CImageViewerView::OnCreate(LPCREATESTRUCT lpCreateStruct) +{ + if (CView::OnCreate(lpCreateStruct) == -1) + return -1; + + // TODO: Add your specialized creation code here + if(!m_imageViewer.Create(NULL,NULL,WS_CHILD|WS_VISIBLE, + CRect(0,0,0,0),this,1000)) + { + TRACE(_T("CImageViewerView::OnCreate: Failed to create image viewer control\n")); + return -1; + } + + return 0; +} + +void CImageViewerView::OnSize(UINT nType, int cx, int cy) +{ + CView::OnSize(nType, cx, cy); + + // TODO: Add your message handler code here + if(::IsWindow(m_imageViewer.GetSafeHwnd())) + m_imageViewer.MoveWindow(CRect(0,0,cx,cy)); + +} + +BOOL CImageViewerView::OnEraseBkgnd(CDC* pDC) +{ + // TODO: Add your message handler code here and/or call default + UNREFERENCED_PARAMETER(pDC); + return TRUE; +} + +void CImageViewerView::OnActivateView(BOOL bActivate, CView* pActivateView, + CView* pDeactiveView) +{ + // TODO: Add your specialized code here and/or call the base class + + CView::OnActivateView(bActivate, pActivateView, pDeactiveView); + + if(::IsWindow(m_imageViewer.GetSafeHwnd())) + m_imageViewer.DoRealizePalette(TRUE,TRUE); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewerView.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewerView.h new file mode 100644 index 0000000..9836800 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ImageViewerView.h @@ -0,0 +1,71 @@ +// ImageViewerView.h : interface of the CImageViewerView class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_IMAGEVIEWERVIEW_H__AEC8616F_D4E6_11D2_B476_00E0291A4FD3__INCLUDED_) +#define AFX_IMAGEVIEWERVIEW_H__AEC8616F_D4E6_11D2_B476_00E0291A4FD3__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#include "OXImageViewer.h" + +class CImageViewerView : public CView +{ +protected: // create from serialization only + CImageViewerView(); + DECLARE_DYNCREATE(CImageViewerView) + +// Attributes +public: + CImageViewerDoc* GetDocument(); + inline COXImageViewer* GetImageViewer() { return &m_imageViewer; } + +protected: + COXImageViewer m_imageViewer; + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CImageViewerView) + public: + virtual void OnDraw(CDC* pDC); // overridden to draw this view + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + protected: + virtual void OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CImageViewerView(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + +// Generated message map functions +protected: + //{{AFX_MSG(CImageViewerView) + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg BOOL OnEraseBkgnd(CDC* pDC); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +#ifndef _DEBUG // debug version in ImageViewerView.cpp +inline CImageViewerDoc* CImageViewerView::GetDocument() + { return (CImageViewerDoc*)m_pDocument; } +#endif + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_IMAGEVIEWERVIEW_H__AEC8616F_D4E6_11D2_B476_00E0291A4FD3__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/MainFrm.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/MainFrm.cpp new file mode 100644 index 0000000..b3c886d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/MainFrm.cpp @@ -0,0 +1,125 @@ +// MainFrm.cpp : implementation of the CMainFrame class +// + +#include "stdafx.h" +#include "ImageViewer.h" + +#include "MainFrm.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame + +IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWnd) + +BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd) + //{{AFX_MSG_MAP(CMainFrame) + ON_WM_CREATE() + ON_WM_PALETTECHANGED() + ON_WM_QUERYNEWPALETTE() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +static UINT indicators[] = +{ + ID_SEPARATOR, // status line indicator + ID_INDICATOR_CAPS, + ID_INDICATOR_NUM, + ID_INDICATOR_SCRL, +}; + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame construction/destruction + +CMainFrame::CMainFrame() +{ + // TODO: add member initialization code here + +} + +CMainFrame::~CMainFrame() +{ +} + +int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) +{ + if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1) + return -1; + + if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP + | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || + !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) + { + TRACE0("Failed to create toolbar\n"); + return -1; // fail to create + } + + if (!m_wndStatusBar.Create(this) || + !m_wndStatusBar.SetIndicators(indicators, + sizeof(indicators)/sizeof(UINT))) + { + TRACE0("Failed to create status bar\n"); + return -1; // fail to create + } + + // TODO: Delete these three lines if you don't want the toolbar to + // be dockable + m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); + EnableDocking(CBRS_ALIGN_ANY); + DockControlBar(&m_wndToolBar); + + return 0; +} + +BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) +{ + if( !CMDIFrameWnd::PreCreateWindow(cs) ) + return FALSE; + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + return TRUE; +} + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame diagnostics + +#ifdef _DEBUG +void CMainFrame::AssertValid() const +{ + CMDIFrameWnd::AssertValid(); +} + +void CMainFrame::Dump(CDumpContext& dc) const +{ + CMDIFrameWnd::Dump(dc); +} + +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame message handlers + + +void CMainFrame::OnPaletteChanged(CWnd* pFocusWnd) +{ + CMDIFrameWnd::OnPaletteChanged(pFocusWnd); + + // TODO: Add your message handler code here + SendMessageToDescendants(WM_PALETTECHANGED, + (pFocusWnd!=NULL ? (WPARAM)pFocusWnd->GetSafeHwnd() : NULL)); +} + +BOOL CMainFrame::OnQueryNewPalette() +{ + // TODO: Add your message handler code here and/or call default + + SendMessageToDescendants(WM_QUERYNEWPALETTE); + return CMDIFrameWnd::OnQueryNewPalette(); +} + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/MainFrm.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/MainFrm.h new file mode 100644 index 0000000..f88cf00 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/MainFrm.h @@ -0,0 +1,57 @@ +// MainFrm.h : interface of the CMainFrame class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_MAINFRM_H__AEC86169_D4E6_11D2_B476_00E0291A4FD3__INCLUDED_) +#define AFX_MAINFRM_H__AEC86169_D4E6_11D2_B476_00E0291A4FD3__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +class CMainFrame : public CMDIFrameWnd +{ + DECLARE_DYNAMIC(CMainFrame) +public: + CMainFrame(); + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CMainFrame) + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CMainFrame(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: // control bar embedded members + CStatusBar m_wndStatusBar; + CToolBar m_wndToolBar; + +// Generated message map functions +protected: + //{{AFX_MSG(CMainFrame) + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnPaletteChanged(CWnd* pFocusWnd); + afx_msg BOOL OnQueryNewPalette(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_MAINFRM_H__AEC86169_D4E6_11D2_B476_00E0291A4FD3__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ReadMe.txt b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ReadMe.txt new file mode 100644 index 0000000..69ce669 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/ReadMe.txt @@ -0,0 +1,117 @@ +======================================================================== + MICROSOFT FOUNDATION CLASS LIBRARY : ImageViewer +======================================================================== + + +AppWizard has created this ImageViewer application for you. This application +not only demonstrates the basics of using the Microsoft Foundation classes +but is also a starting point for writing your application. + +This file contains a summary of what you will find in each of the files that +make up your ImageViewer application. + +ImageViewer.dsp + This file (the project file) contains information at the project level and + is used to build a single project or subproject. Other users can share the + project (.dsp) file, but they should export the makefiles locally. + +ImageViewer.h + This is the main header file for the application. It includes other + project specific headers (including Resource.h) and declares the + CImageViewerApp application class. + +ImageViewer.cpp + This is the main application source file that contains the application + class CImageViewerApp. + +ImageViewer.rc + This is a listing of all of the Microsoft Windows resources that the + program uses. It includes the icons, bitmaps, and cursors that are stored + in the RES subdirectory. This file can be directly edited in Microsoft + Visual C++. + +ImageViewer.clw + This file contains information used by ClassWizard to edit existing + classes or add new classes. ClassWizard also uses this file to store + information needed to create and edit message maps and dialog data + maps and to create prototype member functions. + +res\ImageViewer.ico + This is an icon file, which is used as the application's icon. This + icon is included by the main resource file ImageViewer.rc. + +res\ImageViewer.rc2 + This file contains resources that are not edited by Microsoft + Visual C++. You should place all resources not editable by + the resource editor in this file. + + + +///////////////////////////////////////////////////////////////////////////// + +For the main frame window: + +MainFrm.h, MainFrm.cpp + These files contain the frame class CMainFrame, which is derived from + CMDIFrameWnd and controls all MDI frame features. + +res\Toolbar.bmp + This bitmap file is used to create tiled images for the toolbar. + The initial toolbar and status bar are constructed in the CMainFrame + class. Edit this toolbar bitmap using the resource editor, and + update the IDR_MAINFRAME TOOLBAR array in ImageViewer.rc to add + toolbar buttons. +///////////////////////////////////////////////////////////////////////////// + +For the child frame window: + +ChildFrm.h, ChildFrm.cpp + These files define and implement the CChildFrame class, which + supports the child windows in an MDI application. + +///////////////////////////////////////////////////////////////////////////// + +AppWizard creates one document type and one view: + +ImageViewerDoc.h, ImageViewerDoc.cpp - the document + These files contain your CImageViewerDoc class. Edit these files to + add your special document data and to implement file saving and loading + (via CImageViewerDoc::Serialize). + +ImageViewerView.h, ImageViewerView.cpp - the view of the document + These files contain your CImageViewerView class. + CImageViewerView objects are used to view CImageViewerDoc objects. + +res\ImageViewerDoc.ico + This is an icon file, which is used as the icon for MDI child windows + for the CImageViewerDoc class. This icon is included by the main + resource file ImageViewer.rc. + + +///////////////////////////////////////////////////////////////////////////// +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named ImageViewer.pch and a precompiled types file named StdAfx.obj. + +Resource.h + This is the standard header file, which defines new resource IDs. + Microsoft Visual C++ reads and updates this file. + +///////////////////////////////////////////////////////////////////////////// +Other notes: + +AppWizard uses "TODO:" to indicate parts of the source code you +should add to or customize. + +If your application uses MFC in a shared DLL, and your application is +in a language other than the operating system's current language, you +will need to copy the corresponding localized resources MFC42XXX.DLL +from the Microsoft Visual C++ CD-ROM onto the system or system32 directory, +and rename it to be MFCLOC.DLL. ("XXX" stands for the language abbreviation. +For example, MFC42DEU.DLL contains resources translated to German.) If you +don't do this, some of the UI elements of your application will remain in the +language of the operating system. + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/Resource.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/Resource.h new file mode 100644 index 0000000..105dd48 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/Resource.h @@ -0,0 +1,20 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by ImageViewer.rc +// +#define IDD_ABOUTBOX 100 +#define IDR_MAINFRAME 128 +#define IDR_IMAGEVTYPE 129 +#define IDC_IMAGE 1000 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_3D_CONTROLS 1 +#define _APS_NEXT_RESOURCE_VALUE 130 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/StdAfx.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/StdAfx.cpp new file mode 100644 index 0000000..cdb4b33 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/StdAfx.cpp @@ -0,0 +1,8 @@ +// stdafx.cpp : source file that includes just the standard includes +// ImageViewer.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/StdAfx.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/StdAfx.h new file mode 100644 index 0000000..eb973bf --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/StdAfx.h @@ -0,0 +1,27 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#if !defined(AFX_STDAFX_H__AEC86167_D4E6_11D2_B476_00E0291A4FD3__INCLUDED_) +#define AFX_STDAFX_H__AEC86167_D4E6_11D2_B476_00E0291A4FD3__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers + +#define OXDIB_SUPPORTJPEG + +#include // MFC core and standard components +#include // MFC extensions +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for Windows Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_STDAFX_H__AEC86167_D4E6_11D2_B476_00E0291A4FD3__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/dog.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/dog.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2623f46bf2b8e474d17b4d5c3072363597ab59e4 GIT binary patch literal 184134 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�AdMhYQvaCEK{6fCwK0vhHH)z}ja9MuXy3-P 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

    *oz@TTb?GhWIvtzVXEBr`1{KD>9EJOO_jG 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 LK)dE4!0`VAecyak literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/dog.jpg b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/dog.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7ac047e7b261be49c45579a3bef9da831a17703a GIT binary patch literal 8202 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ƒTmA5ZQzA&4fxn@O&DKmME7&TP!#P{VSCUP&U+n)YOTjfzP=*6wM}! z1tdVMoD|6b+pzByKG2`r1G_jK*9un_b##C}UCnBh<&=ME?+4}@o{PR##}G-yOF*~r z5iX(ecxbYj`^M4R@Act|_5v5DWL>JFNdsQ`;(T30QYMvP5l%`|El~A5f-T~d+P<4$ zeUR0I43<12q=7~J8RYyVM&bwM&qbBA@ddG+r*cli;?F=|kH4XH_kq{jlVAf*EsV4k zUt$dfUvtS$GYHnOb&doN9}458it7|wY%3V5uRrw3Gh>Y}OulIKZOJvq=jkopb>!3}jLb9s)T}@Kod(893@u8ajANzT`op9^o+)S?=nU(FD@%0s)Sg^oyC8{H z9myetc;MEP)59v(LMa~xK8Yu^jIR*H22uCFiq5%C{s7(PJi>o15i^bmX4(vPxWAio z9ryY#AU_jfnd047-@`)XzL?%iS$gQyFP{44kS9X)fN{{QoL~hO-&=q&20Zr*cxFAt PkaNE{wR~2C$NfnjhSXWT literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/res/ImageViewer.rc2 b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/res/ImageViewer.rc2 new file mode 100644 index 0000000..d0ed25a --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/res/ImageViewer.rc2 @@ -0,0 +1,13 @@ +// +// IMAGEVIEWER.RC2 - resources Microsoft Visual C++ does not edit directly +// + +#ifdef APSTUDIO_INVOKED + #error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// Add manually edited resources here... + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/res/ImageViewerDoc.ico b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/res/ImageViewerDoc.ico new file mode 100644 index 0000000000000000000000000000000000000000..2a1f1ae6ef15e51df8c39bc028bbfb2171822ba5 GIT binary patch literal 1078 zcmcJNF;c@Y5JlGsgIpoERJdY%i*S@2!JS&si6f-)RXoFGDAfg5;z_dQBoi_)1DpI^ z{oS?KlD%25H@>BZ{KJV|_dD9_G1MV<{5a&-}7^W%4AM)k- zx&P*V(j}a@*Y~UhksXTAK!NRyiYN-8NMyKz<)2v9@tUao7A!g+SzkAcsHvdq6!0vQ z#-rA6>0BAr)4*u6Y57EdkamnXf Uh-a7VEuQ2KJb_2>o71HC3-%7w@Bjb+ literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/res/Toolbar.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/ImageViewer/res/Toolbar.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c969205e7fc494b9823251dba3ec50808f78b251 GIT binary patch literal 478 zcmaivF%E+;3`LEol!2kw=!nD(y7wL(JvA#wVrK{^=^5A==(CO5R2}+>f1ID6PjbCI z8*x0~3)NF+s*w{cazFNc@kOHuL&h;Cm{yi$VYZFkhwQs`6rV{@{s;UZVN)}!FPR6L z+?w7^u(kt8zxrx=U+d~&B@TFwM2_cgaX{^u1(NT2DgNj1SNaB4{@>%Q?^D23>!LG3 sx~+Eck6)+c4>+Fq&Ov8bs6j% +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=JPGtest - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "JPGtest.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "JPGtest.mak" CFG="JPGtest - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "JPGtest - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "JPGtest - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE "JPGtest - Win32 Release_Shared" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "JPGtest - Win32 Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir ".\Release" +# PROP Intermediate_Dir ".\Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /I "..\..\..\lib\jpeg" /I "..\..\..\lib\jpeg\jpegsrc6" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /i "..\..\..\lib\jpeg" /i "..\..\..\lib\jpeg\jpegsrc6" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 jpgr.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"LIBC" /out:"JPGtest.exe" /libpath:"..\..\..\lib\libs" + +!ELSEIF "$(CFG)" == "JPGtest - Win32 Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir ".\Debug" +# PROP Intermediate_Dir ".\Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /I "..\..\..\lib\jpeg" /I "..\..\..\lib\jpeg\jpegsrc6" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /i "..\..\..\lib\jpeg" /i "..\..\..\lib\jpeg\jpegsrc6" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 jpgd.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"LIBCD" /out:"JPGtest.exe" /pdbtype:sept /libpath:"..\..\..\lib\libs" + +!ELSEIF "$(CFG)" == "JPGtest - Win32 Release_Shared" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "JPGtest_" +# PROP BASE Intermediate_Dir "JPGtest_" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release_Shared" +# PROP Intermediate_Dir "Release_Shared" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /I "..\..\..\lib\jpeg" /I "..\..\..\lib\jpeg\jpegsrc6" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /i "..\..\..\lib\jpeg" /i "..\..\..\lib\jpeg\jpegsrc6" /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 jpgr.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"LIBC" /out:"JPGtest.exe" +# ADD LINK32 jpgr.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"LIBC" /out:"JPGtest.exe" /libpath:"..\..\..\lib\libs" + +!ENDIF + +# Begin Target + +# Name "JPGtest - Win32 Release" +# Name "JPGtest - Win32 Debug" +# Name "JPGtest - Win32 Release_Shared" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Group "UTSource" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\source\UTSampleAbout\HtmlCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXBMPFle.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXGphFle.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXJPGCod.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXJPGCom.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXJPGDom.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXJPGExp.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXJPGFle.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\UTBStrOp.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\UTSampleAbout\UTSampleAbout.cpp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\JPGtest.cpp +# End Source File +# Begin Source File + +SOURCE=.\JPGtest.rc +# End Source File +# Begin Source File + +SOURCE=.\JPGtestDlg.cpp +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\JPGtest.h +# End Source File +# Begin Source File + +SOURCE=.\JPGtestDlg.h +# End Source File +# Begin Source File + +SOURCE=.\Resource.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\res\JPGtest.ico +# End Source File +# Begin Source File + +SOURCE=.\res\JPGtest.rc2 +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ReadMe.txt +# End Source File +# End Target +# End Project diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtest.dsw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtest.dsw new file mode 100644 index 0000000..bb0f9ad --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtest.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "JPGtest"=".\JPGtest.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtest.exe.manifest b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtest.exe.manifest new file mode 100644 index 0000000..275675d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtest.exe.manifest @@ -0,0 +1,22 @@ + + + +Your app description here + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtest.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtest.h new file mode 100644 index 0000000..4e4736c --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtest.h @@ -0,0 +1,50 @@ +// JPGtest.h : main header file for the JPGTEST application +// + +#if !defined(AFX_JPGTEST_H__F8562DF7_85B7_11D1_A4E1_0020359647BF__INCLUDED_) +#define AFX_JPGTEST_H__F8562DF7_85B7_11D1_A4E1_0020359647BF__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols + +///////////////////////////////////////////////////////////////////////////// +// CJPGtestApp: +// See JPGtest.cpp for the implementation of this class +// + +class CJPGtestApp : public CWinApp +{ +public: + CJPGtestApp(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CJPGtestApp) + public: + virtual BOOL InitInstance(); + virtual int ExitInstance(); + //}}AFX_VIRTUAL + +// Implementation + + //{{AFX_MSG(CJPGtestApp) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_JPGTEST_H__F8562DF7_85B7_11D1_A4E1_0020359647BF__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtest.rc b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtest.rc new file mode 100644 index 0000000..a2444d5 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtest.rc @@ -0,0 +1,255 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""utsampleabout.rc""\r\n" + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif\r\n" + "#include ""res\\JPGtest.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "#endif\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON DISCARDABLE "res\\JPGtest.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_JPGTEST_DIALOG DIALOGEX 0, 0, 396, 226 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +EXSTYLE WS_EX_APPWINDOW +CAPTION "JPGtest" +FONT 8, "MS Sans Serif" +BEGIN + LTEXT "BMP",IDC_STATIC,17,10,16,8 + LTEXT "JPG",IDC_STATIC,19,26,14,8 + EDITTEXT IDC_EDIT1,38,8,289,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT2,38,25,289,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT3,65,61,31,13,ES_AUTOHSCROLL | ES_NUMBER + EDITTEXT IDC_EDIT4,65,79,31,13,ES_AUTOHSCROLL | ES_NUMBER + EDITTEXT IDC_EDIT5,65,96,31,13,ES_AUTOHSCROLL | ES_NUMBER + CONTROL "DCT int",IDC_RADIO1,"Button",BS_AUTORADIOBUTTON | + WS_GROUP,128,61,46,12 + CONTROL "DCT Fast",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON | + WS_GROUP,128,71,46,12 + CONTROL "DCT Float",IDC_RADIO3,"Button",BS_AUTORADIOBUTTON | + WS_GROUP,128,82,46,12 + LTEXT "Quality",IDC_STATIC,23,61,32,13 + LTEXT "Smooth",IDC_STATIC,24,79,31,10 + LTEXT "MaxMem",IDC_STATIC,19,96,36,13 + CONTROL "Grayscale",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,96,122,50,9 + CONTROL "Baseline",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,96,132,63,9 + CONTROL "Progressive",IDC_CHECK3,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,96,143,51,9 + CONTROL "Optimize",IDC_CHECK4,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,96,155,59,10 + PUSHBUTTON "Compress",IDC_Compress,54,180,81,17 + GROUPBOX "Compress",IDC_STATIC,14,49,168,158 + EDITTEXT IDC_COLORS_EDIT,236,62,49,14,ES_AUTOHSCROLL + EDITTEXT IDC_MAXMEM_EDIT,236,84,49,14,ES_AUTOHSCROLL + LTEXT "Colors",IDC_STATIC,192,65,36,15 + LTEXT "MaxMem",IDC_STATIC,194,85,34,12 + CONTROL "1/1",IDC_ONEONE_RADIO,"Button",BS_AUTORADIOBUTTON | + WS_GROUP,211,107,66,9 + CONTROL "1/2",IDC_HALF_RADIO,"Button",BS_AUTORADIOBUTTON | + WS_GROUP,211,118,66,11 + CONTROL "1/4",IDC_FOURTH_RADIO,"Button",BS_AUTORADIOBUTTON | + WS_GROUP,211,131,66,9 + CONTROL "1/8",IDC_EIGHT_RADIO,"Button",BS_AUTORADIOBUTTON | + WS_GROUP,211,142,66,11 + CONTROL "OS2 Format",IDC_CHECK5,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,193,164,77,12 + PUSHBUTTON "Uncompress",IDC_UnCompress,238,180,81,17 + GROUPBOX "Uncompress",IDC_STATIC,186,49,187,158 + LTEXT "Operation Time : ",IDC_STATIC,126,210,55,11 + CONTROL "DCT int",IDC_DINT_RADIO,"Button",BS_AUTORADIOBUTTON | + WS_GROUP,316,63,42,9 + CONTROL "DCT Fast",IDC_DFAST_RADIO,"Button",BS_AUTORADIOBUTTON | + WS_GROUP,316,72,48,8 + CONTROL "DCT Float",IDC_DFLOAT_RADIO,"Button",BS_AUTORADIOBUTTON | + WS_GROUP,316,80,48,8 + CONTROL "Floyd-Steinl",IDC_FS_RADIO,"Button",BS_AUTORADIOBUTTON | + WS_GROUP,316,108,52,8 + CONTROL "Ordered",IDC_ORDER_RADIO,"Button",BS_AUTORADIOBUTTON | + WS_GROUP,316,118,53,8 + CONTROL "None",IDC_NONE_RADIO,"Button",BS_AUTORADIOBUTTON | + WS_GROUP,316,126,48,8 + CONTROL "Grayscale",IDC_CHECK6,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,290,139,74,8 + CONTROL "Fast",IDC_FAST_CHECK,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,290,148,74,8 + CONTROL "No Smooth",IDC_NOSMOOTH_CHECK,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,290,157,74,8 + CONTROL "One Pass",IDC_ONEPASS_CHECK,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,290,166,74,8 + PUSHBUTTON "...",IDC_GRAPH_BUTTON,346,6,27,14 + PUSHBUTTON "...",IDC_JPG_BUTTON,346,24,27,14 + LTEXT "0",IDC_TIME,185,210,60,10 +END + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "JPGtest MFC Application\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "JPGtest\0" + VALUE "LegalCopyright", "Copyright (C) 1998\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "JPGtest.EXE\0" + VALUE "ProductName", "JPGtest Application\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_JPGTEST_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 382 + TOPMARGIN, 7 + BOTTOMMARGIN, 221 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_ABOUTBOX "&About JPGtest..." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDR_MAINFRAME " JPEGtest (Dundas Software)" + ID_DESCRIPTION_FILE "jpegtestinfo.rtf" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#include "utsampleabout.rc" +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif +#include "res\JPGtest.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +#endif +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtest.vcproj b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtest.vcproj new file mode 100644 index 0000000..b4ab5a0 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtest.vcproj @@ -0,0 +1,761 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtestDlg.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtestDlg.cpp new file mode 100644 index 0000000..c7b2853 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtestDlg.cpp @@ -0,0 +1,313 @@ +// JPGtestDlg.cpp : implementation file +// + +#include "stdafx.h" + #include "oxbmpfle.h" + #include "oxjpgfle.h" + #include "oxjpgcom.h" + #include "oxjpgdom.h" + #include "oxjpgexp.h" +#include "utsampleabout.h" +#include "JPGtest.h" +#include "JPGtestDlg.h" + +#include "UTBStrOp.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +#define SIZE_ERROR_BUF 255 +///////////////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////////////////////////////////// +// CJPGtestDlg dialog + +CJPGtestDlg::CJPGtestDlg(CWnd* pParent /*=NULL*/) + : CDialog(CJPGtestDlg::IDD, pParent) +{ + //{{AFX_DATA_INIT(CJPGtestDlg) + m_sGraphicsFile = _T("??????.bmp"); + m_sJPEGFile = _T("??????.jpg"); + m_bGray = FALSE; + m_bBase = FALSE; + m_bProgr = FALSE; + m_bOpt = FALSE; + m_nQuality = 75; + m_nSmooth = 0; + m_nMaxMem = 0; + m_nDCT = -1; + m_nColors = 0; + m_nMaxMem2 = 0; + m_bOnePass = FALSE; + m_bGrayScale2 = FALSE; + m_bFast = FALSE; + m_bNoSmooth = FALSE; + m_bOS2 = FALSE; + m_nDither = -1; + m_nScale = -1; + m_nDCT2 = -1; + //}}AFX_DATA_INIT + // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 + m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); +} + +void CJPGtestDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CJPGtestDlg) + DDX_Control(pDX, IDC_TIME, m_Time_Static); + DDX_Text(pDX, IDC_EDIT1, m_sGraphicsFile); + DDX_Text(pDX, IDC_EDIT2, m_sJPEGFile); + DDX_Check(pDX, IDC_CHECK1, m_bGray); + DDX_Check(pDX, IDC_CHECK2, m_bBase); + DDX_Check(pDX, IDC_CHECK3, m_bProgr); + DDX_Check(pDX, IDC_CHECK4, m_bOpt); + DDX_Text(pDX, IDC_EDIT3, m_nQuality); + DDX_Text(pDX, IDC_EDIT4, m_nSmooth); + DDX_Text(pDX, IDC_EDIT5, m_nMaxMem); + DDX_Radio(pDX, IDC_RADIO1, m_nDCT); + DDX_Text(pDX, IDC_COLORS_EDIT, m_nColors); + DDX_Text(pDX, IDC_MAXMEM_EDIT, m_nMaxMem2); + DDX_Check(pDX, IDC_ONEPASS_CHECK, m_bOnePass); + DDX_Check(pDX, IDC_CHECK6, m_bGrayScale2); + DDX_Check(pDX, IDC_FAST_CHECK, m_bFast); + DDX_Check(pDX, IDC_NOSMOOTH_CHECK, m_bNoSmooth); + DDX_Check(pDX, IDC_CHECK5, m_bOS2); + DDX_Radio(pDX, IDC_FS_RADIO, m_nDither); + DDX_Radio(pDX, IDC_ONEONE_RADIO, m_nScale); + DDX_Radio(pDX, IDC_DINT_RADIO, m_nDCT2); + //}}AFX_DATA_MAP +} + +BEGIN_MESSAGE_MAP(CJPGtestDlg, CDialog) + //{{AFX_MSG_MAP(CJPGtestDlg) + ON_WM_SYSCOMMAND() + ON_WM_PAINT() + ON_WM_QUERYDRAGICON() + ON_BN_CLICKED(IDC_GRAPH_BUTTON, OnGraphButton) + ON_BN_CLICKED(IDC_JPG_BUTTON, OnJpgButton) + ON_BN_CLICKED(IDC_Compress, OnCompress) + ON_BN_CLICKED(IDC_UnCompress, OnUnCompress) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CJPGtestDlg message handlers + +BOOL CJPGtestDlg::OnInitDialog() +{ + CDialog::OnInitDialog(); + + // Add "About..." menu item to system menu. + + // IDM_ABOUTBOX must be in the system command range. + ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); + ASSERT(IDM_ABOUTBOX < 0xF000); + + CMenu* pSysMenu = GetSystemMenu(FALSE); + if (pSysMenu != NULL) + { + CString strAboutMenu; + strAboutMenu.LoadString(IDS_ABOUTBOX); + if (!strAboutMenu.IsEmpty()) + { + pSysMenu->AppendMenu(MF_SEPARATOR); + pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); + } + } + + // Set the icon for this dialog. The framework does this automatically + // when the application's main window is not a dialog + SetIcon(m_hIcon, TRUE); // Set big icon + SetIcon(m_hIcon, FALSE); // Set small icon + + // TODO: Add extra initialization here + + return TRUE; // return TRUE unless you set the focus to a control +} + +void CJPGtestDlg::OnSysCommand(UINT nID, LPARAM lParam) +{ + if ((nID & 0xFFF0) == IDM_ABOUTBOX) + { + CUTSampleAboutDlg dlgAbout(IDR_MAINFRAME,ID_DESCRIPTION_FILE); + dlgAbout.DoModal(); + } + else + { + CDialog::OnSysCommand(nID, lParam); + } +} + +// If you add a minimize button to your dialog, you will need the code below +// to draw the icon. For MFC applications using the document/view model, +// this is automatically done for you by the framework. + +void CJPGtestDlg::OnPaint() +{ + if (IsIconic()) + { + CPaintDC dc(this); // device context for painting + + SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); + + // Center icon in client rectangle + int cxIcon = GetSystemMetrics(SM_CXICON); + int cyIcon = GetSystemMetrics(SM_CYICON); + CRect rect; + GetClientRect(&rect); + int x = (rect.Width() - cxIcon + 1) / 2; + int y = (rect.Height() - cyIcon + 1) / 2; + + // Draw the icon + dc.DrawIcon(x, y, m_hIcon); + } + else + { + CDialog::OnPaint(); + } +} + +// The system calls this to obtain the cursor to display while the user drags +// the minimized window. +HCURSOR CJPGtestDlg::OnQueryDragIcon() +{ + return (HCURSOR) m_hIcon; +} + +void CJPGtestDlg::OnGraphButton() +{ + char szFilter[] = "Bitmap Files (*.bmp) | *.bmp ||"; + + CFileDialog FileDialog(TRUE, "bmp", "*.bmp", OFN_HIDEREADONLY, szFilter, this); + if (FileDialog.DoModal() == IDOK) + { + m_sGraphicsFile = FileDialog.GetPathName(); + UpdateData(FALSE); + } +} + +void CJPGtestDlg::OnJpgButton() +{ + char szFilter[] = "JPEG Files (*.jpg) | *.jpg ||"; + + CFileDialog FileDialog(TRUE, "jpg", "*.jpg", OFN_HIDEREADONLY, szFilter, this); + if (FileDialog.DoModal() == IDOK) + { + m_sJPEGFile = FileDialog.GetPathName(); + UpdateData(FALSE); + } +} + +void CJPGtestDlg::OnCompress() +{ + if (!UpdateData(TRUE)) + return; + + BeginWaitCursor(); + + COXBMPFile BMPFile(m_sGraphicsFile); + COXJPEGFile JPGFile(m_sJPEGFile); + + COXJPEGCompressor JCompr; + + JCompr.SetGrayScale(m_bGray); + JCompr.SetBaseLine(m_bBase); + JCompr.SetProgressive(m_bProgr); + JCompr.SetOptimize(m_bOpt); + JCompr.SetQuality(m_nQuality); + if (m_nSmooth != 0) + JCompr.SetSmooth(m_nSmooth); + JCompr.SetMaxMemory(m_nMaxMem); + if (m_nDCT != -1) + JCompr.SetDisCosTranf((EDiscreteCosTransf)(m_nDCT + 1)); + + DWORD nBeginTicks, nEndTicks; + nBeginTicks = GetTickCount(); + short nReturn(0); + TCHAR ErrorBuffer[SIZE_ERROR_BUF]; + + TRY + { + nReturn = JCompr.DoCompress(&BMPFile, &JPGFile); + if (nReturn == 2) + AfxMessageBox(JCompr.GetWarningMessages()); + } + CATCH(COXJPEGException, e) + { + e->GetErrorMessage(ErrorBuffer, SIZE_ERROR_BUF); + AfxMessageBox(CString("Exception : ") + ErrorBuffer); + + TRACE((LPCTSTR)ErrorBuffer); + } + END_CATCH + + nEndTicks = GetTickCount(); + + char buffer[20]; + UTBStr::sprintf(buffer, 20, "%f", (nEndTicks - nBeginTicks)/1000.0); + m_Time_Static.SetWindowText(buffer); + + EndWaitCursor(); +} + +void CJPGtestDlg::OnUnCompress() +{ + if (!UpdateData(TRUE)) + return; + + BeginWaitCursor(); + + COXBMPFile BMPFile(m_sGraphicsFile); + BMPFile.SetOS2Format(m_bOS2); + + COXJPEGFile JPGFile(m_sJPEGFile); + + COXJPEGDecompressor JDecompr; + + JDecompr.SetGrayScale(m_bGrayScale2); + JDecompr.SetFast(m_bFast); + JDecompr.SetNoSmooth(m_bNoSmooth); + JDecompr.SetOnePass(m_bOnePass); + JDecompr.SetMaxMemory(m_nMaxMem2); + + if (m_nDCT2 != -1) + JDecompr.SetDisCosTranf((EDiscreteCosTransf)(m_nDCT2 + 1)); + if (m_nDither != -1) + JDecompr.SetDitherMethod((EDitherMethod)(m_nDither + 1)); + if (m_nScale != -1) + JDecompr.SetScale((EDecompScale)(m_nScale + 1)); + + if (m_nColors != 0) + JDecompr.SetColors(m_nColors); + + DWORD nBeginTicks, nEndTicks; + nBeginTicks = GetTickCount(); + short nReturn(0); + TCHAR ErrorBuffer[SIZE_ERROR_BUF]; + + TRY + { + nReturn = JDecompr.DoDecompress(&JPGFile, &BMPFile); + if (nReturn == 2) + AfxMessageBox(JDecompr.GetWarningMessages()); + } + CATCH(COXJPEGException, e) + { + e->GetErrorMessage(ErrorBuffer, SIZE_ERROR_BUF); + AfxMessageBox(CString("Exception : ") + ErrorBuffer); + TRACE((LPCTSTR)ErrorBuffer); + } + END_CATCH + + nEndTicks = GetTickCount(); + + char buffer[20]; + UTBStr::sprintf(buffer, 20, "%f", (nEndTicks - nBeginTicks)/1000.0); + m_Time_Static.SetWindowText(buffer); + + EndWaitCursor(); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtestDlg.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtestDlg.h new file mode 100644 index 0000000..1782ec8 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/JPGtestDlg.h @@ -0,0 +1,73 @@ +// JPGtestDlg.h : header file +// + +#if !defined(AFX_JPGTESTDLG_H__F8562DF9_85B7_11D1_A4E1_0020359647BF__INCLUDED_) +#define AFX_JPGTESTDLG_H__F8562DF9_85B7_11D1_A4E1_0020359647BF__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +///////////////////////////////////////////////////////////////////////////// +// CJPGtestDlg dialog + +class CJPGtestDlg : public CDialog +{ +// Construction +public: + CJPGtestDlg(CWnd* pParent = NULL); // standard constructor + +// Dialog Data + //{{AFX_DATA(CJPGtestDlg) + enum { IDD = IDD_JPGTEST_DIALOG }; + CStatic m_Time_Static; + CString m_sGraphicsFile; + CString m_sJPEGFile; + BOOL m_bGray; + BOOL m_bBase; + BOOL m_bProgr; + BOOL m_bOpt; + UINT m_nQuality; + UINT m_nSmooth; + UINT m_nMaxMem; + int m_nDCT; + UINT m_nColors; + UINT m_nMaxMem2; + BOOL m_bOnePass; + BOOL m_bGrayScale2; + BOOL m_bFast; + BOOL m_bNoSmooth; + BOOL m_bOS2; + int m_nDither; + int m_nScale; + int m_nDCT2; + //}}AFX_DATA + + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CJPGtestDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + HICON m_hIcon; + + // Generated message map functions + //{{AFX_MSG(CJPGtestDlg) + virtual BOOL OnInitDialog(); + afx_msg void OnSysCommand(UINT nID, LPARAM lParam); + afx_msg void OnPaint(); + afx_msg HCURSOR OnQueryDragIcon(); + afx_msg void OnGraphButton(); + afx_msg void OnJpgButton(); + afx_msg void OnCompress(); + afx_msg void OnUnCompress(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_JPGTESTDLG_H__F8562DF9_85B7_11D1_A4E1_0020359647BF__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/ReadMe.txt b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/ReadMe.txt new file mode 100644 index 0000000..15b0062 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/ReadMe.txt @@ -0,0 +1,81 @@ +======================================================================== + MICROSOFT FOUNDATION CLASS LIBRARY : JPGtest +======================================================================== + + +AppWizard has created this JPGtest application for you. This application +not only demonstrates the basics of using the Microsoft Foundation classes +but is also a starting point for writing your application. + +This file contains a summary of what you will find in each of the files that +make up your JPGtest application. + +JPGtest.h + This is the main header file for the application. It includes other + project specific headers (including Resource.h) and declares the + CJPGtestApp application class. + +JPGtest.cpp + This is the main application source file that contains the application + class CJPGtestApp. + +JPGtest.rc + This is a listing of all of the Microsoft Windows resources that the + program uses. It includes the icons, bitmaps, and cursors that are stored + in the RES subdirectory. This file can be directly edited in Microsoft + Developer Studio. + +res\JPGtest.ico + This is an icon file, which is used as the application's icon. This + icon is included by the main resource file JPGtest.rc. + +res\JPGtest.rc2 + This file contains resources that are not edited by Microsoft + Developer Studio. You should place all resources not + editable by the resource editor in this file. + +JPGtest.clw + This file contains information used by ClassWizard to edit existing + classes or add new classes. ClassWizard also uses this file to store + information needed to create and edit message maps and dialog data + maps and to create prototype member functions. + + +///////////////////////////////////////////////////////////////////////////// + +AppWizard creates one dialog class: + +JPGtestDlg.h, JPGtestDlg.cpp - the dialog + These files contain your CJPGtestDlg class. This class defines + the behavior of your application's main dialog. The dialog's + template is in JPGtest.rc, which can be edited in Microsoft + Developer Studio. + + +///////////////////////////////////////////////////////////////////////////// +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named JPGtest.pch and a precompiled types file named StdAfx.obj. + +Resource.h + This is the standard header file, which defines new resource IDs. + Microsoft Developer Studio reads and updates this file. + +///////////////////////////////////////////////////////////////////////////// +Other notes: + +AppWizard uses "TODO:" to indicate parts of the source code you +should add to or customize. + +If your application uses MFC in a shared DLL, and your application is +in a language other than the operating system's current language, you +will need to copy the corresponding localized resources MFC40XXX.DLL +from the Microsoft Visual C++ CD-ROM onto the system or system32 directory, +and rename it to be MFCLOC.DLL. ("XXX" stands for the language abbreviation. +For example, MFC40DEU.DLL contains resources translated to German.) If you +don't do this, some of the UI elements of your application will remain in the +language of the operating system. + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/StdAfx.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/StdAfx.cpp new file mode 100644 index 0000000..df0254d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/StdAfx.cpp @@ -0,0 +1,6 @@ +// stdafx.cpp : source file that includes just the standard includes +// JPGtest.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/StdAfx.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/StdAfx.h new file mode 100644 index 0000000..c9af921 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/StdAfx.h @@ -0,0 +1,26 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#if !defined(AFX_STDAFX_H__F8562DFB_85B7_11D1_A4E1_0020359647BF__INCLUDED_) +#define AFX_STDAFX_H__F8562DFB_85B7_11D1_A4E1_0020359647BF__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers + +#include // MFC core and standard components +#include // MFC extensions +#include // MFC OLE automation classes +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for Windows Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_STDAFX_H__F8562DFB_85B7_11D1_A4E1_0020359647BF__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/bitmap1.bmp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/bitmap1.bmp new file mode 100644 index 0000000000000000000000000000000000000000..fe39a07de84ba05b7fe004d896e35cf36ed8feb9 GIT binary patch literal 23882 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 Ldiuim_7DF8gxVH) literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/res/JPGtest.ico b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/res/JPGtest.ico new file mode 100644 index 0000000000000000000000000000000000000000..7eef0bcbe6580a6f464d688906172c2d9de44262 GIT binary patch literal 1078 zcmc&zF>b>!3}jLb9s)T}@Kod(893@u8ajANzT`op9^o+)S?=nU(FD@%0s)Sg^oyC8{H z9myetc;MEP)59v(LMa~xK8Yu^jIR*H22uCFiq5%C{s7(PJi>o15i^bmX4(vPxWAio z9ryY#AU_jfnd047-@`)XzL?%iS$gQyFP{44kS9X)fN{{QoL~hO-&=q&20Zr*cxFAt PkaNE{wR~2C$NfnjhSXWT literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/res/JPGtest.rc2 b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/res/JPGtest.rc2 new file mode 100644 index 0000000..371a3e2 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/res/JPGtest.rc2 @@ -0,0 +1,13 @@ +// +// JPGTEST.RC2 - resources Microsoft Visual C++ does not edit directly +// + +#ifdef APSTUDIO_INVOKED + #error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// Add manually edited resources here... + +///////////////////////////////////////////////////////////////////////////// diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/resource.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/resource.h new file mode 100644 index 0000000..337e235 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/JPGtest/resource.h @@ -0,0 +1,57 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by JPGtest.rc +// +#define IDM_ABOUTBOX 0x0010 +#define IDD_ABOUTBOX 100 +#define IDS_ABOUTBOX 101 +#define IDD_JPGTEST_DIALOG 102 +#define IDR_MAINFRAME 128 +#define ID_DESCRIPTION_FILE 129 +#define IDC_EDIT1 1000 +#define IDC_EDIT2 1001 +#define IDC_EDIT3 1002 +#define IDC_EDIT4 1003 +#define IDC_EDIT5 1004 +#define IDC_RADIO1 1005 +#define IDC_RADIO2 1006 +#define IDC_RADIO3 1007 +#define IDC_CHECK1 1008 +#define IDC_CHECK2 1009 +#define IDC_CHECK3 1010 +#define IDC_CHECK4 1011 +#define IDC_Compress 1012 +#define IDC_COLORS_EDIT 1013 +#define IDC_MAXMEM_EDIT 1014 +#define IDC_ONEONE_RADIO 1015 +#define IDC_HALF_RADIO 1016 +#define IDC_FOURTH_RADIO 1017 +#define IDC_EIGHT_RADIO 1018 +#define IDC_CHECK5 1019 +#define IDC_UnCompress 1020 +#define IDC_DINT_RADIO 1022 +#define IDC_DFAST_RADIO 1023 +#define IDC_DFLOAT_RADIO 1024 +#define IDC_FS_RADIO 1025 +#define IDC_ORDER_RADIO 1026 +#define IDC_NONE_RADIO 1027 +#define IDC_CHECK6 1028 +#define IDC_FAST_CHECK 1029 +#define IDC_NOSMOOTH_CHECK 1030 +#define IDC_ONEPASS_CHECK 1031 +#define IDC_GRAPH_BUTTON 1032 +#define IDC_JPG_BUTTON 1033 +#define IDC_PUT_Button 1034 +#define IDC_WriteButton 1035 +#define IDC_TIME 1036 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 129 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 1037 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/ChildFrm.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/ChildFrm.cpp new file mode 100644 index 0000000..e53e275 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/ChildFrm.cpp @@ -0,0 +1,74 @@ +// ChildFrm.cpp : implementation of the CChildFrame class +// + +#include "stdafx.h" +#include "MetaFile.h" + +#include "ChildFrm.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame + +IMPLEMENT_DYNCREATE(CChildFrame, CMDIChildWnd) + +BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWnd) + //{{AFX_MSG_MAP(CChildFrame) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame construction/destruction + +CChildFrame::CChildFrame() +{ + // TODO: add member initialization code here + +} + +CChildFrame::~CChildFrame() +{ +} + +BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs) +{ + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + return CMDIChildWnd::PreCreateWindow(cs); +} + +void CChildFrame::ActivateFrame(int nCmdShow) +{ + if (nCmdShow == -1) + nCmdShow = SW_SHOWMAXIMIZED; + + CMDIChildWnd::ActivateFrame(nCmdShow); +} + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame diagnostics + +#ifdef _DEBUG +void CChildFrame::AssertValid() const +{ + CMDIChildWnd::AssertValid(); +} + +void CChildFrame::Dump(CDumpContext& dc) const +{ + CMDIChildWnd::Dump(dc); +} + +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CChildFrame message handlers + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/ChildFrm.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/ChildFrm.h new file mode 100644 index 0000000..5b87940 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/ChildFrm.h @@ -0,0 +1,53 @@ +// ChildFrm.h : interface of the CChildFrame class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_CHILDFRM_H__D6580AEE_EA6C_11D1_8856_0080C83F712F__INCLUDED_) +#define AFX_CHILDFRM_H__D6580AEE_EA6C_11D1_8856_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +class CChildFrame : public CMDIChildWnd +{ + DECLARE_DYNCREATE(CChildFrame) +public: + CChildFrame(); + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CChildFrame) + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + //}}AFX_VIRTUAL + virtual void ActivateFrame( int nCmdShow = 1 ); + +// Implementation +public: + virtual ~CChildFrame(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +// Generated message map functions +protected: + //{{AFX_MSG(CChildFrame) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_CHILDFRM_H__D6580AEE_EA6C_11D1_8856_0080C83F712F__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MainFrm.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MainFrm.cpp new file mode 100644 index 0000000..eb79ef0 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MainFrm.cpp @@ -0,0 +1,107 @@ +// MainFrm.cpp : implementation of the CMainFrame class +// + +#include "stdafx.h" +#include "MetaFile.h" + +#include "MainFrm.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame + +IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWnd) + +BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd) + //{{AFX_MSG_MAP(CMainFrame) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code ! + ON_WM_CREATE() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +static UINT indicators[] = +{ + ID_SEPARATOR, // status line indicator + ID_INDICATOR_CAPS, + ID_INDICATOR_NUM, + ID_INDICATOR_SCRL, +}; + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame construction/destruction + +CMainFrame::CMainFrame() +{ + // TODO: add member initialization code here + +} + +CMainFrame::~CMainFrame() +{ +} + +int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) +{ + if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1) + return -1; + + if (!m_wndToolBar.Create(this) || + !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) + { + TRACE0("Failed to create toolbar\n"); + return -1; // fail to create + } + + if (!m_wndStatusBar.Create(this) || + !m_wndStatusBar.SetIndicators(indicators, + sizeof(indicators)/sizeof(UINT))) + { + TRACE0("Failed to create status bar\n"); + return -1; // fail to create + } + + // TODO: Remove this if you don't want tool tips or a resizeable toolbar + m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() | + CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC); + + // TODO: Delete these three lines if you don't want the toolbar to + // be dockable + m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); + EnableDocking(CBRS_ALIGN_ANY); + DockControlBar(&m_wndToolBar); + + return 0; +} + +BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) +{ + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + return CMDIFrameWnd::PreCreateWindow(cs); +} + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame diagnostics + +#ifdef _DEBUG +void CMainFrame::AssertValid() const +{ + CMDIFrameWnd::AssertValid(); +} + +void CMainFrame::Dump(CDumpContext& dc) const +{ + CMDIFrameWnd::Dump(dc); +} + +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CMainFrame message handlers diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MainFrm.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MainFrm.h new file mode 100644 index 0000000..01af316 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MainFrm.h @@ -0,0 +1,57 @@ +// MainFrm.h : interface of the CMainFrame class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_MAINFRM_H__D6580AEC_EA6C_11D1_8856_0080C83F712F__INCLUDED_) +#define AFX_MAINFRM_H__D6580AEC_EA6C_11D1_8856_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +class CMainFrame : public CMDIFrameWnd +{ + DECLARE_DYNAMIC(CMainFrame) +public: + CMainFrame(); + +// Attributes +public: + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CMainFrame) + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CMainFrame(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: // control bar embedded members + CStatusBar m_wndStatusBar; + CToolBar m_wndToolBar; + +// Generated message map functions +protected: + //{{AFX_MSG(CMainFrame) + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_MAINFRM_H__D6580AEC_EA6C_11D1_8856_0080C83F712F__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.clw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.clw new file mode 100644 index 0000000..65d6c2f --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.clw @@ -0,0 +1,159 @@ +; CLW file contains information for the MFC ClassWizard + +[General Info] +Version=1 +LastClass=CMetaFileApp +LastTemplate=CDialog +NewFileInclude1=#include "stdafx.h" +NewFileInclude2=#include "MetaFile.h" +LastPage=0 + +ClassCount=5 +Class1=CMetaFileApp +Class2=CMetaFileDoc +Class3=CMetaFileView +Class4=CMainFrame + +ResourceCount=4 +Resource1=IDR_EMFTYPE +Class5=CChildFrame +Resource2=IDR_MAINFRAME (English (U.S.)) +Resource3=IDR_EMFTYPE (English (U.S.)) +Resource4=IDR_MAINFRAME + +[CLS:CMetaFileApp] +Type=0 +HeaderFile=MetaFile.h +ImplementationFile=MetaFile.cpp +Filter=N +BaseClass=CWinApp +VirtualFilter=AC +LastObject=CMetaFileApp + +[CLS:CMetaFileDoc] +Type=0 +HeaderFile=MetaFileDoc.h +ImplementationFile=MetaFileDoc.cpp +Filter=N +BaseClass=CDocument +VirtualFilter=DC +LastObject=CMetaFileDoc + +[CLS:CMetaFileView] +Type=0 +HeaderFile=MetaFileView.h +ImplementationFile=MetaFileView.cpp +Filter=C +BaseClass=CView +VirtualFilter=VWC +LastObject=ID_VIEW_RATIO + +[CLS:CMainFrame] +Type=0 +HeaderFile=MainFrm.h +ImplementationFile=MainFrm.cpp +Filter=T + + +[CLS:CChildFrame] +Type=0 +HeaderFile=ChildFrm.h +ImplementationFile=ChildFrm.cpp +Filter=M + +[MNU:IDR_MAINFRAME] +Type=1 +Class=CMainFrame +Command1=ID_FILE_NEW +Command2=ID_FILE_OPEN +Command3=ID_FILE_PRINT_SETUP +Command4=ID_FILE_MRU_FILE1 +Command5=ID_APP_EXIT +Command6=ID_VIEW_TOOLBAR +Command7=ID_VIEW_STATUS_BAR +Command8=ID_APP_ABOUT +CommandCount=8 + +[TB:IDR_MAINFRAME] +Type=1 +Class=CMainFrame +Command1=ID_FILE_NEW +Command2=ID_FILE_OPEN +Command3=ID_FILE_PRINT +Command4=ID_APP_ABOUT +CommandCount=4 + +[MNU:IDR_EMFTYPE] +Type=1 +Class=CMetaFileView +Command1=ID_FILE_NEW +Command2=ID_FILE_OPEN +Command3=ID_FILE_CREATE_METAFILE +Command4=ID_FILE_CLOSE +Command5=ID_FILE_PRINT +Command6=ID_FILE_PRINT_PREVIEW +Command7=ID_FILE_PRINT_SETUP +Command8=ID_FILE_MRU_FILE1 +Command9=ID_APP_EXIT +Command10=ID_VIEW_TOOLBAR +Command11=ID_VIEW_STATUS_BAR +Command12=ID_VIEW_RATIO +Command13=ID_WINDOW_NEW +Command14=ID_WINDOW_CASCADE +Command15=ID_WINDOW_TILE_HORZ +Command16=ID_WINDOW_ARRANGE +Command17=ID_APP_ABOUT +CommandCount=17 + +[ACL:IDR_MAINFRAME] +Type=1 +Class=CMainFrame +Command1=ID_FILE_NEW +Command2=ID_FILE_OPEN +Command3=ID_FILE_SAVE +Command4=ID_FILE_PRINT +Command5=ID_EDIT_UNDO +Command6=ID_EDIT_CUT +Command7=ID_EDIT_COPY +Command8=ID_EDIT_PASTE +Command9=ID_EDIT_UNDO +Command10=ID_EDIT_CUT +Command11=ID_EDIT_COPY +Command12=ID_EDIT_PASTE +Command13=ID_NEXT_PANE +Command14=ID_PREV_PANE +CommandCount=14 + +[MNU:IDR_EMFTYPE (English (U.S.))] +Type=1 +Command1=ID_FILE_NEW +Command2=ID_FILE_OPEN +Command3=ID_FILE_CREATE_METAFILE +Command4=ID_FILE_CLOSE +Command5=ID_FILE_PRINT +Command6=ID_FILE_PRINT_PREVIEW +Command7=ID_FILE_PRINT_SETUP +Command8=ID_FILE_MRU_FILE1 +Command9=ID_APP_EXIT +Command10=ID_VIEW_TOOLBAR +Command11=ID_VIEW_STATUS_BAR +Command12=ID_VIEW_RATIO +Command13=ID_WINDOW_NEW +Command14=ID_WINDOW_CASCADE +Command15=ID_WINDOW_TILE_HORZ +Command16=ID_WINDOW_ARRANGE +Command17=ID_APP_ABOUT +CommandCount=17 + +[MNU:IDR_MAINFRAME (English (U.S.))] +Type=1 +Command1=ID_FILE_NEW +Command2=ID_FILE_OPEN +Command3=ID_FILE_PRINT_SETUP +Command4=ID_FILE_MRU_FILE1 +Command5=ID_APP_EXIT +Command6=ID_VIEW_TOOLBAR +Command7=ID_VIEW_STATUS_BAR +Command8=ID_APP_ABOUT +CommandCount=8 + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.cpp new file mode 100644 index 0000000..10e9c66 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.cpp @@ -0,0 +1,145 @@ +// MetaFile.cpp : Defines the class behaviors for the application. +// + +#include "stdafx.h" +#include "MetaFile.h" + +#include "MainFrm.h" +#include "ChildFrm.h" +#include "MetaFileDoc.h" +#include "MetaFileView.h" + +#include "UTSampleAbout.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CMetaFileApp + +BEGIN_MESSAGE_MAP(CMetaFileApp, CWinApp) + //{{AFX_MSG_MAP(CMetaFileApp) + ON_COMMAND(ID_APP_ABOUT, OnAppAbout) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG_MAP + // Standard file based document commands + ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) + ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) + // Standard print setup command + ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CMetaFileApp construction + +CMetaFileApp::CMetaFileApp() +{ + // TODO: add construction code here, + // Place all significant initialization in InitInstance +} + +///////////////////////////////////////////////////////////////////////////// +// The one and only CMetaFileApp object + +CMetaFileApp theApp; +static HINSTANCE g_hRichEdDLL=NULL; + +///////////////////////////////////////////////////////////////////////////// +// CMetaFileApp initialization + +BOOL CMetaFileApp::InitInstance() +{ + // Initialize RichEdit control + // for About Dialog + if(g_hRichEdDLL==NULL) + { + g_hRichEdDLL=::LoadLibrary(_T("RICHED32.DLL")); + if(g_hRichEdDLL==NULL) + TRACE(_T("Cannot load library to display RichEditTextControl")); + } + + + // 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. + +#if _MSC_VER < 1400 +#ifdef _AFXDLL + Enable3dControls(); // Call this when using MFC in a shared DLL +#else + Enable3dControlsStatic(); // Call this when linking to MFC statically +#endif +#endif + + + // Change the registry key under which our settings are stored. + // You should modify this string to be something appropriate + // such as the name of your company or organization. + SetRegistryKey(_T("Local AppWizard-Generated Applications")); + + LoadStdProfileSettings(8); // Load standard INI file options (including MRU) + + // Register the application's document templates. Document templates + // serve as the connection between documents, frame windows and views. + + CMultiDocTemplate* pDocTemplate; + pDocTemplate = new CMultiDocTemplate( + IDR_EMFTYPE, + RUNTIME_CLASS(CMetaFileDoc), + RUNTIME_CLASS(CChildFrame), // custom MDI child frame + RUNTIME_CLASS(CMetaFileView)); + AddDocTemplate(pDocTemplate); + + // create main MDI Frame window + CMainFrame* pMainFrame = new CMainFrame; + if (!pMainFrame->LoadFrame(IDR_MAINFRAME)) + return FALSE; + m_pMainWnd = pMainFrame; + + // Enable drag/drop open + m_pMainWnd->DragAcceptFiles(); + + // Enable DDE Execute open + EnableShellOpen(); + RegisterShellFileTypes(TRUE); + + // Parse command line for standard shell commands, DDE, file open + CCommandLineInfo cmdInfo; + ParseCommandLine(cmdInfo); + + // Dispatch commands specified on the command line + if (!ProcessShellCommand(cmdInfo)) + return FALSE; + + // The main window has been initialized, so show and update it. + pMainFrame->ShowWindow(m_nCmdShow); + pMainFrame->UpdateWindow(); + + return TRUE; +} + +// App command to run the dialog +void CMetaFileApp::OnAppAbout() +{ + CUTSampleAboutDlg dlgAbout(IDR_MAINFRAME,ID_DESCRIPTION_FILE); + dlgAbout.DoModal(); +} + +///////////////////////////////////////////////////////////////////////////// +// CMetaFileApp commands + +int CMetaFileApp::ExitInstance() +{ + // TODO: Add your specialized code here and/or call the base class + + // unload the library + if(g_hRichEdDLL!=NULL) + ::FreeLibrary(g_hRichEdDLL); + + return CWinApp::ExitInstance(); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.dsp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.dsp new file mode 100644 index 0000000..a06df9f --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.dsp @@ -0,0 +1,296 @@ +# Microsoft Developer Studio Project File - Name="MetaFile" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=MetaFile - Win32 Unicode_Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "MetaFile.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "MetaFile.mak" CFG="MetaFile - Win32 Unicode_Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "MetaFile - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "MetaFile - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE "MetaFile - Win32 Release_Shared" (based on "Win32 (x86) Application") +!MESSAGE "MetaFile - Win32 Unicode_Debug" (based on "Win32 (x86) Application") +!MESSAGE "MetaFile - Win32 Unicode_Release" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "MetaFile - Win32 Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"MetaFile.exe" + +!ELSEIF "$(CFG)" == "MetaFile - Win32 Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"MetaFile.exe" /pdbtype:sept + +!ELSEIF "$(CFG)" == "MetaFile - Win32 Release_Shared" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "MetaFile" +# PROP BASE Intermediate_Dir "MetaFile" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release_Shared" +# PROP Intermediate_Dir "Release_Shared" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"MetaFile.exe" + +!ELSEIF "$(CFG)" == "MetaFile - Win32 Unicode_Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "MetaFil0" +# PROP BASE Intermediate_Dir "MetaFil0" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Unicode_Debug" +# PROP Intermediate_Dir "Unicode_Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W4 /Gm /GX /Zi /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MDd /W4 /Gm /GX /ZI /Od /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"MetaFile.exe" /pdbtype:sept +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /debug /machine:I386 /out:"MetaFile.exe" /pdbtype:sept + +!ELSEIF "$(CFG)" == "MetaFile - Win32 Unicode_Release" + +# PROP BASE Use_MFC 5 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "MetaFil1" +# PROP BASE Intermediate_Dir "MetaFil1" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 5 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Unicode_Release" +# PROP Intermediate_Dir "Unicode_Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\..\include" /I "..\..\..\source\utsampleabout" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\..\include" /i "..\..\..\source\utsampleabout" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /out:"MetaFile.exe" +# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /machine:I386 /out:"MetaFile.exe" + +!ENDIF + +# Begin Target + +# Name "MetaFile - Win32 Release" +# Name "MetaFile - Win32 Debug" +# Name "MetaFile - Win32 Release_Shared" +# Name "MetaFile - Win32 Unicode_Debug" +# Name "MetaFile - Win32 Unicode_Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Group "UTSource" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\source\UTSampleAbout\HtmlCtrl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\OXMetaFile.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\UTBStrOp.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\Source\UTSampleAbout\UTSampleAbout.cpp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ChildFrm.cpp +# End Source File +# Begin Source File + +SOURCE=.\MainFrm.cpp +# End Source File +# Begin Source File + +SOURCE=.\MetaFile.cpp +# End Source File +# Begin Source File + +SOURCE=.\MetaFile.rc +# End Source File +# Begin Source File + +SOURCE=.\MetaFileDoc.cpp +# End Source File +# Begin Source File + +SOURCE=.\MetaFileView.cpp +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\ChildFrm.h +# End Source File +# Begin Source File + +SOURCE=.\MainFrm.h +# End Source File +# Begin Source File + +SOURCE=.\MetaFile.h +# End Source File +# Begin Source File + +SOURCE=.\MetaFileDoc.h +# End Source File +# Begin Source File + +SOURCE=.\MetaFileView.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\Include\OXMetaFile.h +# End Source File +# Begin Source File + +SOURCE=.\Resource.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\res\MetaFile.ico +# End Source File +# Begin Source File + +SOURCE=.\res\MetaFile.rc2 +# End Source File +# Begin Source File + +SOURCE=.\res\MetaFileDoc.ico +# End Source File +# Begin Source File + +SOURCE=.\res\Toolbar.bmp +# End Source File +# End Group +# Begin Source File + +SOURCE=.\MetaFiles\Hatecomp.wmf +# End Source File +# Begin Source File + +SOURCE=.\MetaFile.reg +# End Source File +# Begin Source File + +SOURCE=.\ReadMe.txt +# End Source File +# End Target +# End Project diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.dsw b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.dsw new file mode 100644 index 0000000..da35cc9 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "MetaFile"=".\MetaFile.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.exe.manifest b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.exe.manifest new file mode 100644 index 0000000..275675d --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.exe.manifest @@ -0,0 +1,22 @@ + + + +Your app description here + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.h new file mode 100644 index 0000000..aea6961 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.h @@ -0,0 +1,51 @@ +// MetaFile.h : main header file for the METAFILE application +// + +#if !defined(AFX_METAFILE_H__D6580AE8_EA6C_11D1_8856_0080C83F712F__INCLUDED_) +#define AFX_METAFILE_H__D6580AE8_EA6C_11D1_8856_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols + +///////////////////////////////////////////////////////////////////////////// +// CMetaFileApp: +// See MetaFile.cpp for the implementation of this class +// + +class CMetaFileApp : public CWinApp +{ +public: + CMetaFileApp(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CMetaFileApp) + public: + virtual BOOL InitInstance(); + virtual int ExitInstance(); + //}}AFX_VIRTUAL + +// Implementation + + //{{AFX_MSG(CMetaFileApp) + afx_msg void OnAppAbout(); + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_METAFILE_H__D6580AE8_EA6C_11D1_8856_0080C83F712F__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.rc b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.rc new file mode 100644 index 0000000..203727f --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.rc @@ -0,0 +1,394 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""UTSampleAbout.rc"" \r\n" + "\r\n" + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif\r\n" + "#include ""res\\MetaFile.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "#include ""afxprint.rc"" // printing/print preview resources\r\n" + "#include ""OXMetaFile.rc""\r\n" + "#endif\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON DISCARDABLE "res\\MetaFile.ico" +IDR_EMFTYPE ICON DISCARDABLE "res\\MetaFileDoc.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDR_MAINFRAME BITMAP MOVEABLE PURE "res\\Toolbar.bmp" + +///////////////////////////////////////////////////////////////////////////// +// +// Toolbar +// + +IDR_MAINFRAME TOOLBAR DISCARDABLE 16, 15 +BEGIN + BUTTON ID_FILE_NEW + BUTTON ID_FILE_OPEN + SEPARATOR + BUTTON ID_FILE_PRINT + BUTTON ID_APP_ABOUT +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_MAINFRAME MENU PRELOAD DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "New\tCtrl+N", ID_FILE_NEW + MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN + MENUITEM SEPARATOR + MENUITEM "P&rint Setup...", ID_FILE_PRINT_SETUP + MENUITEM SEPARATOR + MENUITEM "Recent File", ID_FILE_MRU_FILE1, GRAYED + MENUITEM SEPARATOR + MENUITEM "E&xit", ID_APP_EXIT + END + POPUP "&View" + BEGIN + MENUITEM "&Toolbar", ID_VIEW_TOOLBAR + MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR + END + POPUP "&Help" + BEGIN + MENUITEM "&About MetaFile...", ID_APP_ABOUT + END +END + +IDR_EMFTYPE MENU PRELOAD DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "New \tCtrl+N", ID_FILE_NEW + MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN + MENUITEM "C&reate Metafile", ID_FILE_CREATE_METAFILE + MENUITEM "&Close", ID_FILE_CLOSE + MENUITEM SEPARATOR + MENUITEM "&Print...\tCtrl+P", ID_FILE_PRINT + MENUITEM "Print Pre&view", ID_FILE_PRINT_PREVIEW + MENUITEM "P&rint Setup...", ID_FILE_PRINT_SETUP + MENUITEM SEPARATOR + MENUITEM "Recent File", ID_FILE_MRU_FILE1, GRAYED + MENUITEM SEPARATOR + MENUITEM "E&xit", ID_APP_EXIT + END + POPUP "&View" + BEGIN + MENUITEM "&Toolbar", ID_VIEW_TOOLBAR + MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR + MENUITEM SEPARATOR + MENUITEM "&Maintain Ratio", ID_VIEW_RATIO + END + POPUP "&Window" + BEGIN + MENUITEM "&New Window", ID_WINDOW_NEW + MENUITEM "&Cascade", ID_WINDOW_CASCADE + MENUITEM "&Tile", ID_WINDOW_TILE_HORZ + MENUITEM "&Arrange Icons", ID_WINDOW_ARRANGE + END + POPUP "&Help" + BEGIN + MENUITEM "&About MetaFile...", ID_APP_ABOUT + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Accelerator +// + +IDR_MAINFRAME ACCELERATORS PRELOAD MOVEABLE PURE +BEGIN + "N", ID_FILE_NEW, VIRTKEY, CONTROL + "O", ID_FILE_OPEN, VIRTKEY, CONTROL + "S", ID_FILE_SAVE, VIRTKEY, CONTROL + "P", ID_FILE_PRINT, VIRTKEY, CONTROL + "Z", ID_EDIT_UNDO, VIRTKEY, CONTROL + "X", ID_EDIT_CUT, VIRTKEY, CONTROL + "C", ID_EDIT_COPY, VIRTKEY, CONTROL + "V", ID_EDIT_PASTE, VIRTKEY, CONTROL + VK_BACK, ID_EDIT_UNDO, VIRTKEY, ALT + VK_DELETE, ID_EDIT_CUT, VIRTKEY, SHIFT + VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL + VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT + VK_F6, ID_NEXT_PANE, VIRTKEY + VK_F6, ID_PREV_PANE, VIRTKEY, SHIFT +END + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "MetaFile MFC Application\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "MetaFile\0" + VALUE "LegalCopyright", "Copyright (C) 1998\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "MetaFile.EXE\0" + VALUE "ProductName", "MetaFile Application\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// METAFILE +// + +IDR_HATECOMP_EMF METAFILE DISCARDABLE "MetaFiles\\Hatecomp.wmf" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE PRELOAD DISCARDABLE +BEGIN + IDR_MAINFRAME "MetaFile Demo" + IDR_EMFTYPE "\nEMF\nMetaFile\nMetaFiles (*.emf)\n.emf\nMetaFile.Document\nMetaFile Document" + ID_DESCRIPTION_FILE "MetaFileInfo.rtf" +END + +STRINGTABLE PRELOAD DISCARDABLE +BEGIN + AFX_IDS_APP_TITLE "MetaFile" + AFX_IDS_IDLEMESSAGE "Ready" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_INDICATOR_EXT "EXT" + ID_INDICATOR_CAPS "CAP" + ID_INDICATOR_NUM "NUM" + ID_INDICATOR_SCRL "SCRL" + ID_INDICATOR_OVR "OVR" + ID_INDICATOR_REC "REC" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_NEW "Create a new metafile document\nNew metafile" + ID_FILE_OPEN "Open an existing document\nOpen" + ID_FILE_CLOSE "Close the active document\nClose" + ID_FILE_SAVE "Save the active document\nSave" + ID_FILE_SAVE_AS "Save the active document with a new name\nSave As" + ID_FILE_PAGE_SETUP "Change the printing options\nPage Setup" + ID_FILE_PRINT_SETUP "Change the printer and printing options\nPrint Setup" + ID_FILE_PRINT "Print the active document\nPrint" + ID_FILE_PRINT_PREVIEW "Display full pages\nPrint Preview" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_APP_ABOUT "Display program information, version number and copyright\nAbout" + ID_APP_EXIT "Quit the application; prompts to save documents\nExit" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_MRU_FILE1 "Open this document" + ID_FILE_MRU_FILE2 "Open this document" + ID_FILE_MRU_FILE3 "Open this document" + ID_FILE_MRU_FILE4 "Open this document" + ID_FILE_MRU_FILE5 "Open this document" + ID_FILE_MRU_FILE6 "Open this document" + ID_FILE_MRU_FILE7 "Open this document" + ID_FILE_MRU_FILE8 "Open this document" + ID_FILE_MRU_FILE9 "Open this document" + ID_FILE_MRU_FILE10 "Open this document" + ID_FILE_MRU_FILE11 "Open this document" + ID_FILE_MRU_FILE12 "Open this document" + ID_FILE_MRU_FILE13 "Open this document" + ID_FILE_MRU_FILE14 "Open this document" + ID_FILE_MRU_FILE15 "Open this document" + ID_FILE_MRU_FILE16 "Open this document" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_NEXT_PANE "Switch to the next window pane\nNext Pane" + ID_PREV_PANE "Switch back to the previous window pane\nPrevious Pane" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_WINDOW_NEW "Open another window for the active document\nNew Window" + ID_WINDOW_ARRANGE "Arrange icons at the bottom of the window\nArrange Icons" + ID_WINDOW_CASCADE "Arrange windows so they overlap\nCascade Windows" + ID_WINDOW_TILE_HORZ "Arrange windows as non-overlapping tiles\nTile Windows" + ID_WINDOW_TILE_VERT "Arrange windows as non-overlapping tiles\nTile Windows" + ID_WINDOW_SPLIT "Split the active window into panes\nSplit" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_EDIT_CLEAR "Erase the selection\nErase" + ID_EDIT_CLEAR_ALL "Erase everything\nErase All" + ID_EDIT_COPY "Copy the selection and put it on the Clipboard\nCopy" + ID_EDIT_CUT "Cut the selection and put it on the Clipboard\nCut" + ID_EDIT_FIND "Find the specified text\nFind" + ID_EDIT_PASTE "Insert Clipboard contents\nPaste" + ID_EDIT_REPEAT "Repeat the last action\nRepeat" + ID_EDIT_REPLACE "Replace specific text with different text\nReplace" + ID_EDIT_SELECT_ALL "Select the entire document\nSelect All" + ID_EDIT_UNDO "Undo the last action\nUndo" + ID_EDIT_REDO "Redo the previously undone action\nRedo" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_VIEW_TOOLBAR "Show or hide the toolbar\nToggle ToolBar" + ID_VIEW_STATUS_BAR "Show or hide the status bar\nToggle StatusBar" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_SCSIZE "Change the window size" + AFX_IDS_SCMOVE "Change the window position" + AFX_IDS_SCMINIMIZE "Reduce the window to an icon" + AFX_IDS_SCMAXIMIZE "Enlarge the window to full size" + AFX_IDS_SCNEXTWINDOW "Switch to the next document window" + AFX_IDS_SCPREVWINDOW "Switch to the previous document window" + AFX_IDS_SCCLOSE "Close the active window and prompts to save the documents" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_SCRESTORE "Restore the window to normal size" + AFX_IDS_SCTASKLIST "Activate Task List" + AFX_IDS_MDICHILD "Activate this window" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_PREVIEW_CLOSE "Close print preview mode\nCancel Preview" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#include "UTSampleAbout.rc" + +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif +#include "res\MetaFile.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +#include "afxprint.rc" // printing/print preview resources +#include "OXMetaFile.rc" +#endif +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.reg b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.reg new file mode 100644 index 0000000..5cb2eaf --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.reg @@ -0,0 +1,14 @@ +REGEDIT +; This .REG file may be used by your SETUP program. +; If a SETUP program is not available, the entries below will be +; registered in your InitInstance automatically with a call to +; CWinApp::RegisterShellFileTypes and COleObjectFactory::UpdateRegistryAll. + +HKEY_CLASSES_ROOT\.emf = MetaFile.Document +HKEY_CLASSES_ROOT\MetaFile.Document\shell\open\command = METAFILE.EXE %1 +HKEY_CLASSES_ROOT\MetaFile.Document\shell\open\ddeexec = [open("%1")] +HKEY_CLASSES_ROOT\MetaFile.Document\shell\open\ddeexec\application = METAFILE + ; note: the application is optional + ; (it defaults to the app name in "command") + +HKEY_CLASSES_ROOT\MetaFile.Document = MetaFile Document diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.vcproj b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.vcproj new file mode 100644 index 0000000..c5189ca --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFile.vcproj @@ -0,0 +1,1047 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFileDoc.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFileDoc.cpp new file mode 100644 index 0000000..1830c75 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFileDoc.cpp @@ -0,0 +1,179 @@ +// MetaFileDoc.cpp : implementation of the CMetaFileDoc class +// + +#include "stdafx.h" +#include "MetaFile.h" + +#include "MetaFileDoc.h" + +#include "UTBStrOp.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CMetaFileDoc + +IMPLEMENT_DYNCREATE(CMetaFileDoc, CDocument) + +BEGIN_MESSAGE_MAP(CMetaFileDoc, CDocument) + //{{AFX_MSG_MAP(CMetaFileDoc) + ON_COMMAND(ID_FILE_CREATE_METAFILE, OnFileCreateMetafile) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CMetaFileDoc construction/destruction + +CMetaFileDoc::CMetaFileDoc() +{ + // TODO: add one-time construction code here + + // at startup the logo is loaded as EMF from resource + m_MetaFile.LoadFile(IDR_HATECOMP_EMF); +} + +CMetaFileDoc::~CMetaFileDoc() +{ +} + +BOOL CMetaFileDoc::OnNewDocument() +{ + if (!CDocument::OnNewDocument()) + return FALSE; + + // TODO: add reinitialization code here + // (SDI documents will reuse this document) + + return TRUE; +} + + + +///////////////////////////////////////////////////////////////////////////// +// CMetaFileDoc serialization + +void CMetaFileDoc::Serialize(CArchive& ar) +{ + if (ar.IsStoring()) + { + // TODO: add storing code here + } + else + { + // TODO: add loading code here + } +} + +///////////////////////////////////////////////////////////////////////////// +// CMetaFileDoc diagnostics + +#ifdef _DEBUG +void CMetaFileDoc::AssertValid() const +{ + CDocument::AssertValid(); +} + +void CMetaFileDoc::Dump(CDumpContext& dc) const +{ + CDocument::Dump(dc); +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CMetaFileDoc commands + +BOOL CMetaFileDoc::OnOpenDocument(LPCTSTR lpszPathName) +{ + if (!CDocument::OnOpenDocument(lpszPathName)) + return FALSE; + + // TODO: Add your specialized creation code here + + CString sFileName=lpszPathName; + // Load file, update caption and all Views + if ( ! m_MetaFile.LoadFile(sFileName) ) + { + AfxMessageBox (_T("Error opening the MetaFile")); + return FALSE; + } + AfxGetApp()->m_pMainWnd->SetWindowText("MetaFileDemo: " + m_MetaFile.GetDescription()); + UpdateAllViews(NULL); + + return TRUE; +} + +void CMetaFileDoc::OnFileCreateMetafile() +{ + // TODO: Add your command handler code here + + HDC hdcEMF; + COXMetaFile* pMetaFile=new COXMetaFile; + + // create a demo EMF - File + hdcEMF = pMetaFile->CreateFile ("", "Created by Ultimate Toolbox OXMetaFile class") ; + if(hdcEMF!=NULL) + { + CRect rect; + rect.left=0; + rect.right=300; + rect.top=0; + rect.bottom=200; + CRect rectOrig=rect; + + CDC* pDC=CDC::FromHandle(hdcEMF); + int nSaveDC=pDC->SaveDC(); + pDC->Rectangle(&rect); + + CBrush brush; + for (int i=0; iFillRect(&rect,&brush) ; + rect.top=rect.bottom; + brush.DeleteObject(); + } + } + + CString sText=_T("You've created this metafile!"); + pDC->SetTextColor(RGB(255,0,0)); + pDC->SetBkMode(TRANSPARENT); + LOGFONT lf; + ::ZeroMemory(&lf, sizeof(lf)); + lf.lfHeight=-22; + lf.lfWeight=800; + UTBStr::tcscpy(lf.lfFaceName, LF_FACESIZE, _T("Times New Roman")); + CFont font; + if(font.CreateFontIndirect(&lf)) + { + pDC->SelectObject(&font); + } + pDC->DrawText(sText, &rectOrig, DT_CENTER|DT_VCENTER|DT_SINGLELINE); + if((HFONT)font) + { + font.DeleteObject(); + } + + pMetaFile->CloseFile () ; + + pDC->RestoreDC(nSaveDC); + + CString sFileName=pMetaFile->GetFileName(); + + delete pMetaFile; + + OnOpenDocument(sFileName); + SetPathName(sFileName,TRUE); + } + else + { + pMetaFile->CloseFile () ; + delete pMetaFile; + } + UpdateAllViews(NULL); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFileDoc.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFileDoc.h new file mode 100644 index 0000000..ff43478 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFileDoc.h @@ -0,0 +1,61 @@ +// MetaFileDoc.h : interface of the CMetaFileDoc class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_METAFILEDOC_H__D6580AF0_EA6C_11D1_8856_0080C83F712F__INCLUDED_) +#define AFX_METAFILEDOC_H__D6580AF0_EA6C_11D1_8856_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + + +#include "OXMetaFile.h" + + +class CMetaFileDoc : public CDocument +{ +protected: // create from serialization only + CMetaFileDoc(); + DECLARE_DYNCREATE(CMetaFileDoc) + +// Attributes +public: + COXMetaFile m_MetaFile; + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CMetaFileDoc) + public: + virtual BOOL OnNewDocument(); + virtual void Serialize(CArchive& ar); + virtual BOOL OnOpenDocument(LPCTSTR lpszPathName); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CMetaFileDoc(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + +// Generated message map functions +protected: + //{{AFX_MSG(CMetaFileDoc) + afx_msg void OnFileCreateMetafile(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_METAFILEDOC_H__D6580AF0_EA6C_11D1_8856_0080C83F712F__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFileInfo.rtf b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFileInfo.rtf new file mode 100644 index 0000000000000000000000000000000000000000..69f8aa56f6b7de991fbd1b8c2fd8a9f13d88a40b GIT binary patch literal 2908 zcmbtWU27vZ6zy}N|KYL^T|1=4aT2;DPzZJcf%T>|=@$$Xc}8Qa)ksrG6R$VqzxQ0t zXksT$+hreYY>n>Mx#!$F519+)Q6`L6@hh*FN0ZY@R>-m(^LG%7?LXf3Q>`!x9;KQicjumeNTRsI;yU!JnnjT?SSc^s6!j`#2tb?5$~VFj`mT zFkMe~l6P9Gu%ZiHG@e#c6w*DnFrbJuD`9f^6rwkWd%5Ml$AjDRcfO78UBKeH>`Tt)_b+kas<{vyivdKT7pHT6rsTt)pBJmpi?LqZFYg##9S8o4 z3O{PG*>biko5ZJmTD(BFSSdyVOjKW3#t1)RAGw}gUrB--aE}B#0rK#R2u|mlUwELO z-I$pZ>n(+L71cAFfA>T6M;a@m&kHxGXVc+%DzNj}i9aRwVXwM|hYp>Zg7z_KRvgq;EObX^i%w z@H@0C0oiS-IN6?N3yC7ClvAFIdTtAO*lnQ8k634@p8Lg9EdI|S*mm^WSY|&UJSNxZ zf0A?Rpfo@mbBp6;(66R;Bo24Gp8C0uuv^O+D#56LDB;~dZM)QC-w#qAPE|jgc4H+% zw@EUk2hX#Ka%gLaxOFcf-AF+=ten?Zh=>z1?i~nT1=be}ov8!O37&I!cfrKM0_an| z#do${-H00E@(OaK4? literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFileView.cpp b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFileView.cpp new file mode 100644 index 0000000..3c12f89 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFileView.cpp @@ -0,0 +1,135 @@ +// MetaFileView.cpp : implementation of the CMetaFileView class +// + +#include "stdafx.h" +#include "MetaFile.h" + +#include "MetaFileDoc.h" +#include "MetaFileView.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CMetaFileView + +IMPLEMENT_DYNCREATE(CMetaFileView, CView) + +BEGIN_MESSAGE_MAP(CMetaFileView, CView) + //{{AFX_MSG_MAP(CMetaFileView) + ON_COMMAND(ID_VIEW_RATIO, OnViewRatio) + ON_UPDATE_COMMAND_UI(ID_VIEW_RATIO, OnUpdateViewRatio) + //}}AFX_MSG_MAP + // Standard printing commands + ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint) + ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint) + ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CMetaFileView construction/destruction + +CMetaFileView::CMetaFileView() +{ + // TODO: add construction code here + + m_bMaintainRatio = TRUE; +} + +CMetaFileView::~CMetaFileView() +{ +} + +BOOL CMetaFileView::PreCreateWindow(CREATESTRUCT& cs) +{ + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + return CView::PreCreateWindow(cs); +} + +///////////////////////////////////////////////////////////////////////////// +// CMetaFileView drawing + +void CMetaFileView::OnDraw(CDC* pDC) +{ + CMetaFileDoc* pDoc = GetDocument(); + ASSERT_VALID(pDoc); + + // TODO: add draw code for native data here + CRect rectClient; + GetClientRect( &rectClient); + if (m_bMaintainRatio) + { + if (! pDoc->m_MetaFile.PlayFile (pDC, &rectClient) ) + AfxMessageBox (_T("Error in OXMetaFile::PlayFile")); + } + else + { + if (! pDoc->m_MetaFile.PlayFile (pDC ) ) + AfxMessageBox (_T("Error in OXMetaFile::PlayFile")); + } + return ; +} + +///////////////////////////////////////////////////////////////////////////// +// CMetaFileView printing + +BOOL CMetaFileView::OnPreparePrinting(CPrintInfo* pInfo) +{ + // default preparation + return DoPreparePrinting(pInfo); +} + +void CMetaFileView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) +{ + // TODO: add extra initialization before printing +} + +void CMetaFileView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) +{ + // TODO: add cleanup after printing +} + +///////////////////////////////////////////////////////////////////////////// +// CMetaFileView diagnostics + +#ifdef _DEBUG +void CMetaFileView::AssertValid() const +{ + CView::AssertValid(); +} + +void CMetaFileView::Dump(CDumpContext& dc) const +{ + CView::Dump(dc); +} + +CMetaFileDoc* CMetaFileView::GetDocument() // non-debug version is inline +{ + ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMetaFileDoc))); + return (CMetaFileDoc*)m_pDocument; +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CMetaFileView message handlers + + +void CMetaFileView::OnViewRatio() +{ + // TODO: Add your command handler code here + + m_bMaintainRatio = !m_bMaintainRatio; + InvalidateRect ( NULL ); +} + +void CMetaFileView::OnUpdateViewRatio(CCmdUI* pCmdUI) +{ + // TODO: Add your command update UI handler code here + + pCmdUI->SetCheck ( m_bMaintainRatio ); +} diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFileView.h b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFileView.h new file mode 100644 index 0000000..abdc4d7 --- /dev/null +++ b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/MetaFileView.h @@ -0,0 +1,69 @@ +// MetaFileView.h : interface of the CMetaFileView class +// +///////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_METAFILEVIEW_H__D6580AF2_EA6C_11D1_8856_0080C83F712F__INCLUDED_) +#define AFX_METAFILEVIEW_H__D6580AF2_EA6C_11D1_8856_0080C83F712F__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +class CMetaFileView : public CView +{ +protected: // create from serialization only + CMetaFileView(); + DECLARE_DYNCREATE(CMetaFileView) + +// Attributes +public: + CMetaFileDoc* GetDocument(); + +protected: + BOOL m_bMaintainRatio; + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CMetaFileView) + public: + virtual void OnDraw(CDC* pDC); // overridden to draw this view + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + protected: + virtual BOOL OnPreparePrinting(CPrintInfo* pInfo); + virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo); + virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CMetaFileView(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + +// Generated message map functions +protected: + //{{AFX_MSG(CMetaFileView) + afx_msg void OnViewRatio(); + afx_msg void OnUpdateViewRatio(CCmdUI* pCmdUI); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +#ifndef _DEBUG // debug version in MetaFileView.cpp +inline CMetaFileDoc* CMetaFileView::GetDocument() + { return (CMetaFileDoc*)m_pDocument; } +#endif + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_METAFILEVIEW_H__D6580AF2_EA6C_11D1_8856_0080C83F712F__INCLUDED_) diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/AGREE.WMF b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/AGREE.WMF new file mode 100644 index 0000000000000000000000000000000000000000..3083d0806ef162d1d8de3ccfc761abeb53ab62d6 GIT binary patch literal 26454 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 literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/AMHAPPY.WMF b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/AMHAPPY.WMF new file mode 100644 index 0000000000000000000000000000000000000000..c2ad19d8812d9257ff7fadef24a58311597d65f7 GIT binary patch literal 1718 zcmZWp3rtpJ7=AC`cMhPxx4=2dFm=uWl2r3nf>S51p#3X^+{FF~isW==lBk#$h;*r_ zL&HlrO2tIYYi1WG8p_l*D~MK^EKTxKxXMd;&UbqMA5)2Ud(Qj)&;Q=PbKb@;Piz3# z?)n@Zc1$M|h@_532nXPyEDy*DQqWb<&*}_4z!L%JB0iqyb39Ln0UXm1^axpmg)D-B zI^AWug%|}9kp8^i&(N!Gft*{dTR8xN>)bYiB!|v-ts+C73OWJ`6GTuXDRdy8v)v7z zI?}=LtcbQTf>!MrDH#4CeJ_rZ-vcD5E!qi9K+1tu7DHLWgDeFZg+7QE-IpUF8z-4U zj5eF_Yxgwnc73$n9Z5&ssnqNi)8l3}l?a;5d>ZAAq$OSi?eOYxo3|AUy+VA-3*ZeC zz%AxHtT8Px*#x_2%@hb_NRaM|!QgYylX^liHGAi&+8e|v-Y)*!oZ%AlBl}GQN1Ma^ zk(ED>M|2tOaT=(~>BUvfReHraL&Kb(slPLb=Q(4zMD!RZmb;7g zIWLHwCR_m*3F4g9+}nAd6P*p>TgHuY9^y7|g&UzF&68@H8K}z5FMP$k!G1564|vCE zD9oVwFo0G(FtZ7vPU2y{d5F4tKHA{j!4~fl=0PPMg_kiAJK+@k0ZQ=@9KcnADeyKX z!z>&N3Ai3Ez)dKJG>nC{c*d*6$=*3^Fip5vFx2e8ex?L%K~J+Elg&B2DmSsyJtnBf zi*6G}nA;d{?%*xCoe$g?+UX`ztvi^ym>5bnk5C^om~Oc_bkUtjf4M~zZKhMI86j`S ze|Ir5)Ikg^#Vo1$Q8^p6Zk$EGQxttn7jP~e!2YxnPh&pL!#s?~Niw5+EO=m^ z!LP9|4}_DPL~-gGZdH}|r<#q4dNO9~@mQ*-VYS|ZM|2V$(YFONxn3V;uy%2bwTQE< zR6b%QFxUy4V~^m8b`FoVi@2Y?Ot{y%&YH-jg3;D;?rwd>9jyrUw@y&Ib)2f!H+YS% z;$?aqm+H$@qW!c;U&HCT4pSs&jNp>0!;PvFC8?>@#Glb#Zlt+_7kLk5@T*kFeyZY> z2j&|Hb(8=Pb3G;U77B0~Rq{shtfO+C!)w{$Qch8&oS`asvpUJu$`Spn%2yRCpd95_ z*?P28I9i?6Y3hQ`R^RJlsdlqks86U2?W*BAR`=JLx`$q&NzkGS^kwyoj?$L)i_KEK zPF3o+#AlXTBmTn$-$?w0YL)7%j;n9ESuNo!D!@OfG~TO5@GLb<>Pq0a|81?{Zfd`A z?!Qfup>D%~!*-~2dxC1RlGG=HJ=S=2!kVFOTC-KIy-cb-WMP%Cq(sfa^TvyTlwpauSsY3iVwOa?02oQ;d(Hy&a)G%_Exd;%pbKzBZfCjXZDSdVJOCH_8qo}8Vw+T)X+ z7Ysr*wsRtW;3N2h51=y&Fbq@hnDYJbtMbF8if_sQu9oY5wXE{x^0TXw#cs6}yJa%Y zmB?T>L2_M@9I{W!E<0Qr?L(61`bweeEi+v!Cb`pzyx@LEsp}-AZlEl8BW0_bDnF|I z6kj5{eUZ?Q)j0oQ26v*0x4QIHlIcL~qvaZ2W+AT-THO}E7O(ggy_{7tTkR*l54jS`vV9BH<)*qq`5<5+GAP;M$P!R$nnY(s@qBVBIQKQ^hq53Z@@XS^zPiZ$w? zj?V;jTpO%pM!1~sg*7~<7)7I481?3ws2>}mnLHfL;U`fkYof)R6ura2(O&k9zU7VZ z6fcH{c{1F~Ltz6~CnO@LSRU1`53g-HheuwL0!=xb)-s`SAP>80~NSYXDZ z**uRCK?QaMmFOB)Vpg~i_2F#nQ8^k`;C#3dm%`I3BPEJv$l$0-dPKEyKCF_H;ZQjm zo>0AQIH-DC6z7GzkREQvreGbq1?y33I^LK&?@-L#`GP8WbKL2n{Z(m0NxdT`g(2cs e8OWDRa|MCfgE6KQHD&}3t2CJd%ngp|IsG5)c@hHv literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/AMORGANI.WMF b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/AMORGANI.WMF new file mode 100644 index 0000000000000000000000000000000000000000..4db6daedb503afba53ededbb99b2fb8da422e5e8 GIT binary patch literal 4342 zcmcIndvsRCwcmSY&p{v+p#)KR#3UdVi1Ls(B=Rtb#zLZ)DzBiVh6N&u(8K^1i6SWq z#iA(?q&y^41mnevf)#-aDhOhc*Ch+8gi=HsiGsq}v%9}92~Y33_x{nd*6*8h_RQ?} z-ZS66PqzLMpi*Xr(}PVe*?>Ov??b2!U^A}*aL^H>H2rBA)Pu$#`T$&`dqj7MOb-Ay zIf(3tuDB|?BEsnEYD$ABg`f`Hd(Xgu7UDjfOm(W~s%QWPD(s~ktgfh6y{ch!CqWEE zl!+>&qY8z(W@cC^k+&GrrS_cQQXWdaOs@z<&4RPWo##XP-By{_(lLyBK-GaNDn_N$ zj!;d6LijUC(lOD-!ZAA*Ytfx}2lc>w9sfu}v6KpM8|}c|be-8vOH3)N6?Y11Z+a(yWq)J*!R7x{=o+jGiG}PX#Xh>6R zQ(A4)=&)Twbt&HEP)GNBYVDTM9{Q3VrM7M`r70eDOKFa4;@)w0C?>dK#q%!RO>yt& z+|x9|lvnMS*rIu4-}*Hw9KvKKVDJE}<{bg=Vmt{raI+hkj=`k&MH zb9S=*Ms51QzG<`VVSB4>Ofhx{Sv#FN*tL{xLn^dA-AguGF~#NE7u>COj(g9PxE1Do zH_vQx{q((`nd5TI6nEBSyMFdjH(K$89pUb^i7wXerQ>EH?KSy|yXZS}*4DGzF4C}X zRKqxU&os4PnCtA<#+x%{p-Hl>&9ChlTxmbRrFK5%+vjkAjz71b;Sn>yd~9Ab>&<>M z$80qt%|z4P)H1!z=a^|;#VnJHXeQxe{54L%p7;O`!pT^KA1kG)DZ%FEINoI1nLg$j zlWq2x`KHcA8l^`yx(RmC6x>A_c!JvF2p5B=+)212H~<5K5201?3LJ2QV1|o@{_cB8 zbbI7Rw?R6&<&xv(ONo12O5FfOeRTU6T{;1T;*c+rNi z%f_RlUtki&<8U%Ko;JcHdJ!I>EV!FmL3=tQNpw=W(OWW{@?;d{NIDJC?;#RL%cUXh zl}h`z?6V7{*v^y*iregRNwD8Zd;2R$v+FLa%ScUM$hZ+veUhLUSMoZ1gU?|J*EKIQ znOv^KQHuMyiRs7pn7;g?xtlkcEIwq$@j)}0KR0vvfLYDon+=>~H}d^<1rM`xINgrr zUiJY_v3+^4P2n-ND?eec=jqn+8}=$*WyA1U`+fMN{V^PC>u`>Zkg3D8Tz*7G}T?&;YVwu#ACY zem6YkYjiIwD?6_{R_ku6qZXNK8P&Z$RKRE-gWG&t{MP5d@+K~tqC>z+&~SIw_g|F*+ojl*m>4Pzh<^Wb*%b-Lm{ z^>1y=f}N12+#|ALbVa$$Q~z#kSCacGSLpb~n(0o_*$ zv9Lf-rx{S8^7lxl+K>u4(g|)>d&DQHZJi+WsnA>JChMAYG6N3FYii>Gh*LT3G*^;U zMnCm?Dy+o>*og!uuuMFbN{lIx`sP86Pe<8{N%FeJYZl%t6EIHFv4M0z@eQ%uBX03O zz%qXV#`(i=m!h}Es=cp(Un%`bPq@f8&^0aaOP`FDekhXU>HhiHSU$vN@&hJFbJJ2< zMA2E_C#l?ZatgneLs$H+WbFYoQS4s;3`<0qXgrh^IA*2c;>jmsogOYC%6aE!Rk;eB)cf zI-d!JezN9lAq>>~X%n?+CuI25@Ra7%DxU$L`KmiZ5WPD@@-A{0XseZ5QyY32I-jTZ zvf7Bu)!Z4fp^of^1-=Y+sozNIVM|HI6q$q>vPy9X2g^ZxNYC=-OH^4U8<%SZszOsf3NncaIFj!!ixO zkV{X3NJK8BDB&k4RS~;zBfT`cs?N!av+4nw8}_5Cxie*P7n;PY={fGMy!$A;&HW|ZK`X+!R1{{@AHtfb}s$a=gpnSocdFNn6AF>65TO zCGeYc1NWg@xEJMcZyLuNsDRtMBA)41sm<^6ezo_A+B?dn@OammkGhF!dkTAZwemd~ z?r=xL-fmksTXi0)_Ffv7pN>?GPcDr|RXtI)PcDwjf6|Vykdk>U&Egzd#)s%*&T{BW zU4lR6y88;3?9aK*J|?K^tfJ($gR2TyR{U=+WvdOz#pIKiC`zotXsCi?XM z9hVKXC2Zop4qtH1`E%EWn+AjUo?ry02jjR;@De8kN4Rbf??czepLD6-xnuk=z0SjF zF;Ag%E~0w8hIWPT(Ee~eRfPAsh1@fk%bkM-JlL(~J6#E{CEyk0_<0)4l{Av4(+GZ? zig+Tu$|qXTfPs3^sE&)um4`fg1!PdA8=~ z2|B7Wcl}%9Qb}jSH&n-|v|M#uueo@Z(_NY`a!>oMZi)ZYmH09p&$xUa8)W$QL0jK1 zsP6{{XE-A`uC=s~OI)t*>Bfn!5wqG~lN1lxI7P|m~E zAN_+y{<=My`+9I|@8q*eur=!w}M4Ho$(3FzlUqw(|jQ{`u literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/AMPROBLE.WMF b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/AMPROBLE.WMF new file mode 100644 index 0000000000000000000000000000000000000000..b241a113b2c2664dabe2ad2b821fcf3ed5af95b4 GIT binary patch literal 2102 zcmZWq4RBS}5#Bv#_uUur_{l4!L1+lAnwEl98e92EqgG3BD$$rW`XOc1ltqAAt_PiUlFT>7!_niCP z-S6z#^Y)z+Z@jh^pg?jQ$Mx*Tx1yE~qzvK|V$`$Ek80 zU>`#|BJzkw9%-QgpEAjaA?OF?Q|`LULjJ)TKkxPKN-!Wb_a_|Zib@aaG=i_t1sY1X6} z!v0Z3uC^8M1l(yBz~e9;>R_Kf1HaOv@PGzbrwj3S+K5HkhW`=4X1U2cBDLoGa@<@e z<7|OEsljTq1D`jC@jcUnc{a<; zw_h@cJaWjGd+A@eg_^L7mf;AVj-{NBbGRGoc`r2ZOjyC8*76#k-y|($C&xVFgK+9=mRW%OI@&HS^dd-Y8CYaJ$a zI#pKbZ)AyXl!rWiqEAVgKHxDjBPtnX7{CmvktSIxmt~DyrO(MgJ?iJDz&-lJ9?(Uh#$AIP?hy$y;KV(>k6I!cdv zJgp_VQt#JoTBiThzWtN#y}pbmGU{6vsTDvLJ*GueqD$zD`VxWum&l_~Ptbk3!GG&d zuV}4Jz+{^bH`-!9PKQ?e54dPA!W}dYH_&`sL#uEaZ9=u1@PK_4ciI7Fr~QsuZErDi z?Qrv`J%#J+Hhj-6#&6I=IF_bjfBGg?+k;SSH$u`@ftXQ{Z5dLwTbt~Dy=d2F?0s~U z?O^D~x%zefP)hkNsrA^;pxu0rCStE>UThTP#hT$F{}@}j85eL57V;ecl8R~%UkhH?#3>zGTm(K2fWlC;aobx zuTd8d;CK0Y{wq)5$9Oi+{yw$$3BsX!BSZr+$?8y?v zF|qybJg;-Rd8S*y1@0D3x??omy+vEyzp2$-%e&ohUhM*|cOg}|@m%cYaFs{BtK=s4 zb3W<*&KKMzKH_R)Bf|@^@^EbM%dk55eYi3BTi6_&2{#8uW(1?<%fU41+i6$!UYfb` uj`ZZ`cBMk!+b*q;wqDjm<2gis@25=@&&mWSUkGqaH1QXSL#3aemj3||$*iaV literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/AMVICTOR.WMF b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/AMVICTOR.WMF new file mode 100644 index 0000000000000000000000000000000000000000..aa50d849e8ce2d729470d340e3e0810ec656e96c GIT binary patch literal 1398 zcmZXUeN0zn6vxkV&Ut>9SKkv%GKWM85*snw*vu)~Xmk0?DL+HNVo*z2^ABSSC}D*X zzBGFwqnL%*mi>`Ztz1i70t*yMSdqQZAEnEppfZH^-1~Iy#Z>0AeRj_C{hgP4?r--D z_I5P^B*Q!tit5lS5abNDDu@Q47P%1=`x49)QbW@r5v&}58Il8%Wo;-5phJV75ky1< z5q_a*SCv_T!Vm)+9tejC7JmM8dd$_|CN%(rQJPwTBx3s2s5wC~Zr8!KhDyS6gtLQ7N;^8i_DRc`&bgg&4 zPVzGJXYK?aa1U{{yIyQG|K^TU#Ea%0?+%_}^Y|hA1UJ}&++qiKpPi-)ZMIIZ5&gYa zqEC2Nbe)$F+V1I4*z+ft?3NvLNra)Xf3*vAA}r8F@C^^aUd~nJ z{HluZxY&HG<>SIUD&b9(#8uQyZ&9_7M|DIri~hhj@E;^xLbNULqiZ;#pW|)1M_8r{ zbd}JdEA)B&n%Ix^5q(!k7y?)w>9brn zQkJfuxjIb4yoTC^0-=K*p^a2di^a~RFkOFdg~1d{!Nn4aC5Kkf1$>5vuvPq*C_>xm zG^NpU9>62qfIn~!PVnz)gxk~?+^k;bI<=A?S534*-6x5@c~PCddyaSOUdVXuGJ>jta|o#IEMsA(M;Y3YEce%7#=rX3yf?wgu05 zyD&{y@9xC;Za)5LepKV;jQYu3R9~4K>@#_I%A8Y`!WPjs$^8XWg!N(&2DksieC3P~KCx!QgByXnkrZ*P) z+v^M!+I^w-Y-#Acy{wJht7Bl1d_z-rgTF;?-Y+6vJ2%Hq-5vk$p-B~k9Wttv>`ecp Yz&Z&yg_-eVd@n@A?-#$3(_pju4}b-K3jhEB literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/AMWIN.WMF b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/AMWIN.WMF new file mode 100644 index 0000000000000000000000000000000000000000..36daabbf000d5b47f3d18ccae1eeeb280a2aae75 GIT binary patch literal 3254 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 HKVR@)-J*_U literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/ARROWS1.WMF b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/ARROWS1.WMF new file mode 100644 index 0000000000000000000000000000000000000000..fffdd658db988985520c141f60b5c352ba37a9bb GIT binary patch literal 4630 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 Mzn$Dt_qTul1@{!#?*IS* literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/ARROWS2.WMF b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/ARROWS2.WMF new file mode 100644 index 0000000000000000000000000000000000000000..b824e42adba8c759e57babe30aad716d53f71bac GIT binary patch literal 2838 zcmbuB&rcIU6vyAp?piFr4AGbf7!RN)4n)0}6uo%EO%KEq7h;rfu}}$k0qTK-10)&Hicqtces8ToBJp}?>2LjRX@?GA`~qm=Z85Ga! z;RtS4Y(2te!Y$q&vg7gV@NDcwGVvzyYVuAzG5sC)Xa^?#6d&x*<#LcKchTT|16p{a$1nlCE_=iNvUlwF zmk-^GN(XAHX)?|R>tR(I#;P=?pek~zV77V`L4T1Lyq1tAB52+@8Rx6N>aDR>e((Ad zZWlvBU9t&x*WX~@Lb4j2j0#ymSYMwo0;v;HAk7*ZWE1WerlL{VRNCEuZuXd{vphv@ z_s}}?^^`NKc|5RecZv@CQ}ozBu=Mjd3K{3nYMjSFwfbsFRY^6ENHcF{oabcK8--SW z@A@l77ehi_m2k|eq0XbM9Nj#I^^O$ic@zfOit&GWT<}lXIa9CX@p78%`FmF5JWA!l zJdT%l%<*#8%K9;y_0vRGtvNT(roAT8cs^Ozp&kiu1QH&QId=fihwgkQr99haIa9U% zWmLNB->lZnNvS}Q2uWtSwwo*|R6teq$qMvsdC#hn)vW(8{>D0m5yvRI<+CsIwFnhRCgB%_qS-IK#>SZ zX5pOKkQ6GQD!NK6S_Rq>QP*i0f8)B5bsFv;NG5X=jp)~@4QcX}Tvn&y`jK^txyKr? zq1QkaRMG3&!rBc_bbQ%}OXWjq6Rh;$tRhcDp)&ZEJd4~Tj0LC1c7CSBGgka3M6sv{ z)q+2OMo2M(6NnB&s!1CHi6Rw{=s+uG6e(bwf=n9Hs0g>az4r|W&S1xXoauYB`}X$k z_U+#8e%{-+d;2N?@?~E6gu8(tT%S%rNCe>Z4#2^lNCh0IFLVq1iVM3#53q0n#KQQ@ z-cG0II>qPWhTziEx|F!iLGLim8K0ef3H*F|-hG9$3hypT&Musre_wXt^qEDSPp|G0 zUlS~caW;I_ZsZ4?<40u8#r;6Q_}m47ccwB=K9ai7q?k__5~R;V5RpH@?UFbTa$JnF zlAw!(=!P(;udj#t59(pv&Q`Eftx#509@Hh#?)c^?`bdcG5L^@=xS+W@I34+zevXf4 z&+1AWXYWIIJl{E1>T3Ts_vD1I+XpMbZs3v4G{ks>Cn<_3dR@o6(vafWN#UvRCzvZ$ zFi&>Dd^rq{NIN_xFxxZ8CpO;)kT!6YiYLD(Bry?*6Bx7t0!o$cHWVR}Q)~xJvRC0|TMJ|D5g1|9;ClNRWZFQu*7`z5paD>+_h=tj?fbwC z84NRJJQT{k@Eds?isY*m+)<_HtAK%W2O77#GZhdr{bdDkyb@YNCF~3pkivQJM>yhM zf{)!BaLDb4{jLR?9O2(xFKl$FxWiqCue)rlb<=T^n~xQ48J4*UeAaEnC){3q$Tj0^ z_Zb$r1e)x6Q;r)%qufs@!{tz_yNmj|5{kK%)W(~riQl5l{2{%_ZS*9^cs3_-E~jx8 zkKlf6yp(U`JFpGj#9I6@t;Y$p0;kdz=tfAt1X3}vLw#4Zk%aCJ?#knJJjG?T15k8 zEoaHA{0rI51#*xVNINf=1h+wwT!UQY_Q`dwRmQoP{>pt%XSfWV=WfzRUA``J3$@Ix z(Mq>fYur9n+2c@hZjVR3-ii#H;~Bmk=2)@h*#gP7hh?ZeCYRe1>2Ax! z>k9doJ}>{!7oH6rC-<)yeXtj+9Cr60G%;CQX!f{oHr8W}j+%{U~ejciARC-^%@Jd)C+4 zV!z+!dw@cJCFJ{CAlDbeL|+a!`MogKcf~P26UX{#INmSETYN1}^3C{be-X{_*Hf{d zK~MOVRO+|UM&Ckj`d*CwQJ$g)Im@bWqW+Mwv;rdIMpqVg5Q(&fE48^LpL_e|Tb)Qx04y)5@Yt#xmq^s+WrfYb%^Ew literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/ARROWS4.WMF b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/ARROWS4.WMF new file mode 100644 index 0000000000000000000000000000000000000000..d4c48eab4e3b0ed5039918a5b75a59abff807f90 GIT binary patch literal 3382 zcmb_f4VcbV7C#@CFfl5k$j7pZ9V(I`-w{1!nu(z#t1yNzno+Eej2$1L*)>=l_99$XZgOZYy>%oArBQrCyGSVhDOU{@wIx{(A?8M1&XS^?t`T#^? zB*V|+M)H842Qdvq8o za@zCj5}8Fl5&wdM0w_380M8Ycf>o5ls#R;ka&~loM8)<;;>9Krm|Tc( zLpV$%_l`fwy$Zu-*5AH@x_B;pbNzPzXDhUe!fqdd#4PAY%(jTplb2KEq!B~xyV@e1 zS+5>_2NT8oIeMEd`6kHq&25>##Gdlbp7mwA-hZw6e!p(_#rn1{&?29&d;MxX=$Gg> zey*1JsfsdIYs=kwh1{mCq^q`<>$I0N)g-w@?~!UcPEN~1a!hjM3t225$!d95Hp%N! z5cG%gtQ?ZO;ITkz=}c*&nbJYiq^}N_!8%CB>FqLAZwXPi`#hU1U9GV>Tdl`*qn7A4 z-J$R5THU9M^@z^Y|L9n)X?N+B)?X9sM(tr&>z&q6M_ZgeY$CZVZAJcb+REy3A`Z3!kloUG{DW0fPa;q_&2!=-;{|s&3C0N ze>IKw^(oCe8sU%QJ^l+!_3vYfe**{j7x7lV68rcC*vn7GZvH;(?31vQPsEPC1$OXp zc)dRb*ZWU`>ZJ+x8~d!nsWze#{HlP4}(UW2@QBI z)Z>*(k_dG0e zkHa6`Be2A!!%~+F%Uowz?pg$i3v$esyFHfYcGxnv-j=$hw!}@hKe#ko=u&LHOSIYU z*EYk|wkhsMebD_|A8^Gw(&g*jE>lmqj@pYa6x}>1!s)!}EV`lepXG2BH_wl5)h%R3 zIot`dcsz~c88nI)&@f(3gLw@laX$6s0_w)abOZ0F)_jzja5>fIi?|loW2KgSB3KSn zZ{9~K{2txQZ_q^EOf$mnM|m0L@j_Y^qHf@c^ePXhot#V`a8EkG33QYjQ5n}Hc4b)C z9mGbiAFXpQ!%5DATsjITNZ@O#i=Re4r1v>%&L5nd>=i?FM8a!*#(-v3K=ScF5d13igdX%5~@ldwPC z8}hv!@1)K+m|Ec76pzEG0)9(}U|6xSs!o&vGfQ z;5hmdx1wv^7+OV(FSt6y;{a*rZh^`g9GaA~{H@~U`T1K_9U`4!q?gzfq84DP6yq@2 zk0a#>j*~LX6sGA?mvZDPS|n{LPrB1;xsCoJchM`7PH)OoDwcV)PnObQd4^8NWOd~k;rywNMm0v4$Ae@Q^+XlXN6Z&?FeAogiJCLYkhkH2u`Z=-+LuzHATZ)0Ux&EK9R&st&hV zx-4{8Uut9dF7$C=mq{IqmnK$AuD9ya%SZ;B_;f4xGwrm0+)nv*cET6fabIHJ`|pBO zhwpvMAU&Yer@(PP22T1J@Pl6lKl=6H{Tl%CF;tUpp_VwTD-E%}w8O^I2V2No%=HKH z+H<0K{z_5R=LaaF&$;|7nHxhr*6CGtaFx8R6#o5dLQ0#@t<^0Z{`6qJeO+$PpB^u<{3Je27>mnnEvd1UwQ0k|NkB*Uwa^2(0~6?Bss-br4X_h!;g zn`Qga{IO^3JkQ#n{KekI2zT+An^fh3{cDSMmm8_3qJ55j@ei~OgEGxyg*x1#IlibA zH`TJep(brfzc3uk@Om)9*MislLtQ|m-r=emrCnO1&!p56ZK(TH4(?G)H?8xDVAXD@ zOZGRlO^rU8KAJP@7&BwoO5bud9p=NYmc2~x_w-)PUs}RZ^O-&hnQ9rvo@#+tuOsTY VsR?4veul$~T*xfiPxdo+{vRqB&B*`& literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/ARROWS6.WMF b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/ARROWS6.WMF new file mode 100644 index 0000000000000000000000000000000000000000..004ffe879b568bf172466f847469f0ae5532e4ba GIT binary patch literal 2358 zcma)832c-_6n^i`?Dn7tmP_OmihvdpX2x$w23TS}^O9B=u zBoLq%wZ$T!qJkVodVobJ}*xGqZEN7qH2^jBU`hO4mF`KQ_Qo2aDKDkx!TW zv2@Ps#fPI8j8HfRN?|Q8=N_AZ9(=WYX`DNl+p&oabmTGa$YG6q4y)%WY!4sJKH#0%0^UrM_&JK_6%@l)QZpM*XBnrx zY%i{2FXMFPg(Ox9U0D(|(HH784OM&Suq>dtGM7-!qa$JlrHd4LR6Ix3W+J^}_NV(s zcPcR2Q)dIIFz^>X6KKNk{Eg`L|BCy4KVdK5HMDqaE9VW~c(Ie+!Ir3c9*8Q2qRRfc z1r6RiIMH_p5BnN%sQ(65`mf{Qz!lsbID_4cL4vwcPT~nWPQ{dtX}4^)p8?C zl{;CSuFV>4yy(mF#kVj{%@70Ng1;0Ryhq!7j!Pgxl<}vfwc{Qq3nAGo z(Hbp${r@c})V?g~B1$&f9+3o5%&yuwA&yzMzy&>h$*{`z0$lKohkpLCkn0}5Gqe@GWxl(}#~?t|^}XULHqaGD&2Bjj}KBA4jst;cJk2&=?itPlqva@9vrs764I`dr;sLsSGDlKmiECIQF^a7erkX<`m^5ZO>=u7s)PM!08e zgAGOnbTanC_Q2OLDo_I_{ik4xzX3k;UDAAA)@R~so1;2OUe$S{I&4l!bdFWE&K%Yf z@$fe!#(uLn)P|%Jov%`&b5@%XocE4Z*^#YY!k?>H+e?J@vdi|A9k~K6Y_-nzblz*# zU12?jJA2{gTC+xL&etyO5>7t&`jfuXR!$A(j+UIz`g&MW15v5qcSZ0U0`d9Yp|1&a NcW;?%=>fW8{{}dm%+vq? literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/ARROWS7.WMF b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/ARROWS7.WMF new file mode 100644 index 0000000000000000000000000000000000000000..ad580258233d8daec3d1865003dd001132ce0b41 GIT binary patch literal 1686 zcmbVMU2IiF5T2RcbLg)mjVZJ##wJy%^lFXt!GOjR1x@(5M0_wRG-68|tNoD#QbjIE zAjU$1h*)Vt6KRbGB@+LN58Q_W(!^5A1O6Z(7&L+*MGSiHIXmO-xvdwH`%vAJvzeXQ z`S#nH**Wv=vG)L)Qebxbr~QWs?C4mIkPo106@Z4VP6bwk+u#;E-|0_>5)eB8^6Yxj zw_w6n5ZNLim@%QNigX&v?Rv%1c>Gpa(z3dsX&9ieMfoV!PsfbSJ-&=g2mHx7qCMTCH|y(e?m*n<7A_RpYUWzPj$hpk{IYTC;|6KOPRtd< zjIAT5EgAXcwz19ITYkSk&7K;%a3x&O9G4hk6qPi&C^(uKjxnStqgARNoOe$E=Fi|2 zvpBqJ4utJoVNkZ1Zu!~dK^=F&CjJG^a5GlOclf+KL7&Jux+G7lO1PkwL5tc9KhP1V zC&Ul%aV){TxDgo7%XX>~L+|oBRm#`ZfEm$_DVS^CW)t@+c}RcC59tMRP+gT;)eGNK zIc}gMSVPO{4;-e0*rZ;=^J*p5>3O(cS0Z_u$Xf;d{vIZ;OUP@MLA^*;>zR_Lf8-wZ z4$oFk@i$b)jdaSSaF^MKOU(UvG+YnQgqOt+yX0_CE{lTgd@fzU9qBjB&DE8upj;X1 z2JPij%qz07tWp}fA?8)0(`oMojCoVV85ZsNG~!R<49ke$VDIExoYwzhB+Ex} z%)4U$Sr&hnwdLZIOPA}e^KGtn_|;~T<9uChMk5`Vv{yaln5}VLC8+rqXHBZwK-%fR zm~>4}oT+kbPR%jK8_ia}WGi1qFJRoh0N1-*rMulam}6E31LljMf@g%iye+JeE8&-7 zD+KnLez&1MJ{)sAS08Z*RZDqCDN;n~-KG}?3wEq}i)Q5P7ex2v)g?v;YuTVqg8f`Hg? literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/ARROWS8.WMF b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/ARROWS8.WMF new file mode 100644 index 0000000000000000000000000000000000000000..b6cc338f51af4eac7813775026568c3422959914 GIT binary patch literal 982 zcmZWoYe-Z<6h3EWc5`*hUWjCcVI>ho^dh2YDSE9Ll5JFMKg^J#P=q3q#Ds-P3hV`9 zltOF-n?d9wDXi@&p;A%wpeQ2gheZ3wXq(4r?p?FQ183&&&3ER``S|Xe-Y1O!&B=h= z?Tw270~-@V2tEMbhjxL81HlBFv%Q&+4P*mgyzLN$GWP_{F@c1-2- zn<~g(sY>qCr+B_@;T!Zr9@Zauxdsu@Gem<9h^XErTJ=fsNOy`Cx?jB4e$Qv^D4$X$ zVk<|HrsOQvlE zbg|>O(Jr>&aE#`sT=&;~=(;drHE{k2fIT*EyVbv?H@7Ai8WUz(Vy-9qO#%J^R2EH$ literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/ARROWSGN.WMF b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/ARROWSGN.WMF new file mode 100644 index 0000000000000000000000000000000000000000..d91e7462a5dce442201da4073922ed7bb6d4e6b0 GIT binary patch literal 1878 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 literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/BOMB.WMF b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/BOMB.WMF new file mode 100644 index 0000000000000000000000000000000000000000..40541be8da06190f3e539f3844dbe2e5639f81b2 GIT binary patch literal 9558 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 literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/CHAMPGNE.WMF b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/CHAMPGNE.WMF new file mode 100644 index 0000000000000000000000000000000000000000..3ce63dfd1a370c2c4314a5cb5afc31ffd4ee300e GIT binary patch literal 34806 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 kGsQ^dcboP^F-N((IKdofk>>0Dl z(&OA2E)RgwF%GWPYwUn#b{K8awL^e#pILlO$F=rdF>{xJ52rqpp3iqz*ojUqM>wKE zhr`Auw_k3qd?}CLl*c=@wY5-tsus3=+yJ_<0XA*g$~@)ZO7X=LXI*B5J4T;mRsGp; zV`qLdJFmv;?pP(qx?Y;t#n9MjggwbzA)p2KZS;HrS6{Bcc>K+?8)dybXjR&G$F7YR zy79`4a~eDHSc%b}<|f13wQRZ*XfQo258uZkH<~e*lSTMvbma<}(3?ABtL?X~bMo3O zdBO>^@BD=9Gmn@3dw+KJ6V1?JJiFhr&NoHe#Fo8B&o8Ta#My9fH07FzUz9c0EB1)y z5oa5{h>Pn-+|9BZacmaxCae}s5szm*ZdodHU`x$<%QE(A>Gtm{xx1)!v-LBqxCTuq`3b%*O~2f+*ueArjOO4KqbF`%=!n@IM$~-YDB0WvCE@LScr9K!p3z zsAl{S0FSXjj2&fc4eYuf3<%aT3lE1hv*<9}5@D7IunFvEfQju18_Hq~Lm?*iDG*@1 zpj&Ff;V_so)NJjU{CaEj8|Vv@GZvfwUQQFyQ#?fGd*LS<$Fct zRu}oSHAt3PqvUjJikxB<%h6Vu%(E8COlz_HN-mIZ${BLMtl)N++$j&rP4ZK@TAq-< zBpT^1@d3RL%V;?~LPOyW zis>FytJCN?eF>k`$FYN6hh+}pMs=q+XOD(5Hja3lDY49)( zg-Mtgt(S||7WT+uj>7}8N)~V&y36G zus5~Da~KgX;|h`3ZnF+@$bz=C22yA|5cP&ubV+yR$S0O)<4UB!2D(!$qLE@MO%g+? zRNPL_iJo*I363w-g&M{8_=Bk9Wx5XA;3CY%DR^HJpM9y@a2{$=iigEq+$0ubsdxz= z5}T7qWw;hfc$C+`AbDEcBpXDGx+LNDBT!3E;qz3CGiWXjqnEHN)m%s7RoQ`_W||5j0(lPlD&?WiLE|2VfW;;y25~kZiuUcX3i-uHK{1=r)iGg)ko` zLy?#Uhs6C56NPXa7G5VBYxPO}iOzwGdJbICuk!o<`6LoP-U*Q-CW$$M#4_;$>=7N| zbFoV|iXplm4$#AsM8)^58dr&Z7!p-DiD_7p)!=iF#bHp2MX(MR!AZ`nzw_`bLDSBY z?(S+0yaOegTLMhw=}B$j3wy6JJ58BW=lqQ;q`K3Iu|+KXGM+vLgd0*q6$`UJ|>E#LWtHl57uKnSExSvMXGVWr$?QR z@*by`EO2g@H#>#$24{#=YLNVg>L(AYZt^{aGNSs**VSOTN{x}_YKkmY)8qs-Qw~cb@?5rlsR5eN}yHH-Sd&qy;8BD42gsrI7zDWD*W37gWekaN@K(@OYTEhs|I3IqY*1=d+1LHe^NlXjGHnmiI zu3i*M9S~ienCRzp#_3K0ZcnmL`n74fE>MGX5!<+4edZit`}!o2@ax8AeGJ~!LcFVg z#VcgKDA$#owcSZP@aOzJ&M3X#>7!sWXmjuJ-UIORULon6JhV4!U)Ft7*(Tz?^ zP!v%Y=wtN(ol?K2AJkN8>vW|Y=L!}&`*E@p!i7mRm@nxZN`rlrtya_R>T!BN^`=ME zC7h++!)MjYxJu2yy=pifQm4dul{ia&ZJa^7?Gij~55T|M4WgskB?hZ$;$d}%n3Y7* zoFwFM-Mn9>^UTdsIXo-d%Kl1Ifx1kE>J0T)pHZGVK)0wJ)LXUU*_qe|Kc64dS1eVp zg#1q3B)?Jl@>CLR-|BI+-(E_e+ON$ z5=;8gm_YrU8C2*jq9M*|rfR1DFHtG>*?YwMcCGl*{#=~3zZUiOPp^-u^qN(Z;@7~R zQ_p+yOz25%U{2#s{gDdkGDq`z84Xcq6a3Q=;@?iCh&tK0#@T|?8hg?Qja#s>F%whl zi6X^518+3uyRyb}?`-Sp7uI z^|Xzl++QO8WV+3GgJ==AH#Oe+_NO;H>oGXZ?exA>%{iFwVhR{;zJ&PKw(n VUcy?MZbVi8eXw?$rhgeoA1g~d?ZqCDhvRuM#URvt>FF0v>p+N@Qp zNPR9^@j(!2D;xzCZL!eJ_8dVFX`wAj2Z3~`oF z^b#UKa%ygiOr!eWo~%bs=8|Gte=jmnmuLasH$nV z&1#v{E^>5)V2n}XR9v=0WZ1!Ireg;PaK<2V(Fm0Y z5vI3rI4mOJkcdXYA{vc~cs$N_IyyD{PH#2IFEvS_zP?`6@2nSp`k+CmlMQ0gq9vqL zBb-_E=1x~6y8`2x1l60IVcRdyu-%K{fW&T!|00v)c|x+?jO5Pj4j}v_C#372aPYc= zOy-2g+L?>YwZ`tmfW)aWluisgB{kWO9t6VpEt~}Lw_y4kNM6%j%UwUUmf=MBgriAQ z=*3vw!PI&)Fwrrw&e&y~nmKo}mJyf-BS^<(#PDV_LdV)rqH|)svD-*RoMTJgOV=+e zGvZ{p+v__e;!Di;jlGGo%!reXZp0yX#GNcV5tkVePp{=qM?9JJq-6ndHd)HoU+E<}W9ok#S9x&#as+oGX_#8-d5A*iTSyOL|jBeaS;nE5sy-fQ45g{jj3>q=EO-iPM2~- zL}+f5Fk&RfpMVd@vuPgc|7O3;$jPwfFxqoFVju~89fnGQzD0Wv?+Nm{dn z*5no;n8nTtc|ih>~d12(pJ34pWQ9D0Xp0 z28GF(hzKz#%@Z+dJSQF_8_7RKdeo?jIi)OJ#zJf>b$XoV+`HHBr}9=YsYTa-Tg#c# z1_YdH;PNnC4IHld!EktQLM!LfN6g_lGF^GRH7MoE-3?M}=*RvoE~WKTe5d+L6^Ajq zLomsA%OM`YCHdY$comI30jHvYXh*X;89}iC{n!Wm_=#MmK9PfEA2?tvzyrpy#9(qbIb)M_{;}dj@N<_E!12sx`(cmUFGK z#C!?AFis{0$+E-(IT)9i`OWAFUl@t=tpu{4)LC220Tba>j3=9JIj7E?FHwd^+Ej)xQL@in`P zJwn}_IEE~z)}ae6y-rbbot8~-G{vwK-i`2@{WcsXfH^M{4+fZ(@oU(vUR%r|J_o&=t zEG2hColzajiJgk_CY1gHP+%>qochKI@&`OkL&r)2%V{hZo&8L3V6@n zFUP9=atBnvbYlxnH?FXEz!mmb#pBr#cHwUOD%fprkdxI0xe2arER0bLE1Ji^KQLrk*;U1t(7oI^@cu5A2qg;_qBd%00h-N&_?|h#;S?HvW~Oa zQLbeau~@VbOT`3L4lL_Xbg?P5K9leGx|vOlEwK6+-k2Ag=~mF-G1uES)k%C%{j-T( zyvXs^6d&O-^#We68u4Mp-*q--_w+E$I!nAlzgeFb-{E4#vJSj zZ1jnQDuyGflvq56K7RwYDg*9we}lNY6!Re4F6ExGIvY|PQ@vo8IEp$Ob$vR!`_T1w zjz6Kz&=Tu>^EF>nW6Mq3${h2ux5eVI9cgBh^J!*#SDl{O*Fsob1if-FyRW(oe5wjs ztJzSY#sJGYkF)1{45NrY&`J3vF^;mrvJOQbw=ME5U$HiBeXK3=S?gjgvwvlwGv+e; zk5sqrRv+eI_GVnDp2Okl2;QssyUxb!o_en zb@T8y(MQ}N{-=#ezHvI>?C|1l5f{UYSOL132mHU5 z=Mt)`c>&dpFL7AjEWOa24+DeCeIBw`vBvx6gWo??Ywt|oi}0wgJbhmx^9l|o_o5=l z`VM9t9#ZXat9IXYbQ>S9=_2=}KW6m`yqJT-=fWU) zLR6ksEpssm;08Gq0>%w+T(*H>lI6m@p99+*1YHKaiV=b{jY>GI&6B5fE9{Yv!9TQ- z)J15Xe-W60yPN6zbrUZ{59+3Em3jkA&E!mQkiz3?;qnfBL-m&c`eBR-6goW8WC-?W!%&z!mp{oJgT z<<>BxdA={UZ&AO)8v6ZErB>3N9F`07eUE*S8i%iI&v_}^bb0XNG7Vo)S7BX_=qOT4npB?LKyPeu>_sya8F5SO<&Yq!-alU)j<$=G*(%_J0#(j>wNv(rL>SK6Q&66_~ z%Q}xdmQIxAY8gDBRzt12O;#wD3(M3PItR^{bF}Mu*@(hD>T_75jg5|f_XoBa{en}q z)z(9OMs63+$m=uyeezC-a{~vBp23mYUBDfaP3!{q5$05JNc#(EZs1I_XRw>|JFkQJ z3Te)3QnN27W`z}KG z(zi6@B?F<~QVt zF50^5!ei7%I<1cv`V+g3rwRXIb6{|_)x0{{O?HyiuooVLZO~V?l`LmN*V*jFZIV0y z%V8PR!}Cxrw*$*Mv>pMlE(y+S;;tdj;1f)Z+z1=tG1v+B!V_{eu$+DUa_N&#!g_ca z{t6ZHD6p)Hyw0Xn{0htSRA_*GFhgsfm(%lP5BY*zp}qEWcIx_cwqIyAniH+YX6AmQ zeFP%-22^1bR@=LPvA(8d4X|o+WOAv!1#ZHpU^Ldi0=phq&YsDAc54~MP4GCb zfo--8EbF3CShiN-ei)3iv^IFzQg#>ld-~r}=l5ggXzLp5^JYf8GmempaSN=#|3WXE zAXzTVgQIpaA#K$%Nf%kqtM+)MEW^p#XzC*TWA~k2pSUh3pYTdQ1C+X3?%s3j3hsYb znV+6j74+-`~rA z`+K)nqzeB1TIt)bX;m11Zr7q!tNf~Y|6YR!4jI^YXo*$>hxZxWYGD88hUWPDr*q!^ z8Kna2Xr=!D^#K813c^+TzYs}wY#{B)8F@aa`hi%)osclEMsg=7gDVuglEnWI9 zULK>61Qqxa$VT8df&T)32&6~jm8$qh1Y)ih5woAW{C1GNsve?fc@2E;qCFG!@7-_b zsiXh!y=!TQxr)6gS+G?XTVHxRk%3q$65YQR5N0sOio}1v9(Q|*Z*lPFMFrM! zx4tM<>|wrkJEQq;)BgV|!OTbdS6ol)E0t}c4n^}zL^S$#hAtth;MV>ris1Jzk=))F zOG`NwSnKt)e@UFXTZ*|Sq_KNVM!Io&y?d9w?3U2wyfV7K7q6Fi<@8}JvzXGlx+$jn zn7j2flUuJhqK}%Za?_la!uA`9x2rMwN+~-`a@*JBnpq;L<|A2Qw#fvuOFEbX5^s*k zdG8n5?wyj?yt{b`yb{JUGH6^3#^=M)L>l{c=^Oh|2j-igaWNS8 zLLSG#cpi+`z z-`*I-V4MKs1~BdbXU_2kj3t{{gj2FOoE{tblyAxsjGK`;xaSs@` zLu|D&Wn9$`S7+_lQH?9QwRwPjJe<{~nW~(i@#8YU*5-^I@cLXM2pB*ehJo#z{7Nw;VHNWs7-0UN=e7 z!_<{hritA2n#ng_Q<>>KBAvZPQrfG7?N*iTZUtHB7MBt3ozm46#CD#e)oiraqSx_L zsN;=MjjyF$qbl}}a8@IYW3QZ`@g1n+Ym~9MdLmc0t;5ko8vAzX8~ag*jIXCn zInF)D#azRU-TbKI`%q6+<+57`b=(Mb{0Qo}DeCwU)NupUac$Ib4b*W0>bMl@I3Ma* zP{(ID-tNJe$ffKY&TT*7Yi28_n(ugpIl&Xm@7%#$=6LfLpZ6?p_ZW3dsAGjX_V|K( zgV(zkc#3v??8EamsiDjs1zzpa$TDF*X+wtjbpEzpz+K6n(af)Ghp1py+%{)_HZH5zFh?q>^gbDMy=uFIZjiG89YuQNS(ta*y-n}J-&4Cb@m zApX#M9{bX>+|cWX?RMppZaeG$6h%> z<7zN2nnB|=Fdh+(CeqlqOW)X!+BaSU<15t7%>&~yFn$Qe&2Q(rDRMpzx!(?h8?Z<) z&%<~CjQha2JB-`IxEYLV!MHq(bHVpNG!`?}Nc#o#vj?cTJwx&KFY-(l7~cuwLNG1? z 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

    ^C{1~jT;4^JP&nF1Yj-h=bs8N=z4gNo2?!UFs rB;8ts(cVIfZL5`@1gwg6CQ#z$e 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 YP0VHAb?mPpH(fOonl`t;pZwzb51bA-y#N3J literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/DESTRYER.WMF b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/DESTRYER.WMF new file mode 100644 index 0000000000000000000000000000000000000000..525551ba2a3c840bdb8a3bd54ed157535a5570c2 GIT binary patch literal 2198 zcma)7QAkul6uoojt)?z6gs`$mSgrM=8KejqVI>Muu~Z*I*+M5< zU;)%)nXx($sI*)aPyrxMSO6h7!$TkmhoGA3V`ULI2$~AO0qT2eD_vWqu^C4Yb;sgn z%z_y8uU$?gYT#1;?V;3gDw(cNq(<%xB~twZ=_+@2*vtW79|_p$mwCW89_-CBJOl`1 z3sGH#pau)v3S*|cq5KrJep3+42OyWrF(1>;a7|UlZDiaI&&jRl;MM0m=)ZZGoqb7j zGGJCwf!I73~-mggr z6a63LXqlJ8qe-AUUS_^zLTA1-CmNS^Fs|C=xJqD^%@80C`T-ZZ?QNm6MtSv zqh?%&;9VhQb;y);U!IjQSisRjYsq`^eBRSjn9hGoVd?H9T*Zqqa_o6wL73!@OAD9@ zGl~IY0fQ6>8VgcoRj=tD=mw7=o%9w%UyHpp^CMv|wN^Luz?xpwoI5opuS#W;h5=ZC z=Yg5rh}9U97tv$Nx#wpqGh~hSX6i@eY1xQJQIThb&De;Yfm#OXHiPpxB7eHsU+nBW zW&E?7!DSqf^O%yKa0WL5_bXMcEBYSH=x2dyH7g4%?DPBZ+pUMNV|bF*Hme2{_US-= zL3*qdp5ha=zR!NU^_Wnvk=L#i-s6P&7Pw!jdc383umS1<^%&D(H3@NDYJN0QKE-7X zy;OCS$JgyK&FHd2z__bkXhyFJ0VAxU2EA&S`om<88g$uNnxCchQ9>>GDm9jAJ84hq z*?{0=o=8xb9&llOzMbcEZc8v#*!V;jHF#}uw+=ZXKGlB}i#&G*j6`NN&Pyg%H}ROe53ZpGt5Yv=9e*KqH0SpEa;stFRi`jUmH zN%K}8D`*rcD2c6<*0-{P2$tqYAt{2G72;2!savZS@7{ZlXXeh{yOmp+yX@>eGv~~A z&Y5$*ovU+Sp9W}l3jR{!fNbYL&!!B6djZ5J34jDVrKUj8_aRtMj0=d zGH~a<$`7dUL+vKD9}JjYBc~zB3x2bs-ctO{#HUFW!)*%Uey!2o-VV834yLE4p-?F3 zxttnlplSV*GeSO}hx`wDICHrOSSpgu$J&;H2cSV^LA|Jt5>#3w&FmoOm9MQ8zD7Cw z#{UYRW7qGx_6S^xU2E`?d<^=;I@;MK1d4=4g}03{odt)hsFf>$AKMt$8Eg^)Hlnf~ z;tgJ(xHGFk=HgB_?filddV?V%-UKL%7UwdzMQQZ1Sck_$ z6grs@g&7nPqST?%PVq+XxM=hy|5G9V7t4xYizlI+J*t5aB`%g8tg7edJaxm$DJ;n z!`V`ev0e|Kk({>1K33|3V(Cv~{TJLM`Ixo!fU}kV?ac7t#Af+zk_Q~yxDUH$_;t5g zSAD%qi#3uDTgTnweFO{MW)@)Au|<-5tWRv*|B$Wun~dk1`3;iCV{1Gvnz*?*_V^ip zzbnsW(<$8y_VNW(l#=uT1|&=Yc7 z6mL+ildwSAd#$5eWhX9}pLf^%uNbwDKkE3Y-zQ_>*$P@XHCYUEbm| z)}Al2LD9)?8tXqq7atUh)}Egil07ZoGC6;nJtHMMZ;jms*Vy~;vWfc@{sGBtvDFe+ zxwdl=V@0<}UAHvE?NRR4fKP&ZMs)j9t3_63uAt%{V~D|xwY+ce`y*dy>3F_vCqQTQ literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/DIPLOMA.WMF b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/DIPLOMA.WMF new file mode 100644 index 0000000000000000000000000000000000000000..b059f8a36226c2c7cd50ae7d342b914af37a895f GIT binary patch literal 3510 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 literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/DONKEY.WMF b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/DONKEY.WMF new file mode 100644 index 0000000000000000000000000000000000000000..1396a389c3e16aa18a03910acb49da140d9863dc GIT binary patch literal 5078 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 OC7?0Xzft{q=lD10yL;;Z literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/DOOR.WMF b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/DOOR.WMF new file mode 100644 index 0000000000000000000000000000000000000000..8a98a8b91777da49c718a600ec148444bdb2423b GIT binary patch literal 2678 zcmbtWO^6&t82zedx{|Kmu3mxzBY~uq#ViXUUIICpc3nvpc3n{s1q1C*B!Pvj8-EfA z**Jnb~LNW}kiTiG}&;h3SPCz9BvP)bpi4zu%`cO{v%G zQIaGS$1z1wL}3_GhW-qF8QMH#A4q{7kN`0d0U?m}!A-&Kft!H41a1uO)8IznJ_>FK z?l`y^xFBU2xDdt^Fb8mZ;3nY4;6~tv=m$3eHv)I3Nu&@#9JXGh0!M+LDdBKLWs;m|R6NNa8)*4*p*SdL+?&M|Q^7kbs$ zJL}yJ26QA?5nsA1g7yE;{8(o#7}9F+nLd(ZMd zL){t=XV|7xSaGh|eBm|RKF&$q5r_0u-7z1!9kV34T{nlJJ|qA3e|8EFM)SnxB(ITO zUz?M>zT1x-dP~r}C+|Wx^ip6+7W$(x+E|9j{q6N8ysrGif1vTZ|FJXST?M+O-hasf zj=Ak!08(eD8E52f*KD94Q-AquWloR!Rm8JXPPe^S{pqt#^7&TyhQ!r zzoc&a54%&|2S8Hljrz0O`3-ff9`s%TzIF%t3zyq<{uFcO17&O8Zoj6Jx-0Iu*MVz# zQZu@>`MK`D;aoQFsVaA?J#O8<<(x8=clG-V&$8W&)hTn!S@-L7lsWG#nk%Jee86pu zhjsQhuc$?^m8sJS%thz4dAHQzL$c7RydV9Z`A9AHPOINhXU$uVH=TtU*_v-vVYTD|AIbO~+48zic%75$gaWLEJ msHxMg>$5T0y}ah$dDr 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 literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/HNDSHAK1.WMF b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/HNDSHAK1.WMF new file mode 100644 index 0000000000000000000000000000000000000000..528081f0934e28c8da13f722cd5df9ee64e0bfb3 GIT binary patch literal 3862 zcmb_f4RBP|6+Y*lm(34}VF-URgzys(27&=ep$N0o2_;n$f-o{Q!U84~M2$v<2vs)I zVhe>rTPn5zSr|2_Oc|_&fws6Yq6kfgQY;`)7DSLzS|U=JB=6qSbKl$iFkL!!rf=uG z`*-elzI)ES=iNQ=#}8@&E;kqJ?7%o@k^*^-&Ok^7poPf*>Cj}mfJFMi9r7L$$b@dd z@&KeryKQb-d@Riy^MIgNyf4@5bD)p3XO@(fc8B6ck5*MaQ@LPC|I*6pimKAeMNcm2 z64y@mbO0#L$u1Kuoo`O{h2e#7E90yRd6Tb>1- zcy{(ziS82^<5=IdD9h0z`7`qnL7Wb*^49_$ULLBr|Ls^$XN=P)P$KKQ)nCfr}qbP}%Sljb7bEil5lHA?>EgwZ!& zA^M`@M}O-79Q{N)^wZ{V=^lanc8^=%%IcNBuB6T$7vg?z;1-XMbFu@|^p(yY7mmKi zF|PSvJnlu=^SJ8d@pfCu?H-RuJfI+iJcfkLkzKqNR-7|jaZXkC@Q)!;T;oGVF-sKVkRp51v|!KKMWv! zLP%`K#I|q@wbO-Ay{Jfcm_>yn!X+vyQ4k8U&Y+0!iCD=I8&<+1vZi2A?1j8k6NyB? zrlC$}&&Jn3qlGXUmZbMi_H(l%mI+h56YuY}_7m^zr(`6sIu2%dWk7a^ZL9X|lIZNT z*|^=<%G4Wy_B|bqN>;I$d6*jC(*fuzZF%B*It@CqmR$*YSqtIUqLNFqprtvaTbif9 z*ILRT(y|Wz)lv^nv?6lrJp8u19p7}nz!UD>DoHO^dHR>?xB8k|VP?>EvxcT{11;l= zw2R5P&W3W~9NhyAQ~{^ychE?Pdubfj(sGQ@b}2u`=Lpq&8mGonvHCjAR}*Ndlq=O3 z+MtHhR@I+&s4Uu}j5?$Ksa$njb)$W%FKrQ7Ch~~1$Eg7IRBx%pcoR3k1-Q)np^^U{sV9&BA?vRbpv zrIx?x{Vn@+ZOdw1)na`b(urdDWYVal->1A6NE8(S`@I}YX)u^a(06z;y~1D5FDX$_%kI&>Fc4SLnfS24*;tdAe(*#qv&0jMCV`*eF;_69e+Rt zxQPzIAbxuf5*X*SB-5rUv@9r+%$!U^Zo@m7gTf}ZI6+@T6T7AMIYyt zHo^-Wc-7Rqn6TC8@fker@q6vFYe6$|JTe$}|wsewtKC-qKFgp4rIi)<#GcT3f8+{J3G`y;j3eOt|QkEuu8 zYifa;Ld)G;df6RMAG#Cil3PF-I)_HBhWbqJQpfa<)j|EN z+N&3+ZTewlaT8mf`ZRr_ zuMn8)V)X`1H`l1rT%cNWmJXPMbk%I8X359LO*J*hey=n4QH?2}x#k|4ZF*6OX;ndU zRppz%Dr++_s|g;fzHr(sqefFfd(BkZW+u`qL3!HbQ<;=gq#cy(A2d(UedZ^E{D$;L zW&AX~WCG4E)7NPFmsM)FR|;1|i-O0-WB z^|jsKZB~(MQ2hIr8qW-A32&8Y@lij2+=c$vvUAyCX{OvT{eL_D7d6S7n}-3fv~xOi z#XkGlts|3l{4)}Q-jhiGcG$MR36tY|Q{rXE>N>Ejoz6V{TZR44Vln=|JpU8h=jq>U zn&dx<-}ZggB);;QRS$Zne{5L!;Oar2=B^)bDsTOO!nd-&*~)q}>Q OO`B8*Qzm(if`0=!yDwJ& literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/HNDSHAK2.WMF b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/HNDSHAK2.WMF new file mode 100644 index 0000000000000000000000000000000000000000..3f81c904119964f05c02919d6a84ee9bf2568528 GIT binary patch literal 6038 zcmb_g33yaR60WKql8^+#Ekq=U;gHLy5K)d0g^YYY|XsEf81ORrQYic6K+1#zOD(*qK`kdgr4ai@UC;{~se zAwQpirOrN|#p?9SvRAoel~l4y8o9Z-kb5K-R(w$i>@S2ROO{KYEO182B{*F4**ns( z`dp%_l{jSaw=RRfERVnI;>h{Ra#~ClyB!=H*#Z$Fr5&K4kKpKQfmAXt_E|00d{rFz zyZC)2kL2*EN_tuxEk%jdAMH$%tyK)wkgUz1t)TrwH?#A|xH5Uw zDRcN_aI)9-{2J|Zf*qo2yF`;6XMdsyAU7D7rSlyurDKU%=^?c~*ujOd&~4P%NwAa@ zER1GYh6)N|7*hH+O+V7zcO442Z|}_!wqm7QTzm z;2rclj-)B*p%IuvJ#h)$jLWH#lxJZvZH2zH9b7b4V)Z6?2>Zb*oB;dr4X95AFq6K6 zW%LznqK$BXa^NIQh2LnftiSDqv`d_%cJrO;4JmWDubRkHR0_{k75OQ3$c$AUlccul z+0<3X(WSr!+!lBha{}3TeIOkV`n%(i;v#s!-;1qZ;XDUtKWwOCAPJgbbLfIiVK^qk zBpd+m;FEA1m%?>|elUFl8G<&Oet;K3D~0S{A;x2z87ma#!`VT2-eI^a>^G07vu3J_ z;8`l3vsGL1rUyT*#_@FJ;SBMzpYn2wS}q>1<=a%A)b|Smr@6I?geIyv#HjYdOi$T~ zM!*G{By25!Q}jN3M_XVI?FAnlgjIqwht9(*R1;sPWSNb7WHyH4V#>fdl!cRM0gj>h zm`2ZFM`?GXbnH+4Wft4v1gekI$%Qjy_NG(5$oDWu^yY|-mGmU6r6G_@?O`J&!Fp;5 zJE9&Q$7hnC(ARYmZdi4@PX zD47>iA6`d~a{R7U1%LR z494FcclbT{o_`6h^l!n%{-gMW{~QkT$5BD?F|^}K?aJF%$nMp+uIt#1g~}I;(OcY` z&KDoW*8X`o%73%ycj0pXJlN{51&93``LJYN<%mfAswc29q7V-ZXzpT6)s}G zsS7`v_TV%9V7?g#ZZip5oAFT9j0Dy_9E>3!%fWF+$H#h*ZE|^<$fIU64>zB4Z?l^_ zn#0`8oZwoXMW-wbAT6^9sG>h!q#T^sIMWY8p?a|M*foD^*hba<2pmDH}4)ALx8ZpS+HR@Lesp zN^^TPy~O8m8ylG;;a*ySPpO%>g%+~y8*au?-Vp5jL^~Kt zJMkepgj47!{)3L=YxE1gM+NvPeS_O+Gw!1I@eA^bw&(Ff`WwD1d(>R&gilhE>_PQ# zDn&_o8m7qpJ6`smG4uiqkv*s!N#_MEp&chmT02{$ciAtc+py+Qvvh8jcNs2ZW7=swJGlJ$y_oAHx8j zlo|Bnbr4BSp_1$%)#*;D-wSoAKQs^|4QZm3bD$2r0#)ceIYsA+?34QU(3p-vJK34< zk#GbTHI}#ySsU^&z|vIE^O* zjQN4ubU2Vi-v+uk)tiQogdJEpI zbJ6PiE9-r82Tu)XsXxRHdKLE8Z{UMcKC0K^<9Zin=o9#mj-1co}1Lg|L)ke@$|*)Pe>2I8M)Db-h{ie2ug8X?#NTPZ9s8>GtH&y=a~uL|&PnkMv;Lu6xox zolFOXv%{LC{2BM_y|_c>$?6H=CMy4JavHPRGRebJCyY)EQsTWDPfez?{ z^ppNwp2w=H<{H(+T&voO3^X-Vx*;{r6wo;H5j|q&lG_ZYKBhC>ZIY?2NhGT`gzGQx z6KM=y)G@+)BRZ|y&5dy6_A6F&=)7o8=8Z9UaxYt6Uh(?M7p>q|*Wf9> zf-|-SMmVJ%bGfhmqV%7qj>}(Y#gy|4*Z+@n+xvwQ6Tvd7q%6fBQ|3FMwNn;n@GFM> wMrz0Ye{ue|?jXM4my|;JCK_x9xhfQ{g2+m~QRDi?!5WsSRjE_@^hmRR16R78g#Z8m literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/HNDSHAK3.WMF b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/HNDSHAK3.WMF new file mode 100644 index 0000000000000000000000000000000000000000..652529372246e6bd56493dc8db22893f68b74157 GIT binary patch literal 10422 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 literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/JETPLANE.WMF b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/JETPLANE.WMF new file mode 100644 index 0000000000000000000000000000000000000000..3b9d932d9824271be512f4b1d9c19cff87268a97 GIT binary patch literal 7414 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 QCBBQk%UGWXi3@=L0EPXkIRF3v literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/JIGSAW.WMF b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/JIGSAW.WMF new file mode 100644 index 0000000000000000000000000000000000000000..d15bd717e2870509954e8873d8f084763a7be97c GIT binary patch literal 4054 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 Hs-C|AT1}p~ literal 0 HcmV?d00001 diff --git a/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/LIGHT.WMF b/UltimateToolbox93_samples/Ultimate Toolbox/samples/graphics/Metafile/Metafiles/LIGHT.WMF new file mode 100644 index 0000000000000000000000000000000000000000..baf215036ab0055a8436a4da7ddb0931339b92eb GIT binary patch literal 5334 zcmdT|d3Y5?67R06o;TIQ8G{B57!gE>1QbL$WZ$lUQ3MT_2O%R$|rQ|gCbnJcwl4r;MTS*UfSo?lmrl?q1XDnB=p;ip23XpCgYTd-QM zfG(%fpX~dr$_G?qRan(gsJnTfDoZ-2Jg5YPoi7L|DJfBfg@r0FFHdD=W~xvqq=Lbq zN=ZpkVaX3mURb_;l_i2gL7pH}5E29hDS~i`a0`W-C)`Zo4iIigxc3V;DBK3ZO%ZM- z;f94Pq;OccB3Mii8-$xD+)Uwygc}rYisTD7Q@BCl{+e;~Uk5a(sDv`T zQd`<{vEF!PS&+o(W|sHAmNmx&Zz;|40;2tF#6I8GzAg21RO=b=ZTEA-5gY4?t)6`Q zUMUyxidKF_ts2R*CMGFg=Bqf?8;9e)zhSmF6(@OfG0$6x1>Q!S>g~Yk-VZp#JAt!2 zExIey46iy(_v+D9uPGIHchMBDBfaZ&qinAijr01_>)s$5Ep{e&zU-K-eqhIJg@|p3 z#pd|7B}Z&4r-n%V8JA&C4bkOuWg3XI)cWlYi+H&%?c?SbY>Nz@3x4$dd06^3zHP-) zS`+`Q-jhDef!dr4X`BbQ@_W!q-tXs0@GxgXcODP@1ViL~q~wj|0(hHeK(1gKPlef1 zcL7g?kNGWFExe7w+s2dOYmxK4lr%Fwyqgx8=E1v ziRovXnjV5jZ6njsHZbjMnrS6zGx=^Lpv zzS)#Yx|5rlE&NBbj$4`)f_WS?GlY}NjmEi_D_v2*fBmM9U&xaRz4P^0l z>BqhB4wp(lZh(BrpBm{;zh9?Aj_4dO{r!sc>##@+_%h;0Qr(D_E7V)CPI~_nskKg` zWP?a7;?=O7zlN{)ER?drv;3Vz!+JQv3*oqE2@6gN4hjE9skckCeJ)sc2~BAcO;yx5 ziJ@$$D6x`kXGko~g*tW>)VIZOt34#~Q~_JtMC@jdL3_I!?zZbCzLp8*!@Uw`o$O3# z6N$TQxJBZzw!~sp8^3KWA{wiyT#3XScvjF~BC?15NFsD4jIdw87<&-LiMDraGJa@X zoGw}m>^_)ge}p;q04%r1;ZtjHmy{o}&C!wB|-H z-J4?F$V*t160xX)%7av%2@S=|&A1R+@@8nuyPzX~BjdIRLX!6|e*_(5Ot+D~Y$+bT zUEWhK;aPvrQ4{mkDICSq@ineN6ZvY&VUP0pB+lgBIEPo_0?xt3JQ$a8Yh1xs2|~Dq zv#^*K2)+~4r6PWU*7F2f!JpAbTtd_M1m&_elR03f2xc3skVKQlI<)?u%8KMADw41$GDO?!dD5dl#y83 zfDM=m_AphqU(!u>DK)WgQM&C(oop?7+@8X|b`uV?S@?|IjDNA3UbLz7lIy8}9+mQMXpCJ;*xyV{!x8o-^ zTd)*2*d4glp2uQajds{OXqSCd(xFsr-=wW}A#Jc*XpP-LYwb?jWVh2c`!CvU*U%4k z3GEm8KMU`)eTDYoZpu64GrUM;+a`Aibv6S?naZj zr;N@KG*w1m4j0lm_Brvq94{}P=c9Yn-WS#?|6maFeA!y%?<&uLBfCr2-{1VYzq`~P zs&!;$dQV+1YheRZP1eUmStl#V+8K~_6Zsx<-fe5nxb4g__kMH0%`o4&51N(kD3c$^ zGD8Dzn=XMV=9a)5LxE4sSI%bh4`-LjarT;#4mcT3vQyK!)j4DCc6OSloLn>7dD={J zGRy}~9kaqYO&gpowB0G7JhofpHXgwOP&^@7+ZUxPC z3UtgpRz3w@vItY0t#qy?|&t!9coXO`$xXODi$L73+x z!8Yf5IO;TjD+A5p4}sS3c;G&GEzlWO1ws%G^o06uf9UHz4HMnx;bZqD_|_c_2i#ZS zg!?L-amT`W_YFYV0a)1$RF-usiD$!gybNxX^{pZAfu?)}f(+P_D`Ps}i0!x;cHnl{ zi66rUc?fpl*RiXtQjhX{4Dnj*&N~GA1m^^a)SYX~Y;(KdUg|0qE`Gp1^E~?l~tw@Cz^Wf$6vgdp9I-DM0pQ)5?q+YWTeFEM$dDH+1(jqohQ9W?8>4O>05PZxTj6>Z~xWJt&_!1|&iYB@>M1F>#I}LRo zqQ{&kDZ}YUn@uCiHCG7&G~TSn@n#X`njC>Iugumm-yg*HO(iNdFwRUwvIF z%=gVfER*A(yP_x2Xq$`T>PQoRETK9S)8SY8Z-4luNy1t}?J*56p8foIh@E=lc}*$5 zCu?CvRh!nERrC|iq&+x>im)54!)CMsuc0M)3K!y5T#N;{9G}N^Vp9>;$5O0V3pS%kga`0ep!`>Z7D;a)?D&c(Ve zUJHDkmx}K)UG?b!_hynUlCb~t&p;V#3O?ZGAUW~;5HBy<-m>u+Pr6pIlfeK}JJ8KE z4pcSIx#i46_ax18i)p>Ply

    Try again\n")); + _tprintf(_T("\n\n")); + + if (pszResult != NULL) + delete[] pszResult; + + return; + } + + if (sEMail.IsEmpty()) + { + _tprintf(_T("Your Mail address is empty, please try again\n")); + _tprintf(_T("

    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

    Pg+ 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

  • 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�Veq&@o~?pIUD*?D^a992*T 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⁢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Ə#Q*pzGX~IH?kn5 zy#G2b5cG;~SqiQQojHSUnUy?tTxuXRGQZjDr!ly|_266QBcF5`dlgCtNV{%Tsruvm z4>ZTX845C_&Nku z;DXh6b7h%zg?Wv(-6gH3eD-WVbUkrvKb3Mj6Y2E3B(xc`yu=*zoslMhkCj8y&Te0Egvjh7=84TA=z(u$dzs?Q$HB<(LXgi0?a2YrmgPZ z$T2FpE$AUhn$(Y(%mF-xfHd2X0X1=9}_* zVO+Fbt~0X0-xO!H_8X-pl2jexN^k(otNLSK4w-q25j!KZ5*7u6@f{S36_;#Ri&!cjxOj881(AMAMX6>v*d5;T4_(2j-5p$3M z#VHX;6hlft5hui)S-$Xr%Yu-Z9Z!8Wvbk7@GM02=#1w|)PU77sVn!5BZ@}2JM4UI- z{Znel=r+Y2jQm!I67Rq*KdmOfF9JfHx*lWo1{{n0S-lZjsHK0A!TKu1bI}awzp_AC zJR1?qs-;{Ku2T^oTR6|d3cDWgj~btd@Th;5NJdlGn?h61Xn>eRQ<6;TWly3({WZx< zqwkd8)A-Mx!(~V@2sHy%(ZxHuW{R?;9qB6O3N00h1NR$o;H1Mq$VR$hnqHR?8R`VT z8ly#N>yTWpTNrwd-`5edi7bpPsWX8R936)iX4+;_ZFS;5benY%dg)D9NXVK(Dd~x> zDG~O1Y>p_RQBm>ur9W1DkbDPJwCp=(gipnl5LW1gqoPq-5{z{~q1qeuXB_bL#y2mO zn%*Kj;>=K(HPFt>sZzT2uQ{?17jFVrfZ1gjB%-I!4L=TuHz>#y4I8X7WY_*7^Ymyz zd#Z3^R-@Kv3vvn{c{SDV&L8ccpuSXBd=Xc^*_ZE^N1Uouf4()6%S3^v^deA6BZ^*7 zycF%!{pJB(Z{(&av)TmJ$&tbir4KyEZP_lfWxi0jE84{@R7OEPx7Fx)g1E6QaU1XX zVZVz^=705&d;lvQ2f%>VKn#bkl}8bZ;ibw21n0V2WfKEwqb?3=6Z9QXL##AhAYA;> z+zlJRepm$n=r6`x+qjMTj3*g}vV77^Q`sI2CqsR#1W=QfS_pRgC z142I-mJtG0EYzwTA&8^(Y;3w3|4?6dGlRIB=b6SN&IF{A7DSYr~=^Y34oL-xhbW+AZs1{!5izo{& z2{ypX+ji46if+zXMP0!VPy{da3omI z8Xu%RsC?J?+CVaS!Ce4FarT#f;2_HsB9sNmC?{LYIku2!aZRZe8(uJrEWHO>BPe(G62y-`IfgOqV7G1DHMs>@cp z)57jxQ8uN?_5D1XX=iol-$Elu0}}X%0KWW+1t*V7TE`)u2QI0X!b~WCuqtSNfMkUy z)Rk52D$L2@;P$9al-tZGKE2ESIc6j-Ea;FJd<=XN{aBOvgjR;!7K2G>D>}_$Kn=n$ z1dGg6Wbv?E3T?STg(&@VLe>iP7{{{8lIC7VER|8h2auC!j ziPz!m)JJGRS&nQq>k%K(jcA8qTV3VH6?88DXdkm_N!X)`+J>m%sUhGEF}3S}{J+{* z;x~R`nFI1rZftk)kgB-ED2;s2;=#CDfU5p?peP(oH|zxf2~OWkIgh8?{4`YGj;1ql z61az!(Y?K~QhRB&f_a#CYZVS$#d^TZNkJ~abnKWXRk~2+Owfq6o-6Q-drLyaVy=6$ zbPP;v0m!ptk5=}!2pR_JH8Bxvip~?@;89ms=}$$M?#$Dd6VCuJ5D)?Y002V+MW);w z8iEN4kn-jSVG}5!jK$LDIr^smVeN4|YA$YziHNd1ED=_rix^X3&>ZsVL#&mLr4-Dw zBDS>de$>#`D+q}71i77RlU`MQukj{U8t}%nn%dZng@hb}M`l3O=B7zN|N2zm`KsM?WS?!j*(BT(gr2aM8AQdJJQt zM+TMRwJnvRwR~w=X3NInj;OJl>?$3Cc+8d`mz6N@#!NHeT)dcCjcwpudA&&ssRnx0 z+V*qW5u9LCIrAgKL)=2IMH; zGv+e0+xbg5zoD6$(KR8#L8P`g6Mm#$*i_~-!Px{UJHrdJD!a*sKu}g5F;}(uYDf&0 z5VUR6%);t#2KSuKbyY^xeRZ1tUq3Pkb7Is!@9Q9UKETrne{e--CH3~YbFF9D^s6;2 zZ$79~6euspthM0f8#6dGaJY~E?e5kM6250Q81C7BFT-q=7mkFMrn*a*>2`1;;#ETX zG5#I0{b|5ii$aq?am*d$U-yMcRxNd5pq3`OH%{hdGq|P9(ehu`>a*dkMK>O@Pw~X^s}tGD<(Y6L@&4i1Zm- zGu}nJlv3c>M!~AWI}E$$4`3y`p)EUZ@`<>xMLn~$47>JA$2a253S6Ez6%RfQjfOcb zYG@Wqj#)8d=F(|d)bri*nWL7K0Tqk*K#1Wf(Vx3z_vDA@xUJ$>p-PQ1FXa_fUMvVX!{K|2+PG7JE!lXG z$MM-Wd+Gjgc!PE&^%7VAXg&6NP>;~32gOa)wc0E%io@34Y5A3LoR1bz~(a_^rr;Gsckf%E=TGH^j0HffyD( z2Nf0r-4o3)g-4Ce)hoQ0)Lq_!Glr+x*n)!Z3@XPDTADIGMQFzJC@|(^H$Q@#Po8G$4Vqd3iwp zZSkYVL-jCpa198#|FSgO0&Bz(r3UxHJ0)FiL}Ul8mV096v7Eg>Mj-vV5HBh{hbo7& zedAoObjh%nIEHFIQfI!2XE#g}O|W^{8aF~A7p+R-o) zp_a0Z8P0^M1^B(_rySpN2Bcu4U`Ryr%CH+BAKT6L!0m?dOj-ziogG$&MpU$==Sy3? zc=hp~P#ELpZ&xBVFmixv3eQMXWoj5gb62&+$0B(~i@^*Dj4zN2qo~VfNO9P{-XjCI z$p~KuXHfGkR*=Q&R?B6Gar4A{Ysnn2Ra;}u<^uF+$xKBit7g^p*t~eiG4iCT{8al4 zsq6&w@a%SFUG@9m_D5L{lV#xRsr|e}bev5>4Z|T`$P#n2X8I4|!_F+SNjSGDgM)x>r??acsoPW7u4rkXtdN z-qy(5@#UVt$=i%EkY}ii|#84tWsWkC-^OUh>FPn@=q2O=M4rHDTzL_}vkL;VeqPJQak5L{MN4s{mY4 zV;do!aJQCZ@i%!Eto}2-h%Zg%hTMHz@#E23Po7F{U}F=u$z+_pXB`^Qj5>DU;^Z9|u?F75c&BT^LkJRkjzIrnskm5A8BxorMm zVaF4n_iSXd4A=Gfg;dDdM=kp9$6v9CFp^djXKq zp>wOWj5ewI66xA<7A|C8NORbY-X&1W+C6eQYRREuO451NDi8(-V3u*eP%Uf)BBhpR z;&%uf8>HaXdS3TYIL!zTf3zx}_a;%zdsXb7dv`*a`E!UE87Na8MLL6$fB8^UVdk*F z!vNeI04xf(PM^D+n)K$?+mDAj3-h5zPsII>?}sk2Hz)ri*ELpHm!x2%>m-S8)GUfb zNC!GdZg4)Pe>#AZ%tabHAm9gDS`1G*dGRL#01PA}tC&T#^uevEGi8KMsl~=ZY7E@1E zATz+`!83Gbw2L55B$_wpNsM$Au@DzuNIG_g0i>hN>sNzhGiHPAhMgeiDn)njLBELR zF@ca#^i$FRKMJmMUeD(R4@30ERf2StbmJ#QdcooT#-nYD_&_#DO$tOnsN%Q-5CHyp zDe)w*{>^#!Y{-LCW0`$`bg)8@)vCsV=1btt2qRLiAp&oh?&!wzD0%1mCPTf2@v#n& zwK*;iDO74{cR30jZLZ_Eep&8qqe3gD_CQ4a-Q{C9*)d^k@I=b%+!^FKhkK5dsRtZD ztshS`#upemaX6MR+phZ%Y>i9=A<6|~PjUw13#ga8LPkFKuVi4w&WWVQj!e1+%($cOaR#NexW!8Kk-b~x` ztmny9U+p!VG!Ps0J>Xz+NsnXX|=>iCRFrKur zj}z$mIYRrX%N|U@2wGb>j>gudJOsXW$iI=xFL2Sa0&+>9fFL_O|G6>b_sOAl^qP7wy(C~whvR>WPz~TzVusv2Q zsBn)}B$x8Z`m0K*dJ#3`Q2_~FO|deGmYtBB1z5%jrf~!pXvGH%ylh>IRhDhjq6{Wr z1lywLpgrXVQZ+QKV*2x=u@>sE3kpaTFOq>4LuG1bG4v>psz@;C3Q=2BXrBAI! zX<#vpS&Bi99^<;jELk>uoyahd4Fysux6KB|8!9zYuG7v{d!qZp`#=m1EZU!b8epS@5HwDrdS0}GkRLNA2$rh0u3po@~U;ITJJm4 zQ=;l1VNzLPiYgU{GLvNj1}VUp007KKZkMKy4yEuvtP_(+$xQj5^h>~krLc^qcWeSVz!)$A6A61pR)KE-OArtP z0000(MKvP;01s8%B0WpEt7q{zGy;je4UKI+`vmo-&iLA z5CZ@jkw7$n0{4C0-*)%6-LrLVgQHbdo9UKzyR~&FYH!Pg)mRh&UwDC%#^8|x2t$C+ z?m>_d5by;|h@ub+_$TL0Zw|qqVht{J}3hp!jr#d4KUHyBq~wa;#H^DA?z-8Gjp3&$77^{z| zfYaPfk$$HGJJST7?pa=%MWqLj^2K`q!Q5|7k#1=Y-P;1e*My7Kix5z z?u~$rsepzH=%1q1WY>ab;tA2$w02ON$Y$ArwYOsmtf4pO3z6POcFH6k0q?KvFe^D< zb`J2+SYryK@JJH|$b>s1!88MAvYTeVHlb6861?!);ykMrjTXtQ&I$|HOsD#dWR{AS zEc>11lqAr}_BM1oYuJE7Kob_8f+j?=p_qgh8YT$W1EdfMS}A+6OdedDvTV8^$e-;F zX3G10_D7o|Z!Ty~3~x@Cn?+D18C_WK_i@Nq4h>1Rh<$fE%G{u&*tZU6z~O0unQftd zgEm~J$yRfy<}%m=rLbz0Sw=y70WjfYz4;QdK>r(B>y1NNT3r1*+%?*c75hc`UGz}o z9nZ!~^K4fcB!Vu%&TersOa>hCA4DyXIcwN$n#ZIq7-cm#gOjL%J*Xc5~I z_9i&MsSJPi*Kaq5gRiW$^NRZViZ)S`#hljqO?~cuqu>6sw|4JE{7dv4S$n$mu^qR# z?vS+E9KY_1qYpd><=c_f9IYGO_T;cJ9GRp=dW`<*&Y<=xl9znq^FG2mYfwESS$cy* zL(R+}n|n4iN10j=+`B~9^08l~%K{hrT=k9K`O%RFF)tVHo?P_kQ^Yiad`3 zZRG5KHinp9+RjJ#&C8GOte(c8yv^PELuyqrx8bbvDeFRi9O*{bN`vcg9b8+*8=%2c zi`xy~gn8XXKioweTjh1cMmvl8cl${UUOfLmgynjqp5Tp;P5OBC#&j1tQ=Z;i@W{y` zcZ)k1KqF(PSH+kHcMoF-&z)y)bnBs(ry>s)xF)UCSBbi(~v*{QDyL>HDsW|P50Fb7Mz^J(bO*0Xj^&B`_?Z7={zvA%K>41 zmt1-(lSHDNeD&e{YuRo|B18eu?R(d$cuQ(H9{t8dlrKvU@Nu!tT>cGhlmc>@;;A+e zx)`&Eo(n z)05pdRqLt3h9C`KwSTB~wMXE{AX`hl^8b^0pb-H<>OWQi$6v6G3sHNj2!lS8QStR= zz>6CLg8D96SsQ(~1(F@d;$L*J?u_D6(6ZdM_e-0A9gSkpm;B?&!{ML?O@6+sI#BX= zIEhL(XbIYixE{UQCW1fAwd0o~Y8;m5k89dS-1%B044xQyW%vJXWpevrK@bf_xol5j za-_we6(78;&z?wum8r-s`!CBcr6$C1A4Z2)%ngi`PkgeRj_U zGAp%~o~K^ueaT<8zLDVJ7!K6~RZIqh>9lQ&A+4$60cWH}O{T#n7w|bl*D>+m{?5f0 zz}=VEiFa8woUkvid(JlU&(UR?258P+%F$iTRpJ^D5=@XBXFu1U2Cv=>FO)ZJ7`M^8~-{@{qVdBZD+RLg0*m zfZ@%ll-^^K^NAJ>X{N*>aF#4|-8qG9%`_5MVxT{R3P&CxvN$*WZyYKb1am=PN~+?5 zF6ft3`rJ3XI5jeXeDl7RlQ-%h^Q%6%^jjJP2~^M>7$GYlZsbWpj~o)YJ6Ar;X{xso zRaVs;SyjiHWU&+pQY-4CiAZ}2E}8>6+mf!eg^%yIzDkq)&i2g9em@kvgGu7#!9i*b zy=N8o-t~Xzk4eZ32WB@F!o9}v#Z!u|u%Y_0d2nz{k zwQR!jNoLQ=XBmBGMKsGtdVB)Xubt)dKd6AF)?_eQK7!Uzitt`B$cn62eN6lfOurC> z7ExKS?8oyu2hl5ZRg3)>w<^31zRKzhl@PBP1%0cnWK~$3@LeM7QS($?#ZxUW8 z--FS(ROu`b47&xyhI?jOnPo^#MDB$NB$FGgitM%$KrO5>lhO;HOv1R@#vaNMT}z{| znC*;+rVxw8y(7}XavYWk9EfZ;j=qlT8@Qk5%o{P^D=p=A5}fiZR9`8f zTW_nhSkTkbGf>h}wTq{u=K{lN?m5l*7G*f8R&J6HK`Z&teLKbP){Y?CwbTCRkKrDK z3ZpRN>Jm@zD^K_rO7XVz z6#lvcSV&ZBgaUE|4-a{Zn@>FLzM$&OPNjNG2bu)a{^lRHd zKxIIRaC9r;_Kuc!P7=qGNKwz>#N@mu$!>1ZROJ#PFmz-MKC$B;_nJCk`4~0=L$fB5 zm82buh!U%@9F*iXc>#5Yz1Z4{FpmHi8)CX^mnVgqTQcdS)xPt6r3h0*7`;K@}j3gNZ z>*v56*)3q&w*|urbPUh!XQPT>>l=^cAj8dgGGt1r+N?B1nRIZS)eVV~-Mi~=~~fu-vWVyXF1b|i^pG^0>nij|o=q}-qdR4zOb-+pA8)+4e_ zNKzu{v%yh5Mp+GX_(Nh2m#|tj{`4#?y;^>fR$9(A1uCn4N79Sas~)0$LRBLjD>g#Z zo-$ZDa3+#{(2eA0<+Huu-F;gy1ctyf#tpJvHhOv~?Z`nY9fF@Xn;mCLJSbp_LSkyV zk3nn}jUzoQw_I(Su>w0#?$klTG>+zHP(M(N&`@{ZDw8a_1YZirmLOp%iT+=rD~?q3pO=t(qkpb`7g^)Y7p|f14Zw3C0o(Bnm@bzySq92 zv{B*E-N5B)9R-6*)c2qEWK=;t_%2u2i>q~414x)$k@(;jBMYwdHM-jWhW=v)$9xz@ z^1gceiP!5YBuy9vQMVkppI~*wb65f1jzeY~B!ZgiM<;d`-(h^g23#L0zY0>?u8yqG z)=W7De!TlU^UA+$LbIDY-4)#=Vu$jJOj0>foNA|~syp$+EN93g7hk`ZxRD&kBc{!e zxIdH**LQM0;*3atmx+Jn|E= z3W|l2U^a$T*%7?DSdnAl!4IOuB(KaxDxLaoY73P?RQOrH?wQGf5MULgXVvt-iZ?tm1AwzPlq1&hfKkJe=A_ggnqBvP? zQV_>p5PMEvlqJeYsg^dANPl<%Vfl8F1^9M|bAsY(yU=wlfAmPp+IgR>e=T3A-fQMn zWkAKOx89S!EM+_EtA99KANoQ5phfTj@CE4hHYn1D0fFl4BH>+06vNUDeKs>7lt8l2 zA!8>6n}NKeQ?ne!Y4LTRhD9jnd~_M1dXxlbqwtjDz}oc|qzpl#%a1CwoH4n> z6FECgozg(~O9ts(pTcCMg^&J(QmUjZ&|+sQLjRkalxK1XRIeXERqbxYUeQ_y z-9usPaq@pvOW2(#Iwpsj(zwLZ*sYS#KhfQdN8sH5q|3o{3PiFk^fax73G} z`ufriPAqWq{N_!#VG*O`x1gd>@i1MJ(=0+lkvI5^QJ+BjRT}74Rt%XnW&1>#)mEy zu;i;{OpcqVZRzD7{yqBRH?1MCU)gC$`nK!hbfFf#*1BLHv*25}<8KXY_y ziPlnTlHr&5MJraYjWuxyIK}HbvTeZ$rae=E*e$s2W;eB+ZS5u}tpsquGRrLoYOpP~ z9NaYtwxN8yZBT=_^2jOM{s78UPQL@)CP^-=mTi(iC;$Lv1gvNb0Pg|!z4yMod%L^6 zZgy`PvhKXnwAbG4ZbfT#g;-m{Sdl0hkVI*KpcpYamJyZ=Dx?iTN+=3I5e11K5r518 zF(6>`GYTTw0xUAopY-yWN@Ez&1;@bH_YBEpnY;{{1++Z;h{j^f3;0D2DuYQSEv;Ui zBbu*YB=TX5lxR(G1L;qzL#iHWtUdLB8WiMYOP)ajPs8=W~HO!v#5-% z2MkK`i0aZ`CJ!^wpiZ^b`i}WPN~XFmYD*uDh3G_F&#Vi-!w@zIe#+bjpI=$ z!DYl2#FRlS1v9=U^NL_1B^5>FAI0cNnt~17M?4qy2f{)UZqmsro2` zF<=y=i;aormP%Dzx;_xccxoCl7AQw>aaa1mF07~ob@6HUf<0Mw z9pwjkh{qvK9tIU`t}l=a+?tPaZxkLNtqBf(thq8(CTS`vfB~LT8I%@{1g%7!1|mQw zbwNTZ$kY#&BCl!b5Z-^ z$dRlCZMSTdr0NhB$vllr)Hg-GYRJ{a_Fc^$Rtdsm*!RbcpyTe40prJKl)(p{g(d_ig`y^X06UQgBs8QizQY95yWk)Ha1CB?l^3T1JmoLi$*t3DG zzc#4LO3lf5CJnm*Ki=F!LTe}D^&OsC9rW`*a36z<{aY6EPk*|nACl6nk5L#xS}dp) zhm+I(8`*I-liFOZrLTe`?M8X>!i89f$_ZjiM)=jxrP|ml&n|00N)9#4C{m_I3gWei zDQ0;*nUu{Pf1)r6t;R(1tj z?HzER)48}@4r9e7a=RI`QKy&q@iYC_*NQ$zoEUTH6BzR0@b!Adg4vrB?`->}Z9FA( z=vk>cqq`)!eus0b-k}cf0^%Jo!<@jB9E;nixQWd&#= zXn%d(8g;YU2d+)bUtL|ByVRFV!pP&p1cYmIOp0JVIle|b zowIMs8KjS=lL}0)g&8CAgzB=iKr^oIv?@CNDBUvurgYK?CN9gfc9`wDfFJ^nND@0P z3q;^w>CLiN)j^DJGA@*AGz7O1PBC&MoZ5-~5eg_?fhr%_uoasldu1#k%4W*xa^FEF z8e_~&I>x$1QiL)ouxyCMvUS2M4=r%P!_3H&1yl8(yGd2@c?RkbjNlES8%3IilPi?v zt$lcrNmXfYfbqa&9-J|q?>{n!T0 zdPXp;hJI-C?JsmGTCR6s@m`e~IhDWQVLYkZ?DPWmXxJBh3a#=Aomuv~u>CkH;71ko zmeAfG^u|t`f8Lg#_=`^-kUOsU;*Ewf(uiBR4)1e~r7P2oTQ^!8gR~p{KO3H}|LNwT z*1b#lh3IH1ty;Z9)<2N!I-=?c+t6d8;z+jhv@i0IG)^m{vDK&!)-D^dwL~c_6Yx4s6x$o9k z&2Bzu%uP@YRm>+cwhXMz+-ib&fFZK;Gmn;@1o{rimmEgXf@e`z@&cCQfhqc3US6X8 z-~cuADXwP6+mZr`+?m>Srz!3Ui%YA)g??y9OWI_oMU|vrbNsYNTXju~xOZja=im*a z%2JasvmyDi7&}Aw((pvZwXR)|ws-)OE(`n)MUk)nMsOHVhxPs5qg`ac;gFZ!A6pBU z`dm87DNjT#OMw5vd91eL5~turigg-#DGG;3m-r2VxJQut##+g`KcsP?fzb?-+qh-D zOg}*pX28XS@z3Bshrn=j?Iqd471c<5p}lypVC}Sk`0G^(3c=Abq3q=o77!ms*9?c+AMfAcS@Kg))=`&1 zwK?{~Ax;7O7qh0b%5LIt8tm;_Yu+jSklq}bkacx?3 zX!_zIi