3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/*
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Copyright (C) 2013 Daniel JeliƄski
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is free software; you can redistribute it and/or
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * modify it under the terms of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License as published by the Free Software Foundation; either
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * version 2.1 of the License, or (at your option) any later version.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is distributed in the hope that it will be useful,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Lesser General Public License for more details.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * You should have received a copy of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License along with this library; if not, write to the Free Software
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync/*
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * a choice of LGPL license versions is made available with the language indicating
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * of the LGPL is applied is otherwise unspecified.
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync */
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncimport "transact.idl";
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncimport "objidl.idl";
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface ITransactionResourceAsync;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface ITransactionLastResourceAsync;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface ITransactionResource;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface ITransactionEnlistmentAsync;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface ITransactionLastEnlistmentAsync;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface ITransactionExportFactory;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface ITransactionImportWhereabouts;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface ITransactionExport;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface ITransactionImport;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface ITipTransaction;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface ITipHelper;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface ITipPullSink;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IDtcNetworkAccessConfig;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IDtcNetworkAccessConfig2;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync object,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(69e971f0-23ce-11cf-ad60-00aa00a74ccd)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface ITransactionResourceAsync : IUnknown {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT PrepareRequest([in]BOOL fRetaining,[in]DWORD grfRM,[in]BOOL fWantMoniker,[in]BOOL fSinglePhase);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT CommitRequest([in]DWORD grfRM,[in]XACTUOW *pNewUOW);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT AbortRequest([in]BOID *pboidReason,[in]BOOL fRetaining,[in]XACTUOW *pNewUOW);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT TMDown(void);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync};
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync object,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(c82bd532-5b30-11d3-8a91-00c04f79eb6d)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface ITransactionLastResourceAsync : IUnknown {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT DelegateCommit([in]DWORD grfRM);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT ForgetRequest([in]XACTUOW *pNewUOW);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync};
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync object,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(ee5ff7b3-4572-11d0-9452-00a0c905416e)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface ITransactionResource : IUnknown {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT PrepareRequest([in]BOOL fRetaining,[in]DWORD grfRM,[in]BOOL fWantMoniker,[in]BOOL fSinglePhase);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT CommitRequest([in]DWORD grfRM,[in]XACTUOW *pNewUOW);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT AbortRequest([in]BOID *pboidReason,[in]BOOL fRetaining,[in]XACTUOW *pNewUOW);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT TMDown(void);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync};
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync object,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(0fb15081-af41-11ce-bd2b-204c4f4f5020)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface ITransactionEnlistmentAsync : IUnknown {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT PrepareRequestDone([in]HRESULT hr,[in]IMoniker *pmk,[in]BOID *pboidReason);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT CommitRequestDone([in]HRESULT hr);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT AbortRequestDone([in]HRESULT hr);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync};
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync object,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(c82bd533-5b30-11d3-8a91-00c04f79eb6d)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface ITransactionLastEnlistmentAsync : IUnknown {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT TransactionOutcome([in]XACTSTAT XactStat,[in]BOID *pboidReason);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync};
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync object,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(e1cf9b53-8745-11ce-a9ba-00aa006c3706)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface ITransactionExportFactory : IUnknown {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetRemoteClassId([in]CLSID *pclsid);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Create([in]ULONG cbWhereabouts,[in]byte *rgbWhereabouts,[out]ITransactionExport **ppExport);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync};
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync object,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(0141fda4-8fc0-11ce-bd18-204c4f4f5020)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface ITransactionImportWhereabouts : IUnknown {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetWhereaboutsSize([out]ULONG *pcbWhereabouts);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetWhereabouts([in]ULONG cbWhereabouts,[out]byte *rgbWhereabouts,[out]ULONG *pcbUsed);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync};
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync object,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(0141fda5-8fc0-11ce-bd18-204c4f4f5020)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface ITransactionExport : IUnknown {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Export([in]IUnknown *punkTransaction,[out]ULONG *pcbTransactionCookie);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetTransactionCookie([in]IUnknown *punkTransaction,[in]ULONG cbTransactionCookie,[out]byte *rgbTransactionCookie,[out]ULONG *pcbUsed);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync};
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync object,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(e1cf9b5a-8745-11ce-a9ba-00aa006c3706)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface ITransactionImport : IUnknown {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Import([in]ULONG cbTransactionCookie,[in]byte *rgbTransactionCookie,[in]IID *piid,[out,iid_is(piid)]void **ppvTransaction);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync};
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync object,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(17cf72d0-bac5-11d1-b1bf-00c04fc2f3ef)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface ITipTransaction : IUnknown {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Push([in]char *i_pszRemoteTmUrl,[out]char **o_ppszRemoteTxUrl);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetTransactionUrl([out]char **o_ppszLocalTxUrl);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync};
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync object,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(17cf72d1-bac5-11d1-b1bf-00c04fc2f3ef)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface ITipHelper : IUnknown {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Pull([in]char *i_pszTxUrl,[out]ITransaction **o_ppITransaction);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT PullAsync([in]char *i_pszTxUrl,[in]ITipPullSink *i_pTipPullSink,[out]ITransaction **o_ppITransaction);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetLocalTmUrl([out]char **o_ppszLocalTmUrl);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync};
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync object,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(17cf72d2-bac5-11d1-b1bf-00c04fc2f3ef)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface ITipPullSink : IUnknown {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT PullComplete([in]HRESULT i_hrPull);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync};
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync object,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(9797c15d-a428-4291-87b6-0995031a678d)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IDtcNetworkAccessConfig : IUnknown {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetAnyNetworkAccess([out]BOOL *pbAnyNetworkAccess);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetAnyNetworkAccess([in]BOOL bAnyNetworkAccess);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetNetworkAdministrationAccess([out]BOOL *pbNetworkAdministrationAccess);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetNetworkAdministrationAccess([in]BOOL bNetworkAdministrationAccess);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetNetworkTransactionAccess([out]BOOL *pbNetworkTransactionAccess);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetNetworkTransactionAccess([in]BOOL bNetworkTransactionAccess);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetNetworkClientAccess([out]BOOL *pbNetworkClientAccess);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetNetworkClientAccess([in]BOOL bNetworkClientAccess);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetNetworkTIPAccess([out]BOOL *pbNetworkTIPAccess);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetNetworkTIPAccess([in]BOOL bNetworkTIPAccess);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetXAAccess([out]BOOL *pbXAAccess);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetXAAccess([in]BOOL bXAAccess);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT RestartDtcService(void);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync};
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef enum AUTHENTICATION_LEVEL {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync NO_AUTHENTICATION_REQUIRED,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync INCOMING_AUTHENTICATION_REQUIRED,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync MUTUAL_AUTHENTICATION_REQUIRED
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} AUTHENTICATION_LEVEL;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync object,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(a7aa013b-eb7d-4f42-b41c-b2dec09ae034)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IDtcNetworkAccessConfig2 : IDtcNetworkAccessConfig {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetNetworkInboundAccess([out]BOOL *pbInbound);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetNetworkOutboundAccess([out]BOOL *pbOutbound);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetNetworkInboundAccess([in]BOOL bInbound);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetNetworkOutboundAccess([in]BOOL bOutbound);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetAuthenticationLevel([out]AUTHENTICATION_LEVEL *pAuthLevel);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetAuthenticationLevel([in]AUTHENTICATION_LEVEL AuthLevel);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync};