------------------------------------------------------------------------------
PictBear tB^vOC Version 0 dl 2009/02/14
Copyright (C) 1999-2010 by Fenrir Inc. All Rights Reserved.
------------------------------------------------------------------------------

@PictBear vOCƂ́APictBear ̋@\ǉt@ĈƂłBvO
C̊gq .PPI gp܂BvOC̎ʂ͋ʊ֐ōs܂BvO
C PictBear ̃TutH_ plugins/imports, plugins/exports, plugins/filters
ɔzu܂B

@ PictBear T|[gvOĆutB^vuC|[gvuGNX|[
gvłBȉ̐ɏ]ăvOC쐬ĂB

@̃hLgł́APictBear 1.7x nŎgpłtB^vOC
Version 0 ɂĐ܂B̎dlɊÂtB^쐬邱ƂɂA
PictBear/PictBear 2.xx œ삷tB^쐬邱Ƃł܂B

@킩Ȃ΁ATvt@CQlɂĉB



@@@@@@@@@@@@@PBF_QueryClientInfo ֐


PictBeariȉNCAg) ̏Ԃ擾Bꕔ̃NG͋o[Wp
Bڂ PbPlugin.h QƂ邱ƁB

void Sample()
{
    const char szProcName[] = "PBF_QueryClientInfo";
    char       szClientEXE[MAX_PATH];
    HINSTANCE  hModule;

    GetModuleFileName(NULL, szClientEXE, MAX_PATH);
    hModule = LoadLibrary(szClientEXE);

    if (hModule != NULL) 
    {
        PBF_QueryClientInfoProc proc = GetProcAddress(hModule, szProcName);
        if (proc != NULL) 
        {
            int     nVersion;
            Pixel32 fgColor, bgColor;

            proc(PBF_QUERY_VERSION, &nVersion);
            proc(PBF_QUERY_FGCOLOR, &fgColor);
            proc(PBF_QUERY_BGCOLOR, &bgColor);
        }
        FreeLibrary(hModule);
    }
}



@@@@@@@@@@@@@@@@@ʊ֐


vOC͂̊֐SĎĂBĂȂ̂̓vOCƂĔF
ȂB


PB_GetPluginInfo

vOC PictBear pvOCł邱ƂB

[vg^Cv]
@@WORD WINAPI PB_GetPluginInfo(LPSTR buf, int buflen);

[]
@@buf    - 쌠ރobt@
@@buflen - obt@̑傫

[߂l]
@@ʃoCg
@@@0`255 - vOC̃o[Wԍ

@@ʃoCg
@@@0x01   - tB^pvOC
@@@̑ - `̃vOC

vOC͂̊֐K`Ȃ΂ȂȂB̊֐Ȃ
 PictBear p̃vOCƂĔFȂB



@@@@@@@@@@@@@@tB^vOC֐


tB^vOCł͈ȉ̊֐`KvB


PBF_FilterCount

vOCɊ܂܂tB^̐ԂB

[vg^Cv]
@@int WINAPI PBF_FilterCount(void)

[߂l]
@@vOCɊ܂܂ĂtB^̐

vOC͈̃t@Cɕ̃tB^܂ގłB


PBF_Execute

tB^sB

[vg^Cv]
@@void WINAPI PBF_Execute(
@@@@int no, HWND hwnd, const Pixel32* src, Pixel32* dst,
@@@@BYTE* mask, RECT* area, DWORD* maskflag,
@@@@int width, int height, FARPROC proc, long data);

[]
@@no       - tB^ԍB0`PBG_FilterCount()-1 ܂ł̒ln
@@hwnd     - eEChẼnh
@@src      - QƂ郌C[f[^ւ̃|C^
@@dst      - ʂރC[ւ̃|C^
@@mask     - }XNf[^(ی얳0 ` 255یL)
@@area     - }XNŕی삳ĂȂ̈
@@maskflag - }XN摜̏@(PBF_MASK_CLIENT or PBF_MASK_PLUGIN)
@@width    - C[̕
@@height   - C[̍
@@proc     - is󋵕\R[obN֐
@@data     - R[obN֐ɓnlongf[^

̊֐ PBF_Setup Ă΂ĖĂɎsłKvB

proc ͓ro߂\R[obN֐ւ̃|C^Bproc  NULL ̏ꍇ
AvOC͒Iɂ̊֐ĂяoKvBproc  NULL ̏ꍇAv
OC͏I܂ŃvZXLAfłȂB

R[obN֐̃vg^Cv
@@int WINAPI ProgressCallback(int num, int denom, long data);

܂ num==0 ŃR[Anum==denom ɂȂ܂ŒIɌĂ΂B߂l 0 
̎AvOC͏𒆒fB̊֐ data nKvB

mask ͉摜̃}XNf[^łBmask  0 ̏͊Sɕی삳ĂȂ̈
BvOC mask  0 ̏ɂ̂݌ʂ 100% ގłB
maskflag  PBF_MASK_CLIENT w肷 PictBear }XNsBvOC
͉摜ŜɃtB^s΂悢Bi}XNKv͂Ȃj
ŜɃtB^KpȂǂŃ}XNčꍇ PBF_MASK_PLUGIN
w肵A}XN PictBear ɏȂ悤ɂKvBftHg
PBF_MASK_CLIENT łB

PBF_MASK_CLIENT  area ȓɃtB^Kp鎖ɂ荂\ɂȂB
area  mask  255 ȊÖ̗ێĂB


PBF_GetName

tB^Ƃ̎ނ擾B

[vg^Cv]
@@void WINAPI PBF_GetName(
@@@@int no, LPSTR kind, int kind_len,
@@@@LPSTR name, int name_len);

[]
@@no       - tB^ԍB0`PBG_FilterCount-1 ܂ł̒lnB
@@kind     - tB^̎ނރobt@
@@kind_len - obt@̑傫
@@name     - tB^ރobt@
@@name_len - obt@̑傫

tB^̎ނ▼O "p|{" ̂悤ɋLqKvB

PictBear ł̓tB^̎ޗpɈȉ̖OmۂĂB

@@Blur|ڂ
@@Sharp|V[v
@@Other|̑

@@pɎMȂ̂łӂ킵Pꂪ΋Ă(^^;

V[gJbgL[(&S )͕tĂ͂ȂȂB܂ PBF_Setup Ń_CAO\
tB^ name ̌ "..." ǉKvBV[gJbgL[ 
PictBear Iɐݒ肷B


PBF_Setup

tB^̐ݒύXB

[vg^Cv]
@@BOOL WINAPI PBF_Setup(
@@@@int no, HWND hwnd,
@@@@const Pixel32* src, int width, int height);

[]
@@no     - tB^ԍB0`PBG_FilterCount()-1 ܂ł̒lnB
@@hwnd   - eEChEւ̃nh
@@src    - vr[p̃C[
@@width  - C[̕
@@height - C[̍

[߂l]
@@LZ{^ꂽ FALSE ԂB

PictBear  PBF_Execute ̑Oɂ̊֐ĂяoBPictBear ł
֐ TRUE Ԃ̂ PBF_Execute sB\Ȃ΃vr[\
B܂ݒ̓O[oϐȂǂɈꎞIɕۑȂŁAWXg̏ꏊ
ۑKvBݒ PBF_Execute ĂяoɃWXgǂݍށBL
Z{^ꂽ͐ݒۑĂ͂ȂȂB"ÕtB^s" 
ɂ PBF_Setup ̓R[ȂB

tB^̃IvVKvȂꍇ return TRUE; ݂̂LqB{
_CAOgpꍇ̓tHg 'MS UI Gothic 9pt' gpKvB
܂_CAÕfUC͂Ȃׂ PictBear Ɠ悤ɂB

QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
