Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.02.12;
Скачать: [xml.tar.bz2];

Вниз

Инициализация COM и получение доступа к объекту   Найти похожие ветки 

 
DenXi ©   (2006-01-25 01:43) [0]

Привет, мастера!
Пишу сервис, который иногда должен добавлять в Word текст.
Открывать и добавлять текст при помощи CreateOleObject не подходит, т.к. мне необходимо работать с Word только в том случае, если он уже открыт. С CreateOl...... не получается, т.к. он создает новый экземпляр приложения. Может, можно как-нить при помощи GetActiveOleObject?

И второе: почему у меня в ComObj нет CoInitialize и CoUnitialize, хотя CoInitializeEx есть? Может, не так делаю? Как правильно инициализировать библиотеки COM и чито для этого в uses писать?

Заранее благодарен :)))


 
Alex_V ©   (2006-01-25 04:36) [1]

а не проще использовать компоненты со страницы Servers там все есть для вашей задачи...


 
Набережных С. ©   (2006-01-25 07:17) [2]


> DenXi ©   (25.01.06 01:43)  


> Может, можно как-нить при помощи GetActiveOleObject

Чтобы эта функция работала для сервера, запущенного в отличной от клиента оконной станции, сервер при регистрации себя в таблице активных объектов должен предпринять дополнительные действия, которые Word не делает, если не ошибаюсь. До XP можно было перед вызовом подключить сервисный процесс к интерактивной оконной станции, но в WinXP это усугбляется тем, что у клиента и сервера разные терминальные сессии. Пути решения есть, но они не слишком простые, а так, как у меня такой необходимости не было, то я их и не проверял. Самый, пожалуй, простой - запустить дополнительное приложение в интерактивной сессии, которое получит интерфейс сервера и любым способом передаст его сервису.


 
DenXi ©   (2006-01-25 13:44) [3]


> Alex_V


мне эта вкладка не интересна, т.к. я учусь на WinAPI, что б потом в C++ можно было спок перенести (но все равно пасиб :))))


> Набережных С.

спасибо......

Но прошу обратить еще внимание на мою первую проблему.... В каком модуле ActiveX или ComObj все это??? Ни то, ни другое не пашет с CoUnitialize и CoInitialize - просто нет там этого и все!


 
DenXi ©   (2006-01-25 13:48) [4]


> первую проблему


точннее, вторую :)))


 
sniknik ©   (2006-01-25 13:56) [5]

описаны в ActiveX, только у тебя с написано неправильно (только сдесь?) первая функция.


 
DenXi ©   (2006-01-25 14:04) [6]

это опечатка, CoUninitialize..... Но дык и говорю: в мое делфе в ActiveX не пашет ни CoIni....., ни CoUin...... В чем дело - ума не приложу! Вообще там на Co...... функций и процедур даже нет!!!!!

И в чем это дело.......................


 
DenXi ©   (2006-01-25 14:15) [7]

А не...........  Пашет! Все, спасиб.  Всем пасиб! :))))))))))))


 
DenXi ©   (2006-01-25 14:18) [8]

А такой вопрос: если я работаю в потоке, сколько раз мне необходимо инициализировать COM? Один раз???? И если я его приостанавливаю, влияет ли это на COM, нужно ли мне снова потом все инициализировать?


 
Digitman ©   (2006-01-25 14:21) [9]


> Один раз


Да, один раз.
На весь период жизни потока.
Вне зависимости от того сколько раз за время своей жизни поток был усыплен и разбужден.


 
DenXi ©   (2006-01-25 14:22) [10]

спаибо!!!!


 
DenXi ©   (2006-01-25 14:37) [11]


> Набережных С.


Ну предположим, мой сервис создает экзэмпляр Word и время от времени работает с ним....... возникает другая проблема: когда пользоваетель закрывает этот экзэмпляр - новый не создается и происходит исключение.... а с этим че делать???


 
DenXi ©   (2006-01-25 15:38) [12]

так.... все, я сам разобрался.... дело в обработке исключений....



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.02.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.035 c
15-1138103841
ZMRaven
2006-01-24 14:57
2006.02.12
WB и его проблемы


15-1137789335
Cerberus
2006-01-20 23:35
2006.02.12
Рассказик


2-1138107504
stels
2006-01-24 15:58
2006.02.12
проверка Edit на пустоту


4-1133439814
Tor
2005-12-01 15:23
2006.02.12
Получение координат иконки в sys tray


1-1137225938
NotBeginer
2006-01-14 11:05
2006.02.12
Не могу понять причину





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский