/************************************************************************ Copyright (c) 1993 Microsoft Corporation Module Name : hndl.h Abstract : To hold prototypes of support routines for interpreting handles in support of Format Strings. Author : Bruce McQuistan (brucemc) Revision History : ***********************************************************************/ #ifndef __HNDL_H__ #define __HNDL_H__ // // The following is to be used in as masks for flags passed in these // routines. // #define MARSHALL_MASK 0x2 #define IMPLICIT_MASK 0x4 #define BINDING_MASK 0x8 // // Next, a macro for getting the current call handle. On dos,win16, it'll // never be called. // #if defined(__RPC_MAC__) #define GET_CURRENT_CALL_HANDLE() NULL #else #define GET_CURRENT_CALL_HANDLE() I_RpcGetCurrentCallHandle() #endif // // Some typedefs to keep the front end of the C compiler happy and possibly to // improve code generation. // typedef void * (__RPC_API * GENERIC_BIND_FUNC_ARGCHAR)(uchar); typedef void * (__RPC_API * GENERIC_BIND_FUNC_ARGSHORT)(ushort); typedef void * (__RPC_API * GENERIC_BIND_FUNC_ARGLONG)(ulong); typedef void (__RPC_API * GENERIC_UNBIND_FUNC_ARGCHAR)(uchar, handle_t); typedef void (__RPC_API * GENERIC_UNBIND_FUNC_ARGSHORT)(ushort, handle_t); typedef void (__RPC_API * GENERIC_UNBIND_FUNC_ARGLONG)(ulong, handle_t); #if defined(__RPC_WIN64__) typedef void * (__RPC_API * GENERIC_BIND_FUNC_ARGINT64)(uint64); typedef void (__RPC_API * GENERIC_UNBIND_FUNC_ARGINT64)(uint64, handle_t); #endif handle_t GenericHandleMgr( PMIDL_STUB_DESC pStubDesc, uchar * ArgPtr, PFORMAT_STRING FmtString, uint Flags, handle_t * pSavedGenericHandle ); void GenericHandleUnbind( PMIDL_STUB_DESC pStubDesc, uchar * ArgPtr, PFORMAT_STRING FmtString, uint Flags, handle_t * pSavedGenericHandle ); handle_t ExplicitBindHandleMgr( PMIDL_STUB_DESC pStubDesc, uchar * ArgPtr, PFORMAT_STRING FmtString, handle_t * pSavedGenericHandle ); handle_t ImplicitBindHandleMgr( PMIDL_STUB_DESC pStubDesc, uchar HandleType, handle_t * pSavedGenericHandle ); handle_t Ndr64GenericHandleMgr( PMIDL_STUB_DESC pStubDesc, uchar * ArgPtr, PFORMAT_STRING FmtString, uint Flags, handle_t * pSavedGenericHandle ); void Ndr64GenericHandleUnbind( PMIDL_STUB_DESC pStubDesc, uchar * ArgPtr, PFORMAT_STRING FmtString, uint Flags, handle_t * pSavedGenericHandle ); handle_t Ndr64ExplicitBindHandleMgr( PMIDL_STUB_DESC pStubDesc, uchar * ArgPtr, PFORMAT_STRING FmtString, handle_t * pSavedGenericHandle ); handle_t Ndr64ImplicitBindHandleMgr( PMIDL_STUB_DESC pStubDesc, uchar HandleType, handle_t * pSavedGenericHandle ); void Ndr64MarshallHandle( PMIDL_STUB_MESSAGE pStubMsg, uchar * pArg, PNDR64_FORMAT FmtString ); void Ndr64UnmarshallHandle( PMIDL_STUB_MESSAGE pStubMsg, uchar ** ppArg, PNDR64_FORMAT FmtString, bool fIgnored ); void Ndr64SaveContextHandle ( PMIDL_STUB_MESSAGE pStubMsg, NDR_SCONTEXT CtxtHandle, uchar ** ppArg, PFORMAT_STRING pFormat ); void Ndr64ContextHandleQueueFree( PMIDL_STUB_MESSAGE pStubMsg, void * FixedArray ); #endif __HNDL_H__