dbghelp: Moved SymEnumLines to symbol.c to reuse the regex support.
[wine] / dlls / fusion / fusionpriv.h
1 /*
2  * fusion private definitions
3  *
4  * Copyright 2008 James Hawkins
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19  */
20
21 #ifndef __WINE_FUSION_PRIVATE__
22 #define __WINE_FUSION_PRIVATE__
23
24 #include <stdarg.h>
25
26 #include "windef.h"
27 #include "winbase.h"
28 #include "winuser.h"
29
30 #include <pshpack1.h>
31
32 typedef struct
33 {
34     ULONG Signature;
35     USHORT MajorVersion;
36     USHORT MinorVersion;
37     ULONG Reserved;
38     ULONG VersionLength;
39     LPSTR Version;
40     BYTE Flags;
41     WORD Streams;
42 } METADATAHDR;
43
44 typedef struct
45 {
46     DWORD Offset;
47     DWORD Size;
48 } METADATASTREAMHDR;
49
50 typedef struct
51 {
52     DWORD Reserved1;
53     BYTE MajorVersion;
54     BYTE MinorVersion;
55     BYTE HeapOffsetSizes;
56     BYTE Reserved2;
57     LARGE_INTEGER MaskValid;
58     LARGE_INTEGER MaskSorted;
59 } METADATATABLESHDR;
60
61 typedef struct
62 {
63     WORD Generation;
64     WORD Name;
65     WORD Mvid;
66     WORD EncId;
67     WORD EncBaseId;
68 } MODULETABLE;
69
70 typedef struct
71 {
72     DWORD Flags;
73     WORD Name;
74     WORD Namespace;
75     WORD Extends;
76     WORD FieldList;
77     WORD MethodList;
78 } TYPEDEFTABLE;
79
80 typedef struct
81 {
82     WORD ResolutionScope;
83     WORD Name;
84     WORD Namespace;
85 } TYPEREFTABLE;
86
87 typedef struct
88 {
89     WORD Flags;
90     WORD Name;
91     WORD Signature;
92 } FIELDTABLE;
93
94 typedef struct
95 {
96     DWORD HashAlgId;
97     WORD MajorVersion;
98     WORD MinorVersion;
99     WORD BuildNumber;
100     WORD RevisionNumber;
101     DWORD Flags;
102     WORD PublicKey;
103     WORD Name;
104     WORD Culture;
105 } ASSEMBLYTABLE;
106
107 typedef struct
108 {
109     DWORD Offset;
110     DWORD Flags;
111     WORD Name;
112     WORD Implementation;
113 } MANIFESTRESTABLE;
114
115 typedef struct
116 {
117     DWORD RVA;
118     WORD ImplFlags;
119     WORD Flags;
120     WORD Name;
121     WORD Signature;
122     WORD ParamList;
123 } METHODDEFTABLE;
124
125 typedef struct
126 {
127     WORD Flags;
128     WORD Sequence;
129     WORD Name;
130 } PARAMTABLE;
131
132 typedef struct
133 {
134     WORD Class;
135     WORD Interface;
136 } INTERFACEIMPLTABLE;
137
138 typedef struct
139 {
140     WORD Class;
141     WORD Name;
142     WORD Signature;
143 } MEMBERREFTABLE;
144
145 typedef struct
146 {
147     BYTE Type;
148     BYTE Reserved;
149     WORD Parent;
150     WORD Value;
151 } CONSTANTTABLE;
152
153 typedef struct
154 {
155     WORD Parent;
156     WORD Type;
157     WORD Value;
158 } CUSTOMATTRIBUTETABLE;
159
160 typedef struct
161 {
162     WORD Parent;
163     WORD NativeType;
164 } FIELDMARSHALTABLE;
165
166 typedef struct
167 {
168     WORD Action;
169     WORD Parent;
170     WORD PermissionSet;
171 } DECLSECURITYTABLE;
172
173 typedef struct
174 {
175     WORD PackingSize;
176     DWORD ClassSize;
177     WORD Parent;
178 } CLASSLAYOUTTABLE;
179
180 typedef struct
181 {
182     DWORD Offset;
183     WORD Field;
184 } FIELDLAYOUTTABLE;
185
186 typedef struct
187 {
188     WORD Signature;
189 } STANDALONESIGTABLE;
190
191 typedef struct
192 {
193     WORD Parent;
194     WORD EventList;
195 } EVENTMAPTABLE;
196
197 typedef struct
198 {
199     WORD EventFlags;
200     WORD Name;
201     WORD EventType;
202 } EVENTTABLE;
203
204 typedef struct
205 {
206     WORD Parent;
207     WORD PropertyList;
208 } PROPERTYMAPTABLE;
209
210 typedef struct
211 {
212     WORD Flags;
213     WORD Name;
214     WORD Type;
215 } PROPERTYTABLE;
216
217 typedef struct
218 {
219     WORD Semantics;
220     WORD Method;
221     WORD Association;
222 } METHODSEMANTICSTABLE;
223
224 typedef struct
225 {
226     WORD Class;
227     WORD MethodBody;
228     WORD MethodDeclaration;
229 } METHODIMPLTABLE;
230
231 typedef struct
232 {
233     WORD Name;
234 } MODULEREFTABLE;
235
236 typedef struct
237 {
238     WORD Signature;
239 } TYPESPECTABLE;
240
241 typedef struct
242 {
243     WORD MappingFlags;
244     WORD MemberForwarded;
245     WORD ImportName;
246     WORD ImportScope;
247 } IMPLMAPTABLE;
248
249 typedef struct
250 {
251     DWORD RVA;
252     WORD Field;
253 } FIELDRVATABLE;
254
255 typedef struct
256 {
257     DWORD Processor;
258 } ASSEMBLYPROCESSORTABLE;
259
260 typedef struct
261 {
262     DWORD OSPlatformID;
263     DWORD OSMajorVersion;
264     DWORD OSMinorVersion;
265 } ASSEMBLYOSTABLE;
266
267 typedef struct
268 {
269     WORD MajorVersion;
270     WORD MinorVersion;
271     WORD BuildNumber;
272     WORD RevisionNumber;
273     DWORD Flags;
274     WORD PublickKeyOrToken;
275     WORD Name;
276     WORD Culture;
277     WORD HashValue;
278 } ASSEMBLYREFTABLE;
279
280 typedef struct
281 {
282     DWORD Processor;
283     WORD AssemblyRef;
284 } ASSEMBLYREFPROCESSORTABLE;
285
286 typedef struct
287 {
288     DWORD OSPlatformId;
289     DWORD OSMajorVersion;
290     DWORD OSMinorVersion;
291     WORD AssemblyRef;
292 } ASSEMBLYREFOSTABLE;
293
294 typedef struct
295 {
296     DWORD Flags;
297     WORD Name;
298     WORD HashValue;
299 } FILETABLE;
300
301 typedef struct
302 {
303     DWORD Flags;
304     DWORD TypeDefId;
305     WORD TypeName;
306     WORD TypeNameSpace;
307     WORD Implementation;
308 } EXPORTEDTYPETABLE;
309
310 typedef struct
311 {
312     WORD NestedClass;
313     WORD EnclosingClass;
314 } NESTEDCLASSTABLE;
315
316 typedef struct
317 {
318     WORD Number;
319     WORD Flags;
320 } GENERICPARAMTABLE;
321
322 typedef struct
323 {
324     WORD MethodDef;
325     WORD Instantiation;
326 } METHODSPECTABLE;
327
328 typedef struct
329 {
330     WORD Owner;
331     WORD Constraint;
332 } GENERICPARAMCONSTRAINTTABLE;
333
334 typedef struct
335 {
336     DWORD ImportLookupTable;
337     DWORD DateTimeStamp;
338     DWORD ForwarderChain;
339     DWORD Name;
340     DWORD ImportAddressTable;
341     BYTE pad[20];
342 } IMPORTTABLE;
343
344 typedef struct
345 {
346     DWORD HintNameTableRVA;
347     BYTE pad[8];
348 } IMPORTLOOKUPTABLE;
349
350 typedef struct
351 {
352     WORD Hint;
353     BYTE Name[12];
354     BYTE Module[12];
355     DWORD Reserved;
356     WORD EntryPoint;
357     DWORD RVA;
358 } HINTNAMETABLE;
359
360 typedef struct
361 {
362     DWORD PageRVA;
363     DWORD Size;
364     DWORD Relocation;
365 } RELOCATION;
366
367 typedef struct
368 {
369     WORD wLength;
370     WORD wValueLength;
371     WORD wType;
372     WCHAR szKey[17];
373     VS_FIXEDFILEINFO Value;
374 } VS_VERSIONINFO;
375
376 typedef struct
377 {
378     WORD wLength;
379     WORD wValueLength;
380     WORD wType;
381     WCHAR szKey[13];
382 } VARFILEINFO;
383
384 typedef struct
385 {
386     WORD wLength;
387     WORD wValueLength;
388     WORD wType;
389     WCHAR szKey[13];
390     DWORD Value;
391 } VAR;
392
393 typedef struct
394 {
395     WORD wLength;
396     WORD wValueLength;
397     WORD wType;
398     WCHAR szKey[15];
399 } STRINGFILEINFO;
400
401 typedef struct
402 {
403     WORD wLength;
404     WORD wValueLength;
405     WORD wType;
406     WCHAR szKey[9];
407 } STRINGTABLE;
408
409 typedef struct
410 {
411     WORD wLength;
412     WORD wValueLength;
413     WORD wType;
414 } STRINGHDR;
415
416 typedef struct
417 {
418     DWORD Size;
419     DWORD Signature;
420     DWORD HeaderVersion;
421     DWORD SkipData;
422     BYTE Data[168];
423 } RESOURCE;
424
425 #include <poppack.h>
426
427 struct tagASSEMBLY;
428 typedef struct tagASSEMBLY ASSEMBLY;
429
430 HRESULT assembly_create(ASSEMBLY **out, LPCWSTR file);
431 HRESULT assembly_release(ASSEMBLY *assembly);
432 HRESULT assembly_get_name(ASSEMBLY *assembly, LPSTR *name);
433 HRESULT assembly_get_path(ASSEMBLY *assembly, LPSTR *path);
434 HRESULT assembly_get_version(ASSEMBLY *assembly, LPSTR *version);
435 HRESULT assembly_get_architecture(ASSEMBLY *assembly, DWORD fixme);
436 HRESULT assembly_get_pubkey_token(ASSEMBLY *assembly, LPSTR *token);
437
438 #endif /* __WINE_FUSION_PRIVATE__ */