////////////////////////////////////////////////////////////////////
/*

    KAB-studio.h


    (C)KAB-studio 1999 - 2002 ALL RIGHTS RESERVED.
        http://www.kab-studio.com/
        info@kab-studio.com

    MF 2002/08/05(Mon) No.169
    zMF 3660 ( Mag2 + Pubzine )
    sF ܂܂ ( URL: http://www.mag2.com/  ID: 0000012198 )
    sF Pubzine ( URL: http://www.pubzine.com/  ID: 590 )
*/
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
/*                QOOQNWTij̍XV                  */
http://www.kab-studio.com/

EW\ǎoI
@PAV\łBWČς萅I@ł挎
͐FCȂ߁ijB_E[h CG Gallery ɂāB
[ CG Gallery ]
http://www.kab-studio.com/CG/Gallery/

Ezbgn[uɂPbǉB
@Ol̃zbgn[uɂPbǉ܂Buzbgn[uvI
[ Ol̃zbgn[u ]
http://www.kab-studio.com/Comic/HotHerb/

ECodian ق̂ƏCB
@Codian ́u|C^ƕCStringƁv傱ƂCBق
Ƃɂ傱ƁB̂炢CłȂccB
[ Codian ]
http://www.kab-studio.com/Programing/Codian/
[ |C^ƕCString ]
http://www.kab-studio.com/Programing/Codian/MxA/09.html


////////////////////////////////////////////////////////////////////
/*                        `[ʂȓL                        */
http://www.kab-studio.com/nikki2/

2002/07/28 (Sun)
@W\ǎI@Ƀ{co[WBIoxŌ߂킯Ȃ
[Bŏ͘Iox̍񂾂ǁBׂ͍΂Ă
B͌\̂ȁ[ƁBUԁBer̓nP
W[ɃKbhoB

2002/07/29 (Mon)
@ዾɂ܂ȂB Java B Bean ̓o^ɋCtȂB 
const o֐ȂBAɃv^̃CNƂB܂񂪑剤 +
Kanon ̓iVɁB

2002/07/30 (Tue)
@T[ubgvO~OBGccBvXeQ Kanon 
ĂBقƂ́[̂Q͂I\ς悤ȂƁBCob
̒ʐMB

2002/07/31 (Wed)
@eXeBOSłƂcƁB classpath  jar t@C̊
WAΓȂH@bb̉fŊy݁BL̃N[
BԂGΔBV㔼AcbR~ЂƂȂI

2002/08/01 (Thu)
@eXeBOBA Kanon DVD TƂwBp[eBNS
̎BĂ炩ȂBZlbgĔɖH@lbgfBoCh
ƂȂ񂩖YꋎĂBĂ͕ʂ̕ςȐlłB

2002/08/02 (Fri)
@vXW܂ŁB SELECT ̃XR[vB JUnit ֗BV삤lB
܂̐́I@ꂩOBzg KAB-studio.h ͋xł
񂾂ǁB

2002/08/03 (Sat)
@OĂ肤QB Kanon ֌W܂BƂƍ
Ă΂̎OBo[~ŐHׂȂɂɗǂB


////////////////////////////////////////////////////////////////////
/*                         A                             */
http://www.kab-studio.com/Novel/Fuga/

@ĺ@ӂ̗Eҁ@|PT|

uĂƁA̖͍mAt@C_EgЂ̑\̂悤Ȃ̂Ă
񂾁B̂ӂ͂`oƂĎقĂv
uĂČĂ񂶂ȂHv
u{ĂĂČłv
@NƃVl̂Ƃ́Aقǒ悤ɂ͌Ȃ
B
u`oĂȂłHv
u`@oAi񂾐lԂƂł邩ȁB
܂AႤ@ŌNB̂悤ɂȂ̂Ǝv΂v
uȂƂA\Ȃ̂ccv
uāAl݂Ȃ̂ς獢ȂƂv񂶂
Hv
@Ăꂽ̂A͂ՂƂۂB
uB~߂̂AX̖ړIv
uBPA̋ȓBccv
uBVnȊwHƂƂЂōĂk@v
B̐~߂Ȃ΂Ȃv
u̎`ė~Ă̂ˁv
uAȂv
@̌t͉̒ӂB
u̕ʂ͉XɔCė~B̂ANB̗́͂󂯌p
́ƂĂ̐Ӗʂė~v
@Ɖ͊킹B
uł|ƂړIˁv
uȂƂ܂ŒmĂ̂ccv
ułÁŁȂȂ̂A܂Ȃccv
uƂ낪mĂ񂾂ȁAꂪv
@ӂ肾łȂAVlƏNӂB
ułA閧v
uЁA閧āccv
uB͒ԂɂȂ񂶂Ȃ̂Hv
uv
@N͂ߊŎUB
u͖lBɂقƂǋĂȂ񂾂́BƂAɂ
݂ǂˁv
@ƁAVl𗬂鏭NBȎ𖳎āAVl͗m
uB
uBɘbĂꂽ炢Ȃ炢񂶂ȂHv
u܁Â炢Ȃv
uȂɂIIv
@ˑR̋тÎBӐ[Oώ@BR̓HA
̈iɔLĂB炵̂悢Ԃɂ́ADF_
ȂB
uVlAށv
uJ邩v
@̈Ӗ𗝉܂ȂJBȕޒÂ
邪ĎԂ̉ւƏオB͑̂Œ肵ĊJhAO
B
uǂccIHv
@̐̓Vlɂ͂Bグɂ͂͂_ȂB
@uBRɖ΂؁X𒴂āAȉeB͎Ԃ̏ʂ
z̕ւƔłBS̎pǂB
                                                              ()


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
wIx
uǂ́AΔv
w̕AɏoĂ`oāAقƂ́[łoĂˁx
uA΁Bzbgn[ûQ̂WɏoĂˁv
wႠVl񂪎̂ȁIx
u悤ȌȂ悤ȁccv
wĂ[Aۂɓ̂Ȃ́Hx
u݂B̐ݒ莑ɂƁv
w݂Ă݁[BAオႤˁx
uݒł́AA͂QOIAقƂ́[͂QPI݂v
wȂ񂩔ˁ[x
uł֌WĂ邱Ƃ͊m݂ˁv
wi͋̕CSRႤǁx
uAƂSR}ˁccv
http://www.kab-studio.com/
_______________________________________________________________[KCM]


////////////////////////////////////////////////////////////////////
/*                       #pragma twice                            */
http://www.kab-studio.com/Programing/PragmaTwice/

@Version 9.08
xANZ[^[ǉI

uÕANZ[^[VR[hv

void CMainFrame::OnMenuTest() 
{
    // ANZ[^[e[uV܂B
    ACCEL stAccel;
    stAccel.fVirt = FCONTROL | FVIRTKEY;
    stAccel.cmd = ID_FILE_OPEN;
    stAccel.key = 'B';
    HACCEL hAccel
        = CreateAcceleratorTable( &stAccel, 1 );
    // ÂANZ[^[e[u폜܂B
    DestroyAcceleratorTable( m_hAccelTable );
    // ANZ[^[e[uւ̃nhւ܂B
    m_hAccelTable = hAccel;
}

wĂ[ă_I@V Ctrl + B ł悤ɂȂ
ƎvA Ctrl + O ƂSȂȂx
uAB̕@́v

PF Ctrl + B ȂANZ[^[e[uB
QFÂANZ[^[e[ui Ctrl + O ܂ށj폜B
RFVANZ[^[e[uZbg

uĕ@Ă܂v
wꂶ Ctrl + O ƂgȂȂႤ킯ˁBłÃ
\[XƂȂ Insert Ȃ񂽂Ƃłł̂Ɂx
uANZ[^[e[u͂̂ȂÂɂ̂
ܒǉ邱Ƃ͂łȂłBv

PFÂANZ[^[e[u̕B
QF Ctrl + B ̃ANZ[^[ǉB
RFÂANZ[^[e[u폜B
SFZbgB

w܂Ax茳ɎĂĒǉĂZbg킯ˁx
u䂱ƁBŁA̒ňԓ̂́AǉƂ
v
wɂ͌Ȃǁx
u̕܂߂ĂڂƁv

PFÂANZ[^[e[ũANZ[^[̐擾B
QF̐{P̃ANZ[^[̕ϐpӂB
RF̕ϐɌÂANZ[^[e[ȕRs[B
SF]P Ctrl + B ̃ANZ[^[̏uB
TF̕ϐŃANZ[^[e[uV쐬B
UFÂANZ[^[e[u폜B
VFVANZ[^[e[uZbgB

w悤ȁAȂ悤ȁccŏ̐擾āAO
x
u邵AƂǂOɂĂ̂邯ǂˁB
ЂƂЂƂ菇ǂĂΑvccƎvv
wsˁ[x
u΂͉̂Δv
w󂿂΂[Ɂx
u͂͂BAR[hĂ݂܂傤v

void CMainFrame::OnMenuTest() 
{
    // ACe擾܂B
    int iTableNum
        = CopyAcceleratorTable( m_hAccelTable, NULL, 0 );
    // ACe + 1  ACCEL \̔zmۂ܂B
    ACCEL *pstAccel = new ACCEL[iTableNum + 1];
    // ÂANZ[^[e[uRs[܂B
    CopyAcceleratorTable
        ( m_hAccelTable
        , pstAccel
        , iTableNum
        );
    // + 1 ̏ɐVANZ[^[̃f[^܂B
    pstAccel[iTableNum].fVirt = FCONTROL | FVIRTKEY;
    pstAccel[iTableNum].cmd = ID_FILE_OPEN;
    pstAccel[iTableNum].key = 'B';
    // ANZ[^[e[uVK쐬܂B
    HACCEL hNewAccel
        = CreateAcceleratorTable( pstAccel, iTableNum + 1 );
    // mۂz폜܂B
    delete [] pstAccel;
    // ÂANZ[^[e[u폜܂B
    DestroyAcceleratorTable( m_hAccelTable );
    // ANZ[^[e[uւ̃nhւ܂B
    m_hAccelTable = hNewAccel;
}

wȂIx
uƂ킯ŁAЂƂЂƂĂ܂v
w܂ CopyAcceleratorTable() ́AO炢[ƂāB́x

    // ACe + 1  ACCEL \̔zmۂ܂B
    ACCEL *pstAccel = new ACCEL[iTableNum + 1];

wꂪx
u new ͈ꉞgƂ񂾂ǂˁv
wH@ccA Version 5.22 ( No.087 ) łĂˁx
u new ́Aϐ邽߂̃L[[hBƁÂƂōAv
ĂANZ[^[e[ũf[^ĂĎ󂯎Kv
܂v
ẃqRF̕ϐɌÂANZ[^[e[ȕRs[
Br̂ƂˁBĂƂ͂̑ÓqQF̐{P̃ANZ[
^[̕ϐpӂBr̍sȂ񂾁x
u䂱ƁBOANZ[^[e[uƂ ACCEL \
głv
wgB̒ɂǂL[̎ɂǂR}h
ēꂽ񂾂ˁBA̕ϐł󂯎񂾁x
u䂱ƁB̏󂯎邽߂ɁAŏɃANZ[^[
Ă邩ׂāAv

new ACCEL[iTableNum + 1];

uł̐ + 1  ACCEL \̂āA|C^ƂĎ
ĂłBC[WƂẮA iTableNum  3 ȂA + 1 łS
v

[ACCEL][ACCEL][ACCEL][ACCEL]

uĊɃ ACCEL \̂Sł邱ƂɂȂ܂v
wԂĂ|C^āAԍŏ ACCEL ̃AhXȂ񂾂ˁB
A΂Ȃ + 1 Hx
uāA̗ł̓ANZ[^[ǉȂႢȂv
wP₵Ă񂾁x
uŁAϐpӂAɃRs[܂v

    // ÂANZ[^[e[uRs[܂B
    CopyAcceleratorTable
        ( m_hAccelTable
        , pstAccel
        , iTableNum
        );

w m_hAccelTable ͑OAĂANZ[^[e[u
nhˁBAQ́ccHx
u|C^B new ō̂󂯎鎞̓|C^v
w̃y[WɂĂˁx
ũ|C^nƁA CopyAcceleratorTable() ̃|C^ʂ
Ďۂ new ōꂽϐɏł܂v
wނނށx
ũRs[͕̂̕ƂƓHv
wcĉƂ͂łĂ邩C[W͂߂Ȃ
[x
uˁBƂ Version 5.03 ( No.068 ) ȍ~ǂݕԂāv
ẃ[x
uŁAR iTableNum A܂荡ĂANZ[^[̐
nƁA̐ pstAccel ɃRs[Ă܂v
wA΂ CopyAcceleratorTable() āAANZ[^[
Ƃ̂Ɠ API ˁx
uA炱 API ɂ͂ӂ̋@\ĂĂƂˁB{
͂̂͗ǂȂ񂾂ǁccv
wŁÁx

    // + 1 ̏ɐVANZ[^[̃f[^܂B
    pstAccel[iTableNum].fVirt = FCONTROL | FVIRTKEY;
    pstAccel[iTableNum].cmd = ID_FILE_OPEN;
    pstAccel[iTableNum].key = 'B';

wāAÔƓccǂƈႤˁx
ũRs[ł iTableNum Rs[ĂȂÃC
[WƁv

[Rs[ς][Rs[ς][Rs[ς][ĂȂ]

uĊɂȂĂ܂BŁA̕ōŌ̂Pɒǉf[^
Ă킯v
wȂx

    pstAccel[iTableNum + 1].fVirt = FCONTROL | FVIRTKEY;

wȂ́Hx
uāAz 0 n܂邩v
wAB̂Ɓx

[O][P][Q][R]

wŁA iTableNum  3 獇Ă񂾁x
u܂Az̍Ō̗vf́Avf̐ - 1 Bz̗vf̐ 
iTableNum + 1 B ( iTableNum + 1 ) - 1 ďv
wĕρccx
ul͑OĂB₷v
wccȂ񂩒pȂHx
u₷̕厖ƎvBŁAv

    // ANZ[^[e[uVK쐬܂B
    HACCEL hNewAccel
        = CreateAcceleratorTable( pstAccel, iTableNum + 1 );

w͑ÔˁBAłQႤx
uO̓ANZ[^[ЂƂǁv
w͌X̂Ă邩炢ςȂ񂾂ˁx
uŁÂƁv

    // mۂz폜܂B
    delete [] pstAccel;

w new ϐ̂Ȃ񂾂ˁx
uBʂ̕ϐ͊֐IƂɎIɏ񂾂ǁA 
new ̂ delete ŏȂƃAvI܂ŏȂv
włAč폜܂񂶂ȂH@āAꂩAN
Z[^[e[ugłHx
uvvB CreateAcceleratorTable() ŁAEBhEYVX
e̒ɖ{̃ANZ[^[e[uĂ񂾂v
w{́Hx
uB pstAccel ́ÃANZ[^[e[u邽߂̂
BƂ΁A Version 9.04 ( No.165 ) Ńj[ACeǉ
ƂA CMenu::InsertMenu() ɓnƂ́v
wAȂȂĂ邯ǁAj[ACe͂ƍĂ
ˁx
uƓBƂ̍s͑OƓvˁv
wAȂƂx

/*
    Preview Next Story!
*/
wԓ̂ĔẑƂx
uAԓƎvv
wȂ́Hx
uς胁C[WƂ͉ɂˁBłڌ΁v
wA΂񂾂ˁx
uʓ|ǁAЂƂ̎ĂƂŁv
w킯Ŏx
 Version 9.09 c[o[gĂ݂悤I 
uɂÂIv
wx͉₷ˁx
uƂ낪ǂv
wIx


////////////////////////////////////////////////////////////////////
/*                QOOQNWPQij̍XV                */
http://www.kab-studio.com/

EXVeB
@Z[hɓĂ܂̂ŁAقƂ́[TXVmłȂ
ԂłBށ[Błł΁ccB


////////////////////////////////////////////////////////////////////
/*                          ӁII                            */

Ẽ[ԐMȂłB
EӌE]Ez[`[ʂȓL]肨肭B
http://www.kab-studio.com/nikki2/
EwǓo^Ƃɂ͂̃y[WōsȂĂB
http://www.mag2.com/m/0000012198.htm
http://www.pubzine.com/detail.asp?id=000590
E͎ōsȂĂB
EobNio[͂̃y[Wɂ܂B
http://backno.mag2.com/reader/Back?id=0000012198
http://www.kab-studio.com/Freeware/index.html#MailMagazine


////////////////////////////////////////////////////////////////////
/*
    KAB-studio.h
      Weekly Mail Magazine.
      Written by Kaburaya Seiden.
      http://www.kab-studio.com/Info/MailMagazine/

    (C)KAB-studio 1999 - 2002 ALL RIGHTS RESERVED.
        http://www.kab-studio.com/
        info@kab-studio.com
*/
////////////////////////////////////////////////////////////////////

