/*** Autogenerated by WIDL 5.0.5 from txcoord.idl - Do not edit ***/

#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include <rpc.h>
#include <rpcndr.h>
#endif

#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif

#ifndef __txcoord_h__
#define __txcoord_h__

/* Forward declarations */

#ifndef __ITransactionResourceAsync_FWD_DEFINED__
#define __ITransactionResourceAsync_FWD_DEFINED__
typedef interface ITransactionResourceAsync ITransactionResourceAsync;
#ifdef __cplusplus
interface ITransactionResourceAsync;
#endif /* __cplusplus */
#endif

#ifndef __ITransactionLastResourceAsync_FWD_DEFINED__
#define __ITransactionLastResourceAsync_FWD_DEFINED__
typedef interface ITransactionLastResourceAsync ITransactionLastResourceAsync;
#ifdef __cplusplus
interface ITransactionLastResourceAsync;
#endif /* __cplusplus */
#endif

#ifndef __ITransactionResource_FWD_DEFINED__
#define __ITransactionResource_FWD_DEFINED__
typedef interface ITransactionResource ITransactionResource;
#ifdef __cplusplus
interface ITransactionResource;
#endif /* __cplusplus */
#endif

#ifndef __ITransactionEnlistmentAsync_FWD_DEFINED__
#define __ITransactionEnlistmentAsync_FWD_DEFINED__
typedef interface ITransactionEnlistmentAsync ITransactionEnlistmentAsync;
#ifdef __cplusplus
interface ITransactionEnlistmentAsync;
#endif /* __cplusplus */
#endif

#ifndef __ITransactionLastEnlistmentAsync_FWD_DEFINED__
#define __ITransactionLastEnlistmentAsync_FWD_DEFINED__
typedef interface ITransactionLastEnlistmentAsync ITransactionLastEnlistmentAsync;
#ifdef __cplusplus
interface ITransactionLastEnlistmentAsync;
#endif /* __cplusplus */
#endif

#ifndef __ITransactionExportFactory_FWD_DEFINED__
#define __ITransactionExportFactory_FWD_DEFINED__
typedef interface ITransactionExportFactory ITransactionExportFactory;
#ifdef __cplusplus
interface ITransactionExportFactory;
#endif /* __cplusplus */
#endif

#ifndef __ITransactionImportWhereabouts_FWD_DEFINED__
#define __ITransactionImportWhereabouts_FWD_DEFINED__
typedef interface ITransactionImportWhereabouts ITransactionImportWhereabouts;
#ifdef __cplusplus
interface ITransactionImportWhereabouts;
#endif /* __cplusplus */
#endif

#ifndef __ITransactionExport_FWD_DEFINED__
#define __ITransactionExport_FWD_DEFINED__
typedef interface ITransactionExport ITransactionExport;
#ifdef __cplusplus
interface ITransactionExport;
#endif /* __cplusplus */
#endif

#ifndef __ITransactionImport_FWD_DEFINED__
#define __ITransactionImport_FWD_DEFINED__
typedef interface ITransactionImport ITransactionImport;
#ifdef __cplusplus
interface ITransactionImport;
#endif /* __cplusplus */
#endif

#ifndef __ITipTransaction_FWD_DEFINED__
#define __ITipTransaction_FWD_DEFINED__
typedef interface ITipTransaction ITipTransaction;
#ifdef __cplusplus
interface ITipTransaction;
#endif /* __cplusplus */
#endif

#ifndef __ITipHelper_FWD_DEFINED__
#define __ITipHelper_FWD_DEFINED__
typedef interface ITipHelper ITipHelper;
#ifdef __cplusplus
interface ITipHelper;
#endif /* __cplusplus */
#endif

#ifndef __ITipPullSink_FWD_DEFINED__
#define __ITipPullSink_FWD_DEFINED__
typedef interface ITipPullSink ITipPullSink;
#ifdef __cplusplus
interface ITipPullSink;
#endif /* __cplusplus */
#endif

#ifndef __IDtcNetworkAccessConfig_FWD_DEFINED__
#define __IDtcNetworkAccessConfig_FWD_DEFINED__
typedef interface IDtcNetworkAccessConfig IDtcNetworkAccessConfig;
#ifdef __cplusplus
interface IDtcNetworkAccessConfig;
#endif /* __cplusplus */
#endif

#ifndef __IDtcNetworkAccessConfig2_FWD_DEFINED__
#define __IDtcNetworkAccessConfig2_FWD_DEFINED__
typedef interface IDtcNetworkAccessConfig2 IDtcNetworkAccessConfig2;
#ifdef __cplusplus
interface IDtcNetworkAccessConfig2;
#endif /* __cplusplus */
#endif

/* Headers for imported files */

#include <transact.h>
#include <objidl.h>

#ifdef __cplusplus
extern "C" {
#endif

#ifndef __ITransactionResourceAsync_FWD_DEFINED__
#define __ITransactionResourceAsync_FWD_DEFINED__
typedef interface ITransactionResourceAsync ITransactionResourceAsync;
#ifdef __cplusplus
interface ITransactionResourceAsync;
#endif /* __cplusplus */
#endif

#ifndef __ITransactionLastResourceAsync_FWD_DEFINED__
#define __ITransactionLastResourceAsync_FWD_DEFINED__
typedef interface ITransactionLastResourceAsync ITransactionLastResourceAsync;
#ifdef __cplusplus
interface ITransactionLastResourceAsync;
#endif /* __cplusplus */
#endif

#ifndef __ITransactionResource_FWD_DEFINED__
#define __ITransactionResource_FWD_DEFINED__
typedef interface ITransactionResource ITransactionResource;
#ifdef __cplusplus
interface ITransactionResource;
#endif /* __cplusplus */
#endif

#ifndef __ITransactionEnlistmentAsync_FWD_DEFINED__
#define __ITransactionEnlistmentAsync_FWD_DEFINED__
typedef interface ITransactionEnlistmentAsync ITransactionEnlistmentAsync;
#ifdef __cplusplus
interface ITransactionEnlistmentAsync;
#endif /* __cplusplus */
#endif

#ifndef __ITransactionLastEnlistmentAsync_FWD_DEFINED__
#define __ITransactionLastEnlistmentAsync_FWD_DEFINED__
typedef interface ITransactionLastEnlistmentAsync ITransactionLastEnlistmentAsync;
#ifdef __cplusplus
interface ITransactionLastEnlistmentAsync;
#endif /* __cplusplus */
#endif

#ifndef __ITransactionExportFactory_FWD_DEFINED__
#define __ITransactionExportFactory_FWD_DEFINED__
typedef interface ITransactionExportFactory ITransactionExportFactory;
#ifdef __cplusplus
interface ITransactionExportFactory;
#endif /* __cplusplus */
#endif

#ifndef __ITransactionImportWhereabouts_FWD_DEFINED__
#define __ITransactionImportWhereabouts_FWD_DEFINED__
typedef interface ITransactionImportWhereabouts ITransactionImportWhereabouts;
#ifdef __cplusplus
interface ITransactionImportWhereabouts;
#endif /* __cplusplus */
#endif

#ifndef __ITransactionExport_FWD_DEFINED__
#define __ITransactionExport_FWD_DEFINED__
typedef interface ITransactionExport ITransactionExport;
#ifdef __cplusplus
interface ITransactionExport;
#endif /* __cplusplus */
#endif

#ifndef __ITransactionImport_FWD_DEFINED__
#define __ITransactionImport_FWD_DEFINED__
typedef interface ITransactionImport ITransactionImport;
#ifdef __cplusplus
interface ITransactionImport;
#endif /* __cplusplus */
#endif

#ifndef __ITipTransaction_FWD_DEFINED__
#define __ITipTransaction_FWD_DEFINED__
typedef interface ITipTransaction ITipTransaction;
#ifdef __cplusplus
interface ITipTransaction;
#endif /* __cplusplus */
#endif

#ifndef __ITipHelper_FWD_DEFINED__
#define __ITipHelper_FWD_DEFINED__
typedef interface ITipHelper ITipHelper;
#ifdef __cplusplus
interface ITipHelper;
#endif /* __cplusplus */
#endif

#ifndef __ITipPullSink_FWD_DEFINED__
#define __ITipPullSink_FWD_DEFINED__
typedef interface ITipPullSink ITipPullSink;
#ifdef __cplusplus
interface ITipPullSink;
#endif /* __cplusplus */
#endif

#ifndef __IDtcNetworkAccessConfig_FWD_DEFINED__
#define __IDtcNetworkAccessConfig_FWD_DEFINED__
typedef interface IDtcNetworkAccessConfig IDtcNetworkAccessConfig;
#ifdef __cplusplus
interface IDtcNetworkAccessConfig;
#endif /* __cplusplus */
#endif

#ifndef __IDtcNetworkAccessConfig2_FWD_DEFINED__
#define __IDtcNetworkAccessConfig2_FWD_DEFINED__
typedef interface IDtcNetworkAccessConfig2 IDtcNetworkAccessConfig2;
#ifdef __cplusplus
interface IDtcNetworkAccessConfig2;
#endif /* __cplusplus */
#endif

/*****************************************************************************
 * ITransactionResourceAsync interface
 */
#ifndef __ITransactionResourceAsync_INTERFACE_DEFINED__
#define __ITransactionResourceAsync_INTERFACE_DEFINED__

DEFINE_GUID(IID_ITransactionResourceAsync, 0x69e971f0, 0x23ce, 0x11cf, 0xad,0x60, 0x00,0xaa,0x00,0xa7,0x4c,0xcd);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("69e971f0-23ce-11cf-ad60-00aa00a74ccd")
ITransactionResourceAsync : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE PrepareRequest(
        BOOL fRetaining,
        DWORD grfRM,
        BOOL fWantMoniker,
        BOOL fSinglePhase) = 0;

    virtual HRESULT STDMETHODCALLTYPE CommitRequest(
        DWORD grfRM,
        XACTUOW *pNewUOW) = 0;

    virtual HRESULT STDMETHODCALLTYPE AbortRequest(
        BOID *pboidReason,
        BOOL fRetaining,
        XACTUOW *pNewUOW) = 0;

    virtual HRESULT STDMETHODCALLTYPE TMDown(
        ) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ITransactionResourceAsync, 0x69e971f0, 0x23ce, 0x11cf, 0xad,0x60, 0x00,0xaa,0x00,0xa7,0x4c,0xcd)
#endif
#else
typedef struct ITransactionResourceAsyncVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ITransactionResourceAsync *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ITransactionResourceAsync *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ITransactionResourceAsync *This);

    /*** ITransactionResourceAsync methods ***/
    HRESULT (STDMETHODCALLTYPE *PrepareRequest)(
        ITransactionResourceAsync *This,
        BOOL fRetaining,
        DWORD grfRM,
        BOOL fWantMoniker,
        BOOL fSinglePhase);

    HRESULT (STDMETHODCALLTYPE *CommitRequest)(
        ITransactionResourceAsync *This,
        DWORD grfRM,
        XACTUOW *pNewUOW);

    HRESULT (STDMETHODCALLTYPE *AbortRequest)(
        ITransactionResourceAsync *This,
        BOID *pboidReason,
        BOOL fRetaining,
        XACTUOW *pNewUOW);

    HRESULT (STDMETHODCALLTYPE *TMDown)(
        ITransactionResourceAsync *This);

    END_INTERFACE
} ITransactionResourceAsyncVtbl;

interface ITransactionResourceAsync {
    CONST_VTBL ITransactionResourceAsyncVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define ITransactionResourceAsync_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ITransactionResourceAsync_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ITransactionResourceAsync_Release(This) (This)->lpVtbl->Release(This)
/*** ITransactionResourceAsync methods ***/
#define ITransactionResourceAsync_PrepareRequest(This,fRetaining,grfRM,fWantMoniker,fSinglePhase) (This)->lpVtbl->PrepareRequest(This,fRetaining,grfRM,fWantMoniker,fSinglePhase)
#define ITransactionResourceAsync_CommitRequest(This,grfRM,pNewUOW) (This)->lpVtbl->CommitRequest(This,grfRM,pNewUOW)
#define ITransactionResourceAsync_AbortRequest(This,pboidReason,fRetaining,pNewUOW) (This)->lpVtbl->AbortRequest(This,pboidReason,fRetaining,pNewUOW)
#define ITransactionResourceAsync_TMDown(This) (This)->lpVtbl->TMDown(This)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT ITransactionResourceAsync_QueryInterface(ITransactionResourceAsync* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG ITransactionResourceAsync_AddRef(ITransactionResourceAsync* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG ITransactionResourceAsync_Release(ITransactionResourceAsync* This) {
    return This->lpVtbl->Release(This);
}
/*** ITransactionResourceAsync methods ***/
static FORCEINLINE HRESULT ITransactionResourceAsync_PrepareRequest(ITransactionResourceAsync* This,BOOL fRetaining,DWORD grfRM,BOOL fWantMoniker,BOOL fSinglePhase) {
    return This->lpVtbl->PrepareRequest(This,fRetaining,grfRM,fWantMoniker,fSinglePhase);
}
static FORCEINLINE HRESULT ITransactionResourceAsync_CommitRequest(ITransactionResourceAsync* This,DWORD grfRM,XACTUOW *pNewUOW) {
    return This->lpVtbl->CommitRequest(This,grfRM,pNewUOW);
}
static FORCEINLINE HRESULT ITransactionResourceAsync_AbortRequest(ITransactionResourceAsync* This,BOID *pboidReason,BOOL fRetaining,XACTUOW *pNewUOW) {
    return This->lpVtbl->AbortRequest(This,pboidReason,fRetaining,pNewUOW);
}
static FORCEINLINE HRESULT ITransactionResourceAsync_TMDown(ITransactionResourceAsync* This) {
    return This->lpVtbl->TMDown(This);
}
#endif
#endif

#endif


#endif  /* __ITransactionResourceAsync_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ITransactionLastResourceAsync interface
 */
#ifndef __ITransactionLastResourceAsync_INTERFACE_DEFINED__
#define __ITransactionLastResourceAsync_INTERFACE_DEFINED__

DEFINE_GUID(IID_ITransactionLastResourceAsync, 0xc82bd532, 0x5b30, 0x11d3, 0x8a,0x91, 0x00,0xc0,0x4f,0x79,0xeb,0x6d);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("c82bd532-5b30-11d3-8a91-00c04f79eb6d")
ITransactionLastResourceAsync : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE DelegateCommit(
        DWORD grfRM) = 0;

    virtual HRESULT STDMETHODCALLTYPE ForgetRequest(
        XACTUOW *pNewUOW) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ITransactionLastResourceAsync, 0xc82bd532, 0x5b30, 0x11d3, 0x8a,0x91, 0x00,0xc0,0x4f,0x79,0xeb,0x6d)
#endif
#else
typedef struct ITransactionLastResourceAsyncVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ITransactionLastResourceAsync *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ITransactionLastResourceAsync *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ITransactionLastResourceAsync *This);

    /*** ITransactionLastResourceAsync methods ***/
    HRESULT (STDMETHODCALLTYPE *DelegateCommit)(
        ITransactionLastResourceAsync *This,
        DWORD grfRM);

    HRESULT (STDMETHODCALLTYPE *ForgetRequest)(
        ITransactionLastResourceAsync *This,
        XACTUOW *pNewUOW);

    END_INTERFACE
} ITransactionLastResourceAsyncVtbl;

interface ITransactionLastResourceAsync {
    CONST_VTBL ITransactionLastResourceAsyncVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define ITransactionLastResourceAsync_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ITransactionLastResourceAsync_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ITransactionLastResourceAsync_Release(This) (This)->lpVtbl->Release(This)
/*** ITransactionLastResourceAsync methods ***/
#define ITransactionLastResourceAsync_DelegateCommit(This,grfRM) (This)->lpVtbl->DelegateCommit(This,grfRM)
#define ITransactionLastResourceAsync_ForgetRequest(This,pNewUOW) (This)->lpVtbl->ForgetRequest(This,pNewUOW)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT ITransactionLastResourceAsync_QueryInterface(ITransactionLastResourceAsync* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG ITransactionLastResourceAsync_AddRef(ITransactionLastResourceAsync* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG ITransactionLastResourceAsync_Release(ITransactionLastResourceAsync* This) {
    return This->lpVtbl->Release(This);
}
/*** ITransactionLastResourceAsync methods ***/
static FORCEINLINE HRESULT ITransactionLastResourceAsync_DelegateCommit(ITransactionLastResourceAsync* This,DWORD grfRM) {
    return This->lpVtbl->DelegateCommit(This,grfRM);
}
static FORCEINLINE HRESULT ITransactionLastResourceAsync_ForgetRequest(ITransactionLastResourceAsync* This,XACTUOW *pNewUOW) {
    return This->lpVtbl->ForgetRequest(This,pNewUOW);
}
#endif
#endif

#endif


#endif  /* __ITransactionLastResourceAsync_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ITransactionResource interface
 */
#ifndef __ITransactionResource_INTERFACE_DEFINED__
#define __ITransactionResource_INTERFACE_DEFINED__

DEFINE_GUID(IID_ITransactionResource, 0xee5ff7b3, 0x4572, 0x11d0, 0x94,0x52, 0x00,0xa0,0xc9,0x05,0x41,0x6e);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("ee5ff7b3-4572-11d0-9452-00a0c905416e")
ITransactionResource : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE PrepareRequest(
        BOOL fRetaining,
        DWORD grfRM,
        BOOL fWantMoniker,
        BOOL fSinglePhase) = 0;

    virtual HRESULT STDMETHODCALLTYPE CommitRequest(
        DWORD grfRM,
        XACTUOW *pNewUOW) = 0;

    virtual HRESULT STDMETHODCALLTYPE AbortRequest(
        BOID *pboidReason,
        BOOL fRetaining,
        XACTUOW *pNewUOW) = 0;

    virtual HRESULT STDMETHODCALLTYPE TMDown(
        ) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ITransactionResource, 0xee5ff7b3, 0x4572, 0x11d0, 0x94,0x52, 0x00,0xa0,0xc9,0x05,0x41,0x6e)
#endif
#else
typedef struct ITransactionResourceVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ITransactionResource *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ITransactionResource *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ITransactionResource *This);

    /*** ITransactionResource methods ***/
    HRESULT (STDMETHODCALLTYPE *PrepareRequest)(
        ITransactionResource *This,
        BOOL fRetaining,
        DWORD grfRM,
        BOOL fWantMoniker,
        BOOL fSinglePhase);

    HRESULT (STDMETHODCALLTYPE *CommitRequest)(
        ITransactionResource *This,
        DWORD grfRM,
        XACTUOW *pNewUOW);

    HRESULT (STDMETHODCALLTYPE *AbortRequest)(
        ITransactionResource *This,
        BOID *pboidReason,
        BOOL fRetaining,
        XACTUOW *pNewUOW);

    HRESULT (STDMETHODCALLTYPE *TMDown)(
        ITransactionResource *This);

    END_INTERFACE
} ITransactionResourceVtbl;

interface ITransactionResource {
    CONST_VTBL ITransactionResourceVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define ITransactionResource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ITransactionResource_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ITransactionResource_Release(This) (This)->lpVtbl->Release(This)
/*** ITransactionResource methods ***/
#define ITransactionResource_PrepareRequest(This,fRetaining,grfRM,fWantMoniker,fSinglePhase) (This)->lpVtbl->PrepareRequest(This,fRetaining,grfRM,fWantMoniker,fSinglePhase)
#define ITransactionResource_CommitRequest(This,grfRM,pNewUOW) (This)->lpVtbl->CommitRequest(This,grfRM,pNewUOW)
#define ITransactionResource_AbortRequest(This,pboidReason,fRetaining,pNewUOW) (This)->lpVtbl->AbortRequest(This,pboidReason,fRetaining,pNewUOW)
#define ITransactionResource_TMDown(This) (This)->lpVtbl->TMDown(This)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT ITransactionResource_QueryInterface(ITransactionResource* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG ITransactionResource_AddRef(ITransactionResource* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG ITransactionResource_Release(ITransactionResource* This) {
    return This->lpVtbl->Release(This);
}
/*** ITransactionResource methods ***/
static FORCEINLINE HRESULT ITransactionResource_PrepareRequest(ITransactionResource* This,BOOL fRetaining,DWORD grfRM,BOOL fWantMoniker,BOOL fSinglePhase) {
    return This->lpVtbl->PrepareRequest(This,fRetaining,grfRM,fWantMoniker,fSinglePhase);
}
static FORCEINLINE HRESULT ITransactionResource_CommitRequest(ITransactionResource* This,DWORD grfRM,XACTUOW *pNewUOW) {
    return This->lpVtbl->CommitRequest(This,grfRM,pNewUOW);
}
static FORCEINLINE HRESULT ITransactionResource_AbortRequest(ITransactionResource* This,BOID *pboidReason,BOOL fRetaining,XACTUOW *pNewUOW) {
    return This->lpVtbl->AbortRequest(This,pboidReason,fRetaining,pNewUOW);
}
static FORCEINLINE HRESULT ITransactionResource_TMDown(ITransactionResource* This) {
    return This->lpVtbl->TMDown(This);
}
#endif
#endif

#endif


#endif  /* __ITransactionResource_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ITransactionEnlistmentAsync interface
 */
#ifndef __ITransactionEnlistmentAsync_INTERFACE_DEFINED__
#define __ITransactionEnlistmentAsync_INTERFACE_DEFINED__

DEFINE_GUID(IID_ITransactionEnlistmentAsync, 0x0fb15081, 0xaf41, 0x11ce, 0xbd,0x2b, 0x20,0x4c,0x4f,0x4f,0x50,0x20);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("0fb15081-af41-11ce-bd2b-204c4f4f5020")
ITransactionEnlistmentAsync : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE PrepareRequestDone(
        HRESULT hr,
        IMoniker *pmk,
        BOID *pboidReason) = 0;

    virtual HRESULT STDMETHODCALLTYPE CommitRequestDone(
        HRESULT hr) = 0;

    virtual HRESULT STDMETHODCALLTYPE AbortRequestDone(
        HRESULT hr) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ITransactionEnlistmentAsync, 0x0fb15081, 0xaf41, 0x11ce, 0xbd,0x2b, 0x20,0x4c,0x4f,0x4f,0x50,0x20)
#endif
#else
typedef struct ITransactionEnlistmentAsyncVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ITransactionEnlistmentAsync *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ITransactionEnlistmentAsync *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ITransactionEnlistmentAsync *This);

    /*** ITransactionEnlistmentAsync methods ***/
    HRESULT (STDMETHODCALLTYPE *PrepareRequestDone)(
        ITransactionEnlistmentAsync *This,
        HRESULT hr,
        IMoniker *pmk,
        BOID *pboidReason);

    HRESULT (STDMETHODCALLTYPE *CommitRequestDone)(
        ITransactionEnlistmentAsync *This,
        HRESULT hr);

    HRESULT (STDMETHODCALLTYPE *AbortRequestDone)(
        ITransactionEnlistmentAsync *This,
        HRESULT hr);

    END_INTERFACE
} ITransactionEnlistmentAsyncVtbl;

interface ITransactionEnlistmentAsync {
    CONST_VTBL ITransactionEnlistmentAsyncVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define ITransactionEnlistmentAsync_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ITransactionEnlistmentAsync_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ITransactionEnlistmentAsync_Release(This) (This)->lpVtbl->Release(This)
/*** ITransactionEnlistmentAsync methods ***/
#define ITransactionEnlistmentAsync_PrepareRequestDone(This,hr,pmk,pboidReason) (This)->lpVtbl->PrepareRequestDone(This,hr,pmk,pboidReason)
#define ITransactionEnlistmentAsync_CommitRequestDone(This,hr) (This)->lpVtbl->CommitRequestDone(This,hr)
#define ITransactionEnlistmentAsync_AbortRequestDone(This,hr) (This)->lpVtbl->AbortRequestDone(This,hr)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT ITransactionEnlistmentAsync_QueryInterface(ITransactionEnlistmentAsync* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG ITransactionEnlistmentAsync_AddRef(ITransactionEnlistmentAsync* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG ITransactionEnlistmentAsync_Release(ITransactionEnlistmentAsync* This) {
    return This->lpVtbl->Release(This);
}
/*** ITransactionEnlistmentAsync methods ***/
static FORCEINLINE HRESULT ITransactionEnlistmentAsync_PrepareRequestDone(ITransactionEnlistmentAsync* This,HRESULT hr,IMoniker *pmk,BOID *pboidReason) {
    return This->lpVtbl->PrepareRequestDone(This,hr,pmk,pboidReason);
}
static FORCEINLINE HRESULT ITransactionEnlistmentAsync_CommitRequestDone(ITransactionEnlistmentAsync* This,HRESULT hr) {
    return This->lpVtbl->CommitRequestDone(This,hr);
}
static FORCEINLINE HRESULT ITransactionEnlistmentAsync_AbortRequestDone(ITransactionEnlistmentAsync* This,HRESULT hr) {
    return This->lpVtbl->AbortRequestDone(This,hr);
}
#endif
#endif

#endif


#endif  /* __ITransactionEnlistmentAsync_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ITransactionLastEnlistmentAsync interface
 */
#ifndef __ITransactionLastEnlistmentAsync_INTERFACE_DEFINED__
#define __ITransactionLastEnlistmentAsync_INTERFACE_DEFINED__

DEFINE_GUID(IID_ITransactionLastEnlistmentAsync, 0xc82bd533, 0x5b30, 0x11d3, 0x8a,0x91, 0x00,0xc0,0x4f,0x79,0xeb,0x6d);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("c82bd533-5b30-11d3-8a91-00c04f79eb6d")
ITransactionLastEnlistmentAsync : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE TransactionOutcome(
        XACTSTAT XactStat,
        BOID *pboidReason) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ITransactionLastEnlistmentAsync, 0xc82bd533, 0x5b30, 0x11d3, 0x8a,0x91, 0x00,0xc0,0x4f,0x79,0xeb,0x6d)
#endif
#else
typedef struct ITransactionLastEnlistmentAsyncVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ITransactionLastEnlistmentAsync *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ITransactionLastEnlistmentAsync *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ITransactionLastEnlistmentAsync *This);

    /*** ITransactionLastEnlistmentAsync methods ***/
    HRESULT (STDMETHODCALLTYPE *TransactionOutcome)(
        ITransactionLastEnlistmentAsync *This,
        XACTSTAT XactStat,
        BOID *pboidReason);

    END_INTERFACE
} ITransactionLastEnlistmentAsyncVtbl;

interface ITransactionLastEnlistmentAsync {
    CONST_VTBL ITransactionLastEnlistmentAsyncVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define ITransactionLastEnlistmentAsync_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ITransactionLastEnlistmentAsync_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ITransactionLastEnlistmentAsync_Release(This) (This)->lpVtbl->Release(This)
/*** ITransactionLastEnlistmentAsync methods ***/
#define ITransactionLastEnlistmentAsync_TransactionOutcome(This,XactStat,pboidReason) (This)->lpVtbl->TransactionOutcome(This,XactStat,pboidReason)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT ITransactionLastEnlistmentAsync_QueryInterface(ITransactionLastEnlistmentAsync* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG ITransactionLastEnlistmentAsync_AddRef(ITransactionLastEnlistmentAsync* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG ITransactionLastEnlistmentAsync_Release(ITransactionLastEnlistmentAsync* This) {
    return This->lpVtbl->Release(This);
}
/*** ITransactionLastEnlistmentAsync methods ***/
static FORCEINLINE HRESULT ITransactionLastEnlistmentAsync_TransactionOutcome(ITransactionLastEnlistmentAsync* This,XACTSTAT XactStat,BOID *pboidReason) {
    return This->lpVtbl->TransactionOutcome(This,XactStat,pboidReason);
}
#endif
#endif

#endif


#endif  /* __ITransactionLastEnlistmentAsync_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ITransactionExportFactory interface
 */
#ifndef __ITransactionExportFactory_INTERFACE_DEFINED__
#define __ITransactionExportFactory_INTERFACE_DEFINED__

DEFINE_GUID(IID_ITransactionExportFactory, 0xe1cf9b53, 0x8745, 0x11ce, 0xa9,0xba, 0x00,0xaa,0x00,0x6c,0x37,0x06);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("e1cf9b53-8745-11ce-a9ba-00aa006c3706")
ITransactionExportFactory : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE GetRemoteClassId(
        CLSID *pclsid) = 0;

    virtual HRESULT STDMETHODCALLTYPE Create(
        ULONG cbWhereabouts,
        byte *rgbWhereabouts,
        ITransactionExport **ppExport) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ITransactionExportFactory, 0xe1cf9b53, 0x8745, 0x11ce, 0xa9,0xba, 0x00,0xaa,0x00,0x6c,0x37,0x06)
#endif
#else
typedef struct ITransactionExportFactoryVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ITransactionExportFactory *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ITransactionExportFactory *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ITransactionExportFactory *This);

    /*** ITransactionExportFactory methods ***/
    HRESULT (STDMETHODCALLTYPE *GetRemoteClassId)(
        ITransactionExportFactory *This,
        CLSID *pclsid);

    HRESULT (STDMETHODCALLTYPE *Create)(
        ITransactionExportFactory *This,
        ULONG cbWhereabouts,
        byte *rgbWhereabouts,
        ITransactionExport **ppExport);

    END_INTERFACE
} ITransactionExportFactoryVtbl;

interface ITransactionExportFactory {
    CONST_VTBL ITransactionExportFactoryVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define ITransactionExportFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ITransactionExportFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ITransactionExportFactory_Release(This) (This)->lpVtbl->Release(This)
/*** ITransactionExportFactory methods ***/
#define ITransactionExportFactory_GetRemoteClassId(This,pclsid) (This)->lpVtbl->GetRemoteClassId(This,pclsid)
#define ITransactionExportFactory_Create(This,cbWhereabouts,rgbWhereabouts,ppExport) (This)->lpVtbl->Create(This,cbWhereabouts,rgbWhereabouts,ppExport)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT ITransactionExportFactory_QueryInterface(ITransactionExportFactory* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG ITransactionExportFactory_AddRef(ITransactionExportFactory* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG ITransactionExportFactory_Release(ITransactionExportFactory* This) {
    return This->lpVtbl->Release(This);
}
/*** ITransactionExportFactory methods ***/
static FORCEINLINE HRESULT ITransactionExportFactory_GetRemoteClassId(ITransactionExportFactory* This,CLSID *pclsid) {
    return This->lpVtbl->GetRemoteClassId(This,pclsid);
}
static FORCEINLINE HRESULT ITransactionExportFactory_Create(ITransactionExportFactory* This,ULONG cbWhereabouts,byte *rgbWhereabouts,ITransactionExport **ppExport) {
    return This->lpVtbl->Create(This,cbWhereabouts,rgbWhereabouts,ppExport);
}
#endif
#endif

#endif


#endif  /* __ITransactionExportFactory_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ITransactionImportWhereabouts interface
 */
#ifndef __ITransactionImportWhereabouts_INTERFACE_DEFINED__
#define __ITransactionImportWhereabouts_INTERFACE_DEFINED__

DEFINE_GUID(IID_ITransactionImportWhereabouts, 0x0141fda4, 0x8fc0, 0x11ce, 0xbd,0x18, 0x20,0x4c,0x4f,0x4f,0x50,0x20);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("0141fda4-8fc0-11ce-bd18-204c4f4f5020")
ITransactionImportWhereabouts : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE GetWhereaboutsSize(
        ULONG *pcbWhereabouts) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetWhereabouts(
        ULONG cbWhereabouts,
        byte *rgbWhereabouts,
        ULONG *pcbUsed) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ITransactionImportWhereabouts, 0x0141fda4, 0x8fc0, 0x11ce, 0xbd,0x18, 0x20,0x4c,0x4f,0x4f,0x50,0x20)
#endif
#else
typedef struct ITransactionImportWhereaboutsVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ITransactionImportWhereabouts *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ITransactionImportWhereabouts *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ITransactionImportWhereabouts *This);

    /*** ITransactionImportWhereabouts methods ***/
    HRESULT (STDMETHODCALLTYPE *GetWhereaboutsSize)(
        ITransactionImportWhereabouts *This,
        ULONG *pcbWhereabouts);

    HRESULT (STDMETHODCALLTYPE *GetWhereabouts)(
        ITransactionImportWhereabouts *This,
        ULONG cbWhereabouts,
        byte *rgbWhereabouts,
        ULONG *pcbUsed);

    END_INTERFACE
} ITransactionImportWhereaboutsVtbl;

interface ITransactionImportWhereabouts {
    CONST_VTBL ITransactionImportWhereaboutsVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define ITransactionImportWhereabouts_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ITransactionImportWhereabouts_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ITransactionImportWhereabouts_Release(This) (This)->lpVtbl->Release(This)
/*** ITransactionImportWhereabouts methods ***/
#define ITransactionImportWhereabouts_GetWhereaboutsSize(This,pcbWhereabouts) (This)->lpVtbl->GetWhereaboutsSize(This,pcbWhereabouts)
#define ITransactionImportWhereabouts_GetWhereabouts(This,cbWhereabouts,rgbWhereabouts,pcbUsed) (This)->lpVtbl->GetWhereabouts(This,cbWhereabouts,rgbWhereabouts,pcbUsed)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT ITransactionImportWhereabouts_QueryInterface(ITransactionImportWhereabouts* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG ITransactionImportWhereabouts_AddRef(ITransactionImportWhereabouts* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG ITransactionImportWhereabouts_Release(ITransactionImportWhereabouts* This) {
    return This->lpVtbl->Release(This);
}
/*** ITransactionImportWhereabouts methods ***/
static FORCEINLINE HRESULT ITransactionImportWhereabouts_GetWhereaboutsSize(ITransactionImportWhereabouts* This,ULONG *pcbWhereabouts) {
    return This->lpVtbl->GetWhereaboutsSize(This,pcbWhereabouts);
}
static FORCEINLINE HRESULT ITransactionImportWhereabouts_GetWhereabouts(ITransactionImportWhereabouts* This,ULONG cbWhereabouts,byte *rgbWhereabouts,ULONG *pcbUsed) {
    return This->lpVtbl->GetWhereabouts(This,cbWhereabouts,rgbWhereabouts,pcbUsed);
}
#endif
#endif

#endif


#endif  /* __ITransactionImportWhereabouts_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ITransactionExport interface
 */
#ifndef __ITransactionExport_INTERFACE_DEFINED__
#define __ITransactionExport_INTERFACE_DEFINED__

DEFINE_GUID(IID_ITransactionExport, 0x0141fda5, 0x8fc0, 0x11ce, 0xbd,0x18, 0x20,0x4c,0x4f,0x4f,0x50,0x20);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("0141fda5-8fc0-11ce-bd18-204c4f4f5020")
ITransactionExport : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE Export(
        IUnknown *punkTransaction,
        ULONG *pcbTransactionCookie) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetTransactionCookie(
        IUnknown *punkTransaction,
        ULONG cbTransactionCookie,
        byte *rgbTransactionCookie,
        ULONG *pcbUsed) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ITransactionExport, 0x0141fda5, 0x8fc0, 0x11ce, 0xbd,0x18, 0x20,0x4c,0x4f,0x4f,0x50,0x20)
#endif
#else
typedef struct ITransactionExportVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ITransactionExport *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ITransactionExport *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ITransactionExport *This);

    /*** ITransactionExport methods ***/
    HRESULT (STDMETHODCALLTYPE *Export)(
        ITransactionExport *This,
        IUnknown *punkTransaction,
        ULONG *pcbTransactionCookie);

    HRESULT (STDMETHODCALLTYPE *GetTransactionCookie)(
        ITransactionExport *This,
        IUnknown *punkTransaction,
        ULONG cbTransactionCookie,
        byte *rgbTransactionCookie,
        ULONG *pcbUsed);

    END_INTERFACE
} ITransactionExportVtbl;

interface ITransactionExport {
    CONST_VTBL ITransactionExportVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define ITransactionExport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ITransactionExport_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ITransactionExport_Release(This) (This)->lpVtbl->Release(This)
/*** ITransactionExport methods ***/
#define ITransactionExport_Export(This,punkTransaction,pcbTransactionCookie) (This)->lpVtbl->Export(This,punkTransaction,pcbTransactionCookie)
#define ITransactionExport_GetTransactionCookie(This,punkTransaction,cbTransactionCookie,rgbTransactionCookie,pcbUsed) (This)->lpVtbl->GetTransactionCookie(This,punkTransaction,cbTransactionCookie,rgbTransactionCookie,pcbUsed)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT ITransactionExport_QueryInterface(ITransactionExport* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG ITransactionExport_AddRef(ITransactionExport* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG ITransactionExport_Release(ITransactionExport* This) {
    return This->lpVtbl->Release(This);
}
/*** ITransactionExport methods ***/
static FORCEINLINE HRESULT ITransactionExport_Export(ITransactionExport* This,IUnknown *punkTransaction,ULONG *pcbTransactionCookie) {
    return This->lpVtbl->Export(This,punkTransaction,pcbTransactionCookie);
}
static FORCEINLINE HRESULT ITransactionExport_GetTransactionCookie(ITransactionExport* This,IUnknown *punkTransaction,ULONG cbTransactionCookie,byte *rgbTransactionCookie,ULONG *pcbUsed) {
    return This->lpVtbl->GetTransactionCookie(This,punkTransaction,cbTransactionCookie,rgbTransactionCookie,pcbUsed);
}
#endif
#endif

#endif


#endif  /* __ITransactionExport_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ITransactionImport interface
 */
#ifndef __ITransactionImport_INTERFACE_DEFINED__
#define __ITransactionImport_INTERFACE_DEFINED__

DEFINE_GUID(IID_ITransactionImport, 0xe1cf9b5a, 0x8745, 0x11ce, 0xa9,0xba, 0x00,0xaa,0x00,0x6c,0x37,0x06);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("e1cf9b5a-8745-11ce-a9ba-00aa006c3706")
ITransactionImport : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE Import(
        ULONG cbTransactionCookie,
        byte *rgbTransactionCookie,
        IID *piid,
        void **ppvTransaction) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ITransactionImport, 0xe1cf9b5a, 0x8745, 0x11ce, 0xa9,0xba, 0x00,0xaa,0x00,0x6c,0x37,0x06)
#endif
#else
typedef struct ITransactionImportVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ITransactionImport *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ITransactionImport *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ITransactionImport *This);

    /*** ITransactionImport methods ***/
    HRESULT (STDMETHODCALLTYPE *Import)(
        ITransactionImport *This,
        ULONG cbTransactionCookie,
        byte *rgbTransactionCookie,
        IID *piid,
        void **ppvTransaction);

    END_INTERFACE
} ITransactionImportVtbl;

interface ITransactionImport {
    CONST_VTBL ITransactionImportVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define ITransactionImport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ITransactionImport_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ITransactionImport_Release(This) (This)->lpVtbl->Release(This)
/*** ITransactionImport methods ***/
#define ITransactionImport_Import(This,cbTransactionCookie,rgbTransactionCookie,piid,ppvTransaction) (This)->lpVtbl->Import(This,cbTransactionCookie,rgbTransactionCookie,piid,ppvTransaction)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT ITransactionImport_QueryInterface(ITransactionImport* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG ITransactionImport_AddRef(ITransactionImport* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG ITransactionImport_Release(ITransactionImport* This) {
    return This->lpVtbl->Release(This);
}
/*** ITransactionImport methods ***/
static FORCEINLINE HRESULT ITransactionImport_Import(ITransactionImport* This,ULONG cbTransactionCookie,byte *rgbTransactionCookie,IID *piid,void **ppvTransaction) {
    return This->lpVtbl->Import(This,cbTransactionCookie,rgbTransactionCookie,piid,ppvTransaction);
}
#endif
#endif

#endif


#endif  /* __ITransactionImport_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ITipTransaction interface
 */
#ifndef __ITipTransaction_INTERFACE_DEFINED__
#define __ITipTransaction_INTERFACE_DEFINED__

DEFINE_GUID(IID_ITipTransaction, 0x17cf72d0, 0xbac5, 0x11d1, 0xb1,0xbf, 0x00,0xc0,0x4f,0xc2,0xf3,0xef);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("17cf72d0-bac5-11d1-b1bf-00c04fc2f3ef")
ITipTransaction : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE Push(
        char *i_pszRemoteTmUrl,
        char **o_ppszRemoteTxUrl) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetTransactionUrl(
        char **o_ppszLocalTxUrl) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ITipTransaction, 0x17cf72d0, 0xbac5, 0x11d1, 0xb1,0xbf, 0x00,0xc0,0x4f,0xc2,0xf3,0xef)
#endif
#else
typedef struct ITipTransactionVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ITipTransaction *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ITipTransaction *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ITipTransaction *This);

    /*** ITipTransaction methods ***/
    HRESULT (STDMETHODCALLTYPE *Push)(
        ITipTransaction *This,
        char *i_pszRemoteTmUrl,
        char **o_ppszRemoteTxUrl);

    HRESULT (STDMETHODCALLTYPE *GetTransactionUrl)(
        ITipTransaction *This,
        char **o_ppszLocalTxUrl);

    END_INTERFACE
} ITipTransactionVtbl;

interface ITipTransaction {
    CONST_VTBL ITipTransactionVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define ITipTransaction_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ITipTransaction_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ITipTransaction_Release(This) (This)->lpVtbl->Release(This)
/*** ITipTransaction methods ***/
#define ITipTransaction_Push(This,i_pszRemoteTmUrl,o_ppszRemoteTxUrl) (This)->lpVtbl->Push(This,i_pszRemoteTmUrl,o_ppszRemoteTxUrl)
#define ITipTransaction_GetTransactionUrl(This,o_ppszLocalTxUrl) (This)->lpVtbl->GetTransactionUrl(This,o_ppszLocalTxUrl)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT ITipTransaction_QueryInterface(ITipTransaction* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG ITipTransaction_AddRef(ITipTransaction* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG ITipTransaction_Release(ITipTransaction* This) {
    return This->lpVtbl->Release(This);
}
/*** ITipTransaction methods ***/
static FORCEINLINE HRESULT ITipTransaction_Push(ITipTransaction* This,char *i_pszRemoteTmUrl,char **o_ppszRemoteTxUrl) {
    return This->lpVtbl->Push(This,i_pszRemoteTmUrl,o_ppszRemoteTxUrl);
}
static FORCEINLINE HRESULT ITipTransaction_GetTransactionUrl(ITipTransaction* This,char **o_ppszLocalTxUrl) {
    return This->lpVtbl->GetTransactionUrl(This,o_ppszLocalTxUrl);
}
#endif
#endif

#endif


#endif  /* __ITipTransaction_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ITipHelper interface
 */
#ifndef __ITipHelper_INTERFACE_DEFINED__
#define __ITipHelper_INTERFACE_DEFINED__

DEFINE_GUID(IID_ITipHelper, 0x17cf72d1, 0xbac5, 0x11d1, 0xb1,0xbf, 0x00,0xc0,0x4f,0xc2,0xf3,0xef);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("17cf72d1-bac5-11d1-b1bf-00c04fc2f3ef")
ITipHelper : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE Pull(
        char *i_pszTxUrl,
        ITransaction **o_ppITransaction) = 0;

    virtual HRESULT STDMETHODCALLTYPE PullAsync(
        char *i_pszTxUrl,
        ITipPullSink *i_pTipPullSink,
        ITransaction **o_ppITransaction) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetLocalTmUrl(
        char **o_ppszLocalTmUrl) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ITipHelper, 0x17cf72d1, 0xbac5, 0x11d1, 0xb1,0xbf, 0x00,0xc0,0x4f,0xc2,0xf3,0xef)
#endif
#else
typedef struct ITipHelperVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ITipHelper *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ITipHelper *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ITipHelper *This);

    /*** ITipHelper methods ***/
    HRESULT (STDMETHODCALLTYPE *Pull)(
        ITipHelper *This,
        char *i_pszTxUrl,
        ITransaction **o_ppITransaction);

    HRESULT (STDMETHODCALLTYPE *PullAsync)(
        ITipHelper *This,
        char *i_pszTxUrl,
        ITipPullSink *i_pTipPullSink,
        ITransaction **o_ppITransaction);

    HRESULT (STDMETHODCALLTYPE *GetLocalTmUrl)(
        ITipHelper *This,
        char **o_ppszLocalTmUrl);

    END_INTERFACE
} ITipHelperVtbl;

interface ITipHelper {
    CONST_VTBL ITipHelperVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define ITipHelper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ITipHelper_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ITipHelper_Release(This) (This)->lpVtbl->Release(This)
/*** ITipHelper methods ***/
#define ITipHelper_Pull(This,i_pszTxUrl,o_ppITransaction) (This)->lpVtbl->Pull(This,i_pszTxUrl,o_ppITransaction)
#define ITipHelper_PullAsync(This,i_pszTxUrl,i_pTipPullSink,o_ppITransaction) (This)->lpVtbl->PullAsync(This,i_pszTxUrl,i_pTipPullSink,o_ppITransaction)
#define ITipHelper_GetLocalTmUrl(This,o_ppszLocalTmUrl) (This)->lpVtbl->GetLocalTmUrl(This,o_ppszLocalTmUrl)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT ITipHelper_QueryInterface(ITipHelper* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG ITipHelper_AddRef(ITipHelper* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG ITipHelper_Release(ITipHelper* This) {
    return This->lpVtbl->Release(This);
}
/*** ITipHelper methods ***/
static FORCEINLINE HRESULT ITipHelper_Pull(ITipHelper* This,char *i_pszTxUrl,ITransaction **o_ppITransaction) {
    return This->lpVtbl->Pull(This,i_pszTxUrl,o_ppITransaction);
}
static FORCEINLINE HRESULT ITipHelper_PullAsync(ITipHelper* This,char *i_pszTxUrl,ITipPullSink *i_pTipPullSink,ITransaction **o_ppITransaction) {
    return This->lpVtbl->PullAsync(This,i_pszTxUrl,i_pTipPullSink,o_ppITransaction);
}
static FORCEINLINE HRESULT ITipHelper_GetLocalTmUrl(ITipHelper* This,char **o_ppszLocalTmUrl) {
    return This->lpVtbl->GetLocalTmUrl(This,o_ppszLocalTmUrl);
}
#endif
#endif

#endif


#endif  /* __ITipHelper_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ITipPullSink interface
 */
#ifndef __ITipPullSink_INTERFACE_DEFINED__
#define __ITipPullSink_INTERFACE_DEFINED__

DEFINE_GUID(IID_ITipPullSink, 0x17cf72d2, 0xbac5, 0x11d1, 0xb1,0xbf, 0x00,0xc0,0x4f,0xc2,0xf3,0xef);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("17cf72d2-bac5-11d1-b1bf-00c04fc2f3ef")
ITipPullSink : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE PullComplete(
        HRESULT i_hrPull) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ITipPullSink, 0x17cf72d2, 0xbac5, 0x11d1, 0xb1,0xbf, 0x00,0xc0,0x4f,0xc2,0xf3,0xef)
#endif
#else
typedef struct ITipPullSinkVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ITipPullSink *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ITipPullSink *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ITipPullSink *This);

    /*** ITipPullSink methods ***/
    HRESULT (STDMETHODCALLTYPE *PullComplete)(
        ITipPullSink *This,
        HRESULT i_hrPull);

    END_INTERFACE
} ITipPullSinkVtbl;

interface ITipPullSink {
    CONST_VTBL ITipPullSinkVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define ITipPullSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ITipPullSink_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ITipPullSink_Release(This) (This)->lpVtbl->Release(This)
/*** ITipPullSink methods ***/
#define ITipPullSink_PullComplete(This,i_hrPull) (This)->lpVtbl->PullComplete(This,i_hrPull)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT ITipPullSink_QueryInterface(ITipPullSink* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG ITipPullSink_AddRef(ITipPullSink* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG ITipPullSink_Release(ITipPullSink* This) {
    return This->lpVtbl->Release(This);
}
/*** ITipPullSink methods ***/
static FORCEINLINE HRESULT ITipPullSink_PullComplete(ITipPullSink* This,HRESULT i_hrPull) {
    return This->lpVtbl->PullComplete(This,i_hrPull);
}
#endif
#endif

#endif


#endif  /* __ITipPullSink_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDtcNetworkAccessConfig interface
 */
#ifndef __IDtcNetworkAccessConfig_INTERFACE_DEFINED__
#define __IDtcNetworkAccessConfig_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDtcNetworkAccessConfig, 0x9797c15d, 0xa428, 0x4291, 0x87,0xb6, 0x09,0x95,0x03,0x1a,0x67,0x8d);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("9797c15d-a428-4291-87b6-0995031a678d")
IDtcNetworkAccessConfig : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE GetAnyNetworkAccess(
        BOOL *pbAnyNetworkAccess) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetAnyNetworkAccess(
        BOOL bAnyNetworkAccess) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetNetworkAdministrationAccess(
        BOOL *pbNetworkAdministrationAccess) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetNetworkAdministrationAccess(
        BOOL bNetworkAdministrationAccess) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetNetworkTransactionAccess(
        BOOL *pbNetworkTransactionAccess) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetNetworkTransactionAccess(
        BOOL bNetworkTransactionAccess) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetNetworkClientAccess(
        BOOL *pbNetworkClientAccess) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetNetworkClientAccess(
        BOOL bNetworkClientAccess) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetNetworkTIPAccess(
        BOOL *pbNetworkTIPAccess) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetNetworkTIPAccess(
        BOOL bNetworkTIPAccess) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetXAAccess(
        BOOL *pbXAAccess) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetXAAccess(
        BOOL bXAAccess) = 0;

    virtual HRESULT STDMETHODCALLTYPE RestartDtcService(
        ) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDtcNetworkAccessConfig, 0x9797c15d, 0xa428, 0x4291, 0x87,0xb6, 0x09,0x95,0x03,0x1a,0x67,0x8d)
#endif
#else
typedef struct IDtcNetworkAccessConfigVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDtcNetworkAccessConfig *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDtcNetworkAccessConfig *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDtcNetworkAccessConfig *This);

    /*** IDtcNetworkAccessConfig methods ***/
    HRESULT (STDMETHODCALLTYPE *GetAnyNetworkAccess)(
        IDtcNetworkAccessConfig *This,
        BOOL *pbAnyNetworkAccess);

    HRESULT (STDMETHODCALLTYPE *SetAnyNetworkAccess)(
        IDtcNetworkAccessConfig *This,
        BOOL bAnyNetworkAccess);

    HRESULT (STDMETHODCALLTYPE *GetNetworkAdministrationAccess)(
        IDtcNetworkAccessConfig *This,
        BOOL *pbNetworkAdministrationAccess);

    HRESULT (STDMETHODCALLTYPE *SetNetworkAdministrationAccess)(
        IDtcNetworkAccessConfig *This,
        BOOL bNetworkAdministrationAccess);

    HRESULT (STDMETHODCALLTYPE *GetNetworkTransactionAccess)(
        IDtcNetworkAccessConfig *This,
        BOOL *pbNetworkTransactionAccess);

    HRESULT (STDMETHODCALLTYPE *SetNetworkTransactionAccess)(
        IDtcNetworkAccessConfig *This,
        BOOL bNetworkTransactionAccess);

    HRESULT (STDMETHODCALLTYPE *GetNetworkClientAccess)(
        IDtcNetworkAccessConfig *This,
        BOOL *pbNetworkClientAccess);

    HRESULT (STDMETHODCALLTYPE *SetNetworkClientAccess)(
        IDtcNetworkAccessConfig *This,
        BOOL bNetworkClientAccess);

    HRESULT (STDMETHODCALLTYPE *GetNetworkTIPAccess)(
        IDtcNetworkAccessConfig *This,
        BOOL *pbNetworkTIPAccess);

    HRESULT (STDMETHODCALLTYPE *SetNetworkTIPAccess)(
        IDtcNetworkAccessConfig *This,
        BOOL bNetworkTIPAccess);

    HRESULT (STDMETHODCALLTYPE *GetXAAccess)(
        IDtcNetworkAccessConfig *This,
        BOOL *pbXAAccess);

    HRESULT (STDMETHODCALLTYPE *SetXAAccess)(
        IDtcNetworkAccessConfig *This,
        BOOL bXAAccess);

    HRESULT (STDMETHODCALLTYPE *RestartDtcService)(
        IDtcNetworkAccessConfig *This);

    END_INTERFACE
} IDtcNetworkAccessConfigVtbl;

interface IDtcNetworkAccessConfig {
    CONST_VTBL IDtcNetworkAccessConfigVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDtcNetworkAccessConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDtcNetworkAccessConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDtcNetworkAccessConfig_Release(This) (This)->lpVtbl->Release(This)
/*** IDtcNetworkAccessConfig methods ***/
#define IDtcNetworkAccessConfig_GetAnyNetworkAccess(This,pbAnyNetworkAccess) (This)->lpVtbl->GetAnyNetworkAccess(This,pbAnyNetworkAccess)
#define IDtcNetworkAccessConfig_SetAnyNetworkAccess(This,bAnyNetworkAccess) (This)->lpVtbl->SetAnyNetworkAccess(This,bAnyNetworkAccess)
#define IDtcNetworkAccessConfig_GetNetworkAdministrationAccess(This,pbNetworkAdministrationAccess) (This)->lpVtbl->GetNetworkAdministrationAccess(This,pbNetworkAdministrationAccess)
#define IDtcNetworkAccessConfig_SetNetworkAdministrationAccess(This,bNetworkAdministrationAccess) (This)->lpVtbl->SetNetworkAdministrationAccess(This,bNetworkAdministrationAccess)
#define IDtcNetworkAccessConfig_GetNetworkTransactionAccess(This,pbNetworkTransactionAccess) (This)->lpVtbl->GetNetworkTransactionAccess(This,pbNetworkTransactionAccess)
#define IDtcNetworkAccessConfig_SetNetworkTransactionAccess(This,bNetworkTransactionAccess) (This)->lpVtbl->SetNetworkTransactionAccess(This,bNetworkTransactionAccess)
#define IDtcNetworkAccessConfig_GetNetworkClientAccess(This,pbNetworkClientAccess) (This)->lpVtbl->GetNetworkClientAccess(This,pbNetworkClientAccess)
#define IDtcNetworkAccessConfig_SetNetworkClientAccess(This,bNetworkClientAccess) (This)->lpVtbl->SetNetworkClientAccess(This,bNetworkClientAccess)
#define IDtcNetworkAccessConfig_GetNetworkTIPAccess(This,pbNetworkTIPAccess) (This)->lpVtbl->GetNetworkTIPAccess(This,pbNetworkTIPAccess)
#define IDtcNetworkAccessConfig_SetNetworkTIPAccess(This,bNetworkTIPAccess) (This)->lpVtbl->SetNetworkTIPAccess(This,bNetworkTIPAccess)
#define IDtcNetworkAccessConfig_GetXAAccess(This,pbXAAccess) (This)->lpVtbl->GetXAAccess(This,pbXAAccess)
#define IDtcNetworkAccessConfig_SetXAAccess(This,bXAAccess) (This)->lpVtbl->SetXAAccess(This,bXAAccess)
#define IDtcNetworkAccessConfig_RestartDtcService(This) (This)->lpVtbl->RestartDtcService(This)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IDtcNetworkAccessConfig_QueryInterface(IDtcNetworkAccessConfig* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IDtcNetworkAccessConfig_AddRef(IDtcNetworkAccessConfig* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IDtcNetworkAccessConfig_Release(IDtcNetworkAccessConfig* This) {
    return This->lpVtbl->Release(This);
}
/*** IDtcNetworkAccessConfig methods ***/
static FORCEINLINE HRESULT IDtcNetworkAccessConfig_GetAnyNetworkAccess(IDtcNetworkAccessConfig* This,BOOL *pbAnyNetworkAccess) {
    return This->lpVtbl->GetAnyNetworkAccess(This,pbAnyNetworkAccess);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig_SetAnyNetworkAccess(IDtcNetworkAccessConfig* This,BOOL bAnyNetworkAccess) {
    return This->lpVtbl->SetAnyNetworkAccess(This,bAnyNetworkAccess);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig_GetNetworkAdministrationAccess(IDtcNetworkAccessConfig* This,BOOL *pbNetworkAdministrationAccess) {
    return This->lpVtbl->GetNetworkAdministrationAccess(This,pbNetworkAdministrationAccess);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig_SetNetworkAdministrationAccess(IDtcNetworkAccessConfig* This,BOOL bNetworkAdministrationAccess) {
    return This->lpVtbl->SetNetworkAdministrationAccess(This,bNetworkAdministrationAccess);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig_GetNetworkTransactionAccess(IDtcNetworkAccessConfig* This,BOOL *pbNetworkTransactionAccess) {
    return This->lpVtbl->GetNetworkTransactionAccess(This,pbNetworkTransactionAccess);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig_SetNetworkTransactionAccess(IDtcNetworkAccessConfig* This,BOOL bNetworkTransactionAccess) {
    return This->lpVtbl->SetNetworkTransactionAccess(This,bNetworkTransactionAccess);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig_GetNetworkClientAccess(IDtcNetworkAccessConfig* This,BOOL *pbNetworkClientAccess) {
    return This->lpVtbl->GetNetworkClientAccess(This,pbNetworkClientAccess);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig_SetNetworkClientAccess(IDtcNetworkAccessConfig* This,BOOL bNetworkClientAccess) {
    return This->lpVtbl->SetNetworkClientAccess(This,bNetworkClientAccess);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig_GetNetworkTIPAccess(IDtcNetworkAccessConfig* This,BOOL *pbNetworkTIPAccess) {
    return This->lpVtbl->GetNetworkTIPAccess(This,pbNetworkTIPAccess);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig_SetNetworkTIPAccess(IDtcNetworkAccessConfig* This,BOOL bNetworkTIPAccess) {
    return This->lpVtbl->SetNetworkTIPAccess(This,bNetworkTIPAccess);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig_GetXAAccess(IDtcNetworkAccessConfig* This,BOOL *pbXAAccess) {
    return This->lpVtbl->GetXAAccess(This,pbXAAccess);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig_SetXAAccess(IDtcNetworkAccessConfig* This,BOOL bXAAccess) {
    return This->lpVtbl->SetXAAccess(This,bXAAccess);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig_RestartDtcService(IDtcNetworkAccessConfig* This) {
    return This->lpVtbl->RestartDtcService(This);
}
#endif
#endif

#endif


#endif  /* __IDtcNetworkAccessConfig_INTERFACE_DEFINED__ */

typedef enum AUTHENTICATION_LEVEL {
    NO_AUTHENTICATION_REQUIRED = 0,
    INCOMING_AUTHENTICATION_REQUIRED = 1,
    MUTUAL_AUTHENTICATION_REQUIRED = 2
} AUTHENTICATION_LEVEL;
/*****************************************************************************
 * IDtcNetworkAccessConfig2 interface
 */
#ifndef __IDtcNetworkAccessConfig2_INTERFACE_DEFINED__
#define __IDtcNetworkAccessConfig2_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDtcNetworkAccessConfig2, 0xa7aa013b, 0xeb7d, 0x4f42, 0xb4,0x1c, 0xb2,0xde,0xc0,0x9a,0xe0,0x34);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("a7aa013b-eb7d-4f42-b41c-b2dec09ae034")
IDtcNetworkAccessConfig2 : public IDtcNetworkAccessConfig
{
    virtual HRESULT STDMETHODCALLTYPE GetNetworkInboundAccess(
        BOOL *pbInbound) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetNetworkOutboundAccess(
        BOOL *pbOutbound) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetNetworkInboundAccess(
        BOOL bInbound) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetNetworkOutboundAccess(
        BOOL bOutbound) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetAuthenticationLevel(
        AUTHENTICATION_LEVEL *pAuthLevel) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetAuthenticationLevel(
        AUTHENTICATION_LEVEL AuthLevel) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDtcNetworkAccessConfig2, 0xa7aa013b, 0xeb7d, 0x4f42, 0xb4,0x1c, 0xb2,0xde,0xc0,0x9a,0xe0,0x34)
#endif
#else
typedef struct IDtcNetworkAccessConfig2Vtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDtcNetworkAccessConfig2 *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDtcNetworkAccessConfig2 *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDtcNetworkAccessConfig2 *This);

    /*** IDtcNetworkAccessConfig methods ***/
    HRESULT (STDMETHODCALLTYPE *GetAnyNetworkAccess)(
        IDtcNetworkAccessConfig2 *This,
        BOOL *pbAnyNetworkAccess);

    HRESULT (STDMETHODCALLTYPE *SetAnyNetworkAccess)(
        IDtcNetworkAccessConfig2 *This,
        BOOL bAnyNetworkAccess);

    HRESULT (STDMETHODCALLTYPE *GetNetworkAdministrationAccess)(
        IDtcNetworkAccessConfig2 *This,
        BOOL *pbNetworkAdministrationAccess);

    HRESULT (STDMETHODCALLTYPE *SetNetworkAdministrationAccess)(
        IDtcNetworkAccessConfig2 *This,
        BOOL bNetworkAdministrationAccess);

    HRESULT (STDMETHODCALLTYPE *GetNetworkTransactionAccess)(
        IDtcNetworkAccessConfig2 *This,
        BOOL *pbNetworkTransactionAccess);

    HRESULT (STDMETHODCALLTYPE *SetNetworkTransactionAccess)(
        IDtcNetworkAccessConfig2 *This,
        BOOL bNetworkTransactionAccess);

    HRESULT (STDMETHODCALLTYPE *GetNetworkClientAccess)(
        IDtcNetworkAccessConfig2 *This,
        BOOL *pbNetworkClientAccess);

    HRESULT (STDMETHODCALLTYPE *SetNetworkClientAccess)(
        IDtcNetworkAccessConfig2 *This,
        BOOL bNetworkClientAccess);

    HRESULT (STDMETHODCALLTYPE *GetNetworkTIPAccess)(
        IDtcNetworkAccessConfig2 *This,
        BOOL *pbNetworkTIPAccess);

    HRESULT (STDMETHODCALLTYPE *SetNetworkTIPAccess)(
        IDtcNetworkAccessConfig2 *This,
        BOOL bNetworkTIPAccess);

    HRESULT (STDMETHODCALLTYPE *GetXAAccess)(
        IDtcNetworkAccessConfig2 *This,
        BOOL *pbXAAccess);

    HRESULT (STDMETHODCALLTYPE *SetXAAccess)(
        IDtcNetworkAccessConfig2 *This,
        BOOL bXAAccess);

    HRESULT (STDMETHODCALLTYPE *RestartDtcService)(
        IDtcNetworkAccessConfig2 *This);

    /*** IDtcNetworkAccessConfig2 methods ***/
    HRESULT (STDMETHODCALLTYPE *GetNetworkInboundAccess)(
        IDtcNetworkAccessConfig2 *This,
        BOOL *pbInbound);

    HRESULT (STDMETHODCALLTYPE *GetNetworkOutboundAccess)(
        IDtcNetworkAccessConfig2 *This,
        BOOL *pbOutbound);

    HRESULT (STDMETHODCALLTYPE *SetNetworkInboundAccess)(
        IDtcNetworkAccessConfig2 *This,
        BOOL bInbound);

    HRESULT (STDMETHODCALLTYPE *SetNetworkOutboundAccess)(
        IDtcNetworkAccessConfig2 *This,
        BOOL bOutbound);

    HRESULT (STDMETHODCALLTYPE *GetAuthenticationLevel)(
        IDtcNetworkAccessConfig2 *This,
        AUTHENTICATION_LEVEL *pAuthLevel);

    HRESULT (STDMETHODCALLTYPE *SetAuthenticationLevel)(
        IDtcNetworkAccessConfig2 *This,
        AUTHENTICATION_LEVEL AuthLevel);

    END_INTERFACE
} IDtcNetworkAccessConfig2Vtbl;

interface IDtcNetworkAccessConfig2 {
    CONST_VTBL IDtcNetworkAccessConfig2Vtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDtcNetworkAccessConfig2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDtcNetworkAccessConfig2_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDtcNetworkAccessConfig2_Release(This) (This)->lpVtbl->Release(This)
/*** IDtcNetworkAccessConfig methods ***/
#define IDtcNetworkAccessConfig2_GetAnyNetworkAccess(This,pbAnyNetworkAccess) (This)->lpVtbl->GetAnyNetworkAccess(This,pbAnyNetworkAccess)
#define IDtcNetworkAccessConfig2_SetAnyNetworkAccess(This,bAnyNetworkAccess) (This)->lpVtbl->SetAnyNetworkAccess(This,bAnyNetworkAccess)
#define IDtcNetworkAccessConfig2_GetNetworkAdministrationAccess(This,pbNetworkAdministrationAccess) (This)->lpVtbl->GetNetworkAdministrationAccess(This,pbNetworkAdministrationAccess)
#define IDtcNetworkAccessConfig2_SetNetworkAdministrationAccess(This,bNetworkAdministrationAccess) (This)->lpVtbl->SetNetworkAdministrationAccess(This,bNetworkAdministrationAccess)
#define IDtcNetworkAccessConfig2_GetNetworkTransactionAccess(This,pbNetworkTransactionAccess) (This)->lpVtbl->GetNetworkTransactionAccess(This,pbNetworkTransactionAccess)
#define IDtcNetworkAccessConfig2_SetNetworkTransactionAccess(This,bNetworkTransactionAccess) (This)->lpVtbl->SetNetworkTransactionAccess(This,bNetworkTransactionAccess)
#define IDtcNetworkAccessConfig2_GetNetworkClientAccess(This,pbNetworkClientAccess) (This)->lpVtbl->GetNetworkClientAccess(This,pbNetworkClientAccess)
#define IDtcNetworkAccessConfig2_SetNetworkClientAccess(This,bNetworkClientAccess) (This)->lpVtbl->SetNetworkClientAccess(This,bNetworkClientAccess)
#define IDtcNetworkAccessConfig2_GetNetworkTIPAccess(This,pbNetworkTIPAccess) (This)->lpVtbl->GetNetworkTIPAccess(This,pbNetworkTIPAccess)
#define IDtcNetworkAccessConfig2_SetNetworkTIPAccess(This,bNetworkTIPAccess) (This)->lpVtbl->SetNetworkTIPAccess(This,bNetworkTIPAccess)
#define IDtcNetworkAccessConfig2_GetXAAccess(This,pbXAAccess) (This)->lpVtbl->GetXAAccess(This,pbXAAccess)
#define IDtcNetworkAccessConfig2_SetXAAccess(This,bXAAccess) (This)->lpVtbl->SetXAAccess(This,bXAAccess)
#define IDtcNetworkAccessConfig2_RestartDtcService(This) (This)->lpVtbl->RestartDtcService(This)
/*** IDtcNetworkAccessConfig2 methods ***/
#define IDtcNetworkAccessConfig2_GetNetworkInboundAccess(This,pbInbound) (This)->lpVtbl->GetNetworkInboundAccess(This,pbInbound)
#define IDtcNetworkAccessConfig2_GetNetworkOutboundAccess(This,pbOutbound) (This)->lpVtbl->GetNetworkOutboundAccess(This,pbOutbound)
#define IDtcNetworkAccessConfig2_SetNetworkInboundAccess(This,bInbound) (This)->lpVtbl->SetNetworkInboundAccess(This,bInbound)
#define IDtcNetworkAccessConfig2_SetNetworkOutboundAccess(This,bOutbound) (This)->lpVtbl->SetNetworkOutboundAccess(This,bOutbound)
#define IDtcNetworkAccessConfig2_GetAuthenticationLevel(This,pAuthLevel) (This)->lpVtbl->GetAuthenticationLevel(This,pAuthLevel)
#define IDtcNetworkAccessConfig2_SetAuthenticationLevel(This,AuthLevel) (This)->lpVtbl->SetAuthenticationLevel(This,AuthLevel)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IDtcNetworkAccessConfig2_QueryInterface(IDtcNetworkAccessConfig2* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IDtcNetworkAccessConfig2_AddRef(IDtcNetworkAccessConfig2* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IDtcNetworkAccessConfig2_Release(IDtcNetworkAccessConfig2* This) {
    return This->lpVtbl->Release(This);
}
/*** IDtcNetworkAccessConfig methods ***/
static FORCEINLINE HRESULT IDtcNetworkAccessConfig2_GetAnyNetworkAccess(IDtcNetworkAccessConfig2* This,BOOL *pbAnyNetworkAccess) {
    return This->lpVtbl->GetAnyNetworkAccess(This,pbAnyNetworkAccess);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig2_SetAnyNetworkAccess(IDtcNetworkAccessConfig2* This,BOOL bAnyNetworkAccess) {
    return This->lpVtbl->SetAnyNetworkAccess(This,bAnyNetworkAccess);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig2_GetNetworkAdministrationAccess(IDtcNetworkAccessConfig2* This,BOOL *pbNetworkAdministrationAccess) {
    return This->lpVtbl->GetNetworkAdministrationAccess(This,pbNetworkAdministrationAccess);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig2_SetNetworkAdministrationAccess(IDtcNetworkAccessConfig2* This,BOOL bNetworkAdministrationAccess) {
    return This->lpVtbl->SetNetworkAdministrationAccess(This,bNetworkAdministrationAccess);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig2_GetNetworkTransactionAccess(IDtcNetworkAccessConfig2* This,BOOL *pbNetworkTransactionAccess) {
    return This->lpVtbl->GetNetworkTransactionAccess(This,pbNetworkTransactionAccess);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig2_SetNetworkTransactionAccess(IDtcNetworkAccessConfig2* This,BOOL bNetworkTransactionAccess) {
    return This->lpVtbl->SetNetworkTransactionAccess(This,bNetworkTransactionAccess);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig2_GetNetworkClientAccess(IDtcNetworkAccessConfig2* This,BOOL *pbNetworkClientAccess) {
    return This->lpVtbl->GetNetworkClientAccess(This,pbNetworkClientAccess);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig2_SetNetworkClientAccess(IDtcNetworkAccessConfig2* This,BOOL bNetworkClientAccess) {
    return This->lpVtbl->SetNetworkClientAccess(This,bNetworkClientAccess);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig2_GetNetworkTIPAccess(IDtcNetworkAccessConfig2* This,BOOL *pbNetworkTIPAccess) {
    return This->lpVtbl->GetNetworkTIPAccess(This,pbNetworkTIPAccess);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig2_SetNetworkTIPAccess(IDtcNetworkAccessConfig2* This,BOOL bNetworkTIPAccess) {
    return This->lpVtbl->SetNetworkTIPAccess(This,bNetworkTIPAccess);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig2_GetXAAccess(IDtcNetworkAccessConfig2* This,BOOL *pbXAAccess) {
    return This->lpVtbl->GetXAAccess(This,pbXAAccess);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig2_SetXAAccess(IDtcNetworkAccessConfig2* This,BOOL bXAAccess) {
    return This->lpVtbl->SetXAAccess(This,bXAAccess);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig2_RestartDtcService(IDtcNetworkAccessConfig2* This) {
    return This->lpVtbl->RestartDtcService(This);
}
/*** IDtcNetworkAccessConfig2 methods ***/
static FORCEINLINE HRESULT IDtcNetworkAccessConfig2_GetNetworkInboundAccess(IDtcNetworkAccessConfig2* This,BOOL *pbInbound) {
    return This->lpVtbl->GetNetworkInboundAccess(This,pbInbound);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig2_GetNetworkOutboundAccess(IDtcNetworkAccessConfig2* This,BOOL *pbOutbound) {
    return This->lpVtbl->GetNetworkOutboundAccess(This,pbOutbound);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig2_SetNetworkInboundAccess(IDtcNetworkAccessConfig2* This,BOOL bInbound) {
    return This->lpVtbl->SetNetworkInboundAccess(This,bInbound);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig2_SetNetworkOutboundAccess(IDtcNetworkAccessConfig2* This,BOOL bOutbound) {
    return This->lpVtbl->SetNetworkOutboundAccess(This,bOutbound);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig2_GetAuthenticationLevel(IDtcNetworkAccessConfig2* This,AUTHENTICATION_LEVEL *pAuthLevel) {
    return This->lpVtbl->GetAuthenticationLevel(This,pAuthLevel);
}
static FORCEINLINE HRESULT IDtcNetworkAccessConfig2_SetAuthenticationLevel(IDtcNetworkAccessConfig2* This,AUTHENTICATION_LEVEL AuthLevel) {
    return This->lpVtbl->SetAuthenticationLevel(This,AuthLevel);
}
#endif
#endif

#endif


#endif  /* __IDtcNetworkAccessConfig2_INTERFACE_DEFINED__ */

/* Begin additional prototypes for all interfaces */


/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __txcoord_h__ */
