winex11: add owned windows to taskbar if owner is not mapped
[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 typedef struct
31 {
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;
41
42 #include <pshpack1.h>
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     DWORD ResolutionScope;
83     WORD Name;
84     WORD Namespace;
85 } TYPEREFTABLE;
86
87 typedef struct
88 {
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;
99
100 typedef struct
101 {
102     DWORD Offset;
103     DWORD Flags;
104     WORD Name;
105     WORD Implementation;
106 } MANIFESTRESTABLE;
107
108 typedef struct
109 {
110     DWORD ImportLookupTable;
111     DWORD DateTimeStamp;
112     DWORD ForwarderChain;
113     DWORD Name;
114     DWORD ImportAddressTable;
115     BYTE pad[20];
116 } IMPORTTABLE;
117
118 typedef struct
119 {
120     DWORD HintNameTableRVA;
121     BYTE pad[8];
122 } IMPORTLOOKUPTABLE;
123
124 typedef struct
125 {
126     WORD Hint;
127     BYTE Name[12];
128     BYTE Module[12];
129     DWORD Reserved;
130     WORD EntryPoint;
131     DWORD RVA;
132 } HINTNAMETABLE;
133
134 typedef struct
135 {
136     DWORD PageRVA;
137     DWORD Size;
138     DWORD Relocation;
139 } RELOCATION;
140
141 typedef struct
142 {
143     WORD wLength;
144     WORD wValueLength;
145     WORD wType;
146     WCHAR szKey[17];
147     VS_FIXEDFILEINFO Value;
148 } VS_VERSIONINFO;
149
150 typedef struct
151 {
152     WORD wLength;
153     WORD wValueLength;
154     WORD wType;
155     WCHAR szKey[13];
156 } VARFILEINFO;
157
158 typedef struct
159 {
160     WORD wLength;
161     WORD wValueLength;
162     WORD wType;
163     WCHAR szKey[13];
164     DWORD Value;
165 } VAR;
166
167 typedef struct
168 {
169     WORD wLength;
170     WORD wValueLength;
171     WORD wType;
172     WCHAR szKey[15];
173 } STRINGFILEINFO;
174
175 typedef struct
176 {
177     WORD wLength;
178     WORD wValueLength;
179     WORD wType;
180     WCHAR szKey[9];
181 } STRINGTABLE;
182
183 typedef struct
184 {
185     WORD wLength;
186     WORD wValueLength;
187     WORD wType;
188 } STRINGHDR;
189
190 typedef struct
191 {
192     DWORD Size;
193     DWORD Signature;
194     DWORD HeaderVersion;
195     DWORD SkipData;
196     BYTE Data[168];
197 } RESOURCE;
198
199 #include <poppack.h>
200
201 struct tagASSEMBLY;
202 typedef struct tagASSEMBLY ASSEMBLY;
203
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);
211
212 #endif /* __WINE_FUSION_PRIVATE__ */