[Wine-devel] Added test for IShellLinkA_GetPath

Alexander Morozov amorozov на etersoft.ru
Вт Апр 19 15:38:29 MSD 2011


Насчёт реальных имени и фамилии, я имел ввиду вот это поле в патче:
From: codelock <codelock на etersoft.ru>

+   const char fileName[] = { '\\','t','e','m','p','.','f','i','l','e', 0 };
Если строка char, а не WCHAR, то можно писать и так:
const char fileName[] = "\\temp.file";

+   GetEnvironmentVariableA( "TEMP", addr, sizeof(addr) );
ИМХО, лучше использовать GetTempPathA.

+   hndl = CreateFileA( addr, GENERIC_READ | GENERIC_WRITE, 0, NULL, 
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_DELETE_ON_CLOSE, NULL );
+   ok( hndl != 0, "CreateFileA failed %d", GetLastError() );
CreateFile возвращает INVALID_HANDLE_VALUE в случае ошибки, а не 0.

+   GetEnvironmentVariableW( L"TEMP", buffer, sizeof(buffer) );
+   wcscat(buffer, L"\\link.lnk" );
L"строка" - это строка wchar_t, в Linux это не то же, что строка WCHAR:
http://ru.wikipedia.org/wiki/Широкий_символ
Если тебе нужна строка WCHAR, то надо объявить её как-то так:
static const WCHAR link_lnk[] = {'\\','l','i','n','k','.','l','n','k',0};

+   memset( pch, 0, sizeof(pch) );
Здесь обнуляются 4 байта (в 32-битном случае) по адресу pch. Мне кажется, это 
не то, что ты хотел сделать.

Надо также исправить недочёты, на которые я указал в прошлом письме.


Подробная информация о списке рассылки Wine-devel