Здравствуйте, darkhunter, Вы писали:
D>Как можно сделать такой COM-объект, который бы всем его создавшим потокам (нитям) предоставлял какие-либо данные и позволял их модифицировать, вроде как static-переменные в классах? D>спасибо.
Делаешь глобальные переменные. Либо статики в классе. Не забываешь синхронизировать доступ. Для внепроцессного сервера — данные в этих переменных будут разделяемы между всеми инстансами, созданными так, что имплементация COM-объекта оказалось в одном и том же процессе. (Какая неуклюжая оговорка! А все потому что и внепроцессный сервер может в нескольких процессах оказаться). Для внутрипроцессного сервера данные будут разделяться между всеми инстансами созданными в одном (клиентском) процессе.
Интересный вопрос — как сделать разделяемыми между разными процессами. Ну, сделать расшаренные сегменты, memory-mapped files вместо глобальных переменных.
Совсем интересный вопрос — как расшарить данные между разными машинами. Можно, к примеру, положить их в БД на общий сервер. Или Active Directories. Или файл-сервер. Или еще какой разделяемый (COM?) сервер сделать.
А вот если на разных машинах, не соединенных сетью, то уже, кажется, нельзя... Дискеткой же не считается?