Здравствуйте! Все по порядку. Необходимо было сделалать обработчик скриптов (Script Engine) для Windows XP и выше, смысл его просто в том, чтобы пропускать через себя все запущенные скрипты (JS,VB и т.д.) и передавать скрипт оригинальному обработчику без изменений (например в случае с JS - jscript.dll). Насколько я понимаю именно так делают антивирусы для анализа вредоносных скриптов. Обработчик сделан - это COM-объект с реализацией интерфейсов IActiveScript, IActiveScriptParse, IObjectSafety. Этот обработчик прописывается в реестре на место оригинального. При вызове самописного обработчика он определяет оригинальный обработчик и из него вызывает интерфейсы IActiveScript, IActiveScriptParse: Код (Text): ... (*realModule) = LoadLibrary( "jscript.dll" ); if ( NULL != (*realModule) ) { pfnDllGetClassObject = ( m_PFNDLLGETCLASSOBJECT )GetProcAddress( (*realModule), "DllGetClassObject" ); if ( NULL != pfnDllGetClassObject ) { pfnDllGetClassObject( scriptEngineCLSID, IID_IClassFactory, ( void** )&pFactory ); if ( NULL != pFactory ) { hr = pFactory->CreateInstance( NULL, IID_IActiveScript, ( void** )realScriptEngine ); pFactory->Release(); if ( FAILED( hr ) ) { goto FreeRes; } hr = (*realScriptEngine)->QueryInterface( IID_IActiveScriptParse, ( void** )realScriptParser ); ... Далее в самописном обработчике в реализации методов интерфейсов IActiveScript, IActiveScriptParse просто вызываются методы интерфейсов из оригинального обработчика: Код (Text): ... STDMETHODIMP CScriptEngineCOM::GetScriptSite( REFIID riid, void** ppv ) { return m_gpRealScriptEngine->GetScriptSite( riid, ppv ); } return E_FAIL; } ... Тоесть просто идет проброс параметров в методы оригинального обработчика. Данный самописный обработчик работает исправно, если вызывать "внешние" скрипты, то есть, например, файлы *.JS со скриптом. Проблемы начинаются тогда, когда скрипты обрабатываются, например, в IE (тестировалась версия 8). Некоторые скрипты обрабатываются нормально, а некоторые валят IE (а точнее mshtml.dll). Причем по отладке видно, что скрипт перехватился моим обработчиком, а когда начинается выгрузка COM-a, то освобождаются ресурсы после чего идет падение. Пример информации о падении: Код (Text): Сигнатура проблемы: Имя события проблемы: APPCRASH Имя приложения: iexplore.exe Версия приложения: 8.0.7600.16385 Отметка времени приложения: 4a5bc69e Имя модуля с ошибкой: mshtml.dll Версия модуля с ошибкой: 8.0.7600.16385 Отметка времени модуля с ошибкой: 4a5bda8a Код исключения: c0000005 Смещение исключения: 0017d347 Версия ОС: 6.1.7600.2.0.0.256.1 Код языка: 1049 Дополнительные сведения 1: 0a9e Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789 Дополнительные сведения 3: 0a9e Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789 Может кто-нибудь сталкивался с подобными ситуациями, в чем может быть дело? И если есть примеры реализации обработчиков скриптов, то очень буду благодарен! Спасибо.