home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / com / tutsamp / perclien / pagefile.h < prev    next >
C/C++ Source or Header  |  1997-08-05  |  4KB  |  107 lines

  1. /*+==========================================================================
  2.   File:      PAGEFILE.H
  3.  
  4.   Summary:   Include file for the CPageFile C++ class. A CPageFile is a
  5.              C++ object that encapsulates load and save operations on an
  6.              COM structured storage compound file. CPageFile knows about
  7.              an underlying server-based persistent COM object, COPageList,
  8.              that manages the actual page list data. COPageList supports
  9.              persistence of its page list data by exposing the
  10.              IPersistStream interface.
  11.  
  12.              For a comprehensive tutorial code tour of PAGEFILE's contents
  13.              and offerings see the tutorial PERCLIEN.HTM file. For
  14.              more specific technical details on the internal workings see
  15.              the comments dispersed throughout the PAGEFILE source code.
  16.  
  17.   Classes:   CPageFile.
  18.  
  19.   Origin:    5-25-96: atrent - Created for PERCLIEN Code Sample.
  20.  
  21. ----------------------------------------------------------------------------
  22.   This file is part of the Microsoft COM Tutorial Code Samples.
  23.  
  24.   Copyright (C) Microsoft Corporation, 1997.  All rights reserved.
  25.  
  26.   This source code is intended only as a supplement to Microsoft
  27.   Development Tools and/or on-line documentation.  See these other
  28.   materials for detailed information regarding Microsoft code samples.
  29.  
  30.   THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
  31.   KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  32.   IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  33.   PARTICULAR PURPOSE.
  34. ==========================================================================+*/
  35.  
  36. #if !defined(PAGEFILE_H)
  37. #define PAGEFILE_H
  38.  
  39. #if defined(__cplusplus)
  40.  
  41.  
  42. /*C+C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C
  43.   Class:    CPageFile
  44.  
  45.   Summary:  Class to encapsulate operations on the page list's data
  46.             compound file.
  47.  
  48.   Methods:  CPageFile
  49.               Constructor.
  50.             ~CPageFile
  51.               Destructor.
  52.             HRESULT Init(
  53.                       TCHAR* pszAppFileName);
  54.               Initialize the CPageFile C++ object.
  55.             HRESULT New(
  56.                       TCHAR* pszFileName,
  57.                       IStorage** ppIStorage,
  58.                       IPageList** ppIPageList);
  59.               Create a new empty Page List compound file.
  60.             HRESULT Load(
  61.                       TCHAR* pszFileName,
  62.                       IStorage** ppIStorage,
  63.                       IPageList** ppIPageList);
  64.               Load Page List data using the specified compound file name.
  65.             HRESULT Save(
  66.                       IStorage* pIStorage,
  67.                       IPageList* pIPageList);
  68.               Save current page list under specified root storage.
  69.             HRESULT SaveAs(
  70.                       TCHAR* pszFileName,
  71.                       IPageList* pIPageList,
  72.                       IStorage** ppIStorage);
  73.               Create a new page list compound file of specified file name.
  74. C---C---C---C---C---C---C---C---C---C---C---C---C---C---C---C---C---C---C-C*/
  75. class CPageFile
  76. {
  77.   public:
  78.     CPageFile(void);
  79.    ~CPageFile(void);
  80.     HRESULT Init(
  81.               TCHAR* pszAppFileName);
  82.     HRESULT New(
  83.               TCHAR* pszFileName,
  84.               IStorage** ppIStorage,
  85.               IPageList** ppIPageList);
  86.     HRESULT Load(
  87.               TCHAR* pszFileName,
  88.               IStorage** ppIStorage,
  89.               IPageList** ppIPageList);
  90.     HRESULT Save(
  91.               IStorage* pIStorage,
  92.               IPageList* pIPageList);
  93.     HRESULT SaveAs(
  94.               TCHAR* pszFileName,
  95.               IPageList* pIPageList,
  96.               IStorage** ppIStorage);
  97.  
  98.   private:
  99.     TCHAR          m_szCurFileName[MAX_PATH];
  100.     CLSID          m_CidPageList;
  101. };
  102.  
  103.  
  104. #endif // __cplusplus
  105.  
  106. #endif
  107.