ReactOS 0.4.15-dev-7961-gdcf9eb0
fusionpriv.h
Go to the documentation of this file.
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 "ntstatus.h"
27#define WIN32_NO_STATUS
28#include "windef.h"
29#include "windef.h"
30#include "winbase.h"
31#include "winuser.h"
32#include "winver.h"
33#include "wine/heap.h"
34
35#ifdef __REACTOS__
36#include <objbase.h>
37#include <fusion.h>
38#endif
39
40#include <pshpack1.h>
41
42typedef struct
43{
53
54typedef struct
55{
59
60typedef struct
61{
70
71typedef struct
72{
79
80typedef struct
81{
89
90typedef struct
91{
96
97typedef struct
98{
102} FIELDTABLE;
103
104typedef struct
105{
116
117typedef struct
118{
124
125typedef struct
126{
134
135typedef struct
136{
140} PARAMTABLE;
141
142typedef struct
143{
147
148typedef struct
149{
154
155typedef struct
156{
162
163typedef struct
164{
169
170typedef struct
171{
175
176typedef struct
177{
182
183typedef struct
184{
189
190typedef struct
191{
195
196typedef struct
197{
200
201typedef struct
202{
206
207typedef struct
208{
212} EVENTTABLE;
213
214typedef struct
215{
219
220typedef struct
221{
226
227typedef struct
228{
233
234typedef struct
235{
240
241typedef struct
242{
245
246typedef struct
247{
250
251typedef struct
252{
258
259typedef struct
260{
264
265typedef struct
266{
269
270typedef struct
271{
276
277typedef struct
278{
289
290typedef struct
291{
295
296typedef struct
297{
303
304typedef struct
305{
309} FILETABLE;
310
311typedef struct
312{
319
320typedef struct
321{
325
326typedef struct
327{
331
332typedef struct
333{
337
338typedef struct
339{
343
344typedef struct
345{
351 BYTE pad[20];
353
354typedef struct
355{
357 BYTE pad[8];
359
360typedef struct
361{
364 BYTE Module[12];
369
370typedef struct
371{
375} RELOCATION;
376
377typedef struct
378{
382 WCHAR szKey[17];
385
386typedef struct
387{
391 WCHAR szKey[13];
393
394typedef struct
395{
399 WCHAR szKey[13];
401} VAR;
402
403typedef struct
404{
408 WCHAR szKey[15];
410
411typedef struct
412{
416 WCHAR szKey[9];
418
419typedef struct
420{
424} STRINGHDR;
425
426typedef struct
427{
432 BYTE Data[168];
433} RESOURCE;
434
435#include <poppack.h>
436
437struct tagASSEMBLY;
438typedef struct tagASSEMBLY ASSEMBLY;
439
449
452
453static inline LPWSTR strdupW(LPCWSTR src)
454{
455 LPWSTR dest;
456
457 if (!src)
458 return NULL;
459
460 if ((dest = heap_alloc((lstrlenW(src) + 1) * sizeof(WCHAR))))
461 lstrcpyW(dest, src);
462
463 return dest;
464}
465
466#define BYTES_PER_TOKEN 8
467#define CHARS_PER_BYTE 2
468#define TOKEN_LENGTH (BYTES_PER_TOKEN * CHARS_PER_BYTE + 1)
469
470static inline void token_to_str(BYTE *bytes, LPWSTR str)
471{
472 DWORD i;
473
474 static const WCHAR hexval[] = {
475 '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'
476 };
477
478 for(i = 0; i < BYTES_PER_TOKEN; i++)
479 {
480 str[i * 2] = hexval[((bytes[i] >> 4) & 0xF)];
481 str[i * 2 + 1] = hexval[(bytes[i]) & 0x0F];
482 }
483 str[i * 2] = 0;
484}
485
486#endif /* __WINE_FUSION_PRIVATE__ */
static unsigned char bytes[4]
Definition: adnsresfilter.c:74
static void * heap_alloc(size_t len)
Definition: appwiz.h:66
#define NULL
Definition: types.h:112
#define DECLSPEC_HIDDEN
Definition: precomp.h:8
#define lstrcpyW
Definition: compat.h:749
#define lstrlenW
Definition: compat.h:750
static const WCHAR version[]
Definition: asmname.c:66
unsigned long DWORD
Definition: ntddk_ex.h:95
unsigned short WORD
Definition: ntddk_ex.h:93
PEKIND
Definition: fusion.idl:36
HRESULT assembly_get_version(ASSEMBLY *assembly, LPWSTR *version) DECLSPEC_HIDDEN
Definition: assembly.c:762
HRESULT IAssemblyName_SetPath(IAssemblyName *iface, LPCWSTR path) DECLSPEC_HIDDEN
Definition: asmname.c:523
static LPWSTR strdupW(LPCWSTR src)
Definition: fusionpriv.h:453
#define BYTES_PER_TOKEN
Definition: fusionpriv.h:466
HRESULT assembly_get_path(const ASSEMBLY *assembly, LPWSTR *path) DECLSPEC_HIDDEN
Definition: assembly.c:750
HRESULT assembly_get_pubkey_token(ASSEMBLY *assembly, LPWSTR *token) DECLSPEC_HIDDEN
Definition: assembly.c:807
HRESULT IAssemblyName_GetPath(IAssemblyName *iface, LPWSTR buf, ULONG *len) DECLSPEC_HIDDEN
Definition: asmname.c:534
static void token_to_str(BYTE *bytes, LPWSTR str)
Definition: fusionpriv.h:470
HRESULT assembly_get_external_files(ASSEMBLY *assembly, LPWSTR **files, DWORD *count) DECLSPEC_HIDDEN
Definition: assembly.c:871
HRESULT assembly_get_runtime_version(ASSEMBLY *assembly, LPSTR *version) DECLSPEC_HIDDEN
Definition: assembly.c:865
HRESULT assembly_get_name(ASSEMBLY *assembly, LPWSTR *name) DECLSPEC_HIDDEN
Definition: assembly.c:723
HRESULT assembly_create(ASSEMBLY **out, LPCWSTR file) DECLSPEC_HIDDEN
Definition: assembly.c:641
PEKIND assembly_get_architecture(ASSEMBLY *assembly) DECLSPEC_HIDDEN
Definition: assembly.c:788
HRESULT assembly_release(ASSEMBLY *assembly) DECLSPEC_HIDDEN
Definition: assembly.c:694
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLenum src
Definition: glext.h:6340
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
GLenum GLsizei len
Definition: glext.h:6722
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat token
Definition: glfuncs.h:210
static char * dest
Definition: rtl.c:135
unsigned short USHORT
Definition: pedump.c:61
static FILE * out
Definition: regtests2xml.c:44
const WCHAR * str
DWORD OSMajorVersion
Definition: fusionpriv.h:273
DWORD OSPlatformID
Definition: fusionpriv.h:272
DWORD OSMinorVersion
Definition: fusionpriv.h:274
WORD PublickKeyOrToken
Definition: fusionpriv.h:284
WORD RevisionNumber
Definition: fusionpriv.h:110
WORD BuildNumber
Definition: fusionpriv.h:109
WORD MinorVersion
Definition: fusionpriv.h:108
WORD MajorVersion
Definition: fusionpriv.h:107
DWORD HashAlgId
Definition: fusionpriv.h:106
WORD EventFlags
Definition: fusionpriv.h:209
WORD EventType
Definition: fusionpriv.h:211
WORD Flags
Definition: fusionpriv.h:99
WORD Signature
Definition: fusionpriv.h:101
WORD Name
Definition: fusionpriv.h:307
WORD HashValue
Definition: fusionpriv.h:308
DWORD Flags
Definition: fusionpriv.h:306
DWORD Reserved
Definition: fusionpriv.h:365
WORD MemberForwarded
Definition: fusionpriv.h:254
WORD ImportName
Definition: fusionpriv.h:255
WORD ImportScope
Definition: fusionpriv.h:256
WORD MappingFlags
Definition: fusionpriv.h:253
DWORD HintNameTableRVA
Definition: fusionpriv.h:356
DWORD DateTimeStamp
Definition: fusionpriv.h:347
DWORD ImportLookupTable
Definition: fusionpriv.h:346
DWORD ImportAddressTable
Definition: fusionpriv.h:350
DWORD Name
Definition: fusionpriv.h:349
DWORD ForwarderChain
Definition: fusionpriv.h:348
BYTE Flags
Definition: fusionpriv.h:50
USHORT MinorVersion
Definition: fusionpriv.h:46
ULONG VersionLength
Definition: fusionpriv.h:48
ULONG Reserved
Definition: fusionpriv.h:47
ULONG Signature
Definition: fusionpriv.h:44
WORD Streams
Definition: fusionpriv.h:51
LPSTR Version
Definition: fusionpriv.h:49
USHORT MajorVersion
Definition: fusionpriv.h:45
LARGE_INTEGER MaskSorted
Definition: fusionpriv.h:68
LARGE_INTEGER MaskValid
Definition: fusionpriv.h:67
WORD MethodDeclaration
Definition: fusionpriv.h:238
WORD EncId
Definition: fusionpriv.h:76
WORD Generation
Definition: fusionpriv.h:73
WORD EncBaseId
Definition: fusionpriv.h:77
WORD Sequence
Definition: fusionpriv.h:138
WORD Flags
Definition: fusionpriv.h:137
DWORD Size
Definition: fusionpriv.h:373
DWORD PageRVA
Definition: fusionpriv.h:372
DWORD Relocation
Definition: fusionpriv.h:374
DWORD Signature
Definition: fusionpriv.h:429
DWORD Size
Definition: fusionpriv.h:428
DWORD HeaderVersion
Definition: fusionpriv.h:430
DWORD SkipData
Definition: fusionpriv.h:431
WORD wValueLength
Definition: fusionpriv.h:422
WORD wLength
Definition: fusionpriv.h:421
WORD wType
Definition: fusionpriv.h:423
WORD wValueLength
Definition: fusionpriv.h:414
WORD wLength
Definition: fusionpriv.h:413
DWORD Flags
Definition: fusionpriv.h:82
WORD Extends
Definition: fusionpriv.h:85
WORD FieldList
Definition: fusionpriv.h:86
WORD Namespace
Definition: fusionpriv.h:84
WORD MethodList
Definition: fusionpriv.h:87
WORD ResolutionScope
Definition: fusionpriv.h:92
WORD Namespace
Definition: fusionpriv.h:94
WORD wValueLength
Definition: fusionpriv.h:389
WORD wLength
Definition: fusionpriv.h:388
WORD wType
Definition: fusionpriv.h:398
WORD wValueLength
Definition: fusionpriv.h:397
WORD wLength
Definition: fusionpriv.h:396
DWORD Value
Definition: fusionpriv.h:400
VS_FIXEDFILEINFO Value
Definition: fusionpriv.h:383
Definition: fci.c:127
Definition: name.c:39
uint32_t ULONG
Definition: typedefs.h:59
char * LPSTR
Definition: xmlstorage.h:182
__wchar_t WCHAR
Definition: xmlstorage.h:180
WCHAR * LPWSTR
Definition: xmlstorage.h:184
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
unsigned char BYTE
Definition: xxhash.c:193