?? axlib.h
字號:
/////////////////////////////////////////////////////////////////////////////
// CAxException class
// Desc:
//
class CAxException //: public CException
{
//Construction
public:
CAxException();
~CAxException();
//Attributes
public:
long m_nErrorNo;
CString m_szErrorDesc;
protected:
ADOErrors *m_pErrors;
ADOError *m_pError;
long m_nErrorCount;
int m_nAxLibError;
SCODE m_scode;
static LPTOP_LEVEL_EXCEPTION_FILTER m_previousFilter;
static unexpected_handler m_prevTerm;
//Implementation
public:
void GetErrorsCollection();
void GetErrorInfo();
void SetError(int nError) { m_nAxLibError = nError; }
void SetAScode(SCODE sc) { m_scode = sc; }
SCODE GetAScode() { return (m_scode); }
static void UnhandledException();
protected:
static LONG WINAPI UnhandledExceptionFilter(PEXCEPTION_POINTERS pExceptionInfo);
static LPTSTR GetExceptionString(DWORD dwCode);
static bool GetLogicalAddress(PVOID addr, PTSTR szModule,
DWORD len, DWORD& section, DWORD& offset);
}; // class CAxException
/////////////////////////////////////////////////////////////////////////////
// CAxConnectionEvents class
// Desc:
//
class CAxConnectionEvents : public ConnectionEventsVt
{
public :
ULONG m_ulRefCount;
CAxConnectionEvents():m_ulRefCount(1){}
STDMETHOD(QueryInterface)(REFIID iid, LPVOID * ppvObject)
{
if (IsEqualIID(__uuidof(IUnknown), iid) ||
IsEqualIID(__uuidof(ConnectionEventsVt), iid))
{
*ppvObject = this;
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;
}
STDMETHOD(InfoMessage)(
ADOError * pError,
EventStatusEnum * adStatus,
_ADOConnection * pConnection)
{
*adStatus = adStatusUnwantedEvent;
return S_OK;
}
STDMETHOD(BeginTransComplete)(
LONG TransactionLevel,
ADOError * pError,
EventStatusEnum * adStatus,
_ADOConnection * pConnection)
{
*adStatus = adStatusUnwantedEvent;
return S_OK;
}
STDMETHOD(CommitTransComplete)(
ADOError * pError,
EventStatusEnum * adStatus,
_ADOConnection * pConnection)
{
*adStatus = adStatusUnwantedEvent;
return S_OK;
}
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;
}
};
/////////////////////////////////////////////////////////////////////////////
// CAxRecordsetEvents class
// Desc:
//
class CAxRecordsetEvents : public RecordsetEventsVt
{
public:
ULONG m_ulRefCount;
CAxRecordsetEvents():m_ulRefCount(1){}
STDMETHOD(QueryInterface)(REFIID iid, LPVOID * ppvObject)
{
if (IsEqualIID(__uuidof(IUnknown), iid) ||
IsEqualIID(__uuidof(RecordsetEventsVt), iid))
{
*ppvObject = this;
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;
}
STDMETHOD(WillChangeField)( LONG cFields,
VARIANT Fields,
EventStatusEnum *adStatus,
_ADORecordset *pRecordset)
{
*adStatus = adStatusUnwantedEvent;
return S_OK;
}
STDMETHOD(FieldChangeComplete)( LONG cFields,
VARIANT Fields,
ADOError *pError,
EventStatusEnum *adStatus,
_ADORecordset *pRecordset)
{
*adStatus = adStatusUnwantedEvent;
return S_OK;
}
STDMETHOD(WillChangeRecord)( EventReasonEnum adReason,
LONG cRecords,
EventStatusEnum *adStatus,
_ADORecordset *pRecordset)
{
*adStatus = adStatusUnwantedEvent;
return S_OK;
}
STDMETHOD(RecordChangeComplete)( EventReasonEnum adReason,
LONG cRecords,
ADOError *pError,
EventStatusEnum *adStatus,
_ADORecordset *pRecordset)
{
*adStatus = adStatusUnwantedEvent;
return S_OK;
}
STDMETHOD(WillChangeRecordset)( EventReasonEnum adReason,
EventStatusEnum *adStatus,
_ADORecordset *pRecordset)
{
*adStatus = adStatusUnwantedEvent;
return S_OK;
}
STDMETHOD(RecordsetChangeComplete)( EventReasonEnum adReason,
ADOError *pError,
EventStatusEnum *adStatus,
_ADORecordset *pRecordset)
{
*adStatus = adStatusUnwantedEvent;
return S_OK;
}
STDMETHOD(WillMove)( EventReasonEnum adReason,
EventStatusEnum *adStatus,
_ADORecordset *pRecordset)
{
*adStatus = adStatusUnwantedEvent;
return S_OK;
}
STDMETHOD(MoveComplete)( EventReasonEnum adReason,
ADOError *pError,
EventStatusEnum *adStatus,
_ADORecordset *pRecordset)
{
*adStatus = adStatusUnwantedEvent;
return S_OK;
}
STDMETHOD(EndOfRecordset)( VARIANT_BOOL *fMoreData,
EventStatusEnum *adStatus,
_ADORecordset *pRecordset) {
*adStatus = adStatusUnwantedEvent;
return S_OK;
}
STDMETHOD(FetchProgress)( long Progress,
long MaxProgress,
EventStatusEnum *adStatus,
_ADORecordset *pRecordset) {
*adStatus = adStatusUnwantedEvent;
return S_OK;
}
STDMETHOD(FetchComplete)( ADOError *pError,
EventStatusEnum *adStatus,
_ADORecordset *pRecordset) {
*adStatus = adStatusUnwantedEvent;
return S_OK;
}
};
}
#endif // !_AXLIB_H_
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -