FsGetPreviewBitmap в FS плагинах

Только для тех, кто пишет плагины под Total Commander. Обмен опытом, решение проблем.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
D1P
Сообщения: 2987
Зарегистрирован: Пн дек 20, 2004 18:30
Откуда: Тбилиси
Контактная информация:

Сообщение D1P »

VadiMGP писал(а):Кстати, а что у тебя возвращает GetLastError когда GetProcAddress не находит функцию?
Возвращает ошибку 203:
The system could not find the environment option that was entered.
Уже можно над чем-то думать...
Аватара пользователя
D1P
Сообщения: 2987
Зарегистрирован: Пн дек 20, 2004 18:30
Откуда: Тбилиси
Контактная информация:

Сообщение D1P »

Уже и не знаю, что думать. Во время экспериментов обнаружил, что могу вызвать функцию из собственного приложения через раз - иногда вызывается, иногда нет. В случае, если нет - возвращается 203 ошибка. Закономерности выявить не удалось. Из TC функция не вызывается.
VadiMGP
Сообщения: 1625
Зарегистрирован: Ср мар 21, 2007 20:58

Сообщение VadiMGP »

Я тоже ничего придумать не могу. Сплошной дядька с бузиной выходит... Ну каким боком тут переменные окружения???

Может проблема в винде на том компе, где GetProcAddress с сума сходит? Никаких хотфиксов в последнее время не ставил?

А вот интересно еще - посторонние программы нормально видят экспортированную FsGetPreviewBitmap? Тот же пагиин FileInfo, например. Или тоже через раз?

И еще. Одинаково ли поведение программы FsGetPreviewBitmapTest при запуске под дебаггером и без него? Может как-то подгажены привилегии дебаггера?

Хотя, в любом случае, признаю, что вопросы от балды. Никакой идеи нет, стреляю наугад.
Аватара пользователя
CaptainFlint
Сообщения: 6239
Зарегистрирован: Вт дек 14, 2004 22:34
Контактная информация:

Сообщение CaptainFlint »

VadiMGP писал(а):Ну каким боком тут переменные окружения???
Переменные окружения тут ни при чём, слова "variables" здесь нет.

Может, на RSDN стоит запостить? Там народу умного немало тусуется, авось чего подскажут... Заодно и спросить, что означает по сути эта 203. А то какая-то больно уж туманная у неё формулировка.
Почему же, ё-моё, ты нигде не пишешь "ё"?
VadiMGP
Сообщения: 1625
Зарегистрирован: Ср мар 21, 2007 20:58

Сообщение VadiMGP »

CaptainFlint писал(а):слова "variables" здесь нет.
Слова нет, а смысл именно этот - проблемы с перемеными окружения. Мнемоника - ERROR_ENVVAR_NOT_FOUND.
Просто, кроме очевидного GetEnvironmentVariable, этот код может вернуться если косвенно пытаться получить доступ к защищенному блоку переменных окружения (например в процессе другого юзера).
http://support.microsoft.com/kb/305136
Поэтому я и начал фантазировать насчет привилегий дебаггера.
Аватара пользователя
D1P
Сообщения: 2987
Зарегистрирован: Пн дек 20, 2004 18:30
Откуда: Тбилиси
Контактная информация:

Сообщение D1P »

VadiMGP писал(а):Может проблема в винде на том компе, где GetProcAddress с сума сходит? Никаких хотфиксов в последнее время не ставил?
Винда чистая, из коробки. Пару месяцев назад по дурости убил стоящую там уже несколько лет XP, единственное, что под рукой было - диск с Win2003, переустанавливать сейчас просто лень. Никаких хотфиксов и апдейтов не ставил, только обычный набор драйверов, ну и dx ещё.
VadiMGP писал(а):А вот интересно еще - посторонние программы нормально видят экспортированную FsGetPreviewBitmap? Тот же пагиин FileInfo, например. Или тоже через раз?
Надо проверить. Вообще на той машине практически никакого инструментария нет - компутер даже не мой.
VadiMGP писал(а):И еще. Одинаково ли поведение программы FsGetPreviewBitmapTest при запуске под дебаггером и без него? Может как-то подгажены привилегии дебаггера?
Теоретически - может быть. Я заметил, что функция вызывается успешно чаще, если дельфи (и, соответственно, её отладчик) не запущены. Но и при этом - не всегда.
Нужно более детальное тестирование, как только будет время - проверю.
Аватара пользователя
D1P
Сообщения: 2987
Зарегистрирован: Пн дек 20, 2004 18:30
Откуда: Тбилиси
Контактная информация:

Сообщение D1P »

Good news, everyone!
Проблема, кажется, решена (см. последнюю страницу обсуждения на оффоруме). После установки патча KB912919 всё прекраснейшим образом заработало.
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

Гислер не придумал ничего лучше, чем запретить загрузку всех картинок в FS-плагинах, если не установлен KB912919. :D
Мда...
Аватара пользователя
CaptainFlint
Сообщения: 6239
Зарегистрирован: Вт дек 14, 2004 22:34
Контактная информация:

Сообщение CaptainFlint »

Он же объяснил причины в той же теме...
Почему же, ё-моё, ты нигде не пишешь "ё"?
Аватара пользователя
D1P
Сообщения: 2987
Зарегистрирован: Пн дек 20, 2004 18:30
Откуда: Тбилиси
Контактная информация:

Сообщение D1P »

Безопасность, млин, превыше всего. Долго же он вспоминал про то, что сам что-то задизейблил.

Кстати, это не объясняет, почему при вызове функции из плагина другим приложением (не TC, а самописной софтиной), картинка отображалась через раз...
Ответить