ReactOS  0.4.13-dev-79-gcd489d8
rpcdcep.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2000 Francois Gouget
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18 
19 #ifndef __WINE_RPCDCEP_H
20 #define __WINE_RPCDCEP_H
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
26 typedef struct _RPC_VERSION {
27  unsigned short MajorVersion;
28  unsigned short MinorVersion;
29 } RPC_VERSION;
30 
31 typedef struct _RPC_SYNTAX_IDENTIFIER {
35 
36 typedef struct _RPC_MESSAGE
37 {
40  void* Buffer;
41  unsigned int BufferLength;
42  unsigned int ProcNum;
50 
51 /* or'ed with ProcNum */
52 #define RPC_FLAGS_VALID_BIT 0x00008000
53 
54 #define RPC_CONTEXT_HANDLE_DEFAULT_GUARD ((void *)0xfffff00d)
55 
56 #define RPC_CONTEXT_HANDLE_DEFAULT_FLAGS 0x00000000
57 #define RPC_CONTEXT_HANDLE_FLAGS 0x30000000
58 #define RPC_CONTEXT_HANDLE_SERIALIZE 0x10000000
59 #define RPC_CONTEXT_HANDLE_DONT_SERIALIZE 0x20000000
60 #define RPC_TYPE_STRICT_CONTEXT_HANDLE 0x40000000
61 
62 #define RPC_NCA_FLAGS_DEFAULT 0x00000000
63 #define RPC_NCA_FLAGS_IDEMPOTENT 0x00000001
64 #define RPC_NCA_FLAGS_BROADCAST 0x00000002
65 #define RPC_NCA_FLAGS_MAYBE 0x00000004
66 
67 #define RPC_BUFFER_COMPLETE 0x00001000
68 #define RPC_BUFFER_PARTIAL 0x00002000
69 #define RPC_BUFFER_EXTRA 0x00004000
70 #define RPC_BUFFER_ASYNC 0x00008000
71 #define RPC_BUFFER_NONOTIFY 0x00010000
72 
73 #define RPCFLG_MESSAGE 0x01000000
74 #define RPCFLG_HAS_MULTI_SYNTAXES 0x02000000
75 #define RPCFLG_HAS_CALLBACK 0x04000000
76 #define RPCFLG_AUTO_COMPLETE 0x08000000
77 #define RPCFLG_LOCAL_CALL 0x10000000
78 #define RPCFLG_INPUT_SYNCHRONOUS 0x20000000
79 #define RPCFLG_ASYNCHRONOUS 0x40000000
80 #define RPCFLG_NON_NDR 0x80000000
81 
83 typedef RPC_STATUS (RPC_ENTRY *RPC_FORWARD_FUNCTION)(UUID *InterfaceId, RPC_VERSION *InterfaceVersion, UUID *ObjectId, unsigned char *Rpcpro, void **ppDestEndpoint);
84 
85 typedef struct
86 {
87  unsigned int DispatchTableCount;
91 
92 typedef struct _RPC_PROTSEQ_ENDPOINT
93 {
94  unsigned char* RpcProtocolSequence;
95  unsigned char* Endpoint;
97 
98 #define NT351_INTERFACE_SIZE 0x40
99 #define RPC_INTERFACE_HAS_PIPES 0x0001
100 
101 typedef struct _RPC_SERVER_INTERFACE
102 {
103  unsigned int Length;
110  void const* InterpreterInfo;
111  unsigned int Flags;
113 
114 typedef struct _RPC_CLIENT_INTERFACE
115 {
116  unsigned int Length;
123  void const* InterpreterInfo;
124  unsigned int Flags;
126 
127 #define RPC_C_OPT_COOKIE_AUTH 7
128 
130 {
132  char *Buffer;
134 
135 #define TRANSPORT_TYPE_CN 0x01
136 #define TRANSPORT_TYPE_DG 0x02
137 #define TRANSPORT_TYPE_LPC 0x04
138 #define TRANSPORT_TYPE_WMSG 0x08
139 
154 
155 RPCRTAPI void* RPC_ENTRY
156  I_RpcAllocate( unsigned int Size );
157 RPCRTAPI void RPC_ENTRY
158  I_RpcFree( void* Object );
159 
162 
163 /*
164  * The platform SDK headers don't define these functions at all if WINNT is defined
165  * The MSVC6 headers define two different sets of functions :
166  * If WINNT and MSWMSG are defined, the NT versions are defined
167  * If WINNT is not defined, the windows 9x versions are defined.
168  * Note that the prototypes for I_RpcBindingSetAsync are different for each case.
169  *
170  * Wine defaults to the WinNT case and only defines these function is MSWMSG is
171  * defined. Defining the NT functions by default causes MIDL generated proxies
172  * to not compile.
173  */
174 
175 #if 1 /* WINNT */
176 #ifdef MSWMSG
177 
181  I_RpcServerStopListening( void );
182 /* WINNT */
184  I_GetThreadWindowHandle( HWND* hWnd );
186  I_RpcAsyncSendReceive( RPC_MESSAGE* Message, void* Context, HWND hWnd );
187 
188 typedef RPC_STATUS (*RPC_BLOCKING_FN)(void* hWnd, void* Context, HANDLE hSyncEvent);
189 
191  I_RpcBindingSetAsync( RPC_BINDING_HANDLE Binding, RPC_BLOCKING_FN BlockingFn );
192 
195 
197  I_RpcSetWMsgEndpoint( WCHAR* Endpoint );
198 
199 #endif
200 
201 #else
202 
203 /* WIN9x */
206 
208  I_RpcServerStopListening( void );
209 
210 typedef RPC_STATUS (*RPC_BLOCKING_FN)(void* hWnd, void* Context, void* hSyncEvent);
211 
213  I_RpcBindingSetAsync( RPC_BINDING_HANDLE Binding, RPC_BLOCKING_FN BlockingFn, ULONG ServerTid );
214 
216  I_RpcSetThreadParams( int fClientFree, void* Context, void* hWndClient );
217 
219  I_RpcWindowProc( void* hWnd, unsigned int Message, unsigned int wParam, ULONG lParam );
220 
221 #endif
222 
225 
227 
228 #ifdef __cplusplus
229 }
230 #endif
231 
232 #endif /*__WINE_RPCDCEP_H */
void const * InterpreterInfo
Definition: rpcdcep.h:110
void * RpcInterfaceInformation
Definition: rpcdcep.h:44
RPC_STATUS WINAPI I_RpcServerStopListening(void)
Definition: rpc_server.c:1633
RPC_STATUS(RPC_ENTRY * RPC_FORWARD_FUNCTION)(UUID *InterfaceId, RPC_VERSION *InterfaceVersion, UUID *ObjectId, unsigned char *Rpcpro, void **ppDestEndpoint)
Definition: rpcdcep.h:83
PRPC_DISPATCH_TABLE DispatchTable
Definition: rpcdcep.h:106
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
Type
Definition: Type.h:6
unsigned short MajorVersion
Definition: rpcdcep.h:27
RPCRTAPI LONG RPC_ENTRY I_RpcMapWin32Status(RPC_STATUS)
Definition: rpcrt4_main.c:741
unsigned int Flags
Definition: rpcdcep.h:124
void(__RPC_STUB * RPC_DISPATCH_FUNCTION)(PRPC_MESSAGE Message)
Definition: rpcdcep.h:82
HWND hWnd
Definition: settings.c:17
RPC_STATUS WINAPI I_RpcServerStartListening(HWND hWnd)
Definition: rpc_server.c:1623
void const * InterpreterInfo
Definition: rpcdcep.h:123
unsigned char * Endpoint
Definition: rpcdcep.h:95
struct _RPC_VERSION RPC_VERSION
WPARAM wParam
Definition: combotst.c:138
PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint
Definition: rpcdcep.h:108
ULONG_PTR Reserved
Definition: rpcdcep.h:122
uint32_t ULONG_PTR
Definition: typedefs.h:63
RPCRTAPI RPC_STATUS RPC_ENTRY I_RpcGetBuffer(RPC_MESSAGE *Message)
RPC_DISPATCH_FUNCTION * DispatchTable
Definition: rpcdcep.h:88
unsigned int BufferLength
Definition: rpcdcep.h:41
RPC_SYNTAX_IDENTIFIER InterfaceId
Definition: rpcdcep.h:104
long RPC_STATUS
Definition: rpc.h:52
void * Buffer
Definition: rpcdcep.h:40
struct RPC_DISPATCH_TABLE * PRPC_DISPATCH_TABLE
long LONG
Definition: pedump.c:60
struct _RPC_MESSAGE * PRPC_MESSAGE
#define RPCRTAPI
Definition: rpc.h:82
unsigned int Length
Definition: rpcdcep.h:116
unsigned int ProcNum
Definition: rpcdcep.h:42
RPC_MGR_EPV * DefaultManagerEpv
Definition: rpcdcep.h:109
RPCRTAPI void RPC_ENTRY I_RpcFree(void *Object)
Definition: rpcrt4_main.c:725
unsigned int DispatchTableCount
Definition: rpcdcep.h:87
RPC_VERSION SyntaxVersion
Definition: rpcdcep.h:33
UINT WINAPI I_RpcWindowProc(void *hWnd, UINT Message, UINT wParam, ULONG lParam)
Definition: rpc_server.c:1643
struct _RPC_CLIENT_INTERFACE RPC_CLIENT_INTERFACE
RPCRTAPI RPC_STATUS RPC_ENTRY I_RpcNegotiateTransferSyntax(RPC_MESSAGE *Message)
unsigned int Length
Definition: rpcdcep.h:103
#define __RPC_STUB
Definition: rpc.h:66
unsigned int Flags
Definition: rpcdcep.h:111
struct _RPC_SYNTAX_IDENTIFIER * PRPC_SYNTAX_IDENTIFIER
RPC_SYNTAX_IDENTIFIER TransferSyntax
Definition: rpcdcep.h:105
struct _RPC_MESSAGE RPC_MESSAGE
__wchar_t WCHAR
Definition: xmlstorage.h:180
LONG_PTR Reserved
Definition: rpcdcep.h:89
ULONG RpcFlags
Definition: rpcdcep.h:48
struct _RPC_PROTSEQ_ENDPOINT * PRPC_PROTSEQ_ENDPOINT
RPCRTAPI RPC_STATUS RPC_ENTRY I_RpcFreeBuffer(RPC_MESSAGE *Message)
void * ReservedForRuntime
Definition: rpcdcep.h:45
struct _RPC_SERVER_INTERFACE RPC_SERVER_INTERFACE
RPCRTAPI RPC_STATUS RPC_ENTRY I_RpcSendReceive(RPC_MESSAGE *Message)
RPCRTAPI RPC_BINDING_HANDLE RPC_ENTRY I_RpcGetCurrentCallHandle(void)
Definition: rpc_server.c:1746
static IUnknown Object
Definition: main.c:512
RPCRTAPI RPC_STATUS RPC_ENTRY I_RpcSend(RPC_MESSAGE *Message)
CHAR Message[80]
Definition: alive.c:5
PRPC_SYNTAX_IDENTIFIER TransferSyntax
Definition: rpcdcep.h:43
unsigned int RpcProtseqEndpointCount
Definition: rpcdcep.h:120
unsigned short MinorVersion
Definition: rpcdcep.h:28
RPC_SYNTAX_IDENTIFIER TransferSyntax
Definition: rpcdcep.h:118
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:359
RPC_MGR_EPV * ManagerEpv
Definition: rpcdcep.h:46
struct _RPC_CLIENT_INTERFACE * PRPC_CLIENT_INTERFACE
struct _RPC_PROTSEQ_ENDPOINT RPC_PROTSEQ_ENDPOINT
RPCRTAPI RPC_STATUS RPC_ENTRY I_RpcGetBufferWithObject(RPC_MESSAGE *Message, UUID *ObjectUuid)
struct _RPC_SYNTAX_IDENTIFIER RPC_SYNTAX_IDENTIFIER
#define RPC_ENTRY
Definition: rpc.h:67
struct _RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
unsigned int UINT
Definition: ndis.h:50
#define RPC_MGR_EPV
Definition: rpcdce.h:53
RPCRTAPI RPC_STATUS RPC_ENTRY I_RpcReceive(RPC_MESSAGE *Message)
RPCRTAPI void *RPC_ENTRY I_RpcAllocate(unsigned int Size)
Definition: rpcrt4_main.c:717
void * ImportContext
Definition: rpcdcep.h:47
struct tagContext Context
Definition: acpixf.h:1012
unsigned int ULONG
Definition: retypes.h:1
struct _RPC_SERVER_INTERFACE * PRPC_SERVER_INTERFACE
PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint
Definition: rpcdcep.h:121
RPCRTAPI RPC_STATUS RPC_ENTRY I_RpcBindingInqTransportType(RPC_BINDING_HANDLE Binding, unsigned int *Type)
Definition: rpc_binding.c:958
ULONG DataRepresentation
Definition: rpcdcep.h:39
RPC_SYNTAX_IDENTIFIER InterfaceId
Definition: rpcdcep.h:117
RPC_BINDING_HANDLE Handle
Definition: rpcdcep.h:38
LPARAM lParam
Definition: combotst.c:139
RPC_STATUS WINAPI I_RpcBindingSetAsync(RPC_BINDING_HANDLE Binding, RPC_BLOCKING_FN BlockingFn)
Definition: rpc_binding.c:972
PRPC_DISPATCH_TABLE DispatchTable
Definition: rpcdcep.h:119
unsigned int RpcProtseqEndpointCount
Definition: rpcdcep.h:107
unsigned char * RpcProtocolSequence
Definition: rpcdcep.h:94