"Ge van Geldorp" <ggeld...@vmware.com> writes:

> @@ -417,18 +417,23 @@ static HRESULT 
> DataObjectImpl_CreateComplex(LPDATAOBJECT *lplpdataobj)
>      InitFormatEtc(obj->fmtetc[1], cf_stream, TYMED_ISTREAM);
>      InitFormatEtc(obj->fmtetc[2], cf_storage, TYMED_ISTORAGE);
>      InitFormatEtc(obj->fmtetc[3], cf_another, 
> TYMED_ISTORAGE|TYMED_ISTREAM|TYMED_HGLOBAL);
> -    memset(&dm, 0, sizeof(dm));
> -    dm.dmSize = sizeof(dm);
> -    dm.dmDriverExtra = 0;
> -    lstrcpyW(dm.dmDeviceName, device_name);
> -    obj->fmtetc[3].ptd = HeapAlloc(GetProcessHeap(), 0, 
> FIELD_OFFSET(DVTARGETDEVICE, tdData) + sizeof(device_name) + dm.dmSize + 
> dm.dmDriverExtra);
> -    obj->fmtetc[3].ptd->tdSize = FIELD_OFFSET(DVTARGETDEVICE, tdData) + 
> sizeof(device_name) + dm.dmSize + dm.dmDriverExtra;
> -    obj->fmtetc[3].ptd->tdDriverNameOffset = FIELD_OFFSET(DVTARGETDEVICE, 
> tdData);
> -    obj->fmtetc[3].ptd->tdDeviceNameOffset = 0;
> -    obj->fmtetc[3].ptd->tdPortNameOffset   = 0;
> -    obj->fmtetc[3].ptd->tdExtDevmodeOffset = 
> obj->fmtetc[3].ptd->tdDriverNameOffset + sizeof(device_name);
> -    lstrcpyW((WCHAR*)obj->fmtetc[3].ptd->tdData, device_name);
> -    memcpy(obj->fmtetc[3].ptd->tdData + sizeof(device_name), &dm, dm.dmSize 
> + dm.dmDriverExtra);
> +    if (! broken(TRUE))  /* Windows messes up ptd when doing 
> OleGetClipboard() */
> +    {

If that case is really unconditionally broken on Windows it doesn't make
sense to test it at all.

-- 
Alexandre Julliard
julli...@winehq.org


Reply via email to