// 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