Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
eac255cd
Commit
eac255cd
authored
Aug 15, 1999
by
Juergen Schmied
Committed by
Alexandre Julliard
Aug 15, 1999
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
More use of rc files for strings and menus, fixes. First internal
icons.
parent
9bffcfc5
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
187 additions
and
114 deletions
+187
-114
folders.c
dlls/shell32/folders.c
+1
-1
pidl.c
dlls/shell32/pidl.c
+41
-29
shell32.spec
dlls/shell32/shell32.spec
+1
-1
shell32_main.h
dlls/shell32/shell32_main.h
+24
-2
shelllink.c
dlls/shell32/shelllink.c
+22
-14
shellole.c
dlls/shell32/shellole.c
+13
-14
shellord.c
dlls/shell32/shellord.c
+26
-23
shellpath.c
dlls/shell32/shellpath.c
+23
-0
shres.rc
dlls/shell32/shres.rc
+0
-0
shresdef.h
dlls/shell32/shresdef.h
+17
-14
shv_bg_cmenu.c
dlls/shell32/shv_bg_cmenu.c
+9
-10
shell.h
include/shell.h
+4
-0
undocshell.h
include/wine/undocshell.h
+6
-6
No files found.
dlls/shell32/folders.c
View file @
eac255cd
...
...
@@ -199,7 +199,7 @@ static HRESULT WINAPI IExtractIconA_fnGetIconLocation(
else
/* object is file */
{
if
(
_ILGetExtension
(
pSimplePidl
,
sTemp
,
MAX_PATH
)
&&
HCR_MapTypeToValue
(
sTemp
,
sTemp
,
MAX_PATH
)
&&
HCR_MapTypeToValue
(
sTemp
,
sTemp
,
MAX_PATH
,
TRUE
)
&&
HCR_GetDefaultIcon
(
sTemp
,
sTemp
,
MAX_PATH
,
&
dwNr
))
{
if
(
!
strcmp
(
"%1"
,
sTemp
))
/* icon is in the file */
...
...
dlls/shell32/pidl.c
View file @
eac255cd
...
...
@@ -276,38 +276,38 @@ HRESULT WINAPI ILLoadFromStream (IStream * pStream, LPITEMIDLIST * ppPidl)
* NOTES
* wraper for IShellFolder::ParseDisplayName()
*/
HRESULT
WINAPI
SHILCreateFromPathA
(
LP
STR
path
,
LPITEMIDLIST
*
ppidl
,
DWORD
attributes
)
HRESULT
WINAPI
SHILCreateFromPathA
(
LP
CSTR
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
);
TRACE_
(
shell
)(
"%s %p 0x%08lx
\n
"
,
path
,
ppidl
,
attributes
?*
attributes
:
0
);
LocalToWideChar
(
lpszDisplayName
,
path
,
MAX_PATH
);
if
(
SUCCEEDED
(
SHGetDesktopFolder
(
&
sf
)))
{
ret
=
sf
->
lpvtbl
->
fnParseDisplayName
(
sf
,
0
,
NULL
,
lpszDisplayName
,
&
pchEaten
,
ppidl
,
&
attributes
);
sf
->
lpvtbl
->
fn
Release
(
sf
);
ret
=
IShellFolder_ParseDisplayName
(
sf
,
0
,
NULL
,
lpszDisplayName
,
&
pchEaten
,
ppidl
,
attributes
);
IShellFolder_
Release
(
sf
);
}
return
ret
;
}
HRESULT
WINAPI
SHILCreateFromPathW
(
LP
WSTR
path
,
LPITEMIDLIST
*
ppidl
,
DWORD
attributes
)
HRESULT
WINAPI
SHILCreateFromPathW
(
LP
CWSTR
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
);
TRACE_
(
shell
)(
"%s %p 0x%08lx
\n
"
,
debugstr_w
(
path
),
ppidl
,
attributes
?*
attributes
:
0
);
if
(
SUCCEEDED
(
SHGetDesktopFolder
(
&
sf
)))
{
ret
=
sf
->
lpvtbl
->
fnParseDisplayName
(
sf
,
0
,
NULL
,
path
,
&
pchEaten
,
ppidl
,
&
attributes
);
sf
->
lpvtbl
->
fn
Release
(
sf
);
ret
=
IShellFolder_ParseDisplayName
(
sf
,
0
,
NULL
,
path
,
&
pchEaten
,
ppidl
,
attributes
);
IShellFolder_
Release
(
sf
);
}
return
ret
;
}
HRESULT
WINAPI
SHILCreateFromPathAW
(
LP
VOID
path
,
LPITEMIDLIST
*
ppidl
,
DWORD
attributes
)
HRESULT
WINAPI
SHILCreateFromPathAW
(
LP
CVOID
path
,
LPITEMIDLIST
*
ppidl
,
DWORD
*
attributes
)
{
if
(
VERSION_OsIsUnicode
())
return
SHILCreateFromPathW
(
path
,
ppidl
,
attributes
);
...
...
@@ -698,27 +698,29 @@ DWORD WINAPI ILGlobalFree( LPITEMIDLIST pidl)
* ILCreateFromPath [SHELL32.157]
*
*/
LPITEMIDLIST
WINAPI
ILCreateFromPathA
(
LPSTR
path
)
LPITEMIDLIST
WINAPI
ILCreateFromPathA
(
LP
C
STR
path
)
{
LPITEMIDLIST
pidlnew
;
DWORD
attributes
=
0
;
TRACE_
(
shell
)(
"%s
\n
"
,
path
);
if
(
SUCCEEDED
(
SHILCreateFromPathA
(
path
,
&
pidlnew
,
0
)))
if
(
SUCCEEDED
(
SHILCreateFromPathA
(
path
,
&
pidlnew
,
&
attributes
)))
return
pidlnew
;
return
FALSE
;
}
LPITEMIDLIST
WINAPI
ILCreateFromPathW
(
LPWSTR
path
)
LPITEMIDLIST
WINAPI
ILCreateFromPathW
(
LP
C
WSTR
path
)
{
LPITEMIDLIST
pidlnew
;
DWORD
attributes
=
0
;
TRACE_
(
shell
)(
"%s
\n
"
,
debugstr_w
(
path
));
if
(
SUCCEEDED
(
SHILCreateFromPathW
(
path
,
&
pidlnew
,
0
)))
if
(
SUCCEEDED
(
SHILCreateFromPathW
(
path
,
&
pidlnew
,
&
attributes
)))
return
pidlnew
;
return
FALSE
;
}
LPITEMIDLIST
WINAPI
ILCreateFromPathAW
(
LPVOID
path
)
LPITEMIDLIST
WINAPI
ILCreateFromPathAW
(
LP
C
VOID
path
)
{
if
(
VERSION_OsIsUnicode
())
return
ILCreateFromPathW
(
path
);
...
...
@@ -813,7 +815,7 @@ HRESULT WINAPI SHGetSpecialFolderLocation(
{
DWORD
attributes
=
0
;
TRACE_
(
shell
)(
"Value=%s
\n
"
,
szPath
);
hr
=
SHILCreateFromPathA
(
szPath
,
ppidl
,
attributes
);
hr
=
SHILCreateFromPathA
(
szPath
,
ppidl
,
&
attributes
);
}
}
}
...
...
@@ -891,7 +893,7 @@ HRESULT WINAPI SHGetDataFromIDListW(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, int n
* fnGetDisplayNameOf can return different types of OLEString
*/
BOOL
WINAPI
SHGetPathFromIDListA
(
LPCITEMIDLIST
pidl
,
LPSTR
pszPath
)
{
STRRET
lpName
;
{
STRRET
str
;
LPSHELLFOLDER
shellfolder
;
TRACE_
(
shell
)(
"(pidl=%p,%p)
\n
"
,
pidl
,
pszPath
);
...
...
@@ -908,10 +910,10 @@ BOOL WINAPI SHGetPathFromIDListA (LPCITEMIDLIST pidl,LPSTR pszPath)
{
if
(
SHGetDesktopFolder
(
&
shellfolder
)
==
S_OK
)
{
IShellFolder_GetDisplayNameOf
(
shellfolder
,
pidl
,
SHGDN_FORPARSING
,
&
lpName
);
IShellFolder_GetDisplayNameOf
(
shellfolder
,
pidl
,
SHGDN_FORPARSING
,
&
str
);
StrRetToStrNA
(
pszPath
,
MAX_PATH
,
&
str
,
pidl
);
IShellFolder_Release
(
shellfolder
);
}
strcpy
(
pszPath
,
lpName
.
u
.
cStr
);
}
TRACE_
(
shell
)(
"-- (%s)
\n
"
,
pszPath
);
...
...
@@ -945,27 +947,37 @@ HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCI
TRACE_
(
shell
)(
"pidl=%p
\n
"
,
pidl
);
pdump
(
pidl
);
if
(
_ILIsPidlSimple
(
pidl
))
return
E_INVALIDARG
;
*
ppv
=
NULL
;
if
(
ppidlLast
)
*
ppidlLast
=
NULL
;
if
(
_ILIsPidlSimple
(
pidl
))
{
/* we are on desktop level */
if
(
ppidlLast
)
*
ppidlLast
=
ILClone
(
pidl
);
hr
=
SHGetDesktopFolder
((
IShellFolder
**
)
ppv
);
}
else
{
pidlChild
=
ILClone
(
ILFindLastID
(
pidl
));
pidlParent
=
ILClone
(
pidl
);
ILRemoveLastID
(
pidlParent
);
if
(
SUCCEEDED
(
SHGetDesktopFolder
(
&
psf
)))
{
if
(
SUCCEEDED
(
IShellFolder_BindToObject
(
psf
,
pidlParent
,
NULL
,
riid
,
ppv
)))
{
if
(
ppidlLast
)
hr
=
SHGetDesktopFolder
(
&
psf
);
if
(
SUCCEEDED
(
hr
))
hr
=
IShellFolder_BindToObject
(
psf
,
pidlParent
,
NULL
,
riid
,
ppv
);
if
(
SUCCEEDED
(
hr
)
&&
ppidlLast
)
*
ppidlLast
=
pidlChild
;
else
ILFree
(
pidlChild
);
hr
=
S_OK
;
}
}
SHFree
(
pidlParent
);
}
TRACE_
(
shell
)(
"-- psf=%p pidl=%p
\n
"
,
*
ppv
,
(
ppidlLast
)
?*
ppidlLast
:
NULL
);
TRACE_
(
shell
)(
"-- psf=%p pidl=%p
ret=0x%08lx
\n
"
,
*
ppv
,
(
ppidlLast
)
?*
ppidlLast
:
NULL
,
hr
);
return
hr
;
}
...
...
dlls/shell32/shell32.spec
View file @
eac255cd
...
...
@@ -176,7 +176,7 @@ init Shell32LibMain
168 stub SHCreatePropSheetExtArray
169 stub SHDestroyPropSheetExtArray
170 stub SHReplaceFromPropSheetExtArray
171 stdcall PathCleanupSpec(ptr ptr) PathCleanupSpec
171 stdcall PathCleanupSpec(ptr ptr) PathCleanupSpec
AW
172 stub SHCreateLinks
173 stdcall SHValidateUNC(long long long)SHValidateUNC
174 stdcall SHCreateShellFolderViewEx (ptr ptr) SHCreateShellFolderViewEx
...
...
dlls/shell32/shell32_main.h
View file @
eac255cd
...
...
@@ -53,6 +53,13 @@ extern LPVOID (WINAPI* pDPA_DeletePtr) (const HDPA hdpa, INT i);
extern
HICON
(
WINAPI
*
pLookupIconIdFromDirectoryEx
)(
LPBYTE
dir
,
BOOL
bIcon
,
INT
width
,
INT
height
,
UINT
cFlag
);
extern
HICON
(
WINAPI
*
pCreateIconFromResourceEx
)(
LPBYTE
bits
,
UINT
cbSize
,
BOOL
bIcon
,
DWORD
dwVersion
,
INT
width
,
INT
height
,
UINT
cFlag
);
/* ole2 */
extern
HRESULT
(
WINAPI
*
pOleInitialize
)(
LPVOID
reserved
);
extern
void
(
WINAPI
*
pOleUninitialize
)(
void
);
extern
HRESULT
(
WINAPI
*
pDoDragDrop
)(
IDataObject
*
pDataObject
,
IDropSource
*
pDropSource
,
DWORD
dwOKEffect
,
DWORD
*
pdwEffect
);
extern
HRESULT
(
WINAPI
*
pRegisterDragDrop
)(
HWND
hwnd
,
IDropTarget
*
pDropTarget
);
extern
HRESULT
(
WINAPI
*
pRevokeDragDrop
)(
HWND
hwnd
);
BOOL
WINAPI
Shell_GetImageList
(
HIMAGELIST
*
lpBigList
,
HIMAGELIST
*
lpSmallList
);
HRESULT
WINAPI
StrRetToStrN
(
LPVOID
dest
,
DWORD
len
,
LPSTRRET
src
,
LPITEMIDLIST
pidl
);
...
...
@@ -63,7 +70,7 @@ void SIC_Destroy(void);
BOOL
PidlToSicIndex
(
IShellFolder
*
sh
,
LPITEMIDLIST
pidl
,
BOOL
bBigIcon
,
UINT
*
pIndex
);
/* Classes Root */
BOOL
HCR_MapTypeToValue
(
LPCSTR
szExtension
,
LPSTR
szFileType
,
DWORD
len
);
BOOL
HCR_MapTypeToValue
(
LPCSTR
szExtension
,
LPSTR
szFileType
,
DWORD
len
,
BOOL
bPrependDot
);
BOOL
HCR_GetExecuteCommand
(
LPCSTR
szClass
,
LPCSTR
szVerb
,
LPSTR
szDest
,
DWORD
len
);
BOOL
HCR_GetDefaultIcon
(
LPCSTR
szClass
,
LPSTR
szDest
,
DWORD
len
,
LPDWORD
dwNr
);
BOOL
HCR_GetClassName
(
REFIID
riid
,
LPSTR
szDest
,
DWORD
len
);
...
...
@@ -90,7 +97,7 @@ LPSHELLLINK IShellLink_Constructor(BOOL);
IShellFolder
*
ISF_Desktop_Constructor
(
void
);
/*
3th parameter
*/
/*
kind of enumidlist
*/
#define EIDL_DESK 0
#define EIDL_MYCOMP 1
#define EIDL_FILE 2
...
...
@@ -113,4 +120,19 @@ LRESULT WINAPI SHCoCreateInstance(LPSTR,REFCLSID,LPUNKNOWN,REFIID,LPVOID *);
#define MM_SUBMENUSHAVEIDS 0x00000002L
HRESULT
WINAPI
Shell_MergeMenus
(
HMENU
hmDst
,
HMENU
hmSrc
,
UINT
uInsert
,
UINT
uIDAdjust
,
UINT
uIDAdjustMax
,
ULONG
uFlags
);
/* initialisation for FORMATETC */
#define InitFormatEtc(fe, cf, med) \
{\
(fe).cfFormat=cf;\
(fe).dwAspect=DVASPECT_CONTENT;\
(fe).ptd=NULL;\
(fe).tymed=med;\
(fe).lindex=-1;\
};
#define KeyStateToDropEffect(kst)\
(((kst) & MK_CONTROL) ?\
(((kst) & MK_SHIFT) ? DROPEFFECT_LINK : DROPEFFECT_COPY):\
DROPEFFECT_MOVE)
#endif
dlls/shell32/shelllink.c
View file @
eac255cd
...
...
@@ -26,12 +26,13 @@ DEFAULT_DEBUG_CHANNEL(shell)
#include "pshpack1.h"
/* lnk elements: simple link has 0x0B */
/*
flag1:
lnk elements: simple link has 0x0B */
#define WORKDIR 0x10
#define ARGUMENT 0x20
#define ICON 0x40
#define UNC 0x80
/*
startup type
*/
/*
fStartup
*/
#define NORMAL 0x01
#define MAXIMIZED 0x03
#define MINIMIZED 0x07
...
...
@@ -46,7 +47,7 @@ typedef struct _LINK_HEADER
FILETIME
Time3
;
/* 0x2c */
DWORD
Unknown1
;
/* 0x34 */
DWORD
Unknown2
;
/* 0x38 icon number */
DWORD
Flag3
;
/* 0x3c startup type */
DWORD
fStartup
;
/* 0x3c startup type */
DWORD
wHotKey
;
/* 0x40 hotkey */
DWORD
Unknown5
;
/* 0x44 */
DWORD
Unknown6
;
/* 0x48 */
...
...
@@ -81,6 +82,9 @@ typedef struct
LPSTR
sPath
;
LPITEMIDLIST
pPidl
;
WORD
wHotKey
;
SYSTEMTIME
time1
;
SYSTEMTIME
time2
;
SYSTEMTIME
time3
;
}
IShellLinkImpl
;
...
...
@@ -315,27 +319,31 @@ static HRESULT WINAPI IPersistStream_fnLoad(
SHGetPathFromIDListA
(
&
lpLinkHeader
->
Pidl
,
sTemp
);
This
->
sPath
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
sTemp
);
}
This
->
wHotKey
=
lpLinkHeader
->
wHotKey
;
FileTimeToSystemTime
(
&
lpLinkHeader
->
Time1
,
&
This
->
time1
);
FileTimeToSystemTime
(
&
lpLinkHeader
->
Time2
,
&
This
->
time2
);
FileTimeToSystemTime
(
&
lpLinkHeader
->
Time3
,
&
This
->
time3
);
#if 1
GetDateFormatA
(
LOCALE_USER_DEFAULT
,
DATE_SHORTDATE
,
&
This
->
time1
,
NULL
,
sTemp
,
256
);
TRACE
(
"-- time1: %s
\n
"
,
sTemp
);
GetDateFormatA
(
LOCALE_USER_DEFAULT
,
DATE_SHORTDATE
,
&
This
->
time2
,
NULL
,
sTemp
,
256
);
TRACE
(
"-- time1: %s
\n
"
,
sTemp
);
GetDateFormatA
(
LOCALE_USER_DEFAULT
,
DATE_SHORTDATE
,
&
This
->
time3
,
NULL
,
sTemp
,
256
);
TRACE
(
"-- time1: %s
\n
"
,
sTemp
);
pdump
(
This
->
pPidl
);
#endif
ret
=
S_OK
;
}
}
}
}
else
{
WARN
(
"stream contains no link!
\n
"
);
{
WARN
(
"stream contains no link!
\n
"
);
}
}
}
/* old code for debugging */
/* SYSTEMTIME time;
FileTimeToSystemTime (&pImage->Time1, &time);
GetDateFormatA(LOCALE_USER_DEFAULT,DATE_SHORTDATE,&time, NULL, sTemp, 256);
TRACE("-- time1: %s\n", sTemp);
pdump (&pImage->Pidl);
*/
IStream_Release
(
pLoadStream
);
pdump
(
This
->
pPidl
);
...
...
dlls/shell32/shellole.c
View file @
eac255cd
...
...
@@ -38,11 +38,11 @@ DWORD WINAPI SHCLSIDFromStringA (LPSTR clsid, CLSID *id);
LRESULT
WINAPI
SHCoCreateInstance
(
LPSTR
aclsid
,
REFCLSID
clsid
,
LPUNKNOWN
unknownouter
,
IUnknown
*
unknownouter
,
REFIID
refiid
,
LPVOID
*
ppv
)
{
char
xclsid
[
48
],
xiid
[
48
];
char
xclsid
[
48
],
xiid
[
48
]
,
xuout
[
48
]
;
DWORD
hres
;
IID
iid
;
CLSID
*
myclsid
=
(
CLSID
*
)
clsid
;
...
...
@@ -58,7 +58,11 @@ LRESULT WINAPI SHCoCreateInstance(
WINE_StringFromCLSID
(
myclsid
,
xclsid
);
WINE_StringFromCLSID
(
refiid
,
xiid
);
TRACE
(
"(%p,
\n\t
CLSID:
\t
%s,%p,
\n\t
IID:
\t
%s,%p)
\n
"
,
aclsid
,
xclsid
,
unknownouter
,
xiid
,
ppv
);
if
(
unknownouter
)
WINE_StringFromCLSID
(
unknownouter
,
xuout
);
TRACE
(
"(%p,
\n\t
CLSID:
\t
%s
\n\t
UOUT:
\t
%s
\n\t
IID:
\t
%s,%p)
\n
"
,
aclsid
,
xclsid
,
unknownouter
?
xuout
:
"nil"
,
xiid
,
ppv
);
hres
=
CoCreateInstance
(
myclsid
,
NULL
,
CLSCTX_INPROC_SERVER
,
refiid
,
ppv
);
...
...
@@ -156,15 +160,13 @@ LPSHELLFOLDER pdesktopfolder=NULL;
DWORD
WINAPI
SHGetDesktopFolder
(
IShellFolder
**
psf
)
{
HRESULT
hres
=
E_OUTOFMEMORY
;
HRESULT
hres
=
S_OK
;
LPCLASSFACTORY
lpclf
;
TRACE_
(
shell
)(
"%p->(%p)
\n
"
,
psf
,
*
psf
);
if
(
pdesktopfolder
)
{
hres
=
NOERROR
;
}
else
*
psf
=
NULL
;
if
(
!
pdesktopfolder
)
{
lpclf
=
IClassFactory_Constructor
(
&
CLSID_ShellDesktop
);
if
(
lpclf
)
...
...
@@ -176,12 +178,9 @@ DWORD WINAPI SHGetDesktopFolder(IShellFolder **psf)
if
(
pdesktopfolder
)
{
*
psf
=
pdesktopfolder
;
/* even if we create the folder, add a ref so the application cant destroy the folder*/
IShellFolder_AddRef
(
pdesktopfolder
);
}
else
{
*
psf
=
NULL
;
*
psf
=
pdesktopfolder
;
}
TRACE_
(
shell
)(
"-- %p->(%p)
\n
"
,
psf
,
*
psf
);
...
...
dlls/shell32/shellord.c
View file @
eac255cd
...
...
@@ -389,19 +389,25 @@ DWORD WINAPI SHCreateDirectory(LPSECURITY_ATTRIBUTES sec,LPCSTR path) {
* free_ptr() - frees memory using IMalloc
* exported by ordinal
*/
/*#define MEM_DEBUG 1*/
DWORD
WINAPI
SHFree
(
LPVOID
x
)
{
TRACE
(
"%p
\n
"
,
x
);
#if 0
WORD len;
x -= 4;
#ifdef MEM_DEBUG
WORD
len
=
*
(
LPWORD
)(
x
-
2
);
if ( (*(LPWORD)x) != 0x8271)
if
(
*
(
LPWORD
)(
x
+
len
)
!=
0x7384
)
ERR
(
"MAGIC2!
\n
"
);
if
(
(
*
(
LPWORD
)(
x
-
4
))
!=
0x8271
)
ERR
(
"MAGIC1!
\n
"
);
else
memset
(
x
-
4
,
0xde
,
len
+
6
);
len = *(LPWORD)(x+2);
if ( *(LPWORD)( x + 4 + len) != 0x7384)
ERR("MAGIC2!\n");
TRACE
(
"%p len=%u
\n
"
,
x
,
len
);
x
-=
4
;
#else
TRACE
(
"%p
\n
"
,
x
);
#endif
return
HeapFree
(
GetProcessHeap
(),
0
,
x
);
}
...
...
@@ -415,16 +421,21 @@ DWORD WINAPI SHFree(LPVOID x)
*/
LPVOID
WINAPI
SHAlloc
(
DWORD
len
)
{
LPBYTE
ret
=
(
LPVOID
)
HeapAlloc
(
GetProcessHeap
(),
0
,
len
);
#if 0
LPBYTE ret = (LPVOID) HeapAlloc(GetProcessHeap(),0,len + 6);
*(LPWORD)(ret) = 0x8271;
*(LPWORD)(ret+2) = len;
*(LPWORD)(ret+len+4) = 0x7384;
LPBYTE
ret
;
ret += 4;
#ifdef MEM_DEBUG
ret
=
(
LPVOID
)
HeapAlloc
(
GetProcessHeap
(),
0
,
len
+
6
);
#else
ret
=
(
LPVOID
)
HeapAlloc
(
GetProcessHeap
(),
0
,
len
);
#endif
#ifdef MEM_DEBUG
*
(
LPWORD
)(
ret
)
=
0x8271
;
*
(
LPWORD
)(
ret
+
2
)
=
(
WORD
)
len
;
*
(
LPWORD
)(
ret
+
4
+
len
)
=
0x7384
;
ret
+=
4
;
memset
(
ret
,
0xdf
,
len
);
#endif
TRACE
(
"%lu bytes at %p
\n
"
,
len
,
ret
);
return
(
LPVOID
)
ret
;
}
...
...
@@ -1298,11 +1309,3 @@ HRESULT WINAPI DoEnvironmentSubstAW(LPVOID x, LPVOID y)
return
DoEnvironmentSubstA
(
x
,
y
);
}
/*************************************************************************
* PathCleanupSpec [SHELL32.171]
*
*/
BOOL
WINAPI
PathCleanupSpec
(
LPSTR
x
,
LPSTR
y
)
{
FIXME
(
"%p(%s) %p(%s) stub
\n
"
,
x
,
debugstr_w
(
x
),
y
,
debugstr_w
(
y
));
return
TRUE
;
}
dlls/shell32/shellpath.c
View file @
eac255cd
...
...
@@ -718,6 +718,29 @@ LPCVOID WINAPI PathGetExtensionAW(LPCVOID path,DWORD y,DWORD z)
}
/*************************************************************************
* PathCleanupSpec [SHELL32.171]
*
*/
DWORD
WINAPI
PathCleanupSpecA
(
LPSTR
x
,
LPSTR
y
)
{
FIXME
(
"%p(%s) %p(%s) stub
\n
"
,
x
,
x
,
y
,
y
);
return
TRUE
;
}
DWORD
WINAPI
PathCleanupSpecW
(
LPWSTR
x
,
LPWSTR
y
)
{
FIXME
(
"%p(%s) %p(%s) stub
\n
"
,
x
,
debugstr_w
(
x
),
y
,
debugstr_w
(
y
));
return
TRUE
;
}
DWORD
WINAPI
PathCleanupSpecAW
(
LPVOID
x
,
LPVOID
y
)
{
if
(
VERSION_OsIsUnicode
())
return
PathCleanupSpecW
(
x
,
y
);
return
PathCleanupSpecA
(
x
,
y
);
}
/*************************************************************************
* SheGetDirW [SHELL32.281]
*
*/
...
...
dlls/shell32/shres.rc
View file @
eac255cd
This diff is collapsed.
Click to expand it.
dlls/shell32/shresdef.h
View file @
eac255cd
#ifndef __WINE_SHELL_RES_H
#define __WINE_SHELL_RES_H
#define IDS_FILE_TITLE 1
#define IDS_MI_FILE 2
#define IDS_MI_VIEW_FILES 3
#define IDS_TB_VIEW_FILES 4
#define IDS_MI_VIEW_IDW 5
#define IDS_TB_VIEW_IDW 6
/*
columntitles for the shellview
*/
#define IDS_SHV_COLUMN1 7
#define IDS_SHV_COLUMN2 8
#define IDS_SHV_COLUMN3 9
#define IDS_SHV_COLUMN4 10
#define IDS_SHV_COLUMN5 11
#define IDS_SHV_COLUMN6 12
#define IDS_COLUMN1 7
#define IDS_COLUMN2 8
#define IDS_COLUMN3 9
#define IDS_COLUMN4 10
#define IDS_DESKTOP 20
#define IDS_MYCOMPUTER 21
#define IDS_MI_FILEITEM 12
#define IDI_FOLDER 101
#define IDI_FOLDEROPEN 102
#define IDS_SELECT 22
#define IDS_OPEN 23
#define IDS_VIEW_LARGE 24
#define IDS_VIEW_SMALL 25
#define IDS_VIEW_LIST 26
#define IDS_VIEW_DETAILS 27
#endif
dlls/shell32/shv_bg_cmenu.c
View file @
eac255cd
...
...
@@ -168,15 +168,15 @@ static HRESULT WINAPI ISVBgCm_fnInvokeCommand(
{
TRACE
(
"%s
\n
"
,
lpcmi
->
lpVerb
);
if
(
!
strcmp
(
lpcmi
->
lpVerb
,
CMDSTR_NEWFOLDER
))
if
(
!
strcmp
(
lpcmi
->
lpVerb
,
CMDSTR_NEWFOLDER
A
))
{
FIXME
(
"%s not implemented
\n
"
,
lpcmi
->
lpVerb
);
}
else
if
(
!
strcmp
(
lpcmi
->
lpVerb
,
CMDSTR_VIEWLIST
))
else
if
(
!
strcmp
(
lpcmi
->
lpVerb
,
CMDSTR_VIEWLIST
A
))
{
SendMessageA
(
hWndSV
,
WM_COMMAND
,
MAKEWPARAM
(
FCIDM_SHVIEW_LISTVIEW
,
0
),
0
);
}
else
if
(
!
strcmp
(
lpcmi
->
lpVerb
,
CMDSTR_VIEWDETAILS
))
else
if
(
!
strcmp
(
lpcmi
->
lpVerb
,
CMDSTR_VIEWDETAILS
A
))
{
SendMessageA
(
hWndSV
,
WM_COMMAND
,
MAKEWPARAM
(
FCIDM_SHVIEW_REPORTVIEW
,
0
),
0
);
}
...
...
@@ -213,9 +213,6 @@ static HRESULT WINAPI ISVBgCm_fnInvokeCommand(
/**************************************************************************
* ISVBgCm_fnGetCommandString()
*
* NOTES
* the values given by the common dialogs are not documented. so we put some magic
* words in it and will see, where we get these verbs back...
*/
static
HRESULT
WINAPI
ISVBgCm_fnGetCommandString
(
IContextMenu
*
iface
,
...
...
@@ -233,14 +230,16 @@ static HRESULT WINAPI ISVBgCm_fnGetCommandString(
the buttons according to this */
if
(
uFlags
==
GCS_VALIDATEA
)
{
/* idCommmand's are 7febd910, 7febd920, 7febd930 */
if
((
idCommand
==
0x7febd910
)
||
(
idCommand
==
0x7febd920
)
||
(
idCommand
==
0x7febd930
))
if
(
HIWORD
(
idCommand
))
{
if
(
!
strcmp
((
LPSTR
)
idCommand
,
CMDSTR_VIEWLISTA
)
||
!
strcmp
((
LPSTR
)
idCommand
,
CMDSTR_VIEWDETAILSA
)
||
!
strcmp
((
LPSTR
)
idCommand
,
CMDSTR_NEWFOLDERA
))
{
return
NOERROR
;
}
}
}
FIXME
(
"unknown command string
\n
"
);
return
E_FAIL
;
...
...
include/shell.h
View file @
eac255cd
...
...
@@ -174,6 +174,10 @@ LPSTR WINAPI StrFormatByteSizeA ( DWORD dw, LPSTR pszBuf, UINT cchBuf );
LPWSTR
WINAPI
StrFormatByteSizeW
(
DWORD
dw
,
LPWSTR
pszBuf
,
UINT
cchBuf
);
#define StrFormatByteSize WINELIB_NAME_AW(StrFormatByteSize)
DWORD
WINAPI
PathCleanupSpecA
(
LPSTR
x
,
LPSTR
y
);
DWORD
WINAPI
PathCleanupSpecW
(
LPWSTR
x
,
LPWSTR
y
);
#define PathCleanupSpec WINELIB_NAME_AW(PathCleanupSpec)
/****************************************************************************
* other functions
*/
...
...
include/wine/undocshell.h
View file @
eac255cd
...
...
@@ -33,13 +33,13 @@ LPITEMIDLIST WINAPI SHSimpleIDListFromPathA (LPSTR lpszPath);
LPITEMIDLIST
WINAPI
SHSimpleIDListFromPathW
(
LPWSTR
lpszPath
);
LPITEMIDLIST
WINAPI
SHSimpleIDListFromPathAW
(
LPVOID
lpszPath
);
HRESULT
WINAPI
SHILCreateFromPathA
(
LP
STR
path
,
LPITEMIDLIST
*
ppidl
,
DWORD
attributes
);
HRESULT
WINAPI
SHILCreateFromPathW
(
LP
WSTR
path
,
LPITEMIDLIST
*
ppidl
,
DWORD
attributes
);
HRESULT
WINAPI
SHILCreateFromPathAW
(
LP
VOID
path
,
LPITEMIDLIST
*
ppidl
,
DWORD
attributes
);
HRESULT
WINAPI
SHILCreateFromPathA
(
LP
CSTR
path
,
LPITEMIDLIST
*
ppidl
,
DWORD
*
attributes
);
HRESULT
WINAPI
SHILCreateFromPathW
(
LP
CWSTR
path
,
LPITEMIDLIST
*
ppidl
,
DWORD
*
attributes
);
HRESULT
WINAPI
SHILCreateFromPathAW
(
LP
CVOID
path
,
LPITEMIDLIST
*
ppidl
,
DWORD
*
attributes
);
LPITEMIDLIST
WINAPI
ILCreateFromPathA
(
LPSTR
path
);
LPITEMIDLIST
WINAPI
ILCreateFromPathW
(
LPWSTR
path
);
LPITEMIDLIST
WINAPI
ILCreateFromPathAW
(
LPVOID
path
);
LPITEMIDLIST
WINAPI
ILCreateFromPathA
(
LP
C
STR
path
);
LPITEMIDLIST
WINAPI
ILCreateFromPathW
(
LP
C
WSTR
path
);
LPITEMIDLIST
WINAPI
ILCreateFromPathAW
(
LP
C
VOID
path
);
/*
string functions
...
...
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