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