diff --git a/reactos/dll/win32/avifil32/CMakeLists.txt b/reactos/dll/win32/avifil32/CMakeLists.txt index 992880ec9b1..813d1ad4e36 100644 --- a/reactos/dll/win32/avifil32/CMakeLists.txt +++ b/reactos/dll/win32/avifil32/CMakeLists.txt @@ -19,7 +19,6 @@ add_library(avifil32 SHARED factory.c getframe.c icmstream.c - regsvr.c tmpfile.c wavfile.c rsrc.rc diff --git a/reactos/dll/win32/avifil32/acmstream.c b/reactos/dll/win32/avifil32/acmstream.c index 7794f54ab06..50e868b9619 100644 --- a/reactos/dll/win32/avifil32/acmstream.c +++ b/reactos/dll/win32/avifil32/acmstream.c @@ -36,41 +36,9 @@ WINE_DEFAULT_DEBUG_CHANNEL(avifile); /***********************************************************************/ -static HRESULT WINAPI ACMStream_fnQueryInterface(IAVIStream*iface,REFIID refiid,LPVOID *obj); -static ULONG WINAPI ACMStream_fnAddRef(IAVIStream*iface); -static ULONG WINAPI ACMStream_fnRelease(IAVIStream* iface); -static HRESULT WINAPI ACMStream_fnCreate(IAVIStream*iface,LPARAM lParam1,LPARAM lParam2); -static HRESULT WINAPI ACMStream_fnInfo(IAVIStream*iface,AVISTREAMINFOW *psi,LONG size); -static LONG WINAPI ACMStream_fnFindSample(IAVIStream*iface,LONG pos,LONG flags); -static HRESULT WINAPI ACMStream_fnReadFormat(IAVIStream*iface,LONG pos,LPVOID format,LONG *formatsize); -static HRESULT WINAPI ACMStream_fnSetFormat(IAVIStream*iface,LONG pos,LPVOID format,LONG formatsize); -static HRESULT WINAPI ACMStream_fnRead(IAVIStream*iface,LONG start,LONG samples,LPVOID buffer,LONG buffersize,LONG *bytesread,LONG *samplesread); -static HRESULT WINAPI ACMStream_fnWrite(IAVIStream*iface,LONG start,LONG samples,LPVOID buffer,LONG buffersize,DWORD flags,LONG *sampwritten,LONG *byteswritten); -static HRESULT WINAPI ACMStream_fnDelete(IAVIStream*iface,LONG start,LONG samples); -static HRESULT WINAPI ACMStream_fnReadData(IAVIStream*iface,DWORD fcc,LPVOID lp,LONG *lpread); -static HRESULT WINAPI ACMStream_fnWriteData(IAVIStream*iface,DWORD fcc,LPVOID lp,LONG size); -static HRESULT WINAPI ACMStream_fnSetInfo(IAVIStream*iface,AVISTREAMINFOW*info,LONG infolen); - -static const struct IAVIStreamVtbl iacmst = { - ACMStream_fnQueryInterface, - ACMStream_fnAddRef, - ACMStream_fnRelease, - ACMStream_fnCreate, - ACMStream_fnInfo, - ACMStream_fnFindSample, - ACMStream_fnReadFormat, - ACMStream_fnSetFormat, - ACMStream_fnRead, - ACMStream_fnWrite, - ACMStream_fnDelete, - ACMStream_fnReadData, - ACMStream_fnWriteData, - ACMStream_fnSetInfo -}; - typedef struct _IAVIStreamImpl { /* IUnknown stuff */ - const IAVIStreamVtbl *lpVtbl; + IAVIStream IAVIStream_iface; LONG ref; /* IAVIStream stuff */ @@ -102,34 +70,74 @@ typedef struct _IAVIStreamImpl { &__bytes, ACM_STREAMSIZEF_DESTINATION); \ *(a) = __bytes / This->lpInFormat->nBlockAlign; } while(0) -static HRESULT AVIFILE_OpenCompressor(IAVIStreamImpl *This); - -HRESULT AVIFILE_CreateACMStream(REFIID riid, LPVOID *ppv) +static HRESULT AVIFILE_OpenCompressor(IAVIStreamImpl *This) { - IAVIStreamImpl *pstream; - HRESULT hr; + HRESULT hr; - assert(riid != NULL && ppv != NULL); + /* pre-conditions */ + assert(This != NULL); + assert(This->pStream != NULL); - *ppv = NULL; + if (This->has != NULL) + return AVIERR_OK; - pstream = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IAVIStreamImpl)); - if (pstream == NULL) - return AVIERR_MEMORY; + if (This->lpInFormat == NULL) { + /* decode or encode the data from pStream */ + hr = AVIStreamFormatSize(This->pStream, This->sInfo.dwStart, &This->cbInFormat); + if (FAILED(hr)) + return hr; + This->lpInFormat = HeapAlloc(GetProcessHeap(), 0, This->cbInFormat); + if (This->lpInFormat == NULL) + return AVIERR_MEMORY; - pstream->lpVtbl = &iacmst; + hr = IAVIStream_ReadFormat(This->pStream, This->sInfo.dwStart, + This->lpInFormat, &This->cbInFormat); + if (FAILED(hr)) + return hr; - hr = IAVIStream_QueryInterface((IAVIStream*)pstream, riid, ppv); - if (FAILED(hr)) - HeapFree(GetProcessHeap(), 0, pstream); + if (This->lpOutFormat == NULL) { + /* we must decode to default format */ + This->cbOutFormat = sizeof(PCMWAVEFORMAT); + This->lpOutFormat = HeapAlloc(GetProcessHeap(), 0, This->cbOutFormat); + if (This->lpOutFormat == NULL) + return AVIERR_MEMORY; - return hr; + This->lpOutFormat->wFormatTag = WAVE_FORMAT_PCM; + if (acmFormatSuggest(NULL, This->lpInFormat, This->lpOutFormat, + This->cbOutFormat, ACM_FORMATSUGGESTF_WFORMATTAG) != S_OK) + return AVIERR_NOCOMPRESSOR; + } + } else if (This->lpOutFormat == NULL) + return AVIERR_ERROR; /* To what should I encode? */ + + if (acmStreamOpen(&This->has, NULL, This->lpInFormat, This->lpOutFormat, + NULL, 0, 0, ACM_STREAMOPENF_NONREALTIME) != S_OK) + return AVIERR_NOCOMPRESSOR; + + /* update AVISTREAMINFO structure */ + This->sInfo.dwSampleSize = This->lpOutFormat->nBlockAlign; + This->sInfo.dwScale = This->lpOutFormat->nBlockAlign; + This->sInfo.dwRate = This->lpOutFormat->nAvgBytesPerSec; + This->sInfo.dwQuality = (DWORD)ICQUALITY_DEFAULT; + SetRectEmpty(&This->sInfo.rcFrame); + + /* convert positions and sizes to output format */ + CONVERT_STREAM_to_THIS(&This->sInfo.dwStart); + CONVERT_STREAM_to_THIS(&This->sInfo.dwLength); + CONVERT_STREAM_to_THIS(&This->sInfo.dwSuggestedBufferSize); + + return AVIERR_OK; +} + +static inline IAVIStreamImpl *impl_from_IAVIStream(IAVIStream *iface) +{ + return CONTAINING_RECORD(iface, IAVIStreamImpl, IAVIStream_iface); } static HRESULT WINAPI ACMStream_fnQueryInterface(IAVIStream *iface, REFIID refiid, LPVOID *obj) { - IAVIStreamImpl *This = (IAVIStreamImpl *)iface; + IAVIStreamImpl *This = impl_from_IAVIStream(iface); TRACE("(%p,%s,%p)\n", iface, debugstr_guid(refiid), obj); @@ -146,7 +154,7 @@ static HRESULT WINAPI ACMStream_fnQueryInterface(IAVIStream *iface, static ULONG WINAPI ACMStream_fnAddRef(IAVIStream *iface) { - IAVIStreamImpl *This = (IAVIStreamImpl *)iface; + IAVIStreamImpl *This = impl_from_IAVIStream(iface); ULONG ref = InterlockedIncrement(&This->ref); TRACE("(%p) -> %d\n", iface, ref); @@ -160,7 +168,7 @@ static ULONG WINAPI ACMStream_fnAddRef(IAVIStream *iface) static ULONG WINAPI ACMStream_fnRelease(IAVIStream* iface) { - IAVIStreamImpl *This = (IAVIStreamImpl *)iface; + IAVIStreamImpl *This = impl_from_IAVIStream(iface); ULONG ref = InterlockedDecrement(&This->ref); TRACE("(%p) -> %d\n", iface, ref); @@ -209,7 +217,7 @@ static ULONG WINAPI ACMStream_fnRelease(IAVIStream* iface) static HRESULT WINAPI ACMStream_fnCreate(IAVIStream *iface, LPARAM lParam1, LPARAM lParam2) { - IAVIStreamImpl *This = (IAVIStreamImpl *)iface; + IAVIStreamImpl *This = impl_from_IAVIStream(iface); TRACE("(%p,0x%08lX,0x%08lX)\n", iface, lParam1, lParam2); @@ -262,7 +270,7 @@ static HRESULT WINAPI ACMStream_fnCreate(IAVIStream *iface, LPARAM lParam1, static HRESULT WINAPI ACMStream_fnInfo(IAVIStream *iface,LPAVISTREAMINFOW psi, LONG size) { - IAVIStreamImpl *This = (IAVIStreamImpl *)iface; + IAVIStreamImpl *This = impl_from_IAVIStream(iface); TRACE("(%p,%p,%d)\n", iface, psi, size); @@ -289,7 +297,7 @@ static HRESULT WINAPI ACMStream_fnInfo(IAVIStream *iface,LPAVISTREAMINFOW psi, static LONG WINAPI ACMStream_fnFindSample(IAVIStream *iface, LONG pos, LONG flags) { - IAVIStreamImpl *This = (IAVIStreamImpl *)iface; + IAVIStreamImpl *This = impl_from_IAVIStream(iface); TRACE("(%p,%d,0x%08X)\n",iface,pos,flags); @@ -317,7 +325,7 @@ static LONG WINAPI ACMStream_fnFindSample(IAVIStream *iface, LONG pos, static HRESULT WINAPI ACMStream_fnReadFormat(IAVIStream *iface, LONG pos, LPVOID format, LONG *formatsize) { - IAVIStreamImpl *This = (IAVIStreamImpl *)iface; + IAVIStreamImpl *This = impl_from_IAVIStream(iface); TRACE("(%p,%d,%p,%p)\n", iface, pos, format, formatsize); @@ -352,7 +360,7 @@ static HRESULT WINAPI ACMStream_fnReadFormat(IAVIStream *iface, LONG pos, static HRESULT WINAPI ACMStream_fnSetFormat(IAVIStream *iface, LONG pos, LPVOID format, LONG formatsize) { - IAVIStreamImpl *This = (IAVIStreamImpl *)iface; + IAVIStreamImpl *This = impl_from_IAVIStream(iface); HRESULT hr; @@ -399,7 +407,7 @@ static HRESULT WINAPI ACMStream_fnRead(IAVIStream *iface, LONG start, LONG buffersize, LPLONG bytesread, LPLONG samplesread) { - IAVIStreamImpl *This = (IAVIStreamImpl *)iface; + IAVIStreamImpl *This = impl_from_IAVIStream(iface); HRESULT hr; DWORD size; @@ -520,7 +528,7 @@ static HRESULT WINAPI ACMStream_fnWrite(IAVIStream *iface, LONG start, LPLONG sampwritten, LPLONG byteswritten) { - IAVIStreamImpl *This = (IAVIStreamImpl *)iface; + IAVIStreamImpl *This = impl_from_IAVIStream(iface); HRESULT hr; ULONG size; @@ -613,7 +621,7 @@ static HRESULT WINAPI ACMStream_fnWrite(IAVIStream *iface, LONG start, static HRESULT WINAPI ACMStream_fnDelete(IAVIStream *iface, LONG start, LONG samples) { - IAVIStreamImpl *This = (IAVIStreamImpl *)iface; + IAVIStreamImpl *This = impl_from_IAVIStream(iface); TRACE("(%p,%d,%d)\n", iface, start, samples); @@ -647,7 +655,7 @@ static HRESULT WINAPI ACMStream_fnDelete(IAVIStream *iface, LONG start, static HRESULT WINAPI ACMStream_fnReadData(IAVIStream *iface, DWORD fcc, LPVOID lp, LPLONG lpread) { - IAVIStreamImpl *This = (IAVIStreamImpl *)iface; + IAVIStreamImpl *This = impl_from_IAVIStream(iface); TRACE("(%p,0x%08X,%p,%p)\n", iface, fcc, lp, lpread); @@ -659,7 +667,7 @@ static HRESULT WINAPI ACMStream_fnReadData(IAVIStream *iface, DWORD fcc, static HRESULT WINAPI ACMStream_fnWriteData(IAVIStream *iface, DWORD fcc, LPVOID lp, LONG size) { - IAVIStreamImpl *This = (IAVIStreamImpl *)iface; + IAVIStreamImpl *This = impl_from_IAVIStream(iface); TRACE("(%p,0x%08x,%p,%d)\n", iface, fcc, lp, size); @@ -676,63 +684,41 @@ static HRESULT WINAPI ACMStream_fnSetInfo(IAVIStream *iface, return E_FAIL; } -/***********************************************************************/ +static const struct IAVIStreamVtbl iacmst = { + ACMStream_fnQueryInterface, + ACMStream_fnAddRef, + ACMStream_fnRelease, + ACMStream_fnCreate, + ACMStream_fnInfo, + ACMStream_fnFindSample, + ACMStream_fnReadFormat, + ACMStream_fnSetFormat, + ACMStream_fnRead, + ACMStream_fnWrite, + ACMStream_fnDelete, + ACMStream_fnReadData, + ACMStream_fnWriteData, + ACMStream_fnSetInfo +}; -static HRESULT AVIFILE_OpenCompressor(IAVIStreamImpl *This) +HRESULT AVIFILE_CreateACMStream(REFIID riid, LPVOID *ppv) { - HRESULT hr; + IAVIStreamImpl *pstream; + HRESULT hr; - /* pre-conditions */ - assert(This != NULL); - assert(This->pStream != NULL); + assert(riid != NULL && ppv != NULL); - if (This->has != NULL) - return AVIERR_OK; + *ppv = NULL; - if (This->lpInFormat == NULL) { - /* decode or encode the data from pStream */ - hr = AVIStreamFormatSize(This->pStream, This->sInfo.dwStart, &This->cbInFormat); - if (FAILED(hr)) - return hr; - This->lpInFormat = HeapAlloc(GetProcessHeap(), 0, This->cbInFormat); - if (This->lpInFormat == NULL) - return AVIERR_MEMORY; + pstream = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IAVIStreamImpl)); + if (pstream == NULL) + return AVIERR_MEMORY; - hr = IAVIStream_ReadFormat(This->pStream, This->sInfo.dwStart, - This->lpInFormat, &This->cbInFormat); - if (FAILED(hr)) - return hr; + pstream->IAVIStream_iface.lpVtbl = &iacmst; - if (This->lpOutFormat == NULL) { - /* we must decode to default format */ - This->cbOutFormat = sizeof(PCMWAVEFORMAT); - This->lpOutFormat = HeapAlloc(GetProcessHeap(), 0, This->cbOutFormat); - if (This->lpOutFormat == NULL) - return AVIERR_MEMORY; + hr = IAVIStream_QueryInterface(&pstream->IAVIStream_iface, riid, ppv); + if (FAILED(hr)) + HeapFree(GetProcessHeap(), 0, pstream); - This->lpOutFormat->wFormatTag = WAVE_FORMAT_PCM; - if (acmFormatSuggest(NULL, This->lpInFormat, This->lpOutFormat, - This->cbOutFormat, ACM_FORMATSUGGESTF_WFORMATTAG) != S_OK) - return AVIERR_NOCOMPRESSOR; - } - } else if (This->lpOutFormat == NULL) - return AVIERR_ERROR; /* To what should I encode? */ - - if (acmStreamOpen(&This->has, NULL, This->lpInFormat, This->lpOutFormat, - NULL, 0, 0, ACM_STREAMOPENF_NONREALTIME) != S_OK) - return AVIERR_NOCOMPRESSOR; - - /* update AVISTREAMINFO structure */ - This->sInfo.dwSampleSize = This->lpOutFormat->nBlockAlign; - This->sInfo.dwScale = This->lpOutFormat->nBlockAlign; - This->sInfo.dwRate = This->lpOutFormat->nAvgBytesPerSec; - This->sInfo.dwQuality = (DWORD)ICQUALITY_DEFAULT; - SetRectEmpty(&This->sInfo.rcFrame); - - /* convert positions and sizes to output format */ - CONVERT_STREAM_to_THIS(&This->sInfo.dwStart); - CONVERT_STREAM_to_THIS(&This->sInfo.dwLength); - CONVERT_STREAM_to_THIS(&This->sInfo.dwSuggestedBufferSize); - - return AVIERR_OK; + return hr; } diff --git a/reactos/dll/win32/avifil32/api.c b/reactos/dll/win32/avifil32/api.c index 8ef75d3e4b1..c53897adca2 100644 --- a/reactos/dll/win32/avifil32/api.c +++ b/reactos/dll/win32/avifil32/api.c @@ -995,6 +995,7 @@ HRESULT WINAPI AVIBuildFilterA(LPSTR szFilter, LONG cbFilter, BOOL fSaving) */ HRESULT WINAPI AVIBuildFilterW(LPWSTR szFilter, LONG cbFilter, BOOL fSaving) { + static const WCHAR all_files[] = { '*','.','*',0,0 }; static const WCHAR szClsid[] = {'C','L','S','I','D',0}; static const WCHAR szExtensionFmt[] = {';','*','.','%','s',0}; static const WCHAR szAVIFileExtensions[] = @@ -1023,8 +1024,8 @@ HRESULT WINAPI AVIBuildFilterW(LPWSTR szFilter, LONG cbFilter, BOOL fSaving) /* * 1. iterate over HKEY_CLASSES_ROOT\\AVIFile\\Extensions and collect - * extensions and CLSID's - * 2. iterate over collected CLSID's and copy its description and its + * extensions and CLSIDs + * 2. iterate over collected CLSIDs and copy its description and its * extensions to szFilter if it fits * * First filter is named "All multimedia files" and its filter is a @@ -1117,22 +1118,12 @@ HRESULT WINAPI AVIBuildFilterW(LPWSTR szFilter, LONG cbFilter, BOOL fSaving) /* add "All files" "*.*" filter if enough space left */ size = LoadStringW(AVIFILE_hModule, IDS_ALLFILES, - szAllFiles, sizeof(szAllFiles)/sizeof(szAllFiles[0])) + 1; + szAllFiles, (sizeof(szAllFiles) - sizeof(all_files))/sizeof(WCHAR)) + 1; + memcpy( szAllFiles + size, all_files, sizeof(all_files) ); + size += sizeof(all_files) / sizeof(WCHAR); + if (cbFilter > size) { - int i; - - /* replace '@' with \000 to separate description of filter */ - for (i = 0; i < size && szAllFiles[i] != 0; i++) { - if (szAllFiles[i] == '@') { - szAllFiles[i] = 0; - break; - } - } - memcpy(szFilter, szAllFiles, size * sizeof(szAllFiles[0])); - szFilter += size; - szFilter[0] = 0; - return AVIERR_OK; } else { szFilter[0] = 0; @@ -2150,9 +2141,7 @@ HRESULT WINAPI EditStreamSetInfoA(PAVISTREAM pstream, LPAVISTREAMINFOA asi, TRACE("(%p,%p,%d)\n", pstream, asi, size); - if (pstream == NULL) - return AVIERR_BADHANDLE; - if ((DWORD)size < sizeof(AVISTREAMINFOA)) + if (size >= 0 && size < sizeof(AVISTREAMINFOA)) return AVIERR_BADSIZE; memcpy(&asiw, asi, sizeof(asiw) - sizeof(asiw.szName)); @@ -2173,6 +2162,9 @@ HRESULT WINAPI EditStreamSetInfoW(PAVISTREAM pstream, LPAVISTREAMINFOW asi, TRACE("(%p,%p,%d)\n", pstream, asi, size); + if (size >= 0 && size < sizeof(AVISTREAMINFOA)) + return AVIERR_BADSIZE; + hr = IAVIStream_QueryInterface(pstream, &IID_IAVIEditStream,(LPVOID*)&pEdit); if (SUCCEEDED(hr) && pEdit != NULL) { hr = IAVIEditStream_SetInfo(pEdit, asi, size); diff --git a/reactos/dll/win32/avifil32/avifile.c b/reactos/dll/win32/avifil32/avifile.c index 702ba1cc321..885d23903c1 100644 --- a/reactos/dll/win32/avifil32/avifile.c +++ b/reactos/dll/win32/avifil32/avifile.c @@ -1339,7 +1339,7 @@ static HRESULT WINAPI IAVIStream_fnWriteData(IAVIStream *iface, DWORD fcc, /* ckid,size => 2 * sizeof(DWORD) */ dwPos += 2 * sizeof(DWORD) + size; - if (size >= This->paf->dwMoviChunkPos - 2 * sizeof(DWORD)) + if (dwPos >= This->paf->dwMoviChunkPos - 2 * sizeof(DWORD)) return AVIERR_UNSUPPORTED; /* not enough space left */ } @@ -1746,10 +1746,10 @@ static HRESULT AVIFILE_LoadFile(IAVIFileImpl *This) case ckidSTREAMHEADER: { static const WCHAR streamTypeFmt[] = {'%','4','.','4','h','s',0}; + static const WCHAR streamNameFmt[] = {'%','s',' ','%','s',' ','#','%','d',0}; AVIStreamHeader streamHdr; WCHAR szType[25]; - WCHAR streamNameFmt[25]; UINT count; LONG n = ck.cksize; @@ -1796,8 +1796,6 @@ static HRESULT AVIFILE_LoadFile(IAVIFileImpl *This) memset(pStream->sInfo.szName, 0, sizeof(pStream->sInfo.szName)); - LoadStringW(AVIFILE_hModule, IDS_AVISTREAMFORMAT, streamNameFmt, sizeof(streamNameFmt)/sizeof(streamNameFmt[0])); - /* FIXME: avoid overflow -- better use wsnprintfW, which doesn't exists ! */ wsprintfW(pStream->sInfo.szName, streamNameFmt, AVIFILE_BasenameW(This->szFileName), szType, count); diff --git a/reactos/dll/win32/avifil32/avifile.rgs b/reactos/dll/win32/avifil32/avifile.rgs new file mode 100644 index 00000000000..347300d3e40 --- /dev/null +++ b/reactos/dll/win32/avifil32/avifile.rgs @@ -0,0 +1,45 @@ +HKCR +{ + NoRemove CLSID + { + '{00020000-0000-0000-C000-000000000046}' = s 'Microsoft AVI Files' + { + InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Apartment' } + } + '{00020001-0000-0000-C000-000000000046}' = s 'AVI Compressed Stream' + { + InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Apartment' } + } + '{00020003-0000-0000-C000-000000000046}' = s 'Microsoft Wave File' + { + InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Apartment' } + } + '{0002000d-0000-0000-C000-000000000046}' = s 'IAVIStream & IAVIFile Proxy' + { + InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Apartment' } + } + '{0002000f-0000-0000-C000-000000000046}' = s 'ACM Compressed Audio Stream' + { + InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Apartment' } + } + } + NoRemove AVIFile + { + Compressors + { + auds = s '{0002000F-0000-0000-C000-000000000046}' + vids = s '{00020001-0000-0000-C000-000000000046}' + } + Extensions + { + AU = s '{00020003-0000-0000-C000-000000000046}' + AVI = s '{00020000-0000-0000-C000-000000000046}' + WAV = s '{00020003-0000-0000-C000-000000000046}' + } + RIFFHandlers + { + AVI = s '{00020000-0000-0000-C000-000000000046}' + WAVE = s '{00020003-0000-0000-C000-000000000046}' + } + } +} diff --git a/reactos/dll/win32/avifil32/avifile_Bg.rc b/reactos/dll/win32/avifil32/avifile_Bg.rc index 7048bec7780..b6b6e766fe6 100644 --- a/reactos/dll/win32/avifil32/avifile_Bg.rc +++ b/reactos/dll/win32/avifil32/avifile_Bg.rc @@ -1,5 +1,7 @@ /* - * Copyright 2002 Michael GГјnnewig + * Top level resource file for avifil32.dll + * + * Copyright 2002 Michael Günnewig * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -18,38 +20,34 @@ #include "avifile_private.h" -/* UTF-8 */ -#pragma code_page(65001) - LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT -IDD_SAVEOPTIONS DIALOG 43, 37, 236, 82 -STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Възможности на уплътняването" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "&Избер на поток:",-1,2,5,154,10 - COMBOBOX IDC_STREAM,2,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - PUSHBUTTON "Въз&можности...",IDC_OPTIONS,170,17,60,14 - AUTOCHECKBOX "&разслояване през",IDC_INTERLEAVE,3,42,85,11,WS_TABSTOP - EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL - LTEXT "кадъра",-1,129,43,36,9 - LTEXT "Текущ формат:",-1,3,56,73,9 - LTEXT "This space for rent",IDC_FORMATTEXT,75,56,90,26 /*Неразбираем низ*/ - DEFPUSHBUTTON "Добре",IDOK,170,42,60,14 - PUSHBUTTON "Отказ",IDCANCEL,170,61,60,14 -END - STRINGTABLE { - IDS_WAVESTREAMFORMAT "Вълнoва крива: %s" - IDS_WAVEFILETYPE "Вълнова крива" - IDS_ALLMULTIMEDIA "Всички мултимедийни файлове" - IDS_ALLFILES "Всички файлове (*.*)@*.*" - IDS_VIDEO "видео" - IDS_AUDIO "звук" - IDS_AVISTREAMFORMAT "%s %s #%d" - IDS_AVIFILETYPE "Поздрабираното от Wine приложение за AVI" - IDS_UNCOMPRESSED "неуплътнен" + IDS_WAVESTREAMFORMAT "" + IDS_WAVEFILETYPE "" + IDS_ALLMULTIMEDIA "" + IDS_ALLFILES "Всички файлове (*.*)" + IDS_VIDEO "" + IDS_AUDIO "" + IDS_AVIFILETYPE "" + IDS_UNCOMPRESSED "" } + +IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "",-1,5,5,154,10 + COMBOBOX IDC_STREAM,5,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP + PUSHBUTTON "",IDC_OPTIONS,170,17,50,14 + AUTOCHECKBOX "",IDC_INTERLEAVE,5,42,85,11,WS_TABSTOP + EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL + LTEXT "",-1,129,43,36,9 + LTEXT "&Печат",-1,5,56,73,9 + LTEXT "",IDC_FORMATTEXT,80,56,88,26 + DEFPUSHBUTTON "OK",IDOK,170,42,50,14 + PUSHBUTTON "Отмени",IDCANCEL,170,61,50,14 +END diff --git a/reactos/dll/win32/avifil32/avifile_Cs.rc b/reactos/dll/win32/avifil32/avifile_Cs.rc index 98301f11ad5..9778eee8b43 100644 --- a/reactos/dll/win32/avifil32/avifile_Cs.rc +++ b/reactos/dll/win32/avifil32/avifile_Cs.rc @@ -1,9 +1,7 @@ -/* Hey, Emacs, open this file with -*- coding: cp1250 -*- +/* + * Top level resource file for avifil32.dll * - * Copyright 2002 Michael Gnnewig - * - * Czech resources for avifile - * Copyright 2004 David Kredba + * Copyright 2002 Michael Günnewig * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -24,35 +22,32 @@ LANGUAGE LANG_CZECH, SUBLANG_DEFAULT -/* Czech strings in CP1250 */ +STRINGTABLE +{ + IDS_WAVESTREAMFORMAT "" + IDS_WAVEFILETYPE "" + IDS_ALLMULTIMEDIA "Všechny soubory multimédií" + IDS_ALLFILES "Všechny soubory (*.*)" + IDS_VIDEO "video" + IDS_AUDIO "audio" + IDS_AVIFILETYPE "Wine AVI-default-filehandler" + IDS_UNCOMPRESSED "nekomprimovaný" +} IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Nastaven komprese" +CAPTION "Nastavení komprese" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Vyber datov proud:",-1,2,5,154,10 - COMBOBOX IDC_STREAM,2,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | + LTEXT "&Vyber datový proud:",-1,5,5,154,10 + COMBOBOX IDC_STREAM,5,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "V&olby...",IDC_OPTIONS,170,17,50,14 - AUTOCHECKBOX "Prolo&it kadch",IDC_INTERLEAVE,3,42,85,11,WS_TABSTOP + AUTOCHECKBOX "Prolož&it každých",IDC_INTERLEAVE,5,42,85,11,WS_TABSTOP EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL - LTEXT "rmc",-1,129,43,36,9 - LTEXT "Souasn formt:",-1,3,56,73,9 - LTEXT "Zbvajc msto",IDC_FORMATTEXT,75,56,90,26 - DEFPUSHBUTTON "Budi",IDOK,170,42,50,14 - PUSHBUTTON "Zruit",IDCANCEL,170,61,50,14 + LTEXT "rámců",-1,129,43,36,9 + LTEXT "Současný formát:",-1,5,56,73,9 + LTEXT "",IDC_FORMATTEXT,80,56,88,26 + DEFPUSHBUTTON "OK",IDOK,170,42,50,14 + PUSHBUTTON "Storno",IDCANCEL,170,61,50,14 END - -STRINGTABLE -{ - IDS_WAVESTREAMFORMAT "Waveform: %s" - IDS_WAVEFILETYPE "Waveform" - IDS_ALLMULTIMEDIA "Vechny soubory multimdi" - IDS_ALLFILES "Vechny soubory (*.*)@*.*" - IDS_VIDEO "video" - IDS_AUDIO "audio" - IDS_AVISTREAMFORMAT "%s %s #%d" - IDS_AVIFILETYPE "Wine AVI-default-filehandler" - IDS_UNCOMPRESSED "nekomprimovan" -} diff --git a/reactos/dll/win32/avifil32/avifile_Da.rc b/reactos/dll/win32/avifil32/avifile_Da.rc index 191e07e5093..8e90c3e65d5 100644 --- a/reactos/dll/win32/avifil32/avifile_Da.rc +++ b/reactos/dll/win32/avifil32/avifile_Da.rc @@ -1,6 +1,7 @@ /* - * Copyright 2008 Jens Albretsen - * 2010 Thomas Larsen + * Top level resource file for avifil32.dll + * + * Copyright 2002 Michael Günnewig * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -19,37 +20,37 @@ #include "avifile_private.h" -#pragma code_page(65001) - LANGUAGE LANG_DANISH, SUBLANG_DEFAULT -IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 -STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Komprimerings indstillinger" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "&Vælg stream:",-1,2,5,154,10 - COMBOBOX IDC_STREAM,2,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - PUSHBUTTON "I&ndstillinger...",IDC_OPTIONS,170,17,50,14 - AUTOCHECKBOX "&Interleave hver",IDC_INTERLEAVE,3,42,85,11,WS_TABSTOP - EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL - LTEXT "Billeder",-1,129,43,36,9 - LTEXT "Nuværende format:",-1,3,56,53,9 - LTEXT "Denne plads er til leje",IDC_FORMATTEXT,55,56,90,26 - DEFPUSHBUTTON "OK",IDOK,170,42,50,14 - PUSHBUTTON "Annuller",IDCANCEL,170,61,50,14 -END - STRINGTABLE { IDS_WAVESTREAMFORMAT "Lydkurve: %s" IDS_WAVEFILETYPE "Lydkurve" IDS_ALLMULTIMEDIA "Alle multimedia filer" - IDS_ALLFILES "Alle filer (*.*)@*.*" + IDS_ALLFILES "#-#-#-#-# da.po (Wine) #-#-#-#-#\n\ +Alle filer (*.*)\n\ +#-#-#-#-# da.po (Wine) #-#-#-#-#\n\ +Alle Filer (*.*)" IDS_VIDEO "video" IDS_AUDIO "lyd" - IDS_AVISTREAMFORMAT "%s %s #%d" IDS_AVIFILETYPE "Wine AVI-standard-filehandler" IDS_UNCOMPRESSED "ukomprimeret" } + +IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Komprimerings indstillinger" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Vælg stream:",-1,5,5,154,10 + COMBOBOX IDC_STREAM,5,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP + PUSHBUTTON "&Alternativer...",IDC_OPTIONS,170,17,50,14 + AUTOCHECKBOX "&Interleave hver",IDC_INTERLEAVE,5,42,85,11,WS_TABSTOP + EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL + LTEXT "Billeder",-1,129,43,36,9 + LTEXT "Nuværende format:",-1,5,56,73,9 + LTEXT "",IDC_FORMATTEXT,80,56,88,26 + DEFPUSHBUTTON "OK",IDOK,170,42,50,14 + PUSHBUTTON "Annuller",IDCANCEL,170,61,50,14 +END diff --git a/reactos/dll/win32/avifil32/avifile_De.rc b/reactos/dll/win32/avifil32/avifile_De.rc index 0448c9ea292..5ca4a937ca1 100644 --- a/reactos/dll/win32/avifil32/avifile_De.rc +++ b/reactos/dll/win32/avifil32/avifile_De.rc @@ -1,4 +1,6 @@ /* + * Top level resource file for avifil32.dll + * * Copyright 2002 Michael Günnewig * * This library is free software; you can redistribute it and/or @@ -18,37 +20,34 @@ #include "avifile_private.h" -#pragma code_page(65001) +LANGUAGE LANG_GERMAN, SUBLANG_DEFAULT -LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL +STRINGTABLE +{ + IDS_WAVESTREAMFORMAT "Kurvenform: %s" + IDS_WAVEFILETYPE "Kurvenform" + IDS_ALLMULTIMEDIA "Alle Multimedia-Dateien" + IDS_ALLFILES "Alle Dateien (*.*)" + IDS_VIDEO "Video" + IDS_AUDIO "Audio" + IDS_AVIFILETYPE "Wine AVI-Standard-Dateibehandlungsroutine" + IDS_UNCOMPRESSED "Unkomprimiert" +} IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Komprimierungsoptionen" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Wählen Sie die Eingangsdaten aus:",-1,2,5,154,10 - COMBOBOX IDC_STREAM,2,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | + LTEXT "&Wählen Sie die Eingangsdaten aus:",-1,5,5,154,10 + COMBOBOX IDC_STREAM,5,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "&Optionen...",IDC_OPTIONS,170,17,50,14 - AUTOCHECKBOX "&Interleave alle",IDC_INTERLEAVE,3,42,75,11,WS_TABSTOP - EDITTEXT IDC_INTERLEAVEEVERY,81,41,32,12,ES_AUTOHSCROLL - LTEXT "Einzelbilder",-1,119,43,36,9 - LTEXT "Aktuelles Format:",-1,3,56,73,9 - LTEXT "Platzhalter",IDC_FORMATTEXT,75,56,90,26 + AUTOCHECKBOX "&Interleave alle",IDC_INTERLEAVE,5,42,85,11,WS_TABSTOP + EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL + LTEXT "Einzelbilder",-1,129,43,36,9 + LTEXT "Aktuelles Format:",-1,5,56,73,9 + LTEXT "",IDC_FORMATTEXT,80,56,88,26 DEFPUSHBUTTON "OK",IDOK,170,42,50,14 PUSHBUTTON "Abbrechen",IDCANCEL,170,61,50,14 END - -STRINGTABLE -{ - IDS_WAVESTREAMFORMAT "Waveform: %s" - IDS_WAVEFILETYPE "Waveform" - IDS_ALLMULTIMEDIA "Alle Multimedia-Dateien" - IDS_ALLFILES "Alle Dateien (*.*)@*.*" - IDS_VIDEO "Video" - IDS_AUDIO "Audio" - IDS_AVISTREAMFORMAT "%s %s #%d" - IDS_AVIFILETYPE "Wine AVI-Standard-Dateibehandlungsroutine" - IDS_UNCOMPRESSED "Unkomprimiert" -} diff --git a/reactos/dll/win32/avifil32/avifile_En.rc b/reactos/dll/win32/avifil32/avifile_En.rc index 98efdf7a3ba..ad676d6e825 100644 --- a/reactos/dll/win32/avifil32/avifile_En.rc +++ b/reactos/dll/win32/avifil32/avifile_En.rc @@ -1,4 +1,6 @@ /* + * Top level resource file for avifil32.dll + * * Copyright 2002 Michael Günnewig * * This library is free software; you can redistribute it and/or @@ -20,33 +22,32 @@ LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT -IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 -STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Compress options" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "&Choose a stream:",-1,2,5,154,10 - COMBOBOX IDC_STREAM,2,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - PUSHBUTTON "&Options...",IDC_OPTIONS,170,17,50,14 - AUTOCHECKBOX "&Interleave every",IDC_INTERLEAVE,3,42,85,11,WS_TABSTOP - EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL - LTEXT "frames",-1,129,43,36,9 - LTEXT "Current format:",-1,3,56,73,9 - LTEXT "This space for rent",IDC_FORMATTEXT,75,56,90,26 - DEFPUSHBUTTON "OK",IDOK,170,42,50,14 - PUSHBUTTON "Cancel",IDCANCEL,170,61,50,14 -END - STRINGTABLE { IDS_WAVESTREAMFORMAT "Waveform: %s" IDS_WAVEFILETYPE "Waveform" IDS_ALLMULTIMEDIA "All multimedia files" - IDS_ALLFILES "All files (*.*)@*.*" + IDS_ALLFILES "All files (*.*)" IDS_VIDEO "video" IDS_AUDIO "audio" - IDS_AVISTREAMFORMAT "%s %s #%d" IDS_AVIFILETYPE "Wine AVI-default-filehandler" IDS_UNCOMPRESSED "uncompressed" } + +IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Compress options" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Choose a stream:",-1,5,5,154,10 + COMBOBOX IDC_STREAM,5,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP + PUSHBUTTON "&Options...",IDC_OPTIONS,170,17,50,14 + AUTOCHECKBOX "&Interleave every",IDC_INTERLEAVE,5,42,85,11,WS_TABSTOP + EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL + LTEXT "frames",-1,129,43,36,9 + LTEXT "Current format:",-1,5,56,73,9 + LTEXT "",IDC_FORMATTEXT,80,56,88,26 + DEFPUSHBUTTON "OK",IDOK,170,42,50,14 + PUSHBUTTON "Cancel",IDCANCEL,170,61,50,14 +END diff --git a/reactos/dll/win32/avifil32/avifile_Es.rc b/reactos/dll/win32/avifil32/avifile_Es.rc index b62fe82c3bb..423526c1284 100644 --- a/reactos/dll/win32/avifil32/avifile_Es.rc +++ b/reactos/dll/win32/avifil32/avifile_Es.rc @@ -1,5 +1,7 @@ /* - * Copyright 2003 Jos Manuel Ferrer Ortiz + * Top level resource file for avifil32.dll + * + * Copyright 2002 Michael Günnewig * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -18,35 +20,34 @@ #include "avifile_private.h" -LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL - -IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 -STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Opciones de compresin" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "&Elija un stream:",-1,2,5,154,10 - COMBOBOX IDC_STREAM,2,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - PUSHBUTTON "&Opciones...",IDC_OPTIONS,170,17,50,14 - AUTOCHECKBOX "&Interleave cada",IDC_INTERLEAVE,3,42,85,11,WS_TABSTOP - EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL - LTEXT "cuadros",-1,129,43,36,9 - LTEXT "Formato actual:",-1,3,56,73,9 - LTEXT "Espacio en alquiler",IDC_FORMATTEXT,75,56,90,26 - DEFPUSHBUTTON "Aceptar",IDOK,170,42,50,14 - PUSHBUTTON "Cancelar",IDCANCEL,170,61,50,14 -END +LANGUAGE LANG_SPANISH, SUBLANG_DEFAULT STRINGTABLE { IDS_WAVESTREAMFORMAT "Formato de ondas: %s" IDS_WAVEFILETYPE "Formato de ondas" IDS_ALLMULTIMEDIA "Todos los archivos multimedia" - IDS_ALLFILES "Todos los archivos (*.*)@*.*" - IDS_VIDEO "vdeo" + IDS_ALLFILES "Todos los archivos (*.*)" + IDS_VIDEO "vídeo" IDS_AUDIO "audio" - IDS_AVISTREAMFORMAT "%s %s #%d" IDS_AVIFILETYPE "Manejador de archivo AVI por defecto de Wine" - IDS_UNCOMPRESSED "sin compresin" + IDS_UNCOMPRESSED "sin compresión" } + +IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Opciones de compresión" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Elija un stream:",-1,5,5,154,10 + COMBOBOX IDC_STREAM,5,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP + PUSHBUTTON "&Opciones...",IDC_OPTIONS,170,17,50,14 + AUTOCHECKBOX "&Interleave cada",IDC_INTERLEAVE,5,42,85,11,WS_TABSTOP + EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL + LTEXT "cuadros",-1,129,43,36,9 + LTEXT "Formato actual:",-1,5,56,73,9 + LTEXT "",IDC_FORMATTEXT,80,56,88,26 + DEFPUSHBUTTON "Aceptar",IDOK,170,42,50,14 + PUSHBUTTON "Cancelar",IDCANCEL,170,61,50,14 +END diff --git a/reactos/dll/win32/avifil32/avifile_Fr.rc b/reactos/dll/win32/avifil32/avifile_Fr.rc index fc58730c486..56c885d3ee2 100644 --- a/reactos/dll/win32/avifil32/avifile_Fr.rc +++ b/reactos/dll/win32/avifil32/avifile_Fr.rc @@ -1,9 +1,7 @@ /* - * Avifil32 - * French language support + * Top level resource file for avifil32.dll * * Copyright 2002 Michael Günnewig - * Copyright 2003 Vincent Béron * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -22,38 +20,34 @@ #include "avifile_private.h" -/* UTF-8 */ -#pragma code_page(65001) +LANGUAGE LANG_FRENCH, SUBLANG_DEFAULT -LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL +STRINGTABLE +{ + IDS_WAVESTREAMFORMAT "Forme d'onde : %s" + IDS_WAVEFILETYPE "Forme d'onde" + IDS_ALLMULTIMEDIA "Tous les fichiers multimédia" + IDS_ALLFILES "Tous les fichiers (*.*)" + IDS_VIDEO "vidéo" + IDS_AUDIO "audio" + IDS_AVIFILETYPE "Gestionnaire de fichiers AVI par défaut de Wine" + IDS_UNCOMPRESSED "non compressé" +} IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Options de compression" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Sélectionnez un flux :",-1,2,5,154,10 - COMBOBOX IDC_STREAM,2,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | + LTEXT "&Sélectionnez un flux :",-1,5,5,154,10 + COMBOBOX IDC_STREAM,5,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "&Options...",IDC_OPTIONS,170,17,50,14 - AUTOCHECKBOX "&Imbriquer toutes les",IDC_INTERLEAVE,3,42,85,11,WS_TABSTOP + AUTOCHECKBOX "&Imbriquer toutes les",IDC_INTERLEAVE,5,42,85,11,WS_TABSTOP EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL LTEXT "images",-1,129,43,36,9 - LTEXT "Format actuel :",-1,3,56,73,9 - LTEXT "Cet espace est à louer",IDC_FORMATTEXT,75,56,90,26 + LTEXT "Format actuel :",-1,5,56,73,9 + LTEXT "",IDC_FORMATTEXT,80,56,88,26 DEFPUSHBUTTON "OK",IDOK,170,42,50,14 PUSHBUTTON "Annuler",IDCANCEL,170,61,50,14 END - -STRINGTABLE -{ - IDS_WAVESTREAMFORMAT "Waveform : %s" - IDS_WAVEFILETYPE "Waveform" - IDS_ALLMULTIMEDIA "Tous les fichiers multimédia" - IDS_ALLFILES "Tous les fichiers (*.*)@*.*" - IDS_VIDEO "vidéo" - IDS_AUDIO "audio" - IDS_AVISTREAMFORMAT "%s %s #%d" - IDS_AVIFILETYPE "Gestionnaire de fichiers AVI par défaut de Wine" - IDS_UNCOMPRESSED "non compressé" -} diff --git a/reactos/dll/win32/avifil32/avifile_Hu.rc b/reactos/dll/win32/avifil32/avifile_Hu.rc index 29652efa9b5..3b2ba2dc0b7 100644 --- a/reactos/dll/win32/avifil32/avifile_Hu.rc +++ b/reactos/dll/win32/avifil32/avifile_Hu.rc @@ -1,5 +1,7 @@ /* - * Copyright 2006 Andras Kovacs + * Top level resource file for avifil32.dll + * + * Copyright 2002 Michael Günnewig * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,33 +22,35 @@ LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT -IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 -STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Tmrtsi belltsok" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "&Vlassuon folyamot:",-1,2,5,154,10 - COMBOBOX IDC_STREAM,2,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - PUSHBUTTON "&Opcik...",IDC_OPTIONS,170,17,50,14 - AUTOCHECKBOX "&Bekel minden",IDC_INTERLEAVE,3,42,75,11,WS_TABSTOP - EDITTEXT IDC_INTERLEAVEEVERY,81,41,32,12,ES_AUTOHSCROLL - LTEXT "kpkockt",-1,119,43,36,9 - LTEXT "Jelenlegi formtum:",-1,3,56,73,9 - LTEXT "Ez hely klcsnzsre",IDC_FORMATTEXT,75,56,90,26 - DEFPUSHBUTTON "OK",IDOK,170,42,50,14 - PUSHBUTTON "Mgse",IDCANCEL,170,61,50,14 -END - STRINGTABLE { - IDS_WAVESTREAMFORMAT "Hullmforma: %s" - IDS_WAVEFILETYPE "Hullmforma" - IDS_ALLMULTIMEDIA "Minden multimdia fjl" - IDS_ALLFILES "Minden fjl (*.*)@*.*" - IDS_VIDEO "video" + IDS_WAVESTREAMFORMAT "Hullámforma: %s" + IDS_WAVEFILETYPE "Hullámforma" + IDS_ALLMULTIMEDIA "Minden multimédia fájl" + IDS_ALLFILES "#-#-#-#-# hu.po (Wine) #-#-#-#-#\n\ +Minden fájl (*.*)\n\ +#-#-#-#-# hu.po (Wine) #-#-#-#-#\n\ +Összes fájl (*.*)" + IDS_VIDEO "" IDS_AUDIO "hang" - IDS_AVISTREAMFORMAT "%s %s #%d" - IDS_AVIFILETYPE "Wine AVI-alaprtelmezett-fjlkezel" - IDS_UNCOMPRESSED "tmrtetlen" + IDS_AVIFILETYPE "Wine AVI-alapértelmezett-fájlkezelő" + IDS_UNCOMPRESSED "tömörítetlen" } + +IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Tömörítési beállítások" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Válassuon folyamot:",-1,5,5,154,10 + COMBOBOX IDC_STREAM,5,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP + PUSHBUTTON "&Opciók...",IDC_OPTIONS,170,17,50,14 + AUTOCHECKBOX "&Beékel minden",IDC_INTERLEAVE,5,42,85,11,WS_TABSTOP + EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL + LTEXT "képkockát",-1,129,43,36,9 + LTEXT "Jelenlegi formátum:",-1,5,56,73,9 + LTEXT "",IDC_FORMATTEXT,80,56,88,26 + DEFPUSHBUTTON "OK",IDOK,170,42,50,14 + PUSHBUTTON "Mégse",IDCANCEL,170,61,50,14 +END diff --git a/reactos/dll/win32/avifil32/avifile_It.rc b/reactos/dll/win32/avifil32/avifile_It.rc index 9c4671cfb46..24770c17537 100644 --- a/reactos/dll/win32/avifil32/avifile_It.rc +++ b/reactos/dll/win32/avifil32/avifile_It.rc @@ -1,6 +1,7 @@ /* - * Copyright 2002 Michael Gnnewig - * Copyright 2003 Ivan Leo Puoti + * Top level resource file for avifil32.dll + * + * Copyright 2002 Michael Günnewig * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -19,35 +20,34 @@ #include "avifile_private.h" -LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL - -IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 -STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Opzioni di compressione" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "&Scegliere un flusso:",-1,2,5,154,10 - COMBOBOX IDC_STREAM,2,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - PUSHBUTTON "&Opzioni...",IDC_OPTIONS,170,17,50,14 - AUTOCHECKBOX "&Interfoliazione ogni",IDC_INTERLEAVE,3,42,75,11,WS_TABSTOP - EDITTEXT IDC_INTERLEAVEEVERY,81,41,32,12,ES_AUTOHSCROLL - LTEXT "fotogrammi",-1,119,43,36,9 - LTEXT "Formato attuale:",-1,3,56,73,9 - LTEXT "This space for rent",IDC_FORMATTEXT,75,56,90,26 - DEFPUSHBUTTON "OK",IDOK,170,42,50,14 - PUSHBUTTON "Annulla",IDCANCEL,170,61,50,14 -END +LANGUAGE LANG_ITALIAN, SUBLANG_DEFAULT STRINGTABLE { IDS_WAVESTREAMFORMAT "Formato wave: %s" IDS_WAVEFILETYPE "Formato wave" IDS_ALLMULTIMEDIA "Tutti i file multimediali" - IDS_ALLFILES "Tutti i file (*.*)@*.*" + IDS_ALLFILES "Tutti i file (*.*)" IDS_VIDEO "Video" IDS_AUDIO "Audio" - IDS_AVISTREAMFORMAT "%s %s #%d" IDS_AVIFILETYPE "Gestore predefinito di Wine dei file AVI" IDS_UNCOMPRESSED "Non compresso" } + +IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Opzioni di compressione" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Scegliere un flusso:",-1,5,5,154,10 + COMBOBOX IDC_STREAM,5,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP + PUSHBUTTON "&Opzioni...",IDC_OPTIONS,170,17,50,14 + AUTOCHECKBOX "&Interfoliazione ogni",IDC_INTERLEAVE,5,42,85,11,WS_TABSTOP + EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL + LTEXT "fotogrammi",-1,129,43,36,9 + LTEXT "Formato attuale:",-1,5,56,73,9 + LTEXT "",IDC_FORMATTEXT,80,56,88,26 + DEFPUSHBUTTON "Ok",IDOK,170,42,50,14 + PUSHBUTTON "Annulla",IDCANCEL,170,61,50,14 +END diff --git a/reactos/dll/win32/avifil32/avifile_Ja.rc b/reactos/dll/win32/avifil32/avifile_Ja.rc index c62c03fc05d..02ca94a42ee 100644 --- a/reactos/dll/win32/avifil32/avifile_Ja.rc +++ b/reactos/dll/win32/avifil32/avifile_Ja.rc @@ -1,5 +1,7 @@ /* - * Copyright 2004 Hajime Segawa + * Top level resource file for avifil32.dll + * + * Copyright 2002 Michael Günnewig * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -18,38 +20,34 @@ #include "avifile_private.h" -/* UTF-8 */ -#pragma code_page(65001) - LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT -IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 -STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "圧縮オプション" -FONT 9, "MS Shell Dlg" -BEGIN - LTEXT "ストリームを選択(&C):",-1,2,5,154,10 - COMBOBOX IDC_STREAM,2,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - PUSHBUTTON "オプション(&O)...",IDC_OPTIONS,170,17,50,14 - AUTOCHECKBOX "インターリーブ(&I)",IDC_INTERLEAVE,3,42,85,11,WS_TABSTOP - EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL - LTEXT "フレーム",-1,129,43,36,9 - LTEXT "現在のフォーマット:",-1,3,56,73,9 - LTEXT "This space for rent",IDC_FORMATTEXT,75,56,90,26 - DEFPUSHBUTTON "OK",IDOK,170,42,50,14 - PUSHBUTTON "キャンセル",IDCANCEL,170,61,50,14 -END - STRINGTABLE { IDS_WAVESTREAMFORMAT "Waveファイル: %s" IDS_WAVEFILETYPE "Waveファイル" IDS_ALLMULTIMEDIA "全てのマルチメディアファイル" - IDS_ALLFILES "全てのファイル (*.*)@*.*" + IDS_ALLFILES "すべてのファイル (*.*)" IDS_VIDEO "ビデオ" IDS_AUDIO "音声" - IDS_AVISTREAMFORMAT "%s %s #%d" IDS_AVIFILETYPE "Wine AVI-default-filehandler" IDS_UNCOMPRESSED "未圧縮" } + +IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "圧縮オプション" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "ストリームを選択(&C):",-1,5,5,154,10 + COMBOBOX IDC_STREAM,5,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP + PUSHBUTTON "オプション(&O)...",IDC_OPTIONS,170,17,50,14 + AUTOCHECKBOX "インターリーブ(&I)",IDC_INTERLEAVE,5,42,85,11,WS_TABSTOP + EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL + LTEXT "フレーム",-1,129,43,36,9 + LTEXT "現在のフォーマット:",-1,5,56,73,9 + LTEXT "",IDC_FORMATTEXT,80,56,88,26 + DEFPUSHBUTTON "OK",IDOK,170,42,50,14 + PUSHBUTTON "キャンセル",IDCANCEL,170,61,50,14 +END diff --git a/reactos/dll/win32/avifil32/avifile_Ko.rc b/reactos/dll/win32/avifil32/avifile_Ko.rc index 6b548e6a49f..f0a027939b2 100644 --- a/reactos/dll/win32/avifil32/avifile_Ko.rc +++ b/reactos/dll/win32/avifil32/avifile_Ko.rc @@ -1,6 +1,7 @@ /* + * Top level resource file for avifil32.dll + * * Copyright 2002 Michael Günnewig - * Copyright 2005,2010 YunSong Hwang * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -19,37 +20,34 @@ #include "avifile_private.h" -#pragma code_page(65001) - LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT -IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 -STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "압축 옵션" -FONT 9, "MS Shell Dlg" -BEGIN - LTEXT "스트림 선택(&C):",-1,2,5,154,10 - COMBOBOX IDC_STREAM,2,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - PUSHBUTTON "옵션(&O)...",IDC_OPTIONS,170,17,50,14 - AUTOCHECKBOX "항상 인터리브 적용(&I)",IDC_INTERLEAVE,3,42,85,11,WS_TABSTOP - EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL - LTEXT "프레임",-1,129,43,36,9 - LTEXT "현재 형식:",-1,3,56,73,9 - LTEXT "예약된 공간",IDC_FORMATTEXT,75,56,90,26 - DEFPUSHBUTTON "확인",IDOK,170,42,50,14 - PUSHBUTTON "취소",IDCANCEL,170,61,50,14 -END - STRINGTABLE { IDS_WAVESTREAMFORMAT "파형: %s" IDS_WAVEFILETYPE "파형" IDS_ALLMULTIMEDIA "모든 멀티미디어 파일" - IDS_ALLFILES "모든 파일 (*.*)@*.*" + IDS_ALLFILES "모든 파일 (*.*)" IDS_VIDEO "비디오" IDS_AUDIO "오디오" - IDS_AVISTREAMFORMAT "%s %s #%d" - IDS_AVIFILETYPE "Wine AVI-기본-파일핸들러·¯" + IDS_AVIFILETYPE "Wine AVI-기본-파일핸들러" IDS_UNCOMPRESSED "압축안됨" } + +IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "압축 옵션" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "스트림 선택(&C):",-1,5,5,154,10 + COMBOBOX IDC_STREAM,5,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP + PUSHBUTTON "옵션(&O)...",IDC_OPTIONS,170,17,50,14 + AUTOCHECKBOX "항상 인터리브 적용(&I)",IDC_INTERLEAVE,5,42,85,11,WS_TABSTOP + EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL + LTEXT "프레임",-1,129,43,36,9 + LTEXT "현재 형식:",-1,5,56,73,9 + LTEXT "",IDC_FORMATTEXT,80,56,88,26 + DEFPUSHBUTTON "확인",IDOK,170,42,50,14 + PUSHBUTTON "취소",IDCANCEL,170,61,50,14 +END diff --git a/reactos/dll/win32/avifil32/avifile_Lt.rc b/reactos/dll/win32/avifil32/avifile_Lt.rc index 353d830aac5..623ea9b3965 100644 --- a/reactos/dll/win32/avifil32/avifile_Lt.rc +++ b/reactos/dll/win32/avifil32/avifile_Lt.rc @@ -1,5 +1,7 @@ /* - * Copyright 2009 Aurimas Fišeras + * Top level resource file for avifil32.dll + * + * Copyright 2002 Michael Günnewig * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -18,38 +20,34 @@ #include "avifile_private.h" -/* UTF-8 */ -#pragma code_page(65001) +LANGUAGE LANG_LITHUANIAN, SUBLANG_DEFAULT -LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL +STRINGTABLE +{ + IDS_WAVESTREAMFORMAT "Bangos forma: %s" + IDS_WAVEFILETYPE "Bangos forma" + IDS_ALLMULTIMEDIA "Visi multimedijos failai" + IDS_ALLFILES "Visi failai (*.*)" + IDS_VIDEO "vaizdas" + IDS_AUDIO "garsas" + IDS_AVIFILETYPE "Wine numatyta-AVI-doroklė" + IDS_UNCOMPRESSED "neglaudintas" +} IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Glaudinimo parametrai" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Pasirinkite srautą:",-1,2,5,154,10 - COMBOBOX IDC_STREAM,2,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | + LTEXT "&Pasirinkite srautą:",-1,5,5,154,10 + COMBOBOX IDC_STREAM,5,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "&Parinktys...",IDC_OPTIONS,170,17,50,14 - AUTOCHECKBOX "&Įtarpuoti kas",IDC_INTERLEAVE,3,42,85,11,WS_TABSTOP + AUTOCHECKBOX "&Įtarpuoti kas",IDC_INTERLEAVE,5,42,85,11,WS_TABSTOP EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL LTEXT "kadrų",-1,129,43,36,9 - LTEXT "Dabartinis formatas:",-1,3,56,73,9 - LTEXT "Ši vieta išnuomojama",IDC_FORMATTEXT,75,56,90,26 + LTEXT "Dabartinis formatas:",-1,5,56,73,9 + LTEXT "",IDC_FORMATTEXT,80,56,88,26 DEFPUSHBUTTON "Gerai",IDOK,170,42,50,14 PUSHBUTTON "Atsisakyti",IDCANCEL,170,61,50,14 END - -STRINGTABLE -{ - IDS_WAVESTREAMFORMAT "Bangos forma: %s" - IDS_WAVEFILETYPE "Bangos forma" - IDS_ALLMULTIMEDIA "Visi multimedijos failai" - IDS_ALLFILES "Visi failai (*.*)@*.*" - IDS_VIDEO "vaizdas" - IDS_AUDIO "garsas" - IDS_AVISTREAMFORMAT "%s %s #%d" - IDS_AVIFILETYPE "Wine numatyta-AVI-doroklė" - IDS_UNCOMPRESSED "neglaudintas" -} diff --git a/reactos/dll/win32/avifil32/avifile_Nl.rc b/reactos/dll/win32/avifil32/avifile_Nl.rc index d3ad0120e7d..bef79eb92f6 100644 --- a/reactos/dll/win32/avifil32/avifile_Nl.rc +++ b/reactos/dll/win32/avifil32/avifile_Nl.rc @@ -1,7 +1,7 @@ /* - * avifile (Dutch resources) + * Top level resource file for avifil32.dll * - * Copyright 2003 Hans Leidekker + * Copyright 2002 Michael Günnewig * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,35 +20,34 @@ #include "avifile_private.h" -LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL - -IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 -STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Compressie-instellingen" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "&Kies een invoerbestand:",-1,2,5,154,10 - COMBOBOX IDC_STREAM,2,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - PUSHBUTTON "&Opties...",IDC_OPTIONS,170,17,50,14 - AUTOCHECKBOX "&Interleave alle",IDC_INTERLEAVE,3,42,85,11,WS_TABSTOP - EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL - LTEXT "frames",-1,129,43,36,9 - LTEXT "Huidig formaat:",-1,3,56,73,9 - LTEXT "This space for rent",IDC_FORMATTEXT,75,56,90,26 - DEFPUSHBUTTON "OK",IDOK,170,42,50,14 - PUSHBUTTON "Annuleren",IDCANCEL,170,61,50,14 -END +LANGUAGE LANG_DUTCH, SUBLANG_DEFAULT STRINGTABLE { IDS_WAVESTREAMFORMAT "Waveform: %s" IDS_WAVEFILETYPE "Waveform" IDS_ALLMULTIMEDIA "Alle multimediabestanden" - IDS_ALLFILES "Alle bestanden (*.*)@*.*" + IDS_ALLFILES "Alle bestanden (*.*)" IDS_VIDEO "video" IDS_AUDIO "audio" - IDS_AVISTREAMFORMAT "%s %s #%d" IDS_AVIFILETYPE "Wine AVI-standaard-bestandskoppeling" IDS_UNCOMPRESSED "ongecomprimeerd" } + +IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Compressie-instellingen" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Kies een invoerbestand:",-1,5,5,154,10 + COMBOBOX IDC_STREAM,5,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP + PUSHBUTTON "&Opties...",IDC_OPTIONS,170,17,50,14 + AUTOCHECKBOX "&Interleave alle",IDC_INTERLEAVE,5,42,85,11,WS_TABSTOP + EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL + LTEXT "frames",-1,129,43,36,9 + LTEXT "Huidig formaat:",-1,5,56,73,9 + LTEXT "",IDC_FORMATTEXT,80,56,88,26 + DEFPUSHBUTTON "OK",IDOK,170,42,50,14 + PUSHBUTTON "Annuleren",IDCANCEL,170,61,50,14 +END diff --git a/reactos/dll/win32/avifil32/avifile_No.rc b/reactos/dll/win32/avifil32/avifile_No.rc index 193ee156847..3a8e2652c3f 100644 --- a/reactos/dll/win32/avifil32/avifile_No.rc +++ b/reactos/dll/win32/avifil32/avifile_No.rc @@ -1,5 +1,7 @@ /* - * Copyright 2005 Alexander N. Srnes + * Top level resource file for avifil32.dll + * + * Copyright 2002 Michael Günnewig * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -18,35 +20,34 @@ #include "avifile_private.h" -LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL - -IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 -STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Komprimeringsinnstillinger" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "&Velg en strm:",-1,2,5,154,10 - COMBOBOX IDC_STREAM,2,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - PUSHBUTTON "I&nnstillinger...",IDC_OPTIONS,170,17,50,14 - AUTOCHECKBOX "Sett &inn for hver",IDC_INTERLEAVE,3,42,85,11,WS_TABSTOP - EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL - LTEXT "bilde",-1,129,43,36,9 - LTEXT "Gjeldende format:",-1,3,56,73,9 - LTEXT "Denne plassen er til leie",IDC_FORMATTEXT,75,56,90,26 - DEFPUSHBUTTON "OK",IDOK,170,42,50,14 - PUSHBUTTON "Avbryt",IDCANCEL,170,61,50,14 -END +LANGUAGE LANG_NORWEGIAN, SUBLANG_DEFAULT STRINGTABLE { IDS_WAVESTREAMFORMAT "Lydformat: %s" IDS_WAVEFILETYPE "Lydformat" IDS_ALLMULTIMEDIA "Alle multimedia-filer" - IDS_ALLFILES "Alle filer (*.*)@*.*" + IDS_ALLFILES "Alle filer (*.*)" IDS_VIDEO "video" IDS_AUDIO "lyd" - IDS_AVISTREAMFORMAT "%s %s #%d" - IDS_AVIFILETYPE "Wine standardfilhndterer for AVI" + IDS_AVIFILETYPE "Wine standardfilhåndterer for AVI" IDS_UNCOMPRESSED "ukomprimert" } + +IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Komprimeringsinnstillinger" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Velg en strøm:",-1,5,5,154,10 + COMBOBOX IDC_STREAM,5,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP + PUSHBUTTON "&Alternativer...",IDC_OPTIONS,170,17,50,14 + AUTOCHECKBOX "Sett &inn for hver",IDC_INTERLEAVE,5,42,85,11,WS_TABSTOP + EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL + LTEXT "bilde",-1,129,43,36,9 + LTEXT "Gjeldende format:",-1,5,56,73,9 + LTEXT "",IDC_FORMATTEXT,80,56,88,26 + DEFPUSHBUTTON "OK",IDOK,170,42,50,14 + PUSHBUTTON "Avbryt",IDCANCEL,170,61,50,14 +END diff --git a/reactos/dll/win32/avifil32/avifile_Pl.rc b/reactos/dll/win32/avifil32/avifile_Pl.rc index 45caaae5e17..99b5a79f1f1 100644 --- a/reactos/dll/win32/avifil32/avifile_Pl.rc +++ b/reactos/dll/win32/avifil32/avifile_Pl.rc @@ -1,6 +1,7 @@ /* - * Copyright 2002 Michael Gnnewig - * Copyright 2004 Piotr Caban + * Top level resource file for avifil32.dll + * + * Copyright 2002 Michael Günnewig * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -21,33 +22,32 @@ LANGUAGE LANG_POLISH, SUBLANG_DEFAULT +STRINGTABLE +{ + IDS_WAVESTREAMFORMAT "Kształt fali: %s" + IDS_WAVEFILETYPE "Kształt fali" + IDS_ALLMULTIMEDIA "Wszystkie pliki multimedialne" + IDS_ALLFILES "Wszystkie pliki (*.*)" + IDS_VIDEO "obraz" + IDS_AUDIO "dźwięk" + IDS_AVIFILETYPE "Wine AVI-domyślna-obsługa-pliku" + IDS_UNCOMPRESSED "nie skompresowany" +} + IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Opcje kompresji" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Wybierz strumie:",-1,2,5,154,10 - COMBOBOX IDC_STREAM,2,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | + LTEXT "&Wybierz strumień:",-1,5,5,154,10 + COMBOBOX IDC_STREAM,5,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "&Opcje...",IDC_OPTIONS,170,17,50,14 - AUTOCHECKBOX "&Przeplot co",IDC_INTERLEAVE,3,42,85,11,WS_TABSTOP + AUTOCHECKBOX "&Przeplot co",IDC_INTERLEAVE,5,42,85,11,WS_TABSTOP EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL LTEXT "klatek",-1,129,43,36,9 - LTEXT "Wybrany format:",-1,2,56,73,9 - LTEXT "Zarezerwowane miejsce",IDC_FORMATTEXT,75,56,90,26 + LTEXT "Wybrany format:",-1,5,56,73,9 + LTEXT "",IDC_FORMATTEXT,80,56,88,26 DEFPUSHBUTTON "OK",IDOK,170,42,50,14 PUSHBUTTON "Anuluj",IDCANCEL,170,61,50,14 END - -STRINGTABLE -{ - IDS_WAVESTREAMFORMAT "Waveform: %s" - IDS_WAVEFILETYPE "Waveform" - IDS_ALLMULTIMEDIA "Wszystkie pliki multimedialne" - IDS_ALLFILES "Wszystkie pliki (*.*)@*.*" - IDS_VIDEO "obraz" - IDS_AUDIO "dwik" - IDS_AVISTREAMFORMAT "%s %s #%d" - IDS_AVIFILETYPE "Wine AVI-domylna-obsuga-pliku" - IDS_UNCOMPRESSED "nie skompresowany" -} diff --git a/reactos/dll/win32/avifil32/avifile_Pt.rc b/reactos/dll/win32/avifil32/avifile_Pt.rc index 5c1d3d3a111..977361029f3 100644 --- a/reactos/dll/win32/avifil32/avifile_Pt.rc +++ b/reactos/dll/win32/avifil32/avifile_Pt.rc @@ -1,7 +1,7 @@ /* - * Copyright 2003 Marcelo Duarte - * Copyright 2006 Américo José Melo - * Copyright 2010 Gustavo Henrique Milaré + * Top level resource file for avifil32.dll + * + * Copyright 2002 Michael Günnewig * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,75 +20,37 @@ #include "avifile_private.h" -#pragma code_page(65001) - -LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN - -IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 -STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Opções de compressão" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "&Escolha a stream:",-1,2,5,154,10 - COMBOBOX IDC_STREAM,2,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - PUSHBUTTON "&Opções...",IDC_OPTIONS,170,17,50,14 - AUTOCHECKBOX "&Entrelaçar todos",IDC_INTERLEAVE,3,42,85,11,WS_TABSTOP - EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL - LTEXT "quadros",-1,129,43,36,9 - LTEXT "Formato atual:",-1,3,56,73,9 - LTEXT "This space for rent",IDC_FORMATTEXT,75,56,90,26 - DEFPUSHBUTTON "OK",IDOK,170,42,50,14 - PUSHBUTTON "Cancelar",IDCANCEL,170,61,50,14 -END - -LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE - -IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 -STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Opções de compressão" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "&Escolha a stream:",-1,2,5,154,10 - COMBOBOX IDC_STREAM,2,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - PUSHBUTTON "&Opções...",IDC_OPTIONS,170,17,50,14 - AUTOCHECKBOX "&Interlaçar a todos os",IDC_INTERLEAVE,3,42,85,11,WS_TABSTOP - EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL - LTEXT "molduras",-1,129,43,36,9 - LTEXT "Formato actual:",-1,3,56,73,9 - LTEXT "This space for rent",IDC_FORMATTEXT,75,56,90,26 - DEFPUSHBUTTON "OK",IDOK,170,42,50,14 - PUSHBUTTON "Cancelar",IDCANCEL,170,61,50,14 -END - - -LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN - -STRINGTABLE -{ - IDS_WAVESTREAMFORMAT "Formato wave: %s" - IDS_WAVEFILETYPE "Formato wave" - IDS_ALLMULTIMEDIA "Todos arquivos multimídia" - IDS_ALLFILES "Todos os arquivos (*.*)@*.*" - IDS_VIDEO "vídeo" - IDS_AUDIO "áudio" - IDS_AVISTREAMFORMAT "%s %s #%d" - IDS_AVIFILETYPE "Manipulador de AVI padrão do Wine" - IDS_UNCOMPRESSED "sem compressão" -} - -LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE +LANGUAGE LANG_PORTUGUESE, SUBLANG_DEFAULT STRINGTABLE { IDS_WAVESTREAMFORMAT "Formato wave: %s" IDS_WAVEFILETYPE "Formato wave" IDS_ALLMULTIMEDIA "Todos os ficheiros multimédia" - IDS_ALLFILES "Todos os ficheiros (*.*)@*.*" + IDS_ALLFILES "#-#-#-#-# pt_PT.po (Wine) #-#-#-#-#\n\ +Todos os arquivos (*.*)\n\ +#-#-#-#-# pt_PT.po (Wine) #-#-#-#-#\n\ +Todos os ficheiros (*.*)" IDS_VIDEO "vídeo" IDS_AUDIO "áudio" - IDS_AVISTREAMFORMAT "%s %s #%d" IDS_AVIFILETYPE "Manipulador AVI Wine predefinido" IDS_UNCOMPRESSED "sem compressão" } + +IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Opções de compressão" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Escolha a stream:",-1,5,5,154,10 + COMBOBOX IDC_STREAM,5,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP + PUSHBUTTON "&Opções...",IDC_OPTIONS,170,17,50,14 + AUTOCHECKBOX "&Interlaçar a todos os",IDC_INTERLEAVE,5,42,85,11,WS_TABSTOP + EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL + LTEXT "molduras",-1,129,43,36,9 + LTEXT "Formato actual:",-1,5,56,73,9 + LTEXT "",IDC_FORMATTEXT,80,56,88,26 + DEFPUSHBUTTON "OK",IDOK,170,42,50,14 + PUSHBUTTON "Cancelar",IDCANCEL,170,61,50,14 +END diff --git a/reactos/dll/win32/avifil32/avifile_Ro.rc b/reactos/dll/win32/avifil32/avifile_Ro.rc index d7af7da00e3..2784ce8194e 100644 --- a/reactos/dll/win32/avifil32/avifile_Ro.rc +++ b/reactos/dll/win32/avifil32/avifile_Ro.rc @@ -1,7 +1,7 @@ /* - * avifil32.dll (Romanian resources) + * Top level resource file for avifil32.dll * - * Copyright 2009 Paul Chitescu + * Copyright 2002 Michael Günnewig * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,38 +20,34 @@ #include "avifile_private.h" -/* UTF-8 */ -#pragma code_page(65001) - -LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL - -IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 -STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Opțiuni de compresie" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "&Alegeți un flux:",-1,2,5,154,10 - COMBOBOX IDC_STREAM,2,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - PUSHBUTTON "&Opțiuni...",IDC_OPTIONS,170,17,50,14 - AUTOCHECKBOX "Ȋ&ntrețese fiecare",IDC_INTERLEAVE,3,42,85,11,WS_TABSTOP - EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL - LTEXT "cadre",-1,129,43,36,9 - LTEXT "Formatul curent:",-1,3,56,73,9 - LTEXT "This space for rent",IDC_FORMATTEXT,75,56,90,26 - DEFPUSHBUTTON "OK",IDOK,170,42,50,14 - PUSHBUTTON "Renunță",IDCANCEL,170,61,50,14 -END +LANGUAGE LANG_ROMANIAN, SUBLANG_DEFAULT STRINGTABLE { IDS_WAVESTREAMFORMAT "Forma de undă: %s" IDS_WAVEFILETYPE "Formă de undă" IDS_ALLMULTIMEDIA "Toate fișierele multimedia" - IDS_ALLFILES "Toate fișierele (*.*)@*.*" + IDS_ALLFILES "Toate fișierele (*.*)" IDS_VIDEO "video" IDS_AUDIO "audio" - IDS_AVISTREAMFORMAT "%s %s #%d" IDS_AVIFILETYPE "Tratare implicită Wine pentru AVI" - IDS_UNCOMPRESSED "necomprimat" + IDS_UNCOMPRESSED "necomprimat" } + +IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Opțiuni de compresie" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Alegeți un flux:",-1,5,5,154,10 + COMBOBOX IDC_STREAM,5,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP + PUSHBUTTON "&Opțiuni...",IDC_OPTIONS,170,17,50,14 + AUTOCHECKBOX "Ȋ&ntrețese fiecare",IDC_INTERLEAVE,5,42,85,11,WS_TABSTOP + EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL + LTEXT "cadre",-1,129,43,36,9 + LTEXT "Formatul curent:",-1,5,56,73,9 + LTEXT "",IDC_FORMATTEXT,80,56,88,26 + DEFPUSHBUTTON "OK",IDOK,170,42,50,14 + PUSHBUTTON "Renunță",IDCANCEL,170,61,50,14 +END diff --git a/reactos/dll/win32/avifil32/avifile_Ru.rc b/reactos/dll/win32/avifil32/avifile_Ru.rc index b2a61b2c5ca..796a239bec5 100644 --- a/reactos/dll/win32/avifil32/avifile_Ru.rc +++ b/reactos/dll/win32/avifil32/avifile_Ru.rc @@ -1,7 +1,7 @@ /* - * avifil32.dll (Russian resources) + * Top level resource file for avifil32.dll * - * Copyright 2003 Igor Stepin + * Copyright 2002 Michael Günnewig * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,38 +20,34 @@ #include "avifile_private.h" -/* UTF-8 */ -#pragma code_page(65001) - LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT +STRINGTABLE +{ + IDS_WAVESTREAMFORMAT "Звуковой поток: %s" + IDS_WAVEFILETYPE "Звуковой поток" + IDS_ALLMULTIMEDIA "Все мультимедиа файлы" + IDS_ALLFILES "Все файлы (*.*)" + IDS_VIDEO "видео" + IDS_AUDIO "аудио" + IDS_AVIFILETYPE "Обработчик по умолчанию avi-файлов в Wine" + IDS_UNCOMPRESSED "без сжатия" +} + IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Настройки сжатия" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Выберите поток:",-1,2,5,154,10 - COMBOBOX IDC_STREAM,2,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | + LTEXT "&Выберите поток:",-1,5,5,154,10 + COMBOBOX IDC_STREAM,5,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "П&араметры...",IDC_OPTIONS,170,17,50,14 - AUTOCHECKBOX "&Прослаивать каждые",IDC_INTERLEAVE,3,42,85,11,WS_TABSTOP + PUSHBUTTON "&Параметры...",IDC_OPTIONS,170,17,50,14 + AUTOCHECKBOX "&Прослаивать каждые",IDC_INTERLEAVE,5,42,85,11,WS_TABSTOP EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL LTEXT "фрейма",-1,129,43,36,9 - LTEXT "Текущий формат:",-1,3,56,73,9 - LTEXT "Это место сдаётся в аренду",IDC_FORMATTEXT,75,56,90,26 - DEFPUSHBUTTON "OK",IDOK,170,42,50,14 + LTEXT "Текущий формат:",-1,5,56,73,9 + LTEXT "",IDC_FORMATTEXT,80,56,88,26 + DEFPUSHBUTTON "ОК",IDOK,170,42,50,14 PUSHBUTTON "Отмена",IDCANCEL,170,61,50,14 END - -STRINGTABLE -{ - IDS_WAVESTREAMFORMAT "Звуковой поток: %s" - IDS_WAVEFILETYPE "Звуковой поток" - IDS_ALLMULTIMEDIA "Все файлы мультимедиа" - IDS_ALLFILES "Все файлы (*.*)@*.*" - IDS_VIDEO "видео" - IDS_AUDIO "аудио" - IDS_AVISTREAMFORMAT "%s %s #%d" - IDS_AVIFILETYPE "Обработчик по умолчанию avi-файлов в Wine" - IDS_UNCOMPRESSED "без сжатия" -} diff --git a/reactos/dll/win32/avifil32/avifile_Si.rc b/reactos/dll/win32/avifil32/avifile_Si.rc index 160999fa19d..88ce35bcc15 100644 --- a/reactos/dll/win32/avifil32/avifile_Si.rc +++ b/reactos/dll/win32/avifil32/avifile_Si.rc @@ -1,5 +1,7 @@ /* - * Copyright 2003, 2008 Rok Mandeljc + * Top level resource file for avifil32.dll + * + * Copyright 2002 Michael Günnewig * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -18,37 +20,34 @@ #include "avifile_private.h" -#pragma code_page(65001) - LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT +STRINGTABLE +{ + IDS_WAVESTREAMFORMAT "Valovna oblika: %s" + IDS_WAVEFILETYPE "Valovna oblika" + IDS_ALLMULTIMEDIA "Vse večpredstavnostne datoteke" + IDS_ALLFILES "Vse datoteke (*.*)" + IDS_VIDEO "video" + IDS_AUDIO "zvok" + IDS_AVIFILETYPE "Wine privzeti-upravljalnik-AVI-datotek" + IDS_UNCOMPRESSED "nestisnjeno" +} + IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Možnosti stiskanja" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Izbran tok:",-1,2,5,154,10 - COMBOBOX IDC_STREAM,2,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | + LTEXT "&Izbran tok:",-1,5,5,154,10 + COMBOBOX IDC_STREAM,5,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "&Možnosti ...",IDC_OPTIONS,170,17,50,14 - AUTOCHECKBOX "&Prepletanje vsake",IDC_INTERLEAVE,3,42,85,11,WS_TABSTOP + PUSHBUTTON "M&ožnosti ...",IDC_OPTIONS,170,17,50,14 + AUTOCHECKBOX "&Prepletanje vsake",IDC_INTERLEAVE,5,42,85,11,WS_TABSTOP EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL LTEXT "slike",-1,129,43,36,9 - LTEXT "Trenutna oblika zapisa:",-1,3,56,73,9 - LTEXT "This space for rent",IDC_FORMATTEXT,75,56,90,26 + LTEXT "Trenutna oblika zapisa:",-1,5,56,73,9 + LTEXT "",IDC_FORMATTEXT,80,56,88,26 DEFPUSHBUTTON "V redu",IDOK,170,42,50,14 PUSHBUTTON "Prekliči",IDCANCEL,170,61,50,14 END - -STRINGTABLE -{ - IDS_WAVESTREAMFORMAT "Waveform: %s" - IDS_WAVEFILETYPE "Waveform" - IDS_ALLMULTIMEDIA "Vse večpredstavnostne datoteke" - IDS_ALLFILES "Vse datoteke (*.*)@*.*" - IDS_VIDEO "video" - IDS_AUDIO "avdio" - IDS_AVISTREAMFORMAT "%s %s #%d" - IDS_AVIFILETYPE "Wine privzeti-upravljalec-AVI-datotek" - IDS_UNCOMPRESSED "nestisnjeno" -} diff --git a/reactos/dll/win32/avifil32/avifile_Sv.rc b/reactos/dll/win32/avifil32/avifile_Sv.rc index 2fba9211fba..51059779ae4 100644 --- a/reactos/dll/win32/avifil32/avifile_Sv.rc +++ b/reactos/dll/win32/avifil32/avifile_Sv.rc @@ -1,5 +1,7 @@ /* - * Copyright 2007 Daniel Nylander + * Top level resource file for avifil32.dll + * + * Copyright 2002 Michael Günnewig * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -18,35 +20,34 @@ #include "avifile_private.h" -LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL +LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT + +STRINGTABLE +{ + IDS_WAVESTREAMFORMAT "Vågform: %s" + IDS_WAVEFILETYPE "Vågform" + IDS_ALLMULTIMEDIA "Alla multimediafiler" + IDS_ALLFILES "Alla filer (*.*)" + IDS_VIDEO "video" + IDS_AUDIO "ljud" + IDS_AVIFILETYPE "Wine AVI-standardfilhanterare" + IDS_UNCOMPRESSED "okomprimerad" +} IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Komprimeringsalternativ" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Vlj en strm:",-1,2,5,154,10 - COMBOBOX IDC_STREAM,2,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | + LTEXT "&Välj en ström:",-1,5,5,154,10 + COMBOBOX IDC_STREAM,5,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "A<ernativ...",IDC_OPTIONS,170,17,50,14 - AUTOCHECKBOX "&Interfoliera varje",IDC_INTERLEAVE,3,42,85,11,WS_TABSTOP + PUSHBUTTON "&Alternativ...",IDC_OPTIONS,170,17,50,14 + AUTOCHECKBOX "&Interfoliera varje",IDC_INTERLEAVE,5,42,85,11,WS_TABSTOP EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL LTEXT "frames",-1,129,43,36,9 - LTEXT "Aktuellt format:",-1,3,56,73,9 - LTEXT "Detta utrymme uthyres",IDC_FORMATTEXT,75,56,90,26 + LTEXT "Aktuellt format:",-1,5,56,73,9 + LTEXT "",IDC_FORMATTEXT,80,56,88,26 DEFPUSHBUTTON "OK",IDOK,170,42,50,14 PUSHBUTTON "Avbryt",IDCANCEL,170,61,50,14 END - -STRINGTABLE -{ - IDS_WAVESTREAMFORMAT "Vgform: %s" - IDS_WAVEFILETYPE "Vgform" - IDS_ALLMULTIMEDIA "Alla multimediafiler" - IDS_ALLFILES "Alla filer (*.*)@*.*" - IDS_VIDEO "video" - IDS_AUDIO "ljud" - IDS_AVISTREAMFORMAT "%s %s #%d" - IDS_AVIFILETYPE "Wine AVI-standardfilhanterare" - IDS_UNCOMPRESSED "okomprimerad" -} diff --git a/reactos/dll/win32/avifil32/avifile_Tr.rc b/reactos/dll/win32/avifil32/avifile_Tr.rc index 37cdf950624..3a521b41887 100644 --- a/reactos/dll/win32/avifil32/avifile_Tr.rc +++ b/reactos/dll/win32/avifil32/avifile_Tr.rc @@ -1,5 +1,7 @@ /* - * Copyright 2006 Fatih Ac + * Top level resource file for avifil32.dll + * + * Copyright 2002 Michael Günnewig * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,33 +22,32 @@ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT -IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 -STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Sktrma seenekleri" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "Bir ak se&in:",-1,2,5,154,10 - COMBOBOX IDC_STREAM,2,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - PUSHBUTTON "&Seenekler...",IDC_OPTIONS,170,17,50,14 - AUTOCHECKBOX "&Interleave every",IDC_INTERLEAVE,3,42,85,11,WS_TABSTOP - EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL - LTEXT "frames",-1,129,43,36,9 - LTEXT "Geerli biim:",-1,3,56,73,9 - LTEXT "This space for rent",IDC_FORMATTEXT,75,56,90,26 - DEFPUSHBUTTON "Tamam",IDOK,170,42,50,14 - PUSHBUTTON "ptal",IDCANCEL,170,61,50,14 -END - STRINGTABLE { - IDS_WAVESTREAMFORMAT "Waveform: %s" - IDS_WAVEFILETYPE "Waveform" - IDS_ALLMULTIMEDIA "Tm okluortam dosyalar" - IDS_ALLFILES "Tm dosyalar (*.*)@*.*" + IDS_WAVESTREAMFORMAT "" + IDS_WAVEFILETYPE "" + IDS_ALLMULTIMEDIA "Tüm çokluortam dosyaları" + IDS_ALLFILES "Tüm dosyalar (*.*)" IDS_VIDEO "vidyo" IDS_AUDIO "ses" - IDS_AVISTREAMFORMAT "%s %s #%d" IDS_AVIFILETYPE "Wine AVI-default-filehandler" - IDS_UNCOMPRESSED "sktrlmam" + IDS_UNCOMPRESSED "sıkıştırılmamış" } + +IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Sıkıştırma seçenekleri" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Bir akış se&çin:",-1,5,5,154,10 + COMBOBOX IDC_STREAM,5,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP + PUSHBUTTON "&Seçenekler...",IDC_OPTIONS,170,17,50,14 + AUTOCHECKBOX "&Interleave every",IDC_INTERLEAVE,5,42,85,11,WS_TABSTOP + EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL + LTEXT "frames",-1,129,43,36,9 + LTEXT "Geçerli biçim:",-1,5,56,73,9 + LTEXT "",IDC_FORMATTEXT,80,56,88,26 + DEFPUSHBUTTON "Tamam",IDOK,170,42,50,14 + PUSHBUTTON "İptal",IDCANCEL,170,61,50,14 +END diff --git a/reactos/dll/win32/avifil32/avifile_Uk.rc b/reactos/dll/win32/avifil32/avifile_Uk.rc index c66ead3a9ed..5a5712d8d58 100644 --- a/reactos/dll/win32/avifil32/avifile_Uk.rc +++ b/reactos/dll/win32/avifil32/avifile_Uk.rc @@ -1,5 +1,7 @@ /* - * Copyright 2007 Artem Reznikov + * Top level resource file for avifil32.dll + * + * Copyright 2002 Michael Günnewig * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -18,38 +20,34 @@ #include "avifile_private.h" -/* UTF-8 */ -#pragma code_page(65001) - LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT -IDD_SAVEOPTIONS DIALOG 43, 37, 196, 82 -STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Параметри стиснення" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "&Оберіть потік:",-1,2,5,114,10 - COMBOBOX IDC_STREAM,2,18,134,61,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - PUSHBUTTON "П&араметри...",IDC_OPTIONS,145,17,45,14 - AUTOCHECKBOX "&Інтервал чергування",IDC_INTERLEAVE,3,42,60,11,WS_TABSTOP - EDITTEXT IDC_INTERLEAVEEVERY,66,41,32,12,ES_AUTOHSCROLL - LTEXT "кадрів",-1,104,43,36,9 - LTEXT "Поточний формат:",-1,3,56,53,9 - LTEXT "Це місце здається в оренду",IDC_FORMATTEXT,55,56,90,26 - DEFPUSHBUTTON "OK",IDOK,145,42,45,14 - PUSHBUTTON "Скасувати",IDCANCEL,145,61,45,14 -END - STRINGTABLE { IDS_WAVESTREAMFORMAT "Звуковий потік: %s" IDS_WAVEFILETYPE "Звуковий потік" IDS_ALLMULTIMEDIA "Усі мультимедійні файли" - IDS_ALLFILES "Усі файли (*.*)@*.*" + IDS_ALLFILES "Всі файли (*.*)" IDS_VIDEO "відео" IDS_AUDIO "аудіо" - IDS_AVISTREAMFORMAT "%s %s #%d" IDS_AVIFILETYPE "Wine обробник AVI-файлів за замовчуванням" IDS_UNCOMPRESSED "без стиснення" } + +IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Параметри стиснення" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Оберіть потік:",-1,5,5,154,10 + COMBOBOX IDC_STREAM,5,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP + PUSHBUTTON "&Параметри...",IDC_OPTIONS,170,17,50,14 + AUTOCHECKBOX "&Інтервал чергування",IDC_INTERLEAVE,5,42,85,11,WS_TABSTOP + EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL + LTEXT "кадрів",-1,129,43,36,9 + LTEXT "Поточний формат:",-1,5,56,73,9 + LTEXT "",IDC_FORMATTEXT,80,56,88,26 + DEFPUSHBUTTON "OK",IDOK,170,42,50,14 + PUSHBUTTON "Скасувати",IDCANCEL,170,61,50,14 +END diff --git a/reactos/dll/win32/avifil32/avifile_Zh.rc b/reactos/dll/win32/avifil32/avifile_Zh.rc index 3d1553e97ee..7affafee8ab 100644 --- a/reactos/dll/win32/avifil32/avifile_Zh.rc +++ b/reactos/dll/win32/avifil32/avifile_Zh.rc @@ -1,7 +1,7 @@ /* - * avifile (Simplified and Traditional Chinese Resources) + * Top level resource file for avifil32.dll * - * Copyright 2008 Hongbo Ni + * Copyright 2002 Michael Günnewig * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,71 +20,34 @@ #include "avifile_private.h" -/* Chinese text is encoded in UTF-8 */ -#pragma code_page(65001) - -LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED - -IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 -STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "压缩选项" -FONT 9, "MS Shell Dlg" -BEGIN - LTEXT "选择来源(&C):",-1,2,5,154,10 - COMBOBOX IDC_STREAM,2,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - PUSHBUTTON "选项(&O)...",IDC_OPTIONS,170,17,50,14 - AUTOCHECKBOX "交织: 每",IDC_INTERLEAVE,3,42,85,11,WS_TABSTOP - EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL - LTEXT "帧数",-1,129,43,36,9 - LTEXT "当前格式:",-1,3,56,73,9 - LTEXT "(?)",IDC_FORMATTEXT,75,56,90,26 - DEFPUSHBUTTON "确定",IDOK,170,42,50,14 - PUSHBUTTON "取消",IDCANCEL,170,61,50,14 -END +LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL STRINGTABLE { IDS_WAVESTREAMFORMAT "波形: %s" - IDS_WAVEFILETYPE "波形" - IDS_ALLMULTIMEDIA "所有多媒体文件" - IDS_ALLFILES "所有文件 (*.*)@*.*" - IDS_VIDEO "视频" - IDS_AUDIO "音频" - IDS_AVISTREAMFORMAT "%s %s #%d" - IDS_AVIFILETYPE "Wine AVI-默认处理器" - IDS_UNCOMPRESSED "未压缩" + IDS_WAVEFILETYPE "波形" + IDS_ALLMULTIMEDIA "所有多媒體檔案" + IDS_ALLFILES "所有檔案 (*.*)" + IDS_VIDEO "視頻" + IDS_AUDIO "音頻" + IDS_AVIFILETYPE "Wine AVI-默認處理器" + IDS_UNCOMPRESSED "未壓縮" } -LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL - IDD_SAVEOPTIONS DIALOG 43, 37, 226, 82 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "壓縮選項" -FONT 9, "MS Shell Dlg" +FONT 8, "MS Shell Dlg" BEGIN - LTEXT "選擇來源(&C):",-1,2,5,154,10 - COMBOBOX IDC_STREAM,2,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | + LTEXT "選擇來源(&C):",-1,5,5,154,10 + COMBOBOX IDC_STREAM,5,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "選項(&O)...",IDC_OPTIONS,170,17,50,14 - AUTOCHECKBOX "交織: 每",IDC_INTERLEAVE,3,42,85,11,WS_TABSTOP + AUTOCHECKBOX "交織: 每",IDC_INTERLEAVE,5,42,85,11,WS_TABSTOP EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL LTEXT "幀數",-1,129,43,36,9 - LTEXT "當前格式:",-1,3,56,73,9 - LTEXT "(?)",IDC_FORMATTEXT,75,56,90,26 + LTEXT "當前格式:",-1,5,56,73,9 + LTEXT "",IDC_FORMATTEXT,80,56,88,26 DEFPUSHBUTTON "確定",IDOK,170,42,50,14 PUSHBUTTON "取消",IDCANCEL,170,61,50,14 END - -STRINGTABLE -{ - IDS_WAVESTREAMFORMAT "波形: %s" - IDS_WAVEFILETYPE "波形" - IDS_ALLMULTIMEDIA "所有多媒體檔案" - IDS_ALLFILES "所有檔案 (*.*)@*.*" - IDS_VIDEO "視頻" - IDS_AUDIO "音頻" - IDS_AVISTREAMFORMAT "%s %s #%d" - IDS_AVIFILETYPE "Wine AVI-默認處理器" - IDS_UNCOMPRESSED "未壓縮" -} diff --git a/reactos/dll/win32/avifil32/avifile_private.h b/reactos/dll/win32/avifil32/avifile_private.h index 0cff6ad56b9..b9390c61e1d 100644 --- a/reactos/dll/win32/avifil32/avifile_private.h +++ b/reactos/dll/win32/avifil32/avifile_private.h @@ -49,25 +49,23 @@ #define IDS_ALLFILES 0x0185 #define IDS_VIDEO 0x0189 #define IDS_AUDIO 0x0190 -#define IDS_AVISTREAMFORMAT 0x0191 #define IDS_AVIFILETYPE 0x0192 #define IDS_UNCOMPRESSED 0x0193 DEFINE_AVIGUID(CLSID_ICMStream, 0x00020001, 0, 0); DEFINE_AVIGUID(CLSID_WAVFile, 0x00020003, 0, 0); DEFINE_AVIGUID(CLSID_ACMStream, 0x0002000F, 0, 0); -DEFINE_AVIGUID(IID_IEditStreamInternal, 0x0002000A,0,0); -extern HMODULE AVIFILE_hModule; +extern HMODULE AVIFILE_hModule DECLSPEC_HIDDEN; -extern HRESULT AVIFILE_CreateAVIFile(REFIID riid, LPVOID *ppobj); -extern HRESULT AVIFILE_CreateWAVFile(REFIID riid, LPVOID *ppobj); -extern HRESULT AVIFILE_CreateACMStream(REFIID riid, LPVOID *ppobj); -extern HRESULT AVIFILE_CreateICMStream(REFIID riid, LPVOID *ppobj); -extern PAVIEDITSTREAM AVIFILE_CreateEditStream(PAVISTREAM pstream); -extern PGETFRAME AVIFILE_CreateGetFrame(PAVISTREAM pstream); -extern PAVIFILE AVIFILE_CreateAVITempFile(int nStreams, const PAVISTREAM *ppStreams); +extern HRESULT AVIFILE_CreateAVIFile(REFIID riid, LPVOID *ppobj) DECLSPEC_HIDDEN; +extern HRESULT AVIFILE_CreateWAVFile(REFIID riid, LPVOID *ppobj) DECLSPEC_HIDDEN; +extern HRESULT AVIFILE_CreateACMStream(REFIID riid, LPVOID *ppobj) DECLSPEC_HIDDEN; +extern HRESULT AVIFILE_CreateICMStream(REFIID riid, LPVOID *ppobj) DECLSPEC_HIDDEN; +extern PAVIEDITSTREAM AVIFILE_CreateEditStream(PAVISTREAM pstream) DECLSPEC_HIDDEN; +extern PGETFRAME AVIFILE_CreateGetFrame(PAVISTREAM pstream) DECLSPEC_HIDDEN; +extern PAVIFILE AVIFILE_CreateAVITempFile(int nStreams, const PAVISTREAM *ppStreams) DECLSPEC_HIDDEN; -extern LPCWSTR AVIFILE_BasenameW(LPCWSTR szFileName); +extern LPCWSTR AVIFILE_BasenameW(LPCWSTR szFileName) DECLSPEC_HIDDEN; #endif diff --git a/reactos/dll/win32/avifil32/editstream.c b/reactos/dll/win32/avifil32/editstream.c index f19f3ac5239..6d387250e3e 100644 --- a/reactos/dll/win32/avifil32/editstream.c +++ b/reactos/dll/win32/avifil32/editstream.c @@ -31,6 +31,7 @@ #include "extrachunk.h" #include "wine/debug.h" +#include "initguid.h" WINE_DEFAULT_DEBUG_CHANNEL(avifile); @@ -38,134 +39,24 @@ WINE_DEFAULT_DEBUG_CHANNEL(avifile); /* internal interface to get access to table of stream in an editable stream */ +DEFINE_AVIGUID(IID_IEditStreamInternal, 0x0002000A,0,0); + typedef struct _EditStreamTable { PAVISTREAM pStream; /* stream which contains the data */ DWORD dwStart; /* where starts the part which is also our */ DWORD dwLength; /* how many is also in this stream */ } EditStreamTable; -#define INTERFACE IEditStreamInternal -DECLARE_INTERFACE_(IEditStreamInternal,IUnknown) -{ - /*** IUnknown methods ***/ - STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - /*** IEditStreamInternal methods ***/ - STDMETHOD(GetEditStreamImpl)(THIS_ LPVOID*) PURE; -}; -#undef INTERFACE - #define EditStreamEnd(This,streamNr) ((This)->pStreams[streamNr].dwStart + \ (This)->pStreams[streamNr].dwLength) -/***********************************************************************/ - -static HRESULT WINAPI IAVIEditStream_fnQueryInterface(IAVIEditStream*iface,REFIID refiid,LPVOID *obj); -static ULONG WINAPI IAVIEditStream_fnAddRef(IAVIEditStream*iface); -static ULONG WINAPI IAVIEditStream_fnRelease(IAVIEditStream*iface); -static HRESULT WINAPI IAVIEditStream_fnCut(IAVIEditStream*iface,LONG*plStart, - LONG*plLength,PAVISTREAM*ppResult); -static HRESULT WINAPI IAVIEditStream_fnCopy(IAVIEditStream*iface,LONG*plStart, - LONG*plLength,PAVISTREAM*ppResult); -static HRESULT WINAPI IAVIEditStream_fnPaste(IAVIEditStream*iface,LONG*plStart, - LONG*plLength,PAVISTREAM pSource, - LONG lStart,LONG lEnd); -static HRESULT WINAPI IAVIEditStream_fnClone(IAVIEditStream*iface, - PAVISTREAM*ppResult); -static HRESULT WINAPI IAVIEditStream_fnSetInfo(IAVIEditStream*iface, - LPAVISTREAMINFOW asi,LONG size); - -static const struct IAVIEditStreamVtbl ieditstream = { - IAVIEditStream_fnQueryInterface, - IAVIEditStream_fnAddRef, - IAVIEditStream_fnRelease, - IAVIEditStream_fnCut, - IAVIEditStream_fnCopy, - IAVIEditStream_fnPaste, - IAVIEditStream_fnClone, - IAVIEditStream_fnSetInfo -}; - -static HRESULT WINAPI IEditAVIStream_fnQueryInterface(IAVIStream*iface,REFIID refiid,LPVOID*obj); -static ULONG WINAPI IEditAVIStream_fnAddRef(IAVIStream*iface); -static ULONG WINAPI IEditAVIStream_fnRelease(IAVIStream*iface); -static HRESULT WINAPI IEditAVIStream_fnCreate(IAVIStream*iface,LPARAM lParam1,LPARAM lParam2); -static HRESULT WINAPI IEditAVIStream_fnInfo(IAVIStream*iface,AVISTREAMINFOW *psi,LONG size); -static LONG WINAPI IEditAVIStream_fnFindSample(IAVIStream*iface,LONG pos, - LONG flags); -static HRESULT WINAPI IEditAVIStream_fnReadFormat(IAVIStream*iface,LONG pos,LPVOID format,LONG*formatsize); -static HRESULT WINAPI IEditAVIStream_fnSetFormat(IAVIStream*iface,LONG pos,LPVOID format,LONG formatsize); -static HRESULT WINAPI IEditAVIStream_fnRead(IAVIStream*iface,LONG start, - LONG samples,LPVOID buffer, - LONG buffersize,LONG*bytesread, - LONG*samplesread); -static HRESULT WINAPI IEditAVIStream_fnWrite(IAVIStream*iface,LONG start, - LONG samples,LPVOID buffer, - LONG buffersize,DWORD flags, - LONG*sampwritten,LONG*byteswritten); -static HRESULT WINAPI IEditAVIStream_fnDelete(IAVIStream*iface,LONG start,LONG samples); -static HRESULT WINAPI IEditAVIStream_fnReadData(IAVIStream*iface,DWORD fcc, - LPVOID lp,LONG *lpread); -static HRESULT WINAPI IEditAVIStream_fnWriteData(IAVIStream*iface,DWORD fcc, - LPVOID lp,LONG size); -static HRESULT WINAPI IEditAVIStream_fnSetInfo(IAVIStream*iface,AVISTREAMINFOW*info,LONG infolen); - -static const struct IAVIStreamVtbl ieditstast = { - IEditAVIStream_fnQueryInterface, - IEditAVIStream_fnAddRef, - IEditAVIStream_fnRelease, - IEditAVIStream_fnCreate, - IEditAVIStream_fnInfo, - IEditAVIStream_fnFindSample, - IEditAVIStream_fnReadFormat, - IEditAVIStream_fnSetFormat, - IEditAVIStream_fnRead, - IEditAVIStream_fnWrite, - IEditAVIStream_fnDelete, - IEditAVIStream_fnReadData, - IEditAVIStream_fnWriteData, - IEditAVIStream_fnSetInfo -}; - -static HRESULT WINAPI IEditStreamInternal_fnQueryInterface(IEditStreamInternal*iface,REFIID refiid,LPVOID*obj); -static ULONG WINAPI IEditStreamInternal_fnAddRef(IEditStreamInternal*iface); -static ULONG WINAPI IEditStreamInternal_fnRelease(IEditStreamInternal*iface); -static HRESULT WINAPI IEditStreamInternal_fnGetEditStreamImpl(IEditStreamInternal*iface,LPVOID*ppimpl); - -static const struct IEditStreamInternalVtbl ieditstreaminternal = { - IEditStreamInternal_fnQueryInterface, - IEditStreamInternal_fnAddRef, - IEditStreamInternal_fnRelease, - IEditStreamInternal_fnGetEditStreamImpl -}; - typedef struct _IAVIEditStreamImpl IAVIEditStreamImpl; -typedef struct _IEditAVIStreamImpl { - /* IUnknown stuff */ - const IAVIStreamVtbl *lpVtbl; - - /* IAVIStream stuff */ - IAVIEditStreamImpl *pae; -} IEditAVIStreamImpl; - -typedef struct _IEditStreamInternalImpl { - /* IUnknown stuff */ - const IEditStreamInternalVtbl *lpVtbl; - - /* IEditStreamInternal stuff */ - IAVIEditStreamImpl *pae; -} IEditStreamInternalImpl; - struct _IAVIEditStreamImpl { - /* IUnknown stuff */ - const IAVIEditStreamVtbl *lpVtbl; - LONG ref; + IAVIEditStream IAVIEditStream_iface; + IAVIStream IAVIStream_iface; - /* IAVIEditStream stuff */ - IEditAVIStreamImpl iAVIStream; - IEditStreamInternalImpl iEditStreamInternal; + LONG ref; AVISTREAMINFOW sInfo; @@ -179,28 +70,18 @@ struct _IAVIEditStreamImpl { LPBITMAPINFOHEADER lpFrame; /* frame of pCurStream */ }; -/***********************************************************************/ - -PAVIEDITSTREAM AVIFILE_CreateEditStream(PAVISTREAM pstream) +static inline IAVIEditStreamImpl *impl_from_IAVIEditStream(IAVIEditStream *iface) { - IAVIEditStreamImpl *pedit = NULL; - - pedit = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IAVIEditStreamImpl)); - if (pedit == NULL) - return NULL; - - pedit->lpVtbl = &ieditstream; - pedit->iAVIStream.lpVtbl = &ieditstast; - pedit->iAVIStream.pae = pedit; - pedit->iEditStreamInternal.lpVtbl = &ieditstreaminternal; - pedit->iEditStreamInternal.pae = pedit; - pedit->ref = 1; - - IAVIStream_Create((PAVISTREAM)&pedit->iAVIStream,(LPARAM)pstream,0); - - return (PAVIEDITSTREAM)pedit; + return CONTAINING_RECORD(iface, IAVIEditStreamImpl, IAVIEditStream_iface); } +static inline IAVIEditStreamImpl *impl_from_IAVIStream(IAVIStream *iface) +{ + return CONTAINING_RECORD(iface, IAVIEditStreamImpl, IAVIStream_iface); +} + +/***********************************************************************/ + static HRESULT AVIFILE_FindStreamInTable(IAVIEditStreamImpl* const This, DWORD pos,PAVISTREAM *ppStream, DWORD* streamPos, @@ -348,34 +229,30 @@ static BOOL AVIFILE_FormatsEqual(PAVISTREAM avi1, PAVISTREAM avi2) static HRESULT WINAPI IAVIEditStream_fnQueryInterface(IAVIEditStream*iface,REFIID refiid,LPVOID *obj) { - IAVIEditStreamImpl *This = (IAVIEditStreamImpl *)iface; + IAVIEditStreamImpl *This = impl_from_IAVIEditStream(iface); TRACE("(%p,%s,%p)\n", This, debugstr_guid(refiid), obj); if (IsEqualGUID(&IID_IUnknown, refiid) || - IsEqualGUID(&IID_IAVIEditStream, refiid)) { + IsEqualGUID(&IID_IAVIEditStream, refiid) || + IsEqualGUID(&IID_IEditStreamInternal, refiid)) { *obj = iface; IAVIEditStream_AddRef(iface); return S_OK; } else if (IsEqualGUID(&IID_IAVIStream, refiid)) { - *obj = &This->iAVIStream; - IAVIEditStream_AddRef(iface); - - return S_OK; - } else if (IsEqualGUID(&IID_IEditStreamInternal, refiid)) { - *obj = &This->iEditStreamInternal; + *obj = &This->IAVIStream_iface; IAVIEditStream_AddRef(iface); return S_OK; } - return OLE_E_ENUM_NOMORE; + return E_NOINTERFACE; } static ULONG WINAPI IAVIEditStream_fnAddRef(IAVIEditStream*iface) { - IAVIEditStreamImpl *This = (IAVIEditStreamImpl *)iface; + IAVIEditStreamImpl *This = impl_from_IAVIEditStream(iface); ULONG ref = InterlockedIncrement(&This->ref); TRACE("(%p) -> %d\n", iface, ref); @@ -385,7 +262,7 @@ static ULONG WINAPI IAVIEditStream_fnAddRef(IAVIEditStream*iface) static ULONG WINAPI IAVIEditStream_fnRelease(IAVIEditStream*iface) { - IAVIEditStreamImpl *This = (IAVIEditStreamImpl *)iface; + IAVIEditStreamImpl *This = impl_from_IAVIEditStream(iface); DWORD i; ULONG ref = InterlockedDecrement(&This->ref); @@ -412,7 +289,7 @@ static ULONG WINAPI IAVIEditStream_fnRelease(IAVIEditStream*iface) static HRESULT WINAPI IAVIEditStream_fnCut(IAVIEditStream*iface,LONG*plStart, LONG*plLength,PAVISTREAM*ppResult) { - IAVIEditStreamImpl *This = (IAVIEditStreamImpl *)iface; + IAVIEditStreamImpl *This = impl_from_IAVIEditStream(iface); PAVISTREAM stream; DWORD start, len, streamPos, streamNr; HRESULT hr; @@ -496,7 +373,7 @@ static HRESULT WINAPI IAVIEditStream_fnCut(IAVIEditStream*iface,LONG*plStart, static HRESULT WINAPI IAVIEditStream_fnCopy(IAVIEditStream*iface,LONG*plStart, LONG*plLength,PAVISTREAM*ppResult) { - IAVIEditStreamImpl *This = (IAVIEditStreamImpl *)iface; + IAVIEditStreamImpl *This = impl_from_IAVIEditStream(iface); IAVIEditStreamImpl* pEdit; HRESULT hr; LONG start = 0; @@ -526,14 +403,13 @@ static HRESULT WINAPI IAVIEditStream_fnCopy(IAVIEditStream*iface,LONG*plStart, if (pEdit == NULL) return AVIERR_MEMORY; - hr = IAVIEditStream_Paste((PAVIEDITSTREAM)pEdit,&start,plLength, - (PAVISTREAM)&This->iAVIStream,*plStart, - *plStart + *plLength); + hr = IAVIEditStream_Paste((PAVIEDITSTREAM)pEdit, &start, plLength, &This->IAVIStream_iface, + *plStart, *plStart + *plLength); *plStart = start; if (FAILED(hr)) IAVIEditStream_Release((PAVIEDITSTREAM)pEdit); else - *ppResult = (PAVISTREAM)&pEdit->iAVIStream; + *ppResult = &This->IAVIStream_iface; return hr; } @@ -542,9 +418,8 @@ static HRESULT WINAPI IAVIEditStream_fnPaste(IAVIEditStream*iface,LONG*plStart, LONG*plLength,PAVISTREAM pSource, LONG lStart,LONG lLength) { - IAVIEditStreamImpl *This = (IAVIEditStreamImpl *)iface; + IAVIEditStreamImpl *This = impl_from_IAVIEditStream(iface); AVISTREAMINFOW srcInfo; - IEditStreamInternal*pInternal = NULL; IAVIEditStreamImpl *pEdit = NULL; PAVISTREAM pStream; DWORD startPos, endPos, streamNr, nStreams; @@ -589,7 +464,7 @@ static HRESULT WINAPI IAVIEditStream_fnPaste(IAVIEditStream*iface,LONG*plStart, if (size != This->sInfo.rcFrame.bottom - This->sInfo.rcFrame.top) return AVIERR_UNSUPPORTED; /* FIXME: Can't GetFrame convert it? */ } else if (srcInfo.fccType == streamtypeAUDIO) { - if (! AVIFILE_FormatsEqual((PAVISTREAM)&This->iAVIStream, pSource)) + if (!AVIFILE_FormatsEqual(&This->IAVIStream_iface, pSource)) return AVIERR_UNSUPPORTED; } else { /* FIXME: streamtypeMIDI and streamtypeTEXT */ @@ -597,11 +472,8 @@ static HRESULT WINAPI IAVIEditStream_fnPaste(IAVIEditStream*iface,LONG*plStart, } /* try to get an IEditStreamInternal interface */ - if (SUCCEEDED(IAVIStream_QueryInterface(pSource, &IID_IEditStreamInternal, - (LPVOID*)&pInternal))) { - pInternal->lpVtbl->GetEditStreamImpl(pInternal, (LPVOID*)&pEdit); - pInternal->lpVtbl->Release(pInternal); - } + if (SUCCEEDED(IAVIStream_QueryInterface(pSource, &IID_IEditStreamInternal, (LPVOID*)&pEdit))) + IAVIEditStream_Release(&pEdit->IAVIEditStream_iface); /* pSource holds a reference */ /* for video must check for change of format */ if (This->sInfo.fccType == streamtypeVIDEO) { @@ -614,8 +486,8 @@ static HRESULT WINAPI IAVIEditStream_fnPaste(IAVIEditStream*iface,LONG*plStart, */ if ((pEdit != NULL && pEdit->bDecompress) || AVIStreamNearestKeyFrame(pSource, lStart) != lStart || - AVIStreamNearestKeyFrame((PAVISTREAM)&This->iAVIStream, *plStart) != *plStart || - (This->nStreams > 0 && !AVIFILE_FormatsEqual((PAVISTREAM)&This->iAVIStream, pSource))) { + AVIStreamNearestKeyFrame(&This->IAVIStream_iface, *plStart) != *plStart || + (This->nStreams > 0 && !AVIFILE_FormatsEqual(&This->IAVIStream_iface, pSource))) { /* Use first stream part to get format to convert everything to */ AVIFILE_ReadFrame(This, This->pStreams[0].pStream, This->pStreams[0].dwStart); @@ -733,7 +605,7 @@ static HRESULT WINAPI IAVIEditStream_fnPaste(IAVIEditStream*iface,LONG*plStart, static HRESULT WINAPI IAVIEditStream_fnClone(IAVIEditStream*iface, PAVISTREAM*ppResult) { - IAVIEditStreamImpl *This = (IAVIEditStreamImpl *)iface; + IAVIEditStreamImpl *This = impl_from_IAVIEditStream(iface); IAVIEditStreamImpl* pEdit; DWORD i; @@ -762,7 +634,7 @@ static HRESULT WINAPI IAVIEditStream_fnClone(IAVIEditStream*iface, IAVIStream_AddRef(pEdit->pStreams[i].pStream); } - *ppResult = (PAVISTREAM)&pEdit->iAVIStream; + *ppResult = &This->IAVIStream_iface; return AVIERR_OK; } @@ -770,28 +642,20 @@ static HRESULT WINAPI IAVIEditStream_fnClone(IAVIEditStream*iface, static HRESULT WINAPI IAVIEditStream_fnSetInfo(IAVIEditStream*iface, LPAVISTREAMINFOW asi,LONG size) { - IAVIEditStreamImpl *This = (IAVIEditStreamImpl *)iface; + IAVIEditStreamImpl *This = impl_from_IAVIEditStream(iface); TRACE("(%p,%p,%d)\n",iface,asi,size); /* check parameters */ - if (asi == NULL) - return AVIERR_BADPARAM; - if (size != sizeof(AVISTREAMINFOW)) + if (size >= 0 && size < sizeof(AVISTREAMINFOW)) return AVIERR_BADSIZE; - if (asi->dwScale == 0 || asi->dwRate == 0 || (LONG)asi->dwQuality < -1 || - asi->dwQuality > ICQUALITY_HIGH) - return AVIERR_ERROR; This->sInfo.wLanguage = asi->wLanguage; This->sInfo.wPriority = asi->wPriority; This->sInfo.dwStart = asi->dwStart; - if (asi->dwRate != 0) - This->sInfo.dwRate = asi->dwRate; - if (asi->dwScale != 0) - This->sInfo.dwScale = asi->dwScale; - if (asi->dwQuality <= ICQUALITY_HIGH) - This->sInfo.dwQuality = ICQUALITY_HIGH; + This->sInfo.dwRate = asi->dwRate; + This->sInfo.dwScale = asi->dwScale; + This->sInfo.dwQuality = asi->dwQuality; CopyRect(&This->sInfo.rcFrame, &asi->rcFrame); memcpy(This->sInfo.szName, asi->szName, sizeof(asi->szName)); This->sInfo.dwEditCount++; @@ -799,38 +663,40 @@ static HRESULT WINAPI IAVIEditStream_fnSetInfo(IAVIEditStream*iface, return AVIERR_OK; } +static const struct IAVIEditStreamVtbl ieditstream = { + IAVIEditStream_fnQueryInterface, + IAVIEditStream_fnAddRef, + IAVIEditStream_fnRelease, + IAVIEditStream_fnCut, + IAVIEditStream_fnCopy, + IAVIEditStream_fnPaste, + IAVIEditStream_fnClone, + IAVIEditStream_fnSetInfo +}; + static HRESULT WINAPI IEditAVIStream_fnQueryInterface(IAVIStream*iface, REFIID refiid,LPVOID*obj) { - IEditAVIStreamImpl *This = (IEditAVIStreamImpl *)iface; - - assert(This->pae != NULL); - - return IAVIEditStream_QueryInterface((IAVIEditStream*)This->pae,refiid,obj); + IAVIEditStreamImpl *This = impl_from_IAVIStream( iface ); + return IAVIEditStream_QueryInterface(&This->IAVIEditStream_iface,refiid,obj); } static ULONG WINAPI IEditAVIStream_fnAddRef(IAVIStream*iface) { - IEditAVIStreamImpl *This = (IEditAVIStreamImpl *)iface; - - assert(This->pae != NULL); - - return IAVIEditStream_AddRef((IAVIEditStream*)This->pae); + IAVIEditStreamImpl *This = impl_from_IAVIStream( iface ); + return IAVIEditStream_AddRef(&This->IAVIEditStream_iface); } static ULONG WINAPI IEditAVIStream_fnRelease(IAVIStream*iface) { - IEditAVIStreamImpl *This = (IEditAVIStreamImpl *)iface; - - assert(This->pae != NULL); - - return IAVIEditStream_Release((IAVIEditStream*)This->pae); + IAVIEditStreamImpl *This = impl_from_IAVIStream( iface ); + return IAVIEditStream_Release(&This->IAVIEditStream_iface); } static HRESULT WINAPI IEditAVIStream_fnCreate(IAVIStream*iface, LPARAM lParam1,LPARAM lParam2) { - IAVIEditStreamImpl *This = ((IEditAVIStreamImpl*)iface)->pae; + IAVIEditStreamImpl *This = impl_from_IAVIStream( iface ); if (lParam2 != 0) return AVIERR_ERROR; @@ -856,23 +722,21 @@ static HRESULT WINAPI IEditAVIStream_fnCreate(IAVIStream*iface, static HRESULT WINAPI IEditAVIStream_fnInfo(IAVIStream*iface, AVISTREAMINFOW *psi,LONG size) { - IEditAVIStreamImpl *This = (IEditAVIStreamImpl *)iface; + IAVIEditStreamImpl *This = impl_from_IAVIStream( iface ); TRACE("(%p,%p,%d)\n",iface,psi,size); - assert(This->pae != NULL); - if (psi == NULL) return AVIERR_BADPARAM; if (size < 0) return AVIERR_BADSIZE; - if (This->pae->bDecompress) - This->pae->sInfo.fccHandler = 0; + if (This->bDecompress) + This->sInfo.fccHandler = 0; - memcpy(psi, &This->pae->sInfo, min((DWORD)size, sizeof(This->pae->sInfo))); + memcpy(psi, &This->sInfo, min((DWORD)size, sizeof(This->sInfo))); - if ((DWORD)size < sizeof(This->pae->sInfo)) + if ((DWORD)size < sizeof(This->sInfo)) return AVIERR_BUFFERTOOSMALL; return AVIERR_OK; } @@ -880,7 +744,7 @@ static HRESULT WINAPI IEditAVIStream_fnInfo(IAVIStream*iface, static LONG WINAPI IEditAVIStream_fnFindSample(IAVIStream*iface,LONG pos, LONG flags) { - IAVIEditStreamImpl* const This = ((IEditAVIStreamImpl* const)iface)->pae; + IAVIEditStreamImpl *This = impl_from_IAVIStream( iface ); PAVISTREAM stream; DWORD streamPos, streamNr; @@ -915,7 +779,7 @@ static LONG WINAPI IEditAVIStream_fnFindSample(IAVIStream*iface,LONG pos, static HRESULT WINAPI IEditAVIStream_fnReadFormat(IAVIStream*iface,LONG pos, LPVOID format,LONG*fmtsize) { - IAVIEditStreamImpl* const This = ((IEditAVIStreamImpl* const)iface)->pae; + IAVIEditStreamImpl *This = impl_from_IAVIStream( iface ); LPBITMAPINFOHEADER lp; PAVISTREAM stream; DWORD n; @@ -965,7 +829,7 @@ static HRESULT WINAPI IEditAVIStream_fnRead(IAVIStream*iface,LONG start, LONG buffersize,LONG*bytesread, LONG*samplesread) { - IAVIEditStreamImpl* const This = ((IEditAVIStreamImpl* const)iface)->pae; + IAVIEditStreamImpl *This = impl_from_IAVIStream( iface ); PAVISTREAM stream; DWORD streamPos, streamNr; LONG readBytes, readSamples, count; @@ -1076,17 +940,17 @@ static HRESULT WINAPI IEditAVIStream_fnWrite(IAVIStream*iface,LONG start, static HRESULT WINAPI IEditAVIStream_fnDelete(IAVIStream*iface,LONG start, LONG samples) { - IEditAVIStreamImpl *This = (IEditAVIStreamImpl *)iface; + IAVIEditStreamImpl *This = impl_from_IAVIStream( iface ); TRACE("(%p,%d,%d)\n",iface,start,samples); - return IAVIEditStream_Cut((IAVIEditStream*)This->pae,&start,&samples,NULL); + return IAVIEditStream_Cut(&This->IAVIEditStream_iface,&start,&samples,NULL); } static HRESULT WINAPI IEditAVIStream_fnReadData(IAVIStream*iface,DWORD fcc, LPVOID lp,LONG *lpread) { - IAVIEditStreamImpl* const This = ((IEditAVIStreamImpl* const)iface)->pae; + IAVIEditStreamImpl *This = impl_from_IAVIStream( iface ); DWORD n; TRACE("(%p,0x%08X,%p,%p)\n",iface,fcc,lp,lpread); @@ -1118,49 +982,43 @@ static HRESULT WINAPI IEditAVIStream_fnWriteData(IAVIStream*iface,DWORD fcc, static HRESULT WINAPI IEditAVIStream_fnSetInfo(IAVIStream*iface, AVISTREAMINFOW*info,LONG len) { - IEditAVIStreamImpl *This = (IEditAVIStreamImpl *)iface; + IAVIEditStreamImpl *This = impl_from_IAVIStream( iface ); TRACE("(%p,%p,%d)\n",iface,info,len); - return IAVIEditStream_SetInfo((IAVIEditStream*)This->pae,info,len); + return IAVIEditStream_SetInfo(&This->IAVIEditStream_iface,info,len); } -static HRESULT WINAPI IEditStreamInternal_fnQueryInterface(IEditStreamInternal*iface,REFIID refiid,LPVOID*obj) +static const struct IAVIStreamVtbl ieditstast = { + IEditAVIStream_fnQueryInterface, + IEditAVIStream_fnAddRef, + IEditAVIStream_fnRelease, + IEditAVIStream_fnCreate, + IEditAVIStream_fnInfo, + IEditAVIStream_fnFindSample, + IEditAVIStream_fnReadFormat, + IEditAVIStream_fnSetFormat, + IEditAVIStream_fnRead, + IEditAVIStream_fnWrite, + IEditAVIStream_fnDelete, + IEditAVIStream_fnReadData, + IEditAVIStream_fnWriteData, + IEditAVIStream_fnSetInfo +}; + +PAVIEDITSTREAM AVIFILE_CreateEditStream(PAVISTREAM pstream) { - IEditStreamInternalImpl *This = (IEditStreamInternalImpl *)iface; + IAVIEditStreamImpl *pedit = NULL; - assert(This->pae != NULL); + pedit = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IAVIEditStreamImpl)); + if (pedit == NULL) + return NULL; - return IAVIEditStream_QueryInterface((IAVIEditStream*)This->pae, refiid, obj); -} - -static ULONG WINAPI IEditStreamInternal_fnAddRef(IEditStreamInternal*iface) -{ - IEditStreamInternalImpl *This = (IEditStreamInternalImpl *)iface; - - assert(This->pae != NULL); - - return IAVIEditStream_AddRef((IAVIEditStream*)This->pae); -} - -static ULONG WINAPI IEditStreamInternal_fnRelease(IEditStreamInternal*iface) -{ - IEditStreamInternalImpl *This = (IEditStreamInternalImpl *)iface; - - assert(This->pae != NULL); - - return IAVIEditStream_Release((IAVIEditStream*)This->pae); -} - -static HRESULT WINAPI IEditStreamInternal_fnGetEditStreamImpl(IEditStreamInternal*iface,LPVOID*ppimpl) -{ - IEditStreamInternalImpl *This = (IEditStreamInternalImpl *)iface; - - TRACE("(%p,%p) -> %p\n", iface, ppimpl, This->pae); - - assert(This->pae != NULL); - assert(ppimpl != NULL); - - *ppimpl = This->pae; - return AVIERR_OK; + pedit->IAVIEditStream_iface.lpVtbl = &ieditstream; + pedit->IAVIStream_iface.lpVtbl = &ieditstast; + pedit->ref = 1; + + IAVIStream_Create(&pedit->IAVIStream_iface, (LPARAM)pstream, 0); + + return (PAVIEDITSTREAM)pedit; } diff --git a/reactos/dll/win32/avifil32/extrachunk.h b/reactos/dll/win32/avifil32/extrachunk.h index 1eda7ef33c3..843a73c7b59 100644 --- a/reactos/dll/win32/avifil32/extrachunk.h +++ b/reactos/dll/win32/avifil32/extrachunk.h @@ -35,18 +35,18 @@ typedef struct _EXTRACHUNKS { } EXTRACHUNKS, *LPEXTRACHUNKS; /* reads a chunk outof the extrachunk-structure */ -HRESULT ReadExtraChunk(const EXTRACHUNKS *extra,FOURCC ckid,LPVOID lp,LPLONG size); +HRESULT ReadExtraChunk(const EXTRACHUNKS *extra,FOURCC ckid,LPVOID lp,LPLONG size) DECLSPEC_HIDDEN; /* writes a chunk into the extrachunk-structure */ -HRESULT WriteExtraChunk(LPEXTRACHUNKS extra,FOURCC ckid,LPCVOID lp,LONG size); +HRESULT WriteExtraChunk(LPEXTRACHUNKS extra,FOURCC ckid,LPCVOID lp,LONG size) DECLSPEC_HIDDEN; /* reads a chunk fomr the HMMIO into the extrachunk-structure */ -HRESULT ReadChunkIntoExtra(LPEXTRACHUNKS extra,HMMIO hmmio,const MMCKINFO *lpck); +HRESULT ReadChunkIntoExtra(LPEXTRACHUNKS extra,HMMIO hmmio,const MMCKINFO *lpck) DECLSPEC_HIDDEN; /* reads all non-junk chunks into the extrachunk-structure until it finds * the given chunk or the optional parent-chunk is at the end */ HRESULT FindChunkAndKeepExtras(LPEXTRACHUNKS extra,HMMIO hmmio, - MMCKINFO *lpck,MMCKINFO *lpckParent,UINT flags); + MMCKINFO *lpck,MMCKINFO *lpckParent,UINT flags) DECLSPEC_HIDDEN; #ifdef __cplusplus } diff --git a/reactos/dll/win32/avifil32/factory.c b/reactos/dll/win32/avifil32/factory.c index d1246e8e99c..295f11fd986 100644 --- a/reactos/dll/win32/avifil32/factory.c +++ b/reactos/dll/win32/avifil32/factory.c @@ -26,6 +26,7 @@ #include "winuser.h" #include "winerror.h" #include "ole2.h" +#include "rpcproxy.h" #include "initguid.h" #include "vfw.h" @@ -57,12 +58,17 @@ static const IClassFactoryVtbl iclassfact = { typedef struct { /* IUnknown fields */ - const IClassFactoryVtbl *lpVtbl; + IClassFactory IClassFactory_iface; DWORD dwRef; CLSID clsid; } IClassFactoryImpl; +static inline IClassFactoryImpl *impl_from_IClassFactory(IClassFactory *iface) +{ + return CONTAINING_RECORD(iface, IClassFactoryImpl, IClassFactory_iface); +} + static HRESULT AVIFILE_CreateClassFactory(const CLSID *pclsid, const IID *riid, LPVOID *ppv) { @@ -75,11 +81,11 @@ static HRESULT AVIFILE_CreateClassFactory(const CLSID *pclsid, const IID *riid, if (pClassFactory == NULL) return E_OUTOFMEMORY; - pClassFactory->lpVtbl = &iclassfact; + pClassFactory->IClassFactory_iface.lpVtbl = &iclassfact; pClassFactory->dwRef = 0; pClassFactory->clsid = *pclsid; - hr = IClassFactory_QueryInterface((IClassFactory*)pClassFactory, riid, ppv); + hr = IClassFactory_QueryInterface(&pClassFactory->IClassFactory_iface, riid, ppv); if (FAILED(hr)) { HeapFree(GetProcessHeap(), 0, pClassFactory); *ppv = NULL; @@ -105,7 +111,7 @@ static HRESULT WINAPI IClassFactory_fnQueryInterface(LPCLASSFACTORY iface, static ULONG WINAPI IClassFactory_fnAddRef(LPCLASSFACTORY iface) { - IClassFactoryImpl *This = (IClassFactoryImpl *)iface; + IClassFactoryImpl *This = impl_from_IClassFactory(iface); TRACE("(%p)\n", iface); @@ -114,7 +120,7 @@ static ULONG WINAPI IClassFactory_fnAddRef(LPCLASSFACTORY iface) static ULONG WINAPI IClassFactory_fnRelease(LPCLASSFACTORY iface) { - IClassFactoryImpl *This = (IClassFactoryImpl *)iface; + IClassFactoryImpl *This = impl_from_IClassFactory(iface); TRACE("(%p)\n", iface); if ((--(This->dwRef)) > 0) @@ -129,7 +135,7 @@ static HRESULT WINAPI IClassFactory_fnCreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid,LPVOID *ppobj) { - IClassFactoryImpl *This = (IClassFactoryImpl *)iface; + IClassFactoryImpl *This = impl_from_IClassFactory(iface); TRACE("(%p,%p,%s,%p)\n", iface, pOuter, debugstr_guid(riid), ppobj); @@ -216,3 +222,19 @@ BOOL WINAPI DllMain(HINSTANCE hInstDll, DWORD fdwReason, LPVOID lpvReserved) return TRUE; } + +/*********************************************************************** + * DllRegisterServer (AVIFIL32.@) + */ +HRESULT WINAPI DllRegisterServer(void) +{ + return __wine_register_resources( AVIFILE_hModule ); +} + +/*********************************************************************** + * DllUnregisterServer (AVIFIL32.@) + */ +HRESULT WINAPI DllUnregisterServer(void) +{ + return __wine_unregister_resources( AVIFILE_hModule ); +} diff --git a/reactos/dll/win32/avifil32/getframe.c b/reactos/dll/win32/avifil32/getframe.c index db05f853920..547f3401d17 100644 --- a/reactos/dll/win32/avifil32/getframe.c +++ b/reactos/dll/win32/avifil32/getframe.c @@ -37,32 +37,9 @@ WINE_DEFAULT_DEBUG_CHANNEL(avifile); /***********************************************************************/ -static HRESULT WINAPI IGetFrame_fnQueryInterface(IGetFrame *iface, - REFIID refiid, LPVOID *obj); -static ULONG WINAPI IGetFrame_fnAddRef(IGetFrame *iface); -static ULONG WINAPI IGetFrame_fnRelease(IGetFrame *iface); -static LPVOID WINAPI IGetFrame_fnGetFrame(IGetFrame *iface, LONG lPos); -static HRESULT WINAPI IGetFrame_fnBegin(IGetFrame *iface, LONG lStart, - LONG lEnd, LONG lRate); -static HRESULT WINAPI IGetFrame_fnEnd(IGetFrame *iface); -static HRESULT WINAPI IGetFrame_fnSetFormat(IGetFrame *iface, - LPBITMAPINFOHEADER lpbi, - LPVOID lpBits, INT x, INT y, - INT dx, INT dy); - -static const struct IGetFrameVtbl igetframeVtbl = { - IGetFrame_fnQueryInterface, - IGetFrame_fnAddRef, - IGetFrame_fnRelease, - IGetFrame_fnGetFrame, - IGetFrame_fnBegin, - IGetFrame_fnEnd, - IGetFrame_fnSetFormat -}; - typedef struct _IGetFrameImpl { /* IUnknown stuff */ - const IGetFrameVtbl *lpVtbl; + IGetFrame IGetFrame_iface; LONG ref; /* IGetFrame stuff */ @@ -92,6 +69,11 @@ typedef struct _IGetFrameImpl { /***********************************************************************/ +static inline IGetFrameImpl *impl_from_IGetFrame(IGetFrame *iface) +{ + return CONTAINING_RECORD(iface, IGetFrameImpl, IGetFrame_iface); +} + static void AVIFILE_CloseCompressor(IGetFrameImpl *This) { if (This->lpInFormat != This->lpOutFormat) { @@ -110,30 +92,10 @@ static void AVIFILE_CloseCompressor(IGetFrameImpl *This) } } -PGETFRAME AVIFILE_CreateGetFrame(PAVISTREAM pStream) -{ - IGetFrameImpl *pg; - - /* check parameter */ - if (pStream == NULL) - return NULL; - - pg = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IGetFrameImpl)); - if (pg != NULL) { - pg->lpVtbl = &igetframeVtbl; - pg->ref = 1; - pg->lCurrentFrame = -1; - pg->pStream = pStream; - IAVIStream_AddRef(pStream); - } - - return (PGETFRAME)pg; -} - static HRESULT WINAPI IGetFrame_fnQueryInterface(IGetFrame *iface, REFIID refiid, LPVOID *obj) { - IGetFrameImpl *This = (IGetFrameImpl *)iface; + IGetFrameImpl *This = impl_from_IGetFrame(iface); TRACE("(%p,%s,%p)\n", This, debugstr_guid(refiid), obj); @@ -149,7 +111,7 @@ static HRESULT WINAPI IGetFrame_fnQueryInterface(IGetFrame *iface, static ULONG WINAPI IGetFrame_fnAddRef(IGetFrame *iface) { - IGetFrameImpl *This = (IGetFrameImpl *)iface; + IGetFrameImpl *This = impl_from_IGetFrame(iface); ULONG ref = InterlockedIncrement(&This->ref); TRACE("(%p)\n", iface); @@ -159,7 +121,7 @@ static ULONG WINAPI IGetFrame_fnAddRef(IGetFrame *iface) static ULONG WINAPI IGetFrame_fnRelease(IGetFrame *iface) { - IGetFrameImpl *This = (IGetFrameImpl *)iface; + IGetFrameImpl *This = impl_from_IGetFrame(iface); ULONG ref = InterlockedDecrement(&This->ref); TRACE("(%p)\n", iface); @@ -180,7 +142,7 @@ static ULONG WINAPI IGetFrame_fnRelease(IGetFrame *iface) static LPVOID WINAPI IGetFrame_fnGetFrame(IGetFrame *iface, LONG lPos) { - IGetFrameImpl *This = (IGetFrameImpl *)iface; + IGetFrameImpl *This = impl_from_IGetFrame(iface); LONG readBytes; LONG readSamples; @@ -253,7 +215,7 @@ static LPVOID WINAPI IGetFrame_fnGetFrame(IGetFrame *iface, LONG lPos) if (FAILED(AVIStreamSampleSize(This->pStream, lNext, &readBytes))) return NULL; /* bad thing, but bad things will happen */ if (readBytes <= 0) { - ERR(": IAVIStream::REad doesn't return needed bytes!\n"); + ERR(": IAVIStream::Read doesn't return needed bytes!\n"); return NULL; } @@ -299,7 +261,7 @@ static LPVOID WINAPI IGetFrame_fnGetFrame(IGetFrame *iface, LONG lPos) static HRESULT WINAPI IGetFrame_fnBegin(IGetFrame *iface, LONG lStart, LONG lEnd, LONG lRate) { - IGetFrameImpl *This = (IGetFrameImpl *)iface; + IGetFrameImpl *This = impl_from_IGetFrame(iface); TRACE("(%p,%d,%d,%d)\n", iface, lStart, lEnd, lRate); @@ -310,7 +272,7 @@ static HRESULT WINAPI IGetFrame_fnBegin(IGetFrame *iface, LONG lStart, static HRESULT WINAPI IGetFrame_fnEnd(IGetFrame *iface) { - IGetFrameImpl *This = (IGetFrameImpl *)iface; + IGetFrameImpl *This = impl_from_IGetFrame(iface); TRACE("(%p)\n", iface); @@ -324,7 +286,7 @@ static HRESULT WINAPI IGetFrame_fnSetFormat(IGetFrame *iface, LPVOID lpBits, INT x, INT y, INT dx, INT dy) { - IGetFrameImpl *This = (IGetFrameImpl *)iface; + IGetFrameImpl *This = impl_from_IGetFrame(iface); AVISTREAMINFOW sInfo; LPBITMAPINFOHEADER lpbi = lpbiWanted; @@ -516,4 +478,34 @@ static HRESULT WINAPI IGetFrame_fnSetFormat(IGetFrame *iface, } } +static const struct IGetFrameVtbl igetframeVtbl = { + IGetFrame_fnQueryInterface, + IGetFrame_fnAddRef, + IGetFrame_fnRelease, + IGetFrame_fnGetFrame, + IGetFrame_fnBegin, + IGetFrame_fnEnd, + IGetFrame_fnSetFormat +}; + +PGETFRAME AVIFILE_CreateGetFrame(PAVISTREAM pStream) +{ + IGetFrameImpl *pg; + + /* check parameter */ + if (pStream == NULL) + return NULL; + + pg = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IGetFrameImpl)); + if (pg != NULL) { + pg->IGetFrame_iface.lpVtbl = &igetframeVtbl; + pg->ref = 1; + pg->lCurrentFrame = -1; + pg->pStream = pStream; + IAVIStream_AddRef(pStream); + } + + return (PGETFRAME)pg; +} + /***********************************************************************/ diff --git a/reactos/dll/win32/avifil32/icmstream.c b/reactos/dll/win32/avifil32/icmstream.c index dba120bd8eb..31dd2bebbd8 100644 --- a/reactos/dll/win32/avifil32/icmstream.c +++ b/reactos/dll/win32/avifil32/icmstream.c @@ -38,42 +38,10 @@ WINE_DEFAULT_DEBUG_CHANNEL(avifile); /***********************************************************************/ -static HRESULT WINAPI ICMStream_fnQueryInterface(IAVIStream*iface,REFIID refiid,LPVOID *obj); -static ULONG WINAPI ICMStream_fnAddRef(IAVIStream*iface); -static ULONG WINAPI ICMStream_fnRelease(IAVIStream* iface); -static HRESULT WINAPI ICMStream_fnCreate(IAVIStream*iface,LPARAM lParam1,LPARAM lParam2); -static HRESULT WINAPI ICMStream_fnInfo(IAVIStream*iface,AVISTREAMINFOW *psi,LONG size); -static LONG WINAPI ICMStream_fnFindSample(IAVIStream*iface,LONG pos,LONG flags); -static HRESULT WINAPI ICMStream_fnReadFormat(IAVIStream*iface,LONG pos,LPVOID format,LONG *formatsize); -static HRESULT WINAPI ICMStream_fnSetFormat(IAVIStream*iface,LONG pos,LPVOID format,LONG formatsize); -static HRESULT WINAPI ICMStream_fnRead(IAVIStream*iface,LONG start,LONG samples,LPVOID buffer,LONG buffersize,LONG *bytesread,LONG *samplesread); -static HRESULT WINAPI ICMStream_fnWrite(IAVIStream*iface,LONG start,LONG samples,LPVOID buffer,LONG buffersize,DWORD flags,LONG *sampwritten,LONG *byteswritten); -static HRESULT WINAPI ICMStream_fnDelete(IAVIStream*iface,LONG start,LONG samples); -static HRESULT WINAPI ICMStream_fnReadData(IAVIStream*iface,DWORD fcc,LPVOID lp,LONG *lpread); -static HRESULT WINAPI ICMStream_fnWriteData(IAVIStream*iface,DWORD fcc,LPVOID lp,LONG size); -static HRESULT WINAPI ICMStream_fnSetInfo(IAVIStream*iface,AVISTREAMINFOW*info,LONG infolen); - -static const struct IAVIStreamVtbl iicmst = { - ICMStream_fnQueryInterface, - ICMStream_fnAddRef, - ICMStream_fnRelease, - ICMStream_fnCreate, - ICMStream_fnInfo, - ICMStream_fnFindSample, - ICMStream_fnReadFormat, - ICMStream_fnSetFormat, - ICMStream_fnRead, - ICMStream_fnWrite, - ICMStream_fnDelete, - ICMStream_fnReadData, - ICMStream_fnWriteData, - ICMStream_fnSetInfo -}; - typedef struct _IAVIStreamImpl { /* IUnknown stuff */ - const IAVIStreamVtbl *lpVtbl; - LONG ref; + IAVIStream IAVIStream_iface; + LONG ref; /* IAVIStream stuff */ PAVISTREAM pStream; @@ -107,6 +75,11 @@ static HRESULT AVIFILE_EncodeFrame(IAVIStreamImpl *This, LPBITMAPINFOHEADER lpbi, LPVOID lpBits); static HRESULT AVIFILE_OpenGetFrame(IAVIStreamImpl *This); +static inline IAVIStreamImpl *impl_from_IAVIStream(IAVIStream *iface) +{ + return CONTAINING_RECORD(iface, IAVIStreamImpl, IAVIStream_iface); +} + static inline void AVIFILE_Reset(IAVIStreamImpl *This) { This->lCurrent = -1; @@ -115,33 +88,10 @@ static inline void AVIFILE_Reset(IAVIStreamImpl *This) This->dwUnusedBytes = 0; } -HRESULT AVIFILE_CreateICMStream(REFIID riid, LPVOID *ppv) -{ - IAVIStreamImpl *pstream; - HRESULT hr; - - assert(riid != NULL && ppv != NULL); - - *ppv = NULL; - - pstream = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IAVIStreamImpl)); - if (pstream == NULL) - return AVIERR_MEMORY; - - pstream->lpVtbl = &iicmst; - AVIFILE_Reset(pstream); - - hr = IAVIStream_QueryInterface((IAVIStream*)pstream, riid, ppv); - if (FAILED(hr)) - HeapFree(GetProcessHeap(), 0, pstream); - - return hr; -} - static HRESULT WINAPI ICMStream_fnQueryInterface(IAVIStream *iface, REFIID refiid, LPVOID *obj) { - IAVIStreamImpl *This = (IAVIStreamImpl *)iface; + IAVIStreamImpl *This = impl_from_IAVIStream(iface); TRACE("(%p,%s,%p)\n", iface, debugstr_guid(refiid), obj); @@ -158,7 +108,7 @@ static HRESULT WINAPI ICMStream_fnQueryInterface(IAVIStream *iface, static ULONG WINAPI ICMStream_fnAddRef(IAVIStream *iface) { - IAVIStreamImpl *This = (IAVIStreamImpl *)iface; + IAVIStreamImpl *This = impl_from_IAVIStream(iface); ULONG ref = InterlockedIncrement(&This->ref); TRACE("(%p) -> %d\n", iface, ref); @@ -172,7 +122,7 @@ static ULONG WINAPI ICMStream_fnAddRef(IAVIStream *iface) static ULONG WINAPI ICMStream_fnRelease(IAVIStream* iface) { - IAVIStreamImpl *This = (IAVIStreamImpl *)iface; + IAVIStreamImpl *This = impl_from_IAVIStream(iface); ULONG ref = InterlockedDecrement(&This->ref); TRACE("(%p) -> %d\n", iface, ref); @@ -231,7 +181,7 @@ static ULONG WINAPI ICMStream_fnRelease(IAVIStream* iface) static HRESULT WINAPI ICMStream_fnCreate(IAVIStream *iface, LPARAM lParam1, LPARAM lParam2) { - IAVIStreamImpl *This = (IAVIStreamImpl *)iface; + IAVIStreamImpl *This = impl_from_IAVIStream(iface); ICINFO icinfo; ICCOMPRESSFRAMES icFrames; @@ -320,7 +270,7 @@ static HRESULT WINAPI ICMStream_fnCreate(IAVIStream *iface, LPARAM lParam1, static HRESULT WINAPI ICMStream_fnInfo(IAVIStream *iface,LPAVISTREAMINFOW psi, LONG size) { - IAVIStreamImpl *This = (IAVIStreamImpl *)iface; + IAVIStreamImpl *This = impl_from_IAVIStream(iface); TRACE("(%p,%p,%d)\n", iface, psi, size); @@ -339,7 +289,7 @@ static HRESULT WINAPI ICMStream_fnInfo(IAVIStream *iface,LPAVISTREAMINFOW psi, static LONG WINAPI ICMStream_fnFindSample(IAVIStream *iface, LONG pos, LONG flags) { - IAVIStreamImpl *This = (IAVIStreamImpl *)iface; + IAVIStreamImpl *This = impl_from_IAVIStream(iface); TRACE("(%p,%d,0x%08X)\n",iface,pos,flags); @@ -376,7 +326,7 @@ static LONG WINAPI ICMStream_fnFindSample(IAVIStream *iface, LONG pos, static HRESULT WINAPI ICMStream_fnReadFormat(IAVIStream *iface, LONG pos, LPVOID format, LONG *formatsize) { - IAVIStreamImpl *This = (IAVIStreamImpl *)iface; + IAVIStreamImpl *This = impl_from_IAVIStream(iface); LPBITMAPINFOHEADER lpbi; HRESULT hr; @@ -427,7 +377,7 @@ static HRESULT WINAPI ICMStream_fnReadFormat(IAVIStream *iface, LONG pos, static HRESULT WINAPI ICMStream_fnSetFormat(IAVIStream *iface, LONG pos, LPVOID format, LONG formatsize) { - IAVIStreamImpl *This = (IAVIStreamImpl *)iface; + IAVIStreamImpl *This = impl_from_IAVIStream(iface); TRACE("(%p,%d,%p,%d)\n", iface, pos, format, formatsize); @@ -579,7 +529,7 @@ static HRESULT WINAPI ICMStream_fnRead(IAVIStream *iface, LONG start, LONG buffersize, LPLONG bytesread, LPLONG samplesread) { - IAVIStreamImpl *This = (IAVIStreamImpl *)iface; + IAVIStreamImpl *This = impl_from_IAVIStream(iface); LPBITMAPINFOHEADER lpbi; @@ -673,7 +623,7 @@ static HRESULT WINAPI ICMStream_fnWrite(IAVIStream *iface, LONG start, LPLONG sampwritten, LPLONG byteswritten) { - IAVIStreamImpl *This = (IAVIStreamImpl *)iface; + IAVIStreamImpl *This = impl_from_IAVIStream(iface); HRESULT hr; @@ -718,7 +668,7 @@ static HRESULT WINAPI ICMStream_fnWrite(IAVIStream *iface, LONG start, static HRESULT WINAPI ICMStream_fnDelete(IAVIStream *iface, LONG start, LONG samples) { - IAVIStreamImpl *This = (IAVIStreamImpl *)iface; + IAVIStreamImpl *This = impl_from_IAVIStream(iface); TRACE("(%p,%d,%d)\n", iface, start, samples); @@ -728,7 +678,7 @@ static HRESULT WINAPI ICMStream_fnDelete(IAVIStream *iface, LONG start, static HRESULT WINAPI ICMStream_fnReadData(IAVIStream *iface, DWORD fcc, LPVOID lp, LPLONG lpread) { - IAVIStreamImpl *This = (IAVIStreamImpl *)iface; + IAVIStreamImpl *This = impl_from_IAVIStream(iface); TRACE("(%p,0x%08X,%p,%p)\n", iface, fcc, lp, lpread); @@ -740,7 +690,7 @@ static HRESULT WINAPI ICMStream_fnReadData(IAVIStream *iface, DWORD fcc, static HRESULT WINAPI ICMStream_fnWriteData(IAVIStream *iface, DWORD fcc, LPVOID lp, LONG size) { - IAVIStreamImpl *This = (IAVIStreamImpl *)iface; + IAVIStreamImpl *This = impl_from_IAVIStream(iface); TRACE("(%p,0x%08x,%p,%d)\n", iface, fcc, lp, size); @@ -757,6 +707,46 @@ static HRESULT WINAPI ICMStream_fnSetInfo(IAVIStream *iface, return E_FAIL; } +static const struct IAVIStreamVtbl iicmst = { + ICMStream_fnQueryInterface, + ICMStream_fnAddRef, + ICMStream_fnRelease, + ICMStream_fnCreate, + ICMStream_fnInfo, + ICMStream_fnFindSample, + ICMStream_fnReadFormat, + ICMStream_fnSetFormat, + ICMStream_fnRead, + ICMStream_fnWrite, + ICMStream_fnDelete, + ICMStream_fnReadData, + ICMStream_fnWriteData, + ICMStream_fnSetInfo +}; + +HRESULT AVIFILE_CreateICMStream(REFIID riid, LPVOID *ppv) +{ + IAVIStreamImpl *pstream; + HRESULT hr; + + assert(riid != NULL && ppv != NULL); + + *ppv = NULL; + + pstream = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IAVIStreamImpl)); + if (pstream == NULL) + return AVIERR_MEMORY; + + pstream->IAVIStream_iface.lpVtbl = &iicmst; + AVIFILE_Reset(pstream); + + hr = IAVIStream_QueryInterface(&pstream->IAVIStream_iface, riid, ppv); + if (FAILED(hr)) + HeapFree(GetProcessHeap(), 0, pstream); + + return hr; +} + /***********************************************************************/ static HRESULT AVIFILE_EncodeFrame(IAVIStreamImpl *This, diff --git a/reactos/dll/win32/avifil32/regsvr.c b/reactos/dll/win32/avifil32/regsvr.c deleted file mode 100644 index ef642acf3d0..00000000000 --- a/reactos/dll/win32/avifil32/regsvr.c +++ /dev/null @@ -1,516 +0,0 @@ -/* - * self-registerable dll functions for avifile.dll and avifil32.dll - * - * Copyright (C) 2003 John K. Hohm - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include -#include - -#include "windef.h" -#include "winbase.h" -#include "wingdi.h" -#include "winuser.h" -#include "winreg.h" -#include "winerror.h" - -#include "vfw.h" -#include "avifile_private.h" - -#include "wine/debug.h" -#include "wine/unicode.h" - -WINE_DEFAULT_DEBUG_CHANNEL(avifile); - -/* - * Near the bottom of this file are the exported DllRegisterServer and - * DllUnregisterServer, which make all this worthwhile. - */ - -/*********************************************************************** - * interface for self-registering - */ -struct regsvr_interface -{ - IID const *iid; /* NULL for end of list */ - LPCSTR name; /* can be NULL to omit */ - IID const *base_iid; /* can be NULL to omit */ - int num_methods; /* can be <0 to omit */ - CLSID const *ps_clsid; /* can be NULL to omit */ - CLSID const *ps_clsid32; /* can be NULL to omit */ -}; - -static HRESULT register_interfaces(struct regsvr_interface const *list); -static HRESULT unregister_interfaces(struct regsvr_interface const *list); - -struct regsvr_coclass -{ - CLSID const *clsid; /* NULL for end of list */ - LPCSTR name; /* can be NULL to omit */ - LPCSTR ips; /* can be NULL to omit */ - LPCSTR ips32; /* can be NULL to omit */ - LPCSTR ips32_tmodel; /* can be NULL to omit */ - LPCSTR progid; /* can be NULL to omit */ - LPCSTR viprogid; /* can be NULL to omit */ - LPCSTR progid_extra; /* can be NULL to omit */ -}; - -static HRESULT register_coclasses(struct regsvr_coclass const *list); -static HRESULT unregister_coclasses(struct regsvr_coclass const *list); - -/*********************************************************************** - * static string constants - */ -static WCHAR const interface_keyname[10] = { - 'I', 'n', 't', 'e', 'r', 'f', 'a', 'c', 'e', 0 }; -static WCHAR const base_ifa_keyname[14] = { - 'B', 'a', 's', 'e', 'I', 'n', 't', 'e', 'r', 'f', 'a', 'c', - 'e', 0 }; -static WCHAR const num_methods_keyname[11] = { - 'N', 'u', 'm', 'M', 'e', 't', 'h', 'o', 'd', 's', 0 }; -static WCHAR const ps_clsid_keyname[15] = { - 'P', 'r', 'o', 'x', 'y', 'S', 't', 'u', 'b', 'C', 'l', 's', - 'i', 'd', 0 }; -static WCHAR const ps_clsid32_keyname[17] = { - 'P', 'r', 'o', 'x', 'y', 'S', 't', 'u', 'b', 'C', 'l', 's', - 'i', 'd', '3', '2', 0 }; -static WCHAR const clsid_keyname[6] = { - 'C', 'L', 'S', 'I', 'D', 0 }; -static WCHAR const curver_keyname[7] = { - 'C', 'u', 'r', 'V', 'e', 'r', 0 }; -static WCHAR const ips_keyname[13] = { - 'I', 'n', 'P', 'r', 'o', 'c', 'S', 'e', 'r', 'v', 'e', 'r', - 0 }; -static WCHAR const ips32_keyname[15] = { - 'I', 'n', 'P', 'r', 'o', 'c', 'S', 'e', 'r', 'v', 'e', 'r', - '3', '2', 0 }; -static WCHAR const progid_keyname[7] = { - 'P', 'r', 'o', 'g', 'I', 'D', 0 }; -static WCHAR const viprogid_keyname[25] = { - 'V', 'e', 'r', 's', 'i', 'o', 'n', 'I', 'n', 'd', 'e', 'p', - 'e', 'n', 'd', 'e', 'n', 't', 'P', 'r', 'o', 'g', 'I', 'D', - 0 }; -static char const tmodel_valuename[] = "ThreadingModel"; - -/*********************************************************************** - * static helper functions - */ -static LONG register_key_guid(HKEY base, WCHAR const *name, GUID const *guid); -static LONG register_key_defvalueW(HKEY base, WCHAR const *name, - WCHAR const *value); -static LONG register_key_defvalueA(HKEY base, WCHAR const *name, - char const *value); -static LONG register_progid(WCHAR const *clsid, - char const *progid, char const *curver_progid, - char const *name, char const *extra); - -/*********************************************************************** - * register_interfaces - */ -static HRESULT register_interfaces(struct regsvr_interface const *list) -{ - LONG res = ERROR_SUCCESS; - HKEY interface_key; - - res = RegCreateKeyExW(HKEY_CLASSES_ROOT, interface_keyname, 0, NULL, 0, - KEY_READ | KEY_WRITE, NULL, &interface_key, NULL); - if (res != ERROR_SUCCESS) goto error_return; - - for (; res == ERROR_SUCCESS && list->iid; ++list) { - WCHAR buf[39]; - HKEY iid_key; - - StringFromGUID2(list->iid, buf, 39); - res = RegCreateKeyExW(interface_key, buf, 0, NULL, 0, - KEY_READ | KEY_WRITE, NULL, &iid_key, NULL); - if (res != ERROR_SUCCESS) goto error_close_interface_key; - - if (list->name) { - res = RegSetValueExA(iid_key, NULL, 0, REG_SZ, - (CONST BYTE*)(list->name), - strlen(list->name) + 1); - if (res != ERROR_SUCCESS) goto error_close_iid_key; - } - - if (list->base_iid) { - res = register_key_guid(iid_key, base_ifa_keyname, list->base_iid); - if (res != ERROR_SUCCESS) goto error_close_iid_key; - } - - if (0 <= list->num_methods) { - static WCHAR const fmt[3] = { '%', 'd', 0 }; - HKEY key; - - res = RegCreateKeyExW(iid_key, num_methods_keyname, 0, NULL, 0, - KEY_READ | KEY_WRITE, NULL, &key, NULL); - if (res != ERROR_SUCCESS) goto error_close_iid_key; - - sprintfW(buf, fmt, list->num_methods); - res = RegSetValueExW(key, NULL, 0, REG_SZ, - (CONST BYTE*)buf, - (lstrlenW(buf) + 1) * sizeof(WCHAR)); - RegCloseKey(key); - - if (res != ERROR_SUCCESS) goto error_close_iid_key; - } - - if (list->ps_clsid) { - res = register_key_guid(iid_key, ps_clsid_keyname, list->ps_clsid); - if (res != ERROR_SUCCESS) goto error_close_iid_key; - } - - if (list->ps_clsid32) { - res = register_key_guid(iid_key, ps_clsid32_keyname, list->ps_clsid32); - if (res != ERROR_SUCCESS) goto error_close_iid_key; - } - - error_close_iid_key: - RegCloseKey(iid_key); - } - -error_close_interface_key: - RegCloseKey(interface_key); -error_return: - return res != ERROR_SUCCESS ? HRESULT_FROM_WIN32(res) : S_OK; -} - -/*********************************************************************** - * unregister_interfaces - */ -static HRESULT unregister_interfaces(struct regsvr_interface const *list) -{ - LONG res = ERROR_SUCCESS; - HKEY interface_key; - - res = RegOpenKeyExW(HKEY_CLASSES_ROOT, interface_keyname, 0, - KEY_READ | KEY_WRITE, &interface_key); - if (res == ERROR_FILE_NOT_FOUND) return S_OK; - if (res != ERROR_SUCCESS) goto error_return; - - for (; res == ERROR_SUCCESS && list->iid; ++list) { - WCHAR buf[39]; - - StringFromGUID2(list->iid, buf, 39); - res = RegDeleteTreeW(interface_key, buf); - if (res == ERROR_FILE_NOT_FOUND) res = ERROR_SUCCESS; - } - - RegCloseKey(interface_key); -error_return: - return res != ERROR_SUCCESS ? HRESULT_FROM_WIN32(res) : S_OK; -} - -/*********************************************************************** - * register_coclasses - */ -static HRESULT register_coclasses(struct regsvr_coclass const *list) -{ - LONG res = ERROR_SUCCESS; - HKEY coclass_key; - - res = RegCreateKeyExW(HKEY_CLASSES_ROOT, clsid_keyname, 0, NULL, 0, - KEY_READ | KEY_WRITE, NULL, &coclass_key, NULL); - if (res != ERROR_SUCCESS) goto error_return; - - for (; res == ERROR_SUCCESS && list->clsid; ++list) { - WCHAR buf[39]; - HKEY clsid_key; - - StringFromGUID2(list->clsid, buf, 39); - res = RegCreateKeyExW(coclass_key, buf, 0, NULL, 0, - KEY_READ | KEY_WRITE, NULL, &clsid_key, NULL); - if (res != ERROR_SUCCESS) goto error_close_coclass_key; - - if (list->name) { - res = RegSetValueExA(clsid_key, NULL, 0, REG_SZ, - (CONST BYTE*)(list->name), - strlen(list->name) + 1); - if (res != ERROR_SUCCESS) goto error_close_clsid_key; - } - - if (list->ips) { - res = register_key_defvalueA(clsid_key, ips_keyname, list->ips); - if (res != ERROR_SUCCESS) goto error_close_clsid_key; - } - - if (list->ips32) { - HKEY ips32_key; - - res = RegCreateKeyExW(clsid_key, ips32_keyname, 0, NULL, 0, - KEY_READ | KEY_WRITE, NULL, - &ips32_key, NULL); - if (res != ERROR_SUCCESS) goto error_close_clsid_key; - - res = RegSetValueExA(ips32_key, NULL, 0, REG_SZ, - (CONST BYTE*)list->ips32, - lstrlenA(list->ips32) + 1); - if (res == ERROR_SUCCESS && list->ips32_tmodel) - res = RegSetValueExA(ips32_key, tmodel_valuename, 0, REG_SZ, - (CONST BYTE*)list->ips32_tmodel, - strlen(list->ips32_tmodel) + 1); - RegCloseKey(ips32_key); - if (res != ERROR_SUCCESS) goto error_close_clsid_key; - } - - if (list->progid) { - res = register_key_defvalueA(clsid_key, progid_keyname, - list->progid); - if (res != ERROR_SUCCESS) goto error_close_clsid_key; - - res = register_progid(buf, list->progid, NULL, - list->name, list->progid_extra); - if (res != ERROR_SUCCESS) goto error_close_clsid_key; - } - - if (list->viprogid) { - res = register_key_defvalueA(clsid_key, viprogid_keyname, - list->viprogid); - if (res != ERROR_SUCCESS) goto error_close_clsid_key; - - res = register_progid(buf, list->viprogid, list->progid, - list->name, list->progid_extra); - if (res != ERROR_SUCCESS) goto error_close_clsid_key; - } - - error_close_clsid_key: - RegCloseKey(clsid_key); - } - -error_close_coclass_key: - RegCloseKey(coclass_key); -error_return: - return res != ERROR_SUCCESS ? HRESULT_FROM_WIN32(res) : S_OK; -} - -/*********************************************************************** - * unregister_coclasses - */ -static HRESULT unregister_coclasses(struct regsvr_coclass const *list) -{ - LONG res = ERROR_SUCCESS; - HKEY coclass_key; - - res = RegOpenKeyExW(HKEY_CLASSES_ROOT, clsid_keyname, 0, - KEY_READ | KEY_WRITE, &coclass_key); - if (res == ERROR_FILE_NOT_FOUND) return S_OK; - if (res != ERROR_SUCCESS) goto error_return; - - for (; res == ERROR_SUCCESS && list->clsid; ++list) { - WCHAR buf[39]; - - StringFromGUID2(list->clsid, buf, 39); - res = RegDeleteTreeW(coclass_key, buf); - if (res == ERROR_FILE_NOT_FOUND) res = ERROR_SUCCESS; - if (res != ERROR_SUCCESS) goto error_close_coclass_key; - - if (list->progid) { - res = RegDeleteTreeA(HKEY_CLASSES_ROOT, list->progid); - if (res == ERROR_FILE_NOT_FOUND) res = ERROR_SUCCESS; - if (res != ERROR_SUCCESS) goto error_close_coclass_key; - } - - if (list->viprogid) { - res = RegDeleteTreeA(HKEY_CLASSES_ROOT, list->viprogid); - if (res == ERROR_FILE_NOT_FOUND) res = ERROR_SUCCESS; - if (res != ERROR_SUCCESS) goto error_close_coclass_key; - } - } - -error_close_coclass_key: - RegCloseKey(coclass_key); -error_return: - return res != ERROR_SUCCESS ? HRESULT_FROM_WIN32(res) : S_OK; -} - -/*********************************************************************** - * regsvr_key_guid - */ -static LONG register_key_guid(HKEY base, WCHAR const *name, GUID const *guid) -{ - WCHAR buf[39]; - - StringFromGUID2(guid, buf, 39); - return register_key_defvalueW(base, name, buf); -} - -/*********************************************************************** - * regsvr_key_defvalueW - */ -static LONG register_key_defvalueW( - HKEY base, - WCHAR const *name, - WCHAR const *value) -{ - LONG res; - HKEY key; - - res = RegCreateKeyExW(base, name, 0, NULL, 0, - KEY_READ | KEY_WRITE, NULL, &key, NULL); - if (res != ERROR_SUCCESS) return res; - res = RegSetValueExW(key, NULL, 0, REG_SZ, (CONST BYTE*)value, - (lstrlenW(value) + 1) * sizeof(WCHAR)); - RegCloseKey(key); - return res; -} - -/*********************************************************************** - * regsvr_key_defvalueA - */ -static LONG register_key_defvalueA( - HKEY base, - WCHAR const *name, - char const *value) -{ - LONG res; - HKEY key; - - res = RegCreateKeyExW(base, name, 0, NULL, 0, - KEY_READ | KEY_WRITE, NULL, &key, NULL); - if (res != ERROR_SUCCESS) return res; - res = RegSetValueExA(key, NULL, 0, REG_SZ, (CONST BYTE*)value, - lstrlenA(value) + 1); - RegCloseKey(key); - return res; -} - -/*********************************************************************** - * regsvr_progid - */ -static LONG register_progid( - WCHAR const *clsid, - char const *progid, - char const *curver_progid, - char const *name, - char const *extra) -{ - LONG res; - HKEY progid_key; - - res = RegCreateKeyExA(HKEY_CLASSES_ROOT, progid, 0, - NULL, 0, KEY_READ | KEY_WRITE, NULL, - &progid_key, NULL); - if (res != ERROR_SUCCESS) return res; - - if (name) { - res = RegSetValueExA(progid_key, NULL, 0, REG_SZ, - (CONST BYTE*)name, strlen(name) + 1); - if (res != ERROR_SUCCESS) goto error_close_progid_key; - } - - if (clsid) { - res = register_key_defvalueW(progid_key, clsid_keyname, clsid); - if (res != ERROR_SUCCESS) goto error_close_progid_key; - } - - if (curver_progid) { - res = register_key_defvalueA(progid_key, curver_keyname, - curver_progid); - if (res != ERROR_SUCCESS) goto error_close_progid_key; - } - - if (extra) { - HKEY extra_key; - - res = RegCreateKeyExA(progid_key, extra, 0, - NULL, 0, KEY_READ | KEY_WRITE, NULL, - &extra_key, NULL); - if (res == ERROR_SUCCESS) - RegCloseKey(extra_key); - } - -error_close_progid_key: - RegCloseKey(progid_key); - return res; -} - -/*********************************************************************** - * coclass list - */ -static GUID const CLSID_AVIProxy = { - 0x0002000D, 0x0000, 0x0000, {0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46} }; - -static struct regsvr_coclass const coclass_list[] = { - { &CLSID_AVIFile, - "Microsoft AVI Files", - "avifile.dll", - "avifil32.dll", - "Apartment" - }, - { &CLSID_ICMStream, - "AVI Compressed Stream", - "avifile.dll", - "avifil32.dll", - "Apartment" - }, - { &CLSID_WAVFile, - "Microsoft Wave File", - "avifile.dll", - "avifil32.dll", - "Apartment" - }, - { &CLSID_AVIProxy, - "IAVIStream & IAVIFile Proxy", - "avifile.dll", - "avifil32.dll", - "Apartment" - }, - { &CLSID_ACMStream, - "ACM Compressed Audio Stream", - "avifile.dll", - "avifil32.dll", - "Apartment" - }, - { NULL } /* list terminator */ -}; - -/*********************************************************************** - * interface list - */ - -static struct regsvr_interface const interface_list[] = { - { NULL } /* list terminator */ -}; - -/*********************************************************************** - * DllRegisterServer (AVIFILE.@) - */ -HRESULT WINAPI DllRegisterServer(void) -{ - HRESULT hr; - - TRACE("\n"); - - hr = register_coclasses(coclass_list); - if (SUCCEEDED(hr)) - hr = register_interfaces(interface_list); - return hr; -} - -/*********************************************************************** - * DllUnregisterServer (AVIFILE.@) - */ -HRESULT WINAPI DllUnregisterServer(void) -{ - HRESULT hr; - - TRACE("\n"); - - hr = unregister_coclasses(coclass_list); - if (SUCCEEDED(hr)) - hr = unregister_interfaces(interface_list); - return hr; -} diff --git a/reactos/dll/win32/avifil32/rsrc.rc b/reactos/dll/win32/avifil32/rsrc.rc index 2a8810b9697..f5362fbbdb9 100644 --- a/reactos/dll/win32/avifil32/rsrc.rc +++ b/reactos/dll/win32/avifil32/rsrc.rc @@ -22,11 +22,14 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL -#define WINE_OLESELFREGISTER +/* @makedep: avifile.rgs */ +1 WINE_REGISTRY avifile.rgs + #define WINE_FILEDESCRIPTION_STR "Wine AVI file support library" #define WINE_FILENAME_STR "avifil32.dll" #define WINE_FILEVERSION 4,0,3,1998 #define WINE_FILEVERSION_STR "4.03.1998" +#define WINE_EXTRAVALUES VALUE "OLESelfRegister","" #include "wine/wine_common_ver.rc" #include "avifile_private.h" diff --git a/reactos/dll/win32/avifil32/tmpfile.c b/reactos/dll/win32/avifil32/tmpfile.c index 49b5a0a91bb..3bdd50a3ea0 100644 --- a/reactos/dll/win32/avifil32/tmpfile.c +++ b/reactos/dll/win32/avifil32/tmpfile.c @@ -34,102 +34,23 @@ WINE_DEFAULT_DEBUG_CHANNEL(avifile); /***********************************************************************/ -static HRESULT WINAPI ITmpFile_fnQueryInterface(IAVIFile* iface,REFIID refiid,LPVOID *obj); -static ULONG WINAPI ITmpFile_fnAddRef(IAVIFile* iface); -static ULONG WINAPI ITmpFile_fnRelease(IAVIFile* iface); -static HRESULT WINAPI ITmpFile_fnInfo(IAVIFile*iface,AVIFILEINFOW*afi,LONG size); -static HRESULT WINAPI ITmpFile_fnGetStream(IAVIFile*iface,PAVISTREAM*avis,DWORD fccType,LONG lParam); -static HRESULT WINAPI ITmpFile_fnCreateStream(IAVIFile*iface,PAVISTREAM*avis,AVISTREAMINFOW*asi); -static HRESULT WINAPI ITmpFile_fnWriteData(IAVIFile*iface,DWORD ckid,LPVOID lpData,LONG size); -static HRESULT WINAPI ITmpFile_fnReadData(IAVIFile*iface,DWORD ckid,LPVOID lpData,LONG *size); -static HRESULT WINAPI ITmpFile_fnEndRecord(IAVIFile*iface); -static HRESULT WINAPI ITmpFile_fnDeleteStream(IAVIFile*iface,DWORD fccType,LONG lParam); - -static const struct IAVIFileVtbl itmpft = { - ITmpFile_fnQueryInterface, - ITmpFile_fnAddRef, - ITmpFile_fnRelease, - ITmpFile_fnInfo, - ITmpFile_fnGetStream, - ITmpFile_fnCreateStream, - ITmpFile_fnWriteData, - ITmpFile_fnReadData, - ITmpFile_fnEndRecord, - ITmpFile_fnDeleteStream -}; - typedef struct _ITmpFileImpl { - /* IUnknown stuff */ - const IAVIFileVtbl *lpVtbl; + IAVIFile IAVIFile_iface; LONG ref; - /* IAVIFile stuff */ AVIFILEINFOW fInfo; PAVISTREAM *ppStreams; } ITmpFileImpl; -PAVIFILE AVIFILE_CreateAVITempFile(int nStreams, const PAVISTREAM *ppStreams) { - ITmpFileImpl *tmpFile; - int i; - - tmpFile = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(ITmpFileImpl)); - if (tmpFile == NULL) - return NULL; - - tmpFile->lpVtbl = &itmpft; - tmpFile->ref = 1; - memset(&tmpFile->fInfo, 0, sizeof(tmpFile->fInfo)); - - tmpFile->fInfo.dwStreams = nStreams; - tmpFile->ppStreams = HeapAlloc(GetProcessHeap(), 0, nStreams * sizeof(PAVISTREAM)); - if (tmpFile->ppStreams == NULL) { - HeapFree(GetProcessHeap(), 0, tmpFile); - return NULL; - } - - for (i = 0; i < nStreams; i++) { - AVISTREAMINFOW sInfo; - - tmpFile->ppStreams[i] = ppStreams[i]; - - AVIStreamAddRef(ppStreams[i]); - AVIStreamInfoW(ppStreams[i], &sInfo, sizeof(sInfo)); - if (i == 0) { - tmpFile->fInfo.dwScale = sInfo.dwScale; - tmpFile->fInfo.dwRate = sInfo.dwRate; - if (!sInfo.dwScale || !sInfo.dwRate) { - tmpFile->fInfo.dwScale = 1; - tmpFile->fInfo.dwRate = 100; - } - } - - if (tmpFile->fInfo.dwSuggestedBufferSize < sInfo.dwSuggestedBufferSize) - tmpFile->fInfo.dwSuggestedBufferSize = sInfo.dwSuggestedBufferSize; - - { - register DWORD tmp; - - tmp = MulDiv(AVIStreamSampleToTime(ppStreams[i], sInfo.dwLength), - tmpFile->fInfo.dwScale, tmpFile->fInfo.dwRate * 1000); - if (tmpFile->fInfo.dwLength < tmp) - tmpFile->fInfo.dwLength = tmp; - - tmp = sInfo.rcFrame.right - sInfo.rcFrame.left; - if (tmpFile->fInfo.dwWidth < tmp) - tmpFile->fInfo.dwWidth = tmp; - tmp = sInfo.rcFrame.bottom - sInfo.rcFrame.top; - if (tmpFile->fInfo.dwHeight < tmp) - tmpFile->fInfo.dwHeight = tmp; - } - } - - return (PAVIFILE)tmpFile; +static inline ITmpFileImpl *impl_from_IAVIFile(IAVIFile *iface) +{ + return CONTAINING_RECORD(iface, ITmpFileImpl, IAVIFile_iface); } static HRESULT WINAPI ITmpFile_fnQueryInterface(IAVIFile *iface, REFIID refiid, LPVOID *obj) { - ITmpFileImpl *This = (ITmpFileImpl *)iface; + ITmpFileImpl *This = impl_from_IAVIFile(iface); TRACE("(%p,%s,%p)\n", This, debugstr_guid(refiid), obj); @@ -146,7 +67,7 @@ static HRESULT WINAPI ITmpFile_fnQueryInterface(IAVIFile *iface, REFIID refiid, static ULONG WINAPI ITmpFile_fnAddRef(IAVIFile *iface) { - ITmpFileImpl *This = (ITmpFileImpl *)iface; + ITmpFileImpl *This = impl_from_IAVIFile(iface); ULONG ref = InterlockedIncrement(&This->ref); TRACE("(%p) -> %d\n", iface, ref); @@ -156,7 +77,7 @@ static ULONG WINAPI ITmpFile_fnAddRef(IAVIFile *iface) static ULONG WINAPI ITmpFile_fnRelease(IAVIFile *iface) { - ITmpFileImpl *This = (ITmpFileImpl *)iface; + ITmpFileImpl *This = impl_from_IAVIFile(iface); ULONG ref = InterlockedDecrement(&This->ref); TRACE("(%p) -> %d\n", iface, ref); @@ -182,7 +103,7 @@ static ULONG WINAPI ITmpFile_fnRelease(IAVIFile *iface) static HRESULT WINAPI ITmpFile_fnInfo(IAVIFile *iface, AVIFILEINFOW *afi, LONG size) { - ITmpFileImpl *This = (ITmpFileImpl *)iface; + ITmpFileImpl *This = impl_from_IAVIFile(iface); TRACE("(%p,%p,%d)\n",iface,afi,size); @@ -201,7 +122,7 @@ static HRESULT WINAPI ITmpFile_fnInfo(IAVIFile *iface, static HRESULT WINAPI ITmpFile_fnGetStream(IAVIFile *iface, PAVISTREAM *avis, DWORD fccType, LONG lParam) { - ITmpFileImpl *This = (ITmpFileImpl *)iface; + ITmpFileImpl *This = impl_from_IAVIFile(iface); ULONG nStream = (ULONG)-1; @@ -283,3 +204,75 @@ static HRESULT WINAPI ITmpFile_fnDeleteStream(IAVIFile *iface, DWORD fccType, return AVIERR_UNSUPPORTED; } + +static const struct IAVIFileVtbl itmpft = { + ITmpFile_fnQueryInterface, + ITmpFile_fnAddRef, + ITmpFile_fnRelease, + ITmpFile_fnInfo, + ITmpFile_fnGetStream, + ITmpFile_fnCreateStream, + ITmpFile_fnWriteData, + ITmpFile_fnReadData, + ITmpFile_fnEndRecord, + ITmpFile_fnDeleteStream +}; + +PAVIFILE AVIFILE_CreateAVITempFile(int nStreams, const PAVISTREAM *ppStreams) +{ + ITmpFileImpl *tmpFile; + int i; + + tmpFile = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(ITmpFileImpl)); + if (tmpFile == NULL) + return NULL; + + tmpFile->IAVIFile_iface.lpVtbl = &itmpft; + tmpFile->ref = 1; + memset(&tmpFile->fInfo, 0, sizeof(tmpFile->fInfo)); + + tmpFile->fInfo.dwStreams = nStreams; + tmpFile->ppStreams = HeapAlloc(GetProcessHeap(), 0, nStreams * sizeof(PAVISTREAM)); + if (tmpFile->ppStreams == NULL) { + HeapFree(GetProcessHeap(), 0, tmpFile); + return NULL; + } + + for (i = 0; i < nStreams; i++) { + AVISTREAMINFOW sInfo; + + tmpFile->ppStreams[i] = ppStreams[i]; + + AVIStreamAddRef(ppStreams[i]); + AVIStreamInfoW(ppStreams[i], &sInfo, sizeof(sInfo)); + if (i == 0) { + tmpFile->fInfo.dwScale = sInfo.dwScale; + tmpFile->fInfo.dwRate = sInfo.dwRate; + if (!sInfo.dwScale || !sInfo.dwRate) { + tmpFile->fInfo.dwScale = 1; + tmpFile->fInfo.dwRate = 100; + } + } + + if (tmpFile->fInfo.dwSuggestedBufferSize < sInfo.dwSuggestedBufferSize) + tmpFile->fInfo.dwSuggestedBufferSize = sInfo.dwSuggestedBufferSize; + + { + register DWORD tmp; + + tmp = MulDiv(AVIStreamSampleToTime(ppStreams[i], sInfo.dwLength), + tmpFile->fInfo.dwScale, tmpFile->fInfo.dwRate * 1000); + if (tmpFile->fInfo.dwLength < tmp) + tmpFile->fInfo.dwLength = tmp; + + tmp = sInfo.rcFrame.right - sInfo.rcFrame.left; + if (tmpFile->fInfo.dwWidth < tmp) + tmpFile->fInfo.dwWidth = tmp; + tmp = sInfo.rcFrame.bottom - sInfo.rcFrame.top; + if (tmpFile->fInfo.dwHeight < tmp) + tmpFile->fInfo.dwHeight = tmp; + } + } + + return (PAVIFILE)tmpFile; +} diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index b567757e873..bb4bb740af1 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -41,8 +41,8 @@ reactos/dll/directx/msdmo # Autosync reactos/dll/directx/qedit # Autosync reactos/dll/directx/quartz # Autosync reactos/dll/win32/advpack # Synced to Wine-1.3.37 -reactos/dll/win32/atl # Autosync -reactos/dll/win32/avifil32 # Autosync +reactos/dll/win32/atl # Synced to Wine-1.3.37 +reactos/dll/win32/avifil32 # Synced to Wine-1.3.37 reactos/dll/win32/bcrypt # Synced to Wine-1.3.37 reactos/dll/win32/browseui # Out of sync reactos/dll/win32/cabinet # Synced to Wine-1.3.37