mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-26 19:33:31 +00:00
[BROWSEUI] Find files must forward IItemNameLimits to the FS folder (#8176)
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user