From de6019fb157459e7e7610e3ff813ad8c4a3225cf Mon Sep 17 00:00:00 2001
From: Vadim Zeitlin <vadim@wxwidgets.org>
Date: Fri, 12 Nov 1999 15:15:14 +0000
Subject: [PATCH] OutputDebugStringW95 removed - it's really unnecessary - and
 the references to DBWIN32 in the docs replaced with DbgView

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4520 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 docs/latex/wx/body.tex     |   3 +-
 docs/latex/wx/function.tex |   6 +-
 docs/latex/wx/tlog.tex     |   3 +
 include/wx/msw/private.h   |  16 -----
 include/wx/msw/setup0.h    |   9 ---
 src/msw/utils.cpp          | 134 -------------------------------------
 6 files changed, 7 insertions(+), 164 deletions(-)

diff --git a/docs/latex/wx/body.tex b/docs/latex/wx/body.tex
index 3c6903767d..b4a7c6fe2c 100644
--- a/docs/latex/wx/body.tex
+++ b/docs/latex/wx/body.tex
@@ -727,7 +727,8 @@ See the \helpref{debugging overview}{debuggingoverview} for further information.
 
 \subsection{Check Windows debug messages}
 
-Under Windows, it's worth running your program with DBWIN running or
+Under Windows, it's worth running your program with DbgView (available from
+{\tt http://www.sysinternals.com} running or
 some other program that shows Windows-generated debug messages. It's
 possible it'll show invalid handles being used. You may have fun seeing
 what commercial programs cause these normally hidden errors! Microsoft
diff --git a/docs/latex/wx/function.tex b/docs/latex/wx/function.tex
index c091da2b8e..68dcaad9c2 100644
--- a/docs/latex/wx/function.tex
+++ b/docs/latex/wx/function.tex
@@ -1022,6 +1022,8 @@ See also \helpref{wxDDEServer}{wxddeserver}, \helpref{wxDDEClient}{wxddeclient},
 
 \func{void}{wxDebugMsg}{\param{const wxString\& }{fmt}, \param{...}{}}
 
+{\bf This function is deprecated, use \helpref{wxLogDebug}{wxlogoverview} instead!}
+
 Display a debugging message; under Windows, this will appear on the
 debugger command window, and under Unix, it will be written to standard
 error.
@@ -1029,10 +1031,6 @@ error.
 The syntax is identical to {\bf printf}: pass a format string and a
 variable list of arguments.
 
-Note that under Windows, you can see the debugging messages without a
-debugger if you have the DBWIN debug log application that comes with
-Microsoft C++.
-
 {\bf Tip:} under Windows, if your application crashes before the
 message appears in the debugging window, put a wxYield call after
 each wxDebugMsg call. wxDebugMsg seems to be broken under WIN32s
diff --git a/docs/latex/wx/tlog.tex b/docs/latex/wx/tlog.tex
index 8c031a488f..76ad6ce626 100644
--- a/docs/latex/wx/tlog.tex
+++ b/docs/latex/wx/tlog.tex
@@ -44,6 +44,9 @@ first argument.
 \item{\bf wxLogDebug} is {\bf the} right function for debug output. It only
 does anything at all in the debug mode (when the preprocessor symbol
 \_\_WXDEBUG\_\_ is defined) and expands to nothing in release mode (otherwise).
+{\bf Tip:} under Windows, you must either run the program under debugger or
+use a 3rd party program such as DbgView (from 
+{\tt http://www.sysinternals.com}) to actually see the debug output.
 \item{\bf wxLogTrace} as {\bf wxLogDebug} only does something in debug
 build. The reason for making it a separate function from it is that usually
 there are a lot of trace messages, so it might make sense to separate them
diff --git a/include/wx/msw/private.h b/include/wx/msw/private.h
index 2a864639df..4c7c5628d9 100644
--- a/include/wx/msw/private.h
+++ b/include/wx/msw/private.h
@@ -196,22 +196,6 @@ extern LONG APIENTRY _EXPORT
     #define ENDSESSION_LOGOFF    0x80000000
 #endif
 
-// ---------------------------------------------------------------------------
-// debug messages
-// ---------------------------------------------------------------------------
-#if defined(__WIN95__) && defined(__WXDEBUG__) && wxUSE_DBWIN32
-
-    #ifndef __TWIN32__
-        #ifdef OutputDebugString
-            #undef OutputDebugString
-        #endif
-
-        #define OutputDebugString OutputDebugStringW95
-    #endif // __TWIN32__
-
-    extern void OutputDebugStringW95(const wxChar*, ...);
-#endif // USE_DBWIN32
-
 // ---------------------------------------------------------------------------
 // useful macros and functions
 // ---------------------------------------------------------------------------
diff --git a/include/wx/msw/setup0.h b/include/wx/msw/setup0.h
index d76043d872..5b41f8eb8c 100644
--- a/include/wx/msw/setup0.h
+++ b/include/wx/msw/setup0.h
@@ -332,9 +332,6 @@
 
 #define wxUSE_NATIVE_STATUSBAR        1
                                 // Set to 0 to use cross-platform wxStatusBar
-#define wxUSE_DBWIN32                 1
-                                // Use Andrew Tucker's OutputDebugString implementation
-                                // (required on Win95 only). See utils.cpp.
 
 /*
  * Any platform
@@ -382,9 +379,6 @@
 #undef wxUSE_THREADS
 #define wxUSE_THREADS 0
 
-#undef wxUSE_DBWIN32
-#define wxUSE_DBWIN32 0
-
 #undef wxUSE_OWNER_DRAWN
 #define wxUSE_OWNER_DRAWN 0
 #endif
@@ -394,9 +388,6 @@
 #undef wxUSE_THREADS
 #define wxUSE_THREADS 0
 
-#undef wxUSE_DBWIN32
-#define wxUSE_DBWIN32 0
-
 #undef wxUSE_ODBC
 #define wxUSE_ODBC 0
 
diff --git a/src/msw/utils.cpp b/src/msw/utils.cpp
index 3555808464..8b36c7a3de 100644
--- a/src/msw/utils.cpp
+++ b/src/msw/utils.cpp
@@ -1064,140 +1064,6 @@ bool wxMatchWild( const wxString& pat, const wxString& text, bool dot_special )
 
 #endif
 
-#if defined(__WIN95__) && defined(__WXDEBUG__) && wxUSE_DBWIN32
-
-/*
-When I started programming with Visual C++ v4.0, I missed one of my favorite
-tools -- DBWIN.  Finding the code for a simple debug trace utility, DBMON,
-on MSDN was a step in the right direction, but it is a console application
-and thus has limited features and extensibility.  DBWIN32 is my creation
-to solve this problem.
-
-The code is essentially a merging of a stripped down version of the DBWIN code
-from VC 1.5 and DBMON.C with a few 32 bit changes.
-
-As of version 1.2B, DBWIN32 supports both Win95 and NT.  The NT support is
-built into the operating system and works just by running DBWIN32.  The Win95
-team decided not to support this hook, so I have provided code that will do
-this for you.  See the file WIN95.TXT for instructions on installing this.
-
-If you have questions, problems or suggestions about DBWIN32, I welcome your
-feedback and plan to actively maintain the code.
-
-Andrew Tucker
-ast@halcyon.com
-
-To download dbwin32, see e.g.:
-
-http://ftp.digital.com/pub/micro/NT/WinSite/programr/dbwin32.zip
-*/
-
-#if !defined(__MWERKS__) && !defined(__SALFORDC__) && !defined(__TWIN32__)
-#include <process.h>
-#endif
-
-void OutputDebugStringW95(const wxChar* lpOutputString, ...)
-{
-    HANDLE heventDBWIN;  /* DBWIN32 synchronization object */
-    HANDLE heventData;   /* data passing synch object */
-    HANDLE hSharedFile;  /* memory mapped file shared data */
-    LPSTR lpszSharedMem;
-    wxChar achBuffer[500];
-
-    /* create the output buffer */
-    va_list args;
-    va_start(args, lpOutputString);
-    wxVsprintf(achBuffer, lpOutputString, args);
-    va_end(args);
-
-    /*
-        Do a regular OutputDebugString so that the output is
-        still seen in the debugger window if it exists.
-
-        This ifdef is necessary to avoid infinite recursion
-        from the inclusion of W95TRACE.H
-    */
-#ifdef _UNICODE
-    ::OutputDebugStringW(achBuffer);
-#else
-#ifdef __TWIN32__
-    ::OutputDebugString(achBuffer);
-#else
-    ::OutputDebugStringA(achBuffer);
-#endif
-#endif
-
-    /* bail if it's not Win95 */
-    {
-        OSVERSIONINFO VerInfo;
-        VerInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
-        GetVersionEx(&VerInfo);
-        if ( VerInfo.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS )
-            return;
-    }
-
-    /* make sure DBWIN is open and waiting */
-    heventDBWIN = OpenEvent(EVENT_MODIFY_STATE, FALSE, wxT("DBWIN_BUFFER_READY"));
-    if ( !heventDBWIN )
-    {
-        //MessageBox(NULL, wxT("DBWIN_BUFFER_READY nonexistent"), NULL, MB_OK);
-        return;
-    }
-
-    /* get a handle to the data synch object */
-    heventData = OpenEvent(EVENT_MODIFY_STATE, FALSE, wxT("DBWIN_DATA_READY"));
-    if ( !heventData )
-    {
-        // MessageBox(NULL, wxT("DBWIN_DATA_READY nonexistent"), NULL, MB_OK);
-        CloseHandle(heventDBWIN);
-        return;
-    }
-
-    hSharedFile = CreateFileMapping((HANDLE)-1, NULL, PAGE_READWRITE, 0, 4096, wxT("DBWIN_BUFFER"));
-    if (!hSharedFile)
-    {
-        //MessageBox(NULL, wxT("DebugTrace: Unable to create file mapping object DBWIN_BUFFER"), wxT("Error"), MB_OK);
-        CloseHandle(heventDBWIN);
-        CloseHandle(heventData);
-        return;
-    }
-
-    lpszSharedMem = (LPSTR)MapViewOfFile(hSharedFile, FILE_MAP_WRITE, 0, 0, 512);
-    if (!lpszSharedMem)
-    {
-        //MessageBox(NULL, wxT("DebugTrace: Unable to map shared memory"), wxT("Error"), MB_OK);
-        CloseHandle(heventDBWIN);
-        CloseHandle(heventData);
-        return;
-    }
-
-    /* wait for buffer event */
-    WaitForSingleObject(heventDBWIN, INFINITE);
-
-    /* write it to the shared memory */
-#if defined( __BORLANDC__ ) || defined( __MWERKS__ ) || defined(__SALFORDC__)
-    *((LPDWORD)lpszSharedMem) = getpid();
-#else
-    *((LPDWORD)lpszSharedMem) = _getpid();
-#endif
-
-    wsprintf((LPTSTR)(lpszSharedMem + sizeof(DWORD)), wxT("%s"), achBuffer);
-
-    /* signal data ready event */
-    SetEvent(heventData);
-
-    /* clean up handles */
-    CloseHandle(hSharedFile);
-    CloseHandle(heventData);
-    CloseHandle(heventDBWIN);
-
-    return;
-}
-
-
-#endif
-
-
 #if 0
 
 // maximum mumber of lines the output console should have
-- 
2.50.0

