| 1 | /** | 
 
 
 
 
 | 2 | * This file has no copyright assigned and is placed in the Public Domain. | 
 
 
 
 
 | 3 | * This file is part of the mingw-w64 runtime package. | 
 
 
 
 
 | 4 | * No warranty is given; refer to the file DISCLAIMER.PD within this package. | 
 
 
 
 
 | 5 | */ | 
 
 
 
 
 | 6 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ | 
 
 
 
 
 | 7 | #define __REQUIRED_RPCNDR_H_VERSION__ 475 | 
 
 
 
 
 | 8 | #endif | 
 
 
 
 
 | 9 |  | 
 
 
 
 
 | 10 | #include "rpc.h" | 
 
 
 
 
 | 11 | #include "rpcndr.h" | 
 
 
 
 
 | 12 |  | 
 
 
 
 
 | 13 | #ifndef __RPCNDR_H_VERSION__ | 
 
 
 
 
 | 14 | #error This stub requires an updated version of <rpcndr.h> | 
 
 
 
 
 | 15 | #endif | 
 
 
 
 
 | 16 |  | 
 
 
 
 
 | 17 | #ifndef COM_NO_WINDOWS_H | 
 
 
 
 
 | 18 | #include "windows.h" | 
 
 
 
 
 | 19 | #include "ole2.h" | 
 
 
 
 
 | 20 | #endif | 
 
 
 
 
 | 21 |  | 
 
 
 
 
 | 22 | #ifndef __transact_h__ | 
 
 
 
 
 | 23 | #define __transact_h__ | 
 
 
 
 
 | 24 |  | 
 
 
 
 
 | 25 | #ifndef __ITransaction_FWD_DEFINED__ | 
 
 
 
 
 | 26 | #define __ITransaction_FWD_DEFINED__ | 
 
 
 
 
 | 27 | typedef struct ITransaction ITransaction; | 
 
 
 
 
 | 28 | #endif | 
 
 
 
 
 | 29 |  | 
 
 
 
 
 | 30 | #ifndef __ITransactionCloner_FWD_DEFINED__ | 
 
 
 
 
 | 31 | #define __ITransactionCloner_FWD_DEFINED__ | 
 
 
 
 
 | 32 | typedef struct ITransactionCloner ITransactionCloner; | 
 
 
 
 
 | 33 | #endif | 
 
 
 
 
 | 34 |  | 
 
 
 
 
 | 35 | #ifndef __ITransaction2_FWD_DEFINED__ | 
 
 
 
 
 | 36 | #define __ITransaction2_FWD_DEFINED__ | 
 
 
 
 
 | 37 | typedef struct ITransaction2 ITransaction2; | 
 
 
 
 
 | 38 | #endif | 
 
 
 
 
 | 39 |  | 
 
 
 
 
 | 40 | #ifndef __ITransactionDispenser_FWD_DEFINED__ | 
 
 
 
 
 | 41 | #define __ITransactionDispenser_FWD_DEFINED__ | 
 
 
 
 
 | 42 | typedef struct ITransactionDispenser ITransactionDispenser; | 
 
 
 
 
 | 43 | #endif | 
 
 
 
 
 | 44 |  | 
 
 
 
 
 | 45 | #ifndef __ITransactionOptions_FWD_DEFINED__ | 
 
 
 
 
 | 46 | #define __ITransactionOptions_FWD_DEFINED__ | 
 
 
 
 
 | 47 | typedef struct ITransactionOptions ITransactionOptions; | 
 
 
 
 
 | 48 | #endif | 
 
 
 
 
 | 49 |  | 
 
 
 
 
 | 50 | #ifndef __ITransactionOutcomeEvents_FWD_DEFINED__ | 
 
 
 
 
 | 51 | #define __ITransactionOutcomeEvents_FWD_DEFINED__ | 
 
 
 
 
 | 52 | typedef struct ITransactionOutcomeEvents ITransactionOutcomeEvents; | 
 
 
 
 
 | 53 | #endif | 
 
 
 
 
 | 54 |  | 
 
 
 
 
 | 55 | #ifndef __ITmNodeName_FWD_DEFINED__ | 
 
 
 
 
 | 56 | #define __ITmNodeName_FWD_DEFINED__ | 
 
 
 
 
 | 57 | typedef struct ITmNodeName ITmNodeName; | 
 
 
 
 
 | 58 | #endif | 
 
 
 
 
 | 59 |  | 
 
 
 
 
 | 60 | #include "unknwn.h" | 
 
 
 
 
 | 61 |  | 
 
 
 
 
 | 62 | #ifdef __cplusplus | 
 
 
 
 
 | 63 | extern "C" { | 
 
 
 
 
 | 64 | #endif | 
 
 
 
 
 | 65 |  | 
 
 
 
 
 | 66 | #ifndef __MIDL_user_allocate_free_DEFINED__ | 
 
 
 
 
 | 67 | #define __MIDL_user_allocate_free_DEFINED__ | 
 
 
 
 
 | 68 | void *__RPC_API MIDL_user_allocate(size_t); | 
 
 
 
 
 | 69 | void __RPC_API MIDL_user_free(void *); | 
 
 
 
 
 | 70 | #endif | 
 
 
 
 
 | 71 |  | 
 
 
 
 
 | 72 | #include "winerror.h" | 
 
 
 
 
 | 73 |  | 
 
 
 
 
 | 74 | extern RPC_IF_HANDLE __MIDL_itf_transact_0000_v0_0_c_ifspec; | 
 
 
 
 
 | 75 | extern RPC_IF_HANDLE __MIDL_itf_transact_0000_v0_0_s_ifspec; | 
 
 
 
 
 | 76 |  | 
 
 
 
 
 | 77 | #ifndef __BasicTransactionTypes_INTERFACE_DEFINED__ | 
 
 
 
 
 | 78 | #define __BasicTransactionTypes_INTERFACE_DEFINED__ | 
 
 
 
 
 | 79 |  | 
 
 
 
 
 | 80 | typedef struct BOID { | 
 
 
 
 
 | 81 | byte rgb[16 ]; | 
 
 
 
 
 | 82 | } BOID; | 
 
 
 
 
 | 83 |  | 
 
 
 
 
 | 84 | #define BOID_NULL (*((BOID*)(&IID_NULL))) | 
 
 
 
 
 | 85 | #ifndef MAX_TRAN_DESC_DEFINED | 
 
 
 
 
 | 86 | #define MAX_TRAN_DESC_DEFINED | 
 
 
 
 
 | 87 | typedef enum TX_MISC_CONSTANTS { | 
 
 
 
 
 | 88 | MAX_TRAN_DESC = 40 | 
 
 
 
 
 | 89 | } TX_MISC_CONSTANTS; | 
 
 
 
 
 | 90 | #endif | 
 
 
 
 
 | 91 | typedef BOID XACTUOW; | 
 
 
 
 
 | 92 | typedef LONG ISOLEVEL; | 
 
 
 
 
 | 93 |  | 
 
 
 
 
 | 94 | typedef enum ISOLATIONLEVEL { | 
 
 
 
 
 | 95 | ISOLATIONLEVEL_UNSPECIFIED = 0xffffffff,ISOLATIONLEVEL_CHAOS = 0x10,ISOLATIONLEVEL_READUNCOMMITTED = 0x100,ISOLATIONLEVEL_BROWSE = 0x100, | 
 
 
 
 
 | 96 | ISOLATIONLEVEL_CURSORSTABILITY = 0x1000,ISOLATIONLEVEL_READCOMMITTED = 0x1000,ISOLATIONLEVEL_REPEATABLEREAD = 0x10000, | 
 
 
 
 
 | 97 | ISOLATIONLEVEL_SERIALIZABLE = 0x100000,ISOLATIONLEVEL_ISOLATED = 0x100000 | 
 
 
 
 
 | 98 | } ISOLATIONLEVEL; | 
 
 
 
 
 | 99 |  | 
 
 
 
 
 | 100 | typedef struct XACTTRANSINFO { | 
 
 
 
 
 | 101 | XACTUOW uow; | 
 
 
 
 
 | 102 | ISOLEVEL isoLevel; | 
 
 
 
 
 | 103 | ULONG isoFlags; | 
 
 
 
 
 | 104 | DWORD grfTCSupported; | 
 
 
 
 
 | 105 | DWORD grfRMSupported; | 
 
 
 
 
 | 106 | DWORD grfTCSupportedRetaining; | 
 
 
 
 
 | 107 | DWORD grfRMSupportedRetaining; | 
 
 
 
 
 | 108 | } XACTTRANSINFO; | 
 
 
 
 
 | 109 |  | 
 
 
 
 
 | 110 | typedef struct XACTSTATS { | 
 
 
 
 
 | 111 | ULONG cOpen; | 
 
 
 
 
 | 112 | ULONG cCommitting; | 
 
 
 
 
 | 113 | ULONG cCommitted; | 
 
 
 
 
 | 114 | ULONG cAborting; | 
 
 
 
 
 | 115 | ULONG cAborted; | 
 
 
 
 
 | 116 | ULONG cInDoubt; | 
 
 
 
 
 | 117 | ULONG cHeuristicDecision; | 
 
 
 
 
 | 118 | FILETIME timeTransactionsUp; | 
 
 
 
 
 | 119 | } XACTSTATS; | 
 
 
 
 
 | 120 |  | 
 
 
 
 
 | 121 | typedef enum ISOFLAG { | 
 
 
 
 
 | 122 | ISOFLAG_RETAIN_COMMIT_DC = 1,ISOFLAG_RETAIN_COMMIT = 2,ISOFLAG_RETAIN_COMMIT_NO = 3,ISOFLAG_RETAIN_ABORT_DC = 4,ISOFLAG_RETAIN_ABORT = 8, | 
 
 
 
 
 | 123 | ISOFLAG_RETAIN_ABORT_NO = 12,ISOFLAG_RETAIN_DONTCARE = ISOFLAG_RETAIN_COMMIT_DC | ISOFLAG_RETAIN_ABORT_DC, | 
 
 
 
 
 | 124 | ISOFLAG_RETAIN_BOTH = ISOFLAG_RETAIN_COMMIT | ISOFLAG_RETAIN_ABORT,ISOFLAG_RETAIN_NONE = ISOFLAG_RETAIN_COMMIT_NO | ISOFLAG_RETAIN_ABORT_NO,ISOFLAG_OPTIMISTIC = 16,ISOFLAG_READONLY = 32 | 
 
 
 
 
 | 125 | } ISOFLAG; | 
 
 
 
 
 | 126 |  | 
 
 
 
 
 | 127 | typedef enum XACTTC { | 
 
 
 
 
 | 128 | XACTTC_NONE = 0,XACTTC_SYNC_PHASEONE = 1,XACTTC_SYNC_PHASETWO = 2,XACTTC_SYNC = 2,XACTTC_ASYNC_PHASEONE = 4,XACTTC_ASYNC = 4 | 
 
 
 
 
 | 129 | } XACTTC; | 
 
 
 
 
 | 130 |  | 
 
 
 
 
 | 131 | typedef enum XACTRM { | 
 
 
 
 
 | 132 | XACTRM_OPTIMISTICLASTWINS = 1,XACTRM_NOREADONLYPREPARES = 2 | 
 
 
 
 
 | 133 | } XACTRM; | 
 
 
 
 
 | 134 |  | 
 
 
 
 
 | 135 | typedef enum XACTCONST { | 
 
 
 
 
 | 136 | XACTCONST_TIMEOUTINFINITE = 0 | 
 
 
 
 
 | 137 | } XACTCONST; | 
 
 
 
 
 | 138 |  | 
 
 
 
 
 | 139 | typedef enum XACTHEURISTIC { | 
 
 
 
 
 | 140 | XACTHEURISTIC_ABORT = 1,XACTHEURISTIC_COMMIT = 2,XACTHEURISTIC_DAMAGE = 3,XACTHEURISTIC_DANGER = 4 | 
 
 
 
 
 | 141 | } XACTHEURISTIC; | 
 
 
 
 
 | 142 |  | 
 
 
 
 
 | 143 | typedef enum XACTSTAT { | 
 
 
 
 
 | 144 | XACTSTAT_NONE = 0,XACTSTAT_OPENNORMAL = 0x1,XACTSTAT_OPENREFUSED = 0x2,XACTSTAT_PREPARING = 0x4,XACTSTAT_PREPARED = 0x8,XACTSTAT_PREPARERETAINING = 0x10,XACTSTAT_PREPARERETAINED = 0x20,XACTSTAT_COMMITTING = 0x40,XACTSTAT_COMMITRETAINING = 0x80,XACTSTAT_ABORTING = 0x100,XACTSTAT_ABORTED = 0x200,XACTSTAT_COMMITTED = 0x400,XACTSTAT_HEURISTIC_ABORT = 0x800,XACTSTAT_HEURISTIC_COMMIT = 0x1000,XACTSTAT_HEURISTIC_DAMAGE = 0x2000,XACTSTAT_HEURISTIC_DANGER = 0x4000,XACTSTAT_FORCED_ABORT = 0x8000,XACTSTAT_FORCED_COMMIT = 0x10000,XACTSTAT_INDOUBT = 0x20000,XACTSTAT_CLOSED = 0x40000,XACTSTAT_OPEN = 0x3,XACTSTAT_NOTPREPARED = 0x7ffc3,XACTSTAT_ALL = 0x7ffff | 
 
 
 
 
 | 145 | } XACTSTAT; | 
 
 
 
 
 | 146 |  | 
 
 
 
 
 | 147 | typedef struct XACTOPT { | 
 
 
 
 
 | 148 | ULONG ulTimeout; | 
 
 
 
 
 | 149 | char szDescription[40 ]; | 
 
 
 
 
 | 150 | } XACTOPT; | 
 
 
 
 
 | 151 |  | 
 
 
 
 
 | 152 | extern RPC_IF_HANDLE BasicTransactionTypes_v0_0_c_ifspec; | 
 
 
 
 
 | 153 | extern RPC_IF_HANDLE BasicTransactionTypes_v0_0_s_ifspec; | 
 
 
 
 
 | 154 | #endif | 
 
 
 
 
 | 155 |  | 
 
 
 
 
 | 156 | #ifndef __ITransaction_INTERFACE_DEFINED__ | 
 
 
 
 
 | 157 | #define __ITransaction_INTERFACE_DEFINED__ | 
 
 
 
 
 | 158 | EXTERN_C const IID IID_ITransaction; | 
 
 
 
 
 | 159 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 
 
 
 
 | 160 | struct ITransaction : public IUnknown { | 
 
 
 
 
 | 161 | public: | 
 
 
 
 
 | 162 | virtual HRESULT WINAPI Commit(WINBOOL fRetaining,DWORD grfTC,DWORD grfRM) = 0; | 
 
 
 
 
 | 163 | virtual HRESULT WINAPI Abort(BOID *pboidReason,WINBOOL fRetaining,WINBOOL fAsync) = 0; | 
 
 
 
 
 | 164 | virtual HRESULT WINAPI GetTransactionInfo(XACTTRANSINFO *pinfo) = 0; | 
 
 
 
 
 | 165 | }; | 
 
 
 
 
 | 166 | #else | 
 
 
 
 
 | 167 | typedef struct ITransactionVtbl { | 
 
 
 
 
 | 168 | BEGIN_INTERFACE | 
 
 
 
 
 | 169 | HRESULT (WINAPI *QueryInterface)(ITransaction *This,REFIID riid,void **ppvObject); | 
 
 
 
 
 | 170 | ULONG (WINAPI *AddRef)(ITransaction *This); | 
 
 
 
 
 | 171 | ULONG (WINAPI *Release)(ITransaction *This); | 
 
 
 
 
 | 172 | HRESULT (WINAPI *Commit)(ITransaction *This,WINBOOL fRetaining,DWORD grfTC,DWORD grfRM); | 
 
 
 
 
 | 173 | HRESULT (WINAPI *Abort)(ITransaction *This,BOID *pboidReason,WINBOOL fRetaining,WINBOOL fAsync); | 
 
 
 
 
 | 174 | HRESULT (WINAPI *GetTransactionInfo)(ITransaction *This,XACTTRANSINFO *pinfo); | 
 
 
 
 
 | 175 | END_INTERFACE | 
 
 
 
 
 | 176 | } ITransactionVtbl; | 
 
 
 
 
 | 177 | struct ITransaction { | 
 
 
 
 
 | 178 | CONST_VTBL struct ITransactionVtbl *lpVtbl; | 
 
 
 
 
 | 179 | }; | 
 
 
 
 
 | 180 | #ifdef COBJMACROS | 
 
 
 
 
 | 181 | #define ITransaction_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 
 
 
 
 | 182 | #define ITransaction_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 
 
 
 
 | 183 | #define ITransaction_Release(This) (This)->lpVtbl->Release(This) | 
 
 
 
 
 | 184 | #define ITransaction_Commit(This,fRetaining,grfTC,grfRM) (This)->lpVtbl->Commit(This,fRetaining,grfTC,grfRM) | 
 
 
 
 
 | 185 | #define ITransaction_Abort(This,pboidReason,fRetaining,fAsync) (This)->lpVtbl->Abort(This,pboidReason,fRetaining,fAsync) | 
 
 
 
 
 | 186 | #define ITransaction_GetTransactionInfo(This,pinfo) (This)->lpVtbl->GetTransactionInfo(This,pinfo) | 
 
 
 
 
 | 187 | #endif | 
 
 
 
 
 | 188 | #endif | 
 
 
 
 
 | 189 | HRESULT WINAPI ITransaction_Commit_Proxy(ITransaction *This,WINBOOL fRetaining,DWORD grfTC,DWORD grfRM); | 
 
 
 
 
 | 190 | void __RPC_STUB ITransaction_Commit_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
 
 
 
 
 | 191 | HRESULT WINAPI ITransaction_Abort_Proxy(ITransaction *This,BOID *pboidReason,WINBOOL fRetaining,WINBOOL fAsync); | 
 
 
 
 
 | 192 | void __RPC_STUB ITransaction_Abort_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
 
 
 
 
 | 193 | HRESULT WINAPI ITransaction_GetTransactionInfo_Proxy(ITransaction *This,XACTTRANSINFO *pinfo); | 
 
 
 
 
 | 194 | void __RPC_STUB ITransaction_GetTransactionInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
 
 
 
 
 | 195 | #endif | 
 
 
 
 
 | 196 |  | 
 
 
 
 
 | 197 | #ifndef __ITransactionCloner_INTERFACE_DEFINED__ | 
 
 
 
 
 | 198 | #define __ITransactionCloner_INTERFACE_DEFINED__ | 
 
 
 
 
 | 199 | EXTERN_C const IID IID_ITransactionCloner; | 
 
 
 
 
 | 200 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 
 
 
 
 | 201 | struct ITransactionCloner : public ITransaction { | 
 
 
 
 
 | 202 | public: | 
 
 
 
 
 | 203 | virtual HRESULT WINAPI CloneWithCommitDisabled(ITransaction **ppITransaction) = 0; | 
 
 
 
 
 | 204 | }; | 
 
 
 
 
 | 205 | #else | 
 
 
 
 
 | 206 | typedef struct ITransactionClonerVtbl { | 
 
 
 
 
 | 207 | BEGIN_INTERFACE | 
 
 
 
 
 | 208 | HRESULT (WINAPI *QueryInterface)(ITransactionCloner *This,REFIID riid,void **ppvObject); | 
 
 
 
 
 | 209 | ULONG (WINAPI *AddRef)(ITransactionCloner *This); | 
 
 
 
 
 | 210 | ULONG (WINAPI *Release)(ITransactionCloner *This); | 
 
 
 
 
 | 211 | HRESULT (WINAPI *Commit)(ITransactionCloner *This,WINBOOL fRetaining,DWORD grfTC,DWORD grfRM); | 
 
 
 
 
 | 212 | HRESULT (WINAPI *Abort)(ITransactionCloner *This,BOID *pboidReason,WINBOOL fRetaining,WINBOOL fAsync); | 
 
 
 
 
 | 213 | HRESULT (WINAPI *GetTransactionInfo)(ITransactionCloner *This,XACTTRANSINFO *pinfo); | 
 
 
 
 
 | 214 | HRESULT (WINAPI *CloneWithCommitDisabled)(ITransactionCloner *This,ITransaction **ppITransaction); | 
 
 
 
 
 | 215 | END_INTERFACE | 
 
 
 
 
 | 216 | } ITransactionClonerVtbl; | 
 
 
 
 
 | 217 | struct ITransactionCloner { | 
 
 
 
 
 | 218 | CONST_VTBL struct ITransactionClonerVtbl *lpVtbl; | 
 
 
 
 
 | 219 | }; | 
 
 
 
 
 | 220 | #ifdef COBJMACROS | 
 
 
 
 
 | 221 | #define ITransactionCloner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 
 
 
 
 | 222 | #define ITransactionCloner_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 
 
 
 
 | 223 | #define ITransactionCloner_Release(This) (This)->lpVtbl->Release(This) | 
 
 
 
 
 | 224 | #define ITransactionCloner_Commit(This,fRetaining,grfTC,grfRM) (This)->lpVtbl->Commit(This,fRetaining,grfTC,grfRM) | 
 
 
 
 
 | 225 | #define ITransactionCloner_Abort(This,pboidReason,fRetaining,fAsync) (This)->lpVtbl->Abort(This,pboidReason,fRetaining,fAsync) | 
 
 
 
 
 | 226 | #define ITransactionCloner_GetTransactionInfo(This,pinfo) (This)->lpVtbl->GetTransactionInfo(This,pinfo) | 
 
 
 
 
 | 227 | #define ITransactionCloner_CloneWithCommitDisabled(This,ppITransaction) (This)->lpVtbl->CloneWithCommitDisabled(This,ppITransaction) | 
 
 
 
 
 | 228 | #endif | 
 
 
 
 
 | 229 | #endif | 
 
 
 
 
 | 230 | HRESULT WINAPI ITransactionCloner_CloneWithCommitDisabled_Proxy(ITransactionCloner *This,ITransaction **ppITransaction); | 
 
 
 
 
 | 231 | void __RPC_STUB ITransactionCloner_CloneWithCommitDisabled_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
 
 
 
 
 | 232 | #endif | 
 
 
 
 
 | 233 |  | 
 
 
 
 
 | 234 | #ifndef __ITransaction2_INTERFACE_DEFINED__ | 
 
 
 
 
 | 235 | #define __ITransaction2_INTERFACE_DEFINED__ | 
 
 
 
 
 | 236 | EXTERN_C const IID IID_ITransaction2; | 
 
 
 
 
 | 237 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 
 
 
 
 | 238 | struct ITransaction2 : public ITransactionCloner { | 
 
 
 
 
 | 239 | public: | 
 
 
 
 
 | 240 | virtual HRESULT WINAPI GetTransactionInfo2(XACTTRANSINFO *pinfo) = 0; | 
 
 
 
 
 | 241 | }; | 
 
 
 
 
 | 242 | #else | 
 
 
 
 
 | 243 | typedef struct ITransaction2Vtbl { | 
 
 
 
 
 | 244 | BEGIN_INTERFACE | 
 
 
 
 
 | 245 | HRESULT (WINAPI *QueryInterface)(ITransaction2 *This,REFIID riid,void **ppvObject); | 
 
 
 
 
 | 246 | ULONG (WINAPI *AddRef)(ITransaction2 *This); | 
 
 
 
 
 | 247 | ULONG (WINAPI *Release)(ITransaction2 *This); | 
 
 
 
 
 | 248 | HRESULT (WINAPI *Commit)(ITransaction2 *This,WINBOOL fRetaining,DWORD grfTC,DWORD grfRM); | 
 
 
 
 
 | 249 | HRESULT (WINAPI *Abort)(ITransaction2 *This,BOID *pboidReason,WINBOOL fRetaining,WINBOOL fAsync); | 
 
 
 
 
 | 250 | HRESULT (WINAPI *GetTransactionInfo)(ITransaction2 *This,XACTTRANSINFO *pinfo); | 
 
 
 
 
 | 251 | HRESULT (WINAPI *CloneWithCommitDisabled)(ITransaction2 *This,ITransaction **ppITransaction); | 
 
 
 
 
 | 252 | HRESULT (WINAPI *GetTransactionInfo2)(ITransaction2 *This,XACTTRANSINFO *pinfo); | 
 
 
 
 
 | 253 | END_INTERFACE | 
 
 
 
 
 | 254 | } ITransaction2Vtbl; | 
 
 
 
 
 | 255 | struct ITransaction2 { | 
 
 
 
 
 | 256 | CONST_VTBL struct ITransaction2Vtbl *lpVtbl; | 
 
 
 
 
 | 257 | }; | 
 
 
 
 
 | 258 | #ifdef COBJMACROS | 
 
 
 
 
 | 259 | #define ITransaction2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 
 
 
 
 | 260 | #define ITransaction2_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 
 
 
 
 | 261 | #define ITransaction2_Release(This) (This)->lpVtbl->Release(This) | 
 
 
 
 
 | 262 | #define ITransaction2_Commit(This,fRetaining,grfTC,grfRM) (This)->lpVtbl->Commit(This,fRetaining,grfTC,grfRM) | 
 
 
 
 
 | 263 | #define ITransaction2_Abort(This,pboidReason,fRetaining,fAsync) (This)->lpVtbl->Abort(This,pboidReason,fRetaining,fAsync) | 
 
 
 
 
 | 264 | #define ITransaction2_GetTransactionInfo(This,pinfo) (This)->lpVtbl->GetTransactionInfo(This,pinfo) | 
 
 
 
 
 | 265 | #define ITransaction2_CloneWithCommitDisabled(This,ppITransaction) (This)->lpVtbl->CloneWithCommitDisabled(This,ppITransaction) | 
 
 
 
 
 | 266 | #define ITransaction2_GetTransactionInfo2(This,pinfo) (This)->lpVtbl->GetTransactionInfo2(This,pinfo) | 
 
 
 
 
 | 267 | #endif | 
 
 
 
 
 | 268 | #endif | 
 
 
 
 
 | 269 | HRESULT WINAPI ITransaction2_GetTransactionInfo2_Proxy(ITransaction2 *This,XACTTRANSINFO *pinfo); | 
 
 
 
 
 | 270 | void __RPC_STUB ITransaction2_GetTransactionInfo2_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
 
 
 
 
 | 271 | #endif | 
 
 
 
 
 | 272 |  | 
 
 
 
 
 | 273 | #ifndef __ITransactionDispenser_INTERFACE_DEFINED__ | 
 
 
 
 
 | 274 | #define __ITransactionDispenser_INTERFACE_DEFINED__ | 
 
 
 
 
 | 275 | EXTERN_C const IID IID_ITransactionDispenser; | 
 
 
 
 
 | 276 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 
 
 
 
 | 277 | struct ITransactionDispenser : public IUnknown { | 
 
 
 
 
 | 278 | public: | 
 
 
 
 
 | 279 | virtual HRESULT WINAPI GetOptionsObject(ITransactionOptions **ppOptions) = 0; | 
 
 
 
 
 | 280 | virtual HRESULT WINAPI BeginTransaction(IUnknown *punkOuter,ISOLEVEL isoLevel,ULONG isoFlags,ITransactionOptions *pOptions,ITransaction **ppTransaction) = 0; | 
 
 
 
 
 | 281 | }; | 
 
 
 
 
 | 282 | #else | 
 
 
 
 
 | 283 | typedef struct ITransactionDispenserVtbl { | 
 
 
 
 
 | 284 | BEGIN_INTERFACE | 
 
 
 
 
 | 285 | HRESULT (WINAPI *QueryInterface)(ITransactionDispenser *This,REFIID riid,void **ppvObject); | 
 
 
 
 
 | 286 | ULONG (WINAPI *AddRef)(ITransactionDispenser *This); | 
 
 
 
 
 | 287 | ULONG (WINAPI *Release)(ITransactionDispenser *This); | 
 
 
 
 
 | 288 | HRESULT (WINAPI *GetOptionsObject)(ITransactionDispenser *This,ITransactionOptions **ppOptions); | 
 
 
 
 
 | 289 | HRESULT (WINAPI *BeginTransaction)(ITransactionDispenser *This,IUnknown *punkOuter,ISOLEVEL isoLevel,ULONG isoFlags,ITransactionOptions *pOptions,ITransaction **ppTransaction); | 
 
 
 
 
 | 290 | END_INTERFACE | 
 
 
 
 
 | 291 | } ITransactionDispenserVtbl; | 
 
 
 
 
 | 292 | struct ITransactionDispenser { | 
 
 
 
 
 | 293 | CONST_VTBL struct ITransactionDispenserVtbl *lpVtbl; | 
 
 
 
 
 | 294 | }; | 
 
 
 
 
 | 295 | #ifdef COBJMACROS | 
 
 
 
 
 | 296 | #define ITransactionDispenser_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 
 
 
 
 | 297 | #define ITransactionDispenser_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 
 
 
 
 | 298 | #define ITransactionDispenser_Release(This) (This)->lpVtbl->Release(This) | 
 
 
 
 
 | 299 | #define ITransactionDispenser_GetOptionsObject(This,ppOptions) (This)->lpVtbl->GetOptionsObject(This,ppOptions) | 
 
 
 
 
 | 300 | #define ITransactionDispenser_BeginTransaction(This,punkOuter,isoLevel,isoFlags,pOptions,ppTransaction) (This)->lpVtbl->BeginTransaction(This,punkOuter,isoLevel,isoFlags,pOptions,ppTransaction) | 
 
 
 
 
 | 301 | #endif | 
 
 
 
 
 | 302 | #endif | 
 
 
 
 
 | 303 | HRESULT WINAPI ITransactionDispenser_GetOptionsObject_Proxy(ITransactionDispenser *This,ITransactionOptions **ppOptions); | 
 
 
 
 
 | 304 | void __RPC_STUB ITransactionDispenser_GetOptionsObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
 
 
 
 
 | 305 | HRESULT WINAPI ITransactionDispenser_BeginTransaction_Proxy(ITransactionDispenser *This,IUnknown *punkOuter,ISOLEVEL isoLevel,ULONG isoFlags,ITransactionOptions *pOptions,ITransaction **ppTransaction); | 
 
 
 
 
 | 306 | void __RPC_STUB ITransactionDispenser_BeginTransaction_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
 
 
 
 
 | 307 | #endif | 
 
 
 
 
 | 308 |  | 
 
 
 
 
 | 309 | #ifndef __ITransactionOptions_INTERFACE_DEFINED__ | 
 
 
 
 
 | 310 | #define __ITransactionOptions_INTERFACE_DEFINED__ | 
 
 
 
 
 | 311 | EXTERN_C const IID IID_ITransactionOptions; | 
 
 
 
 
 | 312 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 
 
 
 
 | 313 | struct ITransactionOptions : public IUnknown { | 
 
 
 
 
 | 314 | public: | 
 
 
 
 
 | 315 | virtual HRESULT WINAPI SetOptions(XACTOPT *pOptions) = 0; | 
 
 
 
 
 | 316 | virtual HRESULT WINAPI GetOptions(XACTOPT *pOptions) = 0; | 
 
 
 
 
 | 317 | }; | 
 
 
 
 
 | 318 | #else | 
 
 
 
 
 | 319 | typedef struct ITransactionOptionsVtbl { | 
 
 
 
 
 | 320 | BEGIN_INTERFACE | 
 
 
 
 
 | 321 | HRESULT (WINAPI *QueryInterface)(ITransactionOptions *This,REFIID riid,void **ppvObject); | 
 
 
 
 
 | 322 | ULONG (WINAPI *AddRef)(ITransactionOptions *This); | 
 
 
 
 
 | 323 | ULONG (WINAPI *Release)(ITransactionOptions *This); | 
 
 
 
 
 | 324 | HRESULT (WINAPI *SetOptions)(ITransactionOptions *This,XACTOPT *pOptions); | 
 
 
 
 
 | 325 | HRESULT (WINAPI *GetOptions)(ITransactionOptions *This,XACTOPT *pOptions); | 
 
 
 
 
 | 326 | END_INTERFACE | 
 
 
 
 
 | 327 | } ITransactionOptionsVtbl; | 
 
 
 
 
 | 328 | struct ITransactionOptions { | 
 
 
 
 
 | 329 | CONST_VTBL struct ITransactionOptionsVtbl *lpVtbl; | 
 
 
 
 
 | 330 | }; | 
 
 
 
 
 | 331 | #ifdef COBJMACROS | 
 
 
 
 
 | 332 | #define ITransactionOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 
 
 
 
 | 333 | #define ITransactionOptions_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 
 
 
 
 | 334 | #define ITransactionOptions_Release(This) (This)->lpVtbl->Release(This) | 
 
 
 
 
 | 335 | #define ITransactionOptions_SetOptions(This,pOptions) (This)->lpVtbl->SetOptions(This,pOptions) | 
 
 
 
 
 | 336 | #define ITransactionOptions_GetOptions(This,pOptions) (This)->lpVtbl->GetOptions(This,pOptions) | 
 
 
 
 
 | 337 | #endif | 
 
 
 
 
 | 338 | #endif | 
 
 
 
 
 | 339 | HRESULT WINAPI ITransactionOptions_SetOptions_Proxy(ITransactionOptions *This,XACTOPT *pOptions); | 
 
 
 
 
 | 340 | void __RPC_STUB ITransactionOptions_SetOptions_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
 
 
 
 
 | 341 | HRESULT WINAPI ITransactionOptions_GetOptions_Proxy(ITransactionOptions *This,XACTOPT *pOptions); | 
 
 
 
 
 | 342 | void __RPC_STUB ITransactionOptions_GetOptions_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
 
 
 
 
 | 343 | #endif | 
 
 
 
 
 | 344 |  | 
 
 
 
 
 | 345 | #ifndef __ITransactionOutcomeEvents_INTERFACE_DEFINED__ | 
 
 
 
 
 | 346 | #define __ITransactionOutcomeEvents_INTERFACE_DEFINED__ | 
 
 
 
 
 | 347 | EXTERN_C const IID IID_ITransactionOutcomeEvents; | 
 
 
 
 
 | 348 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 
 
 
 
 | 349 | struct ITransactionOutcomeEvents : public IUnknown { | 
 
 
 
 
 | 350 | public: | 
 
 
 
 
 | 351 | virtual HRESULT WINAPI Committed(WINBOOL fRetaining,XACTUOW *pNewUOW,HRESULT hr) = 0; | 
 
 
 
 
 | 352 | virtual HRESULT WINAPI Aborted(BOID *pboidReason,WINBOOL fRetaining,XACTUOW *pNewUOW,HRESULT hr) = 0; | 
 
 
 
 
 | 353 | virtual HRESULT WINAPI HeuristicDecision(DWORD dwDecision,BOID *pboidReason,HRESULT hr) = 0; | 
 
 
 
 
 | 354 | virtual HRESULT WINAPI Indoubt(void) = 0; | 
 
 
 
 
 | 355 | }; | 
 
 
 
 
 | 356 | #else | 
 
 
 
 
 | 357 | typedef struct ITransactionOutcomeEventsVtbl { | 
 
 
 
 
 | 358 | BEGIN_INTERFACE | 
 
 
 
 
 | 359 | HRESULT (WINAPI *QueryInterface)(ITransactionOutcomeEvents *This,REFIID riid,void **ppvObject); | 
 
 
 
 
 | 360 | ULONG (WINAPI *AddRef)(ITransactionOutcomeEvents *This); | 
 
 
 
 
 | 361 | ULONG (WINAPI *Release)(ITransactionOutcomeEvents *This); | 
 
 
 
 
 | 362 | HRESULT (WINAPI *Committed)(ITransactionOutcomeEvents *This,WINBOOL fRetaining,XACTUOW *pNewUOW,HRESULT hr); | 
 
 
 
 
 | 363 | HRESULT (WINAPI *Aborted)(ITransactionOutcomeEvents *This,BOID *pboidReason,WINBOOL fRetaining,XACTUOW *pNewUOW,HRESULT hr); | 
 
 
 
 
 | 364 | HRESULT (WINAPI *HeuristicDecision)(ITransactionOutcomeEvents *This,DWORD dwDecision,BOID *pboidReason,HRESULT hr); | 
 
 
 
 
 | 365 | HRESULT (WINAPI *Indoubt)(ITransactionOutcomeEvents *This); | 
 
 
 
 
 | 366 | END_INTERFACE | 
 
 
 
 
 | 367 | } ITransactionOutcomeEventsVtbl; | 
 
 
 
 
 | 368 | struct ITransactionOutcomeEvents { | 
 
 
 
 
 | 369 | CONST_VTBL struct ITransactionOutcomeEventsVtbl *lpVtbl; | 
 
 
 
 
 | 370 | }; | 
 
 
 
 
 | 371 | #ifdef COBJMACROS | 
 
 
 
 
 | 372 | #define ITransactionOutcomeEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 
 
 
 
 | 373 | #define ITransactionOutcomeEvents_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 
 
 
 
 | 374 | #define ITransactionOutcomeEvents_Release(This) (This)->lpVtbl->Release(This) | 
 
 
 
 
 | 375 | #define ITransactionOutcomeEvents_Committed(This,fRetaining,pNewUOW,hr) (This)->lpVtbl->Committed(This,fRetaining,pNewUOW,hr) | 
 
 
 
 
 | 376 | #define ITransactionOutcomeEvents_Aborted(This,pboidReason,fRetaining,pNewUOW,hr) (This)->lpVtbl->Aborted(This,pboidReason,fRetaining,pNewUOW,hr) | 
 
 
 
 
 | 377 | #define ITransactionOutcomeEvents_HeuristicDecision(This,dwDecision,pboidReason,hr) (This)->lpVtbl->HeuristicDecision(This,dwDecision,pboidReason,hr) | 
 
 
 
 
 | 378 | #define ITransactionOutcomeEvents_Indoubt(This) (This)->lpVtbl->Indoubt(This) | 
 
 
 
 
 | 379 | #endif | 
 
 
 
 
 | 380 | #endif | 
 
 
 
 
 | 381 | HRESULT WINAPI ITransactionOutcomeEvents_Committed_Proxy(ITransactionOutcomeEvents *This,WINBOOL fRetaining,XACTUOW *pNewUOW,HRESULT hr); | 
 
 
 
 
 | 382 | void __RPC_STUB ITransactionOutcomeEvents_Committed_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
 
 
 
 
 | 383 | HRESULT WINAPI ITransactionOutcomeEvents_Aborted_Proxy(ITransactionOutcomeEvents *This,BOID *pboidReason,WINBOOL fRetaining,XACTUOW *pNewUOW,HRESULT hr); | 
 
 
 
 
 | 384 | void __RPC_STUB ITransactionOutcomeEvents_Aborted_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
 
 
 
 
 | 385 | HRESULT WINAPI ITransactionOutcomeEvents_HeuristicDecision_Proxy(ITransactionOutcomeEvents *This,DWORD dwDecision,BOID *pboidReason,HRESULT hr); | 
 
 
 
 
 | 386 | void __RPC_STUB ITransactionOutcomeEvents_HeuristicDecision_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
 
 
 
 
 | 387 | HRESULT WINAPI ITransactionOutcomeEvents_Indoubt_Proxy(ITransactionOutcomeEvents *This); | 
 
 
 
 
 | 388 | void __RPC_STUB ITransactionOutcomeEvents_Indoubt_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
 
 
 
 
 | 389 | #endif | 
 
 
 
 
 | 390 |  | 
 
 
 
 
 | 391 | #ifndef __ITmNodeName_INTERFACE_DEFINED__ | 
 
 
 
 
 | 392 | #define __ITmNodeName_INTERFACE_DEFINED__ | 
 
 
 
 
 | 393 | EXTERN_C const IID IID_ITmNodeName; | 
 
 
 
 
 | 394 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 
 
 
 
 | 395 | struct ITmNodeName : public IUnknown { | 
 
 
 
 
 | 396 | public: | 
 
 
 
 
 | 397 | virtual HRESULT WINAPI GetNodeNameSize(ULONG *pcbNodeNameSize) = 0; | 
 
 
 
 
 | 398 | virtual HRESULT WINAPI GetNodeName(ULONG cbNodeNameBufferSize,LPWSTR pNodeNameBuffer) = 0; | 
 
 
 
 
 | 399 | }; | 
 
 
 
 
 | 400 | #else | 
 
 
 
 
 | 401 | typedef struct ITmNodeNameVtbl { | 
 
 
 
 
 | 402 | BEGIN_INTERFACE | 
 
 
 
 
 | 403 | HRESULT (WINAPI *QueryInterface)(ITmNodeName *This,REFIID riid,void **ppvObject); | 
 
 
 
 
 | 404 | ULONG (WINAPI *AddRef)(ITmNodeName *This); | 
 
 
 
 
 | 405 | ULONG (WINAPI *Release)(ITmNodeName *This); | 
 
 
 
 
 | 406 | HRESULT (WINAPI *GetNodeNameSize)(ITmNodeName *This,ULONG *pcbNodeNameSize); | 
 
 
 
 
 | 407 | HRESULT (WINAPI *GetNodeName)(ITmNodeName *This,ULONG cbNodeNameBufferSize,LPWSTR pNodeNameBuffer); | 
 
 
 
 
 | 408 | END_INTERFACE | 
 
 
 
 
 | 409 | } ITmNodeNameVtbl; | 
 
 
 
 
 | 410 | struct ITmNodeName { | 
 
 
 
 
 | 411 | CONST_VTBL struct ITmNodeNameVtbl *lpVtbl; | 
 
 
 
 
 | 412 | }; | 
 
 
 
 
 | 413 | #ifdef COBJMACROS | 
 
 
 
 
 | 414 | #define ITmNodeName_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 
 
 
 
 | 415 | #define ITmNodeName_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 
 
 
 
 | 416 | #define ITmNodeName_Release(This) (This)->lpVtbl->Release(This) | 
 
 
 
 
 | 417 | #define ITmNodeName_GetNodeNameSize(This,pcbNodeNameSize) (This)->lpVtbl->GetNodeNameSize(This,pcbNodeNameSize) | 
 
 
 
 
 | 418 | #define ITmNodeName_GetNodeName(This,cbNodeNameBufferSize,pNodeNameBuffer) (This)->lpVtbl->GetNodeName(This,cbNodeNameBufferSize,pNodeNameBuffer) | 
 
 
 
 
 | 419 | #endif | 
 
 
 
 
 | 420 | #endif | 
 
 
 
 
 | 421 | HRESULT WINAPI ITmNodeName_GetNodeNameSize_Proxy(ITmNodeName *This,ULONG *pcbNodeNameSize); | 
 
 
 
 
 | 422 | void __RPC_STUB ITmNodeName_GetNodeNameSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
 
 
 
 
 | 423 | HRESULT WINAPI ITmNodeName_GetNodeName_Proxy(ITmNodeName *This,ULONG cbNodeNameBufferSize,LPWSTR pNodeNameBuffer); | 
 
 
 
 
 | 424 | void __RPC_STUB ITmNodeName_GetNodeName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
 
 
 
 
 | 425 | #endif | 
 
 
 
 
 | 426 |  | 
 
 
 
 
 | 427 | DEFINE_GUID(IID_ITransaction,0x0fb15084,0xaf41,0x11ce,0xbd,0x2b,0x20,0x4c,0x4f,0x4f,0x50,0x20); | 
 
 
 
 
 | 428 | DEFINE_GUID(IID_ITransactionCloner,0x02656950,0x2152,0x11d0,0x94,0x4C,0x00,0xA0,0xC9,0x05,0x41,0x6E); | 
 
 
 
 
 | 429 | DEFINE_GUID(IID_ITransaction2,0x34021548,0x0065,0x11d3,0xba,0xc1,0x00,0xc0,0x4f,0x79,0x7b,0xe2); | 
 
 
 
 
 | 430 | DEFINE_GUID(IID_ITransactionDispenser,0x3A6AD9E1,0x23B9,0x11cf,0xAD,0x60,0x00,0xAA,0x00,0xA7,0x4C,0xCD); | 
 
 
 
 
 | 431 | DEFINE_GUID(IID_ITransactionOptions,0x3A6AD9E0,0x23B9,0x11cf,0xAD,0x60,0x00,0xAA,0x00,0xA7,0x4C,0xCD); | 
 
 
 
 
 | 432 | DEFINE_GUID(IID_ITransactionOutcomeEvents,0x3A6AD9E2,0x23B9,0x11cf,0xAD,0x60,0x00,0xAA,0x00,0xA7,0x4C,0xCD); | 
 
 
 
 
 | 433 | DEFINE_GUID(IID_ITmNodeName,0x30274F88,0x6EE4,0x474e,0x9B,0x95,0x78,0x07,0xBC,0x9E,0xF8,0xCF); | 
 
 
 
 
 | 434 |  | 
 
 
 
 
 | 435 | extern RPC_IF_HANDLE __MIDL_itf_transact_0016_v0_0_c_ifspec; | 
 
 
 
 
 | 436 | extern RPC_IF_HANDLE __MIDL_itf_transact_0016_v0_0_s_ifspec; | 
 
 
 
 
 | 437 |  | 
 
 
 
 
 | 438 | #ifdef __cplusplus | 
 
 
 
 
 | 439 | } | 
 
 
 
 
 | 440 | #endif | 
 
 
 
 
 | 441 | #endif |