The CompareEntryIDs method compares two entry identifiers to determine whether they refer to the same object.
HRESULT CompareEntryIDs ( ULONG cbEntryID1, LPENTRYID lpEntryID1, ULONG cbEntryID2, LPENTRYID lpEntryID2, ULONG ulFlags, ULONG FAR * lpulResult );
[in] Count of bytes in the entry identifier pointed to by lpEntryID1.
[in] Reference to the first entry identifier to be compared; cannot be NULL.
[in] Count of bytes in the entry identifier pointed to by lpEntryID2.
[in] Reference to the second entry identifier to be compared; cannot be NULL.
[out] Reference to the result of the comparison, which is TRUE if the two entry identifiers refer to the same object and FALSE otherwise.
This method returns the standard values E_INVALIDARG, E_OUTOFMEMORY, E_UNEXPECTED, and E_FAIL, as well as the following:
One or both of the entry identifiers specified as parameters do not refer to objects, possibly because these objects are unopened and inaccessible at present.
CompareEntryIDs compares two entry identifiers belonging to a single service provider to determine whether they refer to the same object. MAPI extracts the MAPIUID portion from the entry identifiers to determine the service provider responsible for the objects and calls its logon object's CompareEntryIDs method to perform the comparison.
CompareEntryIDs is useful because an object can have more than one valid entry identifier; for example, this might occur after a new version of a service provider is installed.
If CompareEntryIDs returns an error, do not take any action based on the result of the comparison. Instead, take the most conservative approach possible. For example, CompareEntryIDs might fail if one or both of the entry identifiers contain a nonvalid IsEqualMAPIUID.