commoncontrols.h 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146
  1. /*** Autogenerated by WIDL 7.7 from include/commoncontrols.idl - Do not edit ***/
  2. #ifdef _WIN32
  3. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  4. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  5. #endif
  6. #include <rpc.h>
  7. #include <rpcndr.h>
  8. #endif
  9. #ifndef COM_NO_WINDOWS_H
  10. #include <windows.h>
  11. #include <ole2.h>
  12. #endif
  13. #ifndef __commoncontrols_h__
  14. #define __commoncontrols_h__
  15. /* Forward declarations */
  16. #ifndef __IImageList_FWD_DEFINED__
  17. #define __IImageList_FWD_DEFINED__
  18. typedef interface IImageList IImageList;
  19. #ifdef __cplusplus
  20. interface IImageList;
  21. #endif /* __cplusplus */
  22. #endif
  23. #ifndef __IImageList2_FWD_DEFINED__
  24. #define __IImageList2_FWD_DEFINED__
  25. typedef interface IImageList2 IImageList2;
  26. #ifdef __cplusplus
  27. interface IImageList2;
  28. #endif /* __cplusplus */
  29. #endif
  30. #ifndef __ImageList_FWD_DEFINED__
  31. #define __ImageList_FWD_DEFINED__
  32. #ifdef __cplusplus
  33. typedef class ImageList ImageList;
  34. #else
  35. typedef struct ImageList ImageList;
  36. #endif /* defined __cplusplus */
  37. #endif /* defined __ImageList_FWD_DEFINED__ */
  38. /* Headers for imported files */
  39. #include <oaidl.h>
  40. #include <ocidl.h>
  41. #ifdef __cplusplus
  42. extern "C" {
  43. #endif
  44. /**
  45. * This file is part of the mingw-w64 runtime package.
  46. * No warranty is given; refer to the file DISCLAIMER within this package.
  47. */
  48. #include <winapifamily.h>
  49. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  50. #ifndef WINCOMMCTRLAPI
  51. #ifndef _COMCTL32_
  52. #define WINCOMMCTRLAPI DECLSPEC_IMPORT
  53. #else
  54. #define WINCOMMCTRLAPI
  55. #endif
  56. #endif
  57. #ifdef __WIDL__
  58. typedef DWORD RGBQUAD;
  59. typedef IUnknown *HIMAGELIST;
  60. typedef struct _IMAGELIST *HIMAGELIST;
  61. typedef struct _IMAGELISTDRAWPARAMS {
  62. DWORD cbSize;
  63. HIMAGELIST himl;
  64. int i;
  65. HDC hdcDst;
  66. int x;
  67. int y;
  68. int cx;
  69. int cy;
  70. int xBitmap;
  71. int yBitmap;
  72. COLORREF rgbBk;
  73. COLORREF rgbFg;
  74. UINT fStyle;
  75. DWORD dwRop;
  76. DWORD fState;
  77. DWORD Frame;
  78. COLORREF crEffect;
  79. } IMAGELISTDRAWPARAMS;
  80. typedef IMAGELISTDRAWPARAMS *LPIMAGELISTDRAWPARAMS;
  81. typedef struct tagIMAGEINFO {
  82. HBITMAP hbmImage;
  83. HBITMAP hbmMask;
  84. int Unused1;
  85. int Unused2;
  86. RECT rcImage;
  87. } IMAGEINFO;
  88. typedef IMAGEINFO *LPIMAGEINFO;
  89. #endif
  90. #define ILIF_ALPHA 0x1
  91. #define ILIF_LOWQUALITY 0x2
  92. #define ILDRF_IMAGELOWQUALITY 0x1
  93. #define ILDRF_OVERLAYLOWQUALITY 0x10
  94. #define ILR_DEFAULT 0x0
  95. #define ILR_HORIZONTAL_LEFT 0x0
  96. #define ILR_HORIZONTAL_CENTER 0x1
  97. #define ILR_HORIZONTAL_RIGHT 0x2
  98. #define ILR_VERTICAL_TOP 0x0
  99. #define ILR_VERTICAL_CENTER 0x10
  100. #define ILR_VERTICAL_BOTTOM 0x20
  101. #define ILR_SCALE_CLIP 0x0
  102. #define ILR_SCALE_ASPECTRATIO 0x100
  103. #define ILGOS_ALWAYS 0x0
  104. #define ILGOS_FROMSTANDBY 0x1
  105. #define ILFIP_ALWAYS 0x0
  106. #define ILFIP_FROMSTANDBY 0x1
  107. #define ILDI_PURGE 0x1
  108. #define ILDI_STANDBY 0x2
  109. #define ILDI_RESETACCESS 0x4
  110. #define ILDI_QUERYACCESS 0x8
  111. #if NTDDI_VERSION >= 0x06000000
  112. WINCOMMCTRLAPI HRESULT WINAPI ImageList_CoCreateInstance (REFCLSID rclsid, const IUnknown *punkOuter, REFIID riid, void **ppv);
  113. #endif
  114. typedef struct tagIMAGELISTSTATS {
  115. DWORD cbSize;
  116. int cAlloc;
  117. int cUsed;
  118. int cStandby;
  119. } IMAGELISTSTATS;
  120. /*****************************************************************************
  121. * IImageList interface
  122. */
  123. #ifndef __IImageList_INTERFACE_DEFINED__
  124. #define __IImageList_INTERFACE_DEFINED__
  125. DEFINE_GUID(IID_IImageList, 0x46eb5926, 0x582e, 0x4017, 0x9f,0xdf, 0xe8,0x99,0x8d,0xaa,0x09,0x50);
  126. #if defined(__cplusplus) && !defined(CINTERFACE)
  127. MIDL_INTERFACE("46eb5926-582e-4017-9fdf-e8998daa0950")
  128. IImageList : public IUnknown
  129. {
  130. virtual HRESULT STDMETHODCALLTYPE Add(
  131. HBITMAP hbmImage,
  132. HBITMAP hbmMask,
  133. int *pi) = 0;
  134. virtual HRESULT STDMETHODCALLTYPE ReplaceIcon(
  135. int i,
  136. HICON hicon,
  137. int *pi) = 0;
  138. virtual HRESULT STDMETHODCALLTYPE SetOverlayImage(
  139. int iImage,
  140. int iOverlay) = 0;
  141. virtual HRESULT STDMETHODCALLTYPE Replace(
  142. int i,
  143. HBITMAP hbmImage,
  144. HBITMAP hbmMask) = 0;
  145. virtual HRESULT STDMETHODCALLTYPE AddMasked(
  146. HBITMAP hbmImage,
  147. COLORREF crMask,
  148. int *pi) = 0;
  149. virtual HRESULT STDMETHODCALLTYPE Draw(
  150. IMAGELISTDRAWPARAMS *pimldp) = 0;
  151. virtual HRESULT STDMETHODCALLTYPE Remove(
  152. int i) = 0;
  153. virtual HRESULT STDMETHODCALLTYPE GetIcon(
  154. int i,
  155. UINT flags,
  156. HICON *picon) = 0;
  157. virtual HRESULT STDMETHODCALLTYPE GetImageInfo(
  158. int i,
  159. IMAGEINFO *pImageInfo) = 0;
  160. virtual HRESULT STDMETHODCALLTYPE Copy(
  161. int iDst,
  162. IUnknown *punkSrc,
  163. int iSrc,
  164. UINT uFlags) = 0;
  165. virtual HRESULT STDMETHODCALLTYPE Merge(
  166. int i1,
  167. IUnknown *punk2,
  168. int i2,
  169. int dx,
  170. int dy,
  171. REFIID riid,
  172. void **ppv) = 0;
  173. virtual HRESULT STDMETHODCALLTYPE Clone(
  174. REFIID riid,
  175. void **ppv) = 0;
  176. virtual HRESULT STDMETHODCALLTYPE GetImageRect(
  177. int i,
  178. RECT *prc) = 0;
  179. virtual HRESULT STDMETHODCALLTYPE GetIconSize(
  180. int *cx,
  181. int *cy) = 0;
  182. virtual HRESULT STDMETHODCALLTYPE SetIconSize(
  183. int cx,
  184. int cy) = 0;
  185. virtual HRESULT STDMETHODCALLTYPE GetImageCount(
  186. int *pi) = 0;
  187. virtual HRESULT STDMETHODCALLTYPE SetImageCount(
  188. UINT uNewCount) = 0;
  189. virtual HRESULT STDMETHODCALLTYPE SetBkColor(
  190. COLORREF clrBk,
  191. COLORREF *pclr) = 0;
  192. virtual HRESULT STDMETHODCALLTYPE GetBkColor(
  193. COLORREF *pclr) = 0;
  194. virtual HRESULT STDMETHODCALLTYPE BeginDrag(
  195. int iTrack,
  196. int dxHotspot,
  197. int dyHotspot) = 0;
  198. virtual HRESULT STDMETHODCALLTYPE EndDrag(
  199. ) = 0;
  200. virtual HRESULT STDMETHODCALLTYPE DragEnter(
  201. HWND hwndLock,
  202. int x,
  203. int y) = 0;
  204. virtual HRESULT STDMETHODCALLTYPE DragLeave(
  205. HWND hwndLock) = 0;
  206. virtual HRESULT STDMETHODCALLTYPE DragMove(
  207. int x,
  208. int y) = 0;
  209. virtual HRESULT STDMETHODCALLTYPE SetDragCursorImage(
  210. IUnknown *punk,
  211. int iDrag,
  212. int dxHotspot,
  213. int dyHotspot) = 0;
  214. virtual HRESULT STDMETHODCALLTYPE DragShowNolock(
  215. WINBOOL fShow) = 0;
  216. virtual HRESULT STDMETHODCALLTYPE GetDragImage(
  217. POINT *ppt,
  218. POINT *pptHotspot,
  219. REFIID riid,
  220. void **ppv) = 0;
  221. virtual HRESULT STDMETHODCALLTYPE GetItemFlags(
  222. int i,
  223. DWORD *dwFlags) = 0;
  224. virtual HRESULT STDMETHODCALLTYPE GetOverlayImage(
  225. int iOverlay,
  226. int *piIndex) = 0;
  227. };
  228. #ifdef __CRT_UUID_DECL
  229. __CRT_UUID_DECL(IImageList, 0x46eb5926, 0x582e, 0x4017, 0x9f,0xdf, 0xe8,0x99,0x8d,0xaa,0x09,0x50)
  230. #endif
  231. #else
  232. typedef struct IImageListVtbl {
  233. BEGIN_INTERFACE
  234. /*** IUnknown methods ***/
  235. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  236. IImageList *This,
  237. REFIID riid,
  238. void **ppvObject);
  239. ULONG (STDMETHODCALLTYPE *AddRef)(
  240. IImageList *This);
  241. ULONG (STDMETHODCALLTYPE *Release)(
  242. IImageList *This);
  243. /*** IImageList methods ***/
  244. HRESULT (STDMETHODCALLTYPE *Add)(
  245. IImageList *This,
  246. HBITMAP hbmImage,
  247. HBITMAP hbmMask,
  248. int *pi);
  249. HRESULT (STDMETHODCALLTYPE *ReplaceIcon)(
  250. IImageList *This,
  251. int i,
  252. HICON hicon,
  253. int *pi);
  254. HRESULT (STDMETHODCALLTYPE *SetOverlayImage)(
  255. IImageList *This,
  256. int iImage,
  257. int iOverlay);
  258. HRESULT (STDMETHODCALLTYPE *Replace)(
  259. IImageList *This,
  260. int i,
  261. HBITMAP hbmImage,
  262. HBITMAP hbmMask);
  263. HRESULT (STDMETHODCALLTYPE *AddMasked)(
  264. IImageList *This,
  265. HBITMAP hbmImage,
  266. COLORREF crMask,
  267. int *pi);
  268. HRESULT (STDMETHODCALLTYPE *Draw)(
  269. IImageList *This,
  270. IMAGELISTDRAWPARAMS *pimldp);
  271. HRESULT (STDMETHODCALLTYPE *Remove)(
  272. IImageList *This,
  273. int i);
  274. HRESULT (STDMETHODCALLTYPE *GetIcon)(
  275. IImageList *This,
  276. int i,
  277. UINT flags,
  278. HICON *picon);
  279. HRESULT (STDMETHODCALLTYPE *GetImageInfo)(
  280. IImageList *This,
  281. int i,
  282. IMAGEINFO *pImageInfo);
  283. HRESULT (STDMETHODCALLTYPE *Copy)(
  284. IImageList *This,
  285. int iDst,
  286. IUnknown *punkSrc,
  287. int iSrc,
  288. UINT uFlags);
  289. HRESULT (STDMETHODCALLTYPE *Merge)(
  290. IImageList *This,
  291. int i1,
  292. IUnknown *punk2,
  293. int i2,
  294. int dx,
  295. int dy,
  296. REFIID riid,
  297. void **ppv);
  298. HRESULT (STDMETHODCALLTYPE *Clone)(
  299. IImageList *This,
  300. REFIID riid,
  301. void **ppv);
  302. HRESULT (STDMETHODCALLTYPE *GetImageRect)(
  303. IImageList *This,
  304. int i,
  305. RECT *prc);
  306. HRESULT (STDMETHODCALLTYPE *GetIconSize)(
  307. IImageList *This,
  308. int *cx,
  309. int *cy);
  310. HRESULT (STDMETHODCALLTYPE *SetIconSize)(
  311. IImageList *This,
  312. int cx,
  313. int cy);
  314. HRESULT (STDMETHODCALLTYPE *GetImageCount)(
  315. IImageList *This,
  316. int *pi);
  317. HRESULT (STDMETHODCALLTYPE *SetImageCount)(
  318. IImageList *This,
  319. UINT uNewCount);
  320. HRESULT (STDMETHODCALLTYPE *SetBkColor)(
  321. IImageList *This,
  322. COLORREF clrBk,
  323. COLORREF *pclr);
  324. HRESULT (STDMETHODCALLTYPE *GetBkColor)(
  325. IImageList *This,
  326. COLORREF *pclr);
  327. HRESULT (STDMETHODCALLTYPE *BeginDrag)(
  328. IImageList *This,
  329. int iTrack,
  330. int dxHotspot,
  331. int dyHotspot);
  332. HRESULT (STDMETHODCALLTYPE *EndDrag)(
  333. IImageList *This);
  334. HRESULT (STDMETHODCALLTYPE *DragEnter)(
  335. IImageList *This,
  336. HWND hwndLock,
  337. int x,
  338. int y);
  339. HRESULT (STDMETHODCALLTYPE *DragLeave)(
  340. IImageList *This,
  341. HWND hwndLock);
  342. HRESULT (STDMETHODCALLTYPE *DragMove)(
  343. IImageList *This,
  344. int x,
  345. int y);
  346. HRESULT (STDMETHODCALLTYPE *SetDragCursorImage)(
  347. IImageList *This,
  348. IUnknown *punk,
  349. int iDrag,
  350. int dxHotspot,
  351. int dyHotspot);
  352. HRESULT (STDMETHODCALLTYPE *DragShowNolock)(
  353. IImageList *This,
  354. WINBOOL fShow);
  355. HRESULT (STDMETHODCALLTYPE *GetDragImage)(
  356. IImageList *This,
  357. POINT *ppt,
  358. POINT *pptHotspot,
  359. REFIID riid,
  360. void **ppv);
  361. HRESULT (STDMETHODCALLTYPE *GetItemFlags)(
  362. IImageList *This,
  363. int i,
  364. DWORD *dwFlags);
  365. HRESULT (STDMETHODCALLTYPE *GetOverlayImage)(
  366. IImageList *This,
  367. int iOverlay,
  368. int *piIndex);
  369. END_INTERFACE
  370. } IImageListVtbl;
  371. interface IImageList {
  372. CONST_VTBL IImageListVtbl* lpVtbl;
  373. };
  374. #ifdef COBJMACROS
  375. #ifndef WIDL_C_INLINE_WRAPPERS
  376. /*** IUnknown methods ***/
  377. #define IImageList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  378. #define IImageList_AddRef(This) (This)->lpVtbl->AddRef(This)
  379. #define IImageList_Release(This) (This)->lpVtbl->Release(This)
  380. /*** IImageList methods ***/
  381. #define IImageList_Add(This,hbmImage,hbmMask,pi) (This)->lpVtbl->Add(This,hbmImage,hbmMask,pi)
  382. #define IImageList_ReplaceIcon(This,i,hicon,pi) (This)->lpVtbl->ReplaceIcon(This,i,hicon,pi)
  383. #define IImageList_SetOverlayImage(This,iImage,iOverlay) (This)->lpVtbl->SetOverlayImage(This,iImage,iOverlay)
  384. #define IImageList_Replace(This,i,hbmImage,hbmMask) (This)->lpVtbl->Replace(This,i,hbmImage,hbmMask)
  385. #define IImageList_AddMasked(This,hbmImage,crMask,pi) (This)->lpVtbl->AddMasked(This,hbmImage,crMask,pi)
  386. #define IImageList_Draw(This,pimldp) (This)->lpVtbl->Draw(This,pimldp)
  387. #define IImageList_Remove(This,i) (This)->lpVtbl->Remove(This,i)
  388. #define IImageList_GetIcon(This,i,flags,picon) (This)->lpVtbl->GetIcon(This,i,flags,picon)
  389. #define IImageList_GetImageInfo(This,i,pImageInfo) (This)->lpVtbl->GetImageInfo(This,i,pImageInfo)
  390. #define IImageList_Copy(This,iDst,punkSrc,iSrc,uFlags) (This)->lpVtbl->Copy(This,iDst,punkSrc,iSrc,uFlags)
  391. #define IImageList_Merge(This,i1,punk2,i2,dx,dy,riid,ppv) (This)->lpVtbl->Merge(This,i1,punk2,i2,dx,dy,riid,ppv)
  392. #define IImageList_Clone(This,riid,ppv) (This)->lpVtbl->Clone(This,riid,ppv)
  393. #define IImageList_GetImageRect(This,i,prc) (This)->lpVtbl->GetImageRect(This,i,prc)
  394. #define IImageList_GetIconSize(This,cx,cy) (This)->lpVtbl->GetIconSize(This,cx,cy)
  395. #define IImageList_SetIconSize(This,cx,cy) (This)->lpVtbl->SetIconSize(This,cx,cy)
  396. #define IImageList_GetImageCount(This,pi) (This)->lpVtbl->GetImageCount(This,pi)
  397. #define IImageList_SetImageCount(This,uNewCount) (This)->lpVtbl->SetImageCount(This,uNewCount)
  398. #define IImageList_SetBkColor(This,clrBk,pclr) (This)->lpVtbl->SetBkColor(This,clrBk,pclr)
  399. #define IImageList_GetBkColor(This,pclr) (This)->lpVtbl->GetBkColor(This,pclr)
  400. #define IImageList_BeginDrag(This,iTrack,dxHotspot,dyHotspot) (This)->lpVtbl->BeginDrag(This,iTrack,dxHotspot,dyHotspot)
  401. #define IImageList_EndDrag(This) (This)->lpVtbl->EndDrag(This)
  402. #define IImageList_DragEnter(This,hwndLock,x,y) (This)->lpVtbl->DragEnter(This,hwndLock,x,y)
  403. #define IImageList_DragLeave(This,hwndLock) (This)->lpVtbl->DragLeave(This,hwndLock)
  404. #define IImageList_DragMove(This,x,y) (This)->lpVtbl->DragMove(This,x,y)
  405. #define IImageList_SetDragCursorImage(This,punk,iDrag,dxHotspot,dyHotspot) (This)->lpVtbl->SetDragCursorImage(This,punk,iDrag,dxHotspot,dyHotspot)
  406. #define IImageList_DragShowNolock(This,fShow) (This)->lpVtbl->DragShowNolock(This,fShow)
  407. #define IImageList_GetDragImage(This,ppt,pptHotspot,riid,ppv) (This)->lpVtbl->GetDragImage(This,ppt,pptHotspot,riid,ppv)
  408. #define IImageList_GetItemFlags(This,i,dwFlags) (This)->lpVtbl->GetItemFlags(This,i,dwFlags)
  409. #define IImageList_GetOverlayImage(This,iOverlay,piIndex) (This)->lpVtbl->GetOverlayImage(This,iOverlay,piIndex)
  410. #else
  411. /*** IUnknown methods ***/
  412. static FORCEINLINE HRESULT IImageList_QueryInterface(IImageList* This,REFIID riid,void **ppvObject) {
  413. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  414. }
  415. static FORCEINLINE ULONG IImageList_AddRef(IImageList* This) {
  416. return This->lpVtbl->AddRef(This);
  417. }
  418. static FORCEINLINE ULONG IImageList_Release(IImageList* This) {
  419. return This->lpVtbl->Release(This);
  420. }
  421. /*** IImageList methods ***/
  422. static FORCEINLINE HRESULT IImageList_Add(IImageList* This,HBITMAP hbmImage,HBITMAP hbmMask,int *pi) {
  423. return This->lpVtbl->Add(This,hbmImage,hbmMask,pi);
  424. }
  425. static FORCEINLINE HRESULT IImageList_ReplaceIcon(IImageList* This,int i,HICON hicon,int *pi) {
  426. return This->lpVtbl->ReplaceIcon(This,i,hicon,pi);
  427. }
  428. static FORCEINLINE HRESULT IImageList_SetOverlayImage(IImageList* This,int iImage,int iOverlay) {
  429. return This->lpVtbl->SetOverlayImage(This,iImage,iOverlay);
  430. }
  431. static FORCEINLINE HRESULT IImageList_Replace(IImageList* This,int i,HBITMAP hbmImage,HBITMAP hbmMask) {
  432. return This->lpVtbl->Replace(This,i,hbmImage,hbmMask);
  433. }
  434. static FORCEINLINE HRESULT IImageList_AddMasked(IImageList* This,HBITMAP hbmImage,COLORREF crMask,int *pi) {
  435. return This->lpVtbl->AddMasked(This,hbmImage,crMask,pi);
  436. }
  437. static FORCEINLINE HRESULT IImageList_Draw(IImageList* This,IMAGELISTDRAWPARAMS *pimldp) {
  438. return This->lpVtbl->Draw(This,pimldp);
  439. }
  440. static FORCEINLINE HRESULT IImageList_Remove(IImageList* This,int i) {
  441. return This->lpVtbl->Remove(This,i);
  442. }
  443. static FORCEINLINE HRESULT IImageList_GetIcon(IImageList* This,int i,UINT flags,HICON *picon) {
  444. return This->lpVtbl->GetIcon(This,i,flags,picon);
  445. }
  446. static FORCEINLINE HRESULT IImageList_GetImageInfo(IImageList* This,int i,IMAGEINFO *pImageInfo) {
  447. return This->lpVtbl->GetImageInfo(This,i,pImageInfo);
  448. }
  449. static FORCEINLINE HRESULT IImageList_Copy(IImageList* This,int iDst,IUnknown *punkSrc,int iSrc,UINT uFlags) {
  450. return This->lpVtbl->Copy(This,iDst,punkSrc,iSrc,uFlags);
  451. }
  452. static FORCEINLINE HRESULT IImageList_Merge(IImageList* This,int i1,IUnknown *punk2,int i2,int dx,int dy,REFIID riid,void **ppv) {
  453. return This->lpVtbl->Merge(This,i1,punk2,i2,dx,dy,riid,ppv);
  454. }
  455. static FORCEINLINE HRESULT IImageList_Clone(IImageList* This,REFIID riid,void **ppv) {
  456. return This->lpVtbl->Clone(This,riid,ppv);
  457. }
  458. static FORCEINLINE HRESULT IImageList_GetImageRect(IImageList* This,int i,RECT *prc) {
  459. return This->lpVtbl->GetImageRect(This,i,prc);
  460. }
  461. static FORCEINLINE HRESULT IImageList_GetIconSize(IImageList* This,int *cx,int *cy) {
  462. return This->lpVtbl->GetIconSize(This,cx,cy);
  463. }
  464. static FORCEINLINE HRESULT IImageList_SetIconSize(IImageList* This,int cx,int cy) {
  465. return This->lpVtbl->SetIconSize(This,cx,cy);
  466. }
  467. static FORCEINLINE HRESULT IImageList_GetImageCount(IImageList* This,int *pi) {
  468. return This->lpVtbl->GetImageCount(This,pi);
  469. }
  470. static FORCEINLINE HRESULT IImageList_SetImageCount(IImageList* This,UINT uNewCount) {
  471. return This->lpVtbl->SetImageCount(This,uNewCount);
  472. }
  473. static FORCEINLINE HRESULT IImageList_SetBkColor(IImageList* This,COLORREF clrBk,COLORREF *pclr) {
  474. return This->lpVtbl->SetBkColor(This,clrBk,pclr);
  475. }
  476. static FORCEINLINE HRESULT IImageList_GetBkColor(IImageList* This,COLORREF *pclr) {
  477. return This->lpVtbl->GetBkColor(This,pclr);
  478. }
  479. static FORCEINLINE HRESULT IImageList_BeginDrag(IImageList* This,int iTrack,int dxHotspot,int dyHotspot) {
  480. return This->lpVtbl->BeginDrag(This,iTrack,dxHotspot,dyHotspot);
  481. }
  482. static FORCEINLINE HRESULT IImageList_EndDrag(IImageList* This) {
  483. return This->lpVtbl->EndDrag(This);
  484. }
  485. static FORCEINLINE HRESULT IImageList_DragEnter(IImageList* This,HWND hwndLock,int x,int y) {
  486. return This->lpVtbl->DragEnter(This,hwndLock,x,y);
  487. }
  488. static FORCEINLINE HRESULT IImageList_DragLeave(IImageList* This,HWND hwndLock) {
  489. return This->lpVtbl->DragLeave(This,hwndLock);
  490. }
  491. static FORCEINLINE HRESULT IImageList_DragMove(IImageList* This,int x,int y) {
  492. return This->lpVtbl->DragMove(This,x,y);
  493. }
  494. static FORCEINLINE HRESULT IImageList_SetDragCursorImage(IImageList* This,IUnknown *punk,int iDrag,int dxHotspot,int dyHotspot) {
  495. return This->lpVtbl->SetDragCursorImage(This,punk,iDrag,dxHotspot,dyHotspot);
  496. }
  497. static FORCEINLINE HRESULT IImageList_DragShowNolock(IImageList* This,WINBOOL fShow) {
  498. return This->lpVtbl->DragShowNolock(This,fShow);
  499. }
  500. static FORCEINLINE HRESULT IImageList_GetDragImage(IImageList* This,POINT *ppt,POINT *pptHotspot,REFIID riid,void **ppv) {
  501. return This->lpVtbl->GetDragImage(This,ppt,pptHotspot,riid,ppv);
  502. }
  503. static FORCEINLINE HRESULT IImageList_GetItemFlags(IImageList* This,int i,DWORD *dwFlags) {
  504. return This->lpVtbl->GetItemFlags(This,i,dwFlags);
  505. }
  506. static FORCEINLINE HRESULT IImageList_GetOverlayImage(IImageList* This,int iOverlay,int *piIndex) {
  507. return This->lpVtbl->GetOverlayImage(This,iOverlay,piIndex);
  508. }
  509. #endif
  510. #endif
  511. #endif
  512. #endif /* __IImageList_INTERFACE_DEFINED__ */
  513. /*****************************************************************************
  514. * IImageList2 interface
  515. */
  516. #ifndef __IImageList2_INTERFACE_DEFINED__
  517. #define __IImageList2_INTERFACE_DEFINED__
  518. DEFINE_GUID(IID_IImageList2, 0x192b9d83, 0x50fc, 0x457b, 0x90,0xa0, 0x2b,0x82,0xa8,0xb5,0xda,0xe1);
  519. #if defined(__cplusplus) && !defined(CINTERFACE)
  520. MIDL_INTERFACE("192b9d83-50fc-457b-90a0-2b82a8b5dae1")
  521. IImageList2 : public IImageList
  522. {
  523. virtual HRESULT STDMETHODCALLTYPE Resize(
  524. int cxNewIconSize,
  525. int cyNewIconSize) = 0;
  526. virtual HRESULT STDMETHODCALLTYPE GetOriginalSize(
  527. int iImage,
  528. DWORD dwFlags,
  529. int *pcx,
  530. int *pcy) = 0;
  531. virtual HRESULT STDMETHODCALLTYPE SetOriginalSize(
  532. int iImage,
  533. int cx,
  534. int cy) = 0;
  535. virtual HRESULT STDMETHODCALLTYPE SetCallback(
  536. IUnknown *punk) = 0;
  537. virtual HRESULT STDMETHODCALLTYPE GetCallback(
  538. REFIID riid,
  539. void **ppv) = 0;
  540. virtual HRESULT STDMETHODCALLTYPE ForceImagePresent(
  541. int iImage,
  542. DWORD dwFlags) = 0;
  543. virtual HRESULT STDMETHODCALLTYPE DiscardImages(
  544. int iFirstImage,
  545. int iLastImage,
  546. DWORD dwFlags) = 0;
  547. virtual HRESULT STDMETHODCALLTYPE PreloadImages(
  548. IMAGELISTDRAWPARAMS *pimldp) = 0;
  549. virtual HRESULT STDMETHODCALLTYPE GetStatistics(
  550. IMAGELISTSTATS *pils) = 0;
  551. virtual HRESULT STDMETHODCALLTYPE Initialize(
  552. int cx,
  553. int cy,
  554. UINT flags,
  555. int cInitial,
  556. int cGrow) = 0;
  557. virtual HRESULT STDMETHODCALLTYPE Replace2(
  558. int i,
  559. HBITMAP hbmImage,
  560. HBITMAP hbmMask,
  561. IUnknown *punk,
  562. DWORD dwFlags) = 0;
  563. virtual HRESULT STDMETHODCALLTYPE ReplaceFromImageList(
  564. int i,
  565. IImageList *pil,
  566. int iSrc,
  567. IUnknown *punk,
  568. DWORD dwFlags) = 0;
  569. };
  570. #ifdef __CRT_UUID_DECL
  571. __CRT_UUID_DECL(IImageList2, 0x192b9d83, 0x50fc, 0x457b, 0x90,0xa0, 0x2b,0x82,0xa8,0xb5,0xda,0xe1)
  572. #endif
  573. #else
  574. typedef struct IImageList2Vtbl {
  575. BEGIN_INTERFACE
  576. /*** IUnknown methods ***/
  577. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  578. IImageList2 *This,
  579. REFIID riid,
  580. void **ppvObject);
  581. ULONG (STDMETHODCALLTYPE *AddRef)(
  582. IImageList2 *This);
  583. ULONG (STDMETHODCALLTYPE *Release)(
  584. IImageList2 *This);
  585. /*** IImageList methods ***/
  586. HRESULT (STDMETHODCALLTYPE *Add)(
  587. IImageList2 *This,
  588. HBITMAP hbmImage,
  589. HBITMAP hbmMask,
  590. int *pi);
  591. HRESULT (STDMETHODCALLTYPE *ReplaceIcon)(
  592. IImageList2 *This,
  593. int i,
  594. HICON hicon,
  595. int *pi);
  596. HRESULT (STDMETHODCALLTYPE *SetOverlayImage)(
  597. IImageList2 *This,
  598. int iImage,
  599. int iOverlay);
  600. HRESULT (STDMETHODCALLTYPE *Replace)(
  601. IImageList2 *This,
  602. int i,
  603. HBITMAP hbmImage,
  604. HBITMAP hbmMask);
  605. HRESULT (STDMETHODCALLTYPE *AddMasked)(
  606. IImageList2 *This,
  607. HBITMAP hbmImage,
  608. COLORREF crMask,
  609. int *pi);
  610. HRESULT (STDMETHODCALLTYPE *Draw)(
  611. IImageList2 *This,
  612. IMAGELISTDRAWPARAMS *pimldp);
  613. HRESULT (STDMETHODCALLTYPE *Remove)(
  614. IImageList2 *This,
  615. int i);
  616. HRESULT (STDMETHODCALLTYPE *GetIcon)(
  617. IImageList2 *This,
  618. int i,
  619. UINT flags,
  620. HICON *picon);
  621. HRESULT (STDMETHODCALLTYPE *GetImageInfo)(
  622. IImageList2 *This,
  623. int i,
  624. IMAGEINFO *pImageInfo);
  625. HRESULT (STDMETHODCALLTYPE *Copy)(
  626. IImageList2 *This,
  627. int iDst,
  628. IUnknown *punkSrc,
  629. int iSrc,
  630. UINT uFlags);
  631. HRESULT (STDMETHODCALLTYPE *Merge)(
  632. IImageList2 *This,
  633. int i1,
  634. IUnknown *punk2,
  635. int i2,
  636. int dx,
  637. int dy,
  638. REFIID riid,
  639. void **ppv);
  640. HRESULT (STDMETHODCALLTYPE *Clone)(
  641. IImageList2 *This,
  642. REFIID riid,
  643. void **ppv);
  644. HRESULT (STDMETHODCALLTYPE *GetImageRect)(
  645. IImageList2 *This,
  646. int i,
  647. RECT *prc);
  648. HRESULT (STDMETHODCALLTYPE *GetIconSize)(
  649. IImageList2 *This,
  650. int *cx,
  651. int *cy);
  652. HRESULT (STDMETHODCALLTYPE *SetIconSize)(
  653. IImageList2 *This,
  654. int cx,
  655. int cy);
  656. HRESULT (STDMETHODCALLTYPE *GetImageCount)(
  657. IImageList2 *This,
  658. int *pi);
  659. HRESULT (STDMETHODCALLTYPE *SetImageCount)(
  660. IImageList2 *This,
  661. UINT uNewCount);
  662. HRESULT (STDMETHODCALLTYPE *SetBkColor)(
  663. IImageList2 *This,
  664. COLORREF clrBk,
  665. COLORREF *pclr);
  666. HRESULT (STDMETHODCALLTYPE *GetBkColor)(
  667. IImageList2 *This,
  668. COLORREF *pclr);
  669. HRESULT (STDMETHODCALLTYPE *BeginDrag)(
  670. IImageList2 *This,
  671. int iTrack,
  672. int dxHotspot,
  673. int dyHotspot);
  674. HRESULT (STDMETHODCALLTYPE *EndDrag)(
  675. IImageList2 *This);
  676. HRESULT (STDMETHODCALLTYPE *DragEnter)(
  677. IImageList2 *This,
  678. HWND hwndLock,
  679. int x,
  680. int y);
  681. HRESULT (STDMETHODCALLTYPE *DragLeave)(
  682. IImageList2 *This,
  683. HWND hwndLock);
  684. HRESULT (STDMETHODCALLTYPE *DragMove)(
  685. IImageList2 *This,
  686. int x,
  687. int y);
  688. HRESULT (STDMETHODCALLTYPE *SetDragCursorImage)(
  689. IImageList2 *This,
  690. IUnknown *punk,
  691. int iDrag,
  692. int dxHotspot,
  693. int dyHotspot);
  694. HRESULT (STDMETHODCALLTYPE *DragShowNolock)(
  695. IImageList2 *This,
  696. WINBOOL fShow);
  697. HRESULT (STDMETHODCALLTYPE *GetDragImage)(
  698. IImageList2 *This,
  699. POINT *ppt,
  700. POINT *pptHotspot,
  701. REFIID riid,
  702. void **ppv);
  703. HRESULT (STDMETHODCALLTYPE *GetItemFlags)(
  704. IImageList2 *This,
  705. int i,
  706. DWORD *dwFlags);
  707. HRESULT (STDMETHODCALLTYPE *GetOverlayImage)(
  708. IImageList2 *This,
  709. int iOverlay,
  710. int *piIndex);
  711. /*** IImageList2 methods ***/
  712. HRESULT (STDMETHODCALLTYPE *Resize)(
  713. IImageList2 *This,
  714. int cxNewIconSize,
  715. int cyNewIconSize);
  716. HRESULT (STDMETHODCALLTYPE *GetOriginalSize)(
  717. IImageList2 *This,
  718. int iImage,
  719. DWORD dwFlags,
  720. int *pcx,
  721. int *pcy);
  722. HRESULT (STDMETHODCALLTYPE *SetOriginalSize)(
  723. IImageList2 *This,
  724. int iImage,
  725. int cx,
  726. int cy);
  727. HRESULT (STDMETHODCALLTYPE *SetCallback)(
  728. IImageList2 *This,
  729. IUnknown *punk);
  730. HRESULT (STDMETHODCALLTYPE *GetCallback)(
  731. IImageList2 *This,
  732. REFIID riid,
  733. void **ppv);
  734. HRESULT (STDMETHODCALLTYPE *ForceImagePresent)(
  735. IImageList2 *This,
  736. int iImage,
  737. DWORD dwFlags);
  738. HRESULT (STDMETHODCALLTYPE *DiscardImages)(
  739. IImageList2 *This,
  740. int iFirstImage,
  741. int iLastImage,
  742. DWORD dwFlags);
  743. HRESULT (STDMETHODCALLTYPE *PreloadImages)(
  744. IImageList2 *This,
  745. IMAGELISTDRAWPARAMS *pimldp);
  746. HRESULT (STDMETHODCALLTYPE *GetStatistics)(
  747. IImageList2 *This,
  748. IMAGELISTSTATS *pils);
  749. HRESULT (STDMETHODCALLTYPE *Initialize)(
  750. IImageList2 *This,
  751. int cx,
  752. int cy,
  753. UINT flags,
  754. int cInitial,
  755. int cGrow);
  756. HRESULT (STDMETHODCALLTYPE *Replace2)(
  757. IImageList2 *This,
  758. int i,
  759. HBITMAP hbmImage,
  760. HBITMAP hbmMask,
  761. IUnknown *punk,
  762. DWORD dwFlags);
  763. HRESULT (STDMETHODCALLTYPE *ReplaceFromImageList)(
  764. IImageList2 *This,
  765. int i,
  766. IImageList *pil,
  767. int iSrc,
  768. IUnknown *punk,
  769. DWORD dwFlags);
  770. END_INTERFACE
  771. } IImageList2Vtbl;
  772. interface IImageList2 {
  773. CONST_VTBL IImageList2Vtbl* lpVtbl;
  774. };
  775. #ifdef COBJMACROS
  776. #ifndef WIDL_C_INLINE_WRAPPERS
  777. /*** IUnknown methods ***/
  778. #define IImageList2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  779. #define IImageList2_AddRef(This) (This)->lpVtbl->AddRef(This)
  780. #define IImageList2_Release(This) (This)->lpVtbl->Release(This)
  781. /*** IImageList methods ***/
  782. #define IImageList2_Add(This,hbmImage,hbmMask,pi) (This)->lpVtbl->Add(This,hbmImage,hbmMask,pi)
  783. #define IImageList2_ReplaceIcon(This,i,hicon,pi) (This)->lpVtbl->ReplaceIcon(This,i,hicon,pi)
  784. #define IImageList2_SetOverlayImage(This,iImage,iOverlay) (This)->lpVtbl->SetOverlayImage(This,iImage,iOverlay)
  785. #define IImageList2_Replace(This,i,hbmImage,hbmMask) (This)->lpVtbl->Replace(This,i,hbmImage,hbmMask)
  786. #define IImageList2_AddMasked(This,hbmImage,crMask,pi) (This)->lpVtbl->AddMasked(This,hbmImage,crMask,pi)
  787. #define IImageList2_Draw(This,pimldp) (This)->lpVtbl->Draw(This,pimldp)
  788. #define IImageList2_Remove(This,i) (This)->lpVtbl->Remove(This,i)
  789. #define IImageList2_GetIcon(This,i,flags,picon) (This)->lpVtbl->GetIcon(This,i,flags,picon)
  790. #define IImageList2_GetImageInfo(This,i,pImageInfo) (This)->lpVtbl->GetImageInfo(This,i,pImageInfo)
  791. #define IImageList2_Copy(This,iDst,punkSrc,iSrc,uFlags) (This)->lpVtbl->Copy(This,iDst,punkSrc,iSrc,uFlags)
  792. #define IImageList2_Merge(This,i1,punk2,i2,dx,dy,riid,ppv) (This)->lpVtbl->Merge(This,i1,punk2,i2,dx,dy,riid,ppv)
  793. #define IImageList2_Clone(This,riid,ppv) (This)->lpVtbl->Clone(This,riid,ppv)
  794. #define IImageList2_GetImageRect(This,i,prc) (This)->lpVtbl->GetImageRect(This,i,prc)
  795. #define IImageList2_GetIconSize(This,cx,cy) (This)->lpVtbl->GetIconSize(This,cx,cy)
  796. #define IImageList2_SetIconSize(This,cx,cy) (This)->lpVtbl->SetIconSize(This,cx,cy)
  797. #define IImageList2_GetImageCount(This,pi) (This)->lpVtbl->GetImageCount(This,pi)
  798. #define IImageList2_SetImageCount(This,uNewCount) (This)->lpVtbl->SetImageCount(This,uNewCount)
  799. #define IImageList2_SetBkColor(This,clrBk,pclr) (This)->lpVtbl->SetBkColor(This,clrBk,pclr)
  800. #define IImageList2_GetBkColor(This,pclr) (This)->lpVtbl->GetBkColor(This,pclr)
  801. #define IImageList2_BeginDrag(This,iTrack,dxHotspot,dyHotspot) (This)->lpVtbl->BeginDrag(This,iTrack,dxHotspot,dyHotspot)
  802. #define IImageList2_EndDrag(This) (This)->lpVtbl->EndDrag(This)
  803. #define IImageList2_DragEnter(This,hwndLock,x,y) (This)->lpVtbl->DragEnter(This,hwndLock,x,y)
  804. #define IImageList2_DragLeave(This,hwndLock) (This)->lpVtbl->DragLeave(This,hwndLock)
  805. #define IImageList2_DragMove(This,x,y) (This)->lpVtbl->DragMove(This,x,y)
  806. #define IImageList2_SetDragCursorImage(This,punk,iDrag,dxHotspot,dyHotspot) (This)->lpVtbl->SetDragCursorImage(This,punk,iDrag,dxHotspot,dyHotspot)
  807. #define IImageList2_DragShowNolock(This,fShow) (This)->lpVtbl->DragShowNolock(This,fShow)
  808. #define IImageList2_GetDragImage(This,ppt,pptHotspot,riid,ppv) (This)->lpVtbl->GetDragImage(This,ppt,pptHotspot,riid,ppv)
  809. #define IImageList2_GetItemFlags(This,i,dwFlags) (This)->lpVtbl->GetItemFlags(This,i,dwFlags)
  810. #define IImageList2_GetOverlayImage(This,iOverlay,piIndex) (This)->lpVtbl->GetOverlayImage(This,iOverlay,piIndex)
  811. /*** IImageList2 methods ***/
  812. #define IImageList2_Resize(This,cxNewIconSize,cyNewIconSize) (This)->lpVtbl->Resize(This,cxNewIconSize,cyNewIconSize)
  813. #define IImageList2_GetOriginalSize(This,iImage,dwFlags,pcx,pcy) (This)->lpVtbl->GetOriginalSize(This,iImage,dwFlags,pcx,pcy)
  814. #define IImageList2_SetOriginalSize(This,iImage,cx,cy) (This)->lpVtbl->SetOriginalSize(This,iImage,cx,cy)
  815. #define IImageList2_SetCallback(This,punk) (This)->lpVtbl->SetCallback(This,punk)
  816. #define IImageList2_GetCallback(This,riid,ppv) (This)->lpVtbl->GetCallback(This,riid,ppv)
  817. #define IImageList2_ForceImagePresent(This,iImage,dwFlags) (This)->lpVtbl->ForceImagePresent(This,iImage,dwFlags)
  818. #define IImageList2_DiscardImages(This,iFirstImage,iLastImage,dwFlags) (This)->lpVtbl->DiscardImages(This,iFirstImage,iLastImage,dwFlags)
  819. #define IImageList2_PreloadImages(This,pimldp) (This)->lpVtbl->PreloadImages(This,pimldp)
  820. #define IImageList2_GetStatistics(This,pils) (This)->lpVtbl->GetStatistics(This,pils)
  821. #define IImageList2_Initialize(This,cx,cy,flags,cInitial,cGrow) (This)->lpVtbl->Initialize(This,cx,cy,flags,cInitial,cGrow)
  822. #define IImageList2_Replace2(This,i,hbmImage,hbmMask,punk,dwFlags) (This)->lpVtbl->Replace2(This,i,hbmImage,hbmMask,punk,dwFlags)
  823. #define IImageList2_ReplaceFromImageList(This,i,pil,iSrc,punk,dwFlags) (This)->lpVtbl->ReplaceFromImageList(This,i,pil,iSrc,punk,dwFlags)
  824. #else
  825. /*** IUnknown methods ***/
  826. static FORCEINLINE HRESULT IImageList2_QueryInterface(IImageList2* This,REFIID riid,void **ppvObject) {
  827. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  828. }
  829. static FORCEINLINE ULONG IImageList2_AddRef(IImageList2* This) {
  830. return This->lpVtbl->AddRef(This);
  831. }
  832. static FORCEINLINE ULONG IImageList2_Release(IImageList2* This) {
  833. return This->lpVtbl->Release(This);
  834. }
  835. /*** IImageList methods ***/
  836. static FORCEINLINE HRESULT IImageList2_Add(IImageList2* This,HBITMAP hbmImage,HBITMAP hbmMask,int *pi) {
  837. return This->lpVtbl->Add(This,hbmImage,hbmMask,pi);
  838. }
  839. static FORCEINLINE HRESULT IImageList2_ReplaceIcon(IImageList2* This,int i,HICON hicon,int *pi) {
  840. return This->lpVtbl->ReplaceIcon(This,i,hicon,pi);
  841. }
  842. static FORCEINLINE HRESULT IImageList2_SetOverlayImage(IImageList2* This,int iImage,int iOverlay) {
  843. return This->lpVtbl->SetOverlayImage(This,iImage,iOverlay);
  844. }
  845. static FORCEINLINE HRESULT IImageList2_Replace(IImageList2* This,int i,HBITMAP hbmImage,HBITMAP hbmMask) {
  846. return This->lpVtbl->Replace(This,i,hbmImage,hbmMask);
  847. }
  848. static FORCEINLINE HRESULT IImageList2_AddMasked(IImageList2* This,HBITMAP hbmImage,COLORREF crMask,int *pi) {
  849. return This->lpVtbl->AddMasked(This,hbmImage,crMask,pi);
  850. }
  851. static FORCEINLINE HRESULT IImageList2_Draw(IImageList2* This,IMAGELISTDRAWPARAMS *pimldp) {
  852. return This->lpVtbl->Draw(This,pimldp);
  853. }
  854. static FORCEINLINE HRESULT IImageList2_Remove(IImageList2* This,int i) {
  855. return This->lpVtbl->Remove(This,i);
  856. }
  857. static FORCEINLINE HRESULT IImageList2_GetIcon(IImageList2* This,int i,UINT flags,HICON *picon) {
  858. return This->lpVtbl->GetIcon(This,i,flags,picon);
  859. }
  860. static FORCEINLINE HRESULT IImageList2_GetImageInfo(IImageList2* This,int i,IMAGEINFO *pImageInfo) {
  861. return This->lpVtbl->GetImageInfo(This,i,pImageInfo);
  862. }
  863. static FORCEINLINE HRESULT IImageList2_Copy(IImageList2* This,int iDst,IUnknown *punkSrc,int iSrc,UINT uFlags) {
  864. return This->lpVtbl->Copy(This,iDst,punkSrc,iSrc,uFlags);
  865. }
  866. static FORCEINLINE HRESULT IImageList2_Merge(IImageList2* This,int i1,IUnknown *punk2,int i2,int dx,int dy,REFIID riid,void **ppv) {
  867. return This->lpVtbl->Merge(This,i1,punk2,i2,dx,dy,riid,ppv);
  868. }
  869. static FORCEINLINE HRESULT IImageList2_Clone(IImageList2* This,REFIID riid,void **ppv) {
  870. return This->lpVtbl->Clone(This,riid,ppv);
  871. }
  872. static FORCEINLINE HRESULT IImageList2_GetImageRect(IImageList2* This,int i,RECT *prc) {
  873. return This->lpVtbl->GetImageRect(This,i,prc);
  874. }
  875. static FORCEINLINE HRESULT IImageList2_GetIconSize(IImageList2* This,int *cx,int *cy) {
  876. return This->lpVtbl->GetIconSize(This,cx,cy);
  877. }
  878. static FORCEINLINE HRESULT IImageList2_SetIconSize(IImageList2* This,int cx,int cy) {
  879. return This->lpVtbl->SetIconSize(This,cx,cy);
  880. }
  881. static FORCEINLINE HRESULT IImageList2_GetImageCount(IImageList2* This,int *pi) {
  882. return This->lpVtbl->GetImageCount(This,pi);
  883. }
  884. static FORCEINLINE HRESULT IImageList2_SetImageCount(IImageList2* This,UINT uNewCount) {
  885. return This->lpVtbl->SetImageCount(This,uNewCount);
  886. }
  887. static FORCEINLINE HRESULT IImageList2_SetBkColor(IImageList2* This,COLORREF clrBk,COLORREF *pclr) {
  888. return This->lpVtbl->SetBkColor(This,clrBk,pclr);
  889. }
  890. static FORCEINLINE HRESULT IImageList2_GetBkColor(IImageList2* This,COLORREF *pclr) {
  891. return This->lpVtbl->GetBkColor(This,pclr);
  892. }
  893. static FORCEINLINE HRESULT IImageList2_BeginDrag(IImageList2* This,int iTrack,int dxHotspot,int dyHotspot) {
  894. return This->lpVtbl->BeginDrag(This,iTrack,dxHotspot,dyHotspot);
  895. }
  896. static FORCEINLINE HRESULT IImageList2_EndDrag(IImageList2* This) {
  897. return This->lpVtbl->EndDrag(This);
  898. }
  899. static FORCEINLINE HRESULT IImageList2_DragEnter(IImageList2* This,HWND hwndLock,int x,int y) {
  900. return This->lpVtbl->DragEnter(This,hwndLock,x,y);
  901. }
  902. static FORCEINLINE HRESULT IImageList2_DragLeave(IImageList2* This,HWND hwndLock) {
  903. return This->lpVtbl->DragLeave(This,hwndLock);
  904. }
  905. static FORCEINLINE HRESULT IImageList2_DragMove(IImageList2* This,int x,int y) {
  906. return This->lpVtbl->DragMove(This,x,y);
  907. }
  908. static FORCEINLINE HRESULT IImageList2_SetDragCursorImage(IImageList2* This,IUnknown *punk,int iDrag,int dxHotspot,int dyHotspot) {
  909. return This->lpVtbl->SetDragCursorImage(This,punk,iDrag,dxHotspot,dyHotspot);
  910. }
  911. static FORCEINLINE HRESULT IImageList2_DragShowNolock(IImageList2* This,WINBOOL fShow) {
  912. return This->lpVtbl->DragShowNolock(This,fShow);
  913. }
  914. static FORCEINLINE HRESULT IImageList2_GetDragImage(IImageList2* This,POINT *ppt,POINT *pptHotspot,REFIID riid,void **ppv) {
  915. return This->lpVtbl->GetDragImage(This,ppt,pptHotspot,riid,ppv);
  916. }
  917. static FORCEINLINE HRESULT IImageList2_GetItemFlags(IImageList2* This,int i,DWORD *dwFlags) {
  918. return This->lpVtbl->GetItemFlags(This,i,dwFlags);
  919. }
  920. static FORCEINLINE HRESULT IImageList2_GetOverlayImage(IImageList2* This,int iOverlay,int *piIndex) {
  921. return This->lpVtbl->GetOverlayImage(This,iOverlay,piIndex);
  922. }
  923. /*** IImageList2 methods ***/
  924. static FORCEINLINE HRESULT IImageList2_Resize(IImageList2* This,int cxNewIconSize,int cyNewIconSize) {
  925. return This->lpVtbl->Resize(This,cxNewIconSize,cyNewIconSize);
  926. }
  927. static FORCEINLINE HRESULT IImageList2_GetOriginalSize(IImageList2* This,int iImage,DWORD dwFlags,int *pcx,int *pcy) {
  928. return This->lpVtbl->GetOriginalSize(This,iImage,dwFlags,pcx,pcy);
  929. }
  930. static FORCEINLINE HRESULT IImageList2_SetOriginalSize(IImageList2* This,int iImage,int cx,int cy) {
  931. return This->lpVtbl->SetOriginalSize(This,iImage,cx,cy);
  932. }
  933. static FORCEINLINE HRESULT IImageList2_SetCallback(IImageList2* This,IUnknown *punk) {
  934. return This->lpVtbl->SetCallback(This,punk);
  935. }
  936. static FORCEINLINE HRESULT IImageList2_GetCallback(IImageList2* This,REFIID riid,void **ppv) {
  937. return This->lpVtbl->GetCallback(This,riid,ppv);
  938. }
  939. static FORCEINLINE HRESULT IImageList2_ForceImagePresent(IImageList2* This,int iImage,DWORD dwFlags) {
  940. return This->lpVtbl->ForceImagePresent(This,iImage,dwFlags);
  941. }
  942. static FORCEINLINE HRESULT IImageList2_DiscardImages(IImageList2* This,int iFirstImage,int iLastImage,DWORD dwFlags) {
  943. return This->lpVtbl->DiscardImages(This,iFirstImage,iLastImage,dwFlags);
  944. }
  945. static FORCEINLINE HRESULT IImageList2_PreloadImages(IImageList2* This,IMAGELISTDRAWPARAMS *pimldp) {
  946. return This->lpVtbl->PreloadImages(This,pimldp);
  947. }
  948. static FORCEINLINE HRESULT IImageList2_GetStatistics(IImageList2* This,IMAGELISTSTATS *pils) {
  949. return This->lpVtbl->GetStatistics(This,pils);
  950. }
  951. static FORCEINLINE HRESULT IImageList2_Initialize(IImageList2* This,int cx,int cy,UINT flags,int cInitial,int cGrow) {
  952. return This->lpVtbl->Initialize(This,cx,cy,flags,cInitial,cGrow);
  953. }
  954. static FORCEINLINE HRESULT IImageList2_Replace2(IImageList2* This,int i,HBITMAP hbmImage,HBITMAP hbmMask,IUnknown *punk,DWORD dwFlags) {
  955. return This->lpVtbl->Replace2(This,i,hbmImage,hbmMask,punk,dwFlags);
  956. }
  957. static FORCEINLINE HRESULT IImageList2_ReplaceFromImageList(IImageList2* This,int i,IImageList *pil,int iSrc,IUnknown *punk,DWORD dwFlags) {
  958. return This->lpVtbl->ReplaceFromImageList(This,i,pil,iSrc,punk,dwFlags);
  959. }
  960. #endif
  961. #endif
  962. #endif
  963. #endif /* __IImageList2_INTERFACE_DEFINED__ */
  964. #ifndef __CommonControlObjects_LIBRARY_DEFINED__
  965. #define __CommonControlObjects_LIBRARY_DEFINED__
  966. DEFINE_GUID(LIBID_CommonControlObjects, 0xbcada15b, 0xb428, 0x420c, 0x8d,0x28, 0x02,0x35,0x90,0x92,0x4c,0x9f);
  967. /*****************************************************************************
  968. * ImageList coclass
  969. */
  970. DEFINE_GUID(CLSID_ImageList, 0x7c476ba2, 0x02b1, 0x48f4, 0x80,0x48, 0xb2,0x46,0x19,0xdd,0xc0,0x58);
  971. #ifdef __cplusplus
  972. class DECLSPEC_UUID("7c476ba2-02b1-48f4-8048-b24619ddc058") ImageList;
  973. #ifdef __CRT_UUID_DECL
  974. __CRT_UUID_DECL(ImageList, 0x7c476ba2, 0x02b1, 0x48f4, 0x80,0x48, 0xb2,0x46,0x19,0xdd,0xc0,0x58)
  975. #endif
  976. #endif
  977. #endif /* __CommonControlObjects_LIBRARY_DEFINED__ */
  978. #endif
  979. /* Begin additional prototypes for all interfaces */
  980. /* End additional prototypes */
  981. #ifdef __cplusplus
  982. }
  983. #endif
  984. #endif /* __commoncontrols_h__ */