2025-11-28 00:35:46 +09:00

121 lines
2.6 KiB
C++

// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Copyright (c) Microsoft Corporation. All rights reserved.
#ifndef __CRMSUB_H__
#define __CRMSUB_H__
#include "resource.h" // main symbols
/*C+C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C
Class: CCRMSub
Summary: CRM Event Subscriber
C---C---C---C---C---C---C---C---C---C---C---C---C---C---C---C---C---C---C-C*/
class ATL_NO_VTABLE CCRMSub :
public CSysLCESub,
public IComCRMEvents
{
public:
CCRMSub(CComSpy * pSpy)
{
m_pSpy = pSpy;
}
CCRMSub()
{
m_pSpy = NULL;
}
DECLARE_NOT_AGGREGATABLE(CCRMSub)
DECLARE_GET_CONTROLLING_UNKNOWN()
BEGIN_COM_MAP(CCRMSub)
COM_INTERFACE_ENTRY(IComCRMEvents)
COM_INTERFACE_ENTRY_CHAIN(CSysLCESub)
END_COM_MAP()
virtual EventEnum EventType() { return CRM; }
virtual REFCLSID EventCLSID() { return CLSID_ComServiceEvents; }
virtual REFIID EventIID() { return IID_IComCRMEvents; }
///// IComCRMEvents
STDMETHOD(OnCRMRecoveryStart)(
COMSVCSEVENTINFO * pInfo,
GUID guidApp);
STDMETHOD(OnCRMRecoveryDone)(
COMSVCSEVENTINFO * pInfo,
GUID guidApp);
STDMETHOD(OnCRMCheckpoint)(
COMSVCSEVENTINFO * pInfo,
GUID guidApp);
STDMETHOD(OnCRMBegin)(
COMSVCSEVENTINFO * pInfo,
GUID guidClerkCLSID,
GUID guidActivity,
GUID guidTx,
WCHAR szProgIdCompensator[64], // NOTE: hardcoded
WCHAR szDescription[64]); // NOTE: hardcoded
STDMETHOD(OnCRMPrepare)(
COMSVCSEVENTINFO * pInfo,
GUID guidClerkCLSID);
STDMETHOD(OnCRMCommit)(
COMSVCSEVENTINFO * pInfo,
GUID guidClerkCLSID);
STDMETHOD(OnCRMAbort)(
COMSVCSEVENTINFO * pInfo,
GUID guidClerkCLSID);
STDMETHOD(OnCRMIndoubt)(
COMSVCSEVENTINFO * pInfo,
GUID guidClerkCLSID);
STDMETHOD(OnCRMDone)(
COMSVCSEVENTINFO * pInfo,
GUID guidClerkCLSID);
STDMETHOD(OnCRMRelease)(
COMSVCSEVENTINFO * pInfo,
GUID guidClerkCLSID);
STDMETHOD(OnCRMAnalyze)(
COMSVCSEVENTINFO * pInfo,
GUID guidClerkCLSID,
DWORD dwCrmRecordType,
DWORD dwRecordSize);
STDMETHOD(OnCRMWrite)(
COMSVCSEVENTINFO * pInfo,
GUID guidClerkCLSID,
BOOL bVariants,
DWORD dwRecordSize);
STDMETHOD(OnCRMForget)(
COMSVCSEVENTINFO * pInfo,
GUID guidClerkCLSID);
STDMETHOD(OnCRMForce)(
COMSVCSEVENTINFO * pInfo,
GUID guidClerkCLSID);
STDMETHOD(OnCRMDeliver)(
COMSVCSEVENTINFO * pInfo,
GUID guidClerkCLSID,
BOOL bVariants,
DWORD dwRecordSize);
};
#endif //__CRMSUB_H__