Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
dd153f17
Commit
dd153f17
authored
Mar 13, 1999
by
Juergen Schmied
Committed by
Alexandre Julliard
Mar 13, 1999
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- mostly cleanup after the renaming
- implemented SHILCreateFromPath - small changed to SHGetFileInfo
parent
dbf9fba4
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
205 additions
and
128 deletions
+205
-128
iconcache.c
dlls/shell32/iconcache.c
+42
-36
pidl.c
dlls/shell32/pidl.c
+83
-18
shell32_main.c
dlls/shell32/shell32_main.c
+32
-28
shell32_main.h
dlls/shell32/shell32_main.h
+8
-1
shellord.c
dlls/shell32/shellord.c
+23
-32
shellpath.c
dlls/shell32/shellpath.c
+2
-2
shlview.c
dlls/shell32/shlview.c
+3
-3
shell.h
include/shell.h
+10
-6
shell32.spec
relay32/shell32.spec
+2
-2
No files found.
dlls/shell32/iconcache.c
View file @
dd153f17
...
...
@@ -433,10 +433,11 @@ typedef struct
}
SIC_ENTRY
,
*
LPSIC_ENTRY
;
/*****************************************************************************
* SIC_CompareEntrys [called by comctl32.dll]
* NOTES
* Callback for DPA_Search
*/
* SIC_CompareEntrys [called by comctl32.dll]
*
* NOTES
* Callback for DPA_Search
*/
INT
CALLBACK
SIC_CompareEntrys
(
LPVOID
p1
,
LPVOID
p2
,
LPARAM
lparam
)
{
TRACE
(
shell
,
"%p %p
\n
"
,
p1
,
p2
);
...
...
@@ -449,10 +450,11 @@ INT CALLBACK SIC_CompareEntrys( LPVOID p1, LPVOID p2, LPARAM lparam)
return
0
;
}
/*****************************************************************************
* SIC_IconAppend (internal)
* NOTES
* appends a icon pair to the end of the cache
*/
* SIC_IconAppend [internal]
*
* NOTES
* appends a icon pair to the end of the cache
*/
static
INT
SIC_IconAppend
(
LPCSTR
sSourceFile
,
INT
dwSourceIndex
,
HICON
hSmallIcon
,
HICON
hBigIcon
)
{
LPSIC_ENTRY
lpsice
;
INT
index
,
index1
;
...
...
@@ -482,10 +484,11 @@ static INT SIC_IconAppend (LPCSTR sSourceFile, INT dwSourceIndex, HICON hSmallIc
}
/****************************************************************************
* SIC_LoadIcon [internal]
* NOTES
* gets small/big icon by number from a file
*/
* SIC_LoadIcon [internal]
*
* NOTES
* gets small/big icon by number from a file
*/
static
INT
SIC_LoadIcon
(
LPCSTR
sSourceFile
,
INT
dwSourceIndex
)
{
HICON
hiconLarge
=
0
;
HICON
hiconSmall
=
0
;
...
...
@@ -501,11 +504,12 @@ static INT SIC_LoadIcon (LPCSTR sSourceFile, INT dwSourceIndex)
return
SIC_IconAppend
(
sSourceFile
,
dwSourceIndex
,
hiconSmall
,
hiconLarge
);
}
/*****************************************************************************
* SIC_GetIconIndex [internal]
* NOTES
* look in the cache for a proper icon. if not available the icon is taken
* from the file and cached
*/
* SIC_GetIconIndex [internal]
*
* NOTES
* 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
)
{
SIC_ENTRY
sice
;
INT
index
=
INVALID_INDEX
;
...
...
@@ -527,10 +531,11 @@ INT SIC_GetIconIndex (LPCSTR sSourceFile, INT dwSourceIndex )
return
((
LPSIC_ENTRY
)
pDPA_GetPtr
(
hdpa
,
index
))
->
dwListIndex
;
}
/****************************************************************************
* SIC_LoadIcon [internal]
* NOTES
* retrives the specified icon from the iconcache. if not found try's to load the icon
*/
* SIC_LoadIcon [internal]
*
* 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
)
{
INT
index
;
...
...
@@ -547,11 +552,12 @@ static HICON SIC_GetIcon (LPCSTR sSourceFile, INT dwSourceIndex, BOOL bSmallIcon
}
/*****************************************************************************
* SIC_Initialize [internal]
* NOTES
* hack to load the resources from the shell32.dll under a different dll name
* will be removed when the resource-compiler is ready
*/
* SIC_Initialize [internal]
*
* NOTES
* 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
)
{
CHAR
szShellPath
[
MAX_PATH
];
HGLOBAL
hSmRet
,
hLgRet
;
...
...
@@ -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
)
{
if
(
VERSION_OsIsUnicode
())
return
ExtractIconExW
(
lpszFile
,
nIconIndex
,
phiconLarge
,
phiconSmall
,
nIcons
);
return
ExtractIconExA
(
lpszFile
,
nIconIndex
,
phiconLarge
,
phiconSmall
,
nIcons
);
}
/*************************************************************************
* ExtracticonEx32A
[shell32.190]
* RETURNS
* 0 no icon found
* 1 file is not valid
* HICON32
handle of a icon (phiconLarge/Small == NULL)
*/
* ExtracticonExA
[shell32.190]
* RETURNS
* 0 no icon found
* 1 file is not valid
* HICON
handle of a icon (phiconLarge/Small == NULL)
*/
HICON
WINAPI
ExtractIconExA
(
LPCSTR
lpszFile
,
INT
nIconIndex
,
HICON
*
phiconLarge
,
HICON
*
phiconSmall
,
UINT
nIcons
)
{
HICON
ret
=
0
;
...
...
@@ -749,8 +755,8 @@ HICON WINAPI ExtractIconExA ( LPCSTR lpszFile, INT nIconIndex, HICON * phiconLar
return
ret
;
}
/*************************************************************************
* ExtracticonEx32W
[shell32.191]
*/
* ExtracticonExW
[shell32.191]
*/
HICON
WINAPI
ExtractIconExW
(
LPCWSTR
lpszFile
,
INT
nIconIndex
,
HICON
*
phiconLarge
,
HICON
*
phiconSmall
,
UINT
nIcons
)
{
LPSTR
sFile
;
DWORD
ret
;
...
...
dlls/shell32/pidl.c
View file @
dd153f17
...
...
@@ -134,6 +134,47 @@ LPITEMIDLIST WINAPI ILCloneFirst(LPCITEMIDLIST pidl)
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]
...
...
@@ -468,26 +509,28 @@ DWORD WINAPI ILGlobalFree( LPITEMIDLIST pidl)
* ILCreateFromPath [SHELL32.157]
*
*/
LPITEMIDLIST
WINAPI
ILCreateFromPath
(
LPVOID
path
)
{
LPSHELLFOLDER
shellfolder
;
LPITEMIDLIST
pidlnew
;
WCHAR
lpszDisplayName
[
MAX_PATH
];
DWORD
pchEaten
;
LPITEMIDLIST
WINAPI
ILCreateFromPathA
(
LPSTR
path
)
{
LPITEMIDLIST
pidlnew
;
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
);
}
TRACE
(
shell
,
"%s
\n
"
,
path
);
if
(
SUCCEEDED
(
SHILCreateFromPathA
(
path
,
&
pidlnew
,
0
)))
return
pidlnew
;
return
FALSE
;
}
LPITEMIDLIST
WINAPI
ILCreateFromPathW
(
LPWSTR
path
)
{
LPITEMIDLIST
pidlnew
;
if
(
SHGetDesktopFolder
(
&
shellfolder
)
==
S_OK
)
{
shellfolder
->
lpvtbl
->
fnParseDisplayName
(
shellfolder
,
0
,
NULL
,
lpszDisplayName
,
&
pchEaten
,
&
pidlnew
,
NULL
);
shellfolder
->
lpvtbl
->
fnRelease
(
shellfolder
);
}
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]
...
...
@@ -520,11 +563,33 @@ LPITEMIDLIST WINAPI SHSimpleIDListFromPathAW (LPVOID lpszPath)
*
*/
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
)
{
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_DESCRIPTIONID
:
FIXME
(
shell
,
"SHGDFIL %i stub
\n
"
,
nFormat
);
break
;
default:
ERR
(
shell
,
"Unknown SHGDFIL %i, please report
\n
"
,
nFormat
);
...
...
dlls/shell32/shell32_main.c
View file @
dd153f17
...
...
@@ -90,9 +90,6 @@ void WINAPI Control_RunDLL( HWND hwnd, LPCVOID code, LPCSTR cmd, DWORD arg4 )
/*************************************************************************
* SHGetFileInfoA [SHELL32.254]
*
* FIXME
*
*/
DWORD
WINAPI
SHGetFileInfoA
(
LPCSTR
path
,
DWORD
dwFileAttributes
,
...
...
@@ -101,7 +98,7 @@ DWORD WINAPI SHGetFileInfoA(LPCSTR path,DWORD dwFileAttributes,
{
CHAR
szTemp
[
MAX_PATH
];
LPPIDLDATA
pData
;
LPITEMIDLIST
pPidlTemp
=
NULL
;
DWORD
ret
=
0
;
DWORD
ret
=
0
,
dwfa
=
dwFileAttributes
;
TRACE
(
shell
,
"(%s,0x%lx,%p,0x%x,0x%x)
\n
"
,
path
,
dwFileAttributes
,
psfi
,
sizeofpsfi
,
flags
);
...
...
@@ -139,10 +136,15 @@ DWORD WINAPI SHGetFileInfoA(LPCSTR path,DWORD dwFileAttributes,
ret
=
TRUE
;
}
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
;
}
FIXME
(
shell
,
"file attributes, stub
\n
"
);
WARN
(
shell
,
"file attributes, semi-stub
\n
"
);
}
if
(
flags
&
SHGFI_DISPLAYNAME
)
...
...
@@ -186,6 +188,9 @@ DWORD WINAPI SHGetFileInfoA(LPCSTR path,DWORD dwFileAttributes,
if
(
flags
&
SHGFI_USEFILEATTRIBUTES
)
FIXME
(
shell
,
"use the dwFileAttributes, stub
\n
"
);
if
(
flags
&
(
SHGFI_UNKNOWN1
|
SHGFI_UNKNOWN2
|
SHGFI_UNKNOWN3
))
FIXME
(
shell
,
"unknown attribute!
\n
"
);
if
(
flags
&
SHGFI_ICON
)
{
FIXME
(
shell
,
"icon handle
\n
"
);
if
(
flags
&
SHGFI_SMALLICON
)
...
...
@@ -202,7 +207,7 @@ DWORD WINAPI SHGetFileInfoA(LPCSTR path,DWORD dwFileAttributes,
if
(
flags
&
SHGFI_SYSICONINDEX
)
{
if
(
!
pPidlTemp
)
{
pPidlTemp
=
ILCreateFromPath
(
szTemp
);
{
pPidlTemp
=
ILCreateFromPath
A
(
szTemp
);
}
psfi
->
iIcon
=
SHMapPIDLToSystemImageListIndex
(
NULL
,
pPidlTemp
,
0
);
TRACE
(
shell
,
"-- SYSICONINDEX %i
\n
"
,
psfi
->
iIcon
);
...
...
@@ -221,10 +226,7 @@ DWORD WINAPI SHGetFileInfoA(LPCSTR path,DWORD dwFileAttributes,
}
/*************************************************************************
* SHGetFileInfo32W [SHELL32.255]
*
* FIXME
*
* SHGetFileInfoW [SHELL32.255]
*/
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
,
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
,
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
,
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
,
LPWSTR
lpResult
)
...
...
@@ -415,6 +417,7 @@ BOOL WINAPI SHGetPathFromIDListAW(LPCITEMIDLIST pidl,LPSTR pszPath)
/*************************************************************************
* SHGetSpecialFolderLocation [SHELL32.223]
*
* gets the folder locations from the registry and creates a pidl
* creates missing reg keys and directorys
*
...
...
@@ -432,8 +435,8 @@ BOOL WINAPI SHGetPathFromIDListAW(LPCITEMIDLIST pidl,LPSTR pszPath)
*/
HRESULT
WINAPI
SHGetSpecialFolderLocation
(
HWND
hwndOwner
,
INT
nFolder
,
LPITEMIDLIST
*
ppidl
)
{
LPSHELLFOLDER
shellfolder
;
DWORD
pchEaten
,
tpathlen
=
MAX_PATH
,
type
,
dwdisp
,
res
;
CHAR
pszTemp
[
256
],
buffer
[
256
],
tpath
[
MAX_PATH
],
npath
[
MAX_PATH
];
DWORD
pchEaten
,
tpathlen
=
MAX_PATH
,
type
,
dwdisp
,
res
,
dwLastError
;
CHAR
pszTemp
[
256
],
buffer
[
256
],
tpath
[
MAX_PATH
],
npath
[
MAX_PATH
];
LPWSTR
lpszDisplayName
=
(
LPWSTR
)
&
pszTemp
[
0
];
HKEY
key
;
...
...
@@ -623,7 +626,9 @@ HRESULT WINAPI SHGetSpecialFolderLocation(HWND hwndOwner, INT nFolder, LPITEMIDL
return
E_OUTOFMEMORY
;
}
TRACE
(
shell
,
"value %s=%s created
\n
"
,
buffer
,
npath
);
dwLastError
=
GetLastError
();
CreateDirectoryA
(
npath
,
NULL
);
SetLastError
(
dwLastError
);
strcpy
(
tpath
,
npath
);
}
break
;
...
...
@@ -674,7 +679,7 @@ DWORD WINAPI SHLoadInProc (DWORD dwArg1)
}
/*************************************************************************
*
ShellExecute32A (SHELL32.245)
*
ShellExecuteA [SHELL32.245]
*/
HINSTANCE
WINAPI
ShellExecuteA
(
HWND
hWnd
,
LPCSTR
lpOperation
,
LPCSTR
lpFile
,
LPCSTR
lpParameters
,
...
...
@@ -685,7 +690,7 @@ HINSTANCE WINAPI ShellExecuteA( HWND hWnd, LPCSTR lpOperation,
}
/*************************************************************************
* ShellExecute
32W
[SHELL32.294]
* ShellExecute
W
[SHELL32.294]
* from shellapi.h
* WINSHELLAPI HINSTANCE APIENTRY ShellExecuteW(HWND hwnd, LPCWSTR lpOperation,
* 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
,
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
,
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
,
HICON
hIcon
)
...
...
@@ -903,7 +908,7 @@ void WINAPI FreeIconList( DWORD dw )
}
/*************************************************************************
* SHGetPathFromIDList
32A
[SHELL32.261][NT 4.0: SHELL32.220]
* SHGetPathFromIDList
A
[SHELL32.261][NT 4.0: SHELL32.220]
*
* PARAMETERS
* pidl, [IN] pidl
...
...
@@ -950,15 +955,14 @@ DWORD WINAPI SHGetPathFromIDListA (LPCITEMIDLIST pidl,LPSTR pszPath)
{
shellfolder
->
lpvtbl
->
fnGetDisplayNameOf
(
shellfolder
,
pidl
,
SHGDN_FORPARSING
,
&
lpName
);
shellfolder
->
lpvtbl
->
fnRelease
(
shellfolder
);
}
/*WideCharToLocal32(pszPath, lpName.u.pOleStr, MAX_PATH);*/
strcpy
(
pszPath
,
lpName
.
u
.
cStr
);
/* fixme free the olestring*/
}
TRACE
(
shell
,
"-- (%s)
\n
"
,
pszPath
);
return
NOERROR
;
return
TRUE
;
}
/*************************************************************************
* SHGetPathFromIDList
32W
[SHELL32.262]
* SHGetPathFromIDList
W
[SHELL32.262]
*/
DWORD
WINAPI
SHGetPathFromIDListW
(
LPCITEMIDLIST
pidl
,
LPWSTR
pszPath
)
{
char
sTemp
[
MAX_PATH
];
...
...
@@ -970,7 +974,7 @@ DWORD WINAPI SHGetPathFromIDListW (LPCITEMIDLIST pidl,LPWSTR pszPath)
TRACE
(
shell
,
"-- (%s)
\n
"
,
debugstr_w
(
pszPath
));
return
NOERROR
;
return
TRUE
;
}
/*************************************************************************
...
...
dlls/shell32/shell32_main.h
View file @
dd153f17
...
...
@@ -42,7 +42,14 @@ LPITEMIDLIST WINAPI ILGetNext(LPITEMIDLIST pidl);
LPITEMIDLIST
WINAPI
ILCombine
(
LPCITEMIDLIST
iil1
,
LPCITEMIDLIST
iil2
);
LPITEMIDLIST
WINAPI
ILFindLastID
(
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
);
HRESULT
WINAPI
StrRetToStrN
(
LPVOID
dest
,
DWORD
len
,
LPSTRRET
src
,
LPITEMIDLIST
pidl
);
...
...
dlls/shell32/shellord.c
View file @
dd153f17
...
...
@@ -18,6 +18,7 @@
/*************************************************************************
* SHChangeNotifyRegister [SHELL32.2]
*
* NOTES
* Idlist is an array of structures and Count specifies how many items in the array
* (usually just one I think).
...
...
@@ -147,28 +148,19 @@ int WINAPI SHShellFolderView_Message(HWND hwndCabinet,UINT uMsg,LPARAM lParam)
/*************************************************************************
* OleStrToStrN [SHELL32.78]
*
* NOTES
* exported by ordinal
* FIXME
* wrong implemented OleStr is NOT wide string !!!! (jsch)
*/
BOOL
WINAPI
OleStrToStrN
(
LPSTR
lpMulti
,
INT
nMulti
,
LPCWSTR
lpWide
,
INT
nWide
)
{
return
WideCharToMultiByte
(
0
,
0
,
lpWide
,
nWide
,
lpMulti
,
nMulti
,
NULL
,
NULL
);
BOOL
WINAPI
OleStrToStrN
(
LPSTR
lpMulti
,
INT
nMulti
,
LPCWSTR
lpWide
,
INT
nWide
)
{
TRACE
(
shell
,
"%s %x %s %x
\n
"
,
lpMulti
,
nMulti
,
debugstr_w
(
lpWide
),
nWide
);
return
WideCharToMultiByte
(
0
,
0
,
lpWide
,
nWide
,
lpMulti
,
nMulti
,
NULL
,
NULL
);
}
/*************************************************************************
* StrToOleStrN [SHELL32.79]
*
* NOTES
* exported by ordinal
* FIXME
* wrong implemented OleStr is NOT wide string !!!! (jsch)
*/
BOOL
WINAPI
StrToOleStrN
(
LPWSTR
lpWide
,
INT
nWide
,
LPCSTR
lpMulti
,
INT
nMulti
)
{
*/
BOOL
WINAPI
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
);
}
...
...
@@ -459,7 +451,7 @@ DWORD WINAPI SHAddToRecentDocs (UINT uFlags,LPCVOID pv)
return
0
;
}
/*************************************************************************
* SHFileOperation
32
[SHELL32.242]
* SHFileOperation
[SHELL32.242]
*
*/
DWORD
WINAPI
SHFileOperationAW
(
DWORD
x
)
...
...
@@ -469,7 +461,7 @@ DWORD WINAPI SHFileOperationAW(DWORD x)
}
/*************************************************************************
* SHFileOperation
32A
[SHELL32.243]
* SHFileOperation
A
[SHELL32.243]
*
* NOTES
* exported by name
...
...
@@ -479,7 +471,7 @@ DWORD WINAPI SHFileOperationA (LPSHFILEOPSTRUCTA lpFileOp)
return
1
;
}
/*************************************************************************
* SHFileOperation
32W
[SHELL32.244]
* SHFileOperation
W
[SHELL32.244]
*
* NOTES
* exported by name
...
...
@@ -592,7 +584,7 @@ BOOL WINAPI ShellExecuteExAW (LPVOID sei)
return
ShellExecuteExA
(
sei
);
}
/*************************************************************************
* ShellExecuteEx
32A
[SHELL32.292]
* ShellExecuteEx
A
[SHELL32.292]
*
*/
BOOL
WINAPI
ShellExecuteExA
(
LPSHELLEXECUTEINFOA
sei
)
...
...
@@ -668,7 +660,7 @@ BOOL WINAPI ShellExecuteExA (LPSHELLEXECUTEINFOA sei)
}
/*************************************************************************
* ShellExecuteEx
32W
[SHELL32.293]
* ShellExecuteEx
W
[SHELL32.293]
*
*/
BOOL
WINAPI
ShellExecuteExW
(
LPSHELLEXECUTEINFOW
sei
)
...
...
@@ -767,7 +759,7 @@ HRESULT WINAPI FileMenu_Destroy (DWORD u)
return
0
;
}
/*************************************************************************
* SHRegCloseKey
32
[NT4.0:SHELL32.505]
* SHRegCloseKey
[NT4.0:SHELL32.505]
*
*/
HRESULT
WINAPI
SHRegCloseKey
(
HKEY
hkey
)
...
...
@@ -775,7 +767,7 @@ HRESULT WINAPI SHRegCloseKey (HKEY hkey)
return
RegCloseKey
(
hkey
);
}
/*************************************************************************
* SHRegOpenKey
32A
[SHELL32.506]
* SHRegOpenKey
A
[SHELL32.506]
*
*/
HRESULT
WINAPI
SHRegOpenKeyA
(
HKEY
hKey
,
LPSTR
lpSubKey
,
LPHKEY
phkResult
)
...
...
@@ -785,7 +777,7 @@ HRESULT WINAPI SHRegOpenKeyA(HKEY hKey, LPSTR lpSubKey, LPHKEY phkResult)
}
/*************************************************************************
* SHRegOpenKey
32W
[NT4.0:SHELL32.507]
* SHRegOpenKey
W
[NT4.0:SHELL32.507]
*
*/
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
;
}
/*************************************************************************
* SHRegQueryValue
32W
[NT4.0:SHELL32.510]
* SHRegQueryValue
W
[NT4.0:SHELL32.510]
*
*/
HRESULT
WINAPI
SHRegQueryValueW
(
HKEY
hkey
,
LPWSTR
lpszSubKey
,
...
...
@@ -814,7 +806,7 @@ HRESULT WINAPI SHRegQueryValueW (HKEY hkey, LPWSTR lpszSubKey,
}
/*************************************************************************
* SHRegQueryValueEx
32W
[NT4.0:SHELL32.511]
* SHRegQueryValueEx
W
[NT4.0:SHELL32.511]
*
* FIXME
* if the datatype REG_EXPAND_SZ then expand the string and change
...
...
@@ -996,7 +988,7 @@ HANDLE WINAPI SHFreeShared(HANDLE hmem, DWORD procID)
}
/*************************************************************************
* SetAppStartingCursor
32
[SHELL32.99]
* SetAppStartingCursor
[SHELL32.99]
*
*/
HRESULT
WINAPI
SetAppStartingCursor
(
HWND
u
,
DWORD
v
)
...
...
@@ -1004,7 +996,7 @@ HRESULT WINAPI SetAppStartingCursor(HWND u, DWORD v)
return
0
;
}
/*************************************************************************
* SHLoadOLE
32
[SHELL32.151]
* SHLoadOLE
[SHELL32.151]
*
*/
HRESULT
WINAPI
SHLoadOLE
(
DWORD
u
)
...
...
@@ -1012,7 +1004,7 @@ HRESULT WINAPI SHLoadOLE(DWORD u)
return
S_OK
;
}
/*************************************************************************
* Shell_MergeMenus
32
[SHELL32.67]
* Shell_MergeMenus
[SHELL32.67]
*
*/
BOOL
_SHIsMenuSeparator
(
HMENU
hm
,
int
i
)
...
...
@@ -1148,10 +1140,9 @@ HRESULT WINAPI Shell_MergeMenus (HMENU hmDst, HMENU hmSrc, UINT uInsert, UINT uI
}
}
return
(
uIDMax
);
}
/*************************************************************************
* DriveType
32
[SHELL32.64]
* DriveType
[SHELL32.64]
*
*/
HRESULT
WINAPI
DriveType
(
DWORD
u
)
...
...
dlls/shell32/shellpath.c
View file @
dd153f17
...
...
@@ -496,7 +496,7 @@ BOOL WINAPI PathMatchSpecAW(LPVOID name, LPVOID mask)
return
PathMatchSpecA
(
name
,
mask
);
}
/*************************************************************************
* PathSetDlgItemPath
32
AW [SHELL32.48]
* PathSetDlgItemPathAW [SHELL32.48]
* NOTES
* use PathCompactPath to make sure, the path fits into the control
*/
...
...
@@ -516,7 +516,7 @@ BOOL WINAPI PathSetDlgItemPathAW(HWND hDlg, int id, LPCVOID pszPath)
}
/*************************************************************************
* PathQualify
32
AW [SHELL32.49]
* PathQualifyAW [SHELL32.49]
*/
BOOL
WINAPI
PathQualifyA
(
LPCSTR
pszPath
)
...
...
dlls/shell32/shlview.c
View file @
dd153f17
...
...
@@ -303,7 +303,7 @@ BOOL ShellView_InitList(LPSHELLVIEW this)
lvColumn
.
cx
=
nColumn1
;
strcpy
(
szString
,
"File"
);
/*LoadString
32
A(shell32_hInstance, IDS_COLUMN1, szString, sizeof(szString));*/
/*LoadStringA(shell32_hInstance, IDS_COLUMN1, szString, sizeof(szString));*/
ListView_InsertColumnA
(
this
->
hWndList
,
0
,
&
lvColumn
);
lvColumn
.
cx
=
nColumn2
;
...
...
@@ -992,7 +992,7 @@ LRESULT ShellView_OnNotify(LPSHELLVIEW this, UINT CtlID, LPNMHDR lpnmh)
break
;
case
HDN_ENDTRACKA
:
TRACE
(
shell
,
"-- HDN_ENDTRACK
32
A %p
\n
"
,
this
);
TRACE
(
shell
,
"-- HDN_ENDTRACKA %p
\n
"
,
this
);
/*nColumn1 = ListView_GetColumnWidth(this->hWndList, 0);
nColumn2 = ListView_GetColumnWidth(this->hWndList, 1);*/
break
;
...
...
@@ -1015,7 +1015,7 @@ LRESULT ShellView_OnNotify(LPSHELLVIEW this, UINT CtlID, LPNMHDR lpnmh)
break
;
case
LVN_GETDISPINFOA
:
TRACE
(
shell
,
"-- LVN_GETDISPINFO
32
A %p
\n
"
,
this
);
TRACE
(
shell
,
"-- LVN_GETDISPINFOA %p
\n
"
,
this
);
pidl
=
(
LPITEMIDLIST
)
lpdi
->
item
.
lParam
;
...
...
include/shell.h
View file @
dd153f17
...
...
@@ -196,6 +196,15 @@ typedef struct _AppBarData {
LPARAM
lParam
;
}
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_DISPLAYNAME 0x000000200
/* get display 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_LINKOVERLAY 0x000008000
/* put a link overlay on icon */
#define SHGFI_SELECTED 0x000010000
/* show icon in selected state */
#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_ATTR_SPECIFIED 0x000020000
/* get only specified attributes */
/****************************************************************************
* SHChangeNotifyRegister API
...
...
relay32/shell32.spec
View file @
dd153f17
...
...
@@ -33,7 +33,7 @@ init Shell32LibMain
25 stdcall ILCombine(ptr ptr) ILCombine
26 stub ILLoadFromStream@8
27 stub ILSaveToStream@8
28 st
ub SHILCreateFromPath@12
28 st
dcall SHILCreateFromPath (long long long) SHILCreateFromPathAW
29 stdcall PathIsRoot(ptr) PathIsRootAW
30 stdcall PathBuildRoot(ptr long) PathBuildRootA
31 stdcall PathFindExtension(ptr) PathFindExtensionAW
...
...
@@ -162,7 +162,7 @@ init Shell32LibMain
154 stdcall ILAppend (long long long) ILAppend
155 stdcall ILFree (ptr) ILFree
156 stdcall ILGlobalFree (ptr) ILGlobalFree
157 stdcall ILCreateFromPath (ptr) ILCreateFromPath
157 stdcall ILCreateFromPath (ptr) ILCreateFromPath
AW
158 stdcall PathGetExtension(str long long) PathGetExtensionAW
159 stub PathIsDirectory
160 stub SHNetConnectionDialog
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment