1 | /*
|
---|
2 | * RPC format chars, as found by studying MIDL output.
|
---|
3 | * Some, but not all, usage of these are explained on MSDN.
|
---|
4 | */
|
---|
5 |
|
---|
6 | /*
|
---|
7 | * Sun LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
|
---|
8 | * other than GPL or LGPL is available it will apply instead, Sun elects to use only
|
---|
9 | * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
|
---|
10 | * a choice of LGPL license versions is made available with the language indicating
|
---|
11 | * that LGPLv2 or any later version may be used, or where a choice of which version
|
---|
12 | * of the LGPL is applied is otherwise unspecified.
|
---|
13 | */
|
---|
14 |
|
---|
15 | #ifndef __WINE_RPCFC_H
|
---|
16 | #define __WINE_RPCFC_H
|
---|
17 |
|
---|
18 | /* base types */
|
---|
19 | #define RPC_FC_BYTE 0x01
|
---|
20 | #define RPC_FC_CHAR 0x02
|
---|
21 | #define RPC_FC_SMALL 0x03
|
---|
22 | #define RPC_FC_USMALL 0x04
|
---|
23 | #define RPC_FC_WCHAR 0x05
|
---|
24 | #define RPC_FC_SHORT 0x06
|
---|
25 | #define RPC_FC_USHORT 0x07
|
---|
26 | #define RPC_FC_LONG 0x08
|
---|
27 | #define RPC_FC_ULONG 0x09
|
---|
28 | #define RPC_FC_FLOAT 0x0a
|
---|
29 | #define RPC_FC_HYPER 0x0b
|
---|
30 | #define RPC_FC_DOUBLE 0x0c
|
---|
31 | #define RPC_FC_ENUM16 0x0d
|
---|
32 | #define RPC_FC_ENUM32 0x0e
|
---|
33 | #define RPC_FC_IGNORE 0x0f
|
---|
34 | #define RPC_FC_ERROR_STATUS_T 0x10
|
---|
35 |
|
---|
36 | /* other stuff */
|
---|
37 | #define RPC_FC_RP 0x11 /* reference pointer */
|
---|
38 | #define RPC_FC_UP 0x12 /* unique pointer */
|
---|
39 | #define RPC_FC_OP 0x13 /* unique pointer in object ? */
|
---|
40 | #define RPC_FC_FP 0x14 /* full pointer */
|
---|
41 |
|
---|
42 | #define RPC_FC_STRUCT 0x15 /* simple structure */
|
---|
43 | /* FC_STRUCT: align-1, NdrFcShort(size), fields */
|
---|
44 |
|
---|
45 | #define RPC_FC_PSTRUCT 0x16 /* simple structure w/ pointers */
|
---|
46 | /* FC_PTRUCT: align-1, NdrFcShort(size), ptrs, fields */
|
---|
47 |
|
---|
48 | #define RPC_FC_CSTRUCT 0x17 /* conformant structure */
|
---|
49 |
|
---|
50 | #define RPC_FC_CPSTRUCT 0x18 /* conformant structure w/ pointers */
|
---|
51 |
|
---|
52 | #define RPC_FC_CVSTRUCT 0x19 /* conformant varying struct */
|
---|
53 |
|
---|
54 | #define RPC_FC_BOGUS_STRUCT 0x1a /* complex structure */
|
---|
55 |
|
---|
56 | #define RPC_FC_CARRAY 0x1b /* conformant array */
|
---|
57 | /* FC_CARRAY: align-1, NdrFcShort(size), conformance, ptrs, fields */
|
---|
58 | #define RPC_FC_CVARRAY 0x1c /* conformant varying array */
|
---|
59 | /* FC_CARRAY: align-1, NdrFcShort(size), conformance, variance, ptrs, fields */
|
---|
60 | #define RPC_FC_SMFARRAY 0x1d /* small (<64K) fixed array */
|
---|
61 | /* FC_SMFARRAY: align-1, NdrFcShort(size), ptrs, fields */
|
---|
62 |
|
---|
63 | #define RPC_FC_LGFARRAY 0x1e /* large (>= 64k) fixed array */
|
---|
64 |
|
---|
65 | #define RPC_FC_SMVARRAY 0x1f /* small (<64k) varying array */
|
---|
66 |
|
---|
67 | #define RPC_FC_LGVARRAY 0x20 /* large (>= 64k) varying array */
|
---|
68 |
|
---|
69 | #define RPC_FC_BOGUS_ARRAY 0x21 /* complex array */
|
---|
70 |
|
---|
71 | #define RPC_FC_C_CSTRING 0x22
|
---|
72 | #define RPC_FC_C_SSTRING 0x24
|
---|
73 | #define RPC_FC_C_WSTRING 0x25
|
---|
74 | #define RPC_FC_CSTRING 0x26
|
---|
75 | #define RPC_FC_SSTRING 0x28
|
---|
76 | #define RPC_FC_WSTRING 0x29
|
---|
77 |
|
---|
78 | #define RPC_FC_ENCAPSULATED_UNION 0x2a
|
---|
79 | #define RPC_FC_NON_ENCAPSULATED_UNION 0x2b
|
---|
80 |
|
---|
81 | #define RPC_FC_BYTE_COUNT_POINTER 0x2c /* [byte_count] ACF attribute */
|
---|
82 |
|
---|
83 | #define RPC_FC_TRANSMIT_AS 0x2d
|
---|
84 | #define RPC_FC_REPRESENT_AS 0x2e
|
---|
85 |
|
---|
86 | #define RPC_FC_IP 0x2f /* interface pointer */
|
---|
87 | /* FC_IP: FC_CONSTANT_IID iid */
|
---|
88 | /* FC_IP: FC_PAD correlation */
|
---|
89 |
|
---|
90 | #define RPC_FC_BIND_CONTEXT 0x30
|
---|
91 |
|
---|
92 | #define RPC_FC_BIND_GENERIC 0x31
|
---|
93 | #define RPC_FC_BIND_PRIMITIVE 0x32
|
---|
94 | #define RPC_FC_AUTO_HANDLE 0x33
|
---|
95 | #define RPC_FC_CALLBACK_HANDLE 0x34
|
---|
96 |
|
---|
97 | #define RPC_FC_POINTER 0x36
|
---|
98 |
|
---|
99 | #define RPC_FC_ALIGNM4 0x38
|
---|
100 | #define RPC_FC_ALIGNM8 0x39
|
---|
101 |
|
---|
102 | #define RPC_FC_STRUCTPAD1 0x3d
|
---|
103 | #define RPC_FC_STRUCTPAD2 0x3e
|
---|
104 | #define RPC_FC_STRUCTPAD3 0x3f
|
---|
105 | #define RPC_FC_STRUCTPAD4 0x40
|
---|
106 | #define RPC_FC_STRUCTPAD5 0x41
|
---|
107 | #define RPC_FC_STRUCTPAD6 0x42
|
---|
108 | #define RPC_FC_STRUCTPAD7 0x43
|
---|
109 |
|
---|
110 | #define RPC_FC_STRING_SIZED 0x44
|
---|
111 |
|
---|
112 | #define RPC_FC_NO_REPEAT 0x46
|
---|
113 | #define RPC_FC_FIXED_REPEAT 0x47
|
---|
114 | #define RPC_FC_VARIABLE_REPEAT 0x48
|
---|
115 | #define RPC_FC_FIXED_OFFSET 0x49
|
---|
116 | #define RPC_FC_VARIABLE_OFFSET 0x4a
|
---|
117 |
|
---|
118 | #define RPC_FC_PP 0x4b /* pointer layout */
|
---|
119 | /* FC_PP: FC_PAD layouts */
|
---|
120 | /* layouts: FC_NO_REPEAT FC_PAD instance */
|
---|
121 | /* instance: NdrFcShort(memofs), NdrFcShort(bufofs), desc */
|
---|
122 |
|
---|
123 | #define RPC_FC_EMBEDDED_COMPLEX 0x4c
|
---|
124 | /* FC_EMBEDDED_COMPLEX: padding, NdrFcShort(typeofs) */
|
---|
125 |
|
---|
126 | #define RPC_FC_IN_PARAM 0x4d
|
---|
127 | /* FC_IN_PARAM: stacksiz, NdrFcShort(typeofs) */
|
---|
128 | #define RPC_FC_IN_PARAM_BASETYPE 0x4e
|
---|
129 | /* FC_IN_PARAM_BASETYPE: basetype */
|
---|
130 | #define RPC_FC_IN_PARAM_NO_FREE_INST 0x4f
|
---|
131 | #define RPC_FC_IN_OUT_PARAM 0x50
|
---|
132 | /* FC_IN_OUT_PARAM: stacksiz, NdrFcShort(typeofs) */
|
---|
133 | #define RPC_FC_OUT_PARAM 0x51
|
---|
134 | /* FC_OUT_PARAM: stacksiz, NdrFcShort(typeofs) */
|
---|
135 | #define RPC_FC_RETURN_PARAM 0x52
|
---|
136 | /* FC_RETURN_PARAM: stacksiz, NdrFcShort(typeofs) */
|
---|
137 | #define RPC_FC_RETURN_PARAM_BASETYPE 0x53
|
---|
138 | /* FC_RETURN_PARAM_BASETYPE: basetype */
|
---|
139 |
|
---|
140 | #define RPC_FC_DEREFERENCE 0x54
|
---|
141 | #define RPC_FC_DIV_2 0x55
|
---|
142 | #define RPC_FC_MULT_2 0x56
|
---|
143 | #define RPC_FC_ADD_1 0x57
|
---|
144 | #define RPC_FC_SUB_1 0x58
|
---|
145 |
|
---|
146 | #define RPC_FC_CALLBACK 0x59
|
---|
147 |
|
---|
148 | #define RPC_FC_CONSTANT_IID 0x5a
|
---|
149 | /* FC_CONSTANT_IID: NdrFcLong(), NdrFcShort(), NdrFcShort(), 8x () */
|
---|
150 |
|
---|
151 | #define RPC_FC_END 0x5b
|
---|
152 | #define RPC_FC_PAD 0x5c
|
---|
153 |
|
---|
154 | #define RPC_FC_USER_MARSHAL 0xb4
|
---|
155 |
|
---|
156 | #define RPC_FC_RANGE 0xb7
|
---|
157 |
|
---|
158 | #define RPC_FC_INT3264 0xb8
|
---|
159 | #define RPC_FC_UINT3264 0xb9
|
---|
160 |
|
---|
161 | /* FC_RP/UP/OP/FP: flags, NdrFcShort(typeofs)/basetype */
|
---|
162 | #define RPC_FC_P_ALLOCALLNODES 0x01
|
---|
163 | #define RPC_FC_P_DONTFREE 0x02
|
---|
164 | #define RPC_FC_P_ONSTACK 0x04 /* [alloced_on_stack] */
|
---|
165 | #define RPC_FC_P_SIMPLEPOINTER 0x08 /* [simple_pointer] */
|
---|
166 | #define RPC_FC_P_DEREF 0x10
|
---|
167 |
|
---|
168 | #define RPC_FC_BIND_EXPLICIT 0x00
|
---|
169 |
|
---|
170 | /* proc header: oiflags, NdrFcLong(rpcflags), NdrFcShort(procnum), NdrFcShort(stacksiz),
|
---|
171 | * oi2 header: NdrFcShort(clientbuf), NdrFcShort(servbuf), oi2flags, parmcount
|
---|
172 | * oi2 parameters: NdrFcShort(flags), NdrFcShort(stackofs), NdrFcShort(typeofs)/basetype */
|
---|
173 | #define RPC_FC_PROC_OIF_FULLPTR 0x01
|
---|
174 | #define RPC_FC_PROC_OIF_RPCSSALLOC 0x02
|
---|
175 | #define RPC_FC_PROC_OIF_OBJECT 0x04
|
---|
176 | #define RPC_FC_PROC_OIF_RPCFLAGS 0x08
|
---|
177 | #define RPC_FC_PROC_OIF_OBJ_V2 0x20
|
---|
178 | #define RPC_FC_PROC_OIF_NEWINIT 0x40
|
---|
179 |
|
---|
180 | #define RPC_FC_PROC_PF_MUSTSIZE 0x0001
|
---|
181 | #define RPC_FC_PROC_PF_MUSTFREE 0x0002
|
---|
182 | #define RPC_FC_PROC_PF_PIPE 0x0004
|
---|
183 | #define RPC_FC_PROC_PF_IN 0x0008
|
---|
184 | #define RPC_FC_PROC_PF_OUT 0x0010
|
---|
185 | #define RPC_FC_PROC_PF_RETURN 0x0020
|
---|
186 | #define RPC_FC_PROC_PF_BASETYPE 0x0040
|
---|
187 | #define RPC_FC_PROC_PF_BYVAL 0x0080
|
---|
188 | #define RPC_FC_PROC_PF_SIMPLEREF 0x0100
|
---|
189 | #define RPC_FC_PROC_PF_DONTFREEINST 0x0200
|
---|
190 | #define RPC_FC_PROC_PF_SAVEASYNC 0x0400
|
---|
191 | #define RPC_FC_PROC_PF_SRVALLOCSIZE 0xe000 /* in 8 byte units */
|
---|
192 |
|
---|
193 | /* correlation types */
|
---|
194 | #define RPC_FC_NORMAL_CONFORMANCE 0x00
|
---|
195 | #define RPC_FC_POINTER_CONFORMANCE 0x10
|
---|
196 | #define RPC_FC_TOP_LEVEL_CONFORMANCE 0x20
|
---|
197 | #define RPC_FC_CONSTANT_CONFORMANCE 0x40
|
---|
198 | #define RPC_FC_TOP_LEVEL_MULTID_CONFORMANCE 0x80
|
---|
199 |
|
---|
200 | /* user marshal flags */
|
---|
201 | #define USER_MARSHAL_UNIQUE 0x80
|
---|
202 | #define USER_MARSHAL_REF 0x40
|
---|
203 | #define USER_MARSHAL_POINTER 0xc0
|
---|
204 | #define USER_MARSHAL_IID 0x20
|
---|
205 |
|
---|
206 | /* context handle flags */
|
---|
207 | #define NDR_CONTEXT_HANDLE_CANNOT_BE_NULL 0x01
|
---|
208 | #define NDR_CONTEXT_HANDLE_SERIALIZE 0x02
|
---|
209 | #define NDR_CONTEXT_HANDLE_NO_SERIALIZE 0x04
|
---|
210 | #define NDR_STRICT_CONTEXT_HANDLE 0x08
|
---|
211 |
|
---|
212 | #endif /* __WINE_RPCFC_H */
|
---|