Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

VarEnum-Enumeration

 

Veröffentlicht: Oktober 2016

Gibt an, wie die Arrayelemente gemarshallt werden, wenn ein Array aus verwaltetem in nicht verwaltetem Code als gemarshallt ist eine UnmanagedType.SafeArray.

Namespace:   System.Runtime.InteropServices
Assembly:  mscorlib (in mscorlib.dll)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public enum VarEnum

MembernameBeschreibung
VT_ARRAY

Gibt einen SAFEARRAY Zeiger.

VT_BLOB

Gibt die Bytes mit Längenpräfix an.

VT_BLOB_OBJECT

Gibt an, dass ein Blob ein Objekt enthält.

VT_BOOL

Gibt einen booleschen Wert an.

VT_BSTR

Gibt eine BSTR-Zeichenfolge an.

VT_BYREF

Gibt an, dass ein Wert ein Verweis ist.

VT_CARRAY

Gibt ein Array der C-Format an.

VT_CF

Gibt das Format der Zwischenablage an.

VT_CLSID

Gibt eine Klassen-ID

VT_CY

Gibt einen Währungswert an.

VT_DATE

Gibt einen DATE-Wert an.

VT_DECIMAL

Gibt einen decimal Wert.

VT_DISPATCH

Gibt eine IDispatch Zeiger.

VT_EMPTY

Gibt an, dass kein Wert angegeben wurde.

VT_ERROR

Gibt einen SCODE an.

VT_FILETIME

Gibt einen FILETIME-Wert.

VT_HRESULT

Gibt ein HRESULT an.

VT_I1

Gibt einen char Wert.

VT_I2

Gibt eine short ganze Zahl.

VT_I4

Gibt eine long ganze Zahl.

VT_I8

Gibt eine 64-Bit-Ganzzahl.

VT_INT

Gibt einen ganzzahligen Wert an.

VT_LPSTR

Gibt eine Null-terminierte Zeichenfolge an.

VT_LPWSTR

Gibt eine Breite Zeichenfolge beendet null.

VT_NULL

Gibt einen null-Wert, einen null-Wert in SQL ähnelt.

VT_PTR

Gibt einen Zeiger.

VT_R4

Gibt einen float Wert.

VT_R8

Gibt einen double Wert.

VT_RECORD

Gibt einen benutzerdefinierten Typ an.

VT_SAFEARRAY

Gibt ein SAFEARRAY an. In einer Variante ist ungültig.

VT_STORAGE

Gibt an, dass der Name eines Speichers folgt.

VT_STORED_OBJECT

Gibt an, dass ein Speicher ein Objekt enthält.

VT_STREAM

Gibt an, dass der Name eines Streams folgt.

VT_STREAMED_OBJECT

Gibt an, dass ein Stream ein Objekt enthält.

VT_UI1

Gibt eine byte.

VT_UI2

Gibt eine unsignedshort.

VT_UI4

Gibt eine unsignedlong.

VT_UI8

Gibt eine 64-Bit-Ganzzahl ohne Vorzeichen.

VT_UINT

Gibt eine unsigned Integer-Wert.

VT_UNKNOWN

Gibt eine IUnknown Zeiger.

VT_USERDEFINED

Gibt einen benutzerdefinierten Typ an.

VT_VARIANT

Gibt eine Variante far Zeiger.

VT_VECTOR

Gibt ein einfaches, gezähltes Array an.

VT_VOID

Gibt einen C-Stil void.

Mit verwendet System.Runtime.InteropServices.MarshalAsAttribute den Elementtyp des explizit steuern die SafeArray.

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;
		}
	}
}

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: