STDMETHODIMP CPyCOMTest::GetMultipleInterfaces(IPyCOMTest **outinterface1, IPyCOMTest **outinterface2) { if (outinterface1==NULL || outinterface2==NULL) return E_POINTER; *outinterface1 = this; *outinterface2 = this; InternalAddRef(); // ??? Correct call? AddRef fails compile... InternalAddRef(); return S_OK; }
BOOL CXTPDockingPaneTabbedContainer::OnCaptionButtonDown(CXTPDockingPaneCaptionButton* pButton) { switch (pButton->GetID()) { case XTP_IDS_DOCKINGPANE_MENU: if (m_pSelectedPane) { InternalAddRef(); CXTPDockingPaneManager* pManager = GetDockingPaneManager(); XTP_DOCKINGPANE_CLICK menu; menu.pContainer = this; menu.rcExclude = pButton->GetRect(); ClientToScreen(&menu.rcExclude); menu.pt = GetExStyle() & WS_EX_LAYOUTRTL ? CPoint(menu.rcExclude.right, menu.rcExclude.bottom) : CPoint(menu.rcExclude.left, menu.rcExclude.bottom); menu.pPane = m_pSelectedPane; pButton->m_bPressed = TRUE; Invalidate(FALSE); pManager->NotifyOwner(XTP_DPN_CONTEXTMENU, (LPARAM)&menu); pButton->m_bPressed = FALSE; if (m_hWnd) Invalidate(FALSE); InternalRelease(); } return TRUE; } return FALSE; }
HRESULT CProvider_IWbemEventProvider :: ProvideEvents ( IWbemObjectSink *a_Sink , LONG a_Flags ) { HRESULT t_Result = S_OK ; m_EventSink = a_Sink ; m_EventSink->AddRef () ; InternalAddRef () ; DWORD t_ThreadId = 0 ; m_ThreadHandle = CreateThread ( NULL , 0 , ( LPTHREAD_START_ROUTINE ) ThreadExecutionFunction , this , 0 , & t_ThreadId ) ; if ( m_ThreadHandle == NULL ) { InternalRelease () ; } return t_Result ; }
STDMETHODIMP CShellExt::AddPages (LPFNADDPROPSHEETPAGE lpfnAddPage,LPARAM lParam) { HPROPSHEETPAGE hpsp; PROPSHEETPAGE psp; HRESULT hr = E_FAIL; // We only have 1 page. psp.dwSize = sizeof(psp); psp.dwFlags = PSP_DEFAULT; psp.hInstance = g_hInst; psp.pszTemplate = MAKEINTRESOURCE(IDD_DEVICE_PROPPAGE); psp.pfnDlgProc = PropPageProc; psp.lParam = reinterpret_cast<LPARAM>(this); hpsp = CreatePropertySheetPage (&psp); if (hpsp) { hr = (*lpfnAddPage) (hpsp, lParam) ? S_OK:E_FAIL; if (SUCCEEDED(hr)) { InternalAddRef (); // the propsheetpage will release us when it is destroyed } } return E_FAIL; }
HRESULT CTedTestSink::InitVideoStream() { HRESULT hr = S_OK; InternalAddRef(); /*IMFMediaSink* pMediaSink; InternalQueryInterface(this, CTedTestSink::_GetEntries(), IID_IMFMediaSink, (void**) &pMediaSink);*/ CComPtr<IMFMediaType> spVideoType; IFC( MFCreateMediaType(&spVideoType) ); IFC( spVideoType->SetGUID(MF_MT_MAJOR_TYPE, MFMediaType_Video) ); IFC( spVideoType->SetGUID(MF_MT_SUBTYPE, MFVideoFormat_RGB24) ); CComObject<CTedTestMediaTypeHandler>* pVideoTypeHandler = NULL; IFC( CComObject<CTedTestMediaTypeHandler>::CreateInstance(&pVideoTypeHandler) ); pVideoTypeHandler->AddRef(); pVideoTypeHandler->SetMajorType(MFMediaType_Video); pVideoTypeHandler->AddAvailableType(spVideoType); CComObject<CTedTestStreamSink>* pVideoStreamSink = NULL; IFC( CComObject<CTedTestStreamSink>::CreateInstance(&pVideoStreamSink) ); pVideoStreamSink->AddRef(); m_spVideoStreamSink = pVideoStreamSink; //IFC( pVideoStreamSink->Init(pMediaSink, pVideoTypeHandler, 1) ); IFC( pVideoStreamSink->Init(this, pVideoTypeHandler, 1) ); pVideoTypeHandler->Release(); pVideoStreamSink->Release(); //pMediaSink->Release(); Cleanup: return hr; }
void COleLinkingDoc::OnCloseDocument() { InternalAddRef(); // protect document during shutdown // update lock count before sending notifications UpdateVisibleLock(FALSE, FALSE); Revoke(); // cleanup naming support // remove visible lock if present if (m_bVisibleLock) { m_bVisibleLock = FALSE; LockExternal(FALSE, FALSE); } // cleanup the document but don't delete yet BOOL bAutoDelete = m_bAutoDelete; m_bAutoDelete = FALSE; COleDocument::OnCloseDocument(); ASSERT_VALID(this); // remove extra reference count and destroy InterlockedDecrement(&m_dwRef); if (bAutoDelete) delete this; // now safe to destroy document }
DWORD CCmdTarget::ExternalAddRef() { // delegate to controlling unknown if aggregated if (m_pOuterUnknown != NULL) return m_pOuterUnknown->AddRef(); return InternalAddRef(); }
int OcxObject::ExternalAddRef() { if(outer_unknown) { int res = outer_unknown->AddRef(); #if LOG_ADDREFS OCXLOG("OcxObject::ExternalAddRef -> outer(" << FormatIntHex(outer_unknown) << ") -> " << res); #endif return res; } return InternalAddRef(); }
void CXTPReportRecord::TreeAddRef() { InternalAddRef(); if (HasChildren()) { for (int nChild = 0; nChild < GetChilds()->GetCount(); nChild++) { GetChilds()->GetAt(nChild)->TreeAddRef(); } } }
STDMETHODIMP_(ULONG) CProvider_IWbemEventProvider :: AddRef ( void ) { LONG t_Reference ; if ( ( t_Reference = InterlockedIncrement ( & m_ReferenceCount ) ) == 1 ) { InternalAddRef () ; } return t_Reference ; }
//+--------------------------------------------------------------------------- // // function: _CFaxAccountNotify // // Synopsis: _CFaxAccountNotify constructor // // Arguments: none // // Returns: void // //---------------------------------------------------------------------------- _CFaxAccountNotify::_CFaxAccountNotify() { // We do one add ref on construction so that we have full // control on the life-time of this object. // Without this, if an AddRef & Release is done on this object, // CComObject is going to delete the object. AddRef & Release // may happen indirectly when we pass a pointer to this object // to Advise & UnAdvise calls respectively // InternalAddRef(); // defined in CComObjectRootEx }
CPluginWnd::CPluginWnd(LPCTSTR pszName, IPluginWindowOwner* pOwner) { m_pOwner = pOwner; m_sName = pszName; m_pHandled = NULL; m_nHandled = NULL; m_pToolbar = NULL; m_bAccel = TRUE; m_pOwner->AddRef(); InternalAddRef(); }
void COleLinkingDoc::UpdateVisibleLock(BOOL bVisible, BOOL bRemoveRefs) { ASSERT_VALID(this); if (bVisible != m_bVisibleLock) { InternalAddRef(); // make sure document is stable m_bVisibleLock = bVisible; LockExternal(bVisible, bRemoveRefs); InternalRelease(); // may Release the document! } }
void CXTPPropertyGridItemFont::OnInplaceButtonDown(CXTPPropertyGridInplaceButton* pButton) { if (m_pGrid->SendNotifyMessage(XTP_PGN_INPLACEBUTTONDOWN, (LPARAM)pButton) == TRUE) return; if (!OnRequestEdit()) return; InternalAddRef(); CFontDialog dlg(&m_lfValue, CF_EFFECTS | CF_SCREENFONTS, NULL, m_pGrid); if (m_clrValue == (COLORREF)-1) { dlg.m_cf.lpfnHook = FontDlgProc; } else { dlg.m_cf.rgbColors = m_clrValue; } if (dlg.DoModal() == IDOK) { LOGFONT lf; dlg.GetCurrentFont(&lf); CString strValue = FontToString(lf); if (OnAfterEdit(strValue)) { SetFont(lf); if (m_clrValue != (COLORREF)-1) m_clrValue = dlg.GetColor(); OnValueChanged(strValue); SAFE_INVALIDATE(m_pGrid); } } else { OnCancelEdit(); } InternalRelease(); }
HRESULT CHbgServ::InternalQueryInterface(REFIID riid, LPVOID* ppv) { HRESULT hr = E_NOINTERFACE; BOOL bOk = FALSE; if (riid == IID_IUnknown) { *ppv = m_pUnknown; bOk = TRUE; } else if (riid == IID_IHbgDebug) { *ppv = m_pImpl; bOk = TRUE; } if (bOk) { InternalAddRef(); hr = S_OK; } return hr; }
DWORD CComObjectRootBase::ExternalAddRef() { if (m_pUnkOuter) return m_pUnkOuter->AddRef(); return InternalAddRef(); }
//If InternalAddRef or InternalRelease is undefined then your class //doesn't derive from CComObjectRoot STDMETHOD_(ULONG, AddRef)() {return InternalAddRef();}
STDMETHODIMP_(ULONG) GvField::AddRef() { return InternalAddRef(); }