|
|
/*++
Copyright (c) Microsoft Corporation. All rights reserved.
Module Name:
midles.h
Abstract:
This module contains definitions needed for encoding/decoding support (serializing/deserializing a.k.a. pickling).
--*/
#ifndef __MIDLES_H__
#define __MIDLES_H__
#if _MSC_VER > 1000
#pragma once
#endif
#include <rpcndr.h>
#ifdef __cplusplus
extern "C" { #endif
/*
* Pickling support */ 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 ) ( IN OUT void * state, OUT char ** pbuffer, IN OUT unsigned int * psize );
typedef void (__RPC_USER * MIDL_ES_WRITE) ( IN OUT void * state, IN char * buffer, IN unsigned int size );
typedef void (__RPC_USER * MIDL_ES_READ) ( IN OUT void * state, OUT char ** pbuffer, IN OUT unsigned int * psize );
typedef handle_t MIDL_ES_HANDLE;
typedef struct _MIDL_TYPE_PICKLING_INFO { unsigned long Version; unsigned long Flags; UINT_PTR Reserved[3]; } MIDL_TYPE_PICKLING_INFO, * PMIDL_TYPE_PICKLING_INFO;
RPC_STATUS RPC_ENTRY MesEncodeIncrementalHandleCreate( void * UserState, MIDL_ES_ALLOC AllocFn, MIDL_ES_WRITE WriteFn, handle_t * pHandle );
RPC_STATUS RPC_ENTRY MesDecodeIncrementalHandleCreate( void * UserState, MIDL_ES_READ ReadFn, handle_t * pHandle );
RPC_STATUS RPC_ENTRY MesIncrementalHandleReset( handle_t Handle, void * UserState, MIDL_ES_ALLOC AllocFn, MIDL_ES_WRITE WriteFn, MIDL_ES_READ ReadFn, MIDL_ES_CODE Operation );
RPC_STATUS RPC_ENTRY MesEncodeFixedBufferHandleCreate( char * pBuffer, unsigned long BufferSize, unsigned long * pEncodedSize, handle_t * pHandle );
RPC_STATUS RPC_ENTRY MesEncodeDynBufferHandleCreate( char * * pBuffer, unsigned long * pEncodedSize, handle_t * pHandle );
RPC_STATUS RPC_ENTRY MesDecodeBufferHandleCreate( char * pBuffer, unsigned long BufferSize, handle_t * pHandle );
RPC_STATUS RPC_ENTRY MesBufferHandleReset( handle_t Handle, unsigned long HandleStyle, MIDL_ES_CODE Operation, char * * pBuffer, unsigned long BufferSize, unsigned long * pEncodedSize );
RPC_STATUS RPC_ENTRY MesHandleFree( handle_t Handle );
RPC_STATUS RPC_ENTRY MesInqProcEncodingId( handle_t Handle, PRPC_SYNTAX_IDENTIFIER pInterfaceId, unsigned long * pProcNum );
size_t RPC_ENTRY NdrMesSimpleTypeAlignSize ( handle_t );
void RPC_ENTRY NdrMesSimpleTypeDecode( handle_t Handle, void * pObject, short Size );
void RPC_ENTRY NdrMesSimpleTypeEncode( handle_t Handle, const MIDL_STUB_DESC * pStubDesc, const void * pObject, short Size );
size_t RPC_ENTRY NdrMesTypeAlignSize( handle_t Handle, const MIDL_STUB_DESC * pStubDesc, PFORMAT_STRING pFormatString, const void * pObject );
void RPC_ENTRY NdrMesTypeEncode( handle_t Handle, const MIDL_STUB_DESC * pStubDesc, PFORMAT_STRING pFormatString, const void * pObject );
void RPC_ENTRY NdrMesTypeDecode( handle_t Handle, const MIDL_STUB_DESC * pStubDesc, PFORMAT_STRING pFormatString, void * pObject );
size_t RPC_ENTRY NdrMesTypeAlignSize2( handle_t Handle, const MIDL_TYPE_PICKLING_INFO * pPicklingInfo, const MIDL_STUB_DESC * pStubDesc, PFORMAT_STRING pFormatString, const void * pObject );
void RPC_ENTRY NdrMesTypeEncode2( handle_t Handle, const MIDL_TYPE_PICKLING_INFO * pPicklingInfo, const MIDL_STUB_DESC * pStubDesc, PFORMAT_STRING pFormatString, const void * pObject );
void RPC_ENTRY NdrMesTypeDecode2( handle_t Handle, const MIDL_TYPE_PICKLING_INFO * pPicklingInfo, const MIDL_STUB_DESC * pStubDesc, PFORMAT_STRING pFormatString, void * pObject );
void RPC_ENTRY NdrMesTypeFree2( handle_t Handle, const MIDL_TYPE_PICKLING_INFO * pPicklingInfo, const MIDL_STUB_DESC * pStubDesc, PFORMAT_STRING pFormatString, void * pObject );
void RPC_VAR_ENTRY NdrMesProcEncodeDecode( handle_t Handle, const MIDL_STUB_DESC * pStubDesc, PFORMAT_STRING pFormatString, ... );
CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrMesProcEncodeDecode2( handle_t Handle, const MIDL_STUB_DESC * pStubDesc, PFORMAT_STRING pFormatString, ... );
// ndr64 entries.
size_t RPC_ENTRY NdrMesTypeAlignSize3( handle_t Handle, const MIDL_TYPE_PICKLING_INFO * pPicklingInfo, const MIDL_STUBLESS_PROXY_INFO* pProxyInfo, const unsigned long ** ArrTypeOffset, unsigned long nTypeIndex, const void * pObject );
void RPC_ENTRY NdrMesTypeEncode3( handle_t Handle, const MIDL_TYPE_PICKLING_INFO * pPicklingInfo, const MIDL_STUBLESS_PROXY_INFO* pProxyInfo, const unsigned long ** ArrTypeOffset, unsigned long nTypeIndex, const void * pObject );
void RPC_ENTRY NdrMesTypeDecode3( handle_t Handle, const MIDL_TYPE_PICKLING_INFO * pPicklingInfo, const MIDL_STUBLESS_PROXY_INFO* pProxyInfo, const unsigned long ** ArrTypeOffset, unsigned long nTypeIndex, void * pObject );
void RPC_ENTRY NdrMesTypeFree3( handle_t Handle, const MIDL_TYPE_PICKLING_INFO * pPicklingInfo, const MIDL_STUBLESS_PROXY_INFO* pProxyInfo, const unsigned long ** ArrTypeOffset, unsigned long nTypeIndex, void * pObject );
CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrMesProcEncodeDecode3( handle_t Handle, const MIDL_STUBLESS_PROXY_INFO* pProxyInfo, unsigned long nProcNum, void *pReturnValue, ... );
void RPC_ENTRY NdrMesSimpleTypeDecodeAll( handle_t Handle, const MIDL_STUBLESS_PROXY_INFO* pProxyInfo, void * pObject, short Size );
void RPC_ENTRY NdrMesSimpleTypeEncodeAll( handle_t Handle, const MIDL_STUBLESS_PROXY_INFO* pProxyInfo, const void * pObject, short Size );
size_t RPC_ENTRY NdrMesSimpleTypeAlignSizeAll ( handle_t Handle, const MIDL_STUBLESS_PROXY_INFO* pProxyInfo );
#ifdef __cplusplus
} #endif
#endif /* __MIDLES_H__ */
|