Fix subclassing to support nested messages.
[wine] / dlls / ddraw / direct3d / main.h
1 /*
2  * Copyright 2002 Lionel Ulmer
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  */
18
19 /* This is defined here so as to be able to put them in 'drivers' */
20
21 HRESULT WINAPI
22 Main_IDirect3DImpl_7_EnumDevices(LPDIRECT3D7 iface,
23                                  LPD3DENUMDEVICESCALLBACK7 lpEnumDevicesCallback,
24                                  LPVOID lpUserArg);
25
26 HRESULT WINAPI
27 Main_IDirect3DImpl_7_CreateDevice(LPDIRECT3D7 iface,
28                                   REFCLSID rclsid,
29                                   LPDIRECTDRAWSURFACE7 lpDDS,
30                                   LPDIRECT3DDEVICE7* lplpD3DDevice);
31
32 HRESULT WINAPI
33 Main_IDirect3DImpl_7_3T_CreateVertexBuffer(LPDIRECT3D7 iface,
34                                            LPD3DVERTEXBUFFERDESC lpD3DVertBufDesc,
35                                            LPDIRECT3DVERTEXBUFFER7* lplpD3DVertBuf,
36                                            DWORD dwFlags);
37
38 HRESULT WINAPI
39 Main_IDirect3DImpl_7_3T_EnumZBufferFormats(LPDIRECT3D7 iface,
40                                            REFCLSID riidDevice,
41                                            LPD3DENUMPIXELFORMATSCALLBACK lpEnumCallback,
42                                            LPVOID lpContext);
43
44 HRESULT WINAPI
45 Main_IDirect3DImpl_7_3T_EvictManagedTextures(LPDIRECT3D7 iface);
46
47 HRESULT WINAPI
48 Main_IDirect3DImpl_3_2T_1T_EnumDevices(LPDIRECT3D3 iface,
49                                        LPD3DENUMDEVICESCALLBACK lpEnumDevicesCallback,
50                                        LPVOID lpUserArg);
51
52 HRESULT WINAPI
53 Main_IDirect3DImpl_3_2T_1T_CreateLight(LPDIRECT3D3 iface,
54                                        LPDIRECT3DLIGHT* lplpDirect3DLight,
55                                        IUnknown* pUnkOuter);
56
57 HRESULT WINAPI
58 Main_IDirect3DImpl_3_2T_1T_CreateMaterial(LPDIRECT3D3 iface,
59                                           LPDIRECT3DMATERIAL3* lplpDirect3DMaterial3,
60                                           IUnknown* pUnkOuter);
61
62 HRESULT WINAPI
63 Main_IDirect3DImpl_3_2T_1T_CreateViewport(LPDIRECT3D3 iface,
64                                           LPDIRECT3DVIEWPORT3* lplpD3DViewport3,
65                                           IUnknown* pUnkOuter);
66
67 HRESULT WINAPI
68 Main_IDirect3DImpl_3_2T_1T_FindDevice(LPDIRECT3D3 iface,
69                                       LPD3DFINDDEVICESEARCH lpD3DDFS,
70                                       LPD3DFINDDEVICERESULT lpD3DFDR);
71
72 HRESULT WINAPI
73 Main_IDirect3DImpl_3_CreateDevice(LPDIRECT3D3 iface,
74                                   REFCLSID rclsid,
75                                   LPDIRECTDRAWSURFACE4 lpDDS,
76                                   LPDIRECT3DDEVICE3* lplpD3DDevice3,
77                                   LPUNKNOWN lpUnk);
78
79 HRESULT WINAPI
80 Thunk_IDirect3DImpl_3_CreateVertexBuffer(LPDIRECT3D3 iface,
81                                          LPD3DVERTEXBUFFERDESC lpD3DVertBufDesc,
82                                          LPDIRECT3DVERTEXBUFFER* lplpD3DVertBuf,
83                                          DWORD dwFlags,
84                                          LPUNKNOWN lpUnk);
85
86 HRESULT WINAPI
87 Thunk_IDirect3DImpl_2_CreateMaterial(LPDIRECT3D2 iface,
88                                      LPDIRECT3DMATERIAL2* lplpDirect3DMaterial2,
89                                      IUnknown* pUnkOuter);
90
91 HRESULT WINAPI
92 Thunk_IDirect3DImpl_2_CreateViewport(LPDIRECT3D2 iface,
93                                      LPDIRECT3DVIEWPORT2* lplpD3DViewport2,
94                                      IUnknown* pUnkOuter);
95
96 HRESULT WINAPI
97 Main_IDirect3DImpl_2_CreateDevice(LPDIRECT3D2 iface,
98                                   REFCLSID rclsid,
99                                   LPDIRECTDRAWSURFACE lpDDS,
100                                   LPDIRECT3DDEVICE2* lplpD3DDevice2);
101
102 HRESULT WINAPI
103 Main_IDirect3DImpl_1_Initialize(LPDIRECT3D iface,
104                                 REFIID riid);
105
106 HRESULT WINAPI
107 Thunk_IDirect3DImpl_1_CreateMaterial(LPDIRECT3D iface,
108                                      LPDIRECT3DMATERIAL* lplpDirect3DMaterial,
109                                      IUnknown* pUnkOuter);
110
111 HRESULT WINAPI
112 Thunk_IDirect3DImpl_1_CreateViewport(LPDIRECT3D iface,
113                                      LPDIRECT3DVIEWPORT* lplpD3DViewport,
114                                      IUnknown* pUnkOuter);
115
116 HRESULT WINAPI
117 Main_IDirect3DImpl_1_FindDevice(LPDIRECT3D iface,
118                                 LPD3DFINDDEVICESEARCH lpD3DDFS,
119                                 LPD3DFINDDEVICERESULT lplpD3DDevice);
120
121 HRESULT WINAPI
122 Thunk_IDirect3DImpl_7_QueryInterface(LPDIRECT3D7 iface,
123                                      REFIID riid,
124                                      LPVOID* obp);
125
126 HRESULT WINAPI
127 Thunk_IDirect3DImpl_3_QueryInterface(LPDIRECT3D3 iface,
128                                      REFIID riid,
129                                      LPVOID* obp);
130
131 HRESULT WINAPI
132 Thunk_IDirect3DImpl_2_QueryInterface(LPDIRECT3D2 iface,
133                                      REFIID riid,
134                                      LPVOID* obp);
135
136 HRESULT WINAPI
137 Thunk_IDirect3DImpl_1_QueryInterface(LPDIRECT3D iface,
138                                      REFIID riid,
139                                      LPVOID* obp);
140
141 ULONG WINAPI
142 Thunk_IDirect3DImpl_7_AddRef(LPDIRECT3D7 iface);
143
144 ULONG WINAPI
145 Thunk_IDirect3DImpl_3_AddRef(LPDIRECT3D3 iface);
146
147 ULONG WINAPI
148 Thunk_IDirect3DImpl_2_AddRef(LPDIRECT3D2 iface);
149
150 ULONG WINAPI
151 Thunk_IDirect3DImpl_1_AddRef(LPDIRECT3D iface);
152
153 ULONG WINAPI
154 Thunk_IDirect3DImpl_7_Release(LPDIRECT3D7 iface);
155
156 ULONG WINAPI
157 Thunk_IDirect3DImpl_3_Release(LPDIRECT3D3 iface);
158
159 ULONG WINAPI
160 Thunk_IDirect3DImpl_2_Release(LPDIRECT3D2 iface);
161
162 ULONG WINAPI
163 Thunk_IDirect3DImpl_1_Release(LPDIRECT3D iface);
164
165 HRESULT WINAPI
166 Thunk_IDirect3DImpl_3_EnumZBufferFormats(LPDIRECT3D3 iface,
167                                          REFCLSID riidDevice,
168                                          LPD3DENUMPIXELFORMATSCALLBACK lpEnumCallback,
169                                          LPVOID lpContext);
170
171 HRESULT WINAPI
172 Thunk_IDirect3DImpl_3_EvictManagedTextures(LPDIRECT3D3 iface);
173
174 HRESULT WINAPI
175 Thunk_IDirect3DImpl_2_EnumDevices(LPDIRECT3D2 iface,
176                                   LPD3DENUMDEVICESCALLBACK lpEnumDevicesCallback,
177                                   LPVOID lpUserArg);
178
179 HRESULT WINAPI
180 Thunk_IDirect3DImpl_1_EnumDevices(LPDIRECT3D iface,
181                                   LPD3DENUMDEVICESCALLBACK lpEnumDevicesCallback,
182                                   LPVOID lpUserArg);
183
184 HRESULT WINAPI
185 Thunk_IDirect3DImpl_2_CreateLight(LPDIRECT3D2 iface,
186                                   LPDIRECT3DLIGHT* lplpDirect3DLight,
187                                   IUnknown* pUnkOuter);
188
189 HRESULT WINAPI
190 Thunk_IDirect3DImpl_1_CreateLight(LPDIRECT3D iface,
191                                   LPDIRECT3DLIGHT* lplpDirect3DLight,
192                                   IUnknown* pUnkOuter);
193
194 HRESULT WINAPI
195 Thunk_IDirect3DImpl_1_FindDevice(LPDIRECT3D iface,
196                                  LPD3DFINDDEVICESEARCH lpD3DDFS,
197                                  LPD3DFINDDEVICERESULT lplpD3DDevice);
198
199 HRESULT WINAPI
200 Thunk_IDirect3DImpl_2_FindDevice(LPDIRECT3D2 iface,
201                                  LPD3DFINDDEVICESEARCH lpD3DDFS,
202                                  LPD3DFINDDEVICERESULT lpD3DFDR);