📄 common.cpp
字号:
// 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 + -