Список форумов www.integro.ru www.integro.ru
ЦСИ ИНТЕГРО
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Внешнее расширение для ИнГЕО

 
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков
Предыдущая тема :: Следующая тема  
Автор Сообщение
Алексей В. Бастриков



Зарегистрирован: 02.06.2008
Сообщения: 118
Откуда: ООО "Инфопроект", г. Екатеринбург

СообщениеДобавлено: Вт 02 Дек 2008 21:52    Заголовок сообщения: Внешнее расширение для ИнГЕО Ответить с цитатой

Не могу получить интерфейс IngeoApplication с помощью GetActiveObject. В чем ошибка?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Tulon



Зарегистрирован: 11.07.2006
Сообщения: 77
Откуда: Сочи

СообщениеДобавлено: Ср 21 Янв 2009 17:34    Заголовок сообщения: GetActiveObject Ответить с цитатой

Я использовал вот такую функцию - всё работает. Сверьтесь.

Код:
function  GetActiveIngeoApp: IIngeoApplication;
var
  anInterface: IUnknown;
begin
  if GetActiveObject(CLASS_IngeoApplication,nil,anInterface)=S_OK then
    Result:= anInterface as IIngeoApplication
  else
    Result:= nil;
end;

_________________
Нет ни чего сложнее, чем достигнуть простоты.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Алексей В. Бастриков



Зарегистрирован: 02.06.2008
Сообщения: 118
Откуда: ООО "Инфопроект", г. Екатеринбург

СообщениеДобавлено: Пн 26 Янв 2009 11:34    Заголовок сообщения: Ответить с цитатой

В какой библиотеке хранится эта функция?
Я не могу найти данной спецификации.
Есть только GetActiveObject(ProgID: String), а она не работает.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Tulon



Зарегистрирован: 11.07.2006
Сообщения: 77
Откуда: Сочи

СообщениеДобавлено: Пн 26 Янв 2009 12:33    Заголовок сообщения: Ответить с цитатой

Функция GetActiveObject(TGUID, Pointer, IInterface) находится в модуле ActiveX (библиотека oleaut32.dll).
_________________
Нет ни чего сложнее, чем достигнуть простоты.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Алексей В. Бастриков



Зарегистрирован: 02.06.2008
Сообщения: 118
Откуда: ООО "Инфопроект", г. Екатеринбург

СообщениеДобавлено: Пн 26 Янв 2009 13:51    Заголовок сообщения: Ответить с цитатой

Нашел сам: в oleauto.
Спасибо за помощь
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Алексей В. Бастриков



Зарегистрирован: 02.06.2008
Сообщения: 118
Откуда: ООО "Инфопроект", г. Екатеринбург

СообщениеДобавлено: Чт 19 Фев 2009 20:42    Заголовок сообщения: Ответить с цитатой

Сделал на C#, работающий код:

[DllImport("oleaut32.dll")]
public static extern long GetActiveObject(ref Guid rclsid, IntPtr pvResreved, out IntPtr ppunk);

public IngeoApplication GetActiveIngeo()
{
IntPtr ppunk;
Guid rclsid = new Guid("{04088492-0485-11D4-9719-000021C6D845}");
GetActiveObject(ref rclsid, IntPtr.Zero, out ppunk);
if (ppunk.ToInt32() != 0) return Marshal.GetObjectForIUnknown(ppunk) as IngeoApplication;
else return null;
}
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Алексей В. Бастриков



Зарегистрирован: 02.06.2008
Сообщения: 118
Откуда: ООО "Инфопроект", г. Екатеринбург

СообщениеДобавлено: Пт 27 Фев 2009 10:03    Заголовок сообщения: Ответить с цитатой

А кто нибудь делал врапперы на TM2AddOnManager для .NET?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Tulon



Зарегистрирован: 11.07.2006
Сообщения: 77
Откуда: Сочи

СообщениеДобавлено: Пт 27 Фев 2009 11:23    Заголовок сообщения: Ответить с цитатой

Алексей, а это не слишком жестоко совмещать старую модель API интерфейса и современную dotNET?
Может врапперы получится сделать используя Ingeo_TLB?

_________________
Нет ни чего сложнее, чем достигнуть простоты.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Алексей В. Бастриков



Зарегистрирован: 02.06.2008
Сообщения: 118
Откуда: ООО "Инфопроект", г. Екатеринбург

СообщениеДобавлено: Пт 27 Фев 2009 22:11    Заголовок сообщения: Ответить с цитатой

Я просто поинтересоваться хотел Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков Часовой пояс: GMT + 5
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете добавлять приложения в этом форуме
Вы можете скачивать файлы в этом форуме


© phpBB Group
Русская поддержка phpBB