Сообщество, у меня есть довольно интересная и в то же время тяжелая проблема. У меня есть приложение VB .NET + Service + C++. Метод C++ приложение генерирует некоторые данные и делает обратные вызовы с использованием InvokeHelper():InvokeHelper() throws Доступ исключен исключение
InvokeHelper(0x60030000, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
eventType, eventValue);
Первым параметром является DISPID методы, который должен быть вызван. Странный подход, но это не мой код, и я не могу изменить этот путь.
В службе У меня есть метод, отмеченный атрибутом dispid, чтобы получить этот обратный вызов из приложения C++.
<DispId(&H60030000)>
Public Sub ServerEvent(ByVal vEventType As Integer, ByVal vEventValue As Object)
RaiseEvent ControlPanelStateChange(vEventType, vEventValue)
End Sub
Этот код работает правильно, если я вошел в систему как администратор. Но если окна пользователь имеет право администратора не сразу после вызова метода() InvokeHelper следующего исключения происходит:
первого шанс исключения в 0x75B7C42D (KernelBase.dll) в: 0x80070005 приложению application.exe: Доступ запрещен
Есть ли у вас идеи? Я играл с разрешениями DCOM, но результат тот же.
Любая помощь будет фантастической!