office-gobmx/embedserv/source/embed/iipaobj.cxx
Rüdiger Timm 45c581a418 INTEGRATION: CWS fwkc03fixes (1.2.54); FILE MERGED
2006/04/28 13:11:40 mav 1.2.54.1: #134455# fix objects crosslinking
2006-05-05 08:55:59 +00:00

96 lines
1.5 KiB
C++

#include "iipaobj.hxx"
#include "embeddoc.hxx"
CIIAObj::CIIAObj(DocumentHolder* pDocHolder)
: m_refCount( 0L ),
m_rDocHolder( pDocHolder )
{
}
CIIAObj::~CIIAObj()
{
return;
}
/* IUnknown methods */
STDMETHODIMP CIIAObj::QueryInterface(REFIID riid, LPVOID FAR *ppv)
{
*ppv=NULL;
if(IID_IUnknown==riid ||
IID_IOleWindow==riid ||
IID_IOleInPlaceActiveObject==riid)
*ppv=this;
//AddRef any interface we'll return.
if (NULL!=*ppv)
{
((LPUNKNOWN)*ppv)->AddRef();
return NOERROR;
}
return ResultFromScode(E_NOINTERFACE);
}
STDMETHODIMP_(ULONG) CIIAObj::AddRef(void)
{
return osl_incrementInterlockedCount( &m_refCount);
}
STDMETHODIMP_(ULONG) CIIAObj::Release(void)
{
sal_Int32 nCount = osl_decrementInterlockedCount( &m_refCount);
if ( nCount == 0 )
delete this;
return nCount;
}
/* IOleInPlaceActiveObject methods*/
STDMETHODIMP CIIAObj::GetWindow(HWND *)
{
return NOERROR;
}
STDMETHODIMP CIIAObj::ContextSensitiveHelp(BOOL)
{
return NOERROR;
}
STDMETHODIMP CIIAObj::TranslateAccelerator(LPMSG)
{
return NOERROR;
}
STDMETHODIMP CIIAObj::OnFrameWindowActivate(BOOL)
{
return NOERROR;
}
STDMETHODIMP CIIAObj::OnDocWindowActivate(BOOL)
{
return NOERROR;
}
STDMETHODIMP CIIAObj::ResizeBorder(
LPCRECT pRect,LPOLEINPLACEUIWINDOW,BOOL bFrame)
{
if(!bFrame) return NOERROR;
if ( !m_rDocHolder.is() )
return E_FAIL;
return m_rDocHolder->SetContRects(pRect);
}
STDMETHODIMP CIIAObj::EnableModeless(BOOL)
{
return NOERROR;
}