Здравствуйте, Vi2, Вы писали:
Vi2>Здравствуйте, mr.Vitaly, Вы писали:
Vi2>Я не знаю, как обстоит дело именно с CommandBarControl. Вполне возможно, что он просто выполняет процедуру, имя которой ему было передано. В этом и состоит действие события OnAction. Как? Ну, например, с помощью скрипта в VB или другим способом
Vi2>Vi2> ScriptControl1.Run sNameOfOnAction, параметры...
Vi2>или
Vi2> ScriptControl1.Eval sNameOfOnAction
Vi2>
Вот именно в этом то и все дело — как же сервер распоряжается этим OnAction, если клиент его никаким образом не запрашивает. Клиент непосредственно своим кодом не ставит обработчик, а просто, например, присваивет OnAction = "MySub(1, Now())". Заметим, что MySub — это локальная функция в адресном пространстве клиента и outproc сервер ее никак не может вызвать. К тому же сервер может быть написан на С++ и вообще не понимать синтаксис Basic'a. Так что, мне кажется, клиент как-то хитро должен эдвайзиться к серверу и потом забирать это выставленное OnAction. А я пишу сервер и хотелось бы знать, как реализовать аналогичную функциональность. И, вообще, это клиентом не обязательно будет Basic, а может быть и JavaScript, а сервер, в принципе, этого не отличает.
Как мне кажется, там сама библиотека Basic RunTime, эдвайзится к чему-то и получает этот OnAction, но вот что надо реализовать, чтобы клиент мог правильно приэдвайзиться, я не знаю.
Если есть еще идеи, то буду очень за них благодарен.