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

Windows Kernel

Development Platform:

Visual C++

  1. #include "priv.h"
  2. #include "privcpp.h"
  3. // Constructor
  4. CPackage_IPersistFile::CPackage_IPersistFile(CPackage *pPackage) : 
  5.     _pPackage(pPackage)
  6. {
  7.     ASSERT(_cRef == 0); 
  8. }
  9. CPackage_IPersistFile::~CPackage_IPersistFile()
  10. {
  11.     DebugMsg(DM_TRACE,"CPackage_IPersistFile destroyed with ref count %d",_cRef);
  12. }
  13. //////////////////////////////////
  14. //
  15. // IUnknown Methods...
  16. //
  17. HRESULT CPackage_IPersistFile::QueryInterface(REFIID iid, void ** ppv)
  18. {
  19.     return _pPackage->QueryInterface(iid,ppv);  // delegate to CPackage
  20. }
  21. ULONG CPackage_IPersistFile::AddRef(void) 
  22. {
  23.     _cRef++;                                    // interface ref count for debug
  24.     return _pPackage->AddRef();                 // delegate to CPackage
  25. }
  26. ULONG CPackage_IPersistFile::Release(void)
  27. {
  28.     _cRef--;                                    // interface ref count for debug
  29.     return _pPackage->Release();                // delegate to CPackage
  30. }
  31. //////////////////////////////////
  32. //
  33. // IPersistFile Methods...
  34. //
  35. HRESULT CPackage_IPersistFile::GetClassID(LPCLSID pClassID)
  36. {
  37.     DebugMsg(DM_TRACE, "pack ps - GetClassID() called.");
  38.     
  39.     if (pClassID == NULL)
  40.         return E_INVALIDARG;
  41.     
  42.     *pClassID = CLSID_CPackage;
  43.     return S_OK;
  44. }
  45. HRESULT CPackage_IPersistFile::IsDirty(void)
  46. {
  47.     DebugMsg(DM_TRACE, "pack ps - IsDirty() called.");
  48.     return E_NOTIMPL;
  49. }
  50.     
  51. HRESULT CPackage_IPersistFile::Load(LPCOLESTR pszFileName, DWORD dwMode)
  52. {
  53.     HRESULT     hr;
  54.     DebugMsg(DM_TRACE, "pack pf - Load() called.");
  55.     if (!pszFileName) {
  56.         DebugMsg(DM_TRACE,"            bad pointer!!");
  57.         return E_POINTER;
  58.     }
  59.     //
  60.     // BUGBUG: We blow off the mode flags
  61.     //
  62.     
  63. #ifdef UNICODE
  64.     
  65.     hr = _pPackage->EmbedInitFromFile((LPTSTR) pszFileName, TRUE);
  66.     
  67. #else
  68.     
  69.     CHAR szPath[MAX_PATH];
  70.     WideCharToMultiByte(CP_ACP, 0, pszFileName, -1, szPath, ARRAYSIZE(szPath), NULL, NULL);
  71.     hr = _pPackage->EmbedInitFromFile(szPath, TRUE);
  72.     
  73. #endif // UNICODE
  74.     DebugMsg(DM_TRACE, "            leaving Load()");
  75.     
  76.     return hr;
  77. }
  78.     
  79. HRESULT CPackage_IPersistFile::Save(LPCOLESTR pszFileName, BOOL fRemember)
  80. {
  81.     DebugMsg(DM_TRACE, "pack pf - Save() called.");
  82.     return E_NOTIMPL;    
  83. }
  84.     
  85. HRESULT CPackage_IPersistFile::SaveCompleted(LPCOLESTR pszFileName)
  86. {
  87.     DebugMsg(DM_TRACE, "pack pf - SaveCompleted() called.");
  88.     return E_NOTIMPL;
  89. }
  90.     
  91. HRESULT CPackage_IPersistFile::GetCurFile(LPOLESTR *ppszFileName)
  92. {
  93.     DebugMsg(DM_TRACE, "pack pf - GetCurFile() called.");
  94.     if (!ppszFileName)
  95.         return E_POINTER;
  96.     
  97.     *ppszFileName = NULL;           // null the out param
  98.     return E_NOTIMPL;
  99. }