/* ---------------------------------------------------------------------------- Microsoft Distributed Transaction Coordinator (Microsoft Confidential) Copyright 1995 - 1995 Microsoft Corporation. All Rights Reserved. @doc @module TXDTC.H | Header for , , , , . ------------------------------------------------------------------------------- @rev 7 | 09/30/96 | gaganc | Added interfaces IXAResourceManagerFactoryCreate, IXAResourceManager, and IXATransaction @rev 6 | 08/13/96 | gaganc | Added IRMInfo, and IXAObtainRMInfo interfaces @rev 5 | 04/20/96 | gaganc | Added IXaConfig @rev 4 | 09/14/95 | gaganc | Added IID_IXATransLookUp @rev 3 | 08/25/95 | gaganc | Added IResourceManagerSink interface @rev 2 | 05/16/95 | gaganc | Added guids for the RM to Proxy int. guids @rev 1 | 05/05/95 | mohsena | Created: For M0.2 from msdtcprx.h @rev 0 | 03/28/95 | gaganc | Created msdtcprx.h ----------------------------------------------------------------------------- */ #ifndef __TXDTC_H__ # define __TXDTC_H__ // =============================== // INCLUDES: // =============================== #ifdef WIN32 // OLE inclusions: # include #else # include # include #endif WIN32 #include "transact.h" // Definition of ITransaction, ...etc #include "txcoord.h" // Definition of ITransactionResource,...etc #include "xa.h" //--------------------------------------------------------- // Macros //--------------------------------------------------------- #define XACTTOMSG(dwXact) (dwXact-0x00040000+0x40000000) //--------------------------------------------------------- // Error Messages //--------------------------------------------------------- #define XACT_E_CONNECTION_REQUEST_DENIED 0x8004D100L #define XACT_E_TOOMANY_ENLISTMENTS 0x8004D101L #define XACT_E_DUPLICATE_GUID 0x8004D102L #define XACT_E_NOTSINGLEPHASE 0x8004D103L #define XACT_E_RECOVERYALREADYDONE 0x8004D104L #define XACT_E_PROTOCOL 0x8004D105L #define XACT_E_RM_FAILURE 0x8004D106L #define XACT_E_RECOVERY_FAILED 0x8004D107L //--------------------------------------------------------- // Status Messages //--------------------------------------------------------- #define XACT_S_NONOTIFY 0x0004D100L #define XACT_OK_NONOTIFY 0x0004D101L //--------------------------------------------------------- // Consts //--------------------------------------------------------- const DWORD dwUSER_MS_SQLSERVER = 0x0000FFFF; //--------------------------------------------------------- // GUIDs //--------------------------------------------------------- //IID_IResourceManagerFactory 13741d20-87eb-11ce-8081-0080c758527e DEFINE_GUID(IID_IResourceManagerFactory, 0x13741d20, 0x87eb, 0x11ce, 0x80, 0x81, 0x00, 0x80, 0xc7, 0x58, 0x52, 0x7e); //IID_IResourceManager 13741d21-87eb-11ce-8081-0080c758527e DEFINE_GUID(IID_IResourceManager, 0x13741d21, 0x87eb, 0x11ce, 0x80, 0x81, 0x00, 0x80, 0xc7, 0x58, 0x52, 0x7e); //IID_IPrepareInfo 80c7bfd0-87ee-11ce-8081-0080c758527e DEFINE_GUID(IID_IPrepareInfo, 0x80c7bfd0, 0x87ee, 0x11ce, 0x80, 0x81, 0x00, 0x80, 0xc7, 0x58, 0x52, 0x7e); //IID_IGetDispenser c23cc370-87ef-11ce-8081-0080c758527e DEFINE_GUID(IID_IGetDispenser, 0xc23cc370, 0x87ef, 0x11ce, 0x80, 0x81, 0x00, 0x80, 0xc7, 0x58, 0x52, 0x7e); //IID_IResourceManagerSink {0D563181-DEFB-11ce-AED1-00AA0051E2C4} DEFINE_GUID(IID_IResourceManagerSink, 0xd563181, 0xdefb, 0x11ce, 0xae, 0xd1, 0x0, 0xaa, 0x0, 0x51, 0xe2, 0xc4); //IID_IXATransLookup {F3B1F131-EEDA-11ce-AED4-00AA0051E2C4} DEFINE_GUID(IID_IXATransLookup, 0xf3b1f131, 0xeeda, 0x11ce, 0xae, 0xd4, 0x0, 0xaa, 0x0, 0x51, 0xe2, 0xc4); // IID_IXAConfig {C8A6E3A1-9A8C-11cf-A308-00A0C905416E} DEFINE_GUID(IID_IXAConfig, 0xc8a6e3a1, 0x9a8c, 0x11cf, 0xa3, 0x8, 0x0, 0xa0, 0xc9, 0x5, 0x41, 0x6e); //IID_IRMInfo {E793F6D1-F53D-11cf-A60D-00A0C905416E} DEFINE_GUID(IID_IRMInfo, 0xe793f6d1, 0xf53d, 0x11cf, 0xa6, 0xd, 0x0, 0xa0, 0xc9, 0x5, 0x41, 0x6e); //IID_IXAObtainRMInfo {E793F6D2-F53D-11cf-A60D-00A0C905416E} DEFINE_GUID(IID_IXAObtainRMInfo, 0xe793f6d2, 0xf53d, 0x11cf, 0xa6, 0xd, 0x0, 0xa0, 0xc9, 0x5, 0x41, 0x6e); // IID_ITransactionVoterFactory {319FAC10-A391-11cf-A535-00AA006887C3} DEFINE_GUID(IID_ITransactionVoterFactory, 0x319fac10, 0xa391, 0x11cf, 0xa5, 0x35, 0x0, 0xaa, 0x0, 0x68, 0x87, 0xc3); // IID_ITransactionVoterNotifyAsync {319FAC11-A391-11cf-A535-00AA006887C3} DEFINE_GUID(IID_ITransactionVoterNotifyAsync, 0x319fac11, 0xa391, 0x11cf, 0xa5, 0x35, 0x0, 0xaa, 0x0, 0x68, 0x87, 0xc3); // IID_ITransactionVoterBallotAsync {319FAC12-A391-11cf-A535-00AA006887C3} DEFINE_GUID(IID_ITransactionVoterBallotAsync, 0x319fac12, 0xa391, 0x11cf, 0xa5, 0x35, 0x0, 0xaa, 0x0, 0x68, 0x87, 0xc3); // IID_ITransactionTransmitterFactory {59313E00-B36C-11cf-A539-00AA006887C3} DEFINE_GUID(IID_ITransactionTransmitterFactory, 0x59313e00, 0xb36c, 0x11cf, 0xa5, 0x39, 0x0, 0xaa, 0x0, 0x68, 0x87, 0xc3); // IID_ITransactionTransmitter {59313E01-B36C-11cf-A539-00AA006887C3} DEFINE_GUID(IID_ITransactionTransmitter, 0x59313e01, 0xb36c, 0x11cf, 0xa5, 0x39, 0x0, 0xaa, 0x0, 0x68, 0x87, 0xc3); // IID_ITransactionReceiverFactory {59313E02-B36C-11cf-A539-00AA006887C3} DEFINE_GUID(IID_ITransactionReceiverFactory, 0x59313e02, 0xb36c, 0x11cf, 0xa5, 0x39, 0x0, 0xaa, 0x0, 0x68, 0x87, 0xc3); // IID_ITransactionReceiver {59313E03-B36C-11cf-A539-00AA006887C3} DEFINE_GUID(IID_ITransactionReceiver, 0x59313e03, 0xb36c, 0x11cf, 0xa5, 0x39, 0x0, 0xaa, 0x0, 0x68, 0x87, 0xc3); //IID_ITransactionDisableCommit {C27D5D20-F79B-11cf-8CB5-00C04FD658E5} DEFINE_GUID(IID_ITransactionDisableCommit, 0xc27d5d20, 0xf79b, 0x11cf, 0x8c, 0xb5, 0x0, 0xc0, 0x4f, 0xd6, 0x58, 0xe5); //IID_ITransactionEnableCommit {C27D5D21-F79B-11cf-8CB5-00C04FD658E5} DEFINE_GUID(IID_ITransactionEnableCommit, 0xc27d5d21, 0xf79b, 0x11cf, 0x8c, 0xb5, 0x0, 0xc0, 0x4f, 0xd6, 0x58, 0xe5); //IID_IXAResourceManagerFactory {4131E750-1AEA-11d0-944B-00A0C905416E} DEFINE_GUID(IID_IXAResourceManagerFactory, 0x4131e750, 0x1aea, 0x11d0, 0x94, 0x4b, 0x0, 0xa0, 0xc9, 0x5, 0x41, 0x6e); //IID_IXAResourceManager {4131E751-1AEA-11d0-944B-00A0C905416E} DEFINE_GUID(IID_IXAResourceManager, 0x4131e751, 0x1aea, 0x11d0, 0x94, 0x4b, 0x0, 0xa0, 0xc9, 0x5, 0x41, 0x6e); //IID_IXATransaction {4131E752-1AEA-11d0-944B-00A0C905416E} DEFINE_GUID(IID_IXATransaction, 0x4131e752, 0x1aea, 0x11d0, 0x94, 0x4b, 0x0, 0xa0, 0xc9, 0x5, 0x41, 0x6e); //--------------------------------------------------------- // typedefs //--------------------------------------------------------- typedef struct _ProxyConfigParams { WORD wcThreadsMax; } PROXY_CONFIG_PARAMS; // @interface IXATransLookup | See class . // ----------------------------------------------------------------------- // @class IXATransLookup | XA Lookup support interface. // Description: // Usage: // Notes: // UNDONE: // . // ----------------------------------------------------------------------- // @rev 0 | 03/05/96 |gaganc | created // ----------------------------------------------------------------------- #undef INTERFACE #define INTERFACE IXATransLookup DECLARE_INTERFACE_ (IXATransLookup, IUnknown) // @base public | IUnknown { // IUnknown interface methods: STDMETHOD (QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppv) PURE; STDMETHOD_ (ULONG, AddRef) (THIS) PURE; STDMETHOD_ (ULONG, Release) (THIS) PURE; STDMETHOD (Lookup) ( /* [out] */ ITransaction ** ppTransaction) PURE; }; // @interface IResourceManagerSink | See class . // ----------------------------------------------------------------------- // @class IResourceManager | SQL Server enlistment support. // Description: // Usage: // ----------------------------------------------------------------------- // @rev 0 | 08/25/95 |gaganc | created // ----------------------------------------------------------------------- #undef INTERFACE #define INTERFACE IResourceManagerSink DECLARE_INTERFACE_ (IResourceManagerSink, IUnknown) // @base public | IUnknown { // IUnknown interface methods: STDMETHOD (QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppv) PURE; STDMETHOD_ (ULONG, AddRef) (THIS) PURE; STDMETHOD_ (ULONG, Release) (THIS) PURE; STDMETHOD (TMDown) (void) PURE; }; // @interface IResourceManager | See class . // ----------------------------------------------------------------------- // @class IResourceManager | SQL Server enlistment support. // ----------------------------------------------------------------------- // @rev 0 | 05/06/95 |gaganc | created // ----------------------------------------------------------------------- #undef INTERFACE #define INTERFACE IResourceManager DECLARE_INTERFACE_ (IResourceManager, IUnknown) // @base public | IUnknown { // IUnknown interface methods: STDMETHOD (QueryInterface) (THIS_ REFIID riid, LPVOID * ppv) PURE; STDMETHOD_ (ULONG, AddRef) (THIS) PURE; STDMETHOD_ (ULONG, Release) (THIS) PURE; STDMETHOD (Enlist) ( /* [in] */ ITransaction *pTransaction, /* [in] */ ITransactionResourceAsync *pRes, /* [out][in] */ GUID *pUOW, /* [out] */ LONG *pisoLevel, /* [out] */ ITransactionEnlistmentAsync ** ppEnlist) PURE; STDMETHOD (Reenlist) ( /* [in] */ unsigned char *pPrepInfo, /* [in] */ ULONG cbPrepInfo, /* [in] */ DWORD lTimeout, /* [in-out] */ XACTSTAT *pXactStat) PURE; // @cmember . STDMETHOD (ReenlistmentComplete) ( void) PURE; //\@cmember . STDMETHOD (GetDistributedTransactionManager) ( /* [in] */ REFIID rid, /* [out] */ void ** ppvObject) PURE; }; // @interface IXAConfig /* ---------------------------------------------------------------------------- @class IXAConfig | XA RM support. ------------------------------------------------------------------------------- @rev 0 | 04/20/96 |gaganc | created ---------------------------------------------------------------------------- */ #undef INTERFACE #define INTERFACE IXAConfig DECLARE_INTERFACE_ (IXAConfig, IUnknown) { // IUnknown interface methods: STDMETHOD (QueryInterface) (THIS_ REFIID riid, LPVOID * ppv) PURE; STDMETHOD_ (ULONG, AddRef) (THIS) PURE; STDMETHOD_ (ULONG, Release) (THIS) PURE; STDMETHOD (Initialize) (GUID clsidHelperDll) PURE; STDMETHOD (Terminate) ( void) PURE; }; // @interface IRMHelper /* ---------------------------------------------------------------------------- @class IRMHelper | XA RM support. ------------------------------------------------------------------------------- @rev 0 | 08/13/96 |gaganc | created ---------------------------------------------------------------------------- */ #undef INTERFACE #define INTERFACE IRMHelper DECLARE_INTERFACE_ (IRMHelper, IUnknown) { // IUnknown interface methods: STDMETHOD (QueryInterface) (THIS_ REFIID riid, LPVOID * ppv) PURE; STDMETHOD_ (ULONG, AddRef) (THIS) PURE; STDMETHOD_ (ULONG, Release) (THIS) PURE; STDMETHOD (RMCount) (DWORD dwcTotalNumberOfRMs) PURE; STDMETHOD (RMInfo) ( xa_switch_t * pXa_Switch, BOOL fCDeclCallingConv, char * pszOpenString, char * pszCloseString, GUID guidRMRecovery ) PURE; }; // @interface IXAObtainRMInfo /* ---------------------------------------------------------------------------- @class IXAObtainRMInfo | XA RM support. ------------------------------------------------------------------------------- @rev 0 | 08/13/96 |gaganc | created ---------------------------------------------------------------------------- */ #undef INTERFACE #define INTERFACE IXAObtainRMInfo DECLARE_INTERFACE_ (IXAObtainRMInfo, IUnknown) { // IUnknown interface methods: STDMETHOD (QueryInterface) (THIS_ REFIID riid, LPVOID * ppv) PURE; STDMETHOD_ (ULONG, AddRef) (THIS) PURE; STDMETHOD_ (ULONG, Release) (THIS) PURE; STDMETHOD (ObtainRMInfo) (IRMHelper * pIRMHelper) PURE; }; // @interface IXAResourceManager /* ---------------------------------------------------------------------------- @class IXAResourceManager | XA RM support. ------------------------------------------------------------------------------- @rev 0 | 09/30/96 |gaganc | created ---------------------------------------------------------------------------- */ #undef INTERFACE #define INTERFACE IXAResourceManager DECLARE_INTERFACE_ (IXAResourceManager, IUnknown) { // IUnknown interface methods: STDMETHOD (QueryInterface) (THIS_ REFIID riid, LPVOID * ppv) PURE; STDMETHOD_ (ULONG, AddRef) (THIS) PURE; STDMETHOD_ (ULONG, Release) (THIS) PURE; }; //end interface IXAResourceManager // @interface IXAResourceManagerFactory /* ---------------------------------------------------------------------------- @class IXAResourceManagerFactory | XA RM support. ------------------------------------------------------------------------------- @rev 0 | 09/30/96 |gaganc | created ---------------------------------------------------------------------------- */ #undef INTERFACE #define INTERFACE IXAResourceManagerFactory DECLARE_INTERFACE_ (IXAResourceManagerFactory, IUnknown) { // IUnknown interface methods: STDMETHOD (QueryInterface) (THIS_ REFIID riid, LPVOID * ppv) PURE; STDMETHOD_ (ULONG, AddRef) (THIS) PURE; STDMETHOD_ (ULONG, Release) (THIS) PURE; STDMETHOD (Create) ( /*[in] */ char * pszDSN, /*[in] */ CLSID pclsidRMHelper, /*[out] */ IXAResourceManager ** ppIXaResMgr ) PURE; }; //end interface IXAResourceManagerFactory // @interface IXATransaction /* ---------------------------------------------------------------------------- @class IXATransaction | XA RM support. ------------------------------------------------------------------------------- @rev 0 | 09/30/96 |gaganc | created ---------------------------------------------------------------------------- */ #undef INTERFACE #define INTERFACE IXATransaction DECLARE_INTERFACE_ (IXATransaction, ITransaction) { // IUnknown interface methods: STDMETHOD (QueryInterface) (THIS_ REFIID riid, LPVOID * ppv) PURE; STDMETHOD_ (ULONG, AddRef) (THIS) PURE; STDMETHOD_ (ULONG, Release) (THIS) PURE; //methods from ITransaction STDMETHOD (Commit) ( /*[in]*/ BOOL fRetaining, /*[in]*/ DWORD grfTC, /*[in]*/ DWORD grfRM ) PURE; STDMETHOD (Abort) ( /*[in]*/ BOID* pboidReason, /*[in]*/ BOOL fRetaining, /*[in]*/ BOOL fAsync )PURE; STDMETHOD (GetTransactionInfo) ( /* [out] */ XACTTRANSINFO* pinfo ) PURE; //additional methods STDMETHOD (Join) ( /*[in]*/ IXAResourceManager * pIXAResourceManager ) PURE; STDMETHOD (UnJoin) ( void ) PURE; }; //end interface IXATransaction // @interface IResourceManagerFactory | See class . // ----------------------------------------------------------------------- // @class IResourceManagerFactory | Creates instances. // Description: // Usage: // Notes: // UNDONE: // . // ----------------------------------------------------------------------- // @rev 0 | 05/06/95 |mohsena | created // ----------------------------------------------------------------------- DECLARE_INTERFACE_ (IResourceManagerFactory, IUnknown) // @base public | IUnknown { // IUnknown interface methods: STDMETHOD (QueryInterface) (THIS_ REFIID riid, LPVOID * ppv) PURE; STDMETHOD_ (ULONG, AddRef) (THIS) PURE; STDMETHOD_ (ULONG, Release) (THIS) PURE; // IResourceManagerFactory interface methods STDMETHOD (Create) ( THIS_ GUID __RPC_FAR *pguidRM, TCHAR __RPC_FAR *pszRMName, IResourceManagerSink * pIResMgrSink, IResourceManager __RPC_FAR *__RPC_FAR *ppResMgr ) PURE; }; // @interface IPrepareInfo | See class . // ----------------------------------------------------------------------- // @class IPrepareInfo | Defines . // Description: // Usage: // Notes: // UNDONE: // . // ----------------------------------------------------------------------- // @rev 0 | 03/28/95 |gaganc | created // ----------------------------------------------------------------------- DECLARE_INTERFACE_ (IPrepareInfo, IUnknown) // @base public | IUnknown { // IUnknown interface methods: STDMETHOD (QueryInterface) (THIS_ REFIID riid, LPVOID * ppv) PURE; STDMETHOD_ (ULONG, AddRef) (THIS) PURE; STDMETHOD_ (ULONG, Release) (THIS) PURE; // IPrepareInfo methods STDMETHOD (GetPrepareInfoSize) (THIS_ /*[out]*/ ULONG __RPC_FAR *pcbPrepInfo) PURE; STDMETHOD (GetPrepareInfo) (THIS_ /*[in/out]*/ unsigned char __RPC_FAR *pPrepInfo) PURE; }; // @interface IGetDispenser | See class . // ----------------------------------------------------------------------- // @class IGetDispenser | Defines . // Description: // Usage: // Notes: // UNDONE: // . // ----------------------------------------------------------------------- // @rev 0 | 03/28/95 |gaganc | created // ----------------------------------------------------------------------- DECLARE_INTERFACE_ (IGetDispenser, IUnknown) // @base public | IUnknown { // IUnknown interface methods: STDMETHOD (QueryInterface) (THIS_ REFIID riid, LPVOID * ppv) PURE; STDMETHOD_ (ULONG, AddRef) (THIS) PURE; STDMETHOD_ (ULONG, Release) (THIS) PURE; // IGetDispenser methods STDMETHOD (GetDispenser) (THIS_ /*[in]*/ REFIID rid, /*[in/out]*/ void** ppvObject) PURE; }; // @interface ITransactionVoterNotifyAsync | . // ----------------------------------------------------------------------- // @class ITransactionVoterNotifyAsync | Defines . // Description: This interface is implemented by a voters object. // Usage: Register an object supporting this interface with the DTC proxy // using the ITransactionVoterFactory::Create // Notes: // UNDONE: // . // ----------------------------------------------------------------------- // @rev 0 | 05/01/95 | shaiwals | created // ----------------------------------------------------------------------- DECLARE_INTERFACE_ (ITransactionVoterNotifyAsync, ITransactionOutcomeEvents) // @base public | ITransactionOutcomeEvents { // IUnknown interface methods: STDMETHOD (QueryInterface) (THIS_ REFIID riid, LPVOID * ppv) PURE; STDMETHOD_ (ULONG, AddRef) (THIS) PURE; STDMETHOD_ (ULONG, Release) (THIS) PURE; // ITransactionOutcomeEvents methods STDMETHOD (Committed) (THIS_ /*[in]*/ BOOL fRetaining, /*[in]*/ XACTUOW __RPC_FAR *pNewUOW, /*[in]*/ HRESULT hr) PURE; STDMETHOD (Aborted) (THIS_ /*[in]*/ BOID __RPC_FAR *pboidReason, /*[in]*/ BOOL fRetaining, /*[in]*/ XACTUOW __RPC_FAR *pNewUOW, /*[in]*/ HRESULT hr) PURE; STDMETHOD (HeuristicDecision) (THIS_ /*[in]*/ DWORD dwDecision, /*[in]*/ BOID __RPC_FAR *pboidReason, /*[in]*/ HRESULT hr) PURE; STDMETHOD (Indoubt) (THIS) PURE; // ITransactionVoterNotifyAsync methods STDMETHOD (VoteRequest) (THIS) PURE; }; // @interface ITransactionVoterBallotAsync | See class . // ----------------------------------------------------------------------- // @class ITransactionVoterBallotAsync | Defines . // Description: // Usage: // Notes: // UNDONE: // . // ----------------------------------------------------------------------- // @rev 0 | 05/01/95 | shaiwals | created // ----------------------------------------------------------------------- DECLARE_INTERFACE_ (ITransactionVoterBallotAsync, IUnknown) // @base public | IUnknown { // IUnknown interface methods: STDMETHOD (QueryInterface) (THIS_ REFIID riid, LPVOID * ppv) PURE; STDMETHOD_ (ULONG, AddRef) (THIS) PURE; STDMETHOD_ (ULONG, Release) (THIS) PURE; // ITransactionVoterBallotAsync methods STDMETHOD (VoteRequestDone) (THIS_ /*[in]*/ HRESULT hr, /*[in]*/ BOID * pboidReason ) PURE; }; // @interface ITransactionVoterFactory | See class . // ----------------------------------------------------------------------- // @class ITransactionVoterFactory | Defines . // Description: // Usage: // Notes: // UNDONE: // . // ----------------------------------------------------------------------- // @rev 0 | 05/01/95 | shaiwals | created // ----------------------------------------------------------------------- DECLARE_INTERFACE_ (ITransactionVoterFactory, IUnknown) // @base public | IUnknown { // IUnknown interface methods: STDMETHOD (QueryInterface) (THIS_ REFIID riid, LPVOID * ppv) PURE; STDMETHOD_ (ULONG, AddRef) (THIS) PURE; STDMETHOD_ (ULONG, Release) (THIS) PURE; // ITransactionVoterFactory methods STDMETHOD (Create) (THIS_ /*[in]*/ ITransaction * pTransaction, /*[in]*/ ITransactionVoterNotifyAsync * pVoterNotify, /*[in/out]*/ ITransactionVoterBallotAsync ** ppVoterBallot ) PURE; }; // @interface ITransactionTransmitter | See class . // ----------------------------------------------------------------------- // @class ITransactionTransmitter | Defines . // Description: // Usage: // Notes: // UNDONE: // . // ----------------------------------------------------------------------- // @rev 0 | 05/01/95 | shaiwals | created // ----------------------------------------------------------------------- DECLARE_INTERFACE_ (ITransactionTransmitter, IUnknown) // @base public | IUnknown { // IUnknown interface methods: STDMETHOD (QueryInterface) (THIS_ REFIID riid, LPVOID * ppv) PURE; STDMETHOD_ (ULONG, AddRef) (THIS) PURE; STDMETHOD_ (ULONG, Release) (THIS) PURE; // ITransactionTransmitter methods STDMETHOD (Set) (THIS_ /*[in]*/ ITransaction * pTransaction ) PURE; STDMETHOD (GetPropagationTokenSize)(THIS_ /*[in/out]*/ ULONG *pcbToken ) PURE; STDMETHOD (MarshalPropagationToken)(THIS_ /*[in]*/ ULONG pcbToken, /*[in/out]*/ BYTE *rgbToken, /*[in/out]*/ ULONG *pcbUsed ) PURE; STDMETHOD (UnmarshalReturnToken)(THIS_ /*[in]*/ ULONG pcbReturnToken, /*[in]*/ BYTE *rgbReturnToken ) PURE; STDMETHOD (Reset) (THIS) PURE; }; // @interface ITransactionTransmitterFactory | See class . // ----------------------------------------------------------------------- // @class ITransactionTransmitterFactory | Defines . // Description: // Usage: // Notes: // UNDONE: // . // ----------------------------------------------------------------------- // @rev 0 | 05/01/95 | shaiwals | created // ----------------------------------------------------------------------- DECLARE_INTERFACE_ (ITransactionTransmitterFactory, IUnknown) // @base public | IUnknown { // IUnknown interface methods: STDMETHOD (QueryInterface) (THIS_ REFIID riid, LPVOID * ppv) PURE; STDMETHOD_ (ULONG, AddRef) (THIS) PURE; STDMETHOD_ (ULONG, Release) (THIS) PURE; // ITransactionTransmitterFactory methods STDMETHOD (Create) ( THIS_ /*[in/out]*/ ITransactionTransmitter ** ppTransmitter ) PURE; }; // @interface ITransactionReceiver | See class . // ----------------------------------------------------------------------- // @class ITransactionReceiver | Defines . // Description: // Usage: // Notes: // UNDONE: // . // ----------------------------------------------------------------------- // @rev 0 | 05/01/95 | shaiwals | created // ----------------------------------------------------------------------- DECLARE_INTERFACE_ (ITransactionReceiver, IUnknown) // @base public | IUnknown { // IUnknown interface methods: STDMETHOD (QueryInterface) (THIS_ REFIID riid, LPVOID * ppv) PURE; STDMETHOD_ (ULONG, AddRef) (THIS) PURE; STDMETHOD_ (ULONG, Release) (THIS) PURE; // ITransactionReceiver methods STDMETHOD (UnmarshalPropagationToken)(THIS_ /*[in]*/ ULONG pcbToken, /*[in]*/ BYTE *rgbToken, /*[in/out]*/ ITransaction ** ppTransaction ) PURE; STDMETHOD (GetReturnTokenSize)(THIS_ /*[in/out]*/ ULONG *pcbReturnToken ) PURE; STDMETHOD (MarshalReturnToken)(THIS_ /*[in]*/ ULONG pcbReturnToken, /*[in\out]*/ BYTE *rgbReturnToken, /*[in\out]*/ ULONG *pcbUsed ) PURE; STDMETHOD (Reset) (THIS) PURE; }; // @interface ITransactionReceiverFactory | See class . // ----------------------------------------------------------------------- // @class ITransactionReceiverFactory | Defines . // Description: // Usage: // Notes: // UNDONE: // . // ----------------------------------------------------------------------- // @rev 0 | 05/01/95 | shaiwals | created // ----------------------------------------------------------------------- DECLARE_INTERFACE_ (ITransactionReceiverFactory, IUnknown) // @base public | IUnknown { // IUnknown interface methods: STDMETHOD (QueryInterface) (THIS_ REFIID riid, LPVOID * ppv) PURE; STDMETHOD_ (ULONG, AddRef) (THIS) PURE; STDMETHOD_ (ULONG, Release) (THIS) PURE; // ITransactionReceiverFactory methods STDMETHOD (Create) (THIS_ /*[in/out]*/ ITransactionReceiver ** ppReceiver ) PURE; }; #endif