VarEnum-Enumeration
Gibt an, wie die Arrayelemente gemarshallt werden sollen, wenn ein Array als UnmanagedType.SafeArray aus verwaltetem in nicht verwalteten Code gemarshallt wird.
Namespace: System.Runtime.InteropServices
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Enumeration VarEnum
'Usage
Dim instance As VarEnum
[SerializableAttribute]
[ComVisibleAttribute(true)]
public enum VarEnum
[SerializableAttribute]
[ComVisibleAttribute(true)]
public enum class VarEnum
/** @attribute SerializableAttribute() */
/** @attribute ComVisibleAttribute(true) */
public enum VarEnum
SerializableAttribute
ComVisibleAttribute(true)
public enum VarEnum
Member
Membername | Beschreibung | |
---|---|---|
VT_ARRAY | Gibt einen SAFEARRAY-Zeiger an. | |
VT_BLOB | Gibt 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 C-Array an. | |
VT_CF | Gibt das Format der Zwischenablage an. | |
VT_CLSID | Gibt eine Klassen-ID an. | |
VT_CY | Gibt einen Währungswert an. | |
VT_DATE | Gibt einen DATE-Wert an. | |
VT_DECIMAL | Gibt einen decimal-Wert an. | |
VT_DISPATCH | Gibt einen IDispatch-Zeiger an. | |
VT_EMPTY | Gibt an, dass ein Wert nicht angegeben wurde. | |
VT_ERROR | Gibt einen SCODE an. | |
VT_FILETIME | Gibt einen FILETIME-Wert an. | |
VT_HRESULT | Gibt ein HRESULT an. | |
VT_I1 | Gibt einen char-Wert an. | |
VT_I2 | Gibt eine short-Ganzzahl an. | |
VT_I4 | Gibt eine long-Ganzzahl an. | |
VT_I8 | Gibt eine 64-Bit-Ganzzahl mit Vorzeichen an. | |
VT_INT | Gibt einen Ganzzahlwert an. | |
VT_LPSTR | Gibt eine auf NULL endende Zeichenfolge an. | |
VT_LPWSTR | Gibt eine auf NULL (Nothing in Visual Basic) endende breite Zeichenfolge an. | |
VT_NULL | Gibt einen NULL-Wert an, der mit einem NULL-Wert in SQL vergleichbar ist. | |
VT_PTR | Gibt einen Zeigertyp an. | |
VT_R4 | Gibt einen float-Wert an. | |
VT_R8 | Gibt einen double-Wert an. | |
VT_RECORD | Gibt einen benutzerdefinierten Typ an. | |
VT_SAFEARRAY | Gibt ein SAFEARRAY an. In einem VARIANT nicht gü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 ein byte an. | |
VT_UI2 | Gibt ein unsignedshort an. | |
VT_UI4 | Gibt ein unsignedlong an. | |
VT_UI8 | Gibt eine 64-Bit-Ganzzahl ohne Vorzeichen an. | |
VT_UINT | Gibt einen unsigned-Ganzzahlwert an. | |
VT_UNKNOWN | Gibt einen IUnknown-Zeiger an. | |
VT_USERDEFINED | Gibt einen benutzerdefinierten Typ an. | |
VT_VARIANT | Gibt einen VARIANT-far-Zeiger an. | |
VT_VECTOR | Gibt ein einfaches, gezähltes Array an. | |
VT_VOID | Gibt void im Stil von C an. |
Hinweise
Wird mit System.Runtime.InteropServices.MarshalAsAttribute verwendet, um den Elementtyp des SafeArray explizit zu steuern.
Beispiel
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)> 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
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;
}
}
}
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();
}
};
import System.*;
import 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.
/** @attribute ComImport()
*/
/** @attribute Guid("73EB4AF8-BE9C-4b49-B3A4-24F4FF657B26")
*/
public interface IMyStorage
{
/** @attribute DispId(1)
*/
Object GetItem(
/** @attribute In()
@attribute MarshalAs(UnmanagedType.BStr)
*/String bstrName);
/** @attribute DispId(2)
*/
void GetItems(
/** @attribute In()
@attribute MarshalAs(UnmanagedType.BStr)
*/String bstrLocation,
/** @attribute Out()
@attribute MarshalAs(UnmanagedType.SafeArray,
SafeArraySubType = VarEnum.VT_VARIANT)
*/Object Items[]);
/** @attribute DispId(3)
*/
void GetItemDescriptions(
/** @attribute In()
*/String bstrLocation,
/** @attribute In()
@attribute Out()
@attribute MarshalAs(UnmanagedType.SafeArray)
*/Object varDescriptions[]);
/** @attribute DispId(4)
*/
/** @return MarshalAs(UnmanagedType.VariantBool)
*/
boolean get_IsEmpty();
} //IMyStorage
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
.NET Compact Framework
Unterstützt in: 2.0
Siehe auch
Referenz
System.Runtime.InteropServices-Namespace
SafeArray
MarshalAsAttribute-Klasse