Не удалось создать элемент управления object-activex в VC++ 6.0
Ниже метод выполняется два раза, первый раз возвращая -2,147,467,262 для значения HRESULT и второй раз ноль, для создания одного объекта, и в конечном итоге не удается создать объект управления ActiveX.
Value of HRESULT shows hresult = STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv) { HRESULT hres = _Module.GetClassObject(rclsid, riid, ppv); return hres; }
Что я уже пробовал:
отрицательное значение HRESULT переводится в код ошибки 0x80004002 / E_NOINTERFACE с описанием "такой интерфейс не поддерживается".
Jochen Arndt
Каковы значения rclsid и riid при вызове этой функции?
Они говорят вам, какие com-интерфейсы (riid) не присутствуют в классах (rclsid).
Затем проверьте, присутствует ли и зарегистрирована ли библиотека DLL, содержащая объекты.
navneet@ISM
Функция DllGetClassObject выполняется два раза, rclsid остается неизменным в обоих исполнениях. Дополнительно:
При первом выполнении riid = IID_IClassFactory2, ppv = 0x005be5bc, hresult = -2147467262 ;
Во втором исполнении: riid = IID_IClassFactory, ppv = 0x005bf2ec, hresult = 0
Jochen Arndt
Таким образом, DLL, содержащая объекты, не поддерживает IID_IClassFactory2.
Вам действительно нужен этот интерфейс (он требуется только тогда, когда объект защищен лицензией).
Вы должны спросить поставщика библиотеки DLL или проверить документацию.
navneet@ISM
Попытался добавить этот элемент управления ActiveX в диалоговое окно другого базового приложения mfc, щелкнув правой кнопкой мыши и нажав "вставить элемент управления ActiveX". Это дает две ошибки на рыси как:
1.элемент управления ActiveX не может быть создан.
2." Times Control " не является допустимым элементом управления ActiveX. В нем отсутствует необходимый интерфейс.
Что меня смущает, так это то, что я смотрю на все зарегистрированные объекты автоматизации, проект которых компилировался в a .dll-файл присутствует в виде файла. OCX