VarEnum Enum

Definition

Varning

Marshalling VARIANTs may be unavailable in future releases.

Anger hur du konverterar matriselementen när en matris konverteras från hanterad till ohanterad kod som en SafeArray.

public enum class 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
public enum 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 = 
type VarEnum = 
Public Enum VarEnum
Arv
Attribut

Fält

Name Värde Description
VT_EMPTY 0

Anger att ett värde inte har angetts.

VT_NULL 1

Anger ett null-värde, ungefär som ett null-värde i SQL.

VT_I2 2

Anger ett short heltal.

VT_I4 3

Anger ett long heltal.

VT_R4 4

Anger ett float värde.

VT_R8 5

Anger ett double värde.

VT_CY 6

Anger ett valutavärde.

VT_DATE 7

Anger ett DATE-värde.

VT_BSTR 8

Anger en BSTR-sträng.

VT_DISPATCH 9

Anger en IDispatch pekare.

VT_ERROR 10

Anger en SCODE.

VT_BOOL 11

Anger ett booleskt värde.

VT_VARIANT 12

Anger en VARIANT-pekare far .

VT_UNKNOWN 13

Anger en IUnknown pekare.

VT_DECIMAL 14

Anger ett decimal värde.

VT_I1 16

Anger ett char värde.

VT_UI1 17

Anger en byte.

VT_UI2 18

Anger en unsignedshort.

VT_UI4 19

Anger en unsignedlong.

VT_I8 20

Anger ett 64-bitars heltal.

VT_UI8 21

Anger ett 64-bitars osignerat heltal.

VT_INT 22

Anger ett heltalsvärde.

VT_UINT 23

Anger ett unsigned heltalsvärde.

VT_VOID 24

Anger ett C-format void.

VT_HRESULT 25

Anger en HRESULT.

VT_PTR 26

Anger en pekartyp.

VT_SAFEARRAY 27

Anger en SAFEARRAY. Ogiltigt i en VARIANT.

VT_CARRAY 28

Anger en C-formatmatris.

VT_USERDEFINED 29

Anger en användardefinierad typ.

VT_LPSTR 30

Anger en null-avslutad sträng.

VT_LPWSTR 31

Anger en bred sträng som avslutas av null.

VT_RECORD 36

Anger en användardefinierad typ.

VT_FILETIME 64

Anger ett FILETIME-värde.

VT_BLOB 65

Anger längdprefix för byte.

VT_STREAM 66

Anger att namnet på en ström följer.

VT_STORAGE 67

Anger att namnet på en lagring följer.

VT_STREAMED_OBJECT 68

Anger att en ström innehåller ett objekt.

VT_STORED_OBJECT 69

Anger att en lagring innehåller ett objekt.

VT_BLOB_OBJECT 70

Anger att en blob innehåller ett objekt.

VT_CF 71

Anger Urklippsformatet.

VT_CLSID 72

Anger ett klass-ID.

VT_VECTOR 4096

Anger en enkel, räknad matris.

VT_ARRAY 8192

Anger en SAFEARRAY pekare.

VT_BYREF 16384

Anger att ett värde är en referens.

Exempel

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

Kommentarer

Används med System.Runtime.InteropServices.MarshalAsAttribute för att uttryckligen styra elementtypen för SafeArray.

Gäller för

Se även