VarEnum Wyliczenie

Definicja

Przestroga

Marshalling VARIANTs may be unavailable in future releases.

Wskazuje sposób marshalingu elementów tablicy, gdy tablica jest marshaledowana z zarządzanego do niezarządzanego kodu jako SafeArray.

C#
[System.Obsolete("Marshalling VARIANTs may be unavailable in future releases.")]
public enum VarEnum
C#
public enum VarEnum
C#
[System.Serializable]
public enum VarEnum
C#
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum VarEnum
Dziedziczenie
Atrybuty

Pola

Nazwa Wartość Opis
VT_ARRAY 8192

SAFEARRAY Wskazuje wskaźnik.

VT_BLOB 65

Wskazuje długość poprzedzoną prefiksem bajtów.

VT_BLOB_OBJECT 70

Wskazuje, że obiekt blob zawiera obiekt .

VT_BOOL 11

Wskazuje wartość logiczną.

VT_BSTR 8

Wskazuje ciąg BSTR.

VT_BYREF 16384

Wskazuje, że wartość jest odwołaniem.

VT_CARRAY 28

Wskazuje tablicę stylów języka C.

VT_CF 71

Wskazuje format schowka.

VT_CLSID 72

Wskazuje identyfikator klasy.

VT_CY 6

Wskazuje wartość waluty.

VT_DATE 7

Wskazuje wartość DATE.

VT_DECIMAL 14

decimal Wskazuje wartość.

VT_DISPATCH 9

IDispatch Wskazuje wskaźnik.

VT_EMPTY 0

Wskazuje, że nie określono wartości.

VT_ERROR 10

Wskazuje kod SCODE.

VT_FILETIME 64

Wskazuje wartość FILETIME.

VT_HRESULT 25

Wskazuje HRESULT.

VT_I1 16

char Wskazuje wartość.

VT_I2 2

short Wskazuje liczbę całkowitą.

VT_I4 3

long Wskazuje liczbę całkowitą.

VT_I8 20

Wskazuje 64-bitową liczbę całkowitą.

VT_INT 22

Wskazuje wartość całkowitą.

VT_LPSTR 30

Wskazuje ciąg zakończony o wartości null.

VT_LPWSTR 31

Wskazuje szeroki ciąg zakończony przez null.

VT_NULL 1

Wskazuje wartość null podobną do wartości null w języku SQL.

VT_PTR 26

Wskazuje typ wskaźnika.

VT_R4 4

float Wskazuje wartość.

VT_R8 5

double Wskazuje wartość.

VT_RECORD 36

Wskazuje typ zdefiniowany przez użytkownika.

VT_SAFEARRAY 27

Wskazuje WARTOŚĆ SAFEARRAY. Nieprawidłowy w wariantie.

VT_STORAGE 67

Wskazuje, że nazwa magazynu jest następująca.

VT_STORED_OBJECT 69

Wskazuje, że magazyn zawiera obiekt.

VT_STREAM 66

Wskazuje, że następuje nazwa strumienia.

VT_STREAMED_OBJECT 68

Wskazuje, że strumień zawiera obiekt.

VT_UI1 17

Wskazuje wartość byte.

VT_UI2 18

Wskazuje wartość unsignedshort.

VT_UI4 19

Wskazuje wartość unsignedlong.

VT_UI8 21

Wskazuje 64-bitową liczbę całkowitą bez znaku.

VT_UINT 23

unsigned Wskazuje wartość całkowitą.

VT_UNKNOWN 13

IUnknown Wskazuje wskaźnik.

VT_USERDEFINED 29

Wskazuje typ zdefiniowany przez użytkownika.

VT_VARIANT 12

Wskazuje wskaźnik VARIANT far .

VT_VECTOR 4096

Wskazuje prostą, zliczaną tablicę.

VT_VOID 24

Wskazuje styl voidjęzyka C.

Przykłady

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

Uwagi

Służy do System.Runtime.InteropServices.MarshalAsAttribute jawnego kontrolowania typu elementu .SafeArray

Dotyczy

Produkt Wersje (Przestarzałe)
.NET Core 3.0, Core 3.1, 5, 6, 7, 8, 9 (Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2)
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.1, 2.0 (1.2, 1.3, 1.4, 1.5, 1.6, 2.1)
UWP (10.0)

Zobacz też