📄 adoconnectionevents.h
字号:
// ADOConnectionEvents.h : CADOConnectionEvents
//
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_ADOCONNECTIONEVENTS_H__281392F0_A02D_11D3_A8CD_00C04F595ED0__INCLUDED_)
#define AFX_ADOCONNECTIONEVENTS__281392F0_A02D_11D3_A8CD_00C04F595ED0__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <adoint.h>
/////////////////////////////////////////////////////////////////////////////
// CADOConnectionEvents
class CADOConnectionEvents : public ConnectionEventsVt
{
public :
ULONG m_ulRefCount;
CADOConnectionEvents():m_ulRefCount(0){}
STDMETHOD(QueryInterface)(REFIID iid, LPVOID* ppvObject)
{
if(IsEqualIID(__uuidof(IUnknown), iid) ||
IsEqualIID(__uuidof(ConnectionEventsVt), iid))
{
*ppvObject = this;
AddRef();
return S_OK;
}
else
return E_NOINTERFACE;
}
//引用计数机制
STDMETHOD_(ULONG, AddRef)()
{
return m_ulRefCount++;
}
STDMETHOD_(ULONG, Release)()
{
if (--m_ulRefCount == 0)
{
delete this;
return 0;
}
else
return m_ulRefCount;
}
//Informational — 关于当前操作有附加信息的通知
STDMETHOD(InfoMessage)(
ADOError* pError,
EventStatusEnum* adStatus,
_ADOConnection* pConnection)
{
*adStatus = adStatusUnwantedEvent;
return S_OK;
}
//在 BeginTrans 操作后调用
STDMETHOD(BeginTransComplete)(
LONG TransactionLevel,
ADOError* pError,
EventStatusEnum* adStatus,
_ADOConnection* pConnection)
{
*adStatus = adStatusUnwantedEvent;
return S_OK;
}
//在 CommitTrans 操作后调用
STDMETHOD(CommitTransComplete)(
ADOError* pError,
EventStatusEnum* adStatus,
_ADOConnection* pConnection)
{
*adStatus = adStatusUnwantedEvent;
return S_OK;
}
//在 RollbackTrans 操作后调用
STDMETHOD(RollbackTransComplete)(
ADOError* pError,
EventStatusEnum* adStatus,
_ADOConnection* pConnection)
{
*adStatus = adStatusUnwantedEvent;
return S_OK;
}
//该方法在对该连接执行挂起命令之前调用,
//并允许用户检查和修改挂起的执行参数
STDMETHOD(WillExecute)(
BSTR* Source,
CursorTypeEnum* CursorType,
LockTypeEnum* LockType,
long* Options,
EventStatusEnum* adStatus,
_ADOCommand* pCommand,
_ADORecordset* pRecordset,
_ADOConnection* pConnection)
{
*adStatus = adStatusUnwantedEvent;
return S_OK;
}
//该方法在命令执行完成后调用
STDMETHOD(ExecuteComplete)(
LONG RecordsAffected,
ADOError* pError,
EventStatusEnum* adStatus,
_ADOCommand* pCommand,
_ADORecordset* pRecordset,
_ADOConnection* pConnection)
{
*adStatus = adStatusUnwantedEvent;
return S_OK;
}
//该方法在连接启动前调用。在挂起连接中使用的参数将作
//为输入参数提供,并可在方法返回之前进行修改。该方法
//可以返回取消挂起连接的请求。
STDMETHOD(WillConnect)(
BSTR* ConnectionString,
BSTR* UserID,
BSTR* Password,
long* Options,
EventStatusEnum* adStatus,
_ADOConnection* pConnection)
{
*adStatus = adStatusUnwantedEvent;
return S_OK;
}
//方法在连接开始后调用
STDMETHOD(ConnectComplete)(
ADOError* pError,
EventStatusEnum* adStatus,
_ADOConnection* pConnection)
{
*adStatus = adStatusUnwantedEvent;
return S_OK;
}
//方法在连接结束后调用
STDMETHOD(Disconnect)(
EventStatusEnum* adStatus,
_ADOConnection* pConnection)
{
*adStatus = adStatusUnwantedEvent;
return S_OK;
}
};
/////////////////////////////////////////////////////////////////////////////
#endif // !defined(AFX_ADOCONNECTIONEVENTS__281392F0_A02D_11D3_A8CD_00C04F595ED0__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -