Интерфейсы OLEDB для репликации

Подниму старую тему, так как появились дополнения.

Предыстория вопроса. В 2005 году я разрабатывал OLEDB-провайдер для самописной СУБД. Ранее без особых проблем примерно за неделю был написан .NET Data Provider, но он, к сожалению, работал только в .NET-среде. А тут встала потенциальная задача синхронизации баз данных с MS SQL 2000. Одна из эффективных ее реализаций - репликация на гетерогенного подписчика: MS SQL сам передает все изменения другой СУБД через OLEDB или ODBC-интерфейсы.

В документации MS SQL Server 2000 Books Online приведен список интерфейсов OLEDB, которые должны быть реализованы для поддержки гетерогенной репликации.

В разработке использовалась С++/Visual Studio 2003 и шаблоны ATL для создания OLEDB-провайдера. Стандартная методика: создаем проект типа ATL и добавляем к нему класс ATL OLEDB Provider.

Однако, по непонятным причинам указанных в документации интерфейсов не хватало. Когда я добавлял в репликацию нового OLEDB-подписчика (OLE DB Subscriber), то получал следующую ошибку:

<My linked server name> could not be enabled as a subscriber becausethe OLE DB driver for this provider does not provide sufficient functionnality.
Error 21329: [SQL-DMO] The DSN is not valid SQL Server Subscriber.

Глубока отладка с цеплянием к процессу sqlserver, "подшаманивание" и письма в конференцию microsoft.public.data.oledb не дали результата. По итогам данный проект мы приостановили, а директор R&D за месяц написал на чистом Си ODBC-драйвер, который, впрочем, не удалось испытать в данной конфигурации, так как задачи поменялись (типичная ситуация для маленькой фирмы :)).

Тем не менее, с той поры мне периодически приходят письма с вопросом: "Удалось ли решить проблему?". И вот недавно получил подтверждение от одного из корреспондентов. Думаю, было бы интересно описать найденное им решение.