comctl32: Add stubs for image list functions introduced in Vista.
diff --git a/dlls/comctl32/comctl32.spec b/dlls/comctl32/comctl32.spec
index 6b8f662..e852916 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 84971f7..d3f0b36 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 @@
{
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 8673ba9..17d8b86 100644
--- a/include/commctrl.h
+++ b/include/commctrl.h
@@ -584,6 +584,7 @@
} 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 a162b38..6e00837 100644
--- a/include/commoncontrols.idl
+++ b/include/commoncontrols.idl
@@ -61,6 +61,8 @@
typedef IMAGELISTDRAWPARAMS* LPIMAGELISTDRAWPARAMS;
cpp_quote("#endif")
+cpp_quote("HRESULT WINAPI ImageList_CoCreateInstance(REFCLSID,const IUnknown *, REFIID,void **);")
+
const UINT ILIF_ALPHA = 1;
[