Здравствуйте, sergey2b, Вы писали:
S>когда мне дали объект на доработку dll умела работать с одним типом контекста A S>потом добавили контекст B который имел общего предка с A
S>теперь добавили еще С и D и у них уже нет общего предка с A и B
S>подскажите пожалуйста какие есть хорошие варианты организовать
S>1) проверку что переданный handle валидный S>2) по нему получить поинтер на контест который может быть разных типов S>3) организовать хранение последнего кода ошибки для каждого контекста
Ну, навскидку. Завести общий абстракный базовый класс (IContext). Постараться сделать так, чтобы бОльшую часть работы с объектами можно было выполнять через этот абстрактный интерфейс. Возможность даункста тоже можно оставить, но не злоупотреблять ею — применять очень локализовано и только там, где это реально оправдано. Код последней ошибки сделать также сделать свойством этих обхектов, доступным через абстрактный интерфейс. Если я что-то не так понял, уточняй задачу.
--
Не можешь достичь желаемого — пожелай достигнутого.