VarEnum Enumeration
Indicates how to marshal the array elements when an array is marshaled from managed to unmanaged code as a UnmanagedType::SafeArray.
Assembly: mscorlib (in mscorlib.dll)
| Member name | Description | |
|---|---|---|
| VT_ARRAY | Indicates a SAFEARRAY pointer. | |
| VT_BLOB | Indicates length prefixed bytes. | |
| VT_BLOB_OBJECT | Indicates that a blob contains an object. | |
| VT_BOOL | Indicates a Boolean value. | |
| VT_BSTR | Indicates a BSTR string. | |
| VT_BYREF | Indicates that a value is a reference. | |
| VT_CARRAY | Indicates a C style array. | |
| VT_CF | Indicates the clipboard format. | |
| VT_CLSID | Indicates a class ID. | |
| VT_CY | Indicates a currency value. | |
| VT_DATE | Indicates a DATE value. | |
| VT_DECIMAL | Indicates a decimal value. | |
| VT_DISPATCH | Indicates an IDispatch pointer. | |
| VT_EMPTY | Indicates that a value was not specified. | |
| VT_ERROR | Indicates an SCODE. | |
| VT_FILETIME | Indicates a FILETIME value. | |
| VT_HRESULT | Indicates an HRESULT. | |
| VT_I1 | Indicates a char value. | |
| VT_I2 | Indicates a short integer. | |
| VT_I4 | Indicates a long integer. | |
| VT_I8 | Indicates a 64-bit integer. | |
| VT_INT | Indicates an integer value. | |
| VT_LPSTR | Indicates a null-terminated string. | |
| VT_LPWSTR | Indicates a wide string terminated by null. | |
| VT_NULL | Indicates a null value, similar to a null value in SQL. | |
| VT_PTR | Indicates a pointer type. | |
| VT_R4 | Indicates a float value. | |
| VT_R8 | Indicates a double value. | |
| VT_RECORD | Indicates a user defined type. | |
| VT_SAFEARRAY | Indicates a SAFEARRAY. Not valid in a VARIANT. | |
| VT_STORAGE | Indicates that the name of a storage follows. | |
| VT_STORED_OBJECT | Indicates that a storage contains an object. | |
| VT_STREAM | Indicates that the name of a stream follows. | |
| VT_STREAMED_OBJECT | Indicates that a stream contains an object. | |
| VT_UI1 | Indicates a byte. | |
| VT_UI2 | Indicates an unsignedshort. | |
| VT_UI4 | Indicates an unsignedlong. | |
| VT_UI8 | Indicates an 64-bit unsigned integer. | |
| VT_UINT | Indicates an unsigned integer value. | |
| VT_UNKNOWN | Indicates an IUnknown pointer. | |
| VT_USERDEFINED | Indicates a user defined type. | |
| VT_VARIANT | Indicates a VARIANT far pointer. | |
| VT_VECTOR | Indicates a simple, counted array. | |
| VT_VOID | Indicates a C style void. |
Used with System.Runtime.InteropServices::MarshalAsAttribute to explicitly control the element type of the SafeArray.
using namespace System; using namespace System::Runtime::InteropServices; // 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")] interface class IMyStorage { [DispId(1)] Object^ GetItem( [In,MarshalAs(UnmanagedType::BStr)]String^ bstrName ); //[return : MarshalAs(UnmanagedType::Interface)] [DispId(2)] void GetItems( [In,MarshalAs(UnmanagedType::BStr)]String^ bstrLocation, [Out,MarshalAs(UnmanagedType::SafeArray, SafeArraySubType=VarEnum::VT_VARIANT)]array<Object^>^Items ); [DispId(3)] void GetItemDescriptions( [In]String^ bstrLocation, [In,Out,MarshalAs(UnmanagedType::SafeArray)]array<Object^>^varDescriptions ); property bool IsEmpty { [DispId(4)] [returnvalue:MarshalAs(UnmanagedType::VariantBool)] bool get(); } };
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Windows Phone
Available since 8.1