[BROWSEUI] Find files must forward IItemNameLimits to the FS folder (#8176)

This commit is contained in:
Whindmar Saksit
2025-06-26 23:00:53 +02:00
committed by GitHub
parent 4afb871782
commit 4562306ce4
3 changed files with 22 additions and 5 deletions
@@ -1229,6 +1229,21 @@ STDMETHODIMP CFindFolder::MessageSFVCB(UINT uMsg, WPARAM wParam, LPARAM lParam)
return E_NOTIMPL;
}
//// *** IItemNameLimits methods ***
STDMETHODIMP CFindFolder::GetMaxLength(LPCWSTR pszName, int *piMaxNameLen)
{
CComPtr<IItemNameLimits> pLimits;
HRESULT hr = m_pisfInner->QueryInterface(IID_PPV_ARG(IItemNameLimits, &pLimits));
return FAILED_UNEXPECTEDLY(hr) ? hr : pLimits->GetMaxLength(pszName, piMaxNameLen);;
}
STDMETHODIMP CFindFolder::GetValidCharacters(LPWSTR *ppwszValidChars, LPWSTR *ppwszInvalidChars)
{
CComPtr<IItemNameLimits> pLimits;
HRESULT hr = m_pisfInner->QueryInterface(IID_PPV_ARG(IItemNameLimits, &pLimits));
return FAILED_UNEXPECTEDLY(hr) ? hr : pLimits->GetValidCharacters(ppwszValidChars, ppwszInvalidChars);
}
//// *** IPersistFolder2 methods ***
STDMETHODIMP CFindFolder::GetCurFolder(PIDLIST_ABSOLUTE *pidl)
{
@@ -16,6 +16,7 @@ class CFindFolder :
public IShellFolder2,
public IPersistFolder2,
public IShellFolderViewCB,
public IItemNameLimits,
public IConnectionPointContainerImpl<CFindFolder>,
public IConnectionPointImpl<CFindFolder, &DIID_DSearchCommandEvents>
{
@@ -62,6 +63,10 @@ class CFindFolder :
//// *** IShellFolderViewCB methods ***
STDMETHODIMP MessageSFVCB(UINT uMsg, WPARAM wParam, LPARAM lParam);
//// *** IItemNameLimits methods ***
STDMETHOD(GetMaxLength)(LPCWSTR pszName, int *piMaxNameLen) override;
STDMETHOD(GetValidCharacters)(LPWSTR *ppwszValidChars, LPWSTR *ppwszInvalidChars) override;
private:
LPITEMIDLIST m_pidl;
CComPtr<IShellFolder2> m_pisfInner, m_pSfDesktop;
@@ -121,6 +126,7 @@ public:
COM_INTERFACE_ENTRY_IID(IID_IShellFolder2, IShellFolder2)
COM_INTERFACE_ENTRY_IID(IID_IShellFolder, IShellFolder)
COM_INTERFACE_ENTRY_IID(IID_IShellFolderViewCB, IShellFolderViewCB)
COM_INTERFACE_ENTRY_IID(IID_IItemNameLimits, IItemNameLimits)
COM_INTERFACE_ENTRY_IID(IID_IPersistFolder2, IPersistFolder2)
COM_INTERFACE_ENTRY_IID(IID_IPersistFolder, IPersistFolder)
COM_INTERFACE_ENTRY_IID(IID_IPersist, IPersist)
+1 -5
View File
@@ -97,13 +97,9 @@ class CFSFolder :
GetValidCharacters(LPWSTR *ppwszValidChars, LPWSTR *ppwszInvalidChars) override
{
if (ppwszValidChars)
{
*ppwszValidChars = NULL;
}
if (ppwszInvalidChars)
{
SHStrDupW(INVALID_FILETITLE_CHARACTERSW, ppwszInvalidChars);
}
return SHStrDupW(INVALID_FILETITLE_CHARACTERSW, ppwszInvalidChars);
return S_OK;
}