Marshal.GetComSlotForMethodInfo Method

Retrieves the virtual function table (v-table or VTBL) slot for a specified System.Reflection.MemberInfo type when that type is exposed to COM.

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

public static int GetComSlotForMethodInfo(
	MemberInfo m
)

Parameters

m
Type: System.Reflection.MemberInfo

An object that represents an interface method.

Return Value

Type: System.Int32
The VTBL slot m identifier when it is exposed to COM.

ExceptionCondition
ArgumentNullException

The m parameter is null.

ArgumentException

The m parameter is not a MemberInfo object.

-or-

The m parameter is not an interface method.

The zero-based slot number returned by this method accounts for three IUnknown and possibly four IDispatch methods, making the value of the first available slot either 3 or 7. GetComSlotForMethodInfo provides the opposite functionality of Marshal.GetMethodInfoForComSlot.

You can use this method to retrieve slot numbers for members of interfaces that are not visible from COM and for members of private interfaces. The slot numbers returned correspond to the v-table numbers that would be reserved if the type was exposed to COM. COM-invisible members actually occupy a slot in an exposed v-table, even though the COM client cannot use the slot. You cannot use GetComSlotForMethodInfo on a class interface by passing MemberInfo from a class. For additional information, see Introducing the Class Interface.

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library

  • SecurityCriticalAttribute 

    requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft