This documentation is archived and is not being maintained.

Marshal.GetComObjectData Method

Gets data referenced by the specified key from the specified COM object.

[Visual Basic]
Public Shared Function GetComObjectData( _
   ByVal obj As Object, _
   ByVal key As Object _
) As Object
public static object GetComObjectData(
 object obj,
 object key
public: static Object* GetComObjectData(
 Object* obj,
 Object* key
public static function GetComObjectData(
   obj : Object,
 key : Object
) : Object;


The COM object containing the desired data.
The key in the internal hash table of obj to retrieve the data from.

Return Value

The data represented by the key parameter in the internal hash table of the obj parameter.


Exception Type Condition
ArgumentNullException obj is a null reference (Nothing in Visual Basic).


key is a null reference (Nothing).

ArgumentException obj is not a COM object.


All COM objects wrapped in a runtime callable wrapper have an associated hash table, which GetComObjectData retrieves. Marshal.SetComObjectData adds data to the hash table. You should never have to call either method from your code.

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 | SetComObjectData