| /* | 
 |  * 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") | 
 |  | 
 | cpp_quote("HRESULT WINAPI ImageList_CoCreateInstance(REFCLSID,const IUnknown *, REFIID,void **);") | 
 |  | 
 | 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; | 
 |     } | 
 | } |