There are no real changes but ensure that the new objects of classes using
DECLARE_OLE_UNKNOWN() macro are created with valid reference count of 1
instead of being created in phantom state with reference count of 0.
Remove the now unnecessary AddRef() and add the now required DecRef() calls.
See #11566.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65912
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
- TAutoInitInt() : l(0) {}\
+ TAutoInitInt() : l(1) {}\
};\
TAutoInitInt refCount, lockCount;\
static void _GetInterface(cls *self, REFIID iid, void **_interface, const char *&desc);\
};\
TAutoInitInt refCount, lockCount;\
static void _GetInterface(cls *self, REFIID iid, void **_interface, const char *&desc);\
// FrameSite
m_frameSite = new FrameSite(m_realparent, this);
// FrameSite
m_frameSite = new FrameSite(m_realparent, this);
// oleClientSite
hret = m_clientSite.QueryInterface(
IID_IOleClientSite, (IDispatch *) m_frameSite);
// oleClientSite
hret = m_clientSite.QueryInterface(
IID_IOleClientSite, (IDispatch *) m_frameSite);
- hret = cp->Advise(new wxActiveXEvents(this, ta->guid),
- &adviseCookie);
+ wxActiveXEvents * const
+ events = new wxActiveXEvents(this, ta->guid);
+ hret = cp->Advise(events, &adviseCookie);
+
+ // We don't need this object any more and cp will keep a
+ // reference to it if it needs it, i.e. if Advise()
+ // succeeded.
+ events->Release();
+