Hex Artifact Content

Not logged in

Artifact ebac3a7facda17a5e272eb44e423c52b822127f0:


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 77  tinue;.....if( w
06e0: 6e 64 2d 3e 69 73 44 6c 67 4d 73 67 28 20 26 6d  nd->isDlgMsg( &m
06f0: 73 67 20 29 20 29 0d 0a 09 09 09 09 63 6f 6e 74  sg ) )......cont
0700: 69 6e 75 65 3b 0d 0a 09 09 7d 0d 0a 09 09 3a 3a  inue;....}....::
0710: 54 72 61 6e 73 6c 61 74 65 4d 65 73 73 61 67 65  TranslateMessage
0720: 28 20 26 6d 73 67 20 29 2c 20 3a 3a 44 69 73 70  ( &msg ), ::Disp
0730: 61 74 63 68 4d 65 73 73 61 67 65 28 20 26 6d 73  atchMessage( &ms
0740: 67 20 29 3b 0d 0a 09 7d 0d 0a 09 6c 6f 6f 70 62  g );...}...loopb
0750: 72 65 61 6b 65 72 20 3d 20 66 61 6c 73 65 3b 0d  reaker = false;.
0760: 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 6b 69 57 69 6e  .}....void kiWin
0770: 64 6f 77 3a 3a 73 65 74 46 72 6f 6e 74 28 20 48  dow::setFront( H
0780: 57 4e 44 20 77 6e 64 20 29 0d 0a 7b 0d 0a 09 63  WND wnd )..{...c
0790: 6f 6e 73 74 20 4f 53 56 45 52 53 49 4f 4e 49 4e  onst OSVERSIONIN
07a0: 46 4f 26 20 76 20 3d 20 61 70 70 28 29 2d 3e 6f  FO& v = app()->o
07b0: 73 76 65 72 28 29 3b 0d 0a 0d 0a 09 2f 2f 20 57  sver();.....// W
07c0: 69 6e 32 30 30 30 20 88 c8 8f e3 20 6f 72 20 57  in2000 .... or W
07d0: 69 6e 39 38 20 88 c8 8f e3 0d 0a 09 69 66 28 20  in98 .......if( 
07e0: 28 20 76 2e 64 77 50 6c 61 74 66 6f 72 6d 49 64  ( v.dwPlatformId
07f0: 3d 3d 56 45 52 5f 50 4c 41 54 46 4f 52 4d 5f 57  ==VER_PLATFORM_W
0800: 49 4e 33 32 5f 4e 54 20 26 26 20 76 2e 64 77 4d  IN32_NT && v.dwM
0810: 61 6a 6f 72 56 65 72 73 69 6f 6e 3e 3d 35 20 29  ajorVersion>=5 )
0820: 0d 0a 09 20 7c 7c 20 28 20 76 2e 64 77 50 6c 61  ... || ( v.dwPla
0830: 74 66 6f 72 6d 49 64 3d 3d 56 45 52 5f 50 4c 41  tformId==VER_PLA
0840: 54 46 4f 52 4d 5f 57 49 4e 33 32 5f 57 49 4e 44  TFORM_WIN32_WIND
0850: 4f 57 53 20 26 26 0d 0a 09 09 09 09 09 09 09 76  OWS &&.........v
0860: 2e 64 77 4d 61 6a 6f 72 56 65 72 73 69 6f 6e 2a  .dwMajorVersion*
0870: 31 30 30 2b 76 2e 64 77 4d 69 6e 6f 72 56 65 72  100+v.dwMinorVer
0880: 73 69 6f 6e 3e 3d 34 31 30 20 29 20 29 0d 0a 09  sion>=410 ) )...
0890: 7b 0d 0a 09 09 44 57 4f 52 44 20 70 69 64 3b 0d  {....DWORD pid;.
08a0: 0a 09 09 44 57 4f 52 44 20 74 68 31 20 3d 20 3a  ...DWORD th1 = :
08b0: 3a 47 65 74 57 69 6e 64 6f 77 54 68 72 65 61 64  :GetWindowThread
08c0: 50 72 6f 63 65 73 73 49 64 28 20 3a 3a 47 65 74  ProcessId( ::Get
08d0: 46 6f 72 65 67 72 6f 75 6e 64 57 69 6e 64 6f 77  ForegroundWindow
08e0: 28 29 2c 20 26 70 69 64 20 29 3b 0d 0a 09 09 44  (), &pid );....D
08f0: 57 4f 52 44 20 74 68 32 20 3d 20 3a 3a 47 65 74  WORD th2 = ::Get
0900: 43 75 72 72 65 6e 74 54 68 72 65 61 64 49 64 28  CurrentThreadId(
0910: 29 3b 0d 0a 09 09 3a 3a 41 74 74 61 63 68 54 68  );....::AttachTh
0920: 72 65 61 64 49 6e 70 75 74 28 20 74 68 32 2c 20  readInput( th2, 
0930: 74 68 31 2c 20 54 52 55 45 20 29 3b 0d 0a 09 09  th1, TRUE );....
0940: 3a 3a 53 65 74 46 6f 72 65 67 72 6f 75 6e 64 57  ::SetForegroundW
0950: 69 6e 64 6f 77 28 20 77 6e 64 20 29 3b 0d 0a 09  indow( wnd );...
0960: 09 3a 3a 41 74 74 61 63 68 54 68 72 65 61 64 49  .::AttachThreadI
0970: 6e 70 75 74 28 20 74 68 32 2c 20 74 68 31 2c 20  nput( th2, th1, 
0980: 46 41 4c 53 45 20 29 3b 0d 0a 09 09 3a 3a 42 72  FALSE );....::Br
0990: 69 6e 67 57 69 6e 64 6f 77 54 6f 54 6f 70 28 20  ingWindowToTop( 
09a0: 77 6e 64 20 29 3b 0d 0a 09 7d 0d 0a 09 65 6c 73  wnd );...}...els
09b0: 65 20 20 2f 2f 20 8c c3 82 a2 57 69 6e 0d 0a 09  e  // ....Win...
09c0: 09 3a 3a 53 65 74 46 6f 72 65 67 72 6f 75 6e 64  .::SetForeground
09d0: 57 69 6e 64 6f 77 28 20 77 6e 64 20 29 3b 0d 0a  Window( wnd );..
09e0: 0d 0a 09 2f 2f 20 53 70 65 63 69 61 6c 20 54 68  ...// Special Th
09f0: 61 6e 6b 73 20 54 6f 20 6b 61 7a 75 62 6f 6e 20  anks To kazubon 
0a00: 21 21 20 28 20 74 68 65 20 61 75 74 68 6f 72 20  !! ( the author 
0a10: 6f 66 20 54 43 6c 6f 63 6b 20 29 0d 0a 7d 0d 0a  of TClock )..}..
0a20: 0d 0a 76 6f 69 64 20 6b 69 57 69 6e 64 6f 77 3a  ..void kiWindow:
0a30: 3a 73 65 74 43 65 6e 74 65 72 28 20 48 57 4e 44  :setCenter( HWND
0a40: 20 77 6e 64 2c 20 48 57 4e 44 20 72 65 6c 20 29   wnd, HWND rel )
0a50: 0d 0a 7b 0d 0a 09 52 45 43 54 20 72 63 2c 70 72  ..{...RECT rc,pr
0a60: 3b 0d 0a 09 3a 3a 47 65 74 57 69 6e 64 6f 77 52  ;...::GetWindowR
0a70: 65 63 74 28 20 77 6e 64 2c 20 26 72 63 20 29 3b  ect( wnd, &rc );
0a80: 0d 0a 0d 0a 09 69 66 28 20 72 65 6c 20 29 0d 0a  .....if( rel )..
0a90: 09 09 3a 3a 47 65 74 57 69 6e 64 6f 77 52 65 63  ..::GetWindowRec
0aa0: 74 28 20 72 65 6c 2c 20 26 70 72 20 29 3b 0d 0a  t( rel, &pr );..
0ab0: 09 65 6c 73 65 0d 0a 09 09 3a 3a 53 79 73 74 65  .else....::Syste
0ac0: 6d 50 61 72 61 6d 65 74 65 72 73 49 6e 66 6f 28  mParametersInfo(
0ad0: 20 53 50 49 5f 47 45 54 57 4f 52 4b 41 52 45 41   SPI_GETWORKAREA
0ae0: 2c 20 30 2c 20 26 70 72 2c 20 30 20 29 3b 0d 0a  , 0, &pr, 0 );..
0af0: 0d 0a 09 3a 3a 53 65 74 57 69 6e 64 6f 77 50 6f  ...::SetWindowPo
0b00: 73 28 20 77 6e 64 2c 20 30 2c 0d 0a 09 09 70 72  s( wnd, 0,....pr
0b10: 2e 6c 65 66 74 20 2b 20 28 20 28 70 72 2e 72 69  .left + ( (pr.ri
0b20: 67 68 74 2d 70 72 2e 6c 65 66 74 29 2d 28 72 63  ght-pr.left)-(rc
0b30: 2e 72 69 67 68 74 2d 72 63 2e 6c 65 66 74 29 20  .right-rc.left) 
0b40: 29 2f 32 2c 0d 0a 09 09 70 72 2e 74 6f 70 20 20  )/2,....pr.top  
0b50: 2b 20 28 20 28 70 72 2e 62 6f 74 74 6f 6d 2d 70  + ( (pr.bottom-p
0b60: 72 2e 74 6f 70 29 2d 28 72 63 2e 62 6f 74 74 6f  r.top)-(rc.botto
0b70: 6d 2d 72 63 2e 74 6f 70 29 20 29 2f 32 2c 0d 0a  m-rc.top) )/2,..
0b80: 09 09 30 2c 20 30 2c 20 53 57 50 5f 4e 4f 53 49  ..0, 0, SWP_NOSI
0b90: 5a 45 7c 53 57 50 5f 4e 4f 5a 4f 52 44 45 52 20  ZE|SWP_NOZORDER 
0ba0: 29 3b 0d 0a 7d 0d 0a 0d 0a 0d 0a 2f 2f 2d 2d 2d  );..}......//---
0bb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20  --------------- 
0bc0: 57 69 6e 64 6f 77 83 78 81 5b 83 58 83 4e 83 89  Window.x.[.X.N..
0bd0: 83 58 82 c6 82 b5 82 c4 82 cc 8f 88 97 9d 20 2d  .X............ -
0be0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0bf0: 2d 2d 2d 2d 2d 2f 2f 0d 0a 0d 0a 0d 0a 6b 69 57  -----//......kiW
0c00: 69 6e 64 6f 77 3a 3a 6b 69 57 69 6e 64 6f 77 28  indow::kiWindow(
0c10: 29 0d 0a 7b 0d 0a 09 6d 5f 68 57 6e 64 20 3d 20  )..{...m_hWnd = 
0c20: 4e 55 4c 4c 3b 0d 0a 09 6d 5f 68 41 63 63 65 6c  NULL;...m_hAccel
0c30: 20 3d 20 4e 55 4c 4c 3b 0d 0a 09 61 70 70 28 29   = NULL;...app()
0c40: 2d 3e 73 68 65 6c 6c 49 6e 69 74 28 29 3b 0d 0a  ->shellInit();..
0c50: 7d 0d 0a 0d 0a 6b 69 57 69 6e 64 6f 77 3a 3a 7e  }....kiWindow::~
0c60: 6b 69 57 69 6e 64 6f 77 28 29 0d 0a 7b 0d 0a 09  kiWindow()..{...
0c70: 69 66 28 20 6d 5f 68 57 6e 64 20 26 26 20 3a 3a  if( m_hWnd && ::
0c80: 49 73 57 69 6e 64 6f 77 28 20 6d 5f 68 57 6e 64  IsWindow( m_hWnd
0c90: 20 29 20 29 0d 0a 09 7b 0d 0a 09 09 3a 3a 53 65   ) )...{....::Se
0ca0: 74 57 69 6e 64 6f 77 4c 6f 6e 67 28 20 6d 5f 68  tWindowLong( m_h
0cb0: 57 6e 64 2c 20 47 57 4c 5f 55 53 45 52 44 41 54  Wnd, GWL_USERDAT
0cc0: 41 2c 20 30 20 29 3b 0d 0a 09 09 3a 3a 44 65 73  A, 0 );....::Des
0cd0: 74 72 6f 79 57 69 6e 64 6f 77 28 20 6d 5f 68 57  troyWindow( m_hW
0ce0: 6e 64 20 29 3b 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a  nd );...}..}....
0cf0: 76 6f 69 64 20 6b 69 57 69 6e 64 6f 77 3a 3a 6c  void kiWindow::l
0d00: 6f 61 64 41 63 63 65 6c 28 20 55 49 4e 54 20 69  oadAccel( UINT i
0d10: 64 20 29 0d 0a 7b 0d 0a 09 6d 5f 68 41 63 63 65  d )..{...m_hAcce
0d20: 6c 20 3d 20 3a 3a 4c 6f 61 64 41 63 63 65 6c 65  l = ::LoadAccele
0d30: 72 61 74 6f 72 73 28 20 61 70 70 28 29 2d 3e 69  rators( app()->i
0d40: 6e 73 74 28 29 2c 20 4d 41 4b 45 49 4e 54 52 45  nst(), MAKEINTRE
0d50: 53 4f 55 52 43 45 28 69 64 29 20 29 3b 0d 0a 7d  SOURCE(id) );..}
0d60: 0d 0a 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d  ......//--------
0d70: 2d 2d 2d 2d 2d 2d 2d 2d 20 83 58 83 5e 83 93 83  -------- .X.^...
0d80: 68 83 41 83 8d 83 93 82 cc 57 69 6e 64 6f 77 82  h.A......Window.
0d90: cc 8f 88 97 9d 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ..... ----------
0da0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 0d  -----------//...
0db0: 0a 2f 2f 20 81 63 96 a2 8a ae 90 ac 81 63 0d 0a  .// .c.......c..
0dc0: 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ..//------------
0dd0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0de0: 20 44 69 61 6c 6f 67 20 2d 2d 2d 2d 2d 2d 2d 2d   Dialog --------
0df0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0e00: 2d 2d 2d 2d 2d 2f 2f 0d 0a 0d 0a 0d 0a 6b 69 44  -----//......kiD
0e10: 69 61 6c 6f 67 3a 3a 6b 69 44 69 61 6c 6f 67 28  ialog::kiDialog(
0e20: 20 55 49 4e 54 20 69 64 20 29 0d 0a 7b 0d 0a 09   UINT id )..{...
0e30: 6d 5f 52 73 72 63 20 3d 20 69 64 3b 0d 0a 7d 0d  m_Rsrc = id;..}.
0e40: 0a 0d 0a 76 6f 69 64 20 6b 69 44 69 61 6c 6f 67  ...void kiDialog
0e50: 3a 3a 64 6f 4d 6f 64 61 6c 28 20 48 57 4e 44 20  ::doModal( HWND 
0e60: 70 61 72 65 6e 74 20 29 0d 0a 7b 0d 0a 09 73 65  parent )..{...se
0e70: 74 53 74 61 74 65 28 20 74 72 75 65 20 29 3b 0d  tState( true );.
0e80: 0a 09 70 72 65 43 72 65 61 74 65 28 20 74 68 69  ..preCreate( thi
0e90: 73 20 29 3b 0d 0a 0d 0a 09 3a 3a 44 69 61 6c 6f  s );.....::Dialo
0ea0: 67 42 6f 78 50 61 72 61 6d 28 20 61 70 70 28 29  gBoxParam( app()
0eb0: 2d 3e 69 6e 73 74 28 29 2c 20 4d 41 4b 45 49 4e  ->inst(), MAKEIN
0ec0: 54 52 45 53 4f 55 52 43 45 28 6d 5f 52 73 72 63  TRESOURCE(m_Rsrc
0ed0: 29 2c 0d 0a 09 09 09 09 09 09 70 61 72 65 6e 74  ),........parent
0ee0: 2c 20 63 6f 6d 6d 6f 6e 44 6c 67 2c 20 28 4c 50  , commonDlg, (LP
0ef0: 41 52 41 4d 29 74 68 69 73 20 29 3b 0d 0a 7d 0d  ARAM)this );..}.
0f00: 0a 0d 0a 76 6f 69 64 20 6b 69 44 69 61 6c 6f 67  ...void kiDialog
0f10: 3a 3a 63 72 65 61 74 65 4d 6f 64 65 6c 65 73 73  ::createModeless
0f20: 28 20 48 57 4e 44 20 70 61 72 65 6e 74 20 29 0d  ( HWND parent ).
0f30: 0a 7b 0d 0a 09 73 65 74 53 74 61 74 65 28 20 66  .{...setState( f
0f40: 61 6c 73 65 20 29 3b 0d 0a 09 70 72 65 43 72 65  alse );...preCre
0f50: 61 74 65 28 20 74 68 69 73 20 29 3b 0d 0a 0d 0a  ate( this );....
0f60: 09 3a 3a 43 72 65 61 74 65 44 69 61 6c 6f 67 50  .::CreateDialogP
0f70: 61 72 61 6d 28 20 61 70 70 28 29 2d 3e 69 6e 73  aram( app()->ins
0f80: 74 28 29 2c 20 4d 41 4b 45 49 4e 54 52 45 53 4f  t(), MAKEINTRESO
0f90: 55 52 43 45 28 6d 5f 52 73 72 63 29 2c 0d 0a 09  URCE(m_Rsrc),...
0fa0: 09 09 09 09 09 70 61 72 65 6e 74 2c 20 63 6f 6d  .....parent, com
0fb0: 6d 6f 6e 44 6c 67 2c 20 28 4c 50 41 52 41 4d 29  monDlg, (LPARAM)
0fc0: 74 68 69 73 20 29 3b 0d 0a 0d 0a 09 3a 3a 53 68  this );.....::Sh
0fd0: 6f 77 57 69 6e 64 6f 77 28 20 68 77 6e 64 28 29  owWindow( hwnd()
0fe0: 2c 20 53 57 5f 53 48 4f 57 20 29 3b 0d 0a 09 3a  , SW_SHOW );...:
0ff0: 3a 55 70 64 61 74 65 57 69 6e 64 6f 77 28 20 68  :UpdateWindow( h
1000: 77 6e 64 28 29 20 29 3b 0d 0a 7d 0d 0a 0d 0a 76  wnd() );..}....v
1010: 6f 69 64 20 6b 69 44 69 61 6c 6f 67 3a 3a 65 6e  oid kiDialog::en
1020: 64 28 20 55 49 4e 54 20 65 6e 64 63 6f 64 65 20  d( UINT endcode 
1030: 29 0d 0a 7b 0d 0a 09 73 65 74 45 6e 64 43 6f 64  )..{...setEndCod
1040: 65 28 20 65 6e 64 63 6f 64 65 20 29 3b 0d 0a 0d  e( endcode );...
1050: 0a 09 69 66 28 20 69 73 4d 6f 64 61 6c 28 29 20  ..if( isModal() 
1060: 29 0d 0a 09 09 3a 3a 45 6e 64 44 69 61 6c 6f 67  )....::EndDialog
1070: 28 20 68 77 6e 64 28 29 2c 20 67 65 74 45 6e 64  ( hwnd(), getEnd
1080: 43 6f 64 65 28 29 20 29 3b 0d 0a 09 65 6c 73 65  Code() );...else
1090: 0d 0a 09 09 3a 3a 44 65 73 74 72 6f 79 57 69 6e  ....::DestroyWin
10a0: 64 6f 77 28 20 68 77 6e 64 28 29 20 29 3b 0d 0a  dow( hwnd() );..
10b0: 7d 0d 0a 0d 0a 42 4f 4f 4c 20 6b 69 44 69 61 6c  }....BOOL kiDial
10c0: 6f 67 3a 3a 63 6f 6d 6d 6f 6e 44 6c 67 28 20 48  og::commonDlg( H
10d0: 57 4e 44 20 64 6c 67 2c 20 55 49 4e 54 20 6d 73  WND dlg, UINT ms
10e0: 67 2c 20 57 50 41 52 41 4d 20 77 70 2c 20 4c 50  g, WPARAM wp, LP
10f0: 41 52 41 4d 20 6c 70 20 29 0d 0a 7b 0d 0a 09 2f  ARAM lp )..{.../
1100: 2f 20 6b 69 44 69 61 6c 6f 67 20 83 43 83 93 83  / kiDialog .C...
1110: 5e 81 5b 83 74 83 46 83 43 83 58 82 d6 82 cc 83  ^.[.t.F.C.X.....
1120: 7c 83 43 83 93 83 5e 82 f0 8e e6 93 be 0d 0a 09  |.C...^.........
1130: 6b 69 44 69 61 6c 6f 67 2a 20 70 74 72 20 3d 20  kiDialog* ptr = 
1140: 28 6b 69 44 69 61 6c 6f 67 2a 29 3a 3a 47 65 74  (kiDialog*)::Get
1150: 57 69 6e 64 6f 77 4c 6f 6e 67 28 20 64 6c 67 2c  WindowLong( dlg,
1160: 20 47 57 4c 5f 55 53 45 52 44 41 54 41 20 29 3b   GWL_USERDATA );
1170: 0d 0a 09 69 66 28 20 21 70 74 72 20 29 20 72 65  ...if( !ptr ) re
1180: 74 75 72 6e 20 46 41 4c 53 45 3b 0d 0a 0d 0a 09  turn FALSE;.....
1190: 2f 2f 20 57 4d 5f 49 4e 49 54 44 49 41 4c 4f 47  // WM_INITDIALOG
11a0: 20 82 c8 82 e7 20 6f 6e 49 6e 69 74 20 82 f0 8c   .... onInit ...
11b0: c4 82 d4 0d 0a 09 69 66 28 20 6d 73 67 20 3d 3d  ......if( msg ==
11c0: 20 57 4d 5f 49 4e 49 54 44 49 41 4c 4f 47 20 29   WM_INITDIALOG )
11d0: 0d 0a 09 09 72 65 74 75 72 6e 20 70 74 72 2d 3e  ....return ptr->
11e0: 6f 6e 49 6e 69 74 28 29 3b 0d 0a 0d 0a 09 2f 2f  onInit();.....//
11f0: 20 4f 4b 20 2f 20 43 61 6e 63 65 6c 20 8f 88 97   OK / Cancel ...
1200: 9d 0d 0a 09 65 6c 73 65 20 69 66 28 20 6d 73 67  ....else if( msg
1210: 20 3d 3d 20 57 4d 5f 43 4f 4d 4d 41 4e 44 20 29   == WM_COMMAND )
1220: 0d 0a 09 7b 0d 0a 09 09 73 77 69 74 63 68 28 20  ...{....switch( 
1230: 4c 4f 57 4f 52 44 28 77 70 29 20 29 0d 0a 09 09  LOWORD(wp) )....
1240: 7b 0d 0a 09 09 63 61 73 65 20 49 44 4f 4b 3a 0d  {....case IDOK:.
1250: 0a 09 09 09 69 66 28 20 70 74 72 2d 3e 6f 6e 4f  ....if( ptr->onO
1260: 4b 28 29 20 29 0d 0a 09 09 09 09 70 74 72 2d 3e  K() )......ptr->
1270: 65 6e 64 28 20 49 44 4f 4b 20 29 3b 0d 0a 09 09  end( IDOK );....
1280: 09 72 65 74 75 72 6e 20 54 52 55 45 3b 0d 0a 09  .return TRUE;...
1290: 09 63 61 73 65 20 49 44 43 41 4e 43 45 4c 3a 0d  .case IDCANCEL:.
12a0: 0a 09 09 09 69 66 28 20 70 74 72 2d 3e 6f 6e 43  ....if( ptr->onC
12b0: 61 6e 63 65 6c 28 29 20 29 0d 0a 09 09 09 09 70  ancel() )......p
12c0: 74 72 2d 3e 65 6e 64 28 20 49 44 43 41 4e 43 45  tr->end( IDCANCE
12d0: 4c 20 29 3b 0d 0a 09 09 09 72 65 74 75 72 6e 20  L );.....return 
12e0: 54 52 55 45 3b 0d 0a 09 09 7d 0d 0a 09 7d 0d 0a  TRUE;....}...}..
12f0: 0d 0a 09 2f 2f 20 95 81 92 ca 82 cc 83 81 83 62  ...// .........b
1300: 83 5a 81 5b 83 57 0d 0a 09 42 4f 4f 4c 20 61 6e  .Z.[.W...BOOL an
1310: 73 20 3d 20 70 74 72 2d 3e 70 72 6f 63 28 20 6d  s = ptr->proc( m
1320: 73 67 2c 20 77 70 2c 20 6c 70 20 29 3b 0d 0a 0d  sg, wp, lp );...
1330: 0a 09 2f 2f 20 57 4d 5f 44 45 53 54 4f 52 59 20  ..// WM_DESTORY 
1340: 82 c8 82 e7 83 45 83 43 83 93 83 68 83 45 83 6e  .....E.C...h.E.n
1350: 83 93 83 68 83 8b 90 d8 82 e8 97 a3 82 b5 0d 0a  ...h............
1360: 09 69 66 28 20 6d 73 67 20 3d 3d 20 57 4d 5f 44  .if( msg == WM_D
1370: 45 53 54 52 4f 59 20 29 0d 0a 09 09 70 74 72 2d  ESTROY )....ptr-
1380: 3e 64 65 74 61 63 68 48 77 6e 64 28 29 3b 0d 0a  >detachHwnd();..
1390: 0d 0a 09 72 65 74 75 72 6e 20 61 6e 73 3b 0d 0a  ...return ans;..
13a0: 7d 0d 0a 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d  }......//-------
13b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
13c0: 2d 20 50 72 6f 70 65 72 74 79 53 68 65 65 74 20  - PropertySheet 
13d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
13e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 0d 0a 0d  ---------//.....
13f0: 0a 6b 69 50 72 6f 70 53 68 65 65 74 2a 20 6b 69  .kiPropSheet* ki
1400: 50 72 6f 70 53 68 65 65 74 3a 3a 73 74 5f 43 75  PropSheet::st_Cu
1410: 72 49 6e 69 74 50 53 20 3d 20 4e 55 4c 4c 3b 0d  rInitPS = NULL;.
1420: 0a 0d 0a 6b 69 50 72 6f 70 53 68 65 65 74 3a 3a  ...kiPropSheet::
1430: 6b 69 50 72 6f 70 53 68 65 65 74 28 29 20 3a 20  kiPropSheet() : 
1440: 6b 69 44 69 61 6c 6f 67 28 20 30 20 29 0d 0a 7b  kiDialog( 0 )..{
1450: 0d 0a 09 6b 69 5f 6d 65 6d 7a 65 72 6f 28 20 26  ...ki_memzero( &
1460: 6d 5f 48 65 61 64 65 72 2c 20 73 69 7a 65 6f 66  m_Header, sizeof
1470: 28 6d 5f 48 65 61 64 65 72 29 20 29 3b 0d 0a 09  (m_Header) );...
1480: 6d 5f 48 65 61 64 65 72 2e 64 77 53 69 7a 65 20  m_Header.dwSize 
1490: 20 20 20 20 20 3d 20 73 69 7a 65 6f 66 28 6d 5f       = sizeof(m_
14a0: 48 65 61 64 65 72 29 3b 0d 0a 09 6d 5f 48 65 61  Header);...m_Hea
14b0: 64 65 72 2e 64 77 46 6c 61 67 73 20 20 20 20 20  der.dwFlags     
14c0: 7c 3d 50 53 48 5f 55 53 45 43 41 4c 4c 42 41 43  |=PSH_USECALLBAC
14d0: 4b 20 7c 20 50 53 48 5f 50 52 4f 50 53 48 45 45  K | PSH_PROPSHEE
14e0: 54 50 41 47 45 3b 0d 0a 09 6d 5f 48 65 61 64 65  TPAGE;...m_Heade
14f0: 72 2e 70 66 6e 43 61 6c 6c 62 61 63 6b 20 3d 20  r.pfnCallback = 
1500: 6d 61 69 6e 5f 69 6e 69 74 50 72 6f 63 3b 0d 0a  main_initProc;..
1510: 09 6d 5f 48 65 61 64 65 72 2e 68 49 6e 73 74 61  .m_Header.hInsta
1520: 6e 63 65 20 20 20 3d 20 61 70 70 28 29 2d 3e 69  nce   = app()->i
1530: 6e 73 74 28 29 3b 0d 0a 09 6d 5f 48 65 61 64 65  nst();...m_Heade
1540: 72 2e 6e 53 74 61 72 74 50 61 67 65 20 20 3d 20  r.nStartPage  = 
1550: 30 3b 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 6b 69  0;..}....void ki
1560: 50 72 6f 70 53 68 65 65 74 3a 3a 62 65 67 69 6e  PropSheet::begin
1570: 28 29 0d 0a 7b 0d 0a 09 69 6e 74 20 6c 20 3d 20  ()..{...int l = 
1580: 6d 5f 50 61 67 65 73 2e 6c 65 6e 28 29 3b 0d 0a  m_Pages.len();..
1590: 09 50 52 4f 50 53 48 45 45 54 50 41 47 45 2a 20  .PROPSHEETPAGE* 
15a0: 70 70 73 70 20 3d 20 6e 65 77 20 50 52 4f 50 53  ppsp = new PROPS
15b0: 48 45 45 54 50 41 47 45 5b 20 6c 20 5d 3b 0d 0a  HEETPAGE[ l ];..
15c0: 09 6b 69 5f 6d 65 6d 7a 65 72 6f 28 20 70 70 73  .ki_memzero( pps
15d0: 70 2c 20 73 69 7a 65 6f 66 28 50 52 4f 50 53 48  p, sizeof(PROPSH
15e0: 45 45 54 50 41 47 45 29 2a 6c 20 29 3b 0d 0a 0d  EETPAGE)*l );...
15f0: 0a 09 66 6f 72 28 20 69 6e 74 20 69 3d 30 3b 20  ..for( int i=0; 
1600: 69 3c 6c 3b 20 69 2b 2b 20 29 0d 0a 09 7b 0d 0a  i<l; i++ )...{..
1610: 09 09 70 70 73 70 5b 69 5d 2e 64 77 53 69 7a 65  ..ppsp[i].dwSize
1620: 20 20 20 20 20 20 3d 20 73 69 7a 65 6f 66 28 20        = sizeof( 
1630: 50 52 4f 50 53 48 45 45 54 50 41 47 45 20 29 3b  PROPSHEETPAGE );
1640: 0d 0a 09 09 70 70 73 70 5b 69 5d 2e 68 49 6e 73  ....ppsp[i].hIns
1650: 74 61 6e 63 65 20 20 20 3d 20 61 70 70 28 29 2d  tance   = app()-
1660: 3e 69 6e 73 74 28 29 3b 0d 0a 09 09 70 70 73 70  >inst();....ppsp
1670: 5b 69 5d 2e 70 66 6e 43 61 6c 6c 62 61 63 6b 20  [i].pfnCallback 
1680: 3d 20 70 61 67 65 5f 69 6e 69 74 50 72 6f 63 3b  = page_initProc;
1690: 0d 0a 09 09 70 70 73 70 5b 69 5d 2e 70 66 6e 44  ....ppsp[i].pfnD
16a0: 6c 67 50 72 6f 63 20 20 3d 20 70 61 67 65 5f 63  lgProc  = page_c
16b0: 6d 6d 6e 50 72 6f 63 3b 0d 0a 09 09 70 70 73 70  mmnProc;....ppsp
16c0: 5b 69 5d 2e 64 77 46 6c 61 67 73 20 20 20 20 20  [i].dwFlags     
16d0: 3d 20 50 53 50 5f 55 53 45 43 41 4c 4c 42 41 43  = PSP_USECALLBAC
16e0: 4b 20 7c 20 50 53 50 5f 48 41 53 48 45 4c 50 3b  K | PSP_HASHELP;
16f0: 0d 0a 09 09 6d 5f 50 61 67 65 73 5b 69 5d 2d 3e  ....m_Pages[i]->
1700: 73 65 74 49 6e 66 6f 28 20 70 70 73 70 2b 69 20  setInfo( ppsp+i 
1710: 29 3b 0d 0a 09 7d 0d 0a 0d 0a 09 6d 5f 48 65 61  );...}.....m_Hea
1720: 64 65 72 2e 70 70 73 70 20 20 20 3d 20 70 70 73  der.ppsp   = pps
1730: 70 3b 0d 0a 09 6d 5f 48 65 61 64 65 72 2e 6e 50  p;...m_Header.nP
1740: 61 67 65 73 20 3d 20 6c 3b 0d 0a 0d 0a 09 73 74  ages = l;.....st
1750: 5f 43 75 72 49 6e 69 74 50 53 20 3d 20 74 68 69  _CurInitPS = thi
1760: 73 3b 0d 0a 09 50 72 6f 70 65 72 74 79 53 68 65  s;...PropertyShe
1770: 65 74 28 20 26 6d 5f 48 65 61 64 65 72 20 29 3b  et( &m_Header );
1780: 0d 0a 09 64 65 6c 65 74 65 20 5b 5d 20 70 70 73  ...delete [] pps
1790: 70 3b 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 6b 69  p;..}....void ki
17a0: 50 72 6f 70 53 68 65 65 74 3a 3a 64 6f 4d 6f 64  PropSheet::doMod
17b0: 61 6c 28 20 48 57 4e 44 20 70 61 72 65 6e 74 20  al( HWND parent 
17c0: 29 0d 0a 7b 0d 0a 09 6d 5f 48 65 61 64 65 72 2e  )..{...m_Header.
17d0: 64 77 46 6c 61 67 73 20 26 3d 20 28 7e 50 53 48  dwFlags &= (~PSH
17e0: 5f 4d 4f 44 45 4c 45 53 53 29 3b 0d 0a 09 73 65  _MODELESS);...se
17f0: 74 53 74 61 74 65 28 20 74 72 75 65 20 29 3b 0d  tState( true );.
1800: 0a 09 62 65 67 69 6e 28 29 3b 0d 0a 7d 0d 0a 0d  ..begin();..}...
1810: 0a 76 6f 69 64 20 6b 69 50 72 6f 70 53 68 65 65  .void kiPropShee
1820: 74 3a 3a 63 72 65 61 74 65 4d 6f 64 65 6c 65 73  t::createModeles
1830: 73 28 20 48 57 4e 44 20 70 61 72 65 6e 74 20 29  s( HWND parent )
1840: 0d 0a 7b 0d 0a 09 6d 5f 48 65 61 64 65 72 2e 64  ..{...m_Header.d
1850: 77 46 6c 61 67 73 20 7c 3d 20 50 53 48 5f 4d 4f  wFlags |= PSH_MO
1860: 44 45 4c 45 53 53 3b 0d 0a 09 73 65 74 53 74 61  DELESS;...setSta
1870: 74 65 28 20 66 61 6c 73 65 20 29 3b 0d 0a 09 62  te( false );...b
1880: 65 67 69 6e 28 29 3b 0d 0a 7d 0d 0a 0d 0a 76 6f  egin();..}....vo
1890: 69 64 20 6b 69 50 72 6f 70 53 68 65 65 74 3a 3a  id kiPropSheet::
18a0: 65 6e 64 28 20 55 49 4e 54 20 65 6e 64 63 6f 64  end( UINT endcod
18b0: 65 20 29 0d 0a 7b 0d 0a 09 2f 2f 20 8f 49 97 b9  e )..{...// .I..
18c0: 83 52 81 5b 83 68 83 5a 83 62 83 67 0d 0a 09 73  .R.[.h.Z.b.g...s
18d0: 65 74 45 6e 64 43 6f 64 65 28 20 65 6e 64 63 6f  etEndCode( endco
18e0: 64 65 20 29 3b 0d 0a 0d 0a 09 2f 2f 20 83 54 83  de );.....// .T.
18f0: 75 83 4e 83 89 83 58 89 bb 89 f0 8f 9c 0d 0a 09  u.N...X.........
1900: 3a 3a 53 65 74 57 69 6e 64 6f 77 4c 6f 6e 67 28  ::SetWindowLong(
1910: 20 68 77 6e 64 28 29 2c 20 47 57 4c 5f 57 4e 44   hwnd(), GWL_WND
1920: 50 52 4f 43 2c 20 28 4c 4f 4e 47 29 6d 5f 44 65  PROC, (LONG)m_De
1930: 66 50 72 6f 63 20 29 3b 0d 0a 0d 0a 09 2f 2f 20  fProc );.....// 
1940: 8f 49 97 b9 0d 0a 09 69 66 28 20 69 73 4d 6f 64  .I.....if( isMod
1950: 61 6c 28 29 20 29 20 2f 2f 20 83 54 83 75 83 4e  al() ) // .T.u.N
1960: 83 89 83 58 89 bb 89 f0 8f 9c 82 b5 82 c4 82 e9  ...X............
1970: 82 cc 82 c5 81 41 8d c4 93 78 20 65 6e 64 20 82  .....A...x end .
1980: aa 8c c4 82 ce 82 ea 82 e9 82 b1 82 c6 82 cd 82  ................
1990: c8 82 a2 82 cd 82 b8 81 42 0d 0a 09 09 3a 3a 50  ........B....::P
19a0: 6f 73 74 4d 65 73 73 61 67 65 28 20 68 77 6e 64  ostMessage( hwnd
19b0: 28 29 2c 20 57 4d 5f 43 4f 4d 4d 41 4e 44 2c 20  (), WM_COMMAND, 
19c0: 49 44 43 41 4e 43 45 4c 2c 20 30 20 29 3b 0d 0a  IDCANCEL, 0 );..
19d0: 09 65 6c 73 65 0d 0a 09 09 3a 3a 44 65 73 74 72  .else....::Destr
19e0: 6f 79 57 69 6e 64 6f 77 28 20 68 77 6e 64 28 29  oyWindow( hwnd()
19f0: 20 29 3b 0d 0a 0d 0a 09 2f 2f 20 57 4d 5f 44 45   );.....// WM_DE
1a00: 53 54 52 4f 59 8e 9e 91 8a 93 96 82 cc 93 ae 8d  STROY...........
1a10: ec 0d 0a 09 64 65 74 61 63 68 48 77 6e 64 28 29  ....detachHwnd()
1a20: 3b 0d 0a 7d 0d 0a 0d 0a 4c 52 45 53 55 4c 54 20  ;..}....LRESULT 
1a30: 43 41 4c 4c 42 41 43 4b 20 6b 69 50 72 6f 70 53  CALLBACK kiPropS
1a40: 68 65 65 74 3a 3a 6d 61 69 6e 5f 63 6d 6d 6e 50  heet::main_cmmnP
1a50: 72 6f 63 28 20 48 57 4e 44 20 64 6c 67 2c 20 55  roc( HWND dlg, U
1a60: 49 4e 54 20 6d 73 67 2c 20 57 50 41 52 41 4d 20  INT msg, WPARAM 
1a70: 77 70 2c 20 4c 50 41 52 41 4d 20 6c 70 20 29 0d  wp, LPARAM lp ).
1a80: 0a 7b 0d 0a 09 6b 69 50 72 6f 70 53 68 65 65 74  .{...kiPropSheet
1a90: 2a 20 70 74 72 20 3d 20 28 6b 69 50 72 6f 70 53  * ptr = (kiPropS
1aa0: 68 65 65 74 2a 29 3a 3a 47 65 74 57 69 6e 64 6f  heet*)::GetWindo
1ab0: 77 4c 6f 6e 67 28 20 64 6c 67 2c 20 47 57 4c 5f  wLong( dlg, GWL_
1ac0: 55 53 45 52 44 41 54 41 20 29 3b 0d 0a 09 69 66  USERDATA );...if
1ad0: 28 20 21 70 74 72 20 29 0d 0a 09 09 72 65 74 75  ( !ptr )....retu
1ae0: 72 6e 20 30 3b 0d 0a 0d 0a 09 2f 2f 20 82 dc 82  rn 0;.....// ...
1af0: b8 83 66 83 74 83 48 83 8b 83 67 82 cc 8f 88 97  ..f.t.H...g.....
1b00: 9d 0d 0a 09 4c 52 45 53 55 4c 54 20 72 65 73 75  ....LRESULT resu
1b10: 6c 74 20 3d 20 3a 3a 43 61 6c 6c 57 69 6e 64 6f  lt = ::CallWindo
1b20: 77 50 72 6f 63 28 20 70 74 72 2d 3e 6d 5f 44 65  wProc( ptr->m_De
1b30: 66 50 72 6f 63 2c 20 64 6c 67 2c 20 6d 73 67 2c  fProc, dlg, msg,
1b40: 20 77 70 2c 20 6c 70 20 29 3b 0d 0a 0d 0a 09 2f   wp, lp );...../
1b50: 2f 20 81 7e 83 7b 83 5e 83 93 82 cd 83 4c 83 83  / .~.{.^.....L..
1b60: 83 93 83 5a 83 8b 88 b5 82 a2 0d 0a 09 69 66 28  ...Z.........if(
1b70: 20 6d 73 67 3d 3d 57 4d 5f 53 59 53 43 4f 4d 4d   msg==WM_SYSCOMM
1b80: 41 4e 44 20 26 26 20 77 70 3d 3d 53 43 5f 43 4c  AND && wp==SC_CL
1b90: 4f 53 45 20 29 0d 0a 09 09 3a 3a 50 6f 73 74 4d  OSE )....::PostM
1ba0: 65 73 73 61 67 65 28 20 64 6c 67 2c 20 57 4d 5f  essage( dlg, WM_
1bb0: 43 4f 4d 4d 41 4e 44 2c 20 49 44 43 41 4e 43 45  COMMAND, IDCANCE
1bc0: 4c 2c 20 30 20 29 3b 0d 0a 0d 0a 09 2f 2f 20 83  L, 0 );.....// .
1bd0: 52 83 7d 83 93 83 68 8f 88 97 9d 0d 0a 09 65 6c  R.}...h.......el
1be0: 73 65 20 69 66 28 20 6d 73 67 3d 3d 57 4d 5f 43  se if( msg==WM_C
1bf0: 4f 4d 4d 41 4e 44 20 29 0d 0a 09 7b 0d 0a 09 09  OMMAND )...{....
1c00: 73 77 69 74 63 68 28 20 4c 4f 57 4f 52 44 28 77  switch( LOWORD(w
1c10: 70 29 20 29 0d 0a 09 09 7b 0d 0a 09 09 63 61 73  p) )....{....cas
1c20: 65 20 49 44 4f 4b 3a 0d 0a 09 09 09 69 66 28 20  e IDOK:.....if( 
1c30: 70 74 72 2d 3e 6f 6e 4f 4b 28 29 20 29 0d 0a 09  ptr->onOK() )...
1c40: 09 09 09 70 74 72 2d 3e 65 6e 64 28 20 49 44 4f  ...ptr->end( IDO
1c50: 4b 20 29 3b 0d 0a 09 09 09 72 65 74 75 72 6e 20  K );.....return 
1c60: 54 52 55 45 3b 0d 0a 09 09 63 61 73 65 20 49 44  TRUE;....case ID
1c70: 43 41 4e 43 45 4c 3a 0d 0a 09 09 09 69 66 28 20  CANCEL:.....if( 
1c80: 70 74 72 2d 3e 6f 6e 43 61 6e 63 65 6c 28 29 20  ptr->onCancel() 
1c90: 29 0d 0a 09 09 09 09 70 74 72 2d 3e 65 6e 64 28  )......ptr->end(
1ca0: 20 49 44 43 41 4e 43 45 4c 20 29 3b 0d 0a 09 09   IDCANCEL );....
1cb0: 09 72 65 74 75 72 6e 20 54 52 55 45 3b 0d 0a 09  .return TRUE;...
1cc0: 09 63 61 73 65 20 49 44 41 50 50 4c 59 3a 0d 0a  .case IDAPPLY:..
1cd0: 09 09 09 70 74 72 2d 3e 6f 6e 41 70 70 6c 79 28  ...ptr->onApply(
1ce0: 29 3b 0d 0a 09 09 09 62 72 65 61 6b 3b 0d 0a 09  );.....break;...
1cf0: 09 63 61 73 65 20 49 44 5f 4b 49 50 53 5f 48 45  .case ID_KIPS_HE
1d00: 4c 50 3a 0d 0a 09 09 09 70 74 72 2d 3e 6f 6e 48  LP:.....ptr->onH
1d10: 65 6c 70 28 29 3b 0d 0a 09 09 09 62 72 65 61 6b  elp();.....break
1d20: 3b 0d 0a 09 09 64 65 66 61 75 6c 74 3a 0d 0a 09  ;....default:...
1d30: 09 09 70 74 72 2d 3e 6f 6e 43 6f 6d 6d 61 6e 64  ..ptr->onCommand
1d40: 28 20 4c 4f 57 4f 52 44 28 77 70 29 20 29 3b 0d  ( LOWORD(wp) );.
1d50: 0a 09 09 09 62 72 65 61 6b 3b 0d 0a 09 09 7d 0d  ....break;....}.
1d60: 0a 09 7d 0d 0a 0d 0a 09 2f 2f 20 83 68 83 89 83  ..}.....// .h...
1d70: 62 83 4f 81 95 83 68 83 8d 83 62 83 76 0d 0a 09  b.O...h...b.v...
1d80: 65 6c 73 65 20 69 66 28 20 6d 73 67 3d 3d 57 4d  else if( msg==WM
1d90: 5f 44 52 4f 50 46 49 4c 45 53 20 29 0d 0a 09 09  _DROPFILES )....
1da0: 70 74 72 2d 3e 6f 6e 44 72 6f 70 28 20 28 48 44  ptr->onDrop( (HD
1db0: 52 4f 50 29 77 70 20 29 3b 0d 0a 0d 0a 09 72 65  ROP)wp );.....re
1dc0: 74 75 72 6e 20 72 65 73 75 6c 74 3b 0d 0a 7d 0d  turn result;..}.
1dd0: 0a 0d 0a 73 74 72 75 63 74 20 44 4c 47 54 45 4d  ...struct DLGTEM
1de0: 50 4c 41 54 45 45 58 0d 0a 7b 0d 0a 20 20 20 20  PLATEEX..{..    
1df0: 57 4f 52 44 20 64 6c 67 56 65 72 3b 0d 0a 20 20  WORD dlgVer;..  
1e00: 20 20 57 4f 52 44 20 73 69 67 6e 61 74 75 72 65    WORD signature
1e10: 3b 0d 0a 20 20 20 20 44 57 4f 52 44 20 68 65 6c  ;..    DWORD hel
1e20: 70 49 44 3b 0d 0a 20 20 20 20 44 57 4f 52 44 20  pID;..    DWORD 
1e30: 65 78 53 74 79 6c 65 3b 0d 0a 20 20 20 20 44 57  exStyle;..    DW
1e40: 4f 52 44 20 73 74 79 6c 65 3b 0d 0a 20 20 20 20  ORD style;..    
1e50: 57 4f 52 44 20 63 44 6c 67 49 74 65 6d 73 3b 0d  WORD cDlgItems;.
1e60: 0a 20 20 20 20 73 68 6f 72 74 20 78 3b 0d 0a 20  .    short x;.. 
1e70: 20 20 20 73 68 6f 72 74 20 79 3b 0d 0a 20 20 20     short y;..   
1e80: 20 73 68 6f 72 74 20 63 78 3b 0d 0a 20 20 20 20   short cx;..    
1e90: 73 68 6f 72 74 20 63 79 3b 0d 0a 7d 3b 0d 0a 0d  short cy;..};...
1ea0: 0a 69 6e 74 20 43 41 4c 4c 42 41 43 4b 20 6b 69  .int CALLBACK ki
1eb0: 50 72 6f 70 53 68 65 65 74 3a 3a 6d 61 69 6e 5f  PropSheet::main_
1ec0: 69 6e 69 74 50 72 6f 63 28 20 48 57 4e 44 20 64  initProc( HWND d
1ed0: 6c 67 2c 20 55 49 4e 54 20 6d 73 67 2c 20 4c 50  lg, UINT msg, LP
1ee0: 41 52 41 4d 20 6c 70 20 29 0d 0a 7b 0d 0a 09 69  ARAM lp )..{...i
1ef0: 66 28 20 6d 73 67 20 3d 3d 20 50 53 43 42 5f 50  f( msg == PSCB_P
1f00: 52 45 43 52 45 41 54 45 20 29 0d 0a 09 7b 0d 0a  RECREATE )...{..
1f10: 09 09 2f 2f 20 83 58 83 5e 83 43 83 8b 82 f0 8e  ..// .X.^.C.....
1f20: 77 82 b7 44 57 4f 52 44 82 cc 83 41 83 68 83 8c  w..DWORD...A.h..
1f30: 83 58 82 f0 8e e6 93 be 0d 0a 09 09 44 57 4f 52  .X..........DWOR
1f40: 44 2a 20 70 73 74 20 3d 20 28 20 30 78 66 66 66  D* pst = ( 0xfff
1f50: 66 3d 3d 28 28 44 4c 47 54 45 4d 50 4c 41 54 45  f==((DLGTEMPLATE
1f60: 45 58 2a 29 6c 70 29 2d 3e 73 69 67 6e 61 74 75  EX*)lp)->signatu
1f70: 72 65 20 29 20 3f 20 0d 0a 09 09 09 09 09 09 26  re ) ? ........&
1f80: 28 28 28 44 4c 47 54 45 4d 50 4c 41 54 45 45 58  (((DLGTEMPLATEEX
1f90: 2a 29 6c 70 29 2d 3e 73 74 79 6c 65 29 20 3a 20  *)lp)->style) : 
1fa0: 26 28 28 28 44 4c 47 54 45 4d 50 4c 41 54 45 2a  &(((DLGTEMPLATE*
1fb0: 29 6c 70 29 2d 3e 73 74 79 6c 65 29 3b 0d 0a 09  )lp)->style);...
1fc0: 09 2f 2f 20 83 77 83 8b 83 76 83 7b 83 5e 83 93  .// .w...v.{.^..
1fd0: 82 f0 8f c1 82 b5 82 c4 8d c5 8f ac 89 bb 83 7b  ...............{
1fe0: 83 5e 83 93 82 f0 95 74 82 af 82 e9 0d 0a 09 09  .^.....t........
1ff0: 28 2a 70 73 74 29 20 26 3d 20 7e 44 53 5f 43 4f  (*pst) &= ~DS_CO
2000: 4e 54 45 58 54 48 45 4c 50 3b 0d 0a 09 09 28 2a  NTEXTHELP;....(*
2010: 70 73 74 29 20 7c 3d 20 20 57 53 5f 4d 49 4e 49  pst) |=  WS_MINI
2020: 4d 49 5a 45 42 4f 58 3b 0d 0a 0d 0a 09 09 70 72  MIZEBOX;......pr
2030: 65 43 72 65 61 74 65 28 20 73 74 5f 43 75 72 49  eCreate( st_CurI
2040: 6e 69 74 50 53 20 29 3b 0d 0a 20 20 20 20 7d 0d  nitPS );..    }.
2050: 0a 09 65 6c 73 65 20 69 66 28 20 6d 73 67 20 3d  ..else if( msg =
2060: 3d 20 50 53 43 42 5f 49 4e 49 54 49 41 4c 49 5a  = PSCB_INITIALIZ
2070: 45 44 20 29 0d 0a 09 7b 0d 0a 09 09 2f 2f 20 89  ED )...{....// .
2080: bd 8c cc 82 a9 8f 6f 97 88 82 c4 82 b5 82 dc 82  ......o.........
2090: a4 97 5d 8c 76 82 c8 83 81 83 6a 83 85 81 5b 82  ..].v.....j...[.
20a0: f0 8d ed 8f 9c 0d 0a 09 09 48 4d 45 4e 55 20 73  .........HMENU s
20b0: 79 73 6d 20 3d 20 3a 3a 47 65 74 53 79 73 74 65  ysm = ::GetSyste
20c0: 6d 4d 65 6e 75 28 20 64 6c 67 2c 20 46 41 4c 53  mMenu( dlg, FALS
20d0: 45 20 29 3b 0d 0a 09 09 3a 3a 44 65 6c 65 74 65  E );....::Delete
20e0: 4d 65 6e 75 28 20 73 79 73 6d 2c 20 53 43 5f 53  Menu( sysm, SC_S
20f0: 49 5a 45 2c 20 4d 46 5f 42 59 43 4f 4d 4d 41 4e  IZE, MF_BYCOMMAN
2100: 44 20 29 3b 0d 0a 09 09 3a 3a 44 65 6c 65 74 65  D );....::Delete
2110: 4d 65 6e 75 28 20 73 79 73 6d 2c 20 53 43 5f 4d  Menu( sysm, SC_M
2120: 41 58 49 4d 49 5a 45 2c 20 4d 46 5f 42 59 43 4f  AXIMIZE, MF_BYCO
2130: 4d 4d 41 4e 44 20 29 3b 0d 0a 0d 0a 09 09 2f 2f  MMAND );......//
2140: 20 8b 4e 93 ae 8e 9e 82 cd 83 45 83 43 83 93 83   .N.......E.C...
2150: 68 83 45 82 f0 95 4b 82 b8 91 4f 96 ca 82 d6 0d  h.E...K...O.....
2160: 0a 09 09 73 65 74 46 72 6f 6e 74 28 20 64 6c 67  ...setFront( dlg
2170: 20 29 3b 0d 0a 0d 0a 09 09 2f 2f 83 54 83 75 83   );......//.T.u.
2180: 4e 83 89 83 58 89 bb 82 b7 82 e9 0d 0a 09 09 73  N...X..........s
2190: 74 5f 43 75 72 49 6e 69 74 50 53 2d 3e 6d 5f 44  t_CurInitPS->m_D
21a0: 65 66 50 72 6f 63 20 3d 20 28 57 4e 44 50 52 4f  efProc = (WNDPRO
21b0: 43 29 3a 3a 53 65 74 57 69 6e 64 6f 77 4c 6f 6e  C)::SetWindowLon
21c0: 67 28 20 64 6c 67 2c 20 47 57 4c 5f 57 4e 44 50  g( dlg, GWL_WNDP
21d0: 52 4f 43 2c 20 28 4c 4f 4e 47 29 6d 61 69 6e 5f  ROC, (LONG)main_
21e0: 63 6d 6d 6e 50 72 6f 63 20 29 3b 0d 0a 09 09 73  cmmnProc );....s
21f0: 74 5f 43 75 72 49 6e 69 74 50 53 2d 3e 6f 6e 49  t_CurInitPS->onI
2200: 6e 69 74 28 29 3b 0d 0a 09 7d 0d 0a 09 72 65 74  nit();...}...ret
2210: 75 72 6e 20 30 3b 0d 0a 7d 0d 0a 0d 0a 42 4f 4f  urn 0;..}....BOO
2220: 4c 20 6b 69 50 72 6f 70 53 68 65 65 74 3a 3a 70  L kiPropSheet::p
2230: 61 67 65 5f 63 6d 6d 6e 50 72 6f 63 28 20 48 57  age_cmmnProc( HW
2240: 4e 44 20 64 6c 67 2c 20 55 49 4e 54 20 6d 73 67  ND dlg, UINT msg
2250: 2c 20 57 50 41 52 41 4d 20 77 70 2c 20 4c 50 41  , WPARAM wp, LPA
2260: 52 41 4d 20 6c 70 20 29 0d 0a 7b 0d 0a 09 6b 69  RAM lp )..{...ki
2270: 50 72 6f 70 53 68 65 65 74 50 61 67 65 2a 20 70  PropSheetPage* p
2280: 74 72 20 3d 20 28 6b 69 50 72 6f 70 53 68 65 65  tr = (kiPropShee
2290: 74 50 61 67 65 2a 29 3a 3a 47 65 74 57 69 6e 64  tPage*)::GetWind
22a0: 6f 77 4c 6f 6e 67 28 20 64 6c 67 2c 20 47 57 4c  owLong( dlg, GWL
22b0: 5f 55 53 45 52 44 41 54 41 20 29 3b 0d 0a 09 69  _USERDATA );...i
22c0: 66 28 20 21 70 74 72 20 29 0d 0a 09 09 72 65 74  f( !ptr )....ret
22d0: 75 72 6e 20 46 41 4c 53 45 3b 0d 0a 0d 0a 09 2f  urn FALSE;...../
22e0: 2f 20 82 b1 82 b1 82 c5 81 41 8b a4 92 ca 8f 88  / .......A......
22f0: 97 9d 0d 0a 09 73 77 69 74 63 68 28 20 6d 73 67  .....switch( msg
2300: 20 29 0d 0a 09 7b 0d 0a 09 63 61 73 65 20 57 4d   )...{...case WM
2310: 5f 49 4e 49 54 44 49 41 4c 4f 47 3a 0d 0a 09 09  _INITDIALOG:....
2320: 72 65 74 75 72 6e 20 70 74 72 2d 3e 6f 6e 49 6e  return ptr->onIn
2330: 69 74 28 29 3b 0d 0a 0d 0a 09 63 61 73 65 20 57  it();.....case W
2340: 4d 5f 4e 4f 54 49 46 59 3a 0d 0a 09 09 73 77 69  M_NOTIFY:....swi
2350: 74 63 68 28 20 28 28 4e 4d 48 44 52 2a 29 6c 70  tch( ((NMHDR*)lp
2360: 29 2d 3e 63 6f 64 65 20 29 0d 0a 09 09 7b 0d 0a  )->code )....{..
2370: 09 09 63 61 73 65 20 50 53 4e 5f 41 50 50 4c 59  ..case PSN_APPLY
2380: 3a 0d 0a 09 09 09 70 74 72 2d 3e 6f 6e 4f 4b 28  :.....ptr->onOK(
2390: 29 3b 0d 0a 09 09 09 72 65 74 75 72 6e 20 54 52  );.....return TR
23a0: 55 45 3b 0d 0a 09 09 7d 0d 0a 09 09 62 72 65 61  UE;....}....brea
23b0: 6b 3b 0d 0a 0d 0a 09 63 61 73 65 20 57 4d 5f 43  k;.....case WM_C
23c0: 4f 4d 4d 41 4e 44 3a 0d 0a 09 09 69 66 28 20 6c  OMMAND:....if( l
23d0: 70 20 29 0d 0a 09 09 09 73 77 69 74 63 68 28 20  p ).....switch( 
23e0: 48 49 57 4f 52 44 28 77 70 29 20 29 0d 0a 09 09  HIWORD(wp) )....
23f0: 09 7b 0d 0a 09 09 09 63 61 73 65 20 42 4e 5f 43  .{.....case BN_C
2400: 4c 49 43 4b 45 44 3a 0d 0a 09 09 09 69 66 28 28  LICKED:.....if((
2410: 48 57 4e 44 29 6c 70 3d 3d 3a 3a 47 65 74 46 6f  HWND)lp==::GetFo
2420: 63 75 73 28 29 29 0d 0a 09 09 09 63 61 73 65 20  cus()).....case 
2430: 45 4e 5f 43 48 41 4e 47 45 3a 0d 0a 09 09 09 63  EN_CHANGE:.....c
2440: 61 73 65 20 43 42 4e 5f 53 45 4c 43 48 41 4e 47  ase CBN_SELCHANG
2450: 45 3a 0d 0a 09 09 09 09 50 72 6f 70 53 68 65 65  E:......PropShee
2460: 74 5f 43 68 61 6e 67 65 64 28 20 70 74 72 2d 3e  t_Changed( ptr->
2470: 70 61 72 65 6e 74 28 29 2d 3e 68 77 6e 64 28 29  parent()->hwnd()
2480: 2c 20 64 6c 67 20 29 3b 0d 0a 09 09 09 7d 0d 0a  , dlg );.....}..
2490: 09 09 62 72 65 61 6b 3b 0d 0a 0d 0a 09 63 61 73  ..break;.....cas
24a0: 65 20 57 4d 5f 44 45 53 54 52 4f 59 3a 0d 0a 09  e WM_DESTROY:...
24b0: 09 42 4f 4f 4c 20 61 6e 73 3d 70 74 72 2d 3e 70  .BOOL ans=ptr->p
24c0: 72 6f 63 28 20 6d 73 67 2c 20 77 70 2c 20 6c 70  roc( msg, wp, lp
24d0: 20 29 3b 0d 0a 09 09 70 74 72 2d 3e 64 65 74 61   );....ptr->deta
24e0: 63 68 48 77 6e 64 28 29 3b 0d 0a 09 09 72 65 74  chHwnd();....ret
24f0: 75 72 6e 20 61 6e 73 3b 0d 0a 09 7d 0d 0a 0d 0a  urn ans;...}....
2500: 09 72 65 74 75 72 6e 20 70 74 72 2d 3e 70 72 6f  .return ptr->pro
2510: 63 28 20 6d 73 67 2c 20 77 70 2c 20 6c 70 20 29  c( msg, wp, lp )
2520: 3b 0d 0a 7d 0d 0a 0d 0a 55 49 4e 54 20 43 41 4c  ;..}....UINT CAL
2530: 4c 42 41 43 4b 20 6b 69 50 72 6f 70 53 68 65 65  LBACK kiPropShee
2540: 74 3a 3a 70 61 67 65 5f 69 6e 69 74 50 72 6f 63  t::page_initProc
2550: 28 20 48 57 4e 44 20 64 6c 67 2c 20 55 49 4e 54  ( HWND dlg, UINT
2560: 20 6d 73 67 2c 20 4c 50 50 52 4f 50 53 48 45 45   msg, LPPROPSHEE
2570: 54 50 41 47 45 20 70 70 73 70 20 29 0d 0a 7b 0d  TPAGE ppsp )..{.
2580: 0a 09 69 66 28 20 6d 73 67 20 3d 3d 20 50 53 50  ..if( msg == PSP
2590: 43 42 5f 43 52 45 41 54 45 20 29 0d 0a 09 09 70  CB_CREATE )....p
25a0: 72 65 43 72 65 61 74 65 28 20 28 6b 69 57 69 6e  reCreate( (kiWin
25b0: 64 6f 77 2a 29 28 70 70 73 70 2d 3e 6c 50 61 72  dow*)(ppsp->lPar
25c0: 61 6d 29 20 29 3b 0d 0a 09 72 65 74 75 72 6e 20  am) );...return 
25d0: 54 52 55 45 3b 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64  TRUE;..}....void
25e0: 20 6b 69 50 72 6f 70 53 68 65 65 74 50 61 67 65   kiPropSheetPage
25f0: 3a 3a 73 65 74 49 6e 66 6f 28 20 50 52 4f 50 53  ::setInfo( PROPS
2600: 48 45 45 54 50 41 47 45 2a 20 70 20 29 0d 0a 7b  HEETPAGE* p )..{
2610: 0d 0a 09 70 2d 3e 70 73 7a 54 65 6d 70 6c 61 74  ...p->pszTemplat
2620: 65 20 3d 20 4d 41 4b 45 49 4e 54 52 45 53 4f 55  e = MAKEINTRESOU
2630: 52 43 45 28 20 67 65 74 52 73 72 63 49 44 28 29  RCE( getRsrcID()
2640: 20 29 3b 0d 0a 09 70 2d 3e 6c 50 61 72 61 6d 20   );...p->lParam 
2650: 20 20 20 20 20 3d 20 28 4c 50 41 52 41 4d 29 74       = (LPARAM)t
2660: 68 69 73 3b 0d 0a 0d 0a 09 69 66 28 20 6d 5f 68  his;.....if( m_h
2670: 49 63 6f 6e 20 29 0d 0a 09 7b 0d 0a 09 09 70 2d  Icon )...{....p-
2680: 3e 64 77 46 6c 61 67 73 7c 3d 20 50 53 50 5f 55  >dwFlags|= PSP_U
2690: 53 45 48 49 43 4f 4e 3b 0d 0a 09 09 70 2d 3e 68  SEHICON;....p->h
26a0: 49 63 6f 6e 20 3d 20 6d 5f 68 49 63 6f 6e 3b 0d  Icon = m_hIcon;.
26b0: 0a 09 7d 0d 0a 7d 0d 0a 0d 0a                    ..}..}....