This documentation is archived and is not being maintained.

Marshal.SetComObjectData Method

Sets data referenced by the specified key in the specified COM object.

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


The COM object in which to store the data.
The key in the internal hash table of the COM object in which to store the data.
The data to set.

Return Value

true if the data was set successfully; otherwise, false.


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, to which SetComObjectData adds data. Marshal.GetComObjectData retrieves data from 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 | GetComObjectData