00001 /* 00002 Free Download Manager Copyright (c) 2003-2007 FreeDownloadManager.ORG 00003 Open Download Manager Copyright (c) 2008-2010 OpenDownloadManager.ORG 00004 */ 00005 00006 #ifndef __PSTREAM__ 00007 #define __PSTREAM__ 00008 00009 class CPersistStream : public IPersistStream { 00010 private: 00011 00012 protected: 00013 DWORD mPS_dwFileVersion; 00014 BOOL mPS_fDirty; 00015 00016 public: 00017 00018 STDMETHODIMP IsDirty() 00019 {return (mPS_fDirty ? S_OK : S_FALSE);} 00020 STDMETHODIMP Load(LPSTREAM pStm); 00021 STDMETHODIMP Save(LPSTREAM pStm, BOOL fClearDirty); 00022 STDMETHODIMP GetSizeMax(ULARGE_INTEGER * pcbSize) 00023 00024 { pcbSize->QuadPart = 12*sizeof(WCHAR)+SizeMax(); return NOERROR; } 00025 00026 00027 CPersistStream(IUnknown *punk, HRESULT *phr); 00028 ~CPersistStream(); 00029 00030 HRESULT SetDirty(BOOL fDirty) 00031 { mPS_fDirty = fDirty; return NOERROR;} 00032 00033 STDMETHODIMP GetClassID(CLSID *pClsid) PURE; 00034 00035 virtual DWORD GetSoftwareVersion(void) { return 0; } 00036 virtual int SizeMax() {return 0;} 00037 virtual HRESULT WriteToStream(IStream *pStream); 00038 virtual HRESULT ReadFromStream(IStream *pStream); 00039 00040 00041 private: 00042 00043 }; 00044 00045 STDAPI WriteInt(IStream *pIStream, int n); 00046 00047 STDAPI_(int) ReadInt(IStream *pIStream, HRESULT &hr); 00048 00049 #endif
1.5.6