[SHELL32]

* Move pidl.cpp and pidl.h to the wine folder.
* Convert pidl.cpp into pidl.c.
CORE-8540

svn path=/branches/shell-experiments/; revision=65233
This commit is contained in:
Amine Khaldi 2014-11-03 19:50:36 +00:00
parent 6a6f52bf66
commit 6069abeef0
4 changed files with 80 additions and 62 deletions

View file

@ -39,7 +39,6 @@ list(APPEND SOURCE
extracticon.cpp extracticon.cpp
folders.cpp folders.cpp
iconcache.cpp iconcache.cpp
pidl.cpp
shell32.cpp shell32.cpp
shellitem.cpp shellitem.cpp
shelllink.cpp shelllink.cpp
@ -71,6 +70,7 @@ list(APPEND SOURCE
add_library(shell32 SHARED add_library(shell32 SHARED
${SOURCE} ${SOURCE}
wine/control.c wine/control.c
wine/pidl.c
wine/shell32_main.c wine/shell32_main.c
wine/shellole.c wine/shellole.c
wine/shellord.c wine/shellord.c

View file

@ -34,7 +34,7 @@
//#include "base/shell/explorer-new/todo.h" //#include "base/shell/explorer-new/todo.h"
//#include "dlgs.h" //#include "dlgs.h"
#include "pidl.h" #include "wine/pidl.h"
#include "debughlp.h" #include "debughlp.h"
#include "undocshell.h" #include "undocshell.h"
#include "wine/shell32_main.h" #include "wine/shell32_main.h"

View file

@ -22,7 +22,25 @@
* *
*/ */
#include "precomp.h" #include <wine/config.h>
#define WIN32_NO_STATUS
#define _INC_WINDOWS
#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
#include <windef.h>
#include <winbase.h>
#include <shlobj.h>
#include <undocshell.h>
#include <shlwapi.h>
#include <shlguid_undoc.h>
#include <wine/debug.h>
#include "pidl.h"
#include "shell32_main.h"
#include "shresdef.h"
WINE_DEFAULT_DEBUG_CHANNEL(pidl); WINE_DEFAULT_DEBUG_CHANNEL(pidl);
WINE_DECLARE_DEBUG_CHANNEL(shell); WINE_DECLARE_DEBUG_CHANNEL(shell);
@ -70,8 +88,7 @@ static BOOL ILGetDisplayNameExA(IShellFolder * psf, LPCITEMIDLIST pidl, LPSTR pa
BOOL WINAPI ILGetDisplayNameExW(IShellFolder * psf, LPCITEMIDLIST pidl, LPWSTR path, DWORD type) BOOL WINAPI ILGetDisplayNameExW(IShellFolder * psf, LPCITEMIDLIST pidl, LPWSTR path, DWORD type)
{ {
CComPtr<IShellFolder> psfParent; LPSHELLFOLDER psfParent, lsf = psf;
CComPtr<IShellFolder> lsf = psf;
HRESULT ret = NO_ERROR; HRESULT ret = NO_ERROR;
LPCITEMIDLIST pidllast; LPCITEMIDLIST pidllast;
STRRET strret; STRRET strret;
@ -109,7 +126,7 @@ BOOL WINAPI ILGetDisplayNameExW(IShellFolder * psf, LPCITEMIDLIST pidl, LPWSTR p
} }
if (!*(const WORD*)pidl || type == ILGDN_FORPARSING) if (!*(const WORD*)pidl || type == ILGDN_FORPARSING)
{ {
ret = lsf->GetDisplayNameOf(pidl, flag, &strret); ret = IShellFolder_GetDisplayNameOf(lsf, pidl, flag, &strret);
if (SUCCEEDED(ret)) if (SUCCEEDED(ret))
{ {
if(!StrRetToStrNW(path, MAX_PATH, &strret, pidl)) if(!StrRetToStrNW(path, MAX_PATH, &strret, pidl))
@ -118,10 +135,10 @@ BOOL WINAPI ILGetDisplayNameExW(IShellFolder * psf, LPCITEMIDLIST pidl, LPWSTR p
} }
else else
{ {
ret = SHBindToParent(pidl, IID_PPV_ARG(IShellFolder, &psfParent), &pidllast); ret = SHBindToParent(pidl, &IID_IShellFolder, (LPVOID*)&psfParent, &pidllast);
if (SUCCEEDED(ret)) if (SUCCEEDED(ret))
{ {
ret = psfParent->GetDisplayNameOf(pidllast, flag, &strret); ret = IShellFolder_GetDisplayNameOf(psfParent, pidllast, flag, &strret);
if (SUCCEEDED(ret)) if (SUCCEEDED(ret))
{ {
if(!StrRetToStrNW(path, MAX_PATH, &strret, pidllast)) if(!StrRetToStrNW(path, MAX_PATH, &strret, pidllast))
@ -273,15 +290,15 @@ HRESULT WINAPI ILLoadFromStream (IStream * pStream, LPITEMIDLIST * ppPidl)
SHFree(*ppPidl); SHFree(*ppPidl);
*ppPidl = NULL; *ppPidl = NULL;
pStream->AddRef (); IStream_AddRef (pStream);
if (SUCCEEDED(pStream->Read(&wLen, 2, &dwBytesRead))) if (SUCCEEDED(IStream_Read(pStream, &wLen, 2, &dwBytesRead)))
{ {
TRACE("PIDL length is %d\n", wLen); TRACE("PIDL length is %d\n", wLen);
if (wLen != 0) if (wLen != 0)
{ {
*ppPidl = (LPITEMIDLIST)SHAlloc(wLen); *ppPidl = SHAlloc (wLen);
if (SUCCEEDED(pStream->Read(*ppPidl , wLen, &dwBytesRead))) if (SUCCEEDED(IStream_Read(pStream, *ppPidl , wLen, &dwBytesRead)))
{ {
TRACE("Stream read OK\n"); TRACE("Stream read OK\n");
ret = S_OK; ret = S_OK;
@ -308,7 +325,7 @@ HRESULT WINAPI ILLoadFromStream (IStream * pStream, LPITEMIDLIST * ppPidl)
*ppPidl = NULL; *ppPidl = NULL;
} }
pStream->Release (); IStream_Release (pStream);
TRACE("done\n"); TRACE("done\n");
return ret; return ret;
} }
@ -326,16 +343,16 @@ HRESULT WINAPI ILSaveToStream (IStream * pStream, LPCITEMIDLIST pPidl)
TRACE_(shell)("%p %p\n", pStream, pPidl); TRACE_(shell)("%p %p\n", pStream, pPidl);
pStream->AddRef (); IStream_AddRef (pStream);
wLen = ILGetSize(pPidl); wLen = ILGetSize(pPidl);
if (SUCCEEDED(pStream->Write(&wLen, 2, NULL))) if (SUCCEEDED(IStream_Write(pStream, &wLen, 2, NULL)))
{ {
if (SUCCEEDED(pStream->Write(pPidl, wLen, NULL))) if (SUCCEEDED(IStream_Write(pStream, pPidl, wLen, NULL)))
ret = S_OK; ret = S_OK;
} }
pStream->Release (); IStream_Release (pStream);
return ret; return ret;
} }
@ -371,14 +388,14 @@ HRESULT WINAPI SHILCreateFromPathA(LPCSTR path, LPITEMIDLIST * ppidl, DWORD * at
HRESULT WINAPI SHILCreateFromPathW(LPCWSTR path, LPITEMIDLIST * ppidl, DWORD * attributes) HRESULT WINAPI SHILCreateFromPathW(LPCWSTR path, LPITEMIDLIST * ppidl, DWORD * attributes)
{ {
CComPtr<IShellFolder> sf; LPSHELLFOLDER sf;
DWORD pchEaten; DWORD pchEaten;
HRESULT ret = E_FAIL; HRESULT ret = E_FAIL;
TRACE_(shell)("%s %p 0x%08x\n", debugstr_w(path), ppidl, attributes ? *attributes : 0); TRACE_(shell)("%s %p 0x%08x\n", debugstr_w(path), ppidl, attributes ? *attributes : 0);
if (SUCCEEDED (SHGetDesktopFolder(&sf))) if (SUCCEEDED (SHGetDesktopFolder(&sf)))
ret = sf->ParseDisplayName(0, NULL, (LPWSTR)path, &pchEaten, ppidl, attributes); ret = IShellFolder_ParseDisplayName(sf, 0, NULL, (LPWSTR)path, &pchEaten, ppidl, attributes);
return ret; return ret;
} }
@ -681,10 +698,11 @@ LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
*/ */
HRESULT WINAPI SHGetRealIDL(IShellFolder * lpsf, LPCITEMIDLIST pidlSimple, LPITEMIDLIST *pidlReal) HRESULT WINAPI SHGetRealIDL(IShellFolder * lpsf, LPCITEMIDLIST pidlSimple, LPITEMIDLIST *pidlReal)
{ {
CComPtr<IDataObject> pDataObj; IDataObject* pDataObj;
HRESULT hr; HRESULT hr;
hr = lpsf->GetUIObjectOf(0, 1, &pidlSimple, IID_NULL_PPV_ARG(IDataObject, &pDataObj)); hr = IShellFolder_GetUIObjectOf(lpsf, 0, 1, &pidlSimple,
&IID_IDataObject, 0, (LPVOID*)&pDataObj);
if (SUCCEEDED(hr)) if (SUCCEEDED(hr))
{ {
STGMEDIUM medium; STGMEDIUM medium;
@ -696,12 +714,12 @@ HRESULT WINAPI SHGetRealIDL(IShellFolder * lpsf, LPCITEMIDLIST pidlSimple, LPITE
fmt.lindex = -1; fmt.lindex = -1;
fmt.tymed = TYMED_HGLOBAL; fmt.tymed = TYMED_HGLOBAL;
hr = pDataObj->GetData(&fmt, &medium); hr = IDataObject_GetData(pDataObj, &fmt, &medium);
if (SUCCEEDED(hr)) if (SUCCEEDED(hr))
{ {
/*assert(pida->cidl==1);*/ /*assert(pida->cidl==1);*/
LPIDA pida = (LPIDA)GlobalLock(medium.hGlobal); LPIDA pida = (LPIDA)GlobalLock(medium.u.hGlobal);
LPCITEMIDLIST pidl_folder = (LPCITEMIDLIST) ((LPBYTE)pida + pida->aoffset[0]); LPCITEMIDLIST pidl_folder = (LPCITEMIDLIST) ((LPBYTE)pida + pida->aoffset[0]);
LPCITEMIDLIST pidl_child = (LPCITEMIDLIST) ((LPBYTE)pida + pida->aoffset[1]); LPCITEMIDLIST pidl_child = (LPCITEMIDLIST) ((LPBYTE)pida + pida->aoffset[1]);
@ -711,8 +729,8 @@ HRESULT WINAPI SHGetRealIDL(IShellFolder * lpsf, LPCITEMIDLIST pidlSimple, LPITE
if (!*pidlReal) if (!*pidlReal)
hr = E_OUTOFMEMORY; hr = E_OUTOFMEMORY;
GlobalUnlock(medium.hGlobal); GlobalUnlock(medium.u.hGlobal);
GlobalFree(medium.hGlobal); GlobalFree(medium.u.hGlobal);
} }
} }
@ -966,8 +984,8 @@ EXTERN_C LPITEMIDLIST WINAPI ILCreateFromPathAW (LPCVOID path)
static HRESULT _ILParsePathW(LPCWSTR path, LPWIN32_FIND_DATAW lpFindFile, static HRESULT _ILParsePathW(LPCWSTR path, LPWIN32_FIND_DATAW lpFindFile,
BOOL bBindCtx, LPITEMIDLIST *ppidl, LPDWORD prgfInOut) BOOL bBindCtx, LPITEMIDLIST *ppidl, LPDWORD prgfInOut)
{ {
CComPtr<IShellFolder> pSF; LPSHELLFOLDER pSF = NULL;
CComPtr<IBindCtx> pBC; LPBC pBC = NULL;
HRESULT ret; HRESULT ret;
TRACE("%s %p %d (%p)->%p (%p)->0x%x\n", debugstr_w(path), lpFindFile, bBindCtx, TRACE("%s %p %d (%p)->%p (%p)->0x%x\n", debugstr_w(path), lpFindFile, bBindCtx,
@ -983,7 +1001,7 @@ static HRESULT _ILParsePathW(LPCWSTR path, LPWIN32_FIND_DATAW lpFindFile,
if (SUCCEEDED(ret)) if (SUCCEEDED(ret))
{ {
ret = pSF->ParseDisplayName(0, pBC, (LPOLESTR)path, NULL, ppidl, prgfInOut); ret = IShellFolder_ParseDisplayName(pSF, 0, pBC, (LPOLESTR)path, NULL, ppidl, prgfInOut);
} }
if (FAILED(ret) && ppidl) if (FAILED(ret) && ppidl)
@ -1209,7 +1227,7 @@ BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath)
{ {
HRESULT hr; HRESULT hr;
LPCITEMIDLIST pidlLast; LPCITEMIDLIST pidlLast;
CComPtr<IShellFolder> psfFolder; LPSHELLFOLDER psfFolder;
DWORD dwAttributes; DWORD dwAttributes;
STRRET strret; STRRET strret;
@ -1220,7 +1238,7 @@ BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath)
if (!pidl) if (!pidl)
return FALSE; return FALSE;
hr = SHBindToParent(pidl, IID_PPV_ARG(IShellFolder, &psfFolder), &pidlLast); hr = SHBindToParent(pidl, &IID_IShellFolder, (VOID**)&psfFolder, &pidlLast);
if (FAILED(hr)) if (FAILED(hr))
{ {
ERR("SHBindToParent failed: %x\n", hr); ERR("SHBindToParent failed: %x\n", hr);
@ -1228,14 +1246,14 @@ BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath)
} }
dwAttributes = SFGAO_FILESYSTEM; dwAttributes = SFGAO_FILESYSTEM;
hr = psfFolder->GetAttributesOf(1, &pidlLast, &dwAttributes); hr = IShellFolder_GetAttributesOf(psfFolder, 1, &pidlLast, &dwAttributes);
if (FAILED(hr) || !(dwAttributes & SFGAO_FILESYSTEM)) if (FAILED(hr) || !(dwAttributes & SFGAO_FILESYSTEM))
{ {
WARN("Wrong dwAttributes or GetAttributesOf failed: %x\n", hr); WARN("Wrong dwAttributes or GetAttributesOf failed: %x\n", hr);
return FALSE; return FALSE;
} }
hr = psfFolder->GetDisplayNameOf(pidlLast, SHGDN_FORPARSING, &strret); hr = IShellFolder_GetDisplayNameOf(psfFolder, pidlLast, SHGDN_FORPARSING, &strret);
if (FAILED(hr)) return FALSE; if (FAILED(hr)) return FALSE;
hr = StrRetToBufW(&strret, pidlLast, pszPath, MAX_PATH); hr = StrRetToBufW(&strret, pidlLast, pszPath, MAX_PATH);
@ -1249,8 +1267,8 @@ BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath)
*/ */
HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCITEMIDLIST *ppidlLast) HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCITEMIDLIST *ppidlLast)
{ {
CComPtr<IShellFolder> psfDesktop; IShellFolder * psfDesktop;
HRESULT hr = E_FAIL; HRESULT hr=E_FAIL;
TRACE_(shell)("pidl=%p\n", pidl); TRACE_(shell)("pidl=%p\n", pidl);
pdump(pidl); pdump(pidl);
@ -1269,13 +1287,13 @@ HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCI
if (_ILIsPidlSimple(pidl)) if (_ILIsPidlSimple(pidl))
{ {
/* we are on desktop level */ /* we are on desktop level */
hr = psfDesktop->QueryInterface(riid, ppv); hr = IShellFolder_QueryInterface(psfDesktop, riid, ppv);
} }
else else
{ {
LPITEMIDLIST pidlParent = ILClone(pidl); LPITEMIDLIST pidlParent = ILClone(pidl);
ILRemoveLastID(pidlParent); ILRemoveLastID(pidlParent);
hr = psfDesktop->BindToObject(pidlParent, NULL, riid, ppv); hr = IShellFolder_BindToObject(psfDesktop, pidlParent, NULL, riid, ppv);
SHFree (pidlParent); SHFree (pidlParent);
} }
@ -1341,29 +1359,29 @@ LPITEMIDLIST _ILCreateDesktop(void)
LPITEMIDLIST _ILCreateMyComputer(void) LPITEMIDLIST _ILCreateMyComputer(void)
{ {
TRACE("()\n"); TRACE("()\n");
return _ILCreateGuid(PT_GUID, CLSID_MyComputer); return _ILCreateGuid(PT_GUID, &CLSID_MyComputer);
} }
LPITEMIDLIST _ILCreateMyDocuments(void) LPITEMIDLIST _ILCreateMyDocuments(void)
{ {
TRACE("()\n"); TRACE("()\n");
return _ILCreateGuid(PT_GUID, CLSID_MyDocuments); return _ILCreateGuid(PT_GUID, &CLSID_MyDocuments);
} }
LPITEMIDLIST _ILCreateIExplore(void) LPITEMIDLIST _ILCreateIExplore(void)
{ {
TRACE("()\n"); TRACE("()\n");
return _ILCreateGuid(PT_GUID, CLSID_Internet); return _ILCreateGuid(PT_GUID, &CLSID_Internet);
} }
LPITEMIDLIST _ILCreateControlPanel(void) LPITEMIDLIST _ILCreateControlPanel(void)
{ {
LPITEMIDLIST parent = _ILCreateGuid(PT_GUID, CLSID_MyComputer), ret = NULL; LPITEMIDLIST parent = _ILCreateGuid(PT_GUID, &CLSID_MyComputer), ret = NULL;
TRACE("()\n"); TRACE("()\n");
if (parent) if (parent)
{ {
LPITEMIDLIST cpl = _ILCreateGuid(PT_SHELLEXT, CLSID_ControlPanel); LPITEMIDLIST cpl = _ILCreateGuid(PT_SHELLEXT, &CLSID_ControlPanel);
if (cpl) if (cpl)
{ {
@ -1377,12 +1395,12 @@ LPITEMIDLIST _ILCreateControlPanel(void)
LPITEMIDLIST _ILCreatePrinters(void) LPITEMIDLIST _ILCreatePrinters(void)
{ {
LPITEMIDLIST parent = _ILCreateGuid(PT_GUID, CLSID_MyComputer), ret = NULL; LPITEMIDLIST parent = _ILCreateGuid(PT_GUID, &CLSID_MyComputer), ret = NULL;
TRACE("()\n"); TRACE("()\n");
if (parent) if (parent)
{ {
LPITEMIDLIST printers = _ILCreateGuid(PT_YAGUID, CLSID_Printers); LPITEMIDLIST printers = _ILCreateGuid(PT_YAGUID, &CLSID_Printers);
if (printers) if (printers)
{ {
@ -1397,19 +1415,19 @@ LPITEMIDLIST _ILCreatePrinters(void)
LPITEMIDLIST _ILCreateNetwork(void) LPITEMIDLIST _ILCreateNetwork(void)
{ {
TRACE("()\n"); TRACE("()\n");
return _ILCreateGuid(PT_GUID, CLSID_NetworkPlaces); return _ILCreateGuid(PT_GUID, &CLSID_NetworkPlaces);
} }
LPITEMIDLIST _ILCreateBitBucket(void) LPITEMIDLIST _ILCreateBitBucket(void)
{ {
TRACE("()\n"); TRACE("()\n");
return _ILCreateGuid(PT_GUID, CLSID_RecycleBin); return _ILCreateGuid(PT_GUID, &CLSID_RecycleBin);
} }
LPITEMIDLIST _ILCreateAdminTools(void) LPITEMIDLIST _ILCreateAdminTools(void)
{ {
TRACE("()\n"); TRACE("()\n");
return _ILCreateGuid(PT_GUID, CLSID_AdminFolderShortcut); //FIXME return _ILCreateGuid(PT_GUID, &CLSID_AdminFolderShortcut); //FIXME
} }
LPITEMIDLIST _ILCreateGuid(PIDLTYPE type, REFIID guid) LPITEMIDLIST _ILCreateGuid(PIDLTYPE type, REFIID guid)
@ -1423,7 +1441,7 @@ LPITEMIDLIST _ILCreateGuid(PIDLTYPE type, REFIID guid)
{ {
LPPIDLDATA pData = _ILGetDataPointer(pidlOut); LPPIDLDATA pData = _ILGetDataPointer(pidlOut);
pData->u.guid.guid = guid; pData->u.guid.guid = *guid;
TRACE("-- create GUID-pidl %s\n", TRACE("-- create GUID-pidl %s\n",
debugstr_guid(&(pData->u.guid.guid))); debugstr_guid(&(pData->u.guid.guid)));
} }
@ -1445,7 +1463,7 @@ LPITEMIDLIST _ILCreateGuidFromStrA(LPCSTR szGUID)
ERR("%s is not a GUID\n", szGUID); ERR("%s is not a GUID\n", szGUID);
return NULL; return NULL;
} }
return _ILCreateGuid(PT_GUID, iid); return _ILCreateGuid(PT_GUID, &iid);
} }
LPITEMIDLIST _ILCreateGuidFromStrW(LPCWSTR szGUID) LPITEMIDLIST _ILCreateGuidFromStrW(LPCWSTR szGUID)
@ -1457,7 +1475,7 @@ LPITEMIDLIST _ILCreateGuidFromStrW(LPCWSTR szGUID)
ERR("%s is not a GUID\n", debugstr_w(szGUID)); ERR("%s is not a GUID\n", debugstr_w(szGUID));
return NULL; return NULL;
} }
return _ILCreateGuid(PT_GUID, iid); return _ILCreateGuid(PT_GUID, &iid);
} }
LPITEMIDLIST _ILCreateFromFindDataW( const WIN32_FIND_DATAW *wfd ) LPITEMIDLIST _ILCreateFromFindDataW( const WIN32_FIND_DATAW *wfd )
@ -1609,7 +1627,7 @@ BOOL _ILIsMyDocuments(LPCITEMIDLIST pidl)
TRACE("(%p)\n", pidl); TRACE("(%p)\n", pidl);
if (iid) if (iid)
return IsEqualIID(*iid, CLSID_MyDocuments); return IsEqualIID(iid, &CLSID_MyDocuments);
return FALSE; return FALSE;
} }
@ -1620,7 +1638,7 @@ BOOL _ILIsControlPanel(LPCITEMIDLIST pidl)
TRACE("(%p)\n", pidl); TRACE("(%p)\n", pidl);
if (iid) if (iid)
return IsEqualIID(*iid, CLSID_ControlPanel); return IsEqualIID(iid, &CLSID_ControlPanel);
return FALSE; return FALSE;
} }
@ -1631,19 +1649,19 @@ BOOL _ILIsNetHood(LPCITEMIDLIST pidl)
TRACE("(%p)\n", pidl); TRACE("(%p)\n", pidl);
if (iid) if (iid)
return IsEqualIID(*iid, CLSID_NetworkPlaces); return IsEqualIID(iid, &CLSID_NetworkPlaces);
return FALSE; return FALSE;
} }
LPITEMIDLIST _ILCreateNetHood(void) LPITEMIDLIST _ILCreateNetHood(void)
{ {
return _ILCreateGuid(PT_GUID, CLSID_NetworkPlaces); return _ILCreateGuid(PT_GUID, &CLSID_NetworkPlaces);
} }
LPITEMIDLIST _ILCreateFont(void) LPITEMIDLIST _ILCreateFont(void)
{ {
return _ILCreateGuid(PT_GUID, CLSID_FontsFolderShortcut); return _ILCreateGuid(PT_GUID, &CLSID_FontsFolderShortcut);
} }
BOOL _ILIsMyComputer(LPCITEMIDLIST pidl) BOOL _ILIsMyComputer(LPCITEMIDLIST pidl)
@ -1653,7 +1671,7 @@ BOOL _ILIsMyComputer(LPCITEMIDLIST pidl)
TRACE("(%p)\n", pidl); TRACE("(%p)\n", pidl);
if (iid) if (iid)
return IsEqualIID(*iid, CLSID_MyComputer); return IsEqualIID(iid, &CLSID_MyComputer);
return FALSE; return FALSE;
} }
@ -1664,7 +1682,7 @@ BOOL _ILIsPrinter(LPCITEMIDLIST pidl)
TRACE("(%p)\n", pidl); TRACE("(%p)\n", pidl);
if (iid) if (iid)
return IsEqualIID(*iid, CLSID_Printers); return IsEqualIID(iid, &CLSID_Printers);
return FALSE; return FALSE;
} }
@ -1675,7 +1693,7 @@ BOOL _ILIsBitBucket(LPCITEMIDLIST pidl)
TRACE("(%p)\n", pidl); TRACE("(%p)\n", pidl);
if (iid) if (iid)
return IsEqualIID(*iid, CLSID_RecycleBin); return IsEqualIID(iid, &CLSID_RecycleBin);
return FALSE; return FALSE;
} }
@ -1686,7 +1704,7 @@ BOOL _ILIsAdminTools(LPCITEMIDLIST pidl)
TRACE("(%p)\n", pidl); TRACE("(%p)\n", pidl);
if (iid) if (iid)
return IsEqualIID(*iid, CLSID_AdminFolderShortcut); return IsEqualIID(iid, &CLSID_AdminFolderShortcut);
else else
return FALSE; return FALSE;
} }
@ -1792,7 +1810,7 @@ DWORD _ILSimpleGetText (LPCITEMIDLIST pidl, LPSTR szOut, UINT uOutSize)
if (_ILIsDesktop(pidl)) if (_ILIsDesktop(pidl))
{ {
/* desktop */ /* desktop */
if (HCR_GetClassNameA(CLSID_ShellDesktop, szTemp, MAX_PATH)) if (HCR_GetClassNameA(&CLSID_ShellDesktop, szTemp, MAX_PATH))
{ {
if (szOut) if (szOut)
lstrcpynA(szOut, szTemp, uOutSize); lstrcpynA(szOut, szTemp, uOutSize);
@ -1821,7 +1839,7 @@ DWORD _ILSimpleGetText (LPCITEMIDLIST pidl, LPSTR szOut, UINT uOutSize)
else if (( riid = _ILGetGUIDPointer(pidl) )) else if (( riid = _ILGetGUIDPointer(pidl) ))
{ {
/* special folder */ /* special folder */
if (HCR_GetClassNameA(*riid, szTemp, MAX_PATH) ) if (HCR_GetClassNameA(riid, szTemp, MAX_PATH) )
{ {
if (szOut) if (szOut)
lstrcpynA(szOut, szTemp, uOutSize); lstrcpynA(szOut, szTemp, uOutSize);
@ -1871,7 +1889,7 @@ DWORD _ILSimpleGetTextW (LPCITEMIDLIST pidl, LPWSTR szOut, UINT uOutSize)
if (_ILIsDesktop(pidl)) if (_ILIsDesktop(pidl))
{ {
/* desktop */ /* desktop */
if (HCR_GetClassNameW(CLSID_ShellDesktop, szTemp, MAX_PATH)) if (HCR_GetClassNameW(&CLSID_ShellDesktop, szTemp, MAX_PATH))
{ {
if (szOut) if (szOut)
lstrcpynW(szOut, szTemp, uOutSize); lstrcpynW(szOut, szTemp, uOutSize);
@ -1900,7 +1918,7 @@ DWORD _ILSimpleGetTextW (LPCITEMIDLIST pidl, LPWSTR szOut, UINT uOutSize)
else if (( riid = _ILGetGUIDPointer(pidl) )) else if (( riid = _ILGetGUIDPointer(pidl) ))
{ {
/* special folder */ /* special folder */
if ( HCR_GetClassNameW(*riid, szTemp, MAX_PATH) ) if ( HCR_GetClassNameW(riid, szTemp, MAX_PATH) )
{ {
if (szOut) if (szOut)
lstrcpynW(szOut, szTemp, uOutSize); lstrcpynW(szOut, szTemp, uOutSize);