00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 #ifndef DXUTIL_H
00009 #define DXUTIL_H
00010 
00011 
00012 
00013 
00014 
00015 #define SAFE_DELETE(p)       { if(p) { delete (p);     (p)=NULL; } }
00016 #define SAFE_DELETE_ARRAY(p) { if(p) { delete[] (p);   (p)=NULL; } }
00017 #define SAFE_RELEASE(p)      { if(p) { (p)->Release(); (p)=NULL; } }
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 const TCHAR* DXUtil_GetDXSDKMediaPath();
00028 HRESULT      DXUtil_FindMediaFile( TCHAR* strPath, TCHAR* strFilename );
00029 
00030 
00031 
00032 
00033 
00034 
00035 
00036 
00037 HRESULT DXUtil_WriteStringRegKey( HKEY hKey, TCHAR* strRegName, TCHAR* strValue );
00038 HRESULT DXUtil_WriteIntRegKey( HKEY hKey, TCHAR* strRegName, DWORD dwValue );
00039 HRESULT DXUtil_WriteGuidRegKey( HKEY hKey, TCHAR* strRegName, GUID guidValue );
00040 HRESULT DXUtil_WriteBoolRegKey( HKEY hKey, TCHAR* strRegName, BOOL bValue );
00041 
00042 HRESULT DXUtil_ReadStringRegKey( HKEY hKey, TCHAR* strRegName, TCHAR* strValue, DWORD dwLength, TCHAR* strDefault );
00043 HRESULT DXUtil_ReadIntRegKey( HKEY hKey, TCHAR* strRegName, DWORD* pdwValue, DWORD dwDefault );
00044 HRESULT DXUtil_ReadGuidRegKey( HKEY hKey, TCHAR* strRegName, GUID* pGuidValue, GUID& guidDefault );
00045 HRESULT DXUtil_ReadBoolRegKey( HKEY hKey, TCHAR* strRegName, BOOL* pbValue, BOOL bDefault );
00046 
00047 
00048 
00049 
00050 
00051 
00052 
00053 
00054 
00055 
00056 
00057 
00058 
00059 
00060 
00061 
00062 enum TIMER_COMMAND { TIMER_RESET, TIMER_START, TIMER_STOP, TIMER_ADVANCE,
00063                      TIMER_GETABSOLUTETIME, TIMER_GETAPPTIME, TIMER_GETELAPSEDTIME };
00064 FLOAT __stdcall DXUtil_Timer( TIMER_COMMAND command );
00065 
00066 
00067 
00068 
00069 
00070 
00071 
00072 VOID DXUtil_ConvertAnsiStringToWide( WCHAR* wstrDestination, const CHAR* strSource, int cchDestChar = -1 );
00073 VOID DXUtil_ConvertWideStringToAnsi( CHAR* strDestination, const WCHAR* wstrSource, int cchDestChar = -1 );
00074 VOID DXUtil_ConvertGenericStringToAnsi( CHAR* strDestination, const TCHAR* tstrSource, int cchDestChar = -1 );
00075 VOID DXUtil_ConvertGenericStringToWide( WCHAR* wstrDestination, const TCHAR* tstrSource, int cchDestChar = -1 );
00076 VOID DXUtil_ConvertAnsiStringToGeneric( TCHAR* tstrDestination, const CHAR* strSource, int cchDestChar = -1 );
00077 VOID DXUtil_ConvertWideStringToGeneric( TCHAR* tstrDestination, const WCHAR* wstrSource, int cchDestChar = -1 );
00078 
00079 
00080 
00081 
00082 
00083 
00084 
00085 VOID DXUtil_ConvertGUIDToString( const GUID* pGuidIn, TCHAR* strOut );
00086 BOOL DXUtil_ConvertStringToGUID( const TCHAR* strIn, GUID* pGuidOut );
00087 
00088 
00089 
00090 
00091 
00092 
00093 
00094 VOID    DXUtil_Trace( TCHAR* strMsg, ... );
00095 HRESULT _DbgOut( TCHAR*, DWORD, HRESULT, TCHAR* );
00096 
00097 #if defined(DEBUG) | defined(_DEBUG)
00098     #define DXTRACE           DXUtil_Trace
00099 #else
00100     #define DXTRACE           sizeof
00101 #endif
00102 
00103 #if defined(DEBUG) | defined(_DEBUG)
00104     #define DEBUG_MSG(str)    _DbgOut( __FILE__, (DWORD)__LINE__, 0, str )
00105 #else
00106     #define DEBUG_MSG(str)    (0L)
00107 #endif
00108 
00109 
00110 
00111 
00112 #endif // DXUTIL_H