Building a Full-Featured Application

Project Name:	CMS15.vbp
File Folder:	Ex15_1

	This project demonstrates the development of all of the components of an application. This includes using an application framework, building the classes in an object hierarchy, using a resource file, saving settings to the Registry, logging errors to the NT event log or any log file, using the Windows API, adding pop-up menus, using ToolBar and StatusBar controls, implementing What's This Help, providing ToolTips and defining icons for the application.
	The resulting application allows you to track your contacts. You can keep a list of all phone calls you make/receive, the e-mail you have sent/received, meetings you have attended, and so on. It also allows you to maintain your address book and keep track of your to do list.
	Notice that you must select a person before entering contact information. Otherwise the contact entry will be orphaned. Same is true if the person is deleted. This is because of the master/detail relationship between the person and the contact entries. Since bound controls are used for the detail, it is difficult to correctly maintain these relationships. To solve this problem, you could rewrite the contact entries code to use DAO instead of the data control.
	For a challenge, try the following:
- Adding the "Type of Follow-up Required" field and associated database changes defined in the challenge from the CMS14_2 project.
- Automatically adding a task to the task list when a Follow-up Required selection is set to anything but "None". 
- Changing the lengths of the fields in the database to provide additional space for entry of information, such as an e-mail address. Using Access is the easiest way to modify the database.
- Putting the fields on the Contact Manager window in the resource file.
- Implementing What's This Help for the Contact Manager window.
- Allowing specification of the contact management system database from the Open common dialog box.
- Storing the last selected database to the Registry.
- Defaulting the contact management system database to the entry in the Registry.
- Implementing error handling in all routines that could generate an error.
