/*++ Copyright (C) Microsoft Corporation, 1995 - 1999 All rights reserved. Module Name: util.hxx Abstract: Holds util prototypes Author: Albert Ting (AlbertT) 27-Jan-1995 Revision History: --*/ #ifndef _UTIL_HXX #define _UTIL_HXX // // -1 indicates GetLastError should be used instead of the input value. // const DWORD kMsgGetLastError = (DWORD)-1; const DWORD kMsgNone = 0; const UINT kMaxEditText = 4096; typedef struct MSG_ERRMAP { DWORD dwError; // Error code to map UINT idsString; // Mapped message in resouce file } *PMSG_ERRMAP; typedef struct MSG_HLPMAP { DWORD dwError; // Error code to map UINT uIdMessage; // Mapped message in resouce file LPCTSTR pszHelpFile; // Name of Troubleshooter URL } *PMSG_HLPMAP; LPTSTR pszStrCat( LPTSTR pszDest, LPCTSTR pszSource, UINT& cchDest ); INT iMessage( IN HWND hwnd, IN UINT idsTitle, IN UINT idsMessage, IN UINT uType, IN DWORD dwLastError, IN const PMSG_ERRMAP pMsgErrMap ... ); INT iMessage2( IN HWND hwnd, IN LPCTSTR pszTitle, IN LPCTSTR pszMessage, IN UINT uType, IN DWORD dwLastError, IN const PMSG_ERRMAP pMsgErrMap ... ); INT iMessageEx( IN HWND hwnd, IN UINT idsTitle, IN UINT idsMessage, IN UINT uType, IN DWORD dwLastError, IN const PMSG_ERRMAP pMsgErrMap, IN UINT idMessage, IN const PMSG_HLPMAP pHlpErrMap, ... ); HRESULT Internal_Message( OUT INT *piResult, IN HINSTANCE hModule, IN HWND hwnd, IN LPCTSTR pszTitle, IN LPCTSTR pszMessage, IN UINT uType, IN DWORD dwLastError, IN const PMSG_ERRMAP pMsgErrMap, IN UINT idMessage, IN const PMSG_HLPMAP pHlpErrMap, IN va_list valist ); VOID vShowResourceError( HWND hwnd ); VOID vShowUnexpectedError( HWND hwnd, UINT idsTitle ); VOID vPrinterSplitFullName( IN LPTSTR pszScratch, IN DWORD cchScratchSize, IN LPCTSTR pszFullName, IN LPCTSTR *ppszServer, IN LPCTSTR *ppszPrinter ); BOOL bBuildFullPrinterName( IN LPCTSTR pszServer, IN LPCTSTR pszPrinterName, IN TString &strFullName ); BOOL bGetMachineName( IN OUT TString &strMachineName, IN BOOL bNoLeadingSlashes = FALSE ); BOOL NewFriendlyName( IN LPCTSTR pszServerName, IN LPCTSTR lpBaseName, OUT LPTSTR lpNewName, IN size_t cchNewNameMax, IN OUT WORD *pwInstance = NULL ); BOOL CreateUniqueName( IN LPTSTR lpDest, IN UINT cchMaxChars, IN LPCTSTR lpBaseName, IN WORD wInstance ); BOOL bSplitPath( IN LPTSTR pszScratch, IN size_t cchScratch, IN LPCTSTR *ppszFile, IN LPCTSTR *ppszPath, IN LPCTSTR *ppszExt, IN LPCTSTR pszFull ); BOOL bCopyMultizString( IN LPTSTR *ppszMultizCopy, IN LPCTSTR pszMultizString ); LPCTSTR pszStrToSpoolerServerName( IN TString &strServerName ); VOID vStripTrailWhiteSpace( IN LPTSTR pszString ); BOOL bTrimString( IN OUT LPTSTR pszTrimMe, IN LPCTSTR pszTrimChars ); BOOL bIsRemote( IN LPCTSTR pszName ); BOOL bLookupErrorMessageMap( IN const PMSG_ERRMAP pMsgErrMap, IN DWORD dwLastError, IN OUT MSG_ERRMAP **ppErrMapEntry ); BOOL bLookupHelpMessageMap( IN const PMSG_HLPMAP pMsgHlpMap, IN DWORD dwLastError, IN OUT MSG_HLPMAP **ppHelpMapEntry ); BOOL bGoodLastError( IN DWORD dwLastError ); BOOL WINAPI UtilHelpCallback( IN HWND hwnd, IN PVOID pVoid ); BOOL StringA2W( IN OUT LPWSTR *ppResult, IN LPCSTR pString ); BOOL StringW2A( IN OUT LPSTR *ppResult, IN LPCWSTR pString ); VOID CenterDialog( IN HWND hwndToCenter, IN HWND hwndContext ); BOOL GetDomainName( OUT TString &strDomainName ); BOOL ConstructPrinterFriendlyName( IN LPCTSTR pszFullPrinter, IN OUT LPTSTR pszPrinterBuffer, IN OUT UINT *pcchSize ); BOOL WINAPIV bConstructMessageString( IN HINSTANCE hInst, IN TString &strString, IN INT iResId, IN ... ); BOOL bIsLocalPrinterNameValid( IN LPCTSTR pszPrinter ); BOOL CheckRestrictions( IN HWND hwnd, IN RESTRICTIONS rest ); VOID vAdjustHeaderColumns( IN HWND hwndLV, IN UINT uColumnsCount, IN UINT uPercentages[] ); VOID LoadPrinterIcons( IN LPCTSTR pszPrinterName, OUT HICON *phLargeIcon, OUT HICON *phSmallIcon ); BOOL CommandConfirmationPurge( IN HWND hwnd, IN LPCTSTR pszPrinterName ); BOOL bMatchTemplate( IN LPCTSTR pszTemplate, IN LPCTSTR pszText ); BOOL bIsFaxPort( IN LPCTSTR pszName, IN LPCTSTR pszMonitor ); HRESULT AbbreviateText( IN LPCTSTR pszText, IN UINT cchMaxChars, OUT TString *pstrAbbreviatedText ); BOOL MoveWindowWrap( HWND hwnd, int deltaX, int deltaY ); HRESULT IsColorPrinter( IN LPCWSTR pszPrinter, IN OUT LPBOOL pbColor ); // Some new private APIs to launch the home networking wizard (HNW) // when ForceGuest is enabled and ILM_GUEST_NETWORK_LOGON is not // enabled. - DCR: #256891. Printing bug: #282379. HRESULT IsGuestAccessMode( OUT BOOL *pbGuestAccessMode ); HRESULT IsGuestEnabledForNetworkAccess( OUT BOOL *pbGuestEnabledForNetworkAccess ); HRESULT IsSharingEnabled( OUT BOOL *pbSharingEnabled ); HRESULT LaunchHomeNetworkingWizard( IN HWND hwnd, OUT BOOL *pbRebootRequired ); HRESULT IsRedirectedPort( IN LPCTSTR pszPortName, OUT BOOL *pbIsRedirected ); BOOL AreWeOnADomain( OUT BOOL *pbOnDomain ); HRESULT MsgInfinitelyWaitForSingleObject( IN HANDLE hWaitableObject ); #endif // ndef _UTIL_HXX