/* * 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 #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 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 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__ */