3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/*
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Copyright 2008 James Hawkins
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is free software; you can redistribute it and/or
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * modify it under the terms of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License as published by the Free Software Foundation; either
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * version 2.1 of the License, or (at your option) any later version.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is distributed in the hope that it will be useful,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Lesser General Public License for more details.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * You should have received a copy of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License along with this library; if not, write to the Free Software
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync/*
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * a choice of LGPL license versions is made available with the language indicating
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * of the LGPL is applied is otherwise unspecified.
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync */
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef __WINE_CORHDR_H
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define __WINE_CORHDR_H
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef enum CorTokenType
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync mdtModule = 0x00000000,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync mdtTypeRef = 0x01000000,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync mdtTypeDef = 0x02000000,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync mdtFieldDef = 0x04000000,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync mdtMethodDef = 0x06000000,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync mdtParamDef = 0x08000000,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync mdtInterfaceImpl = 0x09000000,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync mdtMemberRef = 0x0a000000,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync mdtCustomAttribute = 0x0c000000,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync mdtPermission = 0x0e000000,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync mdtSignature = 0x11000000,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync mdtEvent = 0x14000000,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync mdtProperty = 0x17000000,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync mdtModuleRef = 0x1a000000,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync mdtTypeSpec = 0x1b000000,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync mdtAssembly = 0x20000000,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync mdtAssemblyRef = 0x23000000,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync mdtFile = 0x26000000,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync mdtExportedType = 0x27000000,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync mdtManifestResource = 0x28000000,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync mdtGenericParam = 0x2a000000,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync mdtMethodSpec = 0x2b000000,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync mdtGenericParamConstraint = 0x2c000000,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync mdtString = 0x70000000,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync mdtName = 0x71000000,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync mdtBaseType = 0x72000000,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} CorTokenType;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef enum CorElementType
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_END = 0x00,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_VOID = 0x01,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_BOOLEAN = 0x02,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_CHAR = 0x03,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_I1 = 0x04,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_U1 = 0x05,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_I2 = 0x06,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_U2 = 0x07,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_I4 = 0x08,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_U4 = 0x09,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_I8 = 0x0a,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_U8 = 0x0b,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_R4 = 0x0c,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_R8 = 0x0d,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_STRING = 0x0e,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_PTR = 0x0f,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_BYREF = 0x10,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_VALUETYPE = 0x11,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_CLASS = 0x12,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_VAR = 0x13,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_ARRAY = 0x14,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_GENERICINST = 0x15,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_TYPEDBYREF = 0x16,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_I = 0x18,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_U = 0x19,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_FNPTR = 0x1b,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_OBJECT = 0x1c,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_SZARRAY = 0x1d,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_MVAR = 0x1e,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_CMOD_REQD = 0x1f,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_CMOD_OPT = 0x20,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_INTERNAL = 0x21,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_MAX = 0x22,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_MODIFIER = 0x40,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_SENTINEL = 0x01 | ELEMENT_TYPE_MODIFIER,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_PINNED = 0x05 | ELEMENT_TYPE_MODIFIER,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_R4_HFA = 0x06 | ELEMENT_TYPE_MODIFIER,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ELEMENT_TYPE_R8_HFA = 0x07 | ELEMENT_TYPE_MODIFIER,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} CorElementType;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define RidToToken(rid,tktype) ((rid) |= (tktype))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TokenFromRid(rid,tktype) ((rid) | (tktype))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define RidFromToken(tk) ((RID)((tk) & 0x00ffffff))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TypeFromToken(tk) ((ULONG32)((tk) & 0xff000000))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define IsNilToken(tk) ((RidFromToken(tk)) == 0)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef LPVOID mdScope;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef ULONG32 mdToken;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef mdToken mdModule;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef mdToken mdTypeRef;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef mdToken mdTypeDef;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef mdToken mdFieldDef;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef mdToken mdMethodDef;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef mdToken mdParamDef;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef mdToken mdInterfaceImpl;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef mdToken mdMemberRef;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef mdToken mdCustomAttribute;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef mdToken mdPermission;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef mdToken mdSignature;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef mdToken mdEvent;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef mdToken mdProperty;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef mdToken mdModuleRef;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef mdToken mdAssembly;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef mdToken mdAssemblyRef;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef mdToken mdFile;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef mdToken mdExportedType;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef mdToken mdManifestResource;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef mdToken mdTypeSpec;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef mdToken mdGenericParam;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef mdToken mdMethodSpec;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef mdToken mdGenericParamConstraint;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef mdToken mdString;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef mdToken mdCPToken;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif /* __WINE_CORHDR_H */