ReactOS 0.4.17-dev-934-g091855f
ddrawex_private.h
Go to the documentation of this file.
1/*
2 * Copyright 2006 Ulrich Czekalla
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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19#ifndef __WINE_DLLS_DDRAWEX_DDRAWEX_PRIVATE_H
20#define __WINE_DLLS_DDRAWEX_DDRAWEX_PRIVATE_H
21
22DEFINE_GUID(CLSID_DirectDrawFactory, 0x4fd2a832, 0x86c8, 0x11d0, 0x8f, 0xca, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);
23DEFINE_GUID(IID_IDirectDrawFactory, 0x4fd2a833, 0x86c8, 0x11d0, 0x8f, 0xca, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);
24
25#define INTERFACE IDirectDrawFactory
26DECLARE_INTERFACE_(IDirectDrawFactory, IUnknown)
27{
31 STDMETHOD(CreateDirectDraw)(THIS_ GUID * pGUID, HWND hWnd, DWORD dwCoopLevelFlags,
32 DWORD dwReserved, IUnknown *pUnkOuter, IDirectDraw **ppDirectDraw) PURE;
33 STDMETHOD(_DirectDrawEnumerate)(THIS_ LPDDENUMCALLBACKW cb, void *ctx) PURE;
34};
35#undef INTERFACE
36
37#if !defined(__cplusplus) || defined(CINTERFACE)
38/*** IUnknown methods ***/
39#define IDirectDrawFactory_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
40#define IDirectDrawFactory_AddRef(p) (p)->lpVtbl->AddRef(p)
41#define IDirectDrawFactory_Release(p) (p)->lpVtbl->Release(p)
42#define IDirectDrawFactory_CreateDirectDraw(p,a,b,c,d,e,f) (p)->lpVtbl->CreateDirectDraw(p,a,b,c,d,e,f)
43#define IDirectDrawFactory_DirectDrawEnumerate(p,a,b) (p)->lpVtbl->_DirectDrawEnumerate(p,a,b)
44#endif
45
46
47HRESULT WINAPI ddrawex_factory_CreateDirectDraw(IDirectDrawFactory *iface,
48 GUID *guid, HWND window, DWORD coop_level, DWORD reserved, IUnknown *outer_unknown,
49 IDirectDraw **ddraw);
50
53
54struct ddrawex
55{
56 IDirectDraw IDirectDraw_iface;
57 IDirectDraw2 IDirectDraw2_iface;
58 IDirectDraw3 IDirectDraw3_iface;
59 IDirectDraw4 IDirectDraw4_iface;
61
62 /* The interface we're forwarding to */
63 IDirectDraw4 *parent;
64};
65
66IDirectDraw4 *dd_get_outer(IDirectDraw4 *inner);
67IDirectDraw4 *dd_get_inner(IDirectDraw4 *outer);
68
70{
71 IDirectDrawSurface3 IDirectDrawSurface3_iface;
72 IDirectDrawSurface4 IDirectDrawSurface4_iface;
74
75 /* The interface we're forwarding to */
76 IDirectDrawSurface4 *parent;
77
80
81 /* An UUID we use to store the outer surface as private data in the inner surface */
82#define IID_DDrawexPriv IID_IDirectDrawSurface4
83};
84
85struct ddrawex_surface *unsafe_impl_from_IDirectDrawSurface4(IDirectDrawSurface4 *iface);
86IDirectDrawSurface4 *dds_get_outer(IDirectDrawSurface4 *inner);
87HRESULT prepare_permanent_dc(IDirectDrawSurface4 *iface);
88
89#endif /* __WINE_DLLS_DDRAWEX_DDRAWEX_PRIVATE_H */
HWND hWnd
Definition: settings.c:17
#define DECLARE_INTERFACE_(i, b)
Definition: basetyps.h:78
#define PURE
Definition: basetyps.h:64
#define THIS_
Definition: basetyps.h:65
#define THIS
Definition: basetyps.h:66
#define STDMETHOD_(t, m)
Definition: basetyps.h:63
#define STDMETHOD(m)
Definition: basetyps.h:62
_In_ BOOLEAN Release
Definition: cdrom.h:920
IDirectDraw4 * dd_get_outer(IDirectDraw4 *inner)
void DDSD_to_DDSD2(const DDSURFACEDESC *in, DDSURFACEDESC2 *out)
Definition: utils.c:1198
void DDSD2_to_DDSD(const DDSURFACEDESC2 *in, DDSURFACEDESC *out)
Definition: utils.c:1242
IDirectDraw4 * dd_get_inner(IDirectDraw4 *outer)
Definition: ddraw.c:1458
IDirectDrawSurface4 * dds_get_outer(IDirectDrawSurface4 *inner)
Definition: surface.c:1195
HRESULT WINAPI ddrawex_factory_CreateDirectDraw(IDirectDrawFactory *iface, GUID *guid, HWND window, DWORD coop_level, DWORD reserved, IUnknown *outer_unknown, IDirectDraw **ddraw)
Definition: ddraw.c:1415
struct ddrawex_surface * unsafe_impl_from_IDirectDrawSurface4(IDirectDrawSurface4 *iface)
Definition: surface.c:5966
HRESULT prepare_permanent_dc(IDirectDrawSurface4 *iface)
Definition: surface.c:1234
_Check_return_ _In_ PQUERY_INTERFACE QueryInterface
Definition: dispmprt.h:1318
GUID guid
Definition: version.c:147
static MonoProfilerRuntimeShutdownBeginCallback cb
Definition: metahost.c:118
r reserved
Definition: btrfs.c:3006
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
GLuint in
Definition: glext.h:9616
REFIID riid
Definition: atlbase.h:39
static HDC
Definition: imagelist.c:88
static IHTMLWindow2 * window
Definition: events.c:77
static IUnknown * outer
Definition: compobj.c:82
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:83
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
Definition: mswsock.h:95
long LONG
Definition: pedump.c:60
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Definition: guiddef.h:68
#define REFIID
Definition: guiddef.h:118
IDirectDrawSurface4 * parent
IDirectDrawSurface3 IDirectDrawSurface3_iface
IDirectDrawSurface4 IDirectDrawSurface4_iface
IDirectDraw IDirectDraw_iface
IDirectDraw3 IDirectDraw3_iface
IDirectDraw4 * parent
IDirectDraw2 IDirectDraw2_iface
IDirectDraw4 IDirectDraw4_iface
uint32_t ULONG
Definition: typedefs.h:59
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
Definition: wcsftime.cpp:383
#define WINAPI
Definition: msvc.h:6