zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

msopc.h (206377B) - Raw


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