Hello everyone,
In the book ATL Internals, here is the description for CComVariant. My questions,
--------------------
COM permits an object to hand out different binary values each time a client queries it for a specific interface pointer (with the exception of a query for the IUnknown interface). Therefore, two VARIANTs containing IDispatch pointers referencing the same object might not compare for equality.
--------------------
1.
I think it means even if the pointer binary values are different, they may still be pointed to the same object? Right?
I think it happens only in the situation of multiple inheritance, and in single inheritance, there is no such issue. Right?
2.
I think the above statement describes the following scenario, in multiple inheritance, suppose we have interface A inherits from IDispose, and interface B inherits from IDispose, and have inteface C inherits from both A and B.
The queryInterface for A and B from interface C will return different result.
thanks in advance,
George
In the book ATL Internals, here is the description for CComVariant. My questions,
--------------------
COM permits an object to hand out different binary values each time a client queries it for a specific interface pointer (with the exception of a query for the IUnknown interface). Therefore, two VARIANTs containing IDispatch pointers referencing the same object might not compare for equality.
--------------------
1.
I think it means even if the pointer binary values are different, they may still be pointed to the same object? Right?
I think it happens only in the situation of multiple inheritance, and in single inheritance, there is no such issue. Right?
2.
I think the above statement describes the following scenario, in multiple inheritance, suppose we have interface A inherits from IDispose, and interface B inherits from IDispose, and have inteface C inherits from both A and B.
The queryInterface for A and B from interface C will return different result.
thanks in advance,
George