- 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

@ -58,7 +58,7 @@ static DWORD SHELL_GetResourceTable(HFILE hFile,LPBYTE *retptr)
if ((_lread(hFile,&mz_header,sizeof(mz_header)) != sizeof(mz_header)) || (mz_header.e_magic != IMAGE_DOS_SIGNATURE)) if ((_lread(hFile,&mz_header,sizeof(mz_header)) != sizeof(mz_header)) || (mz_header.e_magic != IMAGE_DOS_SIGNATURE))
{ if (mz_header.e_cblp == 1) /* .ICO file ? */ { if (mz_header.e_cblp == 1) /* .ICO file ? */
{ *retptr = (LPBYTE)-1; /* ICONHEADER.idType, must be 1 */ { *retptr = (LPBYTE)-1; /* ICONHEADER.idType, must be 1 */
return 1; return 1;
} }
else else
return 0; /* failed */ return 0; /* failed */
@ -98,7 +98,7 @@ static DWORD SHELL_GetResourceTable(HFILE hFile,LPBYTE *retptr)
*retptr = pTypeInfo; *retptr = pTypeInfo;
return IMAGE_OS2_SIGNATURE; return IMAGE_OS2_SIGNATURE;
} }
return 0; /* failed */ return 0; /* failed */
} }
/************************************************************************* /*************************************************************************
* SHELL_LoadResource * SHELL_LoadResource
@ -141,7 +141,7 @@ static HGLOBAL16 ICO_GetIconDirectory(HINSTANCE hInst, HFILE hFile, LPicoICONDIR
{ WORD id[3]; /* idReserved, idType, idCount */ { WORD id[3]; /* idReserved, idType, idCount */
LPicoICONDIR lpiID; LPicoICONDIR lpiID;
int i; int i;
TRACE(shell,"\n"); TRACE(shell,"\n");
_llseek( hFile, 0, SEEK_SET ); _llseek( hFile, 0, SEEK_SET );
if( _lread(hFile,(char*)id,sizeof(id)) != sizeof(id) ) if( _lread(hFile,(char*)id,sizeof(id)) != sizeof(id) )
@ -169,7 +169,7 @@ static HGLOBAL16 ICO_GetIconDirectory(HINSTANCE hInst, HFILE hFile, LPicoICONDIR
for( i=0; i < lpiID->idCount; i++ ) for( i=0; i < lpiID->idCount; i++ )
{ memcpy((void*)(lpID->idEntries + i),(void*)(lpiID->idEntries + i), sizeof(ICONDIRENTRY) - 2); { memcpy((void*)(lpID->idEntries + i),(void*)(lpiID->idEntries + i), sizeof(ICONDIRENTRY) - 2);
lpID->idEntries[i].icon.wResId = i; lpID->idEntries[i].icon.wResId = i;
} }
*lplpiID = lpiID; *lplpiID = lpiID;
return handle; return handle;
} }
@ -215,7 +215,7 @@ HGLOBAL WINAPI ICO_ExtractIconEx(LPCSTR lpszExeFileName, HICON * RetPtr, UINT nI
NE_NAMEINFO* pIconStorage = NULL; NE_NAMEINFO* pIconStorage = NULL;
NE_NAMEINFO* pIconDir = NULL; NE_NAMEINFO* pIconDir = NULL;
LPicoICONDIR lpiID = NULL; LPicoICONDIR lpiID = NULL;
if( pData == (BYTE*)-1 ) if( pData == (BYTE*)-1 )
{ hIcon = ICO_GetIconDirectory(0, hFile, &lpiID); /* check for .ICO file */ { hIcon = ICO_GetIconDirectory(0, hFile, &lpiID); /* check for .ICO file */
if( hIcon ) if( hIcon )
@ -252,7 +252,7 @@ HGLOBAL WINAPI ICO_ExtractIconEx(LPCSTR lpszExeFileName, HICON * RetPtr, UINT nI
hIcon = SHELL_LoadResource( 0, hFile, pIconDir + i, *(WORD*)pData ); hIcon = SHELL_LoadResource( 0, hFile, pIconDir + i, *(WORD*)pData );
RetPtr[i-nIconIndex] = GetIconID16( hIcon, 3 ); RetPtr[i-nIconIndex] = GetIconID16( hIcon, 3 );
GlobalFree16(hIcon); GlobalFree16(hIcon);
} }
for( icon = nIconIndex; icon < nIconIndex + n; icon++ ) for( icon = nIconIndex; icon < nIconIndex + n; icon++ )
{ hIcon = 0; { hIcon = 0;
@ -336,7 +336,7 @@ HGLOBAL WINAPI ICO_ExtractIconEx(LPCSTR lpszExeFileName, HICON * RetPtr, UINT nI
{ hRet = iconDirCount; { hRet = iconDirCount;
goto end_3; /* success */ goto end_3; /* success */
} }
if (nIconIndex >= iconDirCount) if (nIconIndex >= iconDirCount)
{ WARN(shell,"nIconIndex %d is larger than iconDirCount %d\n",nIconIndex,iconDirCount); { WARN(shell,"nIconIndex %d is larger than iconDirCount %d\n",nIconIndex,iconDirCount);
goto end_4; /* failure */ goto end_4; /* failure */
@ -433,10 +433,11 @@ typedef struct
} SIC_ENTRY, * LPSIC_ENTRY; } SIC_ENTRY, * LPSIC_ENTRY;
/***************************************************************************** /*****************************************************************************
* SIC_CompareEntrys [called by comctl32.dll] * SIC_CompareEntrys [called by comctl32.dll]
* NOTES *
* Callback for DPA_Search * NOTES
*/ * Callback for DPA_Search
*/
INT CALLBACK SIC_CompareEntrys( LPVOID p1, LPVOID p2, LPARAM lparam) INT CALLBACK SIC_CompareEntrys( LPVOID p1, LPVOID p2, LPARAM lparam)
{ TRACE(shell,"%p %p\n", p1, p2); { TRACE(shell,"%p %p\n", p1, p2);
@ -449,10 +450,11 @@ INT CALLBACK SIC_CompareEntrys( LPVOID p1, LPVOID p2, LPARAM lparam)
return 0; return 0;
} }
/***************************************************************************** /*****************************************************************************
* SIC_IconAppend (internal) * SIC_IconAppend [internal]
* NOTES *
* appends a icon pair to the end of the cache * NOTES
*/ * appends a icon pair to the end of the cache
*/
static INT SIC_IconAppend (LPCSTR sSourceFile, INT dwSourceIndex, HICON hSmallIcon, HICON hBigIcon) static INT SIC_IconAppend (LPCSTR sSourceFile, INT dwSourceIndex, HICON hSmallIcon, HICON hBigIcon)
{ LPSIC_ENTRY lpsice; { LPSIC_ENTRY lpsice;
INT index, index1; INT index, index1;
@ -468,7 +470,7 @@ static INT SIC_IconAppend (LPCSTR sSourceFile, INT dwSourceIndex, HICON hSmallIc
if ( INVALID_INDEX == index ) if ( INVALID_INDEX == index )
{ SHFree(lpsice); { SHFree(lpsice);
return INVALID_INDEX; return INVALID_INDEX;
} }
index = pImageList_AddIcon (ShellSmallIconList, hSmallIcon); index = pImageList_AddIcon (ShellSmallIconList, hSmallIcon);
index1= pImageList_AddIcon (ShellBigIconList, hBigIcon); index1= pImageList_AddIcon (ShellBigIconList, hBigIcon);
@ -482,10 +484,11 @@ static INT SIC_IconAppend (LPCSTR sSourceFile, INT dwSourceIndex, HICON hSmallIc
} }
/**************************************************************************** /****************************************************************************
* SIC_LoadIcon [internal] * SIC_LoadIcon [internal]
* NOTES *
* gets small/big icon by number from a file * NOTES
*/ * gets small/big icon by number from a file
*/
static INT SIC_LoadIcon (LPCSTR sSourceFile, INT dwSourceIndex) static INT SIC_LoadIcon (LPCSTR sSourceFile, INT dwSourceIndex)
{ HICON hiconLarge=0; { HICON hiconLarge=0;
HICON hiconSmall=0; HICON hiconSmall=0;
@ -501,11 +504,12 @@ static INT SIC_LoadIcon (LPCSTR sSourceFile, INT dwSourceIndex)
return SIC_IconAppend (sSourceFile, dwSourceIndex, hiconSmall, hiconLarge); return SIC_IconAppend (sSourceFile, dwSourceIndex, hiconSmall, hiconLarge);
} }
/***************************************************************************** /*****************************************************************************
* SIC_GetIconIndex [internal] * SIC_GetIconIndex [internal]
* NOTES *
* look in the cache for a proper icon. if not available the icon is taken * NOTES
* from the file and cached * look in the cache for a proper icon. if not available the icon is taken
*/ * from the file and cached
*/
INT SIC_GetIconIndex (LPCSTR sSourceFile, INT dwSourceIndex ) INT SIC_GetIconIndex (LPCSTR sSourceFile, INT dwSourceIndex )
{ SIC_ENTRY sice; { SIC_ENTRY sice;
INT index = INVALID_INDEX; INT index = INVALID_INDEX;
@ -527,10 +531,11 @@ INT SIC_GetIconIndex (LPCSTR sSourceFile, INT dwSourceIndex )
return ((LPSIC_ENTRY)pDPA_GetPtr(hdpa, index))->dwListIndex; return ((LPSIC_ENTRY)pDPA_GetPtr(hdpa, index))->dwListIndex;
} }
/**************************************************************************** /****************************************************************************
* SIC_LoadIcon [internal] * SIC_LoadIcon [internal]
* NOTES *
* retrives the specified icon from the iconcache. if not found try's to load the icon * NOTES
*/ * retrives the specified icon from the iconcache. if not found try's to load the icon
*/
static HICON SIC_GetIcon (LPCSTR sSourceFile, INT dwSourceIndex, BOOL bSmallIcon ) static HICON SIC_GetIcon (LPCSTR sSourceFile, INT dwSourceIndex, BOOL bSmallIcon )
{ INT index; { INT index;
@ -547,11 +552,12 @@ static HICON SIC_GetIcon (LPCSTR sSourceFile, INT dwSourceIndex, BOOL bSmallIcon
} }
/***************************************************************************** /*****************************************************************************
* SIC_Initialize [internal] * SIC_Initialize [internal]
* NOTES *
* hack to load the resources from the shell32.dll under a different dll name * NOTES
* will be removed when the resource-compiler is ready * hack to load the resources from the shell32.dll under a different dll name
*/ * will be removed when the resource-compiler is ready
*/
BOOL SIC_Initialize(void) BOOL SIC_Initialize(void)
{ CHAR szShellPath[MAX_PATH]; { CHAR szShellPath[MAX_PATH];
HGLOBAL hSmRet, hLgRet; HGLOBAL hSmRet, hLgRet;
@ -606,7 +612,7 @@ BOOL SIC_Initialize(void)
} }
/************************************************************************* /*************************************************************************
* Shell_GetImageList [SHELL32.71] * Shell_GetImageList [SHELL32.71]
* *
* PARAMETERS * PARAMETERS
* imglist[1|2] [OUT] pointer which recive imagelist handles * imglist[1|2] [OUT] pointer which recive imagelist handles
@ -625,7 +631,7 @@ DWORD WINAPI Shell_GetImageList(HIMAGELIST * lpBigList, HIMAGELIST * lpSmallList
} }
/************************************************************************* /*************************************************************************
* SHMapPIDLToSystemImageListIndex [SHELL32.77] * SHMapPIDLToSystemImageListIndex [SHELL32.77]
* *
* PARAMETERS * PARAMETERS
* x pointer to an instance of IShellFolder * x pointer to an instance of IShellFolder
@ -679,7 +685,7 @@ DWORD WINAPI SHMapPIDLToSystemImageListIndex(LPSHELLFOLDER sh,LPITEMIDLIST pidl,
} }
/************************************************************************* /*************************************************************************
* Shell_GetCachedImageIndex [SHELL32.72] * Shell_GetCachedImageIndex [SHELL32.72]
* *
*/ */
INT WINAPI Shell_GetCachedImageIndexA(LPCSTR szPath, INT nIndex, DWORD z) INT WINAPI Shell_GetCachedImageIndexA(LPCSTR szPath, INT nIndex, DWORD z)
@ -705,20 +711,20 @@ 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())
return ExtractIconExW ( lpszFile, nIconIndex, phiconLarge, phiconSmall, nIcons); return ExtractIconExW ( lpszFile, nIconIndex, phiconLarge, phiconSmall, nIcons);
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,8 +755,8 @@ 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;
DWORD ret; DWORD ret;

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(pidl,"(path=%s)\n",(LPSTR)path);
LocalToWideChar(lpszDisplayName, path, MAX_PATH);
}
else
{ TRACE(pidl,"(path=L%s)\n",debugstr_w(path));
lstrcpyW(lpszDisplayName, path);
}
if (SHGetDesktopFolder(&shellfolder)==S_OK) TRACE(shell,"%s\n",path);
{ shellfolder->lpvtbl->fnParseDisplayName(shellfolder,0, NULL,lpszDisplayName,&pchEaten,&pidlnew,NULL); if (SUCCEEDED (SHILCreateFromPathA (path, &pidlnew, 0)))
shellfolder->lpvtbl->fnRelease(shellfolder); return pidlnew;
} return FALSE;
return pidlnew; }
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

@ -27,7 +27,7 @@
#include "shlguid.h" #include "shlguid.h"
/************************************************************************* /*************************************************************************
* CommandLineToArgvW [SHELL32.7] * CommandLineToArgvW [SHELL32.7]
*/ */
LPWSTR* WINAPI CommandLineToArgvW(LPWSTR cmdline,LPDWORD numargs) LPWSTR* WINAPI CommandLineToArgvW(LPWSTR cmdline,LPDWORD numargs)
{ LPWSTR *argv,s,t; { LPWSTR *argv,s,t;
@ -75,7 +75,7 @@ LPWSTR* WINAPI CommandLineToArgvW(LPWSTR cmdline,LPDWORD numargs)
} }
/************************************************************************* /*************************************************************************
* Control_RunDLL [SHELL32.12] * Control_RunDLL [SHELL32.12]
* *
* Wild speculation in the following! * Wild speculation in the following!
* *
@ -89,10 +89,7 @@ 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,8 +98,8 @@ 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)
@ -152,57 +154,60 @@ DWORD WINAPI SHGetFileInfoA(LPCSTR path,DWORD dwFileAttributes,
else else
{ strcpy(psfi->szDisplayName,path); { strcpy(psfi->szDisplayName,path);
} }
TRACE(shell,"displayname=%s\n", psfi->szDisplayName); TRACE(shell,"displayname=%s\n", psfi->szDisplayName);
ret=TRUE; ret=TRUE;
} }
if (flags & SHGFI_TYPENAME) if (flags & SHGFI_TYPENAME)
{ FIXME(shell,"get the file type, stub\n"); { FIXME(shell,"get the file type, stub\n");
strcpy(psfi->szTypeName,"FIXME: Type"); strcpy(psfi->szTypeName,"FIXME: Type");
ret=TRUE; ret=TRUE;
} }
if (flags & SHGFI_ICONLOCATION)
{ FIXME(shell,"location of icon, stub\n");
strcpy(psfi->szDisplayName,"");
ret=TRUE;
}
if (flags & SHGFI_EXETYPE) if (flags & SHGFI_ICONLOCATION)
FIXME(shell,"type of executable, stub\n"); { FIXME(shell,"location of icon, stub\n");
strcpy(psfi->szDisplayName,"");
ret=TRUE;
}
if (flags & SHGFI_LINKOVERLAY) if (flags & SHGFI_EXETYPE)
FIXME(shell,"set icon to link, stub\n"); FIXME(shell,"type of executable, stub\n");
if (flags & SHGFI_OPENICON) if (flags & SHGFI_LINKOVERLAY)
FIXME(shell,"set to open icon, stub\n"); FIXME(shell,"set icon to link, stub\n");
if (flags & SHGFI_SELECTED) if (flags & SHGFI_OPENICON)
FIXME(shell,"set icon to selected, stub\n"); FIXME(shell,"set to open icon, stub\n");
if (flags & SHGFI_SHELLICONSIZE) if (flags & SHGFI_SELECTED)
FIXME(shell,"set icon to shell size, stub\n"); FIXME(shell,"set icon to selected, stub\n");
if (flags & SHGFI_USEFILEATTRIBUTES) if (flags & SHGFI_SHELLICONSIZE)
FIXME(shell,"use the dwFileAttributes, stub\n"); FIXME(shell,"set icon to shell size, stub\n");
if (flags & SHGFI_ICON) if (flags & SHGFI_USEFILEATTRIBUTES)
{ FIXME(shell,"icon handle\n"); FIXME(shell,"use the dwFileAttributes, stub\n");
if (flags & SHGFI_SMALLICON)
{ TRACE(shell,"set to small icon\n"); if (flags & (SHGFI_UNKNOWN1 | SHGFI_UNKNOWN2 | SHGFI_UNKNOWN3))
psfi->hIcon=pImageList_GetIcon(ShellSmallIconList,32,ILD_NORMAL); FIXME(shell,"unknown attribute!\n");
ret = (DWORD) ShellSmallIconList;
} if (flags & SHGFI_ICON)
else { FIXME(shell,"icon handle\n");
{ TRACE(shell,"set to big icon\n"); if (flags & SHGFI_SMALLICON)
psfi->hIcon=pImageList_GetIcon(ShellBigIconList,32,ILD_NORMAL); { TRACE(shell,"set to small icon\n");
ret = (DWORD) ShellBigIconList; psfi->hIcon=pImageList_GetIcon(ShellSmallIconList,32,ILD_NORMAL);
} ret = (DWORD) ShellSmallIconList;
} }
else
{ TRACE(shell,"set to big icon\n");
psfi->hIcon=pImageList_GetIcon(ShellBigIconList,32,ILD_NORMAL);
ret = (DWORD) ShellBigIconList;
}
}
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);
@ -217,14 +222,11 @@ DWORD WINAPI SHGetFileInfoA(LPCSTR path,DWORD dwFileAttributes,
} }
} }
return ret; return ret;
} }
/************************************************************************* /*************************************************************************
* 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)
@ -339,7 +341,7 @@ static BOOL __get_dropline( HWND hWnd, LPRECT lprect )
} }
/************************************************************************* /*************************************************************************
* SHAppBarMessage32 [SHELL32.207] * SHAppBarMessage32 [SHELL32.207]
*/ */
UINT WINAPI SHAppBarMessage(DWORD msg, PAPPBARDATA data) UINT WINAPI SHAppBarMessage(DWORD msg, PAPPBARDATA data)
{ FIXME(shell,"(0x%08lx,%p): stub\n", msg, data); { FIXME(shell,"(0x%08lx,%p): stub\n", msg, data);
@ -363,7 +365,7 @@ UINT WINAPI SHAppBarMessage(DWORD msg, PAPPBARDATA data)
/************************************************************************* /*************************************************************************
* SHGetDesktopFolder [SHELL32.216] * SHGetDesktopFolder [SHELL32.216]
* *
* SDK header win95/shlobj.h: This is equivalent to call CoCreateInstance with * SDK header win95/shlobj.h: This is equivalent to call CoCreateInstance with
* CLSID_ShellDesktop * CLSID_ShellDesktop
@ -406,7 +408,7 @@ DWORD WINAPI SHGetDesktopFolder(LPSHELLFOLDER *shellfolder)
} }
/************************************************************************* /*************************************************************************
* SHGetPathFromIDList [SHELL32.221][NT 4.0: SHELL32.219] * SHGetPathFromIDList [SHELL32.221][NT 4.0: SHELL32.219]
*/ */
BOOL WINAPI SHGetPathFromIDListAW(LPCITEMIDLIST pidl,LPSTR pszPath) BOOL WINAPI SHGetPathFromIDListAW(LPCITEMIDLIST pidl,LPSTR pszPath)
{ TRACE(shell,"(pidl=%p,%p)\n",pidl,pszPath); { TRACE(shell,"(pidl=%p,%p)\n",pidl,pszPath);
@ -414,7 +416,8 @@ 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
* *
@ -431,11 +434,11 @@ 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;
enum enum
{ FT_UNKNOWN= 0x00000000, { FT_UNKNOWN= 0x00000000,
@ -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;
@ -653,7 +658,7 @@ HRESULT WINAPI SHGetSpecialFolderLocation(HWND hwndOwner, INT nFolder, LPITEMIDL
return NOERROR; return NOERROR;
} }
/************************************************************************* /*************************************************************************
* SHHelpShortcuts_RunDLL [SHELL32.224] * SHHelpShortcuts_RunDLL [SHELL32.224]
* *
*/ */
DWORD WINAPI SHHelpShortcuts_RunDLL (DWORD dwArg1, DWORD dwArg2, DWORD dwArg3, DWORD dwArg4) DWORD WINAPI SHHelpShortcuts_RunDLL (DWORD dwArg1, DWORD dwArg2, DWORD dwArg3, DWORD dwArg4)
@ -664,7 +669,7 @@ DWORD WINAPI SHHelpShortcuts_RunDLL (DWORD dwArg1, DWORD dwArg2, DWORD dwArg3, D
} }
/************************************************************************* /*************************************************************************
* SHLoadInProc [SHELL32.225] * SHLoadInProc [SHELL32.225]
* *
*/ */
@ -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 )
@ -874,7 +879,7 @@ BOOL WINAPI ShellAboutW( HWND hWnd, LPCWSTR szApp, LPCWSTR szOtherStuff,
} }
/************************************************************************* /*************************************************************************
* Shell_NotifyIcon [SHELL32.296] * Shell_NotifyIcon [SHELL32.296]
* FIXME * FIXME
* This function is supposed to deal with the systray. * This function is supposed to deal with the systray.
* Any ideas on how this is to be implimented? * Any ideas on how this is to be implimented?
@ -885,7 +890,7 @@ BOOL WINAPI Shell_NotifyIcon( DWORD dwMessage, PNOTIFYICONDATA pnid )
} }
/************************************************************************* /*************************************************************************
* Shell_NotifyIcon [SHELL32.297] * Shell_NotifyIcon [SHELL32.297]
* FIXME * FIXME
* This function is supposed to deal with the systray. * This function is supposed to deal with the systray.
* Any ideas on how this is to be implimented? * Any ideas on how this is to be implimented?
@ -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
@ -927,38 +932,37 @@ DWORD WINAPI SHGetPathFromIDListA (LPCITEMIDLIST pidl,LPSTR pszPath)
TRACE(shell,"(pidl=%p,%p)\n",pidl,pszPath); TRACE(shell,"(pidl=%p,%p)\n",pidl,pszPath);
if (!pidl) if (!pidl)
{ strcpy(buffer,"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders\\"); { strcpy(buffer,"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders\\");
if (RegCreateKeyExA(HKEY_CURRENT_USER,buffer,0,NULL,REG_OPTION_NON_VOLATILE,KEY_WRITE,NULL,&key,&dwdisp)) if (RegCreateKeyExA(HKEY_CURRENT_USER,buffer,0,NULL,REG_OPTION_NON_VOLATILE,KEY_WRITE,NULL,&key,&dwdisp))
{ return E_OUTOFMEMORY; { return E_OUTOFMEMORY;
} }
type=REG_SZ; type=REG_SZ;
strcpy (buffer,"Desktop"); /*registry name*/ strcpy (buffer,"Desktop"); /*registry name*/
if ( RegQueryValueExA(key,buffer,NULL,&type,(LPBYTE)tpath,&tpathlen)) if ( RegQueryValueExA(key,buffer,NULL,&type,(LPBYTE)tpath,&tpathlen))
{ GetWindowsDirectoryA(tpath,MAX_PATH); { GetWindowsDirectoryA(tpath,MAX_PATH);
PathAddBackslashA(tpath); PathAddBackslashA(tpath);
strcat (tpath,"Desktop"); /*folder name*/ strcat (tpath,"Desktop"); /*folder name*/
RegSetValueExA(key,buffer,0,REG_SZ,(LPBYTE)tpath,tpathlen); RegSetValueExA(key,buffer,0,REG_SZ,(LPBYTE)tpath,tpathlen);
CreateDirectoryA(tpath,NULL); CreateDirectoryA(tpath,NULL);
} }
RegCloseKey(key); RegCloseKey(key);
strcpy(pszPath,tpath); strcpy(pszPath,tpath);
} }
else else
{ if (SHGetDesktopFolder(&shellfolder)==S_OK) { if (SHGetDesktopFolder(&shellfolder)==S_OK)
{ shellfolder->lpvtbl->fnGetDisplayNameOf(shellfolder,pidl,SHGDN_FORPARSING,&lpName); { shellfolder->lpvtbl->fnGetDisplayNameOf(shellfolder,pidl,SHGDN_FORPARSING,&lpName);
shellfolder->lpvtbl->fnRelease(shellfolder); shellfolder->lpvtbl->fnRelease(shellfolder);
}
strcpy(pszPath,lpName.u.cStr);
} }
/*WideCharToLocal32(pszPath, lpName.u.pOleStr, MAX_PATH);*/
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

@ -17,7 +17,8 @@
#include "shell32_main.h" #include "shell32_main.h"
/************************************************************************* /*************************************************************************
* 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).
@ -35,7 +36,7 @@ SHChangeNotifyRegister(
return 0; return 0;
} }
/************************************************************************* /*************************************************************************
* SHChangeNotifyDeregister [SHELL32.4] * SHChangeNotifyDeregister [SHELL32.4]
*/ */
DWORD WINAPI DWORD WINAPI
SHChangeNotifyDeregister(LONG x1) SHChangeNotifyDeregister(LONG x1)
@ -43,7 +44,7 @@ SHChangeNotifyDeregister(LONG x1)
return 0; return 0;
} }
/************************************************************************* /*************************************************************************
* NTSHChangeNotifyRegister [SHELL32.640] * NTSHChangeNotifyRegister [SHELL32.640]
* 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).
@ -60,7 +61,7 @@ DWORD WINAPI NTSHChangeNotifyRegister(
return 0; return 0;
} }
/************************************************************************* /*************************************************************************
* NTSHChangeNotifyDeregister [SHELL32.641] * NTSHChangeNotifyDeregister [SHELL32.641]
*/ */
DWORD WINAPI NTSHChangeNotifyDeregister(LONG x1) DWORD WINAPI NTSHChangeNotifyDeregister(LONG x1)
{ FIXME(shell,"(0x%08lx):stub.\n",x1); { FIXME(shell,"(0x%08lx):stub.\n",x1);
@ -68,7 +69,7 @@ DWORD WINAPI NTSHChangeNotifyDeregister(LONG x1)
} }
/************************************************************************* /*************************************************************************
* ParseField [SHELL32.58] * ParseField [SHELL32.58]
* *
*/ */
DWORD WINAPI ParseFieldA(LPCSTR src, DWORD field, LPSTR dst, DWORD len) DWORD WINAPI ParseFieldA(LPCSTR src, DWORD field, LPSTR dst, DWORD len)
@ -95,7 +96,7 @@ DWORD WINAPI ParseFieldA(LPCSTR src, DWORD field, LPSTR dst, DWORD len)
} }
/************************************************************************* /*************************************************************************
* PickIconDlg [SHELL32.62] * PickIconDlg [SHELL32.62]
* *
*/ */
DWORD WINAPI PickIconDlg(DWORD x,DWORD y,DWORD z,DWORD a) DWORD WINAPI PickIconDlg(DWORD x,DWORD y,DWORD z,DWORD a)
@ -104,7 +105,7 @@ DWORD WINAPI PickIconDlg(DWORD x,DWORD y,DWORD z,DWORD a)
} }
/************************************************************************* /*************************************************************************
* GetFileNameFromBrowse [SHELL32.63] * GetFileNameFromBrowse [SHELL32.63]
* *
*/ */
DWORD WINAPI GetFileNameFromBrowse(HWND howner, LPSTR targetbuf, DWORD len, DWORD x, LPCSTR suffix, LPCSTR y, LPCSTR cmd) DWORD WINAPI GetFileNameFromBrowse(HWND howner, LPSTR targetbuf, DWORD len, DWORD x, LPCSTR suffix, LPCSTR y, LPCSTR cmd)
@ -117,7 +118,7 @@ DWORD WINAPI GetFileNameFromBrowse(HWND howner, LPSTR targetbuf, DWORD len, DWOR
} }
/************************************************************************* /*************************************************************************
* SHGetSettings [SHELL32.68] * SHGetSettings [SHELL32.68]
* *
*/ */
DWORD WINAPI SHGetSettings(DWORD x,DWORD y,DWORD z) DWORD WINAPI SHGetSettings(DWORD x,DWORD y,DWORD z)
@ -126,7 +127,7 @@ DWORD WINAPI SHGetSettings(DWORD x,DWORD y,DWORD z)
} }
/************************************************************************* /*************************************************************************
* SHShellFolderView_Message [SHELL32.73] * SHShellFolderView_Message [SHELL32.73]
* *
* PARAMETERS * PARAMETERS
* hwndCabinet defines the explorer cabinet window that contains the * hwndCabinet defines the explorer cabinet window that contains the
@ -146,34 +147,25 @@ 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 BOOL WINAPI StrToOleStrN (LPWSTR lpWide, INT nWide, LPCSTR lpMulti, INT nMulti)
* exported by ordinal {
* FIXME TRACE(shell,"%s %x %s %x\n", debugstr_w(lpWide), nWide, lpMulti, nMulti);
* wrong implemented OleStr is NOT wide string !!!! (jsch) return MultiByteToWideChar (0, 0, lpMulti, nMulti, lpWide, nWide);
*/
BOOL WINAPI
StrToOleStrN (LPWSTR lpWide, INT nWide, LPCSTR lpMulti, INT nMulti) {
return MultiByteToWideChar (0, 0, lpMulti, nMulti, lpWide, nWide);
} }
/************************************************************************* /*************************************************************************
* RegisterShellHook [SHELL32.181] * RegisterShellHook [SHELL32.181]
* *
* PARAMS * PARAMS
* hwnd [I] window handle * hwnd [I] window handle
@ -186,7 +178,7 @@ void WINAPI RegisterShellHook(HWND hwnd, DWORD y) {
FIXME(shell,"(0x%08x,0x%08lx):stub.\n",hwnd,y); FIXME(shell,"(0x%08x,0x%08lx):stub.\n",hwnd,y);
} }
/************************************************************************* /*************************************************************************
* ShellMessageBoxW [SHELL32.182] * ShellMessageBoxW [SHELL32.182]
* *
* Format and output errormessage. * Format and output errormessage.
* *
@ -219,7 +211,7 @@ ShellMessageBoxW(HMODULE hmod,HWND hwnd,DWORD idText,DWORD idTitle,DWORD uType,L
} }
/************************************************************************* /*************************************************************************
* ShellMessageBoxA [SHELL32.183] * ShellMessageBoxA [SHELL32.183]
*/ */
INT __cdecl INT __cdecl
ShellMessageBoxA(HMODULE hmod,HWND hwnd,DWORD idText,DWORD idTitle,DWORD uType,LPCVOID arglist) ShellMessageBoxA(HMODULE hmod,HWND hwnd,DWORD idText,DWORD idTitle,DWORD uType,LPCVOID arglist)
@ -244,7 +236,7 @@ ShellMessageBoxA(HMODULE hmod,HWND hwnd,DWORD idText,DWORD idTitle,DWORD uType,L
} }
/************************************************************************* /*************************************************************************
* SHRestricted [SHELL32.100] * SHRestricted [SHELL32.100]
* *
* walks through policy table, queries <app> key, <type> value, returns * walks through policy table, queries <app> key, <type> value, returns
* queried (DWORD) value. * queried (DWORD) value.
@ -284,7 +276,7 @@ DWORD WINAPI SHRestricted (DWORD pol) {
} }
/************************************************************************* /*************************************************************************
* SHCreateDirectory [SHELL32.165] * SHCreateDirectory [SHELL32.165]
* *
* NOTES * NOTES
* exported by ordinal * exported by ordinal
@ -305,7 +297,7 @@ DWORD WINAPI SHCreateDirectory(LPSECURITY_ATTRIBUTES sec,LPCSTR path) {
} }
/************************************************************************* /*************************************************************************
* SHFree [SHELL32.195] * SHFree [SHELL32.195]
* *
* NOTES * NOTES
* free_ptr() - frees memory using IMalloc * free_ptr() - frees memory using IMalloc
@ -320,7 +312,7 @@ DWORD WINAPI SHFree(LPVOID x) {
} }
/************************************************************************* /*************************************************************************
* SHAlloc [SHELL32.196] * SHAlloc [SHELL32.196]
* *
* NOTES * NOTES
* void *task_alloc(DWORD len), uses SHMalloc allocator * void *task_alloc(DWORD len), uses SHMalloc allocator
@ -334,7 +326,7 @@ LPVOID WINAPI SHAlloc(DWORD len) {
} }
/************************************************************************* /*************************************************************************
* OpenRegStream [SHELL32.85] * OpenRegStream [SHELL32.85]
* *
* NOTES * NOTES
* exported by ordinal * exported by ordinal
@ -347,7 +339,7 @@ DWORD WINAPI OpenRegStream(DWORD x1,DWORD x2,DWORD x3,DWORD x4) {
} }
/************************************************************************* /*************************************************************************
* SHRegisterDragDrop [SHELL32.86] * SHRegisterDragDrop [SHELL32.86]
* *
* NOTES * NOTES
* exported by ordinal * exported by ordinal
@ -358,7 +350,7 @@ DWORD WINAPI SHRegisterDragDrop(HWND hwnd,DWORD x2) {
} }
/************************************************************************* /*************************************************************************
* SHRevokeDragDrop [SHELL32.87] * SHRevokeDragDrop [SHELL32.87]
* *
* NOTES * NOTES
* exported by ordinal * exported by ordinal
@ -369,7 +361,7 @@ DWORD WINAPI SHRevokeDragDrop(DWORD x) {
} }
/************************************************************************* /*************************************************************************
* RunFileDlg [SHELL32.61] * RunFileDlg [SHELL32.61]
* *
* NOTES * NOTES
* Original name: RunFileDlg (exported by ordinal) * Original name: RunFileDlg (exported by ordinal)
@ -384,7 +376,7 @@ RunFileDlg (HWND hwndOwner, DWORD dwParam1, DWORD dwParam2,
} }
/************************************************************************* /*************************************************************************
* ExitWindowsDialog [SHELL32.60] * ExitWindowsDialog [SHELL32.60]
* *
* NOTES * NOTES
* exported by ordinal * exported by ordinal
@ -397,7 +389,7 @@ ExitWindowsDialog (HWND hwndOwner)
} }
/************************************************************************* /*************************************************************************
* ArrangeWindows [SHELL32.184] * ArrangeWindows [SHELL32.184]
* *
*/ */
DWORD WINAPI DWORD WINAPI
@ -410,7 +402,7 @@ ArrangeWindows (DWORD dwParam1, DWORD dwParam2, DWORD dwParam3,
} }
/************************************************************************* /*************************************************************************
* SHCLSIDFromString [SHELL32.147] * SHCLSIDFromString [SHELL32.147]
* *
* NOTES * NOTES
* exported by ordinal * exported by ordinal
@ -426,7 +418,7 @@ SHCLSIDFromString (DWORD dwParam1, DWORD dwParam2)
/************************************************************************* /*************************************************************************
* SignalFileOpen [SHELL32.103] * SignalFileOpen [SHELL32.103]
* *
* NOTES * NOTES
* exported by ordinal * exported by ordinal
@ -440,7 +432,7 @@ SignalFileOpen (DWORD dwParam1)
} }
/************************************************************************* /*************************************************************************
* SHAddToRecentDocs [SHELL32.234] * SHAddToRecentDocs [SHELL32.234]
* *
* PARAMETERS * PARAMETERS
* uFlags [IN] SHARD_PATH or SHARD_PIDL * uFlags [IN] SHARD_PATH or SHARD_PIDL
@ -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
@ -490,7 +482,7 @@ DWORD WINAPI SHFileOperationW (LPSHFILEOPSTRUCTW lpFileOp)
} }
/************************************************************************* /*************************************************************************
* SHChangeNotify [SHELL32.239] * SHChangeNotify [SHELL32.239]
* *
* NOTES * NOTES
* exported by name * exported by name
@ -504,7 +496,7 @@ DWORD WINAPI SHChangeNotify (
return 0; return 0;
} }
/************************************************************************* /*************************************************************************
* SHCreateShellFolderViewEx [SHELL32.174] * SHCreateShellFolderViewEx [SHELL32.174]
* *
* NOTES * NOTES
* see IShellFolder::CreateViewObject * see IShellFolder::CreateViewObject
@ -516,7 +508,7 @@ HRESULT WINAPI SHCreateShellFolderViewEx(
return 0; return 0;
} }
/************************************************************************* /*************************************************************************
* SHFind_InitMenuPopup [SHELL32.149] * SHFind_InitMenuPopup [SHELL32.149]
* *
* NOTES * NOTES
* Registers the menu behind the "Start" button * Registers the menu behind the "Start" button
@ -533,7 +525,7 @@ HRESULT WINAPI SHFind_InitMenuPopup (HMENU hMenu, HWND hWndParent, DWORD w, DWOR
return 0; return 0;
} }
/************************************************************************* /*************************************************************************
* FileMenu_InitMenuPopup [SHELL32.109] * FileMenu_InitMenuPopup [SHELL32.109]
* *
*/ */
HRESULT WINAPI FileMenu_InitMenuPopup (DWORD hmenu) HRESULT WINAPI FileMenu_InitMenuPopup (DWORD hmenu)
@ -541,7 +533,7 @@ HRESULT WINAPI FileMenu_InitMenuPopup (DWORD hmenu)
return 0; return 0;
} }
/************************************************************************* /*************************************************************************
* FileMenu_Create [SHELL32.114] * FileMenu_Create [SHELL32.114]
* *
* w retval from LoadBitmapA * w retval from LoadBitmapA
* *
@ -552,7 +544,7 @@ HRESULT WINAPI FileMenu_Create (DWORD u, DWORD v, DWORD w, DWORD x, DWORD z)
return 0; return 0;
} }
/************************************************************************* /*************************************************************************
* FileMenu_TrackPopupMenuEx [SHELL32.116] * FileMenu_TrackPopupMenuEx [SHELL32.116]
* *
* PARAMETERS * PARAMETERS
* uFlags [in] according to TrackPopupMenuEx * uFlags [in] according to TrackPopupMenuEx
@ -567,7 +559,7 @@ HRESULT WINAPI FileMenu_TrackPopupMenuEx (DWORD t, DWORD uFlags, DWORD posX, DWO
return 0; return 0;
} }
/************************************************************************* /*************************************************************************
* SHWinHelp [SHELL32.127] * SHWinHelp [SHELL32.127]
* *
*/ */
HRESULT WINAPI SHWinHelp (DWORD v, DWORD w, DWORD x, DWORD z) HRESULT WINAPI SHWinHelp (DWORD v, DWORD w, DWORD x, DWORD z)
@ -583,7 +575,7 @@ HRESULT WINAPI SHRunControlPanel (DWORD x, DWORD z)
return 0; return 0;
} }
/************************************************************************* /*************************************************************************
* ShellExecuteEx [SHELL32.291] * ShellExecuteEx [SHELL32.291]
* *
*/ */
BOOL WINAPI ShellExecuteExAW (LPVOID sei) BOOL WINAPI ShellExecuteExAW (LPVOID sei)
@ -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)
@ -709,7 +701,7 @@ BOOL WINAPI ShellExecuteExW (LPSHELLEXECUTEINFOW sei)
static LPUNKNOWN SHELL32_IExplorerInterface=0; static LPUNKNOWN SHELL32_IExplorerInterface=0;
/************************************************************************* /*************************************************************************
* SHSetInstanceExplorer [SHELL32.176] * SHSetInstanceExplorer [SHELL32.176]
* *
* NOTES * NOTES
* Sets the interface * Sets the interface
@ -720,7 +712,7 @@ HRESULT WINAPI SHSetInstanceExplorer (LPUNKNOWN lpUnknown)
return (HRESULT) lpUnknown; return (HRESULT) lpUnknown;
} }
/************************************************************************* /*************************************************************************
* SHGetInstanceExplorer [SHELL32.256] * SHGetInstanceExplorer [SHELL32.256]
* *
* NOTES * NOTES
* gets the interface pointer of the explorer and a reference * gets the interface pointer of the explorer and a reference
@ -737,7 +729,7 @@ HRESULT WINAPI SHGetInstanceExplorer (LPUNKNOWN * lpUnknown)
return NOERROR; return NOERROR;
} }
/************************************************************************* /*************************************************************************
* SHFreeUnusedLibraries [SHELL32.123] * SHFreeUnusedLibraries [SHELL32.123]
* *
* NOTES * NOTES
* exported by name * exported by name
@ -747,7 +739,7 @@ HRESULT WINAPI SHFreeUnusedLibraries (void)
return TRUE; return TRUE;
} }
/************************************************************************* /*************************************************************************
* DAD_ShowDragImage [SHELL32.137] * DAD_ShowDragImage [SHELL32.137]
* *
* NOTES * NOTES
* exported by name * exported by name
@ -757,7 +749,7 @@ HRESULT WINAPI DAD_ShowDragImage (DWORD u)
return 0; return 0;
} }
/************************************************************************* /*************************************************************************
* FileMenu_Destroy [SHELL32.118] * FileMenu_Destroy [SHELL32.118]
* *
* NOTES * NOTES
* exported by name * exported by name
@ -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)
@ -793,7 +785,7 @@ HRESULT WINAPI SHRegOpenKeyW (HKEY hkey, LPCWSTR lpszSubKey, LPHKEY retkey)
return RegOpenKeyW( hkey, lpszSubKey, retkey ); return RegOpenKeyW( hkey, lpszSubKey, retkey );
} }
/************************************************************************* /*************************************************************************
* SHRegQueryValueExA [SHELL32.509] * SHRegQueryValueExA [SHELL32.509]
* *
*/ */
HRESULT WINAPI SHRegQueryValueExA(DWORD u, LPSTR v, DWORD w, DWORD x, HRESULT WINAPI SHRegQueryValueExA(DWORD u, LPSTR v, DWORD w, DWORD x,
@ -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
@ -830,7 +822,7 @@ HRESULT WINAPI SHRegQueryValueExW (HKEY hkey, LPWSTR pszValue, LPDWORD pdwReserv
} }
/************************************************************************* /*************************************************************************
* ReadCabinetState [NT 4.0:SHELL32.651] * ReadCabinetState [NT 4.0:SHELL32.651]
* *
*/ */
HRESULT WINAPI ReadCabinetState(DWORD u, DWORD v) HRESULT WINAPI ReadCabinetState(DWORD u, DWORD v)
@ -838,7 +830,7 @@ HRESULT WINAPI ReadCabinetState(DWORD u, DWORD v)
return 0; return 0;
} }
/************************************************************************* /*************************************************************************
* WriteCabinetState [NT 4.0:SHELL32.652] * WriteCabinetState [NT 4.0:SHELL32.652]
* *
*/ */
HRESULT WINAPI WriteCabinetState(DWORD u) HRESULT WINAPI WriteCabinetState(DWORD u)
@ -846,7 +838,7 @@ HRESULT WINAPI WriteCabinetState(DWORD u)
return 0; return 0;
} }
/************************************************************************* /*************************************************************************
* FileIconInit [SHELL32.660] * FileIconInit [SHELL32.660]
* *
*/ */
BOOL WINAPI FileIconInit(BOOL bFullInit) BOOL WINAPI FileIconInit(BOOL bFullInit)
@ -854,7 +846,7 @@ BOOL WINAPI FileIconInit(BOOL bFullInit)
return 0; return 0;
} }
/************************************************************************* /*************************************************************************
* IsUserAdmin [NT 4.0:SHELL32.680] * IsUserAdmin [NT 4.0:SHELL32.680]
* *
*/ */
HRESULT WINAPI IsUserAdmin(void) HRESULT WINAPI IsUserAdmin(void)
@ -862,7 +854,7 @@ HRESULT WINAPI IsUserAdmin(void)
return TRUE; return TRUE;
} }
/************************************************************************* /*************************************************************************
* StrRetToStrN [SHELL32.96] * StrRetToStrN [SHELL32.96]
* *
* converts a STRRET to a normal string * converts a STRRET to a normal string
* *
@ -905,7 +897,7 @@ HRESULT WINAPI StrRetToStrN (LPVOID dest, DWORD len, LPSTRRET src, LPITEMIDLIST
} }
/************************************************************************* /*************************************************************************
* StrChrW [NT 4.0:SHELL32.651] * StrChrW [NT 4.0:SHELL32.651]
* *
*/ */
LPWSTR WINAPI StrChrW (LPWSTR str, WCHAR x ) LPWSTR WINAPI StrChrW (LPWSTR str, WCHAR x )
@ -922,7 +914,7 @@ LPWSTR WINAPI StrChrW (LPWSTR str, WCHAR x )
} }
/************************************************************************* /*************************************************************************
* StrCmpNIW [NT 4.0:SHELL32.*] * StrCmpNIW [NT 4.0:SHELL32.*]
* *
*/ */
INT WINAPI StrCmpNIW ( LPWSTR wstr1, LPWSTR wstr2, INT len) INT WINAPI StrCmpNIW ( LPWSTR wstr1, LPWSTR wstr2, INT len)
@ -931,7 +923,7 @@ INT WINAPI StrCmpNIW ( LPWSTR wstr1, LPWSTR wstr2, INT len)
} }
/************************************************************************* /*************************************************************************
* SHAllocShared [SHELL32.520] * SHAllocShared [SHELL32.520]
* *
* NOTES * NOTES
* parameter1 is return value from HeapAlloc * parameter1 is return value from HeapAlloc
@ -961,7 +953,7 @@ HGLOBAL WINAPI SHAllocShared(LPVOID psrc, DWORD size, DWORD procID)
return hmem; return hmem;
} }
/************************************************************************* /*************************************************************************
* SHLockShared [SHELL32.521] * SHLockShared [SHELL32.521]
* *
* NOTES * NOTES
* parameter1 is return value from SHAllocShared * parameter1 is return value from SHAllocShared
@ -974,7 +966,7 @@ LPVOID WINAPI SHLockShared(HANDLE hmem, DWORD procID)
return GlobalLock(hmem); return GlobalLock(hmem);
} }
/************************************************************************* /*************************************************************************
* SHUnlockShared [SHELL32.522] * SHUnlockShared [SHELL32.522]
* *
* NOTES * NOTES
* parameter1 is return value from SHLockShared * parameter1 is return value from SHLockShared
@ -984,7 +976,7 @@ BOOL WINAPI SHUnlockShared(HANDLE pmem)
return GlobalUnlock(pmem); return GlobalUnlock(pmem);
} }
/************************************************************************* /*************************************************************************
* SHFreeShared [SHELL32.523] * SHFreeShared [SHELL32.523]
* *
* NOTES * NOTES
* parameter1 is return value from SHAllocShared * parameter1 is return value from SHAllocShared
@ -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)
@ -1147,11 +1139,10 @@ 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)
@ -1159,7 +1150,7 @@ HRESULT WINAPI DriveType(DWORD u)
return 0; return 0;
} }
/************************************************************************* /*************************************************************************
* SHAbortInvokeCommand [SHELL32.198] * SHAbortInvokeCommand [SHELL32.198]
* *
*/ */
HRESULT WINAPI SHAbortInvokeCommand(void) HRESULT WINAPI SHAbortInvokeCommand(void)
@ -1167,7 +1158,7 @@ HRESULT WINAPI SHAbortInvokeCommand(void)
return 1; return 1;
} }
/************************************************************************* /*************************************************************************
* SHOutOfMemoryMessageBox [SHELL32.126] * SHOutOfMemoryMessageBox [SHELL32.126]
* *
*/ */
HRESULT WINAPI SHOutOfMemoryMessageBox(DWORD u, DWORD v, DWORD w) HRESULT WINAPI SHOutOfMemoryMessageBox(DWORD u, DWORD v, DWORD w)
@ -1175,7 +1166,7 @@ HRESULT WINAPI SHOutOfMemoryMessageBox(DWORD u, DWORD v, DWORD w)
return 0; return 0;
} }
/************************************************************************* /*************************************************************************
* SHFlushClipboard [SHELL32.121] * SHFlushClipboard [SHELL32.121]
* *
*/ */
HRESULT WINAPI SHFlushClipboard(void) HRESULT WINAPI SHFlushClipboard(void)
@ -1183,7 +1174,7 @@ HRESULT WINAPI SHFlushClipboard(void)
return 1; return 1;
} }
/************************************************************************* /*************************************************************************
* StrRChrW [SHELL32.320] * StrRChrW [SHELL32.320]
* *
*/ */
LPWSTR WINAPI StrRChrW(LPWSTR lpStart, LPWSTR lpEnd, DWORD wMatch) LPWSTR WINAPI StrRChrW(LPWSTR lpStart, LPWSTR lpEnd, DWORD wMatch)
@ -1205,7 +1196,7 @@ LPWSTR WINAPI StrRChrW(LPWSTR lpStart, LPWSTR lpEnd, DWORD wMatch)
return wptr; return wptr;
} }
/************************************************************************* /*************************************************************************
* StrFormatByteSize [SHLWAPI] * StrFormatByteSize [SHLWAPI]
*/ */
LPSTR WINAPI StrFormatByteSizeA ( DWORD dw, LPSTR pszBuf, UINT cchBuf ) LPSTR WINAPI StrFormatByteSizeA ( DWORD dw, LPSTR pszBuf, UINT cchBuf )
{ char buf[64]; { char buf[64];
@ -1244,7 +1235,7 @@ LPWSTR WINAPI StrFormatByteSizeW ( DWORD dw, LPWSTR pszBuf, UINT cchBuf )
return pszBuf; return pszBuf;
} }
/************************************************************************* /*************************************************************************
* SHWaitForFileToOpen [SHELL32.97] * SHWaitForFileToOpen [SHELL32.97]
* *
*/ */
HRESULT WINAPI SHWaitForFileToOpen(DWORD u, DWORD v, DWORD w) HRESULT WINAPI SHWaitForFileToOpen(DWORD u, DWORD v, DWORD w)
@ -1252,7 +1243,7 @@ HRESULT WINAPI SHWaitForFileToOpen(DWORD u, DWORD v, DWORD w)
return 0; return 0;
} }
/************************************************************************* /*************************************************************************
* Control_FillCache_RunDLL [SHELL32.8] * Control_FillCache_RunDLL [SHELL32.8]
* *
*/ */
HRESULT WINAPI Control_FillCache_RunDLL(HWND hWnd, HANDLE hModule, DWORD w, DWORD x) HRESULT WINAPI Control_FillCache_RunDLL(HWND hWnd, HANDLE hModule, DWORD w, DWORD x)
@ -1260,7 +1251,7 @@ HRESULT WINAPI Control_FillCache_RunDLL(HWND hWnd, HANDLE hModule, DWORD w, DWOR
return 0; return 0;
} }
/************************************************************************* /*************************************************************************
* RunDLL_CallEntry16 [SHELL32.122] * RunDLL_CallEntry16 [SHELL32.122]
* the name is propably wrong * the name is propably wrong
*/ */
HRESULT WINAPI RunDLL_CallEntry16(DWORD v, DWORD w, DWORD x, DWORD y, DWORD z) HRESULT WINAPI RunDLL_CallEntry16(DWORD v, DWORD w, DWORD x, DWORD y, DWORD z)

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