IADVSINK.CPP
/* 
 * IADVSINK.CPP 
 * IAdviseSink for Document Objects CSite class 
 * 
 * Copyright (c)1995-1997 Microsoft Corporation, All Rights Reserved 
 */ 
 
 
#include "framer.h" 
 
 
/* 
 * CImpIAdviseSink::CImpIAdviseSink 
 * CImpIAdviseSink::~CImpIAdviseSink 
 * 
 * Parameters (Constructor): 
 *  pSite           PCSite of the site we're in. 
 *  pUnkOuter       LPUNKNOWN to which we delegate. 
 */ 
 
CImpIAdviseSink::CImpIAdviseSink(PCSite pSite 
    , LPUNKNOWN pUnkOuter) 
    { 
    m_cRef=0; 
    m_pSite=pSite; 
    m_pUnkOuter=pUnkOuter; 
    return; 
    } 
 
CImpIAdviseSink::~CImpIAdviseSink(void) 
    { 
    return; 
    } 
 
 
 
 
/* 
 * CImpIAdviseSink::QueryInterface 
 * CImpIAdviseSink::AddRef 
 * CImpIAdviseSink::Release 
 * 
 * Purpose: 
 *  IUnknown members for CImpIAdviseSink object. 
 */ 
 
STDMETHODIMP CImpIAdviseSink::QueryInterface(REFIID riid, void **ppv) 
    { 
    return m_pUnkOuter->QueryInterface(riid, ppv); 
    } 
 
 
STDMETHODIMP_(ULONG) CImpIAdviseSink::AddRef(void) 
    { 
    ++m_cRef; 
    return m_pUnkOuter->AddRef(); 
    } 
 
STDMETHODIMP_(ULONG) CImpIAdviseSink::Release(void) 
    { 
    --m_cRef; 
    return m_pUnkOuter->Release(); 
    } 
 
 
 
/* 
 * Unused members in CImpIAdviseSink 
 *  OnDataChange 
 *  OnViewChange 
 *  OnRename 
 *  OnSave 
 */ 
 
STDMETHODIMP_(void) CImpIAdviseSink::OnDataChange(LPFORMATETC pFEIn 
    , LPSTGMEDIUM pSTM) 
    { 
    return; 
    } 
 
STDMETHODIMP_(void) CImpIAdviseSink::OnViewChange(DWORD dwAspect 
    , LONG lindex) 
    {     
    return; 
    } 
 
STDMETHODIMP_(void) CImpIAdviseSink::OnRename(LPMONIKER pmk) 
    { 
    return; 
    } 
 
STDMETHODIMP_(void) CImpIAdviseSink::OnSave(void) 
    { 
    return; 
    } 
 
 
 
 
/* 
 * CImpIAdviseSink::OnClose 
 * 
 * Purpose: 
 *  Informs the advise sink that the OLE object has closed and is 
 *  no longer bound in any way.  We use this to do a File/Close 
 *  to delete the object since we don't hold onto any. 
 * 
 * Parameters: 
 *  None 
 * 
 * Return Value: 
 *  None 
 */ 
 
STDMETHODIMP_(void) CImpIAdviseSink::OnClose(void) 
    { 
//This does the same as File/Close 
//Not quite because CFrame::Close requires some synchronous 
//calls that will fail if done here, so just post a message to 
//do this 
    //m_pSite->m_pFR->Close(); 
 
HWNDhwnd; 
m_pSite->m_pFR->GetWindow(&hwnd); 
PostMessage( 
hwnd,  
WM_COMMAND, 
MAKELONG(IDM_FILECLOSE, 0), 
0); 
    return; 
    }