Jump to content

Object equality test isn't working, i.e. $oObject == $oObject ; ==> False!?


Go to solution Solved by Melba23,

Recommended Posts

Posted (edited)

When you create an Object and compare it with itself, you get False.

To borrow part of an example from the ObjCreateInterface() help page:

Example()

Func Example()
        Local Const $sCLSID_TaskbarList = "{56FDF344-FD6D-11D0-958A-006097C9A090}"
        Local Const $sIID_ITaskbarList = "{56FDF342-FD6D-11D0-958A-006097C9A090}"
        Local Const $sTagITaskbarList = "HrInit hresult(); AddTab hresult(hwnd); DeleteTab hresult(hwnd); ActivateTab hresult(hwnd); SetActiveAlt hresult(hwnd);"

        Local $oTaskbarList = ObjCreateInterface($sCLSID_TaskbarList, $sIID_ITaskbarList, $sTagITaskbarList)
        ConsoleWrite(($oTaskbarList == $oTaskbarList) & @CRLF) ; ==> False
EndFunc

I expected object instances to support an equality test as they could be compared by their internal pointer values, but instead they don't seem to support the equality test at all?

Edited by BakedCakes
  • Moderators
  • Solution
Posted

BakedCakes,

The "==" operator is for case-sensitive testing of strings - it forces both sides to strings before the comparison.

You should use the "=" operator - I get "True" when I do.

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

  Reveal hidden contents

 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...