﻿<?xml version="1.0" encoding="utf-8" ?> 
<?xml-stylesheet type="text/xsl" href="../webpages/courses.xsl" ?>
<!--
/////////////////////////////////////////////////////////////////////////////
//  ReviewThreads.xml - Resources for Threads and Synchronization          //
//                                                                         //                                                                         //
//  Jim Fawcett, CST 2-187, Syracuse University, jfawcett@twcny.rr.com     //
/////////////////////////////////////////////////////////////////////////////
-->

<courses name="Fawcett">

  <btitle>Windows Programming</btitle>
  <theme src="../webpages/HomeTheme.css" />

  <visible>
  <title>CSE Core Technology</title>
  <subtitle>Windows Programming</subtitle>
  <revised>20 February 2006</revised>
  
  <hilight>
    <ifile title="Home">../WebPages/FawcettHome.xml</ifile>&#32;
    <ifile title="Courses">../WebPages/Courses.xml</ifile>&#32;
    <ifile title="Code">../WebPages/Code.xml</ifile>&#32;
    <ilink title="Handouts">www.ecs.syr.edu/faculty/fawcett/handouts</ilink>&#32;
    <ifile title="CoreTech">../WebPages/CoreTechnologies.xml</ifile>&#32;
    <ifile title="Books">../WebPages/Books.xml</ifile>&#32;
    <ifile title="Articles">../WebPages/Articles.xml</ifile>&#32;
    <ifile title="Math">../WebPages/Mathematics.xml</ifile>&#32;
    <ifile title="Research">../WebPages/research.xml</ifile>&#32;
    <ifile title="Masters Projects">../WebPages/MastersProjects.xml</ifile>&#32;
    <ifile title="SWDev">../WebPages/swdev.xml</ifile>&#32;
    <ifile title="WebDev">../WebPages/webdev.xml</ifile>&#32;
    <ifile title="News">../WebPages/news.xml</ifile>&#32;
    <ifile title="OtherLinks">../WebPages/OtherLinks.xml</ifile>&#32;
    <ifile title="SiteDesign">../WebPages/SiteDesign.xml</ifile>&#32;
    <ifile title="Graduates">../WebPages/graduates.xml</ifile>&#32;
    <ifile title="AllPages">../WebPages/AllPages.xml</ifile>&#32;
    <ifile title="Office Hours">../WebPages/OfficeHours.xml</ifile>&#32;
    <notice title="Notices">../WebPages/notices.xml</notice>&#32;
    <html><a href="#contents">Contents</a></html>&#32;
  </hilight>

  <hilight>
    <ifile title="CSE681-SWMAA">../WebPages/CSE681.xml</ifile>&#32;
    <ifile title="CSE686-IP">../WebPages/CSE686.xml</ifile>&#32;
    <ifile title="CSE687-OOD">../WebPages/CSE687.xml</ifile>&#32;
    <ifile title="CSE775-DO">../WebPages/CSE775.xml</ifile>&#32;
    <ifile title="CSE776-DP">../WebPages/CSE776.xml</ifile>&#32;
    <ifile title="CSE778-AWP">../WebPages/CSE778.xml</ifile>&#32;
    <ifile title="CSE784-SWS">../WebPages/CSE784.xml</ifile>
  </hilight>

  <hilight>
  <html><a href="#Contents">Contents</a></html>&#32;
  </hilight>
  
  <section title="Web Resources:">
    <ilink title="Code Project">www.codeproject.com/library/tutorials.asp</ilink>&#32;
    <ilink title="Windows Forms">windowsforms.net/</ilink>&#32;
    <ilink title="Code Guru">www.codeguru.com</ilink>&#32;
    <ilink title="Win32, COM, MFC">devCentral.iftech.com</ilink>&#32;
    <ilink title="Windows Developer's Journal">www.wdj.com</ilink>&#32;
    <ilink title="GotDotNet">www.gotdotnet.com</ilink>&#32;
  </section>
  <p/>
  
  <html><a name="Contents"/></html>
  <br/>
  <table>
    <tr>
      <ld>
        <hilight><section title="Basic things you need to know"/></hilight>
      </ld>
    </tr>
    <tr>
      <ld>
        <section title="Win32&#160;Programming">
          <ind>
            <file title="Processes, Modules, and Threads">WindowsProgramming\ProcessesAndThreads.xml</file>
            <link title="kernel objects and handles">msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/kernel_objects.asp</link>
            <link title="Platform SDK">msdn.microsoft.com/library/default.asp?url=/library/en-us/sdkintro/sdkintro/contents_of_the_platform_sdk.asp?frame=true</link>
          </ind>
          <p/>
        </section>
      </ld>
      <ld>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</ld>
      <ld>
        <section title="Win32&#160;Windows&#160;Programming">
          <ind>
            <olist>
              <litem>
                Basics:<br/>
                <link title="message loop">msdn.microsoft.com/library/default.asp?url=/library/en-us/winprog/winprog/entering_the_message_loop.asp</link>
                <link title="WinProc function and message handlers">www.winprog.org/tutorial/window_click.html</link>
              </litem>
              <litem>
                Details:<br/>
                <link title="Windowing">msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing.asp?frame=true</link>
                <link title="Summary of messages and message queues">msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/messagesandmessagequeues.asp</link>
                This entry has two child pages that provide a lot of technical details and code examples without being overwhelming.<br/>
                <link title="Summary of Window Procedures">msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windowprocedures.asp</link>
                This entry also has two child page with technical details and code.<br/>
                <link title="Windows Controls">www.winprog.org/tutorial/controls.html</link>
                Things you need to know about controls to build useful Win32 and ATL dialogs.
              </litem>
            </olist>
          </ind>
        </section>
      </ld>
    </tr>
    <tr>
      <ld>
        <hilight><section title="Win32 Windows Programming"/></hilight>
      </ld>
    </tr>
    <tr>
      <ld>
        <section title="Programming Tutorials">
          <ind>
            <ilink title="Winprog.org">www.winprog.org/tutorial/index.html</ilink><br/>
            Lots of details that you will find extremely useful for both Win32 and ATL Windows programming.<br/>
            <ilink title="ReliSoft.com">www.relisoft.com/win32/</ilink><br/>
            <ifile title="Don Hobson">WindowsProgramming/Win32Prog/Don_Hobson/Don_Hobson.htm</ifile><br/>
            <ifile title="Microsoft's Smart Client Architecture and Design Guide">WindowsProgramming/SmartClientArchAndDesignGuide.pdf</ifile>
          </ind>
        </section>
      </ld>
      <ld>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</ld>
      <ld>
        <section title="Programming&#160;Info&#160;Links">
          <ind>
            <link title="Windows Data Types">msdn.microsoft.com/library/default.asp?url=/library/en-us/winprog/winprog/windows_data_types.asp</link>
            <link title="Windows Controls">msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/wincontrols.asp</link>
            <link title="User Controls">msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/common/user.asp</link>
            <link title="Common Controls">msdn.microsoft.com/library/default.asp?url=/library/en-us/wceshellui5/html/wce50lrfCommonControlsReference.asp</link>
            <link title="Windows XP Controls">msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/userex/comctrl6.asp</link>
          </ind>
        </section>
      </ld>
    </tr>
    <tr>
      <ld>
        <section title="Wizard Screen Shots">
          <ind>
            <file title="Steps to Build Windows App using Win32 Application Wizard">windowsProgramming/presentations/StepByStepWin32Wizard.doc</file>
          </ind>
        </section>
      </ld>
      <ld>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</ld>
      <ld>
        <section title="Wizard - based code">
          <ind>
            <file title="Win32 Wizard Application Code">windowsProgramming/code/stepbystepdemos</file>
          </ind>
        </section>
      </ld>
    </tr>
    <tr>
      <ld>
        <br/>
        <hilight><section title="ATL and WTL Windows Programming"/></hilight>
      </ld>
    </tr>
    <tr>
      <ld>
        <section title="Programming Tutorials">
          <ind>
            <ilink title="WTL Part I - ATL GUI Classes, Michael Dunn">www.codeproject.com/wtl/wtl4mfc1.asp</ilink><br/>
            <ilink title="WTL Part II - WTL GUI Base Classes, Michael Dunn">www.codeproject.com/wtl/wtl4mfc2.asp</ilink><br/>
            <ilink title="WTL Part III - Toolbars and Status Bars, Michael Dunn">www.codeproject.com/wtl/wtl4mfc3.asp</ilink><br/>
            <ilink title="WTL Part IV - Dialogs and Controls, Michael Dunn">www.codeproject.com/wtl/wtl4mfc4.asp</ilink><br/>
            <ilink title="WTL Part V - Advanced Dialog UI Classes, Michael Dunn">www.codeproject.com/wtl/wtl4mfc5.asp</ilink><br/>
            <ilink title="WTL Part VI - Hosting ActiveX Controls, Michael Dunn">www.codeproject.com/wtl/wtl4mfc6.asp</ilink><br/>
            <ilink title="WTL Part VII - Splitter Windows, Michael Dunn">www.codeproject.com/wtl/wtl4mfc7.asp</ilink><br/>
            <ilink title="WTL Part VIII - Property Sheets and Wizards, Michael Dunn">www.codeproject.com/wtl/wtl4mfc8.asp</ilink><br/>
            <ilink title="WTL Part IX - GDI Classes, Common Dialogs, and Utilities, Michael Dunn">www.codeproject.com/wtl/wtl4mfc9.asp</ilink><br/>
            <ilink title="WTL Dialog Resizing, Michael Dunn">www.codeproject.com/wtl/wtldlgresize.asp</ilink><br/>
          </ind>
        </section>
      </ld>
      <ld>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</ld>
      <ld>
        <section title="ATL Programming Info Links">
          <ind>
            <link title="ATL Reference">msdn2.microsoft.com/en-us/library/t9adwcde(VS.80).aspx</link>
            <link title="ATL Window Classes">msdn2.microsoft.com/en-us/library/x1wf8d3x(VS.80).aspx</link>
            <link title="Implementing a Window">http://msdn2.microsoft.com/en-us/library/635wef95(VS.80).aspx</link>
            <link title="Implementing a DialogBox">msdn2.microsoft.com/en-us/library/246a2azb(VS.80).aspx</link>
            <link title="Using the ATL Windowing Classes">www.codeguru.com/cpp/com-tech/atl/article.php/c3605</link>
            This article, by Andre Whitechapel, from CodeGuru, has a nice discussion of ATL message maps.
          </ind>
        </section>
      </ld>
    </tr>
    <tr>
      <ld>
        <br/>
        <hilight><section title="MFC Windows Programming"/></hilight>
      </ld>
    </tr>
    <tr>
      <ld>
        <section title="Programming Tutorials">
          <ind>
            <ilink title="Series of simple focused tutorials with Screen shots">www.functionx.com/visualc/</ilink><br/>
            <ilink title="CoderSource.net">www.codersource.net/codersource_mfc_prog.html</ilink><br/>
            <ilink title="Binghamton Univ, UK">www.cs.binghamton.edu/~reckert/360/360notes.html</ilink><br/>
            <ilink title="tripod.com">members.tripod.com/digitaldawn/index.html</ilink><br/>
            <ilink title="MFC article links from Wisc.edu">http://www.neurophys.wisc.edu/comp/wprogart.html</ilink><br/>
            <ilink title="MFC links and a lot more from Programmers Oasis">users.utu.fi/sisasa/oasis/oasis-windows.html</ilink><br/>
            <ifile title="Tutorials by me and a couple of students">mfc.xml</ifile><br/>
          </ind>
        </section>
      </ld>
      <ld>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</ld>
      <ld>
        <section title="MFC Programming Info Links">
          <ind>
            <link title="MFC Class Library Overview">msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_class_library_overview.asp</link>
            <link title="MFC Class Hierarchy">msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_hierarchy_chart.asp</link>
            <link title="CWnd members">msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_cwnd_class_members.asp</link>
            <link title="Structures, Styles, Callbacks, and Message Maps">msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_cwnd_class_members.asp</link>
          </ind>
        </section>
      </ld>
    </tr>
    <tr>
      <ld>
        <section title="Wizard Screen Shots">
          <ind>
            <file title="Steps to Build MFC Dialog Application">windowsProgramming/presentations/StepByStepMFCDialogWizard.doc</file>
            <file title="Steps&#160;to&#160;Build&#160;MFC&#160;Frame&#160;Window&#160;Application">windowsProgramming/presentations/StepByStepMFCFrameWizard.doc</file>
            <file title="Steps to Build MFC Doc/View Application">windowsProgramming/presentations/StepByStepMFCDocView.doc</file>
            <br/>
            <file title="Steps for Bigger Dialog Application">windowsProgramming/mfc/mfcdialog_stepstobuild.ppt</file>
            <file title="Steps for Bigger Frame Window Application">windowsProgramming/mfc/mfcframewindow_stepstobuild.ppt</file>
          </ind>
        </section>
      </ld>
      <ld>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</ld>
      <ld>
        <section title="Wizard - based code">
          <ind>
            <file title="MFC Dialog Application Code">windowsProgramming/code/stepbystepdemos</file>
            <file title="MFC&#160;Frame&#160;Window&#160;Application&#160;Code">windowsProgramming/code/stepbystepdemos</file>
            <file title="MFC Document View Application Code">windowsProgramming/code/stepbystepdemos</file>
            <br/>
            <file title="Bigger Dialog Application Code">windowsProgramming/mfc/mfcdialogdemo</file>
            <file title="Bigger Frame Window Application Code">windowsProgramming/mfc/fwRecipe</file>
          </ind>
        </section>
      </ld>
    </tr>
    <tr>
      <ld>
        <hilight><section title=".Net WinForms Programming"/></hilight>
      </ld>
    </tr>
    <tr>
      <ld>
        <section title="Programming&#160;Tutorials">
          <ind>
            <ilink title="GotDotNet">samples.gotdotnet.com/quickstart/winforms/</ilink><br/>
            <ilink title="ProgrammersHeaven">www.programmersheaven.com/2/Les_CSharp_11_p1</ilink><br/>
            <ilink title="DotNetSpider">www.dotnetspider.com/technology/tutorials/</ilink><br/>
            <ilink title="C# Notebook">www.componentsnotebook.com/notebooks/csharp/default.aspx</ilink><br/>
            <ilink title="WindowsForms">www.windowsforms.net/Default.aspx?tabindex=3&amp;tabid=40</ilink><br/>
          </ind>
        </section>
      </ld>
      <ld>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</ld>
      <ld>
        <section title="Programming&#160;Info">
        </section>
      </ld>
    </tr>
    <tr>
      <ld>
        <section title="Wizard Screen Shots">
          <ind>
            <file title="Steps&#160;to&#160;Build&#160;.Net&#160;WinForm&#160;Application">windowsProgramming/presentations/StepByStepWinFormWizard.doc</file>
          </ind>
        </section>
      </ld>
      <ld>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</ld>
      <ld>
        <section title="Wizard - based code">
          <ind>
            <file title=".Net&#160;WinForm&#160;Application&#160;Code">windowsProgramming/code/stepbystepdemos</file>
          </ind>
        </section>
      </ld>
    </tr>
  </table>
  <section title="Content:">
    This section provides links to more presentations and a lot more demonstration code.
    <olist>
      <litem>
        <file title="Introduction to Windows Programming">WindowsProgramming\presentations\IntroductionToWindows.ppt</file>
      </litem>
      <litem>
        <file title="Basic Windows Programming Demos">WindowsProgramming\code\basicwindows</file>
        These demos show how to create a Frame Window in a Console application and vice versa, and how to build very
        simple windows applications by hand, e.g., no wizards.
      </litem>
      <litem>
        <file title="Step by Step Demos for Building Win32, MFC, ATL, and .Net Forms Windows Programs">WindowsProgramming\code\StepByStepDemos</file>
        Each example has a presentation showing screen shots for building using Visual Studio .Net 2003.
      </litem>
      <litem>
        <file title="Demonstrate Advanced Forms - C++ calling C# control">WindowsProgramming/code/DemoCppWinForm</file>
      </litem>
      <litem>
        <file title="MFC Dialog - Interface Freezes">ThreadsAndSynchronization/code/dialogdemo</file>
      </litem>
      <litem>
        <file title="C# delegate demos">ThreadsAndSynchronization/code/delegatedemos</file>
      </litem>
      <litem>
        <file title="C# Dialog - Interface Freezes">ThreadsAndSynchronization/code/dialogdemocs</file>
      </litem>
      <!--
      <litem>
        <file title="Other Code Demonstrations"></file>
      </litem>
      -->
    </olist>
  </section>  
  </visible>
</courses>
