Skip to content

IsSameComObject

See Also: FlexCOM Helper Functions, IsComObject, IsNullComObject, IsComObjectCreated, pvComObject

Purpose

Returns True if the two parameters are of type variant and point to the same COM object.

Return Type

Boolean

Syntax

(IsSameComObject( {vComObject1 }, {vComObject2 } ))

Where:

  • vComObject1 is a value of type variant
  • vComObject2 is a value of type variant

What It Does

This Boolean function returns True if the two parameters are of type Variant and point to the same COM object.

Use this function in place of the expression (vComObject1 = vComObject2). Such an expression is illegal and would raise a runtime error.

The following example loops through a collection automation object and uses the IsSameComObject function to determine the index of the current object in the collection.

Handle hoTestNode
Variant vTestNode vCurrentNode
Integer iNode icNode iCurrent
Object oNodes is a cComafNodes // cComAutomationObject
End_Object

Send AttachActiveObject of oNodes

If (IsComObjectCreated(oNodes)) Begin
    // Get IDispatch* of the current node
    Get ComCurrentNode of oNodes To vCurrentNode

    // Get the number of nodes in the collection
    Get ComCount of oNodes To icNode

    // Iterate through the nodes collection
    Move 1 To iNode
    While (iNode <= icNode)
        // Get a IDispatch* to the i'th node
        Get ComItem of oNodes iNode To vTestNode

        // Test if this is the current node
        If (IsSameComObject(vCurrentNode, vTestNode)) Begin
            Move iNode To iCurrent // Store the index
            Move icNode To iNode    // Jump out of the loop
        End
        Increment iNode
    Loop
End