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

📄 common.h

📁 用测试OLE DB提供者的一个程序。能够测试出OEL DB提供者到底实现了哪些接口?很灵的。
💻 H
📖 第 1 页 / 共 2 页
字号:
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 + -