Тема: C# и MAPI
Показать сообщение отдельно
Старый 31.05.2007, 12:17     # 4
alexey_ma
Member
 
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245

alexey_ma Нимб уже пробиваетсяalexey_ma Нимб уже пробивается
Можно попытаться и Word получить через AccessibleObject. Я правда никогда не пробовал, но есть большая вероятность что будет работать.
Порядок действий должен быть следующий :
Получить AccessibleObject из окна или точки (функция AccessibleObjectFromPoint).
Потом из AccessibleObject-а получить IServiceProvider, примерно так :
Код:
IServiceProviderPtr pSP;
IAccessiblePtr pAcc;
if(AccessibleObjectFromPoint(pt, &pAcc, &varId)==S_OK)
	{
		if(pAcc->QueryInterface(IID_IServiceProvider, (void **)&pSP)==S_OK)
		{
			//Тут сделать QueryService на соответствущий СОМ интерфейс Ворда
			Word::_DocumentPtr spDoc;;
			if(pSP->QueryService(Word::IID_Document,Word::IID_Document, (void **)&spDoc)==S_OK)
			{
				....
			}
		}
Не уверен что правильно написал интерфейсы Ворда, нужно пробовать.
Но сам принцип должен работать. Я в своих прогах таким образом получаю HTML елементы из экранной точки.
__________________
Best Regards
alexey_ma вне форума