diff --git a/dlls/comctl32/comctl32.spec b/dlls/comctl32/comctl32.spec index 6b8f6625010..e8529169fd8 100644 --- a/dlls/comctl32/comctl32.spec +++ b/dlls/comctl32/comctl32.spec @@ -139,10 +139,12 @@ @ stdcall FlatSB_SetScrollRange (long long long long long) @ stdcall FlatSB_ShowScrollBar (long long long) @ stdcall GetMUILanguage() +@ stdcall HIMAGELIST_QueryInterface(ptr ptr ptr) @ stdcall ImageList_Add(ptr long long) @ stdcall ImageList_AddIcon(ptr long) @ stdcall ImageList_AddMasked(ptr long long) @ stdcall ImageList_BeginDrag(ptr long long long) +@ stdcall ImageList_CoCreateInstance(ptr ptr ptr ptr) @ stdcall ImageList_Copy(ptr long ptr long long) @ stdcall ImageList_Create(long long long long long) @ stdcall ImageList_Destroy(ptr) diff --git a/dlls/comctl32/imagelist.c b/dlls/comctl32/imagelist.c index 84971f70e01..d3f0b364288 100644 --- a/dlls/comctl32/imagelist.c +++ b/dlls/comctl32/imagelist.c @@ -6,6 +6,7 @@ * Copyright 2001, 2004 Michael Stefaniuc * Copyright 2001 Charles Loep for CodeWeavers * Copyright 2002 Dimitrie O. Paun + * 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 @@ -2906,3 +2907,47 @@ ImageList_SetColorTable (HIMAGELIST himl, UINT uStartIndex, UINT cEntries, CONST { return SetDIBColorTable(himl->hdcImage, uStartIndex, cEntries, prgb); } + +/************************************************************************* + * ImageList_CoCreateInstance [COMCTL32.@] + * + * Creates a new imagelist instance and returns an interface pointer to it. + * + * PARAMS + * rclsid [I] A reference to the CLSID (CLSID_ImageList). + * punkOuter [I] Pointer to IUnknown interface for aggregation, if desired + * riid [I] Identifier of the requested interface. + * ppv [O] Returns the address of the pointer requested, or NULL. + * + * RETURNS + * Success: S_OK. + * Failure: Error value. + */ +HRESULT WINAPI +ImageList_CoCreateInstance (REFCLSID rclsid, const IUnknown *punkOuter, REFIID riid, void **ppv) +{ + FIXME("STUB: %s %p %s %p\n", debugstr_guid(rclsid), punkOuter, debugstr_guid(riid), ppv); + return E_NOINTERFACE; +} + +/************************************************************************* + * HIMAGELIST_QueryInterface [COMCTL32.@] + * + * Returns a pointer to an IImageList or IImageList2 object for the given + * HIMAGELIST. + * + * PARAMS + * himl [I] Image list handle. + * riid [I] Identifier of the requested interface. + * ppv [O] Returns the address of the pointer requested, or NULL. + * + * RETURNS + * Success: S_OK. + * Failure: Error value. + */ +HRESULT WINAPI +HIMAGELIST_QueryInterface (HIMAGELIST himl, REFIID riid, void **ppv) +{ + FIXME("STUB: %p %s %p\n", himl, debugstr_guid(riid), ppv); + return E_NOINTERFACE; +} diff --git a/include/commctrl.h b/include/commctrl.h index 8673ba9d241..17d8b861906 100644 --- a/include/commctrl.h +++ b/include/commctrl.h @@ -584,6 +584,7 @@ typedef struct _IMAGELISTDRAWPARAMS } IMAGELISTDRAWPARAMS, *LPIMAGELISTDRAWPARAMS; +HRESULT WINAPI HIMAGELIST_QueryInterface(HIMAGELIST,REFIID,void **); INT WINAPI ImageList_Add(HIMAGELIST,HBITMAP,HBITMAP); INT WINAPI ImageList_AddMasked(HIMAGELIST,HBITMAP,COLORREF); BOOL WINAPI ImageList_BeginDrag(HIMAGELIST,INT,INT,INT); diff --git a/include/commoncontrols.idl b/include/commoncontrols.idl index a162b384ad0..6e0083766a8 100644 --- a/include/commoncontrols.idl +++ b/include/commoncontrols.idl @@ -61,6 +61,8 @@ typedef struct typedef IMAGELISTDRAWPARAMS* LPIMAGELISTDRAWPARAMS; cpp_quote("#endif") +cpp_quote("HRESULT WINAPI ImageList_CoCreateInstance(REFCLSID,const IUnknown *, REFIID,void **);") + const UINT ILIF_ALPHA = 1; [