                              GRV API
                              ~~~~~~~      


 
~~~~~~~~~~~~~~~~~~~~~~

BOOL WINAPI _export IsPicture(char *Name, BYTE *Data, int DataSize);
,    .
 :
  Name     -   .
  Data     -  ,    .
  DataSize -  .

BOOL WINAPI _export GetFormatInfo(int Type, struct TFormatPar *Par);
  
 :
  Type - .
 :
  Par  -  .    .

BOOL WINAPI _export GetPluginInfo(TPluginInfo *Info, TGrvApiInfo *ApiInfo);
        .
 :
  ApiInfo -     .
 :
  Info -   .   .

BOOL WINAPI _export OpenPicture(BYTE *Data, int DataSize, struct TPicPar *Par);
      .
 :
  Data     -  ,    .
  DataSize -  .
 :
  Par      -  .    .

BOOL WINAPI _export CreatePicture(int Type, BYTE *Data, int DataSize);

int WINAPI _export OpenPage(int Page, struct PagePar *Par);
        GetLine.
 :
  Page -   .
 :
  Par  -  .    .

int WINAPI _export CreatePage(int Index, BYTE *Lines[], struct TPagePar *Par);
  .
 :
  Index -  .
  Lines -  .  24 .
  Par   -  .

int WINAPI _export DeletePage(int Index);
 .
 :
  Index -  .

BOOL WINAPI _export GetLine(BYTE *Line, int Width);
   .
 :
  Width -    .     
    ,      .
 :
  Line  -         .

BOOL WINAPI _export GetPalette(PALETTEENTRY *Pal);
  256  .
 :
  Palette -  PALETTEENTRY[256] -   ;

BOOL WINAPI _export ClosePage();
BOOL WINAPI _export ClosePicture();
     .


 ,  OpenPage   TRUE   .
OpenPage     0   .
      Alignment=1



~~~~~~~~~

  

struct TPicPar   
{
  int Type;        //.
  int NumPages;    //  
  int Depth;       //  (bit).
  int Transparent; // .
  int Red;         // ,   .
  int Green;
  int Blue;
};


,  

struct TPagePar    
{
  int Width;         //  , .
  int Height;
  int DispX;         // .   ,
  int DispY;         //  -  .
  int Red;           // ,   .
  int Green;         //       .
  int Blue;
};

  

struct TFormatPar
{
  char Game[MAX_INFO_LEN];         // . 
  char FormatName[MAX_INFO_LEN];   // 
  char TypeName[MAX_INFO_LEN];     // 
  char DefaultMasks[MAX_INFO_LEN]; // ,    "*."
  char Coment[MAX_INFO_LEN];       // 
  int Depth;                       // 
  int Transparent;                 // 
  int CreateFlag;                  // 
};


  .   .

struct TPluginInfo
{
};

    .

struct TGrvApiInfo
{
  void(* ShowInt)(char *Title, char *Caption0, int Var0, char *Caption1=NULL, int Var1=0);
  VOID(* MoveMem)(PVOID Destination, CONST VOID *Source, DWORD Length);
  VOID(* ZeroMem)(PVOID Destination, DWORD Length);
  
  BYTE *(* Insert)(PVOID Dest, PVOID Source, int Len, int *NewDataSize);

  int (* Delete)(PVOID Dest, int Len);
};


 
~~~~~~~~~~~~~~~~~

         , ,
    .

void ShowInt(char *Title, char *Caption0, int Var0, char *Caption1=NULL, int Var1=0);
  .    2   
    .
 :
  Title   - .
  Caption0, Caption1 -    .
  Var0, Var1 -  .

VOID MoveMem(PVOID Destination, CONST VOID *Source, DWORD Length);
VOID ZeroMem(PVOID Destination, DWORD Length);
   MoveMemory  ZeroMemory  WIN32 API
  
BYTE *Insert(PVOID Dest, PVOID Source, int Len, int *NewDataSize);
     .     , 
 .
 :
  Dest        -    .
  Source      -   .
  Len         -  .
 :
  NewDataSize -   ,      
                .
 :
      NULL,   .

int Delete(PVOID Dest, int Len);
     .      
       .
 :
  Dest        -    .
  Len         -  .
 :
    .