| /* |
| * Animation class extra info |
| * |
| * Copyright 1998 Eric Kohl |
| */ |
| |
| #ifndef __WINE_ANIMATE_H |
| #define __WINE_ANIMATE_H |
| |
| #include "windef.h" |
| #include "winbase.h" |
| #include "vfw.h" |
| |
| typedef struct tagANIMATE_INFO |
| { |
| /* pointer to msvideo functions. it's easier to put them here. |
| * to be correct, they should be defined on a per process basis, but |
| * this would required a per process storage. We're using a per object |
| * storage instead, which is not efficient on memory usage, but |
| * will lead to less bugs in the future |
| */ |
| HIC WINAPI (*fnICOpen)(DWORD, DWORD, UINT); |
| LRESULT WINAPI (*fnICClose)(HIC); |
| LRESULT WINAPI (*fnICSendMessage)(HIC, UINT, DWORD, DWORD); |
| DWORD WINAPIV (*fnICDecompress)(HIC,DWORD,LPBITMAPINFOHEADER,LPVOID,LPBITMAPINFOHEADER,LPVOID); |
| |
| HMMIO WINAPI (*fnmmioOpenA)(LPSTR,MMIOINFO*,DWORD); |
| MMRESULT WINAPI (*fnmmioClose)(HMMIO,UINT); |
| UINT WINAPI (*fnmmioAscend)(HMMIO,MMCKINFO*,UINT); |
| UINT WINAPI (*fnmmioDescend)(HMMIO,MMCKINFO*,const MMCKINFO*,UINT); |
| LONG WINAPI (*fnmmioSeek)(HMMIO,LONG,INT); |
| LONG WINAPI (*fnmmioRead)(HMMIO,HPSTR,LONG); |
| |
| /* reference to input stream (file or resource) */ |
| HGLOBAL hRes; |
| HMMIO hMMio; /* handle to mmio stream */ |
| HWND hWnd; |
| /* information on the loaded AVI file */ |
| MainAVIHeader mah; |
| AVIStreamHeader ash; |
| LPBITMAPINFOHEADER inbih; |
| LPDWORD lpIndex; |
| /* data for the decompressor */ |
| HIC hic; |
| LPBITMAPINFOHEADER outbih; |
| LPVOID indata; |
| LPVOID outdata; |
| /* data for the background mechanism */ |
| CRITICAL_SECTION cs; |
| HANDLE hService; |
| UINT uTimer; |
| /* data for playing the file */ |
| int nFromFrame; |
| int nToFrame; |
| int nLoop; |
| int currFrame; |
| } ANIMATE_INFO; |
| |
| |
| extern VOID ANIMATE_Register (VOID); |
| extern VOID ANIMATE_Unregister (VOID); |
| |
| #endif /* __WINE_ANIMATE_H */ |