WindowsXP-SP1/enduser/netmeeting/nmrk/util.h
2020-09-30 16:53:49 +02:00

107 lines
4.1 KiB
C

#ifndef __util_h__
#define __util_h__
#define ARRAY_SIZE( A ) ( sizeof(A) / sizeof(A[0]) )
#define CCHMAX ARRAY_SIZE
void ErrorMessage( void );
void ErrorMessage( LPCTSTR str, HRESULT hr );
HRESULT LPTSTR_to_BSTR(BSTR *pbstr, LPCTSTR psz);
HRESULT BSTR_to_LPTSTR(LPTSTR *ppsz, BSTR bstr);
#define RETFAIL( x ) if( false == ( x ) ) { ErrorMessage( "", GetLastError() ); assert( 0 ); return false; }
#define RETNULL( x ) if( NULL == ( x ) ) { ErrorMessage( "", GetLastError() ); assert( 0 ); return NULL; }
//-------------------------------------------------------------------
// Track Bar Helper Macros
//-------------------------------------------------------------------
// Pilfered from Petzold, "Programming Windows 95", Chapter 12, comctlhlp.h
#define TrackBar_ClearSel(hwnd, fRedraw) \
(void)SendMessage((hwnd), TBM_CLEARSEL, (WPARAM) (BOOL) fRedraw, 0L)
#define TrackBar_ClearTics(hwnd, fRedraw) \
(void)SendMessage((hwnd), TBM_CLEARTICS, (WPARAM) (BOOL) fRedraw, 0L)
#define TrackBar_GetChannelRect(hwnd, lprc) \
(void)SendMessage((hwnd), TBM_GETCHANNELRECT, 0, (LPARAM) (LPRECT) lprc)
#define TrackBar_GetLineSize(hwnd) \
(LONG)SendMessage((hwnd), TBM_GETLINESIZE, 0, 0L)
#define TrackBar_GetNumTics(hwnd) \
(LONG)SendMessage((hwnd), TBM_GETNUMTICS, 0, 0L)
#define TrackBar_GetPageSize(hwnd) \
(LONG)SendMessage((hwnd), TBM_GETPAGESIZE, 0, 0L)
#define TrackBar_GetPos(hwnd) \
(LONG)SendMessage((hwnd), TBM_GETPOS, 0, 0L)
#define TrackBar_GetPTics(hwnd) \
(LPLONG)SendMessage((hwnd), TBM_GETPTICS, 0, 0L)
#define TrackBar_GetRangeMax(hwnd) \
(LONG)SendMessage((hwnd), TBM_GETRANGEMAX, 0, 0L)
#define TrackBar_GetRangeMin(hwnd) \
(LONG)SendMessage((hwnd), TBM_GETRANGEMIN, 0, 0L)
#define TrackBar_GetSelEnd(hwnd) \
(LONG)SendMessage((hwnd), TBM_GETSELEND, 0, 0L)
#define TrackBar_GetSelStart(hwnd) \
(LONG)SendMessage((hwnd), TBM_GETSELSTART, 0, 0L)
#define TrackBar_GetThumbLength(hwnd) \
(UINT)SendMessage((hwnd), TBM_GETTHUMBLENGTH, 0, 0L)
#define TrackBar_GetThumbRect(hwnd, lprc) \
(void)SendMessage((hwnd), TBM_GETTHUMBRECT, 0, (LPARAM) (LPRECT) lprc)
#define TrackBar_GetTic(hwnd, iTic) \
(LONG)SendMessage((hwnd), TBM_GETTIC, (WPARAM) (WORD) iTic, 0L)
#define TrackBar_GetTicPos(hwnd, iTic) \
(LONG)SendMessage((hwnd), TBM_GETTICPOS, (WPARAM) (WORD) iTic, 0L)
#define TrackBar_SetLineSize(hwnd, lLineSize) \
(LONG)SendMessage((hwnd), TBM_SETLINESIZE, 0, (LONG) lLineSize)
#define TrackBar_SetPageSize(hwnd, lPageSize) \
(LONG)SendMessage((hwnd), TBM_SETPAGESIZE, 0, (LONG) lPageSize)
#define TrackBar_SetPos(hwnd, bPosition, lPosition) \
(void)SendMessage((hwnd), TBM_SETPOS, (WPARAM) (BOOL) bPosition, (LPARAM) (LONG) lPosition)
#define TrackBar_SetRange(hwnd, bRedraw, lMinimum, lMaximum) \
(void)SendMessage((hwnd), TBM_SETRANGE, (WPARAM) (BOOL) bRedraw, (LPARAM) MAKELONG(lMinimum, lMaximum))
#define TrackBar_SetRangeMax(hwnd, bRedraw, lMaximum) \
(void)SendMessage((hwnd), TBM_SETRANGEMAX, (WPARAM) bRedraw, (LPARAM) lMaximum)
#define TrackBar_SetRangeMin(hwnd, bRedraw, lMinimum) \
(void)SendMessage((hwnd), TBM_SETRANGEMIN, (WPARAM) bRedraw, (LPARAM) lMinimum)
#define TrackBar_SetSel(hwnd, bRedraw, lMinimum, lMaximum) \
(void)SendMessage((hwnd), TBM_SETSEL, (WPARAM) (BOOL) bRedraw, (LPARAM) MAKELONG(lMinimum, lMaximum))
#define TrackBar_SetSelEnd(hwnd, bRedraw, lEnd) \
(void)SendMessage((hwnd), TBM_SETSELEND, (WPARAM) (BOOL) bRedraw, (LPARAM) (LONG) lEnd)
#define TrackBar_SetSelStart(hwnd, bRedraw, lStart) \
(void)SendMessage((hwnd), TBM_SETSELSTART, (WPARAM) (BOOL) bRedraw, (LPARAM) (LONG) lStart)
#define TrackBar_SetThumbLength(hwnd, iLength) \
(void)SendMessage((hwnd), TBM_SETTHUMBLENGTH, (WPARAM) (UINT) iLength, 0L)
#define TrackBar_SetTic(hwnd, lPosition) \
(BOOL)SendMessage((hwnd), TBM_SETTIC, 0, (LPARAM) (LONG) lPosition)
#define TrackBar_SetTicFreq(hwnd, wFreq, lPosition) \
(void)SendMessage((hwnd), TBM_SETTICFREQ, (WPARAM) wFreq, (LPARAM) (LONG) lPosition)
#endif // __util_h__