NDemia Новости CashMatic Рубли Форум

Интерфейс ICashMaticTerminalExtender


Для подключения расширений объекта
CashMaticTerminal компонент расширения должен поддерживать интерфейс ICashMaticTerminalExtender.
(Дополнительные возможности даёт поддержка интерфейса ICashMaticTerminalExtender2.)
В синтаксисе C++ интерфейс ICashMaticTerminalExtender определяется так:
class ICashMaticTerminalExtender : public IDispatch
{
	public:
		virtual void CALLBACK
			OnGuiStartup(ICashMaticTerminal* pTerminal) = 0;
			
		virtual void CALLBACK
			OnGuiExit(ICashMaticTerminal* pTerminal) = 0;
			
		virtual void CALLBACK OnEvent(
			ICashMaticTerminal* pTerminal,
			BSTR EventName
		) = 0;
			
		virtual void CALLBACK OnFailure(
			ICashMaticTerminal* pTerminal,
			BSTR FailName,
			BOOL FailState
		) = 0;
		
		virtual void CALLBACK
			PreCashCollect(ICashMaticTerminal* pTerminal) = 0;
			
		virtual void CALLBACK
			PostCashCollect(ICashMaticTerminal* pTerminal) = 0;
			
		virtual void CALLBACK
			PreZReport(ICashMaticTerminal* pTerminal) = 0;
			
		virtual void CALLBACK
			PostZReport(ICashMaticTerminal* pTerminal) = 0;
};

// {00735A83-6101-49ae-B2E5-77BA59B3D6A9}
static const IID IID_ICashMaticTerminalExtender = { 0x735a83, 0x6101,
	0x49ae, { 0xb2, 0xe5, 0x77, 0xba, 0x59, 0xb3, 0xd6, 0xa9 } };
Метод ICashMaticTerminalExtender::OnGuiStartup(ICashMaticTerminal* pTerminal) вызывается при запуске NDemia CashMatic KioskBrowser. Вызов этого метода свидетельствует о нормальной установке и инициализации компонента расширения.

Метод ICashMaticTerminalExtender::OnGuiExit(ICashMaticTerminal* pTerminal) вызывается при завершении работы NDemia CashMatic KioskBrowser. Гарантируется, что это последний вызов компонента расширения перед завершением работы (точнее: гарантируется, что после завершения OnGuiExit всех установленных компонентов расширения работа приложения будет завершена без каких-либо дополнительных вызовов прикладного кода).

Метод ICashMaticTerminalExtender::OnEvent(ICashMaticTerminal* pTerminal, BSTR EventName) вызывается в результате вызова метода Event объекта CashMaticTerminal, что доступно скриптам HTML-документа, например:
CashMatic.Terminal.Event("MyEventName");
(таким образом можно связать скрипт с компонентом расширения, который существует в контексте хост-приложения, и, соответственно, вне HTML-документа)

Метод ICashMaticTerminalExtender::OnFailure(ICashMaticTerminal* pTerminal, BSTR FailName, BOOL FailState) вызывается в результате возникновения (FailState - истина) или устранения (FailState - ложь) именованного отказа FailName (см. Модель обработки отказов). Обработка отказа или восстановления в данной точке не должна зависеть от режима серьёзности отказа и от режима отложенного отказа.

Метод ICashMaticTerminalExtender::PreCashCollect(ICashMaticTerminal* pTerminal) вызывается при снятии (удалении) стекера (кассы) купюроприёмника. Здесь компонент расширения может сделать переход на страницу инкассации (через CashMatic.Terminal.Navigate), которая должна быть зарегистрирована как специальный URL с именем collect (см. Специальные URL). Любые другие адреса переходов навигации блокируются до восстановления купюроприёмника.

Метод ICashMaticTerminalExtender::PostCashCollect(ICashMaticTerminal* pTerminal) вызывается при восстановлении стекера (кассы) купюроприёмника после снятия. Здесь компонент расширения может сделать переход на любой URL-адрес (через CashMatic.Terminal.Navigate)

Метод ICashMaticTerminalExtender::PreZReport(ICashMaticTerminal* pTerminal) вызывается перед печатью отчёта с гашением на фискальном регистраторе. Кассовая смена ещё не закрыта.

Метод ICashMaticTerminalExtender::PostZReport(ICashMaticTerminal* pTerminal) вызывается после печати отчёта с гашением на фискальном регистраторе. Кассовая смена уже закрыта.
тел. +7-(916)-129-26-84 (C)opyright: NDemia Ltd, Москва, 2006..2024 ndemia@ndemia.com