Fix potential memory issue.
[wine] / dlls / msvideo / vfw16.h
1 #ifndef __WINE_VFW16_H
2 #define __WINE_VFW16_H
3
4 #include "vfw.h"
5 #include "wine/windef16.h"
6
7 #ifdef __cplusplus
8 extern "C" {
9 #endif  /* __cplusplus */
10
11 typedef HANDLE16 HDRAWDIB16;
12
13 #include "pshpack1.h"
14
15 typedef struct {
16         DWORD dwSize;
17         DWORD fccType;
18         DWORD fccHandler;
19         DWORD dwFlags;
20         DWORD dwVersion;
21         DWORD dwVersionICM;
22         /*
23          * under Win16, normal chars are used
24          */
25         CHAR szName[16];
26         CHAR szDescription[128];
27         CHAR szDriver[128];
28 } ICINFO16;
29
30 typedef struct {
31     DWORD               dwFlags;
32     LPBITMAPINFOHEADER  lpbiSrc;
33     LPVOID              lpSrc;
34     LPBITMAPINFOHEADER  lpbiDst;
35     LPVOID              lpDst;
36
37     INT16               xDst;       /* destination rectangle */
38     INT16               yDst;
39     INT16               dxDst;
40     INT16               dyDst;
41
42     INT16               xSrc;       /* source rectangle */
43     INT16               ySrc;
44     INT16               dxSrc;
45     INT16               dySrc;
46 } ICDECOMPRESSEX16;
47
48 typedef struct {
49         DWORD           dwFlags;
50         HPALETTE16      hpal;
51         HWND16          hwnd;
52         HDC16           hdc;
53         INT16           xDst;
54         INT16           yDst;
55         INT16           dxDst;
56         INT16           dyDst;
57         LPBITMAPINFOHEADER      lpbi;
58         INT16           xSrc;
59         INT16           ySrc;
60         INT16           dxSrc;
61         INT16           dySrc;
62         DWORD           dwRate;
63         DWORD           dwScale;
64 } ICDRAWBEGIN16;
65
66 #include "poppack.h"
67
68 typedef struct {
69         DWORD dwFlags;
70         LPBITMAPINFOHEADER lpbiIn;
71         LPBITMAPINFOHEADER lpbiSuggest;
72         INT16 dxSrc;
73         INT16 dySrc;
74         INT16 dxDst;
75         INT16 dyDst;
76         HIC16 hicDecompressor;
77 } ICDRAWSUGGEST16;
78
79 DWORD   VFWAPIV ICDraw16(HIC16,DWORD,LPVOID,LPVOID,DWORD,LONG);
80 DWORD   VFWAPIV ICDrawBegin16(HIC16,DWORD,HPALETTE16,HWND16,HDC16,INT16,
81                               INT16,INT16,INT16,LPBITMAPINFOHEADER,
82                               INT16,INT16,INT16,INT16,DWORD,DWORD);
83 LRESULT WINAPI  ICClose16(HIC16);
84 DWORD   VFWAPIV ICCompress16(HIC16,DWORD,LPBITMAPINFOHEADER,LPVOID,
85                              LPBITMAPINFOHEADER,LPVOID,LPDWORD,
86                              LPDWORD,LONG,DWORD,DWORD,
87                              LPBITMAPINFOHEADER,LPVOID);
88 DWORD   VFWAPIV ICDecompress16(HIC16,DWORD,LPBITMAPINFOHEADER,LPVOID,
89                                LPBITMAPINFOHEADER,LPVOID);
90 HIC16   VFWAPI  ICGetDisplayFormat16(HIC16,LPBITMAPINFOHEADER,
91                                      LPBITMAPINFOHEADER,INT16,INT16,
92                                      INT16);
93 LRESULT VFWAPI  ICGetInfo16(HIC16,ICINFO16 *,DWORD);
94 BOOL16  VFWAPI  ICInfo16(DWORD,DWORD,ICINFO16 *);
95 HIC16   VFWAPI  ICLocate16(DWORD,DWORD,LPBITMAPINFOHEADER,
96                            LPBITMAPINFOHEADER,WORD);
97 LRESULT VFWAPIV ICMessage16(void);
98 HIC16   VFWAPI  ICOpen16(DWORD,DWORD,UINT16);
99 HIC16   VFWAPI  ICOpenFunction16(DWORD,DWORD,UINT16,FARPROC16);
100 LRESULT VFWAPI  ICSendMessage16(HIC16,UINT16,DWORD,DWORD);
101
102 #ifdef __cplusplus
103 }
104 #endif  /* __cplusplus */
105
106 #endif  /* __WINE_VFW16_H */