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