Changelog: implement CFSTR_FILENAME with Unicode Filename Index: include/shlobj.h =================================================================== RCS file: /home/wine/wine/include/shlobj.h,v retrieving revision 1.66 diff -u -r1.66 shlobj.h --- shlobj.h 6 Jun 2003 18:09:38 -0000 1.66 +++ shlobj.h 25 Jul 2003 17:27:42 -0000 @@ -111,6 +111,8 @@ #define CFSTR_PASTESUCCEEDED "Paste Succeeded" #define CFSTR_INDRAGLOOP "InShellDragLoop" +#define CFSTR_FILENAME WINELIB_NAME_AW(CFSTR_FILENAME) + /************************************************************************ * IShellView interface Index: dlls/shell32/dataobject.c =================================================================== RCS file: /home/wine/wine/dlls/shell32/dataobject.c,v retrieving revision 1.37 diff -u -r1.37 dataobject.c --- dlls/shell32/dataobject.c 10 Apr 2003 18:17:34 -0000 1.37 +++ dlls/shell32/dataobject.c 25 Jul 2003 17:25:20 -0000 @@ -201,7 +201,7 @@ */ /* number of supported formats */ -#define MAX_FORMATS 3 +#define MAX_FORMATS 4 typedef struct { @@ -216,7 +216,8 @@ FORMATETC pFormatEtc[MAX_FORMATS]; UINT cfShellIDList; - UINT cfFileName; + UINT cfFileNameA; + UINT cfFileNameW; } IDataObjectImpl; @@ -240,10 +241,12 @@ dto->cidl = cidl; dto->cfShellIDList = RegisterClipboardFormatA(CFSTR_SHELLIDLIST); - dto->cfFileName = RegisterClipboardFormatA(CFSTR_FILENAMEA); + dto->cfFileNameA = RegisterClipboardFormatA(CFSTR_FILENAMEA); + dto->cfFileNameW = RegisterClipboardFormatA(CFSTR_FILENAMEW); InitFormatEtc(dto->pFormatEtc[0], dto->cfShellIDList, TYMED_HGLOBAL); InitFormatEtc(dto->pFormatEtc[1], CF_HDROP, TYMED_HGLOBAL); - InitFormatEtc(dto->pFormatEtc[2], dto->cfFileName, TYMED_HGLOBAL); + InitFormatEtc(dto->pFormatEtc[2], dto->cfFileNameA, TYMED_HGLOBAL); + InitFormatEtc(dto->pFormatEtc[3], dto->cfFileNameW, TYMED_HGLOBAL); } TRACE("(%p)->(apidl=%p cidl=%u)\n",dto, apidl, cidl); @@ -331,10 +334,15 @@ if (This->cidl < 1) return(E_UNEXPECTED); pmedium->u.hGlobal = RenderHDROP(This->pidl, This->apidl, This->cidl); } - else if (pformatetcIn->cfFormat == This->cfFileName) + else if (pformatetcIn->cfFormat == This->cfFileNameA) { if (This->cidl < 1) return(E_UNEXPECTED); - pmedium->u.hGlobal = RenderFILENAME(This->pidl, This->apidl, This->cidl); + pmedium->u.hGlobal = RenderFILENAMEA(This->pidl, This->apidl, This->cidl); + } + else if (pformatetcIn->cfFormat == This->cfFileNameW) + { + if (This->cidl < 1) return(E_UNEXPECTED); + pmedium->u.hGlobal = RenderFILENAMEW(This->pidl, This->apidl, This->cidl); } else { -- Martin Fuchs martin-fuchs@gmx.net