// UnmanagedType.cs // // This code was automatically generated from // ECMA CLI XML Library Specification. // Generator: libgen.xsl // Source file: all.xml // URL: http://devresource.hp.com/devresource/Docs/TechPapers/CSharp/all.xml // // (C) 2001 Ximian, Inc. http://www.ximian.com namespace System.Runtime.InteropServices { /// /// /// Identifies how parameters or fields should be marshaled to unmanaged /// code. /// /// public enum UnmanagedType { /// /// /// 4-byte Boolean value (!= 0, = /// 0). /// /// Bool = 2, /// /// /// 1-byte signed integer. /// /// I1 = 3, /// /// /// 1-byte unsigned integer. /// /// U1 = 4, /// /// /// 2-byte signed integer. /// /// I2 = 5, /// /// /// 2-byte unsigned integer. /// /// U2 = 6, /// /// /// 4-byte signed integer. /// /// I4 = 7, /// /// /// 4-byte unsigned integer. /// /// U4 = 8, /// /// /// 8-byte signed integer. /// /// I8 = 9, /// /// /// 8-byte unsigned integer. /// /// U8 = 10, /// /// /// 4-byte floating point number. /// /// R4 = 11, /// /// /// 8-byte floating point number. /// /// R8 = 12, /// /// /// Unicode character string that is a length prefixed double /// byte. /// /// BStr = 19, /// /// /// A single byte ANSI character string. /// /// LPStr = 20, /// /// /// A double byte Unicode character string. /// /// LPWStr = 21, /// /// /// A platform independent character string, ANSI on Win9x, Unicode on WinNT. /// /// LPTStr = 22, /// /// Used for in-line fixed length character arrays that /// appear within a structure. The character type used with /// is determined by the argument of the /// applied to the containing structure. /// ByValTStr = 23, /// /// A COM pointer. This only applies to a generic object, not a derived class. /// IUnknown = 25, /// /// A COM IDispatch pointer. This only applies to a generic object, not a derived class. /// IDispatch = 26, /// /// /// A C-style structure, used to marshal managed formatted classes and value /// types. /// /// Struct = 27, /// /// A COM interface pointer. The of the interface is obtained from the class /// metadata. /// Interface = 28, /// /// SafeArrays are self-describing arrays that carry the /// type, rank and bounds of the associated array data. /// SafeArray = 29, /// /// /// A fixed length array. The UnmanagedFormatAttribute must contain the count of /// elements in the array. The UnmanagedFormatAttribute may optionally contain the /// unmanaged type of the elements when it is necessary to differentiate among /// string types. /// /// ByValArray = 30, /// /// /// A platform independent signed integer. 4-bytes on 32 bit Windows, 8-bytes on /// 64 bit Windows. /// /// SysInt = 31, /// /// /// Hardware natural sized unsigned integer /// /// SysUInt = 32, /// /// /// VB specific. /// /// VBByRefStr = 34, /// /// /// ANSI character string that is a length prefixed, single byte. /// /// AnsiBStr = 35, /// /// /// A length prefixed platform independent char string. ANSI on Windows 9x, /// Unicode on Windows NT. /// /// TBStr = 36, /// /// /// 8-byte unsigned integer. /// /// VariantBool = 37, /// /// /// A function pointer. /// /// FunctionPtr = 38, /// /// /// An un-typed 4-byte pointer. /// /// LPVoid = 39, /// /// Dynamic type that determines the of an object at /// runtime and marshals the object as that /// . /// AsAny = 40, /// /// /// Size agnostic floating point number. /// /// RPrecise = 41, /// /// An array whose length is determined at runtime by the size of the actual /// marshaled array. Optionally followed by the unmanaged type of the elements /// within the array when it is necessary to differentiate among string types. When /// marshaling from managed to unmanaged, the size of the array is determined /// dynamically. When marshaling from unmanaged to managed, the size is always /// assumed to be 1. /// LPArray = 42, /// /// /// A pointer to a C-style structure. Used to marshal managed formatted classes /// and value types. /// /// LPStruct = 43, /// /// /// Custom marshaler native type. This must be followed /// by a string of the following format: /// "Native type name\0Custom marshaler type name\0Optional cookie\0" /// Or /// "{Native type GUID}\0Custom marshaler type name\0Optional cookie\0" /// /// CustomMarshaler = 44, /// /// This native type associated with an or a will cause the parameter /// to be exported as an HRESULT in the exported typelib. /// Error = 45, /// /// First invalid element type. /// NativeTypeMax = 80, } // UnmanagedType } // System.Runtime.InteropServices