2025-11-28 00:35:46 +09:00

121 lines
3.6 KiB
C++

//-----------------------------------------------------------------------------
// Microsoft OLE DB RowsetViewer
// Copyright (C) 1994 - 1999 By Microsoft Corporation.
//
// @doc
//
// @module CTRACE.H
//
//-----------------------------------------------------------------------------------
#ifndef _CTRACE_H_
#define _CTRACE_H_
/////////////////////////////////////////////////////////////////////
// Includes
//
/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// Defines
//
/////////////////////////////////////////////////////////////////////
#define TRACE_ADDREF CIntTrace::TraceAddRef
#define TRACE_QI CIntTrace::TraceQI
#define TRACE_METHOD CIntTrace::TraceMethod
#define TRACE_NOTIFICATION CIntTrace::TraceNotification
#define TRACE_RELEASE_(pv, name, ulExpectedRef) CIntTrace::TraceRelease((IUnknown**)&pv, name, ulExpectedRef);
#define TRACE_RELEASE(pv, name) TRACE_RELEASE_(pv, name, 1)
/////////////////////////////////////////////////////////////////////
// CIntTrace
//
/////////////////////////////////////////////////////////////////////
class CIntTrace : public CRichEditLite
{
public:
//constructors
CIntTrace(CMainWindow* pCMainWindow);
virtual ~CIntTrace();
//messages
virtual BOOL OnRButtonDown(WPARAM fwKeys, REFPOINTS pts);
virtual BOOL OnContextMenu(HWND hWnd, REFPOINTS pts);
virtual BOOL OnCommand(UINT iID, HWND hWndCtrl);
virtual BOOL OnUpdateCommand(HMENU hMenu, UINT nID, DWORD* pdwFlags);
virtual BOOL OnUpdateOutputSelected();
//ListBox (Notifcations)
virtual HRESULT Clear();
virtual void OutputTextFmt(DWORD dwMask, COLORREF dwColor, WCHAR* pwszFmt, ...);
virtual void OutputText(DWORD dwMask, COLORREF dwColor, WCHAR* pwszText);
virtual void OutputLineEnd();
virtual void OutputIndent(ULONG cIndentLevel);
//Static functions, so everyone has access to tracing support...
static CIntTrace* GetTrace();
static ULONG TraceAddRef(IUnknown* pIUnknown, WCHAR* pwszText);
static ULONG TraceRelease(IUnknown** ppIUnknown, WCHAR* pwszText, ULONG ulExpectedRefCount = 1);
static HRESULT TraceQI(IUnknown* pIUnknown, REFIID riid, IUnknown** ppIUnknown, WCHAR* pwszFmt = L"IUnknown");
static HRESULT TraceMethod(HRESULT hrActual, WCHAR* pwszFmt, ...);
static HRESULT TraceNotification(DWORD dwNotifyType, HRESULT hrVeto, WCHAR* pwszInterface, WCHAR* pwszMethod, WCHAR* pwszParams, ...);
//Interface
virtual COptionsSheet* GetOptions();
//Data
CMainWindow* m_pCMainWindow;
ULONG m_ulNestingLevel;
};
/////////////////////////////////////////////////////////////////////
// CMDITrace
//
/////////////////////////////////////////////////////////////////////
class CMDITrace : public CMDIChildLite
{
public:
//constructors
CMDITrace(CMainWindow* pCMainWindow);
virtual ~CMDITrace();
virtual BOOL PreCreateWindow(CREATESTRUCTW& cs);
virtual BOOL OnCreate(LPCREATESTRUCT lpCreateStruct);
virtual BOOL AutoPosition(BOOL fDefaultPosition = TRUE);
virtual BOOL OnDestroy();
virtual BOOL OnClose();
virtual BOOL OnInitialUpdate();
virtual BOOL OnMDIActivate(BOOL bActivate, HWND hWndActivate, HWND hWndDeactivate);
//members
virtual BOOL UpdateControls();
//Messages
virtual BOOL OnSize(WPARAM nType,REFPOINTS pts);
virtual BOOL OnSetFocus(HWND hWndPrevFocus);
//Overloads
virtual BOOL OnCommand(UINT iID, HWND hWndCtrl);
virtual BOOL OnNotify(INT idCtrl, NMHDR* pNMHDR);
virtual BOOL OnUpdateCommand(HMENU hMenu, UINT nID, DWORD* pdwFlags);
//Data
CMainWindow* m_pCMainWindow;
CIntTrace* m_pCTrace;
};
#endif //_CTRACE_H_