shlwapi/tests: Fix some failures on XP and W2K3.
[wine/multimedia.git] / dlls / fusion / fusionpriv.h
bloba4e6193b054a5aa5ec45c62b75bcaebec46107aa
1 /*
2 * fusion private definitions
4 * Copyright 2008 James Hawkins
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.
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.
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
21 #ifndef __WINE_FUSION_PRIVATE__
22 #define __WINE_FUSION_PRIVATE__
24 #include <stdarg.h>
26 #include "windef.h"
27 #include "winbase.h"
28 #include "winuser.h"
30 #include <pshpack1.h>
32 typedef struct
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;
44 typedef struct
46 DWORD Offset;
47 DWORD Size;
48 } METADATASTREAMHDR;
50 typedef struct
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;
61 typedef struct
63 WORD Generation;
64 WORD Name;
65 WORD Mvid;
66 WORD EncId;
67 WORD EncBaseId;
68 } MODULETABLE;
70 typedef struct
72 DWORD Flags;
73 WORD Name;
74 WORD Namespace;
75 WORD Extends;
76 WORD FieldList;
77 WORD MethodList;
78 } TYPEDEFTABLE;
80 typedef struct
82 WORD ResolutionScope;
83 WORD Name;
84 WORD Namespace;
85 } TYPEREFTABLE;
87 typedef struct
89 WORD Flags;
90 WORD Name;
91 WORD Signature;
92 } FIELDTABLE;
94 typedef struct
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;
107 typedef struct
109 DWORD Offset;
110 DWORD Flags;
111 WORD Name;
112 WORD Implementation;
113 } MANIFESTRESTABLE;
115 typedef struct
117 DWORD RVA;
118 WORD ImplFlags;
119 WORD Flags;
120 WORD Name;
121 WORD Signature;
122 WORD ParamList;
123 } METHODDEFTABLE;
125 typedef struct
127 WORD Flags;
128 WORD Sequence;
129 WORD Name;
130 } PARAMTABLE;
132 typedef struct
134 WORD Class;
135 WORD Interface;
136 } INTERFACEIMPLTABLE;
138 typedef struct
140 WORD Class;
141 WORD Name;
142 WORD Signature;
143 } MEMBERREFTABLE;
145 typedef struct
147 BYTE Type;
148 BYTE Reserved;
149 WORD Parent;
150 WORD Value;
151 } CONSTANTTABLE;
153 typedef struct
155 WORD Parent;
156 WORD Type;
157 WORD Value;
158 } CUSTOMATTRIBUTETABLE;
160 typedef struct
162 WORD Parent;
163 WORD NativeType;
164 } FIELDMARSHALTABLE;
166 typedef struct
168 WORD Action;
169 WORD Parent;
170 WORD PermissionSet;
171 } DECLSECURITYTABLE;
173 typedef struct
175 WORD PackingSize;
176 DWORD ClassSize;
177 WORD Parent;
178 } CLASSLAYOUTTABLE;
180 typedef struct
182 DWORD Offset;
183 WORD Field;
184 } FIELDLAYOUTTABLE;
186 typedef struct
188 WORD Signature;
189 } STANDALONESIGTABLE;
191 typedef struct
193 WORD Parent;
194 WORD EventList;
195 } EVENTMAPTABLE;
197 typedef struct
199 WORD EventFlags;
200 WORD Name;
201 WORD EventType;
202 } EVENTTABLE;
204 typedef struct
206 WORD Parent;
207 WORD PropertyList;
208 } PROPERTYMAPTABLE;
210 typedef struct
212 WORD Flags;
213 WORD Name;
214 WORD Type;
215 } PROPERTYTABLE;
217 typedef struct
219 WORD Semantics;
220 WORD Method;
221 WORD Association;
222 } METHODSEMANTICSTABLE;
224 typedef struct
226 WORD Class;
227 WORD MethodBody;
228 WORD MethodDeclaration;
229 } METHODIMPLTABLE;
231 typedef struct
233 WORD Name;
234 } MODULEREFTABLE;
236 typedef struct
238 WORD Signature;
239 } TYPESPECTABLE;
241 typedef struct
243 WORD MappingFlags;
244 WORD MemberForwarded;
245 WORD ImportName;
246 WORD ImportScope;
247 } IMPLMAPTABLE;
249 typedef struct
251 DWORD RVA;
252 WORD Field;
253 } FIELDRVATABLE;
255 typedef struct
257 DWORD Processor;
258 } ASSEMBLYPROCESSORTABLE;
260 typedef struct
262 DWORD OSPlatformID;
263 DWORD OSMajorVersion;
264 DWORD OSMinorVersion;
265 } ASSEMBLYOSTABLE;
267 typedef struct
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;
280 typedef struct
282 DWORD Processor;
283 WORD AssemblyRef;
284 } ASSEMBLYREFPROCESSORTABLE;
286 typedef struct
288 DWORD OSPlatformId;
289 DWORD OSMajorVersion;
290 DWORD OSMinorVersion;
291 WORD AssemblyRef;
292 } ASSEMBLYREFOSTABLE;
294 typedef struct
296 DWORD Flags;
297 WORD Name;
298 WORD HashValue;
299 } FILETABLE;
301 typedef struct
303 DWORD Flags;
304 DWORD TypeDefId;
305 WORD TypeName;
306 WORD TypeNameSpace;
307 WORD Implementation;
308 } EXPORTEDTYPETABLE;
310 typedef struct
312 WORD NestedClass;
313 WORD EnclosingClass;
314 } NESTEDCLASSTABLE;
316 typedef struct
318 WORD Number;
319 WORD Flags;
320 } GENERICPARAMTABLE;
322 typedef struct
324 WORD MethodDef;
325 WORD Instantiation;
326 } METHODSPECTABLE;
328 typedef struct
330 WORD Owner;
331 WORD Constraint;
332 } GENERICPARAMCONSTRAINTTABLE;
334 typedef struct
336 DWORD ImportLookupTable;
337 DWORD DateTimeStamp;
338 DWORD ForwarderChain;
339 DWORD Name;
340 DWORD ImportAddressTable;
341 BYTE pad[20];
342 } IMPORTTABLE;
344 typedef struct
346 DWORD HintNameTableRVA;
347 BYTE pad[8];
348 } IMPORTLOOKUPTABLE;
350 typedef struct
352 WORD Hint;
353 BYTE Name[12];
354 BYTE Module[12];
355 DWORD Reserved;
356 WORD EntryPoint;
357 DWORD RVA;
358 } HINTNAMETABLE;
360 typedef struct
362 DWORD PageRVA;
363 DWORD Size;
364 DWORD Relocation;
365 } RELOCATION;
367 typedef struct
369 WORD wLength;
370 WORD wValueLength;
371 WORD wType;
372 WCHAR szKey[17];
373 VS_FIXEDFILEINFO Value;
374 } VS_VERSIONINFO;
376 typedef struct
378 WORD wLength;
379 WORD wValueLength;
380 WORD wType;
381 WCHAR szKey[13];
382 } VARFILEINFO;
384 typedef struct
386 WORD wLength;
387 WORD wValueLength;
388 WORD wType;
389 WCHAR szKey[13];
390 DWORD Value;
391 } VAR;
393 typedef struct
395 WORD wLength;
396 WORD wValueLength;
397 WORD wType;
398 WCHAR szKey[15];
399 } STRINGFILEINFO;
401 typedef struct
403 WORD wLength;
404 WORD wValueLength;
405 WORD wType;
406 WCHAR szKey[9];
407 } STRINGTABLE;
409 typedef struct
411 WORD wLength;
412 WORD wValueLength;
413 WORD wType;
414 } STRINGHDR;
416 typedef struct
418 DWORD Size;
419 DWORD Signature;
420 DWORD HeaderVersion;
421 DWORD SkipData;
422 BYTE Data[168];
423 } RESOURCE;
425 #include <poppack.h>
427 struct tagASSEMBLY;
428 typedef struct tagASSEMBLY ASSEMBLY;
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);
438 #endif /* __WINE_FUSION_PRIVATE__ */