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