Я думаю, что парень (ы), которые написали этот код, файл и связанный документ, вероятно, не знали, что такое COM, поэтому они внесли свою путаницу.
Например, они используюткомбинация типов аргументов BSTR (Automation) и LPCWSTR (raw) в одном и том же интерфейсе (IVssBackupComponents для примера), что очень странно.
Это COM, необработанный COM, потому что COM по сути очень прост.Вы можете определить COM vtable многими способами, с любым языком, в этом его прелесть (не говоря уже о IDispatch, библиотеках типов, MIDL, потоках, реестре, фабриках классов, вне процесса, маршалинге и т. Д.).
В качестве другого необработанного примера COM, посмотрите на DirectX: Программирование DirectX с помощью COM хорошо написано и говорит о том, что они называют «необработанным COM».