shell32: Add unicode pidl type
Huw D M Davies
h.davies1 at physics.ox.ac.uk
Tue Apr 12 05:46:23 CDT 2005
Huw Davies <huw at codeweavers.com>
Add a unicode pidl type.
Improve support for PT_YAGUID.
Improve IShellLink debugging.
--
Huw Davies
huw at codeweavers.com
Index: dlls/shell32/debughlp.c
===================================================================
RCS file: /home/wine/wine/dlls/shell32/debughlp.c,v
retrieving revision 1.20
diff -u -p -r1.20 debughlp.c
--- dlls/shell32/debughlp.c 31 Mar 2005 10:05:59 -0000 1.20
+++ dlls/shell32/debughlp.c 12 Apr 2005 10:40:32 -0000
@@ -136,6 +136,7 @@ IID* _dbg_ILGetGUIDPointer(LPCITEMIDLIST
{
case PT_SHELLEXT:
case PT_GUID:
+ case PT_YAGUID:
return &(pdata->u.guid.guid);
}
}
@@ -267,6 +268,7 @@ BOOL pcheck( LPCITEMIDLIST pidl )
case PT_DRIVE3:
case PT_FOLDER:
case PT_VALUE:
+ case PT_VALUEW:
case PT_FOLDER1:
case PT_WORKGRP:
case PT_COMP:
@@ -316,6 +318,8 @@ static struct {
{&IID_IDataObject, "IID_IDataObject"},
{&IID_IAutoComplete, "IID_IAutoComplete"},
{&IID_IAutoComplete2, "IID_IAutoComplete2"},
+ {&IID_IShellLinkA, "IID_IShellLinkA"},
+ {&IID_IShellLinkW, "IID_IShellLinkW"},
{NULL,NULL}};
const char * shdebugstr_guid( const struct _GUID *id )
Index: dlls/shell32/pidl.c
===================================================================
RCS file: /home/wine/wine/dlls/shell32/pidl.c,v
retrieving revision 1.128
diff -u -p -r1.128 pidl.c
--- dlls/shell32/pidl.c 23 Mar 2005 13:15:19 -0000 1.128
+++ dlls/shell32/pidl.c 12 Apr 2005 10:40:32 -0000
@@ -1825,7 +1825,7 @@ BOOL _ILIsSpecialFolder (LPCITEMIDLIST p
TRACE("(%p)\n",pidl);
- return (pidl && ( (lpPData && (PT_GUID== lpPData->type || PT_SHELLEXT== lpPData->type)) ||
+ return (pidl && ( (lpPData && (PT_GUID== lpPData->type || PT_SHELLEXT== lpPData->type || PT_YAGUID == lpPData->type)) ||
(pidl && pidl->mkid.cb == 0x00)
));
}
@@ -2081,6 +2081,7 @@ IID* _ILGetGUIDPointer(LPCITEMIDLIST pid
{
case PT_SHELLEXT:
case PT_GUID:
+ case PT_YAGUID:
return &(pdata->u.guid.guid);
default:
Index: dlls/shell32/pidl.h
===================================================================
RCS file: /home/wine/wine/dlls/shell32/pidl.h,v
retrieving revision 1.46
diff -u -p -r1.46 pidl.h
--- dlls/shell32/pidl.h 23 Feb 2005 12:45:12 -0000 1.46
+++ dlls/shell32/pidl.h 12 Apr 2005 10:40:32 -0000
@@ -97,6 +97,7 @@
#define PT_FOLDER1 0x30
#define PT_FOLDER 0x31
#define PT_VALUE 0x32
+#define PT_VALUEW 0x34
#define PT_WORKGRP 0x41
#define PT_COMP 0x42
#define PT_NETPROVIDER 0x46
@@ -142,6 +143,11 @@ typedef struct tagFileStruct
The second the dos name when needed or just 0x00 */
} FileStruct;
+typedef struct tagValueW
+{
+ WCHAR name[1];
+} ValueWStruct;
+
typedef struct tagPIDLDATA
{ PIDLTYPE type; /*00*/
union
@@ -159,6 +165,7 @@ typedef struct tagPIDLDATA
CHAR szName[1]; /*06*/ /* terminated by 0x00 0x00 */
} htmlhelp;
struct tagPIDLCPanelStruct cpanel;
+ struct tagValueW valueW;
}u;
} PIDLDATA, *LPPIDLDATA;
#include "poppack.h"
Index: dlls/shell32/shelllink.c
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shelllink.c,v
retrieving revision 1.88
diff -u -p -r1.88 shelllink.c
--- dlls/shell32/shelllink.c 27 Mar 2005 17:54:48 -0000 1.88
+++ dlls/shell32/shelllink.c 12 Apr 2005 10:40:32 -0000
@@ -250,7 +250,7 @@ static HRESULT WINAPI IPersistFile_fnLoa
HRESULT r;
IStream *stm;
- TRACE("(%p, %s)\n",This, debugstr_w(pszFileName));
+ TRACE("(%p, %s, %lx)\n",This, debugstr_w(pszFileName), dwMode);
r = CreateStreamOnFile(pszFileName, dwMode, &stm);
if( SUCCEEDED( r ) )
@@ -260,7 +260,7 @@ static HRESULT WINAPI IPersistFile_fnLoa
IStream_Release( stm );
This->bDirty = FALSE;
}
-
+ TRACE("-- returning hr %08lx\n", r);
return r;
}
More information about the wine-patches
mailing list