Учитывая, что вы управляете кодом приложения C # и управляете кодом приложения C ++ и, предположительно, «промежуточной библиотекой». Я спрашиваю себя: «Почему ты так делаешь?»
Если вы хотите, чтобы приложение C ++ могло вызывать добавление определенной кнопки в приложение C # и чтобы нажатие этой кнопки могло обмениваться данными с приложением C ++, то лично я бы использовал стандартный IPC. и иметь канал связи между приложением C ++ и приложением C # и просто заставить приложение C ++ запрашивать у приложения C # через IPC отображение кнопки, а затем приложение C # отправлять любую информацию (скорее всего тот факт, что кнопка была нажата) ) в приложение C ++ через тот же канал IPC.
Если этот маршрут не сработает, то я думаю, что вам нужно прояснить проблему, которую вы пытаетесь решить, так как в настоящее время я думаю, что ваше текущее «решение» находится на неправильном пути, и поэтому ответ говорит вам, как добиться вашего текущего «решение» будет ошибочным.