Source code of Windows XP (NT5)
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.3 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(
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_