共用方式為


System.Runtime.InteropServices 命名空間

提供各種支援 COM Interop 和平臺叫用服務的成員。 如果您不熟悉這些服務,請參閱 與 Unmanaged 程式代碼互操作

類別

AllowReversePInvokeCallsAttribute

允許 Unmanaged 方法呼叫 Managed 方法。

AutomationProxyAttribute

指定是否應該使用自動化封送處理器或自定義 Proxy 和存根封送處理類型。

BestFitMappingAttribute

控制 Unicode 字元是否會轉換成最接近的 ANSI 字元。

BStrWrapper

封送處理類型 VT_BSTR 的數據,從 Managed 到 Unmanaged 程式代碼。 無法繼承這個類別。

ClassInterfaceAttribute

如果介面完全產生,表示要針對公開給 COM 之類別產生的類別介面類型。

CoClassAttribute

指定從類型連結庫匯入之coclass的類別標識碼。

CollectionsMarshal

不安全的類別,提供一組方法來存取集合的基礎數據表示法。

ComAliasNameAttribute

指出參數或欄位類型的 COM 別名。

ComAwareEventInfo

允許事件處理程式的晚期綁定註冊。

ComCompatibleVersionAttribute

向 COM 用戶端指出,元件目前版本中的所有類別都與舊版元件中的類別相容。

ComConversionLossAttribute

表示從類型連結庫匯入至元件時,類別或介面的相關信息遺失。

ComDefaultInterfaceAttribute

指定要公開給 COM 的預設介面。 無法繼承這個類別。

ComEventInterfaceAttribute

識別來源介面和類別,這個類別會實作從 COM 類型連結庫匯入 coclass 時所產生的事件介面方法。

ComEventsHelper

提供方法,讓 .NET 委派處理要從 COM 物件新增和移除的事件。

COMException

從 COM 方法呼叫傳回無法辨識的 HRESULT 時所擲回的例外狀況。

ComImportAttribute

表示屬性化類型先前已在 COM 中定義。

ComRegisterFunctionAttribute

指定當您註冊元件以供 COM 使用的元件時所要呼叫的方法;這可在註冊程式期間執行使用者撰寫的程序代碼。

ComSourceInterfacesAttribute

識別公開為屬性類別之 COM 事件來源的介面清單。

ComUnregisterFunctionAttribute

指定當您取消註冊元件以供 COM 使用時所要呼叫的方法;這允許在取消註冊程式期間執行使用者撰寫的程序代碼。

ComVisibleAttribute

控制元件內個別 Managed 類型或成員,或元件內所有類型之輔助功能。

ComWrappers

管理 COM IUnknown 型別包裝函式的類別。

CriticalHandle

表示句柄資源的包裝函式類別。

CurrencyWrapper

包裝封送處理器應該封送處理為 VT_CY的物件。

DefaultCharSetAttribute

指定 CharSet 列舉的值。 無法繼承這個類別。

DefaultDllImportSearchPathsAttribute

指定用來搜尋提供平台調用函式之 DLL 的路徑。

DefaultParameterValueAttribute

從支援預設參數的語言呼叫時,設定參數的預設值。 無法繼承這個類別。

DispatchWrapper

包裝封送處理器應該封送處理為 VT_DISPATCH的物件。

DispIdAttribute

指定方法、欄位或屬性的 COM 分派識別碼 (DISPID)。

DllImportAttribute

表示屬性化方法是由 Unmanaged 動態連結庫 (DLL) 公開為靜態進入點。

DynamicInterfaceCastableImplementationAttribute

GetInterfaceImplementation(RuntimeTypeHandle)傳回之任何型別所需的屬性。

ErrorWrapper

包裝封送處理器應該封送處理為 VT_ERROR的物件。

ExtensibleClassFactory

啟用在建立期間從 Unmanaged 物件延伸的 Managed 物件自定義。

ExternalException

所有 COM Interop 例外狀況和結構化例外狀況處理 (SEH) 例外狀況的基底例外狀況類型。

FieldOffsetAttribute

表示類別或結構之 Unmanaged 表示法內的欄位實體位置。

GuidAttribute

當不需要自動 GUID 時,提供明確的 Guid

HandleCollector

追蹤未處理的句柄,並在達到指定的臨界值時強制垃圾收集。

IDispatchImplAttribute

指出將雙重介面和散發介面公開給 COM 時,Common Language Runtime 會使用哪些 IDispatch 實作。

ImmutableCollectionsMarshal

不安全的類別,提供一組方法來存取不可變集合的基礎數據表示法。

ImportedFromTypeLibAttribute

表示元件內定義的類型原本是在類型連結庫中定義。

InAttribute

表示數據應該從呼叫端封送處理至被呼叫端,但不應該傳回給呼叫端。

InterfaceTypeAttribute

指出當公開給 COM 時,Managed 介面為雙重、僅限分派或 IUnknown -only。

InvalidComObjectException

使用無效 COM 物件時擲回的例外狀況。

InvalidOleVariantTypeException

當封送處理器遇到無法封送處理至 Managed 程式代碼之 Variant 類型的自變數時,所擲回的例外狀況。

LCIDConversionAttribute

表示方法的 Unmanaged 簽章需要地區設定識別碼 (LCID) 參數。

LibraryImportAttribute

表示來源產生器應該為封送處理自變數建立函式,而不是依賴運行時間在運行時間產生對等的封送處理函式。

ManagedToNativeComInteropStubAttribute

在 Managed to-COM Interop 案例中提供使用者自定義 Interop 存根的支援。

Marshal

提供方法集合,用於配置 Unmanaged 記憶體、複製 Unmanaged 記憶體區塊,以及將 Managed 轉換成 Unmanaged 類型,以及與 Unmanaged 程式代碼互動時所使用的其他方法。

MarshalAsAttribute

指出如何封送處理Managed與 Unmanaged 程式代碼之間的數據。

MarshalDirectiveException

當封送處理器遇到不支援 MarshalAsAttribute 時所擲回的例外狀況。

MemoryMarshal

提供與 Memory<T>ReadOnlyMemory<T>Span<T>ReadOnlySpan<T>互操作的方法。

NativeLibrary

提供用來管理原生連結庫的 API。

NativeMemory

這個類別包含主要用來管理原生記憶體的方法。

OptionalAttribute

表示參數是選擇性的。

OutAttribute

表示數據應該從被呼叫端封送處理回呼叫端。

PosixSignalContext

提供 PosixSignalRegistration 事件的數據。

PosixSignalRegistration

處理 PosixSignal

PreserveSigAttribute

表示應該隱藏 COM Interop 呼叫期間發生的 HRESULT 簽章轉換。

PrimaryInteropAssemblyAttribute

表示屬性化元件是主要 Interop 元件。

ProgIdAttribute

允許使用者指定 類別的 ProgID。

RegistrationServices

提供一組服務,用於註冊和取消註冊 Managed 元件以供 COM 使用。

RuntimeEnvironment

提供傳回 Common Language Runtime 環境相關信息之 static 方法的集合。

RuntimeInformation

提供 .NET 運行時間安裝的相關信息。

SafeArrayRankMismatchException

當傳入 SAFEARRAY 的排名不符合 Managed 簽章中指定的排名時,所擲回的例外狀況。

SafeArrayTypeMismatchException

當傳入 SAFEARRAY 的類型不符合 Managed 簽章中指定的類型時,所擲回的例外狀況。

SafeBuffer

提供可用於讀取和寫入的受控記憶體緩衝區。 嘗試存取受控制緩衝區外部的記憶體(滿溢和滿溢)會引發例外狀況。

SafeHandle

表示操作系統句柄的包裝函式類別。 這個類別必須繼承。

SEHException

表示結構化例外狀況處理 (SEH) 錯誤。

SequenceMarshal

提供方法集合,以便與 ReadOnlySequence<T>互操作。

SetWin32ContextInIDispatchAttribute

這個屬性已被取代。

StandardOleMarshalObject

以標準 OLE STA 封送處理器取代標準 Common Language Runtime (CLR) 自由線程封送處理器。

StructLayoutAttribute

可讓您控制記憶體中類別或結構之數據欄位的實體配置。

SuppressGCTransitionAttribute

表示在進行 Unmanaged 函式呼叫時,應該略過垃圾收集轉換。

TypeIdentifierAttribute

提供類型等價的支援。

TypeLibConverter

提供一組服務,可將Managed元件轉換成 COM類型庫,反之亦然。

TypeLibFuncAttribute

包含原本從 COM 類型連結庫匯入此方法的 FUNCFLAGS

TypeLibImportClassAttribute

指定哪些 Type 獨佔使用 介面。 無法繼承這個類別。

TypeLibTypeAttribute

包含原本從 COM 類型庫匯入此類型的 TYPEFLAGS

TypeLibVarAttribute

包含原本從 COM 類型庫匯入此欄位的 VARFLAGS

TypeLibVersionAttribute

指定匯出類型庫的版本號碼。

UnknownWrapper

包裝封送處理器應該封送處理為 VT_UNKNOWN的物件。

UnmanagedCallConvAttribute

指定呼叫 Unmanaged 程式代碼中實作的 P/Invoke 方法所需的呼叫慣例。

UnmanagedCallersOnlyAttribute

任何標示為 UnmanagedCallersOnlyAttribute 的方法都可以直接從機器碼呼叫。 函式令牌可以使用 C# 中的 位址 運算子載入至局部變數,並以回呼的形式傳遞至原生方法。

UnmanagedFunctionPointerAttribute

控制傳遞為 Unmanaged 函式指標之委派簽章的封送處理行為,或從 Unmanaged 程式代碼傳遞。 無法繼承這個類別。

VariantWrapper

封送處理類型 VT_VARIANT | VT_BYREF 的數據,從 Managed 到 Unmanaged 程式代碼。 無法繼承這個類別。

WasmImportLinkageAttribute

指定以此屬性標示的 P/Invoke 應該連結為 WASM 匯入。

結構

ArrayWithOffset

封裝陣列和指定陣列內的位移。

BIND_OPTS

請改用 BIND_OPTS

BINDPTR

請改用 BINDPTR

CLong

CLong 是不可變的實值類型,表示 C 和 C++ 中的 long 類型。 它應該用來做為Managed/Unmanaged界限上的交換類型,以在使用 long 類型的Managed程式碼 Unmanaged API 中正確表示。 此類型在所有 Windows 平臺和 32 位 Unix 平臺上都有 32 位的記憶體。 它在 64 位 Unix 平臺上有 64 位的記憶體。

ComWrappers.ComInterfaceDispatch

COM 介面函式分派的應用程式二進位介面。

ComWrappers.ComInterfaceEntry

目標 VTable 的介面類型和指標。

CONNECTDATA

請改用 CONNECTDATA

CULong

CULong 是不可變的實值類型,表示 C 和 C++ 中的 unsigned long 類型。 它應該用來做為Managed/Unmanaged界限上的交換類型,以在使用 unsigned long 類型的Managed程式碼 Unmanaged API 中正確表示。 此類型在所有 Windows 平臺和 32 位 Unix 平臺上都有 32 位的記憶體。 它在 64 位 Unix 平臺上有 64 位的記憶體。

DISPPARAMS

請改用 DISPPARAMS

ELEMDESC

請改用 ELEMDESC

ELEMDESC.DESCUNION

請改用 ELEMDESC.DESCUNION

EXCEPINFO

請改用 EXCEPINFO

FILETIME

請改用 FILETIME

FUNCDESC

請改用 FUNCDESC

GCHandle

提供從 Unmanaged 記憶體存取 Managed 物件的方式。

HandleRef

包裝受控物件,該物件會使用平台調用將句柄傳遞給 Unmanaged 程式代碼的資源。

IDLDESC

請改用 IDLDESC

NFloat

NFloat 是不可變的實值型別,代表與原生整數大小相同的浮動類型。 它應該用來做為 Managed/Unmanaged 界限上的交換類型,以在 32 位平臺上使用 C++ C 類型別名的 Managed 程式代碼 Unmanaged API 中準確表示,或在 64 位平臺上 double,例如 Apple 所提供連結庫中 float 的 CGFloat 類型。

OSPlatform

表示操作系統平臺。

PARAMDESC

請改用 PARAMDESC

STATSTG

請改用 STATSTG

TYPEATTR

請改用 TYPEATTR

TYPEDESC

請改用 TYPEDESC

TYPELIBATTR

請改用 TYPELIBATTR

VARDESC

請改用 VARDESC

VARDESC.DESCUNION

請改用 VARDESC.DESCUNION

介面

_Activator

Activator 類別公開給 Unmanaged 程式代碼。

_Assembly

Assembly 類別的公用成員公開給 Unmanaged 程式代碼。

_AssemblyBuilder

AssemblyBuilder 類別公開給 Unmanaged 程式代碼。

_AssemblyName

AssemblyName 類別公開給 Unmanaged 程式代碼。

_Attribute

Attribute 類別公開給 Unmanaged 程式代碼。

_ConstructorBuilder

ConstructorBuilder 類別公開給 Unmanaged 程式代碼。

_ConstructorInfo

ConstructorInfo 類別的公用成員公開給 Unmanaged 程式代碼。

_CustomAttributeBuilder

CustomAttributeBuilder 類別公開給 Unmanaged 程式代碼。

_EnumBuilder

EnumBuilder 類別公開給 Unmanaged 程式代碼。

_EventBuilder

EventBuilder 類別公開給 Unmanaged 程式代碼。

_EventInfo

EventInfo 類別的公用成員公開給 Unmanaged 程式代碼。

_Exception

Exception 類別的公用成員公開給 Unmanaged 程式代碼。

_FieldBuilder

FieldBuilder 類別公開給 Unmanaged 程式代碼。

_FieldInfo

FieldInfo 類別的公用成員公開給 Unmanaged 程式代碼。

_ILGenerator

ILGenerator 類別公開給 Unmanaged 程式代碼。

_LocalBuilder

LocalBuilder 類別公開給 Unmanaged 程式代碼。

_MemberInfo

MemberInfo 類別的公用成員公開給 Unmanaged 程式代碼。

_MethodBase

MethodBase 類別的公用成員公開給 Unmanaged 程式代碼。

_MethodBuilder

MethodBuilder 類別公開給 Unmanaged 程式代碼。

_MethodInfo

MethodInfo 類別的公用成員公開給 Unmanaged 程式代碼。

_MethodRental

MethodRental 類別公開給 Unmanaged 程式代碼。

_Module

Module 類別公開給 Unmanaged 程式代碼。

_ModuleBuilder

ModuleBuilder 類別公開給 Unmanaged 程式代碼。

_ParameterBuilder

ParameterBuilder 類別公開給 Unmanaged 程式代碼。

_ParameterInfo

ParameterInfo 類別公開給 Unmanaged 程式代碼。

_PropertyBuilder

PropertyBuilder 類別公開給 Unmanaged 程式代碼。

_PropertyInfo

PropertyInfo 類別的公用成員公開給 Unmanaged 程式代碼。

_SignatureHelper

SignatureHelper 類別公開給 Unmanaged 程式代碼。

_Thread

Thread 類別公開給 Unmanaged 程式代碼。

_Type

Type 類別的公用成員公開至 Unmanaged 程式代碼。

_TypeBuilder

TypeBuilder 類別公開給 Unmanaged 程式代碼。

ICustomAdapter

提供用戶端存取實際物件的方式,而不是自定義封送處理器所分發的配接器物件。

ICustomFactory

可讓用戶為擴充 MarshalByRefObject的 Managed 物件撰寫啟用碼。

ICustomMarshaler

提供處理方法呼叫的自定義包裝函式。

ICustomQueryInterface

可讓開發人員提供 IUnknown::QueryInterface(REFIID riid, void **ppvObject) 方法的自定義 Managed 實作。

IDynamicInterfaceCastable

用來參與類型轉換失敗的介面。

IRegistrationServices

提供一組服務,用於註冊和取消註冊 Managed 元件以供 COM 使用。

ITypeLibConverter

提供一組服務,可將Managed元件轉換成 COM類型庫,反之亦然。

ITypeLibExporterNameProvider

在匯出至類型連結庫時,提供名稱大小寫的控制。

ITypeLibExporterNotifySink

提供元件轉換子的回呼機制,以通知呼叫者轉換的狀態,並將呼叫端納入轉換程式本身。

ITypeLibImporterNotifySink

提供類型連結庫轉換子的回呼機制,以通知呼叫者轉換的狀態,並將呼叫端納入轉換程式本身。

UCOMIBindCtx

請改用 BIND_OPTS

UCOMIConnectionPoint

請改用 IConnectionPoint

UCOMIConnectionPointContainer

請改用 IConnectionPointContainer

UCOMIEnumConnectionPoints

請改用 IEnumConnectionPoints

UCOMIEnumConnections

請改用 IEnumConnections

UCOMIEnumMoniker

請改用 IEnumMoniker

UCOMIEnumString

請改用 IEnumString

UCOMIEnumVARIANT

請改用 IEnumVARIANT

UCOMIMoniker

請改用 IMoniker

UCOMIPersistFile

請改用 IPersistFile

UCOMIRunningObjectTable

請改用 IRunningObjectTable

UCOMIStream

請改用 IStream

UCOMITypeComp

請改用 ITypeComp

UCOMITypeInfo

請改用 ITypeInfo

UCOMITypeLib

請改用 ITypeLib

列舉

Architecture

表示處理器架構。

AssemblyRegistrationFlags

定義註冊元件時所使用的一組旗標。

CALLCONV

請改用 CALLCONV

CallingConvention

指定呼叫 Unmanaged 程式代碼中實作方法所需的呼叫慣例。

CharSet

指定應該使用哪一個字元集封送處理字串。

ClassInterfaceType

識別為類別產生的類別介面類型。

ComInterfaceType

識別如何將介面公開給 COM。

ComMemberType

描述 COM 成員的類型。

CreateComInterfaceFlags

指定 GetOrCreateComInterfaceForObject(Object, CreateComInterfaceFlags) 方法的旗標。

CreateObjectFlags

指定 GetOrCreateObjectForComInstance(IntPtr, CreateObjectFlags) 方法的旗標。

CustomQueryInterfaceMode

指出 GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) 方法 IUnknown::QueryInterface 呼叫是否可以使用 ICustomQueryInterface 介面。

CustomQueryInterfaceResult

提供 GetInterface(Guid, IntPtr) 方法的傳回值。

DESCKIND

請改用 DESCKIND

DllImportSearchPath

指定用來搜尋提供平台調用函式之 DLL 的路徑。

ExporterEventKind

描述導出類型庫時,類型連結庫導出工具所做的回呼。

FUNCFLAGS

請改用 FUNCFLAGS

FUNCKIND

請改用 FUNCKIND

GCHandleType

表示 GCHandle 類型可以配置的句柄類型。

IDispatchImplType

指出要用於特定類別的 IDispatch 實作。

IDLFLAG

請改用 IDLFLAG

IMPLTYPEFLAGS

請改用 IMPLTYPEFLAGS

ImporterEventKind

描述匯入類型庫匯入工具時所建立的回呼。

INVOKEKIND

請改用 INVOKEKIND

LayoutKind

當匯出至 Unmanaged 程式代碼時,控制物件的版面配置。

LIBFLAGS

請改用 LIBFLAGS

PARAMFLAG

請改用 PARAMFLAG

PosixSignal

指定 POSIX 訊號。

RegistrationClassContext

指定一組執行內容,讓類別物件可供建構實例的要求使用。

RegistrationConnectionType

定義類別對象的連接類型。

StringMarshalling

指定應如何封送處理產生的 p/invokes 字串

SYSKIND

請改用 SYSKIND

TYPEFLAGS

請改用 TYPEFLAGS

TYPEKIND

請改用 TYPEKIND

TypeLibExporterFlags

指出應該如何產生類型連結庫。

TypeLibFuncFlags

描述從中匯入此方法的 COM 類型連結庫中 FUNCFLAGS 的原始設定。

TypeLibImporterFlags

指出應該如何產生元件。

TypeLibTypeFlags

描述匯入類型的來源 COM 類型連結庫中 TYPEFLAGS 的原始設定。

TypeLibVarFlags

描述匯入變數的 COM 類型連結庫中 VARFLAGS 的原始設定。

UnmanagedType

識別如何將參數或欄位封送處理至 Unmanaged 程式代碼。

VarEnum

指出當陣列從 Managed 封送處理至 Unmanaged 程式代碼作為 SafeArray時,如何封送處理數位專案。

VARFLAGS

請改用 VARFLAGS

委派

DllImportResolver

提供委派,用來透過回呼解析原生連結庫。

ObjectCreationDelegate

建立 COM 物件。

備註

此命名空間的成員提供數種功能類別,如下表所示。 屬性控制封送處理行為,例如如何排列結構或如何表示字串。 最重要的屬性是 DllImportAttribute,您用來定義用來存取 Unmanaged API 的平臺叫用方法,以及 MarshalAsAttribute,用來指定如何在 Managed 和 Unmanaged 記憶體之間封送處理數據。