Hex Artifact Content

Not logged in

Artifact 3ef6f1b75010ab262414d4235d9e992e7d7f1250:


0000: 2f 2f 2d 2d 2d 20 4b 2e 49 2e 4c 49 42 20 2d 2d  //--- K.I.LIB --
0010: 2d 0d 0a 2f 2f 20 6b 6c 5f 77 6e 64 2e 68 20 3a  -..// kl_wnd.h :
0020: 20 77 69 6e 64 6f 77 20 69 6e 66 6f 72 6d 61 74   window informat
0030: 69 6f 6e 20 6d 61 6e 61 67 65 72 0d 0a 0d 0a 23  ion manager....#
0040: 69 66 6e 64 65 66 20 41 46 58 5f 4b 49 57 49 4e  ifndef AFX_KIWIN
0050: 44 4f 57 5f 48 5f 5f 32 36 31 30 35 42 39 34 5f  DOW_H__26105B94_
0060: 31 45 33 36 5f 34 32 46 41 5f 38 39 31 36 5f 43  1E36_42FA_8916_C
0070: 32 46 37 46 42 39 45 46 39 39 34 5f 5f 49 4e 43  2F7FB9EF994__INC
0080: 4c 55 44 45 44 5f 0d 0a 23 64 65 66 69 6e 65 20  LUDED_..#define 
0090: 41 46 58 5f 4b 49 57 49 4e 44 4f 57 5f 48 5f 5f  AFX_KIWINDOW_H__
00a0: 32 36 31 30 35 42 39 34 5f 31 45 33 36 5f 34 32  26105B94_1E36_42
00b0: 46 41 5f 38 39 31 36 5f 43 32 46 37 46 42 39 45  FA_8916_C2F7FB9E
00c0: 46 39 39 34 5f 5f 49 4e 43 4c 55 44 45 44 5f 0d  F994__INCLUDED_.
00d0: 0a 0d 0a 2f 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d  .../*=*=*=*=*=*=
00e0: 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d  *=*=*=*=*=*=*=*=
00f0: 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d  *=*=*=*=*=*=*=*=
0100: 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d  *=*=*=*=*=*=*=*=
0110: 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 2f 0d 0a 2f 2f  *=*=*=*=*=*/..//
0120: 20 6b 69 57 69 6e 64 6f 77 20 3a 20 57 69 6e 64   kiWindow : Wind
0130: 6f 77 82 cc 8a c8 92 50 82 c8 8a c7 97 9d 0d 0a  ow.....P........
0140: 0d 0a 63 6c 61 73 73 20 6b 69 57 69 6e 64 6f 77  ..class kiWindow
0150: 0d 0a 7b 0d 0a 66 72 69 65 6e 64 20 76 6f 69 64  ..{..friend void
0160: 20 6b 69 6c 69 62 5f 73 74 61 72 74 55 70 28 29   kilib_startUp()
0170: 3b 0d 0a 0d 0a 70 72 69 76 61 74 65 3a 20 2f 2f  ;....private: //
0180: 2d 2d 20 83 4f 83 8d 81 5b 83 6f 83 8b 82 c8 8f  -- .O...[.o.....
0190: 89 8a fa 89 bb 8f 88 97 9d 82 c8 82 c7 20 2d 2d  ............. --
01a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
01b0: 2d 2d 2d 0d 0a 0d 0a 09 73 74 61 74 69 63 20 76  ---.....static v
01c0: 6f 69 64 20 69 6e 69 74 28 29 3b 0d 0a 09 73 74  oid init();...st
01d0: 61 74 69 63 20 76 6f 69 64 20 66 69 6e 69 73 68  atic void finish
01e0: 28 29 3b 0d 0a 0d 0a 70 75 62 6c 69 63 3a 20 2f  ();....public: /
01f0: 2f 2d 2d 20 8a 4f 8c fc 82 ab 83 43 83 93 83 5e  /-- .O.....C...^
0200: 81 5b 83 74 83 46 83 43 83 58 20 2d 2d 2d 2d 2d  .[.t.F.C.X -----
0210: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0220: 2d 2d 2d 2d 2d 0d 0a 0d 0a 09 2f 2f 20 8a d6 98  -----.....// ...
0230: 41 95 74 82 af 82 e7 82 ea 82 c4 82 a2 82 e9 48  A.t............H
0240: 57 4e 44 0d 0a 09 48 57 4e 44 20 68 77 6e 64 28  WND...HWND hwnd(
0250: 29 0d 0a 09 09 7b 0d 0a 09 09 09 72 65 74 75 72  )....{.....retur
0260: 6e 20 6d 5f 68 57 6e 64 3b 0d 0a 09 09 7d 0d 0a  n m_hWnd;....}..
0270: 0d 0a 09 2f 2f 20 82 bb 82 cc 57 69 6e 64 6f 77  ...// ....Window
0280: 97 70 82 c9 83 41 83 4e 83 5a 83 89 83 8c 81 5b  .p...A.N.Z.....[
0290: 83 5e 82 f0 83 8d 81 5b 83 68 0d 0a 09 76 6f 69  .^.....[.h...voi
02a0: 64 20 6c 6f 61 64 41 63 63 65 6c 28 20 55 49 4e  d loadAccel( UIN
02b0: 54 20 69 64 20 29 3b 0d 0a 0d 0a 09 2f 2f 20 83  T id );.....// .
02c0: 45 83 43 83 93 83 68 83 45 82 aa 82 dc 82 be 8e  E.C...h.E.......
02d0: 63 82 c1 82 c4 82 a2 82 e9 82 a9 82 c7 82 a4 82  c...............
02e0: a9 83 60 83 46 83 62 83 4e 0d 0a 09 62 6f 6f 6c  ..`.F.b.N...bool
02f0: 20 69 73 41 6c 69 76 65 28 29 0d 0a 09 09 7b 0d   isAlive()....{.
0300: 0a 09 09 09 69 66 28 20 21 6d 5f 68 57 6e 64 20  ....if( !m_hWnd 
0310: 29 0d 0a 09 09 09 09 72 65 74 75 72 6e 20 66 61  )......return fa
0320: 6c 73 65 3b 0d 0a 09 09 09 69 66 28 20 3a 3a 49  lse;.....if( ::I
0330: 73 57 69 6e 64 6f 77 28 6d 5f 68 57 6e 64 29 20  sWindow(m_hWnd) 
0340: 29 0d 0a 09 09 09 09 72 65 74 75 72 6e 20 74 72  )......return tr
0350: 75 65 3b 0d 0a 09 09 09 6d 5f 68 57 6e 64 20 3d  ue;.....m_hWnd =
0360: 20 4e 55 4c 4c 3b 0d 0a 09 09 09 72 65 74 75 72   NULL;.....retur
0370: 6e 20 66 61 6c 73 65 3b 0d 0a 09 09 7d 0d 0a 0d  n false;....}...
0380: 0a 09 2f 2f 20 90 65 0d 0a 09 6b 69 57 69 6e 64  ..// .e...kiWind
0390: 6f 77 2a 20 70 61 72 65 6e 74 28 29 0d 0a 09 09  ow* parent()....
03a0: 7b 0d 0a 09 09 09 72 65 74 75 72 6e 20 6b 69 77  {.....return kiw
03b0: 6e 64 28 20 3a 3a 47 65 74 50 61 72 65 6e 74 28  nd( ::GetParent(
03c0: 20 68 77 6e 64 28 29 20 29 20 29 3b 0d 0a 09 09   hwnd() ) );....
03d0: 7d 0d 0a 0d 0a 09 2f 2f 20 83 81 83 62 83 5a 81  }.....// ...b.Z.
03e0: 5b 83 57 91 97 90 4d 0d 0a 09 69 6e 74 20 73 65  [.W...M...int se
03f0: 6e 64 4d 73 67 28 20 55 49 4e 54 20 6d 73 67 2c  ndMsg( UINT msg,
0400: 20 57 50 41 52 41 4d 20 77 70 3d 30 2c 20 4c 50   WPARAM wp=0, LP
0410: 41 52 41 4d 20 6c 70 3d 30 20 29 0d 0a 09 09 7b  ARAM lp=0 )....{
0420: 0d 0a 09 09 09 72 65 74 75 72 6e 20 3a 3a 53 65  .....return ::Se
0430: 6e 64 4d 65 73 73 61 67 65 28 20 68 77 6e 64 28  ndMessage( hwnd(
0440: 29 2c 20 6d 73 67 2c 20 77 70 2c 20 6c 70 20 29  ), msg, wp, lp )
0450: 3b 0d 0a 09 09 7d 0d 0a 0d 0a 09 2f 2f 20 5b 73  ;....}.....// [s
0460: 74 61 74 69 63 5d 20 83 4c 83 85 81 5b 82 c9 82  tatic] .L...[...
0470: a0 82 e9 83 81 83 62 83 5a 81 5b 83 57 82 f0 91  ......b.Z.[.W...
0480: 53 82 c4 8f 88 97 9d 0d 0a 09 73 74 61 74 69 63  S.........static
0490: 20 76 6f 69 64 20 6d 73 67 28 29 3b 0d 0a 0d 0a   void msg();....
04a0: 09 2f 2f 20 5b 73 74 61 74 69 63 5d 20 83 81 83  .// [static] ...
04b0: 62 83 5a 81 5b 83 57 83 8b 81 5b 83 76 82 f0 82  b.Z.[.W...[.v...
04c0: dc 82 ed 82 b7 81 42 0d 0a 09 65 6e 75 6d 20 6d  ......B...enum m
04d0: 73 67 6c 6f 6f 70 74 79 70 65 20 7b 50 45 45 4b  sglooptype {PEEK
04e0: 2c 20 47 45 54 7d 3b 0d 0a 09 73 74 61 74 69 63  , GET};...static
04f0: 20 76 6f 69 64 20 6d 73 67 4c 6f 6f 70 28 20 6d   void msgLoop( m
0500: 73 67 6c 6f 6f 70 74 79 70 65 20 74 79 70 65 20  sglooptype type 
0510: 3d 20 47 45 54 20 29 3b 0d 0a 0d 0a 09 2f 2f 20  = GET );.....// 
0520: 5b 73 74 61 74 69 63 5d 20 57 69 6e 64 6f 77 82  [static] Window.
0530: f0 8b ad 90 a7 93 49 82 c9 20 66 72 6f 6e 74 20  ......I.. front 
0540: 82 d6 0d 0a 09 73 74 61 74 69 63 20 76 6f 69 64  .....static void
0550: 20 73 65 74 46 72 6f 6e 74 28 20 48 57 4e 44 20   setFront( HWND 
0560: 77 6e 64 20 29 3b 0d 0a 0d 0a 09 2f 2f 20 5b 73  wnd );.....// [s
0570: 74 61 74 69 63 5d 20 57 69 6e 64 6f 77 82 f0 92  tatic] Window...
0580: 86 89 9b 82 d6 0d 0a 09 73 74 61 74 69 63 20 76  ........static v
0590: 6f 69 64 20 73 65 74 43 65 6e 74 65 72 28 20 48  oid setCenter( H
05a0: 57 4e 44 20 77 6e 64 2c 20 48 57 4e 44 20 72 65  WND wnd, HWND re
05b0: 6c 3d 4e 55 4c 4c 20 29 3b 0d 0a 0d 0a 09 2f 2f  l=NULL );.....//
05c0: 20 5b 73 74 61 74 69 63 5d 20 48 57 4e 44 20 2d   [static] HWND -
05d0: 3e 20 6b 69 57 69 6e 64 6f 77 20 28 20 82 e0 82  > kiWindow ( ...
05e0: b5 82 a0 82 ea 82 ce 20 29 0d 0a 09 73 74 61 74  ....... )...stat
05f0: 69 63 20 6b 69 57 69 6e 64 6f 77 2a 20 6b 69 77  ic kiWindow* kiw
0600: 6e 64 28 20 48 57 4e 44 20 77 6e 64 20 29 0d 0a  nd( HWND wnd )..
0610: 09 09 7b 0d 0a 09 09 09 6b 69 57 69 6e 64 6f 77  ..{.....kiWindow
0620: 2a 20 70 74 72 20 3d 20 28 6b 69 57 69 6e 64 6f  * ptr = (kiWindo
0630: 77 2a 29 3a 3a 47 65 74 57 69 6e 64 6f 77 4c 6f  w*)::GetWindowLo
0640: 6e 67 28 20 77 6e 64 2c 20 47 57 4c 5f 55 53 45  ng( wnd, GWL_USE
0650: 52 44 41 54 41 20 29 3b 0d 0a 09 09 09 69 66 28  RDATA );.....if(
0660: 20 21 70 74 72 20 29 20 72 65 74 75 72 6e 20 4e   !ptr ) return N
0670: 55 4c 4c 3b 0d 0a 09 09 09 69 66 28 20 3a 3a 49  ULL;.....if( ::I
0680: 73 42 61 64 43 6f 64 65 50 74 72 28 28 46 41 52  sBadCodePtr((FAR
0690: 50 52 4f 43 29 26 70 74 72 29 20 29 20 72 65 74  PROC)&ptr) ) ret
06a0: 75 72 6e 20 4e 55 4c 4c 3b 0d 0a 09 09 09 72 65  urn NULL;.....re
06b0: 74 75 72 6e 20 70 74 72 3b 0d 0a 09 09 7d 0d 0a  turn ptr;....}..
06c0: 0d 0a 70 72 6f 74 65 63 74 65 64 3a 20 2f 2f 2d  ..protected: //-
06d0: 2d 20 94 68 90 b6 83 4e 83 89 83 58 8c fc 82 af  - .h...N...X....
06e0: 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ---------------
06f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
0700: 0d 0a 09 2f 2f 20 94 68 90 b6 83 4e 83 89 83 58  ...// .h...N...X
0710: 82 cd 81 41 8d ec 90 ac 92 bc 91 4f 82 c9 83 52  ...A.......O...R
0720: 83 8c 82 f0 8c c4 82 d4 82 b1 82 c6 81 42 0d 0a  .............B..
0730: 09 73 74 61 74 69 63 20 76 6f 69 64 20 70 72 65  .static void pre
0740: 43 72 65 61 74 65 28 20 6b 69 57 69 6e 64 6f 77  Create( kiWindow
0750: 2a 20 77 6e 64 20 29 0d 0a 09 09 7b 20 73 74 5f  * wnd )....{ st_
0760: 70 43 75 72 49 6e 69 74 20 3d 20 77 6e 64 3b 20  pCurInit = wnd; 
0770: 7d 0d 0a 09 2f 2f 20 94 6a 8a fc 92 bc 91 4f 82  }...// .j.....O.
0780: c9 83 52 83 8c 82 f0 8c c4 82 d4 82 b1 82 c6 81  ..R.............
0790: 42 0d 0a 09 76 6f 69 64 20 64 65 74 61 63 68 48  B...void detachH
07a0: 77 6e 64 28 29 3b 0d 0a 09 2f 2f 20 82 a2 82 c1  wnd();...// ....
07b0: 82 bd 82 f1 47 45 54 2f 50 4f 53 54 83 81 83 62  ....GET/POST...b
07c0: 83 5a 81 5b 83 57 83 8b 81 5b 83 76 82 f0 92 e2  .Z.[.W...[.v....
07d0: 8e 7e 0d 0a 09 73 74 61 74 69 63 20 76 6f 69 64  .~...static void
07e0: 20 6c 6f 6f 70 62 72 65 61 6b 28 29 0d 0a 09 09   loopbreak()....
07f0: 7b 0d 0a 09 09 09 6c 6f 6f 70 62 72 65 61 6b 65  {.....loopbreake
0800: 72 20 3d 20 74 72 75 65 3b 0d 0a 09 09 7d 0d 0a  r = true;....}..
0810: 0d 0a 70 72 69 76 61 74 65 3a 20 2f 2f 2d 2d 20  ..private: //-- 
0820: 93 e0 95 94 8f 88 97 9d 20 2d 2d 2d 2d 2d 2d 2d  ........ -------
0830: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0840: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
0850: 0d 0a 09 2f 2f 20 83 45 83 43 83 93 83 68 83 45  ...// .E.C...h.E
0860: 83 6e 83 93 83 68 83 8b 90 dd 92 e8 0d 0a 09 73  .n...h.........s
0870: 74 61 74 69 63 20 4c 52 45 53 55 4c 54 20 43 41  tatic LRESULT CA
0880: 4c 4c 42 41 43 4b 20 43 42 54 50 72 6f 63 28 20  LLBACK CBTProc( 
0890: 69 6e 74 20 63 6f 64 65 2c 20 57 50 41 52 41 4d  int code, WPARAM
08a0: 20 77 70 2c 20 4c 50 41 52 41 4d 20 6c 70 20 29   wp, LPARAM lp )
08b0: 3b 0d 0a 09 73 74 61 74 69 63 20 48 48 4f 4f 4b  ;...static HHOOK
08c0: 20 73 74 5f 68 48 6f 6f 6b 3b 0d 0a 09 73 74 61   st_hHook;...sta
08d0: 74 69 63 20 6b 69 57 69 6e 64 6f 77 2a 20 73 74  tic kiWindow* st
08e0: 5f 70 43 75 72 49 6e 69 74 3b 0d 0a 09 76 6f 69  _pCurInit;...voi
08f0: 64 20 73 65 74 48 77 6e 64 28 20 48 57 4e 44 20  d setHwnd( HWND 
0900: 77 6e 64 20 29 0d 0a 09 09 7b 0d 0a 09 09 09 6d  wnd )....{.....m
0910: 5f 68 57 6e 64 20 3d 20 77 6e 64 3b 0d 0a 09 09  _hWnd = wnd;....
0920: 7d 0d 0a 0d 0a 09 2f 2f 20 83 45 83 43 83 93 83  }.....// .E.C...
0930: 68 83 45 8f ee 95 f1 95 db 8e 9d 97 70 95 cf 90  h.E.........p...
0940: 94 0d 0a 09 48 57 4e 44 20 6d 5f 68 57 6e 64 3b  ....HWND m_hWnd;
0950: 0d 0a 09 48 41 43 43 45 4c 20 6d 5f 68 41 63 63  ...HACCEL m_hAcc
0960: 65 6c 3b 0d 0a 09 2f 2f 20 83 5f 83 43 83 41 83  el;...// ._.C.A.
0970: 8d 83 4f 83 81 83 62 83 5a 81 5b 83 57 0d 0a 09  ..O...b.Z.[.W...
0980: 76 69 72 74 75 61 6c 20 62 6f 6f 6c 20 69 73 44  virtual bool isD
0990: 6c 67 4d 73 67 28 20 4d 53 47 2a 20 6d 73 67 20  lgMsg( MSG* msg 
09a0: 29 0d 0a 09 09 7b 20 72 65 74 75 72 6e 20 66 61  )....{ return fa
09b0: 6c 73 65 3b 20 7d 0d 0a 09 2f 2f 20 47 45 54 83  lse; }...// GET.
09c0: 8b 81 5b 83 76 88 ea 8e 9e 94 b2 82 af 82 be 82  ..[.v...........
09d0: b5 0d 0a 09 73 74 61 74 69 63 20 62 6f 6f 6c 20  ....static bool 
09e0: 6c 6f 6f 70 62 72 65 61 6b 65 72 3b 0d 0a 0d 0a  loopbreaker;....
09f0: 70 72 6f 74 65 63 74 65 64 3a 0d 0a 09 6b 69 57  protected:...kiW
0a00: 69 6e 64 6f 77 28 29 3b 0d 0a 70 75 62 6c 69 63  indow();..public
0a10: 3a 0d 0a 09 76 69 72 74 75 61 6c 20 7e 6b 69 57  :...virtual ~kiW
0a20: 69 6e 64 6f 77 28 29 3b 0d 0a 7d 3b 0d 0a 0d 0a  indow();..};....
0a30: 2f 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a  /*=*=*=*=*=*=*=*
0a40: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a  =*=*=*=*=*=*=*=*
0a50: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a  =*=*=*=*=*=*=*=*
0a60: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a  =*=*=*=*=*=*=*=*
0a70: 3d 2a 3d 2a 3d 2a 3d 2a 2f 0d 0a 2f 2f 20 6b 69  =*=*=*=*/..// ki
0a80: 44 69 61 6c 6f 67 20 3a 20 44 69 61 6c 6f 67 82  Dialog : Dialog.
0a90: f0 6b 69 57 69 6e 64 6f 77 82 c6 82 b5 82 c4 8a  .kiWindow.......
0aa0: c7 97 9d 82 b7 82 e9 0d 0a 0d 0a 63 6c 61 73 73  ...........class
0ab0: 20 6b 69 44 69 61 6c 6f 67 20 3a 20 70 75 62 6c   kiDialog : publ
0ac0: 69 63 20 6b 69 57 69 6e 64 6f 77 0d 0a 7b 0d 0a  ic kiWindow..{..
0ad0: 70 75 62 6c 69 63 3a 20 2f 2f 2d 2d 20 8a 4f 8c  public: //-- .O.
0ae0: fc 82 ab 83 43 83 93 83 5e 81 5b 83 74 83 46 83  ....C...^.[.t.F.
0af0: 43 83 58 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  C.X ------------
0b00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
0b10: 0d 0a 09 2f 2f 20 83 82 81 5b 83 5f 83 8b 83 5f  ...// ...[._..._
0b20: 83 43 83 41 83 8d 83 4f 82 c6 82 b5 82 c4 8e c0  .C.A...O........
0b30: 8d 73 0d 0a 09 76 69 72 74 75 61 6c 20 76 6f 69  .s...virtual voi
0b40: 64 20 64 6f 4d 6f 64 61 6c 28 20 48 57 4e 44 20  d doModal( HWND 
0b50: 70 61 72 65 6e 74 3d 4e 55 4c 4c 20 29 3b 0d 0a  parent=NULL );..
0b60: 0d 0a 09 2f 2f 20 83 82 81 5b 83 68 83 8c 83 58  ...// ...[.h...X
0b70: 83 5f 83 43 83 41 83 8d 83 4f 82 c6 82 b5 82 c4  ._.C.A...O......
0b80: 8d ec 90 ac 0d 0a 09 76 69 72 74 75 61 6c 20 76  .......virtual v
0b90: 6f 69 64 20 63 72 65 61 74 65 4d 6f 64 65 6c 65  oid createModele
0ba0: 73 73 28 20 48 57 4e 44 20 70 61 72 65 6e 74 3d  ss( HWND parent=
0bb0: 4e 55 4c 4c 20 29 3b 0d 0a 0d 0a 09 2f 2f 20 8f  NULL );.....// .
0bc0: 49 97 b9 83 52 81 5b 83 68 8e e6 93 be 0d 0a 09  I...R.[.h.......
0bd0: 55 49 4e 54 20 67 65 74 45 6e 64 43 6f 64 65 28  UINT getEndCode(
0be0: 29 0d 0a 09 09 7b 0d 0a 09 09 09 72 65 74 75 72  )....{.....retur
0bf0: 6e 20 6d 5f 45 6e 64 43 6f 64 65 3b 0d 0a 09 09  n m_EndCode;....
0c00: 7d 0d 0a 0d 0a 09 2f 2f 20 83 82 81 5b 83 5f 83  }.....// ...[._.
0c10: 8b 82 a9 94 db 82 a9 0d 0a 09 62 6f 6f 6c 20 69  ..........bool i
0c20: 73 4d 6f 64 61 6c 28 29 0d 0a 09 09 7b 0d 0a 09  sModal()....{...
0c30: 09 09 72 65 74 75 72 6e 20 6d 5f 62 53 74 61 74  ..return m_bStat
0c40: 65 4d 6f 64 61 6c 3b 0d 0a 09 09 7d 0d 0a 0d 0a  eModal;....}....
0c50: 09 2f 2f 20 83 5f 83 43 83 41 83 8d 83 4f 83 41  .// ._.C.A...O.A
0c60: 83 43 83 65 83 80 0d 0a 09 69 6e 74 20 73 65 6e  .C.e.....int sen
0c70: 64 4d 73 67 54 6f 49 74 65 6d 28 20 55 49 4e 54  dMsgToItem( UINT
0c80: 20 69 64 2c 20 55 49 4e 54 20 6d 73 67 2c 20 57   id, UINT msg, W
0c90: 50 41 52 41 4d 20 77 70 3d 30 2c 20 4c 50 41 52  PARAM wp=0, LPAR
0ca0: 41 4d 20 6c 70 3d 30 20 29 0d 0a 09 09 7b 0d 0a  AM lp=0 )....{..
0cb0: 09 09 09 72 65 74 75 72 6e 20 3a 3a 53 65 6e 64  ...return ::Send
0cc0: 44 6c 67 49 74 65 6d 4d 65 73 73 61 67 65 28 20  DlgItemMessage( 
0cd0: 68 77 6e 64 28 29 2c 20 69 64 2c 20 6d 73 67 2c  hwnd(), id, msg,
0ce0: 20 77 70 2c 20 6c 70 20 29 3b 0d 0a 09 09 7d 0d   wp, lp );....}.
0cf0: 0a 09 48 57 4e 44 20 69 74 65 6d 28 20 55 49 4e  ..HWND item( UIN
0d00: 54 20 69 64 20 29 0d 0a 09 09 7b 0d 0a 09 09 09  T id )....{.....
0d10: 72 65 74 75 72 6e 20 3a 3a 47 65 74 44 6c 67 49  return ::GetDlgI
0d20: 74 65 6d 28 20 68 77 6e 64 28 29 2c 20 69 64 20  tem( hwnd(), id 
0d30: 29 3b 0d 0a 09 09 7d 0d 0a 0d 0a 70 72 6f 74 65  );....}....prote
0d40: 63 74 65 64 3a 20 2f 2f 2d 2d 20 94 68 90 b6 83  cted: //-- .h...
0d50: 4e 83 89 83 58 8c fc 82 af 20 2d 2d 2d 2d 2d 2d  N...X.... ------
0d60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0d70: 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 09 2f 2f 20 83  -------.....// .
0d80: 8a 83 5c 81 5b 83 58 49 44 82 c5 8f 89 8a fa 89  ..\.[.XID.......
0d90: bb 0d 0a 09 6b 69 44 69 61 6c 6f 67 28 20 55 49  ....kiDialog( UI
0da0: 4e 54 20 69 64 20 29 3b 0d 0a 0d 0a 09 2f 2f 20  NT id );.....// 
0db0: 83 8a 83 5c 81 5b 83 58 49 44 8e e6 93 be 0d 0a  ...\.[.XID......
0dc0: 09 55 49 4e 54 20 67 65 74 52 73 72 63 49 44 28  .UINT getRsrcID(
0dd0: 29 0d 0a 09 09 7b 0d 0a 09 09 09 72 65 74 75 72  )....{.....retur
0de0: 6e 20 6d 5f 52 73 72 63 3b 0d 0a 09 09 7d 0d 0a  n m_Rsrc;....}..
0df0: 0d 0a 09 2f 2f 20 8f 49 97 b9 83 52 81 5b 83 68  ...// .I...R.[.h
0e00: 82 f0 83 5a 83 62 83 67 0d 0a 09 76 6f 69 64 20  ...Z.b.g...void 
0e10: 73 65 74 45 6e 64 43 6f 64 65 28 20 55 49 4e 54  setEndCode( UINT
0e20: 20 65 6e 64 63 6f 64 65 20 29 0d 0a 09 09 7b 0d   endcode )....{.
0e30: 0a 09 09 09 6d 5f 45 6e 64 43 6f 64 65 20 3d 20  ....m_EndCode = 
0e40: 65 6e 64 63 6f 64 65 3b 0d 0a 09 09 7d 0d 0a 0d  endcode;....}...
0e50: 0a 09 2f 2f 20 83 82 81 5b 83 5f 83 8b 82 a9 94  ..// ...[._.....
0e60: db 82 a9 82 cc 83 74 83 89 83 4f 22 82 cc 82 dd  ......t...O"....
0e70: 22 82 f0 90 d8 91 d6 0d 0a 09 76 6f 69 64 20 73  ".........void s
0e80: 65 74 53 74 61 74 65 28 20 62 6f 6f 6c 20 6d 6f  etState( bool mo
0e90: 64 61 6c 20 29 0d 0a 09 09 7b 0d 0a 09 09 09 6d  dal )....{.....m
0ea0: 5f 62 53 74 61 74 65 4d 6f 64 61 6c 20 3d 20 6d  _bStateModal = m
0eb0: 6f 64 61 6c 3b 0d 0a 09 09 7d 0d 0a 0d 0a 09 2f  odal;....}...../
0ec0: 2f 20 8f 49 97 b9 83 52 81 5b 83 68 82 f0 83 5a  / .I...R.[.h...Z
0ed0: 83 62 83 67 82 b5 82 c4 81 41 8f 49 97 b9 82 b7  .b.g.....A.I....
0ee0: 82 e9 28 20 49 44 4f 4b 20 82 f0 93 6e 82 b5 82  ..( IDOK ...n...
0ef0: c4 82 e0 20 6f 6e 4f 4b 28 29 20 82 cd 8c c4 82  ... onOK() .....
0f00: ce 82 ea 82 c8 82 a2 82 b1 82 c6 82 c9 92 8d 88  ................
0f10: d3 81 49 20 29 0d 0a 09 76 69 72 74 75 61 6c 20  ..I )...virtual 
0f20: 76 6f 69 64 20 65 6e 64 28 20 55 49 4e 54 20 65  void end( UINT e
0f30: 6e 64 63 6f 64 65 20 29 3b 0d 0a 0d 0a 09 2f 2f  ndcode );.....//
0f40: 20 83 52 83 7d 83 93 83 68 81 45 83 81 83 62 83   .R.}...h.E...b.
0f50: 5a 81 5b 83 57 94 ad 90 b6 8e 9e 82 c9 8c c4 82  Z.[.W...........
0f60: ce 82 ea 82 e9 0d 0a 0d 0a 09 09 2f 2f 20 82 6e  ...........// .n
0f70: 82 6a 20 2d 3e 20 6f 6e 4f 4b 20 20 20 20 20 2d  .j -> onOK     -
0f80: 3e 20 69 66 20 74 72 75 65 20 65 6e 64 28 49 44  > if true end(ID
0f90: 4f 4b 29 0d 0a 09 09 76 69 72 74 75 61 6c 20 62  OK)....virtual b
0fa0: 6f 6f 6c 20 6f 6e 4f 4b 28 29 20 7b 72 65 74 75  ool onOK() {retu
0fb0: 72 6e 20 74 72 75 65 3b 7d 0d 0a 09 09 2f 2f 20  rn true;}....// 
0fc0: 8e e6 8f c1 20 2d 3e 20 6f 6e 43 61 6e 63 65 6c  .... -> onCancel
0fd0: 20 2d 3e 20 69 66 20 74 72 75 65 20 65 6e 64 28   -> if true end(
0fe0: 49 44 43 41 4e 43 45 4c 29 0d 0a 09 09 76 69 72  IDCANCEL)....vir
0ff0: 74 75 61 6c 20 62 6f 6f 6c 20 6f 6e 43 61 6e 63  tual bool onCanc
1000: 65 6c 28 29 20 7b 72 65 74 75 72 6e 20 74 72 75  el() {return tru
1010: 65 3b 7d 0d 0a 09 09 2f 2f 20 57 4d 5f 49 4e 49  e;}....// WM_INI
1020: 54 44 49 41 4c 4f 47 20 20 20 20 20 20 2d 3e 20  TDIALOG      -> 
1030: 6f 6e 49 6e 69 74 0d 0a 09 09 76 69 72 74 75 61  onInit....virtua
1040: 6c 20 42 4f 4f 4c 20 6f 6e 49 6e 69 74 28 29 20  l BOOL onInit() 
1050: 7b 72 65 74 75 72 6e 20 46 41 4c 53 45 3b 7d 0d  {return FALSE;}.
1060: 0a 09 09 2f 2f 20 57 4d 5f 3f 3f 3f 3f 20 20 20  ...// WM_????   
1070: 20 20 20 20 20 20 20 20 20 2d 3e 20 70 72 6f 63           -> proc
1080: 0d 0a 09 09 76 69 72 74 75 61 6c 20 42 4f 4f 4c  ....virtual BOOL
1090: 20 43 41 4c 4c 42 41 43 4b 20 70 72 6f 63 28 20   CALLBACK proc( 
10a0: 55 49 4e 54 20 6d 73 67 2c 20 57 50 41 52 41 4d  UINT msg, WPARAM
10b0: 20 77 70 2c 20 4c 50 41 52 41 4d 20 6c 70 20 29   wp, LPARAM lp )
10c0: 20 7b 72 65 74 75 72 6e 20 46 41 4c 53 45 3b 7d   {return FALSE;}
10d0: 0d 0a 0d 0a 70 72 69 76 61 74 65 3a 20 2f 2f 2d  ....private: //-
10e0: 2d 20 93 e0 95 94 8f 88 97 9d 20 2d 2d 2d 2d 2d  - ........ -----
10f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1100: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1110: 0d 0a 0d 0a 09 55 49 4e 54 20 6d 5f 45 6e 64 43  .....UINT m_EndC
1120: 6f 64 65 3b 0d 0a 09 55 49 4e 54 20 6d 5f 52 73  ode;...UINT m_Rs
1130: 72 63 3b 0d 0a 09 62 6f 6f 6c 20 6d 5f 62 53 74  rc;...bool m_bSt
1140: 61 74 65 4d 6f 64 61 6c 3b 0d 0a 09 62 6f 6f 6c  ateModal;...bool
1150: 20 69 73 44 6c 67 4d 73 67 28 20 4d 53 47 2a 20   isDlgMsg( MSG* 
1160: 6d 73 67 20 29 0d 0a 09 09 7b 0d 0a 09 09 09 72  msg )....{.....r
1170: 65 74 75 72 6e 20 28 21 21 3a 3a 49 73 44 69 61  eturn (!!::IsDia
1180: 6c 6f 67 4d 65 73 73 61 67 65 28 20 68 77 6e 64  logMessage( hwnd
1190: 28 29 2c 20 6d 73 67 20 29 29 3b 0d 0a 09 09 7d  (), msg ));....}
11a0: 0d 0a 09 73 74 61 74 69 63 20 42 4f 4f 4c 20 43  ...static BOOL C
11b0: 41 4c 4c 42 41 43 4b 20 63 6f 6d 6d 6f 6e 44 6c  ALLBACK commonDl
11c0: 67 28 20 48 57 4e 44 20 64 6c 67 2c 20 55 49 4e  g( HWND dlg, UIN
11d0: 54 20 6d 73 67 2c 20 57 50 41 52 41 4d 20 77 70  T msg, WPARAM wp
11e0: 2c 20 4c 50 41 52 41 4d 20 6c 70 20 29 3b 0d 0a  , LPARAM lp );..
11f0: 7d 3b 0d 0a 0d 0a 2f 2a 3d 2a 3d 2a 3d 2a 3d 2a  };..../*=*=*=*=*
1200: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a  =*=*=*=*=*=*=*=*
1210: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a  =*=*=*=*=*=*=*=*
1220: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a  =*=*=*=*=*=*=*=*
1230: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 2f 0d  =*=*=*=*=*=*=*/.
1240: 0a 2f 2f 20 6b 69 50 72 6f 70 53 68 65 65 74 20  .// kiPropSheet 
1250: 3a 20 50 72 6f 70 65 72 74 79 53 68 65 65 74 82  : PropertySheet.
1260: f0 6b 69 57 69 6e 64 6f 77 82 c6 82 b5 82 c4 8a  .kiWindow.......
1270: c7 97 9d 82 b7 82 e9 81 42 0d 0a 0d 0a 23 64 65  ........B....#de
1280: 66 69 6e 65 20 49 44 41 50 50 4c 59 20 20 20 20  fine IDAPPLY    
1290: 20 20 28 30 78 33 30 32 31 29 0d 0a 23 64 65 66    (0x3021)..#def
12a0: 69 6e 65 20 49 44 5f 4b 49 50 53 5f 48 45 4c 50  ine ID_KIPS_HELP
12b0: 20 28 30 78 30 30 30 39 29 0d 0a 0d 0a 63 6c 61   (0x0009)....cla
12c0: 73 73 20 6b 69 50 72 6f 70 53 68 65 65 74 50 61  ss kiPropSheetPa
12d0: 67 65 20 3a 20 70 75 62 6c 69 63 20 6b 69 44 69  ge : public kiDi
12e0: 61 6c 6f 67 0d 0a 7b 0d 0a 66 72 69 65 6e 64 20  alog..{..friend 
12f0: 63 6c 61 73 73 20 6b 69 50 72 6f 70 53 68 65 65  class kiPropShee
1300: 74 3b 0d 0a 0d 0a 70 72 6f 74 65 63 74 65 64 3a  t;....protected:
1310: 20 2f 2f 2d 2d 20 94 68 90 b6 83 4e 83 89 83 58   //-- .h...N...X
1320: 8c fc 82 af 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .... -----------
1330: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1340: 2d 0d 0a 0d 0a 09 2f 2f 20 83 5f 83 43 83 41 83  -.....// ._.C.A.
1350: 8d 83 4f 82 e2 83 41 83 43 83 52 83 93 82 cc 49  ..O...A.C.R....I
1360: 44 82 c5 8f 89 8a fa 89 bb 0d 0a 09 6b 69 50 72  D...........kiPr
1370: 6f 70 53 68 65 65 74 50 61 67 65 28 20 55 49 4e  opSheetPage( UIN
1380: 54 20 64 6c 67 69 64 20 29 0d 0a 09 09 3a 20 6b  T dlgid )....: k
1390: 69 44 69 61 6c 6f 67 28 20 64 6c 67 69 64 20 29  iDialog( dlgid )
13a0: 2c 20 6d 5f 68 49 63 6f 6e 28 20 4e 55 4c 4c 20  , m_hIcon( NULL 
13b0: 29 20 7b 7d 0d 0a 09 76 6f 69 64 20 73 65 74 49  ) {}...void setI
13c0: 63 6f 6e 28 20 48 49 43 4f 4e 20 68 20 29 0d 0a  con( HICON h )..
13d0: 09 09 7b 20 6d 5f 68 49 63 6f 6e 20 3d 20 68 3b  ..{ m_hIcon = h;
13e0: 20 7d 0d 0a 0d 0a 09 2f 2f 20 82 6e 82 6a 2f 93   }.....// .n.j/.
13f0: 4b 97 70 20 2d 3e 20 70 61 67 65 3a 3a 6f 6e 4f  K.p -> page::onO
1400: 4b 20 2d 3e 20 73 68 65 65 74 3a 3a 6f 6e 4f 4b  K -> sheet::onOK
1410: 20 2d 3e 20 28 69 66 20 6f 6b 20 8f 49 97 b9 29   -> (if ok .I..)
1420: 0d 0a 09 2f 2f 20 76 69 72 74 75 61 6c 20 62 6f  ...// virtual bo
1430: 6f 6c 20 6f 6e 4f 4b 28 29 0d 0a 09 2f 2f 20 57  ol onOK()...// W
1440: 4d 5f 49 4e 49 54 44 49 41 4c 4f 47 0d 0a 09 2f  M_INITDIALOG.../
1450: 2f 20 76 69 72 74 75 61 6c 20 42 4f 4f 4c 20 6f  / virtual BOOL o
1460: 6e 49 6e 69 74 28 29 0d 0a 09 2f 2f 20 82 bb 82  nInit()...// ...
1470: cc 91 bc 0d 0a 09 2f 2f 20 76 69 72 74 75 61 6c  ......// virtual
1480: 20 42 4f 4f 4c 20 43 41 4c 4c 42 41 43 4b 20 70   BOOL CALLBACK p
1490: 72 6f 63 28 20 55 49 4e 54 20 6d 73 67 2c 20 57  roc( UINT msg, W
14a0: 50 41 52 41 4d 20 77 70 2c 20 4c 50 41 52 41 4d  PARAM wp, LPARAM
14b0: 20 6c 70 20 29 0d 0a 0d 0a 70 72 69 76 61 74 65   lp )....private
14c0: 3a 20 2f 2f 2d 2d 20 93 e0 95 94 8f 88 97 9d 20  : //-- ........ 
14d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14f0: 2d 2d 2d 2d 2d 0d 0a 0d 0a 09 76 6f 69 64 20 65  -----.....void e
1500: 6e 64 28 20 55 49 4e 54 20 65 6e 64 63 6f 64 65  nd( UINT endcode
1510: 20 29 20 7b 7d 0d 0a 09 76 6f 69 64 20 73 65 74   ) {}...void set
1520: 49 6e 66 6f 28 20 50 52 4f 50 53 48 45 45 54 50  Info( PROPSHEETP
1530: 41 47 45 2a 20 70 20 29 3b 0d 0a 09 48 49 43 4f  AGE* p );...HICO
1540: 4e 20 6d 5f 68 49 63 6f 6e 3b 0d 0a 7d 3b 0d 0a  N m_hIcon;..};..
1550: 0d 0a 63 6c 61 73 73 20 6b 69 50 72 6f 70 53 68  ..class kiPropSh
1560: 65 65 74 20 3a 20 70 75 62 6c 69 63 20 6b 69 44  eet : public kiD
1570: 69 61 6c 6f 67 0d 0a 7b 0d 0a 66 72 69 65 6e 64  ialog..{..friend
1580: 20 63 6c 61 73 73 20 6b 69 50 72 6f 70 53 68 65   class kiPropShe
1590: 65 74 50 61 67 65 3b 0d 0a 0d 0a 70 75 62 6c 69  etPage;....publi
15a0: 63 3a 20 2f 2f 2d 2d 20 8a 4f 8c fc 82 ab 83 43  c: //-- .O.....C
15b0: 83 93 83 5e 81 5b 83 74 83 46 83 43 83 58 20 2d  ...^.[.t.F.C.X -
15c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
15d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 09 2f 2f  ---------.....//
15e0: 20 83 82 81 5b 83 5f 83 8b 83 5f 83 43 83 41 83   ...[._..._.C.A.
15f0: 8d 83 4f 82 c6 82 b5 82 c4 8e c0 8d 73 0d 0a 09  ..O.........s...
1600: 76 6f 69 64 20 64 6f 4d 6f 64 61 6c 28 20 48 57  void doModal( HW
1610: 4e 44 20 70 61 72 65 6e 74 20 29 3b 0d 0a 0d 0a  ND parent );....
1620: 09 2f 2f 20 83 82 81 5b 83 68 83 8c 83 58 83 5f  .// ...[.h...X._
1630: 83 43 83 41 83 8d 83 4f 82 c6 82 b5 82 c4 8d ec  .C.A...O........
1640: 90 ac 0d 0a 09 76 6f 69 64 20 63 72 65 61 74 65  .....void create
1650: 4d 6f 64 65 6c 65 73 73 28 20 48 57 4e 44 20 70  Modeless( HWND p
1660: 61 72 65 6e 74 20 29 3b 0d 0a 0d 0a 70 72 6f 74  arent );....prot
1670: 65 63 74 65 64 3a 20 2f 2f 2d 2d 20 94 68 90 b6  ected: //-- .h..
1680: 83 4e 83 89 83 58 8c fc 82 af 20 2d 2d 2d 2d 2d  .N...X.... -----
1690: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16a0: 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 09 2f 2f 20 83  -------.....// .
16b0: 52 83 93 83 58 83 67 83 89 83 4e 83 5e 95 d3 82  R...X.g...N.^...
16c0: e8 82 c5 81 ab 82 b1 82 ea 82 f0 82 a2 82 b6 82  ................
16d0: e9 82 d7 82 b5 0d 0a 09 50 52 4f 50 53 48 45 45  ........PROPSHEE
16e0: 54 48 45 41 44 45 52 20 6d 5f 48 65 61 64 65 72  THEADER m_Header
16f0: 3b 0d 0a 09 6b 69 41 72 72 61 79 3c 6b 69 50 72  ;...kiArray<kiPr
1700: 6f 70 53 68 65 65 74 50 61 67 65 2a 3e 20 6d 5f  opSheetPage*> m_
1710: 50 61 67 65 73 3b 0d 0a 0d 0a 09 2f 2f 20 8f 49  Pages;.....// .I
1720: 97 b9 0d 0a 09 76 6f 69 64 20 65 6e 64 28 20 55  .....void end( U
1730: 49 4e 54 20 65 6e 64 63 6f 64 65 20 29 3b 0d 0a  INT endcode );..
1740: 09 2f 2f 20 0d 0a 09 76 6f 69 64 20 73 65 6e 64  .// ...void send
1750: 4f 4b 32 41 6c 6c 28 29 0d 0a 09 7b 0d 0a 09 09  OK2All()...{....
1760: 66 6f 72 28 20 75 6e 73 69 67 6e 65 64 20 69 6e  for( unsigned in
1770: 74 20 69 3d 30 3b 69 21 3d 6d 5f 50 61 67 65 73  t i=0;i!=m_Pages
1780: 2e 6c 65 6e 28 29 3b 20 69 2b 2b 20 29 0d 0a 09  .len(); i++ )...
1790: 09 09 69 66 28 20 6d 5f 50 61 67 65 73 5b 69 5d  ..if( m_Pages[i]
17a0: 2d 3e 69 73 41 6c 69 76 65 28 29 20 29 0d 0a 09  ->isAlive() )...
17b0: 09 09 09 6d 5f 50 61 67 65 73 5b 69 5d 2d 3e 6f  ...m_Pages[i]->o
17c0: 6e 4f 4b 28 29 3b 0d 0a 09 7d 0d 0a 0d 0a 09 2f  nOK();...}...../
17d0: 2f 20 82 6e 82 6a 2f 93 4b 97 70 20 2d 3e 20 70  / .n.j/.K.p -> p
17e0: 61 67 65 3a 3a 6f 6e 4f 4b 20 2d 3e 20 73 68 65  age::onOK -> she
17f0: 65 74 3a 3a 6f 6e 4f 4b 20 2d 3e 20 28 69 66 20  et::onOK -> (if 
1800: 6f 6b 20 8f 49 97 b9 29 0d 0a 09 2f 2f 20 76 69  ok .I..)...// vi
1810: 72 74 75 61 6c 20 76 6f 69 64 20 6f 6e 4f 4b 28  rtual void onOK(
1820: 29 0d 0a 09 2f 2f 20 83 4c 83 83 83 93 83 5a 83  )...// .L.....Z.
1830: 8b 20 2d 3e 20 73 68 65 65 74 3a 3a 6f 6e 43 61  . -> sheet::onCa
1840: 6e 63 65 6c 20 2d 3e 20 8f 49 97 b9 0d 0a 09 2f  ncel -> .I...../
1850: 2f 20 76 69 72 74 75 61 6c 20 76 6f 69 64 20 6f  / virtual void o
1860: 6e 43 61 6e 63 65 6c 28 29 0d 0a 09 2f 2f 20 50  nCancel()...// P
1870: 53 43 42 5f 49 4e 49 54 49 41 4c 49 5a 45 44 0d  SCB_INITIALIZED.
1880: 0a 09 2f 2f 20 76 69 72 74 75 61 6c 20 42 4f 4f  ..// virtual BOO
1890: 4c 20 6f 6e 49 6e 69 74 28 29 0d 0a 09 2f 2f 20  L onInit()...// 
18a0: 93 4b 97 70 0d 0a 09 76 69 72 74 75 61 6c 20 76  .K.p...virtual v
18b0: 6f 69 64 20 6f 6e 41 70 70 6c 79 28 29 20 7b 7d  oid onApply() {}
18c0: 0d 0a 09 2f 2f 20 83 77 83 8b 83 76 0d 0a 09 76  ...// .w...v...v
18d0: 69 72 74 75 61 6c 20 76 6f 69 64 20 6f 6e 48 65  irtual void onHe
18e0: 6c 70 28 29 20 7b 7d 0d 0a 09 2f 2f 20 82 bb 82  lp() {}...// ...
18f0: cc 91 bc 83 52 83 7d 83 93 83 68 0d 0a 09 76 69  ....R.}...h...vi
1900: 72 74 75 61 6c 20 76 6f 69 64 20 6f 6e 43 6f 6d  rtual void onCom
1910: 6d 61 6e 64 28 20 55 49 4e 54 20 69 64 20 29 20  mand( UINT id ) 
1920: 7b 7d 0d 0a 09 2f 2f 20 83 74 83 40 83 43 83 8b  {}...// .t.@.C..
1930: 83 68 83 8d 83 62 83 76 0d 0a 09 76 69 72 74 75  .h...b.v...virtu
1940: 61 6c 20 76 6f 69 64 20 6f 6e 44 72 6f 70 28 20  al void onDrop( 
1950: 48 44 52 4f 50 20 68 64 72 6f 70 20 29 20 7b 7d  HDROP hdrop ) {}
1960: 0d 0a 0d 0a 70 72 69 76 61 74 65 3a 20 2f 2f 2d  ....private: //-
1970: 2d 20 93 e0 95 94 8f 88 97 9d 20 2d 2d 2d 2d 2d  - ........ -----
1980: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1990: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19a0: 2d 2d 0d 0a 0d 0a 09 76 6f 69 64 20 62 65 67 69  --.....void begi
19b0: 6e 28 29 3b 0d 0a 09 62 6f 6f 6c 20 6d 5f 62 53  n();...bool m_bS
19c0: 74 61 74 65 4d 6f 64 61 6c 3b 0d 0a 0d 0a 09 73  tateModal;.....s
19d0: 74 61 74 69 63 20 6b 69 50 72 6f 70 53 68 65 65  tatic kiPropShee
19e0: 74 2a 20 73 74 5f 43 75 72 49 6e 69 74 50 53 3b  t* st_CurInitPS;
19f0: 0d 0a 09 57 4e 44 50 52 4f 43 20 6d 5f 44 65 66  ...WNDPROC m_Def
1a00: 50 72 6f 63 3b 0d 0a 09 62 6f 6f 6c 20 69 73 44  Proc;...bool isD
1a10: 6c 67 4d 73 67 28 20 4d 53 47 2a 20 6d 73 67 20  lgMsg( MSG* msg 
1a20: 29 0d 0a 09 09 7b 20 72 65 74 75 72 6e 20 21 21  )....{ return !!
1a30: 50 72 6f 70 53 68 65 65 74 5f 49 73 44 69 61 6c  PropSheet_IsDial
1a40: 6f 67 4d 65 73 73 61 67 65 28 20 68 77 6e 64 28  ogMessage( hwnd(
1a50: 29 2c 6d 73 67 20 29 3b 20 7d 0d 0a 09 73 74 61  ),msg ); }...sta
1a60: 74 69 63 20 69 6e 74 20 43 41 4c 4c 42 41 43 4b  tic int CALLBACK
1a70: 20 6d 61 69 6e 5f 69 6e 69 74 50 72 6f 63 28 20   main_initProc( 
1a80: 48 57 4e 44 20 64 6c 67 2c 20 55 49 4e 54 20 6d  HWND dlg, UINT m
1a90: 73 67 2c 20 4c 50 41 52 41 4d 20 6c 70 20 29 3b  sg, LPARAM lp );
1aa0: 0d 0a 09 73 74 61 74 69 63 20 4c 52 45 53 55 4c  ...static LRESUL
1ab0: 54 20 43 41 4c 4c 42 41 43 4b 20 6d 61 69 6e 5f  T CALLBACK main_
1ac0: 63 6d 6d 6e 50 72 6f 63 28 20 48 57 4e 44 20 64  cmmnProc( HWND d
1ad0: 6c 67 2c 20 55 49 4e 54 20 6d 73 67 2c 20 57 50  lg, UINT msg, WP
1ae0: 41 52 41 4d 20 77 70 2c 20 4c 50 41 52 41 4d 20  ARAM wp, LPARAM 
1af0: 6c 70 20 29 3b 0d 0a 09 73 74 61 74 69 63 20 42  lp );...static B
1b00: 4f 4f 4c 20 43 41 4c 4c 42 41 43 4b 20 70 61 67  OOL CALLBACK pag
1b10: 65 5f 63 6d 6d 6e 50 72 6f 63 28 20 48 57 4e 44  e_cmmnProc( HWND
1b20: 20 64 6c 67 2c 20 55 49 4e 54 20 6d 73 67 2c 20   dlg, UINT msg, 
1b30: 57 50 41 52 41 4d 20 77 70 2c 20 4c 50 41 52 41  WPARAM wp, LPARA
1b40: 4d 20 6c 70 20 29 3b 0d 0a 09 73 74 61 74 69 63  M lp );...static
1b50: 20 55 49 4e 54 20 43 41 4c 4c 42 41 43 4b 20 70   UINT CALLBACK p
1b60: 61 67 65 5f 69 6e 69 74 50 72 6f 63 28 20 48 57  age_initProc( HW
1b70: 4e 44 20 64 6c 67 2c 20 55 49 4e 54 20 6d 73 67  ND dlg, UINT msg
1b80: 2c 20 4c 50 50 52 4f 50 53 48 45 45 54 50 41 47  , LPPROPSHEETPAG
1b90: 45 20 70 70 73 70 20 29 3b 0d 0a 0d 0a 70 72 6f  E ppsp );....pro
1ba0: 74 65 63 74 65 64 3a 0d 0a 09 6b 69 50 72 6f 70  tected:...kiProp
1bb0: 53 68 65 65 74 28 29 3b 0d 0a 70 75 62 6c 69 63  Sheet();..public
1bc0: 3a 0d 0a 09 7e 6b 69 50 72 6f 70 53 68 65 65 74  :...~kiPropSheet
1bd0: 28 29 0d 0a 09 09 7b 20 66 6f 72 28 20 75 6e 73  ()....{ for( uns
1be0: 69 67 6e 65 64 20 69 6e 74 20 69 3d 30 3b 20 69  igned int i=0; i
1bf0: 21 3d 6d 5f 50 61 67 65 73 2e 6c 65 6e 28 29 3b  !=m_Pages.len();
1c00: 20 69 2b 2b 20 29 20 64 65 6c 65 74 65 20 6d 5f   i++ ) delete m_
1c10: 50 61 67 65 73 5b 69 5d 3b 20 7d 0d 0a 7d 3b 0d  Pages[i]; }..};.
1c20: 0a 0d 0a 2f 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d  .../*=*=*=*=*=*=
1c30: 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d  *=*=*=*=*=*=*=*=
1c40: 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d  *=*=*=*=*=*=*=*=
1c50: 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d  *=*=*=*=*=*=*=*=
1c60: 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 2f 0d 0a 2f 2f  *=*=*=*=*=*/..//
1c70: 20 6b 69 4c 69 73 74 56 69 65 77 20 3a 20 4c 69   kiListView : Li
1c80: 73 74 56 69 65 77 83 52 83 93 83 67 83 8d 81 5b  stView.R...g...[
1c90: 83 8b 82 cc 8a c8 92 50 82 c8 83 89 83 62 83 70  .......P.....b.p
1ca0: 0d 0a 0d 0a 63 6c 61 73 73 20 6b 69 4c 69 73 74  ....class kiList
1cb0: 56 69 65 77 0d 0a 7b 0d 0a 70 75 62 6c 69 63 3a  View..{..public:
1cc0: 0d 0a 09 6b 69 4c 69 73 74 56 69 65 77 28 20 6b  ...kiListView( k
1cd0: 69 44 69 61 6c 6f 67 2a 20 64 6c 67 2c 20 55 49  iDialog* dlg, UI
1ce0: 4e 54 20 69 64 20 29 0d 0a 09 09 7b 0d 0a 09 09  NT id )....{....
1cf0: 09 6d 5f 68 57 6e 64 20 3d 20 3a 3a 47 65 74 44  .m_hWnd = ::GetD
1d00: 6c 67 49 74 65 6d 28 20 64 6c 67 2d 3e 68 77 6e  lgItem( dlg->hwn
1d10: 64 28 29 2c 20 69 64 20 29 3b 0d 0a 09 09 7d 0d  d(), id );....}.
1d20: 0a 0d 0a 09 76 6f 69 64 20 69 6e 73 65 72 74 43  ....void insertC
1d30: 6f 6c 75 6d 6e 28 20 69 6e 74 20 79 2c 20 63 6f  olumn( int y, co
1d40: 6e 73 74 20 63 68 61 72 2a 20 74 69 74 6c 65 2c  nst char* title,
1d50: 0d 0a 09 09 09 09 09 09 69 6e 74 20 77 69 64 74  ........int widt
1d60: 68 3d 31 30 30 2c 20 69 6e 74 20 66 6d 74 3d 4c  h=100, int fmt=L
1d70: 56 43 46 4d 54 5f 4c 45 46 54 20 29 0d 0a 09 09  VCFMT_LEFT )....
1d80: 7b 0d 0a 09 09 09 4c 56 43 4f 4c 55 4d 4e 20 63  {.....LVCOLUMN c
1d90: 6f 6c 3b 0d 0a 09 09 09 63 6f 6c 2e 6d 61 73 6b  ol;.....col.mask
1da0: 20 3d 20 4c 56 43 46 5f 54 45 58 54 20 7c 20 4c   = LVCF_TEXT | L
1db0: 56 43 46 5f 46 4d 54 20 7c 20 4c 56 43 46 5f 57  VCF_FMT | LVCF_W
1dc0: 49 44 54 48 3b 0d 0a 09 09 09 63 6f 6c 2e 70 73  IDTH;.....col.ps
1dd0: 7a 54 65 78 74 20 3d 20 63 6f 6e 73 74 5f 63 61  zText = const_ca
1de0: 73 74 3c 63 68 61 72 2a 3e 28 74 69 74 6c 65 29  st<char*>(title)
1df0: 3b 0d 0a 09 09 09 63 6f 6c 2e 63 78 20 3d 20 77  ;.....col.cx = w
1e00: 69 64 74 68 3b 0d 0a 09 09 09 63 6f 6c 2e 66 6d  idth;.....col.fm
1e10: 74 20 3d 20 66 6d 74 3b 0d 0a 09 09 09 3a 3a 53  t = fmt;.....::S
1e20: 65 6e 64 4d 65 73 73 61 67 65 28 20 6d 5f 68 57  endMessage( m_hW
1e30: 6e 64 2c 20 4c 56 4d 5f 49 4e 53 45 52 54 43 4f  nd, LVM_INSERTCO
1e40: 4c 55 4d 4e 2c 20 79 2c 20 28 4c 50 41 52 41 4d  LUMN, y, (LPARAM
1e50: 29 26 63 6f 6c 20 29 3b 0d 0a 09 09 7d 0d 0a 0d  )&col );....}...
1e60: 0a 09 76 6f 69 64 20 69 6e 73 65 72 74 49 74 65  ..void insertIte
1e70: 6d 28 20 69 6e 74 20 78 2c 20 63 6f 6e 73 74 20  m( int x, const 
1e80: 63 68 61 72 2a 20 73 74 72 2c 20 4c 50 41 52 41  char* str, LPARA
1e90: 4d 20 70 61 72 61 6d 3d 30 2c 20 69 6e 74 20 69  M param=0, int i
1ea0: 49 6d 61 67 65 3d 2d 31 20 29 0d 0a 09 09 7b 0d  Image=-1 )....{.
1eb0: 0a 09 09 09 4c 56 49 54 45 4d 20 69 74 65 6d 3b  ....LVITEM item;
1ec0: 0d 0a 09 09 09 69 74 65 6d 2e 6d 61 73 6b 20 3d  .....item.mask =
1ed0: 20 4c 56 49 46 5f 54 45 58 54 20 7c 20 4c 56 49   LVIF_TEXT | LVI
1ee0: 46 5f 50 41 52 41 4d 20 7c 20 28 69 49 6d 61 67  F_PARAM | (iImag
1ef0: 65 21 3d 2d 31 20 3f 20 4c 56 49 46 5f 49 4d 41  e!=-1 ? LVIF_IMA
1f00: 47 45 20 3a 20 30 29 3b 0d 0a 09 09 09 69 74 65  GE : 0);.....ite
1f10: 6d 2e 70 73 7a 54 65 78 74 20 3d 20 63 6f 6e 73  m.pszText = cons
1f20: 74 5f 63 61 73 74 3c 63 68 61 72 2a 3e 28 73 74  t_cast<char*>(st
1f30: 72 29 3b 0d 0a 09 09 09 69 74 65 6d 2e 69 49 74  r);.....item.iIt
1f40: 65 6d 20 3d 20 78 3b 0d 0a 09 09 09 69 74 65 6d  em = x;.....item
1f50: 2e 69 53 75 62 49 74 65 6d 20 3d 20 30 3b 0d 0a  .iSubItem = 0;..
1f60: 09 09 09 69 74 65 6d 2e 69 49 6d 61 67 65 20 3d  ...item.iImage =
1f70: 20 69 49 6d 61 67 65 3b 0d 0a 09 09 09 69 74 65   iImage;.....ite
1f80: 6d 2e 6c 50 61 72 61 6d 20 3d 20 70 61 72 61 6d  m.lParam = param
1f90: 3b 20 0d 0a 09 09 09 3a 3a 53 65 6e 64 4d 65 73  ; .....::SendMes
1fa0: 73 61 67 65 28 20 6d 5f 68 57 6e 64 2c 20 4c 56  sage( m_hWnd, LV
1fb0: 4d 5f 49 4e 53 45 52 54 49 54 45 4d 2c 20 30 2c  M_INSERTITEM, 0,
1fc0: 20 28 4c 50 41 52 41 4d 29 26 69 74 65 6d 20 29   (LPARAM)&item )
1fd0: 3b 0d 0a 09 09 7d 0d 0a 0d 0a 09 76 6f 69 64 20  ;....}.....void 
1fe0: 73 65 74 53 75 62 49 74 65 6d 28 20 69 6e 74 20  setSubItem( int 
1ff0: 78 2c 20 69 6e 74 20 79 2c 20 63 6f 6e 73 74 20  x, int y, const 
2000: 63 68 61 72 2a 20 73 74 72 20 29 0d 0a 09 09 7b  char* str )....{
2010: 0d 0a 09 09 09 4c 56 49 54 45 4d 20 69 74 65 6d  .....LVITEM item
2020: 3b 0d 0a 09 09 09 69 74 65 6d 2e 6d 61 73 6b 20  ;.....item.mask 
2030: 3d 20 4c 56 49 46 5f 54 45 58 54 3b 0d 0a 09 09  = LVIF_TEXT;....
2040: 09 69 74 65 6d 2e 70 73 7a 54 65 78 74 20 3d 20  .item.pszText = 
2050: 63 6f 6e 73 74 5f 63 61 73 74 3c 63 68 61 72 2a  const_cast<char*
2060: 3e 28 73 74 72 29 3b 0d 0a 09 09 09 69 74 65 6d  >(str);.....item
2070: 2e 69 49 74 65 6d 20 3d 20 78 3b 0d 0a 09 09 09  .iItem = x;.....
2080: 69 74 65 6d 2e 69 53 75 62 49 74 65 6d 20 3d 20  item.iSubItem = 
2090: 79 3b 0d 0a 09 09 09 3a 3a 53 65 6e 64 4d 65 73  y;.....::SendMes
20a0: 73 61 67 65 28 20 6d 5f 68 57 6e 64 2c 20 4c 56  sage( m_hWnd, LV
20b0: 4d 5f 53 45 54 49 54 45 4d 2c 20 30 2c 20 28 4c  M_SETITEM, 0, (L
20c0: 50 41 52 41 4d 29 26 69 74 65 6d 20 29 3b 0d 0a  PARAM)&item );..
20d0: 09 09 7d 0d 0a 0d 0a 09 76 6f 69 64 20 73 65 74  ..}.....void set
20e0: 49 6d 61 67 65 4c 69 73 74 28 20 48 49 4d 41 47  ImageList( HIMAG
20f0: 45 4c 49 53 54 20 4c 61 72 67 65 2c 20 48 49 4d  ELIST Large, HIM
2100: 41 47 45 4c 49 53 54 20 53 6d 61 6c 6c 20 29 0d  AGELIST Small ).
2110: 0a 09 09 7b 0d 0a 09 09 09 3a 3a 53 65 6e 64 4d  ...{.....::SendM
2120: 65 73 73 61 67 65 28 20 6d 5f 68 57 6e 64 2c 20  essage( m_hWnd, 
2130: 4c 56 4d 5f 53 45 54 49 4d 41 47 45 4c 49 53 54  LVM_SETIMAGELIST
2140: 2c 20 4c 56 53 49 4c 5f 4e 4f 52 4d 41 4c 2c 20  , LVSIL_NORMAL, 
2150: 28 4c 50 41 52 41 4d 29 4c 61 72 67 65 20 29 3b  (LPARAM)Large );
2160: 0d 0a 09 09 09 3a 3a 53 65 6e 64 4d 65 73 73 61  .....::SendMessa
2170: 67 65 28 20 6d 5f 68 57 6e 64 2c 20 4c 56 4d 5f  ge( m_hWnd, LVM_
2180: 53 45 54 49 4d 41 47 45 4c 49 53 54 2c 20 4c 56  SETIMAGELIST, LV
2190: 53 49 4c 5f 53 4d 41 4c 4c 2c 20 20 28 4c 50 41  SIL_SMALL,  (LPA
21a0: 52 41 4d 29 53 6d 61 6c 6c 20 29 3b 0d 0a 09 09  RAM)Small );....
21b0: 7d 0d 0a 0d 0a 70 72 69 76 61 74 65 3a 0d 0a 09  }....private:...
21c0: 48 57 4e 44 20 6d 5f 68 57 6e 64 3b 0d 0a 7d 3b  HWND m_hWnd;..};
21d0: 0d 0a 0d 0a 23 65 6e 64 69 66 0d 0a              ....#endif..