home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1999 September
/
CHIPCD_9_99.iso
/
software
/
uaktualnienia
/
OptionPackPL
/
msmqocm.cab
/
txdtc.h
< prev
next >
Wrap
C/C++ Source or Header
|
1998-04-07
|
27KB
|
834 lines
/* ----------------------------------------------------------------------------
Microsoft Distributed Transaction Coordinator (Microsoft Confidential)
Copyright 1995 - 1995 Microsoft Corporation. All Rights Reserved.
@doc
@module TXDTC.H | <nl>Header for
<i IResourceManagerFactory>,
<i IResourceManager>,
<i IXATransLookup>,
<i IPrepareInfo>,
<i IGetDispenser>.<nl><nl>
-------------------------------------------------------------------------------
@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 <objbase.h>
#else
# include <windows.h>
# include <ole2.h>
#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 <c IXATransLookup>.
// -----------------------------------------------------------------------
// @class IXATransLookup | XA Lookup support interface.<nl>
// Description:<nl>
// Usage:<nl>
// Notes:<nl>
// 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 <c IResourceManager>.
// -----------------------------------------------------------------------
// @class IResourceManager | SQL Server enlistment support.<nl>
// Description:<nl>
// Usage:<nl>
// -----------------------------------------------------------------------
// @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 <c IResourceManager>.
// -----------------------------------------------------------------------
// @class IResourceManager | SQL Server enlistment support.<nl>
// -----------------------------------------------------------------------
// @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.<nl>
-------------------------------------------------------------------------------
@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.<nl>
-------------------------------------------------------------------------------
@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.<nl>
-------------------------------------------------------------------------------
@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.<nl>
-------------------------------------------------------------------------------
@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.<nl>
-------------------------------------------------------------------------------
@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.<nl>
-------------------------------------------------------------------------------
@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 <c IResourceManagerFactory>.
// -----------------------------------------------------------------------
// @class IResourceManagerFactory | Creates <c IResourceManager> instances.<nl>
// Description:<nl>
// Usage:<nl>
// Notes:<nl>
// 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 <c IPrepareInfo>.
// -----------------------------------------------------------------------
// @class IPrepareInfo | Defines <i IPrepareInfo>.<nl>
// Description:<nl>
// Usage:<nl>
// Notes:<nl>
// 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 <c IGetDispenser>.
// -----------------------------------------------------------------------
// @class IGetDispenser | Defines <i IGetDispenser>.<nl>
// Description:<nl>
// Usage:<nl>
// Notes:<nl>
// 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 | <nl>.
// -----------------------------------------------------------------------
// @class ITransactionVoterNotifyAsync | Defines <i ITransactionVoterNotifyAsync>.<nl>
// Description: This interface is implemented by a voters object.<nl>
// Usage: Register an object supporting this interface with the DTC proxy
// using the ITransactionVoterFactory::Create <nl>
// Notes:<nl>
// 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 <c CImpTxVoterBallotAsync>.
// -----------------------------------------------------------------------
// @class ITransactionVoterBallotAsync | Defines <i ITransactionVoterBallotAsync>.<nl>
// Description:<nl>
// Usage:<nl>
// Notes:<nl>
// 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 <c CImpTxVoterFactory>.
// -----------------------------------------------------------------------
// @class ITransactionVoterFactory | Defines <i ITransactionVoterFactory>.<nl>
// Description:<nl>
// Usage:<nl>
// Notes:<nl>
// 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 <c CImpTxTransmitter>.
// -----------------------------------------------------------------------
// @class ITransactionTransmitter | Defines <i ITransactionTransmitter>.<nl>
// Description:<nl>
// Usage:<nl>
// Notes:<nl>
// 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 <c CImpTxTransmitterFactory>.
// -----------------------------------------------------------------------
// @class ITransactionTransmitterFactory | Defines <i ITransactionTransmitterFactory>.<nl>
// Description:<nl>
// Usage:<nl>
// Notes:<nl>
// 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 <c CImpTxReceiver>.
// -----------------------------------------------------------------------
// @class ITransactionReceiver | Defines <i ITransactionReceiver>.<nl>
// Description:<nl>
// Usage:<nl>
// Notes:<nl>
// 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 <c CImpTxReceiverFactory>.
// -----------------------------------------------------------------------
// @class ITransactionReceiverFactory | Defines <i ITransactionReceiverFactory>.<nl>
// Description:<nl>
// Usage:<nl>
// Notes:<nl>
// 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