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 ..}..}....