Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

115 lines
3.1 KiB

/*++
Copyright (c) 1991-1993 Microsoft Corporation
Module Name:
midles.h
Abstract:
This module contains definitions needed for encoding/decoding
support (serializing/deserializing a.k.a. pcikling).
Author:
Ryszard K. Kott (ryszardk) Oct 12, 1993
Revision History:
--*/
#ifndef __MIDLES_H__
#define __MIDLES_H__
/*
* Pickling support
*/
#define MIDL_ES_HEADER_SIZE 8
#define MIDL_ES_HEADER_PAD(x) ((((unsigned long)x)&7) ? (8-(((unsigned long)x)&7)) : 0)
typedef enum
{
MidlEncode,
MidlDecode,
MidlEncodeDecode } MIDL_ES_CODE;
typedef void (__RPC_FAR * MIDL_ES_ALLOC )
( IN OUT void __RPC_FAR * state,
OUT char __RPC_FAR * __RPC_FAR * pbuffer,
IN OUT unsigned int __RPC_FAR * psize );
typedef void (__RPC_FAR * MIDL_ES_WRITE)
( IN OUT void __RPC_FAR * state,
IN char __RPC_FAR * buffer,
IN unsigned int size );
typedef void (__RPC_FAR * MIDL_ES_READ)
( IN OUT void __RPC_FAR * state,
OUT char __RPC_FAR * __RPC_FAR * pbuffer,
IN OUT unsigned int __RPC_FAR * psize );
typedef struct _MIDL_ES_MESSAGE
{
RPC_MESSAGE rpcmsg;
int Opcode;
void __RPC_FAR * UserState;
unsigned long ByteCount;
MIDL_ES_ALLOC Alloc;
MIDL_ES_WRITE Write;
MIDL_ES_READ Read;
MIDL_ES_CODE Operation;
} MIDL_ES_MESSAGE, __RPC_FAR * MIDL_ES_HANDLE;
RPC_STATUS
MidlEncodingHandleCreate(
MIDL_ES_HANDLE __RPC_FAR * pHandle,
void __RPC_FAR * UserState,
MIDL_ES_ALLOC AllocFn,
MIDL_ES_WRITE WriteFn,
MIDL_ES_READ ReadFn,
MIDL_ES_CODE Operation );
RPC_STATUS
MidlEncodingHandleInit(
MIDL_ES_HANDLE pHandle,
void __RPC_FAR * UserState,
MIDL_ES_ALLOC AllocFn,
MIDL_ES_WRITE WriteFn,
MIDL_ES_READ ReadFn,
MIDL_ES_CODE Operation );
RPC_STATUS
MidlEncodingHandleFree(
MIDL_ES_HANDLE Handle );
#if defined(_MIPS_) || defined(_ALPHA_)
#define __RPC_UNALIGNED __unaligned
#else
#define __RPC_UNALIGNED
#endif
void I_MesMessageInit( PRPC_MESSAGE );
size_t I_MesAlignSizeByte( MIDL_ES_HANDLE );
void I_MesEncodeByte ( MIDL_ES_HANDLE, char __RPC_FAR * );
void I_MesDecodeByte ( MIDL_ES_HANDLE, char __RPC_FAR * );
size_t I_MesAlignSizeShort( MIDL_ES_HANDLE );
void I_MesEncodeShort ( MIDL_ES_HANDLE, short __RPC_UNALIGNED __RPC_FAR * );
void I_MesDecodeShort ( MIDL_ES_HANDLE, short __RPC_UNALIGNED __RPC_FAR * );
size_t I_MesAlignSizeLong( MIDL_ES_HANDLE );
void I_MesEncodeLong ( MIDL_ES_HANDLE, long __RPC_UNALIGNED __RPC_FAR * );
void I_MesDecodeLong ( MIDL_ES_HANDLE, long __RPC_UNALIGNED __RPC_FAR * );
size_t I_MesAlignSizeHyper( MIDL_ES_HANDLE );
void I_MesEncodeHyper ( MIDL_ES_HANDLE, double __RPC_UNALIGNED __RPC_FAR * );
void I_MesDecodeHyper ( MIDL_ES_HANDLE, double __RPC_UNALIGNED __RPC_FAR * );
#endif /* __MIDLES_H__ */