48 #define MAX_FILTERS 30 85 s = (
BYTE const*)idstr;
86 if ((
s[0]!=
'{') || (
s[9]!=
'-') || (
s[14]!=
'-') || (
s[19]!=
'-') ||
87 (
s[24]!=
'-') || (
s[37]!=
'}'))
90 for (
i = 1;
i < 37;
i++) {
91 if ((
i == 9) || (
i == 14) || (
i == 19) || (
i == 24))
93 if (!(((
s[
i] >=
'0') && (
s[
i] <=
'9')) ||
94 ((
s[
i] >=
'a') && (
s[
i] <=
'f')) ||
95 ((
s[
i] >=
'A') && (
s[
i] <=
'F')))
100 TRACE(
"%s -> %p\n",
s,
id);
105 for (
i = 0;
i < 10;
i++)
108 for (
i = 0;
i < 6;
i++) {
117 for (
i = 0;
i < 4;
i++) {
124 for (
i = 0;
i < 2;
i++) {
131 for (
i = 0;
i < 2;
i++) {
139 for (
i = 0;
i < 2;
i++) {
145 for (
i = 0;
i < 6;
i++) {
165 wsprintfA(szRegKey,
"AVIFile\\Extensions\\%.3ls", szExt);
185 FIXME(
"(): stub!\n");
203 if (ppfile ==
NULL || szFile ==
NULL)
238 if (ppfile ==
NULL || szFile ==
NULL)
244 if (lpHandler ==
NULL) {
246 clsidHandler = CLSID_AVIFile;
248 clsidHandler = *lpHandler;
263 hr = IPersistFile_Load(ppersist, szFile, uMode);
264 IPersistFile_Release(ppersist);
278 TRACE(
"(%p)\n", pfile);
281 ERR(
": bad handle passed!\n");
293 TRACE(
"(%p)\n", pfile);
296 ERR(
": bad handle passed!\n");
334 TRACE(
"(%p,%p,%d)\n", pfile, afiw,
size);
348 TRACE(
"(%p,%p,'%4.4s',%d)\n", pfile, avis, (
char*)&fccType,
lParam);
365 TRACE(
"(%p,%p,%p)\n", pfile, ppavi, psi);
384 TRACE(
"(%p,%p,%p)\n", pfile, avis, asi);
397 TRACE(
"(%p,'%4.4s',%p,%d)\n", pfile, (
char*)&fcc, lp,
size);
410 TRACE(
"(%p,'%4.4s',%p,%p)\n", pfile, (
char*)&fcc, lp,
size);
423 TRACE(
"(%p)\n", pfile);
436 TRACE(
"(%p)\n", pstream);
438 if (pstream ==
NULL) {
439 ERR(
": bad handle passed!\n");
451 TRACE(
"(%p)\n", pstream);
453 if (pstream ==
NULL) {
454 ERR(
": bad handle passed!\n");
469 TRACE(
"(%p,0x%08X,0x%08X,%s)\n", ppavi, lParam1, lParam2,
476 if (pclsidHandler ==
NULL)
502 TRACE(
"(%p,%p,%d)\n", pstream, asi,
size);
525 TRACE(
"(%p,%p,%d)\n", pstream, asi,
size);
581 TRACE(
"(%p,%d,%d,%p,%d,%p,%p)\n", pstream,
start,
samples,
buffer,
582 buffersize, bytesread, samplesread);
588 bytesread, samplesread);
598 TRACE(
"(%p,%d,%d,%p,%d,0x%X,%p,%p)\n", pstream,
start,
samples,
buffer,
599 buffersize,
flags, sampwritten, byteswritten);
605 flags, sampwritten, byteswritten);
614 TRACE(
"(%p,'%4.4s',%p,%p)\n", pstream, (
char*)&fcc, lp, lpread);
628 TRACE(
"(%p,'%4.4s',%p,%d)\n", pstream, (
char*)&fcc, lp,
size);
644 TRACE(
"(%p,%p)\n", pstream, lpbiWanted);
701 TRACE(
"(%p,%p,%p,%s)\n", ppsCompressed, psSource, aco,
704 if (ppsCompressed ==
NULL)
706 if (psSource ==
NULL)
709 *ppsCompressed =
NULL;
712 if (pclsidHandler ==
NULL) {
723 clsidHandler = *pclsidHandler;
732 *ppsCompressed =
NULL;
770 if (ppavi ==
NULL || szFile ==
NULL)
798 if (ppavi ==
NULL || szFile ==
NULL)
818 IAVIStreaming* pstream =
NULL;
821 TRACE(
"(%p,%d,%d,%d)\n", pavi, lStart, lEnd, lRate);
841 IAVIStreaming* pstream =
NULL;
844 TRACE(
"(%p)\n", pavi);
862 TRACE(
"(%p)\n", pstream);
880 TRACE(
"(%p)\n", pstream);
899 TRACE(
"(%p,%d)\n", pstream, lSample);
932 TRACE(
"(%p,%d)\n", pstream, lTime);
934 if (pstream ==
NULL || lTime < 0)
953 TRACE(
" -> %d\n", sample);
998 static const WCHAR szClsid[] = {
'C',
'L',
'S',
'I',
'D',0};
999 static const WCHAR szExtensionFmt[] = {
';',
'*',
'.',
'%',
's',0};
1000 static const WCHAR szAVIFileExtensions[] =
1001 {
'A',
'V',
'I',
'F',
'i',
'l',
'e',
'\\',
'E',
'x',
't',
'e',
'n',
's',
'i',
'o',
'n',
's',0};
1004 WCHAR szAllFiles[40];
1005 WCHAR szFileExt[10];
1058 ERR(
": More than %d filters found! Adjust MAX_FILTERS in dlls/avifil32/api.c\n",
MAX_FILTERS);
1068 wsprintfW(szValue, szExtensionFmt, szFileExt);
1069 if (lp[
i].szExtensions[0] == 0)
1070 lstrcatW(lp[
i].szExtensions, szValue + 1);
1075 if (lp[0].szExtensions[0] == 0)
1076 lstrcatW(lp[0].szExtensions, szValue + 1);
1078 lstrcatW(lp[0].szExtensions, szValue);
1090 size =
sizeof(szValue);
1126 if (cbFilter >
size) {
1143 ERR(
": bad state!\n");
1148 &sInfo,
sizeof(sInfo)))) {
1149 ERR(
": AVIStreamInfoW failed!\n");
1157 memset(&cv, 0,
sizeof(cv));
1212 memset(&afmtc, 0,
sizeof(afmtc));
1224 if (!new_buffer)
return FALSE;
1250 ERR(
": unknown streamtype 0x%08X\n", sInfo.
fccType);
1257 static const WCHAR szVideoFmt[]={
'%',
'l',
'd',
'x',
'%',
'l',
'd',
'x',
'%',
'd',0};
1258 static const WCHAR szAudioFmt[]={
'%',
's',
' ',
'%',
's',0};
1260 WCHAR szFormat[128];
1309 memset(&aftd, 0,
sizeof(aftd));
1310 memset(&afd, 0,
sizeof(afd));
1347 BOOL bIsInterleaved;
1377 dwInterleave =
SaveOpts.ppOptions[0]->dwInterleaveEvery;
1379 bIsInterleaved =
TRUE;
1394 if (bIsInterleaved) {
1396 SaveOpts.ppOptions[
n]->dwInterleaveEvery = dwInterleave;
1444 if (pSavedOptions ==
NULL)
1465 if (pSavedOptions !=
NULL) {
1520 lpfnCallback, nStream, ppavi, plpOptions);
1522 if (szFile ==
NULL || ppavi ==
NULL || plpOptions ==
NULL)
1537 nStream, ppavi, plpOptions);
1568 LONG lFirstVideo = -1;
1572 DWORD dwInterleave = 0;
1573 DWORD dwFileInitialFrames;
1586 lpfnCallback,
nStreams, ppavi, plpOptions);
1588 if (szFile ==
NULL || ppavi ==
NULL || plpOptions ==
NULL)
1595 if (lpfnCallback ==
NULL)
1599 for (curStream = 0; curStream <
nStreams; curStream++) {
1600 pInStreams[curStream] =
NULL;
1601 pOutStreams[curStream] =
NULL;
1612 for (curStream = 0; curStream <
nStreams; curStream++) {
1622 if (lFirstVideo < 0)
1623 lFirstVideo = curStream;
1624 }
else if (!dwInterleave) {
1626 WARN(
"options.flags=0x%X options.dwInterleave=%u\n",plpOptions[curStream]->
dwFlags,plpOptions[curStream]->dwInterleaveEvery);
1627 if (plpOptions[curStream] !=
NULL &&
1633 pInStreams[curStream] =
NULL;
1634 if (plpOptions[curStream] !=
NULL) {
1635 if (plpOptions[curStream]->fccHandler ||
1643 plpOptions[curStream],
NULL);
1646 pInStreams[curStream] =
NULL;
1658 if (pInStreams[curStream] ==
NULL) {
1659 pCurStream = pInStreams[curStream] = ppavi[curStream];
1662 pCurStream = pInStreams[curStream];
1664 lStart[curStream] = sInfo.
dwStart;
1668 if (lFirstVideo > 0) {
1670 LONG lTmp = lStart[lFirstVideo];
1672 pInStreams[lFirstVideo] = pInStreams[0];
1673 pInStreams[0] = pTmp;
1674 lStart[lFirstVideo] = lStart[0];
1680 cbBuffer = 0x00010000;
1689 dwFileInitialFrames = 0;
1690 if (lFirstVideo >= 0) {
1695 lBufferSize = cbBuffer;
1705 for (curStream = 0; curStream <
nStreams; curStream++) {
1717 lBufferSize = cbBuffer;
1727 lBufferSize = cbBuffer;
1742 if (lFileLength < lReadBytes)
1743 lFileLength = lReadBytes;
1746 WARN(
"creation of (de-)compression stream failed for stream %d\n",curStream);
1754 *ppas = pInStreams[curStream + 1];
1767 LONG lCurFrame = -dwFileInitialFrames;
1770 if (dwInterleave == 1)
1773 for (; lCurFrame < lFileLength; lCurFrame += lSampleInc) {
1774 for (curStream = 0; curStream <
nStreams; curStream++) {
1785 if ((lFileLength - lSampleInc) <= lCurFrame) {
1787 lFirstVideo = lLastSample +
AVIStreamStart(pInStreams[curStream]);
1789 if (curStream != 0) {
1793 (
LONG)dwInterleave : lSampleInc) +
1799 if (lLastSample <= lFirstVideo)
1800 lFirstVideo = lLastSample;
1804 WARN(
"copy from stream %d samples %d to %d...\n",curStream,
1805 lStart[curStream],lFirstVideo);
1806 while (lFirstVideo > lStart[curStream]) {
1810 lBufferSize = cbBuffer;
1821 lFirstVideo - lStart[curStream],
lpBuffer,
1822 cbBuffer, &lReadBytes, &lReadSamples);
1837 lStart[curStream] += lReadSamples;
1839 lStart[curStream] = lFirstVideo;
1843 if (dwInterleave == 1) {
1850 if (lpfnCallback(
MulDiv(dwFileInitialFrames + lCurFrame, 100,
1851 dwFileInitialFrames + lFileLength))) {
1859 for (curStream = 0; curStream <
nStreams; curStream++) {
1874 lBufferSize = cbBuffer;
1888 lReadBytes = cbBuffer;
1891 lpBuffer,cbBuffer,&lReadBytes,&lReadSamples);
1898 if (lReadSamples != 0) {
1899 sInfo.
dwStart += lReadSamples;
1924 lBufferSize = cbBuffer;
1935 lReadBytes = cbBuffer;
1937 lpBuffer, cbBuffer,&lReadBytes,&lReadSamples);
1944 if (lReadSamples != 1) {
1969 if (pfile !=
NULL) {
1970 for (curStream = 0; curStream <
nStreams; curStream++) {
1971 if (pOutStreams[curStream] !=
NULL)
1973 if (pInStreams[curStream] !=
NULL)
1993 if (pStream ==
NULL)
2020 TRACE(
"(%p,%p,%p,%p)\n", pStream, plStart, plLength,
ppResult);
2022 if (pStream ==
NULL)
2049 TRACE(
"(%p,%p,%p,%p)\n", pStream, plStart, plLength,
ppResult);
2053 if (pStream ==
NULL)
2055 if (plStart ==
NULL || plLength ==
NULL)
2078 TRACE(
"(%p,%p,%p,%p,%d,%d)\n", pDest, plStart, plLength,
2079 pSource, lStart, lEnd);
2081 if (pDest ==
NULL || pSource ==
NULL)
2083 if (plStart ==
NULL || plLength ==
NULL || lStart < 0)
2105 TRACE(
"(%p,%p,%d)\n", pstream, asi,
size);
2110 memcpy(&asiw, asi,
sizeof(asiw) -
sizeof(asiw.
szName));
2125 TRACE(
"(%p,%p,%d)\n", pstream, asi,
size);
2151 if (pstream ==
NULL)
2176 if (pstream ==
NULL)
2206 FIXME(
"(%p), stub!\n", ppfile);
2219 FIXME(
"(0x%08x,%p,%p), stub!\n", cfFormat, hGlobal, ppstream);
2221 if (ppstream ==
NULL)
2232 FIXME(
"(%p), stub!\n", pfile);
2249 TRACE(
"(%s,%p,%p,%d,%p,%p)\n",
debugstr_a(szFile), pclsidHandler, lpfnCallback,
2274 TRACE(
"Pair[%d] - Stream = %p, Options = %p\n",
i, streams[
i],
options[
i]);
2292 TRACE(
"(%s,%p,%p,%d,%p,%p)\n",
debugstr_w(szFile), pclsidHandler, lpfnCallback,
2317 TRACE(
"Pair[%d] - Stream = %p, Options = %p\n",
i, streams[
i],
options[
i]);
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)
#define IGetFrame_GetFrame(p, a)
static BOOL AVISaveOptionsFmtChoose(HWND hWnd)
HRESULT WINAPI AVIFileInfoA(PAVIFILE pfile, LPAVIFILEINFOA afi, LONG size)
HRESULT WINAPI AVIGetFromClipboard(PAVIFILE *ppfile)
#define IAVIEditStream_Copy(p, a, b, c)
#define AVICOMPRESSF_DATARATE
#define IAVIFile_QueryInterface(p, a, b)
HRESULT WINAPI AVIStreamReadFormat(PAVISTREAM pstream, LONG pos, LPVOID format, LPLONG formatsize)
#define IAVIStream_Create(p, a, b)
BOOL WINAPI CheckDlgButton(_In_ HWND, _In_ int, _In_ UINT)
BOOL WINAPI AVISaveOptions(HWND hWnd, UINT uFlags, INT nStreams, PAVISTREAM *ppavi, LPAVICOMPRESSOPTIONS *ppOptions)
LONG WINAPI AVIStreamBeginStreaming(PAVISTREAM pavi, LONG lStart, LONG lEnd, LONG lRate)
static const WCHAR szName[]
HRESULT WINAPI EditStreamClone(PAVISTREAM pStream, PAVISTREAM *ppResult)
ULONG WINAPI AVIFileAddRef(PAVIFILE pfile)
#define AVICOMPRESSF_VALID
#define IGetFrame_SetFormat(p, a, b, c, d, e, f)
LSTATUS WINAPI RegQueryValueA(HKEY hkey, LPCSTR name, LPSTR data, LPLONG count)
#define IGetFrame_Release(p)
#define WideCharToMultiByte
static static const char __ms_va_list
struct _WAVEFORMATEX * PWAVEFORMATEX
HRESULT WINAPI AVISaveVW(LPCWSTR szFile, CLSID *pclsidHandler, AVISAVECALLBACK lpfnCallback, int nStreams, PAVISTREAM *ppavi, LPAVICOMPRESSOPTIONS *plpOptions)
#define IAVIStreaming_Begin(p, a, b, c)
struct _AVIFilter AVIFilter
static WCHAR wszFilter[MAX_STRING_LEN *4+6 *3+5]
#define IAVIStream_Info(p, a, b)
#define AVIFILECAPS_ALLKEYFRAMES
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
HRESULT WINAPI EditStreamCopy(PAVISTREAM pStream, LONG *plStart, LONG *plLength, PAVISTREAM *ppResult)
GLuint GLuint GLsizei count
HRESULT WINAPI AVIStreamInfoW(PAVISTREAM pstream, LPAVISTREAMINFOW asi, LONG size)
HRESULT WINAPI AVIStreamSetFormat(PAVISTREAM pstream, LONG pos, LPVOID format, LONG formatsize)
HRESULT WINAPI EditStreamPaste(PAVISTREAM pDest, LONG *plStart, LONG *plLength, PAVISTREAM pSource, LONG lStart, LONG lEnd)
static struct @314 SaveOpts
#define IAVIStream_Release(p)
HRESULT WINAPI AVIMakeStreamFromClipboard(UINT cfFormat, HANDLE hGlobal, PAVISTREAM *ppstream)
HRESULT WINAPI EditStreamCut(PAVISTREAM pStream, LONG *plStart, LONG *plLength, PAVISTREAM *ppResult)
struct IGetFrame * PGETFRAME
#define ICMF_COMPVARS_VALID
#define IAVIFile_EndRecord(p)
LONG WINAPI AVIStreamTimeToSample(PAVISTREAM pstream, LONG lTime)
ULONG WINAPI AVIFileRelease(PAVIFILE pfile)
#define IAVIEditStream_Cut(p, a, b, c)
INT WINAPI MulDiv(INT nNumber, INT nNumerator, INT nDenominator)
LONG WINAPI AVIStreamSampleToTime(PAVISTREAM pstream, LONG lSample)
struct pcmwaveformat_tag PCMWAVEFORMAT
HRESULT WINAPI AVIFileWriteData(PAVIFILE pfile, DWORD fcc, LPVOID lp, LONG size)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
#define IAVIStream_ReadData(p, a, b, c)
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)
static const WCHAR avifile[]
#define IAVIFile_AddRef(p)
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
#define AVIStreamFormatSize(pavi, lPos, plSize)
HRESULT WINAPI AVIStreamCreate(PAVISTREAM *ppavi, LONG lParam1, LONG lParam2, LPCLSID pclsidHandler)
static INT_PTR CALLBACK AVISaveOptionsDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
#define IAVIFile_WriteData(p, a, b, c)
BOOL WINAPI SetDlgItemTextW(_In_ HWND, _In_ int, _In_ LPCWSTR)
void WINAPI AVIFileInit(void)
#define IDS_ALLMULTIMEDIA
#define IAVIFile_Info(p, a, b)
#define ACM_FORMATDETAILSF_FORMAT
LONG WINAPI AVIStreamFindSample(PAVISTREAM pstream, LONG pos, LONG flags)
static const WCHAR wszFile[]
LRESULT WINAPI ICClose(HIC hic)
LONG WINAPI AVIStreamLength(PAVISTREAM pstream)
#define ICQUALITY_DEFAULT
HRESULT WINAPI AVIStreamOpenFromFileW(PAVISTREAM *ppavi, LPCWSTR szFile, DWORD fccType, LONG lParam, UINT mode, LPCLSID pclsidHandler)
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
HRESULT WINAPI AVIStreamReadData(PAVISTREAM pstream, DWORD fcc, LPVOID lp, LPLONG lpread)
HRESULT WINAPI AVIMakeCompressedStream(PAVISTREAM *ppsCompressed, PAVISTREAM psSource, LPAVICOMPRESSOPTIONS aco, LPCLSID pclsidHandler)
#define AVICOMPRESSF_KEYFRAMES
HRESULT WINAPI AVIStreamWriteData(PAVISTREAM pstream, DWORD fcc, LPVOID lp, LONG size)
static TAGREF LPCWSTR LPDWORD LPVOID lpBuffer
#define IAVIStream_AddRef(p)
ULONG WINAPI AVIStreamAddRef(PAVISTREAM pstream)
#define IAVIFile_CreateStream(p, a, b)
MMRESULT WINAPI acmMetrics(HACMOBJ hao, UINT uMetric, LPVOID pMetric)
#define IAVIStreaming_End(p)
UINT WINAPI GetDlgItemInt(_In_ HWND, _In_ int, _Out_opt_ PBOOL, _In_ BOOL)
LONG WINAPI AVIStreamEndStreaming(PAVISTREAM pavi)
HRESULT WINAPI AVIBuildFilterA(LPSTR szFilter, LONG cbFilter, BOOL fSaving)
#define IAVIStream_ReadFormat(p, a, b, c)
HRESULT WINAPI AVIStreamRead(PAVISTREAM pstream, LONG start, LONG samples, LPVOID buffer, LONG buffersize, LPLONG bytesread, LPLONG samplesread)
UINT WINAPI IsDlgButtonChecked(_In_ HWND, _In_ int)
#define AVIERR_BUFFERTOOSMALL
#define DialogBoxW(i, t, p, f)
HRESULT WINAPI AVIFileCreateStreamW(PAVIFILE pfile, PAVISTREAM *avis, LPAVISTREAMINFOW asi)
#define AVIERR_UNSUPPORTED
#define IAVIStream_Write(p, a, b, c, d, e, f, g)
HRESULT WINAPI AVIStreamWrite(PAVISTREAM pstream, LONG start, LONG samples, LPVOID buffer, LONG buffersize, DWORD flags, LPLONG sampwritten, LPLONG byteswritten)
HRESULT WINAPI EditStreamSetInfoA(PAVISTREAM pstream, LPAVISTREAMINFOA asi, LONG size)
LRESULT VFWAPI ICGetInfo(HIC hic, ICINFO *picinfo, DWORD cb)
static void AVISaveOptionsUpdate(HWND hWnd)
#define ACM_FORMATTAGDETAILSF_FORMATTAG
#define IAVIStream_Read(p, a, b, c, d, e, f)
PGETFRAME AVIFILE_CreateGetFrame(PAVISTREAM pstream) DECLSPEC_HIDDEN
static const WCHAR clsidW[]
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
#define ckidSTREAMHANDLERDATA
#define IAVIStream_SetFormat(p, a, b, c)
LPVOID WINAPI AVIStreamGetFrame(PGETFRAME pg, LONG pos)
#define ICMODE_DECOMPRESS
static BOOL WINAPI AVIFILE_AVISaveDefaultCallback(INT progress)
#define IDC_INTERLEAVEEVERY
WINE_DEFAULT_DEBUG_CHANNEL(avifile)
LSTATUS WINAPI RegQueryValueW(HKEY hkey, LPCWSTR name, LPWSTR data, LPLONG count)
#define AVIStreamIsKeyFrame(pavi, pos)
HRESULT WINAPIV AVISaveA(LPCSTR szFile, CLSID *pclsidHandler, AVISAVECALLBACK lpfnCallback, int nStreams, PAVISTREAM pavi, LPAVICOMPRESSOPTIONS lpOptions,...)
#define IAVIEditStream_SetInfo(p, a, b)
HRESULT WINAPI AVIFileOpenA(PAVIFILE *ppfile, LPCSTR szFile, UINT uMode, LPCLSID lpHandler)
LRESULT WINAPI SendDlgItemMessageW(_In_ HWND, _In_ int, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
ULONG WINAPI AVIStreamRelease(PAVISTREAM pstream)
struct IAVIEditStream * PAVIEDITSTREAM
enum _tagppResult ppResult
HRESULT WINAPI AVIClearClipboard(void)
BOOL WINAPI SetDlgItemInt(_In_ HWND, _In_ int, _In_ UINT, _In_ BOOL)
#define IAVIStream_WriteData(p, a, b, c)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
LONG WINAPI AVIStreamStart(PAVISTREAM pstream)
#define memcpy(s1, s2, n)
#define ACM_FORMATENUMF_CONVERT
BOOL(CALLBACK * AVISAVECALLBACK)(INT)
static HRESULT AVIFILE_CLSIDFromString(LPCSTR idstr, LPCLSID id)
HRESULT WINAPI AVIFileEndRecord(PAVIFILE pfile)
#define AVIStreamSampleToSample(pavi1, pavi2, samp2)
#define IAVIStream_QueryInterface(p, a, b)
HRESULT WINAPI AVIMakeFileFromStreams(PAVIFILE *ppfile, int nStreams, PAVISTREAM *ppStreams)
LONG WINAPI RegEnumKeyW(HKEY hKey, DWORD dwIndex, LPWSTR lpName, DWORD cbName)
HRESULT WINAPI EditStreamSetNameW(PAVISTREAM pstream, LPCWSTR szName)
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
HRESULT WINAPI AVIStreamInfoA(PAVISTREAM pstream, LPAVISTREAMINFOA asi, LONG size)
HRESULT WINAPI DECLSPEC_HOTPATCH OleInitialize(LPVOID reserved)
HRESULT WINAPIV AVISaveW(LPCWSTR szFile, CLSID *pclsidHandler, AVISAVECALLBACK lpfnCallback, int nStreams, PAVISTREAM pavi, LPAVICOMPRESSOPTIONS lpOptions,...)
void VFWAPI ICCompressorFree(PCOMPVARS pc)
#define IAVIEditStream_Paste(p, a, b, c, d, e)
HRESULT WINAPI EditStreamSetInfoW(PAVISTREAM pstream, LPAVISTREAMINFOW asi, LONG size)
int WINAPI lstrlenA(LPCSTR lpString)
int WINAPIV wsprintfA(_Out_ LPSTR, _In_ _Printf_format_string_ LPCSTR,...)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
HRESULT WINAPI AVISaveOptionsFree(INT nStreams, LPAVICOMPRESSOPTIONS *ppOptions)
HRESULT WINAPI AVIStreamGetFrameClose(PGETFRAME pg)
#define IAVIEditStream_Release(p)
#define IAVIEditStream_Clone(p, a)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
HRESULT WINAPI AVIFileReadData(PAVIFILE pfile, DWORD fcc, LPVOID lp, LPLONG size)
LPAVICOMPRESSOPTIONS * ppOptions
HRESULT WINAPI EditStreamSetNameA(PAVISTREAM pstream, LPCSTR szName)
#define __ms_va_end(list)
#define IAVIStreaming_Release(p)
HRESULT WINAPI AVIPutFileOnClipboard(PAVIFILE pfile)
HRESULT WINAPI AVISaveVA(LPCSTR szFile, CLSID *pclsidHandler, AVISAVECALLBACK lpfnCallback, int nStream, PAVISTREAM *ppavi, LPAVICOMPRESSOPTIONS *plpOptions)
#define MultiByteToWideChar
HIC VFWAPI ICLocate(DWORD type, DWORD handler, BITMAPINFOHEADER *in, BITMAPINFOHEADER *out, WORD mode)
const GUID IID_IPersistFile
HRESULT WINAPI AVIFileGetStream(PAVIFILE pfile, PAVISTREAM *avis, DWORD fccType, LONG lParam)
#define __ms_va_start(list, arg)
#define AVIStreamEnd(pavi)
BOOL VFWAPI ICCompressorChoose(HWND hwnd, UINT uiFlags, LPVOID pvIn, LPVOID lpData, PCOMPVARS pc, LPSTR lpszTitle)
#define IAVIFile_Release(p)
#define AVICOMPRESSF_INTERLEAVE
HRESULT WINAPI AVIBuildFilterW(LPWSTR szFilter, LONG cbFilter, BOOL fSaving)
HRESULT WINAPI AVIStreamOpenFromFileA(PAVISTREAM *ppavi, LPCSTR szFile, DWORD fccType, LONG lParam, UINT mode, LPCLSID pclsidHandler)
#define HKEY_CLASSES_ROOT
#define MAKEINTRESOURCEW(i)
WCHAR szExtensions[MAX_FILTERS *7]
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
void WINAPI AVIFileExit(void)
HRESULT WINAPI AVIFileOpenW(PAVIFILE *ppfile, LPCWSTR szFile, UINT uMode, LPCLSID lpHandler)
#define IAVIStream_FindSample(p, a, b)
static BOOL AVIFILE_GetFileHandlerByExtension(LPCWSTR szFile, LPCLSID lpclsid)
#define IAVIFile_GetStream(p, a, b, c)
#define IAVIFile_ReadData(p, a, b, c)
#define ACM_METRIC_MAX_SIZE_FORMAT
#define HeapFree(x, y, z)
#define RegCloseKey(hKey)
HRESULT WINAPI AVIFileCreateStreamA(PAVIFILE pfile, PAVISTREAM *ppavi, LPAVISTREAMINFOA psi)
PGETFRAME WINAPI AVIStreamGetFrameOpen(PAVISTREAM pstream, LPBITMAPINFOHEADER lpbiWanted)
#define OF_SHARE_EXCLUSIVE
HRESULT WINAPI AVIFileInfoW(PAVIFILE pfile, LPAVIFILEINFOW afiw, LONG size)
PAVIFILE AVIFILE_CreateAVITempFile(int nStreams, const PAVISTREAM *ppStreams) DECLSPEC_HIDDEN