2015-03-11 2 views
0

Мы используем сторонний элемент управления ActiveX в нашем приложении, недавно в соответствии с нашим запросом они добавили новую функцию в интерфейс управления ActiveX, и мы пытаемся получить доступ к этой функции в нашей заявление. По какой-то причине есть вероятность, что мы не сможем развернуть наш сторонний элемент управления ActiveX, но мы развертываем наше приложение. Таким образом, у старого стороннего ActiveX нет новых функций, но наше приложение, которое использует эту функцию, пытается получить доступ к новой функции. Из-за этого мы получаем некоторое непоследовательное поведение в случае сбоя или сообщения об ошибке. Итак, мы хотели понять, что существует какой-либо способ определения функции стороннего элемента управления ActiveX или нет в нашем приложении? Поэтому на основе этого мы хотели избежать вызова этой функции. Спасибо.Как определить интерфейс управления ActiveX имеет функцию в клиентском приложении

ответ

1

Ну, вы можете получить информацию о библиотеке типов и попытаться прочитать и пройти ее, чтобы определить, существует ли функция.

Или вы можете вызвать функцию через IDispatch :: Invoke и посмотреть, не сработает ли она. Если это не удается, не вызывайте его снова и вызывайте функцию возврата.

Итак, у него нет отдельного гида для двух разных интерфейсов? Технически, это предполагается ... но иногда поставщики не предоставляют новые Guids для обновленных интерфейсов .... Я молюсь 5-го.

Способ, которым предполагается работать, - это QueryInterface для интерфейса, который вы хотите, и использовать его.

Смежные вопросы