oleaut32: Add support for saving an empty picture.

This commit is contained in:
Dmitry Timoshkov 2012-11-26 19:54:23 +08:00 committed by Alexandre Julliard
parent 6c53c4ee03
commit 97e2c24cc7
2 changed files with 6 additions and 2 deletions

View File

@ -1757,6 +1757,12 @@ static HRESULT WINAPI OLEPictureImpl_Save(
TRACE("%p %p %d\n", This, pStm, fClearDirty);
switch (This->desc.picType) {
case PICTYPE_NONE:
header[0] = 0x0000746c;
header[1] = 0;
hResult = IStream_Write(pStm, header, 2 * sizeof(DWORD), &dummy);
break;
case PICTYPE_ICON:
if (This->bIsDirty || !This->data) {
if (!serializeIcon(This->desc.u.icon.hicon, &pIconData, &iDataSize)) {

View File

@ -1095,11 +1095,9 @@ static void test_load_save_empty_picture(void)
ok(hr == S_OK, "QueryInterface error %#x\n", hr);
hr = IPersistStream_Save(src_stream, dst_stream, TRUE);
todo_wine
ok(hr == S_OK, "Save error %#x\n", hr);
mem = GlobalLock(hmem);
todo_wine
ok(!memcmp(mem, "lt\0\0", 4), "got wrong stream header %04x\n", mem[0]);
ok(mem[1] == 0, "expected stream size 0, got %u\n", mem[1]);
GlobalUnlock(hmem);