//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1997. // // File: S H U T I L . H // // Contents: Various shell utilities to be used by the connections folder // // Notes: // // Author: jeffspr 21 Oct 1997 // //---------------------------------------------------------------------------- #pragma once #ifndef _SHUTIL_H_ #define _SHUTIL_H_ #include #include #include HRESULT HrDupeShellStringLength( PCWSTR pszInput, ULONG cchInput, PWSTR * ppszOutput); inline HRESULT HrDupeShellString( PCWSTR pszInput, PWSTR * ppszOutput) { return HrDupeShellStringLength(pszInput, wcslen(pszInput), ppszOutput); } HRESULT HrGetConnectionPidlWithRefresh(const GUID& guidId, PCONFOLDPIDL& ppidlCon); //---[ Various refresh functions ]-------------------------------------------- // Notify the shell that an object is going away, and remove it from our list // HRESULT HrDeleteFromCclAndNotifyShell( const PCONFOLDPIDLFOLDER& pidlFolder, const PCONFOLDPIDL& pidlConnection, const CONFOLDENTRY& ccfe); VOID ForceRefresh(HWND hwnd); // Update the folder, but don't flush the items. Update them as needed. // pidlFolder is optional -- if not passed in, we'll generate it. // HRESULT HrForceRefreshNoFlush(const PCONFOLDPIDLFOLDER& pidlFolder); // Update the connection data based on the pidl. Notify the shell as // appropriate // HRESULT HrOnNotifyUpdateConnection( const PCONFOLDPIDLFOLDER& pidlFolder, const GUID * pguid, NETCON_MEDIATYPE ncm, NETCON_SUBMEDIATYPE ncsm, NETCON_STATUS ncs, DWORD dwCharacteristics, PCWSTR pszwName, PCWSTR pszwDeviceName, PCWSTR pszwPhoneNumberOrHostAddress); // Update the connection status, including sending the correct shell // notifications for icon updates and such. // HRESULT HrOnNotifyUpdateStatus( const PCONFOLDPIDLFOLDER& pidlFolder, const PCONFOLDPIDL& pidlCached, NETCON_STATUS ncsNew); // update the shell/connection list with the new connection status // HRESULT HrUpdateConnectionStatus( const PCONFOLDPIDL& pcfp, NETCON_STATUS ncs, const PCONFOLDPIDLFOLDER& pidlFolder, BOOL fUseCharacter, DWORD dwCharacter); //---[ Menu merging functions ]----------------------------------------------- VOID MergeMenu( HINSTANCE hinst, UINT idMainMerge, UINT idPopupMerge, LPQCMINFO pqcm); INT IMergePopupMenus( HMENU hmMain, HMENU hmMerge, int idCmdFirst, int idCmdLast); HRESULT HrGetMenuFromID( HMENU hmenuMain, UINT uID, HMENU * phmenu); HRESULT HrLoadPopupMenu( HINSTANCE hinst, UINT id, HMENU * phmenu); HRESULT HrShellView_GetSelectedObjects( HWND hwnd, PCONFOLDPIDLVEC& apidlSelection); HRESULT HrRenameConnectionInternal( const PCONFOLDPIDL& pidlCon, const PCONFOLDPIDLFOLDER& pidlFolder, LPCWSTR pszNewName, BOOL fRaiseError, HWND hwndOwner, PCONFOLDPIDL& ppidlOut); #endif // _SHUTIL_H_