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
9a7cc230
Commit
9a7cc230
authored
Jul 02, 2002
by
Juergen Schmied
Committed by
Alexandre Julliard
Jul 02, 2002
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- implementations for SHLWAPI_267, SHLWAPI_268
- small fixes
parent
23b80879
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
55 additions
and
34 deletions
+55
-34
Makefile.in
dlls/Makefile.in
+2
-1
Makefile.in
dlls/shlwapi/Makefile.in
+2
-1
ordinal.c
dlls/shlwapi/ordinal.c
+45
-26
string.c
dlls/shlwapi/string.c
+6
-6
No files found.
dlls/Makefile.in
View file @
9a7cc230
...
@@ -812,7 +812,8 @@ shdocvw: ole32.dll$(DLLEXT) kernel32.dll$(DLLEXT)
...
@@ -812,7 +812,8 @@ shdocvw: ole32.dll$(DLLEXT) kernel32.dll$(DLLEXT)
shell32
:
ole32.dll$(DLLEXT) shlwapi.dll$(DLLEXT) comctl32.dll$(DLLEXT) user32.dll$(DLLEXT)
\
shell32
:
ole32.dll$(DLLEXT) shlwapi.dll$(DLLEXT) comctl32.dll$(DLLEXT) user32.dll$(DLLEXT)
\
gdi32.dll$(DLLEXT) advapi32.dll$(DLLEXT) kernel32.dll$(DLLEXT)
gdi32.dll$(DLLEXT) advapi32.dll$(DLLEXT) kernel32.dll$(DLLEXT)
shfolder
:
shell32.dll$(DLLEXT)
shfolder
:
shell32.dll$(DLLEXT)
shlwapi
:
user32.dll$(DLLEXT) gdi32.dll$(DLLEXT) advapi32.dll$(DLLEXT) kernel32.dll$(DLLEXT)
shlwapi
:
ole32.dll$(DLLEXT) user32.dll$(DLLEXT) gdi32.dll$(DLLEXT) advapi32.dll$(DLLEXT)
\
kernel32.dll$(DLLEXT)
snmpapi
:
kernel32.dll$(DLLEXT)
snmpapi
:
kernel32.dll$(DLLEXT)
sti
:
kernel32.dll$(DLLEXT)
sti
:
kernel32.dll$(DLLEXT)
tapi32
:
kernel32.dll$(DLLEXT)
tapi32
:
kernel32.dll$(DLLEXT)
...
...
dlls/shlwapi/Makefile.in
View file @
9a7cc230
...
@@ -4,7 +4,8 @@ TOPOBJDIR = ../..
...
@@ -4,7 +4,8 @@ TOPOBJDIR = ../..
SRCDIR
=
@srcdir@
SRCDIR
=
@srcdir@
VPATH
=
@srcdir@
VPATH
=
@srcdir@
MODULE
=
shlwapi.dll
MODULE
=
shlwapi.dll
IMPORTS
=
user32 gdi32 advapi32 kernel32
# fixme: avoid ole32.dll import
IMPORTS
=
ole32 user32 gdi32 advapi32 kernel32
EXTRALIBS
=
$(LIBUUID)
$(LIBUNICODE)
EXTRALIBS
=
$(LIBUUID)
$(LIBUNICODE)
LDDLLFLAGS
=
@LDDLLFLAGS@
LDDLLFLAGS
=
@LDDLLFLAGS@
...
...
dlls/shlwapi/ordinal.c
View file @
9a7cc230
...
@@ -1512,23 +1512,21 @@ HRESULT WINAPI SHLWAPI_219 (
...
@@ -1512,23 +1512,21 @@ HRESULT WINAPI SHLWAPI_219 (
LPVOID
w
,
/* [in] table of interfaces */
LPVOID
w
,
/* [in] table of interfaces */
IFACE_INDEX_TBL
*
x
,
/* [in] array of REFIIDs and indexes to above */
IFACE_INDEX_TBL
*
x
,
/* [in] array of REFIIDs and indexes to above */
REFIID
riid
,
/* [in] REFIID to get interface for */
REFIID
riid
,
/* [in] REFIID to get interface for */
LPVOID
*
z
)
/* [out] location to get interface pointer */
LPVOID
*
ppv
)
/* [out] location to get interface pointer */
{
{
HRESULT
ret
;
HRESULT
ret
;
IUnknown
*
a_vtbl
;
IUnknown
*
a_vtbl
;
IFACE_INDEX_TBL
*
xmove
;
IFACE_INDEX_TBL
*
xmove
;
TRACE
(
"(%p %p %s %p)
\n
"
,
TRACE
(
"(%p %p %s %p)
\n
"
,
w
,
x
,
debugstr_guid
(
riid
),
ppv
);
w
,
x
,
debugstr_guid
(
riid
),
z
);
if
(
ppv
)
{
if
(
z
)
{
xmove
=
x
;
xmove
=
x
;
while
(
xmove
->
refid
)
{
while
(
xmove
->
refid
)
{
TRACE
(
"trying (indx %ld) %s
\n
"
,
xmove
->
indx
,
TRACE
(
"trying (indx %ld) %s
\n
"
,
xmove
->
indx
,
debugstr_guid
(
xmove
->
refid
));
debugstr_guid
(
xmove
->
refid
));
if
(
IsEqualIID
(
riid
,
xmove
->
refid
))
{
if
(
IsEqualIID
(
riid
,
xmove
->
refid
))
{
a_vtbl
=
(
IUnknown
*
)(
xmove
->
indx
+
(
LPBYTE
)
w
);
a_vtbl
=
(
IUnknown
*
)(
xmove
->
indx
+
(
LPBYTE
)
w
);
TRACE
(
"matched, returning (%p)
\n
"
,
a_vtbl
);
TRACE
(
"matched, returning (%p)
\n
"
,
a_vtbl
);
*
z
=
(
LPVOID
)
a_vtbl
;
*
ppv
=
(
LPVOID
)
a_vtbl
;
IUnknown_AddRef
(
a_vtbl
);
IUnknown_AddRef
(
a_vtbl
);
return
S_OK
;
return
S_OK
;
}
}
...
@@ -1538,14 +1536,16 @@ HRESULT WINAPI SHLWAPI_219 (
...
@@ -1538,14 +1536,16 @@ HRESULT WINAPI SHLWAPI_219 (
if
(
IsEqualIID
(
riid
,
&
IID_IUnknown
))
{
if
(
IsEqualIID
(
riid
,
&
IID_IUnknown
))
{
a_vtbl
=
(
IUnknown
*
)(
x
->
indx
+
(
LPBYTE
)
w
);
a_vtbl
=
(
IUnknown
*
)(
x
->
indx
+
(
LPBYTE
)
w
);
TRACE
(
"returning first for IUnknown (%p)
\n
"
,
a_vtbl
);
TRACE
(
"returning first for IUnknown (%p)
\n
"
,
a_vtbl
);
*
z
=
(
LPVOID
)
a_vtbl
;
*
ppv
=
(
LPVOID
)
a_vtbl
;
IUnknown_AddRef
(
a_vtbl
);
IUnknown_AddRef
(
a_vtbl
);
return
S_OK
;
return
S_OK
;
}
}
*
z
=
0
;
*
ppv
=
0
;
ret
=
E_NOINTERFACE
;
ret
=
E_NOINTERFACE
;
}
else
}
else
ret
=
E_POINTER
;
ret
=
E_POINTER
;
TRACE
(
"-- 0x%08lx
\n
"
,
ret
);
return
ret
;
return
ret
;
}
}
...
@@ -1686,32 +1686,51 @@ DWORD WINAPI SHLWAPI_266 (
...
@@ -1686,32 +1686,51 @@ DWORD WINAPI SHLWAPI_266 (
/*************************************************************************
/*************************************************************************
* @ [SHLWAPI.267]
* @ [SHLWAPI.267]
*
* NOTES:
* This QueryInterface asks the inner object for a interface. In case
* of aggregation this request would be forwarded by the inner to the
* outer object. This function asks the inner object directly for the
* interface circumventing the forwarding to the outer object.
*/
*/
HRESULT
WINAPI
SHLWAPI_267
(
HRESULT
WINAPI
SHLWAPI_267
(
LPVOID
w
,
IUnknown
*
pUnk
,
/* outer object */
LPVOID
x
,
IUnknown
*
pInner
,
/* inner object */
LPVOID
y
,
/* [???] NOTE: same as 3rd parameter of SHLWAPI_219 */
IID
*
riid
,
LPVOID
z
)
/* [???] NOTE: same as 4th parameter of SHLWAPI_219 */
LPVOID
*
ppv
)
{
{
FIXME
(
"(%p %p %p %p)stub
\n
"
,
w
,
x
,
y
,
z
);
HRESULT
hret
=
E_NOINTERFACE
;
TRACE
(
"(pUnk=%p pInner=%p
\n\t
IID: %s %p)
\n
"
,
pUnk
,
pInner
,
debugstr_guid
(
riid
),
ppv
);
/* native seems to do:
* SHLWAPI_219 ((LPVOID)(((LPSTR)x)-4), ???, (REFIID) y, (LPVOID*) z);
*
ppv
=
NULL
;
*/
if
(
pUnk
&&
pInner
)
{
hret
=
IUnknown_QueryInterface
(
pInner
,
riid
,
(
LPVOID
*
)
ppv
);
*
((
LPDWORD
)
z
)
=
0xabba1200
;
if
(
SUCCEEDED
(
hret
))
IUnknown_Release
(
pUnk
);
return
/* 0xabba1254 */
0
;
}
TRACE
(
"-- 0x%08lx
\n
"
,
hret
);
return
hret
;
}
}
/*************************************************************************
/*************************************************************************
* @ [SHLWAPI.268]
* @ [SHLWAPI.268]
* NOTES
* pInner is returned by SHLWAPI_267 as ppv
*/
*/
DWORD
WINAPI
SHLWAPI_268
(
DWORD
WINAPI
SHLWAPI_268
(
LPVOID
w
,
IUnknown
*
pUnk
,
LPVOID
x
)
IUnknown
**
pInner
)
{
{
FIXME
(
"(%p %p)
\n
"
,
w
,
x
);
DWORD
ret
=
0
;
return
0xabba1251
;
/* 0 = failure */
TRACE
(
"(pUnk=%p pInner=%p)
\n
"
,
pUnk
,
pInner
);
IUnknown_AddRef
(
pUnk
);
if
(
pInner
&&
*
pInner
)
{
ret
=
IUnknown_Release
(
*
pInner
);
*
pInner
=
NULL
;
}
TRACE
(
"-- count=%lu
\n
"
,
ret
);
return
ret
;
}
}
/*************************************************************************
/*************************************************************************
...
...
dlls/shlwapi/string.c
View file @
9a7cc230
...
@@ -486,14 +486,14 @@ HRESULT WINAPI StrRetToBufA (LPSTRRET src, const ITEMIDLIST *pidl, LPSTR dest, D
...
@@ -486,14 +486,14 @@ HRESULT WINAPI StrRetToBufA (LPSTRRET src, const ITEMIDLIST *pidl, LPSTR dest, D
{
{
case
STRRET_WSTR
:
case
STRRET_WSTR
:
WideCharToMultiByte
(
CP_ACP
,
0
,
src
->
u
.
pOleStr
,
-
1
,
(
LPSTR
)
dest
,
len
,
NULL
,
NULL
);
WideCharToMultiByte
(
CP_ACP
,
0
,
src
->
u
.
pOleStr
,
-
1
,
(
LPSTR
)
dest
,
len
,
NULL
,
NULL
);
/* SHFree(src->u.pOleStr); FIXME: is this right? */
CoTaskMemFree
(
src
->
u
.
pOleStr
);
break
;
break
;
case
STRRET_CSTR
A
:
case
STRRET_CSTR
:
lstrcpynA
((
LPSTR
)
dest
,
src
->
u
.
cStr
,
len
);
lstrcpynA
((
LPSTR
)
dest
,
src
->
u
.
cStr
,
len
);
break
;
break
;
case
STRRET_OFFSET
A
:
case
STRRET_OFFSET
:
lstrcpynA
((
LPSTR
)
dest
,
((
LPCSTR
)
&
pidl
->
mkid
)
+
src
->
u
.
uOffset
,
len
);
lstrcpynA
((
LPSTR
)
dest
,
((
LPCSTR
)
&
pidl
->
mkid
)
+
src
->
u
.
uOffset
,
len
);
break
;
break
;
...
@@ -531,15 +531,15 @@ HRESULT WINAPI StrRetToBufW (LPSTRRET src, const ITEMIDLIST *pidl, LPWSTR dest,
...
@@ -531,15 +531,15 @@ HRESULT WINAPI StrRetToBufW (LPSTRRET src, const ITEMIDLIST *pidl, LPWSTR dest,
{
{
case
STRRET_WSTR
:
case
STRRET_WSTR
:
lstrcpynW
((
LPWSTR
)
dest
,
src
->
u
.
pOleStr
,
len
);
lstrcpynW
((
LPWSTR
)
dest
,
src
->
u
.
pOleStr
,
len
);
/* SHFree(src->u.pOleStr); FIXME: is this right? */
CoTaskMemFree
(
src
->
u
.
pOleStr
);
break
;
break
;
case
STRRET_CSTR
A
:
case
STRRET_CSTR
:
if
(
!
MultiByteToWideChar
(
CP_ACP
,
0
,
src
->
u
.
cStr
,
-
1
,
dest
,
len
)
&&
len
)
if
(
!
MultiByteToWideChar
(
CP_ACP
,
0
,
src
->
u
.
cStr
,
-
1
,
dest
,
len
)
&&
len
)
dest
[
len
-
1
]
=
0
;
dest
[
len
-
1
]
=
0
;
break
;
break
;
case
STRRET_OFFSET
A
:
case
STRRET_OFFSET
:
if
(
pidl
)
if
(
pidl
)
{
{
if
(
!
MultiByteToWideChar
(
CP_ACP
,
0
,
((
LPCSTR
)
&
pidl
->
mkid
)
+
src
->
u
.
uOffset
,
-
1
,
if
(
!
MultiByteToWideChar
(
CP_ACP
,
0
,
((
LPCSTR
)
&
pidl
->
mkid
)
+
src
->
u
.
uOffset
,
-
1
,
...
...
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