widl: Support WinRT parameterized delegate type.
[wine/zf.git] / include / opcobjectmodel.idl
blobeaf01085b255efcf45b016f6ff524123d05e3248
1 /*
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
19 #if 0
20 #pragma makedep install
21 #endif
23 interface IOpcPartUri;
24 interface IOpcUri;
25 interface IOpcRelationship;
26 interface IOpcRelationshipSet;
28 typedef [v1_enum] enum
30 OPC_READ_DEFAULT = 0,
31 OPC_VALIDATE_ON_LOAD = 1,
32 OPC_CACHE_ON_ACCESS = 2,
33 } OPC_READ_FLAGS;
35 typedef [v1_enum] enum
37 OPC_WRITE_DEFAULT = 0,
38 OPC_WRITE_FORCE_ZIP32 = 1,
39 } OPC_WRITE_FLAGS;
42 object,
43 uuid(42195949-3b79-4fc8-89c6-fc7fb979ee71),
44 pointer_default(ref)
46 interface IOpcPart : IUnknown
48 HRESULT GetRelationshipSet(
49 [out, retval] IOpcRelationshipSet **relationship_set
52 HRESULT GetContentStream(
53 [out, retval] IStream **stream
56 HRESULT GetName(
57 [out, retval] IOpcPartUri **name
60 HRESULT GetContentType(
61 [out, string, retval] LPWSTR *type
64 HRESULT GetCompressionOptions(
65 [out, retval] OPC_COMPRESSION_OPTIONS *options
70 object,
71 uuid(42195949-3b79-4fc8-89c6-fc7fb979ee75),
72 pointer_default(ref)
74 interface IOpcPartEnumerator : IUnknown
76 HRESULT MoveNext(
77 [out, retval] BOOL *has_next
80 HRESULT MovePrevious(
81 [out, retval] BOOL *has_previous
84 HRESULT GetCurrent(
85 [out, retval] IOpcPart **part
88 HRESULT Clone(
89 [out, retval] IOpcPartEnumerator **enumerator
94 object,
95 uuid(42195949-3b79-4fc8-89c6-fc7fb979ee76),
96 pointer_default(ref)
98 interface IOpcRelationshipEnumerator : IUnknown
100 HRESULT MoveNext(
101 [out, retval] BOOL *has_next
104 HRESULT MovePrevious(
105 [out, retval] BOOL *has_previous
108 HRESULT GetCurrent(
109 [out, retval] IOpcRelationship **relationship
112 HRESULT Clone(
113 [out, retval] IOpcRelationshipEnumerator **enumerator
118 object,
119 uuid(42195949-3b79-4fc8-89c6-fc7fb979ee73),
120 pointer_default(ref)
122 interface IOpcPartSet : IUnknown
124 HRESULT GetPart(
125 [in] IOpcPartUri *name,
126 [out, retval] IOpcPart **part
129 HRESULT CreatePart(
130 [in] IOpcPartUri *name,
131 [in, string] LPCWSTR content_type,
132 [in] OPC_COMPRESSION_OPTIONS compression_options,
133 [out, retval] IOpcPart **part
136 HRESULT DeletePart(
137 [in] IOpcPartUri *name
140 HRESULT PartExists(
141 [in] IOpcPartUri *name,
142 [out, retval] BOOL *exists
145 HRESULT GetEnumerator(
146 [out, retval] IOpcPartEnumerator **enumerator
151 object,
152 uuid(42195949-3b79-4fc8-89c6-fc7fb979ee72),
153 pointer_default(ref)
155 interface IOpcRelationship : IUnknown
157 HRESULT GetId(
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
180 object,
181 uuid(42195949-3b79-4fc8-89c6-fc7fb979ee74),
182 pointer_default(ref)
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
223 object,
224 uuid(42195949-3b79-4fc8-89c6-fc7fb979ee70),
225 pointer_default(ref)
227 interface IOpcPackage : IUnknown
229 HRESULT GetPartSet(
230 [out, retval] IOpcPartSet **part_set
233 HRESULT GetRelationshipSet(
234 [out, retval] IOpcRelationshipSet **relationship_set