Add a unicode pidl type.
authorHuw Davies <huw@codeweavers.com>
Wed, 13 Apr 2005 14:39:27 +0000 (14:39 +0000)
committerAlexandre Julliard <julliard@winehq.org>
Wed, 13 Apr 2005 14:39:27 +0000 (14:39 +0000)
Improve support for PT_YAGUID.
Improve IShellLink debugging.

dlls/shell32/debughlp.c
dlls/shell32/pidl.c
dlls/shell32/pidl.h
dlls/shell32/shelllink.c

index f490dcc5b1f33999e89b0008c82f8bbac7afa9a1..6857cdcbb6dd6085288a507ee836d1ccdedd7703 100644 (file)
@@ -136,6 +136,7 @@ IID* _dbg_ILGetGUIDPointer(LPCITEMIDLIST pidl)
          {
            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 e2fbdd7d2b747284e741bebff5926888e8ca33ae..265c3641f3d2d2a51e5c6045750396ea5e753037 100644 (file)
@@ -1825,7 +1825,7 @@ BOOL _ILIsSpecialFolder (LPCITEMIDLIST pidl)
 
     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 pidl)
     {
     case PT_SHELLEXT:
     case PT_GUID:
+    case PT_YAGUID:
         return &(pdata->u.guid.guid);
 
     default:
index 1bf1828bebaa1753b30a3b5bb1e6fbffa7c07216..9f5ef5a1d31ff55fd70b84b99e7896d8c7439721 100644 (file)
@@ -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 388f3bb482c372c45ad9b95c1ce11ca8af87c682..12e2054b7d5ee54d333e0c7efd7b907df7201099 100644 (file)
@@ -250,7 +250,7 @@ static HRESULT WINAPI IPersistFile_fnLoad(IPersistFile* iface, LPCOLESTR pszFile
         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_fnLoad(IPersistFile* iface, LPCOLESTR pszFile
             IStream_Release( stm );
             This->bDirty = FALSE;
         }
-
+        TRACE("-- returning hr %08lx\n", r);
         return r;
 }