xref: /reactos/dll/win32/dwmapi/dwmapi_main.c (revision 6bbf09b6)
1*6bbf09b6SJustin Miller /*
2*6bbf09b6SJustin Miller  * Dwmapi
3*6bbf09b6SJustin Miller  *
4*6bbf09b6SJustin Miller  * Copyright 2007 Andras Kovacs
5*6bbf09b6SJustin Miller  *
6*6bbf09b6SJustin Miller  * This library is free software; you can redistribute it and/or
7*6bbf09b6SJustin Miller  * modify it under the terms of the GNU Lesser General Public
8*6bbf09b6SJustin Miller  * License as published by the Free Software Foundation; either
9*6bbf09b6SJustin Miller  * version 2.1 of the License, or (at your option) any later version.
10*6bbf09b6SJustin Miller  *
11*6bbf09b6SJustin Miller  * This library is distributed in the hope that it will be useful,
12*6bbf09b6SJustin Miller  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13*6bbf09b6SJustin Miller  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14*6bbf09b6SJustin Miller  * Lesser General Public License for more details.
15*6bbf09b6SJustin Miller  *
16*6bbf09b6SJustin Miller  * You should have received a copy of the GNU Lesser General Public
17*6bbf09b6SJustin Miller  * License along with this library; if not, write to the Free Software
18*6bbf09b6SJustin Miller  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19*6bbf09b6SJustin Miller  *
20*6bbf09b6SJustin Miller  */
21*6bbf09b6SJustin Miller 
22*6bbf09b6SJustin Miller #include <stdarg.h>
23*6bbf09b6SJustin Miller 
24*6bbf09b6SJustin Miller #ifdef __REACTOS__
25*6bbf09b6SJustin Miller #include <rtlfuncs.h>
26*6bbf09b6SJustin Miller #else
27*6bbf09b6SJustin Miller #include "winternl.h"
28*6bbf09b6SJustin Miller #endif
29*6bbf09b6SJustin Miller 
30*6bbf09b6SJustin Miller #define COBJMACROS
31*6bbf09b6SJustin Miller #include "windef.h"
32*6bbf09b6SJustin Miller #include "winbase.h"
33*6bbf09b6SJustin Miller #include "wingdi.h"
34*6bbf09b6SJustin Miller #include "winuser.h"
35*6bbf09b6SJustin Miller #include "dwmapi.h"
36*6bbf09b6SJustin Miller #include "wine/debug.h"
37*6bbf09b6SJustin Miller 
38*6bbf09b6SJustin Miller WINE_DEFAULT_DEBUG_CHANNEL(dwmapi);
39*6bbf09b6SJustin Miller 
40*6bbf09b6SJustin Miller 
41*6bbf09b6SJustin Miller /**********************************************************************
42*6bbf09b6SJustin Miller  *           DwmIsCompositionEnabled         (DWMAPI.@)
43*6bbf09b6SJustin Miller  */
DwmIsCompositionEnabled(BOOL * enabled)44*6bbf09b6SJustin Miller HRESULT WINAPI DwmIsCompositionEnabled(BOOL *enabled)
45*6bbf09b6SJustin Miller {
46*6bbf09b6SJustin Miller 
47*6bbf09b6SJustin Miller #ifdef __REACTOS__
48*6bbf09b6SJustin Miller     RTL_OSVERSIONINFOW version;
49*6bbf09b6SJustin Miller #else
50*6bbf09b6SJustin Miller     RTL_OSVERSIONINFOEXW version;
51*6bbf09b6SJustin Miller #endif
52*6bbf09b6SJustin Miller 
53*6bbf09b6SJustin Miller     TRACE("%p\n", enabled);
54*6bbf09b6SJustin Miller 
55*6bbf09b6SJustin Miller     if (!enabled)
56*6bbf09b6SJustin Miller         return E_INVALIDARG;
57*6bbf09b6SJustin Miller 
58*6bbf09b6SJustin Miller     *enabled = FALSE;
59*6bbf09b6SJustin Miller     version.dwOSVersionInfoSize = sizeof(version);
60*6bbf09b6SJustin Miller     if (!RtlGetVersion(&version))
61*6bbf09b6SJustin Miller         *enabled = (version.dwMajorVersion > 6 || (version.dwMajorVersion == 6 && version.dwMinorVersion >= 3));
62*6bbf09b6SJustin Miller 
63*6bbf09b6SJustin Miller     return S_OK;
64*6bbf09b6SJustin Miller }
65*6bbf09b6SJustin Miller 
66*6bbf09b6SJustin Miller /**********************************************************************
67*6bbf09b6SJustin Miller  *           DwmEnableComposition         (DWMAPI.102)
68*6bbf09b6SJustin Miller  */
DwmEnableComposition(UINT uCompositionAction)69*6bbf09b6SJustin Miller HRESULT WINAPI DwmEnableComposition(UINT uCompositionAction)
70*6bbf09b6SJustin Miller {
71*6bbf09b6SJustin Miller     FIXME("(%d) stub\n", uCompositionAction);
72*6bbf09b6SJustin Miller 
73*6bbf09b6SJustin Miller     return S_OK;
74*6bbf09b6SJustin Miller }
75*6bbf09b6SJustin Miller 
76*6bbf09b6SJustin Miller /**********************************************************************
77*6bbf09b6SJustin Miller  *           DwmExtendFrameIntoClientArea    (DWMAPI.@)
78*6bbf09b6SJustin Miller  */
DwmExtendFrameIntoClientArea(HWND hwnd,const MARGINS * margins)79*6bbf09b6SJustin Miller HRESULT WINAPI DwmExtendFrameIntoClientArea(HWND hwnd, const MARGINS* margins)
80*6bbf09b6SJustin Miller {
81*6bbf09b6SJustin Miller     FIXME("(%p, %p) stub\n", hwnd, margins);
82*6bbf09b6SJustin Miller 
83*6bbf09b6SJustin Miller     return S_OK;
84*6bbf09b6SJustin Miller }
85*6bbf09b6SJustin Miller 
86*6bbf09b6SJustin Miller /**********************************************************************
87*6bbf09b6SJustin Miller  *           DwmGetColorizationColor      (DWMAPI.@)
88*6bbf09b6SJustin Miller  */
DwmGetColorizationColor(DWORD * colorization,BOOL * opaque_blend)89*6bbf09b6SJustin Miller HRESULT WINAPI DwmGetColorizationColor(DWORD *colorization, BOOL *opaque_blend)
90*6bbf09b6SJustin Miller {
91*6bbf09b6SJustin Miller     FIXME("(%p, %p) stub\n", colorization, opaque_blend);
92*6bbf09b6SJustin Miller 
93*6bbf09b6SJustin Miller     return E_NOTIMPL;
94*6bbf09b6SJustin Miller }
95*6bbf09b6SJustin Miller 
96*6bbf09b6SJustin Miller /**********************************************************************
97*6bbf09b6SJustin Miller  *                  DwmFlush              (DWMAPI.@)
98*6bbf09b6SJustin Miller  */
DwmFlush(void)99*6bbf09b6SJustin Miller HRESULT WINAPI DwmFlush(void)
100*6bbf09b6SJustin Miller {
101*6bbf09b6SJustin Miller     static BOOL once;
102*6bbf09b6SJustin Miller 
103*6bbf09b6SJustin Miller     if (!once++) FIXME("() stub\n");
104*6bbf09b6SJustin Miller 
105*6bbf09b6SJustin Miller     return S_OK;
106*6bbf09b6SJustin Miller }
107*6bbf09b6SJustin Miller 
108*6bbf09b6SJustin Miller /**********************************************************************
109*6bbf09b6SJustin Miller  *        DwmInvalidateIconicBitmaps      (DWMAPI.@)
110*6bbf09b6SJustin Miller  */
DwmInvalidateIconicBitmaps(HWND hwnd)111*6bbf09b6SJustin Miller HRESULT WINAPI DwmInvalidateIconicBitmaps(HWND hwnd)
112*6bbf09b6SJustin Miller {
113*6bbf09b6SJustin Miller     static BOOL once;
114*6bbf09b6SJustin Miller 
115*6bbf09b6SJustin Miller     if (!once++) FIXME("(%p) stub\n", hwnd);
116*6bbf09b6SJustin Miller 
117*6bbf09b6SJustin Miller     return E_NOTIMPL;
118*6bbf09b6SJustin Miller }
119*6bbf09b6SJustin Miller 
120*6bbf09b6SJustin Miller /**********************************************************************
121*6bbf09b6SJustin Miller  *           DwmSetWindowAttribute         (DWMAPI.@)
122*6bbf09b6SJustin Miller  */
DwmSetWindowAttribute(HWND hwnd,DWORD attributenum,LPCVOID attribute,DWORD size)123*6bbf09b6SJustin Miller HRESULT WINAPI DwmSetWindowAttribute(HWND hwnd, DWORD attributenum, LPCVOID attribute, DWORD size)
124*6bbf09b6SJustin Miller {
125*6bbf09b6SJustin Miller     static BOOL once;
126*6bbf09b6SJustin Miller 
127*6bbf09b6SJustin Miller     if (!once++) FIXME("(%p, %lx, %p, %lx) stub\n", hwnd, attributenum, attribute, size);
128*6bbf09b6SJustin Miller 
129*6bbf09b6SJustin Miller     return S_OK;
130*6bbf09b6SJustin Miller }
131*6bbf09b6SJustin Miller 
132*6bbf09b6SJustin Miller /**********************************************************************
133*6bbf09b6SJustin Miller  *           DwmGetGraphicsStreamClient         (DWMAPI.@)
134*6bbf09b6SJustin Miller  */
DwmGetGraphicsStreamClient(UINT uIndex,UUID * pClientUuid)135*6bbf09b6SJustin Miller HRESULT WINAPI DwmGetGraphicsStreamClient(UINT uIndex, UUID *pClientUuid)
136*6bbf09b6SJustin Miller {
137*6bbf09b6SJustin Miller     FIXME("(%d, %p) stub\n", uIndex, pClientUuid);
138*6bbf09b6SJustin Miller 
139*6bbf09b6SJustin Miller     return E_NOTIMPL;
140*6bbf09b6SJustin Miller }
141*6bbf09b6SJustin Miller 
142*6bbf09b6SJustin Miller /**********************************************************************
143*6bbf09b6SJustin Miller  *           DwmGetTransportAttributes         (DWMAPI.@)
144*6bbf09b6SJustin Miller  */
DwmGetTransportAttributes(BOOL * pfIsRemoting,BOOL * pfIsConnected,DWORD * pDwGeneration)145*6bbf09b6SJustin Miller HRESULT WINAPI DwmGetTransportAttributes(BOOL *pfIsRemoting, BOOL *pfIsConnected, DWORD *pDwGeneration)
146*6bbf09b6SJustin Miller {
147*6bbf09b6SJustin Miller     FIXME("(%p, %p, %p) stub\n", pfIsRemoting, pfIsConnected, pDwGeneration);
148*6bbf09b6SJustin Miller 
149*6bbf09b6SJustin Miller     return DWM_E_COMPOSITIONDISABLED;
150*6bbf09b6SJustin Miller }
151*6bbf09b6SJustin Miller 
152*6bbf09b6SJustin Miller /**********************************************************************
153*6bbf09b6SJustin Miller  *           DwmUnregisterThumbnail         (DWMAPI.@)
154*6bbf09b6SJustin Miller  */
DwmUnregisterThumbnail(HTHUMBNAIL thumbnail)155*6bbf09b6SJustin Miller HRESULT WINAPI DwmUnregisterThumbnail(HTHUMBNAIL thumbnail)
156*6bbf09b6SJustin Miller {
157*6bbf09b6SJustin Miller     FIXME("(%p) stub\n", thumbnail);
158*6bbf09b6SJustin Miller 
159*6bbf09b6SJustin Miller     return E_NOTIMPL;
160*6bbf09b6SJustin Miller }
161*6bbf09b6SJustin Miller 
162*6bbf09b6SJustin Miller /**********************************************************************
163*6bbf09b6SJustin Miller  *           DwmEnableMMCSS         (DWMAPI.@)
164*6bbf09b6SJustin Miller  */
DwmEnableMMCSS(BOOL enableMMCSS)165*6bbf09b6SJustin Miller HRESULT WINAPI DwmEnableMMCSS(BOOL enableMMCSS)
166*6bbf09b6SJustin Miller {
167*6bbf09b6SJustin Miller     FIXME("(%d) stub\n", enableMMCSS);
168*6bbf09b6SJustin Miller 
169*6bbf09b6SJustin Miller     return S_OK;
170*6bbf09b6SJustin Miller }
171*6bbf09b6SJustin Miller 
172*6bbf09b6SJustin Miller /**********************************************************************
173*6bbf09b6SJustin Miller  *           DwmGetGraphicsStreamTransformHint         (DWMAPI.@)
174*6bbf09b6SJustin Miller  */
DwmGetGraphicsStreamTransformHint(UINT uIndex,MilMatrix3x2D * pTransform)175*6bbf09b6SJustin Miller HRESULT WINAPI DwmGetGraphicsStreamTransformHint(UINT uIndex, MilMatrix3x2D *pTransform)
176*6bbf09b6SJustin Miller {
177*6bbf09b6SJustin Miller     FIXME("(%d, %p) stub\n", uIndex, pTransform);
178*6bbf09b6SJustin Miller 
179*6bbf09b6SJustin Miller     return E_NOTIMPL;
180*6bbf09b6SJustin Miller }
181*6bbf09b6SJustin Miller 
182*6bbf09b6SJustin Miller /**********************************************************************
183*6bbf09b6SJustin Miller  *           DwmEnableBlurBehindWindow         (DWMAPI.@)
184*6bbf09b6SJustin Miller  */
DwmEnableBlurBehindWindow(HWND hWnd,const DWM_BLURBEHIND * pBlurBuf)185*6bbf09b6SJustin Miller HRESULT WINAPI DwmEnableBlurBehindWindow(HWND hWnd, const DWM_BLURBEHIND *pBlurBuf)
186*6bbf09b6SJustin Miller {
187*6bbf09b6SJustin Miller     FIXME("%p %p\n", hWnd, pBlurBuf);
188*6bbf09b6SJustin Miller 
189*6bbf09b6SJustin Miller     return E_NOTIMPL;
190*6bbf09b6SJustin Miller }
191*6bbf09b6SJustin Miller 
192*6bbf09b6SJustin Miller /**********************************************************************
193*6bbf09b6SJustin Miller  *           DwmDefWindowProc         (DWMAPI.@)
194*6bbf09b6SJustin Miller  */
DwmDefWindowProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam,LRESULT * plResult)195*6bbf09b6SJustin Miller BOOL WINAPI DwmDefWindowProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, LRESULT *plResult)
196*6bbf09b6SJustin Miller {
197*6bbf09b6SJustin Miller     static int i;
198*6bbf09b6SJustin Miller 
199*6bbf09b6SJustin Miller     if (!i++) FIXME("stub\n");
200*6bbf09b6SJustin Miller 
201*6bbf09b6SJustin Miller     return FALSE;
202*6bbf09b6SJustin Miller }
203*6bbf09b6SJustin Miller 
204*6bbf09b6SJustin Miller /**********************************************************************
205*6bbf09b6SJustin Miller  *           DwmGetWindowAttribute         (DWMAPI.@)
206*6bbf09b6SJustin Miller  */
DwmGetWindowAttribute(HWND hwnd,DWORD attribute,PVOID pv_attribute,DWORD size)207*6bbf09b6SJustin Miller HRESULT WINAPI DwmGetWindowAttribute(HWND hwnd, DWORD attribute, PVOID pv_attribute, DWORD size)
208*6bbf09b6SJustin Miller {
209*6bbf09b6SJustin Miller     FIXME("(%p %ld %p %ld) stub\n", hwnd, attribute, pv_attribute, size);
210*6bbf09b6SJustin Miller 
211*6bbf09b6SJustin Miller     return E_NOTIMPL;
212*6bbf09b6SJustin Miller }
213*6bbf09b6SJustin Miller 
214*6bbf09b6SJustin Miller /**********************************************************************
215*6bbf09b6SJustin Miller  *           DwmRegisterThumbnail         (DWMAPI.@)
216*6bbf09b6SJustin Miller  */
DwmRegisterThumbnail(HWND dest,HWND src,PHTHUMBNAIL thumbnail_id)217*6bbf09b6SJustin Miller HRESULT WINAPI DwmRegisterThumbnail(HWND dest, HWND src, PHTHUMBNAIL thumbnail_id)
218*6bbf09b6SJustin Miller {
219*6bbf09b6SJustin Miller     FIXME("(%p %p %p) stub\n", dest, src, thumbnail_id);
220*6bbf09b6SJustin Miller 
221*6bbf09b6SJustin Miller     return E_NOTIMPL;
222*6bbf09b6SJustin Miller }
223*6bbf09b6SJustin Miller 
get_display_frequency(void)224*6bbf09b6SJustin Miller static int get_display_frequency(void)
225*6bbf09b6SJustin Miller {
226*6bbf09b6SJustin Miller     DEVMODEW mode;
227*6bbf09b6SJustin Miller     BOOL ret;
228*6bbf09b6SJustin Miller 
229*6bbf09b6SJustin Miller     memset(&mode, 0, sizeof(mode));
230*6bbf09b6SJustin Miller     mode.dmSize = sizeof(mode);
231*6bbf09b6SJustin Miller     ret = EnumDisplaySettingsExW(NULL, ENUM_CURRENT_SETTINGS, &mode, 0);
232*6bbf09b6SJustin Miller     if (ret && mode.dmFields & DM_DISPLAYFREQUENCY && mode.dmDisplayFrequency)
233*6bbf09b6SJustin Miller     {
234*6bbf09b6SJustin Miller         return mode.dmDisplayFrequency;
235*6bbf09b6SJustin Miller     }
236*6bbf09b6SJustin Miller     else
237*6bbf09b6SJustin Miller     {
238*6bbf09b6SJustin Miller         WARN("Failed to query display frequency, returning a fallback value.\n");
239*6bbf09b6SJustin Miller         return 60;
240*6bbf09b6SJustin Miller     }
241*6bbf09b6SJustin Miller }
242*6bbf09b6SJustin Miller 
243*6bbf09b6SJustin Miller /**********************************************************************
244*6bbf09b6SJustin Miller  *           DwmGetCompositionTimingInfo         (DWMAPI.@)
245*6bbf09b6SJustin Miller  */
DwmGetCompositionTimingInfo(HWND hwnd,DWM_TIMING_INFO * info)246*6bbf09b6SJustin Miller HRESULT WINAPI DwmGetCompositionTimingInfo(HWND hwnd, DWM_TIMING_INFO *info)
247*6bbf09b6SJustin Miller {
248*6bbf09b6SJustin Miller     LARGE_INTEGER performance_frequency, qpc;
249*6bbf09b6SJustin Miller     static int i, display_frequency;
250*6bbf09b6SJustin Miller 
251*6bbf09b6SJustin Miller     if (!info)
252*6bbf09b6SJustin Miller         return E_INVALIDARG;
253*6bbf09b6SJustin Miller 
254*6bbf09b6SJustin Miller     if (info->cbSize != sizeof(DWM_TIMING_INFO))
255*6bbf09b6SJustin Miller         return MILERR_MISMATCHED_SIZE;
256*6bbf09b6SJustin Miller 
257*6bbf09b6SJustin Miller     if(!i++) FIXME("(%p %p)\n", hwnd, info);
258*6bbf09b6SJustin Miller 
259*6bbf09b6SJustin Miller     memset(info, 0, info->cbSize);
260*6bbf09b6SJustin Miller     info->cbSize = sizeof(DWM_TIMING_INFO);
261*6bbf09b6SJustin Miller 
262*6bbf09b6SJustin Miller     display_frequency = get_display_frequency();
263*6bbf09b6SJustin Miller     info->rateRefresh.uiNumerator = display_frequency;
264*6bbf09b6SJustin Miller     info->rateRefresh.uiDenominator = 1;
265*6bbf09b6SJustin Miller     info->rateCompose.uiNumerator = display_frequency;
266*6bbf09b6SJustin Miller     info->rateCompose.uiDenominator = 1;
267*6bbf09b6SJustin Miller 
268*6bbf09b6SJustin Miller     QueryPerformanceFrequency(&performance_frequency);
269*6bbf09b6SJustin Miller     info->qpcRefreshPeriod = performance_frequency.QuadPart / display_frequency;
270*6bbf09b6SJustin Miller 
271*6bbf09b6SJustin Miller     QueryPerformanceCounter(&qpc);
272*6bbf09b6SJustin Miller     info->qpcVBlank = (qpc.QuadPart / info->qpcRefreshPeriod) * info->qpcRefreshPeriod;
273*6bbf09b6SJustin Miller 
274*6bbf09b6SJustin Miller     return S_OK;
275*6bbf09b6SJustin Miller }
276*6bbf09b6SJustin Miller 
277*6bbf09b6SJustin Miller /**********************************************************************
278*6bbf09b6SJustin Miller  *           DwmAttachMilContent         (DWMAPI.@)
279*6bbf09b6SJustin Miller  */
DwmAttachMilContent(HWND hwnd)280*6bbf09b6SJustin Miller HRESULT WINAPI DwmAttachMilContent(HWND hwnd)
281*6bbf09b6SJustin Miller {
282*6bbf09b6SJustin Miller     FIXME("(%p) stub\n", hwnd);
283*6bbf09b6SJustin Miller     return E_NOTIMPL;
284*6bbf09b6SJustin Miller }
285*6bbf09b6SJustin Miller 
286*6bbf09b6SJustin Miller /**********************************************************************
287*6bbf09b6SJustin Miller  *           DwmDetachMilContent         (DWMAPI.@)
288*6bbf09b6SJustin Miller  */
DwmDetachMilContent(HWND hwnd)289*6bbf09b6SJustin Miller HRESULT WINAPI DwmDetachMilContent(HWND hwnd)
290*6bbf09b6SJustin Miller {
291*6bbf09b6SJustin Miller     FIXME("(%p) stub\n", hwnd);
292*6bbf09b6SJustin Miller     return E_NOTIMPL;
293*6bbf09b6SJustin Miller }
294*6bbf09b6SJustin Miller 
295*6bbf09b6SJustin Miller /**********************************************************************
296*6bbf09b6SJustin Miller  *           DwmUpdateThumbnailProperties         (DWMAPI.@)
297*6bbf09b6SJustin Miller  */
DwmUpdateThumbnailProperties(HTHUMBNAIL thumbnail,const DWM_THUMBNAIL_PROPERTIES * props)298*6bbf09b6SJustin Miller HRESULT WINAPI DwmUpdateThumbnailProperties(HTHUMBNAIL thumbnail, const DWM_THUMBNAIL_PROPERTIES *props)
299*6bbf09b6SJustin Miller {
300*6bbf09b6SJustin Miller     FIXME("(%p, %p) stub\n", thumbnail, props);
301*6bbf09b6SJustin Miller     return E_NOTIMPL;
302*6bbf09b6SJustin Miller }
303*6bbf09b6SJustin Miller 
304*6bbf09b6SJustin Miller /**********************************************************************
305*6bbf09b6SJustin Miller  *           DwmSetPresentParameters         (DWMAPI.@)
306*6bbf09b6SJustin Miller  */
DwmSetPresentParameters(HWND hwnd,DWM_PRESENT_PARAMETERS * params)307*6bbf09b6SJustin Miller HRESULT WINAPI DwmSetPresentParameters(HWND hwnd, DWM_PRESENT_PARAMETERS *params)
308*6bbf09b6SJustin Miller {
309*6bbf09b6SJustin Miller     FIXME("(%p %p) stub\n", hwnd, params);
310*6bbf09b6SJustin Miller     return S_OK;
311*6bbf09b6SJustin Miller };
312*6bbf09b6SJustin Miller 
313*6bbf09b6SJustin Miller /**********************************************************************
314*6bbf09b6SJustin Miller  *           DwmSetIconicLivePreviewBitmap         (DWMAPI.@)
315*6bbf09b6SJustin Miller  */
DwmSetIconicLivePreviewBitmap(HWND hwnd,HBITMAP hbmp,POINT * pos,DWORD flags)316*6bbf09b6SJustin Miller HRESULT WINAPI DwmSetIconicLivePreviewBitmap(HWND hwnd, HBITMAP hbmp, POINT *pos, DWORD flags)
317*6bbf09b6SJustin Miller {
318*6bbf09b6SJustin Miller     FIXME("(%p %p %p %lx) stub\n", hwnd, hbmp, pos, flags);
319*6bbf09b6SJustin Miller     return S_OK;
320*6bbf09b6SJustin Miller };
321*6bbf09b6SJustin Miller 
322*6bbf09b6SJustin Miller /**********************************************************************
323*6bbf09b6SJustin Miller  *           DwmSetIconicThumbnail         (DWMAPI.@)
324*6bbf09b6SJustin Miller  */
DwmSetIconicThumbnail(HWND hwnd,HBITMAP hbmp,DWORD flags)325*6bbf09b6SJustin Miller HRESULT WINAPI DwmSetIconicThumbnail(HWND hwnd, HBITMAP hbmp, DWORD flags)
326*6bbf09b6SJustin Miller {
327*6bbf09b6SJustin Miller     FIXME("(%p %p %lx) stub\n", hwnd, hbmp, flags);
328*6bbf09b6SJustin Miller     return S_OK;
329*6bbf09b6SJustin Miller };
330*6bbf09b6SJustin Miller 
331*6bbf09b6SJustin Miller /**********************************************************************
332*6bbf09b6SJustin Miller  *           DwmpGetColorizationParameters         (DWMAPI.@)
333*6bbf09b6SJustin Miller  */
DwmpGetColorizationParameters(void * params)334*6bbf09b6SJustin Miller HRESULT WINAPI DwmpGetColorizationParameters(void *params)
335*6bbf09b6SJustin Miller {
336*6bbf09b6SJustin Miller     FIXME("(%p) stub\n", params);
337*6bbf09b6SJustin Miller     return E_NOTIMPL;
338*6bbf09b6SJustin Miller }
339