VarEnum VarEnum VarEnum VarEnum Enum

Definition

Warnung

Diese API ist jetzt veraltet.

Gibt an, wie die Arrayelemente gemarshallt werden sollen, wenn ein Array als SafeArray aus verwaltetem in nicht verwalteten Code gemarshallt wird.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
Vererbung
Attribute

Felder

VT_ARRAY VT_ARRAY VT_ARRAY VT_ARRAY 8192

Gibt einen SAFEARRAY-Zeiger an.Indicates a SAFEARRAY pointer.

VT_BLOB VT_BLOB VT_BLOB VT_BLOB 65

Gibt Bytes mit Längenpräfix an.Indicates length prefixed bytes.

VT_BLOB_OBJECT VT_BLOB_OBJECT VT_BLOB_OBJECT VT_BLOB_OBJECT 70

Gibt an, dass ein BLOB ein Objekt enthält.Indicates that a blob contains an object.

VT_BOOL VT_BOOL VT_BOOL VT_BOOL 11

Gibt einen booleschen Wert an.Indicates a Boolean value.

VT_BSTR VT_BSTR VT_BSTR VT_BSTR 8

Gibt eine BSTR-Zeichenfolge an.Indicates a BSTR string.

VT_BYREF VT_BYREF VT_BYREF VT_BYREF 16384

Gibt an, dass ein Wert ein Verweis ist.Indicates that a value is a reference.

VT_CARRAY VT_CARRAY VT_CARRAY VT_CARRAY 28

Gibt ein C-Array an.Indicates a C style array.

VT_CF VT_CF VT_CF VT_CF 71

Gibt das Format der Zwischenablage an.Indicates the clipboard format.

VT_CLSID VT_CLSID VT_CLSID VT_CLSID 72

Gibt eine Klassen-ID an.Indicates a class ID.

VT_CY VT_CY VT_CY VT_CY 6

Gibt einen Währungswert an.Indicates a currency value.

VT_DATE VT_DATE VT_DATE VT_DATE 7

Gibt einen DATE-Wert an.Indicates a DATE value.

VT_DECIMAL VT_DECIMAL VT_DECIMAL VT_DECIMAL 14

Gibt einen decimal-Wert an.Indicates a decimal value.

VT_DISPATCH VT_DISPATCH VT_DISPATCH VT_DISPATCH 9

Gibt einen IDispatch-Zeiger an.Indicates an IDispatch pointer.

VT_EMPTY VT_EMPTY VT_EMPTY VT_EMPTY 0

Gibt an, dass ein Wert nicht angegeben wurde.Indicates that a value was not specified.

VT_ERROR VT_ERROR VT_ERROR VT_ERROR 10

Gibt einen SCODE an.Indicates an SCODE.

VT_FILETIME VT_FILETIME VT_FILETIME VT_FILETIME 64

Gibt einen FILETIME-Wert an.Indicates a FILETIME value.

VT_HRESULT VT_HRESULT VT_HRESULT VT_HRESULT 25

Gibt ein HRESULT an.Indicates an HRESULT.

VT_I1 VT_I1 VT_I1 VT_I1 16

Gibt einen char-Wert an.Indicates a char value.

VT_I2 VT_I2 VT_I2 VT_I2 2

Gibt eine short-Ganzzahl an.Indicates a short integer.

VT_I4 VT_I4 VT_I4 VT_I4 3

Gibt eine long-Ganzzahl an.Indicates a long integer.

VT_I8 VT_I8 VT_I8 VT_I8 20

Gibt eine 64-Bit-Ganzzahl mit Vorzeichen an.Indicates a 64-bit integer.

VT_INT VT_INT VT_INT VT_INT 22

Gibt einen Ganzzahlwert an.Indicates an integer value.

VT_LPSTR VT_LPSTR VT_LPSTR VT_LPSTR 30

Gibt eine auf NULL endende Zeichenfolge an.Indicates a null-terminated string.

VT_LPWSTR VT_LPWSTR VT_LPWSTR VT_LPWSTR 31

Gibt eine auf null endende breite Zeichenfolge an.Indicates a wide string terminated by null.

VT_NULL VT_NULL VT_NULL VT_NULL 1

Gibt einen NULL-Wert an, der mit einem NULL-Wert in SQL vergleichbar ist.Indicates a null value, similar to a null value in SQL.

VT_PTR VT_PTR VT_PTR VT_PTR 26

Gibt einen Zeigertyp an.Indicates a pointer type.

VT_R4 VT_R4 VT_R4 VT_R4 4

Gibt einen float-Wert an.Indicates a float value.

VT_R8 VT_R8 VT_R8 VT_R8 5

Gibt einen double-Wert an.Indicates a double value.

VT_RECORD VT_RECORD VT_RECORD VT_RECORD 36

Gibt einen benutzerdefinierten Typ an.Indicates a user defined type.

VT_SAFEARRAY VT_SAFEARRAY VT_SAFEARRAY VT_SAFEARRAY 27

Gibt ein SAFEARRAY an.Indicates a SAFEARRAY. In einem VARIANT nicht gültig.Not valid in a VARIANT.

VT_STORAGE VT_STORAGE VT_STORAGE VT_STORAGE 67

Gibt an, dass der Name eines Speichers folgt.Indicates that the name of a storage follows.

VT_STORED_OBJECT VT_STORED_OBJECT VT_STORED_OBJECT VT_STORED_OBJECT 69

Gibt an, dass ein Speicher ein Objekt enthält.Indicates that a storage contains an object.

VT_STREAM VT_STREAM VT_STREAM VT_STREAM 66

Gibt an, dass der Name eines Streams folgt.Indicates that the name of a stream follows.

VT_STREAMED_OBJECT VT_STREAMED_OBJECT VT_STREAMED_OBJECT VT_STREAMED_OBJECT 68

Gibt an, dass ein Stream ein Objekt enthält.Indicates that a stream contains an object.

VT_UI1 VT_UI1 VT_UI1 VT_UI1 17

Gibt ein byte an.Indicates a byte.

VT_UI2 VT_UI2 VT_UI2 VT_UI2 18

Gibt ein unsignedshort an.Indicates an unsignedshort.

VT_UI4 VT_UI4 VT_UI4 VT_UI4 19

Gibt ein unsignedlong an.Indicates an unsignedlong.

VT_UI8 VT_UI8 VT_UI8 VT_UI8 21

Gibt eine 64-Bit-Ganzzahl ohne Vorzeichen an.Indicates an 64-bit unsigned integer.

VT_UINT VT_UINT VT_UINT VT_UINT 23

Gibt einen unsigned-Ganzzahlwert an.Indicates an unsigned integer value.

VT_UNKNOWN VT_UNKNOWN VT_UNKNOWN VT_UNKNOWN 13

Gibt einen IUnknown-Zeiger an.Indicates an IUnknown pointer.

VT_USERDEFINED VT_USERDEFINED VT_USERDEFINED VT_USERDEFINED 29

Gibt einen benutzerdefinierten Typ an.Indicates a user defined type.

VT_VARIANT VT_VARIANT VT_VARIANT VT_VARIANT 12

Gibt einen VARIANT-far-Zeiger an.Indicates a VARIANT far pointer.

VT_VECTOR VT_VECTOR VT_VECTOR VT_VECTOR 4096

Gibt ein einfaches, gezähltes Array an.Indicates a simple, counted array.

VT_VOID VT_VOID VT_VOID VT_VOID 24

Gibt void im Stil von C an.Indicates a C style void.

Beispiele

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

Hinweise

Wird mit System.Runtime.InteropServices.MarshalAsAttribute verwendet, um den Elementtyp SafeArraydes explizit zu steuern.Used with System.Runtime.InteropServices.MarshalAsAttribute to explicitly control the element type of the SafeArray.

Gilt für:

Siehe auch