Freigeben über


Marshal.GetComSlotForMethodInfo-Methode

Ruft den VTBL-Slot (Virtual Function Table) für eine angegebene System.Reflection.MemberInfo ab, wenn für COM verfügbar gemacht.

Namespace: System.Runtime.InteropServices
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Shared Function GetComSlotForMethodInfo ( _
    m As MemberInfo _
) As Integer
'Usage
Dim m As MemberInfo
Dim returnValue As Integer

returnValue = Marshal.GetComSlotForMethodInfo(m)
public static int GetComSlotForMethodInfo (
    MemberInfo m
)
public:
static int GetComSlotForMethodInfo (
    MemberInfo^ m
)
public static int GetComSlotForMethodInfo (
    MemberInfo m
)
public static function GetComSlotForMethodInfo (
    m : MemberInfo
) : int

Parameter

  • m
    Eine MemberInfo, die eine Schnittstellenmethode darstellt.

Rückgabewert

Der m-Bezeichner für den VTBL-Slot (VTBL wird auch Vtable genannt), wenn dieser für COM verfügbar gemacht wird.

Ausnahmen

Ausnahmetyp Bedingung

ArgumentNullException

Der m-Parameter ist NULL (Nothing in Visual Basic).

ArgumentException

Der m-Parameter ist kein MethodInfo-Objekt.

– oder –

Der m-Parameter ist keine Schnittstellenmethode.

Hinweise

Die von dieser Methode zurückgegebene, nullbasierte Slotnummer steht für drei IUnknown-Methoden und evtl. vier IDispatch-Methoden, die den Wert des ersten verfügbaren Slots als entweder 3 oder 7 definieren. GetComSlotForMethodInfo stellt die Umkehrfunktionen von Marshal.GetMethodInfoForComSlot bereit.

Sie können mit dieser Methode Slotnummern für Member von Schnittstellen, die für COM nicht sichtbar sind, und für Member von privaten Schnittstellen abrufen. Die zurückgegebenen Slotnummern entsprechen den Vtable-Nummern, die beim Verfügbarmachen des Typs für COM reserviert werden würden. Für COM nicht sichtbare Member belegen tatsächlich einen Slot in einer verfügbar gemachten Vtable, selbst wenn der COM-Client den Slot nicht verwenden kann. Sie können GetComSlotForMethodInfo nicht für eine Klassenschnittstelle verwenden, indem Sie MemberInfo aus einer Klasse übergeben. Weitere Informationen zu Klassenschnittstellen finden Sie unter Einführung in die Klassenschnittstelle.

Hinweis

Diese Methode verwendet SecurityAction.LinkDemand, um einen Aufruf aus nicht vertrauenswürdigem Code zu verhindern. Nur der direkte Aufrufer muss über die SecurityPermissionAttribute.UnmanagedCode-Berechtigung verfügen. Wenn der Code aus teilweise vertrauenswürdigem Code aufgerufen werden kann, dürfen Benutzereingaben nicht ohne Validierung an Methoden der Marshal-Klasse übergeben werden. Wichtige Einschränkungen bei der Verwendung des LinkDemand-Members finden Sie unter "Demand" und "LinkDemand".

.NET Framework-Sicherheit

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

Marshal-Klasse
Marshal-Member
System.Runtime.InteropServices-Namespace
MemberInfo
GetMethodInfoForComSlot