Added --disable-win16 configure option.
[wine] / dlls / msvideo / 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  */
18
19 #ifndef __WINE_VFW16_H
20 #define __WINE_VFW16_H
21
22 #include "vfw.h"
23 #include "wine/windef16.h"
24
25 #ifdef __cplusplus
26 extern "C" {
27 #endif  /* __cplusplus */
28
29 typedef HANDLE16 HDRAWDIB16;
30
31 #include "pshpack1.h"
32
33 typedef struct {
34         DWORD dwSize;
35         DWORD fccType;
36         DWORD fccHandler;
37         DWORD dwFlags;
38         DWORD dwVersion;
39         DWORD dwVersionICM;
40         /*
41          * under Win16, normal chars are used
42          */
43         CHAR szName[16];
44         CHAR szDescription[128];
45         CHAR szDriver[128];
46 } ICINFO16;
47
48 typedef struct {
49     DWORD               dwFlags;
50     LPBITMAPINFOHEADER  lpbiSrc;
51     LPVOID              lpSrc;
52     LPBITMAPINFOHEADER  lpbiDst;
53     LPVOID              lpDst;
54
55     INT16               xDst;       /* destination rectangle */
56     INT16               yDst;
57     INT16               dxDst;
58     INT16               dyDst;
59
60     INT16               xSrc;       /* source rectangle */
61     INT16               ySrc;
62     INT16               dxSrc;
63     INT16               dySrc;
64 } ICDECOMPRESSEX16;
65
66 typedef struct {
67         DWORD           dwFlags;
68         HPALETTE16      hpal;
69         HWND16          hwnd;
70         HDC16           hdc;
71         INT16           xDst;
72         INT16           yDst;
73         INT16           dxDst;
74         INT16           dyDst;
75         LPBITMAPINFOHEADER      lpbi;
76         INT16           xSrc;
77         INT16           ySrc;
78         INT16           dxSrc;
79         INT16           dySrc;
80         DWORD           dwRate;
81         DWORD           dwScale;
82 } ICDRAWBEGIN16;
83
84 #include "poppack.h"
85
86 typedef struct {
87         DWORD dwFlags;
88         LPBITMAPINFOHEADER lpbiIn;
89         LPBITMAPINFOHEADER lpbiSuggest;
90         INT16 dxSrc;
91         INT16 dySrc;
92         INT16 dxDst;
93         INT16 dyDst;
94         HIC16 hicDecompressor;
95 } ICDRAWSUGGEST16;
96
97 DWORD   VFWAPIV ICDraw16(HIC16,DWORD,LPVOID,LPVOID,DWORD,LONG);
98 DWORD   VFWAPIV ICDrawBegin16(HIC16,DWORD,HPALETTE16,HWND16,HDC16,INT16,
99                               INT16,INT16,INT16,LPBITMAPINFOHEADER,
100                               INT16,INT16,INT16,INT16,DWORD,DWORD);
101 LRESULT WINAPI  ICClose16(HIC16);
102 DWORD   VFWAPIV ICCompress16(HIC16,DWORD,LPBITMAPINFOHEADER,LPVOID,
103                              LPBITMAPINFOHEADER,LPVOID,LPDWORD,
104                              LPDWORD,LONG,DWORD,DWORD,
105                              LPBITMAPINFOHEADER,LPVOID);
106 DWORD   VFWAPIV ICDecompress16(HIC16,DWORD,LPBITMAPINFOHEADER,LPVOID,
107                                LPBITMAPINFOHEADER,LPVOID);
108 HIC16   VFWAPI  ICGetDisplayFormat16(HIC16,LPBITMAPINFOHEADER,
109                                      LPBITMAPINFOHEADER,INT16,INT16,
110                                      INT16);
111 LRESULT VFWAPI  ICGetInfo16(HIC16,ICINFO16 *,DWORD);
112 BOOL16  VFWAPI  ICInfo16(DWORD,DWORD,ICINFO16 *);
113 HIC16   VFWAPI  ICLocate16(DWORD,DWORD,LPBITMAPINFOHEADER,
114                            LPBITMAPINFOHEADER,WORD);
115 LRESULT VFWAPIV ICMessage16(void);
116 HIC16   VFWAPI  ICOpen16(DWORD,DWORD,UINT16);
117 HIC16   VFWAPI  ICOpenFunction16(DWORD,DWORD,UINT16,FARPROC16);
118 LRESULT VFWAPI  ICSendMessage16(HIC16,UINT16,DWORD,DWORD);
119
120 /* handle <-> handle16 conversions */
121 #define HPALETTE_32(h16)        ((HPALETTE)(ULONG_PTR)(h16))
122 #define HPALETTE_16(h32)        (LOWORD(h32))
123
124 #ifdef __cplusplus
125 }
126 #endif  /* __cplusplus */
127
128 #endif  /* __WINE_VFW16_H */