// // Microsoft Windows Media Technologies // Copyright (C) Microsoft Corporation, 1999 - 2001. All rights reserved. // // // This workspace contains two projects - // 1. ProgHelp which implements the Progress Interface // 2. The Sample application WmdmApp. // // ProgHelp.dll needs to be registered first for the SampleApp to run. #ifndef _UTIL_H #define _UTIL_H // Macros // #define MemAlloc( dw ) LocalAlloc( LPTR, dw ) #define MemFree( lpv ) { LocalFree( lpv ); lpv = NULL; } #define ExitOnTrue( f ) if( f ) goto lExit; #define ExitOnFalse( f ) if( !(f) ) goto lExit; #define ExitOnNull( x ) if( (x) == NULL ) goto lExit; #define ExitOnFail( hr ) if( FAILED(hr) ) goto lExit; #define FailOnTrue( f ) if( f ) goto lErr; #define FailOnFalse( f ) if( !(f) ) goto lErr; #define FailOnNull( x ) if( (x) == NULL ) goto lErr; #define FailOnFail( hr ) if( FAILED(hr) ) goto lErr; #define SafeRelease( i ) { if( (i) ) i->Release(); i = NULL; } // Flags for DropListToBuffer // typedef enum { LTB_NULL_TERM = 0, LTB_SPACE_SEP = 1, } LIST_TYPE; // Util functions // BOOL CenterWindow( HWND hwnd, HWND hwndRef ); VOID BringWndToTop( HWND hwnd ); DWORD GetTheFileSize( LPSTR pszFile ); VOID StripPath( LPSTR szFullPath ); LPSTR GetFileName( LPSTR szFullPath ); WPARAM DoMsgLoop( BOOL fForever ); VOID UiYield( void ); LPSTR DropListToBuffer( HDROP hDrop, LIST_TYPE listType, UINT *uNumObjs ); VOID SetRegistryParams( HINSTANCE hInst, HKEY hkeyRoot ); VOID WriteRegDword(LPSTR szPath, LPSTR szKey, DWORD dwValue); VOID WriteRegDword_StrTbl(UINT uPathID, UINT uKeyID, DWORD dwValue); VOID WriteRegStr(LPSTR szPath, LPSTR szKey, LPSTR szValue); VOID WriteRegStr_StrTbl(UINT uPathID, UINT uKeyID, LPSTR szValue); DWORD GetRegDword(LPSTR szPath, LPSTR szKey, DWORD dwDefault, BOOL bStore); DWORD GetRegDword_StrTbl(UINT uPathID, UINT uKeyID, DWORD dwDefault, BOOL bStore); LPSTR GetRegStr(LPSTR szPath, LPSTR szKey, LPSTR szDefault, BOOL bStore); LPSTR GetRegStr_StrTbl(UINT uPathID, UINT uKeyID, LPSTR szDefault, BOOL bStore); LPSTR GetRegStr_StrTblDefault(UINT uPathID, UINT uKeyID, UINT uDefaultID, BOOL bStore); HANDLE WaitForMutex( LPSTR pszMutexName, DWORD dwRetryTime, DWORD dwTimeout ); LPSTR FormatBytesToSz( DWORD dwLowBytes, DWORD dwHighBytes, DWORD dwMultiplier, LPSTR psz, size_t cbMax); LPSTR FormatBytesToKB_Sz( DWORD dwBytes, LPSTR pszKB, size_t cbMax ); LPSTR FormatKBToKB_Sz( DWORD dwKB, LPSTR pszKB, size_t cbMax ); LPSTR FormatKBToMB_Sz( DWORD dwKB, LPSTR pszMB, size_t cbMax ); LPSTR FormatSystemTimeToSz( SYSTEMTIME *pSysTime, LPSTR pszDateTime, DWORD cchMax ); LPARAM ListView_GetLParam( HWND hwndListView, INT nItem ); LPARAM TreeView_GetLParam( HWND hwndTreeView, HTREEITEM hItem ); BOOL TreeView_SetLParam( HWND hwndTreeView, HTREEITEM hItem, LPARAM lParam ); INT GetShellIconIndex( LPCSTR pszItemName, LPTSTR szTypeBuffer, UINT cMaxChars ); HICON GetShellIcon( LPCSTR pszItemName, BOOL bDirectory ); #endif // _UTIL_H