System.Runtime.InteropServices 命名空間

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

類別

名稱 Description
AllowReversePInvokeCallsAttribute

允許 Unmanaged 方法呼叫 Managed 方法。

AutomationProxyAttribute

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

BestFitMappingAttribute

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

BStrWrapper

VT_BSTR從管理型態到非管理型的資料。 此類別無法獲得繼承。

ClassInterfaceAttribute

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

CoClassAttribute

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

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 類型或成員,或元件內所有類型之輔助功能。

CriticalHandle

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

CurrencyWrapper

包裹物件,集數者應該以 VT_CY.

DefaultCharSetAttribute

指定 CharSet 列舉的值。 此類別無法獲得繼承。

DefaultDllImportSearchPathsAttribute

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

DefaultParameterValueAttribute

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

DispatchWrapper

包裹物件,集數者應該以 VT_DISPATCH.

DispIdAttribute

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

DllImportAttribute

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

ErrorWrapper

包裹物件,集數者應該以 VT_ERROR.

ExtensibleClassFactory

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

ExternalException

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

FieldOffsetAttribute

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

GuidAttribute

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

HandleCollector

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

IDispatchImplAttribute

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

ImportedFromTypeLibAttribute

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

InAttribute

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

InterfaceTypeAttribute

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

InvalidComObjectException

當使用無效 COM 物件時會拋出例外。

InvalidOleVariantTypeException

當 marshaler 遇到無法被 marshall 到 managed code 的變體參數時,會拋出例外。

LCIDConversionAttribute

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

ManagedToNativeComInteropStubAttribute

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

Marshal

提供一套用於分配非管理記憶體、複製未管理記憶體區塊、將管理型態轉換為非管理型態的方法,以及其他在與非管理程式碼互動時使用的雜項方法。

MarshalAsAttribute

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

MarshalDirectiveException

當執行官遇到不支持的 時 MarshalAsAttribute 所拋出的例外。

MemoryMarshal

提供與 Memory<T>ReadOnlyMemory<T>Span<T>ReadOnlySpan<T>、 及 互通的方法。

OptionalAttribute

表示參數是選擇性的。

OutAttribute

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

PreserveSigAttribute

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

PrimaryInteropAssemblyAttribute

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

ProgIdAttribute

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

RegistrationServices

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

RuntimeEnvironment

提供 static 一系列方法,回傳關於共通語言執行環境的資訊。

RuntimeInformation

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

SafeArrayRankMismatchException

當收到 SAFEARRAY 的郵件排名與管理簽章中指定的等級不符時,會拋出例外。

SafeArrayTypeMismatchException

當收到 SAFEARRAY 的訊息類型與受管理簽章中指定的類型不符時,會拋出例外。

SafeBuffer

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

SafeHandle

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

SEHException

代表結構化異常處理(SEH)錯誤。

SequenceMarshal

提供一系列 ReadOnlySequence<T>與 互通的方法。

SetWin32ContextInIDispatchAttribute

這個屬性已被取代。

StandardOleMarshalObject

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

StructLayoutAttribute

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

TypeIdentifierAttribute

提供類型等價的支援。

TypeLibConverter

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

TypeLibFuncAttribute

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

TypeLibImportClassAttribute

指定哪些 Type 獨佔使用 介面。 此類別無法獲得繼承。

TypeLibTypeAttribute

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

TypeLibVarAttribute

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

TypeLibVersionAttribute

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

UnknownWrapper

包裹物件,集數者應該以 VT_UNKNOWN.

UnmanagedFunctionPointerAttribute

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

VariantWrapper

VT_VARIANT | VT_BYREF從管理型態到非管理型的資料。 此類別無法獲得繼承。

結構

名稱 Description
ArrayWithOffset

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

BIND_OPTS

請改用 BIND_OPTS

BINDPTR

請改用 BINDPTR

CONNECTDATA

請改用 CONNECTDATA

DISPPARAMS

請改用 DISPPARAMS

ELEMDESC

請改用 ELEMDESC

ELEMDESC.DESCUNION

請改用 ELEMDESC.DESCUNION

EXCEPINFO

請改用 EXCEPINFO

FILETIME

請改用 FILETIME

FUNCDESC

請改用 FUNCDESC

GCHandle

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

HandleRef

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

IDLDESC

請改用 IDLDESC

OSPlatform

表示操作系統平臺。

PARAMDESC

請改用 PARAMDESC

STATSTG

請改用 STATSTG

TYPEATTR

請改用 TYPEATTR

TYPEDESC

請改用 TYPEDESC

TYPELIBATTR

請改用 TYPELIBATTR

VARDESC

請改用 VARDESC

VARDESC.DESCUNION

請改用 VARDESC.DESCUNION

介面

名稱 Description
_Activator

讓類別暴露 Activator 給非管理程式碼。

_Assembly

讓類別中的 Assembly 公開成員暴露於未受管理的程式碼中。

_AssemblyBuilder

讓類別暴露 AssemblyBuilder 給非管理程式碼。

_AssemblyName

讓類別暴露 AssemblyName 給非管理程式碼。

_Attribute

讓類別暴露 Attribute 給非管理程式碼。

_ConstructorBuilder

讓類別暴露 ConstructorBuilder 給非管理程式碼。

_ConstructorInfo

讓類別中的 ConstructorInfo 公開成員暴露於未受管理的程式碼中。

_CustomAttributeBuilder

讓類別暴露 CustomAttributeBuilder 給非管理程式碼。

_EnumBuilder

讓類別暴露 EnumBuilder 給非管理程式碼。

_EventBuilder

讓類別暴露 EventBuilder 給非管理程式碼。

_EventInfo

讓類別中的 EventInfo 公開成員暴露於未受管理的程式碼中。

_Exception

讓類別中的 Exception 公開成員暴露於未受管理的程式碼中。

_FieldBuilder

讓類別暴露 FieldBuilder 給非管理程式碼。

_FieldInfo

讓類別中的 FieldInfo 公開成員暴露於未受管理的程式碼中。

_ILGenerator

讓類別暴露 ILGenerator 給非管理程式碼。

_LocalBuilder

讓類別暴露 LocalBuilder 給非管理程式碼。

_MemberInfo

讓類別中的 MemberInfo 公開成員暴露於未受管理的程式碼中。

_MethodBase

讓類別中的 MethodBase 公開成員暴露於未受管理的程式碼中。

_MethodBuilder

讓類別暴露 MethodBuilder 給非管理程式碼。

_MethodInfo

讓類別中的 MethodInfo 公開成員暴露於未受管理的程式碼中。

_MethodRental

讓類別暴露 MethodRental 給非管理程式碼。

_Module

讓類別暴露 Module 給非管理程式碼。

_ModuleBuilder

讓類別暴露 ModuleBuilder 給非管理程式碼。

_ParameterBuilder

讓類別暴露 ParameterBuilder 給非管理程式碼。

_ParameterInfo

讓類別暴露 ParameterInfo 給非管理程式碼。

_PropertyBuilder

讓類別暴露 PropertyBuilder 給非管理程式碼。

_PropertyInfo

讓類別中的 PropertyInfo 公開成員暴露於未受管理的程式碼中。

_SignatureHelper

讓類別暴露 SignatureHelper 給非管理程式碼。

_Thread

讓類別暴露 Thread 給非管理程式碼。

_Type

讓類別中的 Type 公開成員暴露於未管理的程式碼中。

_TypeBuilder

讓類別暴露 TypeBuilder 給非管理程式碼。

ICustomAdapter

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

ICustomFactory

允許使用者為擴展 MarshalByRefObject的受管理物件撰寫啟用程式碼。

ICustomMarshaler

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

ICustomQueryInterface

使開發者能夠提供自訂且受管理的 IUnknown::QueryInterface(REFIID riid, void **ppvObject) 方法實作。

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

列舉

名稱 Description
Architecture

表示處理器架構。

AssemblyRegistrationFlags

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

CALLCONV

請改用 CALLCONV

CallingConvention

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

CharSet

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

ClassInterfaceType

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

ComInterfaceType

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

ComMemberType

描述 COM 成員的類型。

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

RegistrationClassContext

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

RegistrationConnectionType

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

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

委派

名稱 Description
ObjectCreationDelegate

建立 COM 物件。

備註

此命名空間的成員提供數種功能類別,如下表所示。 屬性控制封送處理行為,例如如何排列結構或如何表示字串。 最重要的屬性是 DllImportAttribute,用來定義存取非管理型 API 的平台調用方法,以及 MarshalAsAttribute,用來指定資料如何在管理型與非管理型記憶體間整理。