Как ограничить доступ к обработчику значков определенным процессом?
У меня есть обработчик значков для моего пользовательского файла. Как я могу ограничить функциональность обработчика значков, чтобы он мог вызываться только потоками explorer.exe?
1 ответ
Ну, вы могли бы использовать GetModuleFileName(NULL)
чтобы узнать, в какой EXE загружен ваш обработчик. Вы можете сделать это в методе COM (и вернуть, скажем, E_FAIL
если вы думаете, что в неправильном процессе), или в DllMain
так что ваш обработчик не может даже загрузить.
Тем не менее, не ясно, почему вы хотели бы сделать это. Например, обработчик значков используется стандартным диалогом открытия файла в любом приложении; Вы не хотите, чтобы ваш значок появился там?
Если вы представляете это как какую-то меру безопасности, то она не будет работать очень хорошо. Решительный злоумышленник напишет свое собственное расширение оболочки, загрузится в Проводник и оттуда получит доступ к вашему обработчику.