1 | /*
|
---|
2 | * Copyright (C) 2013 Daniel Jeliński
|
---|
3 | *
|
---|
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.
|
---|
8 | *
|
---|
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.
|
---|
13 | *
|
---|
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
|
---|
17 | */
|
---|
18 |
|
---|
19 | /*
|
---|
20 | * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
|
---|
21 | * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
|
---|
22 | * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
|
---|
23 | * a choice of LGPL license versions is made available with the language indicating
|
---|
24 | * that LGPLv2 or any later version may be used, or where a choice of which version
|
---|
25 | * of the LGPL is applied is otherwise unspecified.
|
---|
26 | */
|
---|
27 |
|
---|
28 | import "transact.idl";
|
---|
29 | import "objidl.idl";
|
---|
30 |
|
---|
31 | interface ITransactionResourceAsync;
|
---|
32 | interface ITransactionLastResourceAsync;
|
---|
33 | interface ITransactionResource;
|
---|
34 | interface ITransactionEnlistmentAsync;
|
---|
35 | interface ITransactionLastEnlistmentAsync;
|
---|
36 | interface ITransactionExportFactory;
|
---|
37 | interface ITransactionImportWhereabouts;
|
---|
38 | interface ITransactionExport;
|
---|
39 | interface ITransactionImport;
|
---|
40 | interface ITipTransaction;
|
---|
41 | interface ITipHelper;
|
---|
42 | interface ITipPullSink;
|
---|
43 | interface IDtcNetworkAccessConfig;
|
---|
44 | interface IDtcNetworkAccessConfig2;
|
---|
45 |
|
---|
46 | [
|
---|
47 | object,
|
---|
48 | uuid(69e971f0-23ce-11cf-ad60-00aa00a74ccd)
|
---|
49 | ]
|
---|
50 | interface ITransactionResourceAsync : IUnknown {
|
---|
51 | HRESULT PrepareRequest([in]BOOL fRetaining,[in]DWORD grfRM,[in]BOOL fWantMoniker,[in]BOOL fSinglePhase);
|
---|
52 | HRESULT CommitRequest([in]DWORD grfRM,[in]XACTUOW *pNewUOW);
|
---|
53 | HRESULT AbortRequest([in]BOID *pboidReason,[in]BOOL fRetaining,[in]XACTUOW *pNewUOW);
|
---|
54 | HRESULT TMDown(void);
|
---|
55 | };
|
---|
56 |
|
---|
57 | [
|
---|
58 | object,
|
---|
59 | uuid(c82bd532-5b30-11d3-8a91-00c04f79eb6d)
|
---|
60 | ]
|
---|
61 | interface ITransactionLastResourceAsync : IUnknown {
|
---|
62 | HRESULT DelegateCommit([in]DWORD grfRM);
|
---|
63 | HRESULT ForgetRequest([in]XACTUOW *pNewUOW);
|
---|
64 | };
|
---|
65 |
|
---|
66 | [
|
---|
67 | object,
|
---|
68 | uuid(ee5ff7b3-4572-11d0-9452-00a0c905416e)
|
---|
69 | ]
|
---|
70 | interface ITransactionResource : IUnknown {
|
---|
71 | HRESULT PrepareRequest([in]BOOL fRetaining,[in]DWORD grfRM,[in]BOOL fWantMoniker,[in]BOOL fSinglePhase);
|
---|
72 | HRESULT CommitRequest([in]DWORD grfRM,[in]XACTUOW *pNewUOW);
|
---|
73 | HRESULT AbortRequest([in]BOID *pboidReason,[in]BOOL fRetaining,[in]XACTUOW *pNewUOW);
|
---|
74 | HRESULT TMDown(void);
|
---|
75 | };
|
---|
76 |
|
---|
77 | [
|
---|
78 | object,
|
---|
79 | uuid(0fb15081-af41-11ce-bd2b-204c4f4f5020)
|
---|
80 | ]
|
---|
81 | interface ITransactionEnlistmentAsync : IUnknown {
|
---|
82 | HRESULT PrepareRequestDone([in]HRESULT hr,[in]IMoniker *pmk,[in]BOID *pboidReason);
|
---|
83 | HRESULT CommitRequestDone([in]HRESULT hr);
|
---|
84 | HRESULT AbortRequestDone([in]HRESULT hr);
|
---|
85 | };
|
---|
86 |
|
---|
87 | [
|
---|
88 | object,
|
---|
89 | uuid(c82bd533-5b30-11d3-8a91-00c04f79eb6d)
|
---|
90 | ]
|
---|
91 | interface ITransactionLastEnlistmentAsync : IUnknown {
|
---|
92 | HRESULT TransactionOutcome([in]XACTSTAT XactStat,[in]BOID *pboidReason);
|
---|
93 | };
|
---|
94 |
|
---|
95 | [
|
---|
96 | object,
|
---|
97 | uuid(e1cf9b53-8745-11ce-a9ba-00aa006c3706)
|
---|
98 | ]
|
---|
99 | interface ITransactionExportFactory : IUnknown {
|
---|
100 | HRESULT GetRemoteClassId([in]CLSID *pclsid);
|
---|
101 | HRESULT Create([in]ULONG cbWhereabouts,[in]byte *rgbWhereabouts,[out]ITransactionExport **ppExport);
|
---|
102 | };
|
---|
103 |
|
---|
104 | [
|
---|
105 | object,
|
---|
106 | uuid(0141fda4-8fc0-11ce-bd18-204c4f4f5020)
|
---|
107 | ]
|
---|
108 | interface ITransactionImportWhereabouts : IUnknown {
|
---|
109 | HRESULT GetWhereaboutsSize([out]ULONG *pcbWhereabouts);
|
---|
110 | HRESULT GetWhereabouts([in]ULONG cbWhereabouts,[out]byte *rgbWhereabouts,[out]ULONG *pcbUsed);
|
---|
111 | };
|
---|
112 |
|
---|
113 | [
|
---|
114 | object,
|
---|
115 | uuid(0141fda5-8fc0-11ce-bd18-204c4f4f5020)
|
---|
116 | ]
|
---|
117 | interface ITransactionExport : IUnknown {
|
---|
118 | HRESULT Export([in]IUnknown *punkTransaction,[out]ULONG *pcbTransactionCookie);
|
---|
119 | HRESULT GetTransactionCookie([in]IUnknown *punkTransaction,[in]ULONG cbTransactionCookie,[out]byte *rgbTransactionCookie,[out]ULONG *pcbUsed);
|
---|
120 | };
|
---|
121 |
|
---|
122 | [
|
---|
123 | object,
|
---|
124 | uuid(e1cf9b5a-8745-11ce-a9ba-00aa006c3706)
|
---|
125 | ]
|
---|
126 | interface ITransactionImport : IUnknown {
|
---|
127 | HRESULT Import([in]ULONG cbTransactionCookie,[in]byte *rgbTransactionCookie,[in]IID *piid,[out,iid_is(piid)]void **ppvTransaction);
|
---|
128 | };
|
---|
129 | [
|
---|
130 | object,
|
---|
131 | uuid(17cf72d0-bac5-11d1-b1bf-00c04fc2f3ef)
|
---|
132 | ]
|
---|
133 | interface ITipTransaction : IUnknown {
|
---|
134 | HRESULT Push([in]char *i_pszRemoteTmUrl,[out]char **o_ppszRemoteTxUrl);
|
---|
135 | HRESULT GetTransactionUrl([out]char **o_ppszLocalTxUrl);
|
---|
136 | };
|
---|
137 | [
|
---|
138 | object,
|
---|
139 | uuid(17cf72d1-bac5-11d1-b1bf-00c04fc2f3ef)
|
---|
140 | ]
|
---|
141 | interface ITipHelper : IUnknown {
|
---|
142 | HRESULT Pull([in]char *i_pszTxUrl,[out]ITransaction **o_ppITransaction);
|
---|
143 | HRESULT PullAsync([in]char *i_pszTxUrl,[in]ITipPullSink *i_pTipPullSink,[out]ITransaction **o_ppITransaction);
|
---|
144 | HRESULT GetLocalTmUrl([out]char **o_ppszLocalTmUrl);
|
---|
145 | };
|
---|
146 | [
|
---|
147 | object,
|
---|
148 | uuid(17cf72d2-bac5-11d1-b1bf-00c04fc2f3ef)
|
---|
149 | ]
|
---|
150 | interface ITipPullSink : IUnknown {
|
---|
151 | HRESULT PullComplete([in]HRESULT i_hrPull);
|
---|
152 | };
|
---|
153 | [
|
---|
154 | object,
|
---|
155 | uuid(9797c15d-a428-4291-87b6-0995031a678d)
|
---|
156 | ]
|
---|
157 | interface IDtcNetworkAccessConfig : IUnknown {
|
---|
158 | HRESULT GetAnyNetworkAccess([out]BOOL *pbAnyNetworkAccess);
|
---|
159 | HRESULT SetAnyNetworkAccess([in]BOOL bAnyNetworkAccess);
|
---|
160 | HRESULT GetNetworkAdministrationAccess([out]BOOL *pbNetworkAdministrationAccess);
|
---|
161 | HRESULT SetNetworkAdministrationAccess([in]BOOL bNetworkAdministrationAccess);
|
---|
162 | HRESULT GetNetworkTransactionAccess([out]BOOL *pbNetworkTransactionAccess);
|
---|
163 | HRESULT SetNetworkTransactionAccess([in]BOOL bNetworkTransactionAccess);
|
---|
164 | HRESULT GetNetworkClientAccess([out]BOOL *pbNetworkClientAccess);
|
---|
165 | HRESULT SetNetworkClientAccess([in]BOOL bNetworkClientAccess);
|
---|
166 | HRESULT GetNetworkTIPAccess([out]BOOL *pbNetworkTIPAccess);
|
---|
167 | HRESULT SetNetworkTIPAccess([in]BOOL bNetworkTIPAccess);
|
---|
168 | HRESULT GetXAAccess([out]BOOL *pbXAAccess);
|
---|
169 | HRESULT SetXAAccess([in]BOOL bXAAccess);
|
---|
170 | HRESULT RestartDtcService(void);
|
---|
171 | };
|
---|
172 |
|
---|
173 | typedef enum AUTHENTICATION_LEVEL {
|
---|
174 | NO_AUTHENTICATION_REQUIRED,
|
---|
175 | INCOMING_AUTHENTICATION_REQUIRED,
|
---|
176 | MUTUAL_AUTHENTICATION_REQUIRED
|
---|
177 | } AUTHENTICATION_LEVEL;
|
---|
178 |
|
---|
179 | [
|
---|
180 | object,
|
---|
181 | uuid(a7aa013b-eb7d-4f42-b41c-b2dec09ae034)
|
---|
182 | ]
|
---|
183 | interface IDtcNetworkAccessConfig2 : IDtcNetworkAccessConfig {
|
---|
184 | HRESULT GetNetworkInboundAccess([out]BOOL *pbInbound);
|
---|
185 | HRESULT GetNetworkOutboundAccess([out]BOOL *pbOutbound);
|
---|
186 | HRESULT SetNetworkInboundAccess([in]BOOL bInbound);
|
---|
187 | HRESULT SetNetworkOutboundAccess([in]BOOL bOutbound);
|
---|
188 | HRESULT GetAuthenticationLevel([out]AUTHENTICATION_LEVEL *pAuthLevel);
|
---|
189 | HRESULT SetAuthenticationLevel([in]AUTHENTICATION_LEVEL AuthLevel);
|
---|
190 | };
|
---|