home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / com / activedocument / framer / iadvsink.cpp < prev    next >
C/C++ Source or Header  |  1997-08-12  |  2KB  |  132 lines

  1. /*
  2.  * IADVSINK.CPP
  3.  * IAdviseSink for Document Objects CSite class
  4.  *
  5.  * Copyright (c)1995-1997 Microsoft Corporation, All Rights Reserved
  6.  */
  7.  
  8.  
  9. #include "framer.h"
  10.  
  11.  
  12. /*
  13.  * CImpIAdviseSink::CImpIAdviseSink
  14.  * CImpIAdviseSink::~CImpIAdviseSink
  15.  *
  16.  * Parameters (Constructor):
  17.  *  pSite           PCSite of the site we're in.
  18.  *  pUnkOuter       LPUNKNOWN to which we delegate.
  19.  */
  20.  
  21. CImpIAdviseSink::CImpIAdviseSink(PCSite pSite
  22.     , LPUNKNOWN pUnkOuter)
  23.     {
  24.     m_cRef=0;
  25.     m_pSite=pSite;
  26.     m_pUnkOuter=pUnkOuter;
  27.     return;
  28.     }
  29.  
  30. CImpIAdviseSink::~CImpIAdviseSink(void)
  31.     {
  32.     return;
  33.     }
  34.  
  35.  
  36.  
  37.  
  38. /*
  39.  * CImpIAdviseSink::QueryInterface
  40.  * CImpIAdviseSink::AddRef
  41.  * CImpIAdviseSink::Release
  42.  *
  43.  * Purpose:
  44.  *  IUnknown members for CImpIAdviseSink object.
  45.  */
  46.  
  47. STDMETHODIMP CImpIAdviseSink::QueryInterface(REFIID riid, void **ppv)
  48.     {
  49.     return m_pUnkOuter->QueryInterface(riid, ppv);
  50.     }
  51.  
  52.  
  53. STDMETHODIMP_(ULONG) CImpIAdviseSink::AddRef(void)
  54.     {
  55.     ++m_cRef;
  56.     return m_pUnkOuter->AddRef();
  57.     }
  58.  
  59. STDMETHODIMP_(ULONG) CImpIAdviseSink::Release(void)
  60.     {
  61.     --m_cRef;
  62.     return m_pUnkOuter->Release();
  63.     }
  64.  
  65.  
  66.  
  67. /*
  68.  * Unused members in CImpIAdviseSink
  69.  *  OnDataChange
  70.  *  OnViewChange
  71.  *  OnRename
  72.  *  OnSave
  73.  */
  74.  
  75. STDMETHODIMP_(void) CImpIAdviseSink::OnDataChange(LPFORMATETC pFEIn
  76.     , LPSTGMEDIUM pSTM)
  77.     {
  78.     return;
  79.     }
  80.  
  81. STDMETHODIMP_(void) CImpIAdviseSink::OnViewChange(DWORD dwAspect
  82.     , LONG lindex)
  83.     {    
  84.     return;
  85.     }
  86.  
  87. STDMETHODIMP_(void) CImpIAdviseSink::OnRename(LPMONIKER pmk)
  88.     {
  89.     return;
  90.     }
  91.  
  92. STDMETHODIMP_(void) CImpIAdviseSink::OnSave(void)
  93.     {
  94.     return;
  95.     }
  96.  
  97.  
  98.  
  99.  
  100. /*
  101.  * CImpIAdviseSink::OnClose
  102.  *
  103.  * Purpose:
  104.  *  Informs the advise sink that the OLE object has closed and is
  105.  *  no longer bound in any way.  We use this to do a File/Close
  106.  *  to delete the object since we don't hold onto any.
  107.  *
  108.  * Parameters:
  109.  *  None
  110.  *
  111.  * Return Value:
  112.  *  None
  113.  */
  114.  
  115. STDMETHODIMP_(void) CImpIAdviseSink::OnClose(void)
  116.     {
  117.     //This does the same as File/Close
  118.     //Not quite because CFrame::Close requires some synchronous
  119.     //calls that will fail if done here, so just post a message to
  120.     //do this
  121.     //m_pSite->m_pFR->Close();
  122.  
  123.     HWND        hwnd;
  124.     m_pSite->m_pFR->GetWindow(&hwnd);
  125.     PostMessage(
  126.         hwnd, 
  127.         WM_COMMAND,
  128.         MAKELONG(IDM_FILECLOSE, 0),
  129.         0);
  130.     return;
  131.     }
  132.