Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

distance

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
 
    public class JScriptSite : IActiveScriptSite
    {
        private Dictionary<String, Object> _interfaceMap = new Dictionary<string,Object>();
        private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
 
        public JScriptSite()
        {
        }
 
        // добавить именованный объект в пространство движка.
        // после добавления объект будет доступен внутри скрипта.
        public void AddNamedItem(String s, Object obj)
        {
            try
            {
                if (this._interfaceMap.ContainsKey(s))
                    this._interfaceMap[s] = obj;
                else
                    this._interfaceMap.Add(s, obj);
            }
            catch (Exception e)
            {
                log.Error("AddNamedItem: " + e.Message);
            }
        }
 
        #region IActiveScriptSite Members
 
        public void GetLCID(out uint plcid)
        {
            plcid = (uint) CultureInfo.CurrentCulture.LCID;
        }
 
        public void GetItemInfo(
            string pstrName,
            uint dwReturnMask,
            out object ppiunkItem,
            IntPtr ppti)
        {
            ppiunkItem = null;
            if (this._interfaceMap.ContainsKey(pstrName))
            {
                ppiunkItem = this._interfaceMap[pstrName];
                if (ppti != IntPtr.Zero)
                {
                    Marshal.WriteIntPtr(
                        ppti,
                        Marshal.GetITypeInfoForType(ppiunkItem.GetType())
                        );
                }
            }            
        }
 
        public void GetDocVersionString(out string pbstrVersion)
        {
            throw new NotImplementedException();
        }
 
        public void OnScriptTerminate(ref object pvarResult, ref EXCEPINFO pexcepinfo)
        {
            
        }
 
        public void OnStateChange(uint ssScriptState)
        {            
        }
 
        public void OnScriptError([In, MarshalAs(UnmanagedType.IUnknown)] object pscripterror)
        {
            EXCEPINFO ei;
            IActiveScriptError err = (IActiveScriptError)pscripterror;
            err.RemoteGetExceptionInfo(out ei);
 
            log.Warn("OnScriptError: " + ei.bstrDescription);
            log.Warn("sCode=" + ei.scode + " wCode=" + ei.wCode);
        }
 
        public void OnEnterScript()
        {            
        }
 
        public void OnLeaveScript()
        {            
        }
 
        #endregion
    }
 
 

Всего записей: 878 | Зарегистр. 28-03-2004 | Отправлено: 20:35 13-09-2007
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru