Интерфейс ICashMaticTerminalExtender2 является расширенной версией интерфейса
ICashMaticTerminalExtender (добавлен метод
OnScriptError).
В синтаксисе C++ интерфейс
ICashMaticTerminalExtender2 определяется так:
class ICashMaticTerminalExtender2 : public ICashMaticTerminalExtender
{
public:
virtual HRESULT STDMETHODCALLTYPE OnScriptError(
ICashMaticTerminal* pTerminal,
IDispatch* pWindow,
BSTR ErrorMessage,
BSTR URL,
UINT Line,
VARIANTARG *pRetVal
) = 0;
};
// {0ACA9168-ED81-41bc-AA16-F575D35EF8FE}
static const IID IID_ICashMaticTerminalExtender2 = { 0xaca9168, 0xed81,
0x41bc, { 0xaa, 0x16, 0xf5, 0x75, 0xd3, 0x5e, 0xf8, 0xfe } };
- Метод ICashMaticTerminalExtender2::OnScriptError(ICashMaticTerminal* pTerminal, IDispatch* pWindow, BSTR ErrorMessage, BSTR URL, UINT Line, VARIANTARG *pRetVal) вызывается при ошибке прикладного скрипта.
- Аргументы:
- pTerminal - интерфейс ICashMaticTerminal (см. объект CashMaticTerminal);
- pWindow - объект window - окно, в котором произошла ошибка (см. документацию по объектам Internet Explorer), компонент расширения не должен освобождать ссылку на этот объект;
- ErrorMessage - текст соообщения об ошибке;
- URL - адрес HTML-страницы, в которой произошла ошибка;
- Line - номер строки исходного HTML-кода, на которой произошла ошибка;
- *pRetVal - возвращаемое логическое значение. Если метод возвращает истинное значение, то диалог ошибки браузера не показывается (не выполняется обычная обработка ошибки Internet Explorer). Если метод возвращает ложное значение, то выполняется обычная обработка ошибки Internet Explorer.
Если в NDemia CashMatic KioskBrowser установлено несколько (более одного) компонентов расширения, реализующих интерфейс ICashMaticTerminalExtender2, то метод OnScriptError вызывается у каждого из них, по очереди. Если хотя бы один из них вернёт истинное значение, то обычная обработка ошибки не выполняется.
Прикладной скрипт, устанавливающий собственную обработку
window.onerror, перехватывает обработку ошибок
NDemia CashMatic KioskBrowser, необходимую для срабатывания метода
OnScriptError.
В этом случае прикладной скрипт должен сохранить значение свойства
window.onerror на момент запуска скрипта, и в случае вызова события
window.onerror использовать сохранённое значение для вызова обработчика
NDemia CashMatic KioskBrowser - см.
Обработка событий window.onerror.
Совместимость: Интерфейс ICashMaticTerminalExtender2 поддерживается в NDemia CashMatic, начиная с версии 2.6.0.