VarEnum Enumeration
.NET Framework 4.5
Indicates how to marshal the array elements when an array is marshaled from managed to unmanaged code as a UnmanagedType.SafeArray.
Namespace: System.Runtime.InteropServices
Assembly: mscorlib (in mscorlib.dll)
| Member name | Description | |
|---|---|---|
![]() ![]() | VT_EMPTY | Indicates that a value was not specified. |
![]() ![]() | VT_NULL | Indicates a null value, similar to a null value in SQL. |
![]() ![]() | VT_I2 | Indicates a short integer. |
![]() ![]() | VT_I4 | Indicates a long integer. |
![]() ![]() | VT_R4 | Indicates a float value. |
![]() ![]() | VT_R8 | Indicates a double value. |
![]() ![]() | VT_CY | Indicates a currency value. |
![]() ![]() | VT_DATE | Indicates a DATE value. |
![]() ![]() | VT_BSTR | Indicates a BSTR string. |
![]() ![]() | VT_DISPATCH | Indicates an IDispatch pointer. |
![]() ![]() | VT_ERROR | Indicates an SCODE. |
![]() ![]() | VT_BOOL | Indicates a Boolean value. |
![]() ![]() | VT_VARIANT | Indicates a VARIANT far pointer. |
![]() ![]() | VT_UNKNOWN | Indicates an IUnknown pointer. |
![]() ![]() | VT_DECIMAL | Indicates a decimal value. |
![]() ![]() | VT_I1 | Indicates a char value. |
![]() ![]() | VT_UI1 | Indicates a byte. |
![]() ![]() | VT_UI2 | Indicates an unsigned short. |
![]() ![]() | VT_UI4 | Indicates an unsigned long. |
![]() ![]() | VT_I8 | Indicates a 64-bit integer. |
![]() ![]() | VT_UI8 | Indicates an 64-bit unsigned integer. |
![]() ![]() | VT_INT | Indicates an integer value. |
![]() ![]() | VT_UINT | Indicates an unsigned integer value. |
![]() ![]() | VT_VOID | Indicates a C style void. |
![]() ![]() | VT_HRESULT | Indicates an HRESULT. |
![]() ![]() | VT_PTR | Indicates a pointer type. |
![]() ![]() | VT_SAFEARRAY | Indicates a SAFEARRAY. Not valid in a VARIANT. |
![]() ![]() | VT_CARRAY | Indicates a C style array. |
![]() ![]() | VT_USERDEFINED | Indicates a user defined type. |
![]() ![]() | VT_LPSTR | Indicates a null-terminated string. |
![]() ![]() | VT_LPWSTR | Indicates a wide string terminated by null. |
![]() ![]() | VT_RECORD | Indicates a user defined type. |
![]() ![]() | VT_FILETIME | Indicates a FILETIME value. |
![]() ![]() | VT_BLOB | Indicates length prefixed bytes. |
![]() ![]() | VT_STREAM | Indicates that the name of a stream follows. |
![]() ![]() | VT_STORAGE | Indicates that the name of a storage follows. |
![]() ![]() | VT_STREAMED_OBJECT | Indicates that a stream contains an object. |
![]() ![]() | VT_STORED_OBJECT | Indicates that a storage contains an object. |
![]() ![]() | VT_BLOB_OBJECT | Indicates that a blob contains an object. |
![]() ![]() | VT_CF | Indicates the clipboard format. |
![]() ![]() | VT_CLSID | Indicates a class ID. |
![]() ![]() | VT_VECTOR | Indicates a simple, counted array. |
![]() ![]() | VT_ARRAY | Indicates a SAFEARRAY pointer. |
![]() ![]() | VT_BYREF | Indicates that a value is a reference. |
Used with System.Runtime.InteropServices.MarshalAsAttribute to explicitly control the element type of the SafeArray.
using System; using System.Runtime.InteropServices; namespace MyModule { // If you do not have a type library for an interface // you can redeclare it using ComImportAttribute. // This is how the interface would look in an idl file. //[ //object, //uuid("73EB4AF8-BE9C-4b49-B3A4-24F4FF657B26"), //dual, helpstring("IMyStorage Interface"), //pointer_default(unique) //] //interface IMyStorage : IDispatch //{ // [id(1)] // HRESULT GetItem([in] BSTR bstrName, [out, retval] IDispatch ** ppItem); // [id(2)] // HRESULT GetItems([in] BSTR bstrLocation, [out] SAFEARRAY(VARIANT)* pItems); // [id(3)] // HRESULT GetItemDescriptions([in] BSTR bstrLocation, [out] SAFEARRAY(VARIANT) ** ppItems); // [id(4), propget] // HRESULT get_IsEmpty([out, retval] BOOL * pfEmpty); //}; // This is the managed declaration. [ComImport] [Guid("73EB4AF8-BE9C-4b49-B3A4-24F4FF657B26")] public interface IMyStorage { [DispId(1)] [return : MarshalAs( UnmanagedType.Interface )] Object GetItem( [In, MarshalAs( UnmanagedType.BStr )] String bstrName ); [DispId(2)] void GetItems( [In, MarshalAs( UnmanagedType.BStr )] String bstrLocation, [Out, MarshalAs( UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_VARIANT )] out Object[] Items ); [DispId(3)] void GetItemDescriptions( [In] String bstrLocation, [In, Out, MarshalAs( UnmanagedType.SafeArray )] ref Object[] varDescriptions ); bool IsEmpty { [DispId(4)] [return : MarshalAs( UnmanagedType.VariantBool )] get; } } }
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

