wine/include/midles.h
2015-03-04 21:50:37 +09:00

135 lines
4.4 KiB
C

/*
* NDR Serialization Services
*
* Copyright (c) 2007 Robert Shearman for CodeWeavers
*
* This library is free software; you can redistribute it and/or
* 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
*/
#ifndef __WINE_MIDLES_H__
#define __WINE_MIDLES_H__
#include <rpcndr.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef enum
{
MES_ENCODE,
MES_DECODE,
MES_ENCODE_NDR64
} MIDL_ES_CODE;
typedef enum
{
MES_INCREMENTAL_HANDLE,
MES_FIXED_BUFFER_HANDLE,
MES_DYNAMIC_BUFFER_HANDLE
} MIDL_ES_HANDLE_STYLE;
typedef void (__RPC_USER * MIDL_ES_ALLOC)(void *,char **,unsigned int *);
typedef void (__RPC_USER * MIDL_ES_WRITE)(void *,char *,unsigned int);
typedef void (__RPC_USER * MIDL_ES_READ)(void *,char **,unsigned int *);
typedef struct _MIDL_ES_MESSAGE
{
MIDL_STUB_MESSAGE StubMsg;
MIDL_ES_CODE Operation;
void *UserState;
ULONG MesVersion : 8;
ULONG HandleStyle : 8;
ULONG HandleFlags : 8;
ULONG Reserve : 8;
MIDL_ES_ALLOC Alloc;
MIDL_ES_WRITE Write;
MIDL_ES_READ Read;
unsigned char *Buffer;
ULONG BufferSize;
unsigned char **pDynBuffer;
ULONG *pEncodedSize;
RPC_SYNTAX_IDENTIFIER InterfaceId;
ULONG ProcNumber;
ULONG AlienDataRep;
ULONG IncrDataSize;
ULONG ByteCount;
} MIDL_ES_MESSAGE, *PMIDL_ES_MESSAGE;
typedef PMIDL_ES_MESSAGE MIDL_ES_HANDLE;
typedef struct _MIDL_TYPE_PICKLING_INFO
{
ULONG Version;
ULONG Flags;
UINT_PTR Reserved[3];
} MIDL_TYPE_PICKLING_INFO, *PMIDL_TYPE_PICKLING_INFO;
RPC_STATUS RPC_ENTRY
MesEncodeIncrementalHandleCreate(void *,MIDL_ES_ALLOC,MIDL_ES_WRITE,handle_t *);
RPC_STATUS RPC_ENTRY
MesDecodeIncrementalHandleCreate(void *,MIDL_ES_READ,handle_t *);
RPC_STATUS RPC_ENTRY
MesIncrementalHandleReset(handle_t,void *,MIDL_ES_ALLOC,MIDL_ES_WRITE,MIDL_ES_READ,MIDL_ES_CODE);
RPC_STATUS RPC_ENTRY
MesEncodeFixedBufferHandleCreate(char *,ULONG,ULONG *,handle_t *);
RPC_STATUS RPC_ENTRY
MesEncodeDynBufferHandleCreate(char **,ULONG *,handle_t *);
RPC_STATUS RPC_ENTRY
MesDecodeBufferHandleCreate(char *,ULONG,handle_t *);
RPC_STATUS RPC_ENTRY
MesBufferHandleReset(handle_t,ULONG,MIDL_ES_CODE,char **,ULONG,ULONG *);
RPC_STATUS RPC_ENTRY
MesHandleFree(handle_t);
RPC_STATUS RPC_ENTRY
MesInqProcEncodingId(handle_t,PRPC_SYNTAX_IDENTIFIER,ULONG *);
SIZE_T RPC_ENTRY
NdrMesSimpleTypeAlignSize(handle_t);
void RPC_ENTRY
NdrMesSimpleTypeDecode(handle_t,void *,short);
void RPC_ENTRY
NdrMesSimpleTypeEncode(handle_t,const MIDL_STUB_DESC *,const void *,short);
SIZE_T RPC_ENTRY
NdrMesTypeAlignSize(handle_t,const MIDL_STUB_DESC *,PFORMAT_STRING,const void *);
void RPC_ENTRY
NdrMesTypeEncode(handle_t,const MIDL_STUB_DESC *,PFORMAT_STRING,const void *);
void RPC_ENTRY
NdrMesTypeDecode(handle_t,const MIDL_STUB_DESC *,PFORMAT_STRING,void *);
SIZE_T RPC_ENTRY
NdrMesTypeAlignSize2(handle_t,const MIDL_TYPE_PICKLING_INFO *,const MIDL_STUB_DESC *,PFORMAT_STRING,const void *);
void RPC_ENTRY
NdrMesTypeEncode2(handle_t,const MIDL_TYPE_PICKLING_INFO *,const MIDL_STUB_DESC *,PFORMAT_STRING,const void *);
void RPC_ENTRY
NdrMesTypeDecode2(handle_t,const MIDL_TYPE_PICKLING_INFO *,const MIDL_STUB_DESC *,PFORMAT_STRING,void *);
void RPC_ENTRY
NdrMesTypeFree2(handle_t,const MIDL_TYPE_PICKLING_INFO *,const MIDL_STUB_DESC *,PFORMAT_STRING,void *);
void RPC_VAR_ENTRY
NdrMesProcEncodeDecode(handle_t,const MIDL_STUB_DESC *,PFORMAT_STRING,...);
CLIENT_CALL_RETURN RPC_VAR_ENTRY
NdrMesProcEncodeDeocde2(handle_t,const MIDL_STUB_DESC *,PFORMAT_STRING,...);
#ifdef __cplusplus
}
#endif
#endif /* __WINE_MIDLES_H__ */