15 #define SAFE_DELETE(p) { if(p) { delete (p); (p)=NULL; } } 16 #define SAFE_DELETE_ARRAY(p) { if(p) { delete[] (p); (p)=NULL; } } 17 #define SAFE_RELEASE(p) { if(p) { (p)->Release(); (p)=NULL; } } 26 HRESULT DXUtil_GetDXSDKMediaPathCch( TCHAR* strDest,
int cchDest );
27 HRESULT DXUtil_GetDXSDKMediaPathCb( TCHAR* szDest,
int cbDest );
28 HRESULT DXUtil_FindMediaFileCch( TCHAR* strDestPath,
int cchDest, LPCTSTR strFilename );
29 HRESULT DXUtil_FindMediaFileCb( TCHAR* szDestPath,
int cbDest, LPCTSTR strFilename );
37 HRESULT DXUtil_WriteStringRegKey( HKEY hKey, LPCTSTR strRegName, LPCTSTR strValue );
38 HRESULT DXUtil_WriteFloatRegKey( HKEY hKey, LPCTSTR strRegName, FLOAT fValue );
39 HRESULT DXUtil_WriteIntRegKey( HKEY hKey, LPCTSTR strRegName, DWORD dwValue );
40 HRESULT DXUtil_WriteGuidRegKey( HKEY hKey, LPCTSTR strRegName, GUID guidValue );
41 HRESULT DXUtil_WriteBoolRegKey( HKEY hKey, LPCTSTR strRegName, BOOL bValue );
43 HRESULT DXUtil_ReadStringRegKeyCch( HKEY hKey, LPCTSTR strRegName, TCHAR* strDest, DWORD cchDest, LPCTSTR strDefault );
44 HRESULT DXUtil_ReadStringRegKeyCb( HKEY hKey, LPCTSTR strRegName, TCHAR* strDest, DWORD cbDest, LPCTSTR strDefault );
45 HRESULT DXUtil_ReadFloatRegKey( HKEY hKey, LPCTSTR strRegName, FLOAT* fDest, FLOAT fDefault );
46 HRESULT DXUtil_ReadIntRegKey( HKEY hKey, LPCTSTR strRegName, DWORD* pdwValue, DWORD dwDefault );
47 HRESULT DXUtil_ReadGuidRegKey( HKEY hKey, LPCTSTR strRegName, GUID* pGuidValue, GUID& guidDefault );
48 HRESULT DXUtil_ReadBoolRegKey( HKEY hKey, LPCTSTR strRegName, BOOL* pbValue, BOOL bDefault );
63 enum TIMER_COMMAND { TIMER_RESET, TIMER_START, TIMER_STOP, TIMER_ADVANCE,
64 TIMER_GETABSOLUTETIME, TIMER_GETAPPTIME, TIMER_GETELAPSEDTIME };
65 double __stdcall DXUtil_Timer( TIMER_COMMAND command );
71 HRESULT DXUtil_ConvertAnsiStringToWideCch( WCHAR* wstrDestination,
const CHAR* strSource,
int cchDestChar );
72 HRESULT DXUtil_ConvertWideStringToAnsiCch( CHAR* strDestination,
const WCHAR* wstrSource,
int cchDestChar );
73 HRESULT DXUtil_ConvertGenericStringToAnsiCch( CHAR* strDestination,
const TCHAR* tstrSource,
int cchDestChar );
74 HRESULT DXUtil_ConvertGenericStringToWideCch( WCHAR* wstrDestination,
const TCHAR* tstrSource,
int cchDestChar );
75 HRESULT DXUtil_ConvertAnsiStringToGenericCch( TCHAR* tstrDestination,
const CHAR* strSource,
int cchDestChar );
76 HRESULT DXUtil_ConvertWideStringToGenericCch( TCHAR* tstrDestination,
const WCHAR* wstrSource,
int cchDestChar );
77 HRESULT DXUtil_ConvertAnsiStringToWideCb( WCHAR* wstrDestination,
const CHAR* strSource,
int cbDestChar );
78 HRESULT DXUtil_ConvertWideStringToAnsiCb( CHAR* strDestination,
const WCHAR* wstrSource,
int cbDestChar );
79 HRESULT DXUtil_ConvertGenericStringToAnsiCb( CHAR* strDestination,
const TCHAR* tstrSource,
int cbDestChar );
80 HRESULT DXUtil_ConvertGenericStringToWideCb( WCHAR* wstrDestination,
const TCHAR* tstrSource,
int cbDestChar );
81 HRESULT DXUtil_ConvertAnsiStringToGenericCb( TCHAR* tstrDestination,
const CHAR* strSource,
int cbDestChar );
82 HRESULT DXUtil_ConvertWideStringToGenericCb( TCHAR* tstrDestination,
const WCHAR* wstrSource,
int cbDestChar );
88 VOID DXUtil_LaunchReadme( HWND hWnd, LPCTSTR strLoc = NULL );
93 HRESULT DXUtil_ConvertGUIDToStringCch(
const GUID* pGuidSrc, TCHAR* strDest,
int cchDestChar );
94 HRESULT DXUtil_ConvertGUIDToStringCb(
const GUID* pGuidSrc, TCHAR* strDest,
int cbDestChar );
95 HRESULT DXUtil_ConvertStringToGUID(
const TCHAR* strIn, GUID* pGuidOut );
102 VOID DXUtil_Trace( LPCTSTR strMsg, ... );
104 #if defined(DEBUG) | defined(_DEBUG) 105 #define DXTRACE DXUtil_Trace 107 #define DXTRACE sizeof 129 ArrayListType m_ArrayListType;
131 UINT m_BytesPerEntry;
133 UINT m_NumEntriesAllocated;
136 CArrayList( ArrayListType Type, UINT BytesPerEntry = 0 );
138 HRESULT Add(
void* pEntry );
139 void Remove( UINT Entry );
140 void* GetPtr( UINT Entry );
141 UINT Count(
void ) {
return m_NumEntries; }
142 bool Contains(
void* pEntryData );
143 void Clear(
void ) { m_NumEntries = 0; }
152 #define CheckDlgButton(hdialog, id, state) ::SendMessage(::GetDlgItem(hdialog, id), BM_SETCHECK, state, 0) 153 #define IsDlgButtonChecked(hdialog, id) ::SendMessage(::GetDlgItem(hdialog, id), BM_GETCHECK, 0L, 0L) 154 #define GETTIMESTAMP GetTickCount 155 #define _TWINCE(x) _T(x) 157 __inline
int GetScrollPos(HWND hWnd,
int nBar)
160 memset(&si, 0,
sizeof(si));
161 si.cbSize =
sizeof(si);
163 if (!GetScrollInfo(hWnd, nBar, &si))
175 #define GETTIMESTAMP timeGetTime