mirror of
https://github.com/reactos/reactos.git
synced 2024-09-30 22:47:28 +00:00
[WINDOWSCODECS] Sync with Wine Staging 1.7.55. CORE-10536
svn path=/trunk/; revision=70065
This commit is contained in:
parent
3ed7500edd
commit
a9a84a48c1
|
@ -63,6 +63,6 @@ add_library(windowscodecs SHARED
|
|||
|
||||
set_module_type(windowscodecs win32dll)
|
||||
target_link_libraries(windowscodecs wine uuid ${PSEH_LIB})
|
||||
add_importlibs(windowscodecs ole32 oleaut32 rpcrt4 shlwapi user32 gdi32 advapi32 msvcrt kernel32 ntdll)
|
||||
add_importlibs(windowscodecs ole32 oleaut32 rpcrt4 shlwapi user32 gdi32 advapi32 advapi32_vista msvcrt kernel32 ntdll)
|
||||
add_pch(windowscodecs wincodecs_private.h SOURCE)
|
||||
add_cd_file(TARGET windowscodecs DESTINATION reactos/system32 FOR all)
|
||||
|
|
|
@ -1039,11 +1039,14 @@ static ULONG WINAPI GifDecoder_Release(IWICBitmapDecoder *iface)
|
|||
TRACE("(%p) refcount=%u\n", iface, ref);
|
||||
|
||||
if (ref == 0)
|
||||
{
|
||||
if (This->stream)
|
||||
{
|
||||
IStream_Release(This->stream);
|
||||
DGifCloseFile(This->gif);
|
||||
}
|
||||
This->lock.DebugInfo->Spare[0] = 0;
|
||||
DeleteCriticalSection(&This->lock);
|
||||
DGifCloseFile(This->gif);
|
||||
HeapFree(GetProcessHeap(), 0, This);
|
||||
}
|
||||
|
||||
|
@ -1420,6 +1423,7 @@ HRESULT GifDecoder_CreateInstance(REFIID iid, void** ppv)
|
|||
|
||||
This->IWICBitmapDecoder_iface.lpVtbl = &GifDecoder_Vtbl;
|
||||
This->IWICMetadataBlockReader_iface.lpVtbl = &GifDecoder_BlockVtbl;
|
||||
This->stream = NULL;
|
||||
This->ref = 1;
|
||||
This->initialized = FALSE;
|
||||
This->gif = NULL;
|
||||
|
|
|
@ -361,11 +361,11 @@ static HRESULT unregister_decoders(struct regsvr_decoder const *list)
|
|||
for (; res == ERROR_SUCCESS && list->clsid; ++list) {
|
||||
StringFromGUID2(list->clsid, buf, 39);
|
||||
|
||||
res = SHDeleteKeyW(coclass_key, buf);
|
||||
res = RegDeleteTreeW(coclass_key, buf);
|
||||
if (res == ERROR_FILE_NOT_FOUND) res = ERROR_SUCCESS;
|
||||
if (res != ERROR_SUCCESS) goto error_close_coclass_key;
|
||||
|
||||
res = SHDeleteKeyW(instance_key, buf);
|
||||
res = RegDeleteTreeW(instance_key, buf);
|
||||
if (res == ERROR_FILE_NOT_FOUND) res = ERROR_SUCCESS;
|
||||
if (res != ERROR_SUCCESS) goto error_close_coclass_key;
|
||||
}
|
||||
|
@ -539,11 +539,11 @@ static HRESULT unregister_encoders(struct regsvr_encoder const *list)
|
|||
for (; res == ERROR_SUCCESS && list->clsid; ++list) {
|
||||
StringFromGUID2(list->clsid, buf, 39);
|
||||
|
||||
res = SHDeleteKeyW(coclass_key, buf);
|
||||
res = RegDeleteTreeW(coclass_key, buf);
|
||||
if (res == ERROR_FILE_NOT_FOUND) res = ERROR_SUCCESS;
|
||||
if (res != ERROR_SUCCESS) goto error_close_coclass_key;
|
||||
|
||||
res = SHDeleteKeyW(instance_key, buf);
|
||||
res = RegDeleteTreeW(instance_key, buf);
|
||||
if (res == ERROR_FILE_NOT_FOUND) res = ERROR_SUCCESS;
|
||||
if (res != ERROR_SUCCESS) goto error_close_coclass_key;
|
||||
}
|
||||
|
@ -696,11 +696,11 @@ static HRESULT unregister_converters(struct regsvr_converter const *list)
|
|||
for (; res == ERROR_SUCCESS && list->clsid; ++list) {
|
||||
StringFromGUID2(list->clsid, buf, 39);
|
||||
|
||||
res = SHDeleteKeyW(coclass_key, buf);
|
||||
res = RegDeleteTreeW(coclass_key, buf);
|
||||
if (res == ERROR_FILE_NOT_FOUND) res = ERROR_SUCCESS;
|
||||
if (res != ERROR_SUCCESS) goto error_close_coclass_key;
|
||||
|
||||
res = SHDeleteKeyW(instance_key, buf);
|
||||
res = RegDeleteTreeW(instance_key, buf);
|
||||
if (res == ERROR_FILE_NOT_FOUND) res = ERROR_SUCCESS;
|
||||
if (res != ERROR_SUCCESS) goto error_close_coclass_key;
|
||||
}
|
||||
|
@ -906,11 +906,11 @@ static HRESULT unregister_metadatareaders(struct regsvr_metadatareader const *li
|
|||
for (; res == ERROR_SUCCESS && list->clsid; ++list) {
|
||||
StringFromGUID2(list->clsid, buf, 39);
|
||||
|
||||
res = SHDeleteKeyW(coclass_key, buf);
|
||||
res = RegDeleteTreeW(coclass_key, buf);
|
||||
if (res == ERROR_FILE_NOT_FOUND) res = ERROR_SUCCESS;
|
||||
if (res != ERROR_SUCCESS) goto error_close_coclass_key;
|
||||
|
||||
res = SHDeleteKeyW(instance_key, buf);
|
||||
res = RegDeleteTreeW(instance_key, buf);
|
||||
if (res == ERROR_FILE_NOT_FOUND) res = ERROR_SUCCESS;
|
||||
if (res != ERROR_SUCCESS) goto error_close_coclass_key;
|
||||
}
|
||||
|
@ -1081,11 +1081,11 @@ static HRESULT unregister_pixelformats(struct regsvr_pixelformat const *list)
|
|||
for (; res == ERROR_SUCCESS && list->clsid; ++list) {
|
||||
StringFromGUID2(list->clsid, buf, 39);
|
||||
|
||||
res = SHDeleteKeyW(coclass_key, buf);
|
||||
res = RegDeleteTreeW(coclass_key, buf);
|
||||
if (res == ERROR_FILE_NOT_FOUND) res = ERROR_SUCCESS;
|
||||
if (res != ERROR_SUCCESS) goto error_close_coclass_key;
|
||||
|
||||
res = SHDeleteKeyW(instance_key, buf);
|
||||
res = RegDeleteTreeW(instance_key, buf);
|
||||
if (res == ERROR_FILE_NOT_FOUND) res = ERROR_SUCCESS;
|
||||
if (res != ERROR_SUCCESS) goto error_close_coclass_key;
|
||||
}
|
||||
|
@ -2021,14 +2021,14 @@ static HRESULT unregister_categories(const struct regsvr_category *list)
|
|||
for (; res == ERROR_SUCCESS && list->clsid; list++)
|
||||
{
|
||||
StringFromGUID2(list->clsid, buf, 39);
|
||||
res = SHDeleteKeyW(instance_key, buf);
|
||||
res = RegDeleteTreeW(instance_key, buf);
|
||||
}
|
||||
|
||||
RegCloseKey(instance_key);
|
||||
RegCloseKey(categories_key);
|
||||
|
||||
StringFromGUID2(&CLSID_WICImagingCategories, buf, 39);
|
||||
res = SHDeleteKeyW(coclass_key, buf);
|
||||
res = RegDeleteTreeW(coclass_key, buf);
|
||||
|
||||
RegCloseKey(coclass_key);
|
||||
|
||||
|
|
|
@ -210,7 +210,7 @@ typedef struct {
|
|||
IWICBitmapDecoder IWICBitmapDecoder_iface;
|
||||
LONG ref;
|
||||
IStream *stream;
|
||||
CRITICAL_SECTION lock; /* Must be held when tiff is used or initiailzed is set */
|
||||
CRITICAL_SECTION lock; /* Must be held when tiff is used or initialized is set */
|
||||
TIFF *tiff;
|
||||
BOOL initialized;
|
||||
} TiffDecoder;
|
||||
|
|
|
@ -491,7 +491,10 @@ DGifGetLine(GifFileType * GifFile,
|
|||
* image until empty block (size 0) detected. We use GetCodeNext. */
|
||||
do
|
||||
if (DGifGetCodeNext(GifFile, &Dummy) == GIF_ERROR)
|
||||
{
|
||||
WARN("GIF is not properly terminated\n");
|
||||
break;
|
||||
}
|
||||
while (Dummy != NULL) ;
|
||||
}
|
||||
return GIF_OK;
|
||||
|
@ -927,9 +930,17 @@ DGifSlurp(GifFileType * GifFile) {
|
|||
|
||||
Extensions->Function = Function;
|
||||
|
||||
if (ExtData)
|
||||
{
|
||||
/* Create an extension block with our data */
|
||||
if (AddExtensionBlock(Extensions, ExtData[0], &ExtData[1]) == GIF_ERROR)
|
||||
return (GIF_ERROR);
|
||||
}
|
||||
else /* Empty extension block */
|
||||
{
|
||||
if (AddExtensionBlock(Extensions, 0, NULL) == GIF_ERROR)
|
||||
return (GIF_ERROR);
|
||||
}
|
||||
|
||||
while (ExtData != NULL) {
|
||||
int Len;
|
||||
|
|
|
@ -200,7 +200,7 @@ reactos/dll/win32/version # Synced to WineStaging-1.7.55
|
|||
reactos/dll/win32/vssapi # Synced to WineStaging-1.7.47
|
||||
reactos/dll/win32/wbemdisp # Synced to WineStaging-1.7.47
|
||||
reactos/dll/win32/wbemprox # Synced to WineStaging-1.7.55
|
||||
reactos/dll/win32/windowscodecs # Synced to WineStaging-1.7.47
|
||||
reactos/dll/win32/windowscodecs # Synced to WineStaging-1.7.55
|
||||
reactos/dll/win32/windowscodecsext # Synced to WineStaging-1.7.47
|
||||
reactos/dll/win32/winemp3.acm # Synced to WineStaging-1.7.47
|
||||
reactos/dll/win32/wing32 # Synced to WineStaging-1.7.55
|
||||
|
|
Loading…
Reference in a new issue