[Wine-devel] ole32/tests: test for incorrect storage creation (eterbug #6846)
amorozov на etersoft.ru
amorozov на etersoft.ru
Вт Фев 15 22:11:21 MSK 2011
В сообщении от 15 февраля 2011 roman написал(a):
> ole32/tests: test for incorrect storage creation (eterbug #6846)
+ static const BYTE pWordBuffer[] = { 0x00, 0x00, 0x00, 0x00 };
Длина magic в начале storage`а восемь байт, а не четыре. И там не нули.
+ mode = GMEM_FIXED|GMEM_ZEROINIT;
+ hMem = GlobalAlloc( mode, 1024);
+ FillMemory( hMem, 1024, 0xff );
Не надо использовать GMEM_ZEROINIT, если мы потом заполняем память 0xff.
+ memcpy( pFileBuffer, stg, 512 );
stg - это не указатель на массив байт, это указатель на COM-интерфейс.
Сравнивать с ним массив байт бессмысленно, особенно когда мы этот интерфейс
освободили. После вызова Release для IStorage надо получить указатель на
HGLOBAL с помощью GetHGlobalFromILockBytes и вызвать для полученного хэндла
GlobalLock, чтобы получить указатель на память, где лежит образ storage`а.
Для ILockBytes также надо вызвать Release.
Не увидел нигде проверки обнуления какого-нибудь поля, которое первоначально
было заполнено 0xff.
Подробная информация о списке рассылки Wine-devel