| /* |
| * 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; |
| |
| [ |
| uuid(46eb5926-582e-4017-9fdf-e8998daa0950), |
| 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(192b9d83-50fc-457b-90a0-2b82a8b5dae1), |
| local |
| ] |
| interface IImageList2 : IImageList |
| { |
| typedef struct tagIMAGELISTSTATS |
| { |
| DWORD cbSize; |
| INT cAlloc; |
| INT cUsed; |
| INT cStandby; |
| } IMAGELISTSTATS; |
| |
| HRESULT Resize(INT x_size, INT y_size); |
| HRESULT GetOriginalSize([in] INT image, [in] DWORD flags, [out] INT *cx, [out] INT *cy); |
| HRESULT SetOriginalSize([in] INT image, [in] INT cx, [in] INT cy); |
| HRESULT SetCallback([in, unique] IUnknown *callback); |
| HRESULT GetCallback([in] REFIID riid, [out, iid_is(riid)] void** ppv); |
| HRESULT ForceImagePresent([in] INT image, DWORD flags); |
| HRESULT DiscardImages([in] INT first_image, [in] INT last_image, [in] DWORD flags); |
| HRESULT PreloadImages([in] IMAGELISTDRAWPARAMS *params); |
| HRESULT GetStatistics([in, out] IMAGELISTSTATS *stats); |
| HRESULT Initialize([in] INT cx, [in] INT cy, [in] UINT flags, [in] INT initial, [in] INT grow); |
| HRESULT Replace2([in] INT i, [in] HBITMAP image, [in, unique] HBITMAP mask, [in, unique] IUnknown *unk, [in] DWORD flags); |
| HRESULT ReplaceFromImageList([in] INT i, [in] IImageList *imagelist, [in] INT src, [in, unique] IUnknown *unk, [in] DWORD flags); |
| } |
| |
| [ |
| uuid(bcada15B-b428-420c-8d28-023590924c9f) |
| ] |
| library CommonControlObjects |
| { |
| [ |
| uuid(7c476ba2-02b1-48f4-8048-b24619ddc058) |
| ] |
| coclass ImageList |
| { |
| interface IImageList; |
| interface IImageList2; |
| } |
| } |