/******************************************************************************* * * (C) COPYRIGHT MICROSOFT CORPORATION, 1998 * * TITLE: PVIEWIDS.H * * VERSION: 1.0 * * AUTHOR: ShaunIv * * DATE: 8/12/1999 * * DESCRIPTION: Message and other constants used by the preview control * *******************************************************************************/ #ifndef __PVIEWIDS_H_INCLUDED #define __PVIEWIDS_H_INCLUDED #ifdef __cplusplus extern "C" { #endif #define IDC_INNER_PREVIEW_WINDOW 23401 void WINAPI RegisterWiaPreviewClasses( HINSTANCE hInstance ); /************************************************************** * * Window class names * **************************************************************/ #define PREVIEW_WINDOW_CLASSW L"WiaPreviewControl" #define PREVIEW_WINDOW_CLASSA "WiaPreviewControl" #define PREVIEW_WINDOW_FRAME_CLASSW L"WiaPreviewControlFrame" #define PREVIEW_WINDOW_FRAME_CLASSA "WiaPreviewControlFrame" #if defined(UNICODE) || defined(_UNICODE) #define PREVIEW_WINDOW_CLASS PREVIEW_WINDOW_CLASSW #define PREVIEW_WINDOW_FRAME_CLASS PREVIEW_WINDOW_FRAME_CLASSW #else #define PREVIEW_WINDOW_CLASS PREVIEW_WINDOW_CLASSA #define PREVIEW_WINDOW_FRAME_CLASS PREVIEW_WINDOW_FRAME_CLASSA #endif /************************************************************** * * Notification codes, sent via WM_COMMAND * **************************************************************/ #define PWN_SELCHANGE 1 /************************************************************** * * Messages and flags * **************************************************************/ //wParam = 0, lParam = LPSIZE lpResolution #define PWM_SETRESOLUTION (WM_USER+601) //wParam = 0, lParam = 0 #define PWM_CLEARSELECTION (WM_USER+602) //wParam = 0, lParam = LPSIZE pSize #define PWM_GETIMAGESIZE (WM_USER+603) // wParam = MAKEWPARAM(bRepaint,bDontDestroy), lParam = (HBITMAP)hBmp #define PWM_SETBITMAP (WM_USER+604) // wParam = 0, lParam = 0 #define PWM_GETBITMAP (WM_USER+605) // wParam = 0, lParam = LPSIZE lpResolution #define PWM_GETRESOLUTION (WM_USER+606) // wParam = bOuter, lParam = 0 #define PWM_GETBORDERSIZE (WM_USER+607) // wParam = 0, lParam = 0 #define PWM_GETHANDLESIZE (WM_USER+608) // wParam = 0, lParam = 0 #define PWM_GETBGALPHA (WM_USER+609) // wParam = 0, lParam = 0 #define PWM_GETHANDLETYPE (WM_USER+610) // wParam = (BOOL)MAKEWPARAM(bRepaint,bOuter), lParam = (UINT)nBorderSize #define PWM_SETBORDERSIZE (WM_USER+611) // wParam = (BOOL)bRepaint, lParam = (UINT)nHandleSize #define PWM_SETHANDLESIZE (WM_USER+612) // wParam = (BOOL)bRepaint, lParam = (BYTE)nAlpha #define PWM_SETBGALPHA (WM_USER+613) #define PREVIEW_WINDOW_SQUAREHANDLES 0x00000000 #define PREVIEW_WINDOW_ROUNDHANDLES 0x00000001 #define PREVIEW_WINDOW_FILLEDHANDLES 0x00000000 #define PREVIEW_WINDOW_HOLLOWHANDLES 0x00010000 // wParam = (BOOL)bRepaint, lParam = (int)nHandleType #define PWM_SETHANDLETYPE (WM_USER+614) // wParam = 0, lParam = 0 #define PWM_GETSELCOUNT (WM_USER+615) // wParam = (BOOL)MAKEWPARAM((WORD)nItem,(BOOL)bPhysical), lParam = (PPOINT)pOrigin #define PWM_GETSELORIGIN (WM_USER+616) // wParam = (BOOL)MAKEWPARAM((WORD)nItem,(BOOL)bPhysical), lParam = (PSIZE)pExtent #define PWM_GETSELEXTENT (WM_USER+617) // wParam = 0, lParam = 0 #define PWM_GETALLOWNULLSELECTION (WM_USER+618) // wParam = (BOOL)bAllowNullSelection, lParam = 0 #define PWM_SETALLOWNULLSELECTION (WM_USER+619) // wParam = 0, lParam = 0 #define PWM_SELECTIONDISABLED (WM_USER+620) // wParam = (BOOL)bDisableSelection, lParam = 0 #define PWM_DISABLESELECTION (WM_USER+621) // wParam = 0, lParam = 0 #define PWM_DETECTREGIONS (WM_USER+622) // wParam = MAKEWPARAM(bOuterBorder,0), lParam = 0 #define PWM_GETBKCOLOR (WM_USER+623) // wParam = MAKEWPARAM(bOuterBorder,bRepaint), lParam = (COLORREF)color #define PWM_SETBKCOLOR (WM_USER+624) // wParam = 0, lParam = (LPSIZE)pSize #define PWM_SETDEFASPECTRATIO (WM_USER+625) // wParam = 0, lParam = (BOOL)bPreviewMode #define PWM_SETPREVIEWMODE (WM_USER+626) // wParam = 0, lParam = 0 #define PWM_GETPREVIEWMODE (WM_USER+627) // wParam = MAKEWPARAM(bRepaint,0), lParam = MAKELPARAM(nBorderStyle,nBorderThickness) #define PWM_SETBORDERSTYLE (WM_USER+628) #define PREVIEW_WINDOW_SELECTED 0x00000000 #define PREVIEW_WINDOW_UNSELECTED 0x00000001 #define PREVIEW_WINDOW_DISABLED 0x00000002 // wParam = MAKEWPARAM(bRepaint,nState), lParam = (COLORREF)crColor #define PWM_SETBORDERCOLOR (WM_USER+629) // wParam = MAKEWPARAM(bRepaint,nState), lParam = (COLORREF)crColor #define PWM_SETHANDLECOLOR (WM_USER+630) // wParam = 0, lParam = (SIZE *)psizeClient #define PWM_GETCLIENTSIZE (WM_USER+631) // wParam = 0, lParam = BOOL bEnable #define PWM_SETENABLESTRETCH (WM_USER+632) // wParam = 0, lParam = 0 #define PWM_GETENABLESTRETCH (WM_USER+633) // wParam = 0, lParam = bHide #define PWM_HIDEEMPTYPREVIEW (WM_USER+634) #define PREVIEW_WINDOW_CENTER 0x0000 #define PREVIEW_WINDOW_RIGHT 0x0001 #define PREVIEW_WINDOW_LEFT 0x0002 #define PREVIEW_WINDOW_TOP 0x0004 #define PREVIEW_WINDOW_BOTTOM 0x0008 // wParam = bRedraw, lParam = MAKELPARAM(horz,vert) #define PWM_SETPREVIEWALIGNMENT (WM_USER+635) // wParam = (BOOL)MAKEWPARAM((WORD)nItem,(BOOL)bPhysical), lParam = (PPOINT)pOrigin #define PWM_SETSELORIGIN (WM_USER+636) // wParam = (BOOL)MAKEWPARAM((WORD)nItem,(BOOL)bPhysical), lParam = (PSIZE)pExtent #define PWM_SETSELEXTENT (WM_USER+637) // wParam = 0, LPARAM = 0 #define PWM_REFRESHBITMAP (WM_USER+638) // // wParam = bShow, lParam = 0 // #define PWM_SETPROGRESS (WM_USER+639) // // wParam = 0, lParam = 0 // #define PWM_GETPROGRESS (WM_USER+640) // // wParam = BOOL bUserChanged, lParam = 0 // #define PWM_SETUSERCHANGEDSELECTION (WM_USER+641) // // wParam = 0, lParam = 0 // #define PWM_GETUSERCHANGEDSELECTION (WM_USER+642) /************************************************************** * * inline WINAPI message wrapper helpers * **************************************************************/ #ifdef __cplusplus // C doesn't know what inline WINAPI is... inline void WINAPI WiaPreviewControl_SetResolution( HWND hWnd, SIZE *pResolution) { ::SendMessage( hWnd, PWM_SETRESOLUTION, 0, reinterpret_cast(pResolution) ); } inline void WINAPI WiaPreviewControl_ClearSelection( HWND hWnd ) { ::SendMessage( hWnd, PWM_CLEARSELECTION, 0, 0 ); } inline BOOL WINAPI WiaPreviewControl_GetImageSize( HWND hWnd, SIZE *pSize ) { return static_cast(::SendMessage( hWnd, PWM_GETIMAGESIZE, 0, reinterpret_cast(pSize))); } inline void WINAPI WiaPreviewControl_SetBitmap( HWND hWnd, BOOL bRepaint, BOOL bDontDestroy, HBITMAP hBitmap ) { ::SendMessage( hWnd, PWM_SETBITMAP, MAKEWPARAM(bRepaint,bDontDestroy), reinterpret_cast(hBitmap) ); } inline HBITMAP WINAPI WiaPreviewControl_GetBitmap( HWND hWnd ) { return reinterpret_cast(::SendMessage( hWnd, PWM_GETBITMAP, 0, 0 )); } inline BOOL WINAPI WiaPreviewControl_GetResolution( HWND hWnd, SIZE *pResolution ) { return static_cast(::SendMessage( hWnd, PWM_GETRESOLUTION, 0, reinterpret_cast(pResolution))); } inline UINT WINAPI WiaPreviewControl_GetBorderSize( HWND hWnd, BOOL bOuter ) { return static_cast(::SendMessage( hWnd, PWM_GETBORDERSIZE, bOuter, 0 )); } inline UINT WINAPI WiaPreviewControl_GetHandleSize( HWND hWnd ) { return static_cast(::SendMessage( hWnd, PWM_GETHANDLESIZE, 0, 0 )); } inline BYTE WINAPI WiaPreviewControl_GetBgAlpha( HWND hWnd ) { return static_cast(::SendMessage( hWnd, PWM_GETBGALPHA, 0, 0 )); } inline int WINAPI WiaPreviewControl_GetHandleType( HWND hWnd ) { return static_cast(::SendMessage( hWnd, PWM_GETHANDLETYPE, 0, 0 )); } inline void WINAPI WiaPreviewControl_SetBorderSize( HWND hWnd, BOOL bRepaint, BOOL bOuter, UINT nBorderSize ) { ::SendMessage( hWnd, PWM_SETBORDERSIZE, MAKEWPARAM(bRepaint,bOuter), nBorderSize ); } inline void WINAPI WiaPreviewControl_SetHandleSize( HWND hWnd, BOOL bRepaint, UINT nHandleSize ) { ::SendMessage( hWnd, PWM_SETHANDLESIZE, bRepaint, nHandleSize ); } inline void WINAPI WiaPreviewControl_SetBgAlpha( HWND hWnd, BOOL bRepaint, BYTE nAlpha ) { ::SendMessage( hWnd, PWM_SETBGALPHA, bRepaint, nAlpha ); } inline void WINAPI WiaPreviewControl_SetHandleType( HWND hWnd, BOOL bRepaint, int nHandleType ) { ::SendMessage( hWnd, PWM_SETHANDLETYPE, bRepaint, nHandleType ); } inline WORD WINAPI WiaPreviewControl_GetSelCount( HWND hWnd ) { return static_cast(::SendMessage( hWnd, PWM_GETSELCOUNT, 0, 0 )); } inline BOOL WINAPI WiaPreviewControl_GetSelOrigin( HWND hWnd, WORD nItem, BOOL bPhysical, POINT *pOrigin ) { return static_cast(::SendMessage( hWnd, PWM_GETSELORIGIN, MAKEWPARAM(nItem,bPhysical), reinterpret_cast(pOrigin))); } inline BOOL WINAPI WiaPreviewControl_GetSelExtent( HWND hWnd, WORD nItem, BOOL bPhysical, SIZE *pExtent ) { return static_cast(::SendMessage( hWnd, PWM_GETSELEXTENT, MAKEWPARAM(nItem,bPhysical), reinterpret_cast(pExtent))); } inline BOOL WINAPI WiaPreviewControl_SetSelOrigin( HWND hWnd, WORD nItem, BOOL bPhysical, POINT *pOrigin ) { return static_cast(::SendMessage( hWnd, PWM_SETSELORIGIN, MAKEWPARAM(nItem,bPhysical), reinterpret_cast(pOrigin))); } inline BOOL WINAPI WiaPreviewControl_SetSelExtent( HWND hWnd, WORD nItem, BOOL bPhysical, SIZE *pExtent ) { return static_cast(::SendMessage( hWnd, PWM_SETSELEXTENT, MAKEWPARAM(nItem,bPhysical), reinterpret_cast(pExtent))); } inline BOOL WINAPI WiaPreviewControl_NullSelectionAllowed( HWND hWnd ) { return static_cast(::SendMessage( hWnd, PWM_GETALLOWNULLSELECTION, 0, 0 )); } inline void WINAPI WiaPreviewControl_AllowNullSelection( HWND hWnd, BOOL bAllowNullSelection ) { ::SendMessage( hWnd, PWM_SETALLOWNULLSELECTION, bAllowNullSelection, 0 ); } inline BOOL WINAPI WiaPreviewControl_SelectionDisabled( HWND hWnd ) { return static_cast(::SendMessage( hWnd, PWM_SELECTIONDISABLED, 0, 0 )); } inline void WINAPI WiaPreviewControl_DisableSelection( HWND hWnd, BOOL bDisableSelection ) { ::SendMessage( hWnd, PWM_DISABLESELECTION, bDisableSelection, 0 ); } inline BOOL WINAPI WiaPreviewControl_DetectRegions( HWND hWnd ) { return static_cast(::SendMessage( hWnd, PWM_DETECTREGIONS, 0, 0 )); } inline COLORREF WINAPI WiaPreviewControl_GetBkColor( HWND hWnd, BOOL bOuterBorder ) { return static_cast(::SendMessage( hWnd, PWM_GETBKCOLOR, MAKEWPARAM(bOuterBorder,0), 0 )); } inline void WINAPI WiaPreviewControl_SetBkColor( HWND hWnd, BOOL bRepaint, BOOL bOuterBorder, COLORREF color ) { ::SendMessage( hWnd, PWM_SETBKCOLOR, MAKEWPARAM(bOuterBorder,bRepaint), color ); } inline void WINAPI WiaPreviewControl_SetDefAspectRatio( HWND hWnd, SIZE *pAspectRatio ) { ::SendMessage( hWnd, PWM_SETDEFASPECTRATIO, 0, reinterpret_cast(pAspectRatio) ); } inline void WINAPI WiaPreviewControl_SetPreviewMode( HWND hWnd, BOOL bPreviewMode ) { ::SendMessage( hWnd, PWM_SETPREVIEWMODE, 0, static_cast(bPreviewMode) ); } inline BOOL WINAPI WiaPreviewControl_GetPreviewMode( HWND hWnd ) { return static_cast(::SendMessage( hWnd, PWM_GETPREVIEWMODE, 0, 0 )); } inline void WINAPI WiaPreviewControl_SetBorderStyle( HWND hWnd, BOOL bRepaint, WORD nBorderStyle, WORD nBorderThickness ) { ::SendMessage( hWnd, PWM_SETBORDERSTYLE, MAKEWPARAM(bRepaint,0), MAKELPARAM(nBorderStyle,nBorderThickness) ); } inline void WINAPI WiaPreviewControl_SetBorderColor( HWND hWnd, BOOL bRepaint, WORD nState, COLORREF crColor ) { ::SendMessage( hWnd, PWM_SETBORDERCOLOR, MAKEWPARAM(bRepaint,nState), static_cast(crColor) ); } inline void WINAPI WiaPreviewControl_SetHandleColor( HWND hWnd, BOOL bRepaint, WORD nState, COLORREF crColor ) { ::SendMessage( hWnd, PWM_SETHANDLECOLOR, MAKEWPARAM(bRepaint,nState), static_cast(crColor) ); } inline BOOL WINAPI WiaPreviewControl_GetClientSize( HWND hWnd, SIZE *psizeClient ) { return static_cast(::SendMessage( hWnd, PWM_GETCLIENTSIZE, 0, reinterpret_cast(psizeClient) ) ); } inline BOOL WINAPI WiaPreviewControl_GetEnableStretch( HWND hWnd ) { return static_cast(::SendMessage( hWnd, PWM_GETENABLESTRETCH, 0, 0 ) ); } inline void WINAPI WiaPreviewControl_SetEnableStretch( HWND hWnd, BOOL bEnable ) { ::SendMessage( hWnd, PWM_SETENABLESTRETCH, 0, bEnable ); } inline void WINAPI WiaPreviewControl_HideEmptyPreview( HWND hWnd, BOOL bHide ) { ::SendMessage( hWnd, PWM_HIDEEMPTYPREVIEW, 0, bHide ); } inline void WINAPI WiaPreviewControl_SetPreviewAlignment( HWND hWnd, WORD fHorizontal, WORD fVertical, BOOL bRepaint ) { ::SendMessage( hWnd, PWM_SETPREVIEWALIGNMENT, bRepaint, MAKELPARAM(fHorizontal,fVertical) ); } inline void WINAPI WiaPreviewControl_RefreshBitmap( HWND hWnd ) { ::SendMessage( hWnd, PWM_REFRESHBITMAP, 0, 0 ); } inline BOOL WINAPI WiaPreviewControl_SetProgress( HWND hWnd, BOOL bSet ) { return static_cast(::SendMessage( hWnd, PWM_SETPROGRESS, bSet, 0 ) ); } inline BOOL WINAPI WiaPreviewControl_GetProgress( HWND hWnd ) { return static_cast(::SendMessage( hWnd, PWM_GETPROGRESS, 0, 0 ) ); } inline BOOL WINAPI WiaPreviewControl_GetUserChangedSelection( HWND hWnd ) { return static_cast(::SendMessage( hWnd, PWM_GETUSERCHANGEDSELECTION, 0, 0 ) ); } inline BOOL WINAPI WiaPreviewControl_SetUserChangedSelection( HWND hWnd, BOOL bUserChangedSelection ) { return static_cast(::SendMessage( hWnd, PWM_SETUSERCHANGEDSELECTION, bUserChangedSelection, 0 ) ); } #endif // __cplusplus #ifdef __cplusplus } #endif #endif // __PVIEWIDS_H_INCLUDED