Release 0.9.61.
[wine/gsoc-2012-control.git] / dlls / fusion / fusionpriv.h
blobca84a29eb155e43dd481383508efc7cbbca178d5
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 typedef struct
32 ULONG Signature;
33 USHORT MajorVersion;
34 USHORT MinorVersion;
35 ULONG Reserved;
36 ULONG VersionLength;
37 BYTE Version[12];
38 BYTE Flags;
39 WORD Streams;
40 } METADATAHDR;
42 #include <pshpack1.h>
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 DWORD ResolutionScope;
83 WORD Name;
84 WORD Namespace;
85 } TYPEREFTABLE;
87 typedef struct
89 DWORD HashAlgId;
90 WORD MajorVersion;
91 WORD MinorVersion;
92 WORD BuildNumber;
93 WORD RevisionNumber;
94 DWORD Flags;
95 WORD PublicKey;
96 WORD Name;
97 WORD Culture;
98 } ASSEMBLYTABLE;
100 typedef struct
102 DWORD Offset;
103 DWORD Flags;
104 WORD Name;
105 WORD Implementation;
106 } MANIFESTRESTABLE;
108 typedef struct
110 DWORD ImportLookupTable;
111 DWORD DateTimeStamp;
112 DWORD ForwarderChain;
113 DWORD Name;
114 DWORD ImportAddressTable;
115 BYTE pad[20];
116 } IMPORTTABLE;
118 typedef struct
120 DWORD HintNameTableRVA;
121 BYTE pad[8];
122 } IMPORTLOOKUPTABLE;
124 typedef struct
126 WORD Hint;
127 BYTE Name[12];
128 BYTE Module[12];
129 DWORD Reserved;
130 WORD EntryPoint;
131 DWORD RVA;
132 } HINTNAMETABLE;
134 typedef struct
136 DWORD PageRVA;
137 DWORD Size;
138 DWORD Relocation;
139 } RELOCATION;
141 typedef struct
143 WORD wLength;
144 WORD wValueLength;
145 WORD wType;
146 WCHAR szKey[17];
147 VS_FIXEDFILEINFO Value;
148 } VS_VERSIONINFO;
150 typedef struct
152 WORD wLength;
153 WORD wValueLength;
154 WORD wType;
155 WCHAR szKey[13];
156 } VARFILEINFO;
158 typedef struct
160 WORD wLength;
161 WORD wValueLength;
162 WORD wType;
163 WCHAR szKey[13];
164 DWORD Value;
165 } VAR;
167 typedef struct
169 WORD wLength;
170 WORD wValueLength;
171 WORD wType;
172 WCHAR szKey[15];
173 } STRINGFILEINFO;
175 typedef struct
177 WORD wLength;
178 WORD wValueLength;
179 WORD wType;
180 WCHAR szKey[9];
181 } STRINGTABLE;
183 typedef struct
185 WORD wLength;
186 WORD wValueLength;
187 WORD wType;
188 } STRINGHDR;
190 typedef struct
192 DWORD Size;
193 DWORD Signature;
194 DWORD HeaderVersion;
195 DWORD SkipData;
196 BYTE Data[168];
197 } RESOURCE;
199 #include <poppack.h>
201 struct tagASSEMBLY;
202 typedef struct tagASSEMBLY ASSEMBLY;
204 HRESULT assembly_create(ASSEMBLY **out, LPCWSTR file);
205 HRESULT assembly_release(ASSEMBLY *assembly);
206 HRESULT assembly_get_name(ASSEMBLY *assembly, LPSTR *name);
207 HRESULT assembly_get_path(ASSEMBLY *assembly, LPSTR *path);
208 HRESULT assembly_get_version(ASSEMBLY *assembly, LPSTR *version);
209 HRESULT assembly_get_architecture(ASSEMBLY *assembly, DWORD fixme);
210 HRESULT assembly_get_pubkey_token(ASSEMBLY *assembly, LPSTR *token);
212 #endif /* __WINE_FUSION_PRIVATE__ */