/*++ 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 inline BOOL BadReadPtr(T* p, DWORD dwSize = 1) { return IsBadReadPtr(p, dwSize * sizeof(T)); } template 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__