108 lines
3.5 KiB
C
108 lines
3.5 KiB
C
//+-------------------------------------------------------------------------
|
||
//
|
||
// Microsoft Windows
|
||
// Copyright (C) Microsoft Corporation, 1992 - 1993.
|
||
//
|
||
// File: oleexts.h
|
||
//
|
||
// Contents: macros useful for OLE debugger extensions
|
||
//
|
||
// Classes: none
|
||
//
|
||
// Functions: macros for: dprintf
|
||
// GetExpression
|
||
// GetSymbol
|
||
// Disassm
|
||
// CheckControlC
|
||
// DECLARE_API(...)
|
||
//
|
||
// History: dd-mmm-yy Author Comment
|
||
// 02-Feb-95 t-ScottH author
|
||
//
|
||
//--------------------------------------------------------------------------
|
||
|
||
#ifndef _OLEEXTS_H_
|
||
#define _OLEEXTS_H_
|
||
|
||
//
|
||
// NTSD_EXTENSION_APIS defined in ntsdexts.h
|
||
//
|
||
// typedef struct _NTSD_EXTENSION_APIS {
|
||
// DWORD nSize;
|
||
// PNTSD_OUTPUT_ROUTINE lpOutputRoutine;
|
||
// PNTSD_GET_EXPRESSION lpGetExpressionRoutine;
|
||
// PNTSD_GET_SYMBOL lpGetSymbolRoutine;
|
||
// PNTSD_DISASM lpDisasmRoutine
|
||
// PNTSD_CHECK_CONTROL_C lpCheckControlCRoutine;
|
||
// }; NTSD_EXTENSION_APIS, *PNTSD_EXTENSION_APIS
|
||
//
|
||
// the following macros assume global: NTSD_EXTENSION_APIS ExtensionApis
|
||
|
||
// formatted print like CRT printf
|
||
// void dprintf(char *format [, argument] ...);
|
||
#define dprintf (ExtensionApis.lpOutputRoutine)
|
||
|
||
// returns value of expression
|
||
// DWORD GetExpression(char *expression);
|
||
#define GetExpression (ExtensionApis.lpGetExpressionRoutine)
|
||
|
||
// locates the nearest symbol
|
||
// void GetSymbol(LPVOID address, PUCHAR buffer, LPDWORD lpdwDisplacement);
|
||
#define GetSymbol (ExtensionApis.lpGetSymbolRoutine)
|
||
|
||
// Disassembles an instruction
|
||
// DWORD Disassm(LPDWORD lpdwOffset, LPSTR lpBuffer, BOOL fShowEffectiveAddress);
|
||
#define Disassm (ExtensionApis.lpGetDisasmRoutine)
|
||
|
||
// did user press CTRL+C
|
||
// BOOL CheckControlC(void);
|
||
#define CheckControlC (ExtensionApis.lpCheckControlCRoutine)
|
||
|
||
//+-------------------------------------------------------------------------
|
||
//
|
||
// Function Macro: DECLARE_API(...)
|
||
//
|
||
// Synopsis: definition for an NTSD debugger extension function
|
||
//
|
||
// Effects:
|
||
//
|
||
// Arguments: [hCurrentProcess] - Handle to current process
|
||
// [hCurrentThread] - Handle to current thread
|
||
// [dwCurrentPc] - Copy of the program counter
|
||
// [lpExtenisonApis] - pointer to NTSD_EXTENSION_APIS
|
||
// (structure function pointers for NTSD)
|
||
// [args] - a string of arguments from NTSD cmd line
|
||
//
|
||
// Requires:
|
||
//
|
||
// Returns: void
|
||
//
|
||
// Signals:
|
||
//
|
||
// Modifies:
|
||
//
|
||
// Algorithm:
|
||
//
|
||
// History: dd-mmm-yy Author Comment
|
||
// 02-Feb-95 t-ScottH author
|
||
//
|
||
// Notes:
|
||
// we use a function macro for defining our debugger extensions
|
||
// functions to allow for easy extensibility
|
||
//
|
||
// !!!function names MUST be lower case!!!
|
||
//
|
||
//--------------------------------------------------------------------------
|
||
|
||
#define DECLARE_API(s) \
|
||
VOID \
|
||
s( \
|
||
HANDLE hCurrentProcess, \
|
||
HANDLE hCurrentThread, \
|
||
DWORD dwCurrentPc, \
|
||
PNTSD_EXTENSION_APIS lpExtensionApis, \
|
||
LPSTR args \
|
||
)
|
||
|
||
#endif // _OLEEXTS_H_
|
||
|