Re[6]: Работа с COM-объектом через "точку"
От: George Seryakov Россия  
Дата: 18.05.06 14:58
Оценка:
Здравствуйте, Vi2, Вы писали:

Vi2>Если #import обнаруживает dispinterface (редкость, согласен), то формируется вызов через Invoke, т.е. осуществляя позднее связывание:

Vi2>
Vi2>    VARIANT _result;
Vi2>    _com_dispatch_method(this, 0x225, DISPATCH_METHOD, VT_VARIANT, (void*)&_result, L"\x080c", &Index);
Vi2>    return _variant_t(_result, false);
Vi2>


Колоссально! Глазам своим не верю, пришлось проверять:

#include "stdafx.h"
#import "libid:5D0CE84A-D909-11CF-91FC-00A0C903976F" no_namespace //должно работать везде

int _tmain(int argc, _TCHAR* argv[])
{
    ::CoInitialize(NULL);
    IObjectOnePtr o1(__uuidof(ObjectOne));
    _bstr_t sH = o1->SayHello(); // вот это - позднее связывание
    return 0;
}


Коли так, то это — исчерпывающий ответ на первоначальный вопрос. Я, правда, не нашел как заставить импорт обернуть дуальный интерфейс по диспатчному, но, некоторым хаком тлб это должно делаться.

А почему это у ИТ в статье про импорт не написано?
GS
Re[7]: Работа с COM-объектом через "точку"
От: Left2 Украина  
Дата: 19.05.06 08:10
Оценка:
GS>Коли так, то это — исчерпывающий ответ на первоначальный вопрос. Я, правда, не нашел как заставить импорт обернуть дуальный интерфейс по диспатчному, но, некоторым хаком тлб это должно делаться.

Cудя по всему — через атрибут no_dual_interfaces.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Работа с COM-объектом через "точку"
От: ned Австралия  
Дата: 19.05.06 12:52
Оценка:
Здравствуйте, Versus-13, Вы писали:

V1>Через это вопрос: Можно ли на VC++ получать доступ к свойствам и методам объекта через точку.


Еще вариант: создаем active script, погружаем туда нужные объекты, формируем VB (Java) скрипт и работаем через "точку"
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.