$B3F%$%Y%s%H=hM}4X?t$GLa$5$l$?CM$rJV$9!#(B
$B%$%Y%s%H%k!<%W=hM}$G$O!"=g
wi
$B$O!";HMQ$9$k%&%#%s%I%&$K4X$9$kB0@-$r<($9!"(B
$B0J2<$N%&%#%s%I%&>pJs%l%3!<%IG[Ns$X$N%]%$%s%?$G$"$k!#(B
typedef struct {
W wid; -- $B%&%#%s%I%&(BID(0$B$O:G8e!"(B< 0 $B$OL58z(B)
W chgmod; -- $B%&%#%s%I%&B0@-(B
RECT limit; -- $BJQ7A%j%_%C%H(B
W pid[3]; -- $B%9%/%m!<%k%P!pJs(B
} WINFOREC;
typedef WINFOREC *WINFOPTR;
$B%&%#%s%I%&>pJs%l%3!<%IG[Ns$O!"(B
$B;HMQ$9$k%&%#%s%I%&$N8D?t(B + 1 $B$NMWAG$,I,MW$G$"$j!"(B
$B:G8e$NMWAG$N(B wid
$B$O(B 0 $B$G$J$1$l$P$J$i$J$$!#(B
$B%&%#%s%I%&>pJs%l%3!<%IG[Ns$NFbMF$O!"(Bevt_loop()
$B$r$C$F!"%&%#%s%I%&$N?t<+BN$,F0E*$KJQ2=$9$k>l9g$O!"(B
$B$"$i$+$8$a(B $B:GBg?t(B + 1
$B$NMWAG$N%&%#%s%I%&>pJs%l%3!<%IG[Ns$rMQ0U$7$F$*$-!"(B
$BL58z$J%&%#%s%I%&$KBP$7$F$O!$(Bwid
$B$H$7$FIi$NCM$r@_Dj$7$F$*$/$3$H$K$J$k!#(B
$B%&%#%s%I%&>pJs%l%3!<%IG[Ns>e$G$N%$%s%G%C%/%9CM(B
( 0 $B!A(B ) $B$O!"(B
$BBP>]%&%#%s%I%&$N<1JL$N$?$a$K;HMQ$5$l!"(Bevt_loop()
$B4X?t$NCf$+$i5/F0$5$l$k%$%Y%s%H=hM}$N4X?t$K$b!"(B
$B$3$N%$%s%G%C%/%9CM$,!"(B
$B%$%Y%s%H$NBP>]$H$J$C$?%&%#%s%I%&$N<1JL>pJs$H$7$FEO$5$l$k!#(B
$B%&%#%s%I%&B0@-$O!"%&%#%s%I%&$N0\F0(B / $BJQ7A(B /
$BA4LL%b!<%I$N2DH]$r<($90J2<$NCM$G$"$k!#(B
XXXX XXXX XMSF XXmm
- M
- = 0 : $B%&%#%s%I%&OH$N%I%i%C%0$K$h$k%&%#%s%I%&$N0\F05v2D(B
= 1 : $B%&%#%s%I%&OH$N%I%i%C%0$K$h$k%&%#%s%I%&$N0\F06X;_(B
- S
- = 0 : $B%O%s%I%k$N%I%i%C%0$K$h$k%&%#%s%I%&$NJQ7A5v2D(B
= 1 : $B%O%s%I%k$N%I%i%C%0$K$h$k%&%#%s%I%&$NJQ7A6X;_(B
- F
- = 0 : $B%O%s%I%k$N%@%V%k%/%j%C%/$K$h$kA4LL%b!<%I6X;_(B
= 1 : $B%O%s%I%k$N%@%V%k%/%j%C%/$K$h$kA4LL%b!<%I5v2D(B
- m
- : $BA4LL%b!<%I5v2D$N>l9g$K!"(B
wchg_wnd()
$B$N(B mode
$B%Q%i%a!<%?$NCM$G$"$j!"(B
W_MOVE
$B!"(BW_MOVEC
$B!"(B
W_HOLD$B$N$$$:$l$+$NCM(B
$B!#(B
F = 0
$B$N>l9g$O0UL#$r;}$?$J$$!#(B
- X
- : $BL$;HMQ(B
$BJQ7A%j%_%C%H$O!"%&%#%s%I%&B0@-$N(B S=0
$B$N>l9g$K$N$_0UL#$r;}$A!"(B
$B%&%#%s%I%&$N%I%i%C%0JQ7A$N:G>.(B / $B:GBg%5%$%:$r<($7!"(B
wrsz_drg()
$B$N%Q%i%a!<%?$H$7$F$=$N$^$^;HMQ$5$l$k!#(B
$B$?$@$7!"JQ7A%j%_%C%H$r$9$Y$F(B 0 $B$H$7$?>l9g$K$O!"(B
wrsz_drg()
$B$N(B limit
$B%Q%i%a!<%?$O(B
NULL
$B$H$5$l$k!#(B
$B%9%/%m!<%k%P!evt_loop() $B
pid[0] -- $B1&%9%/%m!<%k%P!<(B ( < 0 $B$OL$@_Dj$r0UL#$9$k(B)
pid[1] -- $B2<%9%/%m!<%k%P!<(B ( < 0 $B$OL$@_Dj$r0UL#$9$k(B)
pid[2] -- $B:8%9%/%m!<%k%P!<(B ( < 0 $B$OL$@_Dj$r0UL#$9$k(B)
$B$?$@$7!"(Bevt_loop()
$Bl9g!"(B
$B$=$NDI2C$7$?%&%#%s%I%&$N>pJs$KBP$7$F$O<+F0E*$K@_Dj$5$l$J$$$N$G!"(B
$B%"%W%j%1!<%7%g%s$NB&$G@_Dj$7$J$1$l$P$J$i$J$$!#(B
$B!J%9%/%m!<%k%P!<$r;}$D>l9g$OBP1~$9$k%9%/%m!<%k%P!l9g$O!"(B
$BIi$NCM$r@_Dj$7$J$1$l$P$J$i$J$$!K(B
$B%"%W%j%1!<%7%g%s>pJs$O!"(B
$B%"%W%j%1!<%7%g%sB&$GG$0U$K;HMQ$G$-$k%G!<%?$G$"$j!"(B
evt_loop()
$B4X?t$G$O!"(B
$B;2>H$bJQ99$b$7$J$$%G!<%?$G$"$k!#(B
wf
$B$O!"%&%#%s%I%&!&%$%Y%s%H$KBP1~$9$k4X?t$r<($9!"(B
$B%&%#%s%I%&!&%$%Y%s%H4X?t%F!<%V%k$X$N%F!<%V%k$X$N%]%$%s%?$G$"$k!#(B
$B$3$NFbMF$b!"(Bevt_loop()
$Bl9g$K$O(B NULL
$B$H$7$FNI$$$b$N$b$"$k$,!"(B
$B$$$/$D$+$N4X?t$OI,$:@_Dj$7$J$/$F$O$$$1$J$$!#(B
typedef struct {
W (*bgfn)(void); /* $B%P%C%/%0%i%&%s%I=hM}(B */
VOID (*idlefn)(void); /* idle $B=hM}(B */
W (*msgfn)(MESSAGE *msg); /* $B0lHL%a%C%;!<%8=hM}(B */
W (*menufn)(void); /* $B%a%K%e!<=hM}(B */
VOID (*dspfn)(W ix, W mode, RECT *new); /* $BI=<(=hM}(B */
VOID (*stsfn)(W ix, W sts); /* $B>uBVJQ2==hM}(B */
W (*keyfn)(void); /* $B%-!?HMW5a%$%Y%s%H=hM}(B */
} WFUNCREC;
typedef WFUNCREC *WFUNCPTR;
$B@\;HMQ$9$k$3$H$,$G$-$k!#(B
IMPORT WEVENT wevt;
$B%$%Y%s%H%k!<%W=hM}$G$O!"(B
$B4pK\E*$K!"(B
$B%$%Y%s%H$N
- $B%&%#%s%I%&$N%I%i%C%0$K$h$kJQ7A!"0\F0=hM}!#(B
- $B%O%s%I%k$N%@%V%k%/%j%C%/$K$h$kA4LL!?DL>o%b!<%I@Z$j49$(=hM}!#(B
- $B%G%P%$%9!&%$%Y%s%H$NDj7?=hM}!#(B
- $B%9%/%m!<%k%P!<$N=hM}!#(B
- $BMW5a%$%Y%s%H$N1~Ez$NAw?.=hM}!#(B
unget_wevt()
$B$K$h$j!"La$5$l$?%$%Y%s%H$N=hM}!#(B
$B!|(B $B%P%C%/%0%i%&%s%I=hM}!'(B W (*bgfn)(void);
$B%&%#%s%I%&$,F~NOuBV$G$J$$>l9g$N%P%C%/%0%i%&%s%I=hM}$N$?$a$N4X?t$G$"$j!"(B
wf->bgfn$B!a(B NULL
$B$N>l9g$O!"(B
$B%&%#%s%I%&!&%$%Y%s%H$O(B
WAIT
$B%b!<%I$GNULL
$B$G$J$$>l9g$O!"%&%#%s%I%&!&%$%Y%s%H$O(B NOWAIT
$B%b!<%I$GEV_NOMSG $B$,F@$i$l$?>l9g!"(B
$B$3$N4X?t$,
$B4X?tCM(B $B!b(B 0 $B$N>l9g$O!"(Bevt_loop()
$B$+$i%j%?!<%s$7!"(B
evt_loop()
$B$N4X?tCM$O!"(Bbgfn()
$B$N4X?tCM$H$J$k!#(B
$B!|(B IDLE$B=hM}!'(B VOID (*idlefn)(void);
EV_NULL
$B$,F@$i$l$?>l9g$K
$BDL>o$O!"%]%$%s%?7A>u$NJQ99(B ( $B<+%&%#%s%I%&Fb$K%]%$%s%?$,$"$k;~(B )$B!"(B
$B%+%l%C%H(B / $BA*BrNN0h$N%A%i%D%-=hM}Ey$r9T$&!#(B
wf->idlefn $B!a(B NULL
$B$N>l9g$O2?$b$7$J$$!#(B
$B!|(B $B0lHL%a%C%;!<%8=hM}!'(B W (*msgfn)(MESSAGE *msg);
EV_MSG
$B$,F@$i$l$?>l9g$Kmsg $B$O!"(B
$BF@$i$l$?0lHL%a%C%;!<%8$N@hF,(B 4 $B%P%$%H$,3JG<$5$l$F$$$kNN0h$X$N%]%$%s%?$G$"$k!#(B
$B$3$N4X?t$G$O!"(Brsv_msg()
$B$K$h$j%a%C%;!<%8$r
$B4X?tCM!b(B 0 $B$N>l9g$O!"(Bevt_loop()
$B$+$i%j%?!<%s$7!"(B
evt_loop()
$B$N4X?tCM$O!"(Bmsgfn()
$B$N4X?tCM$H$J$k!#(B
wf->msgfn $B!a(B NULL
$B$N>l9g$OF@$i$l$?%a%C%;!<%8$r
$B!|(B $B%a%K%e!<=hM}!'(B W (*menufn)(void);
EV_MENU
$B$,F@$i$l$?>l9g$Ku$O!VA*Br;X!W$N7A>u$KJQ99$5$l$F$$$k$?$a!"(B
$B4X?t$NCf$G$O%]%$%s%?7A>u$r@_Dj$9$kI,MW$O$J$$!#(B
$B4X?tCM!b(B0 $B$N>l9g$O!"(Bevt_loop()
$B$+$i%j%?!<%s$7!"(B
evt_loop()
$B$N4X?tCM$O!"(Bmenufn()
$B$N4X?tCM$H$J$k!#(B
wf->menufn = NULL
$B$N>l9g$O2?$b$7$J$$!#(B
$B!|(B $BI=<(=hM}!'(B VOID (*dspfn)(W ix, W mode, RECT *new);
$B%&%#%s%I%&$NI=<(MQ$N4X?t$G$"$j!"(B
ix
$B$OBP>]%&%#%s%I%&$N%&%#%s%I%&>pJs%l%3!<%IG[Ns$N%$%s%G%C%/%9(B
( 0 $B!A(B) $B$r<($7!"(B
mode
$B$O!"0J2<$N:FI=<(MW0x$r<($9!#(B
| | $B:FI=<($NMWH](B | new$B$NCM(B |
mode | = -1 : $B=i4|I=<(MW5a(B | $BMW(B | NULL |
| = 0 : $B:FI=<(MW5a%$%Y%s%H(B | $BMW(B | NULL |
| = 1 : $B%I%i%C%00\F0(B | $BMW(B | NULL |
| = 2 : $B%I%i%C%0JQ7A(B | $BH](B | $B?7:n6HNN0h(B |
| = 3 : $B%I%i%C%0JQ7A(B | $BMW(B | $B?7:n6HNN0h(B |
| = 4 : $BDL>o%b!<%I@Z49(B | $BH](B | $B?7:n6HNN0h(B |
| = 5 : $BA4LL%b!<%I@Z49(B | $BMW(B | $B?7:n6HNN0h(B |
| = 6 : $BDL>o%b!<%I@Z49(B | $BMW(B | $B?7:n6HNN0h(B |
| = 7 : $B%Q%M%k:o=|(B | $BMW(B | NULL |
| = 8 : $BG[CVJQ99(B | $BH](B | $B?7:n6HNN0h(B |
| = 9 : $BG[CVJQ99(B | $BMW(B | $B?7:n6HNN0h(B |
$B=i4|I=<(MW5a$O!"(Bevt_loop()
$B$rl9g$K!"(B
$B:G=i$N0l2sL\$@$1%&%#%s%I%&>pJs%l%3!<%IG[Ns$KEPO?$7$F$"$k%&%#%s%I%&$KBP$7$FH/@8$9$k!#(B
$B%Q%M%k:o=|$O!"%Q%M%k$,:o=|$5$l$?>l9g$K!"(B
$B%Q%M%k$K1#$l$F$$$?%&%#%s%I%&$KBP$7$F8F$S=P$5$l$k$b$N$G!"(B
$B%Q%M%kI=<(Cf$K%&%#%s%I%&$NFbMF$rJQ99$7$?>l9g$K:FI=<($r9T$J$&I,MW$,$"$k!#(B
$B%&%#%s%I%&$NFbMF$rJQ99$7$F$$$J$$>l9g$O!"(B
$B:FI=<($r9T$J$&I,MW$O$J$$!#(B
$B$3$NMW5a$O!"(BWA_BGDSP
$BB0@-$r;}$D%&%#%s%I%&$G$+$D!"(B
bgfn$B!b(BNULL
$B$N>l9g$N$_H/@8$9$k!#(B
$BG[CVJQ99$O!"%&%#%s%I%&$NG[CV$,JQ99$5$l$?>l9g$KH/@8$9$k!#(B
$B:FI=<($,I,MW$J>l9g$O!"(Bwsta_dsp()
$B!A(Bwend_dsp()
$B$K$h$j!"(B
$B:FI=<($NI,MW$JNN0h$r
wf->dspfn = NULL
$B$G$"$C$F$O$$$1$J$$!#(B
$B%&%#%s%I%&$NG[?'$J$I$,JQ99$5$l$?>l9g!"0J2<$N30ItJQ?t$K(B 1 $B$,@_Dj$5$l$F!"(B
$B:FI=<(MW5a%$%Y%s%H$,H/@8$9$k!#(B
$B%&%#%s%I%&>pJs%l%3!<%I$+$i%Q%?!<%s$d?'$N>pJs$rl9g$K$O!"(B
$B:FI=<(=hM}$G!"$3$N30ItJQ?t$,(B 1 $B$K@_Dj$5$l$F$$$k>l9g$O!"%&%#%s%I%&>pJs%l%3!<%I(B
$B$r:FEY
IMPORT W wcolor_changed; /* $B%&%#%s%I%&G[?'JQ99(B */
$B!|(B $B>uBVJQ2==hM}!'(B VOID (*stsfn)(W ix, W sts);
$B%&%#%s%I%&$N>uBVJQ99$KBP$7$Fix $B$OBP>]%&%#%s%I%&$N%&%#%s%I%&>pJs%l%3!<%IG[Ns$N%$%s%G%C%/%9(B
( 0 $B!A(B ) $B$r<($7!"(B
sts
$B$O!"0J2<$N>uBVJQ99MW0x$r<($9!#(B
sts | = 0 | : EV_INACT $B$,H/@8(B ( $BB>%&%#%s%I%&$X$N@Z$j49$((B) |
| = 1 | : EV_SWITCH $B$^$?$O(B EV_RSWITCH $B$,H/@8(B |
| = 2 | : W_SWITCH $B$,H/@8(B ($BB>%&%#%s%I%&$+$i$NI|5"(B) |
| = 0x100 | : EV_INACT $B$,H/@8(B ($B%Q%M%k$X$N@Z$j49$((B) |
| = 0x102 | : W_SWITCH $B$,H/@8(B ($B%Q%M%k$+$i$NI|5"(B) |
| < 0 | : W_CLOSED $B$,H/@8(B ($B%/%m!<%:$7$?(B wid $B$O(B -sts $B$H$J$k(B) |
EV_RSWITCH
$B$,H/@8$7$?>l9g$O!"(B
$B$^$:(B dspfn()
$B$,stsfn() $B$,!"(Bsts = 1
$B$Gpresfn() $BEy$,
EV_SWITCH
$B$,H/@8$7$?>l9g$O!"(B
stsfn()
$B$,(B sts = 1
$B$Gpresfn() $BEy$,
sts = 2(W_SWITCH)
$B$N>l9g$O!"(B
stsfn()
$B$Nstsfn() $B$G$O>uBVJQ99$N=hM}$N$_$r9T$J$&$3$H$K$J$k!#(B
sts$B!a(B0x100 (EV_INACT)
$B!"(B0x102(W_SWITCH)
$B$O!"(B
$B$=$l$>$l%Q%M%k$,%*!<%W%s$5$l$?>l9g!"(B
$B$*$h$S!"%/%m!<%:$5$l$?>l9g$KH/@8$9$k!#(B
$B%Q%M%k$N>l9g$O!"I=<(%$%a!<%8$OJ]B8(B / $BI|5"$5$l$k$?$a!"(B
$B86B'$H$7$FI=<($rJQ99$9$k=hM}$r9T$C$F$O$$$1$J$$!#(B
sts = 0,1,2
$B$*$h$S(B sts < 0
$B$N$H$-$O!"(B
$B%&%#%s%I%&Fb$N%Q!<%D$O$9$Y$F(B P_ACT
$B>uBV!"(B
$B$+$D(B P_NODISP
$B>uBV$K@_Dj$5$l$k$?$a!"(B
$B%Q!<%D$N:FI=<($r9T$&I,MW$,$"$k!#(B
$B$^$?!"(Bsts = 0
$B$N;~$O!"(B
$B%&%#%s%I%&Fb$N%Q!<%D$O$9$Y$F(B P_INACT
$B>uBV!"(B
$B$+$D(B P_NODISP
$B>uBV$K@_Dj$5$l$k$?$a!"(B
$B%Q!<%D$N:FI=<($r9T$&I,MW$,$"$k!#(B
wf->stsfn = NULL
$B$G$"$C$F$O$$$1$J$$!#(B
$B!|(B $B%-!W (*keyfn)(void);
EV_KEY, EV_AUTKEY
$B$,H/@8$7$?>l9g$K
$B4X?tCM(B $B!b(B 0 $B$N>l9g$O!"(Bevt_loop()
$B$+$i%j%?!<%s$7!"(B
evt_loop()
$B$N4X?tCM$O!"(Bkeyfn()
$B$N4X?tCM$H$J$k!#(B
wf->keyfn = NULL
$B$N>l9g$O2?$b$7$J$$!#(B
$B!|(B PD$B%W%l%9=hM}!'(B W (*presfn)(W ix);
$B%&%#%s%I%&$N:n6HNN0hFb$G$N(B PD $B%W%l%9$KBP$7$F]%&%#%s%I%&$N%&%#%s%I%&>pJs%l%3!<%IG[Ns$N%$%s%G%C%/%9(B
( 0 $B!A(B ) $B$r<($9!#(B
$B4X?tCM!b(B 0 $B$N>l9g$O!"(B
evt_loop()
$B$+$i%j%?!<%s$7!"(B
evt_loop()
$B$N4X?tCM$O!"(Bpresfn()
$B$N4X?tCM$H$J$k!#(B
wf->presfn = NULL
$B$N>l9g$O2?$b$7$J$$!#(B
$B!|(B $B=*N;=hM}!'(B W (*finfn)(W ix, W mode);
$B%&%#%s%I%&$N=*N;MW5a$KBP$7$Fix $B$OBP>]%&%#%s%I%&$N%&%#%s%I%&>pJs%l%3!<%IG[Ns$N%$%s%G%C%/%9(B
( 0 $B!A(B ) $B$r<($7!"(Bmode
$B$O!"0J2<$N=*N;MW5aMW0x$r<($9!#(B
mode | = 0 | : $B%T%/%H%0%i%`$N%@%V%k%/%j%C%/$K$h$k=*N;MW5a(B |
| = 1 | : W_DELETE $BMW5a%$%Y%s%H$K$h$k=*N;MW5a(B |
| = 2 | : W_FINISH $BMW5a%$%Y%s%H$K$h$k=*N;MW5a(B |
mode = 0
$B$N>l9g!"(B
$B4X?tCM!b(B 0
$B$N;~$O!"(Bevt_loop()
$B$+$i%j%?!<%s$7!"(B
$B$=$N4X?tCM$O(B finfn()
$B$N4X?tCM$H$J$k!#(B
mode=1 (W_DELETE $BMW5a(B)
$B$N>l9g!"(B
$B%"%W%j%1!<%7%g%s$OJT=8Cf$NFbMF$KJQ99$,$"$l$P!"(B
$B%Q%M%k$rI=<($;$:$K!"$=$NFbMF$rJ]B8$7$?8e!"(B
$B%&%#%s%I%&$rJD$8$F$G$-$k8B$j?WB.$K=hM}$r=*N;$7$J$/$F$O$$$1$J$$!#(B
mode=2 (W_FINISH $BMW5a(B)
$B$N>l9g!"(B
$B%"%W%j%1!<%7%g%s$OJT=8Cf$NFbMF$rGQ4~$7$FB(:B$K%&%#%s%I%&$rJD$8$F=hM}$r=*N;$7$J$/$F$O$$$1$J$$!#(B
mode = 1, 2
$B$G!"(B
$B=*N;MW5a$rl9g$O!"4X?tCM!b(B0 $B$rLa$9$3$H$K$h$j!"(B
$BMW5a$rH/$7$?%W%m%;%9$K(B W_ACK
$B%l%9%]%s%9$,La$5$l!"(B
evt_loop()
$B$+$i%j%?!<%s$7!"(B
$B$=$N4X?tCM$O(B finfn()
$B$N4X?tCM$H$J$k!#(B
$B=*N;MW5a$rl9g$O!"(B
$B4X?tCM(B = 0$B$rLa$9$3$H$K$h$j!"(B
$BMW5a$rH/$7$?%W%m%;%9$K(B W_NAK
$B%l%9%]%s%9$,La$5$l!"(B
evt_loop()
$B$OB39T$5$l$k!#(B
$B=*N;MW5a$N1~Ez$OB(:B$KLa$9I,MW$,$"$k$?$a!"(B
finfn()
$B$G$O!"finfn()
$B$r=*N;$7$?8e$K9T$&I,MW$,$"$k!#(B
wf->finfn = NULL
$B$G$"$C$F$O$$$1$J$$!#(B
$B!|(B $BE=$j9~$_=hM}!'(B W (*pastefn)(W ix, PNT pos);
$B%&%#%s%I%&$X$N%I%i%C%0$K$h$kE=$j9~$_MW5a(B ( W_PASTE
$BMW5a%$%Y%s%H(B )
$B$KBP$7$Fix
$B$OBP>]%&%#%s%I%&$N%&%#%s%I%&>pJs%l%3!<%IG[Ns$N%$%s%G%C%/%9(B
( 0 $B!A(B ) $B$r<($7!"(Bpos
$B$OE=$j9~$_0LCV(B ( $BAjBP:BI8(B ) $B$r<($9!#(B
pos
$B$ODL>o!"E=$j9~$^$l$k%G!<%?NN0h$N:8>e$N0LCV$r<($9$b$N$H$9$k!#(B
$B=>$C$F(B W_PASTE
$BMW5a%$%Y%s%H$rAw?.$9$kB&$N%"%W%j%1!<%7%g%s$O!"(B
pos
$B$H$7$FE=$j9~$`%G!<%?NN0h$N:8>e$N:BI8CM$r!"(B
$BE=$j9~$_@h$N%&%#%s%I%&$NAjBP:BI8CM$G@_Dj$9$kI,MW$,$"$k!#(B
$B$5$i$K!"MW5a%$%Y%s%H$rAw?.$9$kB&$N%"%W%j%1!<%7%g%s$O!"(B
$BE=$j9~$s$@;~E@$N%]%$%s%?$N:BI8CM$r!"(B
$BE=$j9~$_@h$N%&%#%s%I%&$NAjBP:BI8CM$G!"(B
wevt.s.time
$B$K
$B%S%C%0%(%s%G%#%"%s$N(B CPU $B$N>l9g!'(B( pt.x << 16 | pt.y
)
$B%j%H%k%(%s%G%#%"%s$N(B CPU $B$N>l9g!'(B( pt.y << 16 | pt.x
)
$BDL>o$O!"%(%s%G%#%"%s$K4X78$J$/(B wevt.s.time = PNTtoUW(pt)
$B$N$h$&$K5-=R$9$k$H$h$$!#(B
$BE=$j9~$_$N=hM}$G$O!"(Bpos
$B$G;XDj$5$l$k%G!<%?NN0h$N:8>e$N0LCV!"(B
$B$b$7$/$O(Bwevet.s.time
$B$G<($5$l$k%]%$%s%?$N0LCV$N$$$:$l$+$r;HMQ$9$k$3$H$K$J$k!#(B
$B4X?tCM(B = W_ACK
$B$N>l9g$O(B ACK
$B%l%9%]%s%9$,La$5$l!"(B
$B4X?tCM(B $B!b(B W_ACK
$B$N>l9g$O(B NAK
$B%l%9%]%s%9$,La$5$l$k!#(B
$B%"%W%j%1!<%7%g%s$K$h$C$F$O!"(B
$B$9$Y$F$NE=$j9~$_$OJ#@=$H$7$Fl9g$O!"(BW_ACK
$B$N4X?tCM$rLa$9A0$K!"(B
wevt.s.pos.x = wevt.s.pos.y = 0x8000
$B$K@_Dj$7$F$*$/!#(B
$BE=$j9~$s$@B&$N%"%W%j%1!<%7%g%s$O(B W_ACK
$B$N1~Ez$,F@$i$l$?$H$-!"(B
wevt.s.pos.x == wevt.s.pos.y == 0x8000
$B$N>l9g$O!"(B
$B0\F0$G$O$J$/>o$KJ#
$BE=$j9~$_$KH<$&:FI=<(Ey$K;~4V$,$+$+$k>l9g$O!"(B
$BE=$j9~$_85$G$N%?%$%`%"%&%H$H$J$k2DG=@-$,$"$k$?$a!"(B
$B$G$-$k$@$1Aa$/!"(Bpastefn()
$B$r=*N;$7!"(B
$BJLES!":FI=<($r9T$&I,MW$,$"$k!#(B
wf->pastefn = NULL
$B$N>l9g$O2?$b$;$:$K!"(BNAK
$B%l%9%]%s%9$,La$5$l$k!#(B
$B!|(B $B1~Ez=hM}!'(B W (*respfn)(W ix, W cmd);
$B2?$i$+$N1~Ez%$%Y%s%H$rl9g$Kix $B$OBP>]%&%#%s%I%&$N%&%#%s%I%&>pJs%l%3!<%IG[Ns$N%$%s%G%C%/%9(B
( 0 $B!A(B ) $B$r<($7!"(Bcmd
$B$OW_ACK $B$^$?$O(B W_NAK
$B$,I,$:%;%C%H$5$l$F$$$k!#(B
$B4X?tCM!b(B0
$B$N>l9g$O!"(Bevt_loop()
$B$+$i%j%?!<%s$7!"(B
evt_loop()
$B$N4X?tCM$O!"(Brespfn()
$B$N4X?tCM$H$J$k!#(B
wf->respfn = NULL
$B$N>l9g$O2?$b$7$J$$!#(B
$B!|(B $B%9%/%m!<%k=hM}!'(B VOID (*scrlfn)(W ix, W type, W diff);
$B%&%#%s%I%&$N%9%/%m!<%kMW5a$KBP$7$F]%&%#%s%I%&$N%&%#%s%I%&>pJs%l%3!<%IG[Ns$N%$%s%G%C%/%9(B ( 0 $B!A(B ) $B$r<($7!"(B
type $B$O%9%/%m!<%k$N
XXXX XXXX XXCC TTDD
CC =
- 0 : $B1&%9%/%m!<%k%P!<(B
1 : $B2<%9%/%m!<%k%P!<(B
2 : $B:8%9%/%m!<%k%P!<(B
TT =
- 0 : $B%9%`!<%9%9%/%m!<%k(B
1 : $B%(%j%"%9%/%m!<%k(B
2 : $B%8%c%s%W%9%/%m!<%k(B
DD =
- 0 : $B>e%9%/%m!<%k(B
1 : $B2<%9%/%m!<%k(B
2 : $B:8%9%/%m!<%k(B
3 : $B1&%9%/%m!<%k(B
X
- : $BL$;HMQ(B(0)
diff
$B$O%8%c%s%W%9%/%m!<%k$N>l9g!"(B
( $B%8%c%s%W%9%/%m!<%kA0$N(B clo
$B$NCM(B )
- ( $B%8%c%s%W%9%/%m!<%k8e$N(B clo
$B$NCM(B) $B$H$J$k!#(B
$B%9%`!<%9%/%m!<%k$N>l9g!"(B
$B$3$NCM$OO"B3$7$?%9%`!<%9%9%/%m!<%kCf$N%9%/%m!<%k=hM}4X?t$N8F$S=P$7%+%&%s%H(B
( $B:G=i$O(B 0 ) $B$r<($9CM$H$J$k!#(B
$B%Z!<%8%9%/%m!<%k$N>l9g!"$3$NCM$O0UL#$r;}$?$J$$!#(B
$B%"%W%j%1!<%7%g%s$OBP1~$9$k%9%/%m!<%k=hM}$r9T$J$C$?8e!"(B
$B%9%/%m!<%k%P!
$B%&%#%s%I%&$K%9%/%m!<%k%P!<$,B8:_$9$k>l9g$O!"(B
wf->scrlfn = NULL
$B$G$"$C$F$O$$$1$J$$!#(B
$B%9%/%m!<%k%P!<$,B8:_$7$J$$>l9g$O!"(Bwf->scrlfn $B!a(B NULL
$B$G$h$$!#(B
$B$J$*!"%f!<%64D6-@_Dj$K$h$C$F%9%/%m!<%kF0:n$,DI=>$7$FI=<($5$l$k$h$&@_Dj$5$l$F$$$k>l9g$O!"(B
$BBP1~$9$k%9%/%m!<%k%P!<$KBP$7$F(Bcchg_par( PID, P_DRAGBREAK)
$B$K$h$C$F!"(B
$BDI=>%9%/%m!<%k$X$NBP1~$,%"%W%j%1!<%7%g%s$NB&$+$i$b@k8@$5$l$F$$$k>l9g$K8B$j!"(B
$BDI=>%9%/%m!<%k$r9T$&$3$H$,$G$-$k!#(B
$B!|(B $B%G%P%$%9!&%$%Y%s%H=hM}!'(B VOID (*devfn)(TC *devname);
EV_DEVICE
$B$,H/@8$7$?>l9g$K!"(B
$B?H%^%M!<%8%c$N(B oprc_dev()
$B4X?t$rdevname $B$K$O!"(BEV_DEVICE
$B$NBP>]$H$J$kO@M}%G%P%$%9L>$X$N%]%$%s%?$,EO$5$l$k!#(B
$B%G%#%9%/A^F~$K$h$k(B EV_DEVICE
$B$N>l9g$O!"(B
$B?H%^%M!<%8%c$N=hM}$K$h$j!"(B
$B$9$G$K%G%#%9%/$O@\B3$5$l$F$*$j!"(B
$B$=$N@\B3L>$OO@M}%G%P%$%9L>$HF10l$G$"$k!#(B
$B$?$@$7!"%7%9%F%`%G%#%9%/$N@\B3L>$O(B "SYS"
$B$H$J$k!#(B
$B?H%^%M!<%8%c$N(B oprc_dev()
$B$NBe$o$j$KFCl9g$O!"(B
evt_loop()
$B$rp_oprc_dev $B$K(B oprc_dev()
$B$H8_49$NFCoprc_dev() $B$NBe$o$j$K
wf->devfn = NULL
$B$N>l9g$O2?$b$7$J$$(B ( $B?H%^%M!<%8%c$N=hM}$O
$B!|(B $B2>?HMW5a%$%Y%s%H=hM}!'(B VOID (*vobjfn)(W ix);
$B2>?HMW5a%$%Y%s%H(B ( W_VOBJREQ
) $B$,H/@8$7$?>l9g$Kix $B$OBP>]%&%#%s%I%&$N%&%#%s%I%&>pJs%l%3!<%IG[Ns$N%$%s%G%C%/%9(B ( 0 $B!A(B ) $B$r<($9!#(B
$B2>?HMW5a%$%Y%s%H$O!"(B $B?H%^%M!<%8%c$+$iH/9T$5$l$k(B
cmd = W_VOBJREQ
$B$NMW5a%$%Y%s%H$G$"$j!"(B
wevt.g.data[2]
$B$K$h$j!"(B
$B$=$NMW5a$N%?%$%W$,<($5$l$k!#$$$:$l$N>l9g$b1~Ez%$%Y%s%H$OLa$5$l$J$$!#(B
wevt.g.data[2] = | 0 | $BL>>NJQ99$5$l$?(B |
| 1 | $B=hM}>uBV$K$J$C$?(B |
| 2 | $B=hM}>uBV$,2r=|$5$l$?(B |
| 3 | $B5u?H>uBV$K$J$C$?(B |
| 4 | $B5u?H>uBV$,2r=|$5$l$?(B |
| 5 | $B5u?H%&%#%s%I%&$K$J$C$?(B |
| 6 | $B5u?H%&%#%s%I%&$,2r=|$5$l$?(B |
| 7$B!A(B14 | ($BM=Ls(B) |
| 15 | $B2>?H$NJQ99DLCN(B |
| 16 | $B2>?H$NA^F~MW5a(B($B%U%!%$%k%7%9%F%`@\B3(B) |
| 17 | $B2>?H$NA^F~MW5a(B($B?75, |
| 18$B!A(B | ($BM=Ls(B) |
| 128 | $BJT=8FbMF$N0l;~%U%!%$%k$X$N3JG |
wevt.g.data[3] = |
$BBP>]2>?H(BID ( vid )
$B$?$@$7!"5u?H%&%#%s%I%&$N>l9g$O!"(B
$B%&%#%s%I%&$N@[email protected]$N2>?H(BID ( vid ) |
- $BMW5a%?%$%W(B = 0 $B!A(B 4 $B$N>l9g(B
- $BBP>]$N2>?H$N:FI=<($rB.$d$+$K9T$&I,MW$,$"$k!#(B
- $BMW5a%?%$%W(B = 5, 6 $B$N>l9g(B
- $B$=$N%&%#%s%I%&$K4^$^$l$k2>?H$KBP$9$k:FI=<(MW5a$OH/@8$7$J$$$?$a!"(B
$B$=$N%&%#%s%I%&$K4^$^$l$k$9$Y$F$N2>?H$r:FI=<($9$kI,MW$,$"$k!#(B
$B$3$N>l9g!"%&%#%s%I%&$N%?%$%H%k$O<+F0E*$K5u?H>uBVI=<(!"(B
$B$^$?$O5u?H>uBVI=<(2r=|$H$J$C$F$$$k$?$a!"(B
$B%"%W%j%1!<%7%g%s$O%&%#%s%I%&!&%?%$%H%k$NI=<($r99?7$9$kI,MW$O$J$$!#(B
- $BMW5a%?%$%W(B = 15
- $BBP>]$N2>?H!?IUd5$N8GM-%G!<%?!">uBV!"(B
$B%G%U%)!<%k%H%"%W%j%1!<%7%g%s$,(B
oend_prc()
$B$N7k2L!"(B
$B$^$?$OpJs%Q%M%k$GJQ99$5$l$?>l9g$KAw?.$5$l$k!#(B
$B=>$C$F!"%"%W%j%1!<%7%g%s$O$3$N%$%Y%s%H$rl9g$O!"(B
$BEPO?$7$?2>?H!?IUd5$NFbMF$,JQ99$5$l$F$$$k$?$a!"(B
$BJ]B8;~$K$O!"2>?H!?IUd5$N>uBV$H$BMW5a%?%$%W(B = 16
- $B%U%!%$%k%7%9%F%`$N@\B3$KH<$C$F@8@.$5$l$??75,%G%P%$%92>?H$NA^F~$rMW5a$9$k$b$N$G!"(B
$B
$B@8@.$5$l$?%G%P%$%92>?H$O!"4{$K<+%&%#%s%I%&$KEPO?$5$l$F$*$j!"(B
wevt.g.data[3]
$B$K$=$N2>?H(BID$B$,F~$C$F$$$k$N$G!"(B
$B$=$N2>?H$N>pJs$r?H$O%&%#%s%I%&$N1&>e$K0LCV$7$F$$$k$,!"(B
$BI,MW$K1~$8$F0LCV$r0\F0$7$F$b$h$$!#(B
- $BMW5a%?%$%W(B = 17
- $B?75,?H$NA^F~$rMW5a$9$k$b$N$G!"(B
$B2>?H$r4^$`$9$Y$F$N%&%#%s%I%&$KBP$7$FAw?.$5$l$k2DG=@-$,$"$k!#(B
$B@8@.$5$l$?2>?H$O!"4{$K<+%&%#%s%I%&$KEPO?$5$l$F$*$j!"(B
wevt.g.data[3]
$B$K$=$N2>?H(B ID $B$,F~$C$F$$$k$N$G!"(B
$B$=$N2>?H$N>pJs$r?H$O85$N2>?H$N>e$^$?$O2<$K0LCV$7$F$$$k$,!"(B
$BI,MW$K1~$8$F0LCV$r0\F0$7$F$b$h$$!#(B
- $BMW5a%?%$%W!f(B128
- $BB>$N%"%W%j%1!<%7%g%s$+$i(B
oreq_prc()
$B$K$h$jAw?.$5$l$?2>?HMW5a%$%Y%s%H$G$"$j!"(B
$B$3$l$rl9g$O!"I,$:(B orsp_prc()
$B$K$h$j1~Ez$rLa$5$J$/$F$O$$$1$J$$!#(B
- $BMW5a%?%$%W(B = 128
- $BJT=8FbMF$N0l;~%U%!%$%k$X$N3JGorsp_prc() $B$K$h$j!"1~Ez$H$7$FLa$9I,MW$,$"$k!#(B
wf->vobjfn = NULL
$B$N>l9g$O!"(B
$BMW5a%?%$%W(B < 128 $B$N>l9g$O2?$b$;$:!"(B
$BMW5a%?%$%W(B $B!f(B 128 $B$N>l9g$O!"(BER_NOSPT
$B%(%i!<1~Ez$r(B
orsp_prc()
$B$K$h$jLa$9!#(B
$B2>?H$r4^$`%&%#%s%I%&$N>l9g$O!"(BNULL
$B$G$"$C$F$O$$$1$J$$!#(B
unget_wevt |
|
$B%&%#%s%I%&!&%$%Y%s%H$NLa$7(B |
|
$B!Z7A<0![(B
W unget_wevt(void)
$B!Z%Q%i%a!<%?![(B
$B$J$7(B
$B!Z%j%?!<%sCM![(B
$B!a(B 0 $B@5>o=*N;(B
$B!c(B 0 $BLa$7$?%$%Y%s%H?t$,(B 16 $B0J>e(B ( EX_NOSPC
)
$B!Z2r@b![(B
wevt
$B$K3JG<$5$l$F$$$k%&%#%s%I%&!&%$%Y%s%H$rLa$7$F!"(B
$Bevt_loop() $B$^$?$O(B evt_proc()
$B4X?t$G
$B:GBg(B16$B8D$N%&%#%s%I%&!&%$%Y%s%H$r%9%?%C%/>e$KLa$9$3$H$,$G$-$k!#(B
$B$3$N=hM}$O(B 1 $B$D$N%W%m%;%9Fb$G9T$J$o$l$k$?$a!"(B
$BLa$7$?%$%Y%s%H$O!"(B
$BB>$N%W%m%;%9$K$O1F6A$7$J$$E@$KCm0U$,I,MW$G$"$k!#(B
$B$3$N4X?t$O!"(B
$B%Q!<%D$d%Q%M%k$N=hM}$G4|BT30$N%$%Y%s%H$,F@$i$l$?>l9g!"(B
$B$=$N%$%Y%s%H$r0lC6La$7$F!"(Bevt_loop()
$B!"$^$?$O(B evt_proc()
$B$K$h$j!"(B
$B8e$G=hM}$9$k$?$a$K;HMQ$5$l$k!#(B
$B$J$*!"$3$N4X?t$G$O!"(Bwugt_evt(&wevt)
$B$r
evt_proc |
|
$B%$%Y%s%H=hM}(B |
|
$B!Z7A<0![(B
W evt_proc(void)
$B!Z%Q%i%a!<%?![(B
$B$J$7(B
$B!Z%j%?!<%sCM![(B
$B!a#0(B $B=hM}7QB3(B
$B!b#0(B $B=hM}=*N;(B
$B!Z2r@b![(B
$B%&%#%s%I%&!&%$%Y%s%H$revt_loop() $B4X?t$K$h$jEPO?$5$l$?!"(B
WINFOREC
, WFUNCREC
$B$K4p$E$$$?%$%Y%s%H=hM}$r
evt_loop()
$B$O!"(B
$B$3$N(B evt_proc()
$B$r0J2<$N$h$&$KO"B3$7$F
while ((ret = evt_proc()) == 0);
$B$3$N4X?t$O!"%Q!<%D$d%Q%M%k$N=hM}$G4|BT30$N%$%Y%s%H$,F@$i$l$?>l9g!"(B
$B$=$N%$%Y%s%H$rC1H/E*$K=hM}$9$k$?$a$K;HMQ$5$l$k!#(B
$B4X?tCM$O3F%$%Y%s%H=hM}4X?t$GLa$5$l$?CM$G$"$k!#(B
update_sbar |
|
$B%9%/%m!<%k%P!<$NI=<(99?7=hM}(B |
|
$B!Z7A<0![(B
W update_sbar(W ix, W cmd, W *ptr)
$B!Z%Q%i%a!<%?![(B
W ix $B%&%#%s%I%&;XDj(B
W cmd $B%9%/%m!<%k%P!<$N0LCV(B
W *ptr $B%9%/%m!<%k%P!<$r@_Dj$9$kCM$NG[Ns(B
$B!Z%j%?!<%sCM![(B
$B!a(B 0(ER_OK) : $B@5>o=*N;(B
$B!c(B 0 : $B%(%i!<(B ($B4X?tCM$O%(%i!<%3!<%I(B)
$B!Z2r@b![(B
ix
$B$G;XDj$7$?%&%#%s%I%&$N(B cmd
$B$G;XDj$7$?%9%/%m!<%k%P!<$NCM$r(B ptr
$B$G;XDj$7$?NN0h$K3JG<$5$l$F$$$k(B
( clo, chi, lo, hi
) $B$N(B 4 word $B$NCM$KJQ99$9$k!#(B
cmd
$B$O!"%9%/%m!<%k%P!<$N0LCV$r<($90J2<$NCM$G$"$k!#(B
cmd = | 0 : $B1&%9%/%m!<%k%P!<(B |
| 1 : $B2<%9%/%m!<%k%P!<(B |
| 2 : $B:8%9%/%m!<%k%P!<(B |
ptr = NULL
$B$N;~$O2?$b$;$:$K4X?tCM(B 0 $B$rLa$9!#(B
chk_scroll |
|
$BI=<(%9%/%m!<%kNL$N%A%'%C%/=hM}(B |
|
$B!Z7A<0![(B
PNT chk_scroll(W type, W diff, W unit, RECT view, RECT frame)
$B!Z%Q%i%a!<%?![(B
W type $B%9%/%m!<%k$N%?%$%W(B
W diff $B%8%c%s%W%9%/%m!<%k$N0\F0NL(B
W unit $B%9%`!<%9%9%/%m!<%k;~$N0\F0NL(B
RECT view $B8=:_$NI=<(NN0h(B
RECT frame $B%G!<%?A4BN$NNN0h(B
$B!Z%j%?!<%sCM![(B
$BI=<(%9%/%m!<%kI,MWNL(B
$B!Z2r@b![(B
evt_loop()
$B$N(B scrlfn()
$B$KEO$5$l$?(B
type, diff
$B$KBP1~$7$FI,MW$H$5$l$kI=<(%9%/%m!<%kNL$r%A%'%C%/$7$F!"(B
$B4X?tCM$H$7$FLa$9!#(B
$B3F%Q%i%a!<%?$O0J2<$N0UL#$r;}$D!#(B
type : |
$B%9%/%m!<%k$N%?%$%W(B
( scrlfn() $B$KEO$5$l$?CM$=$N$b$N(B) |
diff : |
$B%8%c%s%W%9%/%m!<%k$N0\F0NL(B
view $B!"(Bframe $B$HF10l$NC10L$NCM$G$J$/$F$O$$$1$J$$!#(B
$B%9%/%m!<%k%P!<$N@_DjCM$,!"(Bview $B!"(Bframe
$B$HF10lC10L$N>l9g$O!"(Bscrlfn() $B$KEO$5$l$?CM$=$N$b$N$H$J$k!#(B |
unit : |
$B%9%`!<%9%9%/%m!<%k$N;~$N0\F0NL(B ( > 0 )
$B%Z!<%8%9%/%m!<%k$N>l9g$N=EJ#NL$H$b$J$k!#(B
|
view : |
$B8=:_$NI=<(NN0h(B
$B$3$NNN0h$NI}!"$^$?$O(B ( $B9b$5(B - unit ) $B$,%Z!<%8%9%/%m!<%k$N>l9g$N0\F0NL$H$J$k!#(B
|
frame : |
$B%G!<%?A4BN$NNN0h(B
$B$3$NNN0h$r$O$_$G$?%9%/%m!<%k$O9T$o$l$J$$!#(Bview $B$HF10l$N:BI87O$G$J$/$F$O$$$1$J$$!#(B
|
$B4X?tCM$O!"(BPNT
$B7?$N0J2<$NCM$H$J$k!#(B
result.x | : $B?eJ?J}8~$N%9%/%m!<%kI,MWNL(B
( > 0 $B:8!"(B< 0 : $B1&!"(B= 0 : $BITMW(B) |
result.y | : $B?bD>J}8~$N%9%/%m!<%kI,MWNL(B
( > 0 $B>e!"(B< 0 : $B2 |
$B$3$N>O$NL\
$BA0JG(B:2.2 $B%G%#%9%W%l%$!&%i%$%V%i%jDj5A$K$b$I$k(B
$B