patch for include/shlobj.h
"Martin Fuchs" <[email protected]> Sun, 17 Aug 2003 16:32:16 +0100
| Newsgroups | gmane.comp.gnu.mingw.patches |
|---|---|
| Message-ID | <[email protected]> |
* include/shlobj.h:
declare IDragSourceHelper interface
declare IDropTargetHelper interface
declare IExtractIconW for Unicode
fix ICommDlgBrowser declaration by including IShellView parameter types in OnDefaultCommand(), OnStateChange() and IncludeObject()
IDragSourceHelper:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/ifaces/idragsourcehelper/idragsourcehelper.asp
IDropTargetHelper:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/ifaces/idroptargethelper/idroptargethelper.asp
IExtractIcon:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/ifaces/iextracticon/iextracticon.asp
ICommDlgBrowser:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/ifaces/icommdlgbrowser/icommdlgbrowser.asp
Index: include/shlobj.h
===================================================================
RCS file: /cvs/src/src/winsup/w32api/include/shlobj.h,v
retrieving revision 1.23
diff -u -p -d -r1.23 shlobj.h
--- include/shlobj.h 10 Aug 2003 00:40:01 -0000 1.23
+++ include/shlobj.h 17 Aug 2003 15:09:57 -0000
@@ -492,16 +492,36 @@ DECLARE_INTERFACE_(IShellPropSheetExt, I
typedef IShellPropSheetExt *LPSHELLPROPSHEETEXT;
#undef INTERFACE
-#define INTERFACE IExtractIcon
-DECLARE_INTERFACE_(IExtractIcon, IUnknown) /* exic */
+#define INTERFACE IExtractIconA
+DECLARE_INTERFACE_(IExtractIconA, IUnknown)
{
STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
- STDMETHOD(GetIconLocation)(THIS_ UINT,LPSTR,UINT,int*,PUINT) PURE;
+ STDMETHOD(GetIconLocation)(THIS_ UINT,LPSTR,UINT,int*,PUINT) PURE;
STDMETHOD(Extract)(THIS_ LPCSTR,UINT,HICON*,HICON*,UINT) PURE;
};
-typedef IExtractIcon *LPEXTRACTICON;
+typedef IExtractIconA *LPEXTRACTICONA;
+
+#undef INTERFACE
+#define INTERFACE IExtractIconW
+DECLARE_INTERFACE_(IExtractIconW, IUnknown)
+{
+ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ STDMETHOD(GetIconLocation)(THIS_ UINT,LPWSTR,UINT,int*,PUINT) PURE;
+ STDMETHOD(Extract)(THIS_ LPCWSTR,UINT,HICON*,HICON*,UINT) PURE;
+};
+typedef IExtractIconW *LPEXTRACTICONW;
+
+#ifdef UNICODE
+#define IExtractIcon IExtractIconW
+#define LPEXTRACTICON LPEXTRACTICONW
+#else
+#define IExtractIcon IExtractIconA
+#define LPEXTRACTICON LPEXTRACTICONA
+#endif
#undef INTERFACE
#define INTERFACE IShellLinkA
@@ -613,19 +633,6 @@ DECLARE_INTERFACE(IFileViewer)
typedef IFileViewer *LPFILEVIEWER;
#undef INTERFACE
-#define INTERFACE ICommDlgBrowser
-DECLARE_INTERFACE_(ICommDlgBrowser,IUnknown)
-{
- STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
- STDMETHOD_(ULONG,AddRef)(THIS) PURE;
- STDMETHOD_(ULONG,Release)(THIS) PURE;
- STDMETHOD(OnDefaultCommand)(THIS) PURE;
- STDMETHOD(OnStateChange)(THIS_ ULONG) PURE;
- STDMETHOD(IncludeObject)(THIS_ LPCITEMIDLIST) PURE;
-};
-typedef ICommDlgBrowser *LPCOMMDLGBROWSER;
-
-#undef INTERFACE
#define INTERFACE IPersistFolder
DECLARE_INTERFACE_(IPersistFolder,IPersist)
{
@@ -690,6 +697,20 @@ DECLARE_INTERFACE_(IShellView,IOleWindow
STDMETHOD(SelectItem)(THIS_ LPCITEMIDLIST,UINT) PURE;
STDMETHOD(GetItemObject)(THIS_ UINT,REFIID,PVOID*) PURE;
};
+
+#undef INTERFACE
+#define INTERFACE ICommDlgBrowser
+DECLARE_INTERFACE_(ICommDlgBrowser,IUnknown)
+{
+ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ STDMETHOD(OnDefaultCommand)(THIS_ IShellView*) PURE;
+ STDMETHOD(OnStateChange)(THIS_ IShellView*,ULONG) PURE;
+ STDMETHOD(IncludeObject)(THIS_ IShellView*,LPCITEMIDLIST) PURE;
+};
+typedef ICommDlgBrowser *LPCOMMDLGBROWSER;
+
typedef GUID SHELLVIEWID;
typedef struct _SV2CVW2_PARAMS {
DWORD cbSize;
@@ -870,6 +891,51 @@ typedef BROWSEINFOA BROWSEINFO,*PBROWSEI
#define SHGetFolderPathAndSubDir SHGetFolderPathAndSubDirA
#endif
#endif /* UNICODE */
+
+
+#if _WIN32_IE>=_NT5
+
+#pragma pack(push,8)
+
+typedef struct
+{
+ SIZE sizeDragImage;
+ POINT ptOffset;
+ HBITMAP hbmpDragImage;
+ COLORREF crColorKey;
+} SHDRAGIMAGE, *LPSHDRAGIMAGE;
+
+#pragma pack(pop)
+
+#undef INTERFACE
+#define INTERFACE IDragSourceHelper
+
+DECLARE_INTERFACE_(IDragSourceHelper, IUnknown)
+{
+ STDMETHOD (QueryInterface)(THIS_ REFIID riid, void **ppv) PURE;
+ STDMETHOD_(ULONG, AddRef) (THIS) PURE;
+ STDMETHOD_(ULONG, Release) (THIS) PURE;
+ STDMETHOD (InitializeFromBitmap)(THIS_ LPSHDRAGIMAGE pshdi, IDataObject* pDataObject) PURE;
+ STDMETHOD (InitializeFromWindow)(THIS_ HWND hwnd, POINT* ppt, IDataObject* pDataObject) PURE;
+};
+
+#undef INTERFACE
+#define INTERFACE IDropTargetHelper
+
+DECLARE_INTERFACE_(IDropTargetHelper, IUnknown)
+{
+ STDMETHOD (QueryInterface)(THIS_ REFIID riid, void** ppv) PURE;
+ STDMETHOD_(ULONG, AddRef) (THIS) PURE;
+ STDMETHOD_(ULONG, Release) (THIS) PURE;
+ STDMETHOD (DragEnter)(THIS_ HWND hwndTarget, IDataObject* pDataObject, POINT* ppt, DWORD dwEffect) PURE;
+ STDMETHOD (DragLeave)(THIS) PURE;
+ STDMETHOD (DragOver)(THIS_ POINT* ppt, DWORD dwEffect) PURE;
+ STDMETHOD (Drop)(THIS_ IDataObject* pDataObject, POINT* ppt, DWORD dwEffect) PURE;
+ STDMETHOD (Show)(THIS_ BOOL fShow) PURE;
+};
+
+#endif /* _WIN32_IE >= _NT5 */
+
#pragma pack(pop)
#ifdef __cplusplus
-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01