Вы хотите, чтобы контекстные приложения оболочки имели небольшие размеры. Это исключает управляемый код по крайней мере на данный момент. Это может несколько говорить в пользу win32asm, хотя библиотеки C ++ на самом деле не так уж и велики по сравнению со средой исполнения .NET (в общем, меньше, чем МБ, не так уж и много)
Вы хотите, чтобы контекстные приложения оболочки были стабильными, так как в противном случае люди выгонят их, чтобы сохранить свои процессы explorer.exe. Это говорит в значительной степени против win32asm. Если вы знаете, что только когда-либо будете поддерживать приложение, и у вас будут отличные навыки ассемблера, win32asm может сработать, хотя сам я бы не пошел по этому пути. Вам все еще нужно реализовать COM-интерфейсы, что является достаточно большой головной болью без добавления сложностей кодирования ассемблера.
Я бы пошел на VC ++ с поддержкой ATL, не задумываясь, но с серьезным модульным тестированием и защитой от утечки ресурсов. Но если вам не нравятся C ++ и шаблоны, это может стать для вас непростой дорогой. С положительной стороны, у вас будет гораздо меньший набор исходного кода для сопровождения, и вам будет гораздо легче найти других, чтобы помочь или взять на себя управление. Возможно, вы также улучшили ценный набор навыков.