// CommonControls.idl // import "oaidl.idl"; import "ocidl.idl"; cpp_quote("#ifdef MIDL_PASS") typedef DWORD RGBQUAD; typedef IUnknown* HIMAGELIST; cpp_quote("typedef struct _IMAGELIST* HIMAGELIST;") typedef struct { DWORD cbSize; HIMAGELIST himl; int i; HDC hdcDst; int x; int y; int cx; int cy; int xBitmap; // x offest from the upperleft of bitmap int yBitmap; // y offset from the upperleft of bitmap COLORREF rgbBk; COLORREF rgbFg; UINT fStyle; DWORD dwRop; DWORD fState; DWORD Frame; COLORREF crEffect; } IMAGELISTDRAWPARAMS; typedef IMAGELISTDRAWPARAMS* LPIMAGELISTDRAWPARAMS; typedef struct { HBITMAP hbmImage; HBITMAP hbmMask; int Unused1; int Unused2; RECT rcImage; } IMAGEINFO; typedef IMAGEINFO* LPIMAGEINFO; cpp_quote("#endif") // MIDL_PASS cpp_quote("#define ILIF_ALPHA 0x00000001") // flag returned by GetItemFlags, indicating item has alpha [ uuid(46EB5926-582E-4017-9FDF-E8998DAA0950), helpstring("Image List"), local ] interface IImageList : IUnknown { HRESULT Add(HBITMAP hbmImage, HBITMAP hbmMask, int* pi); HRESULT ReplaceIcon(int i, HICON hicon, int* pi); HRESULT SetOverlayImage(int iImage, int iOverlay); HRESULT Replace(int i, HBITMAP hbmImage, HBITMAP hbmMask); HRESULT AddMasked(HBITMAP hbmImage, COLORREF crMask, int* pi); HRESULT Draw(IMAGELISTDRAWPARAMS* pimldp); HRESULT Remove(int i); HRESULT GetIcon(int i, UINT flags, HICON* picon); HRESULT GetImageInfo(int i, IMAGEINFO* pImageInfo); HRESULT Copy(int iDst, IUnknown* punkSrc, int iSrc, UINT uFlags); HRESULT Merge(int i1, IUnknown* punk2, int i2, int dx, int dy, REFIID riid, PVOID* ppv); HRESULT Clone(REFIID riid, PVOID* ppv); HRESULT GetImageRect(int i, RECT* prc); HRESULT GetIconSize(int* cx, int* cy); HRESULT SetIconSize(int cx, int cy); HRESULT GetImageCount(int* pi); HRESULT SetImageCount(UINT uNewCount); HRESULT SetBkColor(COLORREF clrBk, COLORREF* pclr); HRESULT GetBkColor(COLORREF* pclr); HRESULT BeginDrag(int iTrack, int dxHotspot, int dyHotspot); HRESULT EndDrag(); HRESULT DragEnter(HWND hwndLock, int x, int y); HRESULT DragLeave(HWND hwndLock); HRESULT DragMove(int x, int y); HRESULT SetDragCursorImage(IUnknown* punk, int iDrag, int dxHotspot, int dyHotspot); HRESULT DragShowNolock(BOOL fShow); HRESULT GetDragImage(POINT * ppt, POINT * pptHotspot, REFIID riid, PVOID* ppv); HRESULT GetItemFlags(int i, DWORD *dwFlags); HRESULT GetOverlayImage(int iOverlay, int* piIndex); }; [ uuid(BCADA15B-B428-420c-8D28-023590924C9F) ] library CommonControlObjects { [ uuid(7C476BA2-02B1-48f4-8048-B24619DDC058) // CLSID_ImageList ] coclass ImageList { interface IImageList; } };