2 * Copyright 2018 Nikolay Sivov for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 #pragma makedep install
23 interface IOpcPartUri
;
25 interface IOpcRelationship
;
26 interface IOpcRelationshipSet
;
28 typedef [v1_enum] enum
31 OPC_VALIDATE_ON_LOAD
= 1,
32 OPC_CACHE_ON_ACCESS
= 2,
35 typedef [v1_enum] enum
37 OPC_WRITE_DEFAULT
= 0,
38 OPC_WRITE_FORCE_ZIP32
= 1,
43 uuid(42195949-3b79
-4fc8
-89c6
-fc7fb979ee71
),
46 interface IOpcPart
: IUnknown
48 HRESULT GetRelationshipSet
(
49 [out, retval] IOpcRelationshipSet
**relationship_set
52 HRESULT GetContentStream
(
53 [out, retval] IStream
**stream
57 [out, retval] IOpcPartUri
**name
60 HRESULT GetContentType
(
61 [out, string, retval] LPWSTR
*type
64 HRESULT GetCompressionOptions
(
65 [out, retval] OPC_COMPRESSION_OPTIONS
*options
71 uuid(42195949-3b79
-4fc8
-89c6
-fc7fb979ee75
),
74 interface IOpcPartEnumerator
: IUnknown
77 [out, retval] BOOL
*has_next
81 [out, retval] BOOL
*has_previous
85 [out, retval] IOpcPart
**part
89 [out, retval] IOpcPartEnumerator
**enumerator
95 uuid(42195949-3b79
-4fc8
-89c6
-fc7fb979ee76
),
98 interface IOpcRelationshipEnumerator
: IUnknown
101 [out, retval] BOOL
*has_next
104 HRESULT MovePrevious
(
105 [out, retval] BOOL
*has_previous
109 [out, retval] IOpcRelationship
**relationship
113 [out, retval] IOpcRelationshipEnumerator
**enumerator
119 uuid(42195949-3b79
-4fc8
-89c6
-fc7fb979ee73
),
122 interface IOpcPartSet
: IUnknown
125 [in] IOpcPartUri
*name
,
126 [out, retval] IOpcPart
**part
130 [in] IOpcPartUri
*name
,
131 [in, string] LPCWSTR content_type
,
132 [in] OPC_COMPRESSION_OPTIONS compression_options
,
133 [out, retval] IOpcPart
**part
137 [in] IOpcPartUri
*name
141 [in] IOpcPartUri
*name
,
142 [out, retval] BOOL
*exists
145 HRESULT GetEnumerator
(
146 [out, retval] IOpcPartEnumerator
**enumerator
152 uuid(42195949-3b79
-4fc8
-89c6
-fc7fb979ee72
),
155 interface IOpcRelationship
: IUnknown
158 [out, string, retval] LPWSTR
*id
161 HRESULT GetRelationshipType
(
162 [out, string, retval] LPWSTR
*type
165 HRESULT GetSourceUri
(
166 [out, retval] IOpcUri
**uri
169 HRESULT GetTargetUri
(
170 [out, retval] IUri
**target
173 HRESULT GetTargetMode
(
174 [out, retval] OPC_URI_TARGET_MODE
*target_mode
181 uuid(42195949-3b79
-4fc8
-89c6
-fc7fb979ee74
),
184 interface IOpcRelationshipSet
: IUnknown
186 HRESULT GetRelationship
(
187 [in, string] LPCWSTR
id,
188 [out, retval] IOpcRelationship
**relationship
191 HRESULT CreateRelationship
(
192 [in, string, unique] LPCWSTR
id,
193 [in, string] LPCWSTR type
,
194 [in] IUri
*target_uri
,
195 [in] OPC_URI_TARGET_MODE target_mode
,
196 [out, retval] IOpcRelationship
**relationship
199 HRESULT DeleteRelationship
(
200 [in, string] LPCWSTR
id
203 HRESULT RelationshipExists
(
204 [in, string] LPCWSTR
id,
205 [out, retval] BOOL
*exists
208 HRESULT GetEnumerator
(
209 [out, retval] IOpcRelationshipEnumerator
**enumerator
212 HRESULT GetEnumeratorForType
(
213 [in, string] LPCWSTR type
,
214 [out, retval] IOpcRelationshipEnumerator
**enumerator
217 HRESULT GetRelationshipsContentStream
(
218 [out, retval] IStream
**stream
224 uuid(42195949-3b79
-4fc8
-89c6
-fc7fb979ee70
),
227 interface IOpcPackage
: IUnknown
230 [out, retval] IOpcPartSet
**part_set
233 HRESULT GetRelationshipSet
(
234 [out, retval] IOpcRelationshipSet
**relationship_set