imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 06.10.2004, 13:57     # 1
alexey_ma
Member
 
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245

alexey_ma Нимб уже пробиваетсяalexey_ma Нимб уже пробивается
Эксперты VB, VBA, VBS и т.д. вопрос по формам Outlook

Есть некая форма Outlook-а (template - oft). Каким образом можно добраться до какого нибудь поля в этой форме и изменить в нем значение.
__________________
Best Regards
alexey_ma вне форума  
Старый 06.10.2004, 14:27     # 2
msustudent
Junior Member
 
Регистрация: 07.06.2004
Сообщения: 103

msustudent Нимб уже пробиваетсяmsustudent Нимб уже пробивается
Попробуй набрать в поисковике "объектная модель Outlook". Скорее всего ты получишь список объектов аутлука с их методами и свойствами(в терминах объектно-ориентированного программирования ). Сам я ни разу с аутлуком не работал поэтому не хочу придумывать.
msustudent вне форума  
Старый 06.10.2004, 14:38     # 3
alexey_ma
Member
 
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245

alexey_ma Нимб уже пробиваетсяalexey_ma Нимб уже пробивается
Смотрел. В том то и дело что неработает.
Код такой:
Код:
{
    HRESULT hr;
    IUnknownPtr spUnk;
    CLSID clsid;
    CLSIDFromProgID(L"Outlook.Application", &clsid); 
    hr = GetActiveObject(clsid, NULL, (IUnknown**)&spUnk); //OK
    IDispatchPtr spDisp;
    hr = spUnk->QueryInterface(IID_IDispatch, (void **)&spDisp); //OK
    if(FAILED(hr))
        return ;
    _ApplicationPtr spApp; 
    hr = spDisp->QueryInterface(&spApp);//OK
    if(hr==S_OK)
    {
        IDispatchPtr spPtr = spApp->ActiveInspector()->GetCurrentItem();
        _DMailItemPtr spDMailItem;
        PagesPtr spPages;
        FMPagesPtr spFmp;
        hr = spPtr->QueryInterface(&spDMailItem); //OK
        _bstr_t bstr = spDMailItem->GetBody(); //OK
        bstr = spDMailItem->GetTo(); //OK 
        spPtr = spApp->ActiveInspector()->GetModifiedFormPages();
        hr = spPtr->QueryInterface(&spPages); //OK
        IPagePtr spPage;
        long count = spPages->GetCount(); //OK

        _variant_t var;
        var.vt = VT_I2;
        var.iVal = 1;
        spPtr = spPages->Item(var); //OK 
        hr = spPtr->QueryInterface(&spPage); //E_NOINTERFACE
        
}
__________________
Best Regards
alexey_ma вне форума  
Старый 07.10.2004, 00:54     # 4
BC Scout
Junior Member
 
Аватар для BC Scout
 
Регистрация: 21.03.2004
Адрес: BC
Сообщения: 157

BC Scout Реально крут(а)BC Scout Реально крут(а)BC Scout Реально крут(а)BC Scout Реально крут(а)
Какой интересный VB, VBA у тебя

Если у тебя есть корректный референс на этот объект - template, то ничто не должно тебе помешать просто присваивать значения свойствам этого объекта (если только не read only) или, скажем, элементам коллекций.

Что нибудь в таком стиле:

MyForm As New <reference to template object>

MyForm.Sender="Vasya Pupkin"
MyForm.Fields("Sender")="Vasya Pupkin"
BC Scout вне форума  
Старый 07.10.2004, 09:55     # 5
alexey_ma
Member
 
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245

alexey_ma Нимб уже пробиваетсяalexey_ma Нимб уже пробивается
Не, я не создаю объект. Я пытаюсь изменить свойства уже запущенного.
Не могу получить указатель на форму(Page) хотя имею указатель на коллекцию Pages
Код:
        spPtr = spPages->Item(var); //OK 
        hr = spPtr->QueryInterface(&spPage); //E_NOINTERFACE
А про VB написал потому что такие вещи обычно делаются наVB, VBA.
Буду благодорен за работющий пример на любом языке.

Если бы не оганичения : Office 97 и Win NT , все можно было-бы сделать достаточно просто через IAccessible ,который позволяет до любого объекта добраться
__________________
Best Regards
alexey_ma вне форума  
Старый 08.10.2004, 00:19     # 6
BC Scout
Junior Member
 
Аватар для BC Scout
 
Регистрация: 21.03.2004
Адрес: BC
Сообщения: 157

BC Scout Реально крут(а)BC Scout Реально крут(а)BC Scout Реально крут(а)BC Scout Реально крут(а)
Поройся в этом ресурсе, может быть поможет
http://www.outlookcode.com/threads.a...messageid=7530

ну и здесь, конечно,
http://msdn.microsoft.com/library/de..._C11612730.asp

Последний раз редактировалось BC Scout; 08.10.2004 в 00:24.
BC Scout вне форума  
Старый 10.10.2004, 18:09     # 7
alexey_ma
Member
 
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245

alexey_ma Нимб уже пробиваетсяalexey_ma Нимб уже пробивается
Спасибо.
Первый ресурс очень интерсный. Может чего нибудь найду.
А у MS смотрел. То что я делаю соответствует примерам(конечно в переводе с VB на VC), да только к сожалению не работает.
__________________
Best Regards
alexey_ma вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 13:22.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.