From b90c24d6408ab9fc14480b3931c0cc79661be664 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Tue, 10 Sep 2019 12:24:11 +0200 Subject: [PATCH] [SHELL] IPersistFolder2::GetCurFolder takes a PIDLIST_ABSOLUTE*. CORE-16385 --- dll/shellext/ntobjshex/foldercommon.h | 2 +- dll/shellext/zipfldr/CZipFolder.hpp | 2 +- dll/win32/browseui/shellfind/CFindFolder.cpp | 2 +- dll/win32/browseui/shellfind/CFindFolder.h | 2 +- dll/win32/shell32/CDefaultContextMenu.cpp | 2 +- dll/win32/shell32/folders/CAdminToolsFolder.cpp | 2 +- dll/win32/shell32/folders/CAdminToolsFolder.h | 2 +- dll/win32/shell32/folders/CControlPanelFolder.cpp | 2 +- dll/win32/shell32/folders/CControlPanelFolder.h | 2 +- dll/win32/shell32/folders/CDesktopFolder.cpp | 2 +- dll/win32/shell32/folders/CDesktopFolder.h | 2 +- dll/win32/shell32/folders/CDrivesFolder.cpp | 2 +- dll/win32/shell32/folders/CDrivesFolder.h | 2 +- dll/win32/shell32/folders/CFSFolder.cpp | 2 +- dll/win32/shell32/folders/CFSFolder.h | 2 +- dll/win32/shell32/folders/CFontsFolder.cpp | 2 +- dll/win32/shell32/folders/CFontsFolder.h | 2 +- dll/win32/shell32/folders/CMyDocsFolder.cpp | 2 +- dll/win32/shell32/folders/CMyDocsFolder.h | 2 +- dll/win32/shell32/folders/CNetFolder.cpp | 2 +- dll/win32/shell32/folders/CNetFolder.h | 2 +- dll/win32/shell32/folders/CPrinterFolder.cpp | 2 +- dll/win32/shell32/folders/CPrinterFolder.h | 2 +- dll/win32/shell32/folders/CRecycleBin.cpp | 2 +- dll/win32/shell32/folders/CRecycleBin.h | 2 +- dll/win32/shell32/shellmenu/CMergedFolder.cpp | 2 +- dll/win32/shell32/shellmenu/CMergedFolder.h | 2 +- sdk/include/psdk/shobjidl.idl | 2 +- 28 files changed, 28 insertions(+), 28 deletions(-) diff --git a/dll/shellext/ntobjshex/foldercommon.h b/dll/shellext/ntobjshex/foldercommon.h index ce015b37b65..2780d637550 100644 --- a/dll/shellext/ntobjshex/foldercommon.h +++ b/dll/shellext/ntobjshex/foldercommon.h @@ -641,7 +641,7 @@ public: } // IPersistFolder2 - virtual HRESULT STDMETHODCALLTYPE GetCurFolder(LPITEMIDLIST * pidl) + virtual HRESULT STDMETHODCALLTYPE GetCurFolder(PIDLIST_ABSOLUTE * pidl) { if (pidl) *pidl = ILClone(m_shellPidl); diff --git a/dll/shellext/zipfldr/CZipFolder.hpp b/dll/shellext/zipfldr/CZipFolder.hpp index b5412639355..e2407452eaf 100644 --- a/dll/shellext/zipfldr/CZipFolder.hpp +++ b/dll/shellext/zipfldr/CZipFolder.hpp @@ -598,7 +598,7 @@ public: //STDMETHODIMP GetCurFile(LPOLESTR *ppszFileName); //// *** IPersistFolder2 methods *** - STDMETHODIMP GetCurFolder(LPITEMIDLIST * pidl) + STDMETHODIMP GetCurFolder(PIDLIST_ABSOLUTE * pidl) { *pidl = ILClone(m_CurDir); return S_OK; diff --git a/dll/win32/browseui/shellfind/CFindFolder.cpp b/dll/win32/browseui/shellfind/CFindFolder.cpp index f29aed1bcd4..749fe927f4f 100644 --- a/dll/win32/browseui/shellfind/CFindFolder.cpp +++ b/dll/win32/browseui/shellfind/CFindFolder.cpp @@ -674,7 +674,7 @@ STDMETHODIMP CFindFolder::MessageSFVCB(UINT uMsg, WPARAM wParam, LPARAM lParam) } //// *** IPersistFolder2 methods *** -STDMETHODIMP CFindFolder::GetCurFolder(LPITEMIDLIST *pidl) +STDMETHODIMP CFindFolder::GetCurFolder(PIDLIST_ABSOLUTE *pidl) { *pidl = ILClone(m_pidl); return S_OK; diff --git a/dll/win32/browseui/shellfind/CFindFolder.h b/dll/win32/browseui/shellfind/CFindFolder.h index ab866161b0f..43be568b38e 100644 --- a/dll/win32/browseui/shellfind/CFindFolder.h +++ b/dll/win32/browseui/shellfind/CFindFolder.h @@ -73,7 +73,7 @@ private: static DWORD WINAPI SearchThreadProc(LPVOID lpParameter); //// *** IPersistFolder2 methods *** - STDMETHODIMP GetCurFolder(LPITEMIDLIST *pidl); + STDMETHODIMP GetCurFolder(PIDLIST_ABSOLUTE *pidl); // *** IPersistFolder methods *** diff --git a/dll/win32/shell32/CDefaultContextMenu.cpp b/dll/win32/shell32/CDefaultContextMenu.cpp index a65e5a05ab3..a57b5324fce 100644 --- a/dll/win32/shell32/CDefaultContextMenu.cpp +++ b/dll/win32/shell32/CDefaultContextMenu.cpp @@ -233,7 +233,7 @@ HRESULT WINAPI CDefaultContextMenu::Initialize(const DEFCONTEXTMENU *pdcm, LPFND CComPtr pf = NULL; if (SUCCEEDED(m_psf->QueryInterface(IID_PPV_ARG(IPersistFolder2, &pf)))) { - if (FAILED(pf->GetCurFolder(reinterpret_cast(&m_pidlFolder)))) + if (FAILED(pf->GetCurFolder(&m_pidlFolder))) ERR("GetCurFolder failed\n"); } TRACE("pidlFolder %p\n", m_pidlFolder); diff --git a/dll/win32/shell32/folders/CAdminToolsFolder.cpp b/dll/win32/shell32/folders/CAdminToolsFolder.cpp index 47a6415f6a3..f461a8b57e8 100644 --- a/dll/win32/shell32/folders/CAdminToolsFolder.cpp +++ b/dll/win32/shell32/folders/CAdminToolsFolder.cpp @@ -180,7 +180,7 @@ HRESULT WINAPI CAdminToolsFolder::Initialize(LPCITEMIDLIST pidl) IID_PPV_ARG(IShellFolder2, &m_pisfInner)); } -HRESULT WINAPI CAdminToolsFolder::GetCurFolder(LPITEMIDLIST *pidl) +HRESULT WINAPI CAdminToolsFolder::GetCurFolder(PIDLIST_ABSOLUTE *pidl) { if (!pidl) return E_POINTER; diff --git a/dll/win32/shell32/folders/CAdminToolsFolder.h b/dll/win32/shell32/folders/CAdminToolsFolder.h index f6cd79a2fe4..25478f0a883 100644 --- a/dll/win32/shell32/folders/CAdminToolsFolder.h +++ b/dll/win32/shell32/folders/CAdminToolsFolder.h @@ -63,7 +63,7 @@ class CAdminToolsFolder : virtual HRESULT WINAPI Initialize(LPCITEMIDLIST pidl); // IPersistFolder2 - virtual HRESULT WINAPI GetCurFolder(LPITEMIDLIST * pidl); + virtual HRESULT WINAPI GetCurFolder(PIDLIST_ABSOLUTE * pidl); DECLARE_REGISTRY_RESOURCEID(IDR_ADMINFOLDERSHORTCUT) DECLARE_NOT_AGGREGATABLE(CAdminToolsFolder) diff --git a/dll/win32/shell32/folders/CControlPanelFolder.cpp b/dll/win32/shell32/folders/CControlPanelFolder.cpp index 8dc2fbb5379..2782ad85a8d 100644 --- a/dll/win32/shell32/folders/CControlPanelFolder.cpp +++ b/dll/win32/shell32/folders/CControlPanelFolder.cpp @@ -638,7 +638,7 @@ HRESULT WINAPI CControlPanelFolder::Initialize(LPCITEMIDLIST pidl) /************************************************************************** * CControlPanelFolder::GetCurFolder */ -HRESULT WINAPI CControlPanelFolder::GetCurFolder(LPITEMIDLIST * pidl) +HRESULT WINAPI CControlPanelFolder::GetCurFolder(PIDLIST_ABSOLUTE * pidl) { TRACE("(%p)->(%p)\n", this, pidl); diff --git a/dll/win32/shell32/folders/CControlPanelFolder.h b/dll/win32/shell32/folders/CControlPanelFolder.h index a4966a3569f..e3ced8697e5 100644 --- a/dll/win32/shell32/folders/CControlPanelFolder.h +++ b/dll/win32/shell32/folders/CControlPanelFolder.h @@ -68,7 +68,7 @@ class CControlPanelFolder : virtual HRESULT WINAPI Initialize(LPCITEMIDLIST pidl); // IPersistFolder2 - virtual HRESULT WINAPI GetCurFolder(LPITEMIDLIST * pidl); + virtual HRESULT WINAPI GetCurFolder(PIDLIST_ABSOLUTE * pidl); DECLARE_REGISTRY_RESOURCEID(IDR_CONTROLPANEL) DECLARE_NOT_AGGREGATABLE(CControlPanelFolder) diff --git a/dll/win32/shell32/folders/CDesktopFolder.cpp b/dll/win32/shell32/folders/CDesktopFolder.cpp index 277499fbc41..ab34e0c9ae8 100644 --- a/dll/win32/shell32/folders/CDesktopFolder.cpp +++ b/dll/win32/shell32/folders/CDesktopFolder.cpp @@ -825,7 +825,7 @@ HRESULT WINAPI CDesktopFolder::Initialize(LPCITEMIDLIST pidl) return E_INVALIDARG; } -HRESULT WINAPI CDesktopFolder::GetCurFolder(LPITEMIDLIST * pidl) +HRESULT WINAPI CDesktopFolder::GetCurFolder(PIDLIST_ABSOLUTE * pidl) { TRACE ("(%p)->(%p)\n", this, pidl); diff --git a/dll/win32/shell32/folders/CDesktopFolder.h b/dll/win32/shell32/folders/CDesktopFolder.h index 76ee35fbf3b..90de48f619b 100644 --- a/dll/win32/shell32/folders/CDesktopFolder.h +++ b/dll/win32/shell32/folders/CDesktopFolder.h @@ -74,7 +74,7 @@ class CDesktopFolder : virtual HRESULT WINAPI Initialize(LPCITEMIDLIST pidl); // *** IPersistFolder2 methods *** - virtual HRESULT WINAPI GetCurFolder(LPITEMIDLIST * pidl); + virtual HRESULT WINAPI GetCurFolder(PIDLIST_ABSOLUTE * pidl); // IContextMenuCB virtual HRESULT WINAPI CallBack(IShellFolder *psf, HWND hwndOwner, IDataObject *pdtobj, UINT uMsg, WPARAM wParam, LPARAM lParam); diff --git a/dll/win32/shell32/folders/CDrivesFolder.cpp b/dll/win32/shell32/folders/CDrivesFolder.cpp index 17542eeea41..0f8810c066a 100644 --- a/dll/win32/shell32/folders/CDrivesFolder.cpp +++ b/dll/win32/shell32/folders/CDrivesFolder.cpp @@ -1062,7 +1062,7 @@ HRESULT WINAPI CDrivesFolder::Initialize(LPCITEMIDLIST pidl) /************************************************************************** * CDrivesFolder::GetCurFolder */ -HRESULT WINAPI CDrivesFolder::GetCurFolder(LPITEMIDLIST *pidl) +HRESULT WINAPI CDrivesFolder::GetCurFolder(PIDLIST_ABSOLUTE *pidl) { TRACE("(%p)->(%p)\n", this, pidl); diff --git a/dll/win32/shell32/folders/CDrivesFolder.h b/dll/win32/shell32/folders/CDrivesFolder.h index f83057d79dc..8d37ac216fe 100644 --- a/dll/win32/shell32/folders/CDrivesFolder.h +++ b/dll/win32/shell32/folders/CDrivesFolder.h @@ -68,7 +68,7 @@ class CDrivesFolder : virtual HRESULT WINAPI Initialize(LPCITEMIDLIST pidl); // IPersistFolder2 - virtual HRESULT WINAPI GetCurFolder(LPITEMIDLIST * pidl); + virtual HRESULT WINAPI GetCurFolder(PIDLIST_ABSOLUTE * pidl); // IContextMenuCB virtual HRESULT WINAPI CallBack(IShellFolder *psf, HWND hwndOwner, IDataObject *pdtobj, UINT uMsg, WPARAM wParam, LPARAM lParam); diff --git a/dll/win32/shell32/folders/CFSFolder.cpp b/dll/win32/shell32/folders/CFSFolder.cpp index 4ce2a2babe1..c475c2cf098 100644 --- a/dll/win32/shell32/folders/CFSFolder.cpp +++ b/dll/win32/shell32/folders/CFSFolder.cpp @@ -1398,7 +1398,7 @@ HRESULT WINAPI CFSFolder::Initialize(LPCITEMIDLIST pidl) /************************************************************************** * CFSFolder::GetCurFolder */ -HRESULT WINAPI CFSFolder::GetCurFolder(LPITEMIDLIST * pidl) +HRESULT WINAPI CFSFolder::GetCurFolder(PIDLIST_ABSOLUTE * pidl) { TRACE ("(%p)->(%p)\n", this, pidl); diff --git a/dll/win32/shell32/folders/CFSFolder.h b/dll/win32/shell32/folders/CFSFolder.h index 947ec92222d..11276c7ec6a 100644 --- a/dll/win32/shell32/folders/CFSFolder.h +++ b/dll/win32/shell32/folders/CFSFolder.h @@ -76,7 +76,7 @@ class CFSFolder : virtual HRESULT WINAPI Initialize(LPCITEMIDLIST pidl); // IPersistFolder2 - virtual HRESULT WINAPI GetCurFolder(LPITEMIDLIST * pidl); + virtual HRESULT WINAPI GetCurFolder(PIDLIST_ABSOLUTE * pidl); // IPersistFolder3 virtual HRESULT WINAPI InitializeEx(IBindCtx *pbc, LPCITEMIDLIST pidlRoot, const PERSIST_FOLDER_TARGET_INFO *ppfti); diff --git a/dll/win32/shell32/folders/CFontsFolder.cpp b/dll/win32/shell32/folders/CFontsFolder.cpp index 3b9a3d83434..355354cec20 100644 --- a/dll/win32/shell32/folders/CFontsFolder.cpp +++ b/dll/win32/shell32/folders/CFontsFolder.cpp @@ -181,7 +181,7 @@ HRESULT WINAPI CFontsFolder::Initialize(LPCITEMIDLIST pidl) IID_PPV_ARG(IShellFolder2, &m_pisfInner)); } -HRESULT WINAPI CFontsFolder::GetCurFolder(LPITEMIDLIST *pidl) +HRESULT WINAPI CFontsFolder::GetCurFolder(PIDLIST_ABSOLUTE *pidl) { if (!pidl) return E_POINTER; diff --git a/dll/win32/shell32/folders/CFontsFolder.h b/dll/win32/shell32/folders/CFontsFolder.h index e3b9205187c..0229485514d 100644 --- a/dll/win32/shell32/folders/CFontsFolder.h +++ b/dll/win32/shell32/folders/CFontsFolder.h @@ -63,7 +63,7 @@ class CFontsFolder : virtual HRESULT WINAPI Initialize(LPCITEMIDLIST pidl); // IPersistFolder2 - virtual HRESULT WINAPI GetCurFolder(LPITEMIDLIST *pidl); + virtual HRESULT WINAPI GetCurFolder(PIDLIST_ABSOLUTE *pidl); DECLARE_REGISTRY_RESOURCEID(IDR_FONTSFOLDERSHORTCUT) DECLARE_NOT_AGGREGATABLE(CFontsFolder) diff --git a/dll/win32/shell32/folders/CMyDocsFolder.cpp b/dll/win32/shell32/folders/CMyDocsFolder.cpp index f27448d811f..8c28b6711eb 100644 --- a/dll/win32/shell32/folders/CMyDocsFolder.cpp +++ b/dll/win32/shell32/folders/CMyDocsFolder.cpp @@ -180,7 +180,7 @@ HRESULT WINAPI CMyDocsFolder::Initialize(LPCITEMIDLIST pidl) IID_PPV_ARG(IShellFolder2, &m_pisfInner)); } -HRESULT WINAPI CMyDocsFolder::GetCurFolder(LPITEMIDLIST *pidl) +HRESULT WINAPI CMyDocsFolder::GetCurFolder(PIDLIST_ABSOLUTE *pidl) { if (!pidl) return E_POINTER; diff --git a/dll/win32/shell32/folders/CMyDocsFolder.h b/dll/win32/shell32/folders/CMyDocsFolder.h index b689a6719f2..7c0e521ccd9 100644 --- a/dll/win32/shell32/folders/CMyDocsFolder.h +++ b/dll/win32/shell32/folders/CMyDocsFolder.h @@ -63,7 +63,7 @@ class CMyDocsFolder : virtual HRESULT WINAPI Initialize(LPCITEMIDLIST pidl); // IPersistFolder2 - virtual HRESULT WINAPI GetCurFolder(LPITEMIDLIST * pidl); + virtual HRESULT WINAPI GetCurFolder(PIDLIST_ABSOLUTE * pidl); DECLARE_REGISTRY_RESOURCEID(IDR_MYDOCUMENTS) DECLARE_NOT_AGGREGATABLE(CMyDocsFolder) diff --git a/dll/win32/shell32/folders/CNetFolder.cpp b/dll/win32/shell32/folders/CNetFolder.cpp index 35e2ef7eb77..a2384b1117b 100644 --- a/dll/win32/shell32/folders/CNetFolder.cpp +++ b/dll/win32/shell32/folders/CNetFolder.cpp @@ -583,7 +583,7 @@ HRESULT WINAPI CNetFolder::Initialize(LPCITEMIDLIST pidl) /************************************************************************** * CNetFolder::GetCurFolder */ -HRESULT WINAPI CNetFolder::GetCurFolder(LPITEMIDLIST *pidl) +HRESULT WINAPI CNetFolder::GetCurFolder(PIDLIST_ABSOLUTE *pidl) { TRACE("(%p)->(%p)\n", this, pidl); diff --git a/dll/win32/shell32/folders/CNetFolder.h b/dll/win32/shell32/folders/CNetFolder.h index 33f65bf3191..7a540db92d3 100644 --- a/dll/win32/shell32/folders/CNetFolder.h +++ b/dll/win32/shell32/folders/CNetFolder.h @@ -65,7 +65,7 @@ class CNetFolder : virtual HRESULT WINAPI Initialize(LPCITEMIDLIST pidl); // IPersistFolder2 - virtual HRESULT WINAPI GetCurFolder(LPITEMIDLIST * pidl); + virtual HRESULT WINAPI GetCurFolder(PIDLIST_ABSOLUTE * pidl); DECLARE_REGISTRY_RESOURCEID(IDR_NETWORKPLACES) DECLARE_NOT_AGGREGATABLE(CNetFolder) diff --git a/dll/win32/shell32/folders/CPrinterFolder.cpp b/dll/win32/shell32/folders/CPrinterFolder.cpp index 85a89680f00..69565afb6a7 100644 --- a/dll/win32/shell32/folders/CPrinterFolder.cpp +++ b/dll/win32/shell32/folders/CPrinterFolder.cpp @@ -491,7 +491,7 @@ HRESULT WINAPI CPrinterFolder::Initialize(LPCITEMIDLIST pidl) /************************************************************************** * CPrinterFolder::GetCurFolder */ -HRESULT WINAPI CPrinterFolder::GetCurFolder(LPITEMIDLIST * pidl) +HRESULT WINAPI CPrinterFolder::GetCurFolder(PIDLIST_ABSOLUTE * pidl) { TRACE ("(%p)->(%p)\n", this, pidl); diff --git a/dll/win32/shell32/folders/CPrinterFolder.h b/dll/win32/shell32/folders/CPrinterFolder.h index 699338079ef..5ba34082afb 100644 --- a/dll/win32/shell32/folders/CPrinterFolder.h +++ b/dll/win32/shell32/folders/CPrinterFolder.h @@ -68,7 +68,7 @@ class CPrinterFolder : virtual HRESULT WINAPI Initialize(LPCITEMIDLIST pidl); // IPersistFolder2 - virtual HRESULT WINAPI GetCurFolder(LPITEMIDLIST * pidl); + virtual HRESULT WINAPI GetCurFolder(PIDLIST_ABSOLUTE * pidl); DECLARE_REGISTRY_RESOURCEID(IDR_PRINTERS) DECLARE_NOT_AGGREGATABLE(CPrinterFolder) diff --git a/dll/win32/shell32/folders/CRecycleBin.cpp b/dll/win32/shell32/folders/CRecycleBin.cpp index e2198897fdc..5a6b72bab7f 100644 --- a/dll/win32/shell32/folders/CRecycleBin.cpp +++ b/dll/win32/shell32/folders/CRecycleBin.cpp @@ -443,7 +443,7 @@ HRESULT WINAPI CRecycleBin::Initialize(LPCITEMIDLIST pidl) return S_OK; } -HRESULT WINAPI CRecycleBin::GetCurFolder(LPITEMIDLIST *ppidl) +HRESULT WINAPI CRecycleBin::GetCurFolder(PIDLIST_ABSOLUTE *ppidl) { TRACE("\n"); *ppidl = ILClone(pidl); diff --git a/dll/win32/shell32/folders/CRecycleBin.h b/dll/win32/shell32/folders/CRecycleBin.h index 1f3ea7bc784..de62270dfdf 100644 --- a/dll/win32/shell32/folders/CRecycleBin.h +++ b/dll/win32/shell32/folders/CRecycleBin.h @@ -49,7 +49,7 @@ class CRecycleBin : virtual HRESULT WINAPI Initialize(LPCITEMIDLIST pidl); // IPersistFolder2 - virtual HRESULT WINAPI GetCurFolder(LPITEMIDLIST * pidl); + virtual HRESULT WINAPI GetCurFolder(PIDLIST_ABSOLUTE * pidl); // IShellFolder virtual HRESULT WINAPI ParseDisplayName(HWND hwndOwner, LPBC pbc, LPOLESTR lpszDisplayName, DWORD *pchEaten, PIDLIST_RELATIVE *ppidl, DWORD *pdwAttributes); diff --git a/dll/win32/shell32/shellmenu/CMergedFolder.cpp b/dll/win32/shell32/shellmenu/CMergedFolder.cpp index 892c5011a7a..04a2fd4a49b 100644 --- a/dll/win32/shell32/shellmenu/CMergedFolder.cpp +++ b/dll/win32/shell32/shellmenu/CMergedFolder.cpp @@ -704,7 +704,7 @@ HRESULT STDMETHODCALLTYPE CMergedFolder::Initialize(LPCITEMIDLIST pidl) } // IPersistFolder2 -HRESULT STDMETHODCALLTYPE CMergedFolder::GetCurFolder(LPITEMIDLIST * pidl) +HRESULT STDMETHODCALLTYPE CMergedFolder::GetCurFolder(PIDLIST_ABSOLUTE * pidl) { if (pidl) *pidl = m_shellPidl; diff --git a/dll/win32/shell32/shellmenu/CMergedFolder.h b/dll/win32/shell32/shellmenu/CMergedFolder.h index ae0ab3e28c5..c4c10acb440 100644 --- a/dll/win32/shell32/shellmenu/CMergedFolder.h +++ b/dll/win32/shell32/shellmenu/CMergedFolder.h @@ -194,7 +194,7 @@ public: virtual HRESULT STDMETHODCALLTYPE Initialize(LPCITEMIDLIST pidl); // IPersistFolder2 - virtual HRESULT STDMETHODCALLTYPE GetCurFolder(LPITEMIDLIST * pidl); + virtual HRESULT STDMETHODCALLTYPE GetCurFolder(PIDLIST_ABSOLUTE * pidl); // IAugmentedShellFolder2 virtual HRESULT STDMETHODCALLTYPE AddNameSpace(LPGUID lpGuid, IShellFolder * psf, LPCITEMIDLIST pcidl, ULONG dwUnknown); diff --git a/sdk/include/psdk/shobjidl.idl b/sdk/include/psdk/shobjidl.idl index cd5374357cb..7c2aab3d51e 100644 --- a/sdk/include/psdk/shobjidl.idl +++ b/sdk/include/psdk/shobjidl.idl @@ -69,7 +69,7 @@ interface IPersistFolder2 : IPersistFolder { typedef IPersistFolder2 *LPPERSISTFOLDER2; - HRESULT GetCurFolder( [out] LPITEMIDLIST *ppidl ); + HRESULT GetCurFolder( [out] PIDLIST_ABSOLUTE *ppidl ); }