diff --git a/include/Makefile.in b/include/Makefile.in index 8617c431dfc..d2ceb153961 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -234,6 +234,7 @@ SRCDIR_INCLUDES = \ mciavi.h \ mcx.h \ mediaerr.h \ + midles.h \ minmax.h \ mmddk.h \ mmreg.h \ diff --git a/include/midles.h b/include/midles.h new file mode 100644 index 00000000000..213ff7c147b --- /dev/null +++ b/include/midles.h @@ -0,0 +1,133 @@ +/* + * 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 + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum +{ + MES_ENCODE, + MES_DECODE +} 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; + unsigned char *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__ */