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

Интерфейс ICashMaticSession


Компоненты расширения могут обращаться к объекту CashMaticSession через интерфейс ICashMaticSession (компонент расширения при инциализации получает IDispatch* на CashMatic, из него можно получить свойство Session (dispid 102) как IDispatch*, а его значение уже преобразовать в ICashMaticSession*)

В синтаксисе C++ интерфейс ICashMaticSession определяется так:
class ICashMaticSession : public IDispatch
{
	public:
		virtual void CALLBACK Reset() = 0;
		
		virtual void CALLBACK Start() = 0;
		
		virtual void CALLBACK Event(BSTR EventName) = 0;
		
		virtual void CALLBACK Finish() = 0;
		
		virtual void CALLBACK AddProp(
			BSTR PropName,
			BSTR PropValue
		) = 0;
		
		virtual BSTR CALLBACK GetProp(BSTR PropName) = 0;
		
		virtual HRESULT CALLBACK Text(BSTR* pRetVal) = 0;
		
		virtual unsigned CALLBACK SetExtender(
			ICashMaticSessionExtender* pSessionExtender
		) = 0;
		
		virtual BOOL CALLBACK RemoveExtender(unsigned) = 0;
};

// {0011C3F9-DF3C-46bb-AFE9-608ECCC6DC5E}
static const IID IID_ICashMaticSession = { 0x11c3f9, 0xdf3c, 0x46bb,
	{ 0xaf, 0xe9, 0x60, 0x8e, 0xcc, 0xc6, 0xdc, 0x5e } };
Методы Reset, Start, Event, Finish, AddProp, GetProp - см. описание объекта CashMaticSession.

    Метод
    unsigned CALLBACK SetExtender(ICashMaticSessionExtender*);
    устанавливает компонент расширения для CashMatic.Session (возвращается ненулевой идентификатор компонента, который впоследствии может использоваться для его удаления через метод RemoveExtender). Компонент расширения остаётся установленным до завершения работы программы NDemia CashMatic KioskBrowser или до явного вызова RemoveExtender.

    Совместимость: в версиях NDemia CashMatic ранее 2.6.0 может возвращаться нулевой идентификатор в штатных условиях, т.е. нулевой идентификатор не должен рассматриваться как признак ошибки.

    После вызова вызывающий код может освободить ссылку на интерфейс ICashMaticSessionExtender.

    Совместимость: в версиях NDemia CashMatic ранее 2.7.0 объект CashMaticSession не добавляет собственную ссылку на компонент расширения, поэтому нельзя освобождать ссылку после вызова SetExtender.


    Метод
    BOOL CALLBACK RemoveExtender(unsigned);
    удаляет компонент расширения (в параметре нужно указать идентификатор компонента, возвращённый методом SetExtender);
    возвращает TRUE в случае успеха, FALSE в случае, если компонент расширения с таким идентификатором не установлен.

    Совместимость: не рекомендуется использовать в версиях NDemia CashMatic ранее 2.7.2 при одновременной работе нескольких компонентов расширения (во многих случаях может приводить к аварийному завершению программы).

тел. +7-(916)-129-26-84 (C)opyright: NDemia Ltd, Москва, 2006..2024 ndemia@ndemia.com