Чтение онлайн

на главную - закладки

Жанры

Программирование на Visual C++. Архив рассылки

Jenter Алекс

Шрифт:
ATL
Тема Ключевое слово
Active Template Library (ATL) kbATL
Ver. 1.1 Active Template Library, версия 1.1 kbATL110
Ver. 2.0 Active Template Library, версия 2.0 kbATL200
Ver. 2.1 Active Template Library,
версия 2.1
kbATL210
Ver. 3.0 Active Template Library, версия 3.0 kbATL300
Поддержка окон в ATL kbATLWC
Провайдеры и потребители в ATL kbDTL
Прочее
Тема Ключевое слово
Статьи, написанные группами технической поддержки Микрософт kbDSupport
Общая информация, не относящаяся к программированию kbGenInfo
Взаимодействие с MSDN kbMSDN
Компоненты и драйверы третьих фирм kb3rdparty 

ВОПРОС-ОТВЕТ 

Как вызвать скрипт из приложения?

Автор: Тимофей Чадов

При использовании WebBrowser Вы можете вызывать любые скрипты, расположенные в теле html-страницы. Обращение к скриптам производится через диспетчерский интерфейс, возвращаемый в свойстве Script интерфейса IHTMLDocument.

В следующем примере демонстрируется вызов функции с именем evalute, которая определена в теле html-страницы следующим образом.

<SCRIPT>

 function evaluate(x) {

alert(x + "= " + eval(x));

 }

</SCRIPT>

// Эта функция выполняет скрипт

void CMyHtmlView::OnCallscript {

 HRESULT hr;

 LPDISPATCH pDispatch = GetHtmlDocument;

 if (pDispatch == NULL) return;

 IHTMLDocument* pHtmlDoc;

 hr = pDispatch->QueryInterface(__uuidof(IHTMLDocument), (void**)&pHtmlDoc);

 LPDISPATCH pScript;

 pHtmlDoc->get_Script(&pScript);

 pScript->AddRef;

 if (SUCCEEDED(hr)) {

// Получаем DISPID интересуемой функции

OLECHAR* szMember = L"evaluate";

DISPID dispid;

HRESULT hr = pScript->GetIDsOfNames(IID_NULL, &szMember, 1, LOCALE_SYSTEM_DEFAULT, &dispid);

if (SUCCEEDED(hr)) {

//
Выполняем

COleVariant vtResult;

static BYTE parms[] = VTS_BSTR;

COleDispatchDriver dispDriver(pScript);

dispDriver.InvokeHelper(dispid, DISPATCH_METHOD, VT_VARIANT, (void*)&vtResult, parms, "5+Math.sin(9)");

}

 }

 pScript->Realease;

 pHtmlDoc->Release;

 pDispatch->Release;

}

ФОРУМ RSDN – ИЗБРАННОЕ

Тема: Коллеги, улыбнитесь

От: adonz

…В продолжение темы: 

• Главная программа – функции malloc: Прошу обеспечить выделение 257 килобайт Conventional Memory.

• Функция malloc – операционной системе: Прошу выделить 257 килобайт Conventional Memory в связи с производственной необходимостью.

• Операционная система – главной пpограмме: Выделить 257 килобайт Conventional Memory не представляется возможным в связи с отсутствием таковых. Есть 3 мега Extended. Берете?

• Главная программа – обработчику исключений: С памятью облом. Что делать будем?

• Обработчик исключений – процедуре оптимизации: Необходимо добиться экономии памяти за счет более pационального использования системных ресурсов.

• Контроллер прерываний – обработчику прерываний: Тут это… юзер кнопку нажал…

• Главная программа – обработчику прерываний: Hе дергайся! Подержит и отпустит.

• Процедуpа оптимизации – обработчику исключений: Готово!

• Главная программа – обработчику исключений: Ну что там?

• Обработчик исключений – главной программе: Еще хуже стало. Может, на диск посвопимся?

• Главная программа – жесткому диску: Прошу принять на хpанение swap-файл в размере 257 килобайт.

• Жесткий диск – главной программе: Ваша просьба не может быть удовлетворена за недостатком места.

• Главная программа – опеpационной системе: Что еще за глюк? Было же место!

• Жесткий диск – главной программе: Ничего не глюк. Вы еще прошлый swap-файл на 4 мега не забрали. А я, между пpочим, не резиновый. И даже не stacker'ный.

• Контроллер прерываний – обработчику прерываний: Тут это… юзер опять кнопку давит…

• Обработчик прерываний – PC speaker'у: Hу скажи ему что-нибудь, пусть отвяжется!

• PC speaker – юзеру: Биип!

• Главная программа – операционной системе: Ну может можно чего-нибудь перераспределить?

• Операционная система – главной программе: Другим задачам тоже память нужна. Вам что, General Protection Error схлопотать охота?

• Главная программа – хакерской функции: Ну-ка выясни, кто там отожрал всю память, и выкини их к XTшной матеpи!

Поделиться:
Популярные книги

Курсант: назад в СССР

Дамиров Рафаэль
1. Курсант
Фантастика:
попаданцы
альтернативная история
7.33
рейтинг книги
Курсант: назад в СССР

Чужая семья генерала драконов

Лунёва Мария
6. Генералы драконов
Фантастика:
фэнтези
5.00
рейтинг книги
Чужая семья генерала драконов

Пышка и Герцог

Ордина Ирина
Фантастика:
юмористическое фэнтези
историческое фэнтези
фэнтези
5.00
рейтинг книги
Пышка и Герцог

Имперский Курьер. Том 5

Бо Вова
5. Запечатанный мир
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Имперский Курьер. Том 5

Имя нам Легион. Том 7

Дорничев Дмитрий
7. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 7

Возвышение Меркурия

Кронос Александр
1. Меркурий
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия

Законы Рода. Том 11

Андрей Мельник
11. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 11

Измена. (Не)любимая жена олигарха

Лаванда Марго
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. (Не)любимая жена олигарха

Вираж бытия

Ланцов Михаил Алексеевич
1. Фрунзе
Фантастика:
героическая фантастика
попаданцы
альтернативная история
6.86
рейтинг книги
Вираж бытия

Отмороженный 11.0

Гарцевич Евгений Александрович
11. Отмороженный
Фантастика:
боевая фантастика
рпг
попаданцы
фантастика: прочее
фэнтези
5.00
рейтинг книги
Отмороженный 11.0

История "не"мощной графини

Зимина Юлия
1. Истории неунывающих попаданок
Фантастика:
попаданцы
фэнтези
5.00
рейтинг книги
История немощной графини

Крестоносец

Ланцов Михаил Алексеевич
7. Помещик
Фантастика:
героическая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Крестоносец

Газлайтер. Том 15

Володин Григорий Григорьевич
15. История Телепата
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Газлайтер. Том 15

Призыватель нулевого ранга

Дубов Дмитрий
1. Эпоха Гардара
Фантастика:
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Призыватель нулевого ранга