fixed a number of long standing bugs:
[wine/dcerpc.git] / include / animate.h
blobeade4bd8f3eb4c7edd1f68ad46e011e6327e2ebb
1 /*
2 * Animation class extra info
4 * Copyright 1998 Eric Kohl
5 */
7 #ifndef __WINE_ANIMATE_H
8 #define __WINE_ANIMATE_H
10 #include "windef.h"
11 #include "winbase.h"
12 #include "vfw.h"
14 typedef struct tagANIMATE_INFO
16 /* pointer to msvideo functions. it's easier to put them here.
17 * to be correct, they should be defined on a per process basis, but
18 * this would required a per process storage. We're using a per object
19 * storage instead, which is not efficient on memory usage, but
20 * will lead to less bugs in the future
22 HIC WINAPI (*fnICOpen)(DWORD, DWORD, UINT);
23 LRESULT WINAPI (*fnICClose)(HIC);
24 LRESULT WINAPI (*fnICSendMessage)(HIC, UINT, DWORD, DWORD);
25 DWORD WINAPIV (*fnICDecompress)(HIC,DWORD,LPBITMAPINFOHEADER,LPVOID,LPBITMAPINFOHEADER,LPVOID);
27 HMMIO WINAPI (*fnmmioOpenA)(LPSTR,MMIOINFO*,DWORD);
28 MMRESULT WINAPI (*fnmmioClose)(HMMIO,UINT);
29 UINT WINAPI (*fnmmioAscend)(HMMIO,MMCKINFO*,UINT);
30 UINT WINAPI (*fnmmioDescend)(HMMIO,MMCKINFO*,const MMCKINFO*,UINT);
31 LONG WINAPI (*fnmmioSeek)(HMMIO,LONG,INT);
32 LONG WINAPI (*fnmmioRead)(HMMIO,HPSTR,LONG);
34 /* reference to input stream (file or resource) */
35 HGLOBAL hRes;
36 HMMIO hMMio; /* handle to mmio stream */
37 HWND hWnd;
38 /* information on the loaded AVI file */
39 MainAVIHeader mah;
40 AVIStreamHeader ash;
41 LPBITMAPINFOHEADER inbih;
42 LPDWORD lpIndex;
43 /* data for the decompressor */
44 HIC hic;
45 LPBITMAPINFOHEADER outbih;
46 LPVOID indata;
47 LPVOID outdata;
48 /* data for the background mechanism */
49 CRITICAL_SECTION cs;
50 HANDLE hService;
51 UINT uTimer;
52 /* data for playing the file */
53 int nFromFrame;
54 int nToFrame;
55 int nLoop;
56 int currFrame;
57 } ANIMATE_INFO;
60 extern VOID ANIMATE_Register (VOID);
61 extern VOID ANIMATE_Unregister (VOID);
63 #endif /* __WINE_ANIMATE_H */