Здравствуйте, Mr. None, Вы писали:
MN>Нет под рукой Win 9x, но что-то мне подсказывает, что так оно и должно быть — не умеет 9x рулить правами. Если я не ошибаюсь, то туда даже лазить не надо, я решал в точности такую же задачу некоторое время назад. И решал её следующим способом:
MN>1) через CoInitializeSecurity на клиенте убирал всю секьюрность — CoInitializeSecurity( 0, -1, 0, 0, RPC_C_AUTHN_LEVEL_NONE, RPC_C_IMP_LEVEL_IMPERSONATE, 0, EOAC_NONE, 0 );
MN>2) на сервере перед вызовом через CoSetProxyBlanket изменял настройки безопасности прокси клиентского объекта — отключал всю секьюрность для него к чёртовой бабушке: CoSetProxyBlanket( eventObj, RPC_C_AUTHN_NONE, RPC_C_AUTHZ_NONE, 0, RPC_C_AUTHN_LEVEL_NONE, RPC_C_IMP_LEVEL_IDENTIFY, 0, EOAC_NONE );
MN>А вот глобальные настройки DCOM`а на клиентской машине (там вообще Win95 стояла), кажись были выставлены по-умолчанию...
А можно поподробнее, желательно с примерами. Где конкретно эти функции вызывать. У меня серверная часть написана на VB6, клиентская на Delphi 7. Объект из клиента вызывается так:
ITBLoader:=CoclsTBLoad.CreateRemote(mConf.ServerName);
oTBLoader:=TclsTBLoad.Create(Application);
oTBLoader.ConnectTo(ITBLoader);
oTBLoader.OnChangeState:=onChangeState;
nRet:=oTBLoader.Load();