mirror of https://github.com/UMSKT/xpmgr.git
192 lines
7.8 KiB
Plaintext
192 lines
7.8 KiB
Plaintext
// CommonControls.idl
|
|
//
|
|
cpp_quote("#if (_WIN32_IE >= 0x0501)")
|
|
|
|
import "oaidl.idl";
|
|
import "ocidl.idl";
|
|
|
|
cpp_quote("#ifndef WINCOMMCTRLAPI")
|
|
cpp_quote("#if !defined(_COMCTL32_) && defined(_WIN32)")
|
|
cpp_quote("#define WINCOMMCTRLAPI DECLSPEC_IMPORT")
|
|
cpp_quote("#else")
|
|
cpp_quote("#define WINCOMMCTRLAPI")
|
|
cpp_quote("#endif")
|
|
cpp_quote("#endif // WINCOMMCTRLAPI")
|
|
|
|
cpp_quote("#ifdef MIDL_PASS")
|
|
typedef DWORD RGBQUAD;
|
|
|
|
typedef IUnknown* HIMAGELIST;
|
|
cpp_quote("typedef struct _IMAGELIST* HIMAGELIST;")
|
|
|
|
typedef struct _IMAGELISTDRAWPARAMS
|
|
{
|
|
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 tagIMAGEINFO
|
|
{
|
|
HBITMAP hbmImage;
|
|
HBITMAP hbmMask;
|
|
int Unused1;
|
|
int Unused2;
|
|
RECT rcImage;
|
|
} IMAGEINFO;
|
|
|
|
typedef IMAGEINFO* LPIMAGEINFO;
|
|
cpp_quote("#endif") // MIDL_PASS
|
|
|
|
cpp_quote("#if _WIN32_WINNT >= 0x0600")
|
|
|
|
cpp_quote("WINCOMMCTRLAPI HRESULT WINAPI ImageList_CoCreateInstance(")
|
|
cpp_quote(" __in REFCLSID rclsid,")
|
|
cpp_quote(" __in_opt const IUnknown *punkOuter,")
|
|
cpp_quote(" __in REFIID riid,")
|
|
cpp_quote(" __deref_out void **ppv);")
|
|
cpp_quote("#endif")
|
|
|
|
// flags returned by GetItemFlags
|
|
cpp_quote("#define ILIF_ALPHA 0x00000001") // item has alpha
|
|
cpp_quote("#define ILIF_LOWQUALITY 0x00000002") // image is low quality (was generated by a StretchBlt)
|
|
|
|
// return values (if SUCCEEDED()) for IImageList::Draw
|
|
cpp_quote("#define ILDRF_IMAGELOWQUALITY 0x00000001") // image is low quality
|
|
cpp_quote("#define ILDRF_OVERLAYLOWQUALITY 0x00000010") // overlay is low quality
|
|
|
|
[
|
|
uuid(46EB5926-582E-4017-9FDF-E8998DAA0950),
|
|
local
|
|
]
|
|
interface IImageList : IUnknown
|
|
{
|
|
HRESULT Add([in, annotation("__in")] HBITMAP hbmImage, [in, unique, annotation("__in_opt")] HBITMAP hbmMask, [out, annotation("__out")] int* pi);
|
|
HRESULT ReplaceIcon(int i, [in, annotation("__in")] HICON hicon, [out, annotation("__out")] int* pi);
|
|
HRESULT SetOverlayImage(int iImage, int iOverlay);
|
|
HRESULT Replace(int i, [in, annotation("__in")] HBITMAP hbmImage, [in, unique, annotation("__in_opt")] HBITMAP hbmMask);
|
|
HRESULT AddMasked([in, annotation("__in")] HBITMAP hbmImage, COLORREF crMask, [out, annotation("__out")] int* pi);
|
|
HRESULT Draw([in, annotation("__in")] IMAGELISTDRAWPARAMS* pimldp);
|
|
HRESULT Remove(int i);
|
|
HRESULT GetIcon(int i, UINT flags, [out, annotation("__out")] HICON* picon);
|
|
HRESULT GetImageInfo(int i, [out, annotation("__out")] IMAGEINFO* pImageInfo);
|
|
HRESULT Copy(int iDst, [in, annotation("__in")] IUnknown* punkSrc, int iSrc, UINT uFlags);
|
|
HRESULT Merge(int i1, [in, annotation("__in")] IUnknown* punk2, int i2, int dx, int dy, REFIID riid, [out, iid_is(riid), annotation("__deref_out")] void** ppv);
|
|
HRESULT Clone(REFIID riid, [out, iid_is(riid), annotation("__deref_out")] void** ppv);
|
|
HRESULT GetImageRect(int i, [out, annotation("__out")] RECT* prc);
|
|
HRESULT GetIconSize([out, annotation("__out")] int* cx, [out, annotation("__out")] int* cy);
|
|
HRESULT SetIconSize(int cx, int cy);
|
|
HRESULT GetImageCount([out, annotation("__out")] int* pi);
|
|
HRESULT SetImageCount(UINT uNewCount);
|
|
HRESULT SetBkColor(COLORREF clrBk, [out, annotation("__out")] COLORREF* pclr);
|
|
HRESULT GetBkColor([out, annotation("__out")] COLORREF* pclr);
|
|
HRESULT BeginDrag(int iTrack, int dxHotspot, int dyHotspot);
|
|
HRESULT EndDrag();
|
|
HRESULT DragEnter([in, unique, annotation("__in_opt")] HWND hwndLock, int x, int y);
|
|
HRESULT DragLeave([in, unique, annotation("__in_opt")] HWND hwndLock);
|
|
HRESULT DragMove(int x, int y);
|
|
HRESULT SetDragCursorImage([in, annotation("__in")] IUnknown* punk, int iDrag, int dxHotspot, int dyHotspot);
|
|
HRESULT DragShowNolock(BOOL fShow);
|
|
HRESULT GetDragImage([out, annotation("__out_opt")] POINT * ppt, [out, annotation("__out_opt")] POINT * pptHotspot, REFIID riid, [out, iid_is(riid), annotation("__deref_out")] void** ppv);
|
|
HRESULT GetItemFlags(int i, [out, annotation("__out")] DWORD *dwFlags);
|
|
HRESULT GetOverlayImage(int iOverlay, [out, annotation("__out")] int* piIndex);
|
|
};
|
|
|
|
|
|
cpp_quote("#define ILR_DEFAULT 0x0000")
|
|
|
|
cpp_quote("#define ILR_HORIZONTAL_LEFT 0x0000")
|
|
cpp_quote("#define ILR_HORIZONTAL_CENTER 0x0001")
|
|
cpp_quote("#define ILR_HORIZONTAL_RIGHT 0x0002")
|
|
|
|
cpp_quote("#define ILR_VERTICAL_TOP 0x0000")
|
|
cpp_quote("#define ILR_VERTICAL_CENTER 0x0010")
|
|
cpp_quote("#define ILR_VERTICAL_BOTTOM 0x0020")
|
|
|
|
cpp_quote("#define ILR_SCALE_CLIP 0x0000")
|
|
cpp_quote("#define ILR_SCALE_ASPECTRATIO 0x0100")
|
|
|
|
|
|
// New for (_WIN32_IE >= 0x0605)
|
|
[
|
|
uuid(192b9d83-50fc-457b-90a0-2b82a8b5dae1),
|
|
local
|
|
]
|
|
interface IImageList2 : IImageList
|
|
{
|
|
|
|
// Flags for GetOriginalSize
|
|
cpp_quote("#define ILGOS_ALWAYS 0x00000000") // always get the original size (can be slow)
|
|
cpp_quote("#define ILGOS_FROMSTANDBY 0x00000001") // only if present or on standby
|
|
|
|
// Flags for ForceImagePresent
|
|
cpp_quote("#define ILFIP_ALWAYS 0x00000000") // always get the image (can be slow)
|
|
cpp_quote("#define ILFIP_FROMSTANDBY 0x00000001") // only if on standby
|
|
|
|
// Flags for DiscardImages
|
|
//
|
|
// ILDI_STANDBY and ILDI_PURGE are mutually exclusive.
|
|
// ILDI_RESETACCESS can be combined with either.
|
|
|
|
cpp_quote("#define ILDI_PURGE 0x00000001") // discard and purge
|
|
cpp_quote("#define ILDI_STANDBY 0x00000002") // discard to standby list
|
|
|
|
cpp_quote("#define ILDI_RESETACCESS 0x00000004") // reset "has been accessed" flag
|
|
cpp_quote("#define ILDI_QUERYACCESS 0x00000008") // ask whether access flag is set (but do not reset)
|
|
|
|
typedef struct tagIMAGELISTSTATS
|
|
{
|
|
DWORD cbSize;
|
|
int cAlloc; // number of images allocated
|
|
int cUsed; // number of images in use
|
|
int cStandby; // number of standby images
|
|
} IMAGELISTSTATS;
|
|
|
|
HRESULT Resize(int cxNewIconSize, int cyNewIconSize);
|
|
HRESULT GetOriginalSize([in] int iImage, [in] DWORD dwFlags, [out, annotation("__out")] int *pcx, [out, annotation("__out")] int *pcy);
|
|
HRESULT SetOriginalSize([in] int iImage, [in] int cx, [in] int cy);
|
|
HRESULT SetCallback([in, unique, annotation("__in_opt")] IUnknown *punk);
|
|
HRESULT GetCallback([in] REFIID riid, [out, iid_is(riid), annotation("__deref_out")] void** ppv);
|
|
HRESULT ForceImagePresent([in] int iImage, DWORD dwFlags);
|
|
HRESULT DiscardImages([in] int iFirstImage, [in] int iLastImage, [in] DWORD dwFlags);
|
|
HRESULT PreloadImages([in, annotation("__in")] IMAGELISTDRAWPARAMS* pimldp);
|
|
HRESULT GetStatistics([in, out, annotation("__inout")] IMAGELISTSTATS *pils);
|
|
HRESULT Initialize([in] int cx, [in] int cy, [in] UINT flags, [in] int cInitial, [in] int cGrow);
|
|
HRESULT Replace2([in] int i, [in, annotation("__in")] HBITMAP hbmImage, [in, unique, annotation("__in_opt")] HBITMAP hbmMask, [in, unique, annotation("__in_opt")] IUnknown *punk, [in] DWORD dwFlags);
|
|
HRESULT ReplaceFromImageList([in] int i, [in, annotation("__in")] IImageList *pil, [in] int iSrc, [in, unique, annotation("__in_opt")] IUnknown *punk, [in] DWORD dwFlags);
|
|
};
|
|
|
|
[
|
|
uuid(BCADA15B-B428-420c-8D28-023590924C9F)
|
|
]
|
|
library CommonControlObjects
|
|
{
|
|
|
|
[
|
|
uuid(7C476BA2-02B1-48f4-8048-B24619DDC058) // CLSID_ImageList
|
|
]
|
|
coclass ImageList
|
|
{
|
|
interface IImageList;
|
|
interface IImageList2;
|
|
}
|
|
};
|
|
|
|
cpp_quote("#endif // if (_WIN32_IE >= 0x0501)")
|
|
|