|  | /* | 
|  | * 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; | 
|  | } | 
|  | } |