ä»æ¥ã¯ç»æçãªåäºè©©ãããã¯ãã¥ã¶ãã¥ãŒãã£ãŒãã§ç§ãã¡ã«çŽæãããå倧ãªæªæ¥ã®30åšå¹Žãè¿ããã®ã§ãç§ãã¡ã¯è£œåãã©ã®ããã«èŠããä»æ¥ã®ãã®ãšæ¯èŒããããå°ãæãåºãããšã«ããŸããã
ç§ãã¡ã®éšéã¯éçºè ãšååããŠãããä»æ¥ã®äž»èŠãªè£œåã®1ã€ã¯Windows 10ãããæ£ç¢ºã«ã¯ãæ°ãããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãäžå¿ãšãããšã³ã·ã¹ãã ã®éçºãç¹ã«ãŠãããŒãµã«ã¢ããªã±ãŒã·ã§ã³ã®äœæã§ãã
ãã®ãããå°ãåã«æ»ããéçºããŒã«ãã³ãŒãäŸãSDKã30幎ã«ããã£ãŠã©ã®ããã«å€åãããã確èªããããšã«ããŸããã ãŸãããHello WorldããŠã£ã³ããŠã¢ããªã±ãŒã·ã§ã³ã®äœæãæ¯èŒããããšããããäœã瀺ãããšãã§ããŸããïŒ
Windows 1.0ããWindows 10ãž
Windows 10ã®ãªãªãŒã¹ã®å€ã«ãOnTheHubã®å人ãçŽ æŽãããã€ã³ãã©ã°ã©ãã£ãã¯ãçšæããŸããã ãã®ã€ã³ãã©ã°ã©ãã£ãã¯ããããªãã¬ãŒãã£ã³ã°ã·ã¹ãã èªäœã®é²è¡ç¶æ³ã远跡ã§ããŸãã
ã»ãšãã©ã®é£Œè²è ã¯èªåã®çµéšãããã®ç©èªã®éèŠãªéšåãããç¥ã£ãŠãããšæãã®ã§ãã³ãŒãã§äœãèµ·ãã£ãã®ãèŠãŠã¿ãŸãããã
Windows 1.0 SDK
Windowsã®æåã®ããŒãžã§ã³ã®SDKã¯ã7ã€ã®5ã€ã³ããããããŒãã£ã¹ã¯ã§é åžãããŸããã
ãŠã£ãããã£ã¢ã Charles PetzoldãåŒçšããŠããããã«ããWindows 1.0 SDKã®Hello Worldã®ãªãªãžãã«ããŒãžã§ã³ã¯å°ãã¹ãã£ã³ãã©ã¹ã§ããã HELLO.Cãã¡ã€ã«ã®é·ãã¯çŽ150è¡ã§ãHELLO.RCãªãœãŒã¹ã¹ã¯ãªããã¯ããã«20è¡ã§ãã...ããã©ã³ã®ããã°ã©ãã¯ãWindowsåãã®hello-worldããã°ã©ã ã«çŽé¢ãããšããã°ãã°ææã«é¡ãããããããéã«ç¬ã£ããããŸãã
10幎åããã£ãŒã«ãºã¯ããããSDKã®20åšå¹Žãæ³èµ·ãã 20幎åŸã«æ°ããããã°ã©ã ãäœæããããšããææ³ãšè©Šã¿ã«ã€ããŠã®æŽå²æ奜家åãã®éåžžã«ããããèšäºãæžããŸããã
åœæãIBMãDigital Researchãããã³Microsoftã¯ãããããã®ã·ã¹ãã ã®SDKããªãªãŒã¹ããŸããã 圌ãã¯çŽ500ãã«ã®è²»çšããããããããã¯ãã¹ãŠéåžžã«è€éã§ããããæ£çŽãªãšãããWindowsã¯æãéç«ã£ãŠããŸããã ããã¯å®ç§ã§ã¯ãããŸããã§ããããMicrosoftã¯Windowsã¢ããªã±ãŒã·ã§ã³ã®äœæã«æè³ããããã«ãåœæã®ããã«ç¬ç«ãããœãããŠã§ã¢éçºè ãæ¬åœã«æãã§ããããã«èŠããŸããã
7æã®ãã£ã¹ã±ããã«é 眮ãããŸããã
- ãŠãŒãã£ãªãã£-ã€ã³ã¹ããŒã«ããã³å®è¡å¯èœãã¡ã€ã«ãå«ã2æã®ãããããŒãã£ã¹ã¯
- EXEHDRãIMPLIBãLIBãLINK4ãMAKEãMAPSYMãRCãRCPPãSYMDEBãWINSTUB
- ãã€ã¢ãã°ããã©ã³ãç·šéãããããŠã©ãŒã¯ãã¢ã€ã³ã³ç·šéãã·ã§ãŒã«ãŒãSLAPJR
- 80Kbã®æåãªWindows.hãå«ãã©ã€ãã©ãªãšã€ã³ã¯ã«ãŒããã¡ã€ã«ïŒ -ãããããŒãã£ã¹ã¯2æ
- ãããã°çšã®æåãã¡ã€ã«ãšã©ã€ãã©ãª-1æã®ãã£ã¹ã±ãã
- ã³ãŒãäŸ-ãœãŒã¹ã«13åã®ã¢ããªã±ãŒã·ã§ã³ãå«ã2æã®ãããããŒãã£ã¹ã¯ïŒ
- ããã«ã¡ã¯-ãŠã£ã³ããŠã®äœæã
- TYPE-ããŒããŒãå ¥åãšããã¹ã衚瀺ã
- 圢ç¶-ã¡ãã¥ãŒã®æäœãšãŠã£ã³ããŠå ã®å³åœ¢ã®æç»ã
- ãã©ãã¯-ããŠã¹ã䜿çšããïŒããŠã¹ã䜿çšããå§ããã°ããã§ã倧è¡ãŠãŒã¶ãŒã«ã¯éŠŽæã¿ããªãã£ãããšãèŠããŠããŸããïŒïŒã
- FONTTEST-ãã€ã¢ãã°ããã¯ã¹ã®äœæãšãŠãŒã¶ãŒå ¥åã®åŠçããã©ã³ãã®æäœã
- TEMPLATE-ä»ã®ãã¹ãŠã®äººã®åºç€ãšããŠã®ç©ºã®ã¢ããªã±ãŒã·ã§ã³
- MAPMODES-äœçœ®ãšãµã€ãºãå€æŽããããŸããŸãªããŒã¿è¡šç€ºã¢ãŒãã
- SAMPLEã¯TEMPLATEãšåãã§ãããè¿œå ã®ã¡ãã¥ãŒé ç®ïŒ[ãã¡ã€ã«]ã[ç·šé]ïŒããã³æšæºã®ãã€ã¢ãã°ããã¯ã¹ãããã
- CLOCL-ã·ã¹ãã èªäœã®ã¯ããã¯ã¢ããªã±ãŒã·ã§ã³ã®é¡äŒŒç©ã§ãããããããã®æäœæ¹æ³ã瀺ããŸãã
- CARDFILE-Windowsã®ãã¡ã€ã«ãã£ãããããåããã¢ããªã±ãŒã·ã§ã³ã®é¡äŒŒç©ã§ããã«ã¹ã¯ãªãŒã³ã¢ãŒãã§åäœããŸãã
- MUZZLEã¯pascalã®ã¢ããªã±ãŒã·ã§ã³ã§ããŠã£ã³ããŠã䜿çšããäœæ¥ã®äœæã瀺ããŸãã
æåŸã®äŸãé€ããã¹ãŠã®äŸã¯Cã§èšè¿°ãããŠãããã¢ã»ã³ãã©ãŒã«æ¿å ¥ãããå ŽåããããŸãã
ãŠãŒãã£ãªãã£ã«ã¯ããMicrosoft Cã³ã³ãã€ã©3.0ã®ç¹å¥ããŒãžã§ã³ãšãåèšçŽ1000ããŒãžã®2ã€ã®ååãããã¥ã¢ã«ãå«ãŸããŠãããWindowsã¢ããªã±ãŒã·ã§ã³ãäœæããããã«å¿ èŠãªãã¹ãŠãèšèŒãããŠããŸããã
ã³ã¹ãïŒ$ 500ïŒã«ã€ããŠè©±ããšãCharlesã¯80KããããŒãã¡ã€ã«ãæã䟡å€ããããåœæé©ç°çã ã£ããšæžããŠããŸãã å®éã圌ã¯Windowsãæäœããããã®ããã°ã©ã ã€ã³ã¿ãŒãã§ã€ã¹ïŒAPIïŒãå®çŸ©ããŸãããããã«ã¯ãå€æ°ã®æ°ããããŒã¿åãå®æ°ãæ§é ãããã³ã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšå¯èœãªãã¹ãŠã®é¢æ°ã®èª¬æïŒåèšçŽ400ïŒãå«ãŸããŸãã ãããŠããã¹ãŠãããã¥ã¢ã«ã«ææžåãããŠããŸããã
Windows 1.0ïŒããã«ã¡ã¯
ããããžã§ã¯ããã¯ãä»æ¥èšãããã«ãã¢ã»ã³ããªçšã®Makeãã¡ã€ã«ãå«ãäžé£ã®ãã¡ã€ã«ã«ã¯ã次ã®3ã€ã®ã³ãŒããã¡ã€ã«ãå«ãŸããŸãã
ããããŒãã¡ã€ã«HELLO.h
/* String table constants */ #define IDSNAME 100 #define IDSABOUT 200 #define IDSTITLE 300 /* 'About' dialog box resource id */ #define ABOUTBOX 1 /* icon name */ #define HELLOICON 1
HELLO.cããã°ã©ã ãã¡ã€ã«
/* Hello.c Hello Application Windows Toolkit Version 1.03 Copyright (c) Microsoft 1985,1986 */ #include "windows.h" #include "hello.h" char szAppName[10]; char szAbout[10]; char szMessage[15]; int MessageLength; static HANDLE hInst; FARPROC lpprocAbout; long FAR PASCAL HelloWndProc(HWND, unsigned, WORD, LONG); BOOL FAR PASCAL About( hDlg, message, wParam, lParam ) HWND hDlg; unsigned message; WORD wParam; LONG lParam; { if (message == WM_COMMAND) { EndDialog( hDlg, TRUE ); return TRUE; } else if (message == WM_INITDIALOG) return TRUE; else return FALSE; } void HelloPaint( hDC ) HDC hDC; { TextOut( hDC, (short)10, (short)10, (LPSTR)szMessage, (short)MessageLength ); } /* Procedure called when the application is loaded for the first time */ BOOL HelloInit( hInstance ) HANDLE hInstance; { PWNDCLASS pHelloClass; /* Load strings from resource */ LoadString( hInstance, IDSNAME, (LPSTR)szAppName, 10 ); LoadString( hInstance, IDSABOUT, (LPSTR)szAbout, 10 ); MessageLength = LoadString( hInstance, IDSTITLE, (LPSTR)szMessage, 15 ); pHelloClass = (PWNDCLASS)LocalAlloc( LPTR, sizeof(WNDCLASS) ); pHelloClass->hCursor = LoadCursor( NULL, IDC_ARROW ); pHelloClass->hIcon = LoadIcon( hInstance, MAKEINTRESOURCE(HELLOICON) ); pHelloClass->lpszMenuName = (LPSTR)NULL; pHelloClass->lpszClassName = (LPSTR)szAppName; pHelloClass->hbrBackground = (HBRUSH)GetStockObject( WHITE_BRUSH ); pHelloClass->hInstance = hInstance; pHelloClass->style = CS_HREDRAW | CS_VREDRAW; pHelloClass->lpfnWndProc = HelloWndProc; if (!RegisterClass( (LPWNDCLASS)pHelloClass ) ) /* Initialization failed. * Windows will automatically deallocate all allocated memory. */ return FALSE; LocalFree( (HANDLE)pHelloClass ); return TRUE; /* Initialization succeeded */ } int PASCAL WinMain( hInstance, hPrevInstance, lpszCmdLine, cmdShow ) HANDLE hInstance, hPrevInstance; LPSTR lpszCmdLine; int cmdShow; { MSG msg; HWND hWnd; HMENU hMenu; if (!hPrevInstance) { /* Call initialization procedure if this is the first instance */ if (!HelloInit( hInstance )) return FALSE; } else { /* Copy data from previous instance */ GetInstanceData( hPrevInstance, (PSTR)szAppName, 10 ); GetInstanceData( hPrevInstance, (PSTR)szAbout, 10 ); GetInstanceData( hPrevInstance, (PSTR)szMessage, 15 ); GetInstanceData( hPrevInstance, (PSTR)&MessageLength, sizeof(int) ); } hWnd = CreateWindow((LPSTR)szAppName, (LPSTR)szMessage, WS_TILEDWINDOW, 0, /* x - ignored for tiled windows */ 0, /* y - ignored for tiled windows */ 0, /* cx - ignored for tiled windows */ 0, /* cy - ignored for tiled windows */ (HWND)NULL, /* no parent */ (HMENU)NULL, /* use class menu */ (HANDLE)hInstance, /* handle to window instance */ (LPSTR)NULL /* no params to pass on */ ); /* Save instance handle for DialogBox */ hInst = hInstance; /* Bind callback function with module instance */ lpprocAbout = MakeProcInstance( (FARPROC)About, hInstance ); /* Insert "About..." into system menu */ hMenu = GetSystemMenu(hWnd, FALSE); ChangeMenu(hMenu, 0, NULL, 999, MF_APPEND | MF_SEPARATOR); ChangeMenu(hMenu, 0, (LPSTR)szAbout, IDSABOUT, MF_APPEND | MF_STRING); /* Make window visible according to the way the app is activated */ ShowWindow( hWnd, cmdShow ); UpdateWindow( hWnd ); /* Polling messages from event queue */ while (GetMessage((LPMSG)&msg, NULL, 0, 0)) { TranslateMessage((LPMSG)&msg); DispatchMessage((LPMSG)&msg); } return (int)msg.wParam; } /* Procedures which make up the window class. */ long FAR PASCAL HelloWndProc( hWnd, message, wParam, lParam ) HWND hWnd; unsigned message; WORD wParam; LONG lParam; { PAINTSTRUCT ps; switch (message) { case WM_SYSCOMMAND: switch (wParam) { case IDSABOUT: DialogBox( hInst, MAKEINTRESOURCE(ABOUTBOX), hWnd, lpprocAbout ); break; default: return DefWindowProc( hWnd, message, wParam, lParam ); } break; case WM_DESTROY: PostQuitMessage( 0 ); break; case WM_PAINT: BeginPaint( hWnd, (LPPAINTSTRUCT)&ps ); HelloPaint( ps.hdc ); EndPaint( hWnd, (LPPAINTSTRUCT)&ps ); break; default: return DefWindowProc( hWnd, message, wParam, lParam ); break; } return(0L); }
ãããèŠããšãPetzoldãããã«å¿ããŠè©±ãçç±ãç解ã§ããŸãã
ãªãœãŒã¹ãã¡ã€ã«HELLO.rc
#include "style.h" #include "hello.h" HELLOICON ICON hello.ico STRINGTABLE BEGIN IDSNAME, "Hello" IDSABOUT, "About..." IDSTITLE, "Hello Windows!" END ABOUTBOX DIALOG 22, 17, 154, 75 STYLE WS_POPUP | WS_DLGFRAME BEGIN CTEXT "Microsoft Windows" -1, 0, 5, 154, 8 ICON "hello" -1, 9, 23, 0, 0 CTEXT "Hello application" -1, 0, 14, 154, 8 CTEXT "Version 1.03" -1, 30, 34, 94, 8 CTEXT "Copyright 1985,1986, Microsoft Corp." -1, 0, 47,154, 9 DEFPUSHBUTTON "Ok" IDOK, 61, 59, 32, 14, WS_GROUP END
ãœãŒã¹ãããããããã«ãå®éã«ã¯ãããã¯ããããŒãŸãã¯ã¢ããªã±ãŒã·ã§ã³å ã«ç°¡åãªãã¬ãŒãºã衚瀺ããïŒ170è¡ä»¥äžã®ïŒå®å šã«åçŽãªã¢ããªã±ãŒã·ã§ã³ã§ã¯ãããŸããã å®éãããã¯ããå°ãè€éã§ããïŒãªãœãŒã¹ãã¡ã€ã«ã®è¡ã®æäœã瀺ããã·ã¹ãã ã¡ãã¥ãŒã«Abouté ç®ãè¿œå ããŸãããŸããã³ãŒã«ããã¯é¢æ°ã䜿çšããŠçµæãåŠçããå Žåã§ããé ç®ãéžæããããšãã€ã¢ãã°ããã¯ã¹ãèµ·åããŸãã
æšå¹Žããã£ãŒã«ãºã¯åããHello Worldãã®ããŒãã«ã€ããŠå¥ã®èšäºãæžããŸããã1985幎ã«ãã®ããã°ã©ã ãå匷ããå°è±¡ãšããããäœãçŽããŠåãªã人éã«ç解ããããããæ¹æ³ã«ã€ããŠã®èãã説æããŠããŸãã 3幎åŸã®1988幎ã圌ã®æåã®æ¬ãProgramming WindowsããåºçãããŸããã
Windows 10 SDK
30幎以äžã«ãããããœãããŠã§ã¢ã·ã¹ãã ã¯å€§ããé²æ©ããŸããã å éšã³ãŒãã®è€éããšéãåçã«å¢å ããŸããã ææ°ã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ã€ã³ã¹ããŒã©ã¯ãã®ã¬ãã€ãã®æ å ±ãå«ãDVD-ROMå šäœãå æã§ããŸãã åçšåºŠã®éçºããŒã«ãšSDKãšå¿ èŠãªãã¹ãŠã®ã©ã€ãã©ãªã®ééãéããŸãã
ããšãã°ã Windows 10 SDKã«ã¯ä»¥äžãå«ãŸããŸãã
â¢ããããŒãã¡ã€ã«ãã©ã€ãã©ãªãã¡ã¿ããŒã¿ïŒããŒãžã§ã³ç®¡çïŒïŒ
â¢é¢é£ãããã©ãããã©ãŒã ãã¡ã€ã«ãšã®Windowsã³ã³ãã©ã¯ãïŒWindowsã©ã³ã¿ã€ã ã®ã¡ã¿ããŒã¿ïŒ
â¢Windowsãã©ãããã©ãŒã ã®æ¡åŒµæ©èœ-Windowsãã¹ã¯ããããWindowsã¢ãã€ã«ãWindows IoTãããã³Windows PPIã®SDKã
â¢WindowsApp.lib-ãŠãããŒãµã«ã¢ããªã±ãŒã·ã§ã³çšã®æ±çšã©ã€ãã©ãª
â¢ãŠãã€ãããCRT
â¢Windowsã¢ããªèªå®ããã
â¢DirectXã¢ããããŒã
â¢Windowsããã©ãŒãã³ã¹ããŒã«ããã
â¢.NET Framework 4.6 SDK
â¢Windowsã¢ã¯ã»ã·ããªãã£ããŒã«
â¢ãµã³ãã«ã³ãŒããšããã¥ã¡ã³ããžã®ãªã³ã¯
é·å¹Žã«ããã£ãŠãã¢ããªã±ãŒã·ã§ã³ã®ã³ã³ãã€ã«ãšã³ã³ãã€ã«ã®ããã®æ¯èŒçåçŽãªãŠãŒãã£ãªãã£ã¯ãã¢ããªã±ãŒã·ã§ã³ãå¹ççã«èšè¿°ããã³ãŒããæäœãããããã°ããããŒã ã¯ãŒã¯ãæäŸããããã®äŸ¿å©ãªVisual Studioç°å¢ã«å€ãããŸããã
ãããããŒãã£ã¹ã¯ã¯ãäž»ã«ãªã³ã©ã€ã³é ä¿¡ã«çœ®ãæããããŸããã ããšãã°ãSDKãVisual Studioãšã¯å¥ã«ããŠã³ããŒãããå Žåãæåã«ããã7ã€ã®ãããããŒãã£ã¹ã¯ã®ååã®ééã®å°ããªããŒãããŒããŒãããŠã³ããŒããã次ã«çŽ700 MBã®ã€ã³ã¹ããŒã«ãã¡ã€ã«ãããŠã³ããŒãããããã«æ±ããããŸãã Windows 10 Mobileã®ãšãã¥ã¬ãŒã¿ãŒã¯ããã«1.5GBã§ãã
APIãé²åããã«ã€ããŠããã¹ãŠã®ããã¥ã¡ã³ãã劥åœãªéã®çŽã®éã«åãŸããªãããšãããã«æããã«ãªããŸããã Windowsã®ããã¥ã¡ã³ããå¥ã®CD / DVDã§æäŸãããŠããæ代ããããŸããããä»ã§ã¯ã€ã³ã¿ãŒãããçµç±ã§ããããã£ãŠMSDN Webãµã€ãããå ¥æã§ããŸãã ããã«ãããã¥ã¡ã³ãã®å€ãã®ã»ã¯ã·ã§ã³ã¯ããã·ã¢èªãå«ãåºç¯ãªèšèªã«ç¿»èš³ãããŠããŸãã
ãµã³ãã«ã³ãŒãã¯ã MSDNã³ãŒãã®ã£ã©ãªãŒããŸãã¯ä»æ¥ã®éçºè ã³ãã¥ããã£ã§æ £äŸãšãªã£ãŠããGitHubã«ãããŸã ã ä»æ¥ãå€ãã®ITã³ãã¥ããã£ã§èŠãããèå³æ·±ãç¹ã¯ãé¢é£ããäŸã®åœ¢æãžã®ã³ãã¥ããã£ã®åå ãšãããã¥ã¡ã³ãã®ä¿®æ£ãšæšå¥šäºé ã®å°å ¥ã§ãã
誰ãããã®ãããªå€åã30幎åã«äºæž¬ã§ããã®ã ãããïŒ
Windows 10ïŒHello World
ç§ã¯ãæ°ããUWPãã©ãããã©ãŒã ãšJavaScriptèšèªïŒç§ã«æãè¿ããã®ïŒã䜿çšããŠãWindows 10çšã®ãHello Worldãã¢ããªã±ãŒã·ã§ã³ã®äžçš®ã®ã¢ããã°ãäœæããããšããããšã«ããŸããã äžè¬ã«ãããã¯éåžžã«èå³æ·±ãç¹ã§ãã30幎åã«çŽç²ãªCãäž»èŠèšèªã§ãããã»ãšãã©ãã¹ãŠã®äŸãèšè¿°ãããŠããå Žåãä»æ¥ã§ã¯C / C ++ã ãã§ãªããCïŒãVBã JavaScriptïŒããã³ObjCã§ãUWPåãã«èšè¿°ã§ããŸãïŒïŒã
æåã«ç®ãåŒãã®ã¯ããã¡ã€ã«ã®ã³ã¬ã¯ã·ã§ã³ãããéåžžã«å€ãã®ã¢ã€ã³ã³ãå«ããããžã§ã¯ããžã®ç§»è¡ã§ãããŸãããªãœãŒã¹ãã¡ã€ã«ãšã¢ããªã±ãŒã·ã§ã³ã³ãŒããå«ããã¡ã€ã«ã«å ããŠãã¢ããªã±ãŒã·ã§ã³èªäœãšãã®èšå®ïŒãããã§ã¹ãïŒã®åå¥ã®å€§ããªèª¬æããããŸãã
ãŸãããããžã§ã¯ãèªäœã®èšå®ã§ã¢ã»ã³ããªæé ãã説æããããŠããããšã«ã泚æããŠãã ããïŒã¡ã€ã¯ãã¡ã€ã«ã®äžçš®ïŒã ãŸãã30幎åãšã¯ç°ãªããã¯ããã«è€éã«ãªã£ãŠããŸãã C ++ã§ã³ãŒããèšè¿°ããŠããå Žåã競åããªã16ãããã§ã¯ãªããx86ãx64ããŸãã¯ARMã®ã¢ã»ã³ããªãéžæããå¿ èŠããããŸããããã¡ãããF5ãŸãã¯Shift + F5ãæŒãããšã§éåžžæ éã«é ãããä»ã®å€ãã®ãã©ã¡ãŒã¿ãŒã¯èšããŸã§ããããŸãã
Resources.resjsonãªãœãŒã¹ãã¡ã€ã«
JavaScriptãããžã§ã¯ãã®å ŽåããªãœãŒã¹ãã¡ã€ã«ïŒèªåããŒã«ãªãŒãŒã·ã§ã³ãµããŒãä»ãïŒïŒã¯éåžžã®JSONãã¡ã€ã«ã§ãã
{ "idsname" : "Hello", "idsabout" : "About...", "idstitle" : "Hello Windows!", "aboutbox.text" : "Microsoft Windows\nHello application\nVersion 10.03\nCopyright @2015, Microsoft Corp.", "aboutbox.button" : "Ok!" }
30幎åãJavaScriptãXMLãJSONã¯ãããŸããã§ããã
ããŒãžã¬ã€ã¢ãŠããã¡ã€ã«default.html
ã¢ããªã±ãŒã·ã§ã³ã¯ã³ãŒããããã¢ã»ã³ãã«ãããããšãã§ããŸãããã€ã³ã¿ãŒãã§ãŒã¹ã®éèŠãªéšåãããåçŽã§ããå ·äœçãªå®£èšçãªæ¹æ³ã§èª¬æã§ããããã«ãªããŸããã ããã«ã次ã®ãã®ãå«ãããŒã¿ãã€ã³ãã£ã³ã°ãããã«æ¥ç¶ã§ããŸãã
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>HelloWorld</title> <!-- WinJS references --> <link href="WinJS/css/ui-dark.css" rel="stylesheet" /> <script src="WinJS/js/base.js"></script> <script src="WinJS/js/ui.js"></script> <!-- HelloWorld references --> <link href="/css/default.css" rel="stylesheet" /> <script src="/js/default.js"></script> </head> <body class="win-type-body"> <nav> <a href="#" id="aboutMenu" data-win-res="{textContent: 'idsabout'}"></a> </nav> <p data-win-res="{textContent: 'idsname'}"></p> </body> </html>
ïŒèªåïŒããŒã¿ãã€ã³ãã£ã³ã°ã¯ãã¢ãã³ãã¶ã€ã³ã®å·šå€§ãªãã³ã§ãã
ã¢ããªã±ãŒã·ã§ã³ããžãã¯ãã¡ã€ã«default.js
åçŽãªã¢ããªã±ãŒã·ã§ã³ã®åºæ¬çãªããžãã¯ã¯ã1ã€ã®ãã¡ã€ã«ã«éäžãããããšãã§ããŸãïŒ30幎åã®ãããªããè€éãªäŸã§ã¯ãããŸããŸãªçš®é¡ã®ã¢ãžã¥ãŒã«ãå解ãå§ããå¯èœæ§ãé«ãã§ãããïŒã
(function () { "use strict"; var app = WinJS.Application; var activation = Windows.ApplicationModel.Activation; var appView = Windows.UI.ViewManagement.ApplicationView.getForCurrentView(); // Called on app activation app.onactivated = function (args) { // Initiate resources and UI -- all joined into a chain of promises var promise = new WinJS.Promise.join([ WinJS.Resources.processAll(), WinJS.UI.processAll() // Add basic logic ]).then(function () { // Update window title appView.title = WinJS.Resources.getString('idstitle').value; // Add click listener for menu "about" item document.getElementById("aboutMenu").addEventListener("click", (e) => showAboutDialog()); }); args.setPromise(promise); }; // Show"About" MessageDialog function showAboutDialog() { var messageDialog = new Windows.UI.Popups.MessageDialog( WinJS.Resources.getString('aboutbox.text').value, WinJS.Resources.getString('idsabout').value); // Dummy event handler for commands in dialog box var aboutHandler = (command) => { return true; }; messageDialog.commands.append( new Windows.UI.Popups.UICommand(WinJS.Resources.getString('aboutbox.button').value, aboutHandler)); messageDialog.showAsync(); } app.start(); })();
ã¢ããªã±ãŒã·ã§ã³ã³ãŒãã¯4åçããªããŸããïŒããã€ãã®ã³ã¡ã³ããšç©ºçœè¡ãè¿œå ããŸããïŒããæè¡éçºã®æãéèŠãªå©ç¹ã¯ãAPIã®è¡šçŸåãå€§å¹ ã«åäžããããšã§ãã å®éãããã³ãã§è¡ãããŠããããšã®å€ãã¯ãã·ã¹ãã ãŸãã¯ã©ã€ãã©ãªé¢æ°ãžã®äŸ¿å©ãªåŒã³åºãã®åŸãã«é ããŠããŸãã
ç¢å°é¢æ°ã®ãããªæ§æç³ãšpromiseã䜿çšããæ©èœã«ãããã³ãŒãã®èšè¿°ãããç°¡åã§èªã¿ããããªããŸãã ãšããã§ãéèŠãªå€æŽã¯éåæã³ãŒãã¢ãã«ãžã®ç§»è¡ã§ãããããã£ãŠãçŽæãšéåæã§ãã
ãã¡ãããç§ã®ã30幎åŸã®æŽæ°ãã¯éèªçã§ã¯ãããŸããããã¢ããªã±ãŒã·ã§ã³ãäœæããã¢ãããŒãã®å€æŽã®å šäœçãªãã€ããã¯ã¹ã¯éåžžã«è¿œè·¡å¯èœã ãšæããŸãã ä»æ¥ã§ã¯ãããã¯å®å šã«æ°ããAPIã®ããã«èŠããŸãããå€ãWin32ãã¥ãŒããåãWindows.hã®è³ã¯æã ã¹ãããããŸãã