/* ---------------------------------------------------------------------------- Microsoft D.T.C (Distributed Transaction Coordinator) (c) 1996 Microsoft Corporation. All Rights Reserved @doc @module RMFacade.h | Contains helper API and interfaces for RMFacade which faciliates OLE TX to XA protocol mapping ------------------------------------------------------------------------------- @rev 0 | 23rd-Nov-1996 | GaganC | Created with API ----------------------------------------------------------------------------- */ #ifndef __RMFACADE_H__ #define __RMFACADE_H__ //--------------------------------------------------------- // ALL INCLUDE FILES GO HERE //--------------------------------------------------------- #include #include "transact.h" #include "txcoord.h" #include "xa.h" //--------------------------------------------------------- // Typedefs //--------------------------------------------------------- typedef enum _XactStatus { XACT_STATUS_NONE = 0, //should never be encountered XACT_STATUS_ABORTED, XACT_STATUS_COMMITTED, XACT_STATUS_NOT_MY_TRANSACTION, XACT_STATUS_TIMEOUT } XACT_STATUS; //--------------------------------------------------------- // Function Prototypes //--------------------------------------------------------- extern "C" { HRESULT __stdcall GetDtcTxToXaMapperHelper ( /* [in] */ REFIID riid, /* [out] */ void ** ppv ); HRESULT __stdcall GetXARMClient ( /* [in] */ REFIID riid, /* [out] */ void ** ppv ); } //end all 'C' language API //--------------------------------------------------------- // ALL Errors Go Here //--------------------------------------------------------- #define E_FAILED_TO_LOAD_DLL 0x8004D201L //--------------------------------------------------------- // All Interface IIDs go here //--------------------------------------------------------- //IID_IResourceManagerFacade {EE5FF7B1-4572-11d0-9452-00A0C905416E} DEFINE_GUID(IID_IResourceManagerFacade, 0xee5ff7b1, 0x4572, 0x11d0, 0x94, 0x52, 0x0, 0xa0, 0xc9, 0x5, 0x41, 0x6e); //IID_IResourceManagerClient {EE5FF7B2-4572-11d0-9452-00A0C905416E} DEFINE_GUID(IID_IResourceManagerClient, 0xee5ff7b2, 0x4572, 0x11d0, 0x94, 0x52, 0x0, 0xa0, 0xc9, 0x5, 0x41, 0x6e); //--------------------------------------------------------- // All Interfaces go here //--------------------------------------------------------- /* ---------------------------------------------------------------------------- @interface Implemented by DTC Proxy for use by the client libraries of the XA RMs so they can get the OLE TX to XA Mapping ---------------------------------------------------------------------------- */ #undef INTERFACE #define INTERFACE IResourceManagerFacade DECLARE_INTERFACE_ (IResourceManagerFacade, IUnknown) { // IUnknown interface methods: STDMETHOD (QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppv) PURE; STDMETHOD_ (ULONG, AddRef) (THIS) PURE; STDMETHOD_ (ULONG, Release) (THIS) PURE; //methods for this interface STDMETHOD (CreateNewResourceManager) ( /*[in]*/ char * pszDSN, /*[in]*/ char * pszClientDllName, /* [in-out] */ DWORD * pdwRMCookie ) PURE; STDMETHOD (EnlistOnTransaction) ( /* [in] */ DWORD dwRMCookie, /* [in] */ ITransaction * pITransaction, /* [in-out] */ XID * pxid, /* [in] */ ITransactionResource * pITransRes ) PURE; STDMETHOD (FindTransactionOutcome) ( /* [in] */ DWORD dwRMCookie, /* [in] */ XID * pxid, /* [in-out] */ XACT_STATUS * pXactStatus ) PURE; STDMETHOD (RecoveryComplete) ( /* [in] */ DWORD dwRMCookie ) PURE; }; //end interface IResourceManagerFacade /* ---------------------------------------------------------------------------- @interface Implemented by the client libraries of the XA RMs which are providing the OLE TX to XA Mapping. This interface will be used by DTC to drive recovery ---------------------------------------------------------------------------- */ #undef INTERFACE #define INTERFACE IID_IResourceManagerClient DECLARE_INTERFACE_ (IID_IResourceManagerClient, IUnknown) { // IUnknown interface methods: STDMETHOD (QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppv) PURE; STDMETHOD_ (ULONG, AddRef) (THIS) PURE; STDMETHOD_ (ULONG, Release) (THIS) PURE; STDMETHOD (DoRecovery) ( /* [in] */ DWORD dwRMCookie, /* [in] */ char * pszDSN ) PURE; }; //end interface IResourceManagerClient #endif __RMFACADE_H__