/* * 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 */