wined3d: Implement unfenced updates of double buffered buffers.
[wine] / dlls / msvideo.dll16 / vfw16.h
1 /*
2  * Copyright 1999 Marcus Meissner
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_VFW16_H
20 #define __WINE_VFW16_H
21
22 #include <stdarg.h>
23
24 #include "windef.h"
25 #include "winbase.h"
26 #include "wingdi.h"
27 #include "vfw.h"
28 #include "wownt32.h"
29 #include "wine/windef16.h"
30
31 #ifdef __cplusplus
32 extern "C" {
33 #endif  /* __cplusplus */
34
35 typedef HANDLE16 HDRAWDIB16;
36
37 #include "pshpack1.h"
38
39 typedef struct {
40         DWORD dwSize;
41         DWORD fccType;
42         DWORD fccHandler;
43         DWORD dwFlags;
44         DWORD dwVersion;
45         DWORD dwVersionICM;
46         /*
47          * under Win16, normal chars are used
48          */
49         CHAR szName[16];
50         CHAR szDescription[128];
51         CHAR szDriver[128];
52 } ICINFO16;
53
54 typedef struct {
55     DWORD               dwFlags;
56     LPBITMAPINFOHEADER  lpbiSrc;
57     LPVOID              lpSrc;
58     LPBITMAPINFOHEADER  lpbiDst;
59     LPVOID              lpDst;
60
61     INT16               xDst;       /* destination rectangle */
62     INT16               yDst;
63     INT16               dxDst;
64     INT16               dyDst;
65
66     INT16               xSrc;       /* source rectangle */
67     INT16               ySrc;
68     INT16               dxSrc;
69     INT16               dySrc;
70 } ICDECOMPRESSEX16;
71
72 typedef struct {
73         DWORD           dwFlags;
74         HPALETTE16      hpal;
75         HWND16          hwnd;
76         HDC16           hdc;
77         INT16           xDst;
78         INT16           yDst;
79         INT16           dxDst;
80         INT16           dyDst;
81         LPBITMAPINFOHEADER      lpbi;
82         INT16           xSrc;
83         INT16           ySrc;
84         INT16           dxSrc;
85         INT16           dySrc;
86         DWORD           dwRate;
87         DWORD           dwScale;
88 } ICDRAWBEGIN16;
89
90 #include "poppack.h"
91
92 typedef struct {
93         DWORD dwFlags;
94         LPBITMAPINFOHEADER lpbiIn;
95         LPBITMAPINFOHEADER lpbiSuggest;
96         INT16 dxSrc;
97         INT16 dySrc;
98         INT16 dxDst;
99         INT16 dyDst;
100         HIC16 hicDecompressor;
101 } ICDRAWSUGGEST16;
102
103 DWORD   VFWAPIV ICDraw16(HIC16,DWORD,LPVOID,LPVOID,DWORD,LONG);
104 DWORD   VFWAPIV ICDrawBegin16(HIC16,DWORD,HPALETTE16,HWND16,HDC16,INT16,
105                               INT16,INT16,INT16,LPBITMAPINFOHEADER,
106                               INT16,INT16,INT16,INT16,DWORD,DWORD);
107 LRESULT WINAPI  ICClose16(HIC16);
108 DWORD   VFWAPIV ICCompress16(HIC16,DWORD,LPBITMAPINFOHEADER,LPVOID,
109                              LPBITMAPINFOHEADER,LPVOID,LPDWORD,
110                              LPDWORD,LONG,DWORD,DWORD,
111                              LPBITMAPINFOHEADER,LPVOID);
112 DWORD   VFWAPIV ICDecompress16(HIC16,DWORD,LPBITMAPINFOHEADER,LPVOID,
113                                LPBITMAPINFOHEADER,LPVOID);
114 HIC16   VFWAPI  ICGetDisplayFormat16(HIC16,LPBITMAPINFOHEADER,
115                                      LPBITMAPINFOHEADER,INT16,INT16,
116                                      INT16);
117 LRESULT VFWAPI  ICGetInfo16(HIC16,ICINFO16 *,DWORD);
118 BOOL16  VFWAPI  ICInfo16(DWORD,DWORD,ICINFO16 *);
119 HIC16   VFWAPI  ICLocate16(DWORD,DWORD,LPBITMAPINFOHEADER,
120                            LPBITMAPINFOHEADER,WORD);
121 LRESULT VFWAPIV ICMessage16( HIC16 hic, UINT16 msg, UINT16 cb, VA_LIST16 valist );
122 HIC16   VFWAPI  ICOpen16(DWORD,DWORD,UINT16);
123 HIC16   VFWAPI  ICOpenFunction16(DWORD,DWORD,UINT16,FARPROC16);
124 LRESULT VFWAPI  ICSendMessage16(HIC16,UINT16,DWORD,DWORD);
125
126 #ifdef __cplusplus
127 }
128 #endif  /* __cplusplus */
129
130 #endif  /* __WINE_VFW16_H */