This documentation is archived and is not being maintained.

Marshal.GetComSlotForMethodInfo Method

Gets the virtual function table (VTBL) slot for a specified System.Reflection.MemberInfo when exposed to COM.

[Visual Basic]
Public Shared Function GetComSlotForMethodInfo( _
   ByVal m As MemberInfo _
) As Integer
public static int GetComSlotForMethodInfo(
 MemberInfo m
public: static int GetComSlotForMethodInfo(
 MemberInfo* m
public static function GetComSlotForMethodInfo(
   m : MemberInfo
) : int;


A MemberInfo that represents an interface method.

Return Value

The VTBL (also called v-table) slot m identifier when it is exposed to COM.


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 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 on class interfaces, see Introducing the Class Interface.

Note   This method uses SecurityAction.LinkDemand to prevent it from being called from untrusted code; only the immediate caller is required to have SecurityPermissionAttribute.UnmanagedCode permission. If your code can be called from partially trusted code, do not pass user input to Marshal class methods without validation. For important limitations on using the LinkDemand member, see Demand vs. LinkDemand.


Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

.NET Framework Security: 

See Also

Marshal Class | Marshal Members | System.Runtime.InteropServices Namespace | MemberInfo | GetMethodInfoForComSlot