Magister писал(а) 21. Декабря 2010 :: 20:36:Такс... посмотрел вашу подмену config.dll - все понятно...
Просто подменяете вызов GetMessageW из wbase82.dll на свой (переписав в памяти, предварительно выставив PAGE_EXECUTE_READWRITE на эту область), и при обнаружении требуемого события дергаете getLine&company из core82.dll.
Ну, подмена GetMessageW - это просто малозначимые технические детали.
Вся сложность в том, чтобы от имеющегося HWND текстового окна получить адреса объектов, для которых можно "дергать getLine&company из core82.dll"
Magister писал(а) 21. Декабря 2010 :: 20:36:В принципе уже неплохо, но мало.... вот бы разобраться что это за SCOM такой... у меня пока не получилось. А у вас продвинулось что-то дальше?
SCOM - ну это видимо просто внутреннее название 1С для своих целей. На деле там почти все объекты выполнены обычными COM-объектами (наследники от IUnknown), платформа реализации - ATL. Правда, иногда они для некоторых методов своих интерфейсов забываю указывать stdcall, и используется "родной" thiscall. База для окошек - тоже ATL, что и позволило мне от HWND окна получить адрес объекта, связанного с этим окном. Ну и раскручивать все дальше. Пока получается неплохо, во вложении один скриншот и два скринкама (экзешники) - небольшие демки - выравнивание знаков '=' и "умный Enter".
Добрался до метаданных, по крайней мере на чтение - перебираю, получаю свойства, тексты модулей. Все на лету, те при изменении метаданных/текстов модулей в конфигураторе я их уже вижу, еще до сохранения.
Magister писал(а) 21. Декабря 2010 :: 20:36:Кстати, попалась вот ссылочка: wcpp.googlecode.com. Что-то названия похожие, посмотрите кто в С++ шарит, может оно?
Это вообще не то.