We can't compare addresses of ComPtr for self-reference directly because the address-of operator is overloaded, causing a compiler error. This fix more or less matches the WRL implementation.
@@ -68,7 +68,7 @@ public:
inline ComPtr<T> &operator=(ComPtr<T> &&c)
{
- if (this != &c) {
+ if (&ptr != &c.ptr) {
Kill();
ptr = c.ptr;
c.ptr = nullptr;