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

📄 common.cpp

📁 windows ce开发技巧与实例光盘代码
💻 CPP
📖 第 1 页 / 共 4 页
字号:
// Common.cpp: implementation of the CCommon class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Common.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CCommon::CCommon()
{

}

CCommon::~CCommon()
{

}
/*	根据日期返回一个字符串
 *	参数
 *	COleDateTime	dt		日期
 *	BOOL			bFormat	输出格式
 *	返回值
 *	CString			当bFormat=TRUE	输出YYYY-MM-DD HH:MM:SS, 
 *					当bFormat=FALSE	输出YYYYMMDDHHMMSS
 */
CString CCommon::getFormatDateTime(COleDateTime dt, BOOL bFormat)
{
	CString str;
	
	if (bFormat)	//YYYY-MM-DD HH:MM:SS
		str.Format(L"%.4d-%.2d-%.2d %.2d:%.2d:%.2d", 
			dt.GetYear(),
			dt.GetMonth(),
			dt.GetDay(),
			dt.GetHour(),
			dt.GetMinute(),
			dt.GetSecond());
	else			//YYYYMMDDHHMMSS
		str.Format(L"%.4d%.2d%.2d%.2d%.2d%.2d", 
		dt.GetYear(),
		dt.GetMonth(),
		dt.GetDay(),
		dt.GetHour(),
		dt.GetMinute(),
		dt.GetSecond());
	
	return CString(str);
}

/*	返回日期
 *	参数
 *	COleDateTime dt		日期
 *	返回值	
 *	CString		格式YYYY-MM-DD
 */
CString CCommon::getFormatDate(COleDateTime dt)
{
	CString str;	
	str.Format(L"%.4d-%.2d-%.2d", 
		dt.GetYear(),
		dt.GetMonth(),
		dt.GetDay());	
	return CString(str);
}

/*	创建客户在线编码
 *	参数
 *	int				nUserID		用户id
 *	COleDateTime	dt			日期
 *	返回值	
 *	CString			格式UO_XXXXYYYYMMDDHHMMSS
 */
CString CCommon::CreatOnlineCode(int nUserID, COleDateTime dt)
{
	CString str;
	str.Format(L"%.4d", nUserID);
	return CString(L"UO_") + str +
		getFormatDateTime(dt, FALSE);
}


/*	得到HRESULT返回值的具体出错内容
 *	参数
 *	HRESULT&		hr			com函数返回值
 *	返回值	
 *	CString			出错的具体含义
 */
CString CCommon::GetHResult(HRESULT& hr)
{
#define CASE_FACILITY(f)  \
        case f: \
            lstrcpy((LPTSTR)szFacility, (LPTSTR)#f); \
            break;

#define CASE_HRESULT(hr)  \
        case hr: \
            lstrcpy((LPTSTR)szErrorName, (LPTSTR)#hr); \
            FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, hr, \
                MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), \
                szErrorDesc, sizeof(szErrorDesc), NULL);\
            break;

#define CASE_CODE(c) \
        case c: \
            lstrcpy((LPTSTR)szErrorName, (LPTSTR)#c); \
            FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, hr, \
                MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), \
                szErrorDesc, sizeof(szErrorDesc), NULL);\
            break; 

    TCHAR szBuf[200];
    TCHAR szFacility[100];
    TCHAR szErrorName[100];
    TCHAR szErrorDesc[400];

    lstrcpy(szErrorDesc, TEXT(""));
    
    switch (HRESULT_FACILITY(hr))
    {
        CASE_FACILITY(FACILITY_WINDOWS)
        CASE_FACILITY(FACILITY_STORAGE)
        CASE_FACILITY(FACILITY_RPC)
        CASE_FACILITY(FACILITY_SSPI)
        CASE_FACILITY(FACILITY_WIN32)
        CASE_FACILITY(FACILITY_CONTROL)
        CASE_FACILITY(FACILITY_NULL)
		CASE_FACILITY(FACILITY_INTERNET)
        CASE_FACILITY(FACILITY_ITF)
        CASE_FACILITY(FACILITY_DISPATCH)
        CASE_FACILITY(FACILITY_CERT)

        default:
            lstrcpy(szFacility, TEXT("Unknown or new FACILITY code"));                
    }
    
    switch (hr) 
    {  
        CASE_HRESULT(E_UNEXPECTED)
        CASE_HRESULT(E_NOTIMPL)
        CASE_HRESULT(E_OUTOFMEMORY)
        CASE_HRESULT(E_INVALIDARG)
        CASE_HRESULT(E_NOINTERFACE)
        CASE_HRESULT(E_POINTER)
        CASE_HRESULT(E_HANDLE)
        CASE_HRESULT(E_ABORT)
        CASE_HRESULT(E_FAIL)
        CASE_HRESULT(E_ACCESSDENIED)
        CASE_HRESULT(E_PENDING)
        CASE_HRESULT(CO_E_INIT_TLS)
        CASE_HRESULT(CO_E_INIT_SHARED_ALLOCATOR)
        CASE_HRESULT(CO_E_INIT_MEMORY_ALLOCATOR)
        CASE_HRESULT(CO_E_INIT_CLASS_CACHE)
        CASE_HRESULT(CO_E_INIT_RPC_CHANNEL)
        CASE_HRESULT(CO_E_INIT_TLS_SET_CHANNEL_CONTROL)
        CASE_HRESULT(CO_E_INIT_TLS_CHANNEL_CONTROL)
        CASE_HRESULT(CO_E_INIT_UNACCEPTED_USER_ALLOCATOR)
        CASE_HRESULT(CO_E_INIT_SCM_MUTEX_EXISTS)
        CASE_HRESULT(CO_E_INIT_SCM_FILE_MAPPING_EXISTS)
        CASE_HRESULT(CO_E_INIT_SCM_MAP_VIEW_OF_FILE)
        CASE_HRESULT(CO_E_INIT_SCM_EXEC_FAILURE)
        CASE_HRESULT(CO_E_INIT_ONLY_SINGLE_THREADED)
        CASE_HRESULT(CO_E_CANT_REMOTE)
        CASE_HRESULT(CO_E_BAD_SERVER_NAME)
        CASE_HRESULT(CO_E_WRONG_SERVER_IDENTITY)
        CASE_HRESULT(CO_E_OLE1DDE_DISABLED)
        CASE_HRESULT(CO_E_RUNAS_SYNTAX)
        CASE_HRESULT(CO_E_CREATEPROCESS_FAILURE)
        CASE_HRESULT(CO_E_RUNAS_CREATEPROCESS_FAILURE)
        CASE_HRESULT(CO_E_RUNAS_LOGON_FAILURE)
        CASE_HRESULT(CO_E_LAUNCH_PERMSSION_DENIED)
        CASE_HRESULT(CO_E_START_SERVICE_FAILURE)
        CASE_HRESULT(CO_E_REMOTE_COMMUNICATION_FAILURE)
        CASE_HRESULT(CO_E_SERVER_START_TIMEOUT)
        CASE_HRESULT(CO_E_CLSREG_INCONSISTENT)
        CASE_HRESULT(CO_E_IIDREG_INCONSISTENT)
        CASE_HRESULT(CO_E_NOT_SUPPORTED)
        CASE_HRESULT(S_OK)
        CASE_HRESULT(S_FALSE)
        CASE_HRESULT(OLE_E_OLEVERB)
        CASE_HRESULT(OLE_E_ADVF)
        CASE_HRESULT(OLE_E_ENUM_NOMORE)
        CASE_HRESULT(OLE_E_ADVISENOTSUPPORTED)
        CASE_HRESULT(OLE_E_NOCONNECTION)
        CASE_HRESULT(OLE_E_NOTRUNNING)
        CASE_HRESULT(OLE_E_NOCACHE)
        CASE_HRESULT(OLE_E_BLANK)
        CASE_HRESULT(OLE_E_CLASSDIFF)
        CASE_HRESULT(OLE_E_CANT_GETMONIKER)
        CASE_HRESULT(OLE_E_CANT_BINDTOSOURCE)
        CASE_HRESULT(OLE_E_STATIC)
        CASE_HRESULT(OLE_E_PROMPTSAVECANCELLED)
        CASE_HRESULT(OLE_E_INVALIDRECT)
        CASE_HRESULT(OLE_E_WRONGCOMPOBJ)
        CASE_HRESULT(OLE_E_INVALIDHWND)
        CASE_HRESULT(OLE_E_NOT_INPLACEACTIVE)
        CASE_HRESULT(OLE_E_CANTCONVERT)
        CASE_HRESULT(OLE_E_NOSTORAGE)
        CASE_HRESULT(DV_E_FORMATETC)
        CASE_HRESULT(DV_E_DVTARGETDEVICE)
        CASE_HRESULT(DV_E_STGMEDIUM)
        CASE_HRESULT(DV_E_STATDATA)
        CASE_HRESULT(DV_E_LINDEX)
        CASE_HRESULT(DV_E_TYMED)
        CASE_HRESULT(DV_E_CLIPFORMAT)
        CASE_HRESULT(DV_E_DVASPECT)
        CASE_HRESULT(DV_E_DVTARGETDEVICE_SIZE)
        CASE_HRESULT(DV_E_NOIVIEWOBJECT)
        CASE_HRESULT(DRAGDROP_E_NOTREGISTERED)
        CASE_HRESULT(DRAGDROP_E_ALREADYREGISTERED)
        CASE_HRESULT(DRAGDROP_E_INVALIDHWND)
        CASE_HRESULT(CLASS_E_NOAGGREGATION)
        CASE_HRESULT(CLASS_E_CLASSNOTAVAILABLE)
        CASE_HRESULT(VIEW_E_DRAW)
        CASE_HRESULT(REGDB_E_READREGDB)
        CASE_HRESULT(REGDB_E_WRITEREGDB)
        CASE_HRESULT(REGDB_E_KEYMISSING)
        CASE_HRESULT(REGDB_E_INVALIDVALUE)
        CASE_HRESULT(REGDB_E_CLASSNOTREG)
        CASE_HRESULT(REGDB_E_IIDNOTREG)
        CASE_HRESULT(CACHE_E_NOCACHE_UPDATED)
        CASE_HRESULT(OLEOBJ_E_NOVERBS)
        CASE_HRESULT(OLEOBJ_E_INVALIDVERB)
        CASE_HRESULT(INPLACE_E_NOTUNDOABLE)
        CASE_HRESULT(INPLACE_E_NOTOOLSPACE)
        CASE_HRESULT(CONVERT10_E_OLESTREAM_GET)
        CASE_HRESULT(CONVERT10_E_OLESTREAM_PUT)
        CASE_HRESULT(CONVERT10_E_OLESTREAM_FMT)
        CASE_HRESULT(CONVERT10_E_OLESTREAM_BITMAP_TO_DIB)
        CASE_HRESULT(CONVERT10_E_STG_FMT)
        CASE_HRESULT(CONVERT10_E_STG_NO_STD_STREAM)
        CASE_HRESULT(CONVERT10_E_STG_DIB_TO_BITMAP)
        CASE_HRESULT(CLIPBRD_E_CANT_OPEN)
        CASE_HRESULT(CLIPBRD_E_CANT_EMPTY)
        CASE_HRESULT(CLIPBRD_E_CANT_SET)
        CASE_HRESULT(CLIPBRD_E_BAD_DATA)
        CASE_HRESULT(CLIPBRD_E_CANT_CLOSE)
        CASE_HRESULT(MK_E_CONNECTMANUALLY)
        CASE_HRESULT(MK_E_EXCEEDEDDEADLINE)
        CASE_HRESULT(MK_E_NEEDGENERIC)
        CASE_HRESULT(MK_E_UNAVAILABLE)
        CASE_HRESULT(MK_E_SYNTAX)
        CASE_HRESULT(MK_E_NOOBJECT)
        CASE_HRESULT(MK_E_INVALIDEXTENSION)
        CASE_HRESULT(MK_E_INTERMEDIATEINTERFACENOTSUPPORTED)
        CASE_HRESULT(MK_E_NOTBINDABLE)
        CASE_HRESULT(MK_E_NOTBOUND)
        CASE_HRESULT(MK_E_CANTOPENFILE)
        CASE_HRESULT(MK_E_MUSTBOTHERUSER)
        CASE_HRESULT(MK_E_NOINVERSE)
        CASE_HRESULT(MK_E_NOSTORAGE)
        CASE_HRESULT(MK_E_NOPREFIX)
        CASE_HRESULT(MK_E_ENUMERATION_FAILED)
        CASE_HRESULT(CO_E_NOTINITIALIZED)
        CASE_HRESULT(CO_E_ALREADYINITIALIZED)
        CASE_HRESULT(CO_E_CANTDETERMINECLASS)
        CASE_HRESULT(CO_E_CLASSSTRING)
        CASE_HRESULT(CO_E_IIDSTRING)
        CASE_HRESULT(CO_E_APPNOTFOUND)
        CASE_HRESULT(CO_E_APPSINGLEUSE)
        CASE_HRESULT(CO_E_ERRORINAPP)
        CASE_HRESULT(CO_E_DLLNOTFOUND)
        CASE_HRESULT(CO_E_ERRORINDLL)
        CASE_HRESULT(CO_E_WRONGOSFORAPP)
        CASE_HRESULT(CO_E_OBJNOTREG)
        CASE_HRESULT(CO_E_OBJISREG)
        CASE_HRESULT(CO_E_OBJNOTCONNECTED)
        CASE_HRESULT(CO_E_APPDIDNTREG)
        CASE_HRESULT(CO_E_RELEASED)
        CASE_HRESULT(OLE_S_USEREG)
        CASE_HRESULT(OLE_S_STATIC)
        CASE_HRESULT(OLE_S_MAC_CLIPFORMAT)
        CASE_HRESULT(DRAGDROP_S_DROP)
        CASE_HRESULT(DRAGDROP_S_CANCEL)
        CASE_HRESULT(DRAGDROP_S_USEDEFAULTCURSORS)
        CASE_HRESULT(DATA_S_SAMEFORMATETC)
        CASE_HRESULT(VIEW_S_ALREADY_FROZEN)
        CASE_HRESULT(CACHE_S_FORMATETC_NOTSUPPORTED)
        CASE_HRESULT(CACHE_S_SAMECACHE)
        CASE_HRESULT(CACHE_S_SOMECACHES_NOTUPDATED)
        CASE_HRESULT(OLEOBJ_S_INVALIDVERB)
        CASE_HRESULT(OLEOBJ_S_CANNOT_DOVERB_NOW)
        CASE_HRESULT(OLEOBJ_S_INVALIDHWND)
        CASE_HRESULT(INPLACE_S_TRUNCATED)
        CASE_HRESULT(CONVERT10_S_NO_PRESENTATION)
        CASE_HRESULT(MK_S_REDUCED_TO_SELF)
        CASE_HRESULT(MK_S_ME)
        CASE_HRESULT(MK_S_HIM)
        CASE_HRESULT(MK_S_US)
        CASE_HRESULT(MK_S_MONIKERALREADYREGISTERED)
        CASE_HRESULT(CO_E_CLASS_CREATE_FAILED)
        CASE_HRESULT(CO_E_SCM_ERROR)
        CASE_HRESULT(CO_E_SCM_RPC_FAILURE)
        CASE_HRESULT(CO_E_BAD_PATH)
        CASE_HRESULT(CO_E_SERVER_EXEC_FAILURE)
        CASE_HRESULT(CO_E_OBJSRV_RPC_FAILURE)
        CASE_HRESULT(MK_E_NO_NORMALIZED)
        CASE_HRESULT(CO_E_SERVER_STOPPING)
        CASE_HRESULT(MEM_E_INVALID_ROOT)
        CASE_HRESULT(MEM_E_INVALID_LINK)
        CASE_HRESULT(MEM_E_INVALID_SIZE)
        CASE_HRESULT(CO_S_NOTALLINTERFACES)
        CASE_HRESULT(DISP_E_UNKNOWNINTERFACE)
        CASE_HRESULT(DISP_E_MEMBERNOTFOUND)
        CASE_HRESULT(DISP_E_PARAMNOTFOUND)
        CASE_HRESULT(DISP_E_TYPEMISMATCH)
        CASE_HRESULT(DISP_E_UNKNOWNNAME)

⌨️ 快捷键说明

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