VarEnum Énumération

Définition

Avertissement

Cette API est désormais obsolète.

Indique comment marshaler les éléments de tableau lorsqu'un tableau est marshalé de code managé en code non managé sous la forme de 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
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
[System.Obsolete("Marshalling VARIANTs may be unavailable in future releases.")]
public enum VarEnum
type VarEnum = 
Public Enum VarEnum
Héritage
Attributs

Champs

VT_ARRAY 8192

Indique un pointeur SAFEARRAY.Indicates a SAFEARRAY pointer.

VT_BLOB 65

Indique des octets préfixés par leur longueur.Indicates length prefixed bytes.

VT_BLOB_OBJECT 70

Indique qu'un blob contient un objet.Indicates that a blob contains an object.

VT_BOOL 11

Indique une valeur Boolean.Indicates a Boolean value.

VT_BSTR 8

Indique une chaîne BSTR.Indicates a BSTR string.

VT_BYREF 16384

Indique qu'une valeur est une référence.Indicates that a value is a reference.

VT_CARRAY 28

Indique un tableau de style C.Indicates a C style array.

VT_CF 71

Indique le format du Presse-papiers.Indicates the clipboard format.

VT_CLSID 72

Indique un ID de classe.Indicates a class ID.

VT_CY 6

Indique une valeur monétaire.Indicates a currency value.

VT_DATE 7

Indique une valeur DATE.Indicates a DATE value.

VT_DECIMAL 14

Indique une valeur decimal.Indicates a decimal value.

VT_DISPATCH 9

Indique un pointeur IDispatch.Indicates an IDispatch pointer.

VT_EMPTY 0

Indique qu'une valeur n'a pas été spécifiée.Indicates that a value was not specified.

VT_ERROR 10

Indique un SCODE.Indicates an SCODE.

VT_FILETIME 64

Indique une valeur FILETIME.Indicates a FILETIME value.

VT_HRESULT 25

Indique un HRESULT.Indicates an HRESULT.

VT_I1 16

Indique une valeur char.Indicates a char value.

VT_I2 2

Indique un entier short.Indicates a short integer.

VT_I4 3

Indique un entier long.Indicates a long integer.

VT_I8 20

Indique un entier 64 bits.Indicates a 64-bit integer.

VT_INT 22

Indique une valeur entière.Indicates an integer value.

VT_LPSTR 30

Indique une chaîne terminée par le caractère NULL.Indicates a null-terminated string.

VT_LPWSTR 31

Indique une chaîne large terminée par null.Indicates a wide string terminated by null.

VT_NULL 1

Indique une valeur null, similaire à une valeur null dans SQL.Indicates a null value, similar to a null value in SQL.

VT_PTR 26

Indique un type de pointeur.Indicates a pointer type.

VT_R4 4

Indique une valeur float.Indicates a float value.

VT_R8 5

Indique une valeur double.Indicates a double value.

VT_RECORD 36

Indique un type défini par l'utilisateur.Indicates a user defined type.

VT_SAFEARRAY 27

Indique un SAFEARRAY.Indicates a SAFEARRAY. Non valide dans un VARIANT.Not valid in a VARIANT.

VT_STORAGE 67

Indique que le nom d'un stockage suit.Indicates that the name of a storage follows.

VT_STORED_OBJECT 69

Indique qu'un stockage contient un objet.Indicates that a storage contains an object.

VT_STREAM 66

Indique que le nom d'un flux suitIndicates that the name of a stream follows.

VT_STREAMED_OBJECT 68

Indique qu'un flux contient un objet.Indicates that a stream contains an object.

VT_UI1 17

Indique byte.Indicates a byte.

VT_UI2 18

Indique un unsignedshort.Indicates an unsignedshort.

VT_UI4 19

Indique un unsignedlong.Indicates an unsignedlong.

VT_UI8 21

Indique un entier non signé 64 bits.Indicates an 64-bit unsigned integer.

VT_UINT 23

Indique une valeur entière unsigned.Indicates an unsigned integer value.

VT_UNKNOWN 13

Indique un pointeur IUnknown.Indicates an IUnknown pointer.

VT_USERDEFINED 29

Indique un type défini par l'utilisateur.Indicates a user defined type.

VT_VARIANT 12

Indique un pointeur VARIANT far.Indicates a VARIANT far pointer.

VT_VECTOR 4096

Indique un tableau à nombre d'éléments simple.Indicates a simple, counted array.

VT_VOID 24

Indique un void de style C.Indicates a C style void.

Exemples

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

Remarques

Utilisé avec System.Runtime.InteropServices.MarshalAsAttribute pour contrôler explicitement le type SafeArrayd’élément de.Used with System.Runtime.InteropServices.MarshalAsAttribute to explicitly control the element type of the SafeArray.

S’applique à

Voir aussi