1 //  ----------------------------------------------------------------------------
2 //  MODULE    : OLEFiles.h
3 //  LANGUAGE  : C++
4 //  AUTHOR    : Yue Zhang
5 //  DATE    : Tuesday, Janurary 23, 1996
6 //  DESCRIPTION : This file defines  OLE file object
7 //  COMMENT   : Enhanced OLE objects which are independent of platform
8 //  SCCSID      : @(#)olefiles.h  1.2 14:47:41 06 Jan 1997
9 //  ----------------------------------------------------------------------------
10 //  Copyright (c) 1999 Digital Imaging Group, Inc.
11 //  For conditions of distribution and use, see copyright notice
12 //  in Flashpix.h
13 //  ----------------------------------------------------------------------------
14 
15   #ifndef OLEFiles_h
16   #define OLEFiles_h
17 
18 #ifndef OLECore_h
19   #include "olecore.h"
20 #endif
21 #ifndef FicNom_h
22   #include "filename.h"
23 #endif
24 
25   class OLEStorage;
26 
27 //  Constants
28 //  ---------
29 
30 //  Classes declarations
31 //  --------------------
32 
33   class OLEFile;
34 
35 //  Classes definitions
36 //  -------------------
37 
38   class OLEFile : public OLECore
39   {
40     public:
41                OLEFile (const char* theFilename, const char* theStorageName = NULL);
42                OLEFile (const FicNom& filefic, const char* theStorageName = NULL);
43               virtual ~OLEFile ();
44 
45           Boolean GetCLSID (CLSID* classID);
46           Boolean GetFileSize (unsigned long* size);
47 
48           Boolean OpenOLEFile   (CLSID& classID, OLEStorage ** currentStorage = NULL, DWORD mode = OLE_READWRITE_MODE);
49           Boolean CreateOLEFile (CLSID& classID, OLEStorage ** newStorage = NULL);
50 
51           void  GetFileName (FicNom* fileName);
GetFileName()52           char* GetFileName ()  { return fileName; };
53 
isFileReadOnly()54           Boolean isFileReadOnly() { return isReadOnly; };
55 
56     protected:
57       void  Release();
58 
59       char      fileName[255];
60       char      storageName[255];
61       Boolean     isEmbeddedStorage;
62       Boolean     isReadOnly;
63       FicNom      fileFic;
64 
65       OLEStorage *  rootStorage;    // Root storage of the file (see OLEStorages.h)
66       OLEStorage *  embeddedStorage;  // Embedded storage of the file (see OLEStorages.h)
67   };
68 
69 
70 //  ----------------------------------------------------------------------------
71   #endif // OLEFiles_h
72 //  ----------------------------------------------------------------------------
73