OWLNext    7.0
Borland's Object Windows Library for the modern age
Loading...
Searching...
No Matches
ocstorag.h
Go to the documentation of this file.
1//----------------------------------------------------------------------------
2// ObjectComponents
3// Copyright 1994, 1996 by Borland International, All Rights Reserved
4/// \file
5/// Definition of TOcStorage & TOcStream classes
6//----------------------------------------------------------------------------
7
8#if !defined(OCF_OCSTORAG_H)
9#define OCF_OCSTORAG_H
10
11#include <owl/private/defs.h>
12#include <owl/private/number.h>
13#if defined(BI_HAS_PRAGMA_ONCE)
14# pragma once
15#endif
16
17#include <ocf/defs.h>
18#include <ocf/ocbocole.h>
19
20
21//
22// Classes referenced
23//
25interface _ICLASS IStorage;
26interface _ICLASS IStream;
29
30namespace ocf {
31
32//
33// Classes defined
34//
37
38//
39// class TOcStream
40// ~~~~~ ~~~~~~~~~
42 public:
43 TOcStream(TOcStorage& storage, LPCTSTR name, bool create,
44 owl::uint32 mode = STGM_READWRITE);
45 TOcStream(TOcStream& stream);
46 TOcStream(IStream* stream);
47 ~TOcStream();
48
50
51 HRESULT Read(void * pv, owl::ulong cb, owl::ulong * read = 0);
52 HRESULT Write(void const * pv, owl::ulong cb, owl::ulong * written = 0);
53 HRESULT Seek(owl::int64 move, owl::uint32 origin= STREAM_SEEK_SET,
54 owl::uint64 * newPosition = 0);
55 HRESULT SetSize(owl::uint64 newSize);
56 HRESULT CopyTo(TOcStream& stream, owl::uint64 cb, owl::uint64 * read = 0,
57 owl::uint64 * written = 0);
58 HRESULT Commit(owl::uint32 commitFlags);
59 HRESULT Revert();
60 HRESULT LockRegion(owl::uint64 offset, owl::uint64 cb, owl::uint32 lockType);
61 HRESULT UnlockRegion(owl::uint64 offset, owl::uint64 cb, owl::uint32 lockType);
62 HRESULT Stat(STATSTG * statstg, owl::uint32 statFlag);
63
64 protected:
65 HRESULT Clone(IStream * * ppstm);
66
68};
69
70//
71// class TOcStorage
72// ~~~~~ ~~~~~~~~~~
74 public:
75 TOcStorage(LPCTSTR fileName, bool create,
76 owl::uint32 mode = STGM_READWRITE|STGM_TRANSACTED);
77 TOcStorage(ILockBytes * lkbyt, bool create,
78 owl::uint32 mode = STGM_READWRITE|STGM_TRANSACTED);
79 TOcStorage(TOcStorage& parent, LPCTSTR name, bool create,
80 owl::uint32 mode = STGM_READWRITE);
81 TOcStorage(IStorage* storage);
83
85
86 HRESULT CopyTo(owl::uint32 ciidExclude, IID const * rgiidExclude,
87 SNB snbExclude, TOcStorage& dest);
88 HRESULT MoveElementTo(LPCTSTR name, TOcStorage& dest,
89 LPCTSTR newName, owl::uint32 grfFlags);
90 HRESULT Commit(owl::uint32 grfCommitFlags);
91 HRESULT Revert();
92 HRESULT EnumElements(owl::uint32 reserved1, void * reserved2,
93 owl::uint32 reserved3, IEnumSTATSTG ** ppenm);
94 HRESULT DestroyElement(LPCTSTR name);
95 HRESULT RenameElement(LPCTSTR oldName, LPCTSTR newName);
96 HRESULT SetElementTimes(LPCTSTR name, FILETIME const * pctime,
97 FILETIME const * patime,
98 FILETIME const * pmtime);
99 HRESULT SetClass(const IID & clsid);
100 HRESULT SetStateBits(owl::uint32 grfStateBits, owl::uint32 grfMask);
101 HRESULT Stat(STATSTG *pstatstg, owl::uint32 grfStatFlag);
102
103 HRESULT SwitchToFile(LPCTSTR newPath);
104
105 static HRESULT IsStorageFile(LPCTSTR pwcsName);
106 static HRESULT IsStorageILockBytes(ILockBytes * plkbyt);
107 static HRESULT SetTimes(LPCTSTR lpszName,
108 FILETIME const * pctime,
109 FILETIME const * patime,
110 FILETIME const * pmtime);
111
112 protected:
113 HRESULT CreateStream(LPCTSTR name, owl::uint32 mode, owl::uint32 rsrvd1,
114 owl::uint32 rsrvd2, IStream * * stream);
115 HRESULT OpenStream(LPCTSTR name, void *rsrvd1, owl::uint32 grfMode,
116 owl::uint32 rsrvd2, IStream * *stream);
117 HRESULT CreateStorage(LPCTSTR name, owl::uint32 mode, owl::uint32 rsrvd1,
118 owl::uint32 rsrvd2, IStorage ** storage);
119 HRESULT OpenStorage(LPCTSTR name, IStorage * stgPriority,
120 owl::uint32 mode, SNB snbExclude, owl::uint32 rsrvd,
121 IStorage ** storage);
124
125#if 0 // not currently implemented
126// TOcStorage* GetParent() const {return Parent;}
127// int GetOpenMode() const {return OpenMode;}
128// void SetOpenMode(int mode) const {OpenMode = mode;}
129
130 protected:
131// int ThisOpen; // actual mode bits used for opening storage
132
133 private:
134// int OpenMode; // mode and protection flags
135// int OpenCount;
136// TOcStorage* Parent;
137#endif
139
140 friend TOcStream;
141};
142
143} // OCF namespace
144
145#endif // OCF_OCSTORAG_H
HRESULT SetElementTimes(LPCTSTR name, FILETIME const *pctime, FILETIME const *patime, FILETIME const *pmtime)
Definition ocstorag.cpp:457
HRESULT OpenStream(LPCTSTR name, void *rsrvd1, owl::uint32 grfMode, owl::uint32 rsrvd2, IStream **stream)
Definition ocstorag.cpp:524
static HRESULT SetTimes(LPCTSTR lpszName, FILETIME const *pctime, FILETIME const *patime, FILETIME const *pmtime)
Definition ocstorag.cpp:579
HRESULT MoveElementTo(LPCTSTR name, TOcStorage &dest, LPCTSTR newName, owl::uint32 grfFlags)
Definition ocstorag.cpp:401
HRESULT CreateStorage(LPCTSTR name, owl::uint32 mode, owl::uint32 rsrvd1, owl::uint32 rsrvd2, IStorage **storage)
Definition ocstorag.cpp:535
HRESULT Revert()
Definition ocstorag.cpp:419
owl::ulong Release()
Definition ocstorag.cpp:374
owl::ulong AddRef()
Definition ocstorag.cpp:365
HRESULT CopyTo(owl::uint32 ciidExclude, IID const *rgiidExclude, SNB snbExclude, TOcStorage &dest)
Definition ocstorag.cpp:392
HRESULT SwitchToFile(LPCTSTR newPath)
Definition ocstorag.cpp:495
TOcStorage(LPCTSTR fileName, bool create, owl::uint32 mode=STGM_READWRITE|STGM_TRANSACTED)
Definition ocstorag.cpp:269
HRESULT Commit(owl::uint32 grfCommitFlags)
Definition ocstorag.cpp:410
HRESULT CreateStream(LPCTSTR name, owl::uint32 mode, owl::uint32 rsrvd1, owl::uint32 rsrvd2, IStream **stream)
Definition ocstorag.cpp:513
static HRESULT IsStorageFile(LPCTSTR pwcsName)
Definition ocstorag.cpp:557
HRESULT RenameElement(LPCTSTR oldName, LPCTSTR newName)
Definition ocstorag.cpp:448
IStorage * StorageI
Definition ocstorag.h:138
HRESULT EnumElements(owl::uint32 reserved1, void *reserved2, owl::uint32 reserved3, IEnumSTATSTG **ppenm)
Definition ocstorag.cpp:428
IStorage * GetIStorage()
Definition ocstorag.cpp:383
HRESULT SetStateBits(owl::uint32 grfStateBits, owl::uint32 grfMask)
Definition ocstorag.cpp:475
HRESULT DestroyElement(LPCTSTR name)
Definition ocstorag.cpp:437
static HRESULT IsStorageILockBytes(ILockBytes *plkbyt)
Definition ocstorag.cpp:568
HRESULT Stat(STATSTG *pstatstg, owl::uint32 grfStatFlag)
Definition ocstorag.cpp:484
HRESULT SetClass(const IID &clsid)
Definition ocstorag.cpp:466
friend TOcStream
Definition ocstorag.h:140
HRESULT OpenStorage(LPCTSTR name, IStorage *stgPriority, owl::uint32 mode, SNB snbExclude, owl::uint32 rsrvd, IStorage **storage)
Definition ocstorag.cpp:546
HRESULT Clone(IStream **ppstm)
Definition ocstorag.cpp:256
HRESULT LockRegion(owl::uint64 offset, owl::uint64 cb, owl::uint32 lockType)
Definition ocstorag.cpp:227
HRESULT Write(void const *pv, owl::ulong cb, owl::ulong *written=0)
Definition ocstorag.cpp:166
HRESULT CopyTo(TOcStream &stream, owl::uint64 cb, owl::uint64 *read=0, owl::uint64 *written=0)
Definition ocstorag.cpp:197
HRESULT SetSize(owl::uint64 newSize)
Definition ocstorag.cpp:188
HRESULT Commit(owl::uint32 commitFlags)
Definition ocstorag.cpp:209
HRESULT UnlockRegion(owl::uint64 offset, owl::uint64 cb, owl::uint32 lockType)
Definition ocstorag.cpp:236
HRESULT Read(void *pv, owl::ulong cb, owl::ulong *read=0)
Definition ocstorag.cpp:155
HRESULT Seek(owl::int64 move, owl::uint32 origin=STREAM_SEEK_SET, owl::uint64 *newPosition=0)
Definition ocstorag.cpp:177
IStream * GetIStream()
Definition ocstorag.cpp:146
IStream * StreamI
Definition ocstorag.h:67
HRESULT Revert()
Definition ocstorag.cpp:218
HRESULT Stat(STATSTG *statstg, owl::uint32 statFlag)
Definition ocstorag.cpp:245
TOcStream(TOcStorage &storage, LPCTSTR name, bool create, owl::uint32 mode=STGM_READWRITE)
Definition ocstorag.cpp:101
Object Component Framework (COM encapsulation).
Definition appdesc.h:22
__int64 int64
Definition number.h:36
unsigned long ulong
Definition number.h:26
unsigned long uint32
Definition number.h:34
unsigned __int64 uint64
Definition number.h:43
ObjectComponents BOcOle engine linking & embedding interfaces.
interface _ICLASS IStorage
Definition ocdoc.h:25
ObjectComponents fundamental definitions.
#define _OCFCLASS
Definition defs.h:45
interface _ICLASS ILockBytes
Definition ocstorag.h:27
interface _ICLASS IRootStorage
Definition ocstorag.h:24
interface _ICLASS IStream
Definition ocstorag.h:26
interface _ICLASS IEnumSTATSTG
Definition ocstorag.h:28
#define _ICLASS
Definition oleutil.h:25