ole32/tests: fix clipboard tests on Windows

Alexandre Julliard julliard at winehq.org
Mon Sep 28 09:42:48 CDT 2009


"Ge van Geldorp" <ggeldorp at 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
julliard at winehq.org



More information about the wine-devel mailing list