1 /*** Autogenerated by WIDL 6.4 from include/msopc.idl - Do not edit ***/
2 
3 #ifdef _WIN32
4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
6 #endif
7 #include <rpc.h>
8 #include <rpcndr.h>
9 #endif
10 
11 #ifndef COM_NO_WINDOWS_H
12 #include <windows.h>
13 #include <ole2.h>
14 #endif
15 
16 #ifndef __msopc_h__
17 #define __msopc_h__
18 
19 /* Forward declarations */
20 
21 #ifndef __IOpcUri_FWD_DEFINED__
22 #define __IOpcUri_FWD_DEFINED__
23 typedef interface IOpcUri IOpcUri;
24 #ifdef __cplusplus
25 interface IOpcUri;
26 #endif /* __cplusplus */
27 #endif
28 
29 #ifndef __IOpcPartUri_FWD_DEFINED__
30 #define __IOpcPartUri_FWD_DEFINED__
31 typedef interface IOpcPartUri IOpcPartUri;
32 #ifdef __cplusplus
33 interface IOpcPartUri;
34 #endif /* __cplusplus */
35 #endif
36 
37 #ifndef __IOpcPart_FWD_DEFINED__
38 #define __IOpcPart_FWD_DEFINED__
39 typedef interface IOpcPart IOpcPart;
40 #ifdef __cplusplus
41 interface IOpcPart;
42 #endif /* __cplusplus */
43 #endif
44 
45 #ifndef __IOpcPartEnumerator_FWD_DEFINED__
46 #define __IOpcPartEnumerator_FWD_DEFINED__
47 typedef interface IOpcPartEnumerator IOpcPartEnumerator;
48 #ifdef __cplusplus
49 interface IOpcPartEnumerator;
50 #endif /* __cplusplus */
51 #endif
52 
53 #ifndef __IOpcPartSet_FWD_DEFINED__
54 #define __IOpcPartSet_FWD_DEFINED__
55 typedef interface IOpcPartSet IOpcPartSet;
56 #ifdef __cplusplus
57 interface IOpcPartSet;
58 #endif /* __cplusplus */
59 #endif
60 
61 #ifndef __IOpcPackage_FWD_DEFINED__
62 #define __IOpcPackage_FWD_DEFINED__
63 typedef interface IOpcPackage IOpcPackage;
64 #ifdef __cplusplus
65 interface IOpcPackage;
66 #endif /* __cplusplus */
67 #endif
68 
69 #ifndef __IOpcRelationship_FWD_DEFINED__
70 #define __IOpcRelationship_FWD_DEFINED__
71 typedef interface IOpcRelationship IOpcRelationship;
72 #ifdef __cplusplus
73 interface IOpcRelationship;
74 #endif /* __cplusplus */
75 #endif
76 
77 #ifndef __IOpcRelationshipEnumerator_FWD_DEFINED__
78 #define __IOpcRelationshipEnumerator_FWD_DEFINED__
79 typedef interface IOpcRelationshipEnumerator IOpcRelationshipEnumerator;
80 #ifdef __cplusplus
81 interface IOpcRelationshipEnumerator;
82 #endif /* __cplusplus */
83 #endif
84 
85 #ifndef __IOpcRelationshipSelector_FWD_DEFINED__
86 #define __IOpcRelationshipSelector_FWD_DEFINED__
87 typedef interface IOpcRelationshipSelector IOpcRelationshipSelector;
88 #ifdef __cplusplus
89 interface IOpcRelationshipSelector;
90 #endif /* __cplusplus */
91 #endif
92 
93 #ifndef __IOpcRelationshipSet_FWD_DEFINED__
94 #define __IOpcRelationshipSet_FWD_DEFINED__
95 typedef interface IOpcRelationshipSet IOpcRelationshipSet;
96 #ifdef __cplusplus
97 interface IOpcRelationshipSet;
98 #endif /* __cplusplus */
99 #endif
100 
101 #ifndef __IOpcSignatureCustomObject_FWD_DEFINED__
102 #define __IOpcSignatureCustomObject_FWD_DEFINED__
103 typedef interface IOpcSignatureCustomObject IOpcSignatureCustomObject;
104 #ifdef __cplusplus
105 interface IOpcSignatureCustomObject;
106 #endif /* __cplusplus */
107 #endif
108 
109 #ifndef __IOpcSignatureCustomObjectEnumerator_FWD_DEFINED__
110 #define __IOpcSignatureCustomObjectEnumerator_FWD_DEFINED__
111 typedef interface IOpcSignatureCustomObjectEnumerator IOpcSignatureCustomObjectEnumerator;
112 #ifdef __cplusplus
113 interface IOpcSignatureCustomObjectEnumerator;
114 #endif /* __cplusplus */
115 #endif
116 
117 #ifndef __IOpcSignaturePartReference_FWD_DEFINED__
118 #define __IOpcSignaturePartReference_FWD_DEFINED__
119 typedef interface IOpcSignaturePartReference IOpcSignaturePartReference;
120 #ifdef __cplusplus
121 interface IOpcSignaturePartReference;
122 #endif /* __cplusplus */
123 #endif
124 
125 #ifndef __IOpcSignaturePartReferenceEnumerator_FWD_DEFINED__
126 #define __IOpcSignaturePartReferenceEnumerator_FWD_DEFINED__
127 typedef interface IOpcSignaturePartReferenceEnumerator IOpcSignaturePartReferenceEnumerator;
128 #ifdef __cplusplus
129 interface IOpcSignaturePartReferenceEnumerator;
130 #endif /* __cplusplus */
131 #endif
132 
133 #ifndef __IOpcSignatureReference_FWD_DEFINED__
134 #define __IOpcSignatureReference_FWD_DEFINED__
135 typedef interface IOpcSignatureReference IOpcSignatureReference;
136 #ifdef __cplusplus
137 interface IOpcSignatureReference;
138 #endif /* __cplusplus */
139 #endif
140 
141 #ifndef __IOpcSignatureReferenceEnumerator_FWD_DEFINED__
142 #define __IOpcSignatureReferenceEnumerator_FWD_DEFINED__
143 typedef interface IOpcSignatureReferenceEnumerator IOpcSignatureReferenceEnumerator;
144 #ifdef __cplusplus
145 interface IOpcSignatureReferenceEnumerator;
146 #endif /* __cplusplus */
147 #endif
148 
149 #ifndef __IOpcSignatureRelationshipReferenceEnumerator_FWD_DEFINED__
150 #define __IOpcSignatureRelationshipReferenceEnumerator_FWD_DEFINED__
151 typedef interface IOpcSignatureRelationshipReferenceEnumerator IOpcSignatureRelationshipReferenceEnumerator;
152 #ifdef __cplusplus
153 interface IOpcSignatureRelationshipReferenceEnumerator;
154 #endif /* __cplusplus */
155 #endif
156 
157 #ifndef __IOpcSignatureRelationshipReference_FWD_DEFINED__
158 #define __IOpcSignatureRelationshipReference_FWD_DEFINED__
159 typedef interface IOpcSignatureRelationshipReference IOpcSignatureRelationshipReference;
160 #ifdef __cplusplus
161 interface IOpcSignatureRelationshipReference;
162 #endif /* __cplusplus */
163 #endif
164 
165 #ifndef __IOpcRelationshipSelectorEnumerator_FWD_DEFINED__
166 #define __IOpcRelationshipSelectorEnumerator_FWD_DEFINED__
167 typedef interface IOpcRelationshipSelectorEnumerator IOpcRelationshipSelectorEnumerator;
168 #ifdef __cplusplus
169 interface IOpcRelationshipSelectorEnumerator;
170 #endif /* __cplusplus */
171 #endif
172 
173 #ifndef __IOpcCertificateEnumerator_FWD_DEFINED__
174 #define __IOpcCertificateEnumerator_FWD_DEFINED__
175 typedef interface IOpcCertificateEnumerator IOpcCertificateEnumerator;
176 #ifdef __cplusplus
177 interface IOpcCertificateEnumerator;
178 #endif /* __cplusplus */
179 #endif
180 
181 #ifndef __IOpcCertificateSet_FWD_DEFINED__
182 #define __IOpcCertificateSet_FWD_DEFINED__
183 typedef interface IOpcCertificateSet IOpcCertificateSet;
184 #ifdef __cplusplus
185 interface IOpcCertificateSet;
186 #endif /* __cplusplus */
187 #endif
188 
189 #ifndef __IOpcDigitalSignatureEnumerator_FWD_DEFINED__
190 #define __IOpcDigitalSignatureEnumerator_FWD_DEFINED__
191 typedef interface IOpcDigitalSignatureEnumerator IOpcDigitalSignatureEnumerator;
192 #ifdef __cplusplus
193 interface IOpcDigitalSignatureEnumerator;
194 #endif /* __cplusplus */
195 #endif
196 
197 #ifndef __IOpcDigitalSignatureManager_FWD_DEFINED__
198 #define __IOpcDigitalSignatureManager_FWD_DEFINED__
199 typedef interface IOpcDigitalSignatureManager IOpcDigitalSignatureManager;
200 #ifdef __cplusplus
201 interface IOpcDigitalSignatureManager;
202 #endif /* __cplusplus */
203 #endif
204 
205 #ifndef __IOpcSignaturePartReferenceSet_FWD_DEFINED__
206 #define __IOpcSignaturePartReferenceSet_FWD_DEFINED__
207 typedef interface IOpcSignaturePartReferenceSet IOpcSignaturePartReferenceSet;
208 #ifdef __cplusplus
209 interface IOpcSignaturePartReferenceSet;
210 #endif /* __cplusplus */
211 #endif
212 
213 #ifndef __IOpcRelationshipSelectorSet_FWD_DEFINED__
214 #define __IOpcRelationshipSelectorSet_FWD_DEFINED__
215 typedef interface IOpcRelationshipSelectorSet IOpcRelationshipSelectorSet;
216 #ifdef __cplusplus
217 interface IOpcRelationshipSelectorSet;
218 #endif /* __cplusplus */
219 #endif
220 
221 #ifndef __IOpcSignatureRelationshipReferenceSet_FWD_DEFINED__
222 #define __IOpcSignatureRelationshipReferenceSet_FWD_DEFINED__
223 typedef interface IOpcSignatureRelationshipReferenceSet IOpcSignatureRelationshipReferenceSet;
224 #ifdef __cplusplus
225 interface IOpcSignatureRelationshipReferenceSet;
226 #endif /* __cplusplus */
227 #endif
228 
229 #ifndef __IOpcSignatureReferenceSet_FWD_DEFINED__
230 #define __IOpcSignatureReferenceSet_FWD_DEFINED__
231 typedef interface IOpcSignatureReferenceSet IOpcSignatureReferenceSet;
232 #ifdef __cplusplus
233 interface IOpcSignatureReferenceSet;
234 #endif /* __cplusplus */
235 #endif
236 
237 #ifndef __IOpcSignatureCustomObjectSet_FWD_DEFINED__
238 #define __IOpcSignatureCustomObjectSet_FWD_DEFINED__
239 typedef interface IOpcSignatureCustomObjectSet IOpcSignatureCustomObjectSet;
240 #ifdef __cplusplus
241 interface IOpcSignatureCustomObjectSet;
242 #endif /* __cplusplus */
243 #endif
244 
245 #ifndef __IOpcDigitalSignature_FWD_DEFINED__
246 #define __IOpcDigitalSignature_FWD_DEFINED__
247 typedef interface IOpcDigitalSignature IOpcDigitalSignature;
248 #ifdef __cplusplus
249 interface IOpcDigitalSignature;
250 #endif /* __cplusplus */
251 #endif
252 
253 #ifndef __IOpcSigningOptions_FWD_DEFINED__
254 #define __IOpcSigningOptions_FWD_DEFINED__
255 typedef interface IOpcSigningOptions IOpcSigningOptions;
256 #ifdef __cplusplus
257 interface IOpcSigningOptions;
258 #endif /* __cplusplus */
259 #endif
260 
261 #ifndef __IOpcFactory_FWD_DEFINED__
262 #define __IOpcFactory_FWD_DEFINED__
263 typedef interface IOpcFactory IOpcFactory;
264 #ifdef __cplusplus
265 interface IOpcFactory;
266 #endif /* __cplusplus */
267 #endif
268 
269 #ifndef __OpcFactory_FWD_DEFINED__
270 #define __OpcFactory_FWD_DEFINED__
271 #ifdef __cplusplus
272 typedef class OpcFactory OpcFactory;
273 #else
274 typedef struct OpcFactory OpcFactory;
275 #endif /* defined __cplusplus */
276 #endif /* defined __OpcFactory_FWD_DEFINED__ */
277 
278 /* Headers for imported files */
279 
280 #include <oaidl.h>
281 #include <ocidl.h>
282 #include <urlmon.h>
283 #include <wincrypt.h>
284 
285 #ifdef __cplusplus
286 extern "C" {
287 #endif
288 
289 #include <winapifamily.h>
290 #if NTDDI_VERSION >= 0x06010000
291 #ifndef __IOpcUri_FWD_DEFINED__
292 #define __IOpcUri_FWD_DEFINED__
293 typedef interface IOpcUri IOpcUri;
294 #ifdef __cplusplus
295 interface IOpcUri;
296 #endif /* __cplusplus */
297 #endif
298 
299 #ifndef __IOpcPartUri_FWD_DEFINED__
300 #define __IOpcPartUri_FWD_DEFINED__
301 typedef interface IOpcPartUri IOpcPartUri;
302 #ifdef __cplusplus
303 interface IOpcPartUri;
304 #endif /* __cplusplus */
305 #endif
306 
307 /*****************************************************************************
308  * IOpcUri interface
309  */
310 #ifndef __IOpcUri_INTERFACE_DEFINED__
311 #define __IOpcUri_INTERFACE_DEFINED__
312 
313 DEFINE_GUID(IID_IOpcUri, 0xbc9c1b9b, 0xd62c, 0x49eb, 0xae,0xf0, 0x3b,0x4e,0x0b,0x28,0xeb,0xed);
314 #if defined(__cplusplus) && !defined(CINTERFACE)
315 MIDL_INTERFACE("bc9c1b9b-d62c-49eb-aef0-3b4e0b28ebed")
316 IOpcUri : public IUri
317 {
318     virtual HRESULT STDMETHODCALLTYPE GetRelationshipsPartUri(
319         IOpcPartUri **relationshipPartUri) = 0;
320 
321     virtual HRESULT STDMETHODCALLTYPE GetRelativeUri(
322         IOpcPartUri *targetPartUri,
323         IUri **relativeUri) = 0;
324 
325     virtual HRESULT STDMETHODCALLTYPE CombinePartUri(
326         IUri *relativeUri,
327         IOpcPartUri **combinedUri) = 0;
328 
329 };
330 #ifdef __CRT_UUID_DECL
331 __CRT_UUID_DECL(IOpcUri, 0xbc9c1b9b, 0xd62c, 0x49eb, 0xae,0xf0, 0x3b,0x4e,0x0b,0x28,0xeb,0xed)
332 #endif
333 #else
334 typedef struct IOpcUriVtbl {
335     BEGIN_INTERFACE
336 
337     /*** IUnknown methods ***/
338     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
339         IOpcUri *This,
340         REFIID riid,
341         void **ppvObject);
342 
343     ULONG (STDMETHODCALLTYPE *AddRef)(
344         IOpcUri *This);
345 
346     ULONG (STDMETHODCALLTYPE *Release)(
347         IOpcUri *This);
348 
349     /*** IUri methods ***/
350     HRESULT (STDMETHODCALLTYPE *GetPropertyBSTR)(
351         IOpcUri *This,
352         Uri_PROPERTY uriProp,
353         BSTR *pbstrProperty,
354         DWORD dwFlags);
355 
356     HRESULT (STDMETHODCALLTYPE *GetPropertyLength)(
357         IOpcUri *This,
358         Uri_PROPERTY uriProp,
359         DWORD *pcchProperty,
360         DWORD dwFlags);
361 
362     HRESULT (STDMETHODCALLTYPE *GetPropertyDWORD)(
363         IOpcUri *This,
364         Uri_PROPERTY uriProp,
365         DWORD *pdwProperty,
366         DWORD dwFlags);
367 
368     HRESULT (STDMETHODCALLTYPE *HasProperty)(
369         IOpcUri *This,
370         Uri_PROPERTY uriProp,
371         WINBOOL *pfHasProperty);
372 
373     HRESULT (STDMETHODCALLTYPE *GetAbsoluteUri)(
374         IOpcUri *This,
375         BSTR *pbstrAbsoluteUri);
376 
377     HRESULT (STDMETHODCALLTYPE *GetAuthority)(
378         IOpcUri *This,
379         BSTR *pbstrAuthority);
380 
381     HRESULT (STDMETHODCALLTYPE *GetDisplayUri)(
382         IOpcUri *This,
383         BSTR *pbstrDisplayString);
384 
385     HRESULT (STDMETHODCALLTYPE *GetDomain)(
386         IOpcUri *This,
387         BSTR *pbstrDomain);
388 
389     HRESULT (STDMETHODCALLTYPE *GetExtension)(
390         IOpcUri *This,
391         BSTR *pbstrExtension);
392 
393     HRESULT (STDMETHODCALLTYPE *GetFragment)(
394         IOpcUri *This,
395         BSTR *pbstrFragment);
396 
397     HRESULT (STDMETHODCALLTYPE *GetHost)(
398         IOpcUri *This,
399         BSTR *pbstrHost);
400 
401     HRESULT (STDMETHODCALLTYPE *GetPassword)(
402         IOpcUri *This,
403         BSTR *pbstrPassword);
404 
405     HRESULT (STDMETHODCALLTYPE *GetPath)(
406         IOpcUri *This,
407         BSTR *pbstrPath);
408 
409     HRESULT (STDMETHODCALLTYPE *GetPathAndQuery)(
410         IOpcUri *This,
411         BSTR *pbstrPathAndQuery);
412 
413     HRESULT (STDMETHODCALLTYPE *GetQuery)(
414         IOpcUri *This,
415         BSTR *pbstrQuery);
416 
417     HRESULT (STDMETHODCALLTYPE *GetRawUri)(
418         IOpcUri *This,
419         BSTR *pbstrRawUri);
420 
421     HRESULT (STDMETHODCALLTYPE *GetSchemeName)(
422         IOpcUri *This,
423         BSTR *pbstrSchemeName);
424 
425     HRESULT (STDMETHODCALLTYPE *GetUserInfo)(
426         IOpcUri *This,
427         BSTR *pbstrUserInfo);
428 
429     HRESULT (STDMETHODCALLTYPE *GetUserName)(
430         IOpcUri *This,
431         BSTR *pbstrUserName);
432 
433     HRESULT (STDMETHODCALLTYPE *GetHostType)(
434         IOpcUri *This,
435         DWORD *pdwHostType);
436 
437     HRESULT (STDMETHODCALLTYPE *GetPort)(
438         IOpcUri *This,
439         DWORD *pdwPort);
440 
441     HRESULT (STDMETHODCALLTYPE *GetScheme)(
442         IOpcUri *This,
443         DWORD *pdwScheme);
444 
445     HRESULT (STDMETHODCALLTYPE *GetZone)(
446         IOpcUri *This,
447         DWORD *pdwZone);
448 
449     HRESULT (STDMETHODCALLTYPE *GetProperties)(
450         IOpcUri *This,
451         LPDWORD pdwFlags);
452 
453     HRESULT (STDMETHODCALLTYPE *IsEqual)(
454         IOpcUri *This,
455         IUri *pUri,
456         WINBOOL *pfEqual);
457 
458     /*** IOpcUri methods ***/
459     HRESULT (STDMETHODCALLTYPE *GetRelationshipsPartUri)(
460         IOpcUri *This,
461         IOpcPartUri **relationshipPartUri);
462 
463     HRESULT (STDMETHODCALLTYPE *GetRelativeUri)(
464         IOpcUri *This,
465         IOpcPartUri *targetPartUri,
466         IUri **relativeUri);
467 
468     HRESULT (STDMETHODCALLTYPE *CombinePartUri)(
469         IOpcUri *This,
470         IUri *relativeUri,
471         IOpcPartUri **combinedUri);
472 
473     END_INTERFACE
474 } IOpcUriVtbl;
475 
476 interface IOpcUri {
477     CONST_VTBL IOpcUriVtbl* lpVtbl;
478 };
479 
480 #ifdef COBJMACROS
481 #ifndef WIDL_C_INLINE_WRAPPERS
482 /*** IUnknown methods ***/
483 #define IOpcUri_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
484 #define IOpcUri_AddRef(This) (This)->lpVtbl->AddRef(This)
485 #define IOpcUri_Release(This) (This)->lpVtbl->Release(This)
486 /*** IUri methods ***/
487 #define IOpcUri_GetPropertyBSTR(This,uriProp,pbstrProperty,dwFlags) (This)->lpVtbl->GetPropertyBSTR(This,uriProp,pbstrProperty,dwFlags)
488 #define IOpcUri_GetPropertyLength(This,uriProp,pcchProperty,dwFlags) (This)->lpVtbl->GetPropertyLength(This,uriProp,pcchProperty,dwFlags)
489 #define IOpcUri_GetPropertyDWORD(This,uriProp,pdwProperty,dwFlags) (This)->lpVtbl->GetPropertyDWORD(This,uriProp,pdwProperty,dwFlags)
490 #define IOpcUri_HasProperty(This,uriProp,pfHasProperty) (This)->lpVtbl->HasProperty(This,uriProp,pfHasProperty)
491 #define IOpcUri_GetAbsoluteUri(This,pbstrAbsoluteUri) (This)->lpVtbl->GetAbsoluteUri(This,pbstrAbsoluteUri)
492 #define IOpcUri_GetAuthority(This,pbstrAuthority) (This)->lpVtbl->GetAuthority(This,pbstrAuthority)
493 #define IOpcUri_GetDisplayUri(This,pbstrDisplayString) (This)->lpVtbl->GetDisplayUri(This,pbstrDisplayString)
494 #define IOpcUri_GetDomain(This,pbstrDomain) (This)->lpVtbl->GetDomain(This,pbstrDomain)
495 #define IOpcUri_GetExtension(This,pbstrExtension) (This)->lpVtbl->GetExtension(This,pbstrExtension)
496 #define IOpcUri_GetFragment(This,pbstrFragment) (This)->lpVtbl->GetFragment(This,pbstrFragment)
497 #define IOpcUri_GetHost(This,pbstrHost) (This)->lpVtbl->GetHost(This,pbstrHost)
498 #define IOpcUri_GetPassword(This,pbstrPassword) (This)->lpVtbl->GetPassword(This,pbstrPassword)
499 #define IOpcUri_GetPath(This,pbstrPath) (This)->lpVtbl->GetPath(This,pbstrPath)
500 #define IOpcUri_GetPathAndQuery(This,pbstrPathAndQuery) (This)->lpVtbl->GetPathAndQuery(This,pbstrPathAndQuery)
501 #define IOpcUri_GetQuery(This,pbstrQuery) (This)->lpVtbl->GetQuery(This,pbstrQuery)
502 #define IOpcUri_GetRawUri(This,pbstrRawUri) (This)->lpVtbl->GetRawUri(This,pbstrRawUri)
503 #define IOpcUri_GetSchemeName(This,pbstrSchemeName) (This)->lpVtbl->GetSchemeName(This,pbstrSchemeName)
504 #define IOpcUri_GetUserInfo(This,pbstrUserInfo) (This)->lpVtbl->GetUserInfo(This,pbstrUserInfo)
505 #define IOpcUri_GetUserName(This,pbstrUserName) (This)->lpVtbl->GetUserName(This,pbstrUserName)
506 #define IOpcUri_GetHostType(This,pdwHostType) (This)->lpVtbl->GetHostType(This,pdwHostType)
507 #define IOpcUri_GetPort(This,pdwPort) (This)->lpVtbl->GetPort(This,pdwPort)
508 #define IOpcUri_GetScheme(This,pdwScheme) (This)->lpVtbl->GetScheme(This,pdwScheme)
509 #define IOpcUri_GetZone(This,pdwZone) (This)->lpVtbl->GetZone(This,pdwZone)
510 #define IOpcUri_GetProperties(This,pdwFlags) (This)->lpVtbl->GetProperties(This,pdwFlags)
511 #define IOpcUri_IsEqual(This,pUri,pfEqual) (This)->lpVtbl->IsEqual(This,pUri,pfEqual)
512 /*** IOpcUri methods ***/
513 #define IOpcUri_GetRelationshipsPartUri(This,relationshipPartUri) (This)->lpVtbl->GetRelationshipsPartUri(This,relationshipPartUri)
514 #define IOpcUri_GetRelativeUri(This,targetPartUri,relativeUri) (This)->lpVtbl->GetRelativeUri(This,targetPartUri,relativeUri)
515 #define IOpcUri_CombinePartUri(This,relativeUri,combinedUri) (This)->lpVtbl->CombinePartUri(This,relativeUri,combinedUri)
516 #else
517 /*** IUnknown methods ***/
518 static FORCEINLINE HRESULT IOpcUri_QueryInterface(IOpcUri* This,REFIID riid,void **ppvObject) {
519     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
520 }
521 static FORCEINLINE ULONG IOpcUri_AddRef(IOpcUri* This) {
522     return This->lpVtbl->AddRef(This);
523 }
524 static FORCEINLINE ULONG IOpcUri_Release(IOpcUri* This) {
525     return This->lpVtbl->Release(This);
526 }
527 /*** IUri methods ***/
528 static FORCEINLINE HRESULT IOpcUri_GetPropertyBSTR(IOpcUri* This,Uri_PROPERTY uriProp,BSTR *pbstrProperty,DWORD dwFlags) {
529     return This->lpVtbl->GetPropertyBSTR(This,uriProp,pbstrProperty,dwFlags);
530 }
531 static FORCEINLINE HRESULT IOpcUri_GetPropertyLength(IOpcUri* This,Uri_PROPERTY uriProp,DWORD *pcchProperty,DWORD dwFlags) {
532     return This->lpVtbl->GetPropertyLength(This,uriProp,pcchProperty,dwFlags);
533 }
534 static FORCEINLINE HRESULT IOpcUri_GetPropertyDWORD(IOpcUri* This,Uri_PROPERTY uriProp,DWORD *pdwProperty,DWORD dwFlags) {
535     return This->lpVtbl->GetPropertyDWORD(This,uriProp,pdwProperty,dwFlags);
536 }
537 static FORCEINLINE HRESULT IOpcUri_HasProperty(IOpcUri* This,Uri_PROPERTY uriProp,WINBOOL *pfHasProperty) {
538     return This->lpVtbl->HasProperty(This,uriProp,pfHasProperty);
539 }
540 static FORCEINLINE HRESULT IOpcUri_GetAbsoluteUri(IOpcUri* This,BSTR *pbstrAbsoluteUri) {
541     return This->lpVtbl->GetAbsoluteUri(This,pbstrAbsoluteUri);
542 }
543 static FORCEINLINE HRESULT IOpcUri_GetAuthority(IOpcUri* This,BSTR *pbstrAuthority) {
544     return This->lpVtbl->GetAuthority(This,pbstrAuthority);
545 }
546 static FORCEINLINE HRESULT IOpcUri_GetDisplayUri(IOpcUri* This,BSTR *pbstrDisplayString) {
547     return This->lpVtbl->GetDisplayUri(This,pbstrDisplayString);
548 }
549 static FORCEINLINE HRESULT IOpcUri_GetDomain(IOpcUri* This,BSTR *pbstrDomain) {
550     return This->lpVtbl->GetDomain(This,pbstrDomain);
551 }
552 static FORCEINLINE HRESULT IOpcUri_GetExtension(IOpcUri* This,BSTR *pbstrExtension) {
553     return This->lpVtbl->GetExtension(This,pbstrExtension);
554 }
555 static FORCEINLINE HRESULT IOpcUri_GetFragment(IOpcUri* This,BSTR *pbstrFragment) {
556     return This->lpVtbl->GetFragment(This,pbstrFragment);
557 }
558 static FORCEINLINE HRESULT IOpcUri_GetHost(IOpcUri* This,BSTR *pbstrHost) {
559     return This->lpVtbl->GetHost(This,pbstrHost);
560 }
561 static FORCEINLINE HRESULT IOpcUri_GetPassword(IOpcUri* This,BSTR *pbstrPassword) {
562     return This->lpVtbl->GetPassword(This,pbstrPassword);
563 }
564 static FORCEINLINE HRESULT IOpcUri_GetPath(IOpcUri* This,BSTR *pbstrPath) {
565     return This->lpVtbl->GetPath(This,pbstrPath);
566 }
567 static FORCEINLINE HRESULT IOpcUri_GetPathAndQuery(IOpcUri* This,BSTR *pbstrPathAndQuery) {
568     return This->lpVtbl->GetPathAndQuery(This,pbstrPathAndQuery);
569 }
570 static FORCEINLINE HRESULT IOpcUri_GetQuery(IOpcUri* This,BSTR *pbstrQuery) {
571     return This->lpVtbl->GetQuery(This,pbstrQuery);
572 }
573 static FORCEINLINE HRESULT IOpcUri_GetRawUri(IOpcUri* This,BSTR *pbstrRawUri) {
574     return This->lpVtbl->GetRawUri(This,pbstrRawUri);
575 }
576 static FORCEINLINE HRESULT IOpcUri_GetSchemeName(IOpcUri* This,BSTR *pbstrSchemeName) {
577     return This->lpVtbl->GetSchemeName(This,pbstrSchemeName);
578 }
579 static FORCEINLINE HRESULT IOpcUri_GetUserInfo(IOpcUri* This,BSTR *pbstrUserInfo) {
580     return This->lpVtbl->GetUserInfo(This,pbstrUserInfo);
581 }
582 static FORCEINLINE HRESULT IOpcUri_GetUserName(IOpcUri* This,BSTR *pbstrUserName) {
583     return This->lpVtbl->GetUserName(This,pbstrUserName);
584 }
585 static FORCEINLINE HRESULT IOpcUri_GetHostType(IOpcUri* This,DWORD *pdwHostType) {
586     return This->lpVtbl->GetHostType(This,pdwHostType);
587 }
588 static FORCEINLINE HRESULT IOpcUri_GetPort(IOpcUri* This,DWORD *pdwPort) {
589     return This->lpVtbl->GetPort(This,pdwPort);
590 }
591 static FORCEINLINE HRESULT IOpcUri_GetScheme(IOpcUri* This,DWORD *pdwScheme) {
592     return This->lpVtbl->GetScheme(This,pdwScheme);
593 }
594 static FORCEINLINE HRESULT IOpcUri_GetZone(IOpcUri* This,DWORD *pdwZone) {
595     return This->lpVtbl->GetZone(This,pdwZone);
596 }
597 static FORCEINLINE HRESULT IOpcUri_GetProperties(IOpcUri* This,LPDWORD pdwFlags) {
598     return This->lpVtbl->GetProperties(This,pdwFlags);
599 }
600 static FORCEINLINE HRESULT IOpcUri_IsEqual(IOpcUri* This,IUri *pUri,WINBOOL *pfEqual) {
601     return This->lpVtbl->IsEqual(This,pUri,pfEqual);
602 }
603 /*** IOpcUri methods ***/
604 static FORCEINLINE HRESULT IOpcUri_GetRelationshipsPartUri(IOpcUri* This,IOpcPartUri **relationshipPartUri) {
605     return This->lpVtbl->GetRelationshipsPartUri(This,relationshipPartUri);
606 }
607 static FORCEINLINE HRESULT IOpcUri_GetRelativeUri(IOpcUri* This,IOpcPartUri *targetPartUri,IUri **relativeUri) {
608     return This->lpVtbl->GetRelativeUri(This,targetPartUri,relativeUri);
609 }
610 static FORCEINLINE HRESULT IOpcUri_CombinePartUri(IOpcUri* This,IUri *relativeUri,IOpcPartUri **combinedUri) {
611     return This->lpVtbl->CombinePartUri(This,relativeUri,combinedUri);
612 }
613 #endif
614 #endif
615 
616 #endif
617 
618 
619 #endif  /* __IOpcUri_INTERFACE_DEFINED__ */
620 
621 /*****************************************************************************
622  * IOpcPartUri interface
623  */
624 #ifndef __IOpcPartUri_INTERFACE_DEFINED__
625 #define __IOpcPartUri_INTERFACE_DEFINED__
626 
627 DEFINE_GUID(IID_IOpcPartUri, 0x7d3babe7, 0x88b2, 0x46ba, 0x85,0xcb, 0x42,0x03,0xcb,0x01,0x6c,0x87);
628 #if defined(__cplusplus) && !defined(CINTERFACE)
629 MIDL_INTERFACE("7d3babe7-88b2-46ba-85cb-4203cb016c87")
630 IOpcPartUri : public IOpcUri
631 {
632     virtual HRESULT STDMETHODCALLTYPE ComparePartUri(
633         IOpcPartUri *partUri,
634         INT32 *comparisonResult) = 0;
635 
636     virtual HRESULT STDMETHODCALLTYPE GetSourceUri(
637         IOpcUri **sourceUri) = 0;
638 
639     virtual HRESULT STDMETHODCALLTYPE IsRelationshipsPartUri(
640         WINBOOL *isRelationshipUri) = 0;
641 
642 };
643 #ifdef __CRT_UUID_DECL
644 __CRT_UUID_DECL(IOpcPartUri, 0x7d3babe7, 0x88b2, 0x46ba, 0x85,0xcb, 0x42,0x03,0xcb,0x01,0x6c,0x87)
645 #endif
646 #else
647 typedef struct IOpcPartUriVtbl {
648     BEGIN_INTERFACE
649 
650     /*** IUnknown methods ***/
651     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
652         IOpcPartUri *This,
653         REFIID riid,
654         void **ppvObject);
655 
656     ULONG (STDMETHODCALLTYPE *AddRef)(
657         IOpcPartUri *This);
658 
659     ULONG (STDMETHODCALLTYPE *Release)(
660         IOpcPartUri *This);
661 
662     /*** IUri methods ***/
663     HRESULT (STDMETHODCALLTYPE *GetPropertyBSTR)(
664         IOpcPartUri *This,
665         Uri_PROPERTY uriProp,
666         BSTR *pbstrProperty,
667         DWORD dwFlags);
668 
669     HRESULT (STDMETHODCALLTYPE *GetPropertyLength)(
670         IOpcPartUri *This,
671         Uri_PROPERTY uriProp,
672         DWORD *pcchProperty,
673         DWORD dwFlags);
674 
675     HRESULT (STDMETHODCALLTYPE *GetPropertyDWORD)(
676         IOpcPartUri *This,
677         Uri_PROPERTY uriProp,
678         DWORD *pdwProperty,
679         DWORD dwFlags);
680 
681     HRESULT (STDMETHODCALLTYPE *HasProperty)(
682         IOpcPartUri *This,
683         Uri_PROPERTY uriProp,
684         WINBOOL *pfHasProperty);
685 
686     HRESULT (STDMETHODCALLTYPE *GetAbsoluteUri)(
687         IOpcPartUri *This,
688         BSTR *pbstrAbsoluteUri);
689 
690     HRESULT (STDMETHODCALLTYPE *GetAuthority)(
691         IOpcPartUri *This,
692         BSTR *pbstrAuthority);
693 
694     HRESULT (STDMETHODCALLTYPE *GetDisplayUri)(
695         IOpcPartUri *This,
696         BSTR *pbstrDisplayString);
697 
698     HRESULT (STDMETHODCALLTYPE *GetDomain)(
699         IOpcPartUri *This,
700         BSTR *pbstrDomain);
701 
702     HRESULT (STDMETHODCALLTYPE *GetExtension)(
703         IOpcPartUri *This,
704         BSTR *pbstrExtension);
705 
706     HRESULT (STDMETHODCALLTYPE *GetFragment)(
707         IOpcPartUri *This,
708         BSTR *pbstrFragment);
709 
710     HRESULT (STDMETHODCALLTYPE *GetHost)(
711         IOpcPartUri *This,
712         BSTR *pbstrHost);
713 
714     HRESULT (STDMETHODCALLTYPE *GetPassword)(
715         IOpcPartUri *This,
716         BSTR *pbstrPassword);
717 
718     HRESULT (STDMETHODCALLTYPE *GetPath)(
719         IOpcPartUri *This,
720         BSTR *pbstrPath);
721 
722     HRESULT (STDMETHODCALLTYPE *GetPathAndQuery)(
723         IOpcPartUri *This,
724         BSTR *pbstrPathAndQuery);
725 
726     HRESULT (STDMETHODCALLTYPE *GetQuery)(
727         IOpcPartUri *This,
728         BSTR *pbstrQuery);
729 
730     HRESULT (STDMETHODCALLTYPE *GetRawUri)(
731         IOpcPartUri *This,
732         BSTR *pbstrRawUri);
733 
734     HRESULT (STDMETHODCALLTYPE *GetSchemeName)(
735         IOpcPartUri *This,
736         BSTR *pbstrSchemeName);
737 
738     HRESULT (STDMETHODCALLTYPE *GetUserInfo)(
739         IOpcPartUri *This,
740         BSTR *pbstrUserInfo);
741 
742     HRESULT (STDMETHODCALLTYPE *GetUserName)(
743         IOpcPartUri *This,
744         BSTR *pbstrUserName);
745 
746     HRESULT (STDMETHODCALLTYPE *GetHostType)(
747         IOpcPartUri *This,
748         DWORD *pdwHostType);
749 
750     HRESULT (STDMETHODCALLTYPE *GetPort)(
751         IOpcPartUri *This,
752         DWORD *pdwPort);
753 
754     HRESULT (STDMETHODCALLTYPE *GetScheme)(
755         IOpcPartUri *This,
756         DWORD *pdwScheme);
757 
758     HRESULT (STDMETHODCALLTYPE *GetZone)(
759         IOpcPartUri *This,
760         DWORD *pdwZone);
761 
762     HRESULT (STDMETHODCALLTYPE *GetProperties)(
763         IOpcPartUri *This,
764         LPDWORD pdwFlags);
765 
766     HRESULT (STDMETHODCALLTYPE *IsEqual)(
767         IOpcPartUri *This,
768         IUri *pUri,
769         WINBOOL *pfEqual);
770 
771     /*** IOpcUri methods ***/
772     HRESULT (STDMETHODCALLTYPE *GetRelationshipsPartUri)(
773         IOpcPartUri *This,
774         IOpcPartUri **relationshipPartUri);
775 
776     HRESULT (STDMETHODCALLTYPE *GetRelativeUri)(
777         IOpcPartUri *This,
778         IOpcPartUri *targetPartUri,
779         IUri **relativeUri);
780 
781     HRESULT (STDMETHODCALLTYPE *CombinePartUri)(
782         IOpcPartUri *This,
783         IUri *relativeUri,
784         IOpcPartUri **combinedUri);
785 
786     /*** IOpcPartUri methods ***/
787     HRESULT (STDMETHODCALLTYPE *ComparePartUri)(
788         IOpcPartUri *This,
789         IOpcPartUri *partUri,
790         INT32 *comparisonResult);
791 
792     HRESULT (STDMETHODCALLTYPE *GetSourceUri)(
793         IOpcPartUri *This,
794         IOpcUri **sourceUri);
795 
796     HRESULT (STDMETHODCALLTYPE *IsRelationshipsPartUri)(
797         IOpcPartUri *This,
798         WINBOOL *isRelationshipUri);
799 
800     END_INTERFACE
801 } IOpcPartUriVtbl;
802 
803 interface IOpcPartUri {
804     CONST_VTBL IOpcPartUriVtbl* lpVtbl;
805 };
806 
807 #ifdef COBJMACROS
808 #ifndef WIDL_C_INLINE_WRAPPERS
809 /*** IUnknown methods ***/
810 #define IOpcPartUri_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
811 #define IOpcPartUri_AddRef(This) (This)->lpVtbl->AddRef(This)
812 #define IOpcPartUri_Release(This) (This)->lpVtbl->Release(This)
813 /*** IUri methods ***/
814 #define IOpcPartUri_GetPropertyBSTR(This,uriProp,pbstrProperty,dwFlags) (This)->lpVtbl->GetPropertyBSTR(This,uriProp,pbstrProperty,dwFlags)
815 #define IOpcPartUri_GetPropertyLength(This,uriProp,pcchProperty,dwFlags) (This)->lpVtbl->GetPropertyLength(This,uriProp,pcchProperty,dwFlags)
816 #define IOpcPartUri_GetPropertyDWORD(This,uriProp,pdwProperty,dwFlags) (This)->lpVtbl->GetPropertyDWORD(This,uriProp,pdwProperty,dwFlags)
817 #define IOpcPartUri_HasProperty(This,uriProp,pfHasProperty) (This)->lpVtbl->HasProperty(This,uriProp,pfHasProperty)
818 #define IOpcPartUri_GetAbsoluteUri(This,pbstrAbsoluteUri) (This)->lpVtbl->GetAbsoluteUri(This,pbstrAbsoluteUri)
819 #define IOpcPartUri_GetAuthority(This,pbstrAuthority) (This)->lpVtbl->GetAuthority(This,pbstrAuthority)
820 #define IOpcPartUri_GetDisplayUri(This,pbstrDisplayString) (This)->lpVtbl->GetDisplayUri(This,pbstrDisplayString)
821 #define IOpcPartUri_GetDomain(This,pbstrDomain) (This)->lpVtbl->GetDomain(This,pbstrDomain)
822 #define IOpcPartUri_GetExtension(This,pbstrExtension) (This)->lpVtbl->GetExtension(This,pbstrExtension)
823 #define IOpcPartUri_GetFragment(This,pbstrFragment) (This)->lpVtbl->GetFragment(This,pbstrFragment)
824 #define IOpcPartUri_GetHost(This,pbstrHost) (This)->lpVtbl->GetHost(This,pbstrHost)
825 #define IOpcPartUri_GetPassword(This,pbstrPassword) (This)->lpVtbl->GetPassword(This,pbstrPassword)
826 #define IOpcPartUri_GetPath(This,pbstrPath) (This)->lpVtbl->GetPath(This,pbstrPath)
827 #define IOpcPartUri_GetPathAndQuery(This,pbstrPathAndQuery) (This)->lpVtbl->GetPathAndQuery(This,pbstrPathAndQuery)
828 #define IOpcPartUri_GetQuery(This,pbstrQuery) (This)->lpVtbl->GetQuery(This,pbstrQuery)
829 #define IOpcPartUri_GetRawUri(This,pbstrRawUri) (This)->lpVtbl->GetRawUri(This,pbstrRawUri)
830 #define IOpcPartUri_GetSchemeName(This,pbstrSchemeName) (This)->lpVtbl->GetSchemeName(This,pbstrSchemeName)
831 #define IOpcPartUri_GetUserInfo(This,pbstrUserInfo) (This)->lpVtbl->GetUserInfo(This,pbstrUserInfo)
832 #define IOpcPartUri_GetUserName(This,pbstrUserName) (This)->lpVtbl->GetUserName(This,pbstrUserName)
833 #define IOpcPartUri_GetHostType(This,pdwHostType) (This)->lpVtbl->GetHostType(This,pdwHostType)
834 #define IOpcPartUri_GetPort(This,pdwPort) (This)->lpVtbl->GetPort(This,pdwPort)
835 #define IOpcPartUri_GetScheme(This,pdwScheme) (This)->lpVtbl->GetScheme(This,pdwScheme)
836 #define IOpcPartUri_GetZone(This,pdwZone) (This)->lpVtbl->GetZone(This,pdwZone)
837 #define IOpcPartUri_GetProperties(This,pdwFlags) (This)->lpVtbl->GetProperties(This,pdwFlags)
838 #define IOpcPartUri_IsEqual(This,pUri,pfEqual) (This)->lpVtbl->IsEqual(This,pUri,pfEqual)
839 /*** IOpcUri methods ***/
840 #define IOpcPartUri_GetRelationshipsPartUri(This,relationshipPartUri) (This)->lpVtbl->GetRelationshipsPartUri(This,relationshipPartUri)
841 #define IOpcPartUri_GetRelativeUri(This,targetPartUri,relativeUri) (This)->lpVtbl->GetRelativeUri(This,targetPartUri,relativeUri)
842 #define IOpcPartUri_CombinePartUri(This,relativeUri,combinedUri) (This)->lpVtbl->CombinePartUri(This,relativeUri,combinedUri)
843 /*** IOpcPartUri methods ***/
844 #define IOpcPartUri_ComparePartUri(This,partUri,comparisonResult) (This)->lpVtbl->ComparePartUri(This,partUri,comparisonResult)
845 #define IOpcPartUri_GetSourceUri(This,sourceUri) (This)->lpVtbl->GetSourceUri(This,sourceUri)
846 #define IOpcPartUri_IsRelationshipsPartUri(This,isRelationshipUri) (This)->lpVtbl->IsRelationshipsPartUri(This,isRelationshipUri)
847 #else
848 /*** IUnknown methods ***/
849 static FORCEINLINE HRESULT IOpcPartUri_QueryInterface(IOpcPartUri* This,REFIID riid,void **ppvObject) {
850     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
851 }
852 static FORCEINLINE ULONG IOpcPartUri_AddRef(IOpcPartUri* This) {
853     return This->lpVtbl->AddRef(This);
854 }
855 static FORCEINLINE ULONG IOpcPartUri_Release(IOpcPartUri* This) {
856     return This->lpVtbl->Release(This);
857 }
858 /*** IUri methods ***/
859 static FORCEINLINE HRESULT IOpcPartUri_GetPropertyBSTR(IOpcPartUri* This,Uri_PROPERTY uriProp,BSTR *pbstrProperty,DWORD dwFlags) {
860     return This->lpVtbl->GetPropertyBSTR(This,uriProp,pbstrProperty,dwFlags);
861 }
862 static FORCEINLINE HRESULT IOpcPartUri_GetPropertyLength(IOpcPartUri* This,Uri_PROPERTY uriProp,DWORD *pcchProperty,DWORD dwFlags) {
863     return This->lpVtbl->GetPropertyLength(This,uriProp,pcchProperty,dwFlags);
864 }
865 static FORCEINLINE HRESULT IOpcPartUri_GetPropertyDWORD(IOpcPartUri* This,Uri_PROPERTY uriProp,DWORD *pdwProperty,DWORD dwFlags) {
866     return This->lpVtbl->GetPropertyDWORD(This,uriProp,pdwProperty,dwFlags);
867 }
868 static FORCEINLINE HRESULT IOpcPartUri_HasProperty(IOpcPartUri* This,Uri_PROPERTY uriProp,WINBOOL *pfHasProperty) {
869     return This->lpVtbl->HasProperty(This,uriProp,pfHasProperty);
870 }
871 static FORCEINLINE HRESULT IOpcPartUri_GetAbsoluteUri(IOpcPartUri* This,BSTR *pbstrAbsoluteUri) {
872     return This->lpVtbl->GetAbsoluteUri(This,pbstrAbsoluteUri);
873 }
874 static FORCEINLINE HRESULT IOpcPartUri_GetAuthority(IOpcPartUri* This,BSTR *pbstrAuthority) {
875     return This->lpVtbl->GetAuthority(This,pbstrAuthority);
876 }
877 static FORCEINLINE HRESULT IOpcPartUri_GetDisplayUri(IOpcPartUri* This,BSTR *pbstrDisplayString) {
878     return This->lpVtbl->GetDisplayUri(This,pbstrDisplayString);
879 }
880 static FORCEINLINE HRESULT IOpcPartUri_GetDomain(IOpcPartUri* This,BSTR *pbstrDomain) {
881     return This->lpVtbl->GetDomain(This,pbstrDomain);
882 }
883 static FORCEINLINE HRESULT IOpcPartUri_GetExtension(IOpcPartUri* This,BSTR *pbstrExtension) {
884     return This->lpVtbl->GetExtension(This,pbstrExtension);
885 }
886 static FORCEINLINE HRESULT IOpcPartUri_GetFragment(IOpcPartUri* This,BSTR *pbstrFragment) {
887     return This->lpVtbl->GetFragment(This,pbstrFragment);
888 }
889 static FORCEINLINE HRESULT IOpcPartUri_GetHost(IOpcPartUri* This,BSTR *pbstrHost) {
890     return This->lpVtbl->GetHost(This,pbstrHost);
891 }
892 static FORCEINLINE HRESULT IOpcPartUri_GetPassword(IOpcPartUri* This,BSTR *pbstrPassword) {
893     return This->lpVtbl->GetPassword(This,pbstrPassword);
894 }
895 static FORCEINLINE HRESULT IOpcPartUri_GetPath(IOpcPartUri* This,BSTR *pbstrPath) {
896     return This->lpVtbl->GetPath(This,pbstrPath);
897 }
898 static FORCEINLINE HRESULT IOpcPartUri_GetPathAndQuery(IOpcPartUri* This,BSTR *pbstrPathAndQuery) {
899     return This->lpVtbl->GetPathAndQuery(This,pbstrPathAndQuery);
900 }
901 static FORCEINLINE HRESULT IOpcPartUri_GetQuery(IOpcPartUri* This,BSTR *pbstrQuery) {
902     return This->lpVtbl->GetQuery(This,pbstrQuery);
903 }
904 static FORCEINLINE HRESULT IOpcPartUri_GetRawUri(IOpcPartUri* This,BSTR *pbstrRawUri) {
905     return This->lpVtbl->GetRawUri(This,pbstrRawUri);
906 }
907 static FORCEINLINE HRESULT IOpcPartUri_GetSchemeName(IOpcPartUri* This,BSTR *pbstrSchemeName) {
908     return This->lpVtbl->GetSchemeName(This,pbstrSchemeName);
909 }
910 static FORCEINLINE HRESULT IOpcPartUri_GetUserInfo(IOpcPartUri* This,BSTR *pbstrUserInfo) {
911     return This->lpVtbl->GetUserInfo(This,pbstrUserInfo);
912 }
913 static FORCEINLINE HRESULT IOpcPartUri_GetUserName(IOpcPartUri* This,BSTR *pbstrUserName) {
914     return This->lpVtbl->GetUserName(This,pbstrUserName);
915 }
916 static FORCEINLINE HRESULT IOpcPartUri_GetHostType(IOpcPartUri* This,DWORD *pdwHostType) {
917     return This->lpVtbl->GetHostType(This,pdwHostType);
918 }
919 static FORCEINLINE HRESULT IOpcPartUri_GetPort(IOpcPartUri* This,DWORD *pdwPort) {
920     return This->lpVtbl->GetPort(This,pdwPort);
921 }
922 static FORCEINLINE HRESULT IOpcPartUri_GetScheme(IOpcPartUri* This,DWORD *pdwScheme) {
923     return This->lpVtbl->GetScheme(This,pdwScheme);
924 }
925 static FORCEINLINE HRESULT IOpcPartUri_GetZone(IOpcPartUri* This,DWORD *pdwZone) {
926     return This->lpVtbl->GetZone(This,pdwZone);
927 }
928 static FORCEINLINE HRESULT IOpcPartUri_GetProperties(IOpcPartUri* This,LPDWORD pdwFlags) {
929     return This->lpVtbl->GetProperties(This,pdwFlags);
930 }
931 static FORCEINLINE HRESULT IOpcPartUri_IsEqual(IOpcPartUri* This,IUri *pUri,WINBOOL *pfEqual) {
932     return This->lpVtbl->IsEqual(This,pUri,pfEqual);
933 }
934 /*** IOpcUri methods ***/
935 static FORCEINLINE HRESULT IOpcPartUri_GetRelationshipsPartUri(IOpcPartUri* This,IOpcPartUri **relationshipPartUri) {
936     return This->lpVtbl->GetRelationshipsPartUri(This,relationshipPartUri);
937 }
938 static FORCEINLINE HRESULT IOpcPartUri_GetRelativeUri(IOpcPartUri* This,IOpcPartUri *targetPartUri,IUri **relativeUri) {
939     return This->lpVtbl->GetRelativeUri(This,targetPartUri,relativeUri);
940 }
941 static FORCEINLINE HRESULT IOpcPartUri_CombinePartUri(IOpcPartUri* This,IUri *relativeUri,IOpcPartUri **combinedUri) {
942     return This->lpVtbl->CombinePartUri(This,relativeUri,combinedUri);
943 }
944 /*** IOpcPartUri methods ***/
945 static FORCEINLINE HRESULT IOpcPartUri_ComparePartUri(IOpcPartUri* This,IOpcPartUri *partUri,INT32 *comparisonResult) {
946     return This->lpVtbl->ComparePartUri(This,partUri,comparisonResult);
947 }
948 static FORCEINLINE HRESULT IOpcPartUri_GetSourceUri(IOpcPartUri* This,IOpcUri **sourceUri) {
949     return This->lpVtbl->GetSourceUri(This,sourceUri);
950 }
951 static FORCEINLINE HRESULT IOpcPartUri_IsRelationshipsPartUri(IOpcPartUri* This,WINBOOL *isRelationshipUri) {
952     return This->lpVtbl->IsRelationshipsPartUri(This,isRelationshipUri);
953 }
954 #endif
955 #endif
956 
957 #endif
958 
959 
960 #endif  /* __IOpcPartUri_INTERFACE_DEFINED__ */
961 
962 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
963 #define IS_OPC_CONFORMANCE_ERROR(x) (((x) & 0x1ffff000) == (0x0000 + (FACILITY_OPC << 16)))
964 #define IS_ZIP_CONFORMANCE_ERROR(x) (((x) & 0x1ffff000) == (0x1000 + (FACILITY_OPC << 16)))
965 #define OPC_E_NONCONFORMING_URI MAKE_HRESULT(1, FACILITY_OPC, 0x1)
966 #define OPC_E_RELATIVE_URI_REQUIRED MAKE_HRESULT(1, FACILITY_OPC, 0x2)
967 #define OPC_E_RELATIONSHIP_URI_REQUIRED MAKE_HRESULT(1, FACILITY_OPC, 0x3)
968 #define OPC_E_PART_CANNOT_BE_DIRECTORY MAKE_HRESULT(1, FACILITY_OPC, 0x4)
969 #define OPC_E_UNEXPECTED_CONTENT_TYPE MAKE_HRESULT(1, FACILITY_OPC, 0x5)
970 #define OPC_E_INVALID_CONTENT_TYPE_XML MAKE_HRESULT(1, FACILITY_OPC, 0x6)
971 #define OPC_E_MISSING_CONTENT_TYPES MAKE_HRESULT(1, FACILITY_OPC, 0x7)
972 #define OPC_E_NONCONFORMING_CONTENT_TYPES_XML MAKE_HRESULT(1, FACILITY_OPC, 0x8)
973 #define OPC_E_NONCONFORMING_RELS_XML MAKE_HRESULT(1, FACILITY_OPC, 0x9)
974 #define OPC_E_INVALID_RELS_XML MAKE_HRESULT(1, FACILITY_OPC, 0xa)
975 #define OPC_E_DUPLICATE_PART MAKE_HRESULT(1, FACILITY_OPC, 0xb)
976 #define OPC_E_INVALID_OVERRIDE_PART_NAME MAKE_HRESULT(1, FACILITY_OPC, 0xc)
977 #define OPC_E_DUPLICATE_OVERRIDE_PART MAKE_HRESULT(1, FACILITY_OPC, 0xd)
978 #define OPC_E_INVALID_DEFAULT_EXTENSION MAKE_HRESULT(1, FACILITY_OPC, 0xe)
979 #define OPC_E_DUPLICATE_DEFAULT_EXTENSION MAKE_HRESULT(1, FACILITY_OPC, 0xf)
980 #define OPC_E_INVALID_RELATIONSHIP_ID MAKE_HRESULT(1, FACILITY_OPC, 0x10)
981 #define OPC_E_INVALID_RELATIONSHIP_TYPE MAKE_HRESULT(1, FACILITY_OPC, 0x11)
982 #define OPC_E_INVALID_RELATIONSHIP_TARGET MAKE_HRESULT(1, FACILITY_OPC, 0x12)
983 #define OPC_E_DUPLICATE_RELATIONSHIP MAKE_HRESULT(1, FACILITY_OPC, 0x13)
984 #define OPC_E_CONFLICTING_SETTINGS MAKE_HRESULT(1, FACILITY_OPC, 0x14)
985 #define OPC_E_DUPLICATE_PIECE MAKE_HRESULT(1, FACILITY_OPC, 0x15)
986 #define OPC_E_INVALID_PIECE MAKE_HRESULT(1, FACILITY_OPC, 0x16)
987 #define OPC_E_MISSING_PIECE MAKE_HRESULT(1, FACILITY_OPC, 0x17)
988 #define OPC_E_NO_SUCH_PART MAKE_HRESULT(1, FACILITY_OPC, 0x18)
989 #define OPC_E_DS_SIGNATURE_CORRUPT MAKE_HRESULT(1, FACILITY_OPC, 0x19)
990 #define OPC_E_DS_DIGEST_VALUE_ERROR MAKE_HRESULT(1, FACILITY_OPC, 0x1a)
991 #define OPC_E_DS_DUPLICATE_SIGNATURE_ORIGIN_RELATIONSHIP MAKE_HRESULT(1, FACILITY_OPC, 0x1b)
992 #define OPC_E_DS_INVALID_SIGNATURE_ORIGIN_RELATIONSHIP MAKE_HRESULT(1, FACILITY_OPC, 0x1c)
993 #define OPC_E_DS_INVALID_CERTIFICATE_RELATIONSHIP MAKE_HRESULT(1, FACILITY_OPC, 0x1d)
994 #define OPC_E_DS_EXTERNAL_SIGNATURE MAKE_HRESULT(1, FACILITY_OPC, 0x1e)
995 #define OPC_E_DS_MISSING_SIGNATURE_ORIGIN_PART MAKE_HRESULT(1, FACILITY_OPC, 0x1f)
996 #define OPC_E_DS_MISSING_SIGNATURE_PART MAKE_HRESULT(1, FACILITY_OPC, 0x20)
997 #define OPC_E_DS_INVALID_RELATIONSHIP_TRANSFORM_XML MAKE_HRESULT(1, FACILITY_OPC, 0x21)
998 #define OPC_E_DS_INVALID_CANONICALIZATION_METHOD MAKE_HRESULT(1, FACILITY_OPC, 0x22)
999 #define OPC_E_DS_INVALID_RELATIONSHIPS_SIGNING_OPTION MAKE_HRESULT(1, FACILITY_OPC, 0x23)
1000 #define OPC_E_DS_INVALID_OPC_SIGNATURE_TIME_FORMAT MAKE_HRESULT(1, FACILITY_OPC, 0x24)
1001 #define OPC_E_DS_PACKAGE_REFERENCE_URI_RESERVED MAKE_HRESULT(1, FACILITY_OPC, 0x25)
1002 #define OPC_E_DS_MISSING_SIGNATURE_PROPERTIES_ELEMENT MAKE_HRESULT(1, FACILITY_OPC, 0x26)
1003 #define OPC_E_DS_MISSING_SIGNATURE_PROPERTY_ELEMENT MAKE_HRESULT(1, FACILITY_OPC, 0x27)
1004 #define OPC_E_DS_DUPLICATE_SIGNATURE_PROPERTY_ELEMENT MAKE_HRESULT(1, FACILITY_OPC, 0x28)
1005 #define OPC_E_DS_MISSING_SIGNATURE_TIME_PROPERTY MAKE_HRESULT(1, FACILITY_OPC, 0x29)
1006 #define OPC_E_DS_INVALID_SIGNATURE_XML MAKE_HRESULT(1, FACILITY_OPC, 0x2a)
1007 #define OPC_E_DS_INVALID_SIGNATURE_COUNT MAKE_HRESULT(1, FACILITY_OPC, 0x2b)
1008 #define OPC_E_DS_MISSING_SIGNATURE_ALGORITHM MAKE_HRESULT(1, FACILITY_OPC, 0x2c)
1009 #define OPC_E_DS_DUPLICATE_PACKAGE_OBJECT_REFERENCES MAKE_HRESULT(1, FACILITY_OPC, 0x2d)
1010 #define OPC_E_DS_MISSING_PACKAGE_OBJECT_REFERENCE MAKE_HRESULT(1, FACILITY_OPC, 0x2e)
1011 #define OPC_E_DS_EXTERNAL_SIGNATURE_REFERENCE MAKE_HRESULT(1, FACILITY_OPC, 0x2f)
1012 #define OPC_E_DS_REFERENCE_MISSING_CONTENT_TYPE MAKE_HRESULT(1, FACILITY_OPC, 0x30)
1013 #define OPC_E_DS_MULTIPLE_RELATIONSHIP_TRANSFORMS MAKE_HRESULT(1, FACILITY_OPC, 0x31)
1014 #define OPC_E_DS_MISSING_CANONICALIZATION_TRANSFORM MAKE_HRESULT(1, FACILITY_OPC, 0x32)
1015 #define OPC_E_MC_UNEXPECTED_ELEMENT MAKE_HRESULT(1, FACILITY_OPC, 0x33)
1016 #define OPC_E_MC_UNEXPECTED_REQUIRES_ATTR MAKE_HRESULT(1, FACILITY_OPC, 0x34)
1017 #define OPC_E_MC_MISSING_REQUIRES_ATTR MAKE_HRESULT(1, FACILITY_OPC, 0x35)
1018 #define OPC_E_MC_UNEXPECTED_ATTR MAKE_HRESULT(1, FACILITY_OPC, 0x36)
1019 #define OPC_E_MC_INVALID_PREFIX_LIST MAKE_HRESULT(1, FACILITY_OPC, 0x37)
1020 #define OPC_E_MC_INVALID_QNAME_LIST MAKE_HRESULT(1, FACILITY_OPC, 0x38)
1021 #define OPC_E_MC_NESTED_ALTERNATE_CONTENT MAKE_HRESULT(1, FACILITY_OPC, 0x39)
1022 #define OPC_E_MC_UNEXPECTED_CHOICE MAKE_HRESULT(1, FACILITY_OPC, 0x3a)
1023 #define OPC_E_MC_MISSING_CHOICE MAKE_HRESULT(1, FACILITY_OPC, 0x3b)
1024 #define OPC_E_MC_INVALID_ENUM_TYPE MAKE_HRESULT(1, FACILITY_OPC, 0x3c)
1025 #define OPC_E_MC_UNKNOWN_NAMESPACE MAKE_HRESULT(1, FACILITY_OPC, 0x3e)
1026 #define OPC_E_MC_UNKNOWN_PREFIX MAKE_HRESULT(1, FACILITY_OPC, 0x3f)
1027 #define OPC_E_MC_INVALID_ATTRIBUTES_ON_IGNORABLE_ELEMENT MAKE_HRESULT(1, FACILITY_OPC, 0x40)
1028 #define OPC_E_MC_INVALID_XMLNS_ATTRIBUTE MAKE_HRESULT(1, FACILITY_OPC, 0x41)
1029 #define OPC_E_INVALID_XML_ENCODING MAKE_HRESULT(1, FACILITY_OPC, 0x42)
1030 #define OPC_E_DS_SIGNATURE_REFERENCE_MISSING_URI MAKE_HRESULT(1, FACILITY_OPC, 0x43)
1031 #define OPC_E_INVALID_CONTENT_TYPE MAKE_HRESULT(1, FACILITY_OPC, 0x44)
1032 #define OPC_E_DS_SIGNATURE_PROPERTY_MISSING_TARGET MAKE_HRESULT(1, FACILITY_OPC, 0x45)
1033 #define OPC_E_DS_SIGNATURE_METHOD_NOT_SET MAKE_HRESULT(1, FACILITY_OPC, 0x46)
1034 #define OPC_E_DS_DEFAULT_DIGEST_METHOD_NOT_SET MAKE_HRESULT(1, FACILITY_OPC, 0x47)
1035 #define OPC_E_NO_SUCH_RELATIONSHIP MAKE_HRESULT(1, FACILITY_OPC, 0x48)
1036 #define OPC_E_MC_MULTIPLE_FALLBACK_ELEMENTS MAKE_HRESULT(1, FACILITY_OPC, 0x49)
1037 #define OPC_E_MC_INCONSISTENT_PROCESS_CONTENT MAKE_HRESULT(1, FACILITY_OPC, 0x4a)
1038 #define OPC_E_MC_INCONSISTENT_PRESERVE_ATTRIBUTES MAKE_HRESULT(1, FACILITY_OPC, 0x4b)
1039 #define OPC_E_MC_INCONSISTENT_PRESERVE_ELEMENTS MAKE_HRESULT(1, FACILITY_OPC, 0x4c)
1040 #define OPC_E_INVALID_RELATIONSHIP_TARGET_MODE MAKE_HRESULT(1, FACILITY_OPC, 0x4d)
1041 #define OPC_E_COULD_NOT_RECOVER MAKE_HRESULT(1, FACILITY_OPC, 0x4e)
1042 #define OPC_E_UNSUPPORTED_PACKAGE MAKE_HRESULT(1, FACILITY_OPC, 0x4f)
1043 #define OPC_E_ENUM_COLLECTION_CHANGED MAKE_HRESULT(1, FACILITY_OPC, 0x50)
1044 #define OPC_E_ENUM_CANNOT_MOVE_NEXT MAKE_HRESULT(1, FACILITY_OPC, 0x51)
1045 #define OPC_E_ENUM_CANNOT_MOVE_PREVIOUS MAKE_HRESULT(1, FACILITY_OPC, 0x52)
1046 #define OPC_E_ENUM_INVALID_POSITION MAKE_HRESULT(1, FACILITY_OPC, 0x53)
1047 #define OPC_E_DS_SIGNATURE_ORIGIN_EXISTS MAKE_HRESULT(1, FACILITY_OPC, 0x54)
1048 #define OPC_E_DS_UNSIGNED_PACKAGE MAKE_HRESULT(1, FACILITY_OPC, 0x55)
1049 #define OPC_E_DS_MISSING_CERTIFICATE_PART MAKE_HRESULT(1, FACILITY_OPC, 0x56)
1050 #define OPC_E_NO_SUCH_SETTINGS MAKE_HRESULT(1, FACILITY_OPC, 0x57)
1051 #define OPC_E_ZIP_INCORRECT_DATA_SIZE MAKE_HRESULT(1, FACILITY_OPC, 0x1001)
1052 #define OPC_E_ZIP_CORRUPTED_ARCHIVE MAKE_HRESULT(1, FACILITY_OPC, 0x1002)
1053 #define OPC_E_ZIP_COMPRESSION_FAILED MAKE_HRESULT(1, FACILITY_OPC, 0x1003)
1054 #define OPC_E_ZIP_DECOMPRESSION_FAILED MAKE_HRESULT(1, FACILITY_OPC, 0x1004)
1055 #define OPC_E_ZIP_INCONSISTENT_FILEITEM MAKE_HRESULT(1, FACILITY_OPC, 0x1005)
1056 #define OPC_E_ZIP_INCONSISTENT_DIRECTORY MAKE_HRESULT(1, FACILITY_OPC, 0x1006)
1057 #define OPC_E_ZIP_MISSING_DATA_DESCRIPTOR MAKE_HRESULT(1, FACILITY_OPC, 0x1007)
1058 #define OPC_E_ZIP_UNSUPPORTEDARCHIVE MAKE_HRESULT(1, FACILITY_OPC, 0x1008)
1059 #define OPC_E_ZIP_CENTRAL_DIRECTORY_TOO_LARGE MAKE_HRESULT(1, FACILITY_OPC, 0x1009)
1060 #define OPC_E_ZIP_NAME_TOO_LARGE MAKE_HRESULT(1, FACILITY_OPC, 0x100a)
1061 #define OPC_E_ZIP_DUPLICATE_NAME MAKE_HRESULT(1, FACILITY_OPC, 0x100b)
1062 #define OPC_E_ZIP_COMMENT_TOO_LARGE MAKE_HRESULT(1, FACILITY_OPC, 0x100c)
1063 #define OPC_E_ZIP_EXTRA_FIELDS_TOO_LARGE MAKE_HRESULT(1, FACILITY_OPC, 0x100d)
1064 #define OPC_E_ZIP_FILE_HEADER_TOO_LARGE MAKE_HRESULT(1, FACILITY_OPC, 0x100e)
1065 #define OPC_E_ZIP_MISSING_END_OF_CENTRAL_DIRECTORY MAKE_HRESULT(1, FACILITY_OPC, 0x100f)
1066 #define OPC_E_ZIP_REQUIRES_64_BIT MAKE_HRESULT(1, FACILITY_OPC, 0x1010)
1067 #ifndef __MSOPC_LIBRARY_DEFINED__
1068 #define __MSOPC_LIBRARY_DEFINED__
1069 
1070 DEFINE_GUID(LIBID_MSOPC, 0x3d8d6062, 0x2749, 0x442b, 0x9e,0x32, 0xe4,0x0e,0xf8,0x01,0xa7,0x66);
1071 
1072 #ifndef __IOpcCertificateEnumerator_FWD_DEFINED__
1073 #define __IOpcCertificateEnumerator_FWD_DEFINED__
1074 typedef interface IOpcCertificateEnumerator IOpcCertificateEnumerator;
1075 #ifdef __cplusplus
1076 interface IOpcCertificateEnumerator;
1077 #endif /* __cplusplus */
1078 #endif
1079 
1080 #ifndef __IOpcCertificateSet_FWD_DEFINED__
1081 #define __IOpcCertificateSet_FWD_DEFINED__
1082 typedef interface IOpcCertificateSet IOpcCertificateSet;
1083 #ifdef __cplusplus
1084 interface IOpcCertificateSet;
1085 #endif /* __cplusplus */
1086 #endif
1087 
1088 #ifndef __IOpcDigitalSignature_FWD_DEFINED__
1089 #define __IOpcDigitalSignature_FWD_DEFINED__
1090 typedef interface IOpcDigitalSignature IOpcDigitalSignature;
1091 #ifdef __cplusplus
1092 interface IOpcDigitalSignature;
1093 #endif /* __cplusplus */
1094 #endif
1095 
1096 #ifndef __IOpcDigitalSignatureEnumerator_FWD_DEFINED__
1097 #define __IOpcDigitalSignatureEnumerator_FWD_DEFINED__
1098 typedef interface IOpcDigitalSignatureEnumerator IOpcDigitalSignatureEnumerator;
1099 #ifdef __cplusplus
1100 interface IOpcDigitalSignatureEnumerator;
1101 #endif /* __cplusplus */
1102 #endif
1103 
1104 #ifndef __IOpcDigitalSignatureManager_FWD_DEFINED__
1105 #define __IOpcDigitalSignatureManager_FWD_DEFINED__
1106 typedef interface IOpcDigitalSignatureManager IOpcDigitalSignatureManager;
1107 #ifdef __cplusplus
1108 interface IOpcDigitalSignatureManager;
1109 #endif /* __cplusplus */
1110 #endif
1111 
1112 #ifndef __IOpcPackage_FWD_DEFINED__
1113 #define __IOpcPackage_FWD_DEFINED__
1114 typedef interface IOpcPackage IOpcPackage;
1115 #ifdef __cplusplus
1116 interface IOpcPackage;
1117 #endif /* __cplusplus */
1118 #endif
1119 
1120 #ifndef __IOpcPart_FWD_DEFINED__
1121 #define __IOpcPart_FWD_DEFINED__
1122 typedef interface IOpcPart IOpcPart;
1123 #ifdef __cplusplus
1124 interface IOpcPart;
1125 #endif /* __cplusplus */
1126 #endif
1127 
1128 #ifndef __IOpcPartEnumerator_FWD_DEFINED__
1129 #define __IOpcPartEnumerator_FWD_DEFINED__
1130 typedef interface IOpcPartEnumerator IOpcPartEnumerator;
1131 #ifdef __cplusplus
1132 interface IOpcPartEnumerator;
1133 #endif /* __cplusplus */
1134 #endif
1135 
1136 #ifndef __IOpcPartSet_FWD_DEFINED__
1137 #define __IOpcPartSet_FWD_DEFINED__
1138 typedef interface IOpcPartSet IOpcPartSet;
1139 #ifdef __cplusplus
1140 interface IOpcPartSet;
1141 #endif /* __cplusplus */
1142 #endif
1143 
1144 #ifndef __IOpcPartUri_FWD_DEFINED__
1145 #define __IOpcPartUri_FWD_DEFINED__
1146 typedef interface IOpcPartUri IOpcPartUri;
1147 #ifdef __cplusplus
1148 interface IOpcPartUri;
1149 #endif /* __cplusplus */
1150 #endif
1151 
1152 #ifndef __IOpcRelationship_FWD_DEFINED__
1153 #define __IOpcRelationship_FWD_DEFINED__
1154 typedef interface IOpcRelationship IOpcRelationship;
1155 #ifdef __cplusplus
1156 interface IOpcRelationship;
1157 #endif /* __cplusplus */
1158 #endif
1159 
1160 #ifndef __IOpcRelationshipEnumerator_FWD_DEFINED__
1161 #define __IOpcRelationshipEnumerator_FWD_DEFINED__
1162 typedef interface IOpcRelationshipEnumerator IOpcRelationshipEnumerator;
1163 #ifdef __cplusplus
1164 interface IOpcRelationshipEnumerator;
1165 #endif /* __cplusplus */
1166 #endif
1167 
1168 #ifndef __IOpcRelationshipSelector_FWD_DEFINED__
1169 #define __IOpcRelationshipSelector_FWD_DEFINED__
1170 typedef interface IOpcRelationshipSelector IOpcRelationshipSelector;
1171 #ifdef __cplusplus
1172 interface IOpcRelationshipSelector;
1173 #endif /* __cplusplus */
1174 #endif
1175 
1176 #ifndef __IOpcRelationshipSelectorSet_FWD_DEFINED__
1177 #define __IOpcRelationshipSelectorSet_FWD_DEFINED__
1178 typedef interface IOpcRelationshipSelectorSet IOpcRelationshipSelectorSet;
1179 #ifdef __cplusplus
1180 interface IOpcRelationshipSelectorSet;
1181 #endif /* __cplusplus */
1182 #endif
1183 
1184 #ifndef __IOpcRelationshipSet_FWD_DEFINED__
1185 #define __IOpcRelationshipSet_FWD_DEFINED__
1186 typedef interface IOpcRelationshipSet IOpcRelationshipSet;
1187 #ifdef __cplusplus
1188 interface IOpcRelationshipSet;
1189 #endif /* __cplusplus */
1190 #endif
1191 
1192 #ifndef __IOpcSigningOptions_FWD_DEFINED__
1193 #define __IOpcSigningOptions_FWD_DEFINED__
1194 typedef interface IOpcSigningOptions IOpcSigningOptions;
1195 #ifdef __cplusplus
1196 interface IOpcSigningOptions;
1197 #endif /* __cplusplus */
1198 #endif
1199 
1200 #ifndef __IOpcSignatureCustomObject_FWD_DEFINED__
1201 #define __IOpcSignatureCustomObject_FWD_DEFINED__
1202 typedef interface IOpcSignatureCustomObject IOpcSignatureCustomObject;
1203 #ifdef __cplusplus
1204 interface IOpcSignatureCustomObject;
1205 #endif /* __cplusplus */
1206 #endif
1207 
1208 #ifndef __IOpcSignatureCustomObjectSet_FWD_DEFINED__
1209 #define __IOpcSignatureCustomObjectSet_FWD_DEFINED__
1210 typedef interface IOpcSignatureCustomObjectSet IOpcSignatureCustomObjectSet;
1211 #ifdef __cplusplus
1212 interface IOpcSignatureCustomObjectSet;
1213 #endif /* __cplusplus */
1214 #endif
1215 
1216 #ifndef __IOpcSignaturePartReference_FWD_DEFINED__
1217 #define __IOpcSignaturePartReference_FWD_DEFINED__
1218 typedef interface IOpcSignaturePartReference IOpcSignaturePartReference;
1219 #ifdef __cplusplus
1220 interface IOpcSignaturePartReference;
1221 #endif /* __cplusplus */
1222 #endif
1223 
1224 #ifndef __IOpcSignaturePartReferenceEnumerator_FWD_DEFINED__
1225 #define __IOpcSignaturePartReferenceEnumerator_FWD_DEFINED__
1226 typedef interface IOpcSignaturePartReferenceEnumerator IOpcSignaturePartReferenceEnumerator;
1227 #ifdef __cplusplus
1228 interface IOpcSignaturePartReferenceEnumerator;
1229 #endif /* __cplusplus */
1230 #endif
1231 
1232 #ifndef __IOpcSignaturePartReferenceSet_FWD_DEFINED__
1233 #define __IOpcSignaturePartReferenceSet_FWD_DEFINED__
1234 typedef interface IOpcSignaturePartReferenceSet IOpcSignaturePartReferenceSet;
1235 #ifdef __cplusplus
1236 interface IOpcSignaturePartReferenceSet;
1237 #endif /* __cplusplus */
1238 #endif
1239 
1240 #ifndef __IOpcSignatureReference_FWD_DEFINED__
1241 #define __IOpcSignatureReference_FWD_DEFINED__
1242 typedef interface IOpcSignatureReference IOpcSignatureReference;
1243 #ifdef __cplusplus
1244 interface IOpcSignatureReference;
1245 #endif /* __cplusplus */
1246 #endif
1247 
1248 #ifndef __IOpcSignatureReferenceSet_FWD_DEFINED__
1249 #define __IOpcSignatureReferenceSet_FWD_DEFINED__
1250 typedef interface IOpcSignatureReferenceSet IOpcSignatureReferenceSet;
1251 #ifdef __cplusplus
1252 interface IOpcSignatureReferenceSet;
1253 #endif /* __cplusplus */
1254 #endif
1255 
1256 #ifndef __IOpcSignatureRelationshipReference_FWD_DEFINED__
1257 #define __IOpcSignatureRelationshipReference_FWD_DEFINED__
1258 typedef interface IOpcSignatureRelationshipReference IOpcSignatureRelationshipReference;
1259 #ifdef __cplusplus
1260 interface IOpcSignatureRelationshipReference;
1261 #endif /* __cplusplus */
1262 #endif
1263 
1264 #ifndef __IOpcSignatureRelationshipReferenceEnumerator_FWD_DEFINED__
1265 #define __IOpcSignatureRelationshipReferenceEnumerator_FWD_DEFINED__
1266 typedef interface IOpcSignatureRelationshipReferenceEnumerator IOpcSignatureRelationshipReferenceEnumerator;
1267 #ifdef __cplusplus
1268 interface IOpcSignatureRelationshipReferenceEnumerator;
1269 #endif /* __cplusplus */
1270 #endif
1271 
1272 #ifndef __IOpcSignatureRelationshipReferenceSet_FWD_DEFINED__
1273 #define __IOpcSignatureRelationshipReferenceSet_FWD_DEFINED__
1274 typedef interface IOpcSignatureRelationshipReferenceSet IOpcSignatureRelationshipReferenceSet;
1275 #ifdef __cplusplus
1276 interface IOpcSignatureRelationshipReferenceSet;
1277 #endif /* __cplusplus */
1278 #endif
1279 
1280 #ifndef __IOpcRelationshipSelectorEnumerator_FWD_DEFINED__
1281 #define __IOpcRelationshipSelectorEnumerator_FWD_DEFINED__
1282 typedef interface IOpcRelationshipSelectorEnumerator IOpcRelationshipSelectorEnumerator;
1283 #ifdef __cplusplus
1284 interface IOpcRelationshipSelectorEnumerator;
1285 #endif /* __cplusplus */
1286 #endif
1287 
1288 #ifndef __IOpcSignatureReferenceEnumerator_FWD_DEFINED__
1289 #define __IOpcSignatureReferenceEnumerator_FWD_DEFINED__
1290 typedef interface IOpcSignatureReferenceEnumerator IOpcSignatureReferenceEnumerator;
1291 #ifdef __cplusplus
1292 interface IOpcSignatureReferenceEnumerator;
1293 #endif /* __cplusplus */
1294 #endif
1295 
1296 #ifndef __IOpcSignatureCustomObjectEnumerator_FWD_DEFINED__
1297 #define __IOpcSignatureCustomObjectEnumerator_FWD_DEFINED__
1298 typedef interface IOpcSignatureCustomObjectEnumerator IOpcSignatureCustomObjectEnumerator;
1299 #ifdef __cplusplus
1300 interface IOpcSignatureCustomObjectEnumerator;
1301 #endif /* __cplusplus */
1302 #endif
1303 
1304 #ifndef __IOpcUri_FWD_DEFINED__
1305 #define __IOpcUri_FWD_DEFINED__
1306 typedef interface IOpcUri IOpcUri;
1307 #ifdef __cplusplus
1308 interface IOpcUri;
1309 #endif /* __cplusplus */
1310 #endif
1311 
1312 typedef enum __WIDL_msopc_generated_name_00000025 {
1313     OPC_CANONICALIZATION_NONE = 0,
1314     OPC_CANONICALIZATION_C14N = 1,
1315     OPC_CANONICALIZATION_C14N_WITH_COMMENTS = 2
1316 } OPC_CANONICALIZATION_METHOD;
1317 typedef enum __WIDL_msopc_generated_name_00000026 {
1318     OPC_CERTIFICATE_IN_CERTIFICATE_PART = 0,
1319     OPC_CERTIFICATE_IN_SIGNATURE_PART = 1,
1320     OPC_CERTIFICATE_NOT_EMBEDDED = 2
1321 } OPC_CERTIFICATE_EMBEDDING_OPTION;
1322 typedef enum __WIDL_msopc_generated_name_00000027 {
1323     OPC_COMPRESSION_NONE = -1,
1324     OPC_COMPRESSION_NORMAL = 0,
1325     OPC_COMPRESSION_MAXIMUM = 1,
1326     OPC_COMPRESSION_FAST = 2,
1327     OPC_COMPRESSION_SUPERFAST = 3
1328 } OPC_COMPRESSION_OPTIONS;
1329 typedef enum __WIDL_msopc_generated_name_00000028 {
1330     OPC_READ_DEFAULT = 0x0,
1331     OPC_VALIDATE_ON_LOAD = 0x1,
1332     OPC_CACHE_ON_ACCESS = 0x2
1333 } OPC_READ_FLAGS;
1334 typedef enum __WIDL_msopc_generated_name_00000029 {
1335     OPC_RELATIONSHIP_SELECT_BY_ID = 0,
1336     OPC_RELATIONSHIP_SELECT_BY_TYPE = 1
1337 } OPC_RELATIONSHIP_SELECTOR;
1338 typedef enum __WIDL_msopc_generated_name_0000002A {
1339     OPC_RELATIONSHIP_SIGN_USING_SELECTORS = 0,
1340     OPC_RELATIONSHIP_SIGN_PART = 1
1341 } OPC_RELATIONSHIPS_SIGNING_OPTION;
1342 typedef enum OPC_SIGNATURE_VALIDATION_RESULT {
1343     OPC_SIGNATURE_VALID = 0,
1344     OPC_SIGNATURE_INVALID = -1
1345 } OPC_SIGNATURE_VALIDATION_RESULT;
1346 typedef enum __WIDL_msopc_generated_name_0000002B {
1347     OPC_SIGNATURE_TIME_FORMAT_MILLISECONDS = 0,
1348     OPC_SIGNATURE_TIME_FORMAT_SECONDS = 1,
1349     OPC_SIGNATURE_TIME_FORMAT_MINUTES = 2,
1350     OPC_SIGNATURE_TIME_FORMAT_DAYS = 3,
1351     OPC_SIGNATURE_TIME_FORMAT_MONTHS = 4,
1352     OPC_SIGNATURE_TIME_FORMAT_YEARS = 5
1353 } OPC_SIGNATURE_TIME_FORMAT;
1354 typedef enum __WIDL_msopc_generated_name_0000002C {
1355     OPC_STREAM_IO_READ = 1,
1356     OPC_STREAM_IO_WRITE = 2
1357 } OPC_STREAM_IO_MODE;
1358 typedef enum __WIDL_msopc_generated_name_0000002D {
1359     OPC_URI_TARGET_MODE_INTERNAL = 0,
1360     OPC_URI_TARGET_MODE_EXTERNAL = 1
1361 } OPC_URI_TARGET_MODE;
1362 typedef enum __WIDL_msopc_generated_name_0000002E {
1363     OPC_WRITE_DEFAULT = 0x0,
1364     OPC_WRITE_FORCE_ZIP32 = 0x1
1365 } OPC_WRITE_FLAGS;
1366 DEFINE_ENUM_FLAG_OPERATORS(OPC_READ_FLAGS);
1367 DEFINE_ENUM_FLAG_OPERATORS(OPC_WRITE_FLAGS);
1368 /*****************************************************************************
1369  * IOpcPart interface
1370  */
1371 #ifndef __IOpcPart_INTERFACE_DEFINED__
1372 #define __IOpcPart_INTERFACE_DEFINED__
1373 
1374 DEFINE_GUID(IID_IOpcPart, 0x42195949, 0x3b79, 0x4fc8, 0x89,0xc6, 0xfc,0x7f,0xb9,0x79,0xee,0x71);
1375 #if defined(__cplusplus) && !defined(CINTERFACE)
1376 MIDL_INTERFACE("42195949-3b79-4fc8-89c6-fc7fb979ee71")
1377 IOpcPart : public IUnknown
1378 {
1379     virtual HRESULT STDMETHODCALLTYPE GetRelationshipSet(
1380         IOpcRelationshipSet **relationshipSet) = 0;
1381 
1382     virtual HRESULT STDMETHODCALLTYPE GetContentStream(
1383         IStream **stream) = 0;
1384 
1385     virtual HRESULT STDMETHODCALLTYPE GetName(
1386         IOpcPartUri **name) = 0;
1387 
1388     virtual HRESULT STDMETHODCALLTYPE GetContentType(
1389         LPWSTR *contentType) = 0;
1390 
1391     virtual HRESULT STDMETHODCALLTYPE GetCompressionOptions(
1392         OPC_COMPRESSION_OPTIONS *compressionOptions) = 0;
1393 
1394 };
1395 #ifdef __CRT_UUID_DECL
1396 __CRT_UUID_DECL(IOpcPart, 0x42195949, 0x3b79, 0x4fc8, 0x89,0xc6, 0xfc,0x7f,0xb9,0x79,0xee,0x71)
1397 #endif
1398 #else
1399 typedef struct IOpcPartVtbl {
1400     BEGIN_INTERFACE
1401 
1402     /*** IUnknown methods ***/
1403     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1404         IOpcPart *This,
1405         REFIID riid,
1406         void **ppvObject);
1407 
1408     ULONG (STDMETHODCALLTYPE *AddRef)(
1409         IOpcPart *This);
1410 
1411     ULONG (STDMETHODCALLTYPE *Release)(
1412         IOpcPart *This);
1413 
1414     /*** IOpcPart methods ***/
1415     HRESULT (STDMETHODCALLTYPE *GetRelationshipSet)(
1416         IOpcPart *This,
1417         IOpcRelationshipSet **relationshipSet);
1418 
1419     HRESULT (STDMETHODCALLTYPE *GetContentStream)(
1420         IOpcPart *This,
1421         IStream **stream);
1422 
1423     HRESULT (STDMETHODCALLTYPE *GetName)(
1424         IOpcPart *This,
1425         IOpcPartUri **name);
1426 
1427     HRESULT (STDMETHODCALLTYPE *GetContentType)(
1428         IOpcPart *This,
1429         LPWSTR *contentType);
1430 
1431     HRESULT (STDMETHODCALLTYPE *GetCompressionOptions)(
1432         IOpcPart *This,
1433         OPC_COMPRESSION_OPTIONS *compressionOptions);
1434 
1435     END_INTERFACE
1436 } IOpcPartVtbl;
1437 
1438 interface IOpcPart {
1439     CONST_VTBL IOpcPartVtbl* lpVtbl;
1440 };
1441 
1442 #ifdef COBJMACROS
1443 #ifndef WIDL_C_INLINE_WRAPPERS
1444 /*** IUnknown methods ***/
1445 #define IOpcPart_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1446 #define IOpcPart_AddRef(This) (This)->lpVtbl->AddRef(This)
1447 #define IOpcPart_Release(This) (This)->lpVtbl->Release(This)
1448 /*** IOpcPart methods ***/
1449 #define IOpcPart_GetRelationshipSet(This,relationshipSet) (This)->lpVtbl->GetRelationshipSet(This,relationshipSet)
1450 #define IOpcPart_GetContentStream(This,stream) (This)->lpVtbl->GetContentStream(This,stream)
1451 #define IOpcPart_GetName(This,name) (This)->lpVtbl->GetName(This,name)
1452 #define IOpcPart_GetContentType(This,contentType) (This)->lpVtbl->GetContentType(This,contentType)
1453 #define IOpcPart_GetCompressionOptions(This,compressionOptions) (This)->lpVtbl->GetCompressionOptions(This,compressionOptions)
1454 #else
1455 /*** IUnknown methods ***/
1456 static FORCEINLINE HRESULT IOpcPart_QueryInterface(IOpcPart* This,REFIID riid,void **ppvObject) {
1457     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1458 }
1459 static FORCEINLINE ULONG IOpcPart_AddRef(IOpcPart* This) {
1460     return This->lpVtbl->AddRef(This);
1461 }
1462 static FORCEINLINE ULONG IOpcPart_Release(IOpcPart* This) {
1463     return This->lpVtbl->Release(This);
1464 }
1465 /*** IOpcPart methods ***/
1466 static FORCEINLINE HRESULT IOpcPart_GetRelationshipSet(IOpcPart* This,IOpcRelationshipSet **relationshipSet) {
1467     return This->lpVtbl->GetRelationshipSet(This,relationshipSet);
1468 }
1469 static FORCEINLINE HRESULT IOpcPart_GetContentStream(IOpcPart* This,IStream **stream) {
1470     return This->lpVtbl->GetContentStream(This,stream);
1471 }
1472 static FORCEINLINE HRESULT IOpcPart_GetName(IOpcPart* This,IOpcPartUri **name) {
1473     return This->lpVtbl->GetName(This,name);
1474 }
1475 static FORCEINLINE HRESULT IOpcPart_GetContentType(IOpcPart* This,LPWSTR *contentType) {
1476     return This->lpVtbl->GetContentType(This,contentType);
1477 }
1478 static FORCEINLINE HRESULT IOpcPart_GetCompressionOptions(IOpcPart* This,OPC_COMPRESSION_OPTIONS *compressionOptions) {
1479     return This->lpVtbl->GetCompressionOptions(This,compressionOptions);
1480 }
1481 #endif
1482 #endif
1483 
1484 #endif
1485 
1486 
1487 #endif  /* __IOpcPart_INTERFACE_DEFINED__ */
1488 
1489 /*****************************************************************************
1490  * IOpcPartEnumerator interface
1491  */
1492 #ifndef __IOpcPartEnumerator_INTERFACE_DEFINED__
1493 #define __IOpcPartEnumerator_INTERFACE_DEFINED__
1494 
1495 DEFINE_GUID(IID_IOpcPartEnumerator, 0x42195949, 0x3b79, 0x4fc8, 0x89,0xc6, 0xfc,0x7f,0xb9,0x79,0xee,0x75);
1496 #if defined(__cplusplus) && !defined(CINTERFACE)
1497 MIDL_INTERFACE("42195949-3b79-4fc8-89c6-fc7fb979ee75")
1498 IOpcPartEnumerator : public IUnknown
1499 {
1500     virtual HRESULT STDMETHODCALLTYPE MoveNext(
1501         WINBOOL *hasNext) = 0;
1502 
1503     virtual HRESULT STDMETHODCALLTYPE MovePrevious(
1504         WINBOOL *hasPrevious) = 0;
1505 
1506     virtual HRESULT STDMETHODCALLTYPE GetCurrent(
1507         IOpcPart **part) = 0;
1508 
1509     virtual HRESULT STDMETHODCALLTYPE Clone(
1510         IOpcPartEnumerator **copy) = 0;
1511 
1512 };
1513 #ifdef __CRT_UUID_DECL
1514 __CRT_UUID_DECL(IOpcPartEnumerator, 0x42195949, 0x3b79, 0x4fc8, 0x89,0xc6, 0xfc,0x7f,0xb9,0x79,0xee,0x75)
1515 #endif
1516 #else
1517 typedef struct IOpcPartEnumeratorVtbl {
1518     BEGIN_INTERFACE
1519 
1520     /*** IUnknown methods ***/
1521     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1522         IOpcPartEnumerator *This,
1523         REFIID riid,
1524         void **ppvObject);
1525 
1526     ULONG (STDMETHODCALLTYPE *AddRef)(
1527         IOpcPartEnumerator *This);
1528 
1529     ULONG (STDMETHODCALLTYPE *Release)(
1530         IOpcPartEnumerator *This);
1531 
1532     /*** IOpcPartEnumerator methods ***/
1533     HRESULT (STDMETHODCALLTYPE *MoveNext)(
1534         IOpcPartEnumerator *This,
1535         WINBOOL *hasNext);
1536 
1537     HRESULT (STDMETHODCALLTYPE *MovePrevious)(
1538         IOpcPartEnumerator *This,
1539         WINBOOL *hasPrevious);
1540 
1541     HRESULT (STDMETHODCALLTYPE *GetCurrent)(
1542         IOpcPartEnumerator *This,
1543         IOpcPart **part);
1544 
1545     HRESULT (STDMETHODCALLTYPE *Clone)(
1546         IOpcPartEnumerator *This,
1547         IOpcPartEnumerator **copy);
1548 
1549     END_INTERFACE
1550 } IOpcPartEnumeratorVtbl;
1551 
1552 interface IOpcPartEnumerator {
1553     CONST_VTBL IOpcPartEnumeratorVtbl* lpVtbl;
1554 };
1555 
1556 #ifdef COBJMACROS
1557 #ifndef WIDL_C_INLINE_WRAPPERS
1558 /*** IUnknown methods ***/
1559 #define IOpcPartEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1560 #define IOpcPartEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This)
1561 #define IOpcPartEnumerator_Release(This) (This)->lpVtbl->Release(This)
1562 /*** IOpcPartEnumerator methods ***/
1563 #define IOpcPartEnumerator_MoveNext(This,hasNext) (This)->lpVtbl->MoveNext(This,hasNext)
1564 #define IOpcPartEnumerator_MovePrevious(This,hasPrevious) (This)->lpVtbl->MovePrevious(This,hasPrevious)
1565 #define IOpcPartEnumerator_GetCurrent(This,part) (This)->lpVtbl->GetCurrent(This,part)
1566 #define IOpcPartEnumerator_Clone(This,copy) (This)->lpVtbl->Clone(This,copy)
1567 #else
1568 /*** IUnknown methods ***/
1569 static FORCEINLINE HRESULT IOpcPartEnumerator_QueryInterface(IOpcPartEnumerator* This,REFIID riid,void **ppvObject) {
1570     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1571 }
1572 static FORCEINLINE ULONG IOpcPartEnumerator_AddRef(IOpcPartEnumerator* This) {
1573     return This->lpVtbl->AddRef(This);
1574 }
1575 static FORCEINLINE ULONG IOpcPartEnumerator_Release(IOpcPartEnumerator* This) {
1576     return This->lpVtbl->Release(This);
1577 }
1578 /*** IOpcPartEnumerator methods ***/
1579 static FORCEINLINE HRESULT IOpcPartEnumerator_MoveNext(IOpcPartEnumerator* This,WINBOOL *hasNext) {
1580     return This->lpVtbl->MoveNext(This,hasNext);
1581 }
1582 static FORCEINLINE HRESULT IOpcPartEnumerator_MovePrevious(IOpcPartEnumerator* This,WINBOOL *hasPrevious) {
1583     return This->lpVtbl->MovePrevious(This,hasPrevious);
1584 }
1585 static FORCEINLINE HRESULT IOpcPartEnumerator_GetCurrent(IOpcPartEnumerator* This,IOpcPart **part) {
1586     return This->lpVtbl->GetCurrent(This,part);
1587 }
1588 static FORCEINLINE HRESULT IOpcPartEnumerator_Clone(IOpcPartEnumerator* This,IOpcPartEnumerator **copy) {
1589     return This->lpVtbl->Clone(This,copy);
1590 }
1591 #endif
1592 #endif
1593 
1594 #endif
1595 
1596 
1597 #endif  /* __IOpcPartEnumerator_INTERFACE_DEFINED__ */
1598 
1599 /*****************************************************************************
1600  * IOpcPartSet interface
1601  */
1602 #ifndef __IOpcPartSet_INTERFACE_DEFINED__
1603 #define __IOpcPartSet_INTERFACE_DEFINED__
1604 
1605 DEFINE_GUID(IID_IOpcPartSet, 0x42195949, 0x3b79, 0x4fc8, 0x89,0xc6, 0xfc,0x7f,0xb9,0x79,0xee,0x73);
1606 #if defined(__cplusplus) && !defined(CINTERFACE)
1607 MIDL_INTERFACE("42195949-3b79-4fc8-89c6-fc7fb979ee73")
1608 IOpcPartSet : public IUnknown
1609 {
1610     virtual HRESULT STDMETHODCALLTYPE GetPart(
1611         IOpcPartUri *name,
1612         IOpcPart **part) = 0;
1613 
1614     virtual HRESULT STDMETHODCALLTYPE CreatePart(
1615         IOpcPartUri *name,
1616         LPCWSTR contentType,
1617         OPC_COMPRESSION_OPTIONS compressionOptions,
1618         IOpcPart **part) = 0;
1619 
1620     virtual HRESULT STDMETHODCALLTYPE DeletePart(
1621         IOpcPartUri *name) = 0;
1622 
1623     virtual HRESULT STDMETHODCALLTYPE PartExists(
1624         IOpcPartUri *name,
1625         WINBOOL *partExists) = 0;
1626 
1627     virtual HRESULT STDMETHODCALLTYPE GetEnumerator(
1628         IOpcPartEnumerator **partEnumerator) = 0;
1629 
1630 };
1631 #ifdef __CRT_UUID_DECL
1632 __CRT_UUID_DECL(IOpcPartSet, 0x42195949, 0x3b79, 0x4fc8, 0x89,0xc6, 0xfc,0x7f,0xb9,0x79,0xee,0x73)
1633 #endif
1634 #else
1635 typedef struct IOpcPartSetVtbl {
1636     BEGIN_INTERFACE
1637 
1638     /*** IUnknown methods ***/
1639     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1640         IOpcPartSet *This,
1641         REFIID riid,
1642         void **ppvObject);
1643 
1644     ULONG (STDMETHODCALLTYPE *AddRef)(
1645         IOpcPartSet *This);
1646 
1647     ULONG (STDMETHODCALLTYPE *Release)(
1648         IOpcPartSet *This);
1649 
1650     /*** IOpcPartSet methods ***/
1651     HRESULT (STDMETHODCALLTYPE *GetPart)(
1652         IOpcPartSet *This,
1653         IOpcPartUri *name,
1654         IOpcPart **part);
1655 
1656     HRESULT (STDMETHODCALLTYPE *CreatePart)(
1657         IOpcPartSet *This,
1658         IOpcPartUri *name,
1659         LPCWSTR contentType,
1660         OPC_COMPRESSION_OPTIONS compressionOptions,
1661         IOpcPart **part);
1662 
1663     HRESULT (STDMETHODCALLTYPE *DeletePart)(
1664         IOpcPartSet *This,
1665         IOpcPartUri *name);
1666 
1667     HRESULT (STDMETHODCALLTYPE *PartExists)(
1668         IOpcPartSet *This,
1669         IOpcPartUri *name,
1670         WINBOOL *partExists);
1671 
1672     HRESULT (STDMETHODCALLTYPE *GetEnumerator)(
1673         IOpcPartSet *This,
1674         IOpcPartEnumerator **partEnumerator);
1675 
1676     END_INTERFACE
1677 } IOpcPartSetVtbl;
1678 
1679 interface IOpcPartSet {
1680     CONST_VTBL IOpcPartSetVtbl* lpVtbl;
1681 };
1682 
1683 #ifdef COBJMACROS
1684 #ifndef WIDL_C_INLINE_WRAPPERS
1685 /*** IUnknown methods ***/
1686 #define IOpcPartSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1687 #define IOpcPartSet_AddRef(This) (This)->lpVtbl->AddRef(This)
1688 #define IOpcPartSet_Release(This) (This)->lpVtbl->Release(This)
1689 /*** IOpcPartSet methods ***/
1690 #define IOpcPartSet_GetPart(This,name,part) (This)->lpVtbl->GetPart(This,name,part)
1691 #define IOpcPartSet_CreatePart(This,name,contentType,compressionOptions,part) (This)->lpVtbl->CreatePart(This,name,contentType,compressionOptions,part)
1692 #define IOpcPartSet_DeletePart(This,name) (This)->lpVtbl->DeletePart(This,name)
1693 #define IOpcPartSet_PartExists(This,name,partExists) (This)->lpVtbl->PartExists(This,name,partExists)
1694 #define IOpcPartSet_GetEnumerator(This,partEnumerator) (This)->lpVtbl->GetEnumerator(This,partEnumerator)
1695 #else
1696 /*** IUnknown methods ***/
1697 static FORCEINLINE HRESULT IOpcPartSet_QueryInterface(IOpcPartSet* This,REFIID riid,void **ppvObject) {
1698     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1699 }
1700 static FORCEINLINE ULONG IOpcPartSet_AddRef(IOpcPartSet* This) {
1701     return This->lpVtbl->AddRef(This);
1702 }
1703 static FORCEINLINE ULONG IOpcPartSet_Release(IOpcPartSet* This) {
1704     return This->lpVtbl->Release(This);
1705 }
1706 /*** IOpcPartSet methods ***/
1707 static FORCEINLINE HRESULT IOpcPartSet_GetPart(IOpcPartSet* This,IOpcPartUri *name,IOpcPart **part) {
1708     return This->lpVtbl->GetPart(This,name,part);
1709 }
1710 static FORCEINLINE HRESULT IOpcPartSet_CreatePart(IOpcPartSet* This,IOpcPartUri *name,LPCWSTR contentType,OPC_COMPRESSION_OPTIONS compressionOptions,IOpcPart **part) {
1711     return This->lpVtbl->CreatePart(This,name,contentType,compressionOptions,part);
1712 }
1713 static FORCEINLINE HRESULT IOpcPartSet_DeletePart(IOpcPartSet* This,IOpcPartUri *name) {
1714     return This->lpVtbl->DeletePart(This,name);
1715 }
1716 static FORCEINLINE HRESULT IOpcPartSet_PartExists(IOpcPartSet* This,IOpcPartUri *name,WINBOOL *partExists) {
1717     return This->lpVtbl->PartExists(This,name,partExists);
1718 }
1719 static FORCEINLINE HRESULT IOpcPartSet_GetEnumerator(IOpcPartSet* This,IOpcPartEnumerator **partEnumerator) {
1720     return This->lpVtbl->GetEnumerator(This,partEnumerator);
1721 }
1722 #endif
1723 #endif
1724 
1725 #endif
1726 
1727 
1728 #endif  /* __IOpcPartSet_INTERFACE_DEFINED__ */
1729 
1730 /*****************************************************************************
1731  * IOpcPackage interface
1732  */
1733 #ifndef __IOpcPackage_INTERFACE_DEFINED__
1734 #define __IOpcPackage_INTERFACE_DEFINED__
1735 
1736 DEFINE_GUID(IID_IOpcPackage, 0x42195949, 0x3b79, 0x4fc8, 0x89,0xc6, 0xfc,0x7f,0xb9,0x79,0xee,0x70);
1737 #if defined(__cplusplus) && !defined(CINTERFACE)
1738 MIDL_INTERFACE("42195949-3b79-4fc8-89c6-fc7fb979ee70")
1739 IOpcPackage : public IUnknown
1740 {
1741     virtual HRESULT STDMETHODCALLTYPE GetPartSet(
1742         IOpcPartSet **partSet) = 0;
1743 
1744     virtual HRESULT STDMETHODCALLTYPE GetRelationshipSet(
1745         IOpcRelationshipSet **relationshipSet) = 0;
1746 
1747 };
1748 #ifdef __CRT_UUID_DECL
1749 __CRT_UUID_DECL(IOpcPackage, 0x42195949, 0x3b79, 0x4fc8, 0x89,0xc6, 0xfc,0x7f,0xb9,0x79,0xee,0x70)
1750 #endif
1751 #else
1752 typedef struct IOpcPackageVtbl {
1753     BEGIN_INTERFACE
1754 
1755     /*** IUnknown methods ***/
1756     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1757         IOpcPackage *This,
1758         REFIID riid,
1759         void **ppvObject);
1760 
1761     ULONG (STDMETHODCALLTYPE *AddRef)(
1762         IOpcPackage *This);
1763 
1764     ULONG (STDMETHODCALLTYPE *Release)(
1765         IOpcPackage *This);
1766 
1767     /*** IOpcPackage methods ***/
1768     HRESULT (STDMETHODCALLTYPE *GetPartSet)(
1769         IOpcPackage *This,
1770         IOpcPartSet **partSet);
1771 
1772     HRESULT (STDMETHODCALLTYPE *GetRelationshipSet)(
1773         IOpcPackage *This,
1774         IOpcRelationshipSet **relationshipSet);
1775 
1776     END_INTERFACE
1777 } IOpcPackageVtbl;
1778 
1779 interface IOpcPackage {
1780     CONST_VTBL IOpcPackageVtbl* lpVtbl;
1781 };
1782 
1783 #ifdef COBJMACROS
1784 #ifndef WIDL_C_INLINE_WRAPPERS
1785 /*** IUnknown methods ***/
1786 #define IOpcPackage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1787 #define IOpcPackage_AddRef(This) (This)->lpVtbl->AddRef(This)
1788 #define IOpcPackage_Release(This) (This)->lpVtbl->Release(This)
1789 /*** IOpcPackage methods ***/
1790 #define IOpcPackage_GetPartSet(This,partSet) (This)->lpVtbl->GetPartSet(This,partSet)
1791 #define IOpcPackage_GetRelationshipSet(This,relationshipSet) (This)->lpVtbl->GetRelationshipSet(This,relationshipSet)
1792 #else
1793 /*** IUnknown methods ***/
1794 static FORCEINLINE HRESULT IOpcPackage_QueryInterface(IOpcPackage* This,REFIID riid,void **ppvObject) {
1795     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1796 }
1797 static FORCEINLINE ULONG IOpcPackage_AddRef(IOpcPackage* This) {
1798     return This->lpVtbl->AddRef(This);
1799 }
1800 static FORCEINLINE ULONG IOpcPackage_Release(IOpcPackage* This) {
1801     return This->lpVtbl->Release(This);
1802 }
1803 /*** IOpcPackage methods ***/
1804 static FORCEINLINE HRESULT IOpcPackage_GetPartSet(IOpcPackage* This,IOpcPartSet **partSet) {
1805     return This->lpVtbl->GetPartSet(This,partSet);
1806 }
1807 static FORCEINLINE HRESULT IOpcPackage_GetRelationshipSet(IOpcPackage* This,IOpcRelationshipSet **relationshipSet) {
1808     return This->lpVtbl->GetRelationshipSet(This,relationshipSet);
1809 }
1810 #endif
1811 #endif
1812 
1813 #endif
1814 
1815 
1816 #endif  /* __IOpcPackage_INTERFACE_DEFINED__ */
1817 
1818 /*****************************************************************************
1819  * IOpcRelationship interface
1820  */
1821 #ifndef __IOpcRelationship_INTERFACE_DEFINED__
1822 #define __IOpcRelationship_INTERFACE_DEFINED__
1823 
1824 DEFINE_GUID(IID_IOpcRelationship, 0x42195949, 0x3b79, 0x4fc8, 0x89,0xc6, 0xfc,0x7f,0xb9,0x79,0xee,0x72);
1825 #if defined(__cplusplus) && !defined(CINTERFACE)
1826 MIDL_INTERFACE("42195949-3b79-4fc8-89c6-fc7fb979ee72")
1827 IOpcRelationship : public IUnknown
1828 {
1829     virtual HRESULT STDMETHODCALLTYPE GetId(
1830         LPWSTR *relationshipIdentifier) = 0;
1831 
1832     virtual HRESULT STDMETHODCALLTYPE GetRelationshipType(
1833         LPWSTR *relationshipType) = 0;
1834 
1835     virtual HRESULT STDMETHODCALLTYPE GetSourceUri(
1836         IOpcUri **sourceUri) = 0;
1837 
1838     virtual HRESULT STDMETHODCALLTYPE GetTargetUri(
1839         IUri **targetUri) = 0;
1840 
1841     virtual HRESULT STDMETHODCALLTYPE GetTargetMode(
1842         OPC_URI_TARGET_MODE *targetMode) = 0;
1843 
1844 };
1845 #ifdef __CRT_UUID_DECL
1846 __CRT_UUID_DECL(IOpcRelationship, 0x42195949, 0x3b79, 0x4fc8, 0x89,0xc6, 0xfc,0x7f,0xb9,0x79,0xee,0x72)
1847 #endif
1848 #else
1849 typedef struct IOpcRelationshipVtbl {
1850     BEGIN_INTERFACE
1851 
1852     /*** IUnknown methods ***/
1853     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1854         IOpcRelationship *This,
1855         REFIID riid,
1856         void **ppvObject);
1857 
1858     ULONG (STDMETHODCALLTYPE *AddRef)(
1859         IOpcRelationship *This);
1860 
1861     ULONG (STDMETHODCALLTYPE *Release)(
1862         IOpcRelationship *This);
1863 
1864     /*** IOpcRelationship methods ***/
1865     HRESULT (STDMETHODCALLTYPE *GetId)(
1866         IOpcRelationship *This,
1867         LPWSTR *relationshipIdentifier);
1868 
1869     HRESULT (STDMETHODCALLTYPE *GetRelationshipType)(
1870         IOpcRelationship *This,
1871         LPWSTR *relationshipType);
1872 
1873     HRESULT (STDMETHODCALLTYPE *GetSourceUri)(
1874         IOpcRelationship *This,
1875         IOpcUri **sourceUri);
1876 
1877     HRESULT (STDMETHODCALLTYPE *GetTargetUri)(
1878         IOpcRelationship *This,
1879         IUri **targetUri);
1880 
1881     HRESULT (STDMETHODCALLTYPE *GetTargetMode)(
1882         IOpcRelationship *This,
1883         OPC_URI_TARGET_MODE *targetMode);
1884 
1885     END_INTERFACE
1886 } IOpcRelationshipVtbl;
1887 
1888 interface IOpcRelationship {
1889     CONST_VTBL IOpcRelationshipVtbl* lpVtbl;
1890 };
1891 
1892 #ifdef COBJMACROS
1893 #ifndef WIDL_C_INLINE_WRAPPERS
1894 /*** IUnknown methods ***/
1895 #define IOpcRelationship_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1896 #define IOpcRelationship_AddRef(This) (This)->lpVtbl->AddRef(This)
1897 #define IOpcRelationship_Release(This) (This)->lpVtbl->Release(This)
1898 /*** IOpcRelationship methods ***/
1899 #define IOpcRelationship_GetId(This,relationshipIdentifier) (This)->lpVtbl->GetId(This,relationshipIdentifier)
1900 #define IOpcRelationship_GetRelationshipType(This,relationshipType) (This)->lpVtbl->GetRelationshipType(This,relationshipType)
1901 #define IOpcRelationship_GetSourceUri(This,sourceUri) (This)->lpVtbl->GetSourceUri(This,sourceUri)
1902 #define IOpcRelationship_GetTargetUri(This,targetUri) (This)->lpVtbl->GetTargetUri(This,targetUri)
1903 #define IOpcRelationship_GetTargetMode(This,targetMode) (This)->lpVtbl->GetTargetMode(This,targetMode)
1904 #else
1905 /*** IUnknown methods ***/
1906 static FORCEINLINE HRESULT IOpcRelationship_QueryInterface(IOpcRelationship* This,REFIID riid,void **ppvObject) {
1907     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1908 }
1909 static FORCEINLINE ULONG IOpcRelationship_AddRef(IOpcRelationship* This) {
1910     return This->lpVtbl->AddRef(This);
1911 }
1912 static FORCEINLINE ULONG IOpcRelationship_Release(IOpcRelationship* This) {
1913     return This->lpVtbl->Release(This);
1914 }
1915 /*** IOpcRelationship methods ***/
1916 static FORCEINLINE HRESULT IOpcRelationship_GetId(IOpcRelationship* This,LPWSTR *relationshipIdentifier) {
1917     return This->lpVtbl->GetId(This,relationshipIdentifier);
1918 }
1919 static FORCEINLINE HRESULT IOpcRelationship_GetRelationshipType(IOpcRelationship* This,LPWSTR *relationshipType) {
1920     return This->lpVtbl->GetRelationshipType(This,relationshipType);
1921 }
1922 static FORCEINLINE HRESULT IOpcRelationship_GetSourceUri(IOpcRelationship* This,IOpcUri **sourceUri) {
1923     return This->lpVtbl->GetSourceUri(This,sourceUri);
1924 }
1925 static FORCEINLINE HRESULT IOpcRelationship_GetTargetUri(IOpcRelationship* This,IUri **targetUri) {
1926     return This->lpVtbl->GetTargetUri(This,targetUri);
1927 }
1928 static FORCEINLINE HRESULT IOpcRelationship_GetTargetMode(IOpcRelationship* This,OPC_URI_TARGET_MODE *targetMode) {
1929     return This->lpVtbl->GetTargetMode(This,targetMode);
1930 }
1931 #endif
1932 #endif
1933 
1934 #endif
1935 
1936 
1937 #endif  /* __IOpcRelationship_INTERFACE_DEFINED__ */
1938 
1939 /*****************************************************************************
1940  * IOpcRelationshipEnumerator interface
1941  */
1942 #ifndef __IOpcRelationshipEnumerator_INTERFACE_DEFINED__
1943 #define __IOpcRelationshipEnumerator_INTERFACE_DEFINED__
1944 
1945 DEFINE_GUID(IID_IOpcRelationshipEnumerator, 0x42195949, 0x3b79, 0x4fc8, 0x89,0xc6, 0xfc,0x7f,0xb9,0x79,0xee,0x76);
1946 #if defined(__cplusplus) && !defined(CINTERFACE)
1947 MIDL_INTERFACE("42195949-3b79-4fc8-89c6-fc7fb979ee76")
1948 IOpcRelationshipEnumerator : public IUnknown
1949 {
1950     virtual HRESULT STDMETHODCALLTYPE MoveNext(
1951         WINBOOL *hasNext) = 0;
1952 
1953     virtual HRESULT STDMETHODCALLTYPE MovePrevious(
1954         WINBOOL *hasPrevious) = 0;
1955 
1956     virtual HRESULT STDMETHODCALLTYPE GetCurrent(
1957         IOpcRelationship **relationship) = 0;
1958 
1959     virtual HRESULT STDMETHODCALLTYPE Clone(
1960         IOpcRelationshipEnumerator **copy) = 0;
1961 
1962 };
1963 #ifdef __CRT_UUID_DECL
1964 __CRT_UUID_DECL(IOpcRelationshipEnumerator, 0x42195949, 0x3b79, 0x4fc8, 0x89,0xc6, 0xfc,0x7f,0xb9,0x79,0xee,0x76)
1965 #endif
1966 #else
1967 typedef struct IOpcRelationshipEnumeratorVtbl {
1968     BEGIN_INTERFACE
1969 
1970     /*** IUnknown methods ***/
1971     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1972         IOpcRelationshipEnumerator *This,
1973         REFIID riid,
1974         void **ppvObject);
1975 
1976     ULONG (STDMETHODCALLTYPE *AddRef)(
1977         IOpcRelationshipEnumerator *This);
1978 
1979     ULONG (STDMETHODCALLTYPE *Release)(
1980         IOpcRelationshipEnumerator *This);
1981 
1982     /*** IOpcRelationshipEnumerator methods ***/
1983     HRESULT (STDMETHODCALLTYPE *MoveNext)(
1984         IOpcRelationshipEnumerator *This,
1985         WINBOOL *hasNext);
1986 
1987     HRESULT (STDMETHODCALLTYPE *MovePrevious)(
1988         IOpcRelationshipEnumerator *This,
1989         WINBOOL *hasPrevious);
1990 
1991     HRESULT (STDMETHODCALLTYPE *GetCurrent)(
1992         IOpcRelationshipEnumerator *This,
1993         IOpcRelationship **relationship);
1994 
1995     HRESULT (STDMETHODCALLTYPE *Clone)(
1996         IOpcRelationshipEnumerator *This,
1997         IOpcRelationshipEnumerator **copy);
1998 
1999     END_INTERFACE
2000 } IOpcRelationshipEnumeratorVtbl;
2001 
2002 interface IOpcRelationshipEnumerator {
2003     CONST_VTBL IOpcRelationshipEnumeratorVtbl* lpVtbl;
2004 };
2005 
2006 #ifdef COBJMACROS
2007 #ifndef WIDL_C_INLINE_WRAPPERS
2008 /*** IUnknown methods ***/
2009 #define IOpcRelationshipEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2010 #define IOpcRelationshipEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This)
2011 #define IOpcRelationshipEnumerator_Release(This) (This)->lpVtbl->Release(This)
2012 /*** IOpcRelationshipEnumerator methods ***/
2013 #define IOpcRelationshipEnumerator_MoveNext(This,hasNext) (This)->lpVtbl->MoveNext(This,hasNext)
2014 #define IOpcRelationshipEnumerator_MovePrevious(This,hasPrevious) (This)->lpVtbl->MovePrevious(This,hasPrevious)
2015 #define IOpcRelationshipEnumerator_GetCurrent(This,relationship) (This)->lpVtbl->GetCurrent(This,relationship)
2016 #define IOpcRelationshipEnumerator_Clone(This,copy) (This)->lpVtbl->Clone(This,copy)
2017 #else
2018 /*** IUnknown methods ***/
2019 static FORCEINLINE HRESULT IOpcRelationshipEnumerator_QueryInterface(IOpcRelationshipEnumerator* This,REFIID riid,void **ppvObject) {
2020     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2021 }
2022 static FORCEINLINE ULONG IOpcRelationshipEnumerator_AddRef(IOpcRelationshipEnumerator* This) {
2023     return This->lpVtbl->AddRef(This);
2024 }
2025 static FORCEINLINE ULONG IOpcRelationshipEnumerator_Release(IOpcRelationshipEnumerator* This) {
2026     return This->lpVtbl->Release(This);
2027 }
2028 /*** IOpcRelationshipEnumerator methods ***/
2029 static FORCEINLINE HRESULT IOpcRelationshipEnumerator_MoveNext(IOpcRelationshipEnumerator* This,WINBOOL *hasNext) {
2030     return This->lpVtbl->MoveNext(This,hasNext);
2031 }
2032 static FORCEINLINE HRESULT IOpcRelationshipEnumerator_MovePrevious(IOpcRelationshipEnumerator* This,WINBOOL *hasPrevious) {
2033     return This->lpVtbl->MovePrevious(This,hasPrevious);
2034 }
2035 static FORCEINLINE HRESULT IOpcRelationshipEnumerator_GetCurrent(IOpcRelationshipEnumerator* This,IOpcRelationship **relationship) {
2036     return This->lpVtbl->GetCurrent(This,relationship);
2037 }
2038 static FORCEINLINE HRESULT IOpcRelationshipEnumerator_Clone(IOpcRelationshipEnumerator* This,IOpcRelationshipEnumerator **copy) {
2039     return This->lpVtbl->Clone(This,copy);
2040 }
2041 #endif
2042 #endif
2043 
2044 #endif
2045 
2046 
2047 #endif  /* __IOpcRelationshipEnumerator_INTERFACE_DEFINED__ */
2048 
2049 /*****************************************************************************
2050  * IOpcRelationshipSelector interface
2051  */
2052 #ifndef __IOpcRelationshipSelector_INTERFACE_DEFINED__
2053 #define __IOpcRelationshipSelector_INTERFACE_DEFINED__
2054 
2055 DEFINE_GUID(IID_IOpcRelationshipSelector, 0xf8f26c7f, 0xb28f, 0x4899, 0x84,0xc8, 0x5d,0x56,0x39,0xed,0xe7,0x5f);
2056 #if defined(__cplusplus) && !defined(CINTERFACE)
2057 MIDL_INTERFACE("f8f26c7f-b28f-4899-84c8-5d5639ede75f")
2058 IOpcRelationshipSelector : public IUnknown
2059 {
2060     virtual HRESULT STDMETHODCALLTYPE GetSelectorType(
2061         OPC_RELATIONSHIP_SELECTOR *selector) = 0;
2062 
2063     virtual HRESULT STDMETHODCALLTYPE GetSelectionCriterion(
2064         LPWSTR *selectionCriterion) = 0;
2065 
2066 };
2067 #ifdef __CRT_UUID_DECL
2068 __CRT_UUID_DECL(IOpcRelationshipSelector, 0xf8f26c7f, 0xb28f, 0x4899, 0x84,0xc8, 0x5d,0x56,0x39,0xed,0xe7,0x5f)
2069 #endif
2070 #else
2071 typedef struct IOpcRelationshipSelectorVtbl {
2072     BEGIN_INTERFACE
2073 
2074     /*** IUnknown methods ***/
2075     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2076         IOpcRelationshipSelector *This,
2077         REFIID riid,
2078         void **ppvObject);
2079 
2080     ULONG (STDMETHODCALLTYPE *AddRef)(
2081         IOpcRelationshipSelector *This);
2082 
2083     ULONG (STDMETHODCALLTYPE *Release)(
2084         IOpcRelationshipSelector *This);
2085 
2086     /*** IOpcRelationshipSelector methods ***/
2087     HRESULT (STDMETHODCALLTYPE *GetSelectorType)(
2088         IOpcRelationshipSelector *This,
2089         OPC_RELATIONSHIP_SELECTOR *selector);
2090 
2091     HRESULT (STDMETHODCALLTYPE *GetSelectionCriterion)(
2092         IOpcRelationshipSelector *This,
2093         LPWSTR *selectionCriterion);
2094 
2095     END_INTERFACE
2096 } IOpcRelationshipSelectorVtbl;
2097 
2098 interface IOpcRelationshipSelector {
2099     CONST_VTBL IOpcRelationshipSelectorVtbl* lpVtbl;
2100 };
2101 
2102 #ifdef COBJMACROS
2103 #ifndef WIDL_C_INLINE_WRAPPERS
2104 /*** IUnknown methods ***/
2105 #define IOpcRelationshipSelector_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2106 #define IOpcRelationshipSelector_AddRef(This) (This)->lpVtbl->AddRef(This)
2107 #define IOpcRelationshipSelector_Release(This) (This)->lpVtbl->Release(This)
2108 /*** IOpcRelationshipSelector methods ***/
2109 #define IOpcRelationshipSelector_GetSelectorType(This,selector) (This)->lpVtbl->GetSelectorType(This,selector)
2110 #define IOpcRelationshipSelector_GetSelectionCriterion(This,selectionCriterion) (This)->lpVtbl->GetSelectionCriterion(This,selectionCriterion)
2111 #else
2112 /*** IUnknown methods ***/
2113 static FORCEINLINE HRESULT IOpcRelationshipSelector_QueryInterface(IOpcRelationshipSelector* This,REFIID riid,void **ppvObject) {
2114     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2115 }
2116 static FORCEINLINE ULONG IOpcRelationshipSelector_AddRef(IOpcRelationshipSelector* This) {
2117     return This->lpVtbl->AddRef(This);
2118 }
2119 static FORCEINLINE ULONG IOpcRelationshipSelector_Release(IOpcRelationshipSelector* This) {
2120     return This->lpVtbl->Release(This);
2121 }
2122 /*** IOpcRelationshipSelector methods ***/
2123 static FORCEINLINE HRESULT IOpcRelationshipSelector_GetSelectorType(IOpcRelationshipSelector* This,OPC_RELATIONSHIP_SELECTOR *selector) {
2124     return This->lpVtbl->GetSelectorType(This,selector);
2125 }
2126 static FORCEINLINE HRESULT IOpcRelationshipSelector_GetSelectionCriterion(IOpcRelationshipSelector* This,LPWSTR *selectionCriterion) {
2127     return This->lpVtbl->GetSelectionCriterion(This,selectionCriterion);
2128 }
2129 #endif
2130 #endif
2131 
2132 #endif
2133 
2134 
2135 #endif  /* __IOpcRelationshipSelector_INTERFACE_DEFINED__ */
2136 
2137 /*****************************************************************************
2138  * IOpcRelationshipSet interface
2139  */
2140 #ifndef __IOpcRelationshipSet_INTERFACE_DEFINED__
2141 #define __IOpcRelationshipSet_INTERFACE_DEFINED__
2142 
2143 DEFINE_GUID(IID_IOpcRelationshipSet, 0x42195949, 0x3b79, 0x4fc8, 0x89,0xc6, 0xfc,0x7f,0xb9,0x79,0xee,0x74);
2144 #if defined(__cplusplus) && !defined(CINTERFACE)
2145 MIDL_INTERFACE("42195949-3b79-4fc8-89c6-fc7fb979ee74")
2146 IOpcRelationshipSet : public IUnknown
2147 {
2148     virtual HRESULT STDMETHODCALLTYPE GetRelationship(
2149         LPCWSTR relationshipIdentifier,
2150         IOpcRelationship **relationship) = 0;
2151 
2152     virtual HRESULT STDMETHODCALLTYPE CreateRelationship(
2153         LPCWSTR relationshipIdentifier,
2154         LPCWSTR relationshipType,
2155         IUri *targetUri,
2156         OPC_URI_TARGET_MODE targetMode,
2157         IOpcRelationship **relationship) = 0;
2158 
2159     virtual HRESULT STDMETHODCALLTYPE DeleteRelationship(
2160         LPCWSTR relationshipIdentifier) = 0;
2161 
2162     virtual HRESULT STDMETHODCALLTYPE RelationshipExists(
2163         LPCWSTR relationshipIdentifier,
2164         WINBOOL *relationshipExists) = 0;
2165 
2166     virtual HRESULT STDMETHODCALLTYPE GetEnumerator(
2167         IOpcRelationshipEnumerator **relationshipEnumerator) = 0;
2168 
2169     virtual HRESULT STDMETHODCALLTYPE GetEnumeratorForType(
2170         LPCWSTR relationshipType,
2171         IOpcRelationshipEnumerator **relationshipEnumerator) = 0;
2172 
2173     virtual HRESULT STDMETHODCALLTYPE GetRelationshipsContentStream(
2174         IStream **contents) = 0;
2175 
2176 };
2177 #ifdef __CRT_UUID_DECL
2178 __CRT_UUID_DECL(IOpcRelationshipSet, 0x42195949, 0x3b79, 0x4fc8, 0x89,0xc6, 0xfc,0x7f,0xb9,0x79,0xee,0x74)
2179 #endif
2180 #else
2181 typedef struct IOpcRelationshipSetVtbl {
2182     BEGIN_INTERFACE
2183 
2184     /*** IUnknown methods ***/
2185     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2186         IOpcRelationshipSet *This,
2187         REFIID riid,
2188         void **ppvObject);
2189 
2190     ULONG (STDMETHODCALLTYPE *AddRef)(
2191         IOpcRelationshipSet *This);
2192 
2193     ULONG (STDMETHODCALLTYPE *Release)(
2194         IOpcRelationshipSet *This);
2195 
2196     /*** IOpcRelationshipSet methods ***/
2197     HRESULT (STDMETHODCALLTYPE *GetRelationship)(
2198         IOpcRelationshipSet *This,
2199         LPCWSTR relationshipIdentifier,
2200         IOpcRelationship **relationship);
2201 
2202     HRESULT (STDMETHODCALLTYPE *CreateRelationship)(
2203         IOpcRelationshipSet *This,
2204         LPCWSTR relationshipIdentifier,
2205         LPCWSTR relationshipType,
2206         IUri *targetUri,
2207         OPC_URI_TARGET_MODE targetMode,
2208         IOpcRelationship **relationship);
2209 
2210     HRESULT (STDMETHODCALLTYPE *DeleteRelationship)(
2211         IOpcRelationshipSet *This,
2212         LPCWSTR relationshipIdentifier);
2213 
2214     HRESULT (STDMETHODCALLTYPE *RelationshipExists)(
2215         IOpcRelationshipSet *This,
2216         LPCWSTR relationshipIdentifier,
2217         WINBOOL *relationshipExists);
2218 
2219     HRESULT (STDMETHODCALLTYPE *GetEnumerator)(
2220         IOpcRelationshipSet *This,
2221         IOpcRelationshipEnumerator **relationshipEnumerator);
2222 
2223     HRESULT (STDMETHODCALLTYPE *GetEnumeratorForType)(
2224         IOpcRelationshipSet *This,
2225         LPCWSTR relationshipType,
2226         IOpcRelationshipEnumerator **relationshipEnumerator);
2227 
2228     HRESULT (STDMETHODCALLTYPE *GetRelationshipsContentStream)(
2229         IOpcRelationshipSet *This,
2230         IStream **contents);
2231 
2232     END_INTERFACE
2233 } IOpcRelationshipSetVtbl;
2234 
2235 interface IOpcRelationshipSet {
2236     CONST_VTBL IOpcRelationshipSetVtbl* lpVtbl;
2237 };
2238 
2239 #ifdef COBJMACROS
2240 #ifndef WIDL_C_INLINE_WRAPPERS
2241 /*** IUnknown methods ***/
2242 #define IOpcRelationshipSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2243 #define IOpcRelationshipSet_AddRef(This) (This)->lpVtbl->AddRef(This)
2244 #define IOpcRelationshipSet_Release(This) (This)->lpVtbl->Release(This)
2245 /*** IOpcRelationshipSet methods ***/
2246 #define IOpcRelationshipSet_GetRelationship(This,relationshipIdentifier,relationship) (This)->lpVtbl->GetRelationship(This,relationshipIdentifier,relationship)
2247 #define IOpcRelationshipSet_CreateRelationship(This,relationshipIdentifier,relationshipType,targetUri,targetMode,relationship) (This)->lpVtbl->CreateRelationship(This,relationshipIdentifier,relationshipType,targetUri,targetMode,relationship)
2248 #define IOpcRelationshipSet_DeleteRelationship(This,relationshipIdentifier) (This)->lpVtbl->DeleteRelationship(This,relationshipIdentifier)
2249 #define IOpcRelationshipSet_RelationshipExists(This,relationshipIdentifier,relationshipExists) (This)->lpVtbl->RelationshipExists(This,relationshipIdentifier,relationshipExists)
2250 #define IOpcRelationshipSet_GetEnumerator(This,relationshipEnumerator) (This)->lpVtbl->GetEnumerator(This,relationshipEnumerator)
2251 #define IOpcRelationshipSet_GetEnumeratorForType(This,relationshipType,relationshipEnumerator) (This)->lpVtbl->GetEnumeratorForType(This,relationshipType,relationshipEnumerator)
2252 #define IOpcRelationshipSet_GetRelationshipsContentStream(This,contents) (This)->lpVtbl->GetRelationshipsContentStream(This,contents)
2253 #else
2254 /*** IUnknown methods ***/
2255 static FORCEINLINE HRESULT IOpcRelationshipSet_QueryInterface(IOpcRelationshipSet* This,REFIID riid,void **ppvObject) {
2256     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2257 }
2258 static FORCEINLINE ULONG IOpcRelationshipSet_AddRef(IOpcRelationshipSet* This) {
2259     return This->lpVtbl->AddRef(This);
2260 }
2261 static FORCEINLINE ULONG IOpcRelationshipSet_Release(IOpcRelationshipSet* This) {
2262     return This->lpVtbl->Release(This);
2263 }
2264 /*** IOpcRelationshipSet methods ***/
2265 static FORCEINLINE HRESULT IOpcRelationshipSet_GetRelationship(IOpcRelationshipSet* This,LPCWSTR relationshipIdentifier,IOpcRelationship **relationship) {
2266     return This->lpVtbl->GetRelationship(This,relationshipIdentifier,relationship);
2267 }
2268 static FORCEINLINE HRESULT IOpcRelationshipSet_CreateRelationship(IOpcRelationshipSet* This,LPCWSTR relationshipIdentifier,LPCWSTR relationshipType,IUri *targetUri,OPC_URI_TARGET_MODE targetMode,IOpcRelationship **relationship) {
2269     return This->lpVtbl->CreateRelationship(This,relationshipIdentifier,relationshipType,targetUri,targetMode,relationship);
2270 }
2271 static FORCEINLINE HRESULT IOpcRelationshipSet_DeleteRelationship(IOpcRelationshipSet* This,LPCWSTR relationshipIdentifier) {
2272     return This->lpVtbl->DeleteRelationship(This,relationshipIdentifier);
2273 }
2274 static FORCEINLINE HRESULT IOpcRelationshipSet_RelationshipExists(IOpcRelationshipSet* This,LPCWSTR relationshipIdentifier,WINBOOL *relationshipExists) {
2275     return This->lpVtbl->RelationshipExists(This,relationshipIdentifier,relationshipExists);
2276 }
2277 static FORCEINLINE HRESULT IOpcRelationshipSet_GetEnumerator(IOpcRelationshipSet* This,IOpcRelationshipEnumerator **relationshipEnumerator) {
2278     return This->lpVtbl->GetEnumerator(This,relationshipEnumerator);
2279 }
2280 static FORCEINLINE HRESULT IOpcRelationshipSet_GetEnumeratorForType(IOpcRelationshipSet* This,LPCWSTR relationshipType,IOpcRelationshipEnumerator **relationshipEnumerator) {
2281     return This->lpVtbl->GetEnumeratorForType(This,relationshipType,relationshipEnumerator);
2282 }
2283 static FORCEINLINE HRESULT IOpcRelationshipSet_GetRelationshipsContentStream(IOpcRelationshipSet* This,IStream **contents) {
2284     return This->lpVtbl->GetRelationshipsContentStream(This,contents);
2285 }
2286 #endif
2287 #endif
2288 
2289 #endif
2290 
2291 
2292 #endif  /* __IOpcRelationshipSet_INTERFACE_DEFINED__ */
2293 
2294 /*****************************************************************************
2295  * IOpcSignatureCustomObject interface
2296  */
2297 #ifndef __IOpcSignatureCustomObject_INTERFACE_DEFINED__
2298 #define __IOpcSignatureCustomObject_INTERFACE_DEFINED__
2299 
2300 DEFINE_GUID(IID_IOpcSignatureCustomObject, 0x5d77a19e, 0x62c1, 0x44e7, 0xbe,0xcd, 0x45,0xda,0x5a,0xe5,0x1a,0x56);
2301 #if defined(__cplusplus) && !defined(CINTERFACE)
2302 MIDL_INTERFACE("5d77a19e-62c1-44e7-becd-45da5ae51a56")
2303 IOpcSignatureCustomObject : public IUnknown
2304 {
2305     virtual HRESULT STDMETHODCALLTYPE GetXml(
2306         UINT8 **xmlMarkup,
2307         UINT32 *count) = 0;
2308 
2309 };
2310 #ifdef __CRT_UUID_DECL
2311 __CRT_UUID_DECL(IOpcSignatureCustomObject, 0x5d77a19e, 0x62c1, 0x44e7, 0xbe,0xcd, 0x45,0xda,0x5a,0xe5,0x1a,0x56)
2312 #endif
2313 #else
2314 typedef struct IOpcSignatureCustomObjectVtbl {
2315     BEGIN_INTERFACE
2316 
2317     /*** IUnknown methods ***/
2318     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2319         IOpcSignatureCustomObject *This,
2320         REFIID riid,
2321         void **ppvObject);
2322 
2323     ULONG (STDMETHODCALLTYPE *AddRef)(
2324         IOpcSignatureCustomObject *This);
2325 
2326     ULONG (STDMETHODCALLTYPE *Release)(
2327         IOpcSignatureCustomObject *This);
2328 
2329     /*** IOpcSignatureCustomObject methods ***/
2330     HRESULT (STDMETHODCALLTYPE *GetXml)(
2331         IOpcSignatureCustomObject *This,
2332         UINT8 **xmlMarkup,
2333         UINT32 *count);
2334 
2335     END_INTERFACE
2336 } IOpcSignatureCustomObjectVtbl;
2337 
2338 interface IOpcSignatureCustomObject {
2339     CONST_VTBL IOpcSignatureCustomObjectVtbl* lpVtbl;
2340 };
2341 
2342 #ifdef COBJMACROS
2343 #ifndef WIDL_C_INLINE_WRAPPERS
2344 /*** IUnknown methods ***/
2345 #define IOpcSignatureCustomObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2346 #define IOpcSignatureCustomObject_AddRef(This) (This)->lpVtbl->AddRef(This)
2347 #define IOpcSignatureCustomObject_Release(This) (This)->lpVtbl->Release(This)
2348 /*** IOpcSignatureCustomObject methods ***/
2349 #define IOpcSignatureCustomObject_GetXml(This,xmlMarkup,count) (This)->lpVtbl->GetXml(This,xmlMarkup,count)
2350 #else
2351 /*** IUnknown methods ***/
2352 static FORCEINLINE HRESULT IOpcSignatureCustomObject_QueryInterface(IOpcSignatureCustomObject* This,REFIID riid,void **ppvObject) {
2353     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2354 }
2355 static FORCEINLINE ULONG IOpcSignatureCustomObject_AddRef(IOpcSignatureCustomObject* This) {
2356     return This->lpVtbl->AddRef(This);
2357 }
2358 static FORCEINLINE ULONG IOpcSignatureCustomObject_Release(IOpcSignatureCustomObject* This) {
2359     return This->lpVtbl->Release(This);
2360 }
2361 /*** IOpcSignatureCustomObject methods ***/
2362 static FORCEINLINE HRESULT IOpcSignatureCustomObject_GetXml(IOpcSignatureCustomObject* This,UINT8 **xmlMarkup,UINT32 *count) {
2363     return This->lpVtbl->GetXml(This,xmlMarkup,count);
2364 }
2365 #endif
2366 #endif
2367 
2368 #endif
2369 
2370 
2371 #endif  /* __IOpcSignatureCustomObject_INTERFACE_DEFINED__ */
2372 
2373 /*****************************************************************************
2374  * IOpcSignatureCustomObjectEnumerator interface
2375  */
2376 #ifndef __IOpcSignatureCustomObjectEnumerator_INTERFACE_DEFINED__
2377 #define __IOpcSignatureCustomObjectEnumerator_INTERFACE_DEFINED__
2378 
2379 DEFINE_GUID(IID_IOpcSignatureCustomObjectEnumerator, 0x5ee4fe1d, 0xe1b0, 0x4683, 0x80,0x79, 0x7e,0xa0,0xfc,0xf8,0x0b,0x4c);
2380 #if defined(__cplusplus) && !defined(CINTERFACE)
2381 MIDL_INTERFACE("5ee4fe1d-e1b0-4683-8079-7ea0fcf80b4c")
2382 IOpcSignatureCustomObjectEnumerator : public IUnknown
2383 {
2384     virtual HRESULT STDMETHODCALLTYPE MoveNext(
2385         WINBOOL *hasNext) = 0;
2386 
2387     virtual HRESULT STDMETHODCALLTYPE MovePrevious(
2388         WINBOOL *hasPrevious) = 0;
2389 
2390     virtual HRESULT STDMETHODCALLTYPE GetCurrent(
2391         IOpcSignatureCustomObject **customObject) = 0;
2392 
2393     virtual HRESULT STDMETHODCALLTYPE Clone(
2394         IOpcSignatureCustomObjectEnumerator **copy) = 0;
2395 
2396 };
2397 #ifdef __CRT_UUID_DECL
2398 __CRT_UUID_DECL(IOpcSignatureCustomObjectEnumerator, 0x5ee4fe1d, 0xe1b0, 0x4683, 0x80,0x79, 0x7e,0xa0,0xfc,0xf8,0x0b,0x4c)
2399 #endif
2400 #else
2401 typedef struct IOpcSignatureCustomObjectEnumeratorVtbl {
2402     BEGIN_INTERFACE
2403 
2404     /*** IUnknown methods ***/
2405     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2406         IOpcSignatureCustomObjectEnumerator *This,
2407         REFIID riid,
2408         void **ppvObject);
2409 
2410     ULONG (STDMETHODCALLTYPE *AddRef)(
2411         IOpcSignatureCustomObjectEnumerator *This);
2412 
2413     ULONG (STDMETHODCALLTYPE *Release)(
2414         IOpcSignatureCustomObjectEnumerator *This);
2415 
2416     /*** IOpcSignatureCustomObjectEnumerator methods ***/
2417     HRESULT (STDMETHODCALLTYPE *MoveNext)(
2418         IOpcSignatureCustomObjectEnumerator *This,
2419         WINBOOL *hasNext);
2420 
2421     HRESULT (STDMETHODCALLTYPE *MovePrevious)(
2422         IOpcSignatureCustomObjectEnumerator *This,
2423         WINBOOL *hasPrevious);
2424 
2425     HRESULT (STDMETHODCALLTYPE *GetCurrent)(
2426         IOpcSignatureCustomObjectEnumerator *This,
2427         IOpcSignatureCustomObject **customObject);
2428 
2429     HRESULT (STDMETHODCALLTYPE *Clone)(
2430         IOpcSignatureCustomObjectEnumerator *This,
2431         IOpcSignatureCustomObjectEnumerator **copy);
2432 
2433     END_INTERFACE
2434 } IOpcSignatureCustomObjectEnumeratorVtbl;
2435 
2436 interface IOpcSignatureCustomObjectEnumerator {
2437     CONST_VTBL IOpcSignatureCustomObjectEnumeratorVtbl* lpVtbl;
2438 };
2439 
2440 #ifdef COBJMACROS
2441 #ifndef WIDL_C_INLINE_WRAPPERS
2442 /*** IUnknown methods ***/
2443 #define IOpcSignatureCustomObjectEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2444 #define IOpcSignatureCustomObjectEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This)
2445 #define IOpcSignatureCustomObjectEnumerator_Release(This) (This)->lpVtbl->Release(This)
2446 /*** IOpcSignatureCustomObjectEnumerator methods ***/
2447 #define IOpcSignatureCustomObjectEnumerator_MoveNext(This,hasNext) (This)->lpVtbl->MoveNext(This,hasNext)
2448 #define IOpcSignatureCustomObjectEnumerator_MovePrevious(This,hasPrevious) (This)->lpVtbl->MovePrevious(This,hasPrevious)
2449 #define IOpcSignatureCustomObjectEnumerator_GetCurrent(This,customObject) (This)->lpVtbl->GetCurrent(This,customObject)
2450 #define IOpcSignatureCustomObjectEnumerator_Clone(This,copy) (This)->lpVtbl->Clone(This,copy)
2451 #else
2452 /*** IUnknown methods ***/
2453 static FORCEINLINE HRESULT IOpcSignatureCustomObjectEnumerator_QueryInterface(IOpcSignatureCustomObjectEnumerator* This,REFIID riid,void **ppvObject) {
2454     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2455 }
2456 static FORCEINLINE ULONG IOpcSignatureCustomObjectEnumerator_AddRef(IOpcSignatureCustomObjectEnumerator* This) {
2457     return This->lpVtbl->AddRef(This);
2458 }
2459 static FORCEINLINE ULONG IOpcSignatureCustomObjectEnumerator_Release(IOpcSignatureCustomObjectEnumerator* This) {
2460     return This->lpVtbl->Release(This);
2461 }
2462 /*** IOpcSignatureCustomObjectEnumerator methods ***/
2463 static FORCEINLINE HRESULT IOpcSignatureCustomObjectEnumerator_MoveNext(IOpcSignatureCustomObjectEnumerator* This,WINBOOL *hasNext) {
2464     return This->lpVtbl->MoveNext(This,hasNext);
2465 }
2466 static FORCEINLINE HRESULT IOpcSignatureCustomObjectEnumerator_MovePrevious(IOpcSignatureCustomObjectEnumerator* This,WINBOOL *hasPrevious) {
2467     return This->lpVtbl->MovePrevious(This,hasPrevious);
2468 }
2469 static FORCEINLINE HRESULT IOpcSignatureCustomObjectEnumerator_GetCurrent(IOpcSignatureCustomObjectEnumerator* This,IOpcSignatureCustomObject **customObject) {
2470     return This->lpVtbl->GetCurrent(This,customObject);
2471 }
2472 static FORCEINLINE HRESULT IOpcSignatureCustomObjectEnumerator_Clone(IOpcSignatureCustomObjectEnumerator* This,IOpcSignatureCustomObjectEnumerator **copy) {
2473     return This->lpVtbl->Clone(This,copy);
2474 }
2475 #endif
2476 #endif
2477 
2478 #endif
2479 
2480 
2481 #endif  /* __IOpcSignatureCustomObjectEnumerator_INTERFACE_DEFINED__ */
2482 
2483 /*****************************************************************************
2484  * IOpcSignaturePartReference interface
2485  */
2486 #ifndef __IOpcSignaturePartReference_INTERFACE_DEFINED__
2487 #define __IOpcSignaturePartReference_INTERFACE_DEFINED__
2488 
2489 DEFINE_GUID(IID_IOpcSignaturePartReference, 0xe24231ca, 0x59f4, 0x484e, 0xb6,0x4b, 0x36,0xee,0xda,0x36,0x07,0x2c);
2490 #if defined(__cplusplus) && !defined(CINTERFACE)
2491 MIDL_INTERFACE("e24231ca-59f4-484e-b64b-36eeda36072c")
2492 IOpcSignaturePartReference : public IUnknown
2493 {
2494     virtual HRESULT STDMETHODCALLTYPE GetPartName(
2495         IOpcPartUri **partName) = 0;
2496 
2497     virtual HRESULT STDMETHODCALLTYPE GetContentType(
2498         LPWSTR *contentType) = 0;
2499 
2500     virtual HRESULT STDMETHODCALLTYPE GetDigestMethod(
2501         LPWSTR *digestMethod) = 0;
2502 
2503     virtual HRESULT STDMETHODCALLTYPE GetDigestValue(
2504         UINT8 **digestValue,
2505         UINT32 *count) = 0;
2506 
2507     virtual HRESULT STDMETHODCALLTYPE GetTransformMethod(
2508         OPC_CANONICALIZATION_METHOD *transformMethod) = 0;
2509 
2510 };
2511 #ifdef __CRT_UUID_DECL
2512 __CRT_UUID_DECL(IOpcSignaturePartReference, 0xe24231ca, 0x59f4, 0x484e, 0xb6,0x4b, 0x36,0xee,0xda,0x36,0x07,0x2c)
2513 #endif
2514 #else
2515 typedef struct IOpcSignaturePartReferenceVtbl {
2516     BEGIN_INTERFACE
2517 
2518     /*** IUnknown methods ***/
2519     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2520         IOpcSignaturePartReference *This,
2521         REFIID riid,
2522         void **ppvObject);
2523 
2524     ULONG (STDMETHODCALLTYPE *AddRef)(
2525         IOpcSignaturePartReference *This);
2526 
2527     ULONG (STDMETHODCALLTYPE *Release)(
2528         IOpcSignaturePartReference *This);
2529 
2530     /*** IOpcSignaturePartReference methods ***/
2531     HRESULT (STDMETHODCALLTYPE *GetPartName)(
2532         IOpcSignaturePartReference *This,
2533         IOpcPartUri **partName);
2534 
2535     HRESULT (STDMETHODCALLTYPE *GetContentType)(
2536         IOpcSignaturePartReference *This,
2537         LPWSTR *contentType);
2538 
2539     HRESULT (STDMETHODCALLTYPE *GetDigestMethod)(
2540         IOpcSignaturePartReference *This,
2541         LPWSTR *digestMethod);
2542 
2543     HRESULT (STDMETHODCALLTYPE *GetDigestValue)(
2544         IOpcSignaturePartReference *This,
2545         UINT8 **digestValue,
2546         UINT32 *count);
2547 
2548     HRESULT (STDMETHODCALLTYPE *GetTransformMethod)(
2549         IOpcSignaturePartReference *This,
2550         OPC_CANONICALIZATION_METHOD *transformMethod);
2551 
2552     END_INTERFACE
2553 } IOpcSignaturePartReferenceVtbl;
2554 
2555 interface IOpcSignaturePartReference {
2556     CONST_VTBL IOpcSignaturePartReferenceVtbl* lpVtbl;
2557 };
2558 
2559 #ifdef COBJMACROS
2560 #ifndef WIDL_C_INLINE_WRAPPERS
2561 /*** IUnknown methods ***/
2562 #define IOpcSignaturePartReference_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2563 #define IOpcSignaturePartReference_AddRef(This) (This)->lpVtbl->AddRef(This)
2564 #define IOpcSignaturePartReference_Release(This) (This)->lpVtbl->Release(This)
2565 /*** IOpcSignaturePartReference methods ***/
2566 #define IOpcSignaturePartReference_GetPartName(This,partName) (This)->lpVtbl->GetPartName(This,partName)
2567 #define IOpcSignaturePartReference_GetContentType(This,contentType) (This)->lpVtbl->GetContentType(This,contentType)
2568 #define IOpcSignaturePartReference_GetDigestMethod(This,digestMethod) (This)->lpVtbl->GetDigestMethod(This,digestMethod)
2569 #define IOpcSignaturePartReference_GetDigestValue(This,digestValue,count) (This)->lpVtbl->GetDigestValue(This,digestValue,count)
2570 #define IOpcSignaturePartReference_GetTransformMethod(This,transformMethod) (This)->lpVtbl->GetTransformMethod(This,transformMethod)
2571 #else
2572 /*** IUnknown methods ***/
2573 static FORCEINLINE HRESULT IOpcSignaturePartReference_QueryInterface(IOpcSignaturePartReference* This,REFIID riid,void **ppvObject) {
2574     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2575 }
2576 static FORCEINLINE ULONG IOpcSignaturePartReference_AddRef(IOpcSignaturePartReference* This) {
2577     return This->lpVtbl->AddRef(This);
2578 }
2579 static FORCEINLINE ULONG IOpcSignaturePartReference_Release(IOpcSignaturePartReference* This) {
2580     return This->lpVtbl->Release(This);
2581 }
2582 /*** IOpcSignaturePartReference methods ***/
2583 static FORCEINLINE HRESULT IOpcSignaturePartReference_GetPartName(IOpcSignaturePartReference* This,IOpcPartUri **partName) {
2584     return This->lpVtbl->GetPartName(This,partName);
2585 }
2586 static FORCEINLINE HRESULT IOpcSignaturePartReference_GetContentType(IOpcSignaturePartReference* This,LPWSTR *contentType) {
2587     return This->lpVtbl->GetContentType(This,contentType);
2588 }
2589 static FORCEINLINE HRESULT IOpcSignaturePartReference_GetDigestMethod(IOpcSignaturePartReference* This,LPWSTR *digestMethod) {
2590     return This->lpVtbl->GetDigestMethod(This,digestMethod);
2591 }
2592 static FORCEINLINE HRESULT IOpcSignaturePartReference_GetDigestValue(IOpcSignaturePartReference* This,UINT8 **digestValue,UINT32 *count) {
2593     return This->lpVtbl->GetDigestValue(This,digestValue,count);
2594 }
2595 static FORCEINLINE HRESULT IOpcSignaturePartReference_GetTransformMethod(IOpcSignaturePartReference* This,OPC_CANONICALIZATION_METHOD *transformMethod) {
2596     return This->lpVtbl->GetTransformMethod(This,transformMethod);
2597 }
2598 #endif
2599 #endif
2600 
2601 #endif
2602 
2603 
2604 #endif  /* __IOpcSignaturePartReference_INTERFACE_DEFINED__ */
2605 
2606 /*****************************************************************************
2607  * IOpcSignaturePartReferenceEnumerator interface
2608  */
2609 #ifndef __IOpcSignaturePartReferenceEnumerator_INTERFACE_DEFINED__
2610 #define __IOpcSignaturePartReferenceEnumerator_INTERFACE_DEFINED__
2611 
2612 DEFINE_GUID(IID_IOpcSignaturePartReferenceEnumerator, 0x80eb1561, 0x8c77, 0x49cf, 0x82,0x66, 0x45,0x9b,0x35,0x6e,0xe9,0x9a);
2613 #if defined(__cplusplus) && !defined(CINTERFACE)
2614 MIDL_INTERFACE("80eb1561-8c77-49cf-8266-459b356ee99a")
2615 IOpcSignaturePartReferenceEnumerator : public IUnknown
2616 {
2617     virtual HRESULT STDMETHODCALLTYPE MoveNext(
2618         WINBOOL *hasNext) = 0;
2619 
2620     virtual HRESULT STDMETHODCALLTYPE MovePrevious(
2621         WINBOOL *hasPrevious) = 0;
2622 
2623     virtual HRESULT STDMETHODCALLTYPE GetCurrent(
2624         IOpcSignaturePartReference **partReference) = 0;
2625 
2626     virtual HRESULT STDMETHODCALLTYPE Clone(
2627         IOpcSignaturePartReferenceEnumerator **copy) = 0;
2628 
2629 };
2630 #ifdef __CRT_UUID_DECL
2631 __CRT_UUID_DECL(IOpcSignaturePartReferenceEnumerator, 0x80eb1561, 0x8c77, 0x49cf, 0x82,0x66, 0x45,0x9b,0x35,0x6e,0xe9,0x9a)
2632 #endif
2633 #else
2634 typedef struct IOpcSignaturePartReferenceEnumeratorVtbl {
2635     BEGIN_INTERFACE
2636 
2637     /*** IUnknown methods ***/
2638     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2639         IOpcSignaturePartReferenceEnumerator *This,
2640         REFIID riid,
2641         void **ppvObject);
2642 
2643     ULONG (STDMETHODCALLTYPE *AddRef)(
2644         IOpcSignaturePartReferenceEnumerator *This);
2645 
2646     ULONG (STDMETHODCALLTYPE *Release)(
2647         IOpcSignaturePartReferenceEnumerator *This);
2648 
2649     /*** IOpcSignaturePartReferenceEnumerator methods ***/
2650     HRESULT (STDMETHODCALLTYPE *MoveNext)(
2651         IOpcSignaturePartReferenceEnumerator *This,
2652         WINBOOL *hasNext);
2653 
2654     HRESULT (STDMETHODCALLTYPE *MovePrevious)(
2655         IOpcSignaturePartReferenceEnumerator *This,
2656         WINBOOL *hasPrevious);
2657 
2658     HRESULT (STDMETHODCALLTYPE *GetCurrent)(
2659         IOpcSignaturePartReferenceEnumerator *This,
2660         IOpcSignaturePartReference **partReference);
2661 
2662     HRESULT (STDMETHODCALLTYPE *Clone)(
2663         IOpcSignaturePartReferenceEnumerator *This,
2664         IOpcSignaturePartReferenceEnumerator **copy);
2665 
2666     END_INTERFACE
2667 } IOpcSignaturePartReferenceEnumeratorVtbl;
2668 
2669 interface IOpcSignaturePartReferenceEnumerator {
2670     CONST_VTBL IOpcSignaturePartReferenceEnumeratorVtbl* lpVtbl;
2671 };
2672 
2673 #ifdef COBJMACROS
2674 #ifndef WIDL_C_INLINE_WRAPPERS
2675 /*** IUnknown methods ***/
2676 #define IOpcSignaturePartReferenceEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2677 #define IOpcSignaturePartReferenceEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This)
2678 #define IOpcSignaturePartReferenceEnumerator_Release(This) (This)->lpVtbl->Release(This)
2679 /*** IOpcSignaturePartReferenceEnumerator methods ***/
2680 #define IOpcSignaturePartReferenceEnumerator_MoveNext(This,hasNext) (This)->lpVtbl->MoveNext(This,hasNext)
2681 #define IOpcSignaturePartReferenceEnumerator_MovePrevious(This,hasPrevious) (This)->lpVtbl->MovePrevious(This,hasPrevious)
2682 #define IOpcSignaturePartReferenceEnumerator_GetCurrent(This,partReference) (This)->lpVtbl->GetCurrent(This,partReference)
2683 #define IOpcSignaturePartReferenceEnumerator_Clone(This,copy) (This)->lpVtbl->Clone(This,copy)
2684 #else
2685 /*** IUnknown methods ***/
2686 static FORCEINLINE HRESULT IOpcSignaturePartReferenceEnumerator_QueryInterface(IOpcSignaturePartReferenceEnumerator* This,REFIID riid,void **ppvObject) {
2687     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2688 }
2689 static FORCEINLINE ULONG IOpcSignaturePartReferenceEnumerator_AddRef(IOpcSignaturePartReferenceEnumerator* This) {
2690     return This->lpVtbl->AddRef(This);
2691 }
2692 static FORCEINLINE ULONG IOpcSignaturePartReferenceEnumerator_Release(IOpcSignaturePartReferenceEnumerator* This) {
2693     return This->lpVtbl->Release(This);
2694 }
2695 /*** IOpcSignaturePartReferenceEnumerator methods ***/
2696 static FORCEINLINE HRESULT IOpcSignaturePartReferenceEnumerator_MoveNext(IOpcSignaturePartReferenceEnumerator* This,WINBOOL *hasNext) {
2697     return This->lpVtbl->MoveNext(This,hasNext);
2698 }
2699 static FORCEINLINE HRESULT IOpcSignaturePartReferenceEnumerator_MovePrevious(IOpcSignaturePartReferenceEnumerator* This,WINBOOL *hasPrevious) {
2700     return This->lpVtbl->MovePrevious(This,hasPrevious);
2701 }
2702 static FORCEINLINE HRESULT IOpcSignaturePartReferenceEnumerator_GetCurrent(IOpcSignaturePartReferenceEnumerator* This,IOpcSignaturePartReference **partReference) {
2703     return This->lpVtbl->GetCurrent(This,partReference);
2704 }
2705 static FORCEINLINE HRESULT IOpcSignaturePartReferenceEnumerator_Clone(IOpcSignaturePartReferenceEnumerator* This,IOpcSignaturePartReferenceEnumerator **copy) {
2706     return This->lpVtbl->Clone(This,copy);
2707 }
2708 #endif
2709 #endif
2710 
2711 #endif
2712 
2713 
2714 #endif  /* __IOpcSignaturePartReferenceEnumerator_INTERFACE_DEFINED__ */
2715 
2716 /*****************************************************************************
2717  * IOpcSignatureReference interface
2718  */
2719 #ifndef __IOpcSignatureReference_INTERFACE_DEFINED__
2720 #define __IOpcSignatureReference_INTERFACE_DEFINED__
2721 
2722 DEFINE_GUID(IID_IOpcSignatureReference, 0x1b47005e, 0x3011, 0x4edc, 0xbe,0x6f, 0x0f,0x65,0xe5,0xab,0x03,0x42);
2723 #if defined(__cplusplus) && !defined(CINTERFACE)
2724 MIDL_INTERFACE("1b47005e-3011-4edc-be6f-0f65e5ab0342")
2725 IOpcSignatureReference : public IUnknown
2726 {
2727     virtual HRESULT STDMETHODCALLTYPE GetId(
2728         LPWSTR *referenceId) = 0;
2729 
2730     virtual HRESULT STDMETHODCALLTYPE GetUri(
2731         IUri **referenceUri) = 0;
2732 
2733     virtual HRESULT STDMETHODCALLTYPE GetType(
2734         LPWSTR *type) = 0;
2735 
2736     virtual HRESULT STDMETHODCALLTYPE GetTransformMethod(
2737         OPC_CANONICALIZATION_METHOD *transformMethod) = 0;
2738 
2739     virtual HRESULT STDMETHODCALLTYPE GetDigestMethod(
2740         LPWSTR *digestMethod) = 0;
2741 
2742     virtual HRESULT STDMETHODCALLTYPE GetDigestValue(
2743         UINT8 **digestValue,
2744         UINT32 *count) = 0;
2745 
2746 };
2747 #ifdef __CRT_UUID_DECL
2748 __CRT_UUID_DECL(IOpcSignatureReference, 0x1b47005e, 0x3011, 0x4edc, 0xbe,0x6f, 0x0f,0x65,0xe5,0xab,0x03,0x42)
2749 #endif
2750 #else
2751 typedef struct IOpcSignatureReferenceVtbl {
2752     BEGIN_INTERFACE
2753 
2754     /*** IUnknown methods ***/
2755     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2756         IOpcSignatureReference *This,
2757         REFIID riid,
2758         void **ppvObject);
2759 
2760     ULONG (STDMETHODCALLTYPE *AddRef)(
2761         IOpcSignatureReference *This);
2762 
2763     ULONG (STDMETHODCALLTYPE *Release)(
2764         IOpcSignatureReference *This);
2765 
2766     /*** IOpcSignatureReference methods ***/
2767     HRESULT (STDMETHODCALLTYPE *GetId)(
2768         IOpcSignatureReference *This,
2769         LPWSTR *referenceId);
2770 
2771     HRESULT (STDMETHODCALLTYPE *GetUri)(
2772         IOpcSignatureReference *This,
2773         IUri **referenceUri);
2774 
2775     HRESULT (STDMETHODCALLTYPE *GetType)(
2776         IOpcSignatureReference *This,
2777         LPWSTR *type);
2778 
2779     HRESULT (STDMETHODCALLTYPE *GetTransformMethod)(
2780         IOpcSignatureReference *This,
2781         OPC_CANONICALIZATION_METHOD *transformMethod);
2782 
2783     HRESULT (STDMETHODCALLTYPE *GetDigestMethod)(
2784         IOpcSignatureReference *This,
2785         LPWSTR *digestMethod);
2786 
2787     HRESULT (STDMETHODCALLTYPE *GetDigestValue)(
2788         IOpcSignatureReference *This,
2789         UINT8 **digestValue,
2790         UINT32 *count);
2791 
2792     END_INTERFACE
2793 } IOpcSignatureReferenceVtbl;
2794 
2795 interface IOpcSignatureReference {
2796     CONST_VTBL IOpcSignatureReferenceVtbl* lpVtbl;
2797 };
2798 
2799 #ifdef COBJMACROS
2800 #ifndef WIDL_C_INLINE_WRAPPERS
2801 /*** IUnknown methods ***/
2802 #define IOpcSignatureReference_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2803 #define IOpcSignatureReference_AddRef(This) (This)->lpVtbl->AddRef(This)
2804 #define IOpcSignatureReference_Release(This) (This)->lpVtbl->Release(This)
2805 /*** IOpcSignatureReference methods ***/
2806 #define IOpcSignatureReference_GetId(This,referenceId) (This)->lpVtbl->GetId(This,referenceId)
2807 #define IOpcSignatureReference_GetUri(This,referenceUri) (This)->lpVtbl->GetUri(This,referenceUri)
2808 #define IOpcSignatureReference_GetType(This,type) (This)->lpVtbl->GetType(This,type)
2809 #define IOpcSignatureReference_GetTransformMethod(This,transformMethod) (This)->lpVtbl->GetTransformMethod(This,transformMethod)
2810 #define IOpcSignatureReference_GetDigestMethod(This,digestMethod) (This)->lpVtbl->GetDigestMethod(This,digestMethod)
2811 #define IOpcSignatureReference_GetDigestValue(This,digestValue,count) (This)->lpVtbl->GetDigestValue(This,digestValue,count)
2812 #else
2813 /*** IUnknown methods ***/
2814 static FORCEINLINE HRESULT IOpcSignatureReference_QueryInterface(IOpcSignatureReference* This,REFIID riid,void **ppvObject) {
2815     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2816 }
2817 static FORCEINLINE ULONG IOpcSignatureReference_AddRef(IOpcSignatureReference* This) {
2818     return This->lpVtbl->AddRef(This);
2819 }
2820 static FORCEINLINE ULONG IOpcSignatureReference_Release(IOpcSignatureReference* This) {
2821     return This->lpVtbl->Release(This);
2822 }
2823 /*** IOpcSignatureReference methods ***/
2824 static FORCEINLINE HRESULT IOpcSignatureReference_GetId(IOpcSignatureReference* This,LPWSTR *referenceId) {
2825     return This->lpVtbl->GetId(This,referenceId);
2826 }
2827 static FORCEINLINE HRESULT IOpcSignatureReference_GetUri(IOpcSignatureReference* This,IUri **referenceUri) {
2828     return This->lpVtbl->GetUri(This,referenceUri);
2829 }
2830 static FORCEINLINE HRESULT IOpcSignatureReference_GetType(IOpcSignatureReference* This,LPWSTR *type) {
2831     return This->lpVtbl->GetType(This,type);
2832 }
2833 static FORCEINLINE HRESULT IOpcSignatureReference_GetTransformMethod(IOpcSignatureReference* This,OPC_CANONICALIZATION_METHOD *transformMethod) {
2834     return This->lpVtbl->GetTransformMethod(This,transformMethod);
2835 }
2836 static FORCEINLINE HRESULT IOpcSignatureReference_GetDigestMethod(IOpcSignatureReference* This,LPWSTR *digestMethod) {
2837     return This->lpVtbl->GetDigestMethod(This,digestMethod);
2838 }
2839 static FORCEINLINE HRESULT IOpcSignatureReference_GetDigestValue(IOpcSignatureReference* This,UINT8 **digestValue,UINT32 *count) {
2840     return This->lpVtbl->GetDigestValue(This,digestValue,count);
2841 }
2842 #endif
2843 #endif
2844 
2845 #endif
2846 
2847 
2848 #endif  /* __IOpcSignatureReference_INTERFACE_DEFINED__ */
2849 
2850 /*****************************************************************************
2851  * IOpcSignatureReferenceEnumerator interface
2852  */
2853 #ifndef __IOpcSignatureReferenceEnumerator_INTERFACE_DEFINED__
2854 #define __IOpcSignatureReferenceEnumerator_INTERFACE_DEFINED__
2855 
2856 DEFINE_GUID(IID_IOpcSignatureReferenceEnumerator, 0xcfa59a45, 0x28b1, 0x4868, 0x96,0x9e, 0xfa,0x80,0x97,0xfd,0xc1,0x2a);
2857 #if defined(__cplusplus) && !defined(CINTERFACE)
2858 MIDL_INTERFACE("cfa59a45-28b1-4868-969e-fa8097fdc12a")
2859 IOpcSignatureReferenceEnumerator : public IUnknown
2860 {
2861     virtual HRESULT STDMETHODCALLTYPE MoveNext(
2862         WINBOOL *hasNext) = 0;
2863 
2864     virtual HRESULT STDMETHODCALLTYPE MovePrevious(
2865         WINBOOL *hasPrevious) = 0;
2866 
2867     virtual HRESULT STDMETHODCALLTYPE GetCurrent(
2868         IOpcSignatureReference **reference) = 0;
2869 
2870     virtual HRESULT STDMETHODCALLTYPE Clone(
2871         IOpcSignatureReferenceEnumerator **copy) = 0;
2872 
2873 };
2874 #ifdef __CRT_UUID_DECL
2875 __CRT_UUID_DECL(IOpcSignatureReferenceEnumerator, 0xcfa59a45, 0x28b1, 0x4868, 0x96,0x9e, 0xfa,0x80,0x97,0xfd,0xc1,0x2a)
2876 #endif
2877 #else
2878 typedef struct IOpcSignatureReferenceEnumeratorVtbl {
2879     BEGIN_INTERFACE
2880 
2881     /*** IUnknown methods ***/
2882     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2883         IOpcSignatureReferenceEnumerator *This,
2884         REFIID riid,
2885         void **ppvObject);
2886 
2887     ULONG (STDMETHODCALLTYPE *AddRef)(
2888         IOpcSignatureReferenceEnumerator *This);
2889 
2890     ULONG (STDMETHODCALLTYPE *Release)(
2891         IOpcSignatureReferenceEnumerator *This);
2892 
2893     /*** IOpcSignatureReferenceEnumerator methods ***/
2894     HRESULT (STDMETHODCALLTYPE *MoveNext)(
2895         IOpcSignatureReferenceEnumerator *This,
2896         WINBOOL *hasNext);
2897 
2898     HRESULT (STDMETHODCALLTYPE *MovePrevious)(
2899         IOpcSignatureReferenceEnumerator *This,
2900         WINBOOL *hasPrevious);
2901 
2902     HRESULT (STDMETHODCALLTYPE *GetCurrent)(
2903         IOpcSignatureReferenceEnumerator *This,
2904         IOpcSignatureReference **reference);
2905 
2906     HRESULT (STDMETHODCALLTYPE *Clone)(
2907         IOpcSignatureReferenceEnumerator *This,
2908         IOpcSignatureReferenceEnumerator **copy);
2909 
2910     END_INTERFACE
2911 } IOpcSignatureReferenceEnumeratorVtbl;
2912 
2913 interface IOpcSignatureReferenceEnumerator {
2914     CONST_VTBL IOpcSignatureReferenceEnumeratorVtbl* lpVtbl;
2915 };
2916 
2917 #ifdef COBJMACROS
2918 #ifndef WIDL_C_INLINE_WRAPPERS
2919 /*** IUnknown methods ***/
2920 #define IOpcSignatureReferenceEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2921 #define IOpcSignatureReferenceEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This)
2922 #define IOpcSignatureReferenceEnumerator_Release(This) (This)->lpVtbl->Release(This)
2923 /*** IOpcSignatureReferenceEnumerator methods ***/
2924 #define IOpcSignatureReferenceEnumerator_MoveNext(This,hasNext) (This)->lpVtbl->MoveNext(This,hasNext)
2925 #define IOpcSignatureReferenceEnumerator_MovePrevious(This,hasPrevious) (This)->lpVtbl->MovePrevious(This,hasPrevious)
2926 #define IOpcSignatureReferenceEnumerator_GetCurrent(This,reference) (This)->lpVtbl->GetCurrent(This,reference)
2927 #define IOpcSignatureReferenceEnumerator_Clone(This,copy) (This)->lpVtbl->Clone(This,copy)
2928 #else
2929 /*** IUnknown methods ***/
2930 static FORCEINLINE HRESULT IOpcSignatureReferenceEnumerator_QueryInterface(IOpcSignatureReferenceEnumerator* This,REFIID riid,void **ppvObject) {
2931     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2932 }
2933 static FORCEINLINE ULONG IOpcSignatureReferenceEnumerator_AddRef(IOpcSignatureReferenceEnumerator* This) {
2934     return This->lpVtbl->AddRef(This);
2935 }
2936 static FORCEINLINE ULONG IOpcSignatureReferenceEnumerator_Release(IOpcSignatureReferenceEnumerator* This) {
2937     return This->lpVtbl->Release(This);
2938 }
2939 /*** IOpcSignatureReferenceEnumerator methods ***/
2940 static FORCEINLINE HRESULT IOpcSignatureReferenceEnumerator_MoveNext(IOpcSignatureReferenceEnumerator* This,WINBOOL *hasNext) {
2941     return This->lpVtbl->MoveNext(This,hasNext);
2942 }
2943 static FORCEINLINE HRESULT IOpcSignatureReferenceEnumerator_MovePrevious(IOpcSignatureReferenceEnumerator* This,WINBOOL *hasPrevious) {
2944     return This->lpVtbl->MovePrevious(This,hasPrevious);
2945 }
2946 static FORCEINLINE HRESULT IOpcSignatureReferenceEnumerator_GetCurrent(IOpcSignatureReferenceEnumerator* This,IOpcSignatureReference **reference) {
2947     return This->lpVtbl->GetCurrent(This,reference);
2948 }
2949 static FORCEINLINE HRESULT IOpcSignatureReferenceEnumerator_Clone(IOpcSignatureReferenceEnumerator* This,IOpcSignatureReferenceEnumerator **copy) {
2950     return This->lpVtbl->Clone(This,copy);
2951 }
2952 #endif
2953 #endif
2954 
2955 #endif
2956 
2957 
2958 #endif  /* __IOpcSignatureReferenceEnumerator_INTERFACE_DEFINED__ */
2959 
2960 /*****************************************************************************
2961  * IOpcSignatureRelationshipReferenceEnumerator interface
2962  */
2963 #ifndef __IOpcSignatureRelationshipReferenceEnumerator_INTERFACE_DEFINED__
2964 #define __IOpcSignatureRelationshipReferenceEnumerator_INTERFACE_DEFINED__
2965 
2966 DEFINE_GUID(IID_IOpcSignatureRelationshipReferenceEnumerator, 0x773ba3e4, 0xf021, 0x48e4, 0xaa,0x04, 0x98,0x16,0xdb,0x5d,0x34,0x95);
2967 #if defined(__cplusplus) && !defined(CINTERFACE)
2968 MIDL_INTERFACE("773ba3e4-f021-48e4-aa04-9816db5d3495")
2969 IOpcSignatureRelationshipReferenceEnumerator : public IUnknown
2970 {
2971     virtual HRESULT STDMETHODCALLTYPE MoveNext(
2972         WINBOOL *hasNext) = 0;
2973 
2974     virtual HRESULT STDMETHODCALLTYPE MovePrevious(
2975         WINBOOL *hasPrevious) = 0;
2976 
2977     virtual HRESULT STDMETHODCALLTYPE GetCurrent(
2978         IOpcSignatureRelationshipReference **relationshipReference) = 0;
2979 
2980     virtual HRESULT STDMETHODCALLTYPE Clone(
2981         IOpcSignatureRelationshipReferenceEnumerator **copy) = 0;
2982 
2983 };
2984 #ifdef __CRT_UUID_DECL
2985 __CRT_UUID_DECL(IOpcSignatureRelationshipReferenceEnumerator, 0x773ba3e4, 0xf021, 0x48e4, 0xaa,0x04, 0x98,0x16,0xdb,0x5d,0x34,0x95)
2986 #endif
2987 #else
2988 typedef struct IOpcSignatureRelationshipReferenceEnumeratorVtbl {
2989     BEGIN_INTERFACE
2990 
2991     /*** IUnknown methods ***/
2992     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2993         IOpcSignatureRelationshipReferenceEnumerator *This,
2994         REFIID riid,
2995         void **ppvObject);
2996 
2997     ULONG (STDMETHODCALLTYPE *AddRef)(
2998         IOpcSignatureRelationshipReferenceEnumerator *This);
2999 
3000     ULONG (STDMETHODCALLTYPE *Release)(
3001         IOpcSignatureRelationshipReferenceEnumerator *This);
3002 
3003     /*** IOpcSignatureRelationshipReferenceEnumerator methods ***/
3004     HRESULT (STDMETHODCALLTYPE *MoveNext)(
3005         IOpcSignatureRelationshipReferenceEnumerator *This,
3006         WINBOOL *hasNext);
3007 
3008     HRESULT (STDMETHODCALLTYPE *MovePrevious)(
3009         IOpcSignatureRelationshipReferenceEnumerator *This,
3010         WINBOOL *hasPrevious);
3011 
3012     HRESULT (STDMETHODCALLTYPE *GetCurrent)(
3013         IOpcSignatureRelationshipReferenceEnumerator *This,
3014         IOpcSignatureRelationshipReference **relationshipReference);
3015 
3016     HRESULT (STDMETHODCALLTYPE *Clone)(
3017         IOpcSignatureRelationshipReferenceEnumerator *This,
3018         IOpcSignatureRelationshipReferenceEnumerator **copy);
3019 
3020     END_INTERFACE
3021 } IOpcSignatureRelationshipReferenceEnumeratorVtbl;
3022 
3023 interface IOpcSignatureRelationshipReferenceEnumerator {
3024     CONST_VTBL IOpcSignatureRelationshipReferenceEnumeratorVtbl* lpVtbl;
3025 };
3026 
3027 #ifdef COBJMACROS
3028 #ifndef WIDL_C_INLINE_WRAPPERS
3029 /*** IUnknown methods ***/
3030 #define IOpcSignatureRelationshipReferenceEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3031 #define IOpcSignatureRelationshipReferenceEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This)
3032 #define IOpcSignatureRelationshipReferenceEnumerator_Release(This) (This)->lpVtbl->Release(This)
3033 /*** IOpcSignatureRelationshipReferenceEnumerator methods ***/
3034 #define IOpcSignatureRelationshipReferenceEnumerator_MoveNext(This,hasNext) (This)->lpVtbl->MoveNext(This,hasNext)
3035 #define IOpcSignatureRelationshipReferenceEnumerator_MovePrevious(This,hasPrevious) (This)->lpVtbl->MovePrevious(This,hasPrevious)
3036 #define IOpcSignatureRelationshipReferenceEnumerator_GetCurrent(This,relationshipReference) (This)->lpVtbl->GetCurrent(This,relationshipReference)
3037 #define IOpcSignatureRelationshipReferenceEnumerator_Clone(This,copy) (This)->lpVtbl->Clone(This,copy)
3038 #else
3039 /*** IUnknown methods ***/
3040 static FORCEINLINE HRESULT IOpcSignatureRelationshipReferenceEnumerator_QueryInterface(IOpcSignatureRelationshipReferenceEnumerator* This,REFIID riid,void **ppvObject) {
3041     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3042 }
3043 static FORCEINLINE ULONG IOpcSignatureRelationshipReferenceEnumerator_AddRef(IOpcSignatureRelationshipReferenceEnumerator* This) {
3044     return This->lpVtbl->AddRef(This);
3045 }
3046 static FORCEINLINE ULONG IOpcSignatureRelationshipReferenceEnumerator_Release(IOpcSignatureRelationshipReferenceEnumerator* This) {
3047     return This->lpVtbl->Release(This);
3048 }
3049 /*** IOpcSignatureRelationshipReferenceEnumerator methods ***/
3050 static FORCEINLINE HRESULT IOpcSignatureRelationshipReferenceEnumerator_MoveNext(IOpcSignatureRelationshipReferenceEnumerator* This,WINBOOL *hasNext) {
3051     return This->lpVtbl->MoveNext(This,hasNext);
3052 }
3053 static FORCEINLINE HRESULT IOpcSignatureRelationshipReferenceEnumerator_MovePrevious(IOpcSignatureRelationshipReferenceEnumerator* This,WINBOOL *hasPrevious) {
3054     return This->lpVtbl->MovePrevious(This,hasPrevious);
3055 }
3056 static FORCEINLINE HRESULT IOpcSignatureRelationshipReferenceEnumerator_GetCurrent(IOpcSignatureRelationshipReferenceEnumerator* This,IOpcSignatureRelationshipReference **relationshipReference) {
3057     return This->lpVtbl->GetCurrent(This,relationshipReference);
3058 }
3059 static FORCEINLINE HRESULT IOpcSignatureRelationshipReferenceEnumerator_Clone(IOpcSignatureRelationshipReferenceEnumerator* This,IOpcSignatureRelationshipReferenceEnumerator **copy) {
3060     return This->lpVtbl->Clone(This,copy);
3061 }
3062 #endif
3063 #endif
3064 
3065 #endif
3066 
3067 
3068 #endif  /* __IOpcSignatureRelationshipReferenceEnumerator_INTERFACE_DEFINED__ */
3069 
3070 /*****************************************************************************
3071  * IOpcSignatureRelationshipReference interface
3072  */
3073 #ifndef __IOpcSignatureRelationshipReference_INTERFACE_DEFINED__
3074 #define __IOpcSignatureRelationshipReference_INTERFACE_DEFINED__
3075 
3076 DEFINE_GUID(IID_IOpcSignatureRelationshipReference, 0x57babac6, 0x9d4a, 0x4e50, 0x8b,0x86, 0xe5,0xd4,0x05,0x1e,0xae,0x7c);
3077 #if defined(__cplusplus) && !defined(CINTERFACE)
3078 MIDL_INTERFACE("57babac6-9d4a-4e50-8b86-e5d4051eae7c")
3079 IOpcSignatureRelationshipReference : public IUnknown
3080 {
3081     virtual HRESULT STDMETHODCALLTYPE GetSourceUri(
3082         IOpcUri **sourceUri) = 0;
3083 
3084     virtual HRESULT STDMETHODCALLTYPE GetDigestMethod(
3085         LPWSTR *digestMethod) = 0;
3086 
3087     virtual HRESULT STDMETHODCALLTYPE GetDigestValue(
3088         UINT8 **digestValue,
3089         UINT32 *count) = 0;
3090 
3091     virtual HRESULT STDMETHODCALLTYPE GetTransformMethod(
3092         OPC_CANONICALIZATION_METHOD *transformMethod) = 0;
3093 
3094     virtual HRESULT STDMETHODCALLTYPE GetRelationshipSigningOption(
3095         OPC_RELATIONSHIPS_SIGNING_OPTION *relationshipSigningOption) = 0;
3096 
3097     virtual HRESULT STDMETHODCALLTYPE GetRelationshipSelectorEnumerator(
3098         IOpcRelationshipSelectorEnumerator **selectorEnumerator) = 0;
3099 
3100 };
3101 #ifdef __CRT_UUID_DECL
3102 __CRT_UUID_DECL(IOpcSignatureRelationshipReference, 0x57babac6, 0x9d4a, 0x4e50, 0x8b,0x86, 0xe5,0xd4,0x05,0x1e,0xae,0x7c)
3103 #endif
3104 #else
3105 typedef struct IOpcSignatureRelationshipReferenceVtbl {
3106     BEGIN_INTERFACE
3107 
3108     /*** IUnknown methods ***/
3109     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3110         IOpcSignatureRelationshipReference *This,
3111         REFIID riid,
3112         void **ppvObject);
3113 
3114     ULONG (STDMETHODCALLTYPE *AddRef)(
3115         IOpcSignatureRelationshipReference *This);
3116 
3117     ULONG (STDMETHODCALLTYPE *Release)(
3118         IOpcSignatureRelationshipReference *This);
3119 
3120     /*** IOpcSignatureRelationshipReference methods ***/
3121     HRESULT (STDMETHODCALLTYPE *GetSourceUri)(
3122         IOpcSignatureRelationshipReference *This,
3123         IOpcUri **sourceUri);
3124 
3125     HRESULT (STDMETHODCALLTYPE *GetDigestMethod)(
3126         IOpcSignatureRelationshipReference *This,
3127         LPWSTR *digestMethod);
3128 
3129     HRESULT (STDMETHODCALLTYPE *GetDigestValue)(
3130         IOpcSignatureRelationshipReference *This,
3131         UINT8 **digestValue,
3132         UINT32 *count);
3133 
3134     HRESULT (STDMETHODCALLTYPE *GetTransformMethod)(
3135         IOpcSignatureRelationshipReference *This,
3136         OPC_CANONICALIZATION_METHOD *transformMethod);
3137 
3138     HRESULT (STDMETHODCALLTYPE *GetRelationshipSigningOption)(
3139         IOpcSignatureRelationshipReference *This,
3140         OPC_RELATIONSHIPS_SIGNING_OPTION *relationshipSigningOption);
3141 
3142     HRESULT (STDMETHODCALLTYPE *GetRelationshipSelectorEnumerator)(
3143         IOpcSignatureRelationshipReference *This,
3144         IOpcRelationshipSelectorEnumerator **selectorEnumerator);
3145 
3146     END_INTERFACE
3147 } IOpcSignatureRelationshipReferenceVtbl;
3148 
3149 interface IOpcSignatureRelationshipReference {
3150     CONST_VTBL IOpcSignatureRelationshipReferenceVtbl* lpVtbl;
3151 };
3152 
3153 #ifdef COBJMACROS
3154 #ifndef WIDL_C_INLINE_WRAPPERS
3155 /*** IUnknown methods ***/
3156 #define IOpcSignatureRelationshipReference_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3157 #define IOpcSignatureRelationshipReference_AddRef(This) (This)->lpVtbl->AddRef(This)
3158 #define IOpcSignatureRelationshipReference_Release(This) (This)->lpVtbl->Release(This)
3159 /*** IOpcSignatureRelationshipReference methods ***/
3160 #define IOpcSignatureRelationshipReference_GetSourceUri(This,sourceUri) (This)->lpVtbl->GetSourceUri(This,sourceUri)
3161 #define IOpcSignatureRelationshipReference_GetDigestMethod(This,digestMethod) (This)->lpVtbl->GetDigestMethod(This,digestMethod)
3162 #define IOpcSignatureRelationshipReference_GetDigestValue(This,digestValue,count) (This)->lpVtbl->GetDigestValue(This,digestValue,count)
3163 #define IOpcSignatureRelationshipReference_GetTransformMethod(This,transformMethod) (This)->lpVtbl->GetTransformMethod(This,transformMethod)
3164 #define IOpcSignatureRelationshipReference_GetRelationshipSigningOption(This,relationshipSigningOption) (This)->lpVtbl->GetRelationshipSigningOption(This,relationshipSigningOption)
3165 #define IOpcSignatureRelationshipReference_GetRelationshipSelectorEnumerator(This,selectorEnumerator) (This)->lpVtbl->GetRelationshipSelectorEnumerator(This,selectorEnumerator)
3166 #else
3167 /*** IUnknown methods ***/
3168 static FORCEINLINE HRESULT IOpcSignatureRelationshipReference_QueryInterface(IOpcSignatureRelationshipReference* This,REFIID riid,void **ppvObject) {
3169     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3170 }
3171 static FORCEINLINE ULONG IOpcSignatureRelationshipReference_AddRef(IOpcSignatureRelationshipReference* This) {
3172     return This->lpVtbl->AddRef(This);
3173 }
3174 static FORCEINLINE ULONG IOpcSignatureRelationshipReference_Release(IOpcSignatureRelationshipReference* This) {
3175     return This->lpVtbl->Release(This);
3176 }
3177 /*** IOpcSignatureRelationshipReference methods ***/
3178 static FORCEINLINE HRESULT IOpcSignatureRelationshipReference_GetSourceUri(IOpcSignatureRelationshipReference* This,IOpcUri **sourceUri) {
3179     return This->lpVtbl->GetSourceUri(This,sourceUri);
3180 }
3181 static FORCEINLINE HRESULT IOpcSignatureRelationshipReference_GetDigestMethod(IOpcSignatureRelationshipReference* This,LPWSTR *digestMethod) {
3182     return This->lpVtbl->GetDigestMethod(This,digestMethod);
3183 }
3184 static FORCEINLINE HRESULT IOpcSignatureRelationshipReference_GetDigestValue(IOpcSignatureRelationshipReference* This,UINT8 **digestValue,UINT32 *count) {
3185     return This->lpVtbl->GetDigestValue(This,digestValue,count);
3186 }
3187 static FORCEINLINE HRESULT IOpcSignatureRelationshipReference_GetTransformMethod(IOpcSignatureRelationshipReference* This,OPC_CANONICALIZATION_METHOD *transformMethod) {
3188     return This->lpVtbl->GetTransformMethod(This,transformMethod);
3189 }
3190 static FORCEINLINE HRESULT IOpcSignatureRelationshipReference_GetRelationshipSigningOption(IOpcSignatureRelationshipReference* This,OPC_RELATIONSHIPS_SIGNING_OPTION *relationshipSigningOption) {
3191     return This->lpVtbl->GetRelationshipSigningOption(This,relationshipSigningOption);
3192 }
3193 static FORCEINLINE HRESULT IOpcSignatureRelationshipReference_GetRelationshipSelectorEnumerator(IOpcSignatureRelationshipReference* This,IOpcRelationshipSelectorEnumerator **selectorEnumerator) {
3194     return This->lpVtbl->GetRelationshipSelectorEnumerator(This,selectorEnumerator);
3195 }
3196 #endif
3197 #endif
3198 
3199 #endif
3200 
3201 
3202 #endif  /* __IOpcSignatureRelationshipReference_INTERFACE_DEFINED__ */
3203 
3204 /*****************************************************************************
3205  * IOpcRelationshipSelectorEnumerator interface
3206  */
3207 #ifndef __IOpcRelationshipSelectorEnumerator_INTERFACE_DEFINED__
3208 #define __IOpcRelationshipSelectorEnumerator_INTERFACE_DEFINED__
3209 
3210 DEFINE_GUID(IID_IOpcRelationshipSelectorEnumerator, 0x5e50a181, 0xa91b, 0x48ac, 0x88,0xd2, 0xbc,0xa3,0xd8,0xf8,0xc0,0xb1);
3211 #if defined(__cplusplus) && !defined(CINTERFACE)
3212 MIDL_INTERFACE("5e50a181-a91b-48ac-88d2-bca3d8f8c0b1")
3213 IOpcRelationshipSelectorEnumerator : public IUnknown
3214 {
3215     virtual HRESULT STDMETHODCALLTYPE MoveNext(
3216         WINBOOL *hasNext) = 0;
3217 
3218     virtual HRESULT STDMETHODCALLTYPE MovePrevious(
3219         WINBOOL *hasPrevious) = 0;
3220 
3221     virtual HRESULT STDMETHODCALLTYPE GetCurrent(
3222         IOpcRelationshipSelector **relationshipSelector) = 0;
3223 
3224     virtual HRESULT STDMETHODCALLTYPE Clone(
3225         IOpcRelationshipSelectorEnumerator **copy) = 0;
3226 
3227 };
3228 #ifdef __CRT_UUID_DECL
3229 __CRT_UUID_DECL(IOpcRelationshipSelectorEnumerator, 0x5e50a181, 0xa91b, 0x48ac, 0x88,0xd2, 0xbc,0xa3,0xd8,0xf8,0xc0,0xb1)
3230 #endif
3231 #else
3232 typedef struct IOpcRelationshipSelectorEnumeratorVtbl {
3233     BEGIN_INTERFACE
3234 
3235     /*** IUnknown methods ***/
3236     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3237         IOpcRelationshipSelectorEnumerator *This,
3238         REFIID riid,
3239         void **ppvObject);
3240 
3241     ULONG (STDMETHODCALLTYPE *AddRef)(
3242         IOpcRelationshipSelectorEnumerator *This);
3243 
3244     ULONG (STDMETHODCALLTYPE *Release)(
3245         IOpcRelationshipSelectorEnumerator *This);
3246 
3247     /*** IOpcRelationshipSelectorEnumerator methods ***/
3248     HRESULT (STDMETHODCALLTYPE *MoveNext)(
3249         IOpcRelationshipSelectorEnumerator *This,
3250         WINBOOL *hasNext);
3251 
3252     HRESULT (STDMETHODCALLTYPE *MovePrevious)(
3253         IOpcRelationshipSelectorEnumerator *This,
3254         WINBOOL *hasPrevious);
3255 
3256     HRESULT (STDMETHODCALLTYPE *GetCurrent)(
3257         IOpcRelationshipSelectorEnumerator *This,
3258         IOpcRelationshipSelector **relationshipSelector);
3259 
3260     HRESULT (STDMETHODCALLTYPE *Clone)(
3261         IOpcRelationshipSelectorEnumerator *This,
3262         IOpcRelationshipSelectorEnumerator **copy);
3263 
3264     END_INTERFACE
3265 } IOpcRelationshipSelectorEnumeratorVtbl;
3266 
3267 interface IOpcRelationshipSelectorEnumerator {
3268     CONST_VTBL IOpcRelationshipSelectorEnumeratorVtbl* lpVtbl;
3269 };
3270 
3271 #ifdef COBJMACROS
3272 #ifndef WIDL_C_INLINE_WRAPPERS
3273 /*** IUnknown methods ***/
3274 #define IOpcRelationshipSelectorEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3275 #define IOpcRelationshipSelectorEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This)
3276 #define IOpcRelationshipSelectorEnumerator_Release(This) (This)->lpVtbl->Release(This)
3277 /*** IOpcRelationshipSelectorEnumerator methods ***/
3278 #define IOpcRelationshipSelectorEnumerator_MoveNext(This,hasNext) (This)->lpVtbl->MoveNext(This,hasNext)
3279 #define IOpcRelationshipSelectorEnumerator_MovePrevious(This,hasPrevious) (This)->lpVtbl->MovePrevious(This,hasPrevious)
3280 #define IOpcRelationshipSelectorEnumerator_GetCurrent(This,relationshipSelector) (This)->lpVtbl->GetCurrent(This,relationshipSelector)
3281 #define IOpcRelationshipSelectorEnumerator_Clone(This,copy) (This)->lpVtbl->Clone(This,copy)
3282 #else
3283 /*** IUnknown methods ***/
3284 static FORCEINLINE HRESULT IOpcRelationshipSelectorEnumerator_QueryInterface(IOpcRelationshipSelectorEnumerator* This,REFIID riid,void **ppvObject) {
3285     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3286 }
3287 static FORCEINLINE ULONG IOpcRelationshipSelectorEnumerator_AddRef(IOpcRelationshipSelectorEnumerator* This) {
3288     return This->lpVtbl->AddRef(This);
3289 }
3290 static FORCEINLINE ULONG IOpcRelationshipSelectorEnumerator_Release(IOpcRelationshipSelectorEnumerator* This) {
3291     return This->lpVtbl->Release(This);
3292 }
3293 /*** IOpcRelationshipSelectorEnumerator methods ***/
3294 static FORCEINLINE HRESULT IOpcRelationshipSelectorEnumerator_MoveNext(IOpcRelationshipSelectorEnumerator* This,WINBOOL *hasNext) {
3295     return This->lpVtbl->MoveNext(This,hasNext);
3296 }
3297 static FORCEINLINE HRESULT IOpcRelationshipSelectorEnumerator_MovePrevious(IOpcRelationshipSelectorEnumerator* This,WINBOOL *hasPrevious) {
3298     return This->lpVtbl->MovePrevious(This,hasPrevious);
3299 }
3300 static FORCEINLINE HRESULT IOpcRelationshipSelectorEnumerator_GetCurrent(IOpcRelationshipSelectorEnumerator* This,IOpcRelationshipSelector **relationshipSelector) {
3301     return This->lpVtbl->GetCurrent(This,relationshipSelector);
3302 }
3303 static FORCEINLINE HRESULT IOpcRelationshipSelectorEnumerator_Clone(IOpcRelationshipSelectorEnumerator* This,IOpcRelationshipSelectorEnumerator **copy) {
3304     return This->lpVtbl->Clone(This,copy);
3305 }
3306 #endif
3307 #endif
3308 
3309 #endif
3310 
3311 
3312 #endif  /* __IOpcRelationshipSelectorEnumerator_INTERFACE_DEFINED__ */
3313 
3314 /*****************************************************************************
3315  * IOpcCertificateEnumerator interface
3316  */
3317 #ifndef __IOpcCertificateEnumerator_INTERFACE_DEFINED__
3318 #define __IOpcCertificateEnumerator_INTERFACE_DEFINED__
3319 
3320 DEFINE_GUID(IID_IOpcCertificateEnumerator, 0x85131937, 0x8f24, 0x421f, 0xb4,0x39, 0x59,0xab,0x24,0xd1,0x40,0xb8);
3321 #if defined(__cplusplus) && !defined(CINTERFACE)
3322 MIDL_INTERFACE("85131937-8f24-421f-b439-59ab24d140b8")
3323 IOpcCertificateEnumerator : public IUnknown
3324 {
3325     virtual HRESULT STDMETHODCALLTYPE MoveNext(
3326         WINBOOL *hasNext) = 0;
3327 
3328     virtual HRESULT STDMETHODCALLTYPE MovePrevious(
3329         WINBOOL *hasPrevious) = 0;
3330 
3331     virtual HRESULT STDMETHODCALLTYPE GetCurrent(
3332         const CERT_CONTEXT **certificate) = 0;
3333 
3334     virtual HRESULT STDMETHODCALLTYPE Clone(
3335         IOpcCertificateEnumerator **copy) = 0;
3336 
3337 };
3338 #ifdef __CRT_UUID_DECL
3339 __CRT_UUID_DECL(IOpcCertificateEnumerator, 0x85131937, 0x8f24, 0x421f, 0xb4,0x39, 0x59,0xab,0x24,0xd1,0x40,0xb8)
3340 #endif
3341 #else
3342 typedef struct IOpcCertificateEnumeratorVtbl {
3343     BEGIN_INTERFACE
3344 
3345     /*** IUnknown methods ***/
3346     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3347         IOpcCertificateEnumerator *This,
3348         REFIID riid,
3349         void **ppvObject);
3350 
3351     ULONG (STDMETHODCALLTYPE *AddRef)(
3352         IOpcCertificateEnumerator *This);
3353 
3354     ULONG (STDMETHODCALLTYPE *Release)(
3355         IOpcCertificateEnumerator *This);
3356 
3357     /*** IOpcCertificateEnumerator methods ***/
3358     HRESULT (STDMETHODCALLTYPE *MoveNext)(
3359         IOpcCertificateEnumerator *This,
3360         WINBOOL *hasNext);
3361 
3362     HRESULT (STDMETHODCALLTYPE *MovePrevious)(
3363         IOpcCertificateEnumerator *This,
3364         WINBOOL *hasPrevious);
3365 
3366     HRESULT (STDMETHODCALLTYPE *GetCurrent)(
3367         IOpcCertificateEnumerator *This,
3368         const CERT_CONTEXT **certificate);
3369 
3370     HRESULT (STDMETHODCALLTYPE *Clone)(
3371         IOpcCertificateEnumerator *This,
3372         IOpcCertificateEnumerator **copy);
3373 
3374     END_INTERFACE
3375 } IOpcCertificateEnumeratorVtbl;
3376 
3377 interface IOpcCertificateEnumerator {
3378     CONST_VTBL IOpcCertificateEnumeratorVtbl* lpVtbl;
3379 };
3380 
3381 #ifdef COBJMACROS
3382 #ifndef WIDL_C_INLINE_WRAPPERS
3383 /*** IUnknown methods ***/
3384 #define IOpcCertificateEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3385 #define IOpcCertificateEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This)
3386 #define IOpcCertificateEnumerator_Release(This) (This)->lpVtbl->Release(This)
3387 /*** IOpcCertificateEnumerator methods ***/
3388 #define IOpcCertificateEnumerator_MoveNext(This,hasNext) (This)->lpVtbl->MoveNext(This,hasNext)
3389 #define IOpcCertificateEnumerator_MovePrevious(This,hasPrevious) (This)->lpVtbl->MovePrevious(This,hasPrevious)
3390 #define IOpcCertificateEnumerator_GetCurrent(This,certificate) (This)->lpVtbl->GetCurrent(This,certificate)
3391 #define IOpcCertificateEnumerator_Clone(This,copy) (This)->lpVtbl->Clone(This,copy)
3392 #else
3393 /*** IUnknown methods ***/
3394 static FORCEINLINE HRESULT IOpcCertificateEnumerator_QueryInterface(IOpcCertificateEnumerator* This,REFIID riid,void **ppvObject) {
3395     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3396 }
3397 static FORCEINLINE ULONG IOpcCertificateEnumerator_AddRef(IOpcCertificateEnumerator* This) {
3398     return This->lpVtbl->AddRef(This);
3399 }
3400 static FORCEINLINE ULONG IOpcCertificateEnumerator_Release(IOpcCertificateEnumerator* This) {
3401     return This->lpVtbl->Release(This);
3402 }
3403 /*** IOpcCertificateEnumerator methods ***/
3404 static FORCEINLINE HRESULT IOpcCertificateEnumerator_MoveNext(IOpcCertificateEnumerator* This,WINBOOL *hasNext) {
3405     return This->lpVtbl->MoveNext(This,hasNext);
3406 }
3407 static FORCEINLINE HRESULT IOpcCertificateEnumerator_MovePrevious(IOpcCertificateEnumerator* This,WINBOOL *hasPrevious) {
3408     return This->lpVtbl->MovePrevious(This,hasPrevious);
3409 }
3410 static FORCEINLINE HRESULT IOpcCertificateEnumerator_GetCurrent(IOpcCertificateEnumerator* This,const CERT_CONTEXT **certificate) {
3411     return This->lpVtbl->GetCurrent(This,certificate);
3412 }
3413 static FORCEINLINE HRESULT IOpcCertificateEnumerator_Clone(IOpcCertificateEnumerator* This,IOpcCertificateEnumerator **copy) {
3414     return This->lpVtbl->Clone(This,copy);
3415 }
3416 #endif
3417 #endif
3418 
3419 #endif
3420 
3421 
3422 #endif  /* __IOpcCertificateEnumerator_INTERFACE_DEFINED__ */
3423 
3424 /*****************************************************************************
3425  * IOpcCertificateSet interface
3426  */
3427 #ifndef __IOpcCertificateSet_INTERFACE_DEFINED__
3428 #define __IOpcCertificateSet_INTERFACE_DEFINED__
3429 
3430 DEFINE_GUID(IID_IOpcCertificateSet, 0x56ea4325, 0x8e2d, 0x4167, 0xb1,0xa4, 0xe4,0x86,0xd2,0x4c,0x8f,0xa7);
3431 #if defined(__cplusplus) && !defined(CINTERFACE)
3432 MIDL_INTERFACE("56ea4325-8e2d-4167-b1a4-e486d24c8fa7")
3433 IOpcCertificateSet : public IUnknown
3434 {
3435     virtual HRESULT STDMETHODCALLTYPE Add(
3436         const CERT_CONTEXT *certificate) = 0;
3437 
3438     virtual HRESULT STDMETHODCALLTYPE Remove(
3439         const CERT_CONTEXT *certificate) = 0;
3440 
3441     virtual HRESULT STDMETHODCALLTYPE GetEnumerator(
3442         IOpcCertificateEnumerator **certificateEnumerator) = 0;
3443 
3444 };
3445 #ifdef __CRT_UUID_DECL
3446 __CRT_UUID_DECL(IOpcCertificateSet, 0x56ea4325, 0x8e2d, 0x4167, 0xb1,0xa4, 0xe4,0x86,0xd2,0x4c,0x8f,0xa7)
3447 #endif
3448 #else
3449 typedef struct IOpcCertificateSetVtbl {
3450     BEGIN_INTERFACE
3451 
3452     /*** IUnknown methods ***/
3453     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3454         IOpcCertificateSet *This,
3455         REFIID riid,
3456         void **ppvObject);
3457 
3458     ULONG (STDMETHODCALLTYPE *AddRef)(
3459         IOpcCertificateSet *This);
3460 
3461     ULONG (STDMETHODCALLTYPE *Release)(
3462         IOpcCertificateSet *This);
3463 
3464     /*** IOpcCertificateSet methods ***/
3465     HRESULT (STDMETHODCALLTYPE *Add)(
3466         IOpcCertificateSet *This,
3467         const CERT_CONTEXT *certificate);
3468 
3469     HRESULT (STDMETHODCALLTYPE *Remove)(
3470         IOpcCertificateSet *This,
3471         const CERT_CONTEXT *certificate);
3472 
3473     HRESULT (STDMETHODCALLTYPE *GetEnumerator)(
3474         IOpcCertificateSet *This,
3475         IOpcCertificateEnumerator **certificateEnumerator);
3476 
3477     END_INTERFACE
3478 } IOpcCertificateSetVtbl;
3479 
3480 interface IOpcCertificateSet {
3481     CONST_VTBL IOpcCertificateSetVtbl* lpVtbl;
3482 };
3483 
3484 #ifdef COBJMACROS
3485 #ifndef WIDL_C_INLINE_WRAPPERS
3486 /*** IUnknown methods ***/
3487 #define IOpcCertificateSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3488 #define IOpcCertificateSet_AddRef(This) (This)->lpVtbl->AddRef(This)
3489 #define IOpcCertificateSet_Release(This) (This)->lpVtbl->Release(This)
3490 /*** IOpcCertificateSet methods ***/
3491 #define IOpcCertificateSet_Add(This,certificate) (This)->lpVtbl->Add(This,certificate)
3492 #define IOpcCertificateSet_Remove(This,certificate) (This)->lpVtbl->Remove(This,certificate)
3493 #define IOpcCertificateSet_GetEnumerator(This,certificateEnumerator) (This)->lpVtbl->GetEnumerator(This,certificateEnumerator)
3494 #else
3495 /*** IUnknown methods ***/
3496 static FORCEINLINE HRESULT IOpcCertificateSet_QueryInterface(IOpcCertificateSet* This,REFIID riid,void **ppvObject) {
3497     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3498 }
3499 static FORCEINLINE ULONG IOpcCertificateSet_AddRef(IOpcCertificateSet* This) {
3500     return This->lpVtbl->AddRef(This);
3501 }
3502 static FORCEINLINE ULONG IOpcCertificateSet_Release(IOpcCertificateSet* This) {
3503     return This->lpVtbl->Release(This);
3504 }
3505 /*** IOpcCertificateSet methods ***/
3506 static FORCEINLINE HRESULT IOpcCertificateSet_Add(IOpcCertificateSet* This,const CERT_CONTEXT *certificate) {
3507     return This->lpVtbl->Add(This,certificate);
3508 }
3509 static FORCEINLINE HRESULT IOpcCertificateSet_Remove(IOpcCertificateSet* This,const CERT_CONTEXT *certificate) {
3510     return This->lpVtbl->Remove(This,certificate);
3511 }
3512 static FORCEINLINE HRESULT IOpcCertificateSet_GetEnumerator(IOpcCertificateSet* This,IOpcCertificateEnumerator **certificateEnumerator) {
3513     return This->lpVtbl->GetEnumerator(This,certificateEnumerator);
3514 }
3515 #endif
3516 #endif
3517 
3518 #endif
3519 
3520 
3521 #endif  /* __IOpcCertificateSet_INTERFACE_DEFINED__ */
3522 
3523 /*****************************************************************************
3524  * IOpcDigitalSignatureEnumerator interface
3525  */
3526 #ifndef __IOpcDigitalSignatureEnumerator_INTERFACE_DEFINED__
3527 #define __IOpcDigitalSignatureEnumerator_INTERFACE_DEFINED__
3528 
3529 DEFINE_GUID(IID_IOpcDigitalSignatureEnumerator, 0x967b6882, 0x0ba3, 0x4358, 0xb9,0xe7, 0xb6,0x4c,0x75,0x06,0x3c,0x5e);
3530 #if defined(__cplusplus) && !defined(CINTERFACE)
3531 MIDL_INTERFACE("967b6882-0ba3-4358-b9e7-b64c75063c5e")
3532 IOpcDigitalSignatureEnumerator : public IUnknown
3533 {
3534     virtual HRESULT STDMETHODCALLTYPE MoveNext(
3535         WINBOOL *hasNext) = 0;
3536 
3537     virtual HRESULT STDMETHODCALLTYPE MovePrevious(
3538         WINBOOL *hasPrevious) = 0;
3539 
3540     virtual HRESULT STDMETHODCALLTYPE GetCurrent(
3541         IOpcDigitalSignature **digitalSignature) = 0;
3542 
3543     virtual HRESULT STDMETHODCALLTYPE Clone(
3544         IOpcDigitalSignatureEnumerator **copy) = 0;
3545 
3546 };
3547 #ifdef __CRT_UUID_DECL
3548 __CRT_UUID_DECL(IOpcDigitalSignatureEnumerator, 0x967b6882, 0x0ba3, 0x4358, 0xb9,0xe7, 0xb6,0x4c,0x75,0x06,0x3c,0x5e)
3549 #endif
3550 #else
3551 typedef struct IOpcDigitalSignatureEnumeratorVtbl {
3552     BEGIN_INTERFACE
3553 
3554     /*** IUnknown methods ***/
3555     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3556         IOpcDigitalSignatureEnumerator *This,
3557         REFIID riid,
3558         void **ppvObject);
3559 
3560     ULONG (STDMETHODCALLTYPE *AddRef)(
3561         IOpcDigitalSignatureEnumerator *This);
3562 
3563     ULONG (STDMETHODCALLTYPE *Release)(
3564         IOpcDigitalSignatureEnumerator *This);
3565 
3566     /*** IOpcDigitalSignatureEnumerator methods ***/
3567     HRESULT (STDMETHODCALLTYPE *MoveNext)(
3568         IOpcDigitalSignatureEnumerator *This,
3569         WINBOOL *hasNext);
3570 
3571     HRESULT (STDMETHODCALLTYPE *MovePrevious)(
3572         IOpcDigitalSignatureEnumerator *This,
3573         WINBOOL *hasPrevious);
3574 
3575     HRESULT (STDMETHODCALLTYPE *GetCurrent)(
3576         IOpcDigitalSignatureEnumerator *This,
3577         IOpcDigitalSignature **digitalSignature);
3578 
3579     HRESULT (STDMETHODCALLTYPE *Clone)(
3580         IOpcDigitalSignatureEnumerator *This,
3581         IOpcDigitalSignatureEnumerator **copy);
3582 
3583     END_INTERFACE
3584 } IOpcDigitalSignatureEnumeratorVtbl;
3585 
3586 interface IOpcDigitalSignatureEnumerator {
3587     CONST_VTBL IOpcDigitalSignatureEnumeratorVtbl* lpVtbl;
3588 };
3589 
3590 #ifdef COBJMACROS
3591 #ifndef WIDL_C_INLINE_WRAPPERS
3592 /*** IUnknown methods ***/
3593 #define IOpcDigitalSignatureEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3594 #define IOpcDigitalSignatureEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This)
3595 #define IOpcDigitalSignatureEnumerator_Release(This) (This)->lpVtbl->Release(This)
3596 /*** IOpcDigitalSignatureEnumerator methods ***/
3597 #define IOpcDigitalSignatureEnumerator_MoveNext(This,hasNext) (This)->lpVtbl->MoveNext(This,hasNext)
3598 #define IOpcDigitalSignatureEnumerator_MovePrevious(This,hasPrevious) (This)->lpVtbl->MovePrevious(This,hasPrevious)
3599 #define IOpcDigitalSignatureEnumerator_GetCurrent(This,digitalSignature) (This)->lpVtbl->GetCurrent(This,digitalSignature)
3600 #define IOpcDigitalSignatureEnumerator_Clone(This,copy) (This)->lpVtbl->Clone(This,copy)
3601 #else
3602 /*** IUnknown methods ***/
3603 static FORCEINLINE HRESULT IOpcDigitalSignatureEnumerator_QueryInterface(IOpcDigitalSignatureEnumerator* This,REFIID riid,void **ppvObject) {
3604     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3605 }
3606 static FORCEINLINE ULONG IOpcDigitalSignatureEnumerator_AddRef(IOpcDigitalSignatureEnumerator* This) {
3607     return This->lpVtbl->AddRef(This);
3608 }
3609 static FORCEINLINE ULONG IOpcDigitalSignatureEnumerator_Release(IOpcDigitalSignatureEnumerator* This) {
3610     return This->lpVtbl->Release(This);
3611 }
3612 /*** IOpcDigitalSignatureEnumerator methods ***/
3613 static FORCEINLINE HRESULT IOpcDigitalSignatureEnumerator_MoveNext(IOpcDigitalSignatureEnumerator* This,WINBOOL *hasNext) {
3614     return This->lpVtbl->MoveNext(This,hasNext);
3615 }
3616 static FORCEINLINE HRESULT IOpcDigitalSignatureEnumerator_MovePrevious(IOpcDigitalSignatureEnumerator* This,WINBOOL *hasPrevious) {
3617     return This->lpVtbl->MovePrevious(This,hasPrevious);
3618 }
3619 static FORCEINLINE HRESULT IOpcDigitalSignatureEnumerator_GetCurrent(IOpcDigitalSignatureEnumerator* This,IOpcDigitalSignature **digitalSignature) {
3620     return This->lpVtbl->GetCurrent(This,digitalSignature);
3621 }
3622 static FORCEINLINE HRESULT IOpcDigitalSignatureEnumerator_Clone(IOpcDigitalSignatureEnumerator* This,IOpcDigitalSignatureEnumerator **copy) {
3623     return This->lpVtbl->Clone(This,copy);
3624 }
3625 #endif
3626 #endif
3627 
3628 #endif
3629 
3630 
3631 #endif  /* __IOpcDigitalSignatureEnumerator_INTERFACE_DEFINED__ */
3632 
3633 /*****************************************************************************
3634  * IOpcDigitalSignatureManager interface
3635  */
3636 #ifndef __IOpcDigitalSignatureManager_INTERFACE_DEFINED__
3637 #define __IOpcDigitalSignatureManager_INTERFACE_DEFINED__
3638 
3639 DEFINE_GUID(IID_IOpcDigitalSignatureManager, 0xd5e62a0b, 0x696d, 0x462f, 0x94,0xdf, 0x72,0xe3,0x3c,0xef,0x26,0x59);
3640 #if defined(__cplusplus) && !defined(CINTERFACE)
3641 MIDL_INTERFACE("d5e62a0b-696d-462f-94df-72e33cef2659")
3642 IOpcDigitalSignatureManager : public IUnknown
3643 {
3644     virtual HRESULT STDMETHODCALLTYPE GetSignatureOriginPartName(
3645         IOpcPartUri **signatureOriginPartName) = 0;
3646 
3647     virtual HRESULT STDMETHODCALLTYPE SetSignatureOriginPartName(
3648         IOpcPartUri *signatureOriginPartName) = 0;
3649 
3650     virtual HRESULT STDMETHODCALLTYPE GetSignatureEnumerator(
3651         IOpcDigitalSignatureEnumerator **signatureEnumerator) = 0;
3652 
3653     virtual HRESULT STDMETHODCALLTYPE RemoveSignature(
3654         IOpcPartUri *signaturePartName) = 0;
3655 
3656     virtual HRESULT STDMETHODCALLTYPE CreateSigningOptions(
3657         IOpcSigningOptions **signingOptions) = 0;
3658 
3659     virtual HRESULT STDMETHODCALLTYPE Validate(
3660         IOpcDigitalSignature *signature,
3661         const CERT_CONTEXT *certificate,
3662         OPC_SIGNATURE_VALIDATION_RESULT *validationResult) = 0;
3663 
3664     virtual HRESULT STDMETHODCALLTYPE Sign(
3665         const CERT_CONTEXT *certificate,
3666         IOpcSigningOptions *signingOptions,
3667         IOpcDigitalSignature **digitalSignature) = 0;
3668 
3669     virtual HRESULT STDMETHODCALLTYPE ReplaceSignatureXml(
3670         IOpcPartUri *signaturePartName,
3671         const UINT8 *newSignatureXml,
3672         UINT32 count,
3673         IOpcDigitalSignature **digitalSignature) = 0;
3674 
3675 };
3676 #ifdef __CRT_UUID_DECL
3677 __CRT_UUID_DECL(IOpcDigitalSignatureManager, 0xd5e62a0b, 0x696d, 0x462f, 0x94,0xdf, 0x72,0xe3,0x3c,0xef,0x26,0x59)
3678 #endif
3679 #else
3680 typedef struct IOpcDigitalSignatureManagerVtbl {
3681     BEGIN_INTERFACE
3682 
3683     /*** IUnknown methods ***/
3684     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3685         IOpcDigitalSignatureManager *This,
3686         REFIID riid,
3687         void **ppvObject);
3688 
3689     ULONG (STDMETHODCALLTYPE *AddRef)(
3690         IOpcDigitalSignatureManager *This);
3691 
3692     ULONG (STDMETHODCALLTYPE *Release)(
3693         IOpcDigitalSignatureManager *This);
3694 
3695     /*** IOpcDigitalSignatureManager methods ***/
3696     HRESULT (STDMETHODCALLTYPE *GetSignatureOriginPartName)(
3697         IOpcDigitalSignatureManager *This,
3698         IOpcPartUri **signatureOriginPartName);
3699 
3700     HRESULT (STDMETHODCALLTYPE *SetSignatureOriginPartName)(
3701         IOpcDigitalSignatureManager *This,
3702         IOpcPartUri *signatureOriginPartName);
3703 
3704     HRESULT (STDMETHODCALLTYPE *GetSignatureEnumerator)(
3705         IOpcDigitalSignatureManager *This,
3706         IOpcDigitalSignatureEnumerator **signatureEnumerator);
3707 
3708     HRESULT (STDMETHODCALLTYPE *RemoveSignature)(
3709         IOpcDigitalSignatureManager *This,
3710         IOpcPartUri *signaturePartName);
3711 
3712     HRESULT (STDMETHODCALLTYPE *CreateSigningOptions)(
3713         IOpcDigitalSignatureManager *This,
3714         IOpcSigningOptions **signingOptions);
3715 
3716     HRESULT (STDMETHODCALLTYPE *Validate)(
3717         IOpcDigitalSignatureManager *This,
3718         IOpcDigitalSignature *signature,
3719         const CERT_CONTEXT *certificate,
3720         OPC_SIGNATURE_VALIDATION_RESULT *validationResult);
3721 
3722     HRESULT (STDMETHODCALLTYPE *Sign)(
3723         IOpcDigitalSignatureManager *This,
3724         const CERT_CONTEXT *certificate,
3725         IOpcSigningOptions *signingOptions,
3726         IOpcDigitalSignature **digitalSignature);
3727 
3728     HRESULT (STDMETHODCALLTYPE *ReplaceSignatureXml)(
3729         IOpcDigitalSignatureManager *This,
3730         IOpcPartUri *signaturePartName,
3731         const UINT8 *newSignatureXml,
3732         UINT32 count,
3733         IOpcDigitalSignature **digitalSignature);
3734 
3735     END_INTERFACE
3736 } IOpcDigitalSignatureManagerVtbl;
3737 
3738 interface IOpcDigitalSignatureManager {
3739     CONST_VTBL IOpcDigitalSignatureManagerVtbl* lpVtbl;
3740 };
3741 
3742 #ifdef COBJMACROS
3743 #ifndef WIDL_C_INLINE_WRAPPERS
3744 /*** IUnknown methods ***/
3745 #define IOpcDigitalSignatureManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3746 #define IOpcDigitalSignatureManager_AddRef(This) (This)->lpVtbl->AddRef(This)
3747 #define IOpcDigitalSignatureManager_Release(This) (This)->lpVtbl->Release(This)
3748 /*** IOpcDigitalSignatureManager methods ***/
3749 #define IOpcDigitalSignatureManager_GetSignatureOriginPartName(This,signatureOriginPartName) (This)->lpVtbl->GetSignatureOriginPartName(This,signatureOriginPartName)
3750 #define IOpcDigitalSignatureManager_SetSignatureOriginPartName(This,signatureOriginPartName) (This)->lpVtbl->SetSignatureOriginPartName(This,signatureOriginPartName)
3751 #define IOpcDigitalSignatureManager_GetSignatureEnumerator(This,signatureEnumerator) (This)->lpVtbl->GetSignatureEnumerator(This,signatureEnumerator)
3752 #define IOpcDigitalSignatureManager_RemoveSignature(This,signaturePartName) (This)->lpVtbl->RemoveSignature(This,signaturePartName)
3753 #define IOpcDigitalSignatureManager_CreateSigningOptions(This,signingOptions) (This)->lpVtbl->CreateSigningOptions(This,signingOptions)
3754 #define IOpcDigitalSignatureManager_Validate(This,signature,certificate,validationResult) (This)->lpVtbl->Validate(This,signature,certificate,validationResult)
3755 #define IOpcDigitalSignatureManager_Sign(This,certificate,signingOptions,digitalSignature) (This)->lpVtbl->Sign(This,certificate,signingOptions,digitalSignature)
3756 #define IOpcDigitalSignatureManager_ReplaceSignatureXml(This,signaturePartName,newSignatureXml,count,digitalSignature) (This)->lpVtbl->ReplaceSignatureXml(This,signaturePartName,newSignatureXml,count,digitalSignature)
3757 #else
3758 /*** IUnknown methods ***/
3759 static FORCEINLINE HRESULT IOpcDigitalSignatureManager_QueryInterface(IOpcDigitalSignatureManager* This,REFIID riid,void **ppvObject) {
3760     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3761 }
3762 static FORCEINLINE ULONG IOpcDigitalSignatureManager_AddRef(IOpcDigitalSignatureManager* This) {
3763     return This->lpVtbl->AddRef(This);
3764 }
3765 static FORCEINLINE ULONG IOpcDigitalSignatureManager_Release(IOpcDigitalSignatureManager* This) {
3766     return This->lpVtbl->Release(This);
3767 }
3768 /*** IOpcDigitalSignatureManager methods ***/
3769 static FORCEINLINE HRESULT IOpcDigitalSignatureManager_GetSignatureOriginPartName(IOpcDigitalSignatureManager* This,IOpcPartUri **signatureOriginPartName) {
3770     return This->lpVtbl->GetSignatureOriginPartName(This,signatureOriginPartName);
3771 }
3772 static FORCEINLINE HRESULT IOpcDigitalSignatureManager_SetSignatureOriginPartName(IOpcDigitalSignatureManager* This,IOpcPartUri *signatureOriginPartName) {
3773     return This->lpVtbl->SetSignatureOriginPartName(This,signatureOriginPartName);
3774 }
3775 static FORCEINLINE HRESULT IOpcDigitalSignatureManager_GetSignatureEnumerator(IOpcDigitalSignatureManager* This,IOpcDigitalSignatureEnumerator **signatureEnumerator) {
3776     return This->lpVtbl->GetSignatureEnumerator(This,signatureEnumerator);
3777 }
3778 static FORCEINLINE HRESULT IOpcDigitalSignatureManager_RemoveSignature(IOpcDigitalSignatureManager* This,IOpcPartUri *signaturePartName) {
3779     return This->lpVtbl->RemoveSignature(This,signaturePartName);
3780 }
3781 static FORCEINLINE HRESULT IOpcDigitalSignatureManager_CreateSigningOptions(IOpcDigitalSignatureManager* This,IOpcSigningOptions **signingOptions) {
3782     return This->lpVtbl->CreateSigningOptions(This,signingOptions);
3783 }
3784 static FORCEINLINE HRESULT IOpcDigitalSignatureManager_Validate(IOpcDigitalSignatureManager* This,IOpcDigitalSignature *signature,const CERT_CONTEXT *certificate,OPC_SIGNATURE_VALIDATION_RESULT *validationResult) {
3785     return This->lpVtbl->Validate(This,signature,certificate,validationResult);
3786 }
3787 static FORCEINLINE HRESULT IOpcDigitalSignatureManager_Sign(IOpcDigitalSignatureManager* This,const CERT_CONTEXT *certificate,IOpcSigningOptions *signingOptions,IOpcDigitalSignature **digitalSignature) {
3788     return This->lpVtbl->Sign(This,certificate,signingOptions,digitalSignature);
3789 }
3790 static FORCEINLINE HRESULT IOpcDigitalSignatureManager_ReplaceSignatureXml(IOpcDigitalSignatureManager* This,IOpcPartUri *signaturePartName,const UINT8 *newSignatureXml,UINT32 count,IOpcDigitalSignature **digitalSignature) {
3791     return This->lpVtbl->ReplaceSignatureXml(This,signaturePartName,newSignatureXml,count,digitalSignature);
3792 }
3793 #endif
3794 #endif
3795 
3796 #endif
3797 
3798 
3799 #endif  /* __IOpcDigitalSignatureManager_INTERFACE_DEFINED__ */
3800 
3801 /*****************************************************************************
3802  * IOpcSignaturePartReferenceSet interface
3803  */
3804 #ifndef __IOpcSignaturePartReferenceSet_INTERFACE_DEFINED__
3805 #define __IOpcSignaturePartReferenceSet_INTERFACE_DEFINED__
3806 
3807 DEFINE_GUID(IID_IOpcSignaturePartReferenceSet, 0x6c9fe28c, 0xecd9, 0x4b22, 0x9d,0x36, 0x7f,0xdd,0xe6,0x70,0xfe,0xc0);
3808 #if defined(__cplusplus) && !defined(CINTERFACE)
3809 MIDL_INTERFACE("6c9fe28c-ecd9-4b22-9d36-7fdde670fec0")
3810 IOpcSignaturePartReferenceSet : public IUnknown
3811 {
3812     virtual HRESULT STDMETHODCALLTYPE Create(
3813         IOpcPartUri *partUri,
3814         LPCWSTR digestMethod,
3815         OPC_CANONICALIZATION_METHOD transformMethod,
3816         IOpcSignaturePartReference **partReference) = 0;
3817 
3818     virtual HRESULT STDMETHODCALLTYPE Delete(
3819         IOpcSignaturePartReference *partReference) = 0;
3820 
3821     virtual HRESULT STDMETHODCALLTYPE GetEnumerator(
3822         IOpcSignaturePartReferenceEnumerator **partReferenceEnumerator) = 0;
3823 
3824 };
3825 #ifdef __CRT_UUID_DECL
3826 __CRT_UUID_DECL(IOpcSignaturePartReferenceSet, 0x6c9fe28c, 0xecd9, 0x4b22, 0x9d,0x36, 0x7f,0xdd,0xe6,0x70,0xfe,0xc0)
3827 #endif
3828 #else
3829 typedef struct IOpcSignaturePartReferenceSetVtbl {
3830     BEGIN_INTERFACE
3831 
3832     /*** IUnknown methods ***/
3833     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3834         IOpcSignaturePartReferenceSet *This,
3835         REFIID riid,
3836         void **ppvObject);
3837 
3838     ULONG (STDMETHODCALLTYPE *AddRef)(
3839         IOpcSignaturePartReferenceSet *This);
3840 
3841     ULONG (STDMETHODCALLTYPE *Release)(
3842         IOpcSignaturePartReferenceSet *This);
3843 
3844     /*** IOpcSignaturePartReferenceSet methods ***/
3845     HRESULT (STDMETHODCALLTYPE *Create)(
3846         IOpcSignaturePartReferenceSet *This,
3847         IOpcPartUri *partUri,
3848         LPCWSTR digestMethod,
3849         OPC_CANONICALIZATION_METHOD transformMethod,
3850         IOpcSignaturePartReference **partReference);
3851 
3852     HRESULT (STDMETHODCALLTYPE *Delete)(
3853         IOpcSignaturePartReferenceSet *This,
3854         IOpcSignaturePartReference *partReference);
3855 
3856     HRESULT (STDMETHODCALLTYPE *GetEnumerator)(
3857         IOpcSignaturePartReferenceSet *This,
3858         IOpcSignaturePartReferenceEnumerator **partReferenceEnumerator);
3859 
3860     END_INTERFACE
3861 } IOpcSignaturePartReferenceSetVtbl;
3862 
3863 interface IOpcSignaturePartReferenceSet {
3864     CONST_VTBL IOpcSignaturePartReferenceSetVtbl* lpVtbl;
3865 };
3866 
3867 #ifdef COBJMACROS
3868 #ifndef WIDL_C_INLINE_WRAPPERS
3869 /*** IUnknown methods ***/
3870 #define IOpcSignaturePartReferenceSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3871 #define IOpcSignaturePartReferenceSet_AddRef(This) (This)->lpVtbl->AddRef(This)
3872 #define IOpcSignaturePartReferenceSet_Release(This) (This)->lpVtbl->Release(This)
3873 /*** IOpcSignaturePartReferenceSet methods ***/
3874 #define IOpcSignaturePartReferenceSet_Create(This,partUri,digestMethod,transformMethod,partReference) (This)->lpVtbl->Create(This,partUri,digestMethod,transformMethod,partReference)
3875 #define IOpcSignaturePartReferenceSet_Delete(This,partReference) (This)->lpVtbl->Delete(This,partReference)
3876 #define IOpcSignaturePartReferenceSet_GetEnumerator(This,partReferenceEnumerator) (This)->lpVtbl->GetEnumerator(This,partReferenceEnumerator)
3877 #else
3878 /*** IUnknown methods ***/
3879 static FORCEINLINE HRESULT IOpcSignaturePartReferenceSet_QueryInterface(IOpcSignaturePartReferenceSet* This,REFIID riid,void **ppvObject) {
3880     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3881 }
3882 static FORCEINLINE ULONG IOpcSignaturePartReferenceSet_AddRef(IOpcSignaturePartReferenceSet* This) {
3883     return This->lpVtbl->AddRef(This);
3884 }
3885 static FORCEINLINE ULONG IOpcSignaturePartReferenceSet_Release(IOpcSignaturePartReferenceSet* This) {
3886     return This->lpVtbl->Release(This);
3887 }
3888 /*** IOpcSignaturePartReferenceSet methods ***/
3889 static FORCEINLINE HRESULT IOpcSignaturePartReferenceSet_Create(IOpcSignaturePartReferenceSet* This,IOpcPartUri *partUri,LPCWSTR digestMethod,OPC_CANONICALIZATION_METHOD transformMethod,IOpcSignaturePartReference **partReference) {
3890     return This->lpVtbl->Create(This,partUri,digestMethod,transformMethod,partReference);
3891 }
3892 static FORCEINLINE HRESULT IOpcSignaturePartReferenceSet_Delete(IOpcSignaturePartReferenceSet* This,IOpcSignaturePartReference *partReference) {
3893     return This->lpVtbl->Delete(This,partReference);
3894 }
3895 static FORCEINLINE HRESULT IOpcSignaturePartReferenceSet_GetEnumerator(IOpcSignaturePartReferenceSet* This,IOpcSignaturePartReferenceEnumerator **partReferenceEnumerator) {
3896     return This->lpVtbl->GetEnumerator(This,partReferenceEnumerator);
3897 }
3898 #endif
3899 #endif
3900 
3901 #endif
3902 
3903 
3904 #endif  /* __IOpcSignaturePartReferenceSet_INTERFACE_DEFINED__ */
3905 
3906 /*****************************************************************************
3907  * IOpcRelationshipSelectorSet interface
3908  */
3909 #ifndef __IOpcRelationshipSelectorSet_INTERFACE_DEFINED__
3910 #define __IOpcRelationshipSelectorSet_INTERFACE_DEFINED__
3911 
3912 DEFINE_GUID(IID_IOpcRelationshipSelectorSet, 0x6e34c269, 0xa4d3, 0x47c0, 0xb5,0xc4, 0x87,0xff,0x2b,0x3b,0x61,0x36);
3913 #if defined(__cplusplus) && !defined(CINTERFACE)
3914 MIDL_INTERFACE("6e34c269-a4d3-47c0-b5c4-87ff2b3b6136")
3915 IOpcRelationshipSelectorSet : public IUnknown
3916 {
3917     virtual HRESULT STDMETHODCALLTYPE Create(
3918         OPC_RELATIONSHIP_SELECTOR selector,
3919         LPCWSTR selectionCriterion,
3920         IOpcRelationshipSelector **relationshipSelector) = 0;
3921 
3922     virtual HRESULT STDMETHODCALLTYPE Delete(
3923         IOpcRelationshipSelector *relationshipSelector) = 0;
3924 
3925     virtual HRESULT STDMETHODCALLTYPE GetEnumerator(
3926         IOpcRelationshipSelectorEnumerator **relationshipSelectorEnumerator) = 0;
3927 
3928 };
3929 #ifdef __CRT_UUID_DECL
3930 __CRT_UUID_DECL(IOpcRelationshipSelectorSet, 0x6e34c269, 0xa4d3, 0x47c0, 0xb5,0xc4, 0x87,0xff,0x2b,0x3b,0x61,0x36)
3931 #endif
3932 #else
3933 typedef struct IOpcRelationshipSelectorSetVtbl {
3934     BEGIN_INTERFACE
3935 
3936     /*** IUnknown methods ***/
3937     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3938         IOpcRelationshipSelectorSet *This,
3939         REFIID riid,
3940         void **ppvObject);
3941 
3942     ULONG (STDMETHODCALLTYPE *AddRef)(
3943         IOpcRelationshipSelectorSet *This);
3944 
3945     ULONG (STDMETHODCALLTYPE *Release)(
3946         IOpcRelationshipSelectorSet *This);
3947 
3948     /*** IOpcRelationshipSelectorSet methods ***/
3949     HRESULT (STDMETHODCALLTYPE *Create)(
3950         IOpcRelationshipSelectorSet *This,
3951         OPC_RELATIONSHIP_SELECTOR selector,
3952         LPCWSTR selectionCriterion,
3953         IOpcRelationshipSelector **relationshipSelector);
3954 
3955     HRESULT (STDMETHODCALLTYPE *Delete)(
3956         IOpcRelationshipSelectorSet *This,
3957         IOpcRelationshipSelector *relationshipSelector);
3958 
3959     HRESULT (STDMETHODCALLTYPE *GetEnumerator)(
3960         IOpcRelationshipSelectorSet *This,
3961         IOpcRelationshipSelectorEnumerator **relationshipSelectorEnumerator);
3962 
3963     END_INTERFACE
3964 } IOpcRelationshipSelectorSetVtbl;
3965 
3966 interface IOpcRelationshipSelectorSet {
3967     CONST_VTBL IOpcRelationshipSelectorSetVtbl* lpVtbl;
3968 };
3969 
3970 #ifdef COBJMACROS
3971 #ifndef WIDL_C_INLINE_WRAPPERS
3972 /*** IUnknown methods ***/
3973 #define IOpcRelationshipSelectorSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3974 #define IOpcRelationshipSelectorSet_AddRef(This) (This)->lpVtbl->AddRef(This)
3975 #define IOpcRelationshipSelectorSet_Release(This) (This)->lpVtbl->Release(This)
3976 /*** IOpcRelationshipSelectorSet methods ***/
3977 #define IOpcRelationshipSelectorSet_Create(This,selector,selectionCriterion,relationshipSelector) (This)->lpVtbl->Create(This,selector,selectionCriterion,relationshipSelector)
3978 #define IOpcRelationshipSelectorSet_Delete(This,relationshipSelector) (This)->lpVtbl->Delete(This,relationshipSelector)
3979 #define IOpcRelationshipSelectorSet_GetEnumerator(This,relationshipSelectorEnumerator) (This)->lpVtbl->GetEnumerator(This,relationshipSelectorEnumerator)
3980 #else
3981 /*** IUnknown methods ***/
3982 static FORCEINLINE HRESULT IOpcRelationshipSelectorSet_QueryInterface(IOpcRelationshipSelectorSet* This,REFIID riid,void **ppvObject) {
3983     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3984 }
3985 static FORCEINLINE ULONG IOpcRelationshipSelectorSet_AddRef(IOpcRelationshipSelectorSet* This) {
3986     return This->lpVtbl->AddRef(This);
3987 }
3988 static FORCEINLINE ULONG IOpcRelationshipSelectorSet_Release(IOpcRelationshipSelectorSet* This) {
3989     return This->lpVtbl->Release(This);
3990 }
3991 /*** IOpcRelationshipSelectorSet methods ***/
3992 static FORCEINLINE HRESULT IOpcRelationshipSelectorSet_Create(IOpcRelationshipSelectorSet* This,OPC_RELATIONSHIP_SELECTOR selector,LPCWSTR selectionCriterion,IOpcRelationshipSelector **relationshipSelector) {
3993     return This->lpVtbl->Create(This,selector,selectionCriterion,relationshipSelector);
3994 }
3995 static FORCEINLINE HRESULT IOpcRelationshipSelectorSet_Delete(IOpcRelationshipSelectorSet* This,IOpcRelationshipSelector *relationshipSelector) {
3996     return This->lpVtbl->Delete(This,relationshipSelector);
3997 }
3998 static FORCEINLINE HRESULT IOpcRelationshipSelectorSet_GetEnumerator(IOpcRelationshipSelectorSet* This,IOpcRelationshipSelectorEnumerator **relationshipSelectorEnumerator) {
3999     return This->lpVtbl->GetEnumerator(This,relationshipSelectorEnumerator);
4000 }
4001 #endif
4002 #endif
4003 
4004 #endif
4005 
4006 
4007 #endif  /* __IOpcRelationshipSelectorSet_INTERFACE_DEFINED__ */
4008 
4009 /*****************************************************************************
4010  * IOpcSignatureRelationshipReferenceSet interface
4011  */
4012 #ifndef __IOpcSignatureRelationshipReferenceSet_INTERFACE_DEFINED__
4013 #define __IOpcSignatureRelationshipReferenceSet_INTERFACE_DEFINED__
4014 
4015 DEFINE_GUID(IID_IOpcSignatureRelationshipReferenceSet, 0x9f863ca5, 0x3631, 0x404c, 0x82,0x8d, 0x80,0x7e,0x07,0x15,0x06,0x9b);
4016 #if defined(__cplusplus) && !defined(CINTERFACE)
4017 MIDL_INTERFACE("9f863ca5-3631-404c-828d-807e0715069b")
4018 IOpcSignatureRelationshipReferenceSet : public IUnknown
4019 {
4020     virtual HRESULT STDMETHODCALLTYPE Create(
4021         IOpcUri *sourceUri,
4022         LPCWSTR digestMethod,
4023         OPC_RELATIONSHIPS_SIGNING_OPTION relationshipSigningOption,
4024         IOpcRelationshipSelectorSet *selectorSet,
4025         OPC_CANONICALIZATION_METHOD transformMethod,
4026         IOpcSignatureRelationshipReference **relationshipReference) = 0;
4027 
4028     virtual HRESULT STDMETHODCALLTYPE CreateRelationshipSelectorSet(
4029         IOpcRelationshipSelectorSet **selectorSet) = 0;
4030 
4031     virtual HRESULT STDMETHODCALLTYPE Delete(
4032         IOpcSignatureRelationshipReference *relationshipReference) = 0;
4033 
4034     virtual HRESULT STDMETHODCALLTYPE GetEnumerator(
4035         IOpcSignatureRelationshipReferenceEnumerator **relationshipReferenceEnumerator) = 0;
4036 
4037 };
4038 #ifdef __CRT_UUID_DECL
4039 __CRT_UUID_DECL(IOpcSignatureRelationshipReferenceSet, 0x9f863ca5, 0x3631, 0x404c, 0x82,0x8d, 0x80,0x7e,0x07,0x15,0x06,0x9b)
4040 #endif
4041 #else
4042 typedef struct IOpcSignatureRelationshipReferenceSetVtbl {
4043     BEGIN_INTERFACE
4044 
4045     /*** IUnknown methods ***/
4046     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4047         IOpcSignatureRelationshipReferenceSet *This,
4048         REFIID riid,
4049         void **ppvObject);
4050 
4051     ULONG (STDMETHODCALLTYPE *AddRef)(
4052         IOpcSignatureRelationshipReferenceSet *This);
4053 
4054     ULONG (STDMETHODCALLTYPE *Release)(
4055         IOpcSignatureRelationshipReferenceSet *This);
4056 
4057     /*** IOpcSignatureRelationshipReferenceSet methods ***/
4058     HRESULT (STDMETHODCALLTYPE *Create)(
4059         IOpcSignatureRelationshipReferenceSet *This,
4060         IOpcUri *sourceUri,
4061         LPCWSTR digestMethod,
4062         OPC_RELATIONSHIPS_SIGNING_OPTION relationshipSigningOption,
4063         IOpcRelationshipSelectorSet *selectorSet,
4064         OPC_CANONICALIZATION_METHOD transformMethod,
4065         IOpcSignatureRelationshipReference **relationshipReference);
4066 
4067     HRESULT (STDMETHODCALLTYPE *CreateRelationshipSelectorSet)(
4068         IOpcSignatureRelationshipReferenceSet *This,
4069         IOpcRelationshipSelectorSet **selectorSet);
4070 
4071     HRESULT (STDMETHODCALLTYPE *Delete)(
4072         IOpcSignatureRelationshipReferenceSet *This,
4073         IOpcSignatureRelationshipReference *relationshipReference);
4074 
4075     HRESULT (STDMETHODCALLTYPE *GetEnumerator)(
4076         IOpcSignatureRelationshipReferenceSet *This,
4077         IOpcSignatureRelationshipReferenceEnumerator **relationshipReferenceEnumerator);
4078 
4079     END_INTERFACE
4080 } IOpcSignatureRelationshipReferenceSetVtbl;
4081 
4082 interface IOpcSignatureRelationshipReferenceSet {
4083     CONST_VTBL IOpcSignatureRelationshipReferenceSetVtbl* lpVtbl;
4084 };
4085 
4086 #ifdef COBJMACROS
4087 #ifndef WIDL_C_INLINE_WRAPPERS
4088 /*** IUnknown methods ***/
4089 #define IOpcSignatureRelationshipReferenceSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4090 #define IOpcSignatureRelationshipReferenceSet_AddRef(This) (This)->lpVtbl->AddRef(This)
4091 #define IOpcSignatureRelationshipReferenceSet_Release(This) (This)->lpVtbl->Release(This)
4092 /*** IOpcSignatureRelationshipReferenceSet methods ***/
4093 #define IOpcSignatureRelationshipReferenceSet_Create(This,sourceUri,digestMethod,relationshipSigningOption,selectorSet,transformMethod,relationshipReference) (This)->lpVtbl->Create(This,sourceUri,digestMethod,relationshipSigningOption,selectorSet,transformMethod,relationshipReference)
4094 #define IOpcSignatureRelationshipReferenceSet_CreateRelationshipSelectorSet(This,selectorSet) (This)->lpVtbl->CreateRelationshipSelectorSet(This,selectorSet)
4095 #define IOpcSignatureRelationshipReferenceSet_Delete(This,relationshipReference) (This)->lpVtbl->Delete(This,relationshipReference)
4096 #define IOpcSignatureRelationshipReferenceSet_GetEnumerator(This,relationshipReferenceEnumerator) (This)->lpVtbl->GetEnumerator(This,relationshipReferenceEnumerator)
4097 #else
4098 /*** IUnknown methods ***/
4099 static FORCEINLINE HRESULT IOpcSignatureRelationshipReferenceSet_QueryInterface(IOpcSignatureRelationshipReferenceSet* This,REFIID riid,void **ppvObject) {
4100     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4101 }
4102 static FORCEINLINE ULONG IOpcSignatureRelationshipReferenceSet_AddRef(IOpcSignatureRelationshipReferenceSet* This) {
4103     return This->lpVtbl->AddRef(This);
4104 }
4105 static FORCEINLINE ULONG IOpcSignatureRelationshipReferenceSet_Release(IOpcSignatureRelationshipReferenceSet* This) {
4106     return This->lpVtbl->Release(This);
4107 }
4108 /*** IOpcSignatureRelationshipReferenceSet methods ***/
4109 static FORCEINLINE HRESULT IOpcSignatureRelationshipReferenceSet_Create(IOpcSignatureRelationshipReferenceSet* This,IOpcUri *sourceUri,LPCWSTR digestMethod,OPC_RELATIONSHIPS_SIGNING_OPTION relationshipSigningOption,IOpcRelationshipSelectorSet *selectorSet,OPC_CANONICALIZATION_METHOD transformMethod,IOpcSignatureRelationshipReference **relationshipReference) {
4110     return This->lpVtbl->Create(This,sourceUri,digestMethod,relationshipSigningOption,selectorSet,transformMethod,relationshipReference);
4111 }
4112 static FORCEINLINE HRESULT IOpcSignatureRelationshipReferenceSet_CreateRelationshipSelectorSet(IOpcSignatureRelationshipReferenceSet* This,IOpcRelationshipSelectorSet **selectorSet) {
4113     return This->lpVtbl->CreateRelationshipSelectorSet(This,selectorSet);
4114 }
4115 static FORCEINLINE HRESULT IOpcSignatureRelationshipReferenceSet_Delete(IOpcSignatureRelationshipReferenceSet* This,IOpcSignatureRelationshipReference *relationshipReference) {
4116     return This->lpVtbl->Delete(This,relationshipReference);
4117 }
4118 static FORCEINLINE HRESULT IOpcSignatureRelationshipReferenceSet_GetEnumerator(IOpcSignatureRelationshipReferenceSet* This,IOpcSignatureRelationshipReferenceEnumerator **relationshipReferenceEnumerator) {
4119     return This->lpVtbl->GetEnumerator(This,relationshipReferenceEnumerator);
4120 }
4121 #endif
4122 #endif
4123 
4124 #endif
4125 
4126 
4127 #endif  /* __IOpcSignatureRelationshipReferenceSet_INTERFACE_DEFINED__ */
4128 
4129 /*****************************************************************************
4130  * IOpcSignatureReferenceSet interface
4131  */
4132 #ifndef __IOpcSignatureReferenceSet_INTERFACE_DEFINED__
4133 #define __IOpcSignatureReferenceSet_INTERFACE_DEFINED__
4134 
4135 DEFINE_GUID(IID_IOpcSignatureReferenceSet, 0xf3b02d31, 0xab12, 0x42dd, 0x9e,0x2f, 0x2b,0x16,0x76,0x1c,0x3c,0x1e);
4136 #if defined(__cplusplus) && !defined(CINTERFACE)
4137 MIDL_INTERFACE("f3b02d31-ab12-42dd-9e2f-2b16761c3c1e")
4138 IOpcSignatureReferenceSet : public IUnknown
4139 {
4140     virtual HRESULT STDMETHODCALLTYPE Create(
4141         IUri *referenceUri,
4142         LPCWSTR referenceId,
4143         LPCWSTR type,
4144         LPCWSTR digestMethod,
4145         OPC_CANONICALIZATION_METHOD transformMethod,
4146         IOpcSignatureReference **reference) = 0;
4147 
4148     virtual HRESULT STDMETHODCALLTYPE Delete(
4149         IOpcSignatureReference *reference) = 0;
4150 
4151     virtual HRESULT STDMETHODCALLTYPE GetEnumerator(
4152         IOpcSignatureReferenceEnumerator **referenceEnumerator) = 0;
4153 
4154 };
4155 #ifdef __CRT_UUID_DECL
4156 __CRT_UUID_DECL(IOpcSignatureReferenceSet, 0xf3b02d31, 0xab12, 0x42dd, 0x9e,0x2f, 0x2b,0x16,0x76,0x1c,0x3c,0x1e)
4157 #endif
4158 #else
4159 typedef struct IOpcSignatureReferenceSetVtbl {
4160     BEGIN_INTERFACE
4161 
4162     /*** IUnknown methods ***/
4163     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4164         IOpcSignatureReferenceSet *This,
4165         REFIID riid,
4166         void **ppvObject);
4167 
4168     ULONG (STDMETHODCALLTYPE *AddRef)(
4169         IOpcSignatureReferenceSet *This);
4170 
4171     ULONG (STDMETHODCALLTYPE *Release)(
4172         IOpcSignatureReferenceSet *This);
4173 
4174     /*** IOpcSignatureReferenceSet methods ***/
4175     HRESULT (STDMETHODCALLTYPE *Create)(
4176         IOpcSignatureReferenceSet *This,
4177         IUri *referenceUri,
4178         LPCWSTR referenceId,
4179         LPCWSTR type,
4180         LPCWSTR digestMethod,
4181         OPC_CANONICALIZATION_METHOD transformMethod,
4182         IOpcSignatureReference **reference);
4183 
4184     HRESULT (STDMETHODCALLTYPE *Delete)(
4185         IOpcSignatureReferenceSet *This,
4186         IOpcSignatureReference *reference);
4187 
4188     HRESULT (STDMETHODCALLTYPE *GetEnumerator)(
4189         IOpcSignatureReferenceSet *This,
4190         IOpcSignatureReferenceEnumerator **referenceEnumerator);
4191 
4192     END_INTERFACE
4193 } IOpcSignatureReferenceSetVtbl;
4194 
4195 interface IOpcSignatureReferenceSet {
4196     CONST_VTBL IOpcSignatureReferenceSetVtbl* lpVtbl;
4197 };
4198 
4199 #ifdef COBJMACROS
4200 #ifndef WIDL_C_INLINE_WRAPPERS
4201 /*** IUnknown methods ***/
4202 #define IOpcSignatureReferenceSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4203 #define IOpcSignatureReferenceSet_AddRef(This) (This)->lpVtbl->AddRef(This)
4204 #define IOpcSignatureReferenceSet_Release(This) (This)->lpVtbl->Release(This)
4205 /*** IOpcSignatureReferenceSet methods ***/
4206 #define IOpcSignatureReferenceSet_Create(This,referenceUri,referenceId,type,digestMethod,transformMethod,reference) (This)->lpVtbl->Create(This,referenceUri,referenceId,type,digestMethod,transformMethod,reference)
4207 #define IOpcSignatureReferenceSet_Delete(This,reference) (This)->lpVtbl->Delete(This,reference)
4208 #define IOpcSignatureReferenceSet_GetEnumerator(This,referenceEnumerator) (This)->lpVtbl->GetEnumerator(This,referenceEnumerator)
4209 #else
4210 /*** IUnknown methods ***/
4211 static FORCEINLINE HRESULT IOpcSignatureReferenceSet_QueryInterface(IOpcSignatureReferenceSet* This,REFIID riid,void **ppvObject) {
4212     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4213 }
4214 static FORCEINLINE ULONG IOpcSignatureReferenceSet_AddRef(IOpcSignatureReferenceSet* This) {
4215     return This->lpVtbl->AddRef(This);
4216 }
4217 static FORCEINLINE ULONG IOpcSignatureReferenceSet_Release(IOpcSignatureReferenceSet* This) {
4218     return This->lpVtbl->Release(This);
4219 }
4220 /*** IOpcSignatureReferenceSet methods ***/
4221 static FORCEINLINE HRESULT IOpcSignatureReferenceSet_Create(IOpcSignatureReferenceSet* This,IUri *referenceUri,LPCWSTR referenceId,LPCWSTR type,LPCWSTR digestMethod,OPC_CANONICALIZATION_METHOD transformMethod,IOpcSignatureReference **reference) {
4222     return This->lpVtbl->Create(This,referenceUri,referenceId,type,digestMethod,transformMethod,reference);
4223 }
4224 static FORCEINLINE HRESULT IOpcSignatureReferenceSet_Delete(IOpcSignatureReferenceSet* This,IOpcSignatureReference *reference) {
4225     return This->lpVtbl->Delete(This,reference);
4226 }
4227 static FORCEINLINE HRESULT IOpcSignatureReferenceSet_GetEnumerator(IOpcSignatureReferenceSet* This,IOpcSignatureReferenceEnumerator **referenceEnumerator) {
4228     return This->lpVtbl->GetEnumerator(This,referenceEnumerator);
4229 }
4230 #endif
4231 #endif
4232 
4233 #endif
4234 
4235 
4236 #endif  /* __IOpcSignatureReferenceSet_INTERFACE_DEFINED__ */
4237 
4238 /*****************************************************************************
4239  * IOpcSignatureCustomObjectSet interface
4240  */
4241 #ifndef __IOpcSignatureCustomObjectSet_INTERFACE_DEFINED__
4242 #define __IOpcSignatureCustomObjectSet_INTERFACE_DEFINED__
4243 
4244 DEFINE_GUID(IID_IOpcSignatureCustomObjectSet, 0x8f792ac5, 0x7947, 0x4e11, 0xbc,0x3d, 0x26,0x59,0xff,0x04,0x6a,0xe1);
4245 #if defined(__cplusplus) && !defined(CINTERFACE)
4246 MIDL_INTERFACE("8f792ac5-7947-4e11-bc3d-2659ff046ae1")
4247 IOpcSignatureCustomObjectSet : public IUnknown
4248 {
4249     virtual HRESULT STDMETHODCALLTYPE Create(
4250         const UINT8 *xmlMarkup,
4251         UINT32 count,
4252         IOpcSignatureCustomObject **customObject) = 0;
4253 
4254     virtual HRESULT STDMETHODCALLTYPE Delete(
4255         IOpcSignatureCustomObject *customObject) = 0;
4256 
4257     virtual HRESULT STDMETHODCALLTYPE GetEnumerator(
4258         IOpcSignatureCustomObjectEnumerator **customObjectEnumerator) = 0;
4259 
4260 };
4261 #ifdef __CRT_UUID_DECL
4262 __CRT_UUID_DECL(IOpcSignatureCustomObjectSet, 0x8f792ac5, 0x7947, 0x4e11, 0xbc,0x3d, 0x26,0x59,0xff,0x04,0x6a,0xe1)
4263 #endif
4264 #else
4265 typedef struct IOpcSignatureCustomObjectSetVtbl {
4266     BEGIN_INTERFACE
4267 
4268     /*** IUnknown methods ***/
4269     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4270         IOpcSignatureCustomObjectSet *This,
4271         REFIID riid,
4272         void **ppvObject);
4273 
4274     ULONG (STDMETHODCALLTYPE *AddRef)(
4275         IOpcSignatureCustomObjectSet *This);
4276 
4277     ULONG (STDMETHODCALLTYPE *Release)(
4278         IOpcSignatureCustomObjectSet *This);
4279 
4280     /*** IOpcSignatureCustomObjectSet methods ***/
4281     HRESULT (STDMETHODCALLTYPE *Create)(
4282         IOpcSignatureCustomObjectSet *This,
4283         const UINT8 *xmlMarkup,
4284         UINT32 count,
4285         IOpcSignatureCustomObject **customObject);
4286 
4287     HRESULT (STDMETHODCALLTYPE *Delete)(
4288         IOpcSignatureCustomObjectSet *This,
4289         IOpcSignatureCustomObject *customObject);
4290 
4291     HRESULT (STDMETHODCALLTYPE *GetEnumerator)(
4292         IOpcSignatureCustomObjectSet *This,
4293         IOpcSignatureCustomObjectEnumerator **customObjectEnumerator);
4294 
4295     END_INTERFACE
4296 } IOpcSignatureCustomObjectSetVtbl;
4297 
4298 interface IOpcSignatureCustomObjectSet {
4299     CONST_VTBL IOpcSignatureCustomObjectSetVtbl* lpVtbl;
4300 };
4301 
4302 #ifdef COBJMACROS
4303 #ifndef WIDL_C_INLINE_WRAPPERS
4304 /*** IUnknown methods ***/
4305 #define IOpcSignatureCustomObjectSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4306 #define IOpcSignatureCustomObjectSet_AddRef(This) (This)->lpVtbl->AddRef(This)
4307 #define IOpcSignatureCustomObjectSet_Release(This) (This)->lpVtbl->Release(This)
4308 /*** IOpcSignatureCustomObjectSet methods ***/
4309 #define IOpcSignatureCustomObjectSet_Create(This,xmlMarkup,count,customObject) (This)->lpVtbl->Create(This,xmlMarkup,count,customObject)
4310 #define IOpcSignatureCustomObjectSet_Delete(This,customObject) (This)->lpVtbl->Delete(This,customObject)
4311 #define IOpcSignatureCustomObjectSet_GetEnumerator(This,customObjectEnumerator) (This)->lpVtbl->GetEnumerator(This,customObjectEnumerator)
4312 #else
4313 /*** IUnknown methods ***/
4314 static FORCEINLINE HRESULT IOpcSignatureCustomObjectSet_QueryInterface(IOpcSignatureCustomObjectSet* This,REFIID riid,void **ppvObject) {
4315     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4316 }
4317 static FORCEINLINE ULONG IOpcSignatureCustomObjectSet_AddRef(IOpcSignatureCustomObjectSet* This) {
4318     return This->lpVtbl->AddRef(This);
4319 }
4320 static FORCEINLINE ULONG IOpcSignatureCustomObjectSet_Release(IOpcSignatureCustomObjectSet* This) {
4321     return This->lpVtbl->Release(This);
4322 }
4323 /*** IOpcSignatureCustomObjectSet methods ***/
4324 static FORCEINLINE HRESULT IOpcSignatureCustomObjectSet_Create(IOpcSignatureCustomObjectSet* This,const UINT8 *xmlMarkup,UINT32 count,IOpcSignatureCustomObject **customObject) {
4325     return This->lpVtbl->Create(This,xmlMarkup,count,customObject);
4326 }
4327 static FORCEINLINE HRESULT IOpcSignatureCustomObjectSet_Delete(IOpcSignatureCustomObjectSet* This,IOpcSignatureCustomObject *customObject) {
4328     return This->lpVtbl->Delete(This,customObject);
4329 }
4330 static FORCEINLINE HRESULT IOpcSignatureCustomObjectSet_GetEnumerator(IOpcSignatureCustomObjectSet* This,IOpcSignatureCustomObjectEnumerator **customObjectEnumerator) {
4331     return This->lpVtbl->GetEnumerator(This,customObjectEnumerator);
4332 }
4333 #endif
4334 #endif
4335 
4336 #endif
4337 
4338 
4339 #endif  /* __IOpcSignatureCustomObjectSet_INTERFACE_DEFINED__ */
4340 
4341 /*****************************************************************************
4342  * IOpcDigitalSignature interface
4343  */
4344 #ifndef __IOpcDigitalSignature_INTERFACE_DEFINED__
4345 #define __IOpcDigitalSignature_INTERFACE_DEFINED__
4346 
4347 DEFINE_GUID(IID_IOpcDigitalSignature, 0x52ab21dd, 0x1cd0, 0x4949, 0xbc,0x80, 0x0c,0x12,0x32,0xd0,0x0c,0xb4);
4348 #if defined(__cplusplus) && !defined(CINTERFACE)
4349 MIDL_INTERFACE("52ab21dd-1cd0-4949-bc80-0c1232d00cb4")
4350 IOpcDigitalSignature : public IUnknown
4351 {
4352     virtual HRESULT STDMETHODCALLTYPE GetNamespaces(
4353         LPWSTR **prefixes,
4354         LPWSTR **namespaces,
4355         UINT32 *count) = 0;
4356 
4357     virtual HRESULT STDMETHODCALLTYPE GetSignatureId(
4358         LPWSTR *signatureId) = 0;
4359 
4360     virtual HRESULT STDMETHODCALLTYPE GetSignaturePartName(
4361         IOpcPartUri **signaturePartName) = 0;
4362 
4363     virtual HRESULT STDMETHODCALLTYPE GetSignatureMethod(
4364         LPWSTR *signatureMethod) = 0;
4365 
4366     virtual HRESULT STDMETHODCALLTYPE GetCanonicalizationMethod(
4367         OPC_CANONICALIZATION_METHOD *canonicalizationMethod) = 0;
4368 
4369     virtual HRESULT STDMETHODCALLTYPE GetSignatureValue(
4370         UINT8 **signatureValue,
4371         UINT32 *count) = 0;
4372 
4373     virtual HRESULT STDMETHODCALLTYPE GetSignaturePartReferenceEnumerator(
4374         IOpcSignaturePartReferenceEnumerator **partReferenceEnumerator) = 0;
4375 
4376     virtual HRESULT STDMETHODCALLTYPE GetSignatureRelationshipReferenceEnumerator(
4377         IOpcSignatureRelationshipReferenceEnumerator **relationshipReferenceEnumerator) = 0;
4378 
4379     virtual HRESULT STDMETHODCALLTYPE GetSigningTime(
4380         LPWSTR *signingTime) = 0;
4381 
4382     virtual HRESULT STDMETHODCALLTYPE GetTimeFormat(
4383         OPC_SIGNATURE_TIME_FORMAT *timeFormat) = 0;
4384 
4385     virtual HRESULT STDMETHODCALLTYPE GetPackageObjectReference(
4386         IOpcSignatureReference **packageObjectReference) = 0;
4387 
4388     virtual HRESULT STDMETHODCALLTYPE GetCertificateEnumerator(
4389         IOpcCertificateEnumerator **certificateEnumerator) = 0;
4390 
4391     virtual HRESULT STDMETHODCALLTYPE GetCustomReferenceEnumerator(
4392         IOpcSignatureReferenceEnumerator **customReferenceEnumerator) = 0;
4393 
4394     virtual HRESULT STDMETHODCALLTYPE GetCustomObjectEnumerator(
4395         IOpcSignatureCustomObjectEnumerator **customObjectEnumerator) = 0;
4396 
4397     virtual HRESULT STDMETHODCALLTYPE GetSignatureXml(
4398         UINT8 **signatureXml,
4399         UINT32 *count) = 0;
4400 
4401 };
4402 #ifdef __CRT_UUID_DECL
4403 __CRT_UUID_DECL(IOpcDigitalSignature, 0x52ab21dd, 0x1cd0, 0x4949, 0xbc,0x80, 0x0c,0x12,0x32,0xd0,0x0c,0xb4)
4404 #endif
4405 #else
4406 typedef struct IOpcDigitalSignatureVtbl {
4407     BEGIN_INTERFACE
4408 
4409     /*** IUnknown methods ***/
4410     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4411         IOpcDigitalSignature *This,
4412         REFIID riid,
4413         void **ppvObject);
4414 
4415     ULONG (STDMETHODCALLTYPE *AddRef)(
4416         IOpcDigitalSignature *This);
4417 
4418     ULONG (STDMETHODCALLTYPE *Release)(
4419         IOpcDigitalSignature *This);
4420 
4421     /*** IOpcDigitalSignature methods ***/
4422     HRESULT (STDMETHODCALLTYPE *GetNamespaces)(
4423         IOpcDigitalSignature *This,
4424         LPWSTR **prefixes,
4425         LPWSTR **namespaces,
4426         UINT32 *count);
4427 
4428     HRESULT (STDMETHODCALLTYPE *GetSignatureId)(
4429         IOpcDigitalSignature *This,
4430         LPWSTR *signatureId);
4431 
4432     HRESULT (STDMETHODCALLTYPE *GetSignaturePartName)(
4433         IOpcDigitalSignature *This,
4434         IOpcPartUri **signaturePartName);
4435 
4436     HRESULT (STDMETHODCALLTYPE *GetSignatureMethod)(
4437         IOpcDigitalSignature *This,
4438         LPWSTR *signatureMethod);
4439 
4440     HRESULT (STDMETHODCALLTYPE *GetCanonicalizationMethod)(
4441         IOpcDigitalSignature *This,
4442         OPC_CANONICALIZATION_METHOD *canonicalizationMethod);
4443 
4444     HRESULT (STDMETHODCALLTYPE *GetSignatureValue)(
4445         IOpcDigitalSignature *This,
4446         UINT8 **signatureValue,
4447         UINT32 *count);
4448 
4449     HRESULT (STDMETHODCALLTYPE *GetSignaturePartReferenceEnumerator)(
4450         IOpcDigitalSignature *This,
4451         IOpcSignaturePartReferenceEnumerator **partReferenceEnumerator);
4452 
4453     HRESULT (STDMETHODCALLTYPE *GetSignatureRelationshipReferenceEnumerator)(
4454         IOpcDigitalSignature *This,
4455         IOpcSignatureRelationshipReferenceEnumerator **relationshipReferenceEnumerator);
4456 
4457     HRESULT (STDMETHODCALLTYPE *GetSigningTime)(
4458         IOpcDigitalSignature *This,
4459         LPWSTR *signingTime);
4460 
4461     HRESULT (STDMETHODCALLTYPE *GetTimeFormat)(
4462         IOpcDigitalSignature *This,
4463         OPC_SIGNATURE_TIME_FORMAT *timeFormat);
4464 
4465     HRESULT (STDMETHODCALLTYPE *GetPackageObjectReference)(
4466         IOpcDigitalSignature *This,
4467         IOpcSignatureReference **packageObjectReference);
4468 
4469     HRESULT (STDMETHODCALLTYPE *GetCertificateEnumerator)(
4470         IOpcDigitalSignature *This,
4471         IOpcCertificateEnumerator **certificateEnumerator);
4472 
4473     HRESULT (STDMETHODCALLTYPE *GetCustomReferenceEnumerator)(
4474         IOpcDigitalSignature *This,
4475         IOpcSignatureReferenceEnumerator **customReferenceEnumerator);
4476 
4477     HRESULT (STDMETHODCALLTYPE *GetCustomObjectEnumerator)(
4478         IOpcDigitalSignature *This,
4479         IOpcSignatureCustomObjectEnumerator **customObjectEnumerator);
4480 
4481     HRESULT (STDMETHODCALLTYPE *GetSignatureXml)(
4482         IOpcDigitalSignature *This,
4483         UINT8 **signatureXml,
4484         UINT32 *count);
4485 
4486     END_INTERFACE
4487 } IOpcDigitalSignatureVtbl;
4488 
4489 interface IOpcDigitalSignature {
4490     CONST_VTBL IOpcDigitalSignatureVtbl* lpVtbl;
4491 };
4492 
4493 #ifdef COBJMACROS
4494 #ifndef WIDL_C_INLINE_WRAPPERS
4495 /*** IUnknown methods ***/
4496 #define IOpcDigitalSignature_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4497 #define IOpcDigitalSignature_AddRef(This) (This)->lpVtbl->AddRef(This)
4498 #define IOpcDigitalSignature_Release(This) (This)->lpVtbl->Release(This)
4499 /*** IOpcDigitalSignature methods ***/
4500 #define IOpcDigitalSignature_GetNamespaces(This,prefixes,namespaces,count) (This)->lpVtbl->GetNamespaces(This,prefixes,namespaces,count)
4501 #define IOpcDigitalSignature_GetSignatureId(This,signatureId) (This)->lpVtbl->GetSignatureId(This,signatureId)
4502 #define IOpcDigitalSignature_GetSignaturePartName(This,signaturePartName) (This)->lpVtbl->GetSignaturePartName(This,signaturePartName)
4503 #define IOpcDigitalSignature_GetSignatureMethod(This,signatureMethod) (This)->lpVtbl->GetSignatureMethod(This,signatureMethod)
4504 #define IOpcDigitalSignature_GetCanonicalizationMethod(This,canonicalizationMethod) (This)->lpVtbl->GetCanonicalizationMethod(This,canonicalizationMethod)
4505 #define IOpcDigitalSignature_GetSignatureValue(This,signatureValue,count) (This)->lpVtbl->GetSignatureValue(This,signatureValue,count)
4506 #define IOpcDigitalSignature_GetSignaturePartReferenceEnumerator(This,partReferenceEnumerator) (This)->lpVtbl->GetSignaturePartReferenceEnumerator(This,partReferenceEnumerator)
4507 #define IOpcDigitalSignature_GetSignatureRelationshipReferenceEnumerator(This,relationshipReferenceEnumerator) (This)->lpVtbl->GetSignatureRelationshipReferenceEnumerator(This,relationshipReferenceEnumerator)
4508 #define IOpcDigitalSignature_GetSigningTime(This,signingTime) (This)->lpVtbl->GetSigningTime(This,signingTime)
4509 #define IOpcDigitalSignature_GetTimeFormat(This,timeFormat) (This)->lpVtbl->GetTimeFormat(This,timeFormat)
4510 #define IOpcDigitalSignature_GetPackageObjectReference(This,packageObjectReference) (This)->lpVtbl->GetPackageObjectReference(This,packageObjectReference)
4511 #define IOpcDigitalSignature_GetCertificateEnumerator(This,certificateEnumerator) (This)->lpVtbl->GetCertificateEnumerator(This,certificateEnumerator)
4512 #define IOpcDigitalSignature_GetCustomReferenceEnumerator(This,customReferenceEnumerator) (This)->lpVtbl->GetCustomReferenceEnumerator(This,customReferenceEnumerator)
4513 #define IOpcDigitalSignature_GetCustomObjectEnumerator(This,customObjectEnumerator) (This)->lpVtbl->GetCustomObjectEnumerator(This,customObjectEnumerator)
4514 #define IOpcDigitalSignature_GetSignatureXml(This,signatureXml,count) (This)->lpVtbl->GetSignatureXml(This,signatureXml,count)
4515 #else
4516 /*** IUnknown methods ***/
4517 static FORCEINLINE HRESULT IOpcDigitalSignature_QueryInterface(IOpcDigitalSignature* This,REFIID riid,void **ppvObject) {
4518     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4519 }
4520 static FORCEINLINE ULONG IOpcDigitalSignature_AddRef(IOpcDigitalSignature* This) {
4521     return This->lpVtbl->AddRef(This);
4522 }
4523 static FORCEINLINE ULONG IOpcDigitalSignature_Release(IOpcDigitalSignature* This) {
4524     return This->lpVtbl->Release(This);
4525 }
4526 /*** IOpcDigitalSignature methods ***/
4527 static FORCEINLINE HRESULT IOpcDigitalSignature_GetNamespaces(IOpcDigitalSignature* This,LPWSTR **prefixes,LPWSTR **namespaces,UINT32 *count) {
4528     return This->lpVtbl->GetNamespaces(This,prefixes,namespaces,count);
4529 }
4530 static FORCEINLINE HRESULT IOpcDigitalSignature_GetSignatureId(IOpcDigitalSignature* This,LPWSTR *signatureId) {
4531     return This->lpVtbl->GetSignatureId(This,signatureId);
4532 }
4533 static FORCEINLINE HRESULT IOpcDigitalSignature_GetSignaturePartName(IOpcDigitalSignature* This,IOpcPartUri **signaturePartName) {
4534     return This->lpVtbl->GetSignaturePartName(This,signaturePartName);
4535 }
4536 static FORCEINLINE HRESULT IOpcDigitalSignature_GetSignatureMethod(IOpcDigitalSignature* This,LPWSTR *signatureMethod) {
4537     return This->lpVtbl->GetSignatureMethod(This,signatureMethod);
4538 }
4539 static FORCEINLINE HRESULT IOpcDigitalSignature_GetCanonicalizationMethod(IOpcDigitalSignature* This,OPC_CANONICALIZATION_METHOD *canonicalizationMethod) {
4540     return This->lpVtbl->GetCanonicalizationMethod(This,canonicalizationMethod);
4541 }
4542 static FORCEINLINE HRESULT IOpcDigitalSignature_GetSignatureValue(IOpcDigitalSignature* This,UINT8 **signatureValue,UINT32 *count) {
4543     return This->lpVtbl->GetSignatureValue(This,signatureValue,count);
4544 }
4545 static FORCEINLINE HRESULT IOpcDigitalSignature_GetSignaturePartReferenceEnumerator(IOpcDigitalSignature* This,IOpcSignaturePartReferenceEnumerator **partReferenceEnumerator) {
4546     return This->lpVtbl->GetSignaturePartReferenceEnumerator(This,partReferenceEnumerator);
4547 }
4548 static FORCEINLINE HRESULT IOpcDigitalSignature_GetSignatureRelationshipReferenceEnumerator(IOpcDigitalSignature* This,IOpcSignatureRelationshipReferenceEnumerator **relationshipReferenceEnumerator) {
4549     return This->lpVtbl->GetSignatureRelationshipReferenceEnumerator(This,relationshipReferenceEnumerator);
4550 }
4551 static FORCEINLINE HRESULT IOpcDigitalSignature_GetSigningTime(IOpcDigitalSignature* This,LPWSTR *signingTime) {
4552     return This->lpVtbl->GetSigningTime(This,signingTime);
4553 }
4554 static FORCEINLINE HRESULT IOpcDigitalSignature_GetTimeFormat(IOpcDigitalSignature* This,OPC_SIGNATURE_TIME_FORMAT *timeFormat) {
4555     return This->lpVtbl->GetTimeFormat(This,timeFormat);
4556 }
4557 static FORCEINLINE HRESULT IOpcDigitalSignature_GetPackageObjectReference(IOpcDigitalSignature* This,IOpcSignatureReference **packageObjectReference) {
4558     return This->lpVtbl->GetPackageObjectReference(This,packageObjectReference);
4559 }
4560 static FORCEINLINE HRESULT IOpcDigitalSignature_GetCertificateEnumerator(IOpcDigitalSignature* This,IOpcCertificateEnumerator **certificateEnumerator) {
4561     return This->lpVtbl->GetCertificateEnumerator(This,certificateEnumerator);
4562 }
4563 static FORCEINLINE HRESULT IOpcDigitalSignature_GetCustomReferenceEnumerator(IOpcDigitalSignature* This,IOpcSignatureReferenceEnumerator **customReferenceEnumerator) {
4564     return This->lpVtbl->GetCustomReferenceEnumerator(This,customReferenceEnumerator);
4565 }
4566 static FORCEINLINE HRESULT IOpcDigitalSignature_GetCustomObjectEnumerator(IOpcDigitalSignature* This,IOpcSignatureCustomObjectEnumerator **customObjectEnumerator) {
4567     return This->lpVtbl->GetCustomObjectEnumerator(This,customObjectEnumerator);
4568 }
4569 static FORCEINLINE HRESULT IOpcDigitalSignature_GetSignatureXml(IOpcDigitalSignature* This,UINT8 **signatureXml,UINT32 *count) {
4570     return This->lpVtbl->GetSignatureXml(This,signatureXml,count);
4571 }
4572 #endif
4573 #endif
4574 
4575 #endif
4576 
4577 
4578 #endif  /* __IOpcDigitalSignature_INTERFACE_DEFINED__ */
4579 
4580 /*****************************************************************************
4581  * IOpcSigningOptions interface
4582  */
4583 #ifndef __IOpcSigningOptions_INTERFACE_DEFINED__
4584 #define __IOpcSigningOptions_INTERFACE_DEFINED__
4585 
4586 DEFINE_GUID(IID_IOpcSigningOptions, 0x50d2d6a5, 0x7aeb, 0x46c0, 0xb2,0x41, 0x43,0xab,0x0e,0x9b,0x40,0x7e);
4587 #if defined(__cplusplus) && !defined(CINTERFACE)
4588 MIDL_INTERFACE("50d2d6a5-7aeb-46c0-b241-43ab0e9b407e")
4589 IOpcSigningOptions : public IUnknown
4590 {
4591     virtual HRESULT STDMETHODCALLTYPE GetSignatureId(
4592         LPWSTR *signatureId) = 0;
4593 
4594     virtual HRESULT STDMETHODCALLTYPE SetSignatureId(
4595         LPCWSTR signatureId) = 0;
4596 
4597     virtual HRESULT STDMETHODCALLTYPE GetSignatureMethod(
4598         LPWSTR *signatureMethod) = 0;
4599 
4600     virtual HRESULT STDMETHODCALLTYPE SetSignatureMethod(
4601         LPCWSTR signatureMethod) = 0;
4602 
4603     virtual HRESULT STDMETHODCALLTYPE GetDefaultDigestMethod(
4604         LPWSTR *digestMethod) = 0;
4605 
4606     virtual HRESULT STDMETHODCALLTYPE SetDefaultDigestMethod(
4607         LPCWSTR digestMethod) = 0;
4608 
4609     virtual HRESULT STDMETHODCALLTYPE GetCertificateEmbeddingOption(
4610         OPC_CERTIFICATE_EMBEDDING_OPTION *embeddingOption) = 0;
4611 
4612     virtual HRESULT STDMETHODCALLTYPE SetCertificateEmbeddingOption(
4613         OPC_CERTIFICATE_EMBEDDING_OPTION embeddingOption) = 0;
4614 
4615     virtual HRESULT STDMETHODCALLTYPE GetTimeFormat(
4616         OPC_SIGNATURE_TIME_FORMAT *timeFormat) = 0;
4617 
4618     virtual HRESULT STDMETHODCALLTYPE SetTimeFormat(
4619         OPC_SIGNATURE_TIME_FORMAT timeFormat) = 0;
4620 
4621     virtual HRESULT STDMETHODCALLTYPE GetSignaturePartReferenceSet(
4622         IOpcSignaturePartReferenceSet **partReferenceSet) = 0;
4623 
4624     virtual HRESULT STDMETHODCALLTYPE GetSignatureRelationshipReferenceSet(
4625         IOpcSignatureRelationshipReferenceSet **relationshipReferenceSet) = 0;
4626 
4627     virtual HRESULT STDMETHODCALLTYPE GetCustomObjectSet(
4628         IOpcSignatureCustomObjectSet **customObjectSet) = 0;
4629 
4630     virtual HRESULT STDMETHODCALLTYPE GetCustomReferenceSet(
4631         IOpcSignatureReferenceSet **customReferenceSet) = 0;
4632 
4633     virtual HRESULT STDMETHODCALLTYPE GetCertificateSet(
4634         IOpcCertificateSet **certificateSet) = 0;
4635 
4636     virtual HRESULT STDMETHODCALLTYPE GetSignaturePartName(
4637         IOpcPartUri **signaturePartName) = 0;
4638 
4639     virtual HRESULT STDMETHODCALLTYPE SetSignaturePartName(
4640         IOpcPartUri *signaturePartName) = 0;
4641 
4642 };
4643 #ifdef __CRT_UUID_DECL
4644 __CRT_UUID_DECL(IOpcSigningOptions, 0x50d2d6a5, 0x7aeb, 0x46c0, 0xb2,0x41, 0x43,0xab,0x0e,0x9b,0x40,0x7e)
4645 #endif
4646 #else
4647 typedef struct IOpcSigningOptionsVtbl {
4648     BEGIN_INTERFACE
4649 
4650     /*** IUnknown methods ***/
4651     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4652         IOpcSigningOptions *This,
4653         REFIID riid,
4654         void **ppvObject);
4655 
4656     ULONG (STDMETHODCALLTYPE *AddRef)(
4657         IOpcSigningOptions *This);
4658 
4659     ULONG (STDMETHODCALLTYPE *Release)(
4660         IOpcSigningOptions *This);
4661 
4662     /*** IOpcSigningOptions methods ***/
4663     HRESULT (STDMETHODCALLTYPE *GetSignatureId)(
4664         IOpcSigningOptions *This,
4665         LPWSTR *signatureId);
4666 
4667     HRESULT (STDMETHODCALLTYPE *SetSignatureId)(
4668         IOpcSigningOptions *This,
4669         LPCWSTR signatureId);
4670 
4671     HRESULT (STDMETHODCALLTYPE *GetSignatureMethod)(
4672         IOpcSigningOptions *This,
4673         LPWSTR *signatureMethod);
4674 
4675     HRESULT (STDMETHODCALLTYPE *SetSignatureMethod)(
4676         IOpcSigningOptions *This,
4677         LPCWSTR signatureMethod);
4678 
4679     HRESULT (STDMETHODCALLTYPE *GetDefaultDigestMethod)(
4680         IOpcSigningOptions *This,
4681         LPWSTR *digestMethod);
4682 
4683     HRESULT (STDMETHODCALLTYPE *SetDefaultDigestMethod)(
4684         IOpcSigningOptions *This,
4685         LPCWSTR digestMethod);
4686 
4687     HRESULT (STDMETHODCALLTYPE *GetCertificateEmbeddingOption)(
4688         IOpcSigningOptions *This,
4689         OPC_CERTIFICATE_EMBEDDING_OPTION *embeddingOption);
4690 
4691     HRESULT (STDMETHODCALLTYPE *SetCertificateEmbeddingOption)(
4692         IOpcSigningOptions *This,
4693         OPC_CERTIFICATE_EMBEDDING_OPTION embeddingOption);
4694 
4695     HRESULT (STDMETHODCALLTYPE *GetTimeFormat)(
4696         IOpcSigningOptions *This,
4697         OPC_SIGNATURE_TIME_FORMAT *timeFormat);
4698 
4699     HRESULT (STDMETHODCALLTYPE *SetTimeFormat)(
4700         IOpcSigningOptions *This,
4701         OPC_SIGNATURE_TIME_FORMAT timeFormat);
4702 
4703     HRESULT (STDMETHODCALLTYPE *GetSignaturePartReferenceSet)(
4704         IOpcSigningOptions *This,
4705         IOpcSignaturePartReferenceSet **partReferenceSet);
4706 
4707     HRESULT (STDMETHODCALLTYPE *GetSignatureRelationshipReferenceSet)(
4708         IOpcSigningOptions *This,
4709         IOpcSignatureRelationshipReferenceSet **relationshipReferenceSet);
4710 
4711     HRESULT (STDMETHODCALLTYPE *GetCustomObjectSet)(
4712         IOpcSigningOptions *This,
4713         IOpcSignatureCustomObjectSet **customObjectSet);
4714 
4715     HRESULT (STDMETHODCALLTYPE *GetCustomReferenceSet)(
4716         IOpcSigningOptions *This,
4717         IOpcSignatureReferenceSet **customReferenceSet);
4718 
4719     HRESULT (STDMETHODCALLTYPE *GetCertificateSet)(
4720         IOpcSigningOptions *This,
4721         IOpcCertificateSet **certificateSet);
4722 
4723     HRESULT (STDMETHODCALLTYPE *GetSignaturePartName)(
4724         IOpcSigningOptions *This,
4725         IOpcPartUri **signaturePartName);
4726 
4727     HRESULT (STDMETHODCALLTYPE *SetSignaturePartName)(
4728         IOpcSigningOptions *This,
4729         IOpcPartUri *signaturePartName);
4730 
4731     END_INTERFACE
4732 } IOpcSigningOptionsVtbl;
4733 
4734 interface IOpcSigningOptions {
4735     CONST_VTBL IOpcSigningOptionsVtbl* lpVtbl;
4736 };
4737 
4738 #ifdef COBJMACROS
4739 #ifndef WIDL_C_INLINE_WRAPPERS
4740 /*** IUnknown methods ***/
4741 #define IOpcSigningOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4742 #define IOpcSigningOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
4743 #define IOpcSigningOptions_Release(This) (This)->lpVtbl->Release(This)
4744 /*** IOpcSigningOptions methods ***/
4745 #define IOpcSigningOptions_GetSignatureId(This,signatureId) (This)->lpVtbl->GetSignatureId(This,signatureId)
4746 #define IOpcSigningOptions_SetSignatureId(This,signatureId) (This)->lpVtbl->SetSignatureId(This,signatureId)
4747 #define IOpcSigningOptions_GetSignatureMethod(This,signatureMethod) (This)->lpVtbl->GetSignatureMethod(This,signatureMethod)
4748 #define IOpcSigningOptions_SetSignatureMethod(This,signatureMethod) (This)->lpVtbl->SetSignatureMethod(This,signatureMethod)
4749 #define IOpcSigningOptions_GetDefaultDigestMethod(This,digestMethod) (This)->lpVtbl->GetDefaultDigestMethod(This,digestMethod)
4750 #define IOpcSigningOptions_SetDefaultDigestMethod(This,digestMethod) (This)->lpVtbl->SetDefaultDigestMethod(This,digestMethod)
4751 #define IOpcSigningOptions_GetCertificateEmbeddingOption(This,embeddingOption) (This)->lpVtbl->GetCertificateEmbeddingOption(This,embeddingOption)
4752 #define IOpcSigningOptions_SetCertificateEmbeddingOption(This,embeddingOption) (This)->lpVtbl->SetCertificateEmbeddingOption(This,embeddingOption)
4753 #define IOpcSigningOptions_GetTimeFormat(This,timeFormat) (This)->lpVtbl->GetTimeFormat(This,timeFormat)
4754 #define IOpcSigningOptions_SetTimeFormat(This,timeFormat) (This)->lpVtbl->SetTimeFormat(This,timeFormat)
4755 #define IOpcSigningOptions_GetSignaturePartReferenceSet(This,partReferenceSet) (This)->lpVtbl->GetSignaturePartReferenceSet(This,partReferenceSet)
4756 #define IOpcSigningOptions_GetSignatureRelationshipReferenceSet(This,relationshipReferenceSet) (This)->lpVtbl->GetSignatureRelationshipReferenceSet(This,relationshipReferenceSet)
4757 #define IOpcSigningOptions_GetCustomObjectSet(This,customObjectSet) (This)->lpVtbl->GetCustomObjectSet(This,customObjectSet)
4758 #define IOpcSigningOptions_GetCustomReferenceSet(This,customReferenceSet) (This)->lpVtbl->GetCustomReferenceSet(This,customReferenceSet)
4759 #define IOpcSigningOptions_GetCertificateSet(This,certificateSet) (This)->lpVtbl->GetCertificateSet(This,certificateSet)
4760 #define IOpcSigningOptions_GetSignaturePartName(This,signaturePartName) (This)->lpVtbl->GetSignaturePartName(This,signaturePartName)
4761 #define IOpcSigningOptions_SetSignaturePartName(This,signaturePartName) (This)->lpVtbl->SetSignaturePartName(This,signaturePartName)
4762 #else
4763 /*** IUnknown methods ***/
4764 static FORCEINLINE HRESULT IOpcSigningOptions_QueryInterface(IOpcSigningOptions* This,REFIID riid,void **ppvObject) {
4765     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4766 }
4767 static FORCEINLINE ULONG IOpcSigningOptions_AddRef(IOpcSigningOptions* This) {
4768     return This->lpVtbl->AddRef(This);
4769 }
4770 static FORCEINLINE ULONG IOpcSigningOptions_Release(IOpcSigningOptions* This) {
4771     return This->lpVtbl->Release(This);
4772 }
4773 /*** IOpcSigningOptions methods ***/
4774 static FORCEINLINE HRESULT IOpcSigningOptions_GetSignatureId(IOpcSigningOptions* This,LPWSTR *signatureId) {
4775     return This->lpVtbl->GetSignatureId(This,signatureId);
4776 }
4777 static FORCEINLINE HRESULT IOpcSigningOptions_SetSignatureId(IOpcSigningOptions* This,LPCWSTR signatureId) {
4778     return This->lpVtbl->SetSignatureId(This,signatureId);
4779 }
4780 static FORCEINLINE HRESULT IOpcSigningOptions_GetSignatureMethod(IOpcSigningOptions* This,LPWSTR *signatureMethod) {
4781     return This->lpVtbl->GetSignatureMethod(This,signatureMethod);
4782 }
4783 static FORCEINLINE HRESULT IOpcSigningOptions_SetSignatureMethod(IOpcSigningOptions* This,LPCWSTR signatureMethod) {
4784     return This->lpVtbl->SetSignatureMethod(This,signatureMethod);
4785 }
4786 static FORCEINLINE HRESULT IOpcSigningOptions_GetDefaultDigestMethod(IOpcSigningOptions* This,LPWSTR *digestMethod) {
4787     return This->lpVtbl->GetDefaultDigestMethod(This,digestMethod);
4788 }
4789 static FORCEINLINE HRESULT IOpcSigningOptions_SetDefaultDigestMethod(IOpcSigningOptions* This,LPCWSTR digestMethod) {
4790     return This->lpVtbl->SetDefaultDigestMethod(This,digestMethod);
4791 }
4792 static FORCEINLINE HRESULT IOpcSigningOptions_GetCertificateEmbeddingOption(IOpcSigningOptions* This,OPC_CERTIFICATE_EMBEDDING_OPTION *embeddingOption) {
4793     return This->lpVtbl->GetCertificateEmbeddingOption(This,embeddingOption);
4794 }
4795 static FORCEINLINE HRESULT IOpcSigningOptions_SetCertificateEmbeddingOption(IOpcSigningOptions* This,OPC_CERTIFICATE_EMBEDDING_OPTION embeddingOption) {
4796     return This->lpVtbl->SetCertificateEmbeddingOption(This,embeddingOption);
4797 }
4798 static FORCEINLINE HRESULT IOpcSigningOptions_GetTimeFormat(IOpcSigningOptions* This,OPC_SIGNATURE_TIME_FORMAT *timeFormat) {
4799     return This->lpVtbl->GetTimeFormat(This,timeFormat);
4800 }
4801 static FORCEINLINE HRESULT IOpcSigningOptions_SetTimeFormat(IOpcSigningOptions* This,OPC_SIGNATURE_TIME_FORMAT timeFormat) {
4802     return This->lpVtbl->SetTimeFormat(This,timeFormat);
4803 }
4804 static FORCEINLINE HRESULT IOpcSigningOptions_GetSignaturePartReferenceSet(IOpcSigningOptions* This,IOpcSignaturePartReferenceSet **partReferenceSet) {
4805     return This->lpVtbl->GetSignaturePartReferenceSet(This,partReferenceSet);
4806 }
4807 static FORCEINLINE HRESULT IOpcSigningOptions_GetSignatureRelationshipReferenceSet(IOpcSigningOptions* This,IOpcSignatureRelationshipReferenceSet **relationshipReferenceSet) {
4808     return This->lpVtbl->GetSignatureRelationshipReferenceSet(This,relationshipReferenceSet);
4809 }
4810 static FORCEINLINE HRESULT IOpcSigningOptions_GetCustomObjectSet(IOpcSigningOptions* This,IOpcSignatureCustomObjectSet **customObjectSet) {
4811     return This->lpVtbl->GetCustomObjectSet(This,customObjectSet);
4812 }
4813 static FORCEINLINE HRESULT IOpcSigningOptions_GetCustomReferenceSet(IOpcSigningOptions* This,IOpcSignatureReferenceSet **customReferenceSet) {
4814     return This->lpVtbl->GetCustomReferenceSet(This,customReferenceSet);
4815 }
4816 static FORCEINLINE HRESULT IOpcSigningOptions_GetCertificateSet(IOpcSigningOptions* This,IOpcCertificateSet **certificateSet) {
4817     return This->lpVtbl->GetCertificateSet(This,certificateSet);
4818 }
4819 static FORCEINLINE HRESULT IOpcSigningOptions_GetSignaturePartName(IOpcSigningOptions* This,IOpcPartUri **signaturePartName) {
4820     return This->lpVtbl->GetSignaturePartName(This,signaturePartName);
4821 }
4822 static FORCEINLINE HRESULT IOpcSigningOptions_SetSignaturePartName(IOpcSigningOptions* This,IOpcPartUri *signaturePartName) {
4823     return This->lpVtbl->SetSignaturePartName(This,signaturePartName);
4824 }
4825 #endif
4826 #endif
4827 
4828 #endif
4829 
4830 
4831 #endif  /* __IOpcSigningOptions_INTERFACE_DEFINED__ */
4832 
4833 /*****************************************************************************
4834  * IOpcFactory interface
4835  */
4836 #ifndef __IOpcFactory_INTERFACE_DEFINED__
4837 #define __IOpcFactory_INTERFACE_DEFINED__
4838 
4839 DEFINE_GUID(IID_IOpcFactory, 0x6d0b4446, 0xcd73, 0x4ab3, 0x94,0xf4, 0x8c,0xcd,0xf6,0x11,0x61,0x54);
4840 #if defined(__cplusplus) && !defined(CINTERFACE)
4841 MIDL_INTERFACE("6d0b4446-cd73-4ab3-94f4-8ccdf6116154")
4842 IOpcFactory : public IUnknown
4843 {
4844     virtual HRESULT STDMETHODCALLTYPE CreatePackageRootUri(
4845         IOpcUri **rootUri) = 0;
4846 
4847     virtual HRESULT STDMETHODCALLTYPE CreatePartUri(
4848         LPCWSTR pwzUri,
4849         IOpcPartUri **partUri) = 0;
4850 
4851     virtual HRESULT STDMETHODCALLTYPE CreateStreamOnFile(
4852         LPCWSTR filename,
4853         OPC_STREAM_IO_MODE ioMode,
4854         LPSECURITY_ATTRIBUTES securityAttributes,
4855         DWORD dwFlagsAndAttributes,
4856         IStream **stream) = 0;
4857 
4858     virtual HRESULT STDMETHODCALLTYPE CreatePackage(
4859         IOpcPackage **package) = 0;
4860 
4861     virtual HRESULT STDMETHODCALLTYPE ReadPackageFromStream(
4862         IStream *stream,
4863         OPC_READ_FLAGS flags,
4864         IOpcPackage **package) = 0;
4865 
4866     virtual HRESULT STDMETHODCALLTYPE WritePackageToStream(
4867         IOpcPackage *package,
4868         OPC_WRITE_FLAGS flags,
4869         IStream *stream) = 0;
4870 
4871     virtual HRESULT STDMETHODCALLTYPE CreateDigitalSignatureManager(
4872         IOpcPackage *package,
4873         IOpcDigitalSignatureManager **signatureManager) = 0;
4874 
4875 };
4876 #ifdef __CRT_UUID_DECL
4877 __CRT_UUID_DECL(IOpcFactory, 0x6d0b4446, 0xcd73, 0x4ab3, 0x94,0xf4, 0x8c,0xcd,0xf6,0x11,0x61,0x54)
4878 #endif
4879 #else
4880 typedef struct IOpcFactoryVtbl {
4881     BEGIN_INTERFACE
4882 
4883     /*** IUnknown methods ***/
4884     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4885         IOpcFactory *This,
4886         REFIID riid,
4887         void **ppvObject);
4888 
4889     ULONG (STDMETHODCALLTYPE *AddRef)(
4890         IOpcFactory *This);
4891 
4892     ULONG (STDMETHODCALLTYPE *Release)(
4893         IOpcFactory *This);
4894 
4895     /*** IOpcFactory methods ***/
4896     HRESULT (STDMETHODCALLTYPE *CreatePackageRootUri)(
4897         IOpcFactory *This,
4898         IOpcUri **rootUri);
4899 
4900     HRESULT (STDMETHODCALLTYPE *CreatePartUri)(
4901         IOpcFactory *This,
4902         LPCWSTR pwzUri,
4903         IOpcPartUri **partUri);
4904 
4905     HRESULT (STDMETHODCALLTYPE *CreateStreamOnFile)(
4906         IOpcFactory *This,
4907         LPCWSTR filename,
4908         OPC_STREAM_IO_MODE ioMode,
4909         LPSECURITY_ATTRIBUTES securityAttributes,
4910         DWORD dwFlagsAndAttributes,
4911         IStream **stream);
4912 
4913     HRESULT (STDMETHODCALLTYPE *CreatePackage)(
4914         IOpcFactory *This,
4915         IOpcPackage **package);
4916 
4917     HRESULT (STDMETHODCALLTYPE *ReadPackageFromStream)(
4918         IOpcFactory *This,
4919         IStream *stream,
4920         OPC_READ_FLAGS flags,
4921         IOpcPackage **package);
4922 
4923     HRESULT (STDMETHODCALLTYPE *WritePackageToStream)(
4924         IOpcFactory *This,
4925         IOpcPackage *package,
4926         OPC_WRITE_FLAGS flags,
4927         IStream *stream);
4928 
4929     HRESULT (STDMETHODCALLTYPE *CreateDigitalSignatureManager)(
4930         IOpcFactory *This,
4931         IOpcPackage *package,
4932         IOpcDigitalSignatureManager **signatureManager);
4933 
4934     END_INTERFACE
4935 } IOpcFactoryVtbl;
4936 
4937 interface IOpcFactory {
4938     CONST_VTBL IOpcFactoryVtbl* lpVtbl;
4939 };
4940 
4941 #ifdef COBJMACROS
4942 #ifndef WIDL_C_INLINE_WRAPPERS
4943 /*** IUnknown methods ***/
4944 #define IOpcFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4945 #define IOpcFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
4946 #define IOpcFactory_Release(This) (This)->lpVtbl->Release(This)
4947 /*** IOpcFactory methods ***/
4948 #define IOpcFactory_CreatePackageRootUri(This,rootUri) (This)->lpVtbl->CreatePackageRootUri(This,rootUri)
4949 #define IOpcFactory_CreatePartUri(This,pwzUri,partUri) (This)->lpVtbl->CreatePartUri(This,pwzUri,partUri)
4950 #define IOpcFactory_CreateStreamOnFile(This,filename,ioMode,securityAttributes,dwFlagsAndAttributes,stream) (This)->lpVtbl->CreateStreamOnFile(This,filename,ioMode,securityAttributes,dwFlagsAndAttributes,stream)
4951 #define IOpcFactory_CreatePackage(This,package) (This)->lpVtbl->CreatePackage(This,package)
4952 #define IOpcFactory_ReadPackageFromStream(This,stream,flags,package) (This)->lpVtbl->ReadPackageFromStream(This,stream,flags,package)
4953 #define IOpcFactory_WritePackageToStream(This,package,flags,stream) (This)->lpVtbl->WritePackageToStream(This,package,flags,stream)
4954 #define IOpcFactory_CreateDigitalSignatureManager(This,package,signatureManager) (This)->lpVtbl->CreateDigitalSignatureManager(This,package,signatureManager)
4955 #else
4956 /*** IUnknown methods ***/
4957 static FORCEINLINE HRESULT IOpcFactory_QueryInterface(IOpcFactory* This,REFIID riid,void **ppvObject) {
4958     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4959 }
4960 static FORCEINLINE ULONG IOpcFactory_AddRef(IOpcFactory* This) {
4961     return This->lpVtbl->AddRef(This);
4962 }
4963 static FORCEINLINE ULONG IOpcFactory_Release(IOpcFactory* This) {
4964     return This->lpVtbl->Release(This);
4965 }
4966 /*** IOpcFactory methods ***/
4967 static FORCEINLINE HRESULT IOpcFactory_CreatePackageRootUri(IOpcFactory* This,IOpcUri **rootUri) {
4968     return This->lpVtbl->CreatePackageRootUri(This,rootUri);
4969 }
4970 static FORCEINLINE HRESULT IOpcFactory_CreatePartUri(IOpcFactory* This,LPCWSTR pwzUri,IOpcPartUri **partUri) {
4971     return This->lpVtbl->CreatePartUri(This,pwzUri,partUri);
4972 }
4973 static FORCEINLINE HRESULT IOpcFactory_CreateStreamOnFile(IOpcFactory* This,LPCWSTR filename,OPC_STREAM_IO_MODE ioMode,LPSECURITY_ATTRIBUTES securityAttributes,DWORD dwFlagsAndAttributes,IStream **stream) {
4974     return This->lpVtbl->CreateStreamOnFile(This,filename,ioMode,securityAttributes,dwFlagsAndAttributes,stream);
4975 }
4976 static FORCEINLINE HRESULT IOpcFactory_CreatePackage(IOpcFactory* This,IOpcPackage **package) {
4977     return This->lpVtbl->CreatePackage(This,package);
4978 }
4979 static FORCEINLINE HRESULT IOpcFactory_ReadPackageFromStream(IOpcFactory* This,IStream *stream,OPC_READ_FLAGS flags,IOpcPackage **package) {
4980     return This->lpVtbl->ReadPackageFromStream(This,stream,flags,package);
4981 }
4982 static FORCEINLINE HRESULT IOpcFactory_WritePackageToStream(IOpcFactory* This,IOpcPackage *package,OPC_WRITE_FLAGS flags,IStream *stream) {
4983     return This->lpVtbl->WritePackageToStream(This,package,flags,stream);
4984 }
4985 static FORCEINLINE HRESULT IOpcFactory_CreateDigitalSignatureManager(IOpcFactory* This,IOpcPackage *package,IOpcDigitalSignatureManager **signatureManager) {
4986     return This->lpVtbl->CreateDigitalSignatureManager(This,package,signatureManager);
4987 }
4988 #endif
4989 #endif
4990 
4991 #endif
4992 
4993 
4994 #endif  /* __IOpcFactory_INTERFACE_DEFINED__ */
4995 
4996 /*****************************************************************************
4997  * OpcFactory coclass
4998  */
4999 
5000 DEFINE_GUID(CLSID_OpcFactory, 0x6b2d6ba0, 0x9f3e, 0x4f27, 0x92,0x0b, 0x31,0x3c,0xc4,0x26,0xa3,0x9e);
5001 
5002 #ifdef __cplusplus
5003 class DECLSPEC_UUID("6b2d6ba0-9f3e-4f27-920b-313cc426a39e") OpcFactory;
5004 #ifdef __CRT_UUID_DECL
5005 __CRT_UUID_DECL(OpcFactory, 0x6b2d6ba0, 0x9f3e, 0x4f27, 0x92,0x0b, 0x31,0x3c,0xc4,0x26,0xa3,0x9e)
5006 #endif
5007 #endif
5008 
5009 #endif /* __MSOPC_LIBRARY_DEFINED__ */
5010 #endif
5011 #endif
5012 /* Begin additional prototypes for all interfaces */
5013 
5014 
5015 /* End additional prototypes */
5016 
5017 #ifdef __cplusplus
5018 }
5019 #endif
5020 
5021 #endif /* __msopc_h__ */
5022