4 * Copyright 2007 Andras Kovacs
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
31 #include "wine/debug.h"
33 WINE_DEFAULT_DEBUG_CHANNEL(dwmapi
);
36 /**********************************************************************
37 * DwmIsCompositionEnabled (DWMAPI.@)
39 HRESULT WINAPI
DwmIsCompositionEnabled(BOOL
*enabled
)
41 RTL_OSVERSIONINFOEXW version
;
43 TRACE("%p\n", enabled
);
49 version
.dwOSVersionInfoSize
= sizeof(version
);
50 if (!RtlGetVersion(&version
))
51 *enabled
= (version
.dwMajorVersion
> 6 || (version
.dwMajorVersion
== 6 && version
.dwMinorVersion
>= 3));
56 /**********************************************************************
57 * DwmEnableComposition (DWMAPI.102)
59 HRESULT WINAPI
DwmEnableComposition(UINT uCompositionAction
)
61 FIXME("(%d) stub\n", uCompositionAction
);
66 /**********************************************************************
67 * DwmExtendFrameIntoClientArea (DWMAPI.@)
69 HRESULT WINAPI
DwmExtendFrameIntoClientArea(HWND hwnd
, const MARGINS
* margins
)
71 FIXME("(%p, %p) stub\n", hwnd
, margins
);
76 /**********************************************************************
77 * DwmGetColorizationColor (DWMAPI.@)
79 HRESULT WINAPI
DwmGetColorizationColor(DWORD
*colorization
, BOOL
*opaque_blend
)
81 FIXME("(%p, %p) stub\n", colorization
, opaque_blend
);
86 /**********************************************************************
89 HRESULT WINAPI
DwmFlush(void)
93 if (!once
++) FIXME("() stub\n");
98 /**********************************************************************
99 * DwmInvalidateIconicBitmaps (DWMAPI.@)
101 HRESULT WINAPI
DwmInvalidateIconicBitmaps(HWND hwnd
)
105 if (!once
++) FIXME("(%p) stub\n", hwnd
);
110 /**********************************************************************
111 * DwmSetWindowAttribute (DWMAPI.@)
113 HRESULT WINAPI
DwmSetWindowAttribute(HWND hwnd
, DWORD attributenum
, LPCVOID attribute
, DWORD size
)
117 if (!once
++) FIXME("(%p, %lx, %p, %lx) stub\n", hwnd
, attributenum
, attribute
, size
);
122 /**********************************************************************
123 * DwmGetGraphicsStreamClient (DWMAPI.@)
125 HRESULT WINAPI
DwmGetGraphicsStreamClient(UINT uIndex
, UUID
*pClientUuid
)
127 FIXME("(%d, %p) stub\n", uIndex
, pClientUuid
);
132 /**********************************************************************
133 * DwmGetTransportAttributes (DWMAPI.@)
135 HRESULT WINAPI
DwmGetTransportAttributes(BOOL
*pfIsRemoting
, BOOL
*pfIsConnected
, DWORD
*pDwGeneration
)
137 FIXME("(%p, %p, %p) stub\n", pfIsRemoting
, pfIsConnected
, pDwGeneration
);
139 return DWM_E_COMPOSITIONDISABLED
;
142 /**********************************************************************
143 * DwmUnregisterThumbnail (DWMAPI.@)
145 HRESULT WINAPI
DwmUnregisterThumbnail(HTHUMBNAIL thumbnail
)
147 FIXME("(%p) stub\n", thumbnail
);
152 /**********************************************************************
153 * DwmEnableMMCSS (DWMAPI.@)
155 HRESULT WINAPI
DwmEnableMMCSS(BOOL enableMMCSS
)
157 FIXME("(%d) stub\n", enableMMCSS
);
162 /**********************************************************************
163 * DwmGetGraphicsStreamTransformHint (DWMAPI.@)
165 HRESULT WINAPI
DwmGetGraphicsStreamTransformHint(UINT uIndex
, MilMatrix3x2D
*pTransform
)
167 FIXME("(%d, %p) stub\n", uIndex
, pTransform
);
172 /**********************************************************************
173 * DwmEnableBlurBehindWindow (DWMAPI.@)
175 HRESULT WINAPI
DwmEnableBlurBehindWindow(HWND hWnd
, const DWM_BLURBEHIND
*pBlurBuf
)
177 FIXME("%p %p\n", hWnd
, pBlurBuf
);
182 /**********************************************************************
183 * DwmDefWindowProc (DWMAPI.@)
185 BOOL WINAPI
DwmDefWindowProc(HWND hWnd
, UINT Msg
, WPARAM wParam
, LPARAM lParam
, LRESULT
*plResult
)
189 if (!i
++) FIXME("stub\n");
194 /**********************************************************************
195 * DwmGetWindowAttribute (DWMAPI.@)
197 HRESULT WINAPI
DwmGetWindowAttribute(HWND hwnd
, DWORD attribute
, PVOID pv_attribute
, DWORD size
)
199 FIXME("(%p %ld %p %ld) stub\n", hwnd
, attribute
, pv_attribute
, size
);
204 /**********************************************************************
205 * DwmRegisterThumbnail (DWMAPI.@)
207 HRESULT WINAPI
DwmRegisterThumbnail(HWND dest
, HWND src
, PHTHUMBNAIL thumbnail_id
)
209 FIXME("(%p %p %p) stub\n", dest
, src
, thumbnail_id
);
214 static int get_display_frequency(void)
219 memset(&mode
, 0, sizeof(mode
));
220 mode
.dmSize
= sizeof(mode
);
221 ret
= EnumDisplaySettingsExW(NULL
, ENUM_CURRENT_SETTINGS
, &mode
, 0);
222 if (ret
&& mode
.dmFields
& DM_DISPLAYFREQUENCY
&& mode
.dmDisplayFrequency
)
224 return mode
.dmDisplayFrequency
;
228 WARN("Failed to query display frequency, returning a fallback value.\n");
233 /**********************************************************************
234 * DwmGetCompositionTimingInfo (DWMAPI.@)
236 HRESULT WINAPI
DwmGetCompositionTimingInfo(HWND hwnd
, DWM_TIMING_INFO
*info
)
238 LARGE_INTEGER performance_frequency
, qpc
;
239 static int i
, display_frequency
;
244 if (info
->cbSize
!= sizeof(DWM_TIMING_INFO
))
245 return MILERR_MISMATCHED_SIZE
;
247 if(!i
++) FIXME("(%p %p)\n", hwnd
, info
);
249 memset(info
, 0, info
->cbSize
);
250 info
->cbSize
= sizeof(DWM_TIMING_INFO
);
252 display_frequency
= get_display_frequency();
253 info
->rateRefresh
.uiNumerator
= display_frequency
;
254 info
->rateRefresh
.uiDenominator
= 1;
255 info
->rateCompose
.uiNumerator
= display_frequency
;
256 info
->rateCompose
.uiDenominator
= 1;
258 QueryPerformanceFrequency(&performance_frequency
);
259 info
->qpcRefreshPeriod
= performance_frequency
.QuadPart
/ display_frequency
;
261 QueryPerformanceCounter(&qpc
);
262 info
->qpcVBlank
= (qpc
.QuadPart
/ info
->qpcRefreshPeriod
) * info
->qpcRefreshPeriod
;
267 /**********************************************************************
268 * DwmAttachMilContent (DWMAPI.@)
270 HRESULT WINAPI
DwmAttachMilContent(HWND hwnd
)
272 FIXME("(%p) stub\n", hwnd
);
276 /**********************************************************************
277 * DwmDetachMilContent (DWMAPI.@)
279 HRESULT WINAPI
DwmDetachMilContent(HWND hwnd
)
281 FIXME("(%p) stub\n", hwnd
);
285 /**********************************************************************
286 * DwmUpdateThumbnailProperties (DWMAPI.@)
288 HRESULT WINAPI
DwmUpdateThumbnailProperties(HTHUMBNAIL thumbnail
, const DWM_THUMBNAIL_PROPERTIES
*props
)
290 FIXME("(%p, %p) stub\n", thumbnail
, props
);
294 /**********************************************************************
295 * DwmSetPresentParameters (DWMAPI.@)
297 HRESULT WINAPI
DwmSetPresentParameters(HWND hwnd
, DWM_PRESENT_PARAMETERS
*params
)
299 FIXME("(%p %p) stub\n", hwnd
, params
);
303 /**********************************************************************
304 * DwmSetIconicLivePreviewBitmap (DWMAPI.@)
306 HRESULT WINAPI
DwmSetIconicLivePreviewBitmap(HWND hwnd
, HBITMAP hbmp
, POINT
*pos
, DWORD flags
)
308 FIXME("(%p %p %p %lx) stub\n", hwnd
, hbmp
, pos
, flags
);
312 /**********************************************************************
313 * DwmSetIconicThumbnail (DWMAPI.@)
315 HRESULT WINAPI
DwmSetIconicThumbnail(HWND hwnd
, HBITMAP hbmp
, DWORD flags
)
317 FIXME("(%p %p %lx) stub\n", hwnd
, hbmp
, flags
);
321 /**********************************************************************
322 * DwmpGetColorizationParameters (DWMAPI.@)
324 HRESULT WINAPI
DwmpGetColorizationParameters(void *params
)
326 FIXME("(%p) stub\n", params
);