The main problem was the non-explicit inprocserv::ComSmart<T>::operator T*() that caused ambiguities between inprocserv::ComSmart<T>::operator ==(const T*) and the built-in operator == taking two (cv-qualified) T*. Many uses of that non-explicit conversion operator could be covered by an explicit bool conversion operator, but some needed the introduction of a get() function. Also, one of the operator == was used by the C++20 overload resolution in a way that it now needs to return bool. (And the other functions returning BOOL could be cleaned up, too.) Change-Id: I8065f0955a60207c2bd6d8e583d13bc15f324f38 Reviewed-on: https://gerrit.libreoffice.org/82273 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
To embed LibreOffice via OLE2.