Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

126 lines
3.6 KiB

//+---------------------------------------------------------------------------
//
// 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 <ndispnp.h>
#include <ntddndis.h>
#include <ncshell.h>
HRESULT HrDupeShellStringLength(
IN PCWSTR pszInput,
IN ULONG cchInput,
OUT PWSTR * ppszOutput);
inline
HRESULT HrDupeShellString(
IN PCWSTR pszInput,
OUT PWSTR * ppszOutput)
{
return HrDupeShellStringLength(pszInput, wcslen(pszInput), ppszOutput);
}
HRESULT HrGetConnectionPidlWithRefresh(IN const GUID& guidId,
OUT PCONFOLDPIDL& ppidlCon);
//---[ Various refresh functions ]--------------------------------------------
// Notify the shell that an object is going away, and remove it from our list
//
HRESULT HrDeleteFromCclAndNotifyShell(
IN const PCONFOLDPIDLFOLDER& pidlFolder,
IN const PCONFOLDPIDL& pidlConnection,
IN const CONFOLDENTRY& ccfe);
VOID ForceRefresh(IN HWND hwnd) throw();
// 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(IN const PCONFOLDPIDLFOLDER& pidlFolder);
// Update the connection data based on the pidl. Notify the shell as
// appropriate
//
HRESULT HrOnNotifyUpdateConnection(
IN const PCONFOLDPIDLFOLDER& pidlFolder,
IN const GUID * pguid,
IN NETCON_MEDIATYPE ncm,
IN NETCON_SUBMEDIATYPE ncsm,
IN NETCON_STATUS ncs,
IN DWORD dwCharacteristics,
IN PCWSTR pszwName,
IN PCWSTR pszwDeviceName,
IN PCWSTR pszwPhoneNumberOrHostAddress);
// Update the connection status, including sending the correct shell
// notifications for icon updates and such.
//
HRESULT HrOnNotifyUpdateStatus(
IN const PCONFOLDPIDLFOLDER& pidlFolder,
IN const PCONFOLDPIDL& pidlCached,
IN NETCON_STATUS ncsNew);
// update the shell/connection list with the new connection status
//
HRESULT HrUpdateConnectionStatus(
IN const PCONFOLDPIDL& pcfp,
IN NETCON_STATUS ncs,
IN const PCONFOLDPIDLFOLDER& pidlFolder,
IN BOOL fUseCharacter,
IN DWORD dwCharacter);
//---[ Menu merging functions ]-----------------------------------------------
VOID MergeMenu(
IN HINSTANCE hinst,
IN UINT idMainMerge,
IN UINT idPopupMerge,
IN OUT LPQCMINFO pqcm);
INT IMergePopupMenus(
IN OUT HMENU hmMain,
IN HMENU hmMerge,
IN int idCmdFirst,
IN int idCmdLast);
HRESULT HrGetMenuFromID(
IN HMENU hmenuMain,
IN UINT uID,
OUT HMENU * phmenu);
HRESULT HrLoadPopupMenu(
IN HINSTANCE hinst,
IN UINT id,
OUT HMENU * phmenu);
HRESULT HrShellView_GetSelectedObjects(
IN HWND hwnd,
OUT PCONFOLDPIDLVEC& apidlSelection);
HRESULT HrRenameConnectionInternal(
IN const PCONFOLDPIDL& pidlCon,
IN const PCONFOLDPIDLFOLDER& pidlFolder,
IN LPCWSTR pszNewName,
IN BOOL fRaiseError,
IN HWND hwndOwner,
OUT PCONFOLDPIDL& ppidlOut);
#endif // _SHUTIL_H_