On Fri, Nov 03, 2017 at 07:22:31PM +0800, Dmitry Timoshkov wrote:
Marcus Meissner marcus@jet.franken.de wrote:
The ole2 test crashes for me, reason is that length is 0 and we use length-1 for accessing whats returned.
...
if (!length)
return DV_E_CLIPFORMAT;
The test intentionally creates the storage streams with length field set to 0, and as the tests show this is not an error. So the fix should be probably different.
That was a can of worms.
- GetClipboardFormatName returns charactercount without counting leading \0, write_clipformat did not take it into account. - GetClipboardFormatName(fmt,NULL,0) always returns 0 and not the needed characters. write_clipformat did not take it into account. - OLE format stores the clipboard format name with \0 inside - length 0 in the stream means "no clipboard format"
https://msdn.microsoft.com/en-us/library/dd942254.aspx
I sent in another patch.
Ciao, Marcus