У меня есть приложение C ++, которое исторически использует интерфейс Delphi IClientTable (MIDAS.DLL ??) для поддержки локальной файловой базы данных (файл .CDS). В нашем приложении C ++ IClientTable представляет собой интерфейс / объект MFC COleDispatchDriver.
Лично я бы хотел вообще отойти от этого и использовать SQLite, но, к сожалению, сейчас я не в состоянии сделать это.
Может кто-нибудь сказать мне, если есть замена с открытым исходным кодом для этих издержек COM? Я хотел бы, чтобы простая DLL, библиотека или набор исходных файлов были скомпилированы в мою программу, чтобы избавиться от интерфейса COM, который вызывает у меня столько горя.
Если вы действительно хотите знать, почему я хочу избавиться от интерфейса COM - это странно - мы использовали его в течение 10 лет без проблем. Недавно мы нашли клиента с Windows XP Embedded, и по какой-то причине при использовании интерфейса отправки IClientTable COM это приводит к тому, что сообщения Windows WM_QUERYENDSESSION поглощаются или перестают поступать в мое приложение. В ту минуту, когда я прекращаю использовать интерфейс IClientTable, я получаю сообщения WM_QUERYENDSESSION.
Вкратце: интерфейс диспетчеризации COM IClientTable, по-видимому, запрещает Windows выходить из системы / выключаться.