System.Runtime.InteropServices-Namespace
Der System.Runtime.InteropServices-Namespace stellt eine Vielzahl von Membern bereit, die Dienste für COM-Interop und Plattformaufrufe unterstützen. Wenn Sie mit diesen Diensten nicht vertraut sind, finden Sie weitere Informationen unter Interoperation mit nicht verwaltetem Code.
Member dieses Namespaces stellen mehrere Kategorien von Funktionen bereit, wie in der folgenden Tabelle veranschaulicht. Attribute steuern das Marshallingverhalten, z. B. das Anordnen von Strukturen und die Darstellung von Zeichenfolgen. Die wichtigsten Attribute sind DllImportAttribute, mit dem Plattformaufrufmethoden für den Zugriff auf nicht verwaltete APIs definiert werden, und MarshalAsAttribute, mit dem angegeben wird, wie Daten zwischen verwaltetem und nicht verwaltetem Speicher gemarshallt werden.
Klassen
Klasse | Beschreibung | |
---|---|---|
AutomationProxyAttribute | Gibt an, ob der Typ mit dem Automatisierungsmarshaller oder mit benutzerdefiniertem Proxy und Stub gemarshallt werden soll. | |
BestFitMappingAttribute | Steuert, ob Unicode-Zeichen in die ANSI-Zeichen konvertiert werden, die ihnen am ähnlichsten sind. | |
BStrWrapper | Marshallt Daten vom Typ VT_BSTR aus verwaltetem zu nicht verwaltetem Code. Diese Klasse kann nicht geerbt werden. | |
ClassInterfaceAttribute | Gibt den Typ der Klassenschnittstelle an, die für eine für COM verfügbar gemachte Klasse generiert werden soll (sofern eine Schnittstelle erstellt wird). | |
CoClassAttribute | Gibt den Klassenbezeichner einer Co-Klasse an, die aus einer Typbibliothek importiert wurde. | |
ComAliasNameAttribute | Gibt den COM-Alias für einen Parameter oder Feldtyp an. | |
ComCompatibleVersionAttribute | Gibt für einen COM-Client an, dass alle Klassen in der aktuellen Version einer Assembly mit den Klassen in einer früheren Version der betreffenden Assembly kompatibel sind. | |
ComConversionLossAttribute | Gibt an, dass Klassen- oder Schnittstelleninformationen beim Import aus einer Typbibliothek in eine Assembly verloren gegangen sind. | |
ComDefaultInterfaceAttribute | Gibt eine Standardschnittstelle an, die für COM verfügbar gemacht werden soll. Die Klasse kann nicht geerbt werden. | |
ComEventInterfaceAttribute | Bezeichnet die Quellschnittstelle und die Klasse zum Implementieren der Methoden der Ereignisschnittstelle, die beim Importieren einer Co-Klasse aus einer COM-Typbibliothek generiert wird. | |
COMException | Die Ausnahme, die ausgelöst wird, wenn ein COM-Methodenaufruf ein nicht erkanntes HRESULT zurückgibt. | |
ComImportAttribute | Gibt an, dass der Attributtyp zuvor in COM definiert war. | |
ComRegisterFunctionAttribute | Gibt die Methode an, die beim Registrieren einer Assembly für die Verwendung durch COM aufgerufen werden muss. Dadurch kann während des Registrierungsvorgangs vom Benutzer erstellter Code ausgeführt werden. | |
ComSourceInterfacesAttribute | Bezeichnet eine Liste von Schnittstellen, die als COM-Ereignisquellen für die attributierte Klasse verfügbar gemacht werden. | |
ComUnregisterFunctionAttribute | Gibt die Methode an, die beim Aufheben der Registrierung einer Assembly für die Verwendung durch COM aufgerufen werden muss. Dadurch kann während des Aufhebens der Registrierung vom Benutzer erstellter Code ausgeführt werden. | |
ComVisibleAttribute | Steuert den Zugriff eines einzelnen verwalteten Typs bzw. Members oder aller Typen in einer Assembly auf COM. | |
CriticalHandle | Stellt eine Wrapperklasse für Handleressourcen dar. | |
CurrencyWrapper | Erstellt einen Wrapper für Objekte, die der Marshaller als VT_CY marshallen soll. | |
DefaultCharSetAttribute | Gibt den Wert der CharSet-Enumeration an. Die Klasse kann nicht geerbt werden. | |
DefaultParameterValueAttribute | Legt den Standardwert eines Parameters beim Aufruf aus einer Sprache fest, die Standardparameter unterstützt. Diese Klasse kann nicht geerbt werden. | |
DispatchWrapper | Schließt Objekte in einen Wrapper ein, die der Marshaller als VT_DISPATCH marshallen soll. | |
DispIdAttribute | Gibt die COM DISPID (Dispatch Identifier) einer Methode, eines Felds oder einer Eigenschaft an. | |
DllImportAttribute | Gibt an, dass die attributierte Methode durch eine nicht verwaltete DLL (Dynamic Link Library) als statischer Einstiegspunkt verfügbar gemacht wird. | |
ErrorWrapper | Schließt Objekte in einen Wrapper ein, die der Marshaller als VT_ERROR marshallen soll. | |
ExtensibleClassFactory | Ermöglicht das Anpassen verwalteter Objekte, bei denen es sich um eine Erweiterung nicht verwalteter Objekte während der Erstellung handelt. | |
ExternalException | Der Basisausnahmetyp für alle COM-Interop- und SEH-Ausnahmen (Structured Exception Handling, Strukturierte Ausnahmebehandlung). | |
FieldOffsetAttribute | Gibt die physikalische Position von Feldern innerhalb der nicht verwalteten Darstellung einer Klasse oder Struktur an. | |
GuidAttribute | Stellt eine explizite System.Guid bereit, wenn eine automatische GUID nicht erwünscht ist. | |
HandleCollector | Verfolgt ausstehende Handles und erzwingt eine Garbage Collection, wenn der angegebenen Schwellenwert erreicht wird. | |
IDispatchImplAttribute | Gibt an, welche IDispatch-Implementierung die Common Language Runtime verwendet, um duale Schnittstellen oder Dispatchschnittstellen für COM verfügbar zu machen. | |
ImportedFromTypeLibAttribute | Gibt an, dass die innerhalb einer Assembly definierten Typen ursprünglich in einer Typbibliothek definiert wurden. | |
InAttribute | Gibt an, dass Daten vom Aufrufer an den Aufgerufenen gemarshallt werden, jedoch nicht zurück an den Aufrufer. | |
InterfaceTypeAttribute | Gibt an, ob es sich bei einer verwalteten Schnittstelle um eine duale, auf Dispatch beschränkte oder auf IUnknown beschränkte Schnittstelle handelt, wenn diese für COM verfügbar gemacht wird. | |
InvalidComObjectException | Die Ausnahme, die bei Verwendung eines ungültigen COM-Objekts ausgelöst wird. | |
InvalidOleVariantTypeException | Die Ausnahme, die vom Marshaller ausgelöst wird, wenn ein Argument eines Varianten-Typs auftritt, das nicht an verwalteten Code gemarshallt werden kann. | |
LCIDConversionAttribute | Gibt an, dass für die nicht verwaltete Signatur einer Methode ein LCID-Parameter (Locale Identifier, Gebietsschemabezeichner) erwartet wird. | |
Marshal | Bietet eine Auflistung von Methoden zum Reservieren von nicht verwaltetem Speicher, zum Kopieren von nicht verwalteten Speicherblöcken und zum Konvertieren von verwalteten in nicht verwaltete Typen sowie sonstige Methoden, die bei der Interaktion mit nicht verwaltetem Code verwendet werden. | |
MarshalAsAttribute | Gibt an, wie die Daten zwischen verwaltetem und nicht verwaltetem Code gemarshallt werden. | |
MarshalDirectiveException | Die vom Marshaller ausgelöste Ausnahme, wenn dieser ein nicht unterstütztes MarshalAsAttribute entdeckt. | |
OptionalAttribute | Gibt an, dass ein Parameter optional ist. | |
OutAttribute | Gibt an, dass Daten vom Aufgerufenen zurück an den Aufrufer gemarshallt werden. | |
PreserveSigAttribute | Gibt an, dass die während COM-Interop-Aufrufen stattfindende HRESULT- oder retval-Signaturtransformation unterdrückt werden soll. | |
PrimaryInteropAssemblyAttribute | Gibt an, dass die attributierte Assembly eine primäre Interop-Assembly ist. | |
ProgIdAttribute | Ermöglicht dem Benutzer die Angabe der ProgID einer Klasse. | |
RegistrationServices | Stellt eine Reihe von Diensten für die Registrierung und das Aufheben der Registrierung von verwalteten Assemblys für die Verwendung durch COM zur Verfügung. | |
RuntimeEnvironment | Stellt eine Auflistung von static-Methoden bereit, die Informationen über die Common Language Runtime-Umgebung zurückgeben. | |
SafeArrayRankMismatchException | Die Ausnahme, die ausgelöst wird, wenn der Rang eines eingehenden SAFEARRAY nicht mit dem in der verwalteten Signatur angegebenen Rang übereinstimmt. | |
SafeArrayTypeMismatchException | Die Ausnahme, die ausgelöst wird, wenn der Typ des eingehenden SAFEARRAY nicht mit dem in der verwalteten Signatur angegebenen Typ übereinstimmt. | |
SafeHandle | Stellt eine Wrapperklasse für Betriebssystemhandles dar. | |
SEHException | Stellt SEH-Fehler (Structured Exception Handler, Strukturierter Ausnahmehandler) dar. | |
SetWin32ContextInIDispatchAttribute | Dieses Attribut ist veraltet. | |
StandardOleMarshalObject | Ersetzt den standardmäßigen Freethreaded-Marshaller der Common Language Runtime durch den standardmäßigen OLE STA-Marshaller. | |
StructLayoutAttribute | Die StructLayoutAttribute-Klasse ermöglicht es dem Benutzer, das physikalische Layout der Datenfelder einer Klasse oder Struktur zu steuern. | |
TypeLibConverter | Stellt eine Gruppe von Diensten bereit, die eine verwaltete Assembly in eine COM-Typbibliothek konvertieren und umgekehrt. | |
TypeLibFuncAttribute | Enthält die FUNCFLAGS, die ursprünglich aus der COM-Typbibliothek für diese Methode importiert wurden. | |
TypeLibImportClassAttribute | Gibt an, welcher Type eine Schnittstelle exklusiv verwendet. Die Klasse kann nicht geerbt werden. | |
TypeLibTypeAttribute | Enthält die ursprünglich für diesen Typ aus der COM-Typbibliothek importierten TYPEFLAGS. | |
TypeLibVarAttribute | Enthält die ursprünglich aus der COM-Typbibliothek für dieses Feld importierten VARFLAGS. | |
TypeLibVersionAttribute | Gibt die Versionsnummer einer exportierten Typbibliothek an. | |
UnknownWrapper | Erstellt einen Wrapper für Objekte, die der Marshaller als VT_UNKNOWN marshallen soll. | |
UnmanagedFunctionPointerAttribute | Steuert das Marshallingverhalten der Signatur eines Delegaten, die als nicht verwalteter Funktionszeiger an nicht verwalteten Code bzw. aus nicht verwaltetem Code übergeben wird. Diese Klasse kann nicht geerbt werden. | |
VariantWrapper | Marshallt Daten vom Typ VT_VARIANT | VT_BYREF von verwaltetem an nicht verwalteten Code. Diese Klasse kann nicht geerbt werden. |
Schnittstellen
Schnittstelle | Beschreibung | |
---|---|---|
_Activator | Macht die System.Activator-Klasse für nicht verwalteten Code verfügbar. | |
_Assembly | Macht die öffentlichen Member der System.Reflection.Assembly-Klasse für nicht verwalteten Code verfügbar. | |
_AssemblyBuilder | Macht die System.Reflection.Emit.AssemblyBuilder-Klasse für nicht verwalteten Code verfügbar. | |
_AssemblyName | Macht die AssemblyName-Klasse für nicht verwalteten Code verfügbar. | |
_Attribute | Macht die System.Attribute-Klasse für nicht verwalteten Code verfügbar. | |
_ConstructorBuilder | Macht die System.Reflection.Emit.ConstructorBuilder-Klasse für nicht verwalteten Code verfügbar. | |
_ConstructorInfo | Macht die öffentlichen Member der System.Reflection.ConstructorInfo-Klasse für nicht verwalteten Code verfügbar. | |
_CustomAttributeBuilder | Macht die System.Reflection.Emit.CustomAttributeBuilder-Klasse für nicht verwalteten Code verfügbar. | |
_EnumBuilder | Macht die System.Reflection.Emit.EnumBuilder-Klasse für nicht verwalteten Code verfügbar. | |
_EventBuilder | Macht die System.Reflection.Emit.EventBuilder-Klasse für nicht verwalteten Code verfügbar. | |
_EventInfo | Macht die öffentlichen Member der System.Reflection.EventInfo-Klasse für nicht verwalteten Code verfügbar. | |
_Exception | Macht die öffentlichen Member der System.Exception-Klasse für nicht verwalteten Code verfügbar. | |
_FieldBuilder | Macht die System.Reflection.Emit.FieldBuilder-Klasse für nicht verwalteten Code verfügbar. | |
_FieldInfo | Macht die öffentlichen Member der System.Reflection.FieldInfo-Klasse für nicht verwalteten Code verfügbar. | |
_ILGenerator | Macht die System.Reflection.Emit.ILGenerator-Klasse für nicht verwalteten Code verfügbar. | |
_LocalBuilder | Macht die System.Reflection.Emit.LocalBuilder-Klasse für nicht verwalteten Code verfügbar. | |
_MemberInfo | Macht die öffentlichen Member der System.Reflection.MemberInfo-Klasse für nicht verwalteten Code verfügbar. | |
_MethodBase | Macht die öffentlichen Member der System.Reflection.MethodBase-Klasse für nicht verwalteten Code verfügbar. | |
_MethodBuilder | Macht die MethodBuilder-Klasse für nicht verwalteten Code verfügbar. | |
_MethodInfo | Macht die öffentlichen Member der System.Reflection.MethodInfo-Klasse für nicht verwalteten Code verfügbar. | |
_MethodRental | Macht die System.Reflection.Emit.MethodRental-Klasse für nicht verwalteten Code verfügbar. | |
_Module | Macht die Module-Klasse für nicht verwalteten Code verfügbar. | |
_ModuleBuilder | Macht die System.Reflection.Emit.ModuleBuilder-Klasse für nicht verwalteten Code verfügbar. | |
_ParameterBuilder | Macht die System.Reflection.Emit.ParameterBuilder-Klasse für nicht verwalteten Code verfügbar. | |
_ParameterInfo | Macht die System.Reflection.ParameterInfo-Klasse für nicht verwalteten Code verfügbar. | |
_PropertyBuilder | Macht die System.Reflection.Emit.PropertyBuilder-Klasse für nicht verwalteten Code verfügbar. | |
_PropertyInfo | Macht die öffentlichen Member der System.Reflection.PropertyInfo-Klasse für nicht verwalteten Code verfügbar. | |
_SignatureHelper | Macht die System.Reflection.Emit.SignatureHelper-Klasse für nicht verwalteten Code verfügbar. | |
_Thread | Macht die System.Threading.Thread-Klasse für nicht verwalteten Code verfügbar. | |
_Type | Macht die öffentlichen Member der System.Type-Klasse für den nicht verwalteten Code verfügbar. | |
_TypeBuilder | Macht die System.Reflection.Emit.TypeBuilder-Klasse für nicht verwalteten Code verfügbar. | |
ICustomAdapter | Ermöglicht es Clients, auf das tatsächliche Objekt anstatt auf das von einem benutzerdefinierten Marshaller ausgegebene Adapterobjekt zuzugreifen. | |
ICustomFactory | Ermöglicht es Benutzern, Aktivierungscode für verwaltete Objekte zu schreiben, die MarshalByRefObject erweitern. | |
ICustomMarshaler | Vorgesehen für die Bereitstellung benutzerdefinierter Wrapper, mit denen Methodenaufrufe behandelt werden. | |
IRegistrationServices | Stellt eine Reihe von Diensten für die Registrierung und das Aufheben der Registrierung von verwalteten Assemblys für die Verwendung durch COM zur Verfügung. | |
ITypeLibConverter | Stellt eine Gruppe von Diensten bereit, die eine verwaltete Assembly in eine COM-Typbibliothek konvertieren und umgekehrt. | |
ITypeLibExporterNameProvider | Ermöglicht die Steuerung der Groß- und Kleinschreibung von Namen, die in eine Typbibliothek exportiert werden sollen. | |
ITypeLibExporterNotifySink | Stellt einen Rückrufmechanismus für den Assemblykonverter bereit, mit dem der Aufrufer über den Status der Konvertierung informiert und selbst in den Konvertierungsvorgang einbezogen wird. | |
ITypeLibImporterNotifySink | Stellt einen Rückrufmechanismus für den Typbibliothekkonverter bereit, mit dem der Aufrufer über den Status der Konvertierung informiert und selbst in den Konvertierungsvorgang einbezogen wird. | |
UCOMIBindCtx | Verwenden Sie stattdessen BIND_OPTS. | |
UCOMIConnectionPoint | Verwenden Sie stattdessen IConnectionPoint. | |
UCOMIConnectionPointContainer | Verwenden Sie stattdessen IConnectionPointContainer. | |
UCOMIEnumConnectionPoints | Verwenden Sie stattdessen IEnumConnectionPoints. | |
UCOMIEnumConnections | Verwenden Sie stattdessen IEnumConnections. | |
UCOMIEnumMoniker | Verwenden Sie stattdessen IEnumMoniker. | |
UCOMIEnumString | Verwenden Sie stattdessen IEnumString. | |
UCOMIEnumVARIANT | Verwenden Sie stattdessen IEnumVARIANT. | |
UCOMIMoniker | Verwenden Sie stattdessen IMoniker. | |
UCOMIPersistFile | Hinweis: Diese Schnittstelle ist mittlerweile veraltet. Verwenden Sie stattdessen IPersistFile. | |
UCOMIRunningObjectTable | Verwenden Sie stattdessen IRunningObjectTable. | |
UCOMIStream | Verwenden Sie stattdessen IStream. | |
UCOMITypeComp | Verwenden Sie stattdessen ITypeComp. | |
UCOMITypeInfo | Verwenden Sie stattdessen ITypeInfo. | |
UCOMITypeLib | Verwenden Sie stattdessen ITypeLib. |
Strukturen
Struktur | Beschreibung | |
---|---|---|
ArrayWithOffset | Kapselt ein Array und einen Offset im angegebenen Array. | |
BIND_OPTS | Verwenden Sie stattdessen BIND_OPTS. | |
BINDPTR | Verwenden Sie stattdessen BINDPTR. | |
CONNECTDATA | Verwenden Sie stattdessen CONNECTDATA. | |
DISPPARAMS | Verwenden Sie stattdessen DISPPARAMS. | |
ELEMDESC | Verwenden Sie stattdessen ELEMDESC. | |
ELEMDESC.DESCUNION | Verwenden Sie stattdessen ELEMDESC.DESCUNION. | |
EXCEPINFO | Verwenden Sie stattdessen EXCEPINFO. | |
FILETIME | Verwenden Sie stattdessen FILETIME. | |
FUNCDESC | Verwenden Sie stattdessen FUNCDESC. | |
GCHandle | Stellt eine Möglichkeit für den Zugriff aus nicht verwaltetem Speicher auf ein verwaltetes Objekt bereit. | |
HandleRef | Erstellt einen Wrapper für ein verwaltetes Objekt, das ein Handle auf eine Ressource enthält, die mithilfe eines Plattformaufrufs an nicht verwalteten Code übergeben wird. | |
IDLDESC | Verwenden Sie stattdessen IDLDESC. | |
PARAMDESC | Verwenden Sie stattdessen PARAMDESC. | |
STATSTG | Verwenden Sie stattdessen STATSTG. | |
TYPEATTR | Verwenden Sie stattdessen TYPEATTR. | |
TYPEDESC | Verwenden Sie stattdessen TYPEDESC. | |
TYPELIBATTR | Verwenden Sie stattdessen TYPELIBATTR. | |
VARDESC | Verwenden Sie stattdessen VARDESC. | |
VARDESC.DESCUNION | Hinweis: Diese Struktur ist veraltet. Verwenden Sie stattdessen VARDESC.DESCUNION. |
Delegaten
Delegat | Beschreibung | |
---|---|---|
ObjectCreationDelegate | Erstellt ein COM-Objekt. |
Enumerationen
Enumeration | Beschreibung | |
---|---|---|
AssemblyRegistrationFlags | Definiert einen Satz von Flags, die beim Registrieren von Assemblys verwendet werden. | |
CALLCONV | Verwenden Sie stattdessen CALLCONV. | |
CallingConvention | Gibt die Aufrufkonvention für das Aufrufen von Methoden an, die in nicht verwaltetem Code implementiert sind. | |
CharSet | Bestimmt, welcher Zeichensatz für gemarshallte Zeichenfolgen verwendet werden soll. | |
ClassInterfaceType | Bezeichnet den Typ der Klassenschnittstelle, der für eine Klasse generiert wird. | |
ComInterfaceType | Bestimmt, wie eine Schnittstelle für COM verfügbar gemacht wird. | |
ComMemberType | Beschreibt den Typ eines COM-Members. | |
DESCKIND | Verwenden Sie stattdessen DESCKIND. | |
ExporterEventKind | Beschreibt die vom Type Library Exporter-Tool beim Exportieren einer Typbibliothek ausgeführten Rückrufe. | |
FUNCFLAGS | Verwenden Sie stattdessen FUNCFLAGS. | |
FUNCKIND | Verwenden Sie stattdessen FUNCKIND. | |
GCHandleType | Stellt die Handletypen dar, die von der GCHandle-Klasse reserviert werden können. | |
IDispatchImplType | Gibt an, welche IDispatch-Implementierung für eine bestimmte Klasse verwendet werden soll. | |
IDLFLAG | Verwenden Sie stattdessen IDLFLAG. | |
IMPLTYPEFLAGS | Verwenden Sie stattdessen IMPLTYPEFLAGS. | |
ImporterEventKind | Beschreibt die vom Type Library Importer-Tool beim Importieren einer Typbibliothek ausgeführten Rückrufe. | |
INVOKEKIND | Verwenden Sie stattdessen INVOKEKIND. | |
LayoutKind | Steuert das Layout eines Objekts beim Export in nicht verwalteten Code. | |
LIBFLAGS | Verwenden Sie stattdessen LIBFLAGS. | |
PARAMFLAG | Verwenden Sie stattdessen PARAMFLAG. | |
RegistrationClassContext | Gibt die Menge der Ausführungskontexte an, in denen ein Klassenobjekt bei Anforderungen zum Erstellen von Instanzen verfügbar gemacht wird. | |
RegistrationConnectionType | Definiert die Typen von Verbindungen mit einem Klassenobjekt. | |
SYSKIND | Verwenden Sie stattdessen SYSKIND. | |
TYPEFLAGS | Verwenden Sie stattdessen TYPEFLAGS. | |
TYPEKIND | Verwenden Sie stattdessen TYPEKIND. | |
TypeLibExporterFlags | Gibt an, wie eine Typbibliothek erstellt werden muss. | |
TypeLibFuncFlags | Beschreibt die ursprünglichen Einstellungen von FUNCFLAGS in der COM-Typbibliothek, aus der diese Methode importiert wurde. | |
TypeLibImporterFlags | Gibt an, wie eine Assembly erstellt werden muss. | |
TypeLibTypeFlags | Beschreibt die ursprünglichen Einstellungen von TYPEFLAGS in der COM-Typbibliothek, aus der dieser Typ importiert wurde. | |
TypeLibVarFlags | Beschreibt die ursprünglichen Einstellungen der VARFLAGS in der COM-Typbibliothek, aus der diese Variable importiert wurde. | |
UnmanagedType | Gibt an, wie Parameter oder Felder in nicht verwaltetem Code gemarshallt werden. | |
VarEnum | Gibt an, wie die Arrayelemente gemarshallt werden sollen, wenn ein Array als UnmanagedType.SafeArray aus verwaltetem in nicht verwalteten Code gemarshallt wird. | |
VARFLAGS | Verwenden Sie stattdessen VARFLAGS. |