1 /*++
2
3 Copyright (c) Microsoft Corporation. All rights reserved.
4
5 Module Name:
6
7       rpcndr.h
8
9 Abstract:
10
11       Definitions for stub data structures and prototypes of helper functions.
12
13 --*/
14
15 // This version of the rpcndr.h file corresponds to MIDL version 5.0.+
16 // used with Windows 2000/XP build 1700+
17
18
19 #ifndef __RPCNDR_H_VERSION__
20 #define __RPCNDR_H_VERSION__             ( 500 )
21 #endif // __RPCNDR_H_VERSION__
22
23
24 #ifndef __RPCNDR_H__
25 #define __RPCNDR_H__
26
27 #if _MSC_VER > 1000
28 #pragma once
29 #endif
30
31 #ifdef __REQUIRED_RPCNDR_H_VERSION__
32       #if ( __RPCNDR_H_VERSION__ < __REQUIRED_RPCNDR_H_VERSION__ )
33              #error incorrect <rpcndr.h> version. Use the header that matches with the MIDL compiler.
34       #endif
35 #endif
36
37
38 #include <pshpack8.h>
39 #include <basetsd.h>
40 #if !defined(_KRPCENV_)
41 #include <rpcnsip.h>
42 #endif
43
44 #include <rpcsal.h>
45
46 #ifdef __cplusplus
47 extern "C" {
48 #endif
49
50 /****************************************************************************
51
52         Network Computing Architecture (NCA) definition:
53
54         Network Data Representation: (NDR) Label format:
55         An unsigned long (32 bits) with the following layout:
56
57         3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
58         1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
59       +---------------+---------------+---------------+-------+-------+
60       |     Reserved      |     Reserved      |Floating point | Int     | Char  |
61       |                         |                         |Representation | Rep.  | Rep.  |
62       +---------------+---------------+---------------+-------+-------+
63
64         Where
65
66                Reserved:
67
68                      Must be zero (0) for NCA 1.5 and NCA 2.0.
69
70                Floating point Representation is:
71
72                      0 - IEEE
73                      1 - VAX
74                      2 - Cray
75                      3 - IBM
76
77                Int Rep. is Integer Representation:
78
79                      0 - Big Endian
80                      1 - Little Endian
81
82                Char Rep. is Character Representation:
83
84                      0 - ASCII
85                      1 - EBCDIC
86
87         The Microsoft Local Data Representation (for all platforms which are
88         of interest currently is edefined below:
89
90  ****************************************************************************/
91
92 #define NDR_CHAR_REP_MASK                         (unsigned long)0X0000000FL
93 #define NDR_INT_REP_MASK                          (unsigned long)0X000000F0L
94 #define NDR_FLOAT_REP_MASK                       (unsigned long)0X0000FF00L
95
96 #define NDR_LITTLE_ENDIAN                         (unsigned long)0X00000010L
97 #define NDR_BIG_ENDIAN                              (unsigned long)0X00000000L
98
99 #define NDR_IEEE_FLOAT                              (unsigned long)0X00000000L
100 #define NDR_VAX_FLOAT                               (unsigned long)0X00000100L
101 #define NDR_IBM_FLOAT                               (unsigned long)0X00000300L
102
103 #define NDR_ASCII_CHAR                              (unsigned long)0X00000000L
104 #define NDR_EBCDIC_CHAR                            (unsigned long)0X00000001L
105
106 #if defined(__RPC_MAC__)
107 #define NDR_LOCAL_DATA_REPRESENTATION     (unsigned long)0X00000000L
108 #define NDR_LOCAL_ENDIAN                          NDR_BIG_ENDIAN
109 #else
110 #define NDR_LOCAL_DATA_REPRESENTATION     (unsigned long)0X00000010L
111 #define NDR_LOCAL_ENDIAN                          NDR_LITTLE_ENDIAN
112 #endif
113
114
115 /****************************************************************************
116  *  Macros for targeted platforms
117  ****************************************************************************/
118
119 #if (0x600 <= _WIN32_WINNT)
120 #define TARGET_IS_NT60_OR_LATER                               1
121 #else
122 #define TARGET_IS_NT60_OR_LATER                               0
123 #endif
124
125 #if (0x501 <= _WIN32_WINNT)
126 #define TARGET_IS_NT51_OR_LATER                               1
127 #else
128 #define TARGET_IS_NT51_OR_LATER                               0
129 #endif
130
131 #if (0x500 <= _WIN32_WINNT)
132 #define TARGET_IS_NT50_OR_LATER                               1
133 #else
134 #define TARGET_IS_NT50_OR_LATER                               0
135 #endif
136
137 #if (defined(_WIN32_DCOM) || 0x400 <= _WIN32_WINNT)
138 #define TARGET_IS_NT40_OR_LATER                               1
139 #else
140 #define TARGET_IS_NT40_OR_LATER                               0
141 #endif
142
143 #if (0x400 <= WINVER)
144 #define TARGET_IS_NT351_OR_WIN95_OR_LATER               1
145 #else
146 #define TARGET_IS_NT351_OR_WIN95_OR_LATER               0
147 #endif
148
149 /****************************************************************************
150  *  Other MIDL base types / predefined types:
151  ****************************************************************************/
152
153 #define small char
154 typedef unsigned char byte;
155 typedef byte cs_byte;
156 typedef unsigned char boolean;
157
158 #ifndef _HYPER_DEFINED
159 #define _HYPER_DEFINED
160
161 #if (!defined(_M_IX86) || (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64))
162 #define  hyper                  __int64
163 #define MIDL_uhyper  unsigned __int64
164 #else
165 typedef double  hyper;
166 typedef double MIDL_uhyper;
167 #endif
168
169 #endif // _HYPER_DEFINED
170
171 #ifndef _WCHAR_T_DEFINED
172 typedef unsigned short wchar_t;
173 #define _WCHAR_T_DEFINED
174 #endif
175
176 #ifndef _SIZE_T_DEFINED
177 #ifdef __RPC_WIN64__
178 typedef unsigned __int64 size_t;
179 #else
180 typedef unsigned int        size_t;
181 #endif
182 #define _SIZE_T_DEFINED
183 #endif
184
185 #ifdef __RPC_WIN32__
186 #if     (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)
187 #define __RPC_CALLEE           __stdcall
188 #else
189 #define __RPC_CALLEE
190 #endif
191 #endif
192
193 #ifndef __MIDL_USER_DEFINED
194 #define midl_user_allocate MIDL_user_allocate
195 #define midl_user_free        MIDL_user_free
196 #define __MIDL_USER_DEFINED
197 #endif
198
199 __post __maybenull
200 __post __writableTo(byteCount(size))  
201 void  * __RPC_USER MIDL_user_allocate(size_t size);
202 void                     __RPC_USER MIDL_user_free( __inout void  * );
203
204 __post __maybenull
205 __post __writableTo(pre byteCount(size))  
206 void * __RPC_USER I_RpcDefaultAllocate(
207                handle_t bh, size_t size, void * (* RealAlloc)(size_t) );
208
209 void __RPC_USER I_RpcDefaultFree(
210                handle_t bh, void *, void (*RealFree)(void *) );
211
212
213 #define RPC_VAR_ENTRY __cdecl
214
215
216 /* winnt only */
217 #if defined(_M_IX86) || defined(_M_AMD64) || defined(_M_IA64)
218 #define __MIDL_DECLSPEC_DLLIMPORT     __declspec(dllimport)
219 #define __MIDL_DECLSPEC_DLLEXPORT     __declspec(dllexport)
220 #else
221 #define __MIDL_DECLSPEC_DLLIMPORT
222 #define __MIDL_DECLSPEC_DLLEXPORT
223 #endif
224
225
226
227
228 /****************************************************************************
229  * Context handle management related definitions:
230  *
231  * Client and Server Contexts.
232  *
Lines 233 ... 3052 are skipped.
3053
3054 /* [partial_ignore] functions*/
3055 RPCRTAPI
3056 void
3057 RPC_ENTRY
3058 NdrPartialIgnoreClientMarshall(
3059       PMIDL_STUB_MESSAGE                pStubMsg,
3060       void *                                    pMemory
3061       );
3062
3063 RPCRTAPI
3064 void
3065 RPC_ENTRY
3066 NdrPartialIgnoreServerUnmarshall(
3067       PMIDL_STUB_MESSAGE                pStubMsg,
3068       void **                                   ppMemory
3069       );
3070
3071 RPCRTAPI
3072 void
3073 RPC_ENTRY
3074 NdrPartialIgnoreClientBufferSize(
3075       PMIDL_STUB_MESSAGE                pStubMsg,
3076       void *                                    pMemory
3077       );
3078
3079 RPCRTAPI
3080 void
3081 RPC_ENTRY
3082 NdrPartialIgnoreServerInitialize(
3083       PMIDL_STUB_MESSAGE                pStubMsg,
3084       void **                                   ppMemory,
3085       PFORMAT_STRING                       pFormat
3086       );
3087
3088
3089 void RPC_ENTRY
3090 RpcUserFree( handle_t AsyncHandle, void * pBuffer );
3091
3092 #ifdef __cplusplus
3093 }
3094 #endif
3095
3096 #include <poppack.h>
3097
3098 #endif /* __RPCNDR_H__ */
3099
3100
3101