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