Мои мысли и проекты
Мои мысли и проекты
Внутренний 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 в случае ошибки


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


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

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

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


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

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

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