Windows2000/private/windbg64/langapi/include/sqlpkapi.h
2020-09-30 17:12:32 +02:00

93 lines
3.3 KiB
C

// SQLPKAPI.H
// SQL specific package interface declarations.
// IMPORTANT: this file is used by debugger components so:
// 1. Needs to be C-parsable ie no C++ luxuries (easier said than done I know)
// 2. Must not require MFC types or headers
// 3. Make sure you use the OLE macros in a C-compatible way (ditto)
// 4. If this changes, the debugger bits will need a rebuild
#ifndef __SQLPKAPI_H__
#define __SQLPKAPI_H__
interface ISqlExec;
interface ISrcDebug;
#ifdef __cplusplus
typedef ISqlExec* LPSQLEXEC;
typedef ISrcDebug* LPSRCDEBUG;
#endif
// ISqlExec
#undef INTERFACE
#define INTERFACE ISqlExec
enum LoadNotifyType {lntBeforeLoad, lntAfterLoad, lntTerminatingAndRestoringBPs, lntDebugSessionEnding, lntSQLThreadCreated,
lntProgLoad, lntProgTerm, lntBadDriver};
typedef WORD SPCOOKIE;
typedef SPCOOKIE *PSPCOOKIE;
DECLARE_INTERFACE_(ISqlExec, IUnknown)
{
// IUnknown methods
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
// ISqlExec methods
STDMETHOD_(void, GoSql)(THIS) PURE;
STDMETHOD_(void, StepIntoSql)(THIS) PURE;
STDMETHOD_(void, StepOverSql)(THIS) PURE;
STDMETHOD_(void, AddTmpBpSql)(THIS) PURE;
STDMETHOD_(void, ToggleBPSql)(THIS) PURE;
STDMETHOD_(BOOL, DebuggeeLoadNotify)(THIS_ enum LoadNotifyType lnt, LPVOID) PURE;
STDMETHOD_(BOOL, GetSqlSPInfo)(THIS_ SPCOOKIE Cookie, char *ServerName, char *DBN, char *Name, WORD *cLine, WORD) PURE;
STDMETHOD_(BOOL, GetSqlLocation)(THIS_ WORD *pline, PSPCOOKIE pCookie, WORD) PURE;
STDMETHOD_(BOOL, FindSqlSymbol)(THIS_ PVOID pSymInfo, WORD nlvl ) PURE;
STDMETHOD_(BOOL, SetSqlSymbol)(THIS_ PVOID pSymInfo, WORD nlvl ) PURE;
STDMETHOD_(UINT, CountSqlLocals)(THIS_ WORD nlvl, BOOL ) PURE;
STDMETHOD_(BOOL, GetSqlLocalName)(THIS_ char*, WORD, UINT, BOOL ) PURE;
STDMETHOD_(void, StepToReturnSql)(THIS) PURE;
STDMETHOD_(void, HackRefCount)(THIS_ int ) PURE;
STDMETHOD_(void, KillSql)(THIS_ unsigned long, BOOL fAsync ) PURE;
STDMETHOD_(void*,FindSqlDocument)(THIS_ char*, BOOL) PURE;
STDMETHOD_(BOOL, GetSqlStack)(THIS_ WORD*, int, PSPCOOKIE, WORD*) PURE;
STDMETHOD_(BOOL, SetSqlBreakpoint)(THIS_ BOOL, SPCOOKIE, WORD ) PURE;
STDMETHOD_(BOOL, FindCookie)(THIS_ char* szSrvr, char* szDBN, char* szProc, SPCOOKIE *pCookie) PURE;
STDMETHOD_(BOOL, ParseSqlPath)(THIS_ char* szPath, char *szServ, char *szDB, char *szSP, int) PURE;
STDMETHOD_(BOOL, BuildSqlPath)(THIS_ char* szPath, char *szServ, char *szDB, char *szSP, int) PURE;
STDMETHOD_(BOOL, GetCodeLines)(THIS_ SPCOOKIE, int*pSize, unsigned short** ppList) PURE;
STDMETHOD_(BOOL, InProcSql)(THIS_ char* szPath) PURE;
STDMETHOD(LoadDocument)(LPCTSTR szName) PURE;
};
// ISrcDebug
#undef INTERFACE
#define INTERFACE ISrcDebug
DECLARE_INTERFACE_(ISrcDebug, IUnknown)
{
// IUnknown methods
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
// ISrcDebug methods
STDMETHOD_(BOOL, DebugSystemService)(THIS_ int i1, int i2, int i3, void *pv1, int i4, void *pv2) PURE;
STDMETHOD_(void, UpdateBPViews)(THIS) PURE;
};
#endif // __SQLPKAPI_H__