Subversion Repositories spk

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
11 cycrow 1
//-----------------------------------------------------------------------------
2
// File: DXUtil.h
3
//
4
// Desc: DirectShow sample code - helper functions and typing shortcuts for 
5
//       DirectX programming.
6
//
7
// Copyright (c) Microsoft Corporation.  All rights reserved
8
//-----------------------------------------------------------------------------
9
 
10
#ifndef DXUTIL_H
11
#define DXUTIL_H
12
 
13
//-----------------------------------------------------------------------------
14
// Miscellaneous helper functions
15
//-----------------------------------------------------------------------------
16
#define SAFE_DELETE(p)       { if(p) { delete (p);     (p)=NULL; } }
17
#define SAFE_DELETE_ARRAY(p) { if(p) { delete[] (p);   (p)=NULL; } }
18
#define SAFE_RELEASE(p)      { if(p) { (p)->Release(); (p)=NULL; } }
19
 
20
 
21
//-----------------------------------------------------------------------------
22
// Name: DXUtil_GetDXSDKMediaPath()
23
// Desc: Returns the DirectX SDK path, as stored in the system registry
24
//       during the SDK install.
25
//-----------------------------------------------------------------------------
26
const TCHAR* DXUtil_GetDXSDKMediaPath();
27
 
28
 
29
//-----------------------------------------------------------------------------
30
// Name: DXUtil_Read*RegKey() and DXUtil_Write*RegKey()
31
// Desc: Helper functions to read/write a string registry key 
32
//-----------------------------------------------------------------------------
33
HRESULT DXUtil_WriteStringRegKey( HKEY hKey, TCHAR* strRegName, TCHAR* strValue );
34
HRESULT DXUtil_WriteIntRegKey( HKEY hKey, TCHAR* strRegName, DWORD dwValue );
35
HRESULT DXUtil_WriteGuidRegKey( HKEY hKey, TCHAR* strRegName, GUID guidValue );
36
HRESULT DXUtil_WriteBoolRegKey( HKEY hKey, TCHAR* strRegName, BOOL bValue );
37
 
38
HRESULT DXUtil_ReadStringRegKey( HKEY hKey, TCHAR* strRegName, TCHAR* strValue, DWORD dwLength, TCHAR* strDefault );
39
HRESULT DXUtil_ReadIntRegKey( HKEY hKey, TCHAR* strRegName, DWORD* pdwValue, DWORD dwDefault );
40
HRESULT DXUtil_ReadGuidRegKey( HKEY hKey, TCHAR* strRegName, GUID* pGuidValue, GUID& guidDefault );
41
HRESULT DXUtil_ReadBoolRegKey( HKEY hKey, TCHAR* strRegName, BOOL* pbValue, BOOL bDefault );
42
 
43
 
44
//-----------------------------------------------------------------------------
45
// Name: DXUtil_Timer()
46
// Desc: Performs timer opertations. Use the following commands:
47
//          TIMER_RESET           - to reset the timer
48
//          TIMER_START           - to start the timer
49
//          TIMER_STOP            - to stop (or pause) the timer
50
//          TIMER_ADVANCE         - to advance the timer by 0.1 seconds
51
//          TIMER_GETABSOLUTETIME - to get the absolute system time
52
//          TIMER_GETAPPTIME      - to get the current time
53
//          TIMER_GETELAPSEDTIME  - to get the time that elapsed between 
54
//                                  TIMER_GETELAPSEDTIME calls
55
//-----------------------------------------------------------------------------
56
enum TIMER_COMMAND { TIMER_RESET, TIMER_START, TIMER_STOP, TIMER_ADVANCE,
57
                     TIMER_GETABSOLUTETIME, TIMER_GETAPPTIME, TIMER_GETELAPSEDTIME };
58
FLOAT __stdcall DXUtil_Timer( TIMER_COMMAND command );
59
 
60
 
61
//-----------------------------------------------------------------------------
62
// UNICODE support for converting between CHAR, TCHAR, and WCHAR strings
63
//-----------------------------------------------------------------------------
64
VOID DXUtil_ConvertAnsiStringToWide( WCHAR* wstrDestination, const CHAR* strSource, int cchDestChar = -1 );
65
VOID DXUtil_ConvertWideStringToAnsi( CHAR* strDestination, const WCHAR* wstrSource, int cchDestChar = -1 );
66
VOID DXUtil_ConvertGenericStringToAnsi( CHAR* strDestination, const TCHAR* tstrSource, int cchDestChar = -1 );
67
VOID DXUtil_ConvertGenericStringToWide( WCHAR* wstrDestination, const TCHAR* tstrSource, int cchDestChar = -1 );
68
VOID DXUtil_ConvertAnsiStringToGeneric( TCHAR* tstrDestination, const CHAR* strSource, int cchDestChar = -1 );
69
VOID DXUtil_ConvertWideStringToGeneric( TCHAR* tstrDestination, const WCHAR* wstrSource, int cchDestChar = -1 );
70
 
71
 
72
//-----------------------------------------------------------------------------
73
// Debug printing support
74
//-----------------------------------------------------------------------------
75
VOID    DXUtil_Trace( TCHAR* strMsg, ... );
76
HRESULT _DbgOut( TCHAR*, DWORD, HRESULT, TCHAR* );
77
 
78
#if defined(DEBUG) | defined(_DEBUG)
79
    #define DXTRACE           DXUtil_Trace
80
#else
81
    #define DXTRACE           sizeof
82
#endif
83
 
84
#if defined(DEBUG) | defined(_DEBUG)
85
    #define DEBUG_MSG(str)    _DbgOut( __FILE__, (DWORD)__LINE__, 0, str )
86
#else
87
    #define DEBUG_MSG(str)    (0L)
88
#endif
89
 
90
 
91
 
92
 
93
#endif // DXUTIL_H
94
 
95