Программирование >>  Руководство по созданию web приложений 

1 ... 115 116 117 [ 118 ] 119 120 121 ... 141


Нам создать модуль уп-

равления должен быть . как Исходный текст главного

модуля управления, созданный мастером и дополненный Вы

найдете в листинге 8-6.

Листинг хранится в файле /CreclitCarcl.cpp на

мом к книге компакт-диске.

Рассмотрим определения свойств и . добавленных нами к объекту

CreditCard.

Для свойства Amount, предназначенного для хранения суммы денег, мы предусмотрели две функции с именами .. и ри1 Аисипт: SfU4ETriODI P CCreditrd-eetiiountfesre -pVal)

return

STDMETHODIMP CCraattlarci-: par>aei,aniSTfl newVal)

returnS OK;

Обе эти функции обращаются i: полю ii. A(ieaal типа CComBSTR: CComBSTR a Amauat;

IMbi добавили эту переменную в класс Ca-aattCard. пользуясь мастером класса. Функция patAiaaat записывает в поле fiiAaeaat значение, полученное через параметр newVal.

Что же касается функции gat .Aioaat, то она извлекает значение и а поля

и возвращает его, вызывая метод Сору. Аналогичным образом устроены функции для работы со свойствами Currency, и Ко . Для них в классе CreditCard мы опре-

делили следующие поля:

CComBSTR CComBSTR CComBSTR

Функции для работы со ние, определены так:

STDMETHODIMP . .

MercliantID, хранящим численное значена 1)

return

STDMETHODIMP

newVal)

return



Глава 8. серверных управления ActiveX 347

Эти функции (>5)й111аи>тгя к полю i Hercha.nt JD типа long.

Теперьмызаймемсяметодом8епс1РауВа1а, для на-

шей библиотеки DLL, имитирующей интерфейс :

Также как и в тестовой программе, мы определили тип DLLFN, необходимый для вызова функции через ;

г.. (* DLLFNKLPSTR LPSTR szCurrency,

DWORD . . szSuccessURL, LPSTR azt

LPSTR

В самом начале метода SendPayData, эту функцию, мы распо-

макрокоманду US . . необходимую для работы с макрокоман-

дами перекодировки 0LE2A и A20LE:

В области локальных переменных метода SendPayData мы определили переменную для хранения идентификатора библиотека :

переменную для хранения указатель на функцию . . с именем три

массива для хранения адресов URL с именами szSuccessURL. szErrorURL и

sziatifieatioaURL. а также рабочую переменную типа -

HINSTANCE

DLLFN

char

. bstrTemp;

В начале своей работы метод SendPayData загружает интерфейсную библиотеку DLL из файла i а . и ползгает указатель на функцию fnSendPayData:

hCreditCardlnterfaceDLL =

if(ritaeditCariJInterfat а != NULL) {

fn =

fnScadPaaCata 1;

Если библиотека загрузилась, a указатель получен без ошибок и на равен NULL, метод преобразует значения из полей и . в текстовые строки

ANSL

=0LE2A(m Currency); Соответствующие указатели аза Aiou at npszCurrency Вы должны определить в классе С red it Card: char* pszCurrency; char* pszAmount;



При ошибке в iin.if i fiiiijlt записывается значение -1:

Сценарий определяет результат вызова с ; свойства Result,

доступного только для чтения. Для этого свойства мы подготовили только функцию с именем :

return S OK;

Вызов элемента управления CreditCard

Для вызова элемента управления CreditCard мы подготовили документ НТМТ с формой, позволяющей идентификатор платежа, сумму и выбрать валюту (рис. 8-12).

Введите сведения о платеже

Идентифйкатср i.

Рис. 8-12. Форма ДЛЯ вызова элемента управления CreditCard

Полный исходный текст этого документа расположен в листинге 8-7.

Листинг 8-7 Вы найдете в файле chOS/CredltCardMod/pay.html на прилагаемом к книге компакт-диске.

Теперь можно вызывать : . f m Result =

Ее код . . мы записываем в поле . t. определенное в классе

С ! как long.

Если : . : функции . без ошибок, метод : иден-

тификатор библиотеки DTT, а затем преобразует пол5енные строки адресов IRL, записывая их в соответствующие поля класса CreditCard:



1 ... 115 116 117 [ 118 ] 119 120 121 ... 141

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика