/*++ Copyright (c) 1990-1995 Microsoft Corporation Module Name: dlgctrl.h Abstract: This module contains predefines and prototypes for the dialog box control for the commoon UI Author: 28-Aug-1995 Mon 12:14:51 created -by- Daniel Chou (danielc) [Environment:] NT Windows - Common Printer Driver UI DLL. [Notes:] Revision History: --*/ #define CTRLS_FIRST 0x80 #define CTRLS_RADIO 0x80 #define CTRLS_UDARROW 0x81 #define CTRLS_UDARROW_EDIT 0x82 #define CTRLS_TRACKBAR 0x83 #define CTRLS_HSCROLL 0x84 #define CTRLS_VSCROLL 0x85 #define CTRLS_LISTBOX 0x86 #define CTRLS_COMBOBOX 0x87 #define CTRLS_EDITBOX 0x88 #define CTRLS_PUSHBUTTON 0x89 #define CTRLS_CHKBOX 0x8a #define CTRLS_EXTCHKBOX 0x8b #define CTRLS_EXTPUSH 0x8c #define CTRLS_TV_WND 0x8d #define CTRLS_TV_STATIC 0x8e #define CTRLS_PROPPAGE_STATIC 0x8f #define CTRLS_PROPPAGE_ICON 0x90 #define CTRLS_ECBICON 0x91 #define CTRLS_NOINPUT 0x92 #define CTRLS_LAST 0x92 #define INITCF_ENABLE 0x0001 #define INITCF_INIT 0x0002 #define INITCF_SETCTRLDATA 0x0004 #define INITCF_ADDSELPOSTFIX 0x0008 #define INITCF_ICON_NOTIFY 0x0010 #define INITCF_HAS_EXT 0x0020 #define INITCF_TVDLG 0x0040 #define CTRLDATA_ITEMIDX_ADD 11 #define SETCTRLDATA(hCtrl, CtrlStyle, CtrlData) \ { \ SetWindowLongPtr((hCtrl), \ GWLP_USERDATA, \ (LPARAM)MAKELONG(MAKEWORD((CtrlData),(CtrlStyle)), \ (InitItemIdx+CTRLDATA_ITEMIDX_ADD))); \ } #define HCTRL_SETCTRLDATA(hCtrl, CtrlStyle, CtrlData) \ { \ if ((hCtrl) && (InitFlags & INITCF_SETCTRLDATA)) { \ \ SETCTRLDATA(hCtrl, CtrlStyle, CtrlData); \ } \ } #define GETCTRLITEMIDX(dw) (HIWORD(dw)-CTRLDATA_ITEMIDX_ADD) #define GETCTRLDATA(dw,i,s,d) (i)=GETCTRLITEMIDX(dw); \ (d)=LOBYTE(LOWORD(dw));(s)=HIBYTE(LOWORD(dw)) #define REAL_ECB_CHECKED(pItem, pECB) \ (BOOL)(((pECB) = (pItem)->pExtChkBox) && \ (((pItem)->Flags & (OPTIF_EXT_HIDE | OPTIF_EXT_IS_EXTPUSH | \ OPTIF_ECB_CHECKED)) == OPTIF_ECB_CHECKED)) #define INIT_EXTENDED(pTVWnd,hDlg,pItem,ecbID,epID,IconID,Idx,InitFlags) \ ((pItem->Flags & OPTIF_EXT_IS_EXTPUSH) ? \ InitExtPush(pTVWnd,hDlg,pItem,ecbID,epID,IconID,Idx,InitFlags) : \ InitExtChkBox(pTVWnd,hDlg,pItem,ecbID,epID,IconID,Idx,InitFlags)) typedef struct _DLGIDINFO { HWND hDlg; DWORD CurID; } DLGIDINFO, *PDLGIDINFO; // // Prototypes // VOID SetUniqChildID( HWND hDlg ); BOOL hCtrlrcWnd( HWND hDlg, HWND hCtrl, RECT *prc ); HWND CtrlIDrcWnd( HWND hDlg, UINT CtrlID, RECT *prc ); BOOL ChkEditKEYDOWN( HWND hWnd, WPARAM VKey ); BOOL ChkhWndEdit0KEYDOWN( HWND hWnd, WPARAM VKey ); DWORD ReCreateLBCB( HWND hDlg, UINT CtrlID, BOOL IsLB ); HWND CreateTrackBar( HWND hDlg, UINT TrackBarID ); HWND CreateUDArrow( HWND hDlg, UINT EditBoxID, UINT UDArrowID, LONG RangeL, LONG RangeH, LONG Pos ); BOOL SetDlgPageItemName( HWND hDlg, PTVWND pTVWnd, POPTITEM pItem, UINT InitFlags, UINT UDArrowHelpID ); BOOL InitExtPush( PTVWND pTVWnd, HWND hDlg, POPTITEM pItem, UINT ExtChkBoxID, UINT ExtPushID, UINT ExtIconID, WORD InitItemIdx, WORD InitFlags ); BOOL InitExtChkBox( PTVWND pTVWnd, HWND hDlg, POPTITEM pItem, UINT ExtChkBoxID, UINT ExtPushID, UINT ExtIconID, WORD InitItemIdx, WORD InitFlags ); UINT InitStates( PTVWND pTVWnd, HWND hDlg, POPTITEM pItem, POPTTYPE pOptType, UINT IDState1, WORD InitItemIdx, LONG NewSel, WORD InitFlags ); LONG InitUDArrow( PTVWND pTVWnd, HWND hDlg, POPTITEM pItem, POPTPARAM pOptParam, UINT UDArrowID, UINT EditBoxID, UINT PostfixID, UINT HelpID, WORD InitItemIdx, LONG NewPos, WORD InitFlags ); VOID InitTBSB( PTVWND pTVWnd, HWND hDlg, POPTITEM pItem, HWND hTBSB, POPTTYPE pOptType, UINT PostfixID, UINT RangeLID, UINT RangeHID, WORD InitItemIdx, LONG NewPos, WORD InitFlags ); VOID InitLBCB( PTVWND pTVWnd, HWND hDlg, POPTITEM pItem, UINT idLBCB, UINT SetCurSelID, POPTTYPE pOptType, WORD InitItemIdx, LONG NewSel, WORD InitFlags, UINT cyLBCBMax ); VOID InitEditBox( PTVWND pTVWnd, HWND hDlg, POPTITEM pItem, POPTPARAM pOptParam, UINT EditBoxID, UINT PostfixID, UINT HelpID, WORD InitItemIdx, LPTSTR pCurText, WORD InitFlags ); VOID InitPushButton( PTVWND pTVWnd, HWND hDlg, POPTITEM pItem, WORD PushID, WORD InitItemIdx, WORD InitFlags ); VOID InitChkBox( PTVWND pTVWnd, HWND hDlg, POPTITEM pItem, UINT ChkBoxID, LPTSTR pTitle, WORD InitItemIdx, BOOL Checked, WORD InitFlags ); LONG DoCallBack( HWND hDlg, PTVWND pTVWnd, POPTITEM pItem, LPVOID pOldSel, _CPSUICALLBACK pfnCallBack, HANDLE hDlgTemplate, WORD DlgTemplateID, WORD Reason ); POPTITEM pItemFromhWnd( HWND hDlg, PTVWND pTVWnd, HWND hCtrl, LONG MousePos ); VOID DoContextMenu( PTVWND pTVWnd, HWND hDlg, POPTITEM pItem, LPARAM Pos ); UINT UpdateInternalDMPUB( HWND hDlg, PTVWND pTVWnd, POPTITEM pItem ); VOID UpdateOptTypeIcon16( POPTTYPE pOptType ); BOOL DrawLBCBItem( PTVWND pTVWnd, LPDRAWITEMSTRUCT pdis ); POPTITEM DlgHScrollCommand( HWND hDlg, PTVWND pTVWnd, HWND hCtrl, WPARAM wParam ); LONG UpdateCallBackChanges( HWND hDlg, PTVWND pTVWnd, BOOL ReInit ); BOOL DoAbout( HWND hDlg, PTVWND pTVWnd, POPTITEM pItemRoot );