windows-nt/Source/XPSP1/NT/net/tapi/skywalker/rend/rndcommc.h
2020-09-26 16:20:57 +08:00

111 lines
3.1 KiB
C++

/*++
Copyright (c) 1997-2000 Microsoft Corporation
Module Name:
rndcommc.h
Abstract:
This module provides common definitions used in rendezvous control.
--*/
#ifndef __REND_COMMON_C__
#define __REND_COMMON_C__
#include "rend.h"
#include "rendp.h"
#define WINSOCKVERSION 0x0200
typedef ITDirectory * PDIRECTORY;
typedef ITDirectoryObject * PDIRECTORYOBJECT;
#define MeetingAttrIndex(a) ((a) - MEETING_ATTRIBUTES_BEGIN - 1)
#define UserAttrIndex(a) ((a) - USER_ATTRIBUTES_BEGIN - 1)
#define ValidMeetingAttribute(a) \
(((a) > MEETING_ATTRIBUTES_BEGIN) && ((a) < MEETING_ATTRIBUTES_END))
#define ValidUserAttribute(a) \
(((a) > USER_ATTRIBUTES_BEGIN) && ((a) < USER_ATTRIBUTES_END))
extern const WCHAR * const MeetingAttributeNames[];
extern const WCHAR * const UserAttributeNames[];
#define UserAttributeName(a) (UserAttributeNames[UserAttrIndex(a)])
#define MeetingAttributeName(a) (MeetingAttributeNames[MeetingAttrIndex(a)])
// sets the first bit to indicate error
// sets the win32 facility code
// this is used instead of the HRESULT_FROM_WIN32 macro
// because that clears the customer flag
inline long
HRESULT_FROM_ERROR_CODE(IN long ErrorCode)
{
LOG((MSP_ERROR, "HRESULT_FROM_ERROR_CODE - error %x",
(0x80070000 | (0xa000ffff & ErrorCode))));
return ( 0x80070000 | (0xa000ffff & ErrorCode) );
}
inline BOOL
CUSTOMER_FLAG_ON(IN long ErrorValue)
{
return (0x20000000 & ErrorValue);
}
template <class T>
inline BOOL BadReadPtr(T* p, DWORD dwSize = 1)
{
return IsBadReadPtr(p, dwSize * sizeof(T));
}
template <class T>
inline BOOL BadWritePtr(T* p, DWORD dwSize = 1)
{
return IsBadWritePtr(p, dwSize * sizeof(T));
}
#define BAIL_IF_FAIL(HResultExpr, msg) \
{ \
HRESULT MacroHResult = HResultExpr; \
if (FAILED(MacroHResult)) \
{ \
LOG((MSP_ERROR, "%s - error %x", msg, MacroHResult)); \
return MacroHResult; \
} \
}
#define BAIL_IF_NULL(Ptr, ReturnValue) \
{ \
if ( NULL == Ptr ) \
{ \
LOG((MSP_ERROR, "NULL_PTR - ret value %x", ReturnValue)); \
return ReturnValue; \
} \
}
#define BAIL_IF_BAD_READ_PTR(Ptr, ReturnValue) \
{ \
if ( BadReadPtr(Ptr) ) \
{ \
LOG((MSP_ERROR, "BAD_READ_PTR - ret value %x", ReturnValue));\
return ReturnValue; \
} \
}
#define BAIL_IF_BAD_WRITE_PTR(Ptr, ReturnValue) \
{ \
if ( BadWritePtr(Ptr) ) \
{ \
LOG((MSP_ERROR, "BAD_WRITE_PTR - ret value %x", ReturnValue)); \
return ReturnValue; \
} \
}
#endif // __REND_COMMON_C__