winex11: Sync the window attributes when switching a window to embedded.
[wine] / dlls / dwmapi / dwmapi_main.c
1 /*
2  * Dwmapi
3  *
4  * Copyright 2007 Andras Kovacs
5  *
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.
10  *
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.
15  *
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
19  *
20  */
21
22 #include "config.h"
23 #include <stdarg.h>
24
25 #define NONAMELESSUNION
26 #define NONAMELESSSTRUCT
27 #define COBJMACROS
28 #include "windef.h"
29 #include "winbase.h"
30 #include "wingdi.h"
31 #include "winuser.h"
32 #include "dwmapi.h"
33 #include "wine/debug.h"
34
35 WINE_DEFAULT_DEBUG_CHANNEL(dwmapi);
36
37
38 /* At process attach */
39 BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv)
40 {
41     switch(fdwReason)
42     {
43     case DLL_WINE_PREATTACH:
44         return FALSE;  /* prefer native version */
45     case DLL_PROCESS_ATTACH:
46         DisableThreadLibraryCalls( hInstDLL );
47         break;
48     }
49     return TRUE;
50 }
51
52 /**********************************************************************
53  *           DwmIsCompositionEnabled         (DWMAPI.@)
54  */
55 HRESULT WINAPI DwmIsCompositionEnabled(BOOL *enabled)
56 {
57     static int once;
58     if (!once)
59     {
60         FIXME("%p\n", enabled);
61         once = 1;
62     }
63     else
64         TRACE("%p\n", enabled);
65
66     *enabled = FALSE;
67     return S_OK;
68 }
69
70 /**********************************************************************
71  *           DwmEnableComposition         (DWMAPI.102)
72  */
73 HRESULT WINAPI DwmEnableComposition(UINT uCompositionAction)
74 {
75     FIXME("(%d) stub\n", uCompositionAction);
76
77     return S_OK;
78 }
79
80 /**********************************************************************
81  *           DwmExtendFrameIntoClientArea    (DWMAPI.@)
82  */
83 HRESULT WINAPI DwmExtendFrameIntoClientArea(HWND hwnd, const MARGINS* margins)
84 {
85     FIXME("(%p, %p) stub\n", hwnd, margins);
86
87     return E_NOTIMPL;
88 }
89
90 /**********************************************************************
91  *           DwmGetColorizationColor      (DWMAPI.@)
92  */
93 HRESULT WINAPI DwmGetColorizationColor(DWORD *colorization, BOOL opaque_blend)
94 {
95     FIXME("(%p, %d) stub\n", colorization, opaque_blend);
96
97     return E_NOTIMPL;
98 }
99
100 /**********************************************************************
101  *                  DwmFlush              (DWMAPI.@)
102  */
103 HRESULT WINAPI DwmFlush(void)
104 {
105     FIXME("() stub\n");
106
107     return E_NOTIMPL;
108 }
109
110 /**********************************************************************
111  *           DwmSetWindowAttribute         (DWMAPI.@)
112  */
113 HRESULT WINAPI DwmSetWindowAttribute(HWND hwnd, DWORD attributenum, LPCVOID attribute, DWORD size)
114 {
115     FIXME("(%p, %x, %p, %x) stub\n", hwnd, attributenum, attribute, size);
116
117     return E_NOTIMPL;
118 }
119
120 /**********************************************************************
121  *           DwmGetGraphicsStreamClient         (DWMAPI.@)
122  */
123 HRESULT WINAPI DwmGetGraphicsStreamClient(UINT uIndex, UUID *pClientUuid)
124 {
125     FIXME("(%d, %p) stub\n", uIndex, pClientUuid);
126
127     return E_NOTIMPL;
128 }
129
130 /**********************************************************************
131  *           DwmGetTransportAttributes         (DWMAPI.@)
132  */
133 HRESULT WINAPI DwmGetTransportAttributes(BOOL *pfIsRemoting, BOOL *pfIsConnected, DWORD *pDwGeneration)
134 {
135     FIXME("(%p, %p, %p) stub\n", pfIsRemoting, pfIsConnected, pDwGeneration);
136
137     return E_NOTIMPL;
138 }
139
140 /**********************************************************************
141  *           DwmUnregisterThumbnail         (DWMAPI.@)
142  */
143 HRESULT WINAPI DwmUnregisterThumbnail(HTHUMBNAIL thumbnail)
144 {
145     FIXME("(%p) stub\n", thumbnail);
146
147     return E_NOTIMPL;
148 }
149
150 /**********************************************************************
151  *           DwmEnableMMCSS         (DWMAPI.@)
152  */
153 HRESULT WINAPI DwmEnableMMCSS(BOOL enableMMCSS)
154 {
155     FIXME("(%d) stub\n", enableMMCSS);
156
157     return S_OK;
158 }
159
160 /**********************************************************************
161  *           DwmGetGraphicsStreamTransformHint         (DWMAPI.@)
162  */
163 HRESULT WINAPI DwmGetGraphicsStreamTransformHint(UINT uIndex, MilMatrix3x2D *pTransform)
164 {
165     FIXME("(%d, %p) stub\n", uIndex, pTransform);
166
167     return E_NOTIMPL;
168 }
169
170 /**********************************************************************
171  *           DwmEnableBlurBehindWindow         (DWMAPI.@)
172  */
173 HRESULT WINAPI DwmEnableBlurBehindWindow(HWND hWnd, const DWM_BLURBEHIND *pBlurBuf)
174 {
175     FIXME("%p %p\n", hWnd, pBlurBuf);
176
177     return E_NOTIMPL;
178 }
179
180 /**********************************************************************
181  *           DwmDefWindowProc         (DWMAPI.@)
182  */
183 BOOL WINAPI DwmDefWindowProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, LRESULT *plResult)
184 {
185     static int i;
186
187     if (!i++) FIXME("stub\n");
188
189     return FALSE;
190 }
191
192 /**********************************************************************
193  *           DwmGetWindowAttribute         (DWMAPI.@)
194  */
195 HRESULT WINAPI DwmGetWindowAttribute(HWND hwnd, DWORD attribute, PVOID pv_attribute, DWORD size)
196 {
197     FIXME("(%p %d %p %d) stub\n", hwnd, attribute, pv_attribute, size);
198
199     return E_NOTIMPL;
200 }