PERSTOR.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:2k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /**************************************************************************
  2.    THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  3.    ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  4.    THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  5.    PARTICULAR PURPOSE.
  6.    Copyright 1997 Microsoft Corporation.  All Rights Reserved.
  7. **************************************************************************/
  8. /******************************************************************************
  9.    File:          PerStor.h
  10.    
  11.    Description:   CPersistStorage definitions.
  12. ******************************************************************************/
  13. #ifndef PERSISTSTORAGE_H
  14. #define PERSISTSTORAGE_H
  15. /**************************************************************************
  16.    #include statements
  17. **************************************************************************/
  18. #include "DOServer.h"
  19. /**************************************************************************
  20.    CPersistStorage class definition
  21. **************************************************************************/
  22. class COleDocument;
  23. class CPersistStorage : public IPersistStorage
  24. {
  25. friend class CPersistFile;
  26. private:
  27.    COleDocument   *m_pOleDoc;
  28.    LPSTORAGE      m_pStorage;
  29.    LPSTREAM       m_pColorStream;
  30.    BOOL           m_fSameAsLoad;
  31. public:
  32.    CPersistStorage(COleDocument*);
  33.    ~CPersistStorage();
  34.    //IUnknown methods
  35.    STDMETHODIMP QueryInterface(REFIID, LPVOID*);
  36.    STDMETHODIMP_(DWORD) AddRef();
  37.    STDMETHODIMP_(DWORD) Release();
  38.    //IPersistStorage methods
  39. STDMETHODIMP InitNew(LPSTORAGE);
  40. STDMETHODIMP GetClassID(LPCLSID);
  41. STDMETHODIMP Save(LPSTORAGE, BOOL);
  42. STDMETHODIMP SaveCompleted(LPSTORAGE);
  43. STDMETHODIMP Load(LPSTORAGE);
  44. STDMETHODIMP IsDirty();
  45. STDMETHODIMP HandsOffStorage();
  46.    
  47. private:
  48. void ReleaseStreamsAndStorage();
  49. void OpenStreams(LPSTORAGE);
  50. void CreateStreams(LPSTORAGE);
  51. void CreateStreams(LPSTORAGE, LPSTREAM*);
  52. };
  53. #endif   //PERSISTSTORAGE_H