VarEnum 列挙体とは? わかりやすく解説

VarEnum 列挙体

配列が UnmanagedType.SafeArray としてマネージ コードからアンマネージ コードマーシャリングされる場合の、配列要素マーシャリング方法示します

名前空間: System.Runtime.InteropServices
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Enumeration 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
メンバメンバ
 メンバ説明
.NET Compact Framework によるサポートVT_ARRAYSAFEARRAY ポインタ示します。 
.NET Compact Framework によるサポートVT_BLOB長さプリフィックス付いたバイト示します。 
.NET Compact Framework によるサポートVT_BLOB_OBJECTBLOBオブジェクト格納していることを示します。 
.NET Compact Framework によるサポートVT_BOOLブール値を示します。 
.NET Compact Framework によるサポートVT_BSTRBSTR 文字列示します。 
.NET Compact Framework によるサポートVT_BYREF値が参照であることを示します。 
.NET Compact Framework によるサポートVT_CARRAYC スタイル配列示します。 
.NET Compact Framework によるサポートVT_CFクリップボード形式示します。 
.NET Compact Framework によるサポートVT_CLSIDクラス ID示します。 
.NET Compact Framework によるサポートVT_CY通貨の値を示します。 
.NET Compact Framework によるサポートVT_DATEDATE 値を示します。 
.NET Compact Framework によるサポートVT_DECIMALDecimal 値を示します。 
.NET Compact Framework によるサポートVT_DISPATCHIDispatch ポインタ示します。 
.NET Compact Framework によるサポートVT_EMPTY値が指定されなかったことを示します。 
.NET Compact Framework によるサポートVT_ERRORSCODE を示します。 
.NET Compact Framework によるサポートVT_FILETIMEFILETIME 値を示します。 
.NET Compact Framework によるサポートVT_HRESULTHRESULT を示します。 
.NET Compact Framework によるサポートVT_I1char 値を示します。 
.NET Compact Framework によるサポートVT_I2short 整数示します。 
.NET Compact Framework によるサポートVT_I4long 整数示します。 
.NET Compact Framework によるサポートVT_I864 ビット整数示します。 
.NET Compact Framework によるサポートVT_INT整数値を示します。 
.NET Compact Framework によるサポートVT_LPSTRnull で終わる文字列示します。 
.NET Compact Framework によるサポートVT_LPWSTRnull 参照 (Visual Basic では Nothing) で終わるワイド文字列示します。 
.NET Compact Framework によるサポートVT_NULLnull 値示します。これは、SQL における null 値相当します。 
.NET Compact Framework によるサポートVT_PTRポインタ型示します。 
.NET Compact Framework によるサポートVT_R4float 値を示します。 
.NET Compact Framework によるサポートVT_R8double 値を示します。 
.NET Compact Framework によるサポートVT_RECORDユーザー定義型を示します。 
.NET Compact Framework によるサポートVT_SAFEARRAYSAFEARRAY を示しますVARIANT では有効ではありません。 
.NET Compact Framework によるサポートVT_STORAGEストレージの名前が続くことを示します。 
.NET Compact Framework によるサポートVT_STORED_OBJECTストレージオブジェクト格納していることを示します。 
.NET Compact Framework によるサポートVT_STREAMストリームの名前が続くことを示します。 
.NET Compact Framework によるサポートVT_STREAMED_OBJECTストリームオブジェクト格納していることを示します。 
.NET Compact Framework によるサポートVT_UI1byte示します。 
.NET Compact Framework によるサポートVT_UI2unsignedshort示します。 
.NET Compact Framework によるサポートVT_UI4unsignedlong示します。 
.NET Compact Framework によるサポートVT_UI864 ビット符号なし整数示します。 
.NET Compact Framework によるサポートVT_UINTunsigned 整数値を示します。 
.NET Compact Framework によるサポートVT_UNKNOWNIUnknown ポインタ示します。 
.NET Compact Framework によるサポートVT_USERDEFINEDユーザー定義型を示します。 
.NET Compact Framework によるサポートVT_VARIANTVARIANT far ポインタ示します。 
.NET Compact Framework によるサポートVT_VECTORカウントされ単純な配列示します。 
.NET Compact Framework によるサポートVT_VOIDC スタイル void示します。 
解説解説

System.Runtime.InteropServices.MarshalAsAttribute を使用してSafeArray要素の型を明示的に制御します

使用例使用例
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
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
System.Runtime.InteropServices 名前空間
SafeArray
MarshalAsAttribute クラス



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「VarEnum 列挙体」の関連用語

VarEnum 列挙体のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



VarEnum 列挙体のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS