oleaut32: Simplify bitmap saving code.

This commit is contained in:
Dmitry Timoshkov 2012-06-01 15:37:11 +09:00 committed by Alexandre Julliard
parent 4c88239742
commit 7493fdcc4d
1 changed files with 14 additions and 28 deletions

View File

@ -1749,6 +1749,7 @@ static HRESULT WINAPI OLEPictureImpl_Save(
HRESULT hResult = E_NOTIMPL; HRESULT hResult = E_NOTIMPL;
void * pIconData; void * pIconData;
unsigned int iDataSize; unsigned int iDataSize;
DWORD header[2];
ULONG dummy; ULONG dummy;
int iSerializeResult = 0; int iSerializeResult = 0;
OLEPictureImpl *This = impl_from_IPersistStream(iface); OLEPictureImpl *This = impl_from_IPersistStream(iface);
@ -1797,38 +1798,23 @@ static HRESULT WINAPI OLEPictureImpl_Save(
FIXME("(%p,%p,%d), PICTYPE_BITMAP (format UNKNOWN, using BMP?) not implemented!\n",This,pStm,fClearDirty); FIXME("(%p,%p,%d), PICTYPE_BITMAP (format UNKNOWN, using BMP?) not implemented!\n",This,pStm,fClearDirty);
break; break;
} }
if (iSerializeResult) {
/*
if (This->loadtime_magic != 0xdeadbeef) {
*/
if (1) {
DWORD header[2];
header[0] = (This->loadtime_magic != 0xdeadbeef) ? This->loadtime_magic : 0x0000746c; if (!iSerializeResult)
header[1] = iDataSize; {
IStream_Write(pStm, header, 2 * sizeof(DWORD), &dummy); hResult = E_FAIL;
} break;
IStream_Write(pStm, pIconData, iDataSize, &dummy);
HeapFree(GetProcessHeap(), 0, This->data);
This->data = pIconData;
This->datalen = iDataSize;
hResult = S_OK;
} }
} else {
/*
if (This->loadtime_magic != 0xdeadbeef) {
*/
if (1) {
DWORD header[2];
header[0] = (This->loadtime_magic != 0xdeadbeef) ? This->loadtime_magic : 0x0000746c; HeapFree(GetProcessHeap(), 0, This->data);
header[1] = This->datalen; This->data = pIconData;
IStream_Write(pStm, header, 2 * sizeof(DWORD), &dummy); This->datalen = iDataSize;
}
IStream_Write(pStm, This->data, This->datalen, &dummy);
hResult = S_OK;
} }
header[0] = (This->loadtime_magic != 0xdeadbeef) ? This->loadtime_magic : 0x0000746c;
header[1] = This->datalen;
IStream_Write(pStm, header, 2 * sizeof(DWORD), &dummy);
IStream_Write(pStm, This->data, This->datalen, &dummy);
hResult = S_OK;
break; break;
case PICTYPE_METAFILE: case PICTYPE_METAFILE:
FIXME("(%p,%p,%d), PICTYPE_METAFILE not implemented!\n",This,pStm,fClearDirty); FIXME("(%p,%p,%d), PICTYPE_METAFILE not implemented!\n",This,pStm,fClearDirty);