windows-nt/Source/XPSP1/NT/shell/osshell/security/rshx32/util.h
2020-09-26 16:20:57 +08:00

90 lines
3.1 KiB
C

//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1996 - 1999
//
// File: util.h
//
// miscellaneous utility functions
//
//--------------------------------------------------------------------------
#ifndef _UTIL_H_
#define _UTIL_H_
STDMETHODIMP
IDA_BindToFolder(LPIDA pIDA, LPSHELLFOLDER *ppsf);
STDMETHODIMP
IDA_GetItemName(LPSHELLFOLDER psf,
LPCITEMIDLIST pidl,
LPTSTR pszName,
UINT cchName,
SHGNO uFlags = SHGDN_FORPARSING);
STDMETHODIMP
IDA_GetItemName(LPSHELLFOLDER psf,
LPCITEMIDLIST pidl,
LPTSTR *ppszName,
SHGNO uFlags = SHGDN_FORPARSING);
typedef DWORD (WINAPI *PFN_READ_SD)(LPCTSTR pszItemName,
SECURITY_INFORMATION si,
PSECURITY_DESCRIPTOR* ppSD);
STDMETHODIMP
DPA_CompareSecurityIntersection(HDPA hItemList,
PFN_READ_SD pfnReadSD,
BOOL *pfOwnerConflict,
BOOL *pfGroupConflict,
BOOL *pfSACLConflict,
BOOL *pfDACLConflict,
LPTSTR *ppszOwnerConflict,
LPTSTR *ppszGroupConflict,
LPTSTR *ppszSaclConflict,
LPTSTR *ppszDaclConflict,
LPBOOL pbCancel);
STDMETHODIMP
GetRemotePath(LPCTSTR pszInName, LPTSTR *ppszOutName);
void
LocalFreeDPA(HDPA hList);
BOOL
IsSafeMode(void);
BOOL
IsGuestAccessMode(void);
BOOL
IsSimpleUI(void);
BOOL
IsUIHiddenByPrivacyPolicy(void);
HRESULT BindToObjectEx(IShellFolder *psf, LPCITEMIDLIST pidl, LPBC pbc, REFIID riid, void **ppv);
HRESULT BindToFolderIDListParent(IShellFolder *psfRoot, LPCITEMIDLIST pidl, REFIID riid, void **ppv, LPCITEMIDLIST *ppidlLast);
//+----------------------------------------------------------------------------
// Function:SetAclOnRemoteNetworkDrive
// Synopsis: If Z: is a mapped drive( mapped to \\machineA\share), when
// we set DACL/SACL on Z:, Security API's cannot determine
// the parent of "share" on machineA and so we lose all the
// inherited aces. All UI can do is to detect such cases and
// show a warning. Thats what this function does.
// Arguments:hItemList List of items on which security is going to be set
// si: SECURITY_INFORMATION
// pSD: Security Descriptor to be set
// hWndPopupOwner: Owner window for message box
// Returns:
// NTRAID#NTBUG9-581195-2002/03/26-hiteshr
// NOTES:Since this fix is XPSP1, resources are going to be loaded from
// xpsp1res.dll
//-----------------------------------------------------------------------------
BOOL SetAclOnRemoteNetworkDrive(HDPA hItemList,
SECURITY_INFORMATION si,
PSECURITY_DESCRIPTOR pSD,
HWND hWndPopupOwner);
#endif /* _UTIL_H_ */