xref: /reactos/sdk/include/psdk/ddkernel.h (revision 5100859e)
1 /*
2  * COPYRIGHT:            This file is in the public domain.
3  * PROJECT:              ReactOS kernel
4  * FILE:                 include/psdk/ddkernel.h
5  * PURPOSE:              Directx headers
6  * PROGRAMMER:           Magnus Olsen (greatlrd)
7  *
8  */
9 
10 #ifndef __DDKM_INCLUDED__
11 #define __DDKM_INCLUDED__
12 
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16 
17 #if defined (_WIN32) && !defined (_NO_COM)
18 DEFINE_GUID (IID_IDirectDrawKernel,        0x8D56C120,0x6A08,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8);
19 DEFINE_GUID (IID_IDirectDrawSurfaceKernel, 0x60755DA0,0x6A40,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8);
20 #endif
21 
22 typedef struct _DDKERNELCAPS {
23   DWORD dwSize;
24   DWORD dwCaps;
25   DWORD dwIRQCaps;
26 } DDKERNELCAPS, *LPDDKERNELCAPS;
27 
28 #define DDKERNELCAPS_SKIPFIELDS             0x00000001
29 #define DDKERNELCAPS_AUTOFLIP               0x00000002
30 #define DDKERNELCAPS_SETSTATE               0x00000004
31 #define DDKERNELCAPS_LOCK                   0x00000008
32 #define DDKERNELCAPS_FLIPVIDEOPORT          0x00000010
33 #define DDKERNELCAPS_FLIPOVERLAY            0x00000020
34 #define DDKERNELCAPS_CAPTURE_SYSMEM         0x00000040
35 #define DDKERNELCAPS_CAPTURE_NONLOCALVIDMEM 0x00000080
36 #define DDKERNELCAPS_FIELDPOLARITY          0x00000100
37 #define DDKERNELCAPS_CAPTURE_INVERTED       0x00000200
38 #define DDIRQ_DISPLAY_VSYNC                 0x00000001
39 #define DDIRQ_RESERVED1                     0x00000002
40 #define DDIRQ_VPORT0_VSYNC                  0x00000004
41 #define DDIRQ_VPORT0_LINE                   0x00000008
42 #define DDIRQ_VPORT1_VSYNC                  0x00000010
43 #define DDIRQ_VPORT1_LINE                   0x00000020
44 #define DDIRQ_VPORT2_VSYNC                  0x00000040
45 #define DDIRQ_VPORT2_LINE                   0x00000080
46 #define DDIRQ_VPORT3_VSYNC                  0x00000100
47 #define DDIRQ_VPORT3_LINE                   0x00000200
48 #define DDIRQ_VPORT4_VSYNC                  0x00000400
49 #define DDIRQ_VPORT4_LINE                   0x00000800
50 #define DDIRQ_VPORT5_VSYNC                  0x00001000
51 #define DDIRQ_VPORT5_LINE                   0x00002000
52 #define DDIRQ_VPORT6_VSYNC                  0x00004000
53 #define DDIRQ_VPORT6_LINE                   0x00008000
54 #define DDIRQ_VPORT7_VSYNC                  0x00010000
55 #define DDIRQ_VPORT7_LINE                   0x00020000
56 #define DDIRQ_VPORT8_VSYNC                  0x00040000
57 #define DDIRQ_VPORT8_LINE                   0x00080000
58 #define DDIRQ_VPORT9_VSYNC                  0x00010000
59 #define DDIRQ_VPORT9_LINE                   0x00020000
60 
61 typedef struct IDirectDrawKernel* LPDIRECTDRAWKERNEL;
62 typedef struct IDirectDrawSurfaceKernel* LPDIRECTDRAWSURFACEKERNEL;
63 
64 #if defined(_WIN32) && !defined(_NO_COM)
65 
66 #undef INTERFACE
67 #define INTERFACE IDirectDrawKernel
68 DECLARE_INTERFACE_ (IDirectDrawKernel, IUnknown) {
69   STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
70   STDMETHOD_(ULONG,AddRef) (THIS) PURE;
71   STDMETHOD_(ULONG,Release) (THIS) PURE;
72   STDMETHOD(GetKernelHandle) (THIS_ ULONG*) PURE;
73   STDMETHOD(ReleaseKernelHandle) (THIS) PURE;
74 };
75 
76 #undef INTERFACE
77 #define INTERFACE IDirectDrawSurfaceKernel
78 DECLARE_INTERFACE_ (IDirectDrawSurfaceKernel, IUnknown) {
79   STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
80   STDMETHOD_(ULONG,AddRef) (THIS) PURE;
81   STDMETHOD_(ULONG,Release) (THIS) PURE;
82   STDMETHOD(GetKernelHandle) (THIS_ ULONG*) PURE;
83   STDMETHOD(ReleaseKernelHandle) (THIS) PURE;
84 };
85 
86 #undef INTERFACE
87 #endif /* defined(_WIN32) && !defined(_NO_COM) */
88 
89 #ifdef __cplusplus
90 }
91 #endif
92 
93 #endif
94 
95