diff --git a/.gitignore b/.gitignore index 1e9d2167494..305cd7b6422 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 aee348f5414..fafdf8e3e4b 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 00000000000..a162b384ad0 --- /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; + } +}