VarEnum Enum
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Perhatian
Marshalling VARIANTs may be unavailable in future releases.
Menunjukkan cara marsekal elemen array ketika array di-marshalasikan dari berhasil ke kode yang tidak dikelola sebagai SafeArray.
public enum class VarEnum
[System.Obsolete("Marshalling VARIANTs may be unavailable in future releases.")]
public enum VarEnum
public enum VarEnum
[System.Serializable]
public enum VarEnum
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum VarEnum
[<System.Obsolete("Marshalling VARIANTs may be unavailable in future releases.")>]
type VarEnum =
type VarEnum =
[<System.Serializable>]
type VarEnum =
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type VarEnum =
Public Enum VarEnum
- Warisan
- Atribut
Bidang
VT_ARRAY | 8192 |
|
VT_BLOB | 65 | Menunjukkan panjang byte yang diawali. |
VT_BLOB_OBJECT | 70 | Menunjukkan bahwa blob berisi objek . |
VT_BOOL | 11 | Menunjukkan nilai Boolean. |
VT_BSTR | 8 | Menunjukkan string BSTR. |
VT_BYREF | 16384 | Menunjukkan bahwa nilai adalah referensi. |
VT_CARRAY | 28 | Menunjukkan array gaya C. |
VT_CF | 71 | Menunjukkan format clipboard. |
VT_CLSID | 72 | Menunjukkan ID kelas. |
VT_CY | 6 | Menunjukkan nilai mata uang. |
VT_DATE | 7 | Menunjukkan nilai DATE. |
VT_DECIMAL | 14 |
|
VT_DISPATCH | 9 |
|
VT_EMPTY | 0 | Menunjukkan bahwa nilai tidak ditentukan. |
VT_ERROR | 10 | Menunjukkan SCODE. |
VT_FILETIME | 64 | Menunjukkan nilai FILETIME. |
VT_HRESULT | 25 | Menunjukkan HRESULT. |
VT_I1 | 16 |
|
VT_I2 | 2 | Menunjukkan bilangan |
VT_I4 | 3 | Menunjukkan bilangan |
VT_I8 | 20 | Menunjukkan bilangan bulat 64-bit. |
VT_INT | 22 | Menunjukkan nilai bilangan bulat. |
VT_LPSTR | 30 | Menunjukkan string yang dihentikan null. |
VT_LPWSTR | 31 | Menunjukkan string lebar yang dihentikan oleh |
VT_NULL | 1 | Menunjukkan nilai null, mirip dengan nilai null di SQL. |
VT_PTR | 26 | Menunjukkan jenis penunjuk. |
VT_R4 | 4 |
|
VT_R8 | 5 |
|
VT_RECORD | 36 | Menunjukkan jenis yang ditentukan pengguna. |
VT_SAFEARRAY | 27 | Menunjukkan SAFEARRAY. Tidak valid dalam VARIAN. |
VT_STORAGE | 67 | Menunjukkan bahwa nama penyimpanan mengikuti. |
VT_STORED_OBJECT | 69 | Menunjukkan bahwa penyimpanan berisi objek. |
VT_STREAM | 66 | Menunjukkan bahwa nama aliran mengikuti. |
VT_STREAMED_OBJECT | 68 | Menunjukkan bahwa aliran berisi objek. |
VT_UI1 | 17 |
|
VT_UI2 | 18 |
|
VT_UI4 | 19 |
|
VT_UI8 | 21 | Menunjukkan bilangan bulat yang tidak ditandatangani 64-bit. |
VT_UINT | 23 | Menunjukkan nilai bilangan |
VT_UNKNOWN | 13 |
|
VT_USERDEFINED | 29 | Menunjukkan jenis yang ditentukan pengguna. |
VT_VARIANT | 12 | Menunjukkan penunjuk VARIAN |
VT_VECTOR | 4096 | Menunjukkan array sederhana yang dihitung. |
VT_VOID | 24 | Menunjukkan gaya |
Contoh
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
Keterangan
Digunakan dengan System.Runtime.InteropServices.MarshalAsAttribute untuk secara eksplisit mengontrol jenis elemen .SafeArray