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));
1194 pOptions->
dwFlags &= ~AVICOMPRESSF_KEYFRAMES;
1199 pOptions->
dwFlags &= ~AVICOMPRESSF_DATARATE;
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;
1398 SaveOpts.ppOptions[
n]->dwFlags &= ~AVICOMPRESSF_INTERLEAVE;
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]);
#define IDC_INTERLEAVEEVERY
PGETFRAME AVIFILE_CreateGetFrame(PAVISTREAM pstream) DECLSPEC_HIDDEN
PAVIFILE AVIFILE_CreateAVITempFile(int nStreams, const PAVISTREAM *ppStreams) DECLSPEC_HIDDEN
#define IDS_ALLMULTIMEDIA
static const WCHAR avifile[]
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static WCHAR wszFilter[MAX_STRING_LEN *4+6 *3+5]
#define RegCloseKey(hKey)
static TAGREF LPCWSTR LPDWORD LPVOID lpBuffer
static const WCHAR clsidW[]
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
LSTATUS WINAPI RegQueryValueA(HKEY hkey, LPCSTR name, LPSTR data, LPLONG count)
LSTATUS WINAPI RegQueryValueW(HKEY hkey, LPCWSTR name, LPWSTR data, LPLONG count)
LONG WINAPI RegEnumKeyW(HKEY hKey, DWORD dwIndex, LPWSTR lpName, DWORD cbName)
HRESULT WINAPI AVIStreamCreate(PAVISTREAM *ppavi, LONG lParam1, LONG lParam2, LPCLSID pclsidHandler)
HRESULT WINAPI AVIStreamWriteData(PAVISTREAM pstream, DWORD fcc, LPVOID lp, LONG size)
HRESULT WINAPI EditStreamSetInfoA(PAVISTREAM pstream, LPAVISTREAMINFOA asi, LONG size)
struct _AVIFilter AVIFilter
static BOOL AVISaveOptionsFmtChoose(HWND hWnd)
HRESULT WINAPI EditStreamCut(PAVISTREAM pStream, LONG *plStart, LONG *plLength, PAVISTREAM *ppResult)
static void AVISaveOptionsUpdate(HWND hWnd)
BOOL WINAPI AVISaveOptions(HWND hWnd, UINT uFlags, INT nStreams, PAVISTREAM *ppavi, LPAVICOMPRESSOPTIONS *ppOptions)
HRESULT WINAPI EditStreamSetNameA(PAVISTREAM pstream, LPCSTR szName)
HRESULT WINAPI EditStreamClone(PAVISTREAM pStream, PAVISTREAM *ppResult)
HRESULT WINAPI AVIStreamSetFormat(PAVISTREAM pstream, LONG pos, LPVOID format, LONG formatsize)
HRESULT WINAPI AVISaveOptionsFree(INT nStreams, LPAVICOMPRESSOPTIONS *ppOptions)
PGETFRAME WINAPI AVIStreamGetFrameOpen(PAVISTREAM pstream, LPBITMAPINFOHEADER lpbiWanted)
HRESULT WINAPI AVIFileGetStream(PAVIFILE pfile, PAVISTREAM *avis, DWORD fccType, LONG lParam)
HRESULT WINAPI AVIFileOpenW(PAVIFILE *ppfile, LPCWSTR szFile, UINT uMode, LPCLSID lpHandler)
LONG WINAPI AVIStreamLength(PAVISTREAM pstream)
LONG WINAPI AVIStreamEndStreaming(PAVISTREAM pavi)
LONG WINAPI AVIStreamTimeToSample(PAVISTREAM pstream, LONG lTime)
HRESULT WINAPI AVISaveVW(LPCWSTR szFile, CLSID *pclsidHandler, AVISAVECALLBACK lpfnCallback, int nStreams, PAVISTREAM *ppavi, LPAVICOMPRESSOPTIONS *plpOptions)
HRESULT WINAPI AVIMakeCompressedStream(PAVISTREAM *ppsCompressed, PAVISTREAM psSource, LPAVICOMPRESSOPTIONS aco, LPCLSID pclsidHandler)
HRESULT WINAPI AVIFileEndRecord(PAVIFILE pfile)
HRESULT WINAPI AVIBuildFilterA(LPSTR szFilter, LONG cbFilter, BOOL fSaving)
HRESULT WINAPI AVIFileCreateStreamW(PAVIFILE pfile, PAVISTREAM *avis, LPAVISTREAMINFOW asi)
HRESULT WINAPI AVIFileWriteData(PAVIFILE pfile, DWORD fcc, LPVOID lp, LONG size)
HRESULT WINAPI AVISaveVA(LPCSTR szFile, CLSID *pclsidHandler, AVISAVECALLBACK lpfnCallback, int nStream, PAVISTREAM *ppavi, LPAVICOMPRESSOPTIONS *plpOptions)
LONG WINAPI AVIStreamSampleToTime(PAVISTREAM pstream, LONG lSample)
HRESULT WINAPI AVIStreamOpenFromFileW(PAVISTREAM *ppavi, LPCWSTR szFile, DWORD fccType, LONG lParam, UINT mode, LPCLSID pclsidHandler)
LONG WINAPI AVIStreamFindSample(PAVISTREAM pstream, LONG pos, LONG flags)
void WINAPI AVIFileExit(void)
HRESULT WINAPI AVIStreamGetFrameClose(PGETFRAME pg)
ULONG WINAPI AVIStreamAddRef(PAVISTREAM pstream)
HRESULT WINAPI AVIGetFromClipboard(PAVIFILE *ppfile)
static BOOL AVIFILE_GetFileHandlerByExtension(LPCWSTR szFile, LPCLSID lpclsid)
HRESULT WINAPI AVIStreamRead(PAVISTREAM pstream, LONG start, LONG samples, LPVOID buffer, LONG buffersize, LPLONG bytesread, LPLONG samplesread)
HRESULT WINAPI AVIFileOpenA(PAVIFILE *ppfile, LPCSTR szFile, UINT uMode, LPCLSID lpHandler)
HRESULT WINAPI EditStreamSetInfoW(PAVISTREAM pstream, LPAVISTREAMINFOW asi, LONG size)
HRESULT WINAPI AVIBuildFilterW(LPWSTR szFilter, LONG cbFilter, BOOL fSaving)
static INT_PTR CALLBACK AVISaveOptionsDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
HRESULT WINAPI AVIMakeFileFromStreams(PAVIFILE *ppfile, int nStreams, PAVISTREAM *ppStreams)
void WINAPI AVIFileInit(void)
static struct @323 SaveOpts
HRESULT WINAPI AVIStreamInfoA(PAVISTREAM pstream, LPAVISTREAMINFOA asi, LONG size)
LONG WINAPI AVIStreamStart(PAVISTREAM pstream)
HRESULT WINAPI EditStreamCopy(PAVISTREAM pStream, LONG *plStart, LONG *plLength, PAVISTREAM *ppResult)
LPVOID WINAPI AVIStreamGetFrame(PGETFRAME pg, LONG pos)
HRESULT WINAPI EditStreamPaste(PAVISTREAM pDest, LONG *plStart, LONG *plLength, PAVISTREAM pSource, LONG lStart, LONG lEnd)
HRESULT WINAPI AVIFileReadData(PAVIFILE pfile, DWORD fcc, LPVOID lp, LPLONG size)
ULONG WINAPI AVIFileRelease(PAVIFILE pfile)
HRESULT WINAPI AVIStreamReadData(PAVISTREAM pstream, DWORD fcc, LPVOID lp, LPLONG lpread)
HRESULT WINAPI AVIStreamOpenFromFileA(PAVISTREAM *ppavi, LPCSTR szFile, DWORD fccType, LONG lParam, UINT mode, LPCLSID pclsidHandler)
HRESULT WINAPI AVIFileCreateStreamA(PAVIFILE pfile, PAVISTREAM *ppavi, LPAVISTREAMINFOA psi)
LPAVICOMPRESSOPTIONS * ppOptions
HRESULT WINAPI AVIFileInfoW(PAVIFILE pfile, LPAVIFILEINFOW afiw, LONG size)
HRESULT WINAPI AVIPutFileOnClipboard(PAVIFILE pfile)
HRESULT WINAPI EditStreamSetNameW(PAVISTREAM pstream, LPCWSTR szName)
static BOOL WINAPI AVIFILE_AVISaveDefaultCallback(INT progress)
HRESULT WINAPI AVIStreamInfoW(PAVISTREAM pstream, LPAVISTREAMINFOW asi, LONG size)
ULONG WINAPI AVIFileAddRef(PAVIFILE pfile)
HRESULT WINAPI AVIMakeStreamFromClipboard(UINT cfFormat, HANDLE hGlobal, PAVISTREAM *ppstream)
HRESULT WINAPI AVIStreamWrite(PAVISTREAM pstream, LONG start, LONG samples, LPVOID buffer, LONG buffersize, DWORD flags, LPLONG sampwritten, LPLONG byteswritten)
HRESULT WINAPI AVIFileInfoA(PAVIFILE pfile, LPAVIFILEINFOA afi, LONG size)
HRESULT WINAPI AVIStreamReadFormat(PAVISTREAM pstream, LONG pos, LPVOID format, LPLONG formatsize)
HRESULT WINAPI AVIClearClipboard(void)
LONG WINAPI AVIStreamBeginStreaming(PAVISTREAM pavi, LONG lStart, LONG lEnd, LONG lRate)
HRESULT WINAPIV AVISaveA(LPCSTR szFile, CLSID *pclsidHandler, AVISAVECALLBACK lpfnCallback, int nStreams, PAVISTREAM pavi, LPAVICOMPRESSOPTIONS lpOptions,...)
ULONG WINAPI AVIStreamRelease(PAVISTREAM pstream)
static HRESULT AVIFILE_CLSIDFromString(LPCSTR idstr, LPCLSID id)
HRESULT WINAPIV AVISaveW(LPCWSTR szFile, CLSID *pclsidHandler, AVISAVECALLBACK lpfnCallback, int nStreams, PAVISTREAM pavi, LPAVICOMPRESSOPTIONS lpOptions,...)
#define HeapFree(x, y, z)
#define WideCharToMultiByte
#define MultiByteToWideChar
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
HRESULT WINAPI DECLSPEC_HOTPATCH OleInitialize(LPVOID reserved)
GLuint GLuint GLsizei count
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
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
int WINAPI lstrlenA(LPCSTR lpString)
#define memcpy(s1, s2, n)
struct _WAVEFORMATEX * PWAVEFORMATEX
struct pcmwaveformat_tag PCMWAVEFORMAT
MMRESULT WINAPI acmMetrics(HACMOBJ hao, UINT uMetric, LPVOID pMetric)
#define ACM_FORMATENUMF_CONVERT
#define ACM_METRIC_MAX_SIZE_FORMAT
#define ACM_FORMATTAGDETAILSF_FORMATTAG
#define ACM_FORMATDETAILSF_FORMAT
LRESULT VFWAPI ICGetInfo(HIC hic, ICINFO *picinfo, DWORD cb)
HIC VFWAPI ICLocate(DWORD type, DWORD handler, BITMAPINFOHEADER *in, BITMAPINFOHEADER *out, WORD mode)
void VFWAPI ICCompressorFree(PCOMPVARS pc)
BOOL VFWAPI ICCompressorChoose(HWND hwnd, UINT uiFlags, LPVOID pvIn, LPVOID lpData, PCOMPVARS pc, LPSTR lpszTitle)
LRESULT WINAPI ICClose(HIC hic)
INT WINAPI MulDiv(INT nNumber, INT nNumerator, INT nDenominator)
enum _tagppResult ppResult
const GUID IID_IPersistFile
static const WCHAR szName[]
WCHAR szExtensions[MAX_FILTERS *7]
static const WCHAR wszFile[]
#define IAVIStream_SetFormat(p, a, b, c)
#define ICMODE_DECOMPRESS
#define AVICOMPRESSF_VALID
#define IAVIStream_AddRef(p)
#define IAVIStream_WriteData(p, a, b, c)
#define IAVIStream_QueryInterface(p, a, b)
#define AVIERR_UNSUPPORTED
#define AVIStreamSampleToSample(pavi1, pavi2, samp2)
#define ICQUALITY_DEFAULT
#define IGetFrame_SetFormat(p, a, b, c, d, e, f)
#define AVICOMPRESSF_KEYFRAMES
#define AVICOMPRESSF_DATARATE
#define IAVIEditStream_Copy(p, a, b, c)
#define IAVIEditStream_Clone(p, a)
#define IAVIStream_Read(p, a, b, c, d, e, f)
struct IAVIEditStream * PAVIEDITSTREAM
#define IAVIStreaming_Release(p)
#define IAVIEditStream_SetInfo(p, a, b)
#define IGetFrame_GetFrame(p, a)
#define IAVIStream_ReadFormat(p, a, b, c)
#define IAVIFile_ReadData(p, a, b, c)
#define IAVIFile_QueryInterface(p, a, b)
#define IGetFrame_Release(p)
#define ckidSTREAMHANDLERDATA
#define IAVIFile_Info(p, a, b)
#define IAVIFile_GetStream(p, a, b, c)
BOOL(CALLBACK * AVISAVECALLBACK)(INT)
#define IAVIFile_WriteData(p, a, b, c)
#define IAVIStream_ReadData(p, a, b, c)
#define IAVIFile_Release(p)
#define ICMF_COMPVARS_VALID
#define AVIStreamFormatSize(pavi, lPos, plSize)
#define AVIStreamEnd(pavi)
#define AVICOMPRESSF_INTERLEAVE
#define AVIStreamIsKeyFrame(pavi, pos)
#define IAVIStream_Create(p, a, b)
#define IAVIEditStream_Paste(p, a, b, c, d, e)
#define IAVIEditStream_Cut(p, a, b, c)
#define IAVIFile_AddRef(p)
#define AVIERR_BUFFERTOOSMALL
#define IAVIStream_Write(p, a, b, c, d, e, f, g)
#define IAVIFile_EndRecord(p)
#define AVIFILECAPS_ALLKEYFRAMES
#define IAVIStream_Release(p)
#define IAVIStreaming_End(p)
#define IAVIStream_Info(p, a, b)
#define IAVIStreaming_Begin(p, a, b, c)
struct IGetFrame * PGETFRAME
#define IAVIFile_CreateStream(p, a, b)
#define IAVIEditStream_Release(p)
#define IAVIStream_FindSample(p, a, b)
#define OF_SHARE_EXCLUSIVE
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
#define __ms_va_end(list)
#define __ms_va_start(list, arg)
#define HKEY_CLASSES_ROOT
BOOL WINAPI CheckDlgButton(_In_ HWND, _In_ int, _In_ UINT)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)
#define DialogBoxW(i, t, p, f)
BOOL WINAPI SetDlgItemTextW(_In_ HWND, _In_ int, _In_ LPCWSTR)
int WINAPIV wsprintfA(_Out_ LPSTR, _In_ _Printf_format_string_ LPCSTR,...)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
LRESULT WINAPI SendDlgItemMessageW(_In_ HWND, _In_ int, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
UINT WINAPI IsDlgButtonChecked(_In_ HWND, _In_ int)
BOOL WINAPI SetDlgItemInt(_In_ HWND, _In_ int, _In_ UINT, _In_ BOOL)
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
UINT WINAPI GetDlgItemInt(_In_ HWND, _In_ int, _Out_opt_ PBOOL, _In_ BOOL)
#define MAKEINTRESOURCEW(i)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)