2 * Copyright (C) 2013 Daniel JeliĆski
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 import
"transact.idl";
22 interface ITransactionResourceAsync
;
23 interface ITransactionLastResourceAsync
;
24 interface ITransactionResource
;
25 interface ITransactionEnlistmentAsync
;
26 interface ITransactionLastEnlistmentAsync
;
27 interface ITransactionExportFactory
;
28 interface ITransactionImportWhereabouts
;
29 interface ITransactionExport
;
30 interface ITransactionImport
;
31 interface ITipTransaction
;
33 interface ITipPullSink
;
34 interface IDtcNetworkAccessConfig
;
35 interface IDtcNetworkAccessConfig2
;
39 uuid(69e971f0
-23ce
-11cf
-ad60
-00aa00a74ccd
)
41 interface ITransactionResourceAsync
: IUnknown
{
42 HRESULT PrepareRequest
([in]BOOL fRetaining
,[in]DWORD grfRM
,[in]BOOL fWantMoniker
,[in]BOOL fSinglePhase
);
43 HRESULT CommitRequest
([in]DWORD grfRM
,[in]XACTUOW
*pNewUOW
);
44 HRESULT AbortRequest
([in]BOID
*pboidReason
,[in]BOOL fRetaining
,[in]XACTUOW
*pNewUOW
);
50 uuid(c82bd532
-5b30
-11d3
-8a91
-00c04f79eb6d
)
52 interface ITransactionLastResourceAsync
: IUnknown
{
53 HRESULT DelegateCommit
([in]DWORD grfRM
);
54 HRESULT ForgetRequest
([in]XACTUOW
*pNewUOW
);
59 uuid(ee5ff7b3
-4572-11d0
-9452-00a0c905416e
)
61 interface ITransactionResource
: IUnknown
{
62 HRESULT PrepareRequest
([in]BOOL fRetaining
,[in]DWORD grfRM
,[in]BOOL fWantMoniker
,[in]BOOL fSinglePhase
);
63 HRESULT CommitRequest
([in]DWORD grfRM
,[in]XACTUOW
*pNewUOW
);
64 HRESULT AbortRequest
([in]BOID
*pboidReason
,[in]BOOL fRetaining
,[in]XACTUOW
*pNewUOW
);
70 uuid(0fb15081
-af41
-11ce
-bd2b
-204c4f4f5020
)
72 interface ITransactionEnlistmentAsync
: IUnknown
{
73 HRESULT PrepareRequestDone
([in]HRESULT hr
,[in]IMoniker
*pmk
,[in]BOID
*pboidReason
);
74 HRESULT CommitRequestDone
([in]HRESULT hr
);
75 HRESULT AbortRequestDone
([in]HRESULT hr
);
80 uuid(c82bd533
-5b30
-11d3
-8a91
-00c04f79eb6d
)
82 interface ITransactionLastEnlistmentAsync
: IUnknown
{
83 HRESULT TransactionOutcome
([in]XACTSTAT XactStat
,[in]BOID
*pboidReason
);
88 uuid(e1cf9b53
-8745-11ce
-a9ba
-00aa006c3706
)
90 interface ITransactionExportFactory
: IUnknown
{
91 HRESULT GetRemoteClassId
([in]CLSID
*pclsid
);
92 HRESULT Create
([in]ULONG cbWhereabouts
,[in]byte *rgbWhereabouts
,[out]ITransactionExport
**ppExport
);
97 uuid(0141fda4
-8fc0
-11ce
-bd18
-204c4f4f5020
)
99 interface ITransactionImportWhereabouts
: IUnknown
{
100 HRESULT GetWhereaboutsSize
([out]ULONG
*pcbWhereabouts
);
101 HRESULT GetWhereabouts
([in]ULONG cbWhereabouts
,[out]byte *rgbWhereabouts
,[out]ULONG
*pcbUsed
);
106 uuid(0141fda5
-8fc0
-11ce
-bd18
-204c4f4f5020
)
108 interface ITransactionExport
: IUnknown
{
109 HRESULT Export
([in]IUnknown
*punkTransaction
,[out]ULONG
*pcbTransactionCookie
);
110 HRESULT GetTransactionCookie
([in]IUnknown
*punkTransaction
,[in]ULONG cbTransactionCookie
,[out]byte *rgbTransactionCookie
,[out]ULONG
*pcbUsed
);
115 uuid(e1cf9b5a
-8745-11ce
-a9ba
-00aa006c3706
)
117 interface ITransactionImport
: IUnknown
{
118 HRESULT Import
([in]ULONG cbTransactionCookie
,[in]byte *rgbTransactionCookie
,[in]IID
*piid
,[out,iid_is(piid
)]void **ppvTransaction
);
122 uuid(17cf72d0
-bac5
-11d1
-b1bf
-00c04fc2f3ef
)
124 interface ITipTransaction
: IUnknown
{
125 HRESULT Push
([in]char *i_pszRemoteTmUrl
,[out]char **o_ppszRemoteTxUrl
);
126 HRESULT GetTransactionUrl
([out]char **o_ppszLocalTxUrl
);
130 uuid(17cf72d1
-bac5
-11d1
-b1bf
-00c04fc2f3ef
)
132 interface ITipHelper
: IUnknown
{
133 HRESULT Pull
([in]char *i_pszTxUrl
,[out]ITransaction
**o_ppITransaction
);
134 HRESULT PullAsync
([in]char *i_pszTxUrl
,[in]ITipPullSink
*i_pTipPullSink
,[out]ITransaction
**o_ppITransaction
);
135 HRESULT GetLocalTmUrl
([out]char **o_ppszLocalTmUrl
);
139 uuid(17cf72d2
-bac5
-11d1
-b1bf
-00c04fc2f3ef
)
141 interface ITipPullSink
: IUnknown
{
142 HRESULT PullComplete
([in]HRESULT i_hrPull
);
146 uuid(9797c15d
-a428
-4291-87b6
-0995031a678d
)
148 interface IDtcNetworkAccessConfig
: IUnknown
{
149 HRESULT GetAnyNetworkAccess
([out]BOOL
*pbAnyNetworkAccess
);
150 HRESULT SetAnyNetworkAccess
([in]BOOL bAnyNetworkAccess
);
151 HRESULT GetNetworkAdministrationAccess
([out]BOOL
*pbNetworkAdministrationAccess
);
152 HRESULT SetNetworkAdministrationAccess
([in]BOOL bNetworkAdministrationAccess
);
153 HRESULT GetNetworkTransactionAccess
([out]BOOL
*pbNetworkTransactionAccess
);
154 HRESULT SetNetworkTransactionAccess
([in]BOOL bNetworkTransactionAccess
);
155 HRESULT GetNetworkClientAccess
([out]BOOL
*pbNetworkClientAccess
);
156 HRESULT SetNetworkClientAccess
([in]BOOL bNetworkClientAccess
);
157 HRESULT GetNetworkTIPAccess
([out]BOOL
*pbNetworkTIPAccess
);
158 HRESULT SetNetworkTIPAccess
([in]BOOL bNetworkTIPAccess
);
159 HRESULT GetXAAccess
([out]BOOL
*pbXAAccess
);
160 HRESULT SetXAAccess
([in]BOOL bXAAccess
);
161 HRESULT RestartDtcService
(void);
164 typedef enum AUTHENTICATION_LEVEL
{
165 NO_AUTHENTICATION_REQUIRED
,
166 INCOMING_AUTHENTICATION_REQUIRED
,
167 MUTUAL_AUTHENTICATION_REQUIRED
168 } AUTHENTICATION_LEVEL
;
172 uuid(a7aa013b
-eb7d
-4f42
-b41c
-b2dec09ae034
)
174 interface IDtcNetworkAccessConfig2
: IDtcNetworkAccessConfig
{
175 HRESULT GetNetworkInboundAccess
([out]BOOL
*pbInbound
);
176 HRESULT GetNetworkOutboundAccess
([out]BOOL
*pbOutbound
);
177 HRESULT SetNetworkInboundAccess
([in]BOOL bInbound
);
178 HRESULT SetNetworkOutboundAccess
([in]BOOL bOutbound
);
179 HRESULT GetAuthenticationLevel
([out]AUTHENTICATION_LEVEL
*pAuthLevel
);
180 HRESULT SetAuthenticationLevel
([in]AUTHENTICATION_LEVEL AuthLevel
);