Shasoft eBook
Версия 4.0.4 от 7 ноября 2008   (История версий)
RSS новости сайта · Главная · Скачать · Справка · Форум
Навигация
Счетчики
Каталог сайтов СОТОВЫЙ ТЕЛЕФОН Rambler's Top100
Рейтинги
Каталог мобильных сайтов и WAP сайтов. Только лучшие ссылки. Top.Gde.RuTop.Gde.ru - Топ100 рейтинг Находится в каталоге Апорт
Спoнcopы
Внутренний API
Внутренний API представляет из себя набор указателей на функции, разбитые по группам:
typedef struct
{
 PSPluginAPIfile FILE;        // Функции для работы с файлами
 PSPluginAPIzip ZIP;          // Функции для работы с архивами ZIP
 PSPluginAPIrtf RTF;          // Функции для работы с файлами RTF
 PSPluginAPIxml XML;          // Функции для работы с файлами XML
 PSPluginAPIbase64 BASE64;    // Функции для конвертации данных из BASE64
} SSEBPluginAPI, *PSEBPluginAPI;

Функции для работы с файлами
 typedef struct
 {
  PFFILE_OpenFile OpenFile;                    // Открыть файл для работы
  PFFILE_OpenFileW OpenFileW;                  // Открыть файл для работы
  PFFILE_ReadFile ReadFile;                    // Чтение данных из файла в буфер
  PFFILE_WriteFile WriteFile;                  // Запись данных в файл
  PFFILE_CloseFile CloseFile;                  // Закрыть файл
  PFFILE_GetFileSize GetFileSize;              // Определить размер открытого файла
 } SPSPluginAPIfile, *PPSPluginAPIfile;

Функции для работы с архивами ZIP
 typedef struct
 {
  PFZIP_OpenFile OpenFile;                    // Открыть файл из архива ZIP для чтения
  PFZIP_ReadFile ReadFile;                    // Чтение данных из файла в буфер
  PFZIP_CloseFile CloseFile;                  // Закрыть файл
  PFZIP_NextItem NextItem;                    // Получить следующий файл архива с полным путем архива
  PFZIP_GetItemInfo GetItemInfo;              // Получить информацию о файле: наименование и размер
 } SPSPluginAPIzip, *PPSPluginAPIzip;

Функции для работы с файлами RTF
 typedef struct
 {
  PFRTF_FromWindow FromWindow;                // Конвертировать текст из окна RichEdit в ActiveX компонент
 } SPSPluginAPIrtf, *PPSPluginAPIrtf;

Функции для работы с файлами XML
 typedef struct
 {
  PFXML_ParserCreate ParserCreate;            // Создать объект-парсер XML
  PFXML_Parse Parse;                          // Парсить XML файл
  PFXML_ParserDestroy ParserDestroy;          // Уничтожить парсер
  PFXML_GetOffsetPos GetOffsetPos;            // Получить текущее смещение обрабатываемого XML файла
  PFXML_GetValue GetValue;                    // Получить значение атрибута
  PFXML_IsParentElement IsParentElement;      // Проверить: есть ли среди родительских ТЭГов ТЭГ с именем name
 } SPSPluginAPIxml, *PPSPluginAPIxml;

Функции для конвертации данных из BASE64
 typedef struct
 {
  PFBASE64_Create Create;                        // Создать объект для декодирования данных из формата BASE64
  PFBASE64_Push Push;                            // Записать в объект очередной кодированный символ
  PFBASE64_Get Get;                              // Получить значение декодированного байта
  PFBASE64_Destroy Destroy;                      // Уничтожить объект для декодирования данных из BASE64
 } SPSPluginAPIbase64, *PPSPluginAPIbase64;

HANDLE FILE->OpenFile(LPSTR FileName, int mode) - Открыть файл для работы

Параметры
   LPSTR FileName - имя файла
   int mode - режим открытия. MODE_READ-открыть для чтения/MODE_WRITE-открыть для записи

Возвращаемое значение
   Возвращает дескриптор открытого файла или 0 в случае ошибки


HANDLE FILE->OpenFileW(LPWSTR FileName, int mode) - Открыть файл для работы

Параметры
   LPWSTR FileName - имя файла
   int mode - режим открытия. MODE_READ-открыть для чтения/MODE_WRITE-открыть для записи

Возвращаемое значение
   Возвращает дескриптор открытого файла или 0 в случае ошибки


int FILE->ReadFile(HANDLE hFile, LPSTR Buffer, int len) - Чтение данных из файла в буфер

Параметры
   HANDLE hFile - дескриптор файла
   LPSTR Buffer - указатель на буфер
   int len - размер буфера

Возвращаемое значение
   Возвращает количество прочитанных байт


int FILE->WriteFile(HANDLE hFile, LPSTR Buffer, int len) - Запись данных в файл

Параметры
   HANDLE hFile - дескриптор файла
   LPSTR Buffer - указатель на буфер
   int len - размер буфера

Возвращаемое значение
   Возвращает количество записанных байт


int FILE->CloseFile(HANDLE hFile) - Закрыть файл

Параметры
   HANDLE hFile - дескриптор файла

Возвращаемое значение
   Возвращает не 0, если операция выполнена успешно и 0 в случае ошибки.


int FILE->GetFileSize(HANDLE hFile) - Определить размер открытого файла

Параметры
   HANDLE hFile - дескриптор файла

Возвращаемое значение
   Возвращает размер файла в байтах


HANDLE ZIP->OpenFile(LPSTR FileNameArc, LPSTR FileName) - Открыть файл из архива ZIP для чтения

Параметры
   LPSTR FileNameArc - имя файла-архива
   LPSTR FileName - имя файла внутри архива

Возвращаемое значение
   Возвращает дескриптор открытого файла или 0 в случае ошибки


int ZIP->ReadFile(HANDLE hFile, LPSTR Buffer, int len) - Чтение данных из файла в буфер

Параметры
   HANDLE hFile - дескриптор файла
   LPSTR Buffer - указатель на буфер
   int len - размер буфера

Возвращаемое значение
   Возвращает количество прочитанных байт


int ZIP->CloseFile(HANDLE hFile) - Закрыть файл

Параметры
   HANDLE hFile - дескриптор файла

Возвращаемое значение
   Возвращает не 0, если операция выполнена успешно и 0 в случае ошибки.


HANDLE ZIP->NextItem(HANDLE hFile, LPSTR FileNameArc) - Получить следующий файл архива с полным путем архива

Параметры
   HANDLE hFile - дескриптор предыдущего файла. При первом вызове = 0
   LPSTR FileNameArc - указатель на буфер

Возвращаемое значение
   Возвращает дескриптор текущего файла или 0, если список файлов закончился


HANDLE hFile ZIP->GetItemInfo(int idfile, LPSTR Buffer) - Получить информацию о файле: наименование и размер

Параметры
   int idfile - дескриптор файла
   LPSTR Buffer - указатель на буфер, куда следует записать наименование файла

Возвращаемое значение
   Возвращает размер файла в байтах. -1, если возвращается наименование директории.


int RTF->FromWindow(HWND hRichEdit, ISeBookObj *pSeBook) - Конвертировать текст из окна RichEdit в ActiveX компонент

Параметры
   HWND hRichEdit - дескриптор окна RichEdit
   ISeBookObj *pSeBook - указатель на ActiveX компонент

Возвращаемое значение
   Возвращает размер файла в байтах


HANDLE XML->ParserCreate() - Создать объект-парсер XML

Возвращаемое значение
   Возвращает дескриптор созданного объекта


int XML->Parse(HANDLE hParser, LPSTR FileName, IXMLParserEvent *pXMLParserEvent) - Парсить XML файл

Параметры
   HANDLE hParser - дескриптор парсера
   LPSTR FileName - найменование файла XML
   IXMLParserEvent *pXMLParserEvent - интерфейс обратного вызова для обработки событий парсера

Возвращаемое значение
   Возвращает 1 в случае успешной отработки и 0 в случае ошибки

Дополнительная информация
Наш парсер построен по SAX-технологии. Т.е. он при парсинге файла XML не загружает его полностью в память, а читает последовательно и вызывает соответсвующее событие. Для получения событий нам необходимо передать указатель на следующий абстрактный класс:

class IXMLParserEvent
{
 public:
  //Событие начала ТЭГа
   WCHAR *name - название ТЭГа
   WCHAR **attrs - список атрибутов ТЭГа и их значения.
       Нечетные индексы - название атрибутов, четные - значения. 
       Если в нечетном индексе указатель = 0, то атрибутов больше нет.
  virtual void OnStartElement(const WCHAR *name, const WCHAR **attrs) = 0;
  //Событие конца ТЭГа
   WCHAR *name - название ТЭГа
   int start - позиция начала ТЭГа
  virtual void OnEndElement(const WCHAR *name,int start) = 0;
  //Событие данных внутри ТЭГов
   WCHAR *s - данные
   int len - длинна данных
  virtual void OnCharacters(const WCHAR *s,int len) = 0;
};
Вам нужно унаследовать свой класс от IXMLParserEvent и переопределить абстрактные методы, в которых и будет происходить обработка событий парсера.


int XML->ParserDestroy(HANDLE hParser) - Уничтожить парсер

Параметры
   HANDLE hParser - дескриптор парсера

Возвращаемое значение
   Возвращает 1 в случае успешной отработки и 0 в случае ошибки


int XML->GetOffsetPos(HANDLE hParser) - Получить текущее смещение обрабатываемого XML файла

Параметры
   HANDLE hParser - дескриптор парсера

Возвращаемое значение
   Возвращает смещение в обрабатываемом файле


WCHAR * XML->GetValue(HANDLE hParser, const WCHAR **attrs, const LPWSTR name, const LPWSTR defval) - Получить значение атрибута

Параметры
   HANDLE hParser - дескриптор парсера
   const WCHAR **attrs - список атрибутов и значений в формате IXMLParserEvent->OnStartElement
   const LPWSTR name - название атрибута
   const LPWSTR defval - значение атрибута по умолчанию

Возвращаемое значение
   Указатель на значение. 0, если значение не найдено.


int XML->IsParentElement(HANDLE hParser, LPWSTR name) - Проверить: есть ли среди родительских ТЭГов ТЭГ с именем name

Параметры
   HANDLE hParser - дескриптор парсера
   LPWSTR name - название ТЭГа

Возвращаемое значение
   Возвращает 1, если указанный ТЭГ встречается среди родительских ТЭГов и 0 в ином случае.


HANDLE BASE64->Create() - Создать объект для декодирования данных из формата BASE64

Возвращаемое значение
   Возвращает дескриптор созданного объекта


int BASE64->Push(HANDLE hBase64, int Ch) - Записать в объект очередной кодированный символ

Параметры
   HANDLE hBase64 - дескриптор объекта для декодирования данных из BASE64
   int Ch - кодированный символ

Возвращаемое значение
   Возвращает количество декодированных символов, готовых к чтению методом Get

Дополнительная информация
Если метод вернул не 0, т.е. есть декодированные данные для чтения, то необходимо сразу их прочитать с помощью метода Get, так как вызов метода Push может затереть уже декодированные данные. В данный метод можно передавать любые символы, метод сам отфильтрует те, что относятся к кодам BASE64.


int BASE64->Get(HANDLE hBase64) - Получить значение декодированного байта

Параметры
   HANDLE hBase64 - дескриптор объекта для декодирования данных из BASE64

Возвращаемое значение
   Возвращает значение декодированного байта


int BASE64->Destroy(HANDLE hBase64) - Уничтожить объект для декодирования данных из BASE64

Параметры
   HANDLE hBase64 - дескриптор объекта для декодирования данных из BASE64

Возвращаемое значение
   Возвращает 1 в случае успешной отработки и 0 в случае ошибки

· Главная · Скачать · Справка · Форум
Copyright c 2004-2008 Shasoft Company, все права защищены.
Время генерации: 0.0281810760498 секунд, Количество запросов БД: 0