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

📄 handleresult.h

📁 本书分为五个部分
💻 H
字号:

#ifndef __ZSY_OLEDB_HANDLERESULT_H__
#define __ZSY_OLEDB_HANDLERESULT_H__

// 错误处理有关函数
#define __LONGSTRING(string) L##string
#define LONGSTRING(string) __LONGSTRING(string)

// 如果错误则跳转到CLEANUP.
#define CHECK_HR(hr)		if(FAILED(hr)) goto CLEANUP

// 如果错误则跳转到CLEANUP, 并显示所有错误信息.
#define XCHECK_HR(hr)                                              \
{                                                                  \
	if(FAILED(HandleResult(hr, LONGSTRING(__FILE__), __LINE__)))   \
		goto CLEANUP;                                              \
}

// 检查内存地址
#define CHECK_MEMORY(hr, pv)    \
{                               \
	if(!pv)                     \
	{                           \
		hr = E_OUTOFMEMORY;     \
		CHECK_HR(hr);           \
	}                           \
}

// ROUNDUP on all platforms pointers must be aligned properly
#define ROUNDUP_AMOUNT            8
#define ROUNDUP_(size,amount)    (((ULONG)(size)+((amount)-1))&~((amount)-1))
#define ROUNDUP(size)             ROUNDUP_(size, ROUNDUP_AMOUNT)



// 处理返回的HRESULT值.
HRESULT HandleResult(HRESULT hrReturned, LPCWSTR pwszFile, ULONG ulLine);

// 显示单个错误记录的错误信息. 包括来自ISQLErrorInfo的.
HRESULT DisplayErrorRecord(HRESULT hrReturned, ULONG iRecord, 
						   IErrorRecords *pIErrorRecords, 
						   LPCWSTR pwszFile, ULONG ulLine);

// 如果不支持IErrorInfo, 则显示基本的错误信息.
HRESULT DisplayErrorInfo(HRESULT hrReturned, IErrorInfo *pIErrorInfo,
						 LPCWSTR pwszFile, ULONG ulLine);

// 如果支持ISQLErrorInfo, 则获取SQL错误字符串和本地错误代码.
HRESULT GetSqlErrorInfo(ULONG iRecord, IErrorRecords *pIErrorRecords,
						BSTR *pBstr, LONG *plNativeError);


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -