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
0005e81f
Commit
0005e81f
authored
Jan 18, 2001
by
Andreas Mohr
Committed by
Alexandre Julliard
Jan 18, 2001
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implemented SHELL32.IsNetDrive and SHELL32.ILSaveToStream needed for
IE 5.
parent
9a949801
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
60 additions
and
8 deletions
+60
-8
pidl.c
dlls/shell32/pidl.c
+45
-4
pidl.h
dlls/shell32/pidl.h
+2
-1
shell32.spec
dlls/shell32/shell32.spec
+3
-3
shlfileop.c
dlls/shell32/shlfileop.c
+10
-0
No files found.
dlls/shell32/pidl.c
View file @
0005e81f
...
...
@@ -108,8 +108,9 @@ BOOL pcheck (LPCITEMIDLIST pidl)
case
PT_WORKGRP
:
case
PT_COMP
:
case
PT_NETWORK
:
case
PT_IESPECIAL1
:
case
PT_IESPECIAL2
:
case
PT_SHARE
:
case
PT_IESPECIAL
:
break
;
default:
{
...
...
@@ -233,6 +234,7 @@ LPITEMIDLIST WINAPI ILCloneFirst(LPCITEMIDLIST pidl)
return
pidlNew
;
}
/*************************************************************************
* ILLoadFromStream
*
...
...
@@ -265,7 +267,7 @@ HRESULT WINAPI ILLoadFromStream (IStream * pStream, LPITEMIDLIST * ppPidl)
}
}
/* we are not
j
et fully compatible */
/* we are not
y
et fully compatible */
if
(
!
pcheck
(
*
ppPidl
))
{
SHFree
(
*
ppPidl
);
*
ppPidl
=
NULL
;
...
...
@@ -276,6 +278,43 @@ HRESULT WINAPI ILLoadFromStream (IStream * pStream, LPITEMIDLIST * ppPidl)
return
ret
;
}
/*************************************************************************
* ILSaveToStream
*
* NOTES
* the first two bytes are the len, the pidl is following then
*/
HRESULT
WINAPI
ILSaveToStream
(
IStream
*
pStream
,
LPCITEMIDLIST
pPidl
)
{
LPITEMIDLIST
pidl
;
WORD
wLen
=
0
;
HRESULT
ret
=
E_FAIL
;
TRACE_
(
shell
)(
"%p %p
\n
"
,
pStream
,
pPidl
);
IStream_AddRef
(
pStream
);
pidl
=
pPidl
;
while
(
pidl
->
mkid
.
cb
)
{
wLen
+=
sizeof
(
WORD
)
+
pidl
->
mkid
.
cb
;
pidl
=
ILGetNext
(
pidl
);
}
if
(
SUCCEEDED
(
IStream_Write
(
pStream
,
(
LPVOID
)
&
wLen
,
2
,
NULL
)))
{
if
(
SUCCEEDED
(
IStream_Write
(
pStream
,
pPidl
,
wLen
,
NULL
)))
{
ret
=
S_OK
;
}
}
IStream_Release
(
pStream
);
return
ret
;
}
/*************************************************************************
* SHILCreateFromPath [SHELL32.28]
*
...
...
@@ -1508,7 +1547,8 @@ LPSTR _ILGetTextPointer(LPCITEMIDLIST pidl)
case
PT_FOLDER
:
case
PT_FOLDER1
:
case
PT_VALUE
:
case
PT_IESPECIAL
:
case
PT_IESPECIAL1
:
case
PT_IESPECIAL2
:
return
(
LPSTR
)
&
(
pdata
->
u
.
file
.
szNames
);
case
PT_WORKGRP
:
...
...
@@ -1536,7 +1576,8 @@ LPSTR _ILGetSTextPointer(LPCITEMIDLIST pidl)
{
case
PT_FOLDER
:
case
PT_VALUE
:
case
PT_IESPECIAL
:
case
PT_IESPECIAL1
:
case
PT_IESPECIAL2
:
return
(
LPSTR
)(
pdata
->
u
.
file
.
szNames
+
strlen
(
pdata
->
u
.
file
.
szNames
)
+
1
);
case
PT_WORKGRP
:
...
...
dlls/shell32/pidl.h
View file @
0005e81f
...
...
@@ -74,7 +74,8 @@
#define PT_WORKGRP 0x41
#define PT_COMP 0x42
#define PT_NETWORK 0x47
#define PT_IESPECIAL 0xb1
#define PT_IESPECIAL1 0x61
#define PT_IESPECIAL2 0xb1
#define PT_SHARE 0xc3
#include "pshpack1.h"
...
...
dlls/shell32/shell32.spec
View file @
0005e81f
...
...
@@ -38,8 +38,8 @@ debug_channels (exec pidl shell)
23 stdcall ILIsParent (long long long) ILIsParent
24 stdcall ILFindChild (long long) ILFindChild
25 stdcall ILCombine(ptr ptr) ILCombine
26 stdcall ILLoadFromStream (
long long
) ILLoadFromStream
27 st
ub ILSaveToStream@8
26 stdcall ILLoadFromStream (
ptr ptr
) ILLoadFromStream
27 st
dcall ILSaveToStream(ptr ptr) ILSaveToStream
28 stdcall SHILCreateFromPath (long long long) SHILCreateFromPathAW
29 stdcall PathIsRoot(ptr) PathIsRootAW
30 stdcall PathBuildRoot(ptr long) PathBuildRootAW
...
...
@@ -75,7 +75,7 @@ debug_channels (exec pidl shell)
63 stdcall GetFileNameFromBrowse(long long long long str str str) GetFileNameFromBrowse
64 stdcall DriveType (long) DriveType
65 stub InvalidateDriveType
66 st
ub
IsNetDrive
66 st
dcall IsNetDrive(long)
IsNetDrive
67 stdcall Shell_MergeMenus (long long long long long long) Shell_MergeMenus
68 stdcall SHGetSetSettings(long long long) SHGetSetSettings
69 stub SHGetNetResource
...
...
dlls/shell32/shlfileop.c
View file @
0005e81f
...
...
@@ -163,3 +163,13 @@ HRESULT WINAPI SheChangeDirW(LPWSTR u)
return
0
;
}
/*************************************************************************
* IsNetDrive [SHELL32.66]
*/
BOOL
WINAPI
IsNetDrive
(
DWORD
drive
)
{
char
root
[
4
];
strcpy
(
root
,
"A:
\\
"
);
root
[
0
]
+=
drive
;
return
(
GetDriveTypeA
(
root
)
==
DRIVE_REMOTE
);
}
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