DWORD *mem;
IPersistStream *src_stream;
IStream *dst_stream;
+ LARGE_INTEGER offset;
HRESULT hr;
+ LONG size;
desc.cbSizeofstruct = sizeof(desc);
desc.picType = PICTYPE_BITMAP;
hr = CreateStreamOnHGlobal(hmem, FALSE, &dst_stream);
ok(hr == S_OK, "createstreamonhglobal error %#x\n", hr);
+ size = -1;
+ hr = IPicture_SaveAsFile(pic, dst_stream, TRUE, &size);
+ ok(hr == S_OK, "IPicture_SaveasFile error %#x\n", hr);
+todo_wine
+ ok(size == 66, "expected 66, got %d\n", size);
+ mem = GlobalLock(hmem);
+todo_wine
+ ok(!memcmp(&mem[0], "BM", 2), "got wrong bmp header %04x\n", mem[0]);
+ GlobalUnlock(hmem);
+
+ size = -1;
+ hr = IPicture_SaveAsFile(pic, dst_stream, FALSE, &size);
+todo_wine
+ ok(hr == E_FAIL, "expected E_FAIL, got %#x\n", hr);
+todo_wine
+ ok(size == -1, "expected -1, got %d\n", size);
+
+ offset.QuadPart = 0;
+ hr = IStream_Seek(dst_stream, offset, SEEK_SET, NULL);
+ ok(hr == S_OK, "IStream_Seek %#x\n", hr);
+
hr = IPicture_QueryInterface(pic, &IID_IPersistStream, (void **)&src_stream);
ok(hr == S_OK, "QueryInterface error %#x\n", hr);
DWORD *mem;
IPersistStream *src_stream;
IStream *dst_stream;
+ LARGE_INTEGER offset;
HRESULT hr;
+ LONG size;
desc.cbSizeofstruct = sizeof(desc);
desc.picType = PICTYPE_ICON;
hr = CreateStreamOnHGlobal(hmem, FALSE, &dst_stream);
ok(hr == S_OK, "CreateStreamOnHGlobal error %#x\n", hr);
+ size = -1;
+ hr = IPicture_SaveAsFile(pic, dst_stream, TRUE, &size);
+ ok(hr == S_OK, "IPicture_SaveasFile error %#x\n", hr);
+todo_wine
+ ok(size == 766, "expected 766, got %d\n", size);
+ mem = GlobalLock(hmem);
+todo_wine
+ ok(mem[0] == 0x00010000, "got wrong icon header %04x\n", mem[0]);
+ GlobalUnlock(hmem);
+
+ size = -1;
+ hr = IPicture_SaveAsFile(pic, dst_stream, FALSE, &size);
+todo_wine
+ ok(hr == E_FAIL, "expected E_FAIL, got %#x\n", hr);
+todo_wine
+ ok(size == -1, "expected -1, got %d\n", size);
+
+ offset.QuadPart = 0;
+ hr = IStream_Seek(dst_stream, offset, SEEK_SET, NULL);
+ ok(hr == S_OK, "IStream_Seek %#x\n", hr);
+
hr = IPicture_QueryInterface(pic, &IID_IPersistStream, (void **)&src_stream);
ok(hr == S_OK, "QueryInterface error %#x\n", hr);
IStream *dst_stream, *stream;
LARGE_INTEGER offset;
HRESULT hr;
+ LONG size;
memset(&pic, 0, sizeof(pic));
desc.cbSizeofstruct = sizeof(desc);
type = -1;
hr = IPicture_get_Type(pic, &type);
- ok(hr == S_OK,"get_Type error %#8x\n", hr);
+ ok(hr == S_OK, "get_Type error %#x\n", hr);
ok(type == PICTYPE_NONE,"expected picture type PICTYPE_NONE, got %d\n", type);
handle = (OLE_HANDLE)0xdeadbeef;
hr = CreateStreamOnHGlobal(hmem, FALSE, &dst_stream);
ok(hr == S_OK, "createstreamonhglobal error %#x\n", hr);
+ size = -1;
+ hr = IPicture_SaveAsFile(pic, dst_stream, TRUE, &size);
+ ok(hr == S_OK, "IPicture_SaveasFile error %#x\n", hr);
+todo_wine
+ ok(size == -1, "expected -1, got %d\n", size);
+
+ size = -1;
+ hr = IPicture_SaveAsFile(pic, dst_stream, FALSE, &size);
+ ok(hr == S_OK, "IPicture_SaveasFile error %#x\n", hr);
+todo_wine
+ ok(size == -1, "expected -1, got %d\n", size);
+
hr = IPicture_QueryInterface(pic, &IID_IPersistStream, (void **)&src_stream);
ok(hr == S_OK, "QueryInterface error %#x\n", hr);