- mostly cleanup after the renaming

- implemented SHILCreateFromPath
- small changed to SHGetFileInfo
This commit is contained in:
Juergen Schmied 1999-03-13 17:10:36 +00:00 committed by Alexandre Julliard
parent dbf9fba460
commit dd153f1727
9 changed files with 354 additions and 277 deletions

View File

@ -434,6 +434,7 @@ typedef struct
/***************************************************************************** /*****************************************************************************
* SIC_CompareEntrys [called by comctl32.dll] * SIC_CompareEntrys [called by comctl32.dll]
*
* NOTES * NOTES
* Callback for DPA_Search * Callback for DPA_Search
*/ */
@ -449,7 +450,8 @@ INT CALLBACK SIC_CompareEntrys( LPVOID p1, LPVOID p2, LPARAM lparam)
return 0; return 0;
} }
/***************************************************************************** /*****************************************************************************
* SIC_IconAppend (internal) * SIC_IconAppend [internal]
*
* NOTES * NOTES
* appends a icon pair to the end of the cache * appends a icon pair to the end of the cache
*/ */
@ -483,6 +485,7 @@ static INT SIC_IconAppend (LPCSTR sSourceFile, INT dwSourceIndex, HICON hSmallIc
} }
/**************************************************************************** /****************************************************************************
* SIC_LoadIcon [internal] * SIC_LoadIcon [internal]
*
* NOTES * NOTES
* gets small/big icon by number from a file * gets small/big icon by number from a file
*/ */
@ -502,6 +505,7 @@ static INT SIC_LoadIcon (LPCSTR sSourceFile, INT dwSourceIndex)
} }
/***************************************************************************** /*****************************************************************************
* SIC_GetIconIndex [internal] * SIC_GetIconIndex [internal]
*
* NOTES * NOTES
* look in the cache for a proper icon. if not available the icon is taken * look in the cache for a proper icon. if not available the icon is taken
* from the file and cached * from the file and cached
@ -528,6 +532,7 @@ INT SIC_GetIconIndex (LPCSTR sSourceFile, INT dwSourceIndex )
} }
/**************************************************************************** /****************************************************************************
* SIC_LoadIcon [internal] * SIC_LoadIcon [internal]
*
* NOTES * NOTES
* retrives the specified icon from the iconcache. if not found try's to load the icon * retrives the specified icon from the iconcache. if not found try's to load the icon
*/ */
@ -548,6 +553,7 @@ static HICON SIC_GetIcon (LPCSTR sSourceFile, INT dwSourceIndex, BOOL bSmallIcon
} }
/***************************************************************************** /*****************************************************************************
* SIC_Initialize [internal] * SIC_Initialize [internal]
*
* NOTES * NOTES
* hack to load the resources from the shell32.dll under a different dll name * hack to load the resources from the shell32.dll under a different dll name
* will be removed when the resource-compiler is ready * will be removed when the resource-compiler is ready
@ -705,7 +711,7 @@ INT WINAPI Shell_GetCachedImageIndexAW(LPCVOID szPath, INT nIndex, DWORD z)
} }
/************************************************************************* /*************************************************************************
* ExtracticonEx32 [shell32.189] * ExtracticonExAW [shell32.189]
*/ */
HICON WINAPI ExtractIconExAW ( LPCVOID lpszFile, INT nIconIndex, HICON * phiconLarge, HICON * phiconSmall, UINT nIcons ) HICON WINAPI ExtractIconExAW ( LPCVOID lpszFile, INT nIconIndex, HICON * phiconLarge, HICON * phiconSmall, UINT nIcons )
{ if (VERSION_OsIsUnicode()) { if (VERSION_OsIsUnicode())
@ -713,11 +719,11 @@ HICON WINAPI ExtractIconExAW ( LPCVOID lpszFile, INT nIconIndex, HICON * phiconL
return ExtractIconExA ( lpszFile, nIconIndex, phiconLarge, phiconSmall, nIcons); return ExtractIconExA ( lpszFile, nIconIndex, phiconLarge, phiconSmall, nIcons);
} }
/************************************************************************* /*************************************************************************
* ExtracticonEx32A [shell32.190] * ExtracticonExA [shell32.190]
* RETURNS * RETURNS
* 0 no icon found * 0 no icon found
* 1 file is not valid * 1 file is not valid
* HICON32 handle of a icon (phiconLarge/Small == NULL) * HICON handle of a icon (phiconLarge/Small == NULL)
*/ */
HICON WINAPI ExtractIconExA ( LPCSTR lpszFile, INT nIconIndex, HICON * phiconLarge, HICON * phiconSmall, UINT nIcons ) HICON WINAPI ExtractIconExA ( LPCSTR lpszFile, INT nIconIndex, HICON * phiconLarge, HICON * phiconSmall, UINT nIcons )
{ HICON ret=0; { HICON ret=0;
@ -749,7 +755,7 @@ HICON WINAPI ExtractIconExA ( LPCSTR lpszFile, INT nIconIndex, HICON * phiconLar
return ret; return ret;
} }
/************************************************************************* /*************************************************************************
* ExtracticonEx32W [shell32.191] * ExtracticonExW [shell32.191]
*/ */
HICON WINAPI ExtractIconExW ( LPCWSTR lpszFile, INT nIconIndex, HICON * phiconLarge, HICON * phiconSmall, UINT nIcons ) HICON WINAPI ExtractIconExW ( LPCWSTR lpszFile, INT nIconIndex, HICON * phiconLarge, HICON * phiconSmall, UINT nIcons )
{ LPSTR sFile; { LPSTR sFile;

View File

@ -134,6 +134,47 @@ LPITEMIDLIST WINAPI ILCloneFirst(LPCITEMIDLIST pidl)
return newpidl; return newpidl;
} }
/*************************************************************************
* SHILCreateFromPath [SHELL32.28]
*
* NOTES
* wraper for IShellFolder::ParseDisplayName()
*/
HRESULT WINAPI SHILCreateFromPathA (LPSTR path, LPITEMIDLIST * ppidl, DWORD attributes)
{ LPSHELLFOLDER sf;
WCHAR lpszDisplayName[MAX_PATH];
DWORD pchEaten;
HRESULT ret = E_FAIL;
TRACE(shell, "%s %p 0x%08lx\n",path,ppidl,attributes);
LocalToWideChar(lpszDisplayName, path, MAX_PATH);
if (SUCCEEDED (SHGetDesktopFolder(&sf)))
{ ret = sf->lpvtbl->fnParseDisplayName(sf,0, NULL,lpszDisplayName,&pchEaten,ppidl,&attributes);
sf->lpvtbl->fnRelease(sf);
}
return ret;
}
HRESULT WINAPI SHILCreateFromPathW (LPWSTR path, LPITEMIDLIST * ppidl, DWORD attributes)
{ LPSHELLFOLDER sf;
DWORD pchEaten;
HRESULT ret = E_FAIL;
TRACE(shell, "%s %p 0x%08lx\n",debugstr_w(path),ppidl,attributes);
if (SUCCEEDED (SHGetDesktopFolder(&sf)))
{ ret = sf->lpvtbl->fnParseDisplayName(sf,0, NULL, path, &pchEaten, ppidl, &attributes);
sf->lpvtbl->fnRelease(sf);
}
return ret;
}
HRESULT WINAPI SHILCreateFromPathAW (LPVOID path, LPITEMIDLIST * ppidl, DWORD attributes)
{
if ( !VERSION_OsIsUnicode())
return SHILCreateFromPathW (path, ppidl, attributes);
return SHILCreateFromPathA (path, ppidl, attributes);
}
/************************************************************************* /*************************************************************************
* SHCloneSpecialIDList [SHELL32.89] * SHCloneSpecialIDList [SHELL32.89]
@ -468,26 +509,28 @@ DWORD WINAPI ILGlobalFree( LPITEMIDLIST pidl)
* ILCreateFromPath [SHELL32.157] * ILCreateFromPath [SHELL32.157]
* *
*/ */
LPITEMIDLIST WINAPI ILCreateFromPath(LPVOID path) LPITEMIDLIST WINAPI ILCreateFromPathA (LPSTR path)
{ LPSHELLFOLDER shellfolder; { LPITEMIDLIST pidlnew;
LPITEMIDLIST pidlnew;
WCHAR lpszDisplayName[MAX_PATH];
DWORD pchEaten;
if ( !VERSION_OsIsUnicode()) TRACE(shell,"%s\n",path);
{ TRACE(pidl,"(path=%s)\n",(LPSTR)path); if (SUCCEEDED (SHILCreateFromPathA (path, &pidlnew, 0)))
LocalToWideChar(lpszDisplayName, path, MAX_PATH);
}
else
{ TRACE(pidl,"(path=L%s)\n",debugstr_w(path));
lstrcpyW(lpszDisplayName, path);
}
if (SHGetDesktopFolder(&shellfolder)==S_OK)
{ shellfolder->lpvtbl->fnParseDisplayName(shellfolder,0, NULL,lpszDisplayName,&pchEaten,&pidlnew,NULL);
shellfolder->lpvtbl->fnRelease(shellfolder);
}
return pidlnew; return pidlnew;
return FALSE;
}
LPITEMIDLIST WINAPI ILCreateFromPathW (LPWSTR path)
{ LPITEMIDLIST pidlnew;
TRACE(shell,"%s\n",debugstr_w(path));
if (SUCCEEDED (SHILCreateFromPathW (path, &pidlnew, 0)))
return pidlnew;
return FALSE;
}
LPITEMIDLIST WINAPI ILCreateFromPathAW (LPVOID path)
{
if ( !VERSION_OsIsUnicode())
return ILCreateFromPathW (path);
return ILCreateFromPathA (path);
} }
/************************************************************************* /*************************************************************************
* SHSimpleIDListFromPath [SHELL32.162] * SHSimpleIDListFromPath [SHELL32.162]
@ -520,11 +563,33 @@ LPITEMIDLIST WINAPI SHSimpleIDListFromPathAW (LPVOID lpszPath)
* *
*/ */
HRESULT WINAPI SHGetDataFromIDListA(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, int nFormat, LPVOID dest, int len) HRESULT WINAPI SHGetDataFromIDListA(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, int nFormat, LPVOID dest, int len)
{ FIXME(shell,"sf=%p pidl=%p 0x%04x %p 0x%04x stub\n",psf,pidl,nFormat,dest,len); { TRACE(shell,"sf=%p pidl=%p 0x%04x %p 0x%04x stub\n",psf,pidl,nFormat,dest,len);
if (! psf || !dest )
return E_INVALIDARG;
switch (nFormat) switch (nFormat)
{ case SHGDFIL_FINDDATA: { case SHGDFIL_FINDDATA:
{ WIN32_FIND_DATAA * pfd = dest;
STRRET lpName;
CHAR pszPath[MAX_PATH];
HANDLE handle;
if ( len < sizeof (WIN32_FIND_DATAA))
return E_INVALIDARG;
psf->lpvtbl->fnAddRef(psf);
psf->lpvtbl->fnGetDisplayNameOf( psf, pidl, SHGDN_FORPARSING, &lpName);
psf->lpvtbl->fnRelease(psf);
strcpy(pszPath,lpName.u.cStr);
if ((handle = FindFirstFileA ( pszPath, pfd)))
FindClose (handle);
}
break;
case SHGDFIL_NETRESOURCE: case SHGDFIL_NETRESOURCE:
case SHGDFIL_DESCRIPTIONID: case SHGDFIL_DESCRIPTIONID:
FIXME(shell, "SHGDFIL %i stub\n", nFormat);
break; break;
default: default:
ERR(shell,"Unknown SHGDFIL %i, please report\n", nFormat); ERR(shell,"Unknown SHGDFIL %i, please report\n", nFormat);

View File

@ -90,9 +90,6 @@ void WINAPI Control_RunDLL( HWND hwnd, LPCVOID code, LPCSTR cmd, DWORD arg4 )
/************************************************************************* /*************************************************************************
* SHGetFileInfoA [SHELL32.254] * SHGetFileInfoA [SHELL32.254]
*
* FIXME
*
*/ */
DWORD WINAPI SHGetFileInfoA(LPCSTR path,DWORD dwFileAttributes, DWORD WINAPI SHGetFileInfoA(LPCSTR path,DWORD dwFileAttributes,
@ -101,7 +98,7 @@ DWORD WINAPI SHGetFileInfoA(LPCSTR path,DWORD dwFileAttributes,
{ CHAR szTemp[MAX_PATH]; { CHAR szTemp[MAX_PATH];
LPPIDLDATA pData; LPPIDLDATA pData;
LPITEMIDLIST pPidlTemp = NULL; LPITEMIDLIST pPidlTemp = NULL;
DWORD ret=0; DWORD ret=0, dwfa = dwFileAttributes;
TRACE(shell,"(%s,0x%lx,%p,0x%x,0x%x)\n", TRACE(shell,"(%s,0x%lx,%p,0x%x,0x%x)\n",
path,dwFileAttributes,psfi,sizeofpsfi,flags); path,dwFileAttributes,psfi,sizeofpsfi,flags);
@ -139,10 +136,15 @@ DWORD WINAPI SHGetFileInfoA(LPCSTR path,DWORD dwFileAttributes,
ret=TRUE; ret=TRUE;
} }
else else
{ psfi->dwAttributes=SFGAO_FILESYSTEM; { if (! (flags & SHGFI_USEFILEATTRIBUTES))
dwfa = GetFileAttributesA (szTemp);
psfi->dwAttributes = SFGAO_FILESYSTEM;
if (dwfa == FILE_ATTRIBUTE_DIRECTORY)
psfi->dwAttributes |= SFGAO_FOLDER | SFGAO_HASSUBFOLDER;
ret=TRUE; ret=TRUE;
} }
FIXME(shell,"file attributes, stub\n"); WARN(shell,"file attributes, semi-stub\n");
} }
if (flags & SHGFI_DISPLAYNAME) if (flags & SHGFI_DISPLAYNAME)
@ -186,6 +188,9 @@ DWORD WINAPI SHGetFileInfoA(LPCSTR path,DWORD dwFileAttributes,
if (flags & SHGFI_USEFILEATTRIBUTES) if (flags & SHGFI_USEFILEATTRIBUTES)
FIXME(shell,"use the dwFileAttributes, stub\n"); FIXME(shell,"use the dwFileAttributes, stub\n");
if (flags & (SHGFI_UNKNOWN1 | SHGFI_UNKNOWN2 | SHGFI_UNKNOWN3))
FIXME(shell,"unknown attribute!\n");
if (flags & SHGFI_ICON) if (flags & SHGFI_ICON)
{ FIXME(shell,"icon handle\n"); { FIXME(shell,"icon handle\n");
if (flags & SHGFI_SMALLICON) if (flags & SHGFI_SMALLICON)
@ -202,7 +207,7 @@ DWORD WINAPI SHGetFileInfoA(LPCSTR path,DWORD dwFileAttributes,
if (flags & SHGFI_SYSICONINDEX) if (flags & SHGFI_SYSICONINDEX)
{ if (!pPidlTemp) { if (!pPidlTemp)
{ pPidlTemp = ILCreateFromPath (szTemp); { pPidlTemp = ILCreateFromPathA (szTemp);
} }
psfi->iIcon = SHMapPIDLToSystemImageListIndex (NULL, pPidlTemp, 0); psfi->iIcon = SHMapPIDLToSystemImageListIndex (NULL, pPidlTemp, 0);
TRACE(shell,"-- SYSICONINDEX %i\n", psfi->iIcon); TRACE(shell,"-- SYSICONINDEX %i\n", psfi->iIcon);
@ -221,10 +226,7 @@ DWORD WINAPI SHGetFileInfoA(LPCSTR path,DWORD dwFileAttributes,
} }
/************************************************************************* /*************************************************************************
* SHGetFileInfo32W [SHELL32.255] * SHGetFileInfoW [SHELL32.255]
*
* FIXME
*
*/ */
DWORD WINAPI SHGetFileInfoW(LPCWSTR path,DWORD dwFileAttributes, DWORD WINAPI SHGetFileInfoW(LPCWSTR path,DWORD dwFileAttributes,
@ -236,7 +238,7 @@ DWORD WINAPI SHGetFileInfoW(LPCWSTR path,DWORD dwFileAttributes,
} }
/************************************************************************* /*************************************************************************
* ExtractIcon32A (SHELL32.133) * ExtractIconA [SHELL32.133]
*/ */
HICON WINAPI ExtractIconA( HINSTANCE hInstance, LPCSTR lpszExeFileName, HICON WINAPI ExtractIconA( HINSTANCE hInstance, LPCSTR lpszExeFileName,
UINT nIconIndex ) UINT nIconIndex )
@ -254,7 +256,7 @@ HICON WINAPI ExtractIconA( HINSTANCE hInstance, LPCSTR lpszExeFileName,
} }
/************************************************************************* /*************************************************************************
* ExtractIcon32W (SHELL32.180) * ExtractIconW [SHELL32.180]
*/ */
HICON WINAPI ExtractIconW( HINSTANCE hInstance, LPCWSTR lpszExeFileName, HICON WINAPI ExtractIconW( HINSTANCE hInstance, LPCWSTR lpszExeFileName,
UINT nIconIndex ) UINT nIconIndex )
@ -270,7 +272,7 @@ HICON WINAPI ExtractIconW( HINSTANCE hInstance, LPCWSTR lpszExeFileName,
} }
/************************************************************************* /*************************************************************************
* FindExecutable32A (SHELL32.184) * FindExecutableA [SHELL32.184]
*/ */
HINSTANCE WINAPI FindExecutableA( LPCSTR lpFile, LPCSTR lpDirectory, HINSTANCE WINAPI FindExecutableA( LPCSTR lpFile, LPCSTR lpDirectory,
LPSTR lpResult ) LPSTR lpResult )
@ -303,7 +305,7 @@ HINSTANCE WINAPI FindExecutableA( LPCSTR lpFile, LPCSTR lpDirectory,
} }
/************************************************************************* /*************************************************************************
* FindExecutable32W (SHELL32.219) * FindExecutableW [SHELL32.219]
*/ */
HINSTANCE WINAPI FindExecutableW(LPCWSTR lpFile, LPCWSTR lpDirectory, HINSTANCE WINAPI FindExecutableW(LPCWSTR lpFile, LPCWSTR lpDirectory,
LPWSTR lpResult) LPWSTR lpResult)
@ -415,6 +417,7 @@ BOOL WINAPI SHGetPathFromIDListAW(LPCITEMIDLIST pidl,LPSTR pszPath)
/************************************************************************* /*************************************************************************
* SHGetSpecialFolderLocation [SHELL32.223] * SHGetSpecialFolderLocation [SHELL32.223]
*
* gets the folder locations from the registry and creates a pidl * gets the folder locations from the registry and creates a pidl
* creates missing reg keys and directorys * creates missing reg keys and directorys
* *
@ -432,7 +435,7 @@ BOOL WINAPI SHGetPathFromIDListAW(LPCITEMIDLIST pidl,LPSTR pszPath)
*/ */
HRESULT WINAPI SHGetSpecialFolderLocation(HWND hwndOwner, INT nFolder, LPITEMIDLIST * ppidl) HRESULT WINAPI SHGetSpecialFolderLocation(HWND hwndOwner, INT nFolder, LPITEMIDLIST * ppidl)
{ LPSHELLFOLDER shellfolder; { LPSHELLFOLDER shellfolder;
DWORD pchEaten,tpathlen=MAX_PATH,type,dwdisp,res; DWORD pchEaten, tpathlen=MAX_PATH, type, dwdisp, res, dwLastError;
CHAR pszTemp[256], buffer[256], tpath[MAX_PATH], npath[MAX_PATH]; CHAR pszTemp[256], buffer[256], tpath[MAX_PATH], npath[MAX_PATH];
LPWSTR lpszDisplayName = (LPWSTR)&pszTemp[0]; LPWSTR lpszDisplayName = (LPWSTR)&pszTemp[0];
HKEY key; HKEY key;
@ -623,7 +626,9 @@ HRESULT WINAPI SHGetSpecialFolderLocation(HWND hwndOwner, INT nFolder, LPITEMIDL
return E_OUTOFMEMORY; return E_OUTOFMEMORY;
} }
TRACE(shell,"value %s=%s created\n",buffer,npath); TRACE(shell,"value %s=%s created\n",buffer,npath);
dwLastError = GetLastError();
CreateDirectoryA(npath,NULL); CreateDirectoryA(npath,NULL);
SetLastError (dwLastError);
strcpy(tpath,npath); strcpy(tpath,npath);
} }
break; break;
@ -674,7 +679,7 @@ DWORD WINAPI SHLoadInProc (DWORD dwArg1)
} }
/************************************************************************* /*************************************************************************
* ShellExecute32A (SHELL32.245) * ShellExecuteA [SHELL32.245]
*/ */
HINSTANCE WINAPI ShellExecuteA( HWND hWnd, LPCSTR lpOperation, HINSTANCE WINAPI ShellExecuteA( HWND hWnd, LPCSTR lpOperation,
LPCSTR lpFile, LPCSTR lpParameters, LPCSTR lpFile, LPCSTR lpParameters,
@ -685,7 +690,7 @@ HINSTANCE WINAPI ShellExecuteA( HWND hWnd, LPCSTR lpOperation,
} }
/************************************************************************* /*************************************************************************
* ShellExecute32W [SHELL32.294] * ShellExecuteW [SHELL32.294]
* from shellapi.h * from shellapi.h
* WINSHELLAPI HINSTANCE APIENTRY ShellExecuteW(HWND hwnd, LPCWSTR lpOperation, * WINSHELLAPI HINSTANCE APIENTRY ShellExecuteW(HWND hwnd, LPCWSTR lpOperation,
* LPCWSTR lpFile, LPCWSTR lpParameters, LPCWSTR lpDirectory, INT nShowCmd); * LPCWSTR lpFile, LPCWSTR lpParameters, LPCWSTR lpDirectory, INT nShowCmd);
@ -704,7 +709,7 @@ ShellExecuteW(
} }
/************************************************************************* /*************************************************************************
* AboutDlgProc32 (not an exported API function) * AboutDlgProc32 (internal)
*/ */
BOOL WINAPI AboutDlgProc( HWND hWnd, UINT msg, WPARAM wParam, BOOL WINAPI AboutDlgProc( HWND hWnd, UINT msg, WPARAM wParam,
LPARAM lParam ) LPARAM lParam )
@ -835,7 +840,7 @@ BOOL WINAPI AboutDlgProc( HWND hWnd, UINT msg, WPARAM wParam,
/************************************************************************* /*************************************************************************
* ShellAbout32A (SHELL32.243) * ShellAboutA [SHELL32.243]
*/ */
BOOL WINAPI ShellAboutA( HWND hWnd, LPCSTR szApp, LPCSTR szOtherStuff, BOOL WINAPI ShellAboutA( HWND hWnd, LPCSTR szApp, LPCSTR szOtherStuff,
HICON hIcon ) HICON hIcon )
@ -852,7 +857,7 @@ BOOL WINAPI ShellAboutA( HWND hWnd, LPCSTR szApp, LPCSTR szOtherStuff,
/************************************************************************* /*************************************************************************
* ShellAbout32W (SHELL32.244) * ShellAboutW [SHELL32.244]
*/ */
BOOL WINAPI ShellAboutW( HWND hWnd, LPCWSTR szApp, LPCWSTR szOtherStuff, BOOL WINAPI ShellAboutW( HWND hWnd, LPCWSTR szApp, LPCWSTR szOtherStuff,
HICON hIcon ) HICON hIcon )
@ -903,7 +908,7 @@ void WINAPI FreeIconList( DWORD dw )
} }
/************************************************************************* /*************************************************************************
* SHGetPathFromIDList32A [SHELL32.261][NT 4.0: SHELL32.220] * SHGetPathFromIDListA [SHELL32.261][NT 4.0: SHELL32.220]
* *
* PARAMETERS * PARAMETERS
* pidl, [IN] pidl * pidl, [IN] pidl
@ -950,15 +955,14 @@ DWORD WINAPI SHGetPathFromIDListA (LPCITEMIDLIST pidl,LPSTR pszPath)
{ shellfolder->lpvtbl->fnGetDisplayNameOf(shellfolder,pidl,SHGDN_FORPARSING,&lpName); { shellfolder->lpvtbl->fnGetDisplayNameOf(shellfolder,pidl,SHGDN_FORPARSING,&lpName);
shellfolder->lpvtbl->fnRelease(shellfolder); shellfolder->lpvtbl->fnRelease(shellfolder);
} }
/*WideCharToLocal32(pszPath, lpName.u.pOleStr, MAX_PATH);*/
strcpy(pszPath,lpName.u.cStr); strcpy(pszPath,lpName.u.cStr);
/* fixme free the olestring*/
} }
TRACE(shell,"-- (%s)\n",pszPath); TRACE(shell,"-- (%s)\n",pszPath);
return NOERROR;
return TRUE;
} }
/************************************************************************* /*************************************************************************
* SHGetPathFromIDList32W [SHELL32.262] * SHGetPathFromIDListW [SHELL32.262]
*/ */
DWORD WINAPI SHGetPathFromIDListW (LPCITEMIDLIST pidl,LPWSTR pszPath) DWORD WINAPI SHGetPathFromIDListW (LPCITEMIDLIST pidl,LPWSTR pszPath)
{ char sTemp[MAX_PATH]; { char sTemp[MAX_PATH];
@ -970,7 +974,7 @@ DWORD WINAPI SHGetPathFromIDListW (LPCITEMIDLIST pidl,LPWSTR pszPath)
TRACE(shell,"-- (%s)\n",debugstr_w(pszPath)); TRACE(shell,"-- (%s)\n",debugstr_w(pszPath));
return NOERROR; return TRUE;
} }
/************************************************************************* /*************************************************************************

View File

@ -42,7 +42,14 @@ LPITEMIDLIST WINAPI ILGetNext(LPITEMIDLIST pidl);
LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST iil1,LPCITEMIDLIST iil2); LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST iil1,LPCITEMIDLIST iil2);
LPITEMIDLIST WINAPI ILFindLastID(LPITEMIDLIST pidl); LPITEMIDLIST WINAPI ILFindLastID(LPITEMIDLIST pidl);
DWORD WINAPI ILGetSize(LPITEMIDLIST pidl); DWORD WINAPI ILGetSize(LPITEMIDLIST pidl);
LPITEMIDLIST WINAPI ILCreateFromPath(LPVOID path);
HRESULT WINAPI SHILCreateFromPathA (LPSTR path, LPITEMIDLIST * ppidl, DWORD attributes);
HRESULT WINAPI SHILCreateFromPathW (LPWSTR path, LPITEMIDLIST * ppidl, DWORD attributes);
HRESULT WINAPI SHILCreateFromPathAW (LPVOID path, LPITEMIDLIST * ppidl, DWORD attributes);
LPITEMIDLIST WINAPI ILCreateFromPathA(LPSTR path);
LPITEMIDLIST WINAPI ILCreateFromPathW(LPWSTR path);
LPITEMIDLIST WINAPI ILCreateFromPathAW(LPVOID path);
DWORD WINAPI Shell_GetImageList(HIMAGELIST * lpBigList, HIMAGELIST * lpSmallList); DWORD WINAPI Shell_GetImageList(HIMAGELIST * lpBigList, HIMAGELIST * lpSmallList);
HRESULT WINAPI StrRetToStrN (LPVOID dest, DWORD len, LPSTRRET src, LPITEMIDLIST pidl); HRESULT WINAPI StrRetToStrN (LPVOID dest, DWORD len, LPSTRRET src, LPITEMIDLIST pidl);

View File

@ -18,6 +18,7 @@
/************************************************************************* /*************************************************************************
* SHChangeNotifyRegister [SHELL32.2] * SHChangeNotifyRegister [SHELL32.2]
*
* NOTES * NOTES
* Idlist is an array of structures and Count specifies how many items in the array * Idlist is an array of structures and Count specifies how many items in the array
* (usually just one I think). * (usually just one I think).
@ -147,28 +148,19 @@ int WINAPI SHShellFolderView_Message(HWND hwndCabinet,UINT uMsg,LPARAM lParam)
/************************************************************************* /*************************************************************************
* OleStrToStrN [SHELL32.78] * OleStrToStrN [SHELL32.78]
*
* NOTES
* exported by ordinal
* FIXME
* wrong implemented OleStr is NOT wide string !!!! (jsch)
*/ */
BOOL WINAPI BOOL WINAPI OleStrToStrN (LPSTR lpMulti, INT nMulti, LPCWSTR lpWide, INT nWide)
OleStrToStrN (LPSTR lpMulti, INT nMulti, LPCWSTR lpWide, INT nWide) { {
return WideCharToMultiByte (0, 0, lpWide, nWide, TRACE(shell,"%s %x %s %x\n", lpMulti, nMulti, debugstr_w(lpWide), nWide);
lpMulti, nMulti, NULL, NULL); return WideCharToMultiByte (0, 0, lpWide, nWide, lpMulti, nMulti, NULL, NULL);
} }
/************************************************************************* /*************************************************************************
* StrToOleStrN [SHELL32.79] * StrToOleStrN [SHELL32.79]
*
* NOTES
* exported by ordinal
* FIXME
* wrong implemented OleStr is NOT wide string !!!! (jsch)
*/ */
BOOL WINAPI BOOL WINAPI StrToOleStrN (LPWSTR lpWide, INT nWide, LPCSTR lpMulti, INT nMulti)
StrToOleStrN (LPWSTR lpWide, INT nWide, LPCSTR lpMulti, INT nMulti) { {
TRACE(shell,"%s %x %s %x\n", debugstr_w(lpWide), nWide, lpMulti, nMulti);
return MultiByteToWideChar (0, 0, lpMulti, nMulti, lpWide, nWide); return MultiByteToWideChar (0, 0, lpMulti, nMulti, lpWide, nWide);
} }
@ -459,7 +451,7 @@ DWORD WINAPI SHAddToRecentDocs (UINT uFlags,LPCVOID pv)
return 0; return 0;
} }
/************************************************************************* /*************************************************************************
* SHFileOperation32 [SHELL32.242] * SHFileOperation [SHELL32.242]
* *
*/ */
DWORD WINAPI SHFileOperationAW(DWORD x) DWORD WINAPI SHFileOperationAW(DWORD x)
@ -469,7 +461,7 @@ DWORD WINAPI SHFileOperationAW(DWORD x)
} }
/************************************************************************* /*************************************************************************
* SHFileOperation32A [SHELL32.243] * SHFileOperationA [SHELL32.243]
* *
* NOTES * NOTES
* exported by name * exported by name
@ -479,7 +471,7 @@ DWORD WINAPI SHFileOperationA (LPSHFILEOPSTRUCTA lpFileOp)
return 1; return 1;
} }
/************************************************************************* /*************************************************************************
* SHFileOperation32W [SHELL32.244] * SHFileOperationW [SHELL32.244]
* *
* NOTES * NOTES
* exported by name * exported by name
@ -592,7 +584,7 @@ BOOL WINAPI ShellExecuteExAW (LPVOID sei)
return ShellExecuteExA (sei); return ShellExecuteExA (sei);
} }
/************************************************************************* /*************************************************************************
* ShellExecuteEx32A [SHELL32.292] * ShellExecuteExA [SHELL32.292]
* *
*/ */
BOOL WINAPI ShellExecuteExA (LPSHELLEXECUTEINFOA sei) BOOL WINAPI ShellExecuteExA (LPSHELLEXECUTEINFOA sei)
@ -668,7 +660,7 @@ BOOL WINAPI ShellExecuteExA (LPSHELLEXECUTEINFOA sei)
} }
/************************************************************************* /*************************************************************************
* ShellExecuteEx32W [SHELL32.293] * ShellExecuteExW [SHELL32.293]
* *
*/ */
BOOL WINAPI ShellExecuteExW (LPSHELLEXECUTEINFOW sei) BOOL WINAPI ShellExecuteExW (LPSHELLEXECUTEINFOW sei)
@ -767,7 +759,7 @@ HRESULT WINAPI FileMenu_Destroy (DWORD u)
return 0; return 0;
} }
/************************************************************************* /*************************************************************************
* SHRegCloseKey32 [NT4.0:SHELL32.505] * SHRegCloseKey [NT4.0:SHELL32.505]
* *
*/ */
HRESULT WINAPI SHRegCloseKey (HKEY hkey) HRESULT WINAPI SHRegCloseKey (HKEY hkey)
@ -775,7 +767,7 @@ HRESULT WINAPI SHRegCloseKey (HKEY hkey)
return RegCloseKey( hkey ); return RegCloseKey( hkey );
} }
/************************************************************************* /*************************************************************************
* SHRegOpenKey32A [SHELL32.506] * SHRegOpenKeyA [SHELL32.506]
* *
*/ */
HRESULT WINAPI SHRegOpenKeyA(HKEY hKey, LPSTR lpSubKey, LPHKEY phkResult) HRESULT WINAPI SHRegOpenKeyA(HKEY hKey, LPSTR lpSubKey, LPHKEY phkResult)
@ -785,7 +777,7 @@ HRESULT WINAPI SHRegOpenKeyA(HKEY hKey, LPSTR lpSubKey, LPHKEY phkResult)
} }
/************************************************************************* /*************************************************************************
* SHRegOpenKey32W [NT4.0:SHELL32.507] * SHRegOpenKeyW [NT4.0:SHELL32.507]
* *
*/ */
HRESULT WINAPI SHRegOpenKeyW (HKEY hkey, LPCWSTR lpszSubKey, LPHKEY retkey) HRESULT WINAPI SHRegOpenKeyW (HKEY hkey, LPCWSTR lpszSubKey, LPHKEY retkey)
@ -803,7 +795,7 @@ HRESULT WINAPI SHRegQueryValueExA(DWORD u, LPSTR v, DWORD w, DWORD x,
return 0; return 0;
} }
/************************************************************************* /*************************************************************************
* SHRegQueryValue32W [NT4.0:SHELL32.510] * SHRegQueryValueW [NT4.0:SHELL32.510]
* *
*/ */
HRESULT WINAPI SHRegQueryValueW (HKEY hkey, LPWSTR lpszSubKey, HRESULT WINAPI SHRegQueryValueW (HKEY hkey, LPWSTR lpszSubKey,
@ -814,7 +806,7 @@ HRESULT WINAPI SHRegQueryValueW (HKEY hkey, LPWSTR lpszSubKey,
} }
/************************************************************************* /*************************************************************************
* SHRegQueryValueEx32W [NT4.0:SHELL32.511] * SHRegQueryValueExW [NT4.0:SHELL32.511]
* *
* FIXME * FIXME
* if the datatype REG_EXPAND_SZ then expand the string and change * if the datatype REG_EXPAND_SZ then expand the string and change
@ -996,7 +988,7 @@ HANDLE WINAPI SHFreeShared(HANDLE hmem, DWORD procID)
} }
/************************************************************************* /*************************************************************************
* SetAppStartingCursor32 [SHELL32.99] * SetAppStartingCursor [SHELL32.99]
* *
*/ */
HRESULT WINAPI SetAppStartingCursor(HWND u, DWORD v) HRESULT WINAPI SetAppStartingCursor(HWND u, DWORD v)
@ -1004,7 +996,7 @@ HRESULT WINAPI SetAppStartingCursor(HWND u, DWORD v)
return 0; return 0;
} }
/************************************************************************* /*************************************************************************
* SHLoadOLE32 [SHELL32.151] * SHLoadOLE [SHELL32.151]
* *
*/ */
HRESULT WINAPI SHLoadOLE(DWORD u) HRESULT WINAPI SHLoadOLE(DWORD u)
@ -1012,7 +1004,7 @@ HRESULT WINAPI SHLoadOLE(DWORD u)
return S_OK; return S_OK;
} }
/************************************************************************* /*************************************************************************
* Shell_MergeMenus32 [SHELL32.67] * Shell_MergeMenus [SHELL32.67]
* *
*/ */
BOOL _SHIsMenuSeparator(HMENU hm, int i) BOOL _SHIsMenuSeparator(HMENU hm, int i)
@ -1148,10 +1140,9 @@ HRESULT WINAPI Shell_MergeMenus (HMENU hmDst, HMENU hmSrc, UINT uInsert, UINT uI
} }
} }
return(uIDMax); return(uIDMax);
} }
/************************************************************************* /*************************************************************************
* DriveType32 [SHELL32.64] * DriveType [SHELL32.64]
* *
*/ */
HRESULT WINAPI DriveType(DWORD u) HRESULT WINAPI DriveType(DWORD u)

View File

@ -496,7 +496,7 @@ BOOL WINAPI PathMatchSpecAW(LPVOID name, LPVOID mask)
return PathMatchSpecA( name, mask ); return PathMatchSpecA( name, mask );
} }
/************************************************************************* /*************************************************************************
* PathSetDlgItemPath32AW [SHELL32.48] * PathSetDlgItemPathAW [SHELL32.48]
* NOTES * NOTES
* use PathCompactPath to make sure, the path fits into the control * use PathCompactPath to make sure, the path fits into the control
*/ */
@ -516,7 +516,7 @@ BOOL WINAPI PathSetDlgItemPathAW(HWND hDlg, int id, LPCVOID pszPath)
} }
/************************************************************************* /*************************************************************************
* PathQualify32AW [SHELL32.49] * PathQualifyAW [SHELL32.49]
*/ */
BOOL WINAPI PathQualifyA(LPCSTR pszPath) BOOL WINAPI PathQualifyA(LPCSTR pszPath)

View File

@ -303,7 +303,7 @@ BOOL ShellView_InitList(LPSHELLVIEW this)
lvColumn.cx = nColumn1; lvColumn.cx = nColumn1;
strcpy(szString,"File"); strcpy(szString,"File");
/*LoadString32A(shell32_hInstance, IDS_COLUMN1, szString, sizeof(szString));*/ /*LoadStringA(shell32_hInstance, IDS_COLUMN1, szString, sizeof(szString));*/
ListView_InsertColumnA(this->hWndList, 0, &lvColumn); ListView_InsertColumnA(this->hWndList, 0, &lvColumn);
lvColumn.cx = nColumn2; lvColumn.cx = nColumn2;
@ -992,7 +992,7 @@ LRESULT ShellView_OnNotify(LPSHELLVIEW this, UINT CtlID, LPNMHDR lpnmh)
break; break;
case HDN_ENDTRACKA: case HDN_ENDTRACKA:
TRACE(shell,"-- HDN_ENDTRACK32A %p\n",this); TRACE(shell,"-- HDN_ENDTRACKA %p\n",this);
/*nColumn1 = ListView_GetColumnWidth(this->hWndList, 0); /*nColumn1 = ListView_GetColumnWidth(this->hWndList, 0);
nColumn2 = ListView_GetColumnWidth(this->hWndList, 1);*/ nColumn2 = ListView_GetColumnWidth(this->hWndList, 1);*/
break; break;
@ -1015,7 +1015,7 @@ LRESULT ShellView_OnNotify(LPSHELLVIEW this, UINT CtlID, LPNMHDR lpnmh)
break; break;
case LVN_GETDISPINFOA: case LVN_GETDISPINFOA:
TRACE(shell,"-- LVN_GETDISPINFO32A %p\n",this); TRACE(shell,"-- LVN_GETDISPINFOA %p\n",this);
pidl = (LPITEMIDLIST)lpdi->item.lParam; pidl = (LPITEMIDLIST)lpdi->item.lParam;

View File

@ -196,6 +196,15 @@ typedef struct _AppBarData {
LPARAM lParam; LPARAM lParam;
} APPBARDATA, *PAPPBARDATA; } APPBARDATA, *PAPPBARDATA;
#define SHGFI_LARGEICON 0x000000000 /* get large icon */
#define SHGFI_SMALLICON 0x000000001 /* get small icon */
#define SHGFI_OPENICON 0x000000002 /* get open icon */
#define SHGFI_SHELLICONSIZE 0x000000004 /* get shell size icon */
#define SHGFI_PIDL 0x000000008 /* pszPath is a pidl */
#define SHGFI_USEFILEATTRIBUTES 0x000000010 /* use passed dwFileAttribute */
#define SHGFI_UNKNOWN1 0x000000020
#define SHGFI_UNKNOWN2 0x000000040
#define SHGFI_UNKNOWN3 0x000000080
#define SHGFI_ICON 0x000000100 /* get icon */ #define SHGFI_ICON 0x000000100 /* get icon */
#define SHGFI_DISPLAYNAME 0x000000200 /* get display name */ #define SHGFI_DISPLAYNAME 0x000000200 /* get display name */
#define SHGFI_TYPENAME 0x000000400 /* get type name */ #define SHGFI_TYPENAME 0x000000400 /* get type name */
@ -205,12 +214,7 @@ typedef struct _AppBarData {
#define SHGFI_SYSICONINDEX 0x000004000 /* get system icon index */ #define SHGFI_SYSICONINDEX 0x000004000 /* get system icon index */
#define SHGFI_LINKOVERLAY 0x000008000 /* put a link overlay on icon */ #define SHGFI_LINKOVERLAY 0x000008000 /* put a link overlay on icon */
#define SHGFI_SELECTED 0x000010000 /* show icon in selected state */ #define SHGFI_SELECTED 0x000010000 /* show icon in selected state */
#define SHGFI_LARGEICON 0x000000000 /* get large icon */ #define SHGFI_ATTR_SPECIFIED 0x000020000 /* get only specified attributes */
#define SHGFI_SMALLICON 0x000000001 /* get small icon */
#define SHGFI_OPENICON 0x000000002 /* get open icon */
#define SHGFI_SHELLICONSIZE 0x000000004 /* get shell size icon */
#define SHGFI_PIDL 0x000000008 /* pszPath is a pidl */
#define SHGFI_USEFILEATTRIBUTES 0x000000010 /* use passed dwFileAttribute */
/**************************************************************************** /****************************************************************************
* SHChangeNotifyRegister API * SHChangeNotifyRegister API

View File

@ -33,7 +33,7 @@ init Shell32LibMain
25 stdcall ILCombine(ptr ptr) ILCombine 25 stdcall ILCombine(ptr ptr) ILCombine
26 stub ILLoadFromStream@8 26 stub ILLoadFromStream@8
27 stub ILSaveToStream@8 27 stub ILSaveToStream@8
28 stub SHILCreateFromPath@12 28 stdcall SHILCreateFromPath (long long long) SHILCreateFromPathAW
29 stdcall PathIsRoot(ptr) PathIsRootAW 29 stdcall PathIsRoot(ptr) PathIsRootAW
30 stdcall PathBuildRoot(ptr long) PathBuildRootA 30 stdcall PathBuildRoot(ptr long) PathBuildRootA
31 stdcall PathFindExtension(ptr) PathFindExtensionAW 31 stdcall PathFindExtension(ptr) PathFindExtensionAW
@ -162,7 +162,7 @@ init Shell32LibMain
154 stdcall ILAppend (long long long) ILAppend 154 stdcall ILAppend (long long long) ILAppend
155 stdcall ILFree (ptr) ILFree 155 stdcall ILFree (ptr) ILFree
156 stdcall ILGlobalFree (ptr) ILGlobalFree 156 stdcall ILGlobalFree (ptr) ILGlobalFree
157 stdcall ILCreateFromPath (ptr) ILCreateFromPath 157 stdcall ILCreateFromPath (ptr) ILCreateFromPathAW
158 stdcall PathGetExtension(str long long) PathGetExtensionAW 158 stdcall PathGetExtension(str long long) PathGetExtensionAW
159 stub PathIsDirectory 159 stub PathIsDirectory
160 stub SHNetConnectionDialog 160 stub SHNetConnectionDialog