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

77 lines
2.4 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.
#include "stdafx.h"
#include "ComSpyCtl.h"
#include "ComSpyAudit.h"
#include <comsvcs.h>
#include "CComSpy.h"
#include "SysLCESub.h"
#include "TxSub.h"
/////////////////////////////////////////////////////////////////////////////
// CTxSub
STDMETHODIMP CTxSub::OnTransactionStart(COMSVCSEVENTINFO * pInfo, REFGUID guidTx, REFGUID tsid, BOOL bRoot)
{
m_pSpy->AddEventToList(pInfo->perfCount, L"OnTransactionStart", GuidToBstr(pInfo->guidApp));
CComBSTR bstrGuidTx = GuidToBstr(guidTx);
m_pSpy->AddParamValueToList(L"GuidTx", bstrGuidTx);
CComBSTR bstrTsid = GuidToBstr(tsid);
m_pSpy->AddParamValueToList(L"tsid", bstrTsid);
m_pSpy->AddParamValueToList(L"Is a Root Tx?", bRoot ? L"Yes" : L"No");
IF_AUDIT_DO(OnTransactionStart)(pInfo->perfCount,GuidToBstr(pInfo->guidApp),
bstrGuidTx,
bstrTsid,
bRoot);
return S_OK;
}
STDMETHODIMP CTxSub::OnTransactionPrepare(COMSVCSEVENTINFO * pInfo, REFGUID guidTx, BOOL bVoteYes)
{
m_pSpy->AddEventToList(pInfo->perfCount, L"OnTransactionPrepare", GuidToBstr(pInfo->guidApp));
CComBSTR bstrGuidTx = GuidToBstr(guidTx);
m_pSpy->AddParamValueToList(L"*guidTx", bstrGuidTx);
m_pSpy->AddParamValueToList(L"Vote", bVoteYes == TRUE ? L"Yes" : L"No");
IF_AUDIT_DO(OnTransactionPrepared)(pInfo->perfCount,GuidToBstr(pInfo->guidApp),
bstrGuidTx,
bVoteYes);
return S_OK;
}
STDMETHODIMP CTxSub::OnTransactionAbort(COMSVCSEVENTINFO * pInfo, REFGUID guidTx)
{
m_pSpy->AddEventToList(pInfo->perfCount, L"OnTransactionAbort", GuidToBstr(pInfo->guidApp));
CComBSTR bstrGuidTx = GuidToBstr(guidTx);
m_pSpy->AddParamValueToList(L"*guidTx", bstrGuidTx);
IF_AUDIT_DO(OnTransactionAborted)(pInfo->perfCount, GuidToBstr(pInfo->guidApp),bstrGuidTx);
return S_OK;
}
STDMETHODIMP CTxSub::OnTransactionCommit(COMSVCSEVENTINFO * pInfo, REFGUID guidTx)
{
m_pSpy->AddEventToList(pInfo->perfCount, L"OnTransactionCommit", GuidToBstr(pInfo->guidApp));
CComBSTR bstrGuidTx = GuidToBstr(guidTx);
m_pSpy->AddParamValueToList(L"*guidTx", bstrGuidTx);
IF_AUDIT_DO(OnTransactionCommit)(pInfo->perfCount, GuidToBstr(pInfo->guidApp),bstrGuidTx);
return S_OK;
}