|
Программирование >> Руководство по созданию web приложений
Нам создать модуль уп- равления должен быть . как Исходный текст главного модуля управления, созданный мастером и дополненный Вы найдете в листинге 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:
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |