VarEnum Wyliczenie

Definicja

Przestroga

Marshalling VARIANTs may be unavailable in future releases.

Wskazuje, w jaki sposób zorganizować elementy tablicy, gdy tablica jest organizowana z zarządzanego do niezarządzanego kodu jako 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
public enum VarEnum
[System.Obsolete("Marshalling VARIANTs may be unavailable in future releases.")]
public enum VarEnum
[System.Serializable]
public enum VarEnum
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum VarEnum
type VarEnum = 
[<System.Obsolete("Marshalling VARIANTs may be unavailable in future releases.")>]
type VarEnum = 
[<System.Serializable>]
type VarEnum = 
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type VarEnum = 
Public Enum VarEnum
Dziedziczenie
Atrybuty

Pola

VT_ARRAY 8192

Wskazuje SAFEARRAY wskaźnik.Indicates a SAFEARRAY pointer.

VT_BLOB 65

Wskazuje długość bajtów prefiksu.Indicates length prefixed bytes.

VT_BLOB_OBJECT 70

Wskazuje, że element BLOB zawiera obiekt.Indicates that a blob contains an object.

VT_BOOL 11

Wskazuje wartość logiczną.Indicates a Boolean value.

VT_BSTR 8

Wskazuje ciąg BSTR.Indicates a BSTR string.

VT_BYREF 16384

Wskazuje, że wartość jest odwołaniem.Indicates that a value is a reference.

VT_CARRAY 28

Wskazuje tablicę stylów języka C.Indicates a C style array.

VT_CF 71

Wskazuje format schowka.Indicates the clipboard format.

VT_CLSID 72

Wskazuje identyfikator klasy.Indicates a class ID.

VT_CY 6

Wskazuje wartość waluty.Indicates a currency value.

VT_DATE 7

Wskazuje wartość typu DATE.Indicates a DATE value.

VT_DECIMAL 14

Wskazuje decimal wartość.Indicates a decimal value.

VT_DISPATCH 9

Wskazuje IDispatch wskaźnik.Indicates an IDispatch pointer.

VT_EMPTY 0

Wskazuje, że wartość nie została określona.Indicates that a value was not specified.

VT_ERROR 10

Wskazuje SCODE.Indicates an SCODE.

VT_FILETIME 64

Wskazuje wartość FILETIME.Indicates a FILETIME value.

VT_HRESULT 25

Wskazuje wynik HRESULT.Indicates an HRESULT.

VT_I1 16

Wskazuje char wartość.Indicates a char value.

VT_I2 2

Wskazuje short liczbę całkowitą.Indicates a short integer.

VT_I4 3

Wskazuje long liczbę całkowitą.Indicates a long integer.

VT_I8 20

Wskazuje 64-bitową liczbę całkowitą.Indicates a 64-bit integer.

VT_INT 22

Wskazuje wartość całkowitą.Indicates an integer value.

VT_LPSTR 30

Wskazuje ciąg zakończony znakiem null.Indicates a null-terminated string.

VT_LPWSTR 31

Wskazuje szeroki ciąg zakończony przez null .Indicates a wide string terminated by null.

VT_NULL 1

Wskazuje wartość null, podobną do wartości null w SQL.Indicates a null value, similar to a null value in SQL.

VT_PTR 26

Wskazuje typ wskaźnika.Indicates a pointer type.

VT_R4 4

Wskazuje float wartość.Indicates a float value.

VT_R8 5

Wskazuje double wartość.Indicates a double value.

VT_RECORD 36

Wskazuje typ zdefiniowany przez użytkownika.Indicates a user defined type.

VT_SAFEARRAY 27

Wskazuje element SAFEARRAY.Indicates a SAFEARRAY. Nieprawidłowa w elemencie VARIANT.Not valid in a VARIANT.

VT_STORAGE 67

Wskazuje, że nazwa magazynu jest następująca.Indicates that the name of a storage follows.

VT_STORED_OBJECT 69

Wskazuje, że magazyn zawiera obiekt.Indicates that a storage contains an object.

VT_STREAM 66

Wskazuje, że nazwa strumienia jest następująca.Indicates that the name of a stream follows.

VT_STREAMED_OBJECT 68

Wskazuje, że strumień zawiera obiekt.Indicates that a stream contains an object.

VT_UI1 17

Wskazuje byte .Indicates a byte.

VT_UI2 18

Wskazuje unsigned short .Indicates an unsignedshort.

VT_UI4 19

Wskazuje unsigned long .Indicates an unsignedlong.

VT_UI8 21

Wskazuje 64-bitową liczbę całkowitą bez znaku.Indicates an 64-bit unsigned integer.

VT_UINT 23

Wskazuje unsigned wartość całkowitą.Indicates an unsigned integer value.

VT_UNKNOWN 13

Wskazuje IUnknown wskaźnik.Indicates an IUnknown pointer.

VT_USERDEFINED 29

Wskazuje typ zdefiniowany przez użytkownika.Indicates a user defined type.

VT_VARIANT 12

Wskazuje wskaźnik WARIANTu far .Indicates a VARIANT far pointer.

VT_VECTOR 4096

Wskazuje prostą, zliczona tablicę.Indicates a simple, counted array.

VT_VOID 24

Wskazuje styl języka C void .Indicates a C style void.

Przykłady

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

Uwagi

Używane z, System.Runtime.InteropServices.MarshalAsAttribute Aby jawnie kontrolować typ elementu SafeArray .Used with System.Runtime.InteropServices.MarshalAsAttribute to explicitly control the element type of the SafeArray.

Dotyczy

Zobacz też