Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(333)

Side by Side Diff: include/utils/win/SkIStream.h

Issue 2070983002: Move headers in include/utils/win to src/utils/win. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Really rebase. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « include/utils/win/SkHRESULT.h ('k') | include/utils/win/SkTScopedComPtr.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1
2 /*
3 * Copyright 2011 Google Inc.
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8
9
10 #ifndef SkIStream_DEFINED
11 #define SkIStream_DEFINED
12
13 #include "SkTypes.h"
14
15 #ifdef SK_BUILD_FOR_WIN
16
17 #include "../../private/SkLeanWindows.h"
18 #include <ole2.h>
19
20 class SkStream;
21 class SkWStream;
22
23 /**
24 * A bare IStream implementation which properly reference counts
25 * but returns E_NOTIMPL for all ISequentialStream and IStream methods.
26 */
27 class SkBaseIStream : public IStream {
28 private:
29 LONG _refcount;
30
31 protected:
32 explicit SkBaseIStream();
33 virtual ~SkBaseIStream();
34
35 public:
36 virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid
37 , void ** ppvObject);
38 virtual ULONG STDMETHODCALLTYPE AddRef(void);
39 virtual ULONG STDMETHODCALLTYPE Release(void);
40
41 // ISequentialStream Interface
42 public:
43 virtual HRESULT STDMETHODCALLTYPE Read(void* pv, ULONG cb, ULONG* pcbRead);
44
45 virtual HRESULT STDMETHODCALLTYPE Write(void const* pv
46 , ULONG cb
47 , ULONG* pcbWritten);
48
49 // IStream Interface
50 public:
51 virtual HRESULT STDMETHODCALLTYPE SetSize(ULARGE_INTEGER);
52
53 virtual HRESULT STDMETHODCALLTYPE CopyTo(IStream*
54 , ULARGE_INTEGER
55 , ULARGE_INTEGER*
56 , ULARGE_INTEGER*);
57
58 virtual HRESULT STDMETHODCALLTYPE Commit(DWORD);
59
60 virtual HRESULT STDMETHODCALLTYPE Revert(void);
61
62 virtual HRESULT STDMETHODCALLTYPE LockRegion(ULARGE_INTEGER
63 , ULARGE_INTEGER
64 , DWORD);
65
66 virtual HRESULT STDMETHODCALLTYPE UnlockRegion(ULARGE_INTEGER
67 , ULARGE_INTEGER
68 , DWORD);
69
70 virtual HRESULT STDMETHODCALLTYPE Clone(IStream **);
71
72 virtual HRESULT STDMETHODCALLTYPE Seek(LARGE_INTEGER liDistanceToMove
73 , DWORD dwOrigin
74 , ULARGE_INTEGER* lpNewFilePointer);
75
76 virtual HRESULT STDMETHODCALLTYPE Stat(STATSTG* pStatstg
77 , DWORD grfStatFlag);
78 };
79
80 /**
81 * A minimal read-only IStream implementation which wraps an SkStream.
82 */
83 class SkIStream : public SkBaseIStream {
84 private:
85 SkStream *fSkStream;
86 const bool fDeleteOnRelease;
87 ULARGE_INTEGER fLocation;
88
89 SkIStream(SkStream* stream, bool fDeleteOnRelease);
90 virtual ~SkIStream();
91
92 public:
93 HRESULT static CreateFromSkStream(SkStream* stream
94 , bool fDeleteOnRelease
95 , IStream ** ppStream);
96
97 virtual HRESULT STDMETHODCALLTYPE Read(void* pv, ULONG cb, ULONG* pcbRead);
98
99 virtual HRESULT STDMETHODCALLTYPE Write(void const* pv
100 , ULONG cb
101 , ULONG* pcbWritten);
102
103 virtual HRESULT STDMETHODCALLTYPE Seek(LARGE_INTEGER liDistanceToMove
104 , DWORD dwOrigin
105 , ULARGE_INTEGER* lpNewFilePointer);
106
107 virtual HRESULT STDMETHODCALLTYPE Stat(STATSTG* pStatstg
108 , DWORD grfStatFlag);
109 };
110
111 /**
112 * A minimal write-only IStream implementation which wraps an SkWIStream.
113 */
114 class SkWIStream : public SkBaseIStream {
115 private:
116 SkWStream *fSkWStream;
117
118 SkWIStream(SkWStream* stream);
119 virtual ~SkWIStream();
120
121 public:
122 HRESULT static CreateFromSkWStream(SkWStream* stream, IStream ** ppStream);
123
124 virtual HRESULT STDMETHODCALLTYPE Write(void const* pv
125 , ULONG cb
126 , ULONG* pcbWritten);
127
128 virtual HRESULT STDMETHODCALLTYPE Commit(DWORD);
129
130 virtual HRESULT STDMETHODCALLTYPE Stat(STATSTG* pStatstg
131 , DWORD grfStatFlag);
132 };
133
134 #endif // SK_BUILD_FOR_WIN
135 #endif // SkIStream_DEFINED
OLDNEW
« no previous file with comments | « include/utils/win/SkHRESULT.h ('k') | include/utils/win/SkTScopedComPtr.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698