Windows предоставляет стандартный компонент - диалог прогресса.Это было изобретено в Windows XP.Диалог прогресса может быть создан с помощью вызова CoCreateInstance с интерфейсом IProgressDialog.Windows Vista предоставляет еще один (новый) пользовательский интерфейс для диалога прогресса.Нужно создать диалог прогресса с интерфейсом IOperationsProgressDialog, чтобы получить новый интерфейс.Существует один компонент (CLSID_ProgressDialog): он поддерживает как интерфейсы, так и пользовательские интерфейсы.Рекомендуется использовать интерфейс IOperationsProgressDialog.
Я разработал расширение пространства имен.он поддерживает перетаскивание.Я использую сценарий для передачи данных из моего NSE:
- IShellFolder :: GetUIObjectOf -> IDataObject
- IDataObject :: GetData -> FILEDESCRIPTOR, FILECONTENTS
- FILECONTENTS ->IStream
- IStream :: Read -> данные для передачи
FILEDESCRIPTOR сообщает, что моему NSE требуется пользовательский интерфейс прогресса (FD_PROGRESSUI).Диалог прогресса отображается во время копирования файлов.Это диалоговое окно прогресса имеет пользовательский интерфейс, предоставленный интерфейсом IProgressDialog.Мне нужен проводник, чтобы использовать диалог прогресса с пользовательским интерфейсом IOperationsProgressDialog, но я не знаю, как заставить его сделать это.Я предоставляю только IDataObject и IStream.NSE предназначен для Windows 7, но в диалоговом окне прогресса используется старый пользовательский интерфейс.Как я могу получить новый пользовательский интерфейс диалога при копировании из моего NSE в проводник?