VarEnum Enumeración
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Precaución
Marshalling VARIANTs may be unavailable in future releases.
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.
public enum class VarEnum
[System.Obsolete("Marshalling VARIANTs may be unavailable in future releases.")]
public enum VarEnum
public enum VarEnum
[System.Serializable]
public enum VarEnum
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum VarEnum
[<System.Obsolete("Marshalling VARIANTs may be unavailable in future releases.")>]
type VarEnum =
type VarEnum =
[<System.Serializable>]
type VarEnum =
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type VarEnum =
Public Enum VarEnum
- Herencia
- Atributos
Campos
VT_ARRAY | 8192 | Indica un puntero |
VT_BLOB | 65 | Indica la longitud de los bytes con prefijo. |
VT_BLOB_OBJECT | 70 | Indica que un objeto binario contiene un objeto. |
VT_BOOL | 11 | Indica un valor booleano. |
VT_BSTR | 8 | Indica una cadena BSTR. |
VT_BYREF | 16384 | Indica que un valor es una referencia. |
VT_CARRAY | 28 | Indica una matriz de estilo C. |
VT_CF | 71 | Indica el formato del portapapeles. |
VT_CLSID | 72 | Indica un Id. de clase. |
VT_CY | 6 | Indica un valor de moneda. |
VT_DATE | 7 | Indica un valor DATE. |
VT_DECIMAL | 14 | Indica un valor |
VT_DISPATCH | 9 | Indica un puntero |
VT_EMPTY | 0 | Indica que no se ha especificado un valor. |
VT_ERROR | 10 | Indica un SCODE. |
VT_FILETIME | 64 | Indica un valor de FILETIME. |
VT_HRESULT | 25 | Indica un HRESULT. |
VT_I1 | 16 | Indica un valor |
VT_I2 | 2 | Indica un entero |
VT_I4 | 3 | Indica un entero |
VT_I8 | 20 | Indica un entero de 64 bits. |
VT_INT | 22 | Indica un valor entero. |
VT_LPSTR | 30 | Indica una cadena terminada en un carácter null. |
VT_LPWSTR | 31 | Indica una cadena grande terminada en |
VT_NULL | 1 | Indica un valor nulo; similar a un valor nulo en SQL. |
VT_PTR | 26 | Indica un tipo de puntero. |
VT_R4 | 4 | Indica un valor |
VT_R8 | 5 | Indica un valor |
VT_RECORD | 36 | Indica un tipo definido por el usuario. |
VT_SAFEARRAY | 27 | Indica una SAFEARRAY. No es válida en un tipo VARIANT. |
VT_STORAGE | 67 | Indica que continúa el nombre de un almacenamiento. |
VT_STORED_OBJECT | 69 | Indica que un almacenamiento contiene un objeto. |
VT_STREAM | 66 | Indica que continúa el nombre de una secuencia. |
VT_STREAMED_OBJECT | 68 | Indica que una secuencia contiene un objeto. |
VT_UI1 | 17 | Indica un |
VT_UI2 | 18 | Indica un |
VT_UI4 | 19 | Indica un |
VT_UI8 | 21 | Indica un entero de 64 bits sin signo. |
VT_UINT | 23 | Indica un valor entero |
VT_UNKNOWN | 13 | Indica un puntero |
VT_USERDEFINED | 29 | Indica un tipo definido por el usuario. |
VT_VARIANT | 12 | Indica un puntero |
VT_VECTOR | 4096 | Indica una matriz simple y contada. |
VT_VOID | 24 | Indica una matriz |
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.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 con System.Runtime.InteropServices.MarshalAsAttribute para controlar explícitamente el tipo de elemento de SafeArray.