objwsite.cpp
Upload User: xhy777
Upload Date: 2007-02-14
Package Size: 24088k
Code Size: 1k
Category:

Windows Kernel

Development Platform:

Visual C++

  1. #include "priv.h"
  2. #include "objwsite.h"
  3. //
  4. // Default IObjectWithSite
  5. //
  6. CObjWithSite::CObjWithSite()
  7. {
  8.     _punkSite = NULL;
  9. }
  10. CObjWithSite::~CObjWithSite()
  11. {
  12.     if (_punkSite) 
  13.         _punkSite->Release();
  14. }
  15. HRESULT CObjWithSite::SetSite(IUnknown *punkSite)
  16. {
  17.     ATOMICRELEASE(_punkSite);
  18.     ASSERT(_punkSite == NULL);  // don't lose a reference to this
  19.     _punkSite = punkSite;
  20.     if (_punkSite)
  21.         _punkSite->AddRef();
  22.     return S_OK;
  23. }
  24. HRESULT CObjWithSite::GetSite(REFIID riid, void **ppvSite)
  25. {
  26.     if (_punkSite) 
  27.         return _punkSite->QueryInterface(riid, ppvSite);
  28.     *ppvSite = NULL;
  29.     return E_FAIL;
  30. }