📄 common.h
字号:
WCHAR* GetDBTypeName(DBTYPE wType);
DBTYPE GetDBType(WCHAR* pwszName);
HRESULT GetDBTypeMaxSize(DBTYPE wType, ULONG* pulMaxSize = NULL, BYTE* pbPrecision = NULL, BYTE* pbScale = NULL);
CHAR* GetVariantTypeName(DBTYPE wType);
DBTYPE GetVariantType(CHAR* pszName);
////////////////////////////////////////////////////////////////////////////
// OLEDB General Helper functions
//
////////////////////////////////////////////////////////////////////////////
HRESULT ConvertToMBCS(WCHAR* pwsz, CHAR* psz, ULONG cbStrLen);
HRESULT ConvertToWCHAR(CHAR* psz, WCHAR* pwsz, ULONG cbStrLen);
WCHAR* wcsDuplicate(WCHAR* pwsz);
CHAR* strDuplicate(CHAR* psz);
WCHAR* ConvertToWCHAR(CHAR* psz);
CHAR* ConvertToMBCS(WCHAR* pwsz);
HRESULT BYTESToString(BYTE* pb, CHAR* pszBuffer, ULONG cBytes, ULONG* pulStrLen);
HRESULT StringToBYTES(CHAR* pszValue, BYTE* pb, ULONG cBytes, ULONG* pcBytes);
HRESULT DBIDToString(DBID* pDBID, WCHAR* pwsz, ULONG ulMaxLen);
HRESULT GUIDFromString(CHAR* psz, GUID* pGuid);
//Variants
HRESULT InitVariants(ULONG cVariants, VARIANT* rgVariants);
HRESULT FreeVariants(ULONG cVariants, VARIANT* rgVariants);
HRESULT ConvertString(CHAR* psz, ULONG ulMaxSize, DWORD dwFlags);
HRESULT VariantToString(VARIANT* pVariant, CHAR* psz, ULONG ulMaxSize, DWORD dwFlags);
HRESULT VariantToString(VARIANT* pVariant, WCHAR* pwsz, ULONG ulMaxSize, DWORD dwFlags);
HRESULT StringToVariant(WCHAR* pwsz, VARTYPE vt, VARIANT* pVariant, DWORD dwFlags);
HRESULT SafeArrayToString(SAFEARRAY* pSafeArray, DBTYPE wType, CHAR* psz, ULONG ulMaxSize);
HRESULT StringToSafeArray(WCHAR* pwsz, DBTYPE wType, SAFEARRAY** ppSafeArray);
//Restrictions
HRESULT SetRestriction(VARIANT* pRestriction, WCHAR* pwszValue);
////////////////////////////////////////////////////////////////////////////
// Windows functions
//
////////////////////////////////////////////////////////////////////////////
void Busy(BOOL bValue = TRUE);
void OutOfMemory(HWND hwnd);
INT wMessageBox(HWND hDlg, UINT uiStyle, WCHAR* pwszTitle, WCHAR* pwszFmt, ...);
INT MessageBox(HWND hDlg, UINT uiStyle, CHAR* pszTitle, CHAR* pszFmt, ...);
LRESULT wSendMessage(HWND hWnd, UINT Msg, WPARAM wParam, WCHAR* pwszFmt);
LRESULT wSendMessageFmt(HWND hWnd, UINT Msg, WPARAM wParam, WCHAR* pwszFmt, ...);
LRESULT SendMessageFmt(HWND hWnd, UINT Msg, WPARAM wParam, CHAR* pszFmt, ...);
BOOL CenterDialog(HWND hDlg);
BOOL MoveWindow(HWND hWnd, ULONG x, ULONG y);
SIZE GetWindowSize(HWND hWnd);
void SyncSibling(HWND hwndLstChg,HWND hwndLstSrc);
BOOL GetEditBoxValue(HWND hEditWnd, LONG lMin, LONG lMax, LONG* plValue, BOOL fAllowEmpty = FALSE);
HRESULT ReplaceString(CHAR* pszBuffer, CHAR* pszTokens, CHAR* pszReplace);
HRESULT GetEditBoxSelection(HWND hWndEdit, CHAR* pszBuffer, ULONG ulMaxSize);
HRESULT ReplaceEditBoxSelection(HWND hWndEdit, CHAR* pszBuffer);
BOOL DisplayContextMenu(HINSTANCE hInst, HWND hWnd, WORD iID, INT xPos, INT yPos, HWND hWndParent, BOOL fRelCords = FALSE);
HRESULT BrowseOpenFileName(HINSTANCE hInstance, HWND hWnd, CHAR* pszTitle, CHAR* pszFileName, ULONG ulMaxSize);
HRESULT BrowseOpenFileName(HINSTANCE hInstance, HWND hWnd, CHAR* pszTitle, WCHAR* pwszFileName, ULONG ulMaxSize);
HRESULT BrowseSaveFileName(HINSTANCE hInstance, HWND hWnd, CHAR* pszTitle, CHAR* pszFileName, ULONG ulMaxSize);
HRESULT BrowseSaveFileName(HINSTANCE hInstance, HWND hWnd, CHAR* pszTitle, WCHAR* pwszFileName, ULONG ulMaxSize);
/////////////////////////////////////////////////////////////////////
// Combo Helpers
//
/////////////////////////////////////////////////////////////////////
LONG CB_GetSelectedText(HWND hWndCombo, CHAR* pszBuffer, ULONG ulMaxSize);
LONG CB_GetSelectedText(HWND hWndCombo, WCHAR* pwszBuffer, ULONG ulMaxSize);
LONG CB_SelectText(HWND hWndCombo, CHAR* pszBuffer, BOOL fAddItem);
LONG CB_SelectText(HWND hWndCombo, WCHAR* pwszBuffer, BOOL fAddItem);
LONG CB_SelectItemValue(HWND hWndCombo, LONG lParam);
/////////////////////////////////////////////////////////////////////
// ListView Helpers
//
/////////////////////////////////////////////////////////////////////
#define IMAGE_NONE -1
#define PARAM_NONE -1
LONG LV_InsertColumn(HWND hWnd, LONG iColumn, CHAR* szName, LONG iImage = IMAGE_NONE);
LONG LV_InsertItem(HWND hWnd, LONG iItem, LONG iSubItem, CHAR* szName, LONG iParam = PARAM_NONE, LONG iImage = IMAGE_NONE);
LONG LV_SetItemState(HWND hWnd, LONG iItem, LONG iSubItem, LONG lState, LONG lStateMask);
LONG LV_SetItemText(HWND hWnd, LONG iItem, LONG iSubItem, CHAR* szName);
LONG LV_SetItemImage(HWND hWnd, LONG iItem, LONG iSubItem, LONG iImage);
LONG LV_SetItemParam(HWND hWnd, LONG iItem, LONG iSubItem, LONG lParam);
LONG LV_GetItemState(HWND hWnd, LONG iItem, LONG iMask = 0);
LONG LV_GetItemText(HWND hWnd, LONG iItem, LONG iSubItem, CHAR* szName, ULONG ulMaxSize);
LONG LV_GetItemImage(HWND hWnd, LONG iItem, LONG iSubItem);
LONG LV_GetItemParam(HWND hWnd, LONG iItem, LONG iSubItem);
LONG LV_FindItem(HWND hWnd, CHAR* szName, LONG iStart = -1);
LONG LV_FindItem(HWND hWnd, LPARAM lParam, LONG iStart = -1);
LONG LV_GetSelItems(HWND hWnd, ULONG* pcItems = NULL, LONG** prgSelItems = NULL, LONG** prgSelParams = NULL);
LONG LV_GetAllItems(HWND hWnd, ULONG* pcItems = NULL, LONG** prgItems = NULL, LONG** prgParams = NULL);
/////////////////////////////////////////////////////////////////////
// TreeView Helpers
//
/////////////////////////////////////////////////////////////////////
HTREEITEM TV_InsertItem(HWND hWnd, HTREEITEM hParent, HTREEITEM hInsAfter, CHAR* szName, LONG iParam = 0, LONG iImage = 0, LONG iSelectedImage = 0);
HTREEITEM TV_FindItem(HWND hWnd, HTREEITEM hParent, CHAR* szName);
LONG TV_GetItemText(HWND hWnd, HTREEITEM hItem, CHAR* szBuffer, LONG ulMaxSize);
LONG TV_GetItemParam(HWND hWnd, HTREEITEM hItem);
/////////////////////////////////////////////////////////////////////
// ScrollBar Helpers
//
/////////////////////////////////////////////////////////////////////
LONG SB_SetScrollInfo(HWND hWnd, INT dwFlags, INT iPos, INT iRangeSize, INT iPageSize, BOOL fRedraw = FALSE);
LONG SB_GetScrollInfo(HWND hWnd, INT dwFlags, INT* piPos, INT* piRangeSize, INT* piPageSize);
///////////////////////////////////////////////////////////////
// Registry
//
///////////////////////////////////////////////////////////////
WCHAR* GetProgID(CLSID clsid);
HRESULT GetRegEnumKey(HKEY hRootKey, CHAR* pszKeyName, DWORD dwIndex, CHAR* pszSubKeyName, ULONG cBytes);
HRESULT GetRegEnumValue(HKEY hRootKey, CHAR* pszKeyName, DWORD dwIndex, CHAR* pszValueName, ULONG cBytes);
HRESULT GetRegEnumValue(HKEY hRootKey, CHAR* pszKeyName, DWORD dwIndex, WCHAR* pwszValueName, ULONG cBytes);
HRESULT GetRegEntry(HKEY hRootKey, CHAR* pszKeyName, CHAR* pszValueName, CHAR* pszValue, ULONG cBytes);
HRESULT GetRegEntry(HKEY hRootKey, CHAR* pszKeyName, CHAR* pszValueName, WCHAR* pwszValue, ULONG cBytes);
HRESULT GetRegEntry(HKEY hRootKey, CHAR* pszKeyName, CHAR* pszValueName, ULONG* pulValue);
HRESULT SetRegEntry(HKEY hRootKey, CHAR* pszKeyName, CHAR* pszValueName, CHAR* pszValue);
HRESULT SetRegEntry(HKEY hRootKey, CHAR* pszKeyName, CHAR* pszValueName, WCHAR* pwszValue);
HRESULT SetRegEntry(HKEY hRootKey, CHAR* pszKeyName, CHAR* pszValueName, ULONG ulValue);
HRESULT DelRegEntry(HKEY hRootKey, CHAR* pszKeyName);
/////////////////////////////////////////////////////////////////////
// Exception Handlers
//
/////////////////////////////////////////////////////////////////////
HRESULT HandleException(HWND hWnd, EXCEPTION_SOURCE eSource, WCHAR* pwszFile, ULONG iLine);
/////////////////////////////////////////////////////////////////////
// Memory debugging code
//
/////////////////////////////////////////////////////////////////////
int InternalAssert(char* pszExp, char* pszFile, UINT iLine);
void InternalTrace(CHAR* pszExp, ...);
void InternalTrace(WCHAR* pwszExp, ...);
#undef ASSERT
#undef TRACE
//DebugBreak
#if defined(_M_IX86)
#define _DbgBreak() __asm { int 3 }
#else
#define _DbgBreak() DebugBreak()
#endif
#ifdef _DEBUG
#define ASSERT(expr) do { if(!(expr) && (1 == InternalAssert(#expr, __FILE__, __LINE__))) _DbgBreak(); } while(0)
#define TRACE InternalTrace
#else //_DEBUG
#define ASSERT(exp)
#define TRACE if(0) InternalTrace
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// Name MAPS
//
/////////////////////////////////////////////////////////////////////////////
extern const ULONG g_cInterfaceMaps;
extern const GUIDMAP g_rgInterfaceMap[];
extern const ULONG g_cDBTypes;
extern const WIDENAMEMAP g_rgDBTypes[];
extern const ULONG g_cPropSetMaps;
extern const GUIDMAP g_rgPropSetMap[];
extern const ULONG g_cVariantTypes;
extern const NAMEMAP g_rgVariantTypes[];
extern const NAMEMAP g_rgIsoLevels[];
extern const ULONG g_cIsoLevels;
extern const NAMEMAP g_rgXACTTC[];
extern const ULONG g_cXACTTC;
///////////////////////////////////////////////////////////////
// Static Strings Messages
//
///////////////////////////////////////////////////////////////
//General Status
extern WCHAR wsz_SUCCESS[];
extern WCHAR wsz_WARNING[];
extern WCHAR wsz_INFO[];
extern WCHAR wsz_ERROR[];
extern WCHAR wsz_EXCEPTION[];
extern WCHAR wsz_ERRORINFO[];
//General String Values
extern WCHAR wsz_INVALID_VALUE_[];
#endif //_COMMON_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -