//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1997. // // File: N C U I . H // // Contents: Common user interface routines. // // Notes: // // Author: shaunco 24 Mar 1997 // //---------------------------------------------------------------------------- #pragma once #ifndef _NCUI_H_ #define _NCUI_H_ #include "ncbase.h" inline HCURSOR BeginWaitCursor () { return SetCursor(LoadCursor(NULL, IDC_WAIT)); } inline VOID EndWaitCursor ( HCURSOR hcurPrev) { // BeginWaitCursor may return a NULL cursor. This is just // a saftey net. // if (!hcurPrev) { hcurPrev = LoadCursor(NULL, IDC_ARROW); } SetCursor(hcurPrev); } // To get an automatic wait cursor, simply declare an instance // of CWaitCursor. The cursor will be restored when the instance is // destroyed. (i.e. declare it on the stack.) // class CWaitCursor { private: HCURSOR m_hcurPrev; public: CWaitCursor () { m_hcurPrev = BeginWaitCursor (); } ~CWaitCursor () { EndWaitCursor (m_hcurPrev); } }; // // Enables or disables a set of controls in a dialog. // // Use this when you're enabling/disabling more than about two controls. // Be sure to declare the array of control ids as 'static const' if you can. // NOTHROW VOID EnableOrDisableDialogControls ( HWND hDlg, INT ccid, const INT* acid, BOOL fEnable); // // Map back and forth between a set of radio buttons and a DWORD value. // // Be sure to declare the array as 'static const' if you can. // struct RADIO_BUTTON_MAP { INT cid; // control id of radio button DWORD dwValue; // value associated with this radio button }; NOTHROW BOOL FMapRadioButtonToValue ( HWND hDlg, INT crbm, const RADIO_BUTTON_MAP* arbm, DWORD* pdwValue); NOTHROW BOOL FMapValueToRadioButton ( HWND hDlg, INT crbm, const RADIO_BUTTON_MAP* arbm, DWORD dwValue, INT* pncid); INT GetIntegerFormat ( LCID Locale, PCWSTR pszValue, PWSTR pszFormattedValue, INT cchFormattedValue); INT Format32bitInteger ( UINT32 unValue, BOOL fSigned, PWSTR pszFormattedValue, INT cchFormattedValue); INT Format64bitInteger ( UINT64 ulValue, BOOL fSigned, PWSTR pszFormattedValue, INT cchFormattedValue); BOOL SetDlgItemFormatted32bitInteger ( HWND hDlg, INT nIdDlgItem, UINT32 unValue, BOOL fSigned); BOOL SetDlgItemFormatted64bitInteger ( HWND hDlg, INT nIdDlgItem, UINT64 ulValue, BOOL fSigned); // dwFlags for HrNcQueryUserForRebootEx // // Combine both to get original behavior, or do one at a time to first prompt // then second, actually reboot. // //#define QUFR_PROMPT 0x00000001 //#define QUFR_REBOOT 0x00000002 HRESULT HrNcQueryUserForRebootEx ( HWND hwndParent, PCWSTR pszCaption, PCWSTR pszText, DWORD dwFlags); HRESULT HrNcQueryUserForReboot ( HINSTANCE hinst, HWND hwndParent, UINT unIdCaption, UINT unIdText, DWORD dwFlags); #ifdef _INC_SHELLAPI HRESULT HrShell_NotifyIcon ( DWORD dwMessage, PNOTIFYICONDATA pData); #endif // _INC_SHELLAPI NOTHROW LRESULT LresFromHr ( HRESULT hr); NOTHROW INT WINAPIV NcMsgBox ( HINSTANCE hinst, HWND hwnd, UINT unIdCaption, UINT unIdFormat, UINT unStyle, ...); NOTHROW INT WINAPIV NcMsgBoxWithVarCaption ( HINSTANCE hinst, HWND hwnd, UINT unIdCaption, PCWSTR szCaptionParam, UINT unIdFormat, UINT unStyle, ...); NOTHROW INT WINAPIV NcMsgBoxWithWin32ErrorText ( DWORD dwError, HINSTANCE hinst, HWND hwnd, UINT unIdCaption, UINT unIdCombineFormat, UINT unIdFormat, UINT unStyle, ...); VOID SendDlgItemsMessage ( HWND hDlg, INT ccid, const INT* acid, UINT unMsg, WPARAM wParam, LPARAM lParam); VOID SetDefaultButton( HWND hdlg, INT iddef); struct CONTEXTIDMAP { INT idControl; DWORD dwContextId; DWORD dwContextIdJapan; }; typedef const CONTEXTIDMAP * PCCONTEXTIDMAP; VOID OnHelpGeneric( HWND hwnd, LPHELPINFO lphi, PCCONTEXTIDMAP pContextMap, BOOL bJpn, PCWSTR pszHelpFile); #endif // _NCUI_H_