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