Freigeben über


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
Unterstützt von .NET Compact Framework VT_ARRAY Gibt einen SAFEARRAY-Zeiger an. 
Unterstützt von .NET Compact Framework VT_BLOB Gibt Bytes mit Längenpräfix an. 
Unterstützt von .NET Compact Framework VT_BLOB_OBJECT Gibt an, dass ein BLOB ein Objekt enthält. 
Unterstützt von .NET Compact Framework VT_BOOL Gibt einen booleschen Wert an. 
Unterstützt von .NET Compact Framework VT_BSTR Gibt eine BSTR-Zeichenfolge an. 
Unterstützt von .NET Compact Framework VT_BYREF Gibt an, dass ein Wert ein Verweis ist. 
Unterstützt von .NET Compact Framework VT_CARRAY Gibt ein C-Array an. 
Unterstützt von .NET Compact Framework VT_CF Gibt das Format der Zwischenablage an. 
Unterstützt von .NET Compact Framework VT_CLSID Gibt eine Klassen-ID an. 
Unterstützt von .NET Compact Framework VT_CY Gibt einen Währungswert an. 
Unterstützt von .NET Compact Framework VT_DATE Gibt einen DATE-Wert an. 
Unterstützt von .NET Compact Framework VT_DECIMAL Gibt einen decimal-Wert an. 
Unterstützt von .NET Compact Framework VT_DISPATCH Gibt einen IDispatch-Zeiger an. 
Unterstützt von .NET Compact Framework VT_EMPTY Gibt an, dass ein Wert nicht angegeben wurde. 
Unterstützt von .NET Compact Framework VT_ERROR Gibt einen SCODE an. 
Unterstützt von .NET Compact Framework VT_FILETIME Gibt einen FILETIME-Wert an. 
Unterstützt von .NET Compact Framework VT_HRESULT Gibt ein HRESULT an. 
Unterstützt von .NET Compact Framework VT_I1 Gibt einen char-Wert an. 
Unterstützt von .NET Compact Framework VT_I2 Gibt eine short-Ganzzahl an. 
Unterstützt von .NET Compact Framework VT_I4 Gibt eine long-Ganzzahl an. 
Unterstützt von .NET Compact Framework VT_I8 Gibt eine 64-Bit-Ganzzahl mit Vorzeichen an. 
Unterstützt von .NET Compact Framework VT_INT Gibt einen Ganzzahlwert an. 
Unterstützt von .NET Compact Framework VT_LPSTR Gibt eine auf NULL endende Zeichenfolge an. 
Unterstützt von .NET Compact Framework VT_LPWSTR Gibt eine auf NULL (Nothing in Visual Basic) endende breite Zeichenfolge an. 
Unterstützt von .NET Compact Framework VT_NULL Gibt einen NULL-Wert an, der mit einem NULL-Wert in SQL vergleichbar ist. 
Unterstützt von .NET Compact Framework VT_PTR Gibt einen Zeigertyp an. 
Unterstützt von .NET Compact Framework VT_R4 Gibt einen float-Wert an. 
Unterstützt von .NET Compact Framework VT_R8 Gibt einen double-Wert an. 
Unterstützt von .NET Compact Framework VT_RECORD Gibt einen benutzerdefinierten Typ an. 
Unterstützt von .NET Compact Framework VT_SAFEARRAY Gibt ein SAFEARRAY an. In einem VARIANT nicht gültig. 
Unterstützt von .NET Compact Framework VT_STORAGE Gibt an, dass der Name eines Speichers folgt. 
Unterstützt von .NET Compact Framework VT_STORED_OBJECT Gibt an, dass ein Speicher ein Objekt enthält. 
Unterstützt von .NET Compact Framework VT_STREAM Gibt an, dass der Name eines Streams folgt. 
Unterstützt von .NET Compact Framework VT_STREAMED_OBJECT Gibt an, dass ein Stream ein Objekt enthält. 
Unterstützt von .NET Compact Framework VT_UI1 Gibt ein byte an. 
Unterstützt von .NET Compact Framework VT_UI2 Gibt ein unsignedshort an. 
Unterstützt von .NET Compact Framework VT_UI4 Gibt ein unsignedlong an. 
Unterstützt von .NET Compact Framework VT_UI8 Gibt eine 64-Bit-Ganzzahl ohne Vorzeichen an. 
Unterstützt von .NET Compact Framework VT_UINT Gibt einen unsigned-Ganzzahlwert an. 
Unterstützt von .NET Compact Framework VT_UNKNOWN Gibt einen IUnknown-Zeiger an. 
Unterstützt von .NET Compact Framework VT_USERDEFINED Gibt einen benutzerdefinierten Typ an. 
Unterstützt von .NET Compact Framework VT_VARIANT Gibt einen VARIANT-far-Zeiger an. 
Unterstützt von .NET Compact Framework VT_VECTOR Gibt ein einfaches, gezähltes Array an. 
Unterstützt von .NET Compact Framework 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