Susie 32bit Plug-in dl rev5

PD͂߂
  Susie 32bit Plug-in  Windows  DLL łAq API ɂ Susie ȊO
  \tgEFAȒPɎgo܂B
  ܂A̎dlʂPlug-in Susie V摜tH[}bg
  Ή鎖\łB

QDPlug-in APĨo[W
  ̊g邽߁APlug-inAPĨo[Wԍ܂B
  ̃o[Wԍׂ͂Ẵo[Wɋʂł֐'GETPLUGININFO'ɂ
  擾o܂B
  o[Wԍ͊{I4bytẽR[hňȉ̈Ӗ܂B

      00 I N
      ~T T T
       | | +-- N : Normal,  M : Multi-picture
       | +---- I : Import filter, X : Export filter, A : Archive extractor
       +------ Virsion No.

RDʊ֐
  EGetPluginInfo - Plug-inɊւ𓾂

    Prototype:
      extern "C" int _export PASCAL GetPluginInfo(int infono,
                                                LPSTR buf,int buflen);
    Parameter:
      int infono : 擾ԍ
                      0   : Plug-in APIo[W
                      1   : Plug-inAo[Wy copyright
                            (SusieAbout..ɕ\܂)
                      2n+2: \IȊgq ("*.JPG" "*.RGB;*.Q0" Ȃ)
                      2n+3: t@C`
                            (t@C^CvƂĎg܂)
      LPSTR buf    : [߂obt@
      int buflen : obt@(byte)

    Return:
      obt@ɏ񂾕Ԃ܂B
      ԍ̏ꍇA0Ԃ܂B

    :
      ԍ01ׂ͂Ẵo[WŋʂƂ܂B
      2ȍ~͓Âg݂SusieOPEN_CAOŗpłB
      plug-inŕ̉摜tH[}bgɑΉĂꍇ
      ̐gqƃt@C`pӂ܂B

SD'00IN'̊֐
  EIsSupported - WJ\(ΉĂ)t@C`ׂB
    Prototype:
      extern "C" int _export PASCAL IsSupported(LPSTR filename,DWORD dw);

    Parameter:
      LPSTR filename : t@Cl[
      DWORD dw       : ʃ[h  0  ̂Ƃ:
                           t@Cnh
                       ʃ[h 0 ̂Ƃ:
                           t@C擪(2Kbyteȏ)ǂݍ񂾃obt@ւ
                           |C^
                           t@CTCY2Kbyteȉ̏ꍇobt@2Kbyte
                           mۂA] 0 Ŗ߂邱

    Return:
      ΉĂ摜tH[}bgłΔ0Ԃ

    :
      ePlug-in͊{Iɓnꂽt@C̃wb_𒲂ׁȂΉt@C
      tH[}bgł邩ǂ𒲂ׂB
      ܂Ƀt@C(gq)𔻒fޗƂĕKvƂÃt@C
      \Ăꍇ̂ŁAt@C(tpX)ɉB
      zzPlug-inłfilename͎gĂȂB


  EGetPictureInfo - 摜t@CɊւ𓾂
    Prototype:
      extern "C" int _export PASCAL GetPictureInfo(
         LPSTR buf,long len,unsigned int flag,struct PictureInfo *lpInfo);

    Parameter:
      LPSTR buf : ͂t@C̏ꍇ t@C
                        [̏ꍇ t@CC[Wւ̃|C^
      long len  : ͂t@C̏ꍇ Ǎ݊JnItZbg(MacBinΉ̂)
                        [̏ꍇ f[^TCY
      unsigned int flag : ǉ xxxx xxxx xxxx xSSS
                  SSS : ͌`
                      000 : fBXNt@C
                      001 : ̃C[W
      struct PictureInfo *lpInfo :
                  struct PictureInfo
                  {
                    long left,top;    摜WJʒu
                    long width;       摜̕(pixel)
                    long height;      摜̍(pixel)
                    WORD x_density;   f̐x
                    WORD y_density;   f̐x
                    short colorDepth; Pfbit
                    HLOCAL hInfo;    摜̃eLXg
                  };
                  hInfoɂ͕KvɉPlug-inmۂGlobal[
                  nhi[B

    Return:
      G[R[hB0Ȃ琳IB

  EGetPicture - 摜WJ
    Prototype:
      extern "C" int _export PASCAL GetPicture(
              LPSTR buf,long len,unsigned int flag,
              HANDLE *pHBInfo,HANDLE *pHBm,
              FARPROC lpPrgressCallback,long lData);

    Parameter:
      LPSTR buf : ͂t@C̏ꍇ t@C
                        [̏ꍇ t@CC[Wւ̃|C^
      long len  : ͂t@C̏ꍇ Ǎ݊JnItZbg(MacBinΉ̂)
                        [̏ꍇ f[^TCY
      unsigned int flag : ǉ xxxx xxxx xxxx xSSS
                  SSS : ͌`
                      000 : fBXNt@C
                      001 : ̃C[W
      HLOCAL *pHBInfo : BITMAPINFO \̂[߂ꂽnh
                             ԂB
      HLOCAL *pHBm    : rbg}bvf[^{̂̃nhԂ
      FARPROC lpPrgressCallback :
                ro߂\R[obN֐ւ̃|C^B
                NULL̏ꍇAplug-in͏I܂ŃvZXLA
                fo܂B
                R[obN֐prototype:
                  int PASCAL ProgressCallback(
                                        int nNum,int nDenom,long lData);
                  ܂ nNum==0 ŃR[AnNum==nDenom ɂȂ܂
                  IɌĂ΂B
                  ߒl 0 ̎APlug-in͏𒆒fB
      long lData : R[obN֐ɓnlongf[^B
                  |C^KvɉĎ󂯓nB

    Return:
      G[R[hB0Ȃ琳IB

    :
      vOCLocalAllocɂĕKvȃ[mۂÃnh
      ԂB
      AvP[VLocalFreeɂă[JKvB

  EGetPreview - vr[EJ^O\p摜kWJ[eB
    Prototype:
      extern "C" int _export PASCAL GetPreview(
              LPSTR buf,long len,unsigned int flag,
              HANDLE *pHBInfo,HANDLE *pHBm,
              FARPROC lpPrgressCallback,long lData);

    Parameter:
      GETPICTUREQƁB

    Return:
      G[R[hB0Ȃ琳IB
      ̊֐̓IvVłAΉ̏ꍇ -1 ԂB

    :
      vr[ŗpkꂽ摜t@C쐬B
      JPEG̗lɁAASY̊֌WŏkꂽTCYł͍ɓWJo
      Ƃɂ̊֐CvgB
      zzPlug-inł IFJPEG.PLG ̂ݑΉ(1/4TCYœWJ)ĂB
      Ή̏ꍇASusie͒ʏ̓WJ[eBpēWJ
      ksB
      iΉĂĂk[hꂽ摜XɃTCYĂj
      vOCLocalAllocɂĕKvȃ[mۂÃnh
      ԂB
      AvP[VLocalFreeɂă[JKvB

  EG[R[h
    0 : I
   -1 : ̋@\̓CvgĂȂ
    1 : R[obN֐0Ԃ̂œWJ𒆎~
    2 : m̃tH[}bg
    3 : f[^Ă
    4 : [mۏoȂ
    5 : [G[iLockoȂAj
    6 : t@C[hG[
    7 : i\j
    8 : G[

TD'00AM'̊֐ (b)

  EIsSupported - WJ\(ΉĂ)t@C`ׂB
    Prototype:
      extern "C" int _export PASCAL IsSupported(LPSTR filename,DWORD dw);

    Parameter:
      LPSTR filename : t@Cl[
      DWORD dw       : ʃ[h  0  ̂Ƃ:
                           t@Cnh
                       ʃ[h 0 ̂Ƃ:
                           t@C擪(2Kbyteȏ)ǂݍ񂾃obt@ւ
                           |C^
                           t@CTCY2Kbyteȉ̏ꍇobt@2Kbyte
                           mۂA] 0 Ŗ߂邱

    Return:
      ΉĂ摜tH[}bgłΔ0Ԃ

    :
      ڂ'00IN'ISSUPPORTED֐QƂ̎B
      dwœnobt@TCY2Kbyteȏ͎ȉ𓀌^LHaΉ̂߁B

  EGetArchiveInfo - A[JCûׂẴt@C̏擾
    Prototype:
      extern "C" errcode _export PASCAL GetArchiveInfo(LPSTR buf,long len,
            unsigned int flag,HLOCAL *lphInf);

    Parameter:
      LPSTR buf : ͂t@C̏ꍇ t@C
                        [̏ꍇ t@CC[Wւ̃|C^
      long len  : ͂t@C̏ꍇ Ǎ݊JnItZbg(MacBinΉ̂)
                        [̏ꍇ f[^TCY
      unsigned int flag : ǉ xxxx xxxx xxxx xSSS
                  SSS : ͌`
                      000 : fBXNt@C
                      001 : ̃C[W
      HLOCAL *lphInf
                : t@C̓nh󂯎ϐւ̃|C^B
                  Plug-inŊmۂꂽLOCAL[Ɏ̍\̔z
                  ܂ÃnhԂB
                  method[0]=='\0'ŏI[B
                        typedef struct
                        {
                            unsigned char method[8];    k@̎
                            unsigned long position;     t@Cł̈ʒu
                            unsigned long compsize;     kꂽTCY
                            unsigned long filesize;     ̃t@CTCY
                            time_t timestamp;           t@C̍XV
                            char path[200];             ΃pX
                            char filename[200];         t@Cl[
                            unsigned long crc;         CRC
                        } fileInfo;

    Return:
      G[R[hB0Ȃ琳IB

  EGetFileInfo - A[JCu̎w肵t@C̏擾
    Prototype:
      extern "C" errcode _export PASCAL GetFileInfo(LPSTR buf,long len,
                    LPSTR filename, unsigned int flag,fileInfo *lpInfo);
    Parameter:
      LPSTR buf : ͂t@C̏ꍇ t@C
                        [̏ꍇ t@CC[Wւ̃|C^
      long len  : ͂t@C̏ꍇ Ǎ݊JnItZbg(MacBinΉ̂)
                        [̏ꍇ f[^TCY
      LPSTR filename : 擾t@C̃t@Cl[
                        A[JCȗ΃pX܂߂Ďw
      unsigned int flag : ǉ xxxx xxxx Ixxx xSSS
                  SSS : ͌`
                      000 : fBXNt@C
                      001 : ̃C[W
                  I : 0 : t@C̑啶ʂ
                      1 : t@C̑啶𓯈ꎋB
      fileInfo *lpInfo
                : 󂯎fileInfo\̂ւ̃|C^

    Return:
      G[R[hB0Ȃ琳IB

  EGetFile - A[JCũt@C擾
    Prototype:
      extern "C" errcode _export PASCAL GetFile(LPSTR src,long len,
                LPSTR dest,unsigned int flag,
                FARPROC prgressCallback,long lData);

    Parameter:
      LPSTR src  : ͂t@C̏ꍇ t@C
                        [̏ꍇ t@CC[Wւ̃|C^
      long len   : ͂t@C̏ꍇ Ǎ݊JnItZbg
                        [̏ꍇ f[^TCY
      void far *dest : o͐悪t@C̏ꍇ
                              o͐fBNg
                               (ɓ̑΃pX͖)
                        [̏ꍇ 
                              t@C̓LOCAL[nh󂯎
                              ϐւ̃|C^B
      unsigned int flag  : ǉ xxxx xDDD xxxx xSSS
                  SSS : ͌`
                      000 : fBXNt@C
                      001 : ̃C[W
                  DDD : o͌`
                      000 : fBXNt@C
                      001 : ̃C[W
      FARPROC lpPrgressCallback :
                ro߂\R[obN֐ւ̃|C^B
                NULL̏ꍇAplug-in͏I܂ŃvZXLA
                fo܂B
                R[obN֐prototype:
                  int PASCAL ProgressCallback(
                                        int nNum,int nDenom,long lData);
                  ܂ nNum==0 ŃR[AnNum==nDenom ɂȂ܂
                  IɌĂ΂B
                  ߒl 0 ̎APlug-in͏𒆒fB
      long lData : R[obN֐ɓnlongf[^B
                  |C^KvɉĎ󂯓nB

    Return:
      G[R[hB0Ȃ琳IB

    :
      vOCLocalAllocɂĕKvȃ[mۂÃnh
      ԂB
      AvP[VLocalFreeɂă[JKvB

UDPlug-in̎g
  Plug-inDLLłAʏDLLƓpɎ̂Q̕@ŃAvP[V
  No܂B

  1) DLLC|[gCuăN
    implib.exe  implibw.exe gPlug-inC|[gCu
    āAAvP[VɃN܂B
    ̕@͊ȒPłAPlug-ing܂B
  2) LoadLibrary ŕKvɉăNB
    ̕@͏XԂ܂AČPlug-in𓮓I
    p邱Ƃł܂B

  ʏ1)̕@p܂ÃtH[}bgɑΉKv
  ꍇɂ2)̕@߂܂B
  2)̕@p̂ƂđŜ̗܂B

  1.Plug-inB
    Plug-in̂fBNg"*.plg"ŌA̂
    LoadLibrary Ń[h܂B
    GetProcAddress  GETPLUGININFO ֐ւ̃|C^擾A
    GETPLUGININFO ֐ɂďԍ0Plug-ino[Wm߂܂B
    ΉĂo[WȂPlug-inXgɉ܂B
    ΉĂȂ̂ȂFreeLibraryŖYꂸɊJ܂B

  2.摜t@CɍPlug-inTB
    摜t@C[hKvȂ܂̃t@C_lopen
    I[v܂B
     Plug-inXgɂď ISSUPPORTED ֐ĂсAΉ
    Plug-inT܂BMacBinary tĂ\̂ŁAoffset=0
    ߂ȏꍇ offset=128 łxTƗǂł傤B

  3.摜WJB
    ΉPlug-in炻Plug-in GETPICTURE ֐Ń[h܂B
    CALLBACK֐ PeekMessage gő̃vZX(Ďɂ)
    s̋@^ƃX}[głB

  4.Plug-inJB
    AvP[VI鎞ɂ͖Yꂸ LoadLibrary Plug-inׂĂ
    FreeLibrary ŊJ܂傤B


VDPlug-in̎dlƎgpɊւ
  Plug-in肽A͎gł͂悭킩AƂ
  LID܂ł₢킹BȂɂ珕oƎv܂BiԎ
  xȂĂ{Ȃł(^_^;)j
  ܂AAPI̎dlɊւĂ̌ӌ҂Ă܂BAPIo[WAbv
  ɎQlɂĂ܂B̃o[W Susie ̓NXI/F
  قƂǂ̂܂܂Ȃ̂ŔėpɌ܂(^_^;)
  ]ړɊւĂ plugin.txt QƂĉB

	Nifty-serve GGB01506   |Ðl ()
