DirectSound is only meant for legacy code; modern games should use XAudio2 and/or Microsoft Media Foundation for audio. DirectInput is deprecated and should only be used for legacy joystick and gamepad support (any controller that you can use XInput with you should use XInput, and keyboard and mouse should be used with standard Win32 messages, .NET classes, or Windows Runtime functionality.

Otherwise, great article and sample!