⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adoconnectionevents.h

📁 Visual C++ 实践与提高--数据库篇的源代码。很好的东西。欢迎下载。
💻 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 + -