|
|
/*++
Copyright (c) 1998-2000 Microsoft Corporation
Module Name: tracer.h
Abstract: This module contains the global definitions of Tracer.
Author: Michael Tsang (MikeTs) 02-May-2000
Environment: User mode
Revision History:
--*/
#ifndef _TRACER_H
#define _TRACER_H
//
// Constants
//
#define ES_STD (WS_CHILD | WS_VSCROLL | WS_VISIBLE | \
ES_MULTILINE | ES_READONLY) #define MAX_LEVELS 255
// gdwfTracer flag values
#define TF_UNTITLED 0x00000001
#define TF_LINEWRAP 0x00000002
#define TF_TERMINATING 0x80000000
//
// Macors
//
#define InitializeListHead(lh) ((lh)->Flink = (lh)->Blink = (lh))
#define IsListEmpty(lh) ((lh)->Flink == (lh))
#define RemoveHeadList(lh) (lh)->Flink; \
{RemoveEntryList((lh)->Flink)} #define RemoveEntryList(e) { \
(e)->Blink->Flink = (e)->Flink; \ (e)->Flink->Blink = (e)->Blink; \ } #define InsertTailList(lh,e) { \
(e)->Flink = (lh); \ (e)->Blink = (lh)->Blink; \ (lh)->Blink->Flink = (e); \ (lh)->Blink = (e); \ }
//
// Type definitions
//
typedef struct _SRVREQ { LONG lRequest; PVOID Context; } SRVREQ, *PSRVREQ;
typedef struct _CLIENT_ENTRY { CLIENTINFO ClientInfo; SRVREQ SrvReq; HANDLE hSrvReqEvent; HPROPSHEETPAGE hPage; SETTINGS TempSettings; TRIGPT TempTrigPts[NUM_TRIGPTS]; LIST_ENTRY list; char szClientName[MAX_CLIENTNAME_LEN]; } CLIENT_ENTRY, *PCLIENT_ENTRY;
#define SRVREQ_NONE 0x00000000
#define SRVREQ_BUSY 0x00000001
#define SRVREQ_GETCLIENTINFO 0x00000002
#define SRVREQ_SETCLIENTINFO 0x00000003
#define SRVREQ_TERMINATE 0x00000004
//
// Global Data
//
extern HANDLE ghServerThread; extern HINSTANCE ghInstance; extern PSZ gpszWinTraceClass; extern HWND ghwndTracer; extern HWND ghwndEdit; extern HWND ghwndPropSheet; extern HFONT ghFont; extern HCURSOR ghStdCursor; extern HCURSOR ghWaitCursor; extern DWORD gdwfTracer; extern LIST_ENTRY glistClients; extern char gszApp[16]; extern char gszSearchText[128]; extern char gszFileName[MAX_PATH + 1]; extern char gszSaveFilterSpec[80]; extern int giPointSize; extern LOGFONT gLogFont; extern SETTINGS gDefGlobalSettings; extern const int gTrigPtCtrlMap[NUM_TRIGPTS]; extern const int gTrigPtTraceMap[NUM_TRIGPTS]; extern const int gTrigPtBreakMap[NUM_TRIGPTS]; extern const int gTrigPtTextMap[NUM_TRIGPTS]; extern const int gTrigPtTraceTextMap[NUM_TRIGPTS]; extern const int gTrigPtBreakTextMap[NUM_TRIGPTS];
//
// Function prototypes
//
// tracer.c
BOOL TracerInit( IN HINSTANCE hInstance, IN int nCmdShow );
BOOL RegisterTracerClass( IN HINSTANCE hInstance );
LRESULT CALLBACK TracerWndProc( IN HWND hwnd, IN UINT uiMsg, IN WPARAM wParam, IN LPARAM lParam );
LRESULT TracerCmdProc( IN HWND hwnd, IN WPARAM wParam, IN LPARAM lParam );
INT_PTR APIENTRY GlobalSettingsDlgProc( IN HWND hwnd, IN UINT uiMsg, IN WPARAM wParam, IN LPARAM lParam );
INT_PTR APIENTRY ClientSettingsDlgProc( IN HWND hwnd, IN UINT uiMsg, IN WPARAM wParam, IN LPARAM lParam );
VOID EnableTrigPts( IN HWND hDlg, IN BOOL fEnable );
BOOL SaveFile( IN HWND hwndParent, IN PSZ pszFileName, IN BOOL fSaveAs );
UINT CreatePropertyPages( OUT HPROPSHEETPAGE *hPages );
VOID SetTitle( IN PSZ pszTitle OPTIONAL );
int FindTrigPtIndex( IN int iID, IN const int *IDTable );
int ErrorMsg( IN ULONG ErrCode, ... );
// server.c
VOID __cdecl ServerThread( PVOID pv );
VOID SendServerRequest( IN PCLIENT_ENTRY ClientEntry, IN LONG lRequest, IN PVOID Context );
LPSTR CopyStr( OUT LPSTR pszDest, IN LPCSTR pszSrc );
#endif //ifndef _TRACER_H
|