summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcrodrigu <crodrigu@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-08-02 22:19:31 +0000
committercrodrigu <crodrigu@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-08-02 22:19:31 +0000
commit77424fc12e82e5f0b0677f43db96baea1a9912b9 (patch)
treec72b0d5f7e0f77169dcfec3acb9bedf38f7fea1a
parentbe70d3db5f8fafe068c0f7c3aa4e60257d0ce01f (diff)
downloadATCD-77424fc12e82e5f0b0677f43db96baea1a9912b9.tar.gz
ChangeLogTag: Fri Aug 2 22:00:26 UTC 2002 Craig Rodrigues <crodrigu@bbn.com>
-rw-r--r--ChangeLog7
-rw-r--r--ChangeLogs/ChangeLog-03a7
-rw-r--r--examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.cpp90
-rw-r--r--examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.dsp124
-rw-r--r--examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.dsw29
-rw-r--r--examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.h57
-rw-r--r--examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.rc207
-rw-r--r--examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFCDlg.cpp183
-rw-r--r--examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFCDlg.h53
-rw-r--r--examples/Log_Msg/Log_Msg_MFC/MFC_Log.cpp34
-rw-r--r--examples/Log_Msg/Log_Msg_MFC/MFC_Log.h45
-rw-r--r--examples/Log_Msg/Log_Msg_MFC/README40
-rw-r--r--examples/Log_Msg/Log_Msg_MFC/Resource.h21
-rw-r--r--examples/Log_Msg/Log_Msg_MFC/StdAfx.cpp9
-rw-r--r--examples/Log_Msg/Log_Msg_MFC/StdAfx.h26
-rw-r--r--examples/Log_Msg/Log_Msg_MFC/res/Log_Msg_MFC.icobin0 -> 1078 bytes
-rw-r--r--examples/Log_Msg/Log_Msg_MFC/res/Log_Msg_MFC.rc213
17 files changed, 945 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 21fb3c36a83..6880c5cbb6c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Fri Aug 2 22:00:26 UTC 2002 Craig Rodrigues <crodrigu@bbn.com>
+
+ * examples/Log_Msg/Log_Msg_MFC/*: Added example to show how
+ to send ACE_DEBUG output to the Microsoft Visual Studio debugger console.
+ Thanks to Don Hinton <dhinton@ieee.org> and
+ Chris Hafey <chafey@stentor.com> for help with this.
+
Fri Aug 2 13:10:05 2002 Krishnakumar B <kitty@cs.wustl.edu>
* ACEXML/examples/SAXPrint/main.cpp (ACE_TMAIN):
diff --git a/ChangeLogs/ChangeLog-03a b/ChangeLogs/ChangeLog-03a
index 21fb3c36a83..6880c5cbb6c 100644
--- a/ChangeLogs/ChangeLog-03a
+++ b/ChangeLogs/ChangeLog-03a
@@ -1,3 +1,10 @@
+Fri Aug 2 22:00:26 UTC 2002 Craig Rodrigues <crodrigu@bbn.com>
+
+ * examples/Log_Msg/Log_Msg_MFC/*: Added example to show how
+ to send ACE_DEBUG output to the Microsoft Visual Studio debugger console.
+ Thanks to Don Hinton <dhinton@ieee.org> and
+ Chris Hafey <chafey@stentor.com> for help with this.
+
Fri Aug 2 13:10:05 2002 Krishnakumar B <kitty@cs.wustl.edu>
* ACEXML/examples/SAXPrint/main.cpp (ACE_TMAIN):
diff --git a/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.cpp b/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.cpp
new file mode 100644
index 00000000000..f25141b48a7
--- /dev/null
+++ b/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.cpp
@@ -0,0 +1,90 @@
+// Log_Msg_MFC.cpp : Defines the class behaviors for the application.
+// $Id$
+
+#include "stdafx.h"
+#include "Log_Msg_MFC.h"
+#include "Log_Msg_MFCDlg.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#undef THIS_FILE
+static char THIS_FILE[] = __FILE__;
+#endif
+
+#include <ace/ACE.h>
+
+/////////////////////////////////////////////////////////////////////////////
+// CLog_Msg_MFCApp
+
+BEGIN_MESSAGE_MAP(CLog_Msg_MFCApp, CWinApp)
+ //{{AFX_MSG_MAP(CLog_Msg_MFCApp)
+ // 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()
+
+/////////////////////////////////////////////////////////////////////////////
+// CLog_Msg_MFCApp construction
+
+CLog_Msg_MFCApp::CLog_Msg_MFCApp()
+{
+ // TODO: add construction code here,
+ // Place all significant initialization in InitInstance
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// The one and only CLog_Msg_MFCApp object
+
+CLog_Msg_MFCApp theApp;
+
+/////////////////////////////////////////////////////////////////////////////
+// CLog_Msg_MFCApp initialization
+
+BOOL CLog_Msg_MFCApp::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
+
+ // Need to call ACE::init() before calling any functions in ACE.
+ // If we were writing a console based application, the ACE macros which
+ // re-define main() would automatically call this. However, since
+ // we are running inside an MFC application, we need to explicitly call this.
+ ACE::init();
+
+ // Call to set the ACE Log_Msg class here.
+ // From now on, whenever we use ACE_DEBUG macros, the output
+ // will be sent to the log() method of our MFC_Log class.
+ ACE_Log_Msg::instance()->msg_callback( &m_mfc_logger );
+ ACE_Log_Msg::instance()->set_flags( ACE_Log_Msg::MSG_CALLBACK );
+
+ CLog_Msg_MFCDlg 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 we called ACE::init(), we need to call ACE:fini(), otherwise
+ // the debugger will complain about memory leaks.
+ ACE::fini();
+
+ // 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/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.dsp b/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.dsp
new file mode 100644
index 00000000000..0f06851d23c
--- /dev/null
+++ b/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.dsp
@@ -0,0 +1,124 @@
+# Microsoft Developer Studio Project File - Name="Log_Msg_MFC" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Application" 0x0101
+
+CFG=Log_Msg_MFC - 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 "Log_Msg_MFC.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 "Log_Msg_MFC.mak" CFG="Log_Msg_MFC - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "Log_Msg_MFC - Win32 Debug" (based on "Win32 (x86) Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+# 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 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 /W3 /Gm /GX /Zi /Od /I "..\..\.." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /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 /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 acemfcd.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace"
+
+
+# Begin Target
+
+# Name "Log_Msg_MFC - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\Log_Msg_MFC.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Log_Msg_MFC.rc
+# End Source File
+# Begin Source File
+
+SOURCE=.\Log_Msg_MFCDlg.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\MFC_Log.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=.\Log_Msg_MFC.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Log_Msg_MFCDlg.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\MFC_Log.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\Log_Msg_MFC.ico
+# End Source File
+# Begin Source File
+
+SOURCE=.\res\Log_Msg_MFC.rc2
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=.\ReadMe.txt
+# End Source File
+# End Target
+# End Project
diff --git a/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.dsw b/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.dsw
new file mode 100644
index 00000000000..d7193327e8a
--- /dev/null
+++ b/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.dsw
@@ -0,0 +1,29 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "Log_Msg_MFC"=.\Log_Msg_MFC.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.h b/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.h
new file mode 100644
index 00000000000..b93d09bde02
--- /dev/null
+++ b/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.h
@@ -0,0 +1,57 @@
+// Log_Msg_MFC.h : main header file for the LOG_MSG_MFC application
+// $Id$
+
+#if !defined(AFX_LOG_MSG_MFC_H__03FA2C60_71EA_44F9_AC4C_2F19168B4755__INCLUDED_)
+#define AFX_LOG_MSG_MFC_H__03FA2C60_71EA_44F9_AC4C_2F19168B4755__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
+
+// Add some includes here for our Logger
+#include <ace/Log_Msg.h>
+#include "MFC_Log.h"
+
+/////////////////////////////////////////////////////////////////////////////
+// CLog_Msg_MFCApp:
+// See Log_Msg_MFC.cpp for the implementation of this class
+//
+
+class CLog_Msg_MFCApp : public CWinApp
+{
+public:
+ CLog_Msg_MFCApp();
+
+// Overrides
+ // ClassWizard generated virtual function overrides
+ //{{AFX_VIRTUAL(CLog_Msg_MFCApp)
+ public:
+ virtual BOOL InitInstance();
+ //}}AFX_VIRTUAL
+
+// Implementation
+
+ //{{AFX_MSG(CLog_Msg_MFCApp)
+ // 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()
+
+ // MFC Log class for ACE_Log_Msg. To be used by ACE_DEBUG
+ MFC_Log m_mfc_logger;
+
+};
+
+
+/////////////////////////////////////////////////////////////////////////////
+
+//{{AFX_INSERT_LOCATION}}
+// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
+
+#endif // !defined(AFX_LOG_MSG_MFC_H__03FA2C60_71EA_44F9_AC4C_2F19168B4755__INCLUDED_)
diff --git a/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.rc b/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.rc
new file mode 100644
index 00000000000..5f2f04dce74
--- /dev/null
+++ b/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.rc
@@ -0,0 +1,207 @@
+//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\\Log_Msg_MFC.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\\Log_Msg_MFC.ico"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 235, 55
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "About Log_Msg_MFC"
+FONT 8, "MS Sans Serif"
+BEGIN
+ ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20
+ LTEXT "Log_Msg_MFC Version 1.0",IDC_STATIC,40,10,119,8,
+ SS_NOPREFIX
+ LTEXT "Copyright (C) 2002",IDC_STATIC,40,25,119,8
+ DEFPUSHBUTTON "OK",IDOK,178,7,50,14,WS_GROUP
+END
+
+IDD_LOG_MSG_MFC_DIALOG DIALOGEX 0, 0, 320, 200
+STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_APPWINDOW
+CAPTION "Log_Msg_MFC"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "OK",IDOK,241,170,50,14
+ PUSHBUTTON "DebugMe",IDC_BUTTON1,92,96,50,14
+ LTEXT "Run this program inside the Visual Studio debugger. Press the DebugMe button and see the ACE_DEBUG messages appear in the Visual Studio debug console.",
+ IDC_STATIC,83,28,116,56
+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", "Log_Msg_MFC MFC Application\0"
+ VALUE "FileVersion", "1, 0, 0, 1\0"
+ VALUE "InternalName", "Log_Msg_MFC\0"
+ VALUE "LegalCopyright", "Copyright (C) 2002\0"
+ VALUE "LegalTrademarks", "\0"
+ VALUE "OriginalFilename", "Log_Msg_MFC.EXE\0"
+ VALUE "ProductName", "Log_Msg_MFC 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_LOG_MSG_MFC_DIALOG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 313
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 193
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_ABOUTBOX "&About Log_Msg_MFC..."
+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\Log_Msg_MFC.rc2" // non-Microsoft Visual C++ edited resources
+#include "afxres.rc" // Standard components
+#endif
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFCDlg.cpp b/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFCDlg.cpp
new file mode 100644
index 00000000000..7d0b23d77ed
--- /dev/null
+++ b/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFCDlg.cpp
@@ -0,0 +1,183 @@
+// Log_Msg_MFCDlg.cpp : implementation file
+// $Id$
+
+#include "stdafx.h"
+#include "Log_Msg_MFC.h"
+#include "Log_Msg_MFCDlg.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#undef THIS_FILE
+static char THIS_FILE[] = __FILE__;
+#endif
+
+#include <ace/OS.h>
+#include <ace/ACE.h>
+
+/////////////////////////////////////////////////////////////////////////////
+// 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()
+
+/////////////////////////////////////////////////////////////////////////////
+// CLog_Msg_MFCDlg dialog
+
+CLog_Msg_MFCDlg::CLog_Msg_MFCDlg(CWnd* pParent /*=NULL*/)
+ : CDialog(CLog_Msg_MFCDlg::IDD, pParent)
+{
+ //{{AFX_DATA_INIT(CLog_Msg_MFCDlg)
+ // 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 CLog_Msg_MFCDlg::DoDataExchange(CDataExchange* pDX)
+{
+ CDialog::DoDataExchange(pDX);
+ //{{AFX_DATA_MAP(CLog_Msg_MFCDlg)
+ // NOTE: the ClassWizard will add DDX and DDV calls here
+ //}}AFX_DATA_MAP
+}
+
+BEGIN_MESSAGE_MAP(CLog_Msg_MFCDlg, CDialog)
+ //{{AFX_MSG_MAP(CLog_Msg_MFCDlg)
+ ON_WM_SYSCOMMAND()
+ ON_WM_PAINT()
+ ON_WM_QUERYDRAGICON()
+ ON_BN_CLICKED(IDC_BUTTON1, OnDebugButtonClicked)
+ ON_WM_CLOSE()
+ //}}AFX_MSG_MAP
+END_MESSAGE_MAP()
+
+/////////////////////////////////////////////////////////////////////////////
+// CLog_Msg_MFCDlg message handlers
+
+BOOL CLog_Msg_MFCDlg::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 CLog_Msg_MFCDlg::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 CLog_Msg_MFCDlg::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 CLog_Msg_MFCDlg::OnQueryDragIcon()
+{
+ return (HCURSOR) m_hIcon;
+}
+
+void CLog_Msg_MFCDlg::OnDebugButtonClicked()
+{
+ ACE_DEBUG(( LM_DEBUG, "Debug message sent!\n" ));
+
+}
+
diff --git a/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFCDlg.h b/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFCDlg.h
new file mode 100644
index 00000000000..adf21616732
--- /dev/null
+++ b/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFCDlg.h
@@ -0,0 +1,53 @@
+// Log_Msg_MFCDlg.h : header file
+// $Id$
+
+#if !defined(AFX_LOG_MSG_MFCDLG_H__5BB9CACE_CBCE_40DD_B57F_ED05B79DB033__INCLUDED_)
+#define AFX_LOG_MSG_MFCDLG_H__5BB9CACE_CBCE_40DD_B57F_ED05B79DB033__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+
+
+/////////////////////////////////////////////////////////////////////////////
+// CLog_Msg_MFCDlg dialog
+
+class CLog_Msg_MFCDlg : public CDialog
+{
+// Construction
+public:
+ CLog_Msg_MFCDlg(CWnd* pParent = NULL); // standard constructor
+
+// Dialog Data
+ //{{AFX_DATA(CLog_Msg_MFCDlg)
+ enum { IDD = IDD_LOG_MSG_MFC_DIALOG };
+ // NOTE: the ClassWizard will add data members here
+ //}}AFX_DATA
+
+ // ClassWizard generated virtual function overrides
+ //{{AFX_VIRTUAL(CLog_Msg_MFCDlg)
+ protected:
+ virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
+ //}}AFX_VIRTUAL
+
+// Implementation
+protected:
+ HICON m_hIcon;
+
+ // Generated message map functions
+ //{{AFX_MSG(CLog_Msg_MFCDlg)
+ virtual BOOL OnInitDialog();
+ afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
+ afx_msg void OnPaint();
+ afx_msg HCURSOR OnQueryDragIcon();
+ afx_msg void OnDebugButtonClicked();
+ //}}AFX_MSG
+ DECLARE_MESSAGE_MAP()
+
+};
+
+//{{AFX_INSERT_LOCATION}}
+// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
+
+#endif // !defined(AFX_LOG_MSG_MFCDLG_H__5BB9CACE_CBCE_40DD_B57F_ED05B79DB033__INCLUDED_)
diff --git a/examples/Log_Msg/Log_Msg_MFC/MFC_Log.cpp b/examples/Log_Msg/Log_Msg_MFC/MFC_Log.cpp
new file mode 100644
index 00000000000..37fe90091ce
--- /dev/null
+++ b/examples/Log_Msg/Log_Msg_MFC/MFC_Log.cpp
@@ -0,0 +1,34 @@
+// $Id$
+// MFC_Log.cpp: implementation of the MFC_Log class.
+//
+//////////////////////////////////////////////////////////////////////
+
+#include "stdafx.h"
+#include "MFC_Log.h"
+
+#include "ace/Log_Record.h"
+
+//////////////////////////////////////////////////////////////////////
+// Construction/Destruction
+//////////////////////////////////////////////////////////////////////
+
+MFC_Log::MFC_Log()
+{
+
+}
+
+void
+MFC_Log::log(ACE_Log_Record& log_record)
+{
+ unsigned long priority = log_record.type();
+ char Message[512];
+
+ ACE_OS::sprintf(Message,"%d.%03ld %s", log_record.time_stamp().sec(),
+ log_record.time_stamp().usec()/ 1000, log_record.msg_data());
+ ::OutputDebugString(Message);
+}
+
+MFC_Log::~MFC_Log()
+{
+
+}
diff --git a/examples/Log_Msg/Log_Msg_MFC/MFC_Log.h b/examples/Log_Msg/Log_Msg_MFC/MFC_Log.h
new file mode 100644
index 00000000000..1b887a402c3
--- /dev/null
+++ b/examples/Log_Msg/Log_Msg_MFC/MFC_Log.h
@@ -0,0 +1,45 @@
+/* -*- C++ -*- */
+
+//=============================================================================
+/**
+ * @file MFC_Log.h
+ *
+ * $Id$
+ *
+ * @author Craig Rodrigues <crodrigu@bbn.com>
+ * @author Chris Hafey <chafey@stentor.com>
+ * @author Don Hinton <dhinton@ieee.org>
+ */
+//=============================================================================
+
+#ifndef MFC_LOG_H
+#define MFC_LOG_H
+
+#include "ace/Log_Msg_Callback.h"
+
+class ACE_Log_Record;
+
+/**
+ * @class MFC_Log
+ *
+ * @brief A callback class for ACE_Log_Msg which sends output to Microsoft debugger
+ *
+ * Register this class as a MSG_CALLBACK with the ACE_Log_Msg singleton and
+ * send debug output to the Microsoft debugger console window with ACE_DEBUG macros.
+ */
+class MFC_Log : public virtual ACE_Log_Msg_Callback
+{
+public:
+ /// Constructor
+ MFC_Log();
+
+ /// method called by ACE_Log_Msg to log an event
+ void log(ACE_Log_Record& log_record);
+
+ /// destructor
+ virtual ~MFC_Log();
+
+};
+
+#endif /* MFC_LOG_H */
+
diff --git a/examples/Log_Msg/Log_Msg_MFC/README b/examples/Log_Msg/Log_Msg_MFC/README
new file mode 100644
index 00000000000..8c20059ba42
--- /dev/null
+++ b/examples/Log_Msg/Log_Msg_MFC/README
@@ -0,0 +1,40 @@
+ MFC Logging Example documentation
+ =================================
+ by Craig Rodrigues <crodrigu@bbn.com>
+ 2002/08/02
+
+The example in this directory is a Microsoft
+Foundation Class (MFC) example which illustrates how to
+write an ACE_Log_Msg_Callback which can
+send debug output to the Microsoft debugger console.
+
+This is very useful when debugging an MFC GUI-based application
+which uses ACE.
+
+NOTES
+=====
+ - Make sure that $ACE_ROOT/ace/acemfcd.lib is built before building this
+ example. Follow the instructions in $ACE_ROOT/ACE-INSTALL.html for building
+ ACE with Visual C++. Do a Batch Build of ACE, and make sure that you build
+ the target "ACE DLL - Win32 MFC Debug".
+ - We must call ACE::init() and ACE::fini() in the right places
+ otherwise we will get strange crashes and memory leaks
+ when invoking ACE_Log_Msg::instance().
+ A good place to invoke these methods is in the method which overrides
+ CWinApp::InitInstance().
+ In this example, we invoke these methods in CLog_Msg_MFCApp::InitInstance().
+
+ - We must set the ACE_Log_Msg singleton to use our callback with:
+ ACE_Log_Msg::instance()->msg_callback( &m_mfc_logger );
+ ACE_Log_Msg::instance()->set_flags( ACE_Log_Msg::MSG_CALLBACK );
+
+ This is also done in CLog_Msg_MFCApp::InitInstance().
+
+
+THANKS
+======
+Thanks to the following people who provided assistance on the ACE
+mailing list:
+Chris Hafey <chafey@stentor.com>
+Don Hinton <dhinton@ieee.org>
+
diff --git a/examples/Log_Msg/Log_Msg_MFC/Resource.h b/examples/Log_Msg/Log_Msg_MFC/Resource.h
new file mode 100644
index 00000000000..d1aa3df6ce1
--- /dev/null
+++ b/examples/Log_Msg/Log_Msg_MFC/Resource.h
@@ -0,0 +1,21 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Developer Studio generated include file.
+// Used by Log_Msg_MFC.rc
+// $Id$
+#define IDM_ABOUTBOX 0x0010
+#define IDD_ABOUTBOX 100
+#define IDS_ABOUTBOX 101
+#define IDD_LOG_MSG_MFC_DIALOG 102
+#define IDR_MAINFRAME 128
+#define IDC_BUTTON1 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 1001
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/examples/Log_Msg/Log_Msg_MFC/StdAfx.cpp b/examples/Log_Msg/Log_Msg_MFC/StdAfx.cpp
new file mode 100644
index 00000000000..7325df7a861
--- /dev/null
+++ b/examples/Log_Msg/Log_Msg_MFC/StdAfx.cpp
@@ -0,0 +1,9 @@
+// $Id$
+// stdafx.cpp : source file that includes just the standard includes
+// Log_Msg_MFC.pch will be the pre-compiled header
+// stdafx.obj will contain the pre-compiled type information
+
+#include "stdafx.h"
+
+
+
diff --git a/examples/Log_Msg/Log_Msg_MFC/StdAfx.h b/examples/Log_Msg/Log_Msg_MFC/StdAfx.h
new file mode 100644
index 00000000000..2e6d2140caf
--- /dev/null
+++ b/examples/Log_Msg/Log_Msg_MFC/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
+// $Id$
+
+#if !defined(AFX_STDAFX_H__41816CD6_CE58_4714_8C74_1C67651B50ED__INCLUDED_)
+#define AFX_STDAFX_H__41816CD6_CE58_4714_8C74_1C67651B50ED__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
+
+#include <afxwin.h> // MFC core and standard components
+#include <afxext.h> // MFC extensions
+#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
+#ifndef _AFX_NO_AFXCMN_SUPPORT
+#include <afxcmn.h> // 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__41816CD6_CE58_4714_8C74_1C67651B50ED__INCLUDED_)
diff --git a/examples/Log_Msg/Log_Msg_MFC/res/Log_Msg_MFC.ico b/examples/Log_Msg/Log_Msg_MFC/res/Log_Msg_MFC.ico
new file mode 100644
index 00000000000..7eef0bcbe65
--- /dev/null
+++ b/examples/Log_Msg/Log_Msg_MFC/res/Log_Msg_MFC.ico
Binary files differ
diff --git a/examples/Log_Msg/Log_Msg_MFC/res/Log_Msg_MFC.rc2 b/examples/Log_Msg/Log_Msg_MFC/res/Log_Msg_MFC.rc2
new file mode 100644
index 00000000000..f8d03632acf
--- /dev/null
+++ b/examples/Log_Msg/Log_Msg_MFC/res/Log_Msg_MFC.rc2
@@ -0,0 +1,13 @@
+//
+// LOG_MSG_MFC.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...
+
+/////////////////////////////////////////////////////////////////////////////