The Computer Audio Device Change messages will not be sent without a call to Bind.
Line 34 in setting_service_dotnet_wrap.cpp should look like this:
IAudioSettingContextDotNetWrap^ CSettingServiceDotNetWrap::GetAudioSettings()
{
if (CAudioSettingContextDotNetWrap::Instance)
{
CAudioSettingContextDotNetWrap::Instance->BindEvent();
}
return CAudioSettingContextDotNetWrap::Instance;
}
Then the callbacks start working.