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_
|
|||
|
|