Hex Artifact Content

Not logged in

Artifact 6f13d2b44d31dee8be4e249abe2479a24e875a66:


0000: 23 69 66 6e 64 65 66 20 5f 4b 49 4c 49 42 5f 41  #ifndef _KILIB_A
0010: 50 50 5f 48 5f 0d 0a 23 64 65 66 69 6e 65 20 5f  PP_H_..#define _
0020: 4b 49 4c 49 42 5f 41 50 50 5f 48 5f 0d 0a 23 69  KILIB_APP_H_..#i
0030: 6e 63 6c 75 64 65 20 22 74 79 70 65 73 2e 68 22  nclude "types.h"
0040: 0d 0a 23 69 6e 63 6c 75 64 65 20 22 6c 6f 67 2e  ..#include "log.
0050: 68 22 0d 0a 23 69 66 6e 64 65 66 20 5f 5f 63 63  h"..#ifndef __cc
0060: 64 6f 63 5f 5f 0d 0a 6e 61 6d 65 73 70 61 63 65  doc__..namespace
0070: 20 6b 69 20 7b 0d 0a 23 65 6e 64 69 66 0d 0a 0d   ki {..#endif...
0080: 0a 0d 0a 0d 0a 2f 2f 3d 3d 3d 3d 3d 3d 3d 3d 3d  .....//=========
0090: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
00a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
00b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
00c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
00d0: 0d 0a 2f 2f 40 7b 20 40 70 6b 67 20 6b 69 2e 43  ..//@{ @pkg ki.C
00e0: 6f 72 65 20 2f 2f 40 7d 0d 0a 2f 2f 40 7b 0d 0a  ore //@}..//@{..
00f0: 2f 2f 09 83 41 83 76 83 8a 83 50 81 5b 83 56 83  //..A.v...P.[.V.
0100: 87 83 93 91 53 91 cc 82 cc 93 9d 8a 87 0d 0a 2f  ....S........../
0110: 2f 0d 0a 2f 2f 09 83 41 83 76 83 8a 8b 4e 93 ae  /..//..A.v...N..
0120: 2f 8f 49 97 b9 97 70 8f 88 97 9d 82 f0 92 53 93  /.I...p.......S.
0130: 96 82 b5 82 dc 82 b7 81 42 0d 0a 2f 2f 09 8b 8c  ........B..//...
0140: 6b 69 6c 69 62 82 c6 88 e1 82 c1 82 c4 81 41 83  kilib.........A.
0150: 86 81 5b 83 55 81 5b 91 a4 82 cc 83 41 83 76 83  ..[.U.[.....A.v.
0160: 8a 83 50 81 5b 83 56 83 87 83 93 83 4e 83 89 83  ..P.[.V.....N...
0170: 58 82 f0 0d 0a 2f 2f 09 82 b1 82 b1 82 a9 82 e7  X....//.........
0180: 94 68 90 b6 82 b3 82 b9 82 e9 82 b1 82 c6 82 cd  .h..............
0190: 8f 6f 97 88 82 dc 82 b9 82 f1 81 42 83 86 81 5b  .o.........B...[
01a0: 83 55 81 5b 82 cc 83 52 81 5b 83 68 82 cd 81 41  .U.[...R.[.h...A
01b0: 0d 0a 2f 2f 09 95 4b 82 b8 20 6b 6d 61 69 6e 28  ..//..K.. kmain(
01c0: 29 20 82 c6 82 a2 82 a4 83 4f 83 8d 81 5b 83 6f  ) .......O...[.o
01d0: 83 8b 8a d6 90 94 82 a9 82 e7 8e c0 8d 73 8a 4a  .............s.J
01e0: 8e 6e 82 b3 82 ea 82 dc 82 b7 81 42 0d 0a 2f 2f  .n.........B..//
01f0: 09 82 b1 82 cc 41 70 70 83 4e 83 89 83 58 8e a9  .....App.N...X..
0200: 91 cc 82 cd 81 41 8e e5 82 c9 48 49 4e 53 54 41  .....A....HINSTA
0210: 4e 43 45 82 cc 8a c7 97 9d 82 f0 8d 73 82 a4 82  NCE.........s...
0220: be 82 af 81 42 0d 0a 2f 2f 40 7d 0d 0a 2f 2f 3d  ....B..//@}..//=
0230: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0240: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0250: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0260: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0270: 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 0d 0a 63 6c 61 73  ========....clas
0280: 73 20 41 70 70 0d 0a 7b 0d 0a 70 75 62 6c 69 63  s App..{..public
0290: 3a 0d 0a 0d 0a 09 65 6e 75 6d 20 69 6d 66 6c 61  :.....enum imfla
02a0: 67 20 7b 20 43 54 4c 3d 31 2c 20 43 4f 4d 3d 32  g { CTL=1, COM=2
02b0: 2c 20 4f 4c 45 3d 34 20 7d 3b 0d 0a 0d 0a 09 2f  , OLE=4 };...../
02c0: 2f 40 7b 0d 0a 09 2f 2f 09 8e ed 81 58 82 cc 83  /@{...//....X...
02d0: 82 83 57 83 85 81 5b 83 8b 82 f0 8f 89 8a fa 89  ..W...[.........
02e0: bb 82 b7 82 e9 0d 0a 09 2f 2f 0d 0a 09 2f 2f 09  ........//...//.
02f0: 82 b1 82 ea 82 c5 8f 89 8a fa 89 bb 82 b5 82 c4  ................
0300: 82 a8 82 ad 82 c6 81 41 41 70 70 8f 49 97 b9 8e  .......AApp.I...
0310: 9e 82 c9 8e a9 93 ae 82 c5 0d 0a 09 2f 2f 09 8f  ............//..
0320: 49 97 b9 8f 88 97 9d 82 aa 8d 73 82 ed 82 ea 82  I.........s.....
0330: e9 82 cc 82 c5 8a c8 92 50 95 d6 97 98 82 c5 82  ........P.......
0340: b2 82 b4 82 a2 82 dc 82 b7 81 42 0d 0a 09 2f 2f  ..........B...//
0350: 09 40 70 61 72 61 6d 20 77 68 61 74 20 43 54 4c  .@param what CTL
0360: 28 83 52 83 82 83 93 83 52 83 93 83 67 83 8d 81  (.R.....R...g...
0370: 5b 83 8b 29 81 41 43 4f 4d 81 41 4f 4c 45 0d 0a  [..).ACOM.AOLE..
0380: 09 2f 2f 40 7d 0d 0a 09 76 6f 69 64 20 49 6e 69  .//@}...void Ini
0390: 74 4d 6f 64 75 6c 65 28 20 69 6d 66 6c 61 67 20  tModule( imflag 
03a0: 77 68 61 74 20 29 3b 0d 0a 0d 0a 09 2f 2f 40 7b  what );.....//@{
03b0: 20 83 76 83 8d 83 5a 83 58 8b ad 90 a7 8f 49 97   .v...Z.X.....I.
03c0: b9 20 2f 2f 40 7d 0d 0a 09 76 6f 69 64 20 45 78  . //@}...void Ex
03d0: 69 74 28 20 69 6e 74 20 63 6f 64 65 20 29 3b 0d  it( int code );.
03e0: 0a 0d 0a 09 2f 2f 40 7b 20 83 8a 83 5c 81 5b 83  ....//@{ ...\.[.
03f0: 58 20 2f 2f 40 7d 0d 0a 09 48 41 43 43 45 4c 20  X //@}...HACCEL 
0400: 4c 6f 61 64 41 63 63 65 6c 28 20 4c 50 43 54 53  LoadAccel( LPCTS
0410: 54 52 20 6e 61 6d 65 20 29 3b 0d 0a 0d 0a 09 2f  TR name );...../
0420: 2f 40 7b 20 83 8a 83 5c 81 5b 83 58 20 2f 2f 40  /@{ ...\.[.X //@
0430: 7d 0d 0a 09 48 41 43 43 45 4c 20 4c 6f 61 64 41  }...HACCEL LoadA
0440: 63 63 65 6c 28 20 55 49 4e 54 20 69 64 20 29 3b  ccel( UINT id );
0450: 0d 0a 0d 0a 09 2f 2f 40 7b 20 83 8a 83 5c 81 5b  .....//@{ ...\.[
0460: 83 58 20 2f 2f 40 7d 0d 0a 09 48 42 49 54 4d 41  .X //@}...HBITMA
0470: 50 20 4c 6f 61 64 42 69 74 6d 61 70 28 20 4c 50  P LoadBitmap( LP
0480: 43 54 53 54 52 20 6e 61 6d 65 20 29 3b 0d 0a 0d  CTSTR name );...
0490: 0a 09 2f 2f 40 7b 20 83 8a 83 5c 81 5b 83 58 20  ..//@{ ...\.[.X 
04a0: 2f 2f 40 7d 0d 0a 09 48 42 49 54 4d 41 50 20 4c  //@}...HBITMAP L
04b0: 6f 61 64 42 69 74 6d 61 70 28 20 55 49 4e 54 20  oadBitmap( UINT 
04c0: 69 64 20 29 3b 0d 0a 0d 0a 09 2f 2f 40 7b 20 83  id );.....//@{ .
04d0: 8a 83 5c 81 5b 83 58 28 4f 42 4d 5f 58 58 58 58  ..\.[.X(OBM_XXXX
04e0: 29 20 2f 2f 40 7d 0d 0a 09 48 42 49 54 4d 41 50  ) //@}...HBITMAP
04f0: 20 4c 6f 61 64 4f 65 6d 42 69 74 6d 61 70 28 20   LoadOemBitmap( 
0500: 4c 50 43 54 53 54 52 20 6f 62 6d 20 29 3b 0d 0a  LPCTSTR obm );..
0510: 0d 0a 09 2f 2f 40 7b 20 83 8a 83 5c 81 5b 83 58  ...//@{ ...\.[.X
0520: 20 2f 2f 40 7d 0d 0a 09 48 43 55 52 53 4f 52 20   //@}...HCURSOR 
0530: 4c 6f 61 64 43 75 72 73 6f 72 28 20 4c 50 43 54  LoadCursor( LPCT
0540: 53 54 52 20 6e 61 6d 65 20 29 3b 0d 0a 0d 0a 09  STR name );.....
0550: 2f 2f 40 7b 20 83 8a 83 5c 81 5b 83 58 20 2f 2f  //@{ ...\.[.X //
0560: 40 7d 0d 0a 09 48 43 55 52 53 4f 52 20 4c 6f 61  @}...HCURSOR Loa
0570: 64 43 75 72 73 6f 72 28 20 55 49 4e 54 20 69 64  dCursor( UINT id
0580: 20 29 3b 0d 0a 0d 0a 09 2f 2f 40 7b 20 83 8a 83   );.....//@{ ...
0590: 5c 81 5b 83 58 28 49 44 43 5f 58 58 58 58 29 20  \.[.X(IDC_XXXX) 
05a0: 2f 2f 40 7d 0d 0a 09 48 43 55 52 53 4f 52 20 4c  //@}...HCURSOR L
05b0: 6f 61 64 4f 65 6d 43 75 72 73 6f 72 28 20 4c 50  oadOemCursor( LP
05c0: 43 54 53 54 52 20 69 64 63 20 29 3b 0d 0a 0d 0a  CTSTR idc );....
05d0: 09 2f 2f 40 7b 20 83 8a 83 5c 81 5b 83 58 20 2f  .//@{ ...\.[.X /
05e0: 2f 40 7d 0d 0a 09 48 49 43 4f 4e 20 4c 6f 61 64  /@}...HICON Load
05f0: 49 63 6f 6e 28 20 4c 50 43 54 53 54 52 20 6e 61  Icon( LPCTSTR na
0600: 6d 65 20 29 3b 0d 0a 0d 0a 09 2f 2f 40 7b 20 83  me );.....//@{ .
0610: 8a 83 5c 81 5b 83 58 20 2f 2f 40 7d 0d 0a 09 48  ..\.[.X //@}...H
0620: 49 43 4f 4e 20 4c 6f 61 64 49 63 6f 6e 28 20 55  ICON LoadIcon( U
0630: 49 4e 54 20 69 64 20 29 3b 0d 0a 0d 0a 09 2f 2f  INT id );.....//
0640: 40 7b 20 83 8a 83 5c 81 5b 83 58 28 49 44 49 5f  @{ ...\.[.X(IDI_
0650: 58 58 58 58 29 20 2f 2f 40 7d 0d 0a 09 48 49 43  XXXX) //@}...HIC
0660: 4f 4e 20 4c 6f 61 64 4f 65 6d 49 63 6f 6e 28 20  ON LoadOemIcon( 
0670: 4c 50 43 54 53 54 52 20 69 64 69 20 29 3b 0d 0a  LPCTSTR idi );..
0680: 0d 0a 09 2f 2f 40 7b 20 83 8a 83 5c 81 5b 83 58  ...//@{ ...\.[.X
0690: 20 2f 2f 40 7d 0d 0a 09 48 4d 45 4e 55 20 4c 6f   //@}...HMENU Lo
06a0: 61 64 4d 65 6e 75 28 20 4c 50 43 54 53 54 52 20  adMenu( LPCTSTR 
06b0: 6e 61 6d 65 20 29 3b 0d 0a 0d 0a 09 2f 2f 40 7b  name );.....//@{
06c0: 20 83 8a 83 5c 81 5b 83 58 20 2f 2f 40 7d 0d 0a   ...\.[.X //@}..
06d0: 09 48 4d 45 4e 55 20 4c 6f 61 64 4d 65 6e 75 28  .HMENU LoadMenu(
06e0: 20 55 49 4e 54 20 69 64 20 29 3b 0d 0a 0d 0a 09   UINT id );.....
06f0: 2f 2f 40 7b 20 83 8a 83 5c 81 5b 83 58 20 2f 2f  //@{ ...\.[.X //
0700: 40 7d 0d 0a 09 69 6e 74 20 4c 6f 61 64 53 74 72  @}...int LoadStr
0710: 69 6e 67 28 20 55 49 4e 54 20 69 64 2c 20 4c 50  ing( UINT id, LP
0720: 54 53 54 52 20 62 75 66 2c 20 69 6e 74 20 73 69  TSTR buf, int si
0730: 7a 20 29 3b 0d 0a 0d 0a 70 75 62 6c 69 63 3a 0d  z );....public:.
0740: 0a 0d 0a 09 2f 2f 40 7b 20 83 43 83 93 83 58 83  ....//@{ .C...X.
0750: 5e 83 93 83 58 83 6e 83 93 83 68 83 8b 20 2f 2f  ^...X.n...h.. //
0760: 40 7d 0d 0a 09 48 49 4e 53 54 41 4e 43 45 20 68  @}...HINSTANCE h
0770: 69 6e 73 74 28 29 20 63 6f 6e 73 74 3b 0d 0a 0d  inst() const;...
0780: 0a 09 2f 2f 40 7b 20 57 69 6e 64 6f 77 73 82 cc  ..//@{ Windows..
0790: 83 6f 81 5b 83 57 83 87 83 93 20 2f 2f 40 7d 0d  .o.[.W.... //@}.
07a0: 0a 09 73 74 61 74 69 63 20 63 6f 6e 73 74 20 4f  ..static const O
07b0: 53 56 45 52 53 49 4f 4e 49 4e 46 4f 26 20 6f 73  SVERSIONINFO& os
07c0: 76 65 72 28 29 3b 0d 0a 09 73 74 61 74 69 63 20  ver();...static 
07d0: 62 6f 6f 6c 20 69 73 57 69 6e 39 35 28 29 3b 0d  bool isWin95();.
07e0: 0a 09 73 74 61 74 69 63 20 62 6f 6f 6c 20 69 73  ..static bool is
07f0: 4e 54 28 29 3b 0d 0a 09 73 74 61 74 69 63 20 62  NT();...static b
0800: 6f 6f 6c 20 69 73 4e 65 77 54 79 70 65 57 69 6e  ool isNewTypeWin
0810: 64 6f 77 73 28 29 3b 0d 0a 0d 0a 70 72 69 76 61  dows();....priva
0820: 74 65 3a 0d 0a 0d 0a 09 41 70 70 28 29 3b 0d 0a  te:.....App();..
0830: 09 7e 41 70 70 28 29 3b 0d 0a 09 76 6f 69 64 20  .~App();...void 
0840: 53 65 74 45 78 69 74 43 6f 64 65 28 20 69 6e 74  SetExitCode( int
0850: 20 63 6f 64 65 20 29 3b 0d 0a 0d 0a 70 72 69 76   code );....priv
0860: 61 74 65 3a 0d 0a 0d 0a 09 69 6e 74 20 20 20 20  ate:.....int    
0870: 20 20 20 20 20 20 20 20 20 65 78 69 74 63 6f 64           exitcod
0880: 65 5f 3b 0d 0a 09 75 6c 6f 6e 67 20 20 20 20 20  e_;...ulong     
0890: 20 20 20 20 20 20 6c 6f 61 64 65 64 4d 6f 64 75        loadedModu
08a0: 6c 65 5f 3b 0d 0a 09 63 6f 6e 73 74 20 48 49 4e  le_;...const HIN
08b0: 53 54 41 4e 43 45 20 68 49 6e 73 74 5f 3b 0d 0a  STANCE hInst_;..
08c0: 09 73 74 61 74 69 63 20 41 70 70 2a 20 20 20 20  .static App*    
08d0: 20 70 55 6e 69 71 75 65 49 6e 73 74 61 6e 63 65   pUniqueInstance
08e0: 5f 3b 0d 0a 0d 0a 70 72 69 76 61 74 65 3a 0d 0a  _;....private:..
08f0: 0d 0a 09 66 72 69 65 6e 64 20 76 6f 69 64 20 41  ...friend void A
0900: 50 49 45 4e 54 52 59 20 53 74 61 72 74 75 70 28  PIENTRY Startup(
0910: 29 3b 0d 0a 09 66 72 69 65 6e 64 20 69 6e 6c 69  );...friend inli
0920: 6e 65 20 41 70 70 26 20 61 70 70 28 29 3b 0d 0a  ne App& app();..
0930: 09 4e 4f 43 4f 50 59 28 41 70 70 29 3b 0d 0a 7d  .NOCOPY(App);..}
0940: 3b 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d  ;........//-----
0950: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0960: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0970: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0980: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0990: 2d 2d 2d 2d 0d 0a 0d 0a 2f 2f 40 7b 20 97 42 88  ----....//@{ .B.
09a0: ea 82 cc 83 41 83 76 83 8a 8f ee 95 f1 83 49 83  ....A.v.......I.
09b0: 75 83 57 83 46 83 4e 83 67 82 f0 95 d4 82 b7 20  u.W.F.N.g...... 
09c0: 2f 2f 40 7d 0d 0a 69 6e 6c 69 6e 65 20 41 70 70  //@}..inline App
09d0: 26 20 61 70 70 28 29 0d 0a 09 7b 20 72 65 74 75  & app()...{ retu
09e0: 72 6e 20 2a 41 70 70 3a 3a 70 55 6e 69 71 75 65  rn *App::pUnique
09f0: 49 6e 73 74 61 6e 63 65 5f 3b 20 7d 0d 0a 0d 0a  Instance_; }....
0a00: 69 6e 6c 69 6e 65 20 48 41 43 43 45 4c 20 41 70  inline HACCEL Ap
0a10: 70 3a 3a 4c 6f 61 64 41 63 63 65 6c 28 20 4c 50  p::LoadAccel( LP
0a20: 43 54 53 54 52 20 6e 61 6d 65 20 29 0d 0a 09 7b  CTSTR name )...{
0a30: 20 72 65 74 75 72 6e 20 3a 3a 4c 6f 61 64 41 63   return ::LoadAc
0a40: 63 65 6c 65 72 61 74 6f 72 73 28 20 68 49 6e 73  celerators( hIns
0a50: 74 5f 2c 20 6e 61 6d 65 20 29 3b 20 7d 0d 0a 0d  t_, name ); }...
0a60: 0a 69 6e 6c 69 6e 65 20 48 41 43 43 45 4c 20 41  .inline HACCEL A
0a70: 70 70 3a 3a 4c 6f 61 64 41 63 63 65 6c 28 20 55  pp::LoadAccel( U
0a80: 49 4e 54 20 69 64 20 29 0d 0a 09 7b 20 72 65 74  INT id )...{ ret
0a90: 75 72 6e 20 3a 3a 4c 6f 61 64 41 63 63 65 6c 65  urn ::LoadAccele
0aa0: 72 61 74 6f 72 73 28 20 68 49 6e 73 74 5f 2c 20  rators( hInst_, 
0ab0: 4d 41 4b 45 49 4e 54 52 45 53 4f 55 52 43 45 28  MAKEINTRESOURCE(
0ac0: 69 64 29 20 29 3b 20 7d 0d 0a 0d 0a 69 6e 6c 69  id) ); }....inli
0ad0: 6e 65 20 48 42 49 54 4d 41 50 20 41 70 70 3a 3a  ne HBITMAP App::
0ae0: 4c 6f 61 64 42 69 74 6d 61 70 28 20 4c 50 43 54  LoadBitmap( LPCT
0af0: 53 54 52 20 6e 61 6d 65 20 29 0d 0a 09 7b 20 72  STR name )...{ r
0b00: 65 74 75 72 6e 20 3a 3a 4c 6f 61 64 42 69 74 6d  eturn ::LoadBitm
0b10: 61 70 28 20 68 49 6e 73 74 5f 2c 20 6e 61 6d 65  ap( hInst_, name
0b20: 20 29 3b 20 7d 0d 0a 0d 0a 69 6e 6c 69 6e 65 20   ); }....inline 
0b30: 48 42 49 54 4d 41 50 20 41 70 70 3a 3a 4c 6f 61  HBITMAP App::Loa
0b40: 64 42 69 74 6d 61 70 28 20 55 49 4e 54 20 69 64  dBitmap( UINT id
0b50: 20 29 0d 0a 09 7b 20 72 65 74 75 72 6e 20 3a 3a   )...{ return ::
0b60: 4c 6f 61 64 42 69 74 6d 61 70 28 20 68 49 6e 73  LoadBitmap( hIns
0b70: 74 5f 2c 20 4d 41 4b 45 49 4e 54 52 45 53 4f 55  t_, MAKEINTRESOU
0b80: 52 43 45 28 69 64 29 20 29 3b 20 7d 0d 0a 0d 0a  RCE(id) ); }....
0b90: 69 6e 6c 69 6e 65 20 48 42 49 54 4d 41 50 20 41  inline HBITMAP A
0ba0: 70 70 3a 3a 4c 6f 61 64 4f 65 6d 42 69 74 6d 61  pp::LoadOemBitma
0bb0: 70 28 20 4c 50 43 54 53 54 52 20 6f 62 6d 20 29  p( LPCTSTR obm )
0bc0: 0d 0a 09 7b 20 72 65 74 75 72 6e 20 3a 3a 4c 6f  ...{ return ::Lo
0bd0: 61 64 42 69 74 6d 61 70 28 20 4e 55 4c 4c 2c 20  adBitmap( NULL, 
0be0: 6f 62 6d 20 29 3b 20 7d 0d 0a 0d 0a 69 6e 6c 69  obm ); }....inli
0bf0: 6e 65 20 48 43 55 52 53 4f 52 20 41 70 70 3a 3a  ne HCURSOR App::
0c00: 4c 6f 61 64 43 75 72 73 6f 72 28 20 4c 50 43 54  LoadCursor( LPCT
0c10: 53 54 52 20 6e 61 6d 65 20 29 0d 0a 09 7b 20 72  STR name )...{ r
0c20: 65 74 75 72 6e 20 3a 3a 4c 6f 61 64 43 75 72 73  eturn ::LoadCurs
0c30: 6f 72 28 20 68 49 6e 73 74 5f 2c 20 6e 61 6d 65  or( hInst_, name
0c40: 20 29 3b 20 7d 0d 0a 0d 0a 69 6e 6c 69 6e 65 20   ); }....inline 
0c50: 48 43 55 52 53 4f 52 20 41 70 70 3a 3a 4c 6f 61  HCURSOR App::Loa
0c60: 64 43 75 72 73 6f 72 28 20 55 49 4e 54 20 69 64  dCursor( UINT id
0c70: 20 29 0d 0a 09 7b 20 72 65 74 75 72 6e 20 3a 3a   )...{ return ::
0c80: 4c 6f 61 64 43 75 72 73 6f 72 28 20 68 49 6e 73  LoadCursor( hIns
0c90: 74 5f 2c 20 4d 41 4b 45 49 4e 54 52 45 53 4f 55  t_, MAKEINTRESOU
0ca0: 52 43 45 28 69 64 29 20 29 3b 20 7d 0d 0a 0d 0a  RCE(id) ); }....
0cb0: 69 6e 6c 69 6e 65 20 48 43 55 52 53 4f 52 20 41  inline HCURSOR A
0cc0: 70 70 3a 3a 4c 6f 61 64 4f 65 6d 43 75 72 73 6f  pp::LoadOemCurso
0cd0: 72 28 20 4c 50 43 54 53 54 52 20 69 64 63 20 29  r( LPCTSTR idc )
0ce0: 0d 0a 09 7b 20 72 65 74 75 72 6e 20 3a 3a 4c 6f  ...{ return ::Lo
0cf0: 61 64 43 75 72 73 6f 72 28 20 4e 55 4c 4c 2c 20  adCursor( NULL, 
0d00: 69 64 63 20 29 3b 20 7d 0d 0a 0d 0a 69 6e 6c 69  idc ); }....inli
0d10: 6e 65 20 48 49 43 4f 4e 20 41 70 70 3a 3a 4c 6f  ne HICON App::Lo
0d20: 61 64 49 63 6f 6e 28 20 4c 50 43 54 53 54 52 20  adIcon( LPCTSTR 
0d30: 6e 61 6d 65 20 29 0d 0a 09 7b 20 72 65 74 75 72  name )...{ retur
0d40: 6e 20 3a 3a 4c 6f 61 64 49 63 6f 6e 28 20 68 49  n ::LoadIcon( hI
0d50: 6e 73 74 5f 2c 20 6e 61 6d 65 20 29 3b 20 7d 0d  nst_, name ); }.
0d60: 0a 0d 0a 69 6e 6c 69 6e 65 20 48 49 43 4f 4e 20  ...inline HICON 
0d70: 41 70 70 3a 3a 4c 6f 61 64 49 63 6f 6e 28 20 55  App::LoadIcon( U
0d80: 49 4e 54 20 69 64 20 29 0d 0a 09 7b 20 72 65 74  INT id )...{ ret
0d90: 75 72 6e 20 3a 3a 4c 6f 61 64 49 63 6f 6e 28 20  urn ::LoadIcon( 
0da0: 68 49 6e 73 74 5f 2c 20 4d 41 4b 45 49 4e 54 52  hInst_, MAKEINTR
0db0: 45 53 4f 55 52 43 45 28 69 64 29 20 29 3b 20 7d  ESOURCE(id) ); }
0dc0: 0d 0a 0d 0a 69 6e 6c 69 6e 65 20 48 49 43 4f 4e  ....inline HICON
0dd0: 20 41 70 70 3a 3a 4c 6f 61 64 4f 65 6d 49 63 6f   App::LoadOemIco
0de0: 6e 28 20 4c 50 43 54 53 54 52 20 69 64 69 20 29  n( LPCTSTR idi )
0df0: 0d 0a 09 7b 20 72 65 74 75 72 6e 20 3a 3a 4c 6f  ...{ return ::Lo
0e00: 61 64 49 63 6f 6e 28 20 4e 55 4c 4c 2c 20 69 64  adIcon( NULL, id
0e10: 69 20 29 3b 20 7d 0d 0a 0d 0a 69 6e 6c 69 6e 65  i ); }....inline
0e20: 20 48 4d 45 4e 55 20 41 70 70 3a 3a 4c 6f 61 64   HMENU App::Load
0e30: 4d 65 6e 75 28 20 4c 50 43 54 53 54 52 20 6e 61  Menu( LPCTSTR na
0e40: 6d 65 20 29 0d 0a 09 7b 20 72 65 74 75 72 6e 20  me )...{ return 
0e50: 3a 3a 4c 6f 61 64 4d 65 6e 75 28 20 68 49 6e 73  ::LoadMenu( hIns
0e60: 74 5f 2c 20 6e 61 6d 65 20 29 3b 20 7d 0d 0a 0d  t_, name ); }...
0e70: 0a 69 6e 6c 69 6e 65 20 48 4d 45 4e 55 20 41 70  .inline HMENU Ap
0e80: 70 3a 3a 4c 6f 61 64 4d 65 6e 75 28 20 55 49 4e  p::LoadMenu( UIN
0e90: 54 20 69 64 20 29 0d 0a 09 7b 20 72 65 74 75 72  T id )...{ retur
0ea0: 6e 20 3a 3a 4c 6f 61 64 4d 65 6e 75 28 20 68 49  n ::LoadMenu( hI
0eb0: 6e 73 74 5f 2c 20 4d 41 4b 45 49 4e 54 52 45 53  nst_, MAKEINTRES
0ec0: 4f 55 52 43 45 28 69 64 29 20 29 3b 20 7d 0d 0a  OURCE(id) ); }..
0ed0: 0d 0a 69 6e 6c 69 6e 65 20 69 6e 74 20 41 70 70  ..inline int App
0ee0: 3a 3a 4c 6f 61 64 53 74 72 69 6e 67 28 20 55 49  ::LoadString( UI
0ef0: 4e 54 20 69 64 2c 20 4c 50 54 53 54 52 20 62 75  NT id, LPTSTR bu
0f00: 66 2c 20 69 6e 74 20 73 69 7a 20 29 0d 0a 09 7b  f, int siz )...{
0f10: 20 72 65 74 75 72 6e 20 3a 3a 4c 6f 61 64 53 74   return ::LoadSt
0f20: 72 69 6e 67 28 20 68 49 6e 73 74 5f 2c 20 69 64  ring( hInst_, id
0f30: 2c 20 62 75 66 2c 20 73 69 7a 20 29 3b 20 7d 0d  , buf, siz ); }.
0f40: 0a 0d 0a 69 6e 6c 69 6e 65 20 48 49 4e 53 54 41  ...inline HINSTA
0f50: 4e 43 45 20 41 70 70 3a 3a 68 69 6e 73 74 28 29  NCE App::hinst()
0f60: 20 63 6f 6e 73 74 0d 0a 09 7b 20 72 65 74 75 72   const...{ retur
0f70: 6e 20 68 49 6e 73 74 5f 3b 20 7d 0d 0a 0d 0a 0d  n hInst_; }.....
0f80: 0a 0d 0a 2f 2f 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ...//===========
0f90: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0fa0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0fb0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0fc0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a  ==============..
0fd0: 0d 0a 7d 20 20 20 20 20 20 2f 2f 20 6e 61 6d 65  ..}      // name
0fe0: 73 70 61 63 65 20 6b 69 0d 0a 23 65 6e 64 69 66  space ki..#endif
0ff0: 20 2f 2f 20 5f 4b 49 4c 49 42 5f 41 50 50 5f 48   // _KILIB_APP_H
1000: 5f 0d 0a                                         _..