Add support for Unicode IExtractIcon creation in IShellFolder->GetUIObjectOf
Rolf Kalbermatter
rolf.kalbermatter at citeng.com
Sat Dec 14 09:52:25 CST 2002
Changelog
* dlls/shell32/shell32_main.h
* dlls/shell32/shfldr_desktop.c
* dlls/shell32/shfldr_fs.c
* dlls/shell32/shfldr_mycomp.c
Add support for Unicode IExtractIcon creation in IShellFolder->GetUIObjectOf
As usual X11/BSD and LGPL license compatible
Rolf Kalbermatter
Index: dlls/shell32/shell32_main.h
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shell32_main.h,v
retrieving revision 1.59
diff -u -r1.59 shell32_main.h
--- dlls/shell32/shell32_main.h 6 Dec 2002 23:20:52 -0000 1.59
+++ dlls/shell32/shell32_main.h 14 Dec 2002 15:48:31 -0000
@@ -92,6 +92,7 @@
LPENUMIDLIST IEnumIDList_Constructor(LPCSTR,DWORD,DWORD);
LPEXTRACTICONA IExtractIconA_Constructor(LPITEMIDLIST);
+LPEXTRACTICONW IExtractIconW_Constructor(LPITEMIDLIST);
HRESULT CreateStreamOnFile (LPCSTR pszFilename, IStream ** ppstm);
/* FIXME: rename the functions when the shell32.dll has it's own exports namespace */
Index: dlls/shell32/shfldr_desktop.c
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shfldr_desktop.c,v
retrieving revision 1.4
diff -u -r1.4 shfldr_desktop.c
--- dlls/shell32/shfldr_desktop.c 5 Dec 2002 20:33:08 -0000 1.4
+++ dlls/shell32/shfldr_desktop.c 14 Dec 2002 15:42:26 -0000
@@ -406,6 +406,11 @@
} else if (IsEqualIID (riid, &IID_IExtractIconA) && (cidl == 1)) {
pidl = ILCombine (This->pidlRoot, apidl[0]);
pObj = (LPUNKNOWN) IExtractIconA_Constructor (pidl);
+ SHFree (pidl);
+ hr = S_OK;
+ } else if (IsEqualIID (riid, &IID_IExtractIconW) && (cidl == 1)) {
+ pidl = ILCombine (This->pidlRoot, apidl[0]);
+ pObj = (LPUNKNOWN) IExtractIconW_Constructor (pidl);
SHFree (pidl);
hr = S_OK;
} else if (IsEqualIID (riid, &IID_IDropTarget) && (cidl >= 1)) {
Index: dlls/shell32/shfldr_fs.c
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shfldr_fs.c,v
retrieving revision 1.4
diff -u -r1.4 shfldr_fs.c
--- dlls/shell32/shfldr_fs.c 13 Dec 2002 00:36:52 -0000 1.4
+++ dlls/shell32/shfldr_fs.c 14 Dec 2002 15:45:15 -0000
@@ -559,6 +559,11 @@
pObj = (LPUNKNOWN) IExtractIconA_Constructor (pidl);
SHFree (pidl);
hr = S_OK;
+ } else if (IsEqualIID (riid, &IID_IExtractIconW) && (cidl == 1)) {
+ pidl = ILCombine (This->pidlRoot, apidl[0]);
+ pObj = (LPUNKNOWN) IExtractIconW_Constructor (pidl);
+ SHFree (pidl);
+ hr = S_OK;
} else if (IsEqualIID (riid, &IID_IDropTarget) && (cidl >= 1)) {
hr = IShellFolder_QueryInterface (iface, &IID_IDropTarget, (LPVOID *) & pObj);
} else {
Index: dlls/shell32/shfldr_mycomp.c
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shfldr_mycomp.c,v
retrieving revision 1.4
diff -u -r1.4 shfldr_mycomp.c
--- dlls/shell32/shfldr_mycomp.c 5 Dec 2002 20:33:08 -0000 1.4
+++ dlls/shell32/shfldr_mycomp.c 14 Dec 2002 15:46:14 -0000
@@ -388,6 +388,11 @@
pObj = (LPUNKNOWN) IExtractIconA_Constructor (pidl);
SHFree (pidl);
hr = S_OK;
+ } else if (IsEqualIID (riid, &IID_IExtractIconW) && (cidl == 1)) {
+ pidl = ILCombine (This->pidlRoot, apidl[0]);
+ pObj = (LPUNKNOWN) IExtractIconW_Constructor (pidl);
+ SHFree (pidl);
+ hr = S_OK;
} else if (IsEqualIID (riid, &IID_IDropTarget) && (cidl >= 1)) {
hr = IShellFolder_QueryInterface (iface, &IID_IDropTarget, (LPVOID *) & pObj);
} else {
More information about the wine-patches
mailing list