Поиски дали следующее:
http://msdn.microsoft.com/en-us/library/aa767916(VS.85).aspx
и
viewtopic.php?f=1&t=9318&p=55776
Собственно, всё замечательно.
Но из опыта работы с COM у меня только библиотечка-расширение для 1С, имплементящая две с половиной функции интерфейса, описанного в прилагавшейся к документации TLB.
Пока в активе - найденные olelib.tlb и olelib2.tlb с исходниками, и желание написать этот самый MIME-Filter. Чего же для этого надо сделать пока представляю слабо. Толкните, плиз, в нужном направлении.
З.Ы. В принципе, есть у меня "чужая"(откопанная где-то на необъятных просторах винта) библиотечка, которая для этого изначально предназначалась. И даже, судя по всему, в ней всё что нужно есть (я точно помню, что она работала, и даже что-то фильтровала). Всё бы замечательно, но мне пока совершенно непонятно, как использовать хотя бы её. Дело осложняется тем, что мне нужно, чтобы фильтр работал "временно". Т.е. запущено приложение-контроллер. Пока оно работает - работает и фильтр. Как только прекратило - фильтр отключается.
Наткнулся на такой пример:
- Код: Выделить всё
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'CComPtr<IInternetSession> m_spSession ;
Dim m_spSession As UrlMon.IInternetSession
'CComPtr<IClassFactory> m_spClassFactoryMime ;
Dim m_spClassFactoryMime As UrlMon.IClassFactory
'hr = ::CoGetClassObject( CLSID_MimeFilter, CLSCTX_SERVER,
' NULL, IID_IClassFactory,
' (void**)&m_spClassFactoryMime );
m_spClassFactoryMime = CoGetClassObject(GetStdGUID("FC3BAAF1-AD41-4141-BC28-5167E29E3B14"), CLSCTX.CLSCTX_SERVER, _
IntPtr.Zero, GetStdGUID("00000001-0000-0000-C000-000000000046"))
'if( hr == S_OK )
'{
' if( ::CoInternetGetSession( 0, &m_spSession, 0) ==S_OK )
CoInternetGetSession(0, m_spSession, 0)
' {
' m_spSession->RegisterMimeFilter(m_spClassFactoryMime,
' CLSID_MimeFilter,
' L"text/html" );
m_spSession.RegisterMimeFilter(m_spClassFactoryMime, New Guid("FC3BAAF1-AD41-4141-BC28-5167E29E3B14"), "text/html")
' }
'}
Me.AxWebBrowser1.Navigate("http://gouki/alieni.htm")
End Sub
Перевёл его на VB. Он "работает" (по крайней мере result'ы всех вызываемых ф-ции - S_OK) Но ничего не происходит. Т.е. IE как отображал то, что эта библа фильтрует, так и отображает..