diff options
Diffstat (limited to 'complus/example.c')
| -rw-r--r-- | complus/example.c | 598 | 
1 files changed, 0 insertions, 598 deletions
diff --git a/complus/example.c b/complus/example.c deleted file mode 100644 index a7d838d5..00000000 --- a/complus/example.c +++ /dev/null @@ -1,598 +0,0 @@ -/*				    - * Copyright 1999 Marcus Meissner - */ -#include <string.h> -#include <stdio.h> -#include <assert.h> - -#include "winbase.h" -#include "winnls.h" -#include "mmsystem.h" -#include "winerror.h" -#include "debugtools.h" - -#include "initguid.h" -#include "vfw.h" - -DEFAULT_DEBUG_CHANNEL(avifile); - -static HRESULT WINAPI IAVIFile_fnQueryInterface(IAVIFile* iface,REFIID refiid,LPVOID *obj); -static ULONG WINAPI IAVIFile_fnAddRef(IAVIFile* iface); -static ULONG WINAPI IAVIFile_fnRelease(IAVIFile* iface); -static HRESULT WINAPI IAVIFile_fnInfo(IAVIFile*iface,AVIFILEINFOW*afi,LONG size); -static HRESULT WINAPI IAVIFile_fnGetStream(IAVIFile*iface,PAVISTREAM*avis,DWORD fccType,LONG lParam); -static HRESULT WINAPI IAVIFile_fnCreateStream(IAVIFile*iface,PAVISTREAM*avis,AVISTREAMINFOW*asi); -static HRESULT WINAPI IAVIFile_fnWriteData(IAVIFile*iface,DWORD ckid,LPVOID lpData,LONG size); -static HRESULT WINAPI IAVIFile_fnReadData(IAVIFile*iface,DWORD ckid,LPVOID lpData,LONG *size); -static HRESULT WINAPI IAVIFile_fnEndRecord(IAVIFile*iface); -static HRESULT WINAPI IAVIFile_fnDeleteStream(IAVIFile*iface,DWORD fccType,LONG lParam); - -struct ICOM_VTABLE(IAVIFile) iavift = { -    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE -    IAVIFile_fnQueryInterface, -    IAVIFile_fnAddRef, -    IAVIFile_fnRelease, -    IAVIFile_fnInfo, -    IAVIFile_fnGetStream, -    IAVIFile_fnCreateStream, -    IAVIFile_fnWriteData, -    IAVIFile_fnReadData, -    IAVIFile_fnEndRecord, -    IAVIFile_fnDeleteStream -}; - -static HRESULT WINAPI IAVIStream_fnQueryInterface(IAVIStream*iface,REFIID refiid,LPVOID *obj); -static ULONG WINAPI IAVIStream_fnAddRef(IAVIStream*iface); -static ULONG WINAPI IAVIStream_fnRelease(IAVIStream* iface); -static HRESULT WINAPI IAVIStream_fnCreate(IAVIStream*iface,LPARAM lParam1,LPARAM lParam2); -static HRESULT WINAPI IAVIStream_fnInfo(IAVIStream*iface,AVISTREAMINFOW *psi,LONG size); -static LONG WINAPI IAVIStream_fnFindSample(IAVIStream*iface,LONG pos,LONG flags); -static HRESULT WINAPI IAVIStream_fnReadFormat(IAVIStream*iface,LONG pos,LPVOID format,LONG *formatsize); -static HRESULT WINAPI IAVIStream_fnSetFormat(IAVIStream*iface,LONG pos,LPVOID format,LONG formatsize); -static HRESULT WINAPI IAVIStream_fnRead(IAVIStream*iface,LONG start,LONG samples,LPVOID buffer,LONG buffersize,LONG *bytesread,LONG *samplesread); -static HRESULT WINAPI IAVIStream_fnWrite(IAVIStream*iface,LONG start,LONG samples,LPVOID buffer,LONG buffersize,DWORD flags,LONG *sampwritten,LONG *byteswritten); -static HRESULT WINAPI IAVIStream_fnDelete(IAVIStream*iface,LONG start,LONG samples); -static HRESULT WINAPI IAVIStream_fnReadData(IAVIStream*iface,DWORD fcc,LPVOID lp,LONG *lpread); -static HRESULT WINAPI IAVIStream_fnWriteData(IAVIStream*iface,DWORD fcc,LPVOID lp,LONG size); -static HRESULT WINAPI IAVIStream_fnSetInfo(IAVIStream*iface,AVISTREAMINFOW*info,LONG infolen); - -struct ICOM_VTABLE(IAVIStream) iavist = { -    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE -    IAVIStream_fnQueryInterface, -    IAVIStream_fnAddRef, -    IAVIStream_fnRelease, -    IAVIStream_fnCreate, -    IAVIStream_fnInfo, -    IAVIStream_fnFindSample, -    IAVIStream_fnReadFormat, -    IAVIStream_fnSetFormat, -    IAVIStream_fnRead, -    IAVIStream_fnWrite, -    IAVIStream_fnDelete, -    IAVIStream_fnReadData, -    IAVIStream_fnWriteData, -    IAVIStream_fnSetInfo -}; - -typedef struct IAVIStreamImpl { -	/* IUnknown stuff */ -	ICOM_VFIELD(IAVIStream); -	DWORD		ref; -	/* IAVIStream stuff */ -	LPVOID		lpInputFormat; -	DWORD		inputformatsize; -	BOOL		iscompressing; -	DWORD		curframe; - -	    /* Compressor stuff */ -	    HIC	hic; -	    LPVOID	lpCompressFormat; -	    ICINFO	icinfo; -	    DWORD	compbufsize; -	    LPVOID	compbuffer; - -	    DWORD	decompbufsize; -	    LPVOID	decompbuffer; -	    LPVOID	decompformat; -	    AVICOMPRESSOPTIONS	aco; - -	    LPVOID	lpPrev;	/* pointer to decompressed frame later */ -	    LPVOID	lpPrevFormat; /* pointer to decompressed info later */ -} IAVIStreamImpl; - -/*********************************************************************** - *		AVIFileInit - */ -void WINAPI -AVIFileInit(void) { -	FIXME("(),stub!\n"); -} - -typedef struct IAVIFileImpl { -	/* IUnknown stuff */ -	ICOM_VFIELD(IAVIFile); -	DWORD				ref; -	/* IAVIFile stuff... */ -} IAVIFileImpl; - -static HRESULT WINAPI IAVIFile_fnQueryInterface(IAVIFile* iface,REFIID refiid,LPVOID *obj) { -	ICOM_THIS(IAVIFileImpl,iface); - -	TRACE("(%p)->QueryInterface(%s,%p)\n",This,debugstr_guid(refiid),obj); -	if (	!memcmp(&IID_IUnknown,refiid,sizeof(IID_IUnknown)) || -		!memcmp(&IID_IAVIFile,refiid,sizeof(IID_IAVIFile)) -	) { -		*obj = iface; -		return S_OK; -	} -	return OLE_E_ENUM_NOMORE; -} - -static ULONG WINAPI IAVIFile_fnAddRef(IAVIFile* iface) { -	ICOM_THIS(IAVIFileImpl,iface); -	 -	FIXME("(%p)->AddRef()\n",iface); -	return ++(This->ref); -} - -static ULONG WINAPI IAVIFile_fnRelease(IAVIFile* iface) { -	ICOM_THIS(IAVIFileImpl,iface); -	 -	FIXME("(%p)->Release()\n",iface); -	if (!--(This->ref)) { -		HeapFree(GetProcessHeap(),0,iface); -		return 0; -	} -	return This->ref; -} - -static HRESULT WINAPI IAVIFile_fnInfo(IAVIFile*iface,AVIFILEINFOW*afi,LONG size) { -	FIXME("(%p)->Info(%p,%ld)\n",iface,afi,size); - -	/* FIXME: fill out struct? */ -	return E_FAIL; -} - -static HRESULT WINAPI IAVIFile_fnGetStream(IAVIFile*iface,PAVISTREAM*avis,DWORD fccType,LONG lParam) { -	FIXME("(%p)->GetStream(%p,0x%08lx,%ld)\n",iface,avis,fccType,lParam); -	/* FIXME: create interface etc. */ -	return E_FAIL; -} - -static HRESULT WINAPI IAVIFile_fnCreateStream(IAVIFile*iface,PAVISTREAM*avis,AVISTREAMINFOW*asi) { -	ICOM_THIS(IAVIStreamImpl,iface); -	char		fcc[5]; -	IAVIStreamImpl	*istream; - -	FIXME("(%p,%p,%p)\n",This,avis,asi); -	istream = (IAVIStreamImpl*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(IAVIStreamImpl)); -	istream->ref = 1; -	ICOM_VTBL(istream) = &iavist; -	fcc[4]='\0'; -	memcpy(fcc,(char*)&(asi->fccType),4); -	FIXME("\tfccType '%s'\n",fcc); -	memcpy(fcc,(char*)&(asi->fccHandler),4); -	FIXME("\tfccHandler '%s'\n",fcc); -	FIXME("\tdwFlags 0x%08lx\n",asi->dwFlags); -	FIXME("\tdwCaps 0x%08lx\n",asi->dwCaps); -	FIXME("\tname '%s'\n",debugstr_w(asi->szName)); - -	istream->curframe = 0; -	*avis = (PAVISTREAM)istream; -	return S_OK; -} - -static HRESULT WINAPI IAVIFile_fnWriteData(IAVIFile*iface,DWORD ckid,LPVOID lpData,LONG size) { -	FIXME("(%p)->WriteData(0x%08lx,%p,%ld)\n",iface,ckid,lpData,size); -	/* FIXME: write data to file */ -	return E_FAIL; -} - -static HRESULT WINAPI IAVIFile_fnReadData(IAVIFile*iface,DWORD ckid,LPVOID lpData,LONG *size) { -	FIXME("(%p)->ReadData(0x%08lx,%p,%p)\n",iface,ckid,lpData,size); -	/* FIXME: read at most size bytes from file */ -	return E_FAIL; -} - -static HRESULT WINAPI IAVIFile_fnEndRecord(IAVIFile*iface) { -	FIXME("(%p)->EndRecord()\n",iface); -	/* FIXME: end record? */ -	return E_FAIL; -} - -static HRESULT WINAPI IAVIFile_fnDeleteStream(IAVIFile*iface,DWORD fccType,LONG lParam) { -	FIXME("(%p)->DeleteStream(0x%08lx,%ld)\n",iface,fccType,lParam); -	/* FIXME: delete stream? */ -	return E_FAIL; -} - -/*********************************************************************** - *		AVIFileOpenA - */ -HRESULT WINAPI AVIFileOpenA( -	PAVIFILE * ppfile,LPCSTR szFile,UINT uMode,LPCLSID lpHandler -) { -	IAVIFileImpl	*iavi; - -	FIXME("(%p,%s,0x%08lx,%s),stub!\n",ppfile,szFile,(DWORD)uMode,debugstr_guid(lpHandler)); -	iavi = (IAVIFileImpl*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(IAVIFileImpl)); -	iavi->ref = 1; -	ICOM_VTBL(iavi) = &iavift; -	*ppfile = (LPVOID)iavi; -	return S_OK; -} - -static HRESULT WINAPI IAVIStream_fnQueryInterface(IAVIStream*iface,REFIID refiid,LPVOID *obj) { -	ICOM_THIS(IAVIStreamImpl,iface); - -	TRACE("(%p)->QueryInterface(%s,%p)\n",This,debugstr_guid(refiid),obj); -	if (	!memcmp(&IID_IUnknown,refiid,sizeof(IID_IUnknown)) || -		!memcmp(&IID_IAVIStream,refiid,sizeof(IID_IAVIStream)) -	) { -		*obj = This; -		return S_OK; -	} -	/* can return IGetFrame interface too */ -	return OLE_E_ENUM_NOMORE; -} - -static ULONG WINAPI IAVIStream_fnAddRef(IAVIStream*iface) { -	ICOM_THIS(IAVIStreamImpl,iface); -	 -	FIXME("(%p)->AddRef()\n",iface); -	return ++(This->ref); -} - -static ULONG WINAPI IAVIStream_fnRelease(IAVIStream* iface) { -	ICOM_THIS(IAVIStreamImpl,iface); -	 -	FIXME("(%p)->Release()\n",iface); -	if (!--(This->ref)) { -		HeapFree(GetProcessHeap(),0,This); -		return 0; -	} -	return This->ref; -} - -static HRESULT WINAPI IAVIStream_fnCreate(IAVIStream*iface,LPARAM lParam1,LPARAM lParam2) { -	FIXME("(%p)->Create(0x%08lx,0x%08lx)\n",iface,lParam1,lParam2); -	return E_FAIL; -} - -static HRESULT WINAPI IAVIStream_fnInfo(IAVIStream*iface,AVISTREAMINFOW *psi,LONG size) { -	FIXME("(%p)->Info(%p,%ld)\n",iface,psi,size); -	return E_FAIL; -} - -static LONG WINAPI IAVIStream_fnFindSample(IAVIStream*iface,LONG pos,LONG flags) { -	FIXME("(%p)->FindSample(%ld,0x%08lx)\n",iface,pos,flags); -	return E_FAIL; -} - -static HRESULT WINAPI IAVIStream_fnReadFormat(IAVIStream*iface,LONG pos,LPVOID format,LONG *formatsize) { -	FIXME("(%p)->ReadFormat(%ld,%p,%p)\n",iface,pos,format,formatsize); -	return E_FAIL; -} - -/*********************************************************************** - *		IAVIStream::SetFormat - */ -static HRESULT WINAPI IAVIStream_fnSetFormat(IAVIStream*iface,LONG pos,LPVOID format,LONG formatsize) { -	IAVIStreamImpl	*as = (IAVIStreamImpl*)iface; - -	FIXME("(%p)->SetFormat(%ld,%p,%ld)\n",iface,pos,format,formatsize); -	if (as->lpInputFormat) HeapFree(GetProcessHeap(),0,as->lpInputFormat); -	as->inputformatsize = formatsize; -	as->lpInputFormat = HeapAlloc(GetProcessHeap(),0,formatsize); -	memcpy(as->lpInputFormat,format,formatsize); -	if (as->iscompressing) { -		int	xsize;  -		/* Set up the Compressor part */ -		xsize = ICCompressGetFormatSize(as->hic,as->lpInputFormat); -		as->lpCompressFormat = HeapAlloc(GetProcessHeap(),0,xsize); -		ICCompressGetFormat(as->hic,as->lpInputFormat,as->lpCompressFormat); -		ICCompressBegin(as->hic,as->lpInputFormat,as->lpCompressFormat); -		as->compbufsize = ICCompressGetSize(as->hic,as->lpInputFormat,as->lpCompressFormat); -		as->compbuffer = HeapAlloc(GetProcessHeap(),0,as->compbufsize); - -		/* Set up the Decompressor part (for prev frames?) */ -		xsize=ICDecompressGetFormatSize(as->hic,as->lpCompressFormat); -		as->decompformat = HeapAlloc(GetProcessHeap(),0,xsize); -		ICDecompressGetFormat(as->hic,as->lpCompressFormat,as->decompformat); -		as->decompbufsize=((LPBITMAPINFOHEADER)as->decompbuffer)->biSizeImage; -		as->decompbuffer = HeapReAlloc(GetProcessHeap(),0,as->decompbuffer,as->decompbufsize); -		memset(as->decompbuffer,0xff,as->decompbufsize); -		assert(HeapValidate(GetProcessHeap(),0,NULL)); - -		ICDecompressGetFormat(as->hic,as->lpCompressFormat,as->decompformat); -		ICDecompressBegin(as->hic,as->lpCompressFormat,as->decompformat); -		as->lpPrev = as->lpPrevFormat = NULL; -	} -	return S_OK; -} - -static HRESULT WINAPI IAVIStream_fnRead(IAVIStream*iface,LONG start,LONG samples,LPVOID buffer,LONG buffersize,LONG *bytesread,LONG *samplesread) { -	FIXME("(%p)->Read(%ld,%ld,%p,%ld,%p,%p)\n",iface,start,samples,buffer,buffersize,bytesread,samplesread); -	return E_FAIL; -} - -static HRESULT WINAPI IAVIStream_fnWrite(IAVIStream*iface,LONG start,LONG samples,LPVOID buffer,LONG buffersize,DWORD flags,LONG *sampwritten,LONG *byteswritten) { -	IAVIStreamImpl	*as = (IAVIStreamImpl*)iface; -	DWORD		ckid,xflags; - -	FIXME("(%p)->Write(%ld,%ld,%p,%ld,0x%08lx,%p,%p)\n",iface,start,samples,buffer,buffersize,flags,sampwritten,byteswritten); - -	ICCompress( -		as->hic,flags, -		as->lpCompressFormat, -		as->compbuffer, -		as->lpInputFormat,buffer, -		&ckid,&xflags, -		as->curframe,0xffffff/*framesize*/,as->aco.dwQuality, -		as->lpPrevFormat,as->lpPrev -	); -	ICDecompress( -		as->hic, -		flags,	/* FIXME: check */ -		as->lpCompressFormat, -		as->compbuffer, -		as->decompformat, -		as->decompbuffer -	); -	/* We now have a prev format for the next compress ... */ -	as->lpPrevFormat = as->decompformat; -	as->lpPrev = as->decompbuffer; -	return S_OK; -} - -static HRESULT WINAPI IAVIStream_fnDelete(IAVIStream*iface,LONG start,LONG samples) { -	FIXME("(%p)->Delete(%ld,%ld)\n",iface,start,samples); -	return E_FAIL; -} -static HRESULT WINAPI IAVIStream_fnReadData(IAVIStream*iface,DWORD fcc,LPVOID lp,LONG *lpread) { -	FIXME("(%p)->ReadData(0x%08lx,%p,%p)\n",iface,fcc,lp,lpread); -	return E_FAIL; -} - -static HRESULT WINAPI IAVIStream_fnWriteData(IAVIStream*iface,DWORD fcc,LPVOID lp,LONG size) { -	FIXME("(%p)->WriteData(0x%08lx,%p,%ld)\n",iface,fcc,lp,size); -	return E_FAIL; -} - -static HRESULT WINAPI IAVIStream_fnSetInfo(IAVIStream*iface,AVISTREAMINFOW*info,LONG infolen) { -	FIXME("(%p)->SetInfo(%p,%ld)\n",iface,info,infolen); -	return E_FAIL; -} - -/*********************************************************************** - *		AVIFileCreateStreamA - */ -HRESULT WINAPI AVIFileCreateStreamA(PAVIFILE iface,PAVISTREAM *ppavi,AVISTREAMINFOA * psi) { -	AVISTREAMINFOW	psiw; -	 -	/* Only the szName at the end is different */ -	memcpy(&psiw,psi,sizeof(*psi)-sizeof(psi->szName)); -        MultiByteToWideChar( CP_ACP, 0, psi->szName, -1, -                             psiw.szName, sizeof(psiw.szName) / sizeof(WCHAR) ); -	return IAVIFile_CreateStream(iface,ppavi,&psiw); -} - -/*********************************************************************** - *		AVIFileCreateStreamW - */ -HRESULT WINAPI AVIFileCreateStreamW(IAVIFile*iface,PAVISTREAM*avis,AVISTREAMINFOW*asi) { -	return IAVIFile_CreateStream(iface,avis,asi); -} - - -/*********************************************************************** - *		AVIFileGetStream - */ -HRESULT WINAPI AVIFileGetStream(IAVIFile*iface,PAVISTREAM*avis,DWORD fccType,LONG lParam) { -	return IAVIFile_GetStream(iface,avis,fccType,lParam); -} - -/*********************************************************************** - *		AVIFileInfoA - */ -HRESULT WINAPI AVIFileInfoA(PAVIFILE iface,LPAVIFILEINFOA afi,LONG size) { -	AVIFILEINFOW	afiw; -	HRESULT		hres; - -	if (size < sizeof(AVIFILEINFOA)) -		return AVIERR_BADSIZE; -	hres = IAVIFile_Info(iface,&afiw,sizeof(afiw)); -	memcpy(afi,&afiw,sizeof(*afi)-sizeof(afi->szFileType)); -        WideCharToMultiByte( CP_ACP, 0, afiw.szFileType, -1, -                             afi->szFileType, sizeof(afi->szFileType), NULL, NULL ); -        afi->szFileType[sizeof(afi->szFileType)-1] = 0; -	return hres; -} - -/*********************************************************************** - *		AVIStreamInfoW - */ -HRESULT WINAPI AVIStreamInfoW(PAVISTREAM iface,AVISTREAMINFOW *asi,LONG - size) { - 	return IAVIFile_Info(iface,asi,size); -} - -/*********************************************************************** - *		AVIStreamInfoA - */ -HRESULT WINAPI AVIStreamInfoA(PAVISTREAM iface,AVISTREAMINFOA *asi,LONG - size) { - 	AVISTREAMINFOW	asiw; -	HRESULT			hres; - -	if (size<sizeof(AVISTREAMINFOA)) -		return AVIERR_BADSIZE; - 	hres = IAVIFile_Info(iface,&asiw,sizeof(asiw)); -	memcpy(asi,&asiw,sizeof(asiw)-sizeof(asiw.szName)); -        WideCharToMultiByte( CP_ACP, 0, asiw.szName, -1, -                             asi->szName, sizeof(asi->szName), NULL, NULL ); -        asi->szName[sizeof(asi->szName)-1] = 0; -	return hres; -} - -/*********************************************************************** - *		AVIFileInfoW - */ -HRESULT WINAPI AVIFileInfoW(PAVIFILE iface,LPAVIFILEINFOW afi,LONG size) { -	return IAVIFile_Info(iface,afi,size); -} - -/*********************************************************************** - *		AVIMakeCompressedStream - */ -HRESULT WINAPI AVIMakeCompressedStream(PAVISTREAM *ppsCompressed,PAVISTREAM ppsSource,AVICOMPRESSOPTIONS *aco,CLSID *pclsidHandler) { -	char			fcc[5]; -	IAVIStreamImpl	*as; -	FIXME("(%p,%p,%p,%p)\n",ppsCompressed,ppsSource,aco,pclsidHandler); -	fcc[4]='\0'; -	memcpy(fcc,&(aco->fccType),4); -	FIXME("\tfccType: '%s'\n",fcc); -	memcpy(fcc,&(aco->fccHandler),4); -	FIXME("\tfccHandler: '%s'\n",fcc); -	FIXME("\tdwFlags: 0x%08lx\n",aco->dwFlags); - -	/* we just create a duplicate for now */ -	IAVIStream_AddRef(ppsSource); -	*ppsCompressed = ppsSource; -	as = (IAVIStreamImpl*)ppsSource; - -	/* this is where the fun begins. Open a compressor and prepare it. */ -	as->hic = ICOpen(aco->fccType,aco->fccHandler,ICMODE_COMPRESS); - -	/* May happen. for instance if the codec is not able to compress */ -	if (!as->hic)  -		return AVIERR_UNSUPPORTED; - -	ICGetInfo(as->hic,&(as->icinfo),sizeof(ICINFO)); -	FIXME("Opened compressor: '%s' '%s'\n",debugstr_w(as->icinfo.szName),debugstr_w(as->icinfo.szDescription)); -	as->iscompressing = TRUE; -	memcpy(&(as->aco),aco,sizeof(*aco)); -	if (as->icinfo.dwFlags & VIDCF_COMPRESSFRAMES) { -		ICCOMPRESSFRAMES	icf; - -		/* now what to fill in there ... Hmm */ -		memset(&icf,0,sizeof(icf)); -		icf.lDataRate 	= aco->dwBytesPerSecond; -		icf.lQuality 	= aco->dwQuality; -		icf.lKeyRate 	= aco->dwKeyFrameEvery; - -		icf.GetData = (void *)0xdead4242; -		icf.PutData = (void *)0xdead4243; -		ICSendMessage(as->hic,ICM_COMPRESS_FRAMES_INFO,(LPARAM)&icf,sizeof(icf)); -	} -	return S_OK; -} - -/*********************************************************************** - *		AVIStreamSetFormat - */ -HRESULT WINAPI AVIStreamSetFormat(PAVISTREAM iface,LONG pos,LPVOID format,LONG formatsize) { -	return IAVIStream_SetFormat(iface,pos,format,formatsize); -} - -/*********************************************************************** - *		AVIStreamReadFormat - */ -HRESULT WINAPI AVIStreamReadFormat(PAVISTREAM iface,LONG pos,LPVOID format,LONG *formatsize) { -	return IAVIStream_ReadFormat(iface,pos,format,formatsize); -} - -/*********************************************************************** - *		AVIStreamWrite( - */ -HRESULT WINAPI AVIStreamWrite(PAVISTREAM iface,LONG start,LONG samples,LPVOID buffer,LONG buffersize,DWORD flags,LONG *sampwritten,LONG *byteswritten) { -	return IAVIStream_Write(iface,start,samples,buffer,buffersize,flags,sampwritten,byteswritten); -} - -/*********************************************************************** - *		AVIStreamRead - */ -HRESULT WINAPI AVIStreamRead(PAVISTREAM iface,LONG start,LONG samples,LPVOID buffer,LONG buffersize,LONG *bytesread,LONG *samplesread) { -	return IAVIStream_Read(iface,start,samples,buffer,buffersize,bytesread,samplesread); -} - -/*********************************************************************** - *		AVIStreamWriteData - */ -HRESULT WINAPI AVIStreamWriteData(PAVISTREAM iface,DWORD fcc,LPVOID lp,LONG size) { -	return IAVIStream_WriteData(iface,fcc,lp,size); -} - -/*********************************************************************** - *		AVIStreamReadData - */ -HRESULT WINAPI AVIStreamReadData(PAVISTREAM iface,DWORD fcc,LPVOID lp,LONG *lpread) { -	return IAVIStream_ReadData(iface,fcc,lp,lpread); -} - -/*********************************************************************** - *		AVIStreamStart - */ -LONG WINAPI AVIStreamStart(PAVISTREAM iface) { -	AVISTREAMINFOW	si; - -	IAVIStream_Info(iface,&si,sizeof(si)); -	return si.dwStart; -} - -/*********************************************************************** - *		AVIStreamLength - */ -LONG WINAPI AVIStreamLength(PAVISTREAM iface) { -	AVISTREAMINFOW	si; -	HRESULT			ret; - -	ret = IAVIStream_Info(iface,&si,sizeof(si)); -	if (ret) /* error */ -		return 1; -	return si.dwLength; -} - -/*********************************************************************** - *		AVIStreamRelease - */ -ULONG WINAPI AVIStreamRelease(PAVISTREAM iface) { -	return IAVIStream_Release(iface); -} - -/*********************************************************************** - *		AVIStreamGetFrameOpen - */ -PGETFRAME WINAPI AVIStreamGetFrameOpen(PAVISTREAM iface,LPBITMAPINFOHEADER bmi) { -	FIXME("(%p)->(%p),stub!\n",iface,bmi); -	return NULL; -} - -/*********************************************************************** - *		AVIStreamGetFrame - */ -LPVOID WINAPI AVIStreamGetFrame(PGETFRAME pg,LONG pos) { -	return IGetFrame_GetFrame(pg,pos); -} - -/*********************************************************************** - *		AVIStreamGetFrameClose - */ -HRESULT WINAPI AVIStreamGetFrameClose(PGETFRAME pg) { -	if (pg) IGetFrame_Release(pg); -	return 0; -} - -/*********************************************************************** - *		AVIFileRelease - */ -ULONG WINAPI AVIFileRelease(PAVIFILE iface) { -	return IAVIFile_Release(iface); -} - -/*********************************************************************** - *		AVIFileExit - */ -void WINAPI AVIFileExit(void) { -	FIXME("(), stub.\n"); -}  | 
