dxutil.h
上传用户:hxb_1234
上传日期:2010-03-30
资源大小:8328k
文件大小:5k
源码类别:

VC书籍

开发平台:

Visual C++

  1. #ifndef DXUTIL_H
  2. #define DXUTIL_H
  3. #define SAFE_DELETE(p)       { if(p) { delete (p);     (p)=NULL; } }
  4. #define SAFE_DELETE_ARRAY(p) { if(p) { delete[] (p);   (p)=NULL; } }
  5. #define SAFE_RELEASE(p)      { if(p) { (p)->Release(); (p)=NULL; } }
  6. #ifndef UNDER_CE
  7. HRESULT DXUtil_GetDXSDKMediaPathCch( TCHAR* strDest, int cchDest );
  8. HRESULT DXUtil_GetDXSDKMediaPathCb( TCHAR* szDest, int cbDest );
  9. HRESULT DXUtil_FindMediaFileCch( TCHAR* strDestPath, int cchDest, TCHAR* strFilename );
  10. HRESULT DXUtil_FindMediaFileCb( TCHAR* szDestPath, int cbDest, TCHAR* strFilename );
  11. #endif 
  12. HRESULT DXUtil_WriteStringRegKey( HKEY hKey, TCHAR* strRegName, TCHAR* strValue );
  13. HRESULT DXUtil_WriteIntRegKey( HKEY hKey, TCHAR* strRegName, DWORD dwValue );
  14. HRESULT DXUtil_WriteGuidRegKey( HKEY hKey, TCHAR* strRegName, GUID guidValue );
  15. HRESULT DXUtil_WriteBoolRegKey( HKEY hKey, TCHAR* strRegName, BOOL bValue );
  16. HRESULT DXUtil_ReadStringRegKeyCch( HKEY hKey, TCHAR* strRegName, TCHAR* strDest, DWORD cchDest, TCHAR* strDefault );
  17. HRESULT DXUtil_ReadStringRegKeyCb( HKEY hKey, TCHAR* strRegName, TCHAR* strDest, DWORD cbDest, TCHAR* strDefault );
  18. HRESULT DXUtil_ReadIntRegKey( HKEY hKey, TCHAR* strRegName, DWORD* pdwValue, DWORD dwDefault );
  19. HRESULT DXUtil_ReadGuidRegKey( HKEY hKey, TCHAR* strRegName, GUID* pGuidValue, GUID& guidDefault );
  20. HRESULT DXUtil_ReadBoolRegKey( HKEY hKey, TCHAR* strRegName, BOOL* pbValue, BOOL bDefault );
  21. enum TIMER_COMMAND { TIMER_RESET, TIMER_START, TIMER_STOP, TIMER_ADVANCE,
  22.                      TIMER_GETABSOLUTETIME, TIMER_GETAPPTIME, TIMER_GETELAPSEDTIME };
  23. FLOAT __stdcall DXUtil_Timer( TIMER_COMMAND command );
  24. HRESULT DXUtil_ConvertAnsiStringToWideCch( WCHAR* wstrDestination, const CHAR* strSource, int cchDestChar );
  25. HRESULT DXUtil_ConvertWideStringToAnsiCch( CHAR* strDestination, const WCHAR* wstrSource, int cchDestChar );
  26. HRESULT DXUtil_ConvertGenericStringToAnsiCch( CHAR* strDestination, const TCHAR* tstrSource, int cchDestChar );
  27. HRESULT DXUtil_ConvertGenericStringToWideCch( WCHAR* wstrDestination, const TCHAR* tstrSource, int cchDestChar );
  28. HRESULT DXUtil_ConvertAnsiStringToGenericCch( TCHAR* tstrDestination, const CHAR* strSource, int cchDestChar );
  29. HRESULT DXUtil_ConvertWideStringToGenericCch( TCHAR* tstrDestination, const WCHAR* wstrSource, int cchDestChar );
  30. HRESULT DXUtil_ConvertAnsiStringToWideCb( WCHAR* wstrDestination, const CHAR* strSource, int cbDestChar );
  31. HRESULT DXUtil_ConvertWideStringToAnsiCb( CHAR* strDestination, const WCHAR* wstrSource, int cbDestChar );
  32. HRESULT DXUtil_ConvertGenericStringToAnsiCb( CHAR* strDestination, const TCHAR* tstrSource, int cbDestChar );
  33. HRESULT DXUtil_ConvertGenericStringToWideCb( WCHAR* wstrDestination, const TCHAR* tstrSource, int cbDestChar );
  34. HRESULT DXUtil_ConvertAnsiStringToGenericCb( TCHAR* tstrDestination, const CHAR* strSource, int cbDestChar );
  35. HRESULT DXUtil_ConvertWideStringToGenericCb( TCHAR* tstrDestination, const WCHAR* wstrSource, int cbDestChar );
  36. VOID DXUtil_LaunchReadme( HWND hWnd, TCHAR* strLoc = NULL );
  37. HRESULT DXUtil_ConvertGUIDToStringCch( const GUID* pGuidSrc, TCHAR* strDest, int cchDestChar );
  38. HRESULT DXUtil_ConvertGUIDToStringCb( const GUID* pGuidSrc, TCHAR* strDest, int cbDestChar );
  39. HRESULT DXUtil_ConvertStringToGUID( const TCHAR* strIn, GUID* pGuidOut );
  40. VOID    DXUtil_Trace( TCHAR* strMsg, ... );
  41. #if defined(DEBUG) | defined(_DEBUG)
  42.     #define DXTRACE           DXUtil_Trace
  43. #else
  44.     #define DXTRACE           sizeof
  45. #endif
  46. enum ArrayListType
  47. {
  48.     AL_VALUE,       
  49.     AL_REFERENCE,   
  50. };
  51. class CArrayList
  52. {
  53. protected:
  54.     ArrayListType m_ArrayListType;
  55.     void* m_pData;
  56.     UINT m_BytesPerEntry;
  57.     UINT m_NumEntries;
  58.     UINT m_NumEntriesAllocated;
  59. public:
  60.     CArrayList( ArrayListType Type, UINT BytesPerEntry = 0 );
  61.     ~CArrayList( void );
  62.     HRESULT Add( void* pEntry );
  63.     void Remove( UINT Entry );
  64.     void* GetPtr( UINT Entry );
  65.     UINT Count( void ) { return m_NumEntries; }
  66.     bool Contains( void* pEntryData );
  67.     void Clear( void ) { m_NumEntries = 0; }
  68. };
  69. #ifdef UNDER_CE
  70. #define CheckDlgButton(hdialog, id, state) ::SendMessage(::GetDlgItem(hdialog, id), BM_SETCHECK, state, 0)
  71. #define IsDlgButtonChecked(hdialog, id) ::SendMessage(::GetDlgItem(hdialog, id), BM_GETCHECK, 0L, 0L)
  72. #define GETTIMESTAMP GetTickCount
  73. #define _TWINCE(x) _T(x)
  74. __inline int GetScrollPos(HWND hWnd, int nBar)
  75. {
  76. SCROLLINFO si;
  77. memset(&si, 0, sizeof(si));
  78. si.cbSize = sizeof(si);
  79. si.fMask = SIF_POS;
  80. if (!GetScrollInfo(hWnd, nBar, &si))
  81. {
  82. return 0;
  83. }
  84. else
  85. {
  86. return si.nPos;
  87. }
  88. }
  89. #else 
  90. #define GETTIMESTAMP timeGetTime
  91. #define _TWINCE(x) x
  92. #endif 
  93. #endif