2025-04-27 07:49:33 -04:00

125 lines
3.9 KiB
C

/*==========================================================================
*
* Copyright (C) 1995 Microsoft Corporation. All Rights Reserved.
*
* File: DNetErrors.h
* Content: Function for expanding DNet errors to debug output
*@@BEGIN_MSINTERNAL
* History:
* Date By Reason
* ==== == ======
* 12/04/98 johnkan Created
* 08/28/2000 masonb Voice Merge: Fix for code that only defines one of DEBUG, DBG, _DEBUG
*@@END_MSINTERNAL
*
***************************************************************************/
#ifndef __DNET_ERRORS_H__
#define __DNET_ERRORS_H__
// Make sure all variations of DEBUG are defined if any one is
#if defined(DEBUG) || defined(DBG) || defined(_DEBUG)
#if !defined(DBG)
#define DBG
#endif
#if !defined(DEBUG)
#define DEBUG
#endif
#if !defined(_DEBUG)
#define _DEBUG
#endif
#endif
//**********************************************************************
// Constant definitions
//**********************************************************************
//
// enumerated values for determining output destination
//
typedef enum
{
DPNERR_OUT_DEBUGGER
} DN_OUT_TYPE;
//
// enumerated values to determine error class
typedef enum
{
EC_DPLAY8,
EC_INET,
EC_TAPI,
EC_WIN32,
EC_WINSOCK
// no entry for TAPI message output
} EC_TYPE;
//**********************************************************************
// Macro definitions
//**********************************************************************
#ifdef _DEBUG
// where is the output going?
#define OUT_TYPE DPNERR_OUT_DEBUGGER
// ErrorLevel = DPF level for outputting errors
// DNErrpr = DirectNet error code
#define DisplayString( ErrorLevel, String ) LclDisplayString( OUT_TYPE, ErrorLevel, String )
#define DisplayErrorCode( ErrorLevel, Win32Error ) LclDisplayError( EC_WIN32, OUT_TYPE, ErrorLevel, Win32Error )
#define DisplayDNError( ErrorLevel, DNError ) LclDisplayError( EC_DPLAY8, OUT_TYPE, ErrorLevel, DNError )
#define DisplayInetError( ErrorLevel, InetError ) LclDisplayError( EC_INET, OUT_TYPE, ErrorLevel, InetError )
#define DisplayTAPIError( ErrorLevel, TAPIError ) LclDisplayError( EC_TAPI, OUT_TYPE, ErrorLevel, TAPIError )
#define DisplayWinsockError( ErrorLevel, WinsockError ) LclDisplayError( EC_WINSOCK, OUT_TYPE, ErrorLevel, WinsockError )
#define DisplayTAPIMessage( ErrorLevel, pTAPIMessage ) LclDisplayTAPIMessage( OUT_TYPE, ErrorLevel, pTAPIMessage )
#else // _DEBUG
#define DisplayString( ErrorLevel, String )
#define DisplayErrorCode( ErrorLevel, Win32Error )
#define DisplayDNError( ErrorLevel, DNError )
#define DisplayInetError( ErrorLevel, InetError )
#define DisplayTAPIError( ErrorLevel, TAPIError )
#define DisplayWinsockError( ErrorLevel, WinsockError )
#define DisplayTAPIMessage( ErrorLevel, pTAPIMessage )
#endif // _DEBUG
//**********************************************************************
// Structure definitions
//**********************************************************************
typedef struct linemessage_tag LINEMESSAGE;
//**********************************************************************
// Variable definitions
//**********************************************************************
//**********************************************************************
// Function prototypes
//**********************************************************************
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
#ifdef _DEBUG
// don't call this function directly, use the 'DisplayDNError' macro
void LclDisplayError( EC_TYPE ErrorType, DN_OUT_TYPE OutputType, DWORD ErrorLevel, HRESULT ErrorCode );
void LclDisplayString( DN_OUT_TYPE OutputType, DWORD ErrorLevel, char *pString );
void LclDisplayTAPIMessage( DN_OUT_TYPE OutputType, DWORD ErrorLevel, const LINEMESSAGE *const pLineMessage );
#endif
#ifdef __cplusplus
}
#endif // __cplusplus
#endif // __DNET_ERRORS_H__