Всем доброй ночи! Возникла проблемма, никак не могу правильно зарегистрировать плагин для IE. Что только не делал, где только не смотрел. Все без толку. Может чтото я не так делаю. Вот мои действия: в ключе HKEY_CLASSES_ROOT\CLSID создаю {00000000-0000-0000-0000-000000000001} в нем InprocServer32, значение параметра ( C:\sample.dll ) в ключе HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions создаю {00000000-0000-0000-0000-000000000001} в нем CLSID значение {1FBA04EE-3024-11d2-8F1F-0000F87ABD16} еще ClsidExtension значение {00000000-0000-0000-0000-000000000001} так же пробовал прописать сюда: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects создаю {00000000-0000-0000-0000-000000000001} но мой плагин не подгружается Да, вобще возможно ли зарегать плагин, без использования regsvr32.exe? Если да, то как? Какие ключи реестра надо создать? И что прописать? А то я уже замучался, ну никак не хочет регатся плагин. Посоветуйте как поступить. Заранее благодарен.
Доброй ночи. Все никак не могу решить проблемму с плагином. [] При открытии страницы в IE должно появится MessageBox. Почему оно не появляется? Может быть ошибка в коде? Или я опять не так зарегистрировал плагин? Важно: чтобы регистрация была, без использования regsvr32.exe. Помогите найти ошибку ( если она есть ) и решить эту проблемму. Заранее благодарен.
regsvr32 просто вызывает DllInstall. Можешь и сам её вызвать. А по коду - хоть бы CLSID сгенерировал нормальный (CoCreateGuid).
IceStudent спасибо за совет. Проблемма в кривом CLSID? Да? Ведь в остальном то все правильно, я прав?
IceStudent я изминил CLSID на {0x32993b06, 0xcc8c, 0x4913, 0x85, 0xf3, 0x63, 0x97, 0x7e, 0xae, 0x7e, 0x9a}. Но все равно, при открытии IE, не выскакивает MessageBox. В чем дело? почему так?
Там пример с использованием ATL. А мой без ( реализация с помощью ATL меня не интересует ). Лучше подскажите что в моем BHO не так. Код верный, ключи в реестр я добавил правильно. Тогда почему не выскакивает MessageBox? Посоветуйте в чем может быть проблема. Я уже вторые сутки не могу понять ошибку. Что я сдеал не так?
asmic А где DllRegisterServer/DllUnregisterServer? Даже если ATL не интересует, почитать статью все же стоит.
Да простит меня ТС за маленький оффтоп . А вот если плагин будет связываться зачем нибудь с удаленным сервером . Тогда его фаер пропустит ? При условии , что ie уже в списке доверенных процесcов фаера ?
Всем доброго дня! У меня такой вопрос. У меня не вызывается DllGetClassObject. Хотя мой плагин подгружается вместе с IE ( ключи в реестре указаны правильно ). В чем может быть проблемма? Да, чтобы определить вызывается ли DllGetClassObject, я использовал MessageBox ( так как другого способа отладки я не придумал, т.к. в IDE нет отладчика ). Код: Код (Text): STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppvOut) { MessageBox(0,"DllGetClassObject",0,MB_OK); HRESULT hr; MyClassFactory *pCF; pCF = 0; if (rclsid != CLSID_BHO) return (E_FAIL ); pCF = new MyClassFactory; if ( pCF == 0 ) return( E_OUTOFMEMORY ); hr = pCF->QueryInterface ( riid,ppvOut ); if ( FAILED( hr ) ) { delete pCF; pCF = 0; return CLASS_E_CLASSNOTAVAILABLE; } return hr; } STDAPI DllCanUnloadNow(void) { return (gref>0)?S_FALSE:S_OK; } BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { MessageBox(0,"DllMain",0,MB_OK); if (fdwReason==DLL_PROCESS_ATTACH) { hInstance=hinstDLL; } return TRUE; } Вот сел в лужу, и не могу понять почему не вызывается DllGetClassObject. В чем может быть проблемма? Посоветуйте. Заранее благодарен.
Я понял что мой плагин ( библиотека ), подгружается исходя из того что выскакивает MessageBox при открытии IE. Код (Text): BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { MessageBox(0,"DllMain",0,MB_OK); // вот этот MessageBox if (fdwReason==DLL_PROCESS_ATTACH) { hInstance=hinstDLL; } return TRUE; } И еще потому что мою библиотеку нельзя удалить пока я не закрою IE. Да я вот только понять не могу почему не вызывается DllGetClassObject.
Обьясните пожалуйста в чем моя ошибка. Что я делаю не так. А то я уже совсем запутался, вроде бы все верно. А все равно не работает. Заранее благодарен. Да, как можно отлаживать COM, без использования VS C++. Есть способы?