Что мне нужно: мониторить папку на предмет добавления новой картинки, если она есть - распечатать. Мониторинг сделал через ReadDirectoryChangesW (нарыл пример в инете). Но там имя файла вытаскивается в PWideChar:
- Код: Выделить всё
- Ptr:=lpBuf;
 MyStruct:=PFileNotifyInformation(Ptr)^;
 //repeat
 // Выделяем память под имя файла
 GetMem(FileName,MyStruct.FileNameLength+2);
 // Очищаем память - чтобы последним символом после копирования
 // был бы #0 нуль
 ZeroMemory(FileName,MyStruct.FileNameLength+2);
 // WinAPI функция для копирования Unicode строки
 lstrcpynW(FileName,MyStruct.FileName,
 MyStruct.FileNameLength div 2+1);
После чего я отдаю FileName в LoadFormFile, чтобы загрузить в TPicture добавленную картинку и потом её вывести на canvas принтера:
- Код: Выделить всё
- MyImg.LoadFromFile(katalog+FileName);
katalog - константа равная 'C:\sav_file\'
Если в имени русских букв нет, то всё отлично. А вот если есть, то LoadFromFile не отрабатывает. Возникает вопрос - как корректно отдать ей имя в юникодовской кодировке? При том, что параметр у LoadFromFile - типа string?



