213 lines
3.9 KiB
C
213 lines
3.9 KiB
C
/*
|
|
* fusion private definitions
|
|
*
|
|
* Copyright 2008 James Hawkins
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
*/
|
|
|
|
#ifndef __WINE_FUSION_PRIVATE__
|
|
#define __WINE_FUSION_PRIVATE__
|
|
|
|
#include <stdarg.h>
|
|
|
|
#include "windef.h"
|
|
#include "winbase.h"
|
|
#include "winuser.h"
|
|
|
|
typedef struct
|
|
{
|
|
ULONG Signature;
|
|
USHORT MajorVersion;
|
|
USHORT MinorVersion;
|
|
ULONG Reserved;
|
|
ULONG VersionLength;
|
|
BYTE Version[12];
|
|
BYTE Flags;
|
|
WORD Streams;
|
|
} METADATAHDR;
|
|
|
|
#include <pshpack1.h>
|
|
|
|
typedef struct
|
|
{
|
|
DWORD Offset;
|
|
DWORD Size;
|
|
} METADATASTREAMHDR;
|
|
|
|
typedef struct
|
|
{
|
|
DWORD Reserved1;
|
|
BYTE MajorVersion;
|
|
BYTE MinorVersion;
|
|
BYTE HeapOffsetSizes;
|
|
BYTE Reserved2;
|
|
LARGE_INTEGER MaskValid;
|
|
LARGE_INTEGER MaskSorted;
|
|
} METADATATABLESHDR;
|
|
|
|
typedef struct
|
|
{
|
|
WORD Generation;
|
|
WORD Name;
|
|
WORD Mvid;
|
|
WORD EncId;
|
|
WORD EncBaseId;
|
|
} MODULETABLE;
|
|
|
|
typedef struct
|
|
{
|
|
DWORD Flags;
|
|
WORD Name;
|
|
WORD Namespace;
|
|
WORD Extends;
|
|
WORD FieldList;
|
|
WORD MethodList;
|
|
} TYPEDEFTABLE;
|
|
|
|
typedef struct
|
|
{
|
|
DWORD ResolutionScope;
|
|
WORD Name;
|
|
WORD Namespace;
|
|
} TYPEREFTABLE;
|
|
|
|
typedef struct
|
|
{
|
|
DWORD HashAlgId;
|
|
WORD MajorVersion;
|
|
WORD MinorVersion;
|
|
WORD BuildNumber;
|
|
WORD RevisionNumber;
|
|
DWORD Flags;
|
|
WORD PublicKey;
|
|
WORD Name;
|
|
WORD Culture;
|
|
} ASSEMBLYTABLE;
|
|
|
|
typedef struct
|
|
{
|
|
DWORD Offset;
|
|
DWORD Flags;
|
|
WORD Name;
|
|
WORD Implementation;
|
|
} MANIFESTRESTABLE;
|
|
|
|
typedef struct
|
|
{
|
|
DWORD ImportLookupTable;
|
|
DWORD DateTimeStamp;
|
|
DWORD ForwarderChain;
|
|
DWORD Name;
|
|
DWORD ImportAddressTable;
|
|
BYTE pad[20];
|
|
} IMPORTTABLE;
|
|
|
|
typedef struct
|
|
{
|
|
DWORD HintNameTableRVA;
|
|
BYTE pad[8];
|
|
} IMPORTLOOKUPTABLE;
|
|
|
|
typedef struct
|
|
{
|
|
WORD Hint;
|
|
BYTE Name[12];
|
|
BYTE Module[12];
|
|
DWORD Reserved;
|
|
WORD EntryPoint;
|
|
DWORD RVA;
|
|
} HINTNAMETABLE;
|
|
|
|
typedef struct
|
|
{
|
|
DWORD PageRVA;
|
|
DWORD Size;
|
|
DWORD Relocation;
|
|
} RELOCATION;
|
|
|
|
typedef struct
|
|
{
|
|
WORD wLength;
|
|
WORD wValueLength;
|
|
WORD wType;
|
|
WCHAR szKey[17];
|
|
VS_FIXEDFILEINFO Value;
|
|
} VS_VERSIONINFO;
|
|
|
|
typedef struct
|
|
{
|
|
WORD wLength;
|
|
WORD wValueLength;
|
|
WORD wType;
|
|
WCHAR szKey[13];
|
|
} VARFILEINFO;
|
|
|
|
typedef struct
|
|
{
|
|
WORD wLength;
|
|
WORD wValueLength;
|
|
WORD wType;
|
|
WCHAR szKey[13];
|
|
DWORD Value;
|
|
} VAR;
|
|
|
|
typedef struct
|
|
{
|
|
WORD wLength;
|
|
WORD wValueLength;
|
|
WORD wType;
|
|
WCHAR szKey[15];
|
|
} STRINGFILEINFO;
|
|
|
|
typedef struct
|
|
{
|
|
WORD wLength;
|
|
WORD wValueLength;
|
|
WORD wType;
|
|
WCHAR szKey[9];
|
|
} STRINGTABLE;
|
|
|
|
typedef struct
|
|
{
|
|
WORD wLength;
|
|
WORD wValueLength;
|
|
WORD wType;
|
|
} STRINGHDR;
|
|
|
|
typedef struct
|
|
{
|
|
DWORD Size;
|
|
DWORD Signature;
|
|
DWORD HeaderVersion;
|
|
DWORD SkipData;
|
|
BYTE Data[168];
|
|
} RESOURCE;
|
|
|
|
#include <poppack.h>
|
|
|
|
struct tagASSEMBLY;
|
|
typedef struct tagASSEMBLY ASSEMBLY;
|
|
|
|
HRESULT assembly_create(ASSEMBLY **out, LPCWSTR file);
|
|
HRESULT assembly_release(ASSEMBLY *assembly);
|
|
HRESULT assembly_get_name(ASSEMBLY *assembly, LPSTR *name);
|
|
HRESULT assembly_get_path(ASSEMBLY *assembly, LPSTR *path);
|
|
HRESULT assembly_get_version(ASSEMBLY *assembly, LPSTR *version);
|
|
HRESULT assembly_get_architecture(ASSEMBLY *assembly, DWORD fixme);
|
|
HRESULT assembly_get_pubkey_token(ASSEMBLY *assembly, LPSTR *token);
|
|
|
|
#endif /* __WINE_FUSION_PRIVATE__ */
|