martes, 11 de diciembre de 2007

Examen 70-551 Sección 2

En esta sección los grandes temas tratados en el examen se encuentran en negrilla y se organizan por subtemas en azul y los temas propiamente dichos en letra normal, antes del Link de ayuda.

Creating and Programming a Web Application

Add and configure Web server controls

Web Server Controls
http://msdn2.microsoft.com/en-us/library/7698y1f0(vs.80).aspx

Add Web server controls to a Web Form
http://msdn2.microsoft.com/en-us/library/y40dxsky(vs.80).aspx
http://msdn2.microsoft.com/en-us/library/zzhfb89h(vs.80).aspx

Configure the properties of Web server controls programmatically
http://msdn2.microsoft.com/en-us/library/k26w4zzx(VS.80).aspx
http://msdn2.microsoft.com/en-us/library/7ataet98(vs.80).aspx


Configure Web server control properties by using the Microsoft Visual Studio Property Editor
http://msdn2.microsoft.com/en-us/library/dt5bk9ke(VS.80).aspx


Specify whether events of a control cause a Web Form to post to the server
http://msdn2.microsoft.com/en-us/library/8cb3cz8e(vs.80).aspx

Configure a control to receive postback events
http://msdn2.microsoft.com/en-us/library/6w2tb12s(VS.80).aspx

Access controls in Web Forms pages when working with naming containers and child controls
http://msdn2.microsoft.com/en-us/library/ms178509(VS.80).aspx

Create HTML server controls in the designer
http://msdn2.microsoft.com/en-us/library/17x94dy9(VS.80).aspx

Set HTML server control properties programmatically
http://msdn2.microsoft.com/en-us/library/wwhe0at8(vs.80).aspx

Use HTML server controls to programmatically access HTML tags
http://msdn2.microsoft.com/en-us/library/620b4fzf(vs.80).aspx

Create HTML controls as elements in an HTML document
http://msdn2.microsoft.com/en-us/library/ms973868.aspx#introwebforms_topic2 (HTML controls)


Use the AdRotator Web server control to manage banners and pop-up windows
http://msdn2.microsoft.com/en-us/library/64wdy9hz(VS.80).aspx


Use the Button Web server control to send a command to the server when a button is clicked
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.button.command(vs.80).aspx

Display a calendar on a Web page by using the Calendar Web server control
http://msdn2.microsoft.com/en-us/library/tc52hey5(vs.80).aspx

Implement the CheckBox Web server control
http://msdn2.microsoft.com/en-us/library/bwxbfx4b(vs.80).aspx

Implement the FileUpload Web server control
http://msdn2.microsoft.com/en-us/library/fey4ds4e(vs.80).aspx

Create and manipulate links on a Web Form by using the HyperLink Web server control
http://msdn2.microsoft.com/en-us/library/5yf1092x(vs.80).aspx

Display an image on a Web Form by using the Image Web server control
http://msdn2.microsoft.com/en-us/library/1a83b3tc(VS.80).aspx

Implement a button on a Web Form by using the ImageButton Web server control
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.imagebutton(vs.80).aspx

Define hotspot regions within an image by using the ImageMap Web server control
http://msdn2.microsoft.com/en-us/library/s24wcx7k(VS.80).aspx

Use the Label Web server control to display customized text on a Web page
http://msdn2.microsoft.com/en-us/library/ah860s2h(VS.80).aspx

Display a hyperlink style button on a Web Form by using the LinkButton Web server control
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.linkbutton(vs.80).aspx

Display lists of information by using controls that derive from the ListControl class
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol(vs.80).aspx

Create a Web Form with static text by using the Literal Web server control
http://msdn2.microsoft.com/en-us/library/x3af09hw(VS.80).aspx

Implement pagination for controls on a page by using the Pager Web server control
http://msdn2.microsoft.com/en-us/library/ms227443(VS.80).aspx

Use the Panel Web server control to arrange controls in groups on a page
http://msdn2.microsoft.com/en-us/library/4k9563fh(vs.80).aspx

Create a container for a group of View controls by using the MultiView Web server control
http://msdn2.microsoft.com/en-us/library/3ek2z7fh(vs.80).aspx

Use the View Web server control to create a Web application
http://msdn2.microsoft.com/en-us/library/3ek2z7fh(vs.80).aspx

Create a mutually exclusive set of choices by using the RadioButton Web server control
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.radiobutton(vs.80).aspx

Construct a table by using the Table, TableRow, and TableCell Web server controls
http://msdn2.microsoft.com/en-us/library/3k184tsx(VS.80).aspx
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.table(vs.80).aspx
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.tablerow(vs.80).aspx
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.tablecell(vs.80).aspx

Enable users to type information into a Web Form by using the TextBox Web server control.
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox(vs.80).aspx

Create a wizard by using the Wizard Web server control to collect data through multiple steps of a process
http://msdn2.microsoft.com/en-us/library/fs0za4w6(vs.80).aspx

Use the XML Web server control to create XML data at the location of the control
http://msdn2.microsoft.com/en-us/library/91z3e26a(VS.80).aspx
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.xml(VS.80).aspx

Customize the appearance of Web server controls by using Web control templates
http://msdn2.microsoft.com/en-us/library/h59db326(VS.80).aspx

Programmatically edit settings in a Web site's configuration file
http://msdn2.microsoft.com/en-us/library/4c2kcht0(VS.80).aspx
http://msdn2.microsoft.com/en-us/library/system.configuration.configuration.save(VS.80).aspx

Dynamically add Web server controls to a Web Forms page
http://msdn2.microsoft.com/en-us/library/ms178511(vs.80).aspx

Configure settings for a Web application

Configure system-wide settings in the Machine.config file
http://msdn2.microsoft.com/en-us/library/ms229697(vs.80).aspx

Configure settings for a Web application in the Web.config file
http://msdn2.microsoft.com/en-us/library/ms178684(vs.80).aspx
http://msdn2.microsoft.com/en-us/library/dayb112d(VS.80).aspx

Manage a Web application's configuration by using the Web Site Administration Tool
http://msdn2.microsoft.com/en-us/library/ms228053(VS.80).aspx

Program a Web application

Redirect users to another Web page by using a server-side method
http://msdn2.microsoft.com/en-us/library/x3x8t37x(VS.80).aspx

Detect browser types in Web Forms
http://msdn2.microsoft.com/en-us/library/3yekbd5b(VS.80).aspx

Ascertain the cause of an unhandled exception at the page level
http://www.codeproject.com/aspnet/ErrorHandlingASPNET.asp

Programmatically access the header of a Web page
http://msdn2.microsoft.com/en-us/library/system.web.ui.page.header(vs.80).aspx

Implement cross-page postbacks
http://msdn2.microsoft.com/en-us/library/ms178139(VS.80).aspx

Assign focus to a control on a page when the page is displayed
http://msdn2.microsoft.com/en-us/library/ms178232(vs.80).aspx

Avoid performing unnecessary processing on a round trip by using a page's IsPostBack property
http://msdn2.microsoft.com/en-us/library/system.web.ui.page.ispostback(vs.80).aspx

Access encapsulated page and application context
http://msdn2.microsoft.com/en-us/library/system.web.ui.page.context(vs.80).aspx

Avoid unnecessary client-side redirection by using the HttpServerUtility.Transfer method
http://msdn2.microsoft.com/en-us/library/caxa892w(vs.80).aspx

Avoid round trips by using client-side scripts
http://msdn2.microsoft.com/en-us/library/3hc29e2a(vs.80).aspx

Use a page's Async attribute to create a page that has built-in asynchronous capabilities
http://msdn.microsoft.com/msdnmag/issues/05/10/WickedCode/Default.aspx?loc=es

Convert HTML server controls to HTML elements
http://msdn2.microsoft.com/en-us/library/yhwa4c06(VS.80).aspx


Integrating Data in a Web Application by Using ADO.NET, XML, and Data-Bound Controls

Implement data-bound controls

Use tabular data source controls to return tabular data
http://msdn2.microsoft.com/en-us/library/ms531358.aspx

Use hierarchical data source controls to display hierarchical data
http://msdn2.microsoft.com/en-us/library/system.web.ui.hierarchicaldatasourcecontrol(vs.80).aspx

Display data by using simple data-bound controls
http://www.exforsys.com/tutorials/asp.net-2.0/asp.net-2.0-data-bound-controls.html
http://msdn2.microsoft.com/en-us/library/s5z9ks4y(vs.80).aspx
http://msdn2.microsoft.com/en-us/library/ms228356(VS.80).aspx
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol(vs.80).aspx

Display data by using composite data-bound controls
http://msdn2.microsoft.com/en-us/library/aa479016.aspx
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.compositecontrol(vs.80).aspx
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.compositedataboundcontrol(VS.80).aspx

Display data by using hierarchical data-bound controls
http://msdn2.microsoft.com/en-us/library/ms178367(VS.80).aspx
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.treeview(VS.80).aspx
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.menu(VS.80).aspx

Use the FormView control to display the values of a single table record from a data source
http://msdn2.microsoft.com/en-us/library/ms228324(vs.80).aspx

Manage connections and transactions of databases

Configure a connection to a database graphically by using the Connection Wizard
http://msdn2.microsoft.com/en-us/library/tzedkwye(VS.80).aspx
http://msdn2.microsoft.com/en-us/library/w4dd7z6t(VS.80).aspx

Configure a connection by using Server Explorer
http://msdn2.microsoft.com/en-us/library/x603htbk(VS.80).aspx

Configure a connection to a database by using the connection class
http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection(vs.80).aspx

Connect to a database by using specific database connection objects
http://msdn2.microsoft.com/en-us/library/Aa984327(VS.71).aspx

Enumerate through instances of Microsoft SQL Server by using the DbProviderFactories.GetFactoryClasses method
http://msdn2.microsoft.com/en-us/library/system.data.common.dbproviderfactories.getfactoryclasses(vs.80).aspx

Open a connection by using the Open method of a connection object
http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.open(vs.80).aspx

Close a connection by using the connection object
http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.close(vs.80).aspx

Secure a connection to protect access to your data source
http://msdn2.microsoft.com/en-us/library/89211k9b(vs.80).aspx
http://msdn2.microsoft.com/en-us/library/aa302430.aspx

Create a connection designed for reuse in a connection pool
http://msdn2.microsoft.com/en-US/library/8xx3tyca(VS.80).aspx

Control connection pooling by configuring ConnectionString values based on database type
http://msdn2.microsoft.com/en-us/library/8xx3tyca(vs.80).aspx

Use connection events to detect database information
http://msdn2.microsoft.com/en-us/library/a0hee08w(vs.80).aspx

Handle connection exceptions when connecting to a database
http://msdn2.microsoft.com/en-us/library/ms998569.aspx

Perform transactions by using the ADO.NET Transaction object
http://msdn2.microsoft.com/en-us/library/777e5ebh(vs.80).aspx

Create, delete, and edit data in a connected environment

Retrieve data by using a DataReader object
http://msdn2.microsoft.com/en-US/library/haa3afyz(VS.80).aspx

Build SQL commands visually in Server Explorer
http://msdn2.microsoft.com/en-us/library/ms172011(VS.80).aspx
http://msdn2.microsoft.com/en-us/library/ms172013(VS.80).aspx

Build SQL commands in code
http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand(vs.80).aspx

Create parameters for a command object
http://msdn2.microsoft.com/en-US/library/80x06z3b(VS.80).aspx
http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.parameters(VS.80).aspx

Perform database operations by using a command object
http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executenonquery(vs.80).aspx

Retrieve data from a database by using a command object
http://msdn2.microsoft.com/en-us/library/9kcbe65k(VS.80).aspx

Perform asynchronous operations by using a command object
http://msdn2.microsoft.com/en-us/library/ca56w9se(vs.80).aspx
http://msdn2.microsoft.com/en-us/library/zw97wx20(vs.80).aspx
http://msdn2.microsoft.com/en-us/library/yws6262h(vs.80).aspx

Perform bulk copy operations to copy data to a SQL Server computer
http://msdn2.microsoft.com/en-us/library/1y8tb169(vs.80).aspx

Store and retrieve binary large object (BLOB) data types in a database
http://msdn2.microsoft.com/en-us/library/4f5s1we0(vs.80).aspx
http://msdn2.microsoft.com/en-US/library/87z0hy49(VS.80).aspx

Creating Custom Web Controls

Create a composite Web application control

Create a user control
http://msdn2.microsoft.com/en-us/library/wt3k2fyw(VS.80).aspx

Convert a Web Forms page to a user control
http://msdn2.microsoft.com/en-us/library/2x6sx01c(vs.80).aspx

Include a user control in a Web Forms page
http://msdn2.microsoft.com/en-us/library/5d0t5fak(VS.80).aspx

Manipulate user control properties
http://quickstarts.asp.net/QuickStartv20/aspnet/doc/ctrlref/userctrl/default.aspx

Handle user control events within the user control code-declaration block or code-behind file
http://msdn2.microsoft.com/en-us/library/y6wb1a0e(vs.80).aspx

Create instances of user controls programmatically
http://msdn2.microsoft.com/en-us/library/c0az2h86(VS.80).aspx

Develop user controls in a code-behind file
http://msdn2.microsoft.com/en-us/library/4wfd1cxx(VS.71).aspx

Create a templated user control
http://msdn2.microsoft.com/en-us/library/36574bf6(VS.80).aspx

Tracing, Configuring, and Deploying Applications

Copy a Web application to a target server by using the Copy Web tool

Copy a Web application to a target server by using the Copy Web tool
http://msdn2.microsoft.com/en-us/library/1cc82atw(VS.80).aspx

Precompile a Web application by using the Publish Web tool

Precompile a Web application by using the Publish Web tool
http://msdn2.microsoft.com/en-us/library/377y0s6t(VS.80).aspx

Optimize and troubleshoot a Web application

Customize event-level analysis by using the ASP.NET health-monitoring API
http://msdn2.microsoft.com/en-us/library/ms178701(vs.80).aspx
http://msdn2.microsoft.com/en-us/library/ms998306.aspx

Use performance counters to track the execution of an application
http://msdn2.microsoft.com/en-us/library/fxk122b4(vs.80).aspx

Troubleshoot a Web application by using ASP.NET tracing
http://msdn2.microsoft.com/en-us/library/hfe9f0s0(VS.80).aspx

Optimize performance by using the ASP.NET Cache object
http://msdn2.microsoft.com/en-us/library/726btaeh(VS.80).aspx
http://msdn2.microsoft.com/en-US/library/system.web.caching.cachedependency(VS.80).aspx

Customizing and Personalizing a Web Application

Implement a consistent page design by using master pages

Create a master page
http://msdn2.microsoft.com/en-us/library/ehszf8ax(VS.80).aspx

Add a ContentPlaceHolder control to a master page
http://msdn2.microsoft.com/en-us/library/ehszf8ax(VS.80).aspx

Specify default content for a ContentPlaceHolder
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.contentplaceholder(vs.80).aspx

Reference external resources in a master page
http://msdn2.microsoft.com/en-us/library/wtxbf3hh(VS.80).aspx

Define the content of a particular page in a content page
http://msdn2.microsoft.com/en-us/library/ehszf8ax(VS.80).aspx

Create a content page
http://msdn2.microsoft.com/en-us/library/fft2ye18(VS.80).aspx

Add content to a content page
http://msdn2.microsoft.com/en-us/library/fft2ye18(VS.80).aspx

Reference a master page member from a content page
http://msdn2.microsoft.com/en-us/library/xxwa0ff0(VS.80).aspx

Create a nested master page
http://msdn2.microsoft.com/en-us/library/x2b3ktt7(VS.80).aspx

Change master pages dynamically
http://msdn2.microsoft.com/en-us/library/ehszf8ax(VS.80).aspx

Customize a Web page by using themes and user profiles

Apply a theme declaratively
http://msdn2.microsoft.com/en-us/library/0yy5hxdk(vs.80).aspx

Apply a theme programmatically
http://msdn2.microsoft.com/en-us/library/tx35bd89(VS.80).aspx

Apply a user-selected theme programmatically
http://odetocode.com/Blogs/scott/archive/2006/03/12/3091.aspx
http://msdn2.microsoft.com/en-us/library/ms366514(VS.80).aspx

Define custom themes
http://msdn2.microsoft.com/en-us/library/ms247256(VS.80).aspx

Define the appearance of a control by using skins
http://msdn2.microsoft.com/en-us/library/ykzx33wh(VS.80).aspx

Enable users to personalize an application by using Web Parts
http://msdn2.microsoft.com/en-us/library/hhy9ewf1(vs.80).aspx
http://msdn.microsoft.com/msdnmag/issues/05/09/WebParts/
http://msdn.microsoft.com/msdnmag/issues/04/06/aspnet20portals/

Track and store user-specific information by using user profiles
http://msdn2.microsoft.com/en-us/library/2y3fs9xs(vs.80).aspx

Personalize a Web page by dynamically adding or removing child controls in a Placeholder control at run time
http://msdn2.microsoft.com/en-us/library/kyt0fzt1(VS.80).aspx

Implement Web Parts in a Web application

Track and coordinate all Web Parts controls on a page by adding a WebPartManager control
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.webparts.webpartmanager(vs.80).aspx

Connect Web Parts to each other by using connection objects
http://msdn2.microsoft.com/en-us/library/ms178187(VS.80).aspx
http://msdn.microsoft.com/msdnmag/issues/06/02/BasicInstincts/default.aspx

Divide a page that uses Web Parts into zones by using WebPartZones
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.webparts.webpartzone(vs.80).aspx

Present a list of available Web Parts controls to users by using CatalogPart controls
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.webparts.catalogpart(VS.80).aspx

Enable users to edit and personalize Web Parts controls on a page by using EditorPart controls
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.webparts.editorpart(VS.80).aspx

Implementing Authentication and Authorization

Establish a user's identity by using forms authentication

Configure forms authentication for a Web application by using a configuration file
http://msdn2.microsoft.com/en-us/library/9wff0kyh(VS.80).aspx
http://msdn2.microsoft.com/en-us/library/xdt4thhy(vs.80).aspx

Enable cookieless forms authentication by setting the cookieless attribute
http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthentication.cookiemode(vs.80).aspx
http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthentication.cookiessupported(vs.80).aspx

Use membership APIs and the Membership class to manage users
http://msdn2.microsoft.com/en-us/library/tw292whz(VS.80).aspx

Enable anonymous identification
http://msdn2.microsoft.com/en-us/library/91ka2e6a(vs.80).aspx


Adicional information
http://msdn2.microsoft.com/en-us/library/Aa480476.aspx

Use authorization to establish the rights of an authenticated user

Manage roles in the Web Site Administration Tool
http://msdn2.microsoft.com/en-us/library/ssa0wsyf(VS.80).aspx
http://msdn2.microsoft.com/en-us/library/ms998314.aspx

Ascertain whether a specific user is in role
http://msdn2.microsoft.com/en-US/library/5k850zwb(VS.80).aspx

Get the roles for a specific user by using the Roles object or the User object
http://msdn2.microsoft.com/en-US/library/5k850zwb(VS.80).aspx

Store role information in a cookie
http://msdn2.microsoft.com/en-US/library/system.web.security.roles.cacherolesincookie(VS.80).aspx

Restrict access to files by using file authorization
http://msdn2.microsoft.com/en-us/library/wce3kxhd(VS.80).aspx
http://channel9.msdn.com/wiki/default.aspx/SecurityWiki.ASPNET2SecurityFAQ0045

Restrict access to portions of an application by using URL authorization
http://msdn2.microsoft.com/en-us/library/wce3kxhd(VS.80).aspx

Use login controls to control access to a Web application

Use the Login Web server control
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.login(VS.80).aspx
http://msdn2.microsoft.com/en-us/library/ms178331(VS.80).aspx
http://msdn2.microsoft.com/en-us/library/ms178340(VS.80).aspx

Use the LoginView Web server control to view a user's login status
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.loginview(VS.80).aspx
http://msdn2.microsoft.com/en-us/library/ms178338(VS.80).aspx

Use the PasswordRecovery Web server control to allow a user to recover a password
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.passwordrecovery(VS.80).aspx
http://msdn2.microsoft.com/en-us/library/ms178335(VS.80).aspx
http://msdn2.microsoft.com/en-us/library/ms178341(VS.80).aspx

Use the LoginStatus Web server control to display either a login or logout link
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.loginstatus(VS.80).aspx
http://msdn2.microsoft.com/en-us/library/ms178332(VS.80).aspx

Use the LoginName Web server control to display a user's login name on a Web page
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.loginname(VS.80).aspx
http://msdn2.microsoft.com/en-us/library/ms178344(VS.80).aspx

Use the CreateUserWizard Web server control as a UI for creating new Web application user accounts
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.createuserwizard(VS.80).aspx
http://msdn2.microsoft.com/en-us/library/ms178334(VS.80).aspx
http://msdn2.microsoft.com/en-us/library/ms178342(VS.80).aspx

Use the ChangePassword Web server control to allow users to change their passwords
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.changepassword(VS.80).aspx

Specify the membership provider used for logging on
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.login.membershipprovider(VS.80).aspx
http://msdn2.microsoft.com/en-US/library/1b9hw62f(VS.80).aspx

Configure a mail server so that login controls can be used to send e-mail messages to users

Additional information
http://msdn2.microsoft.com/en-us/library/ms178329(VS.80).aspx


Creating ASP.NET Mobile Web Applications

Create a mobile Web application project

Create a mobile Web application project
http://msdn2.microsoft.com/en-us/library/excw86bz(VS.80).aspx

Use device-specific rendering to display controls on a variety of devices

Use device-specific rendering to display controls on a variety of devices
http://msdn2.microsoft.com/en-us/library/hkx121s4(vs.80).aspx
http://msdn2.microsoft.com/en-us/library/26s26ahw(vs.80).aspx
http://msdn2.microsoft.com/en-us/library/ms228145(vs.80).aspx

Use adaptive rendering to modify the appearance of Web server controls

Use adaptive rendering to modify the appearance of Web server controls
http://msdn2.microsoft.com/en-us/library/67276kc5(vs.80).aspx

Use the mobile Web controls to display content on a device

Use the mobile Web controls to display content on a device
http://msdn2.microsoft.com/en-us/library/9f79cyw2(vs.80).aspx
http://msdn2.microsoft.com/en-us/library/91105bfs(vs.80).aspx