home *** CD-ROM | disk | FTP | other *** search
/ Beginning C++ Through Gam…rogramming (2nd Edition) / BCGP2E.ISO / bloodshed / devcpp-4.9.9.2_setup.exe / rpcdcep.h < prev    next >
C/C++ Source or Header  |  2005-01-29  |  5KB  |  130 lines

  1. #ifndef _RPCDCEP_H
  2. #define _RPCDCEP_H
  3. #if __GNUC__ >=3
  4. #pragma GCC system_header
  5. #endif
  6.  
  7. #ifdef __cplusplus
  8. extern "C" {
  9. #endif
  10. #define RPC_NCA_FLAGS_DEFAULT 0
  11. #define RPC_NCA_FLAGS_IDEMPOTENT 1
  12. #define RPC_NCA_FLAGS_BROADCAST 2
  13. #define RPC_NCA_FLAGS_MAYBE 4
  14. #define RPCFLG_ASYNCHRONOUS 0x40000000
  15. #define RPCFLG_INPUT_SYNCHRONOUS 0x20000000
  16. #define RPC_FLAGS_VALID_BIT 0x8000
  17. #define TRANSPORT_TYPE_CN 1
  18. #define TRANSPORT_TYPE_DG 2
  19. #define TRANSPORT_TYPE_LPC 4
  20. #define TRANSPORT_TYPE_WMSG 8
  21.  
  22. typedef struct _RPC_VERSION {
  23.     unsigned short MajorVersion;
  24.     unsigned short MinorVersion;
  25. } RPC_VERSION;
  26. typedef struct _RPC_SYNTAX_IDENTIFIER {
  27.     GUID SyntaxGUID;
  28.     RPC_VERSION SyntaxVersion;
  29. } RPC_SYNTAX_IDENTIFIER, *PRPC_SYNTAX_IDENTIFIER;
  30. typedef struct _RPC_MESSAGE {
  31.     HANDLE Handle;
  32.     unsigned long DataRepresentation;
  33.     void *Buffer;
  34.     unsigned int BufferLength;
  35.     unsigned int ProcNum;
  36.     PRPC_SYNTAX_IDENTIFIER TransferSyntax;
  37.     void *RpcInterfaceInformation;
  38.     void *ReservedForRuntime;
  39.     void *ManagerEpv;
  40.     void *ImportContext;
  41.     unsigned long RpcFlags;
  42. } RPC_MESSAGE,*PRPC_MESSAGE;
  43. typedef long __stdcall RPC_FORWARD_FUNCTION(GUID*,RPC_VERSION*,GUID*,unsigned char*,void**);
  44. typedef void(__stdcall *RPC_DISPATCH_FUNCTION) ( PRPC_MESSAGE Message);
  45. typedef struct {
  46.     unsigned int DispatchTableCount;
  47.     RPC_DISPATCH_FUNCTION *DispatchTable;
  48.     int Reserved;
  49. } RPC_DISPATCH_TABLE,*PRPC_DISPATCH_TABLE;
  50. typedef struct _RPC_PROTSEQ_ENDPOINT {
  51.     unsigned char *RpcProtocolSequence;
  52.     unsigned char *Endpoint;
  53. } RPC_PROTSEQ_ENDPOINT,*PRPC_PROTSEQ_ENDPOINT;
  54. typedef struct _RPC_SERVER_INTERFACE {
  55.     unsigned int Length;
  56.     RPC_SYNTAX_IDENTIFIER InterfaceId;
  57.     RPC_SYNTAX_IDENTIFIER TransferSyntax;
  58.     PRPC_DISPATCH_TABLE DispatchTable;
  59.     unsigned int RpcProtseqEndpointCount;
  60.     PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint;
  61.     void *DefaultManagerEpv;
  62.     void const *InterpreterInfo;
  63. } RPC_SERVER_INTERFACE,*PRPC_SERVER_INTERFACE;
  64. typedef struct _RPC_CLIENT_INTERFACE {
  65.     unsigned int Length;
  66.     RPC_SYNTAX_IDENTIFIER InterfaceId;
  67.     RPC_SYNTAX_IDENTIFIER TransferSyntax;
  68.     PRPC_DISPATCH_TABLE DispatchTable;
  69.     unsigned int RpcProtseqEndpointCount;
  70.     PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint;
  71.     unsigned long Reserved;
  72.     void const *InterpreterInfo;
  73. } RPC_CLIENT_INTERFACE,*PRPC_CLIENT_INTERFACE;
  74. typedef void *I_RPC_MUTEX;
  75. typedef struct _RPC_TRANSFER_SYNTAX {
  76.     GUID Uuid;
  77.     unsigned short VersMajor;
  78.     unsigned short VersMinor;
  79. } RPC_TRANSFER_SYNTAX;
  80. typedef RPC_STATUS (*RPC_BLOCKING_FN)(void*,void*,void*);
  81.  
  82. long __stdcall I_RpcGetBuffer(RPC_MESSAGE*);
  83. long __stdcall I_RpcSendReceive(RPC_MESSAGE*);
  84. long __stdcall I_RpcSend(RPC_MESSAGE*);
  85. long __stdcall I_RpcFreeBuffer(RPC_MESSAGE*);
  86. void __stdcall I_RpcRequestMutex(I_RPC_MUTEX*);
  87. void __stdcall I_RpcClearMutex(I_RPC_MUTEX);
  88. void __stdcall I_RpcDeleteMutex(I_RPC_MUTEX);
  89. DECLARE_STDCALL_P(void *) I_RpcAllocate(unsigned int);
  90. void __stdcall I_RpcFree(void*);
  91. void __stdcall I_RpcPauseExecution(unsigned long);
  92. typedef void(__stdcall *PRPC_RUNDOWN) (void*);
  93. long __stdcall I_RpcMonitorAssociation(HANDLE,PRPC_RUNDOWN,void*);
  94. long __stdcall I_RpcStopMonitorAssociation(HANDLE);
  95. HANDLE __stdcall I_RpcGetCurrentCallHandle(void);
  96. long __stdcall I_RpcGetAssociationContext(void**);
  97. long __stdcall I_RpcSetAssociationContext(void*);
  98. #ifdef __RPC_NT__
  99. long __stdcall I_RpcNsBindingSetEntryName(HANDLE,unsigned long,unsigned short*);
  100. long __stdcall I_RpcBindingInqDynamicEndpoint(HANDLE, unsigned short**);
  101. #else
  102. long __stdcall I_RpcNsBindingSetEntryName(HANDLE,unsigned long,unsigned char*);
  103. long __stdcall I_RpcBindingInqDynamicEndpoint(HANDLE,unsigned char**);
  104. #endif
  105. long __stdcall I_RpcBindingInqTransportType(HANDLE,unsigned int*);
  106. long __stdcall I_RpcIfInqTransferSyntaxes(HANDLE,RPC_TRANSFER_SYNTAX*,unsigned int,unsigned int*);
  107. long __stdcall I_UuidCreate(GUID*);
  108. long __stdcall I_RpcBindingCopy(HANDLE,HANDLE*);
  109. long __stdcall I_RpcBindingIsClientLocal(HANDLE,unsigned int*);
  110. void __stdcall I_RpcSsDontSerializeContext(void);
  111. long __stdcall I_RpcServerRegisterForwardFunction(RPC_FORWARD_FUNCTION*);
  112. long __stdcall I_RpcConnectionInqSockBuffSize(unsigned long*,unsigned long*);
  113. long __stdcall I_RpcConnectionSetSockBuffSize(unsigned long,unsigned long);
  114. long __stdcall I_RpcBindingSetAsync(HANDLE,RPC_BLOCKING_FN);
  115. long __stdcall I_RpcAsyncSendReceive(RPC_MESSAGE*,void*);
  116. long __stdcall I_RpcGetThreadWindowHandle(void**);
  117. long __stdcall I_RpcServerThreadPauseListening(void);
  118. long __stdcall I_RpcServerThreadContinueListening(void);
  119. long __stdcall I_RpcServerUnregisterEndpointA(unsigned char*,unsigned char*);
  120. long __stdcall I_RpcServerUnregisterEndpointW(unsigned short*,unsigned short*);
  121. #ifdef UNICODE
  122. #define I_RpcServerUnregisterEndpoint I_RpcServerUnregisterEndpointW
  123. #else
  124. #define I_RpcServerUnregisterEndpoint I_RpcServerUnregisterEndpointA
  125. #endif
  126. #ifdef __cplusplus
  127. }
  128. #endif
  129. #endif
  130.