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
[C#]
public static bool SetComObjectData(
 object obj,
 object key,
 object data
);
[C++]
public: static bool SetComObjectData(
 Object* obj,
 Object* key,
 Object* data
);
[JScript]
public static function SetComObjectData(
   obj : Object,
 key : Object,
 data : Object
) : Boolean;

Parameters

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

Return Value

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

Exceptions

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

-or-

key is a null reference (Nothing).

ArgumentException obj is not a COM object.

Remarks

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.

Requirements

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

Show: