Hex Artifact Content

Not logged in

Artifact 619c2be4e23fbad6a30915626f30119d63ac384a:


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 63 70 70  -..// kl_wnd.cpp
0020: 20 3a 20 77 69 6e 64 6f 77 20 69 6e 66 6f 72 6d   : window inform
0030: 61 74 69 6f 6e 20 6d 61 6e 61 67 65 72 0d 0a 0d  ation manager...
0040: 0a 23 69 6e 63 6c 75 64 65 20 22 73 74 64 61 66  .#include "stdaf
0050: 78 2e 68 22 0d 0a 23 69 6e 63 6c 75 64 65 20 22  x.h"..#include "
0060: 6b 69 6c 69 62 2e 68 22 0d 0a 0d 0a 0d 0a 2f 2f  kilib.h"......//
0070: 2d 2d 2d 2d 2d 2d 2d 2d 20 57 69 6e 64 6f 77 82  -------- Window.
0080: f0 8d ec 90 ac 8e 9e 82 c9 20 48 57 4e 44 20 82  ......... HWND .
0090: c9 20 6b 69 57 69 6e 64 6f 77 2a 20 82 f0 83 5a  . kiWindow* ...Z
00a0: 83 62 83 67 82 b7 82 e9 82 bd 82 df 82 cc 8f 88  .b.g............
00b0: 97 9d 20 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 0d 0a  .. -------//....
00c0: 0d 0a 6b 69 57 69 6e 64 6f 77 2a 20 6b 69 57 69  ..kiWindow* kiWi
00d0: 6e 64 6f 77 3a 3a 73 74 5f 70 43 75 72 49 6e 69  ndow::st_pCurIni
00e0: 74 20 3d 20 4e 55 4c 4c 3b 0d 0a 20 20 20 20 48  t = NULL;..    H
00f0: 48 4f 4f 4b 20 6b 69 57 69 6e 64 6f 77 3a 3a 73  HOOK kiWindow::s
0100: 74 5f 68 48 6f 6f 6b 20 20 20 20 3d 20 4e 55 4c  t_hHook    = NUL
0110: 4c 3b 0d 0a 0d 0a 76 6f 69 64 20 6b 69 57 69 6e  L;....void kiWin
0120: 64 6f 77 3a 3a 69 6e 69 74 28 29 0d 0a 7b 0d 0a  dow::init()..{..
0130: 09 2f 2f 20 43 72 65 61 74 65 57 69 6e 64 6f 77  .// CreateWindow
0140: 20 97 70 83 74 83 62 83 4e 90 dd 92 75 0d 0a 09   .p.t.b.N...u...
0150: 73 74 5f 68 48 6f 6f 6b 20 3d 20 3a 3a 53 65 74  st_hHook = ::Set
0160: 57 69 6e 64 6f 77 73 48 6f 6f 6b 45 78 28 20 57  WindowsHookEx( W
0170: 48 5f 43 42 54 2c 20 26 43 42 54 50 72 6f 63 2c  H_CBT, &CBTProc,
0180: 20 4e 55 4c 4c 2c 20 3a 3a 47 65 74 43 75 72 72   NULL, ::GetCurr
0190: 65 6e 74 54 68 72 65 61 64 49 64 28 29 20 29 3b  entThreadId() );
01a0: 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 6b 69 57 69  ..}....void kiWi
01b0: 6e 64 6f 77 3a 3a 66 69 6e 69 73 68 28 29 0d 0a  ndow::finish()..
01c0: 7b 0d 0a 09 2f 2f 20 43 72 65 61 74 65 57 69 6e  {...// CreateWin
01d0: 64 6f 77 20 97 70 83 74 83 62 83 4e 89 f0 8f 9c  dow .p.t.b.N....
01e0: 0d 0a 09 3a 3a 55 6e 68 6f 6f 6b 57 69 6e 64 6f  ...::UnhookWindo
01f0: 77 73 48 6f 6f 6b 45 78 28 20 73 74 5f 68 48 6f  wsHookEx( st_hHo
0200: 6f 6b 20 29 3b 0d 0a 7d 0d 0a 0d 0a 4c 52 45 53  ok );..}....LRES
0210: 55 4c 54 20 43 41 4c 4c 42 41 43 4b 20 6b 69 57  ULT CALLBACK kiW
0220: 69 6e 64 6f 77 3a 3a 43 42 54 50 72 6f 63 28 20  indow::CBTProc( 
0230: 69 6e 74 20 63 6f 64 65 2c 20 57 50 41 52 41 4d  int code, WPARAM
0240: 20 77 70 2c 20 4c 50 41 52 41 4d 20 6c 70 20 29   wp, LPARAM lp )
0250: 0d 0a 7b 0d 0a 09 69 66 28 20 63 6f 64 65 20 3d  ..{...if( code =
0260: 3d 20 48 43 42 54 5f 43 52 45 41 54 45 57 4e 44  = HCBT_CREATEWND
0270: 20 29 0d 0a 09 7b 0d 0a 09 09 69 66 28 20 73 74   )...{....if( st
0280: 5f 70 43 75 72 49 6e 69 74 20 29 0d 0a 09 09 7b  _pCurInit )....{
0290: 0d 0a 09 09 09 2f 2f 20 6b 2e 69 2e 6c 69 62 20  .....// k.i.lib 
02a0: 82 cc 83 45 83 43 83 93 83 68 83 45 82 aa 20 43  ...E.C...h.E.. C
02b0: 72 65 61 74 65 57 69 6e 64 6f 77 20 82 b3 82 ea  reateWindow ....
02c0: 82 bd 8f ea 8d 87 0d 0a 09 09 09 73 74 5f 70 43  ...........st_pC
02d0: 75 72 49 6e 69 74 2d 3e 73 65 74 48 77 6e 64 28  urInit->setHwnd(
02e0: 20 28 48 57 4e 44 29 77 70 20 29 3b 0d 0a 09 09   (HWND)wp );....
02f0: 09 3a 3a 53 65 74 57 69 6e 64 6f 77 4c 6f 6e 67  .::SetWindowLong
0300: 28 20 28 48 57 4e 44 29 77 70 2c 20 47 57 4c 5f  ( (HWND)wp, GWL_
0310: 55 53 45 52 44 41 54 41 2c 20 28 4c 4f 4e 47 29  USERDATA, (LONG)
0320: 73 74 5f 70 43 75 72 49 6e 69 74 20 29 3b 0d 0a  st_pCurInit );..
0330: 09 09 09 73 74 5f 70 43 75 72 49 6e 69 74 20 3d  ...st_pCurInit =
0340: 20 4e 55 4c 4c 3b 0d 0a 09 09 7d 0d 0a 09 09 65   NULL;....}....e
0350: 6c 73 65 0d 0a 09 09 09 3a 3a 53 65 74 57 69 6e  lse.....::SetWin
0360: 64 6f 77 4c 6f 6e 67 28 20 28 48 57 4e 44 29 77  dowLong( (HWND)w
0370: 70 2c 20 47 57 4c 5f 55 53 45 52 44 41 54 41 2c  p, GWL_USERDATA,
0380: 20 30 20 29 3b 0d 0a 09 7d 0d 0a 0d 0a 09 72 65   0 );...}.....re
0390: 74 75 72 6e 20 3a 3a 43 61 6c 6c 4e 65 78 74 48  turn ::CallNextH
03a0: 6f 6f 6b 45 78 28 20 73 74 5f 68 48 6f 6f 6b 2c  ookEx( st_hHook,
03b0: 20 63 6f 64 65 2c 20 77 70 2c 20 6c 70 20 29 3b   code, wp, lp );
03c0: 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 6b 69 57 69  ..}....void kiWi
03d0: 6e 64 6f 77 3a 3a 64 65 74 61 63 68 48 77 6e 64  ndow::detachHwnd
03e0: 28 29 0d 0a 7b 0d 0a 09 3a 3a 53 65 74 57 69 6e  ()..{...::SetWin
03f0: 64 6f 77 4c 6f 6e 67 28 20 68 77 6e 64 28 29 2c  dowLong( hwnd(),
0400: 20 47 57 4c 5f 55 53 45 52 44 41 54 41 2c 20 30   GWL_USERDATA, 0
0410: 20 29 3b 0d 0a 09 69 66 28 20 74 68 69 73 20 3d   );...if( this =
0420: 3d 20 61 70 70 28 29 2d 3e 6d 61 69 6e 77 6e 64  = app()->mainwnd
0430: 28 29 20 29 0d 0a 09 09 61 70 70 28 29 2d 3e 73  () )....app()->s
0440: 65 74 4d 61 69 6e 57 6e 64 28 20 4e 55 4c 4c 20  etMainWnd( NULL 
0450: 29 3b 0d 0a 09 73 65 74 48 77 6e 64 28 20 4e 55  );...setHwnd( NU
0460: 4c 4c 20 29 3b 0d 0a 7d 0d 0a 0d 0a 0d 0a 2f 2f  LL );..}......//
0470: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 57 69 6e  ------------ Win
0480: 64 6f 77 20 82 c9 82 dc 82 c2 82 ed 82 e9 83 47  dow ...........G
0490: 83 67 83 5a 83 67 83 89 82 c8 8f 88 97 9d 20 28  .g.Z.g........ (
04a0: 73 74 61 74 69 63 29 20 2d 2d 2d 2d 2d 2d 2d 2d  static) --------
04b0: 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 0d 0a 0d 0a 62  -------//......b
04c0: 6f 6f 6c 20 6b 69 57 69 6e 64 6f 77 3a 3a 6c 6f  ool kiWindow::lo
04d0: 6f 70 62 72 65 61 6b 65 72 20 3d 20 66 61 6c 73  opbreaker = fals
04e0: 65 3b 0d 0a 0d 0a 76 6f 69 64 20 6b 69 57 69 6e  e;....void kiWin
04f0: 64 6f 77 3a 3a 6d 73 67 28 29 0d 0a 7b 0d 0a 09  dow::msg()..{...
0500: 66 6f 72 28 20 4d 53 47 20 6d 73 67 3b 20 3a 3a  for( MSG msg; ::
0510: 50 65 65 6b 4d 65 73 73 61 67 65 28 20 26 6d 73  PeekMessage( &ms
0520: 67 2c 4e 55 4c 4c 2c 30 2c 30 2c 50 4d 5f 52 45  g,NULL,0,0,PM_RE
0530: 4d 4f 56 45 20 29 3b 20 29 0d 0a 09 09 3a 3a 54  MOVE ); )....::T
0540: 72 61 6e 73 6c 61 74 65 4d 65 73 73 61 67 65 28  ranslateMessage(
0550: 20 26 6d 73 67 20 29 2c 20 3a 3a 44 69 73 70 61   &msg ), ::Dispa
0560: 74 63 68 4d 65 73 73 61 67 65 28 20 26 6d 73 67  tchMessage( &msg
0570: 20 29 3b 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 6b   );..}....void k
0580: 69 57 69 6e 64 6f 77 3a 3a 6d 73 67 4c 6f 6f 70  iWindow::msgLoop
0590: 28 20 6d 73 67 6c 6f 6f 70 74 79 70 65 20 74 79  ( msglooptype ty
05a0: 70 65 20 29 0d 0a 7b 0d 0a 09 6b 69 57 69 6e 64  pe )..{...kiWind
05b0: 6f 77 2a 20 77 6e 64 3b 0d 0a 09 4d 53 47 20 6d  ow* wnd;...MSG m
05c0: 73 67 3b 0d 0a 09 77 68 69 6c 65 28 20 21 6c 6f  sg;...while( !lo
05d0: 6f 70 62 72 65 61 6b 65 72 20 26 26 0d 0a 09 09  opbreaker &&....
05e0: 20 20 74 79 70 65 3d 3d 47 45 54 20 3f 20 20 3a    type==GET ?  :
05f0: 3a 47 65 74 4d 65 73 73 61 67 65 28 20 26 6d 73  :GetMessage( &ms
0600: 67 2c 4e 55 4c 4c 2c 30 2c 30 20 29 0d 0a 09 09  g,NULL,0,0 )....
0610: 09 09 09 3a 20 3a 3a 50 65 65 6b 4d 65 73 73 61  ...: ::PeekMessa
0620: 67 65 28 20 26 6d 73 67 2c 4e 55 4c 4c 2c 30 2c  ge( &msg,NULL,0,
0630: 30 2c 50 4d 5f 52 45 4d 4f 56 45 20 29 20 29 0d  0,PM_REMOVE ) ).
0640: 0a 09 7b 0d 0a 09 09 69 66 28 20 77 6e 64 20 3d  ..{....if( wnd =
0650: 20 61 70 70 28 29 2d 3e 6d 61 69 6e 77 6e 64 28   app()->mainwnd(
0660: 29 20 29 0d 0a 09 09 7b 0d 0a 09 09 09 69 66 28  ) )....{.....if(
0670: 20 77 6e 64 2d 3e 6d 5f 68 41 63 63 65 6c 20 29   wnd->m_hAccel )
0680: 0d 0a 09 09 09 09 69 66 28 20 3a 3a 54 72 61 6e  ......if( ::Tran
0690: 73 6c 61 74 65 41 63 63 65 6c 65 72 61 74 6f 72  slateAccelerator
06a0: 28 20 77 6e 64 2d 3e 68 77 6e 64 28 29 2c 20 77  ( wnd->hwnd(), w
06b0: 6e 64 2d 3e 6d 5f 68 41 63 63 65 6c 2c 20 26 6d  nd->m_hAccel, &m
06c0: 73 67 20 29 20 29 0d 0a 09 09 09 09 09 63 6f 6e  sg ) ).......con
06d0: 74 69 6e 75 65 3b 0d 0a 09 09 09 69 66 28 20 6d  tinue;.....if( m
06e0: 73 67 2e 6d 65 73 73 61 67 65 21 3d 57 4d 5f 43  sg.message!=WM_C
06f0: 48 41 52 20 26 26 20 77 6e 64 2d 3e 69 73 44 6c  HAR && wnd->isDl
0700: 67 4d 73 67 28 20 26 6d 73 67 20 29 20 29 0d 0a  gMsg( &msg ) )..
0710: 09 09 09 09 63 6f 6e 74 69 6e 75 65 3b 0d 0a 09  ....continue;...
0720: 09 7d 0d 0a 09 09 3a 3a 54 72 61 6e 73 6c 61 74  .}....::Translat
0730: 65 4d 65 73 73 61 67 65 28 20 26 6d 73 67 20 29  eMessage( &msg )
0740: 2c 20 3a 3a 44 69 73 70 61 74 63 68 4d 65 73 73  , ::DispatchMess
0750: 61 67 65 28 20 26 6d 73 67 20 29 3b 0d 0a 09 7d  age( &msg );...}
0760: 0d 0a 09 6c 6f 6f 70 62 72 65 61 6b 65 72 20 3d  ...loopbreaker =
0770: 20 66 61 6c 73 65 3b 0d 0a 7d 0d 0a 0d 0a 76 6f   false;..}....vo
0780: 69 64 20 6b 69 57 69 6e 64 6f 77 3a 3a 73 65 74  id kiWindow::set
0790: 46 72 6f 6e 74 28 20 48 57 4e 44 20 77 6e 64 20  Front( HWND wnd 
07a0: 29 0d 0a 7b 0d 0a 09 63 6f 6e 73 74 20 4f 53 56  )..{...const OSV
07b0: 45 52 53 49 4f 4e 49 4e 46 4f 26 20 76 20 3d 20  ERSIONINFO& v = 
07c0: 61 70 70 28 29 2d 3e 6f 73 76 65 72 28 29 3b 0d  app()->osver();.
07d0: 0a 0d 0a 09 2f 2f 20 57 69 6e 32 30 30 30 20 88  ....// Win2000 .
07e0: c8 8f e3 20 6f 72 20 57 69 6e 39 38 20 88 c8 8f  ... or Win98 ...
07f0: e3 0d 0a 09 69 66 28 20 28 20 76 2e 64 77 50 6c  ....if( ( v.dwPl
0800: 61 74 66 6f 72 6d 49 64 3d 3d 56 45 52 5f 50 4c  atformId==VER_PL
0810: 41 54 46 4f 52 4d 5f 57 49 4e 33 32 5f 4e 54 20  ATFORM_WIN32_NT 
0820: 26 26 20 76 2e 64 77 4d 61 6a 6f 72 56 65 72 73  && v.dwMajorVers
0830: 69 6f 6e 3e 3d 35 20 29 0d 0a 09 20 7c 7c 20 28  ion>=5 )... || (
0840: 20 76 2e 64 77 50 6c 61 74 66 6f 72 6d 49 64 3d   v.dwPlatformId=
0850: 3d 56 45 52 5f 50 4c 41 54 46 4f 52 4d 5f 57 49  =VER_PLATFORM_WI
0860: 4e 33 32 5f 57 49 4e 44 4f 57 53 20 26 26 0d 0a  N32_WINDOWS &&..
0870: 09 09 09 09 09 09 09 76 2e 64 77 4d 61 6a 6f 72  .......v.dwMajor
0880: 56 65 72 73 69 6f 6e 2a 31 30 30 2b 76 2e 64 77  Version*100+v.dw
0890: 4d 69 6e 6f 72 56 65 72 73 69 6f 6e 3e 3d 34 31  MinorVersion>=41
08a0: 30 20 29 20 29 0d 0a 09 7b 0d 0a 09 09 44 57 4f  0 ) )...{....DWO
08b0: 52 44 20 70 69 64 3b 0d 0a 09 09 44 57 4f 52 44  RD pid;....DWORD
08c0: 20 74 68 31 20 3d 20 3a 3a 47 65 74 57 69 6e 64   th1 = ::GetWind
08d0: 6f 77 54 68 72 65 61 64 50 72 6f 63 65 73 73 49  owThreadProcessI
08e0: 64 28 20 3a 3a 47 65 74 46 6f 72 65 67 72 6f 75  d( ::GetForegrou
08f0: 6e 64 57 69 6e 64 6f 77 28 29 2c 20 26 70 69 64  ndWindow(), &pid
0900: 20 29 3b 0d 0a 09 09 44 57 4f 52 44 20 74 68 32   );....DWORD th2
0910: 20 3d 20 3a 3a 47 65 74 43 75 72 72 65 6e 74 54   = ::GetCurrentT
0920: 68 72 65 61 64 49 64 28 29 3b 0d 0a 09 09 3a 3a  hreadId();....::
0930: 41 74 74 61 63 68 54 68 72 65 61 64 49 6e 70 75  AttachThreadInpu
0940: 74 28 20 74 68 32 2c 20 74 68 31 2c 20 54 52 55  t( th2, th1, TRU
0950: 45 20 29 3b 0d 0a 09 09 3a 3a 53 65 74 46 6f 72  E );....::SetFor
0960: 65 67 72 6f 75 6e 64 57 69 6e 64 6f 77 28 20 77  egroundWindow( w
0970: 6e 64 20 29 3b 0d 0a 09 09 3a 3a 41 74 74 61 63  nd );....::Attac
0980: 68 54 68 72 65 61 64 49 6e 70 75 74 28 20 74 68  hThreadInput( th
0990: 32 2c 20 74 68 31 2c 20 46 41 4c 53 45 20 29 3b  2, th1, FALSE );
09a0: 0d 0a 09 09 3a 3a 42 72 69 6e 67 57 69 6e 64 6f  ....::BringWindo
09b0: 77 54 6f 54 6f 70 28 20 77 6e 64 20 29 3b 0d 0a  wToTop( wnd );..
09c0: 09 7d 0d 0a 09 65 6c 73 65 20 20 2f 2f 20 8c c3  .}...else  // ..
09d0: 82 a2 57 69 6e 0d 0a 09 09 3a 3a 53 65 74 46 6f  ..Win....::SetFo
09e0: 72 65 67 72 6f 75 6e 64 57 69 6e 64 6f 77 28 20  regroundWindow( 
09f0: 77 6e 64 20 29 3b 0d 0a 0d 0a 09 2f 2f 20 53 70  wnd );.....// Sp
0a00: 65 63 69 61 6c 20 54 68 61 6e 6b 73 20 54 6f 20  ecial Thanks To 
0a10: 6b 61 7a 75 62 6f 6e 20 21 21 20 28 20 74 68 65  kazubon !! ( the
0a20: 20 61 75 74 68 6f 72 20 6f 66 20 54 43 6c 6f 63   author of TCloc
0a30: 6b 20 29 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 6b  k )..}....void k
0a40: 69 57 69 6e 64 6f 77 3a 3a 73 65 74 43 65 6e 74  iWindow::setCent
0a50: 65 72 28 20 48 57 4e 44 20 77 6e 64 2c 20 48 57  er( HWND wnd, HW
0a60: 4e 44 20 72 65 6c 20 29 0d 0a 7b 0d 0a 09 52 45  ND rel )..{...RE
0a70: 43 54 20 72 63 2c 70 72 3b 0d 0a 09 3a 3a 47 65  CT rc,pr;...::Ge
0a80: 74 57 69 6e 64 6f 77 52 65 63 74 28 20 77 6e 64  tWindowRect( wnd
0a90: 2c 20 26 72 63 20 29 3b 0d 0a 0d 0a 09 69 66 28  , &rc );.....if(
0aa0: 20 72 65 6c 20 29 0d 0a 09 09 3a 3a 47 65 74 57   rel )....::GetW
0ab0: 69 6e 64 6f 77 52 65 63 74 28 20 72 65 6c 2c 20  indowRect( rel, 
0ac0: 26 70 72 20 29 3b 0d 0a 09 65 6c 73 65 0d 0a 09  &pr );...else...
0ad0: 09 3a 3a 53 79 73 74 65 6d 50 61 72 61 6d 65 74  .::SystemParamet
0ae0: 65 72 73 49 6e 66 6f 28 20 53 50 49 5f 47 45 54  ersInfo( SPI_GET
0af0: 57 4f 52 4b 41 52 45 41 2c 20 30 2c 20 26 70 72  WORKAREA, 0, &pr
0b00: 2c 20 30 20 29 3b 0d 0a 0d 0a 09 3a 3a 53 65 74  , 0 );.....::Set
0b10: 57 69 6e 64 6f 77 50 6f 73 28 20 77 6e 64 2c 20  WindowPos( wnd, 
0b20: 30 2c 0d 0a 09 09 70 72 2e 6c 65 66 74 20 2b 20  0,....pr.left + 
0b30: 28 20 28 70 72 2e 72 69 67 68 74 2d 70 72 2e 6c  ( (pr.right-pr.l
0b40: 65 66 74 29 2d 28 72 63 2e 72 69 67 68 74 2d 72  eft)-(rc.right-r
0b50: 63 2e 6c 65 66 74 29 20 29 2f 32 2c 0d 0a 09 09  c.left) )/2,....
0b60: 70 72 2e 74 6f 70 20 20 2b 20 28 20 28 70 72 2e  pr.top  + ( (pr.
0b70: 62 6f 74 74 6f 6d 2d 70 72 2e 74 6f 70 29 2d 28  bottom-pr.top)-(
0b80: 72 63 2e 62 6f 74 74 6f 6d 2d 72 63 2e 74 6f 70  rc.bottom-rc.top
0b90: 29 20 29 2f 32 2c 0d 0a 09 09 30 2c 20 30 2c 20  ) )/2,....0, 0, 
0ba0: 53 57 50 5f 4e 4f 53 49 5a 45 7c 53 57 50 5f 4e  SWP_NOSIZE|SWP_N
0bb0: 4f 5a 4f 52 44 45 52 20 29 3b 0d 0a 7d 0d 0a 0d  OZORDER );..}...
0bc0: 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ...//-----------
0bd0: 2d 2d 2d 2d 2d 2d 2d 20 57 69 6e 64 6f 77 83 78  ------- Window.x
0be0: 81 5b 83 58 83 4e 83 89 83 58 82 c6 82 b5 82 c4  .[.X.N...X......
0bf0: 82 cc 8f 88 97 9d 20 2d 2d 2d 2d 2d 2d 2d 2d 2d  ...... ---------
0c00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d  -------------//.
0c10: 0a 0d 0a 0d 0a 6b 69 57 69 6e 64 6f 77 3a 3a 6b  .....kiWindow::k
0c20: 69 57 69 6e 64 6f 77 28 29 0d 0a 7b 0d 0a 09 6d  iWindow()..{...m
0c30: 5f 68 57 6e 64 20 3d 20 4e 55 4c 4c 3b 0d 0a 09  _hWnd = NULL;...
0c40: 6d 5f 68 41 63 63 65 6c 20 3d 20 4e 55 4c 4c 3b  m_hAccel = NULL;
0c50: 0d 0a 09 61 70 70 28 29 2d 3e 73 68 65 6c 6c 49  ...app()->shellI
0c60: 6e 69 74 28 29 3b 0d 0a 7d 0d 0a 0d 0a 6b 69 57  nit();..}....kiW
0c70: 69 6e 64 6f 77 3a 3a 7e 6b 69 57 69 6e 64 6f 77  indow::~kiWindow
0c80: 28 29 0d 0a 7b 0d 0a 09 69 66 28 20 6d 5f 68 57  ()..{...if( m_hW
0c90: 6e 64 20 26 26 20 3a 3a 49 73 57 69 6e 64 6f 77  nd && ::IsWindow
0ca0: 28 20 6d 5f 68 57 6e 64 20 29 20 29 0d 0a 09 7b  ( m_hWnd ) )...{
0cb0: 0d 0a 09 09 3a 3a 53 65 74 57 69 6e 64 6f 77 4c  ....::SetWindowL
0cc0: 6f 6e 67 28 20 6d 5f 68 57 6e 64 2c 20 47 57 4c  ong( m_hWnd, GWL
0cd0: 5f 55 53 45 52 44 41 54 41 2c 20 30 20 29 3b 0d  _USERDATA, 0 );.
0ce0: 0a 09 09 3a 3a 44 65 73 74 72 6f 79 57 69 6e 64  ...::DestroyWind
0cf0: 6f 77 28 20 6d 5f 68 57 6e 64 20 29 3b 0d 0a 09  ow( m_hWnd );...
0d00: 7d 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 6b 69 57  }..}....void kiW
0d10: 69 6e 64 6f 77 3a 3a 6c 6f 61 64 41 63 63 65 6c  indow::loadAccel
0d20: 28 20 55 49 4e 54 20 69 64 20 29 0d 0a 7b 0d 0a  ( UINT id )..{..
0d30: 09 6d 5f 68 41 63 63 65 6c 20 3d 20 3a 3a 4c 6f  .m_hAccel = ::Lo
0d40: 61 64 41 63 63 65 6c 65 72 61 74 6f 72 73 28 20  adAccelerators( 
0d50: 61 70 70 28 29 2d 3e 69 6e 73 74 28 29 2c 20 4d  app()->inst(), M
0d60: 41 4b 45 49 4e 54 52 45 53 4f 55 52 43 45 28 69  AKEINTRESOURCE(i
0d70: 64 29 20 29 3b 0d 0a 7d 0d 0a 0d 0a 0d 0a 2f 2f  d) );..}......//
0d80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0d90: 20 83 58 83 5e 83 93 83 68 83 41 83 8d 83 93 82   .X.^...h.A.....
0da0: cc 57 69 6e 64 6f 77 82 cc 8f 88 97 9d 20 2d 2d  .Window...... --
0db0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0dc0: 2d 2d 2d 2f 2f 0d 0a 0d 0a 2f 2f 20 81 63 96 a2  ---//....// .c..
0dd0: 8a ae 90 ac 81 63 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d  .....c....//----
0de0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0df0: 2d 2d 2d 2d 2d 2d 2d 2d 20 44 69 61 6c 6f 67 20  -------- Dialog 
0e00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0e10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d  -------------//.
0e20: 0a 0d 0a 0d 0a 6b 69 44 69 61 6c 6f 67 3a 3a 6b  .....kiDialog::k
0e30: 69 44 69 61 6c 6f 67 28 20 55 49 4e 54 20 69 64  iDialog( UINT id
0e40: 20 29 0d 0a 7b 0d 0a 09 6d 5f 52 73 72 63 20 3d   )..{...m_Rsrc =
0e50: 20 69 64 3b 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20   id;..}....void 
0e60: 6b 69 44 69 61 6c 6f 67 3a 3a 64 6f 4d 6f 64 61  kiDialog::doModa
0e70: 6c 28 20 48 57 4e 44 20 70 61 72 65 6e 74 20 29  l( HWND parent )
0e80: 0d 0a 7b 0d 0a 09 73 65 74 53 74 61 74 65 28 20  ..{...setState( 
0e90: 74 72 75 65 20 29 3b 0d 0a 09 70 72 65 43 72 65  true );...preCre
0ea0: 61 74 65 28 20 74 68 69 73 20 29 3b 0d 0a 0d 0a  ate( this );....
0eb0: 09 3a 3a 44 69 61 6c 6f 67 42 6f 78 50 61 72 61  .::DialogBoxPara
0ec0: 6d 28 20 61 70 70 28 29 2d 3e 69 6e 73 74 28 29  m( app()->inst()
0ed0: 2c 20 4d 41 4b 45 49 4e 54 52 45 53 4f 55 52 43  , MAKEINTRESOURC
0ee0: 45 28 6d 5f 52 73 72 63 29 2c 0d 0a 09 09 09 09  E(m_Rsrc),......
0ef0: 09 09 70 61 72 65 6e 74 2c 20 63 6f 6d 6d 6f 6e  ..parent, common
0f00: 44 6c 67 2c 20 28 4c 50 41 52 41 4d 29 74 68 69  Dlg, (LPARAM)thi
0f10: 73 20 29 3b 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20  s );..}....void 
0f20: 6b 69 44 69 61 6c 6f 67 3a 3a 63 72 65 61 74 65  kiDialog::create
0f30: 4d 6f 64 65 6c 65 73 73 28 20 48 57 4e 44 20 70  Modeless( HWND p
0f40: 61 72 65 6e 74 20 29 0d 0a 7b 0d 0a 09 73 65 74  arent )..{...set
0f50: 53 74 61 74 65 28 20 66 61 6c 73 65 20 29 3b 0d  State( false );.
0f60: 0a 09 70 72 65 43 72 65 61 74 65 28 20 74 68 69  ..preCreate( thi
0f70: 73 20 29 3b 0d 0a 0d 0a 09 3a 3a 43 72 65 61 74  s );.....::Creat
0f80: 65 44 69 61 6c 6f 67 50 61 72 61 6d 28 20 61 70  eDialogParam( ap
0f90: 70 28 29 2d 3e 69 6e 73 74 28 29 2c 20 4d 41 4b  p()->inst(), MAK
0fa0: 45 49 4e 54 52 45 53 4f 55 52 43 45 28 6d 5f 52  EINTRESOURCE(m_R
0fb0: 73 72 63 29 2c 0d 0a 09 09 09 09 09 09 70 61 72  src),........par
0fc0: 65 6e 74 2c 20 63 6f 6d 6d 6f 6e 44 6c 67 2c 20  ent, commonDlg, 
0fd0: 28 4c 50 41 52 41 4d 29 74 68 69 73 20 29 3b 0d  (LPARAM)this );.
0fe0: 0a 0d 0a 09 3a 3a 53 68 6f 77 57 69 6e 64 6f 77  ....::ShowWindow
0ff0: 28 20 68 77 6e 64 28 29 2c 20 53 57 5f 53 48 4f  ( hwnd(), SW_SHO
1000: 57 20 29 3b 0d 0a 09 3a 3a 55 70 64 61 74 65 57  W );...::UpdateW
1010: 69 6e 64 6f 77 28 20 68 77 6e 64 28 29 20 29 3b  indow( hwnd() );
1020: 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 6b 69 44 69  ..}....void kiDi
1030: 61 6c 6f 67 3a 3a 65 6e 64 28 20 55 49 4e 54 20  alog::end( UINT 
1040: 65 6e 64 63 6f 64 65 20 29 0d 0a 7b 0d 0a 09 73  endcode )..{...s
1050: 65 74 45 6e 64 43 6f 64 65 28 20 65 6e 64 63 6f  etEndCode( endco
1060: 64 65 20 29 3b 0d 0a 0d 0a 09 69 66 28 20 69 73  de );.....if( is
1070: 4d 6f 64 61 6c 28 29 20 29 0d 0a 09 09 3a 3a 45  Modal() )....::E
1080: 6e 64 44 69 61 6c 6f 67 28 20 68 77 6e 64 28 29  ndDialog( hwnd()
1090: 2c 20 67 65 74 45 6e 64 43 6f 64 65 28 29 20 29  , getEndCode() )
10a0: 3b 0d 0a 09 65 6c 73 65 0d 0a 09 09 3a 3a 44 65  ;...else....::De
10b0: 73 74 72 6f 79 57 69 6e 64 6f 77 28 20 68 77 6e  stroyWindow( hwn
10c0: 64 28 29 20 29 3b 0d 0a 7d 0d 0a 0d 0a 42 4f 4f  d() );..}....BOO
10d0: 4c 20 6b 69 44 69 61 6c 6f 67 3a 3a 63 6f 6d 6d  L kiDialog::comm
10e0: 6f 6e 44 6c 67 28 20 48 57 4e 44 20 64 6c 67 2c  onDlg( HWND dlg,
10f0: 20 55 49 4e 54 20 6d 73 67 2c 20 57 50 41 52 41   UINT msg, WPARA
1100: 4d 20 77 70 2c 20 4c 50 41 52 41 4d 20 6c 70 20  M wp, LPARAM lp 
1110: 29 0d 0a 7b 0d 0a 09 2f 2f 20 6b 69 44 69 61 6c  )..{...// kiDial
1120: 6f 67 20 83 43 83 93 83 5e 81 5b 83 74 83 46 83  og .C...^.[.t.F.
1130: 43 83 58 82 d6 82 cc 83 7c 83 43 83 93 83 5e 82  C.X.....|.C...^.
1140: f0 8e e6 93 be 0d 0a 09 6b 69 44 69 61 6c 6f 67  ........kiDialog
1150: 2a 20 70 74 72 20 3d 20 28 6b 69 44 69 61 6c 6f  * ptr = (kiDialo
1160: 67 2a 29 3a 3a 47 65 74 57 69 6e 64 6f 77 4c 6f  g*)::GetWindowLo
1170: 6e 67 28 20 64 6c 67 2c 20 47 57 4c 5f 55 53 45  ng( dlg, GWL_USE
1180: 52 44 41 54 41 20 29 3b 0d 0a 09 69 66 28 20 21  RDATA );...if( !
1190: 70 74 72 20 29 20 72 65 74 75 72 6e 20 46 41 4c  ptr ) return FAL
11a0: 53 45 3b 0d 0a 0d 0a 09 2f 2f 20 57 4d 5f 49 4e  SE;.....// WM_IN
11b0: 49 54 44 49 41 4c 4f 47 20 82 c8 82 e7 20 6f 6e  ITDIALOG .... on
11c0: 49 6e 69 74 20 82 f0 8c c4 82 d4 0d 0a 09 69 66  Init .........if
11d0: 28 20 6d 73 67 20 3d 3d 20 57 4d 5f 49 4e 49 54  ( msg == WM_INIT
11e0: 44 49 41 4c 4f 47 20 29 0d 0a 09 09 72 65 74 75  DIALOG )....retu
11f0: 72 6e 20 70 74 72 2d 3e 6f 6e 49 6e 69 74 28 29  rn ptr->onInit()
1200: 3b 0d 0a 0d 0a 09 2f 2f 20 4f 4b 20 2f 20 43 61  ;.....// OK / Ca
1210: 6e 63 65 6c 20 8f 88 97 9d 0d 0a 09 65 6c 73 65  ncel .......else
1220: 20 69 66 28 20 6d 73 67 20 3d 3d 20 57 4d 5f 43   if( msg == WM_C
1230: 4f 4d 4d 41 4e 44 20 29 0d 0a 09 7b 0d 0a 09 09  OMMAND )...{....
1240: 73 77 69 74 63 68 28 20 4c 4f 57 4f 52 44 28 77  switch( LOWORD(w
1250: 70 29 20 29 0d 0a 09 09 7b 0d 0a 09 09 63 61 73  p) )....{....cas
1260: 65 20 49 44 4f 4b 3a 0d 0a 09 09 09 69 66 28 20  e IDOK:.....if( 
1270: 70 74 72 2d 3e 6f 6e 4f 4b 28 29 20 29 0d 0a 09  ptr->onOK() )...
1280: 09 09 09 70 74 72 2d 3e 65 6e 64 28 20 49 44 4f  ...ptr->end( IDO
1290: 4b 20 29 3b 0d 0a 09 09 09 72 65 74 75 72 6e 20  K );.....return 
12a0: 54 52 55 45 3b 0d 0a 09 09 63 61 73 65 20 49 44  TRUE;....case ID
12b0: 43 41 4e 43 45 4c 3a 0d 0a 09 09 09 69 66 28 20  CANCEL:.....if( 
12c0: 70 74 72 2d 3e 6f 6e 43 61 6e 63 65 6c 28 29 20  ptr->onCancel() 
12d0: 29 0d 0a 09 09 09 09 70 74 72 2d 3e 65 6e 64 28  )......ptr->end(
12e0: 20 49 44 43 41 4e 43 45 4c 20 29 3b 0d 0a 09 09   IDCANCEL );....
12f0: 09 72 65 74 75 72 6e 20 54 52 55 45 3b 0d 0a 09  .return TRUE;...
1300: 09 7d 0d 0a 09 7d 0d 0a 0d 0a 09 2f 2f 20 95 81  .}...}.....// ..
1310: 92 ca 82 cc 83 81 83 62 83 5a 81 5b 83 57 0d 0a  .......b.Z.[.W..
1320: 09 42 4f 4f 4c 20 61 6e 73 20 3d 20 70 74 72 2d  .BOOL ans = ptr-
1330: 3e 70 72 6f 63 28 20 6d 73 67 2c 20 77 70 2c 20  >proc( msg, wp, 
1340: 6c 70 20 29 3b 0d 0a 0d 0a 09 2f 2f 20 57 4d 5f  lp );.....// WM_
1350: 44 45 53 54 4f 52 59 20 82 c8 82 e7 83 45 83 43  DESTORY .....E.C
1360: 83 93 83 68 83 45 83 6e 83 93 83 68 83 8b 90 d8  ...h.E.n...h....
1370: 82 e8 97 a3 82 b5 0d 0a 09 69 66 28 20 6d 73 67  .........if( msg
1380: 20 3d 3d 20 57 4d 5f 44 45 53 54 52 4f 59 20 29   == WM_DESTROY )
1390: 0d 0a 09 09 70 74 72 2d 3e 64 65 74 61 63 68 48  ....ptr->detachH
13a0: 77 6e 64 28 29 3b 0d 0a 0d 0a 09 72 65 74 75 72  wnd();.....retur
13b0: 6e 20 61 6e 73 3b 0d 0a 7d 0d 0a 0d 0a 0d 0a 2f  n ans;..}....../
13c0: 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /---------------
13d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 50 72 6f 70 65 72  --------- Proper
13e0: 74 79 53 68 65 65 74 20 2d 2d 2d 2d 2d 2d 2d 2d  tySheet --------
13f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1400: 2d 2f 2f 0d 0a 0d 0a 0d 0a 6b 69 50 72 6f 70 53  -//......kiPropS
1410: 68 65 65 74 2a 20 6b 69 50 72 6f 70 53 68 65 65  heet* kiPropShee
1420: 74 3a 3a 73 74 5f 43 75 72 49 6e 69 74 50 53 20  t::st_CurInitPS 
1430: 3d 20 4e 55 4c 4c 3b 0d 0a 0d 0a 6b 69 50 72 6f  = NULL;....kiPro
1440: 70 53 68 65 65 74 3a 3a 6b 69 50 72 6f 70 53 68  pSheet::kiPropSh
1450: 65 65 74 28 29 20 3a 20 6b 69 44 69 61 6c 6f 67  eet() : kiDialog
1460: 28 20 30 20 29 0d 0a 7b 0d 0a 09 6b 69 5f 6d 65  ( 0 )..{...ki_me
1470: 6d 7a 65 72 6f 28 20 26 6d 5f 48 65 61 64 65 72  mzero( &m_Header
1480: 2c 20 73 69 7a 65 6f 66 28 6d 5f 48 65 61 64 65  , sizeof(m_Heade
1490: 72 29 20 29 3b 0d 0a 09 6d 5f 48 65 61 64 65 72  r) );...m_Header
14a0: 2e 64 77 53 69 7a 65 20 20 20 20 20 20 3d 20 73  .dwSize      = s
14b0: 69 7a 65 6f 66 28 6d 5f 48 65 61 64 65 72 29 3b  izeof(m_Header);
14c0: 0d 0a 09 6d 5f 48 65 61 64 65 72 2e 64 77 46 6c  ...m_Header.dwFl
14d0: 61 67 73 20 20 20 20 20 7c 3d 50 53 48 5f 55 53  ags     |=PSH_US
14e0: 45 43 41 4c 4c 42 41 43 4b 20 7c 20 50 53 48 5f  ECALLBACK | PSH_
14f0: 50 52 4f 50 53 48 45 45 54 50 41 47 45 3b 0d 0a  PROPSHEETPAGE;..
1500: 09 6d 5f 48 65 61 64 65 72 2e 70 66 6e 43 61 6c  .m_Header.pfnCal
1510: 6c 62 61 63 6b 20 3d 20 6d 61 69 6e 5f 69 6e 69  lback = main_ini
1520: 74 50 72 6f 63 3b 0d 0a 09 6d 5f 48 65 61 64 65  tProc;...m_Heade
1530: 72 2e 68 49 6e 73 74 61 6e 63 65 20 20 20 3d 20  r.hInstance   = 
1540: 61 70 70 28 29 2d 3e 69 6e 73 74 28 29 3b 0d 0a  app()->inst();..
1550: 09 6d 5f 48 65 61 64 65 72 2e 6e 53 74 61 72 74  .m_Header.nStart
1560: 50 61 67 65 20 20 3d 20 30 3b 0d 0a 7d 0d 0a 0d  Page  = 0;..}...
1570: 0a 76 6f 69 64 20 6b 69 50 72 6f 70 53 68 65 65  .void kiPropShee
1580: 74 3a 3a 62 65 67 69 6e 28 29 0d 0a 7b 0d 0a 09  t::begin()..{...
1590: 69 6e 74 20 6c 20 3d 20 6d 5f 50 61 67 65 73 2e  int l = m_Pages.
15a0: 6c 65 6e 28 29 3b 0d 0a 09 50 52 4f 50 53 48 45  len();...PROPSHE
15b0: 45 54 50 41 47 45 2a 20 70 70 73 70 20 3d 20 6e  ETPAGE* ppsp = n
15c0: 65 77 20 50 52 4f 50 53 48 45 45 54 50 41 47 45  ew PROPSHEETPAGE
15d0: 5b 20 6c 20 5d 3b 0d 0a 09 6b 69 5f 6d 65 6d 7a  [ l ];...ki_memz
15e0: 65 72 6f 28 20 70 70 73 70 2c 20 73 69 7a 65 6f  ero( ppsp, sizeo
15f0: 66 28 50 52 4f 50 53 48 45 45 54 50 41 47 45 29  f(PROPSHEETPAGE)
1600: 2a 6c 20 29 3b 0d 0a 0d 0a 09 66 6f 72 28 20 69  *l );.....for( i
1610: 6e 74 20 69 3d 30 3b 20 69 3c 6c 3b 20 69 2b 2b  nt i=0; i<l; i++
1620: 20 29 0d 0a 09 7b 0d 0a 09 09 70 70 73 70 5b 69   )...{....ppsp[i
1630: 5d 2e 64 77 53 69 7a 65 20 20 20 20 20 20 3d 20  ].dwSize      = 
1640: 73 69 7a 65 6f 66 28 20 50 52 4f 50 53 48 45 45  sizeof( PROPSHEE
1650: 54 50 41 47 45 20 29 3b 0d 0a 09 09 70 70 73 70  TPAGE );....ppsp
1660: 5b 69 5d 2e 68 49 6e 73 74 61 6e 63 65 20 20 20  [i].hInstance   
1670: 3d 20 61 70 70 28 29 2d 3e 69 6e 73 74 28 29 3b  = app()->inst();
1680: 0d 0a 09 09 70 70 73 70 5b 69 5d 2e 70 66 6e 43  ....ppsp[i].pfnC
1690: 61 6c 6c 62 61 63 6b 20 3d 20 70 61 67 65 5f 69  allback = page_i
16a0: 6e 69 74 50 72 6f 63 3b 0d 0a 09 09 70 70 73 70  nitProc;....ppsp
16b0: 5b 69 5d 2e 70 66 6e 44 6c 67 50 72 6f 63 20 20  [i].pfnDlgProc  
16c0: 3d 20 70 61 67 65 5f 63 6d 6d 6e 50 72 6f 63 3b  = page_cmmnProc;
16d0: 0d 0a 09 09 70 70 73 70 5b 69 5d 2e 64 77 46 6c  ....ppsp[i].dwFl
16e0: 61 67 73 20 20 20 20 20 3d 20 50 53 50 5f 55 53  ags     = PSP_US
16f0: 45 43 41 4c 4c 42 41 43 4b 20 7c 20 50 53 50 5f  ECALLBACK | PSP_
1700: 48 41 53 48 45 4c 50 3b 0d 0a 09 09 6d 5f 50 61  HASHELP;....m_Pa
1710: 67 65 73 5b 69 5d 2d 3e 73 65 74 49 6e 66 6f 28  ges[i]->setInfo(
1720: 20 70 70 73 70 2b 69 20 29 3b 0d 0a 09 7d 0d 0a   ppsp+i );...}..
1730: 0d 0a 09 6d 5f 48 65 61 64 65 72 2e 70 70 73 70  ...m_Header.ppsp
1740: 20 20 20 3d 20 70 70 73 70 3b 0d 0a 09 6d 5f 48     = ppsp;...m_H
1750: 65 61 64 65 72 2e 6e 50 61 67 65 73 20 3d 20 6c  eader.nPages = l
1760: 3b 0d 0a 0d 0a 09 73 74 5f 43 75 72 49 6e 69 74  ;.....st_CurInit
1770: 50 53 20 3d 20 74 68 69 73 3b 0d 0a 09 50 72 6f  PS = this;...Pro
1780: 70 65 72 74 79 53 68 65 65 74 28 20 26 6d 5f 48  pertySheet( &m_H
1790: 65 61 64 65 72 20 29 3b 0d 0a 09 64 65 6c 65 74  eader );...delet
17a0: 65 20 5b 5d 20 70 70 73 70 3b 0d 0a 7d 0d 0a 0d  e [] ppsp;..}...
17b0: 0a 76 6f 69 64 20 6b 69 50 72 6f 70 53 68 65 65  .void kiPropShee
17c0: 74 3a 3a 64 6f 4d 6f 64 61 6c 28 20 48 57 4e 44  t::doModal( HWND
17d0: 20 70 61 72 65 6e 74 20 29 0d 0a 7b 0d 0a 09 6d   parent )..{...m
17e0: 5f 48 65 61 64 65 72 2e 64 77 46 6c 61 67 73 20  _Header.dwFlags 
17f0: 26 3d 20 28 7e 50 53 48 5f 4d 4f 44 45 4c 45 53  &= (~PSH_MODELES
1800: 53 29 3b 0d 0a 09 73 65 74 53 74 61 74 65 28 20  S);...setState( 
1810: 74 72 75 65 20 29 3b 0d 0a 09 62 65 67 69 6e 28  true );...begin(
1820: 29 3b 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 6b 69  );..}....void ki
1830: 50 72 6f 70 53 68 65 65 74 3a 3a 63 72 65 61 74  PropSheet::creat
1840: 65 4d 6f 64 65 6c 65 73 73 28 20 48 57 4e 44 20  eModeless( HWND 
1850: 70 61 72 65 6e 74 20 29 0d 0a 7b 0d 0a 09 6d 5f  parent )..{...m_
1860: 48 65 61 64 65 72 2e 64 77 46 6c 61 67 73 20 7c  Header.dwFlags |
1870: 3d 20 50 53 48 5f 4d 4f 44 45 4c 45 53 53 3b 0d  = PSH_MODELESS;.
1880: 0a 09 73 65 74 53 74 61 74 65 28 20 66 61 6c 73  ..setState( fals
1890: 65 20 29 3b 0d 0a 09 62 65 67 69 6e 28 29 3b 0d  e );...begin();.
18a0: 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 6b 69 50 72 6f  .}....void kiPro
18b0: 70 53 68 65 65 74 3a 3a 65 6e 64 28 20 55 49 4e  pSheet::end( UIN
18c0: 54 20 65 6e 64 63 6f 64 65 20 29 0d 0a 7b 0d 0a  T endcode )..{..
18d0: 09 2f 2f 20 8f 49 97 b9 83 52 81 5b 83 68 83 5a  .// .I...R.[.h.Z
18e0: 83 62 83 67 0d 0a 09 73 65 74 45 6e 64 43 6f 64  .b.g...setEndCod
18f0: 65 28 20 65 6e 64 63 6f 64 65 20 29 3b 0d 0a 0d  e( endcode );...
1900: 0a 09 2f 2f 20 83 54 83 75 83 4e 83 89 83 58 89  ..// .T.u.N...X.
1910: bb 89 f0 8f 9c 0d 0a 09 3a 3a 53 65 74 57 69 6e  ........::SetWin
1920: 64 6f 77 4c 6f 6e 67 28 20 68 77 6e 64 28 29 2c  dowLong( hwnd(),
1930: 20 47 57 4c 5f 57 4e 44 50 52 4f 43 2c 20 28 4c   GWL_WNDPROC, (L
1940: 4f 4e 47 29 6d 5f 44 65 66 50 72 6f 63 20 29 3b  ONG)m_DefProc );
1950: 0d 0a 0d 0a 09 2f 2f 20 8f 49 97 b9 0d 0a 09 69  .....// .I.....i
1960: 66 28 20 69 73 4d 6f 64 61 6c 28 29 20 29 20 2f  f( isModal() ) /
1970: 2f 20 83 54 83 75 83 4e 83 89 83 58 89 bb 89 f0  / .T.u.N...X....
1980: 8f 9c 82 b5 82 c4 82 e9 82 cc 82 c5 81 41 8d c4  .............A..
1990: 93 78 20 65 6e 64 20 82 aa 8c c4 82 ce 82 ea 82  .x end .........
19a0: e9 82 b1 82 c6 82 cd 82 c8 82 a2 82 cd 82 b8 81  ................
19b0: 42 0d 0a 09 09 3a 3a 50 6f 73 74 4d 65 73 73 61  B....::PostMessa
19c0: 67 65 28 20 68 77 6e 64 28 29 2c 20 57 4d 5f 43  ge( hwnd(), WM_C
19d0: 4f 4d 4d 41 4e 44 2c 20 49 44 43 41 4e 43 45 4c  OMMAND, IDCANCEL
19e0: 2c 20 30 20 29 3b 0d 0a 09 65 6c 73 65 0d 0a 09  , 0 );...else...
19f0: 09 3a 3a 44 65 73 74 72 6f 79 57 69 6e 64 6f 77  .::DestroyWindow
1a00: 28 20 68 77 6e 64 28 29 20 29 3b 0d 0a 0d 0a 09  ( hwnd() );.....
1a10: 2f 2f 20 57 4d 5f 44 45 53 54 52 4f 59 8e 9e 91  // WM_DESTROY...
1a20: 8a 93 96 82 cc 93 ae 8d ec 0d 0a 09 64 65 74 61  ............deta
1a30: 63 68 48 77 6e 64 28 29 3b 0d 0a 7d 0d 0a 0d 0a  chHwnd();..}....
1a40: 4c 52 45 53 55 4c 54 20 43 41 4c 4c 42 41 43 4b  LRESULT CALLBACK
1a50: 20 6b 69 50 72 6f 70 53 68 65 65 74 3a 3a 6d 61   kiPropSheet::ma
1a60: 69 6e 5f 63 6d 6d 6e 50 72 6f 63 28 20 48 57 4e  in_cmmnProc( HWN
1a70: 44 20 64 6c 67 2c 20 55 49 4e 54 20 6d 73 67 2c  D dlg, UINT msg,
1a80: 20 57 50 41 52 41 4d 20 77 70 2c 20 4c 50 41 52   WPARAM wp, LPAR
1a90: 41 4d 20 6c 70 20 29 0d 0a 7b 0d 0a 09 6b 69 50  AM lp )..{...kiP
1aa0: 72 6f 70 53 68 65 65 74 2a 20 70 74 72 20 3d 20  ropSheet* ptr = 
1ab0: 28 6b 69 50 72 6f 70 53 68 65 65 74 2a 29 3a 3a  (kiPropSheet*)::
1ac0: 47 65 74 57 69 6e 64 6f 77 4c 6f 6e 67 28 20 64  GetWindowLong( d
1ad0: 6c 67 2c 20 47 57 4c 5f 55 53 45 52 44 41 54 41  lg, GWL_USERDATA
1ae0: 20 29 3b 0d 0a 09 69 66 28 20 21 70 74 72 20 29   );...if( !ptr )
1af0: 0d 0a 09 09 72 65 74 75 72 6e 20 30 3b 0d 0a 0d  ....return 0;...
1b00: 0a 09 2f 2f 20 82 dc 82 b8 83 66 83 74 83 48 83  ..// .....f.t.H.
1b10: 8b 83 67 82 cc 8f 88 97 9d 0d 0a 09 4c 52 45 53  ..g.........LRES
1b20: 55 4c 54 20 72 65 73 75 6c 74 20 3d 20 3a 3a 43  ULT result = ::C
1b30: 61 6c 6c 57 69 6e 64 6f 77 50 72 6f 63 28 20 70  allWindowProc( p
1b40: 74 72 2d 3e 6d 5f 44 65 66 50 72 6f 63 2c 20 64  tr->m_DefProc, d
1b50: 6c 67 2c 20 6d 73 67 2c 20 77 70 2c 20 6c 70 20  lg, msg, wp, lp 
1b60: 29 3b 0d 0a 0d 0a 09 2f 2f 20 81 7e 83 7b 83 5e  );.....// .~.{.^
1b70: 83 93 82 cd 83 4c 83 83 83 93 83 5a 83 8b 88 b5  .....L.....Z....
1b80: 82 a2 0d 0a 09 69 66 28 20 6d 73 67 3d 3d 57 4d  .....if( msg==WM
1b90: 5f 53 59 53 43 4f 4d 4d 41 4e 44 20 26 26 20 77  _SYSCOMMAND && w
1ba0: 70 3d 3d 53 43 5f 43 4c 4f 53 45 20 29 0d 0a 09  p==SC_CLOSE )...
1bb0: 09 3a 3a 50 6f 73 74 4d 65 73 73 61 67 65 28 20  .::PostMessage( 
1bc0: 64 6c 67 2c 20 57 4d 5f 43 4f 4d 4d 41 4e 44 2c  dlg, WM_COMMAND,
1bd0: 20 49 44 43 41 4e 43 45 4c 2c 20 30 20 29 3b 0d   IDCANCEL, 0 );.
1be0: 0a 0d 0a 09 2f 2f 20 83 52 83 7d 83 93 83 68 8f  ....// .R.}...h.
1bf0: 88 97 9d 0d 0a 09 65 6c 73 65 20 69 66 28 20 6d  ......else if( m
1c00: 73 67 3d 3d 57 4d 5f 43 4f 4d 4d 41 4e 44 20 29  sg==WM_COMMAND )
1c10: 0d 0a 09 7b 0d 0a 09 09 73 77 69 74 63 68 28 20  ...{....switch( 
1c20: 4c 4f 57 4f 52 44 28 77 70 29 20 29 0d 0a 09 09  LOWORD(wp) )....
1c30: 7b 0d 0a 09 09 63 61 73 65 20 49 44 4f 4b 3a 0d  {....case IDOK:.
1c40: 0a 09 09 09 69 66 28 20 70 74 72 2d 3e 6f 6e 4f  ....if( ptr->onO
1c50: 4b 28 29 20 29 0d 0a 09 09 09 09 70 74 72 2d 3e  K() )......ptr->
1c60: 65 6e 64 28 20 49 44 4f 4b 20 29 3b 0d 0a 09 09  end( IDOK );....
1c70: 09 72 65 74 75 72 6e 20 54 52 55 45 3b 0d 0a 09  .return TRUE;...
1c80: 09 63 61 73 65 20 49 44 43 41 4e 43 45 4c 3a 0d  .case IDCANCEL:.
1c90: 0a 09 09 09 69 66 28 20 70 74 72 2d 3e 6f 6e 43  ....if( ptr->onC
1ca0: 61 6e 63 65 6c 28 29 20 29 0d 0a 09 09 09 09 70  ancel() )......p
1cb0: 74 72 2d 3e 65 6e 64 28 20 49 44 43 41 4e 43 45  tr->end( IDCANCE
1cc0: 4c 20 29 3b 0d 0a 09 09 09 72 65 74 75 72 6e 20  L );.....return 
1cd0: 54 52 55 45 3b 0d 0a 09 09 63 61 73 65 20 49 44  TRUE;....case ID
1ce0: 41 50 50 4c 59 3a 0d 0a 09 09 09 70 74 72 2d 3e  APPLY:.....ptr->
1cf0: 6f 6e 41 70 70 6c 79 28 29 3b 0d 0a 09 09 09 62  onApply();.....b
1d00: 72 65 61 6b 3b 0d 0a 09 09 63 61 73 65 20 49 44  reak;....case ID
1d10: 5f 4b 49 50 53 5f 48 45 4c 50 3a 0d 0a 09 09 09  _KIPS_HELP:.....
1d20: 70 74 72 2d 3e 6f 6e 48 65 6c 70 28 29 3b 0d 0a  ptr->onHelp();..
1d30: 09 09 09 62 72 65 61 6b 3b 0d 0a 09 09 64 65 66  ...break;....def
1d40: 61 75 6c 74 3a 0d 0a 09 09 09 70 74 72 2d 3e 6f  ault:.....ptr->o
1d50: 6e 43 6f 6d 6d 61 6e 64 28 20 4c 4f 57 4f 52 44  nCommand( LOWORD
1d60: 28 77 70 29 20 29 3b 0d 0a 09 09 09 62 72 65 61  (wp) );.....brea
1d70: 6b 3b 0d 0a 09 09 7d 0d 0a 09 7d 0d 0a 0d 0a 09  k;....}...}.....
1d80: 2f 2f 20 83 68 83 89 83 62 83 4f 81 95 83 68 83  // .h...b.O...h.
1d90: 8d 83 62 83 76 0d 0a 09 65 6c 73 65 20 69 66 28  ..b.v...else if(
1da0: 20 6d 73 67 3d 3d 57 4d 5f 44 52 4f 50 46 49 4c   msg==WM_DROPFIL
1db0: 45 53 20 29 0d 0a 09 09 70 74 72 2d 3e 6f 6e 44  ES )....ptr->onD
1dc0: 72 6f 70 28 20 28 48 44 52 4f 50 29 77 70 20 29  rop( (HDROP)wp )
1dd0: 3b 0d 0a 0d 0a 09 72 65 74 75 72 6e 20 72 65 73  ;.....return res
1de0: 75 6c 74 3b 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63  ult;..}....struc
1df0: 74 20 44 4c 47 54 45 4d 50 4c 41 54 45 45 58 0d  t DLGTEMPLATEEX.
1e00: 0a 7b 0d 0a 20 20 20 20 57 4f 52 44 20 64 6c 67  .{..    WORD dlg
1e10: 56 65 72 3b 0d 0a 20 20 20 20 57 4f 52 44 20 73  Ver;..    WORD s
1e20: 69 67 6e 61 74 75 72 65 3b 0d 0a 20 20 20 20 44  ignature;..    D
1e30: 57 4f 52 44 20 68 65 6c 70 49 44 3b 0d 0a 20 20  WORD helpID;..  
1e40: 20 20 44 57 4f 52 44 20 65 78 53 74 79 6c 65 3b    DWORD exStyle;
1e50: 0d 0a 20 20 20 20 44 57 4f 52 44 20 73 74 79 6c  ..    DWORD styl
1e60: 65 3b 0d 0a 20 20 20 20 57 4f 52 44 20 63 44 6c  e;..    WORD cDl
1e70: 67 49 74 65 6d 73 3b 0d 0a 20 20 20 20 73 68 6f  gItems;..    sho
1e80: 72 74 20 78 3b 0d 0a 20 20 20 20 73 68 6f 72 74  rt x;..    short
1e90: 20 79 3b 0d 0a 20 20 20 20 73 68 6f 72 74 20 63   y;..    short c
1ea0: 78 3b 0d 0a 20 20 20 20 73 68 6f 72 74 20 63 79  x;..    short cy
1eb0: 3b 0d 0a 7d 3b 0d 0a 0d 0a 69 6e 74 20 43 41 4c  ;..};....int CAL
1ec0: 4c 42 41 43 4b 20 6b 69 50 72 6f 70 53 68 65 65  LBACK kiPropShee
1ed0: 74 3a 3a 6d 61 69 6e 5f 69 6e 69 74 50 72 6f 63  t::main_initProc
1ee0: 28 20 48 57 4e 44 20 64 6c 67 2c 20 55 49 4e 54  ( HWND dlg, UINT
1ef0: 20 6d 73 67 2c 20 4c 50 41 52 41 4d 20 6c 70 20   msg, LPARAM lp 
1f00: 29 0d 0a 7b 0d 0a 09 69 66 28 20 6d 73 67 20 3d  )..{...if( msg =
1f10: 3d 20 50 53 43 42 5f 50 52 45 43 52 45 41 54 45  = PSCB_PRECREATE
1f20: 20 29 0d 0a 09 7b 0d 0a 09 09 2f 2f 20 83 58 83   )...{....// .X.
1f30: 5e 83 43 83 8b 82 f0 8e 77 82 b7 44 57 4f 52 44  ^.C.....w..DWORD
1f40: 82 cc 83 41 83 68 83 8c 83 58 82 f0 8e e6 93 be  ...A.h...X......
1f50: 0d 0a 09 09 44 57 4f 52 44 2a 20 70 73 74 20 3d  ....DWORD* pst =
1f60: 20 28 20 30 78 66 66 66 66 3d 3d 28 28 44 4c 47   ( 0xffff==((DLG
1f70: 54 45 4d 50 4c 41 54 45 45 58 2a 29 6c 70 29 2d  TEMPLATEEX*)lp)-
1f80: 3e 73 69 67 6e 61 74 75 72 65 20 29 20 3f 20 0d  >signature ) ? .
1f90: 0a 09 09 09 09 09 09 26 28 28 28 44 4c 47 54 45  .......&(((DLGTE
1fa0: 4d 50 4c 41 54 45 45 58 2a 29 6c 70 29 2d 3e 73  MPLATEEX*)lp)->s
1fb0: 74 79 6c 65 29 20 3a 20 26 28 28 28 44 4c 47 54  tyle) : &(((DLGT
1fc0: 45 4d 50 4c 41 54 45 2a 29 6c 70 29 2d 3e 73 74  EMPLATE*)lp)->st
1fd0: 79 6c 65 29 3b 0d 0a 09 09 2f 2f 20 83 77 83 8b  yle);....// .w..
1fe0: 83 76 83 7b 83 5e 83 93 82 f0 8f c1 82 b5 82 c4  .v.{.^..........
1ff0: 8d c5 8f ac 89 bb 83 7b 83 5e 83 93 82 f0 95 74  .......{.^.....t
2000: 82 af 82 e9 0d 0a 09 09 28 2a 70 73 74 29 20 26  ........(*pst) &
2010: 3d 20 7e 44 53 5f 43 4f 4e 54 45 58 54 48 45 4c  = ~DS_CONTEXTHEL
2020: 50 3b 0d 0a 09 09 28 2a 70 73 74 29 20 7c 3d 20  P;....(*pst) |= 
2030: 20 57 53 5f 4d 49 4e 49 4d 49 5a 45 42 4f 58 3b   WS_MINIMIZEBOX;
2040: 0d 0a 0d 0a 09 09 70 72 65 43 72 65 61 74 65 28  ......preCreate(
2050: 20 73 74 5f 43 75 72 49 6e 69 74 50 53 20 29 3b   st_CurInitPS );
2060: 0d 0a 20 20 20 20 7d 0d 0a 09 65 6c 73 65 20 69  ..    }...else i
2070: 66 28 20 6d 73 67 20 3d 3d 20 50 53 43 42 5f 49  f( msg == PSCB_I
2080: 4e 49 54 49 41 4c 49 5a 45 44 20 29 0d 0a 09 7b  NITIALIZED )...{
2090: 0d 0a 09 09 2f 2f 20 89 bd 8c cc 82 a9 8f 6f 97  ....// .......o.
20a0: 88 82 c4 82 b5 82 dc 82 a4 97 5d 8c 76 82 c8 83  ..........].v...
20b0: 81 83 6a 83 85 81 5b 82 f0 8d ed 8f 9c 0d 0a 09  ..j...[.........
20c0: 09 48 4d 45 4e 55 20 73 79 73 6d 20 3d 20 3a 3a  .HMENU sysm = ::
20d0: 47 65 74 53 79 73 74 65 6d 4d 65 6e 75 28 20 64  GetSystemMenu( d
20e0: 6c 67 2c 20 46 41 4c 53 45 20 29 3b 0d 0a 09 09  lg, FALSE );....
20f0: 3a 3a 44 65 6c 65 74 65 4d 65 6e 75 28 20 73 79  ::DeleteMenu( sy
2100: 73 6d 2c 20 53 43 5f 53 49 5a 45 2c 20 4d 46 5f  sm, SC_SIZE, MF_
2110: 42 59 43 4f 4d 4d 41 4e 44 20 29 3b 0d 0a 09 09  BYCOMMAND );....
2120: 3a 3a 44 65 6c 65 74 65 4d 65 6e 75 28 20 73 79  ::DeleteMenu( sy
2130: 73 6d 2c 20 53 43 5f 4d 41 58 49 4d 49 5a 45 2c  sm, SC_MAXIMIZE,
2140: 20 4d 46 5f 42 59 43 4f 4d 4d 41 4e 44 20 29 3b   MF_BYCOMMAND );
2150: 0d 0a 0d 0a 09 09 2f 2f 20 8b 4e 93 ae 8e 9e 82  ......// .N.....
2160: cd 83 45 83 43 83 93 83 68 83 45 82 f0 95 4b 82  ..E.C...h.E...K.
2170: b8 91 4f 96 ca 82 d6 0d 0a 09 09 73 65 74 46 72  ..O........setFr
2180: 6f 6e 74 28 20 64 6c 67 20 29 3b 0d 0a 0d 0a 09  ont( dlg );.....
2190: 09 2f 2f 83 54 83 75 83 4e 83 89 83 58 89 bb 82  .//.T.u.N...X...
21a0: b7 82 e9 0d 0a 09 09 73 74 5f 43 75 72 49 6e 69  .......st_CurIni
21b0: 74 50 53 2d 3e 6d 5f 44 65 66 50 72 6f 63 20 3d  tPS->m_DefProc =
21c0: 20 28 57 4e 44 50 52 4f 43 29 3a 3a 53 65 74 57   (WNDPROC)::SetW
21d0: 69 6e 64 6f 77 4c 6f 6e 67 28 20 64 6c 67 2c 20  indowLong( dlg, 
21e0: 47 57 4c 5f 57 4e 44 50 52 4f 43 2c 20 28 4c 4f  GWL_WNDPROC, (LO
21f0: 4e 47 29 6d 61 69 6e 5f 63 6d 6d 6e 50 72 6f 63  NG)main_cmmnProc
2200: 20 29 3b 0d 0a 09 09 73 74 5f 43 75 72 49 6e 69   );....st_CurIni
2210: 74 50 53 2d 3e 6f 6e 49 6e 69 74 28 29 3b 0d 0a  tPS->onInit();..
2220: 09 7d 0d 0a 09 72 65 74 75 72 6e 20 30 3b 0d 0a  .}...return 0;..
2230: 7d 0d 0a 0d 0a 42 4f 4f 4c 20 6b 69 50 72 6f 70  }....BOOL kiProp
2240: 53 68 65 65 74 3a 3a 70 61 67 65 5f 63 6d 6d 6e  Sheet::page_cmmn
2250: 50 72 6f 63 28 20 48 57 4e 44 20 64 6c 67 2c 20  Proc( HWND dlg, 
2260: 55 49 4e 54 20 6d 73 67 2c 20 57 50 41 52 41 4d  UINT msg, WPARAM
2270: 20 77 70 2c 20 4c 50 41 52 41 4d 20 6c 70 20 29   wp, LPARAM lp )
2280: 0d 0a 7b 0d 0a 09 6b 69 50 72 6f 70 53 68 65 65  ..{...kiPropShee
2290: 74 50 61 67 65 2a 20 70 74 72 20 3d 20 28 6b 69  tPage* ptr = (ki
22a0: 50 72 6f 70 53 68 65 65 74 50 61 67 65 2a 29 3a  PropSheetPage*):
22b0: 3a 47 65 74 57 69 6e 64 6f 77 4c 6f 6e 67 28 20  :GetWindowLong( 
22c0: 64 6c 67 2c 20 47 57 4c 5f 55 53 45 52 44 41 54  dlg, GWL_USERDAT
22d0: 41 20 29 3b 0d 0a 09 69 66 28 20 21 70 74 72 20  A );...if( !ptr 
22e0: 29 0d 0a 09 09 72 65 74 75 72 6e 20 46 41 4c 53  )....return FALS
22f0: 45 3b 0d 0a 0d 0a 09 2f 2f 20 82 b1 82 b1 82 c5  E;.....// ......
2300: 81 41 8b a4 92 ca 8f 88 97 9d 0d 0a 09 73 77 69  .A...........swi
2310: 74 63 68 28 20 6d 73 67 20 29 0d 0a 09 7b 0d 0a  tch( msg )...{..
2320: 09 63 61 73 65 20 57 4d 5f 49 4e 49 54 44 49 41  .case WM_INITDIA
2330: 4c 4f 47 3a 0d 0a 09 09 72 65 74 75 72 6e 20 70  LOG:....return p
2340: 74 72 2d 3e 6f 6e 49 6e 69 74 28 29 3b 0d 0a 0d  tr->onInit();...
2350: 0a 09 63 61 73 65 20 57 4d 5f 4e 4f 54 49 46 59  ..case WM_NOTIFY
2360: 3a 0d 0a 09 09 73 77 69 74 63 68 28 20 28 28 4e  :....switch( ((N
2370: 4d 48 44 52 2a 29 6c 70 29 2d 3e 63 6f 64 65 20  MHDR*)lp)->code 
2380: 29 0d 0a 09 09 7b 0d 0a 09 09 63 61 73 65 20 50  )....{....case P
2390: 53 4e 5f 41 50 50 4c 59 3a 0d 0a 09 09 09 70 74  SN_APPLY:.....pt
23a0: 72 2d 3e 6f 6e 4f 4b 28 29 3b 0d 0a 09 09 09 72  r->onOK();.....r
23b0: 65 74 75 72 6e 20 54 52 55 45 3b 0d 0a 09 09 7d  eturn TRUE;....}
23c0: 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a 0d 0a 09 63  ....break;.....c
23d0: 61 73 65 20 57 4d 5f 43 4f 4d 4d 41 4e 44 3a 0d  ase WM_COMMAND:.
23e0: 0a 09 09 69 66 28 20 6c 70 20 29 0d 0a 09 09 09  ...if( lp ).....
23f0: 73 77 69 74 63 68 28 20 48 49 57 4f 52 44 28 77  switch( HIWORD(w
2400: 70 29 20 29 0d 0a 09 09 09 7b 0d 0a 09 09 09 63  p) ).....{.....c
2410: 61 73 65 20 42 4e 5f 43 4c 49 43 4b 45 44 3a 0d  ase BN_CLICKED:.
2420: 0a 09 09 09 69 66 28 28 48 57 4e 44 29 6c 70 3d  ....if((HWND)lp=
2430: 3d 3a 3a 47 65 74 46 6f 63 75 73 28 29 29 0d 0a  =::GetFocus())..
2440: 09 09 09 63 61 73 65 20 45 4e 5f 43 48 41 4e 47  ...case EN_CHANG
2450: 45 3a 0d 0a 09 09 09 63 61 73 65 20 43 42 4e 5f  E:.....case CBN_
2460: 53 45 4c 43 48 41 4e 47 45 3a 0d 0a 09 09 09 09  SELCHANGE:......
2470: 50 72 6f 70 53 68 65 65 74 5f 43 68 61 6e 67 65  PropSheet_Change
2480: 64 28 20 70 74 72 2d 3e 70 61 72 65 6e 74 28 29  d( ptr->parent()
2490: 2d 3e 68 77 6e 64 28 29 2c 20 64 6c 67 20 29 3b  ->hwnd(), dlg );
24a0: 0d 0a 09 09 09 7d 0d 0a 09 09 62 72 65 61 6b 3b  .....}....break;
24b0: 0d 0a 0d 0a 09 63 61 73 65 20 57 4d 5f 44 45 53  .....case WM_DES
24c0: 54 52 4f 59 3a 0d 0a 09 09 42 4f 4f 4c 20 61 6e  TROY:....BOOL an
24d0: 73 3d 70 74 72 2d 3e 70 72 6f 63 28 20 6d 73 67  s=ptr->proc( msg
24e0: 2c 20 77 70 2c 20 6c 70 20 29 3b 0d 0a 09 09 70  , wp, lp );....p
24f0: 74 72 2d 3e 64 65 74 61 63 68 48 77 6e 64 28 29  tr->detachHwnd()
2500: 3b 0d 0a 09 09 72 65 74 75 72 6e 20 61 6e 73 3b  ;....return ans;
2510: 0d 0a 09 7d 0d 0a 0d 0a 09 72 65 74 75 72 6e 20  ...}.....return 
2520: 70 74 72 2d 3e 70 72 6f 63 28 20 6d 73 67 2c 20  ptr->proc( msg, 
2530: 77 70 2c 20 6c 70 20 29 3b 0d 0a 7d 0d 0a 0d 0a  wp, lp );..}....
2540: 55 49 4e 54 20 43 41 4c 4c 42 41 43 4b 20 6b 69  UINT CALLBACK ki
2550: 50 72 6f 70 53 68 65 65 74 3a 3a 70 61 67 65 5f  PropSheet::page_
2560: 69 6e 69 74 50 72 6f 63 28 20 48 57 4e 44 20 64  initProc( HWND d
2570: 6c 67 2c 20 55 49 4e 54 20 6d 73 67 2c 20 4c 50  lg, UINT msg, LP
2580: 50 52 4f 50 53 48 45 45 54 50 41 47 45 20 70 70  PROPSHEETPAGE pp
2590: 73 70 20 29 0d 0a 7b 0d 0a 09 69 66 28 20 6d 73  sp )..{...if( ms
25a0: 67 20 3d 3d 20 50 53 50 43 42 5f 43 52 45 41 54  g == PSPCB_CREAT
25b0: 45 20 29 0d 0a 09 09 70 72 65 43 72 65 61 74 65  E )....preCreate
25c0: 28 20 28 6b 69 57 69 6e 64 6f 77 2a 29 28 70 70  ( (kiWindow*)(pp
25d0: 73 70 2d 3e 6c 50 61 72 61 6d 29 20 29 3b 0d 0a  sp->lParam) );..
25e0: 09 72 65 74 75 72 6e 20 54 52 55 45 3b 0d 0a 7d  .return TRUE;..}
25f0: 0d 0a 0d 0a 76 6f 69 64 20 6b 69 50 72 6f 70 53  ....void kiPropS
2600: 68 65 65 74 50 61 67 65 3a 3a 73 65 74 49 6e 66  heetPage::setInf
2610: 6f 28 20 50 52 4f 50 53 48 45 45 54 50 41 47 45  o( PROPSHEETPAGE
2620: 2a 20 70 20 29 0d 0a 7b 0d 0a 09 70 2d 3e 70 73  * p )..{...p->ps
2630: 7a 54 65 6d 70 6c 61 74 65 20 3d 20 4d 41 4b 45  zTemplate = MAKE
2640: 49 4e 54 52 45 53 4f 55 52 43 45 28 20 67 65 74  INTRESOURCE( get
2650: 52 73 72 63 49 44 28 29 20 29 3b 0d 0a 09 70 2d  RsrcID() );...p-
2660: 3e 6c 50 61 72 61 6d 20 20 20 20 20 20 3d 20 28  >lParam      = (
2670: 4c 50 41 52 41 4d 29 74 68 69 73 3b 0d 0a 0d 0a  LPARAM)this;....
2680: 09 69 66 28 20 6d 5f 68 49 63 6f 6e 20 29 0d 0a  .if( m_hIcon )..
2690: 09 7b 0d 0a 09 09 70 2d 3e 64 77 46 6c 61 67 73  .{....p->dwFlags
26a0: 7c 3d 20 50 53 50 5f 55 53 45 48 49 43 4f 4e 3b  |= PSP_USEHICON;
26b0: 0d 0a 09 09 70 2d 3e 68 49 63 6f 6e 20 3d 20 6d  ....p->hIcon = m
26c0: 5f 68 49 63 6f 6e 3b 0d 0a 09 7d 0d 0a 7d 0d 0a  _hIcon;...}..}..
26d0: 0d 0a                                            ..