Marshal.IsComObject(Object) Method


Indicates whether a specified object represents a COM object.

 static bool IsComObject(System::Object ^ o);
public static bool IsComObject (object o);
static member IsComObject : obj -> bool
Public Shared Function IsComObject (o As Object) As Boolean



The object to check.


true if the o parameter is a COM type; otherwise, false.



IsComObject returns true if the class type of the instance is attributed with System.Runtime.InteropServices.ComImportAttribute or if it derives directly or indirectly from a class attributed with ComImportAttribute. The Tlbimp.exe (Type Library Importer) tool applies this attribute for you when it imports a type library.

Two other methods also determine whether a specified object represents a COM object, but the requirements for returning true differ from this method's requirements. Type.IsImport returns true if the class (or interface) is attributed with ComImportAttribute directly; it does not return true for derived types. RegistrationServices.TypeRepresentsComType returns true if the type is attributed with ComImportAttribute or derives from a type with the same GUID.

Applies to

See also