VarEnum VarEnum VarEnum VarEnum Enum

Definición

Advertencia

Esta API está ya obsoleta.

Indica cómo calcular las referencias de los elementos de matriz cuando se calculan las referencias de matriz de código administrado a código no administrado como SafeArray.Indicates how to marshal the array elements when an array is marshaled from managed to unmanaged code as a SafeArray.

public enum class VarEnum
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
[System.Obsolete("Marshalling VARIANTs may be unavailable in future releases.")]
public enum VarEnum
type VarEnum = 
Public Enum VarEnum
Herencia
Atributos

Campos

VT_ARRAY VT_ARRAY VT_ARRAY VT_ARRAY 8192

Indica un puntero SAFEARRAY.Indicates a SAFEARRAY pointer.

VT_BLOB VT_BLOB VT_BLOB VT_BLOB 65

Indica la longitud de los bytes con prefijo.Indicates length prefixed bytes.

VT_BLOB_OBJECT VT_BLOB_OBJECT VT_BLOB_OBJECT VT_BLOB_OBJECT 70

Indica que un objeto binario contiene un objeto.Indicates that a blob contains an object.

VT_BOOL VT_BOOL VT_BOOL VT_BOOL 11

Indica un valor booleano.Indicates a Boolean value.

VT_BSTR VT_BSTR VT_BSTR VT_BSTR 8

Indica una cadena BSTR.Indicates a BSTR string.

VT_BYREF VT_BYREF VT_BYREF VT_BYREF 16384

Indica que un valor es una referencia.Indicates that a value is a reference.

VT_CARRAY VT_CARRAY VT_CARRAY VT_CARRAY 28

Indica una matriz de estilo C.Indicates a C style array.

VT_CF VT_CF VT_CF VT_CF 71

Indica el formato del portapapeles.Indicates the clipboard format.

VT_CLSID VT_CLSID VT_CLSID VT_CLSID 72

Indica el identificador de una clase.Indicates a class ID.

VT_CY VT_CY VT_CY VT_CY 6

Indica un valor de moneda.Indicates a currency value.

VT_DATE VT_DATE VT_DATE VT_DATE 7

Indica un valor de DATE.Indicates a DATE value.

VT_DECIMAL VT_DECIMAL VT_DECIMAL VT_DECIMAL 14

Indica un valor decimal.Indicates a decimal value.

VT_DISPATCH VT_DISPATCH VT_DISPATCH VT_DISPATCH 9

Indica un puntero IDispatch.Indicates an IDispatch pointer.

VT_EMPTY VT_EMPTY VT_EMPTY VT_EMPTY 0

Indica que no se ha especificado un valor.Indicates that a value was not specified.

VT_ERROR VT_ERROR VT_ERROR VT_ERROR 10

Indica un SCODE.Indicates an SCODE.

VT_FILETIME VT_FILETIME VT_FILETIME VT_FILETIME 64

Indica un valor de FILETIME.Indicates a FILETIME value.

VT_HRESULT VT_HRESULT VT_HRESULT VT_HRESULT 25

Indica un HRESULT.Indicates an HRESULT.

VT_I1 VT_I1 VT_I1 VT_I1 16

Indica un valor char.Indicates a char value.

VT_I2 VT_I2 VT_I2 VT_I2 2

Indica un entero short.Indicates a short integer.

VT_I4 VT_I4 VT_I4 VT_I4 3

Indica un entero long.Indicates a long integer.

VT_I8 VT_I8 VT_I8 VT_I8 20

Indica un entero de 64 bits.Indicates a 64-bit integer.

VT_INT VT_INT VT_INT VT_INT 22

Indica un valor entero.Indicates an integer value.

VT_LPSTR VT_LPSTR VT_LPSTR VT_LPSTR 30

Indica una cadena terminada en un carácter null.Indicates a null-terminated string.

VT_LPWSTR VT_LPWSTR VT_LPWSTR VT_LPWSTR 31

Indica una cadena grande terminada en null.Indicates a wide string terminated by null.

VT_NULL VT_NULL VT_NULL VT_NULL 1

Indica un valor null, similar al valor Null en SQL.Indicates a null value, similar to a null value in SQL.

VT_PTR VT_PTR VT_PTR VT_PTR 26

Indica un tipo de puntero.Indicates a pointer type.

VT_R4 VT_R4 VT_R4 VT_R4 4

Indica un valor float.Indicates a float value.

VT_R8 VT_R8 VT_R8 VT_R8 5

Indica un valor double.Indicates a double value.

VT_RECORD VT_RECORD VT_RECORD VT_RECORD 36

Indica un tipo definido por el usuario.Indicates a user defined type.

VT_SAFEARRAY VT_SAFEARRAY VT_SAFEARRAY VT_SAFEARRAY 27

Indica una SAFEARRAY.Indicates a SAFEARRAY. No es válida en un tipo VARIANT.Not valid in a VARIANT.

VT_STORAGE VT_STORAGE VT_STORAGE VT_STORAGE 67

Indica que continúa el nombre de un almacenamiento.Indicates that the name of a storage follows.

VT_STORED_OBJECT VT_STORED_OBJECT VT_STORED_OBJECT VT_STORED_OBJECT 69

Indica que un almacenamiento contiene un objeto.Indicates that a storage contains an object.

VT_STREAM VT_STREAM VT_STREAM VT_STREAM 66

Indica que continúa el nombre de una secuencia.Indicates that the name of a stream follows.

VT_STREAMED_OBJECT VT_STREAMED_OBJECT VT_STREAMED_OBJECT VT_STREAMED_OBJECT 68

Indica que una secuencia contiene un objeto.Indicates that a stream contains an object.

VT_UI1 VT_UI1 VT_UI1 VT_UI1 17

Indica un byte.Indicates a byte.

VT_UI2 VT_UI2 VT_UI2 VT_UI2 18

Indica un unsignedshort.Indicates an unsignedshort.

VT_UI4 VT_UI4 VT_UI4 VT_UI4 19

Indica un unsignedlong.Indicates an unsignedlong.

VT_UI8 VT_UI8 VT_UI8 VT_UI8 21

Indica un entero de 64 bits sin signo.Indicates an 64-bit unsigned integer.

VT_UINT VT_UINT VT_UINT VT_UINT 23

Indica un valor entero unsigned.Indicates an unsigned integer value.

VT_UNKNOWN VT_UNKNOWN VT_UNKNOWN VT_UNKNOWN 13

Indica un puntero IUnknown.Indicates an IUnknown pointer.

VT_USERDEFINED VT_USERDEFINED VT_USERDEFINED VT_USERDEFINED 29

Indica un tipo definido por el usuario.Indicates a user defined type.

VT_VARIANT VT_VARIANT VT_VARIANT VT_VARIANT 12

Indica un puntero far VARIANT.Indicates a VARIANT far pointer.

VT_VECTOR VT_VECTOR VT_VECTOR VT_VECTOR 4096

Indica una matriz simple y contada.Indicates a simple, counted array.

VT_VOID VT_VOID VT_VOID VT_VOID 24

Indica una matriz void de estilo C.Indicates a C style void.

Ejemplos

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();
   }
};
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;
		}
	}
}
Imports System
Imports System.Runtime.InteropServices

Module 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)> _
		Function GetItem(<InAttribute(), MarshalAs(UnmanagedType.BStr)> ByVal bstrName As String) _
		   As <MarshalAs(UnmanagedType.Interface)> Object

		<DispId(2)> _
		Function GetItems(<InAttribute(), MarshalAs(UnmanagedType.BStr)> ByVal bstrLocation As String, _
		   <OutAttribute(), MarshalAs(UnmanagedType.SafeArray, SafeArraySubType := VarEnum.VT_VARIANT)> _
                                      ByVal Items() As Object)

		<DispId(3)> _
		Function GetItemDescriptions(<InAttribute()> ByVal bstrLocation As String, _
		   <InAttribute(), OutAttribute(), _
                      MarshalAs(UnmanagedType.SafeArray)> ByRef varDescriptions() As Object)

		<DispId(4)> _
		ReadOnly Property IsEmpty(<MarshalAs(UnmanagedType.VariantBool)> ByVal bEmpty As Boolean)

	End Interface
End Module

Comentarios

Se usa System.Runtime.InteropServices.MarshalAsAttribute con para controlar explícitamente el tipo SafeArrayde elemento de.Used with System.Runtime.InteropServices.MarshalAsAttribute to explicitly control the element type of the SafeArray.

Se aplica a

Consulte también: