Домашнее задание — Windows 7
Можно ли отключить отображение библиотек в стандартных диалогах открытия/сохранения файлов?
Совсем отключить отображение библиотек нельзя. Тем не менее, это не будет проблемой при использовании диалога сохранения файлов. Дело в том, что если не указывать в какую из папок библиотеки сохраняется файл, он попадает в папку, помеченную как место сохранения файлов по умолчанию — Default save location.
Тем не менее, еще раз хочу обратить внимание на необходимость использования метода IFileDialog::GetResult и последующей работы с интерфейсом IShellItem во всех случаях при работе с файловыми диалогами. Только данный метод гарантирует получение пути до выбранного файла или папки в случае работы с библиотеками. Фрагмент кода ниже сохраняет полный путь до выбранного объекта в переменную LPWSTR resultFilePath.
#include <comdef.h>
#include <shlobj.h>
_COM_SMARTPTR_TYPEDEF (IFileOpenDialog, __uuidof (IFileOpenDialog));
_COM_SMARTPTR_TYPEDEF (IShellItem, __uuidof (IShellItem));
IFileOpenDialogPtr fileOpenDialog (__uuidof (FileOpenDialog));
if (fileOpenDialog->Show(window) != HRESULT_FROM_WIN32 (ERROR_CANCELLED)) {
IShellItemPtr resultShellItem;
fileOpenDialog->GetResult (&resultShellItem);
LPWSTR resultFilePath = NULL;
resultShellItem->GetDisplayName (SIGDN_FILESYSPATH, &resultFilePath);
}
Каково будущее библиотеки WTL (Windows Template Library)?
Будущее данной библиотеки в руках сообщества разработчиков. Данная библиотека официально не поддерживается Microsoft, несмотря на то, что была изначально разработана у нас.
Последняя доступная на сегодня версия — WTL 8.0. Она распространяется на условиях Microsoft Permissive License. Эта версия поддерживает новые элементы пользовательского интерфейса Windows Vista — подробнее читайте в статье Кенни Кера (по-русски).
Полезные ресурсы по WTL:
- сайт проекта на SourceForge.net;
- неофициальный форум поддержки (вполне жизнеспособный);
- материал из Википедии по-русски и по-английски.
Поддерживает ли новая технология вывода текста DirectWrite вертикальное направление письма?
Вертикальное направление, используемое, например, традиционным китайским и японским письмом, к сожалению, DirectWrite не поддерживает (по состоянию в Windows 7 Beta). Направление письма задается значением перечисления DWRITE_READING_DIRECTION в вызове метода IDWriteTextFormat::SetReadingDirection. В данный момент в документации описаны только два значения:
- DWRITE_READING_DIRECTION_LEFT_TO_RIGHT
- DWRITE_READING_DIRECTION_RIGHT_TO_LEFT
ГБ