VarEnum VarEnum VarEnum VarEnum Enum

Definizione

Avviso

Questa API è ora obsoleta.

Indica come eseguire il marshalling degli elementi della matrice quando viene effettuato il marshalling di una matrice da codice gestito a codice non gestito come un 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
Ereditarietà
Attributi

Campi

VT_ARRAY VT_ARRAY VT_ARRAY VT_ARRAY 8192

Indica un SAFEARRAY puntatore.Indicates a SAFEARRAY pointer.

VT_BLOB VT_BLOB VT_BLOB VT_BLOB 65

Indica il prefisso di lunghezza di byte.Indicates length prefixed bytes.

VT_BLOB_OBJECT VT_BLOB_OBJECT VT_BLOB_OBJECT VT_BLOB_OBJECT 70

Indica che un blob contiene un oggetto.Indicates that a blob contains an object.

VT_BOOL VT_BOOL VT_BOOL VT_BOOL 11

Indica un valore booleano.Indicates a Boolean value.

VT_BSTR VT_BSTR VT_BSTR VT_BSTR 8

Indica una stringa BSTR.Indicates a BSTR string.

VT_BYREF VT_BYREF VT_BYREF VT_BYREF 16384

Indica che un valore è un riferimento.Indicates that a value is a reference.

VT_CARRAY VT_CARRAY VT_CARRAY VT_CARRAY 28

Indica una matrice di tipo C.Indicates a C style array.

VT_CF VT_CF VT_CF VT_CF 71

Indica il formato degli Appunti.Indicates the clipboard format.

VT_CLSID VT_CLSID VT_CLSID VT_CLSID 72

Indica un ID di classe.Indicates a class ID.

VT_CY VT_CY VT_CY VT_CY 6

Indica un valore di valuta.Indicates a currency value.

VT_DATE VT_DATE VT_DATE VT_DATE 7

Indica un valore DATE.Indicates a DATE value.

VT_DECIMAL VT_DECIMAL VT_DECIMAL VT_DECIMAL 14

Indica un decimal valore.Indicates a decimal value.

VT_DISPATCH VT_DISPATCH VT_DISPATCH VT_DISPATCH 9

Indica un IDispatch puntatore.Indicates an IDispatch pointer.

VT_EMPTY VT_EMPTY VT_EMPTY VT_EMPTY 0

Indica che non è stato specificato alcun valore.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 valore 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 char valore.Indicates a char value.

VT_I2 VT_I2 VT_I2 VT_I2 2

Indica un short integer.Indicates a short integer.

VT_I4 VT_I4 VT_I4 VT_I4 3

Indica un long integer.Indicates a long integer.

VT_I8 VT_I8 VT_I8 VT_I8 20

Indica un valore integer a 64 bit.Indicates a 64-bit integer.

VT_INT VT_INT VT_INT VT_INT 22

Indica un valore intero.Indicates an integer value.

VT_LPSTR VT_LPSTR VT_LPSTR VT_LPSTR 30

Indica una stringa con terminazione null.Indicates a null-terminated string.

VT_LPWSTR VT_LPWSTR VT_LPWSTR VT_LPWSTR 31

Indica una stringa a caratteri wide terminata da null.Indicates a wide string terminated by null.

VT_NULL VT_NULL VT_NULL VT_NULL 1

Indica un valore null, simile a un valore null in SQL.Indicates a null value, similar to a null value in SQL.

VT_PTR VT_PTR VT_PTR VT_PTR 26

Indica un tipo di puntatore.Indicates a pointer type.

VT_R4 VT_R4 VT_R4 VT_R4 4

Indica un float valore.Indicates a float value.

VT_R8 VT_R8 VT_R8 VT_R8 5

Indica un double valore.Indicates a double value.

VT_RECORD VT_RECORD VT_RECORD VT_RECORD 36

Indica un tipo definito dall'utente.Indicates a user defined type.

VT_SAFEARRAY VT_SAFEARRAY VT_SAFEARRAY VT_SAFEARRAY 27

Indica un SAFEARRAY.Indicates a SAFEARRAY. Non è valido in una variante.Not valid in a VARIANT.

VT_STORAGE VT_STORAGE VT_STORAGE VT_STORAGE 67

Indica che segue il nome di una risorsa di archiviazione.Indicates that the name of a storage follows.

VT_STORED_OBJECT VT_STORED_OBJECT VT_STORED_OBJECT VT_STORED_OBJECT 69

Indica che una risorsa di archiviazione contiene un oggetto.Indicates that a storage contains an object.

VT_STREAM VT_STREAM VT_STREAM VT_STREAM 66

Indica che segue il nome di un flusso.Indicates that the name of a stream follows.

VT_STREAMED_OBJECT VT_STREAMED_OBJECT VT_STREAMED_OBJECT VT_STREAMED_OBJECT 68

Indica che un flusso contiene un oggetto.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 valore unsignedshort.Indicates an unsignedshort.

VT_UI4 VT_UI4 VT_UI4 VT_UI4 19

Indica un valore unsignedlong.Indicates an unsignedlong.

VT_UI8 VT_UI8 VT_UI8 VT_UI8 21

Indica un intero senza segno a 64 bit.Indicates an 64-bit unsigned integer.

VT_UINT VT_UINT VT_UINT VT_UINT 23

Indica un unsigned valore intero.Indicates an unsigned integer value.

VT_UNKNOWN VT_UNKNOWN VT_UNKNOWN VT_UNKNOWN 13

Indica un IUnknown puntatore.Indicates an IUnknown pointer.

VT_USERDEFINED VT_USERDEFINED VT_USERDEFINED VT_USERDEFINED 29

Indica un tipo definito dall'utente.Indicates a user defined type.

VT_VARIANT VT_VARIANT VT_VARIANT VT_VARIANT 12

Indica una variante far puntatore.Indicates a VARIANT far pointer.

VT_VECTOR VT_VECTOR VT_VECTOR VT_VECTOR 4096

Indica una matrice a conteggio semplice.Indicates a simple, counted array.

VT_VOID VT_VOID VT_VOID VT_VOID 24

Indica uno stile C void.Indicates a C style void.

Esempi

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

Commenti

Utilizzato con System.Runtime.InteropServices.MarshalAsAttribute per controllare in modo esplicito il tipo di elemento di SafeArray.Used with System.Runtime.InteropServices.MarshalAsAttribute to explicitly control the element type of the SafeArray.

Si applica a

Vedi anche