rpcdcep.h revision 589fd26cedb2b4ebbed14f2964cad03cc8ebbca2
/*
* Copyright (C) 2000 Francois Gouget
*
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
/*
* Sun LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
* other than GPL or LGPL is available it will apply instead, Sun elects to use only
* the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
* a choice of LGPL license versions is made available with the language indicating
* that LGPLv2 or any later version may be used, or where a choice of which version
* of the LGPL is applied is otherwise unspecified.
*/
#ifndef __WINE_RPCDCEP_H
#define __WINE_RPCDCEP_H
#ifdef __cplusplus
extern "C" {
#endif
typedef struct _RPC_VERSION {
unsigned short MajorVersion;
unsigned short MinorVersion;
} RPC_VERSION;
typedef struct _RPC_SYNTAX_IDENTIFIER {
typedef struct _RPC_MESSAGE
{
void* Buffer;
unsigned int BufferLength;
unsigned int ProcNum;
void* RpcInterfaceInformation;
void* ReservedForRuntime;
void* ImportContext;
} RPC_MESSAGE, *PRPC_MESSAGE;
/* or'ed with ProcNum */
#define RPC_FLAGS_VALID_BIT 0x00008000
#define RPC_CONTEXT_HANDLE_DEFAULT_GUARD ((void *)0xfffff00d)
#define RPC_CONTEXT_HANDLE_DEFAULT_FLAGS 0x00000000
#define RPC_CONTEXT_HANDLE_FLAGS 0x30000000
#define RPC_CONTEXT_HANDLE_SERIALIZE 0x10000000
#define RPC_CONTEXT_HANDLE_DONT_SERIALIZE 0x20000000
#define RPC_TYPE_STRICT_CONTEXT_HANDLE 0x40000000
#define RPC_NCA_FLAGS_DEFAULT 0x00000000
#define RPC_NCA_FLAGS_IDEMPOTENT 0x00000001
#define RPC_NCA_FLAGS_BROADCAST 0x00000002
#define RPC_NCA_FLAGS_MAYBE 0x00000004
#define RPC_BUFFER_COMPLETE 0x00001000
#define RPC_BUFFER_PARTIAL 0x00002000
#define RPC_BUFFER_EXTRA 0x00004000
#define RPC_BUFFER_ASYNC 0x00008000
#define RPC_BUFFER_NONOTIFY 0x00010000
#define RPCFLG_MESSAGE 0x01000000
#define RPCFLG_HAS_MULTI_SYNTAXES 0x02000000
#define RPCFLG_HAS_CALLBACK 0x04000000
#define RPCFLG_AUTO_COMPLETE 0x08000000
#define RPCFLG_LOCAL_CALL 0x10000000
#define RPCFLG_INPUT_SYNCHRONOUS 0x20000000
#define RPCFLG_ASYNCHRONOUS 0x40000000
#define RPCFLG_NON_NDR 0x80000000
typedef RPC_STATUS (RPC_ENTRY *RPC_FORWARD_FUNCTION)(UUID *InterfaceId, RPC_VERSION *InterfaceVersion, UUID *ObjectId, unsigned char *Rpcpro, void **ppDestEndpoint);
typedef struct
{
unsigned int DispatchTableCount;
typedef struct _RPC_PROTSEQ_ENDPOINT
{
unsigned char* RpcProtocolSequence;
unsigned char* Endpoint;
#define NT351_INTERFACE_SIZE 0x40
#define RPC_INTERFACE_HAS_PIPES 0x0001
typedef struct _RPC_SERVER_INTERFACE
{
unsigned int Length;
unsigned int RpcProtseqEndpointCount;
void const* InterpreterInfo;
unsigned int Flags;
typedef struct _RPC_CLIENT_INTERFACE
{
unsigned int Length;
unsigned int RpcProtseqEndpointCount;
void const* InterpreterInfo;
unsigned int Flags;
#define TRANSPORT_TYPE_CN 0x01
#define TRANSPORT_TYPE_DG 0x02
#define TRANSPORT_TYPE_LPC 0x04
#define TRANSPORT_TYPE_WMSG 0x08
I_RpcAllocate( unsigned int Size );
I_RpcGetCurrentCallHandle( void );
/*
* The platform SDK headers don't define these functions at all if WINNT is defined
* The MSVC6 headers define two different sets of functions :
* If WINNT and MSWMSG are defined, the NT versions are defined
* If WINNT is not defined, the windows 9x versions are defined.
* Note that the prototypes for I_RpcBindingSetAsync are different for each case.
*
* Wine defaults to the WinNT case and only defines these function is MSWMSG is
* defined. Defining the NT functions by default causes MIDL generated proxies
* to not compile.
*/
#if 1 /* WINNT */
#ifdef MSWMSG
I_RpcServerStopListening( void );
/* WINNT */
#endif
#else
/* WIN9x */
I_RpcServerStartListening( void* hWnd );
I_RpcServerStopListening( void );
#endif
#ifdef __cplusplus
}
#endif
#endif /*__WINE_RPCDCEP_H */