Некоторое время назад я успешно написал, скомпилировал и установил RecipePropertyHandler (https://msdn.microsoft.com/de-de/library/windows/desktop/dd940375.aspx).
На моей машине разработки это работает гладко, и я могу установить и удалить сгенерированную DLL, и после перезапуска проводника я сразу же вижу, как новые свойства заполняются.
Все, что нужно, это просто
regsvr32.exe RecipePropertyHandler.dll
Если я пытаюсь сделать то же самое на другом компьютере (не для разработки), команда regsvr32 выдает мне общее сообщение об ошибке (длинный текст, не помогает) и отказывается вводить DLL:
Я выяснил, в чем проблема, на самом деле это были две вещи, которые я забыл (упомяну это здесь, может быть, это кому-нибудь поможет :-))
Мне всегда нужно запускать команды из командной строки с повышенными правами (DOS-Box администратора). Я иногда забывал об этом, и это сильно сбивает с толку, так как в ошибке не будет упоминаться проблема с правами доступа.
(И самое главное!) Я использовал VS2013 и скомпилировал с C ++ 2013, это означает, что я должен установить vcredist_x64.exe на целевой машине (D’о!).
Вышеупомянутая ошибка происходит из-за отсутствия библиотек C ++. Это на самом деле не имеет ничего общего с 64/32-битной и особенно не с regsvr32 🙂
Так что я установил его, и теперь он работает как шарм. Мне даже не нужно было запускать средство prop.exe с файлом .propdesc, так как я удалил пользовательское свойство и использовал только стандартные (как вы действительно должны (нет, правда!)).
Других решений пока нет …