64 lines
1.8 KiB
C
64 lines
1.8 KiB
C
/*
|
|
* 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 */
|