[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