Owen Rudge : include: Define interface for comctl32 v6 (IImageList).

Alexandre Julliard julliard at winehq.org
Thu Aug 13 10:41:02 CDT 2009


Module: wine
Branch: master
Commit: 2e40be8ab4bcfd49d82af5b809c2ba5775175e4d
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=2e40be8ab4bcfd49d82af5b809c2ba5775175e4d

Author: Owen Rudge <orudge at codeweavers.com>
Date:   Wed Aug 12 21:51:06 2009 +0100

include: Define interface for comctl32 v6 (IImageList).

---

 .gitignore                 |    1 +
 include/Makefile.in        |    1 +
 include/commoncontrols.idl |  212 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 214 insertions(+), 0 deletions(-)

diff --git a/.gitignore b/.gitignore
index 1e9d216..305cd7b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -110,6 +110,7 @@ include/austream.h
 include/bits.h
 include/bits1_5.h
 include/comcat.h
+include/commoncontrols.h
 include/config.h
 include/control.h
 include/ctxtcall.h
diff --git a/include/Makefile.in b/include/Makefile.in
index aee348f..fafdf8e 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -18,6 +18,7 @@ PUBLIC_IDL_H_SRCS = \
 	bits.idl \
 	bits1_5.idl \
 	comcat.idl \
+	commoncontrols.idl \
 	control.idl \
 	ctxtcall.idl \
 	d3d10.idl \
diff --git a/include/commoncontrols.idl b/include/commoncontrols.idl
new file mode 100644
index 0000000..a162b38
--- /dev/null
+++ b/include/commoncontrols.idl
@@ -0,0 +1,212 @@
+/*
+ * Common controls v6 interface definitions
+ *
+ * Copyright 2009 Owen Rudge for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+import "oaidl.idl";
+import "ocidl.idl";
+
+/* Definitions required for widl, but already defined in commctrl.h for C */
+cpp_quote("#if 0")
+typedef DWORD RGBQUAD;
+typedef IUnknown* HIMAGELIST;
+
+typedef struct
+{
+    HBITMAP hbmImage;
+    HBITMAP hbmMask;
+    int     Unused1;
+    int     Unused2;
+    RECT    rcImage;
+} IMAGEINFO;
+
+typedef IMAGEINFO* LPIMAGEINFO;
+
+typedef struct
+{
+    DWORD      cbSize;
+    HIMAGELIST himl;
+    int        i;
+    HDC        hdcDst;
+    int        x;
+    int        y;
+    int        cx;
+    int        cy;
+    int        xBitmap;
+    int        yBitmap;
+    COLORREF   rgbBk;
+    COLORREF   rgbFg;
+    UINT       fStyle;
+    DWORD      dwRop;
+    DWORD      fState;
+    DWORD      Frame;
+    COLORREF   crEffect;
+} IMAGELISTDRAWPARAMS;
+
+typedef IMAGELISTDRAWPARAMS* LPIMAGELISTDRAWPARAMS;
+cpp_quote("#endif")
+
+const UINT ILIF_ALPHA = 1;
+
+[
+    object,
+    uuid(46EB5926-582E-4017-9FDF-E8998DAA0950),
+    helpstring("Image List"),
+    local
+]
+interface IImageList : IUnknown
+{
+    HRESULT Add(
+        [in] HBITMAP hbmImage,
+        [in] HBITMAP hbmMask,
+        [out] int* pi);
+
+    HRESULT ReplaceIcon(
+        [in] int i,
+        [in] HICON hicon,
+        [out] int* pi);
+
+    HRESULT SetOverlayImage(
+        [in] int iImage,
+        [in] int iOverlay);
+
+    HRESULT Replace(
+        [in] int i,
+        [in] HBITMAP hbmImage,
+        [in] HBITMAP hbmMask);
+
+    HRESULT AddMasked(
+        [in] HBITMAP hbmImage,
+        [in] COLORREF crMask,
+        [out] int* pi);
+
+    HRESULT Draw(
+        [in] IMAGELISTDRAWPARAMS* pimldp);
+
+    HRESULT Remove(
+        [in] int i);
+
+    HRESULT GetIcon(
+        [in] int i,
+        [in] UINT flags,
+        [out] HICON* picon);
+
+    HRESULT GetImageInfo(
+        [in] int i,
+        [out] IMAGEINFO* pImageInfo);
+
+    HRESULT Copy(
+        [in] int iDst,
+        [in] IUnknown* punkSrc,
+        [in] int iSrc,
+        [in] UINT uFlags);
+
+    HRESULT Merge(
+        [in] int i1,
+        [in] IUnknown* punk2,
+        [in] int i2,
+        [in] int dx,
+        [in] int dy,
+        [out] REFIID riid,
+        [out] PVOID* ppv);
+
+    HRESULT Clone(
+        [in] REFIID riid,
+        [out] PVOID* ppv);
+
+    HRESULT GetImageRect(
+        [in] int i,
+        [out] RECT* prc);
+
+    HRESULT GetIconSize(
+        [out] int* cx,
+        [out] int* cy);
+
+    HRESULT SetIconSize(
+        [in] int cx,
+        [in] int cy);
+
+    HRESULT GetImageCount(
+        [out] int* pi);
+
+    HRESULT SetImageCount(
+        [in] UINT uNewCount);
+
+    HRESULT SetBkColor(
+        [in] COLORREF clrBk,
+        [out] COLORREF* pclr);
+
+    HRESULT GetBkColor(
+        [out] COLORREF* pclr);
+
+    HRESULT BeginDrag(
+        [in] int iTrack,
+        [in] int dxHotspot,
+        [in] int dyHotspot);
+
+    HRESULT EndDrag();
+
+    HRESULT DragEnter(
+        [in] HWND hwndLock,
+        [in] int x,
+        [in] int y);
+
+    HRESULT DragLeave(
+        [in] HWND hwndLock);
+
+    HRESULT DragMove(
+        [in] int x,
+        [in] int y);
+
+    HRESULT SetDragCursorImage(
+        [in] IUnknown* punk,
+        [in] int iDrag,
+        [in] int dxHotspot,
+        [in] int dyHotspot);
+
+    HRESULT DragShowNolock(
+        [in] BOOL fShow);
+
+    HRESULT GetDragImage(
+        [out] POINT * ppt,
+        [out] POINT * pptHotspot,
+        [out] REFIID riid,
+        [out] PVOID* ppv);
+
+    HRESULT GetItemFlags(
+        [in] int i,
+        [out] DWORD *dwFlags);
+
+    HRESULT GetOverlayImage(
+        [in] int iOverlay,
+        [out] int* piIndex);
+}
+
+[
+    uuid(BCADA15B-B428-420c-8D28-023590924C9F)
+]
+library CommonControlObjects
+{
+    [
+        uuid(7C476BA2-02B1-48f4-8048-B24619DDC058)
+    ]
+    coclass ImageList
+    {
+        interface IImageList;
+    }
+}




More information about the wine-cvs mailing list