Merged DDBitmap and physBitmap into the generic bitmap structure
[wine] / include / animate.h
1 /*
2  * Animation class extra info
3  *
4  * Copyright 1998 Eric Kohl
5  */
6
7 #ifndef __WINE_ANIMATE_H
8 #define __WINE_ANIMATE_H
9
10 #include "windef.h"
11 #include "winbase.h"
12 #include "vfw.h"
13
14 typedef struct tagANIMATE_INFO
15 {
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
21     */
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);
26
27    /* reference to input stream (file or resource) */
28    HGLOBAL              hRes;
29    HMMIO                        hMMio;  /* handle to mmio stream */
30    HWND                 hWnd;
31    /* information on the loaded AVI file */
32    MainAVIHeader        mah;
33    AVIStreamHeader      ash;
34    LPBITMAPINFOHEADER   inbih;
35    LPDWORD              lpIndex;
36    /* data for the decompressor */
37    HIC                  hic;
38    LPBITMAPINFOHEADER   outbih;
39    LPVOID               indata;
40    LPVOID               outdata;
41    /* data for the background mechanism */
42    CRITICAL_SECTION     cs;
43    HANDLE               hService;
44    UINT                 uTimer;
45    /* data for playing the file */
46    int                  nFromFrame;
47    int                  nToFrame;
48    int                  nLoop;
49    int                  currFrame;
50 } ANIMATE_INFO;
51
52
53 extern VOID ANIMATE_Register (VOID);
54 extern VOID ANIMATE_Unregister (VOID);
55
56 #endif  /* __WINE_ANIMATE_H */